HNHacker News
TopNewBestAskShowJobs

_sh

614 karma · joined February 25, 2009

submissionscomments
_sh··on Twitter Considers Moving Its Headquarters To Brisbane
To keep the fail whale afloat?
_sh··on Arbor.js - HTML5 graph visualization library
For force-directed graph layouts in javascript, see also Springy: http://github.com/dhotson/springy

Demo: http://dhotson.github.com/springy/demo.html

_sh··on Battle of the Lisps

  This problem [of software libraries] was definitely recognized by the Scheme community, and was “solved” in R6RS. However, R6RS seems to have been a flop...
I've heard this argument before (R6RS is a flop), but no-one can give me any logical reason why this is the case. I wish Scheme implementors would stop dragging their feet and implement R6RS already! Only with a portable library mechanism (specified in R6RS) can Scheme users like myself begin the effort of building a standard library platform for all Scheme implementations.
_sh··on Ask HN: Review our web app
Ah, I get it now. There's a two-button toggle: 'code/design'. Pressing 'code' allows you to type in HTML. I think 'design' should be renamed 'preview' because I can't edit in design mode (on Chrome but should that make a difference?).

So yeah, if I'm going to be typing HTML, I'll likely do it with my own editor.

_sh··on Ask HN: Review our web app
I have absolutely no idea what it is or how to use it. It's a web page editor right?

I clicked on the image of a web site on the landing page which loaded what looks like a designer/editor, but clicking around and trying to type things (assuming its an editor) had no result. I 'added a page' or something, but this just confused me even more: now there's the text 'this is just an example page' and I've no idea if I'm supposed to edit it, or what (but I can't anyway so forget it). I looked into the DOM tree to find a text area or anything I could use to interact, but no luck.

I tried, honestly.

_sh··on Give Us Our Data, Facebook
When I sign up to Facebook and use their contact list importer, they are using the private email addresses of my friends to link me into their network. When I export my social graph, Facebook will not return to me the email addresses I gave it when I signed up.

Either way, all this bluster is a red herring. The article has it right: Facebook is outright lying when they claim this is about protecting its users--people who have explicitly agreed to include themselves in my social graph in the first place. It's about owning the social graph.

_sh··on The interruptible programmer
Although I upvoted 'vi TODO.txt', may I also recommend TaskWarrior (command line task management)? http://taskwarrior.org/wiki/taskwarrior/Gallery
_sh··on Publish your computer code: it is good enough
And you don't make friends with salad, i.e. you certainly won't make tenure when your paper is demonstrated as flawed due to errors in crunching the data that would have turned up with testing.
_sh··on The Original Bike Shed Email
My heart goes out to all passionate, dedicated graphic designers. Who would do this job? Not I, for all the tea in China.

Not only does everyone think they know what good design is, and let you know what they think is right, they'll be looking at you thinking 'what do we need you for? why are we wasting money on you?'

You need to first justify your existence, then justify your abilities to people who know better anyway. Who needs this grief?

_sh··on GNOME’s SeedKit gets public release, HTML/JS/CSS in desktop apps
I've been working on hybrid web/desktop apps for a while now. I use Qt's webkit to make the application window a HTML page (QWebView) and load pages bundled with the app or from a remote server (or mix content from both). Whenever I need to reach out to the client platform--in my case, for bluetooth and for app.exit()--I use Qt's javascript/native bridge mechanism for great justice.

As with everything there are tradeoffs. Benefits include reusing libraries for both browser-based and native-based applications portably across client platforms. I have a large library of server code for the kinds of applications I write, so knocking up a new application in that domain is easy. I find writing clients in HTML/javascript easier for my iterative development style. Client libraries like jQuery help too, although I don't use them much as my apps run on an embedded device (333MHz) where they slow down page rendering too much. I use them for mocking up and prototyping and rewrite to inline javascript for deployment.

The biggest drawback is the native client, and I try to avoid having to use one as much as I can. And while Qt is good for Windows/Linux/Mac, you need something else for Android (I can't comment on iPhone/iPad because you can't program the bluetooth on them, so it is useless for my particular requirements). So you'll be maintaining separate clients which can be a bitch, but such is the nature of tradeoffs.

On the whole I much prefer this style of application, playing around mostly in HTML/javascript/perl, dropping into C++ when I need to touch the platform. Originally I thought using a browser might be too slow on my constrained device, but webkit is quite pleasingly snappy--faster than VB for an application one of my hybrid apps replaced.

_sh··on QuickFuse
Neyric's javascript wiring library is inspired by Yahoo Pipes.

http://javascript.neyric.com/wireit/guide.html

_sh··on Protocol Buffers by Google
Huh? I use protocol buffers for rpc all the time. It's even supported in the .proto message format, to wit:

  rpc Search(SearchTermProto) returns (SearchResultProto);
Have I missed something?
_sh··on Designing a RESTful Web Application
And another: PUT is conceptually closer to 'replace' than 'update'. To me, 'update' implies a delta, as in SQL.
_sh··on Things to Say When You're Losing a Technical Argument (2001)
Yeah, or we could all just plink away on Amigas or something.
_sh··on Poll: What database does your startup use?
Does an in-memory scheme hashtable (backed to disk) count as a database? Does my lowly 2-hits-a-week app count me as a web startup?
_sh··on I've Changed My Mind About The iPad
This is a very interesting statement. I've been working with boot times at work recently. In one release, I pulled boot times from ~25 seconds to <7 seconds by going ninja on the kernel and init.

The response was out of all proportion. Users liked it so much, talked about 'latency' and 'improved workflow' (none of the software had changed, only the boot time). There is no doubt that startup time is a significant contributing factor to the way users respond to applications/devices.

I was musing over all this with a co-worker who expressed no surprise, and told me a story how, back in the 90s, he got a similar response from his users by simply removing the splash screen. Not even reducing startup time. He said people were waiting for the splash screen and when the main window opened, they thought it must have started so quickly they missed it.

_sh··on A modest proposal: the Continuous Client
Indeed. As would 'sync tabs', in the same vein as Chrome's 'sync bookmarks'.
_sh··on England to win World Cup, says JPM quant model
But this also means, from a supporter's perspective, that football is unsatisfying because there is a dearth of scoring (one lucky kick undoes 90 minutes of effort from the opposition), and this does not reflect the nature of the match. Also, draws are common, even when there is a clear imbalance between the skill/ability of the teams. I've heard it concluded that the reason football fans are seen to be more 'thuggish' (media hype aside) is that the game often does not satisfy the primal urge to defeat someone/something.

True, the 'one lucky kick' possibility also means that your team wins when it really shouldn't have. Is this really satisfying to a supporter?

(I've also heard it concluded that the glut of scoring makes basketball less appealing for similar reasons, but I haven't followed it enough to determine whether this is true).

_sh··on Diaspora's Curse - Jason Fried
Do you need to run your own mail server because you have an email address?

Diaspora should have a similar model. You can use a hosted node, or one your ISP provides you when you sign up, just like they provide you with an email address.

_sh··on Diaspora's Curse - Jason Fried
Your thirteen-year-old sister's "node" will live exactly where her email lives: on some ISP/hosting co.

Using Diaspora should be no different than "downloading the facebook page to your computer and running it on your browser", for example.

_sh··on What Diaspora Should Do with their Newfound Fuckyoufacebook Money
I see this argument about Disapora a fair bit:

>Diaspora apparently requires you to run your own set of web hosting services in preserve your privacy, which no one really cares about

To me, this reads the same as "having an email address requires you to run your own email server". If Diaspora takes off, I'm sure it will be another check-box on ISP features lists.

_sh··on Mongoose: MongoDB ORM-like utility for Node.JS that makes async easy
Just out of curiosity, I had a look at the parent website (learnboost.com).

A tip for anyone who provides an online demo of their app: either don't make me log in, or provide credentials I can use on the login page (such as: 'Ordinary user? Login: user Password: user', 'Administrator? Login: admin Password: admin').

Their 'demo' presented a plain login page that rejected whatever I typed into it. It makes me think they either have not thought about providing a decent demo, or they didn't QA it. Either way, it reflects poorly.

_sh··on C++ Resyntaxed
A couple of notes:

1. This paper is from 1996 (oh my! 14 years), and so does not consider the syntactic clean-up performed with C++0X.

2. The paper is co-authored by Damian Conway (http://en.wikipedia.org/wiki/Damian_Conway), perl legend, author of Quantum::Superpositions (http://search.cpan.org/~dconway/Quantum-Superpositions-1.03/...)

3. This seems to be part of research conducted on 'Human Factors in Programming Languages', which includes another paper on the design of SPECS (the syntactic clean-up mentioned in this paper), and another interesting-sounding one: 'Seven Deadly Sins of Introductory Programming Language Design' (see http://www.csse.monash.edu.au/~damian/papers/).

_sh··on HackerNews (and jasonlbaptiste) on The Economist
I was made acutely aware of this the other day when out with my girlfriend to pick up: a replacement iPod for her and a cordless phone. After playing with an iPod nano for a couple of minutes while settling on colour/features etc, we then went to look at the cordless phones...

The contrast in design choice just left me depressed. All the phones were crappy, ugly things, with user interfaces that were just awful. Maybe they had really good features but I didn't care, because it looked to me as though the designers didn't care about their product. And this was something I was going to bring into my home and use everyday!

The whole experience left me bummed. I left with just the iPod.

_sh··on Staying the hell out of insert mode (vi)
Indeed, when I had to make my personal 'vi or emacs' choice back in the day, I chose vi because I played a lot of nethack.
_sh··on Vimium - the hacker's browser
When I hit 't', the new tab opens not with the default New Tab page where focus is on the address bar, but with my home page (iGoogle), where the focus is on Google's search field.

This means I can't just hit 't' and type a URL. A small nit-pick I know. I've just looked at the source, and it seems a problem with Google's API call (chrome.tabs.create). It is supposed to default to the New Tab page unless a URL is provided (and vimium does not provide a URL). On my install the home page is opened instead, so this is not Vimium's fault (and I'm very happy with it thus far).

_sh··on Why I'm rejecting your email attachment
Who's this 'we'? I already use Open Office and, for my needs, it is already 10x better than the alternative used at work. Better because (in Writer) bulleted lists are consistent, and it's easier to manage styles.

Having said that, I'll probably not reject your email attachment, instead I'll just make my edits and send it back to you as an Open Document.

As a side note, why do so many people assume everyone else is a stereotype? When people are complaining about their specific needs, all I hear is "All people want to do is...", and "I don't care about XYZ, it should 'just work' the specific way I want it to because that's all people want", and my all-time favourite, "Joe Six-pack just wants XYZ". I've never met anybody with the surname "Six-pack".

_sh··on Never trust a programmer who says he knows C++
I used to think a good C++ screener question might be: "When would you use the 'nothrow' constant, and when would you have empty 'throws' specifications in method declarations?"

But then I realized this is just getting tricky with C++ arcana, and is unfair. I once read all of Herb Sutter's 'Exceptional C++' series, and they scared me so much that I still get the frights, years on, when contemplating approaching a C++ compiler.

And I used to think I was OK with C++ too. But after Sutter's books I had to accept that, nah, at best I was mediocre. I admire people who can boldly cast out and rapidly prototype a library or something. Or who have the patience to iteratively engineer a Boost library. I will never achieve this, despite once desperately wanting too.

_sh··on Ack - better than grep, a power search tool for programmers
A nice alternative to my decidedly low-tech approach:

  (in ~/.zshrc)
  # 'ff' command -- find string in files with a specified suffix
  ff() {
    [[ -n $1 && -n $2 ]] || {
      echo "Usage $0 [suffix] [string]"
      echo "Where"
      echo "  suffix  file suffix (without wildcards)"
      echo "  string  string to search for (quote if spaces)"
      return
    }
    find . -name \*$1 -exec grep -Hn $2 "{}" \; | less -RFX
  }
Has colorized output, and only pages (with less) when there is more than one page to show.
_sh··on Node.js is genuinely exciting
I don't understand your concern. When you say 'Upon calling something_async, the code starts waiting and blocks further execution until it is ready', you're describing a synchronous call. Indeed window.confirm is a synchronous function--nothing is executed until it returns.

And yes, both asynchronous and synchronous operations have their place, umm, except perhaps in Haskell where things get funky. Chaining async operations together in javascript can be tedious, but its easy enough to write a helper function to handle it for you. Every javascript app I've written that uses AJAX always has some form of createCallback(context, function, arguments) function.

← PreviousPage 6 of 7Next →