HNHacker News
TopNewBestAskShowJobs

oesmith

240 karma · joined October 7, 2011

submissionscomments
oesmith··on Spending more on retaining developers reduces the cost of hiring developers
Staff SWE at Google UK can get you to 400k+ (depending on stock grants / stock price gains).
oesmith··on Ask HN: Do you write code on the train? What's your setup?
I've been doing this for nearly five years now, so I've gradually built up a system that works for me. Usually I'll use one of two devices:

* Asus Chromebook Flip (C100PA)

* iPad Pro 10.5 with keyboard cover

When I'm developing, I use ssh or mosh to access my workstation in the office and then tmux+vim. Mosh works pretty great with poor connectivity. I've pretty much mentally mapped the signal quality along my route, so I know when to look out the window for a couple of minutes to wait for signal to come back...

When I'm not developing, I'm usually using Gmail+Google Docs/Sheets/etc to get stuff done. They all work relatively well offline/online.

For connectivity, I use a Raspberry Pi Zero with a 4G data stick as a WiFi hotspot (the on-train WiFi is terrible, and tethering to my phone kills the phone battery way too quickly). That setup can run for 6-8 hours on a little Anker USB battery pack.

oesmith··on London vs San Francisco – back and forth
I'm looking forward to Google opening an office in Bristol. Until then, I'm stuck on a daily commute from Bath to London.

The commute sucks, but I couldn't stand living in London (nor SF or the bay for that matter).

oesmith··on Large-scale cluster management at Google with Borg
Skynet, like the UK military satellite comms network?

https://en.m.wikipedia.org/wiki/Skynet_(satellites)

oesmith··on Has modern Linux lost its way? Some thoughts on Jessie
Pro-tip: you can use "brew info [package-name]" to lookup the post-install info that flashes up after a homebrew install.

    $ brew info cassandra

    cassandra: stable 2.1.2
    http://cassandra.apache.org
    Not installed
    From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/cassandra.rb
    ==> Caveats
    If you plan to use the CQL shell (cqlsh), you will need the Python CQL library
    installed. Since Homebrew prefers using pip for Python packages, you can
    install that using:

      pip install cql

    To have launchd start cassandra at login:
        ln -sfv /usr/local/opt/cassandra/*.plist ~/Library/LaunchAgents
    Then to load cassandra now:
        launchctl load ~/Library/LaunchAgents/homebrew.mxcl.cassandra.plist
oesmith··on Why the Facebook App Is Rated Below 2 Stars
Same here. I'm using the mobile web versions of Facebook, Twitter and G+ on my iPad and iPhone and I'm not (yet) missing any of the features of the native apps.
oesmith··on Swift-X tool to cross compile Swift and Objective-C(++) code to Android
There's also j2objc, another interesting tool for creating a common layer for iOS and Android apps.

https://github.com/google/j2objc

I'm playing with it for a personal project, and as long as you're not too adventurous with your use of the JRE, it produces pretty usable Objective-C code.

oesmith··on Social Media and the ‘Spiral of Silence’
The last paragraph of the article:

"Because of its sample size (1,801 people) and choice of topic, Pew’s study might not be a fully accurate example of social media’s silencing effects, but it’s definitely fodder for discussion – if you dare! – as well as further research."

Sigh.

oesmith··on Formula 1: The super-fast net driving teams to the podium
.. not to mention that there's a lot of overlap between aerospace and F1 engineering. Plenty of the engineers (even the trackside ones) started out studying aero engineering.
oesmith··on Net neutrality
+1, I live in a semi-rural town of ~10k residents and I get 75Mbps / 15Mbps fibre-to-the-cabinet broadband.

The infrastructure is owned by the incumbent monopoly provider, but the service over the top can be supplied by any one of a number of large and small suppliers.

oesmith··on Why air travel hasn't gotten any faster since the 1960s
Premium economy?

I usually fly between LHR and SFO on BA premium economy. It's usually sub-£1000. Compared to economy, the seats are wider with more leg room and the meals are better.

It's a pity they still fly creaking old 747s on that route though. One time went to SFO through LAX where the first leg was on an A380 and that completely spoiled 747s for me.

Unfortunately, the A380 doesn't make up for the horrors of connecting onto an AA domestic flight at LAX, so I can't do that all the time now...

oesmith··on Why you might not want to incorporate in the USA
Google Webmaster Tools' "Fetch as googlebot" feature is useful in debugging these problems.

See http://www.mattcutts.com/blog/fetch-as-googlebot-tool-hacked...

oesmith··on Why you might not want to incorporate in the USA
Looks like a hacked wordpress install.

http://wp.smashingmagazine.com/2012/10/09/four-malware-infec...

oesmith··on Why you might not want to incorporate in the USA
I'm reading on an iPad, so the risk of system infection is negligible.

However, I just switched on my home VPN and the links disappeared. Time to talk to someone in netops, methinks.

oesmith··on Why you might not want to incorporate in the USA
Is this a test of whether anyone actually reads these articles? Every 3rd paragraph has a viagra spam-link inserted in the middle of a sentence.
oesmith··on Why Most Unit Testing is Waste [pdf]
Summary: Unit testing is hard, so it's not worth the effort.
oesmith··on Clean, Modern Objective-C
I think many go programmers would disagree with you, and C++ programmers who've discovered clang-format too.

Bikeshed discussions about formatting quickly go out the window when you have an automated tool that can settle all arguments.

oesmith··on Clean, Modern Objective-C
How about taking a look at the Google ObjC style guide? https://google-styleguide.googlecode.com/svn/trunk/objcguide...

I'm not convinced by private properties either. Use ARC and just define your ivars in the implementation.

oesmith··on Introducing Paper
Exactly my first thought too!
oesmith··on Frameworkless JavaScript
I wonder why Google's Closure Compiler hasn't taken off more in the open-source world. At the cost of some mandatory comments to help the compiler, it's able to analyze and remove unused library code from your application.
oesmith··on Facebook is basically dead and buried with UK teenagers
Don't forget, those teenagers entire families are now on Facebook. I concede that the actions of teenagers might be an indicator of what's to come, but the world has hardly 'moved on' yet.
oesmith··on Wireless HDMI for Everyone
FYI, there's a typo in the code screenshot.

s/versoin/version

oesmith··on How old are you and what's your oldest code online?
31, and the oldest I can find is from mid-1998. A small piece of C++ code to replicate the "cool" then-new docking windows in Visual Studio.

http://www.codeguru.com/cpp/w-d/docking/article.php/c1451/A-...

oesmith··on Are “free” web-services cheese in a mousetrap?
This argument applies to any web service. There's no guarantee that a $5/yr paid web service isn't profiting from your data the same as anyone else. Why only make $5 when you could make $35?

It really boils down to who you choose to trust with your data. As an insider, I'm very happy with the privacy controls within Google. I'd be more worried about a less well-established player, regardless of whether they charge a fee for their product.

oesmith··on TCP is UNreliable
Yes, if all you want is to confirm that a TCP connection has closed and flushed correctly, then AFAIK, that's entirely possible with a [shutdown, select, read] sequence.

I struggle to understand why an RPC system (as detailed in the article) wouldn't want an app-level acknowledgement though...

oesmith··on TCP is UNreliable
> The reliability signals this app needs are built into both TCP and the socket programming interface, from what I can tell. The application-layer acknowledgement it wants appears duplicative.

An ACK only suggests that a segment has reached the recieve buffer successfully. If the receiving application crashes between buffering incoming data and successfully processing it, that's expressly not TCP's problem. The RST will signal that the receiver has died, but does not imply whether or not the application has successfully processed any buffered data up to that point.

AFAIK, an application-layer acknowledgement is the only way to solve this problem.

oesmith··on Poll: Full-time software engineers in London, what's your annual salary?
London's an awful lot better than most of the rest of the UK. I'm on a similar package as the post above, but only since moving to London.

Working anywhere else in the UK, I'd struggle to get half that.

oesmith··on RSpec Best Practices
Yup, the real best practice is to use your judgement and choose the right test for the job.

If it's something that you can see in a browser (and the results are visible too), then it's a candidate for an integration spec.

You really shouldn't be integration testing stuff like security. For example, testing a user can't submit a form they can't see (which is where horrible Rake::Test::Methods mixin hacks start appearing).

You also shouldn't (imho) be integration testing side effects that aren't visible to the user. For example, if an action ends up in an audit log that the user is never going to see, there's no point firing up an integration test to do that. A light-weight controller test can do that just fine.

oesmith··on RSpec Best Practices
I really don't like the idea of "no controller tests at all" as a best practice.

If you're having to mixin Rack::Test::Methods to write your "full-coverage" integration spec, then you're really writing a controller test. It should go in a controller spec without all the horrid mixin hacks.

oesmith··on Recruiter Disruption Rant
... and that's why I unsubscribed from LRUG this afternoon. There's more discussion about recruiters than ANYTHING ELSE.
Page 1 of 2Next →