Saturday, June 30, 2012

iPhone turns 5: Here are the naysayers

Five years ago, everyone knew that the iPhone would never succeed. Smart people used BlackBerries and dreamed of a Zune Phone back then.

“So, I kinda look at that and I say, well, I like our strategy. I like it a lot.” — Steve Balmer, 2007

(By the way, that quote still kinda works for the latest Microsoft announcements.)

Here are some quotes from industry bigwigs after the iPhone announcement:

Posted via email from miner49r

Friday, June 29, 2012

JavaScript Blacklist

JavaScript Blacklist is a simple extension for Safari 5 which blacklists scripts from a configurable list of domains. If a common “utility” script used by sites that you visit is annoying you, this will let you opt out quickly and easily.

Posted via email from miner49r

Thursday, June 28, 2012

Writing Node.js modules in ClojureScript

I love Clojure, and used this opportunity to finally take a look atClojureScript, and specifically using Node.js as a deploy target.

Posted via email from miner49r

SQLite4: The Design Of SQLite4

SQLite4 is a compact, self-contained, zero-adminstration, ACID database engine in a library, just like SQLite3, but with an improved interface and file format.

Posted via email from miner49r

Monday, June 25, 2012

Java 8 lambdas

In the better-late-than-never department, we have lambdas (closures) coming to Java 8. Personally, I’m very happy using Clojure, but it’s nice to know that the Java world is still making progress, albeit very slowly…

Scheduled for release in 2013, Java 8 will include language support for lambda functions. Although the specification is still in flux, lambdas are already implemented in JDK 8 binaries.

Posted via email from miner49r

Chris Granger announces Light Table Playground

the official release of the Light Table Playground! You can find instructions for getting it here:

Posted via email from miner49r

Wednesday, June 13, 2012

Reducers at EuroClojure

Fold will try to do the computation in parallel using fork/join, when the input collection that is asked to apply the reducer to itself supports this and when the reducer supports this. The check for support is done through protocols: for the datastructures: PersistentVector extends CollFold, for the reducers: r/map is defined as a folder, while r/take-while is defined as a reducer (and does not support fold, because partitioning does not make sense for this computation). When parallel fold is not supported, then fold will just do a reduce. See the implementation for details: reducers.clj

A common approach for parallel processing is to use map+reduce. The work is divided into partitions and map is applied to each partition and the intermediate results are combined with reduce. In fold the approach is reduce+combine. The work on the smallest partition is done with a reduce rather than with map. Compare the two approaches by trying to express filter in map+reduce versus reduce+combine. It appeals to the functional programming sensibilities that reduce is a better fit for most operations than map.

Posted via email from fnclojure

Tuesday, June 12, 2012

strange Mac ethernet slow down

I had some trouble with my iMac today. For no apparent reason, my internet connection seemed to slow down. A speed test on reported only 1 Mbps, rather than the 10 Mbps that Comcast usually provides. I did all the usual simple things: reset the router and cable modem, reboot the iMac. No improvement. OK, now on to the Mac voodoo: reset the PRAM (reboot holding cmd-opt-P-R), reset the SMC (unplug everything and hold the power button for 10 seconds), delete and replace the network locations. Still no good. Actually it got worse, my Mac said nothing was connected to the ethernet port. Could be a router problem? Maybe, but the same cable worked fine with a MacBook so the problem had to be with the iMac. A safe boot (holding shift) got me back to only a 1 Mbps connection on my admin account. I googled for more clues. Found a few useful looking web pages, but no definitive answer.

Along the way, I saw someone mention the commands to turn off the ethernet port and turn it back on again:

% sudo ifconfig en0 down

% sudo ifconfig en0 up

That seemed to help. Of course, I did a lot of fiddling so I can't be sure exactly what fixed the problem, but I thought I'd mention ifconfig here just in case someone else runs into a similar problem.

I feel lucky to be back to normal. Now, back to work.

Posted via email from miner49r

Saturday, June 9, 2012

InfoQ: The Design of Datomic

Rich Hickey discusses the design decisions made for Datomic, a database for JVM languages: what problems they were trying to solve with it, the solutions chosen, and their implementations.

Posted via email from fnclojure

Clojure Contrib

As of Clojure 1.3, the Clojure contrib libraries are organized in separate repositories.  Unfortunately, a lot of links point to the old monolithic structure.  Here's the correct link for the current Clojure Contrib:

Posted via email from fnclojure

Friday, June 8, 2012

You’re Not Special

> And then you too will discover the great and curious truth of the human experience is that selflessness is the best thing you can do for yourself. The sweetest joys of life, then, come only with the recognition that you’re not special.
>> Because everyone is.

Posted via email from miner49r

Monday, June 4, 2012

Every Black Hole Contains a New Universe

Our universe may exist inside a black hole. This may sound strange, but it could actually be the best explanation of how the universe began, and what we observe today. It's a theory that has been explored over the past few decades by a small group of physicists including myself. 

Posted via email from miner49r