HNHacker News
TopNewBestAskShowJobs

elehack

1,764 karma · joined February 7, 2011

Associate Prof., Information Science, Drexel University.

Lead developer, LensKit recommender toolkit.

Ph.D, University of Minnesota.

submissionscomments
elehack··on The Future of JavaScript
JavaScript's 'var' behavior is a bug codified in specification. It is counter to pretty much any other C-style language; the difference is particularly acute because it breaks closures. So while other languages (e.g. C) could optimize their variable implementation to be like JavaScript's and still make sense, the fact that JS has closures means this breakage becomes visible on a routine basis.

However, they cannot change var's semantics and retain backwards compatibility. So they did the next best thing: introduce a new keyword for variables that work like they should. That keyword is 'let'.

As far as I am concerned, if your JS is known to execute in an environment with 'let', 'var' might as well not exist. Too many subtle errors — “what do you mean, braces don't actually delimit scope?”

elehack··on High performance libraries in Java
I use the excellent fastutil for primitive collections - it has great integration with java.util collections, and has a more standard design than Trove in my opinion. Works great.
elehack··on Open Access Bill for (nearly) all US publicly-funded research
I really like seeing this bill come up - the opposite of the Research Works Act, and a bill that will greatly improve access to research in the U.S.

I am concerned, however, that it uses “peer reviewed journals” as the standard for mandating publication. Computer science does most of its ongoing publication in conferences, not journals; also, specifically naming “journals” seems to me to invite name games, unless journal is defined sufficiently broadly in the bill's text.

I would prefer to see the requirements kick in when research is published in any peer-reviewed publication.

But still, this bill is a great step forward, and things like this are details that can hopefully be worked out.

elehack··on Richard Stallman's Computer Setup
I don't think he uses any, particularly since he is only connected to the internet 2-3 times a day.

He uses Emacs for all his mail and, presumably, contact management. Last I knew, he was still using RMail, not even something newer like Gnus.

elehack··on SSH tricks
One more trick that I really like: using an SSH agent. On Gnome-based systems, Seahorse provides one (sometimes you have to install seahorse-plugins to get it); otherwise, gpg-agent can be an ssh agent. Pageant on Windows, and I'm not sure what's available on Mac.

SSH agents let you keep your key encrypted while only needing to enter your passphrase on first use (with the default ssh-agent, you must load the key manually with ssh-add; gpg-agent and seahorse both prompt you the first time it's needed). Add that to SSH agent forwarding (where multi-hop SSH connections authenticate using the agent on the originating machine, and your key is (A) only on the local machine and (B) encrypted when not in use.

elehack··on Understanding the bin, sbin, usr/bin , usr/sbin split
The feature implementation and details have seen some refinement, so it's much less of a mess in its current state (e.g. the directories are symlinked, not the files): https://fedoraproject.org/wiki/Features/UsrMove

You get wins on packaging (don't need to worry about where to scatter executables, although this doesn't affect many packages), as well as "all software is under /usr", so everything the package manager touches except config file updates is under a single directory. This makes both centralized updates and pre-update snapshotting much more feasible.

I'm really looking forward to this feature. With appropriate support from the file system and yum, it seems like it brings us one step closer to truly transactional multi-package system updates/software installations. Yes, some of this was already possible with snapshotting support in a plugin for Yum, but I think the consolidation will likely make implementing such features simpler and more robust.

elehack··on Understanding the bin, sbin, usr/bin , usr/sbin split
Agree totally.

NetBSD uses the more sensical /usr/pkg for package-managed software, leaving /usr/local for the admin.

elehack··on JSON will be a core type in PostgreSQL 9.2
Look at PostgreSQL's hstore data type - that's pretty much what you're asking for.
elehack··on Why is C faster than Java: git vs JGit
Java 7 uses escape analysis to do stack allocation by default. So, if you play along and write code for which the escape analyzer can activate stack allocation (I don't know what the rules are for this), you can get those benefits.
elehack··on Deca - a systems language based on modern PL principles
Nice to see something actually trying a CLOS-style object system. There are good ideas in there that don't get enough presence in more recent language efforts.
elehack··on Liberating software - interview with Richard Stallman
Stallman does not say that he wants to control what particular software you use - he has simply stated a condition necessary for software to be acceptable to him. Its acceptability or lack thereof is entirely dependent on that pre-stated condition being met, not on his further decision-making.

And if software meets that condition - free for modification and redistribution - then the user (e.g. a government agency) is free to deviate from the maintainer's direction and modify it for internal use.

elehack··on Amazon Won’t Pay Self-Published Author For Books It Mistakenly Gave Away
Except he was playing by the rules, and got shafted anyway. They erroneously price-matched, making his book free, and depriving him of royalties. Their mistake; his loss.
elehack··on White House responds to Patent Petition
> I'm very interested in any citation related to apparent congressional intent that in some cases software should be patentable. Please share.

If memory serves, Kennedy's arguments in the SCOTUS decision in the Bilski case are based in part on apparent congressional intent. I don't have concrete citations to actual congressional activity; this impression is seeing it alluded to or asserted in decisions such as In re. Bilski. I'm making the assumption that the justices are not totally fabricating, although they may be misinterpreting.

elehack··on White House responds to Patent Petition
Until the SCOTUS decisively overturns Federal Circuit precedent, it counts as "the courts". Yes, it seems that the SCOTUS isn't pleased, and things are looking up, but current national precedent is that software is patentable. I believe this is based on some interpretation of congressional intent, and Congress has not stated that it does not consider software to be patentable but, rather, that in some cases at least it should be. I have seen this line of reasoning used in court decisions I have looked over.
elehack··on White House responds to Patent Petition
Reasonable response, especially given the current legislative and judicial situation. USPTO doesn't have the authority to unilaterally cease issuing entire classes of patents when Congress and the courts have, so far, directed otherwise; what they can do, however, is seek to improve patent quality & decrease vague patents. I'm not sure how successful they will be, especially given funding issues, but this stance seems to be about as far as they can go at present. We need change to come from elsewhere, including the law schools (so lawyers get disabused of this notion that software + computer results in a new machine).
elehack··on Ubuntu 11.10, Introduce new top-level directory /run
Then why is the link to the description of the Debian feature rather than to Ubuntu's documentation of it?
elehack··on Ubuntu 11.10, Introduce new top-level directory /run
It's an interesting run-down of the new Debian and Fedora feature (and a very good change IMO), but the title is misleading - what does the linked article have to do with Ubuntu, 11.10 or otherwise?
elehack··on Go Ahead, Sell My Data
Short version: lulzsec and blackmail/public embarrassment.

Intruders count as the "wrong hands". A future buyer/board/CEO with fewer ethical scruples than the current managers of a given data set may count as the wrong hands, or allow it to fall into other wrong hands.

elehack··on Go Ahead, Sell My Data
One major concern that remains relevant is the prospect of abuse. You can't steal, misappropriate, or abuse what doesn't exist in the first place. You can't subpoena or execute a warrant to retrieve data that was never stored.

Privacy laws and rules provide some projection, but that only goes as far as they are enforced. Nonexistence of data cannot be subverted and is a much more robust protection against the data falling into the wrong hands.

The issue isn't necessarily who has the data now. It's who might get it later.

elehack··on FSF: Campaign against windows 8 "secure boot"
I can't get to the article, so I haven't read it yet and can't comment on it specifically. However, pre-emptive concern is not necessarily FUD. A little sabre-rattling can send a signal to manufacturers that they need to provide an option to disable secure boot or they will tick off a vocal customer base. Waiting until someone has actually locked out alternative operating systems is somewhat too late; the point is to prevent them from doing it in the first place.
elehack··on Tell HN: I just open-sourced the e-mail client I spent 2 years of my life on
Yes, but they have to give credit back. Better than nothing - people can follow the trail.
elehack··on Bitbucket now rocks Git
Oh wow, that is an improvement. Their issue UI used to be pretty bad. I'm glad they've improved it so much. Might be time to re-evaluate using it.
elehack··on New Ubuntu in 9 days, 18 hours, 51 minutes and 29 seconds
I was growing increasingly dissatisfied with other aspects of Ubuntu as well. Unity was just the last straw.
elehack··on New Ubuntu in 9 days, 18 hours, 51 minutes and 29 seconds
While it's taken flack for Gnome Shell, I switched to Fedora when Unity was coming down the pike and have been very happy (and actually like Gnome Shell).

And the Gnome people seem to have gotten at least some of the message gurkendoktor mentions in another thread - they have screenshots of the core features of the product in action and videos showing how different UI flows work.

elehack··on Mozilla's secure coding guidelines for web developers
A while ago, Tracfone's web site had a rather disappointing bug. Both the account registration and login flows did password validation, and used different validation functions. The result was that I could create an account with a password containing special characters that the authentication system would reject as containing invalid characters (and therefore not even try to verify against my stored password/hash).

Moral: account registration and authentication must use the same password normalization functions, and if you validate at auth time (which is pointless, but hey), the validation function must be the same as the registration one.

Better moral: just don't do silly things with passwords. Encrypt them and store them, accepting whatever the user wants to send you that's sufficiently long/high-entropy.

elehack··on “I hate almost all software” — Ryan Dahl
> There is also "sudo su" (unless explicitly disabled by your admins) to avoid repeated invocations of sudo while you are performing a long admin task.

You can also do 'sudo -s', which keeps you in your normal user's shell. It's pretty slick.

elehack··on Princeton bans academics from handing copyright to journal publishers
In some fields, I think this may have huge impact. No math or CS journal would want to be unable to accept Princeton publications.

Even if publishers make exemptions rather than change their policies, it sets a precedent that exemptions can be made for institutional requirements.

elehack··on Facebook Defends Getting Data From Logged-Out Users
I would remain suspicious if there was any identifying or unique information in cookies after logout. Ideally, logout should delete all cookies.
elehack··on OpenBSD imports nginx into tree as future apache replacement
Not initially, but he did use it for a while.
elehack··on OpenBSD imports nginx into tree as future apache replacement
No - that's not how things work in *BSD systems.

On Linux distributions, all software is typically "equal" - everything is a package, and the only difference is what repository it comes from.

In BSD, the base system and ports are entirely distinct. The base system is a single coherent unit installed and upgraded as one piece (although the installer allows you to omit some portions of it).

The ports provide additional software packages installed and managed separately on top of the base system. The base system is maintained and patched by the core developers and officially supported by the organization. The ports are provided effectively as a convenience, and are not covered by the same security and maintenance procedures as the base system.

← PreviousPage 5 of 8Next →