HN user

oesmith

240 karma
Posts4
Comments36
View on HN

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.

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).

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

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.

Net neutrality 12 years ago

+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.

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...

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.

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.

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.

TCP is UNreliable 13 years ago

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...

TCP is UNreliable 13 years ago

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.

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.

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.

... and that's why I unsubscribed from LRUG this afternoon. There's more discussion about recruiters than ANYTHING ELSE.