HNHacker News
TopNewBestAskShowJobs

mfenniak

566 karma · joined January 25, 2008

[ my public key: https://keybase.io/mfenniak; my proof: https://keybase.io/mfenniak/sigs/eo6JiTXuJQV68__kYj4qCWj-PkplQU5F3clSvlBADHU ]
submissionscomments
mfenniak··on Designing a RESTful API That Doesn't Suck
Because that approach isn't recommended anymore. In short, it's much harder to for a cache to work effectively based upon Accept & Content-Type headers than it is for it to work on the URL.

For example, here's a quote from Roy Fielding: "In general, I avoid content negotiation without redirects like the plague because of its effect on caching.". In other words, content negotiation for a versioned content-type is OK... if it redirects to a URL that contains the version.

httpbis, the IETF working group in charge of maintaining and developing the core HTTP spec, has deprecated content negotiation: http://trac.tools.ietf.org/wg/httpbis/ticket/81; it's still part of a separate spec (RFC2295), but it's not a core component of HTTP anymore. Why? 'HTTP content negotiation was one of those "nice in theory" protocol additions that, in practice, didn't work out.'

Certainly you can still build an API that works fine using specialized content types. Versions in the URL are a pretty practical approach that work very well too.

mfenniak··on You just went to the Google homepage. What actually happened?
I've previously used this as an interview pre-screen question for job candidates. It's a great question to ask; there are so many levels of details involved.

As a web company, you generally want potential employees to at least mention "HTTP" in the response. DNS is great. TCP/IP too. You'll definitely weed out some people who don't have a clue.

mfenniak··on Taking the Leap
Congrats! I wish you good luck and prosperity. :-)

I am in a similar position. Starting in April, I'm dropping my full-time employment down to 3 days/week to give myself time to start building my business. It's exciting to put things in motion and stop dreaming, hoping, wishing, and other effectively useless activities.

mfenniak··on Go as an alternative to Node.js for Very Fast Servers
Looks like there are a couple packages that would solve this problem, but neither appear to be production ready or up-to-date.

https://github.com/madari/go-socket.io

https://github.com/igm/sockjs-go/

mfenniak··on It is cheaper to fly to US than buy Adobe software in Australia
> The problem is the government/customs knows that and thus catches and taxes a lot of people who try to bring over $500USD worth of products.

Does this mean the difference in the price of the Macbook is entirely taxes? Or, after paying an import duty at the airport, would the overall cost still be lower than buying the hardware domestically?

mfenniak··on A congressman who justifies every vote on Facebook
Huh. I'm not a giant fan of his votes... but I really like reading why he is voting on each issue. I hope he is truly transparent and honest; the cynic in me believes he'll probably only share politically polite reasoning for his votes.

I also hope that this level of sharing grows. It's a pretty small thing for a member of a representative government to do, yet so obviously important. "I represent you. I voted X on issue Y, because Z."

mfenniak··on C# is the language of the year, Python of the decade
I wonder if that's when Google started recognizing that "C#" wasn't a typo of "C". :-) C# has always been a PITA to search for (although, maybe not as bad as 'Go').
mfenniak··on Postgres 9.2 – The Database You Helped Build
Does Heroku's Postgres implementation run with a server-side connection pooling tool like pgpool or pgbouncer?
mfenniak··on Aircraft Carriers in Space
I recommend the Honor Harrington novels for "plausible" Sci-Fi combat scenarios. Over the series of novels, the style of space combat changes dramatically multiple times as factions develop new technology, strategies, and tactics. They're quite a fun read.
mfenniak··on Vanilla JS, fast, lightweight, cross-platform framework
The first book listed on the "Books" link is: JavaScript & jQuery: The Missing Manual

Heh.

mfenniak··on Backbone has made me a better programmer
I'm with you. knockout.js is a sharp tool that does one specific job very well. It lets me stop writing boring JavaScript, and focus on business logic.

Backbone just feels complicated by comparison.

mfenniak··on Investing in GitHub
I think there's a pretty straight-forward reason for this. If you've worked as a software developer for 10 years, you know what business domain you know really well? Software development. That makes it a natural place to start in looking for ideas to build a business.
mfenniak··on I build High Availability Platforms so Cloud is not for me
My thinking is that I want experts working on the low-level configurations (power, racks, UPSes, etc). I don't have that expertise myself. Now, I could try to hire some experts to set up highly available hardware from me... or... I could rent some that has already been set up. I think the basic assumption you have to buy into is that your cloud provider knows how to do this better than I do.

I think if we look at a AWS reliability, the interesting and sorta-unanswerable question is: would these applications have been more, or less, reliable, at the same cost, if they were running the infrastructure themselves? My guess: less. It's so easy to screw this stuff up.

mfenniak··on Flask 0.9 codename Campari released today
Very nice. Almost painless upgrade here; had to make one change to my custom create_url_adapter to adjust for the possibility of request being None, but that was a minor change and documented to boot. Flask rocks.
mfenniak··on Startup Ideas We'd Be Willing To Pay For
#1: There are a few devices out there that work like a Bluetooth headset merged with a cordless home phone. Here's one example: http://www.sigelectronics.com/SIG/Panasonic-KXTG7622-Link-to...
mfenniak··on Redis and SQLite: Why wait for good enough?
My mistake, I was not aware of those configuration options. Thanks for the correction.
mfenniak··on Redis and SQLite: Why wait for good enough?
You wouldn't. Redis doesn't support implementing an LRU cache. Redis does function well as a cache, and is far better than memcached for any data you don't want randomly disappearing, but it just doesn't do an LRU cache.

Redis will only evict data when it's explicitly removed or expired, and it will store as much data as you put into it.

memcached will evict the least-recently used data based upon memory pressure, and will only use as much memory as you configure it to.

They overlap in functionality, but I find they work better in complement to each other than having one replace the other. Redis for data you want to persist, possibly with a timeout -- user sessions, for example. memcached for data you want to cache, as long you have the free memory for it.

mfenniak··on The future of notebooks: Ars reviews the 11" MacBook Air
But they're the first version of a new design.
mfenniak··on The future of notebooks: Ars reviews the 11" MacBook Air
I had my 13" Macbook Air pegged at 100% CPU usage for a couple hours yesterday. It gets a bit warm, and the single fan spins up noticeably (eventually), but I wouldn't call it hot. I think it'd be comfortable on my lap still.
mfenniak··on The future of notebooks: Ars reviews the 11" MacBook Air
I bought a 13" Macbook Air on the weekend for basically the same purpose. I do the majority my development on remote servers, so when I decided to replace my aging Macbook Pro it didn't seem very important to have a powerful machine.

I've had great experiences in the past with AppleCare. Combined with the unservicability of this machine, I didn't hesitate to get the 3-year AppleCare coverage. That makes me feel a bit better about the fact that I can't easily take it apart and repair it myself.

mfenniak··on New Neal Stephenson Book Out - Anathem
The Diamond Age
mfenniak··on Why you shoud never use your favorite password on News.YCombinator.com
The downside to this is that it requires the server to store the password unencrypted and unhashed. The server must have access to the original password to hash with the random number for comparison. In my opinion, this wouldn't be an improvement in the overall security of the system.

Avoid sending a plaintext password by using HTTPS. It's the easiest way.

mfenniak··on Apple releases Safari 3.1
The Windows version of Safari doesn't require a reboot to install or upgrade. ;-)
mfenniak··on Git's Killer Feature (why it's better than Mercurial)
Isn't this exactly like "hg record"?
← PreviousPage 5 of 5