2,116 karma · joined August 14, 2007
We've been pretty happy with GWO's combination of being a) free, b) easy for marketing+management types to use for reporting, and c) integrated with our Analytics and AdWords accounts.
Just out of curiosity, though: are there competitive hosted solutions you would recommend over GWO? More options would be a good thing to know about...
That being said, having worked for a company which prepared business training materials for online MBA programs, I can tell you that the use of weasel words is literally part of the curriculum for any biz-school-trained managers. It's up to us, the somewhat-business-savvy geeks, to gently steer them back in the direction of real communication. (At the same time, we should probably listen when they tell us that "EPIC DATABASE FAIL!" is not actually a good way to describe what happened in an outage report.)
Regardless, if you can figure out a way to anonymously collect payment for services online without either getting ripped off by your own customers or leaving a paper trail for law enforcement to subpoena, then you have a far more valuable commodity than simple bandwidth to offer. In fact, you would have invented "digital cash", and any number of folks (afore-mentioned law enforcement and tax agencies amongst them) will race each other to control or use it.
Furthermore, there are a number of more liberally-licensed binary-compatible reimplementations of Git available now (Grit and JGit spring to mind) that could be used as an alternate access layer, if you were less concerned with 100% compatibility with the latest Git features.
Now, a 40% boost in running threads within the same memory is nothing to sneeze at. It's just a far cry from a 200% increase in the same metric.
Furthermore, for many deployments running on bare hardware (or even virtualized in a private datacenter), RAM isn't really the most precious resource. An modern app server can easily be packing 16-32GB of RAM, at which point CPU and I/O throughput can easily challenge memory for "most precious resource".
I've implemented point-of-sale systems before, and lemme tell you, there's nothing magical about a magstripe reader, a microcontroller, and a bit of firmware.
Think for a second about recent credit-card purchases you've made. If your habits are anything like mine, aside from gas stations (where the reader is usually integrated into the pump), most card "swipes" happen through either a peripheral device connected to a generic PC, or a compact card reader with little more than a keypad and phone jack, with no visible branding, certification, or tamper-resistant seals in sight.
This isn't even as big a threat as, say, making people acclimated to the idea of joining open wireless networks at coffee shops -- card skimming at least requires physical access to the card for a few seconds.
I'll admit that ragged on all the Aeron-acquiring startups back in '97-99, too. Then I bought one (second-hand, of course) for my home office last year, and discovered that, much to my surprise, Joel's arguments are actually sound: I can work for more hours, with better focus/less discomfort, in a really nice office chair.
Ergonomics aren't just faddish indulgence -- they can really make a difference.
Now, a DJ booth, and hand-rolled rattan bench cushions...those are faddish indulgence. (I'm still jealous, of course.)
In my experience, MRI/REE fits into smaller RAM footprints only in cases where either you start up and shut down runtimes relatively regularly, or you can monitor for runaway leaks and terminate bloated processes.
I do agree that switching to a different runtime just to get access to a few libraries is probably the wrong approach, however. The big wins in using JRuby are, to me, twofold: a nice performance boost for general application code, and the availability of robust, battle-tested application servers. Mongrel, Unicorn, and Passenger are fine if you're willing to live on the edge, but if you have a more conservative ops team, or simply don't want to both with rolling your own monitoring and deployment stack, being able to drop a Rails app onto Tomcat or Glassfish as a single WAR file is pretty damn nice.
Unlike the usual "script kiddie" Linux rootkits, it is largely focused in exploration and control of a single machine, but the building blocks Metasploit provides could easily be used to construct botnets, especially in dense networks like college campuses or medium-sized businesses without a strong IT security focus.
With a stub DOM and Javascript interpreter, you can pass generated output from web application views directly into your testing environment and make assertions about the resulting behavior, dynamically-generated DOM nodes, etc.
There are a number of projects similar to this one (for which, sadly, I cannot currently pull up any bookmarks) mostly intended for a similar set of tasks. Being able to bring RSpec or Cucumber to bear on a hairy JS testing job can make the process much more enjoyable.
Now, if you changed some piece of the system in order to circumvent FairPlay, or some other DRM component, then you might be running afoul of the DMCA. Not the same thing as copyright violation, however.
http://www.dimdim.com/opensource/dimdim_open_source_communit...
Even if the company goes away, others can use the Community Edition source to host their own instances of the service. Also, security reviews and enhancements can be generated from the bottom up by the community, instead of being 100% dependent on Dimdim.
That being said, I share much of your amusement at/disdain for the attitude of "OMG, look at this brand new thing I have made that is completely different from all those old things!"
In that respect, it intuitively seems like it should behave more like the ASN1 or YAML formats w.r.t. the safety of data loaded from it. I may understand the risks, and you may understand the risks, but I think that a new Python programmer could be forgiven for simply scanning the standard library documentation and thinking that the pickle format would be safe for transport across untrusted channels.
I.e., data structure parsing should not require a Turing-complete language. If it does, your serialization format is broken.
But yeah, I can see the issue with my original comment.
However, YAML isn't quite as well-supported in the standard libraries of various programming languages, most notably Javascript. Which one to use depends largely on how heavily you expect browsers to consume your service output.
Proving termination for programs written in models less powerful than a Turing machine does not require you to solve the halting problem. Programs using primitive recursion, finite automata, and regular expressions, for example, can all be proved to terminate, and can express a number of useful computations.
The problem is that the pickle module is far too permissive. In particular, the REDUCE operation invokes a Python callable with an argument tuple on the pickle stack, which means that 'pickles' are at least as powerful (in the Turing-general, halting problem sense) as Python.
> That means that someone manually took the site down.
Since the News.YC code (which NewMogul also uses) runs in a single Scheme process, it could have shut down for any number of reasons: it might have crashed, failed to start after a server reboot, been killed by the OS or hosting provider due to a memory leak, etc.I don't know what kind of monitoring nickb might have set up, but if he's not responding to personal email or phone calls, it seems reasonable that he simply doesn't/can't know that the site is down.
The fact that you would care more about his shepherding of repositories which have been available to everyone else all along speaks volumes to me about the kind of attitudes that probably helped to drive him offline in the first place.
It's a sad day for all of us, but I hope and trust that he has good reasons for this decision. His contributions to the world of Ruby and programming-as-art will not be soon forgotten.
<speculation> The L4::Pistachio kernel provides direct access to high-resolution hardware timing interrupts, though the secure variant may restrict some timer access in order to prevent covert timing channels between threads in different security contexts. </speculation>
There are hard real-time variants of L4 out there, but unless that was a primary goal of the NICTA team, I don't think you're likely to see many copies of that kernel running a ballistic missile's avionics package.
A verified secure OS kernel like this would more likely be used as a substrate for building secure servers and workstations, network routers, or mobile communications devices.
If of course made debugging effectively impossible, not to mention catching all segfaults, not just those triggered by a DOM parsing error.
The problem is simply that most Java shops use only the officially-blessed Java language. Because Sun has always forced "certified" implementations of the language and platform to conform to their standard, there has been little room for innovation in the source syntax and bytecode format since the release of the first JDK in 1996. In the meantime, programming languages (and the programmers who use them) have moved forward, and Java has failed to keep up.