HNHacker News
TopNewBestAskShowJobs

decklin

2,354 karma · joined August 8, 2009

things change.
submissionscomments
decklin··on General principles for good URI design for RESTful and HTTP applications
My first thought was "maybe we should back up and emphasize that resources are nouns before going further", but if you scroll up you'll see that this was actually the original question asked (how do I avoid naming them with verbs?).
decklin··on What the first web blackout looked like, 17 years ago
A post-mortem: http://web.archive.org/web/19980121045936/http://www.bababoo...
decklin··on Ask HN: An older protest?
http://en.wikipedia.org/wiki/Black_World_Wide_Web_protest
decklin··on Teach Yourself Programming in Ten Years by Peter Norvig (2001)
The "power search" feature of amazon.com used in the introduction no longer exists. It appears they now have an "advanced search" (http://www.amazon.com/b?node=241582011), but nothing that will do a "X AND (Y OR Z)" boolean query. Anyone know how to run the same search today?
decklin··on Tools I Use - tmux
You can use this for that:

https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard

The documentation recommends changing tmux's default command, but if that weirds you out, a simple alias to "reattach-to-user-namespace pbcopy" also works.

decklin··on Python-Dev: Adding braces to __future__
That's what he meant by "manually".
decklin··on Ice Cream Sandwich May Come To Galaxy S
I wonder to what extent their hand was forced by functioning ICS ROMs for the Galaxy S "in the wild". I am running one now on mine, and while it's certainly not polished (I miss Cyanogen), it works.
decklin··on Should Wikipedia run ads that ask for money, or ads that make money?

    Capitalism won, try it.
I don't think this is true here at all. The obvious real-world analogy is news. I would much rather listen to NPR or the BBC than watch CNN or a local broadcast station -- I don't care if the latter has "won" by making money, I care about the quality and editorial independence of the content.
decklin··on Emacs for the rest of us: ErgoEmacs
As a Dvorak user, I find it very odd that he has a version of the keybinding (http://xahlee.org/emacs/ergonomic_emacs_keybinding.html) with all the letters swapped around so that shortcuts are in the same physical place that they would be on a QWERTY keyboard(!).

I can see relearning C for copy, as it's logical and would reduce the burden of switching between normal Mac/PC applications, but having J mean copy because that key would have been C in QWERTY is just too weird. I think about lots of Emacs bindings mnemonically: C-b, C-f and friends, obviously, or C-c because that's just the "bindings having to do with this mode" key, and you see it a lot when you read documentation -- in my head, it's a letter, not a physical position. I touch-type Dvorak pretty fast, but two-finger type it very slowly, because in my brain the letters are wired to finger movements starting on the home row.

A possible reason for this is that he has an "inverted T" for cursor movement (but on the left hand, like vi, not WASD like I believe PC gamers would be used to). If your set of cursor keys is based on the physical layout of QWERTY, like vi, it doesn't translate all that well to Dvorak (vi manages to be not horrible since J and K stay next to each other, but in this proposal J and K are not on the same axis), but if they are mnemnonic, like Emacs, there's no problem.

If the idea is to fit better with what the vast majority of "normal" people expect computers to work... well, normal people use the arrow keys. Telling them an invented abstraction is better because they don't have to move their hands from home row isn't going to sell them, I think.

decklin··on Twitter releases new JS template engine: hogan.js

   <script src="//goo.gl/OCK7V"></script>
Really?
decklin··on The Recording Industry Likes to Make Me Look Like an Asshole
No one wanted a buggy whip. They wanted, and still want, what the buggy whip got them: transportation from point A to point B.

People still want music. They never wanted the music industry.

decklin··on Snake game in a data: URI
TinyURL allows one to create http://tinyurl.com/7q3en34 -- but, alas, Chrome refuses to follow the redirect. Safari and Firefox don't seem to mind, though.
decklin··on A shuffled deck of cards is unique in all human history
In particular,

    If the secret police starts breaking down your door, just calmly shuffle the deck. (Don't throw it up in the air; you'd be surprised how much of the deck ordering is maintained during a game of 52-Pickup.)
decklin··on Google releases full Android 4.0.1 source code, includes Honeycomb too
There are two links to this post on the front page right now. This one, https://groups.google.com/forum/#!topic/android-building/T4X... , loads fine on my computer and comes up in the "new" Google visual design. It completely fails on my phone (Android 2.3), displaying "Loading..." for a while and then bumping me to the front page of Google Groups with a little message saying I am now logged in (I tried several times). The other link, https://groups.google.com/group/android-building/msg/c0e01b4... , just works, everywhere, but shows the old Groups interface.

This is a really sad state of affairs. If Google can't guarantee that their fancy new Javascript-dependent links won't work everywhere, they should not be used as permalinks.

I really don't care about any arguments people might want to make about the visual redesign, or how to properly implement #! paths, or the extra effort involved in generating resilient URLs, or Google paying special attention to how the Android browser handles pages, or what evil things my phone company might be doing my my data stream, and how that's not their fault, or whatever. Permalinks should work. Everywhere. Period.

decklin··on Introducing the ALIAS Record
They should refer to this as a feature of their platform, not a record type.
decklin··on Commit logs from last night
To be fair, I don't the the point of Texts From Last Night (which this is a parody of/homage to) is "celebrating" ill-considered drunken text messages. For whatever reason, humans find it entertaining to watch other humans do stupid things.
decklin··on What is your favourite C programming trick?
Also, sizeof is an operator, not a function, so you can write that as

    long_struct_name *foo = malloc(sizeof *foo);
decklin··on Unix's founding fathers [2004]
I didn't even notice until I got to the part that explained how modern computers had 0.5G memory and 40G hard disks.
decklin··on Rob Pike comments on Ryan Dahl's rant
Not if you're using a screenreader.
decklin··on Google’s Management Doesn’t Use Google+
What an utterly awful use of a pie chart.
decklin··on I Think Your App Should Be Free
I pirated some music today[0]. I went to my usual shops to try to buy it, and for some reason the label had explicitly decided not to offer downloads of any sort. Just vinyl and CD. I wanted it now, and I couldn't really be arsed with those choices, so I stole it.

What would an honest Android-app allegory for this be? Perhaps a consumer is faced with these options:

1. An official shop, which accepts money (yay!), gives only some (boo!) of it to the artist, and offers:

a. The source code to build the app (i.e. a plastic disc that you have to rip yourself)

b. maybe, sometimes, a version of the app compiled for a 320x480 screen (acceptable lossy compressed files)

c. maybe, even fewer times, a version of the app compiled to use any screen size (lossless files, or high-quality lossy or whatever you like)

2. A dodgy (boo!) pirate site, which doesn't accept money (boo!), and offers all of the compiled versions.

Of course this is not even close to reality. No Android apps are compiled by normal end users. All paid Android apps offer 1c. Music piracy does not exist because of religious "information must be free" nuts like this article is talking about -- it exists because people's moral feeling about getting some money to the artist is not strong enough to overcome the inconvenience of 1a (or even 1b). Maybe we should conclude that the analogy has broken down.

Society does not "accept" this sort of piracy like it's a binary switch. The "morals" curve slides down, the "inconvenience" curve slides up, and at some point they pass each other. I see no reason why they can't trade places again -- if we actually try to do something about it instead of spinning clever allegories.

I suspect we need to look elsewhere to understand the motivations of app pirates (yes, I know this was not the point, but if you're going to be facetious...). The real thing is right there, for a few dollars. I've already given Google Checkout my credit card information. I cannot fathom what would make someone deal with sketchy sites (sketchy sites whose entire purpose is to install executable code on your device) to get the same thing they can just pay for. Maybe they are in fact just religious nuts.

[0] Honestly, I can't even be bothered to pirate most things these days. I'm culturally behind because filling in the gaps in what I can actually buy in FLAC would be a part-time job. If a record shop so much as rejects spaces in my credit card number I get bored and go listen to something I've already bought. This is a problem that could use some, as they say, disruptive innovation.

decklin··on Seven Minutes in Ubuntu: A Mac user's first impressions
So, it takes the same amount of time to tap something on a touchscreen, no matter what size it is and how far away it is from your finger, then?
decklin··on Seven Minutes in Ubuntu: A Mac user's first impressions
How are screen edges no longer infinite? If I ask you to tap something and drag it off an edge of the screen, you don't have to aim.
decklin··on Hey Google, I want my cache links back

    .vspii {
      display: none !important;
    }
Will hide the buttons that display the "preview" thing when you mouse over them.
decklin··on Don't try this at home. How credit card arbitrage funded my first company.
Is this actually considered arbitrage?

http://en.wikipedia.org/wiki/Arbitrage

While the 4th credit card company he applies to has imperfect information about what his credit is (at that point) actually worth, it seems like all the deals are independent.

decklin··on iOS is anti-Unix and anti-programmer
I hate to be that guy, but don't complain about how something isn't as awesome as Unix pipes and then use cat | grep | awk where you could have just used awk.
decklin··on A monospace that looks like a proportional
One possible reason is that people tend not to upgrade their fonts. Therefore, old and buggy versions would remain out there, and lots of people copy fonts from their friends instead of getting them from the source.

It's a difficult problem: what's better for free software? Sticking to our principles of open development even for assets, or ensuring that potential new users see a high-quality, finished product? I don't know the answer.

decklin··on How I got a burnout
I take issue with your last statement as well. Anyone can idle their life away.

For many depressed people (at least myself), changing their broken neurochemistry with drugs, ECT or both is a necessary but not sufficient condition to identifying and attacking the causes of their symptoms. It's not an either-or choice, and despite lingering stereotypes that your statement seems to imply, no kind of clinical treatment (even ECT!) is intended to just numb you to those symptoms.

decklin··on Why Another DVCS?
This page doesn't answer the posed question. It's actually something about SCM advocacy and adoption curves. The chart on the front page is much more informative.
decklin··on Understanding the Git Workflow
The idea that fast-forward merges are easier to follow is subjective. I find my --no-ff history easier to read. This author doesn't.

What always using fast-forward merges really means is that you rebase each branch onto master once it's ready to be public. Therefore, instead of resolving conflicts when the branch is merged, the commits are rewritten to avoid introducing the conflict in the first place.

Sometimes, this is really simple -- I added a line in one spot, you added another line in the same spot, you merged first, so I rewrite my commit to add my line next to yours instead of merging and resolving the conflict. Sometimes, it's not -- maybe there's not even any text-level conflict, but your feature and my feature interact in subtle and unanticipated ways and something breaks. Now, there's no "good" point in my branch to refer to, because I rewrote it on top of something where (I didn't realize) it was never really going to work. The unit test I now need couldn't have existed because it involves things that, when I was developing the branch, didn't exist.

Rebasing first is trading off when you do that work. There's more to review when the branch is ready, and there's a stronger incentive to get it right the first time. I think this may work better for the "two founders deploying from master when they feel like it" scenario -- you pay for manageability with context switches. If you have a formal QA process, I think being able to distinguish between "this branch failed QA" and "the combination of these branches failed" may be more helpful -- you can parallelize work and hack on a different private branch.

Git, thankfully, does not force us to choose one model or the other :-)

← PreviousPage 3 of 5Next →