HNHacker News
TopNewBestAskShowJobs

jneen

2,047 karma · joined July 19, 2011

submissionscomments
jneen··on Please use git pull --rebase
I've been telling people lately to always fetch and merge --ff-only separately, which is more commands but less confusing behavior. If you've got merge.defaultToUpstream set to true, you can alias ff = merge --ff-only. That way you can be careful about rebases, and don't have them automatically happening behind your back. So the workflow is:

    % git fetch # can never fail with a conflict
    % git ff    # tries to fast-forward
    # if fast-forward fails, then
    % git rebase origin/upstreambranch
jneen··on Girl unaware all her pictures are sent to journalist
This is one reason I put my email on my own domain. But yeah, you can't really expect most users to do that.
jneen··on Girl unaware all her pictures are sent to journalist
slight mistranslation: "...sak som Google ikke kan forklare" means "...that Google can't explain", not "...that I can't explain". (my Norwegian isn't that good, but this kind of sticks out...)
jneen··on Ubuntu 13.04 Raring Ringtail Released
Well that's news to me. The last I looked was before November, I guess, and before that it still had the same old crufty UI from like 5 years ago. The userbase had been pretty up-in-arms about it for a while too: http://community.skype.com/t5/Linux/Vote-here-for-linux-skyp...

Edit: also, they're still sitting on version 5, which introduced group video calling. It's a pretty sad situation overall.

jneen··on Ubuntu 13.04 Raring Ringtail Released
Guys, Skype is owned by Microsoft, and the Linux version hasn't been touched in like 2 years. I'm frankly not surprised it's b0rked.

So... yes, the user should use software that isn't deprecating support for their platform.

jneen··on Why Maybe Is Better Than Null
_why, Maybe is better than NULL. You can program without fighting NULL.
jneen··on _why's site updated again
Also the redirect to "celebsbukakke.com/thdvl/". wtf.

(totally sfw, by the way)

(edit: except for everything else on that domain)

jneen··on _why's site updated again
here's a transcription of the "trials" sequence:

## TRIALS

TRIALS

Once a year, I take a month & I read everything I can by one author.

This year I read 4 books by Thomas Bernhard in one month.

And the year before that, it was everything by Denton Welch in one month.

But - in 2009 - see, this was very very dangerous - I read everything by Franz Kafka in one month.

I started with "Amerika."

It was August.

I read The Castle.

## READING

I read The Trial.

I read all the short stories.

I read The Stoker, even though it's (verbatim) the 1st chapter of Amerika - because I really enjoyed Amerika.

I read all the deleted stuff.

All the Blue Octavo notebooks.

The Burrows and so on.

I skimped on the letters.

(Don't care who he was outside of his own imagination.)

And when I was finished, I felt done.

It went quick.

## BURN

I finished early.

I was done.

I was decimated.

To program any more was pointless.

My programs would never live as long as the trial.

Hadn't he told Max Brod to destroy all of those books?

He had sad to burn them, my friend, to burn these books.

But look, here was Amerika, thoroughly reconstructed.

## YOUGETIT

And yet completely unfinished, in my hands.

What if Amerika was only written for 32-bit PowerPC?

Can an unfinished program be reconstructed??

Can I write a program and go, "Ah, well, you get the gist of it."

If The Trial was written for 32-bit PowerPC, Max Brod wouldn't have to burn them! He would just be like, "How do I even get this thing off the hard drive?"

## EYES

But no.

It wasn't written for 32-bit PowerPC.

It was written for eyes.

At the end of Amerika, we don't even know how Karl gets to Oklahoma.

Who cares - he's in Amerika and he goes to Oklahoma.

In that last chapter, they say, "Does everyone have their identification papers?"

And a woman pulls a large bundle of papers out of her baby carriage - her perambulator - and raises them.

Karl has no papers, he simply raises his hand.

## FAREWELL

This is good enough, so they let him by.

What if he had not told Max Brod to burn them?

What if he had just not said anything to Max Brod except, "thanks a lot," and, "A fond farewell to you!"

In fact, seems weird he didn't burn them himself.

Tuberculosis doesn't stop you from burning paper, right?

A thousand pages.

Two thousand pages.

Maybe three thousand pages.

## FIRELESS

That's a lot, but I think he could have doone it, even alone, even with tuberculosis.

Imagine Kafka's fiendish little face rubbing his hands over that fire!

Seems fun.

Or he could have hidden it inside an old 32-bit PowerPC.

No one's going to look there.

Just goes to show that you can't trust people who aren't you.

Of course he didn't want them burned.

That was just Kafka, writing his own death.

The ending has his signature on it.

Reality's kind of a medium, maybe greater than paper.

## TORN

We all want life to have the same texture that we read about in novels.

Promise me you'll never read all 3 Kafka novels in a month.

jneen··on _why's site updated again
Okay, so I've curated it a little bit - flipped everything right-ways-up, and arranged it into what I think are three logical sequences in what i think is the correct order:

https://www.dropbox.com/sh/r9m1nlo4c7i7umf/cpUb9PU6pJ

jneen··on _why's site updated again
1. install ghostpdl - I'm using version 9.07 from here:

    http://code.google.com/p/ghostscript/downloads/detail?name=ghostpdl-9.07.tar.bz2
2. Download all of the things

    curl whytheluckystiff.net | grep SPOOL | cut -f1 | cut -d/ -f2 | while read line; do wget http://whytheluckystiff.net/SPOOL/$line && pcl6 -o $line.pdf -sDEVICE=pdfwrite $line; done
jneen··on Don't Copy-Paste from Website to Terminal
My point exactly. No one is ever actually going to read all the code, so you have to start your trust somewhere. Especially if you're going to type `sudo make install` at the end (which is why I advocate things like ~/.local to prevent the need for that, but I digress).
jneen··on Don't Copy-Paste from Website to Terminal
I mean, untarring a downloaded tarball from somewhere and running `make` is just as dangerous, right? Only there you can make sure the checksum matches, but people skip that step all the time.
jneen··on How to Prototype an App in 1 hour: meet POP
This is my new response to anyone who wants their design to "pop".
jneen··on The Fireplace Delusion
> He assumes religious people reject atheism because of an emotional response to atheists' arguments, so he's trying to provoke the same emotional response in atheists to give them insight into the minds of religious people.

This, it should be mentioned, is a very wrong assumption.

jneen··on Microryza (YC W13) - crowdfund science that changes history
Double-take: "Luckily her professor funneled money from an existing NIH grant to fund her side project."

But seriously, this is awesome, guys. So much science just doesn't get done because nobody's willing to fund it.

jneen··on Hulk: A Haskell IRC server
Ooooooooo neat!
jneen··on Ruby 2.0.0 Released
I've been waiting for that for a long time ._.
jneen··on Hulk: A Haskell IRC server
The key is that you want an alg designed for passwords, not for checksums. The design goals of each are very different.
jneen··on Hulk: A Haskell IRC server
Neat trick with the generalized derived classes! You don't actually need to make IRC a monad transformer if you don't need it. Just drop the `m` from the `newtype` declaration, and you have a nice simple `IRC a` monad.
jneen··on Hulk: A Haskell IRC server
HULK SMASH SHA1 FOR PASSWORDS!

No seriously, before you get like a million users you should switch to a much slower hashing alg that's designed for passwords, not for checksums. Scrypt is good, bcrypt is good, and there are a few others. But here's a(n?) scrypt package on Haskell that will do it for you and has a really nicely designed API: http://hackage.haskell.org/packages/archive/scrypt/0.3.1/doc...

jneen··on Tom's Obvious, Minimal Language (like INI, only better)
Yeah, that's gonna be a tough one.

But I think the "square bracket list" things only ever occur in value position, and the headers only ever occur in root position, so it's not that hard.

jneen··on Ruby 2.0.0 Released
And this day shall be know as Ruby Two's day.
jneen··on 25 Years to Mac - How Ubuntu Pushed Me Away from the PC
Yeah, the whole X + Unity stack is mind-bogglingly complex, and nvidia is a pain. Their driver is proprietary, so you have to use all of their custom configuration tools to make everything work, and whoopdedoo, their configuration tools are crap.

It took me about two hours to set up XMonad, and about an hour to tweak it to my liking. I haven't touched it in a year. AND since its configuration is stored in a file in my home directory like everything else, and not some random keys in gconf, I can link it into my Dropbox, and persist it across reinstalls. I've switched computers twice - it takes me about an hour to set up my whole environment.

jneen··on Confessions of a Git Skeptic
I'm not sure what you mean by "we maintain extra repositories on a staging server for deployment". What exactly are you doing, why is that necessary, and what extra steps does it involve?

The "extra steps" (the index, remote branches, etc.) are there for a reason, and that reason is to give you the tools to be careful with your codebase.

I always use `git fetch`, for example, because unless I've been doing something reeeeally weird, `git fetch` will never touch my local work. At all.

The index allows me to make sure I know exactly what I'm committing, and the extra step gives me the chance to look over it once again before I commit. (`git add -p` and `git commit -v` help a ton here, even though it feels like they "slow things down"). I never have "Oops, I didn't mean to commit that" moments anymore.

And the merging model (yes, with those opaque commit-hashes and mutable history and 3 kinds of branches) allows me to fix things when I screw up (or one of my coworkers does). Which still happens all the time, because we're human.

I think you could get a lot more out of git if you were willing to invest the time to learn more about its branching model (which really is elegant once you understand it), and to configure it properly. Otherwise, you may have a look at Mercurial, which has a more svn-like experience.

jneen··on Ask HN: State of Django vs. Rails?
It's more like Python toolchain vs. Ruby toolchain these days.
jneen··on Introducing Boxen
Seriously. I find Apple's UI to be really frustrating to use. And honestly, I can't go back after switching to XMonad.

I have many happy coworkers who use Macs, but please don't make me use one.

jneen··on Show HN: Easy email notifications for major security vulnerabilities.
Timely, given the recent PyPI breach and Rails/Ruby YAML parsing vulnerabilities.
jneen··on Monads for Normal Programmers
Uh, these are not monads. These are actually what we might call "wrappers". They just provide a nicer interface for an underlying API (the DOM in jQuery's case, and sql queries in Django's).

What is a monad is JQuery.Deferred, with the `.then(...)` method as the `bind` operator. This has to be monadic, because it wraps a promise of a value that can't be computed synchronously.

jneen··on How to Parse Ruby
Yep. It's surprising how many things can be missing from a lexer and still be "good enough" for most people. I don't know anybody who's actually used that heredoc-stacking thing.

:D I guess you're the author of all those frustrated "wtf ruby" comments I found in the pygments lexer, then :). I seriously doubt I could have done it at all without pygments as a reference.

My vim does fine on that file: http://imgur.com/VSYr4aa . Maybe I'm using a more recent version...? It misses some of the `end` keywords, but that's just a quirk that it has ;)

Another example that bit me - this took the longest, I think:

    foo = 10
    foo %(2) # call method foo with string "2"
    foo % 2  # the value of foo modulo 2
    % 2      # the string "2"
jneen··on Sexual Energy and Creative Genius [mildly NSFW photo]
NSFW above the fold (rather mild, but you may get odd looks from your coworkers)
← PreviousPage 3 of 8Next →