HNHacker News
TopNewBestAskShowJobs

novas0x2a

395 karma · joined July 4, 2009

mike[at]fluffypenguin.org

[ my public key: https://keybase.io/novas0x2a; my proof: https://keybase.io/novas0x2a/sigs/kjTAsnST-L6qfThObrqWVNdOcFE1JjA4q0O62SZBSyM ]

submissionscomments
novas0x2a··on NASA wants your help with a simulated lunar mission
More information about the Desert RATS project: http://www.nasa.gov/exploration/analogs/desert_rats.html
novas0x2a··on Useful things you can make SSH do
My favorite trick (in .ssh/config):

  Host *.internal.workdomain.com
  ProxyCommand ssh gateway.workdomain.com nc %h 22
  ForwardAgent yes
  User <username>
Then you can type

  ssh bender.internal.workdomain.com
and ssh will automatically connect through the gateway to the (normally inaccessible) internal node. ForwardAgent will pass the credentials through. (If you copy this blindly, note that this requires netcat). This configuration lets you pretend (to tools like scp, rsync-over-ssh, etc) that you have direct access to the machine in question, even when it goes through a gateway machine:

  scp config bender.internal.workdomain.com:
  scp bender.internal.workdomain.com:logfile .
novas0x2a··on HTML5: Changing the browser-URL without refreshing page
Cookies have this problem, too (anyone from the same domain sees your cookies, and you can't really count on the cookie path). So does XMLHTTPRequest. Same origin[1] is pretty much the governing rule here; there wasn't any point in making pushState any more secure than the rest of the system.

1) http://en.wikipedia.org/wiki/Same_origin_policy

novas0x2a··on Varnish guy's hatred for autoconf
First, caveat: this is for C++.

I wrote a major part of a complex build system in autoconf[1,2]. I gotta say, just about ANYTHING would be better. There's no abstraction; at no point can you forget you're writing m4sugar (implemented on top of m4) that is writing bourne shell code. There's no indication if you screw up in subtle ways except an sh parse error when you run configure. I've had to run configure with sh -x more times than I can count. EVERY SINGLE autoconf release changes the interface, and there's no reasonable way to detect the autoconf version to work around it. Every autoconf release requires hours of tinkering. Autoconf 2.65 changed the quoting rules for m4_upper and m4_lower; making those work reliably on old and new versions is obnoxious.

I've spent many, many hours working on autoconf code. I consider myself an expert at it. And yet, I'm willing to throw it all away and replace it with ANY build system that isn't a pile of junk. I just haven't found one yet :(

The only ones that rise above the noise are scons, waf, and cmake. (No, I'm not using jam/bjam or ant. DIAF.) CMake does most of what I want, except they invented a completely idiotic new programming language. Waf and CMake both provide me with a system to make a build system instead of a build system itself (screw that). SCons reinvents make... poorly and slowly. Of these, only cmake handles windows without forcing me to sit in front of a windows machine for hours. (Autoconf, obviously, falls over hardcore on windows unless you set up a Unixy build environment on it. Not The Point.)

Anyway, that was a cathartic rant. (No, but seriously. I'm up for more suggestions, or you can try to convince me that my opinions of the above tools are wrong. I really do want to switch away, I just haven't found anything that's a big enough improvement to justify it.)

1) http://github.com/visionworkbench/visionworkbench/tree/maste...

2) http://github.com/visionworkbench/visionworkbench/blob/maste...

novas0x2a··on Firefox 4: CSS3 calc()
The calc() function is part of the CSS3 /Values & Units/ module[1] which is currently in Last Call status[2]. Here[3] are the status definitions that apply to CSS3. It doesn't make sense to remove the moz prefix until the standard is (probably) done changing.

In addition, mozilla's implementation of it is still in flux (since it's not done) and using the non-extension terminology for an in-development feature is a great way to convince people to use it and then screw them over when you change it.

Also, I found out about all this because you asked. So thanks for causing me to learn something new today :)

1) http://www.w3.org/TR/css3-values/#calc

2) http://www.css3.info/modules/

3) http://www.css3.info/css3-development-status-an-explanation-...

novas0x2a··on Things you shouldn't do: Two pointers in one field.
Someday you might have to program in an actual resource-constrained environment, and you'd understand why sometimes you have to do stupid things to meet your constraints.

Use half the memory -> buy a smaller memory chip per unit -> spend less per unit -> profit more per unit.

But maybe you should stick with the Ruby. I hear there's money in that.

novas0x2a··on Posterous no longer includes site names in Facebook streams
That doesn't really solve the problem: "Bob's Assault on Stupidity" becomes "Read more on Bob's Ass..."

Arbitrary truncation of English text is guaranteed to result in amusing edge cases. Besides, how often does a blog title fit into 25 - len("Read more on ") - len("...") = 9 characters? I couldn't even find a posterous that wouldn't truncate under that rule. Truncation is ugly- it should be a worst-case exception, not something applied to every single post.

novas0x2a··on Staying the hell out of insert mode (vi)
What do you mean "yet"?

vim has had code folding for years:

  :help fold.txt
If you want to indent code, < and > are your friends. (Really? Indenting code with search/replace? What are we, barbarians?)
novas0x2a··on Staying the hell out of insert mode (vi)
Also, a gem that most people don't seem to know about: a standard vim install comes with a program called `vimtutor`. Running it will put you inside vim with an excellent first tutorial, suitable for beginner vimmers.

Good luck! The muscle memory you learn now will pay off in the future! :D

novas0x2a··on 26-gigapixel panorama of Paris; try zooming in near the horizon
Gigapan.org has a snapshot feature for that. 26-gigapixel is bigger than most (all?) of what Gigapan has, but they have a bunch more. The Obama inauguration one[1] is probably their most famous.

I don't really ever get tired of being able to "enhance! enhance!"[2] an image.

1) http://gigapan.org/gigapans/15374/

2) http://www.youtube.com/watch?v=Vxq9yj2pVWk

novas0x2a··on Linux Game Publishing introduces DRM - Ubi take note
My responses will focus on the PC market, mostly. The console market is a different beast altogether.

> Instead of relying on a single instance of a product making money for years to come, focus more on new games

Sell it at a loss, make it up in volume? Right.

> or in-game content sales.

That's exactly what I DON'T want. Dragon Age has a guy in your camp with the "I have a quest!" marker above his head. Except it's a paid quest. And you can't make him go away. Die. And what, exactly, is supposed to prevent someone from pirating in-game content sales?

DRM sucks. But so do people. LGP is a small company fighting the good fight. They have clear evidence that piracy is taking place. There are only a few things they can do about it:

- Suck it up and take it. This is the route that most indie/small companies take. Estimates at the piracy rates from other indie devs seem to be about 80-90% [1][2][3].

- Build DRM like 2k games, using SecuROM and like technologies, that make users despise you. This option is expensive in both money and reputation.

- Build DRM like Steam or Stardock's Impulse, where the pain of DRM is offset by the community aspects and other perks. This option is expensive in money, but the reputation damage is minimal.

- Do something quick and simple. LGP seems to have implemented this option.

I posit[1] that DRM does reduce piracy. It cannot stop it, but it can reduce it. Most vendors try to come up with a 100% solution that turns out to be an 80% solution while screwing the legit user over. LGP has chosen to aim for an 80% solution, and I bet it will be just as effective as the other DRM schemes (which is to say, maybe 10-20% of people who would have pirated won't. It only has to pay for itself, remember!). The LGP solution isn't described in much detail, but if it works the way they claim (no internet connection, etc) it seems to fail open. How common is that? I really hope this works for them, because evidence that this works would be a great precedent.

Due to this scheme, when LGP says they're giving you a license for the game and not the game itself, they really mean it. They're giving you the benefits of a license-based scheme rather than just the usual punishments. This sort of scheme is exactly what I want the RIAA to implement; I want my collection in the cloud, and I want to be able to download and play the music on any computer I want, as many times as I want.

1) http://www.gamasutra.com/php-bin/news_index.php?story=17350

2) http://2dboy.com/2008/11/13/90/

3) http://www.gamasutra.com/view/news/25809/TapFu_Developer_Cla...

novas0x2a··on Yuri's Night: Bay Area 2010
It's a crazy mixture of burning man, a music festival, and a nifty tech fair. It's a great blend- watching the burners and the non-burners (... like my parents) interact was awesome.

I was one of the organizers two years ago (which was the last time it was at Ames). Even though the day of was sort of frantic for us, I had a blast. Music everywhere, things throwing fire, lots of great geeky exhibits. And it's all in and around some hangers just off the Moffett Field runway!

I'm not directly involved this year, but many of the same people that ran it then are working on it now; I expect it to be awesome again this year. Hopefully my mass of positive adjectives encourages you to check it out this year. Heh.

Some nifty pictures (not mine):

http://www.flickr.com/photos/spacemansam/2422866234 (NASA Ames Center Director Pete Worden in costume as a Soviet general!)

http://www.flickr.com/photos/smashz/2412213920

http://www.flickr.com/photos/unknown8bit/2482966738

http://www.flickr.com/photos/keturah-jj/2466351237

novas0x2a··on Open letter to Google: free VP8, and use it on YouTube
I might as well respond to myself with a mea culpa. I'm totally wrong with my history; I went to the horse's mouth: xiphmont/Monty, who has been with xiph since (at least? I think?) 1999, log from freenode/#vorbis:

---

novas0x2a: i feel vaguely insane. did xiph ever (2002 timeframe, perhaps?) charge for a vorbis encoder or decoder? I had a pretty distinct memory of that, but going back and researching it, I can't find any sign of it. Did anyone ever charge for an encoder or decoder impl?

xiphmont: I've taken on works for hire in the past. That was not as part of Xiph. There was also a work for hire the company renegged on, and we opened that as the original Tremor. But I also wrote a decoder with Neuros and wrote an encoder for Mercora.

novas0x2a: I think I remember reading about tremor before it was open, and that's where my misconception comes from. thanks :)

novas0x2a··on Open letter to Google: free VP8, and use it on YouTube
My understanding is this (correct me if I'm wrong...) is this is exactly the business model that has killed Vorbis. Xiph originally created a floating-point free reference implementation, and charged for the integer decoder. You pretty much have to use the integer decoder for any sort of hardware implementation, so the effect was the same.

With few users and a paid barrier to entry, few hardware vendors took the leap. No hardware support means fewer people bothered to encode to Vorbis... and the spiral to the bottom continued.

If you're trying to use the network effect to your advantage, you do exactly what the MPEG-LA has done: the first couple of years are free, then everyone pays. The only want to combat that is to do the same.

novas0x2a··on Interview with Daniel Brusilovsky, The Writer That TechCrunch Terminated
I think I believe him, actually. Or rather, I believe that he didn't seriously mean to trade a post for an Air. It looks to me like he just didn't have the experience to realize that you have to be careful when you're joking about an ethical violation. I'd like to believe the conversation went something like: "We have this new product coming out. Could you write it up?" `Hm. I don't know, I have a bunch of posts I'm currently work on, not sure if I can take on another for a few days.` "Is there anything we can do to change your mind?" `How about a <pie in the sky request>?`

For a 17-year-old (even a fairly-well-connected one) an Air is a pie in the sky request. If he had asked for a nugget of platinum or an Oscar, it would have been obvious that he was joking. As it was, he (probably) asked for something that to him WAS obviously joking, but to most of us is an easily-attainable object; that inequity easily leads to the current situation.

I'm not saying that's how it happened (also: I have no inside information or anything) but this is why I'm not prepared to burn the kid at the stake for it. A lack of experience led to a critical mistake; one that I don't think he'll make again. It sucks for him that his mistake is so public, but that's that's the way it goes.

novas0x2a··on The gunfighter's dilemma
I have to second nfnaaron here. The gun is always loaded. I don't care if you just unloaded it. It's still loaded. That's one of the most fundamental gun safety rules. Violating that rule, in my view, means you are not responsible enough to own a gun. I mean, there are really only three safety rules; it's not like there's a huge list.

There are plenty of ways to simulate the exercise with no risk. If you want to do stress exercises, you need to come up with a different way. This[1] is one of the standard ways. Notice that at no point does a real gun get pointed at a human being? That's by design.

1) http://en.wikipedia.org/wiki/Tueller_Drill

novas0x2a··on Google Chrome's H.264 support not true "free" software
You're right on the former, I was under the impression that it was an economy-of-effort thing rather than an ideological thing. However, I'm not sure I agree that it would be as hard as you think. The mime types are registered here[1] and the impls are here[2]. Each media type is implemented as a state machine that could wrap ffmpeg. That's where I would start, I suspect.

EDIT: Looks like someone's already blazing that trail[3]. They're using gstreamer, but the research they do for that will show anyone how to add a new one.

--

1) http://hg.mozilla.org/mozilla-central/file/b27f05c8743b/cont...

2) http://hg.mozilla.org/mozilla-central/file/b27f05c8743b/cont...

3) https://bugzilla.mozilla.org/show_bug.cgi?id=422540

novas0x2a··on Google Chrome's H.264 support not true "free" software
I took a quick look at the firefox source, and it looks like they wrote their own media-handling code (implemented with libtheora, etc).

I did a bit more research, and found this[1] bug. Mozilla explicitly rejected using ffmpeg on mostly-ideological grounds. So, I guess there's plenty of blame to go around. They're still bound by software patents, but they could allow their users the ability to choose, and they refused.

... So I guess that means we're now in violent agreement. :)

1) https://bugzilla.mozilla.org/show_bug.cgi?id=541494

novas0x2a··on Google Chrome's H.264 support not true "free" software
I'm not sure you understand the problem here. They do not have a license to use h264, and even if they did, they could not afford to share it with you. Distributing patent-encumbered GPL code violates the spirit of GPL-2 and the letter of GPL-3. If you don't like it, campaign against software patents.

Chromium's approach to this is slightly better, but it's not all there yet. (Speculating here) Google can afford to distribute Chrome binaries with license protection, but they most likely track the total downloads in order to pay the fees. They cannot easily track the source, which is why Chromium doesn't ship with h.264 either. However, it uses ffmpeg, so if your system ffmpeg has h.264, you'll be able to use that (after this is fixed: http://code.google.com/p/chromium/issues/detail?id=21318)

Ideally, that's the approach Mozilla would take, too. If not, as other posts mentioned, the distros that are willing to distribute non-free will eventually solve the problem.

As they say: Patches Welcome.

novas0x2a··on NASA uses GIT as the SCM for their Open Projects
mike[at]fluffypenguin.org (I've added it to my profile now, too). For some reason, it's taken me a long time to realize that the email I put into my profile isn't visible to others unless I also put it in the about box :)
novas0x2a··on NASA uses GIT as the SCM for their Open Projects
I work for NASA Ames (here: http://ti.arc.nasa.gov/groups/intelligent-robotics/). A bunch of us use git where we can, and git-svn for the rest of it.

We're going to be meeting with the lawyers in a few weeks to hopefully get official blessing for pushing any NOSA-licensed project (agency-wide) to github. A couple of my group's projects have open-source releases, but don't really practice open-source development (non-committers can't see the repo). I'm trying to fix that :)

I can keep HN posted if people care, or want to use us as a convincing tool- "hey, the federal government is adopting something faster than you are... something's wrong". Obviously, no promises that it will happen exactly as I say, because... lawyers. We just have to get past their trained skeptical conservatism.

It's worth noting, though, that NASA is not even close to a homogeneous entity. My group is one group in one division at one NASA center (and a smaller center, at that). Many groups are run autonomously by their group leads, and culture is mostly maintained at the group level. Open-source is already here, it's just not distributed equally :)

novas0x2a··on NASA Discovers A Ring Around The Solar System
You're right that there isn't much air in space, but bowshock isn't specific to "air". There most definitely is bowshock in space: http://en.wikipedia.org/wiki/Bow_shock
← PreviousPage 2 of 2