HNHacker News
TopNewBestAskShowJobs

_sh

614 karma · joined February 25, 2009

submissionscomments
_sh··on Files and folders
For those who argue that the hierarchical filing system isn't going anywhere, consider Yahoo vs Google. Yahoo was once a hierarchical filing system for the web, Google's philosophy was 'search don't sort'.

For those that argue that tags aren't hierarchical filing systems, consider that '/Documents/Theses/TagsVsHierarchies' is the same as tagging 'TagsVsHierarchies' with 'Documents' and 'Theses'. It's turtles all the way down.

_sh··on Herd
"The kernel battle"? Oh please. Why must everything be cast in terms of winners and losers?

If you insist: the absence of a microkernel implementation, regardless of its technical feasibility, means we are all losers of "the kernel battle".

_sh··on Paul Graham on Spaghetti Code
Although it looks impoverished, it's really just a foundation for developing your own abstractions, and syntactic sugar goes a long way (I've bound the Alt-> key to → and use it for 'send').

CLOS-like systems can be built on structs with the racket/generic module and Typed Racket makes multimethods trivial.

_sh··on Paul Graham on Spaghetti Code
Files are a case where the object metaphor makes sense-- there's a bunch of tightly-wound connected state, and I/O is inherently stateful.

And user interface widget libraries, which are all about I/O. Even Racket's widget toolkit leverages the superb racket/class encapsulation mechanism.

_sh··on JQuery 2.0 Released
Backporting bugfixes has a cost. Requiring 1.x to support IE15 pushes that cost onto the jQuery developers instead of where it rightfully belongs: migrating your app to a recent version.
_sh··on Don't send me a message to tell me I have a message
It's "unforgivably bad design" only if enough people don't click...

I understand your sarcasm, but 'good design' is an aesthetic, not a metric.

[edit: on second thoughts, I think I may have over-simplified things. Is 'good design' purely quantifiable?]

_sh··on The Lambda Papers
Previous discussion about the relative merit of these papers versus the relative number of times a link to them floats about: https://news.ycombinator.com/item?id=599306
_sh··on Keeping Passwords in Source Control
I had a look at these two applications. I couldn't figure out if they do anything that Vim's ':X' doesn't do? Partial key-sharing? Access delegation?
_sh··on Racket v5.3.2
Racket now has all manner of purely functional data structures (Okasaki and Bagwell) available as a library on Planet:

http://planet.plt-scheme.org/package-source/krhari/pfds.plt/...

_sh··on μLithp - a Lisp in 27 lines of Ruby
A lisp program's code can be manipulated by the program itself. Lisp programs are self-aware.

It's a bit mind-bending, but from this simple foundation comes the power to easily create and assimilate ever higher-level abstractions (which is what programming is really all about). Parts of a program can be used as a template for creating other parts as needed. You can assemble these parts and shape the language into something very specific for the problem you are solving.

Other languages come part-way, but don't fully embrace this concept (code=data) because it has a cost: it seems difficult to learn because it requires a change in thinking; it seems difficult to write (and read) because you're directly encoding a data structure and it all looks a bit 'samey'. Where other languages have 'shapes' in their code that give the trained eye an indication of what the code is expressing (such as for...do loops and indentation), lisp code has one shape: a tree [1].

I don't know if I've reached beyond your understanding. I haven't meant to, but the takeaway should be this: lisp programs are self-aware and can operate on themselves because a lisp program is just data like any other. This makes it easy for the interpreter/compiler (hence 'lisp in x lines of code'), but more difficult for the programmer (at first). As with all things, practice and familiarity overcome these initial difficulties. It is worth it.

[1] http://en.wikipedia.org/wiki/Tree_(data_structure)

_sh··on Scheme vs Common Lisp: war stories
The accepted answer is an excellent post. In it is this gem:

> Scheme's syntax-case is far more subtle and complicated than any one thing in Lisp.

While syntax-case seems complicated at first because it involves a similar mind-bending to that first time when you learned about lambda, it is my number one power tool that keeps me coming back to scheme (the other being a small 'surface area' that I can keep in my head without having to keep skipping between library documentation and code).

_sh··on Learn Languages, not Frameworks
Isn't a language just a framework for abstracting machine code?
_sh··on Introducing Tent - the decentralized social web
A cluster of camps, perhaps related to a specific topic, could be called a 'Jamboree'.
_sh··on Ask HN: Competitor smear campaign. What to do?
My helpful suggestion: get a lawyer. Don't bother contacting Google/Bing or doing anything else until this is done first. Doing anything else is stupid, risky and futile.

On the plus side, this is a great opportunity for some clever PR spin provided you are savvy enough to out-manoeuvre your competitors. Also, depending whether you are the plucky upstart or the entrenched power in your space, your competitors have just validated your business model and your company's worth.

_sh··on Mozilla removes -moz-opacity; man threatens to sue for $18,000
While the site is indeed good, if you want truly awesome, BEHOLD the POWER of the TIME CUBE: http://www.timecube.com/
_sh··on Arch Linux to migrate to Systemd

  There's a whole bunch of tools groping awkardly in a single direction here:
    1. Give a graph to the computer
    2. The computer makes the graph a reality
The good ol' fashioned make tool does exactly this and, in the spirit of Unix, pretty much nothing else.

The problem is in determining whether the dependencies of a node in the graph are satisfied. Make does this by comparing file times. All the other 'graph resolving systems' you mentioned do something different. Obviously the solution is to abstract the dependency test from the graph itself. Then all these systems become pretty much the same.

_sh··on Erlang programmer’s view on Curiosity Rover software
As to what compiler NASA uses, their C Coding Standard [1] nominates a set of flags for GCC (page 8).

http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf

_sh··on App.net funded with $500,000.
Once you've paid for Internet and power, being 'social online' is indeed free.
_sh··on Show HN: SendRail - Easy P2P File Transfer From The Desktop
Port knocking makes no sense in this situation. I think it's something more like STUN (RFC3489).

http://www.ietf.org/rfc/rfc3489.txt

_sh··on Is Apple Losing Its Shine After Steve Jobs?
Before this ignorant meme gets too much of a footing here, why don't you Betteridge your flapjacks off with this one:

  Why is Apple losing its shine after Steve Jobs?
_sh··on In Job Hunting, the Pas de Deux of Seeker and Offerer
"I'm sorry, my current contract forbids me from discussing my remuneration. I'm sure you understand and have similar policies. However, I can give you a ballpark figure: more than <insert your desired base salary here>."

Or you could just be honest and tell them what you're currently earning. They still have to make you an offer, and you're free to reject it. I don't think telling potential employers your current salary is losing 'the hand', or if it is, you have plenty of opportunity during the negotiation of your offer to get it back.

But really, if your potential employer has a simple go/no-go flag on some salary threshold, then you can be sure you don't want to work there--especially because your co-workers there have (like yourself) won a race to the bottom.

_sh··on Does social media use in Indonesia predict Facebook's decline?
"If you can't say it as a declarative statement,"

  Social media use in Indonesia predicts Facebook's decline
"it's link-bait"

QED

_sh··on Implementing Fast Interpreters
Thanks for that clarification--I find myself confusing V8 for JSC every now and then.
_sh··on Implementing Fast Interpreters
Andy Wingo's exploration of V8's Lithium interpreter [1] describes the reasoning behind the Ruby offline assembly generator.

Actually, if you're reading the original linked article, you should also be reading Andy's series on V8.

[1] http://wingolog.org/archives/2012/06/27/inside-javascriptcor...

_sh··on Windows Executable Walkthrough Graphic
Nice one. I'd love to see a walkthrough for .NET executables[1].

[1] http://en.wikipedia.org/wiki/Portable_Executable#.NET.2C_met...

_sh··on Fluid: A UI Prototyping Tool
I'm just amazed you use divs containing data-uri images instead of, say, a canvas element for drawing icons like the battery level and connection signal bars. You must have fought hard with superhuman patience to do battle with the DOM in this way.

I myself have neither the grit nor the will to endure what you must have suffered, but I recognise this amazing achievement. As another poster has said, you deserve your $29 a month for your effort. I take my hat off to you sir.

_sh··on Advice for Marissa Mayer from an ex-Yahoo
Sorry Sriram, I was going to let this whole point slide, but I just can't. I think your advice on the architect issue is out-of-whack.

When I hear the phrase 'fire anyone who has architect in their title', here's what I hear in my internal monologue: Yes! Fire all the architects! Front line engineers know what every other development group is doing and can integrate their systems in a pinch! They are also across the application security requirements recently mandated in government regulation and can implement that too! No-one needs company-wide frameworks, because each development unit's home-grown libraries are good enough. Systems design? Pfft, overrated. Just check it in and break things, it's called 'agile'.

I apologise if my internal monologue sounds shrill, but your advice to 'fire all the architects' sounds similar to advice from developers to 'fire all the marketing department'.

edit: I am not an architect, this is not a defensive rant.

_sh··on Decentralised social network built on top of email
This is an interesting idea that uses email/IMAP as a transport for social message passing. It plays to the strengths of multipart email messages having a human-readable part that is as rich as possible for email client viewing (when users aren't in a social-aware application), and a machine readable part (JSON) for plugging in to the rest of the social infrastructure.

Here is their own summary of problems with this approach (from the article):

  * Not all users have a suitable email service (requires IMAP to support the
    “read it if you feel like it” model).

  * Servers tamper with messages as a normal part of existing infrastructure
    (especially mailing lists and spam filters).

  * Basic IMAP does not provide the full gamut of features required (some mail
    servers don't support all IMAP verbs).

  * Mail systems may have standard protocols, but individual implementations
    may have different performance characteristics.
_sh··on How we make 5000 row tables fast in Streak
If anyone wants to have a play with this code, http://jsfiddle.net/SukX5/1/
_sh··on Rich Hickey: Simple Made Easy
There's this: http://shaffner.us/cs/papers/tarpit.pdf
← PreviousPage 3 of 7Next →