Tuesday, March 22, 2011

How html5-boilerplate helped drastically improving our website performance

http://blog.androidsnippets.com/2011/how-html5-boilerplate-helped-drastically-improving-our-website-performance

And this is where html5-boilerplate really starts to shine. One of it’s best although often overlooked features is the automated build system (with ant and build.xml), which automatically compresses and concatenates stylesheets, javascript files and images, producing a heavily optimized version of the website and all resources.

We just needed minimal adaptations to make it play nicely with AppEngine, in order to provide a base template all the others can extend, and a full integration of the build process (you can find our adaptation as on github).

Posted via email from miner49r

Parallelism is not concurrency

https://existentialtype.wordpress.com/2011/03/17/parallelism-is-not-concurrency/

The effectiveness of the language-based model of parallelism lies entirely in its ability to expose the dependency structure of the computation by not introducing any dependencies that are not forced on us by the nature of the computation itself.  And the key to this is functional programming, which manifests itself here in the transformational approach to computation: sorting is conceived of as a mathematical function that transforms a given sequence into another sequence.  It does not destroy the given sequence any more than adding two numbers destroys those numbers!  Since Quicksort is a mathematical function, we need not worry that execution of qs xsl 

interferes with (depends on) 
qs xsg; we can readily run them in parallel without fear of untoward consequences.  The payoff is that there are many fewer dependencies among the subcomputations, and hence many more opportunities for parallelism that can be exploited, in accord with Brent’s Principle, when scheduling the work onto a parallel fabric.

The upshot of all this is that functional programming is of paramount importance for parallelism.

Posted via email from miner49r

Monday, March 14, 2011

No, really, pi is wrong: The Tau Manifesto by Michael Hartl | Tau Day, 2010

http://tauday.com/

This manifesto is dedicated to one of the most important numbers in mathematics, perhaps the most important: the circle constant relating the circumference of a circle to its linear dimension. For millennia, the circle has been considered the most perfect of shapes, and the circle constant captures the geometry of the circle in a single number. Of course, the traditional choice of circle constant is π—but, as mathematician Bob Palais notes in his delightful article “π Is Wrong!”,1 π is wrong.

Posted via email from miner49r

Sunday, March 13, 2011

Monday, February 28, 2011

The sneakernet in git

http://object.io/site/2011/02/sneakernet-git/

 If you just want an offline copy for safe-keeping, this method is very simple and convenient:

$ git bundle create blog-dump.bundle master

Posted via email from miner49r

Clojure Libraries

Another useful collection of Clojure Libraries.  This one allows anyone with a Google account to add a library reference.

http://clojure-libraries.appspot.com/

Posted via email from miner49r

Friday, February 25, 2011

Clojure Toolbox

Directory of libraries and tools for Clojure:
http://www.clojure-toolbox.com

Posted via email from miner49r

Introducing ElephantDB: a distributed database specialized in exporting data from Hadoop

http://tech.backtype.com/introducing-elephantdb-a-distributed-database

ElephantDB is a database that specializes in exporting key/value data from Hadoop. We have been running it in production at BackType for over half a year now and are excited to be open-sourcing it. In this post, I'll introduce ElephantDB, show how to use it, and then compare it to other databases out there. ElephantDB is hosted on GitHub here.

Unlike most other databases, ElephantDB dissassociates the creation of a database index from the serving of that index. ElephantDB is comprised of two components. The first is a library that is used in a MapReduce job to create an indexed key/value dataset that is stored on a distributed filesystem. The second component, ElephantDB server, is a daemon that downloads a subset of a dataset and serves it in a read-only, random-access fashion. A group of ElephantDB servers working together to serve a full dataset is called a ring. Both the creation and serving of a dataset are done in a fully distributed fashion.

Posted via email from miner49r

Thursday, February 17, 2011

Clojure Libs and Namespaces: require, use, import, and ns

Good overview of how namespaces work in Clojure 1.2.  Most people just need to learn 'ns' to get started, but if you want to get into some of the details, read this post:

http://blog.8thlight.com/articles/2010/12/6/clojure-libs-and-namespaces-require-use-import-and-ns

Posted via email from miner49r

Wednesday, February 16, 2011

Don’t Believe The Hype About IBM's Watson On ‘Jeopardy!’

http://www.tnr.com/article/83337/ibm-watson-computer-jeopardy

Indeed, when I called Watson’s creators to ask how the supercomputer controls its buzzer, they admitted that Watson does have a strong built-in advantage. According to David Shepler, who is IBM’s Challenge Program Manager for the Watson project, “The buzzer is enabled when the clue is done being read, when Alex Trebek gets to that last syllable, and the guy off stage pushes a button. That’s when people can buzz in, and at the same time a signal is sent to Watson saying the same thing—telling Watson that it can buzz in if it so desires.” This is akin to playing against an opponent with near-perfect reflexes. “When we built the demonstration system, the first incarnation of a fully functioning game-playing Watson, Watson was buzzing in electronically,” Shepler said, but they decided this was too unfair. IBM added an electromagnetic “hand” to Watson that will depress an actual buzzer which gives the humans a little more time, but not much. Asked if Watson still has an advantage under the new arrangement, Shepler told me that experienced players will sometimes get the jump on the supercomputer because they can anticipate the end of a clue, “but it's true that on average a machine has very good reflexes. The machine is probably going to beat a human at buzzing.” And the computer will never buzz in too early and get locked out.

My comments: Watson seems to have an excellent command of basic facts, but his main advantage against the humans appears to be his speed with the buzzer. During the broadcast, Alex explained that Watson is given the electronic text of the clue immediately when the clue is revealed on the board.  I think it's safe to say that the computer can read the text faster than the humans can. It would be a more interesting competition if Watson used a camera to read the board or a microphone to listen to the clues.

Posted via email from miner49r