HNHacker News
TopNewBestAskShowJobs

jabr

133 karma · joined July 31, 2008

submissionscomments
jabr··on Microsoft CEO Steve Ballmer to retire within 12 months
I'm mostly a startup type, but I've worked in some fairly corporate environments and I've never used any of those.
jabr··on Microsoft CEO Steve Ballmer to retire within 12 months
Oh, I completely agree. The point I was trying to make was simply that increasing funding for medical research on malaria, tuberculosis, etc. was more significant than anything he did (or could do) with Microsoft.

But regardless, I agree that the world would be a much better place if addressing our solvable problems didn't require the support of a retired billionaire first.

jabr··on Microsoft CEO Steve Ballmer to retire within 12 months
> If Gates wanted to leave a mark on the world he'd buy back pieces and parts of the behemoth and set them free for the open market

I agree with most of your comment, but that line bothered me. In my opinion, the single worthwhile accomplishment of Microsoft was that it led to the formation of the Gates Foundation.

I don't even agree with many of their objectives, but simply providing funding for "unprofitable" medical research alone has already left "a mark on the world".

jabr··on NProgress: slim, site-wide progress bars
I like to use an asymptotic function for fake progress like this:

t/(t+n)

With n set to a bit under half the average load time, if generally looks about right, too.

jabr··on The elusive universal Web bytecode
The browser I'm using at the moment is faster than the one I was using three years ago, despite also having a very large number of new abilities.

Further, a significant number of my current OS processes are currently executing programs themselves (with various degrees of dynamic compilation). I'm not clear on when it's okay for a process to itself execute a program. Is interpretation ever okay? Or does it always need to be dynamically compiled? Also, what's the rule on compilation of turing complete languages like Postscript?

jabr··on The elusive universal Web bytecode
The problem with this idea is that a new, "better" VM doesn't offer any substantial benefits over using Javascript-as-a-VM. The limitations of JSaaVM can be can addressed more easily by simply improving on the existing infrastructure. There's not a good reason to throw out what we have when incremental improvement gets us to pretty much the same point more quickly and with less pain.
jabr··on The elusive universal Web bytecode
They can't stall forever on new web standards if they prove useful. I'm not sure WebGL will, but if it does, the "graceful degradation" culture in web development means that IE users will get some sort of slow, limited approximation of the intended experience. And enough of them will know and start installing Chrome or Firefox in larger numbers again.

Microsoft can slow the adoption of web standards (and just via the desktop), but they don't have any real control now. And the only reason WebGL isn't in IE 10 is because they didn't want to offend the DX/D3D team. Once IE supports WebGL, D3D will die.

jabr··on The elusive universal Web bytecode
We have an existing, widely deployed VM that is portable and sandboxed, fully described by open standards, and has several competing but fully compatible implementations -- most of which are already very fast -- and people want to throw it out and replace it because they don't like the file format...
jabr··on WebSocket proxy support added to nginx trunk
In this case, nginx is simply relaying data over an active connection on each. There is an open socket between the client and nginx, and nginx and the backend, for every WebSocket.

There is not a port limit issue, however, as nginx can create more than one connection to a local backend server using unix domain sockets. But the backend server has to then manage multiple open connections, as well, one for each WebSocket.

jabr··on WebSocket proxy support added to nginx trunk
WebSockets are persistent connections, not a state-management trick spanning multiple connections/requests. The only time nginx is involved in "routing" the socket is on the initial connection. Once established, nginx is simply relaying data over an active, persistent TCP/unix sockets.

For the initial connection, you can use any of nginx's normal proxy load balancing options (ip_hash, least_conn, etc).

jabr··on WebSocket proxy support added to nginx trunk
All this change in nginx does is allow WebSocket connections to be proxied, so your questions don't really make sense. WebSocket's work like TCP sockets, and your backend server still needs to manage the socket directly. For example, Unicorn is not a WebSocket server, though there are WebSocket-capable servers derived from Unicorn (e.g. http://rainbows.rubyforge.org/).

If your backend dies or drops the connection, the WebSocket closes, and the client will have to reconnect. If it was just dropped, you can use nginx's ip_hash proxy option to send the reconnect to the same backend server, but it would be a new WebSocket, and the client/server will have to recreate the session state.

jabr··on In origin-of-life experiment, cooperative molecules win out
I think you'd have a hard time finding a scientist in the field that doesn't think that the mind is the result of the brain's action, but in origin of life research, "self-replicating molecules" is not the only game in town.

The two main approaches are "replicator-first" and "metabolism-first", though the replicators seem to do better in the popular press. I did my doctoral work in this field, and I was in the metabolism camp along with many of the major scientists working on the problem.

In a nutshell, "metabolism-first" means that a network of many interacting molecules were changing their local environment, eventually creating various feedback cycles that amplified the effect. Meaningful replication (especially of the RNA/DNA "informational polymer" variety) likely came significantly later, and almost certainly after the metabolic system had already achieved a basic state of homeostasis.

It was likely an evolutionary advancement of the "metabolic system" to use molecules like RNA (if not RNA itself, initially) to establish a more robust homeostasis by encoding information about the system in a more stable form.

jabr··on Dart is ready for the real world
There are some things in Dart that would be nice to have in Javascript, but I don't see why Google wouldn't just try to work them into future ECMAScript revisions. With the exception of banning eval and run-time modification of prototypes, I don't see anything that's completely incompatible with a future revision of Javascript.

I'd even bet that the ES standards committee will eventually give in on the "arrow" lambda style. ES5 has the "function(x) x * x" shorthand, but with C# and Java both settling on "(x) => x * x", I can see it happening in time.

jabr··on CERN experiments observe particle consistent with long-sought Higgs boson
He wanted to name the book "The Goddamn Particle" initially -- as a reference to its elusiveness -- but the publisher wore him down.
jabr··on Sublime Text 2.0 Released
While partly true, the secondary issue is that your editor is inferior to the current state of the art (on all platforms).

I spend most of my time at a black/white board. Once I've won the chalkboard battle, I've put it into motion with chalk, whiteboard markers, and just wrote the computer code. I recommend the latter, though that still leaves a few options open.

For now, I'll let conciseness win.

jabr··on WakeMate Update
The WakeMate product itself was good and actually worked for most people (myself included). This was a legitimate goodwill measure post, so why are most/some of you taking the opportunity to bash these people?
jabr··on "Do Not Track" HTTP header supported by IE, Opera, FF, Safari but not Chrome
Google has already committed to supporting it in Chrome. It's just not in it yet.

I don't know if they've made any promises to honor DNT requests, but their browser will be able to send them.

jabr··on Didn't see this coming: The Goldman Sachs Github Account
I can't speak for jlarocco, but my concern is not directly the import statements, but rather, what those import statements imply.

That repo has 1,290 files. Excluding file pathnames containing 'test', there are 601 files. Of those, 430 are .java files.

Java is complicit in that crime, but Enterprise Java is the bigger culprit. The library makes doing a map on an array cleaner for me, but behind the scenes it is using a dozen "factories", a bunch of "builders", several "strategies", and a handful of "visitors", "bridges", and "proxies".

And guilt by association is valid here. We bleed over whether semicolons are needed in some languages, but Java is off limits for needing 10-fold more (auto-generated?) boilerplate code for something most languages handle out of the box?

jabr··on Didn't see this coming: The Goldman Sachs Github Account
I can't speak for jlarocco, but my concern is not directly the import statements, but rather, what those import statements imply.

That repo has 1,290 files. Excluding file pathnames containing 'test', there are 601 files. Of those, 430 are .java files.

Java is complicit in that crime, but Enterprise Java is the bigger culprit. The library makes doing a map on an array cleaner for me, but behind the scenes it is using a dozen "factories", a bunch of "builders", several "strategies", and a handful of "visitors", "bridges", and "proxies".

And guilt by association is valid here. We bleed over whether semicolons are needed in some languages, but Java is off limits for needing 10-fold more boilerplate code for something most languages handle out of the box?

jabr··on Judge Alsup learns to code and schools Oracle
I hope Google's response was "First year CS students have to implement more complex functions than rangeCheck on daily quizes within the first week or two."
jabr··on Judge Alsup learns to code and schools Oracle
While the basic line of reasoning is valid, it is absurd in the context of the rangeCheck function.

There might be a nine line function that takes a day or two to get right, but for even a bad programmer, rangeCheck would take a few minutes. With thorough tests, maybe ten minutes. I've barely touched Java code in over a decade, but I could write that function -- with tests -- in less than two minutes.

RangeCheck is the kind of function you'd get on a quiz in your first week of your first CS class in college.

jabr··on Hello world in every programming language
There's an implementation in the pull request queue.
jabr··on Ruby programming challenge as job application
I haven't used it, but if you're running this on MRI, you might try https://github.com/tario/shikashi
jabr··on Silicon Valley Needs To Take Itself More Seriously*
Boulder, CO might be an example. My impression is a more outdoor/adventure culture than most.
jabr··on Try D3 Now - D3 Visualization Tutorial
You're missing the point.

Raphaël is a simple, unified interface to SVG and VML. You ask for a circle, and it will make one, whether in SVG or VML.

But if you have an array of data and want to visualize it, you have to write the code that creates the circle (and its position, size, color, etc) for each point. And if that data changes, you have to write the code which adds circles, removes circles, or animates the update of existing circles with the new corresponding data.

D3 is a general library to help you write that code, but it assumes you are working with DOM objects. It will create/remove/update HTML, SVG, or VML elements -- whatever you want. D3 is not a renderer abstraction library like Raphaël; it is a data to DOM mapper.

You could make something like D3 for Raphaël, but it makes sense to just assume you have SVG support now. You get to use its groups, CSS, and standard DOM events, without reinventing those wheels.

jabr··on Try D3 Now - D3 Visualization Tutorial
Just curious, but do you support IE below 9? If so, how? svgweb?
jabr··on Source code of the file with the Zune bug (starts on line 249)
I prefer:

  for (;;) {
    int days_in_year = IsLeapYear(year) ? 366 : 365;
    if (days <= days_in_year) break;
    days -= days_in_year;
    year += 1;
  }
jabr··on Mozilla SSL policy bad for the Web
Or you can just get a free DV cert from startssl.com and not have to do anything else.
jabr··on Labmeeting: A Social Network For Scientists
It's not really an issue in an academic setting. Pretty much everyone has access already.
← PreviousPage 2 of 2