133 karma · joined July 31, 2008
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.
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".
t/(t+n)
With n set to a bit under half the average load time, if generally looks about right, too.
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?
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.
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.
For the initial connection, you can use any of nginx's normal proxy load balancing options (ip_hash, least_conn, etc).
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.
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.
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.
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.
I don't know if they've made any promises to honor DNT requests, but their browser will be able to send them.
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?
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?
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.
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.
for (;;) {
int days_in_year = IsLeapYear(year) ? 366 : 365;
if (days <= days_in_year) break;
days -= days_in_year;
year += 1;
}