HNHacker News
TopNewBestAskShowJobs

nfm

1,293 karma · joined March 24, 2011

Co-founder and CTO of Lyssna (https://lyssna.com). Previously co-founded Paydirt (https://paydirtapp.com).

You can get in touch with me at nicholas@lyssna.com.

submissionscomments
nfm··on Backbone.js Fundamentals
We're using more and more backbone in https://paydirtapp.com - it's currently an integral part of our time-tracker, with the same code base reused in our Chrome and Firefox extensions. We're also using it to drive d3.
nfm··on Tmux, for fun and profit
Agreed, it's a bit cumbersome scrolling and copy-pasting. It is nice to be able to scroll your panes independently though.
nfm··on Ask HN: What did you build in March?
Backbone based Firefox[1] and Chrome[2] extensions for our time tracking and invoicing app, Paydirt[3]. They prompt you to start a timer when they spot keywords related to your clients on the pages you visit.

This is our MVP into intelligent time tracking, seems to work well for people that spend all day in the browser. We'd love some feedback!

1. https://addons.mozilla.org/en-US/firefox/addon/paydirt-time-...

2. https://chrome.google.com/webstore/detail/clfnlkjacgohceabde...

3. https://paydirtapp.com

nfm··on Rookies in the Bike Shed
It's not a common idiom to use !! in Ruby.
nfm··on Hacked: commit to rails master on GitHub
Nah, just changing the _id column's value so that the belongs_to association changes.
nfm··on Hacked: commit to rails master on GitHub
In my uses of rails, belongs_to associations get changed frequently. Any time anything gets 'assigned' to something, this occurs: assigning something to a user, to a milestone, to a plan, to an account, maybe even to a priority. YMMV but I'd say this isn't minute.

That said, there are certainly places in my apps where I don't want this to occur. And whitelisting is much better than blacklisting!

nfm··on Hacked: commit to rails master on GitHub
I don't have a well-formed opinion on this, but how would you propose handling nested attributes if mass assignment protection was managed in the controller?
nfm··on Rails 4.0: PATCH will replace PUT as the primary HTTP method for updates
See also the lengthy GitHub discussions about this issue:

https://github.com/rails/rails/issues/348

https://github.com/rails/rails/pull/431

https://github.com/rails/rails/pull/505

https://github.com/rails/rails/pull/5130

nfm··on Maintain a Rockin’ Blog for Your Startup
I think it's just the old 'practice makes perfect'. It still takes me a couple of hours to write a ~300 word post, but the more I do it, the faster I get at it. Just keep on writing and you'll get a feel for when it's done 'enough'.
nfm··on Advanced caching in Rails
Cheers, a helpful and extremely likely case!
nfm··on Advanced caching in Rails
I haven't had a lot of experience with caching, and I agree with your comment above about database views, but wouldn't the complications be mitigated by using the approach DHH detailed recently? http://37signals.com/svn/posts/3113-how-key-based-cache-expi...

That is, incorporating `updated_at` into the cache key, and using `touch: true` on your AR relations to make sure that caches of affected parent objects get expired too?

Are there other complications I may not have run into yet?

nfm··on Ubuntu: you’re doing it wrong
"Canonical is repeating a lot of Apple’s mistakes, however, as they are using the same closed feedback loop development system that Apple is using"

Care to elaborate? This process seems to be going well for Apple!

nfm··on Vim anti-patterns
zt, zz and zb are great too. They redraw the screen so that the line the cursor is currently on becomes the top, middle, or bottom line of the window.
nfm··on I Wasn't Paid
Fortunately, 90% of bad clients are the former.
nfm··on YC and 500 Startups company Curebit caught stealing from 37 Signals
A simple page like that should be easier and faster to create from scratch using a WYSIWYG tool...

I'd argue that landing pages are the most important and most complex pages to get right.

nfm··on Exit Interview: The creators of no-longer-with-us products explain

  1. Didn't build something people would pay for
  2. Beaten by the competition
  3. Didn't build something people would pay for
  4. Didn't build something people would pay for
  5. ?
  6. Didn't know their users and build the product with them in mind
  7. Didn't build something people would pay for
Notice a pattern?
nfm··on Ask HN: Fundamental texts for serious web engineers?
I'm not sure what other people will recommend, but I don't personally feel that you need such a deep knowledge of fundamentals to be a good technical co-founder. More important is your ability to pick things up when you need to.

You don't need to be a decent DBA, a pen tester and a network admin to get your startup off the ground. You need to be able to wear all the hats, but by the time you actually need a master of each skill you'll have the revenue to employ them.

That said, these two paths may actually converge. If you're interested in learning and read a wide range of authors and topics, you'll probably be good at JIT learning stuff when you need to change hats.

nfm··on [dead]
I thought I was going to have to comment on HN basically with the verbatim text of the post, until I clicked through and read it.
nfm··on Poll: Did you start company in 2011?
Yep, started https://paydirtapp.com - intelligent time tracking for freelancers.

We spent 2010 freelancing figuring out the business side of things a bit, earning some money to give us a bit of a runway, kicking lots of ideas around, and working on our tech chops.

12 months in we're starting to focus more on marketing and sales than development, and we're aiming to be profitable sometime before the end of 2012.

Everything takes a lot longer than you think!

nfm··on Jimmy Wales: Wikipedia domain names will move away from GoDaddy
I think it's interesting how it's taken a mass event to spur people to stop using GoDaddy. They certainly weren't well respected before the SOPA saga. But it seems that we needed a big event to get people moving.
nfm··on Introducing Firefox 11 Aurora
Highlights: SPDY support (off by default), IndexedDB for local storage, and some tweaks to WebSockets, including removing their 'Moz' prefix.
nfm··on Mikkel Svane, CEO of Zendesk called Freshdesk “A Freaking-RIP-OFF"
Dupe of http://news.ycombinator.com/item?id=3311496
nfm··on Is Firefox Doomed?
They publish their audited financial statements online:

http://www.mozilla.org/foundation/documents/

http://static.mozilla.com/moco/en-US/pdf/Mozilla%20Foundatio...

As of December 31, 2010, they have assets of $168MM, of which $35MM is in cash and $105MM in investments. In the 12 months they spent $62MM on software development, $10MM on branding and marketing, and $12MM on 'General and administrative'.

There's more granular detail if you're interested.

nfm··on Is Firefox Doomed?
No, it's clearly not doomed.

Google wants people to use their services, and to use browsers that are up to scratch to do so. They also want to influence web standards so that they can build better products. This is why they built Chrome.

Firefox helps them to achieve these goals by being another alternative to IE, and having similar views about evolving web standards.

nfm··on Keep your job for five years, get $50,000
I'm sure it's part of a larger strategy.

Explicitly valuing staff retention means that he probably also recognises the value of company culture, group ownership, and so on.

nfm··on Ask HN: How do I know if I'm ready to launch?
In some sense, you launched when you posted this Ask HN!

I think this is a good way to do it as well, as you're likely to get some helpful feedback and tyre kicking from HNers.

nfm··on JQuery 1.7 Released
Correct. You could also manually download the latest jQuery and include it.

The gem is a very thin wrapper around jQuery, jQuery UI and jquery_ujs, which basically makes the files available for inclusion in your manifests, and adds a jQuery specific helper method for your tests.

nfm··on How Do I Create And Publish My First Ruby Gem?
I'd highly recommend using `bundle gem #{your_gem_name}` to generate a template for a new gem. This will create sensible directory structures, stub out a gemspec, create a .gitignore, and add some rake tasks for building and pushing to rubygems.org.
nfm··on Apple’s Earnings Fall Below Street Expectations
"25 billion iOS devices sold last quarter."

What?

nfm··on 24 year old student lights match: Europe versus Facebook
I wonder what's in place to prevent you requesting a CD of someone else's data.
← PreviousPage 7 of 9Next →