July 2011
15 posts
4 tags
Federal Government Indicts Former Demand Progress... →
coderspiel: Moments ago, Aaron Swartz, former executive director and founder of Demand Progress, was indicted by the US government. As best as we can tell, he is being charged with allegedly downloading too many scholarly journal articles from the Web. The government contends that downloading said articles is actually felony computer hacking and should be punished with time in prison. ...
Jul 19th
3 notes
3 tags
Maven: the build tool that takes more time to build and configure than the actual application it’s building. Somehow—and maybe this is just personal bias—it doesn’t seem like xml just vomited into a wiki should count as documentation.
Jul 18th
11 notes
9 tags
Short Science Fiction: The Phone
Preface: Sometimes I daydream short fictions. I liked this one. I pick up the phone in the middle of the night and on the other end is my Grandmother, light-years away. “Your Grandfather,” she says through tears, “has passed on this morning, threw a clot and had a heart—-” The line fuzzed out and went dead. I called Grandmother back; she answers and there are no...
Jul 15th
3 notes
7 tags
There are a trio of fighter jets making low altitude circles around Rochester, NY. They look like F/A-18s. There are no armaments loaded: a training exercise? I find military aircraft to be utterly compelling devices for the skill needed of the designer, maintenance crew, the operator and technical mastery of its engineering. The sheer number of people which must be coordinated to even sustain the...
Jul 14th
5 notes
5 tags
The manner in which Puppet manages its ssl certification is an atrocity: dropped requests, broken revoking and more obscure error messages forwarded from the bowels of openssl than I can shake a stick at. Such problems are so obtuse that I’ve found it more simple just to purge puppet and puppetmaster from my cluster machines and start over from scratch. Clearly this will not fly once...
Jul 13th
17 notes
6 tags
I rather wish the Amazon Kindle was connected with some sort of lending library. Especially with regards to current events, buying a hard-copy text for $50 is far too much but so too $15 for a Kindle version, if even one such exists. My American Library copy of Thoreau’s longer works is well-thumbed and increasingly taking on the character you might expect of a book found at the bottom of a...
Jul 13th
18 notes
3 tags
Jul 12th
6 notes
5 tags
Jul 12th
2 notes
10 tags
Letter to my Senator
On Thu, Jul 7, 2011 at 3:32 PM, Senator Kirsten Gillibrand Senator@gillibrand.senate.gov wrote: July 7, 2011 Dear Brian, Thank you for writing to me with regard to legislation that would give the federal government the authority to turn off portions of the internet in the event of a major cybersecurity incident. I understand your concerns. In the 21st Century, access to the...
Jul 7th
10 notes
5 tags
Nature -- "...why scientific programming does not... →
Jul 7th
6 notes
Jul 6th
198 notes
Jul 6th
Jul 3rd
167 notes
5 tags
Bandicoot -- a set-algebra language →
Jul 1st
3 tags
Jul 1st
348 notes
June 2011
24 posts
5 tags
Things I have fed to my AdBlock filter.
I don’t care for social search or a new website on which to maintain relationships by past association only (or the older ones, actually). I would have real friends of flesh and blood, embraceable and able to share directly in life than pixelated ghosts of the past that hear of things second hand or more. The modern Web seems like so many firehose water fountains, people supping from the...
Jun 29th
4 tags
When I use Google to search for the phrase “puppet vs chef 2011” I’m directed, about six links down, to a Quora article: “What are the key reasons to choose Puppet over Chef (or vice versa)?” Now, I signed up for a Quora account in the early days when it first hit Hacker News but I didn’t find much to enjoy and deactivated the account. I haven’t been back...
Jun 28th
4 tags
Akka Annoyance: The State of Actors
An ActorRef in test code turns out to be dead. Who killed it? I can’t know: the type remains the same whether the ActorRef points to a dead, restarting or started Actor. Why can’t this be encoded in the type-system: lack of Hindley–Milner (or equivalent) derived linear typing (lightweight monadic regions are nifty) the need to maintain a workable Java API for Akka Blegh. In theory...
Jun 25th
4 tags
I find patriotism to be a difficult emotion: too often entwined with ruinous nationalism, displays of it leave me troubled. That said, I do have some patriotic feeling for my native home, though more for an ideal than its reality. That said, I have significantly more patriotic emotion for the United Federation of Planets than the United States of America. Surely I’m not alone in this.
Jun 23rd
10 notes
5 tags
Scala and Types (from...
PaulHoule: That brings us to point (1) of his article. He asks us to make a large investment in learning a language that might pay off in the future... might.
PaulHoule: My understanding of Scala is quite imperfect but the more I've learned the more it seems that it's got pretty facades built over weak wood. Rather than being a 'scalable language' it comes across like a fake town that was built as a set for a Western. Look at any beautiful concise code sample that they try to seduce you with and you find that any small change requires tripling the code size. Look at the chapter in the book on DSLs and the take-away is "don't try to build internal DSLs".
PaulHoule: Be it looking at the profiler running on on a Scala program that uses actors or finding that I never quite seem to get away with not having to declare types explicitly, I have a facepalm event every hour or so working with Scala.
PaulHoule: In my case, (2) has nothing to do with it. I'm quite familiar with functional programming, both in languages that support it well and languages that don't. These days even my PHP looks like LISP.
PaulHoule: (3) is certainly true, and I think it has something to do with the cultural difference that @speckledjim points out.
PaulHoule: Anyone who's got to work with Scala will definitely confront (4); if you're working in Java or PHP or some other commercially viable language you can probably solve a high fraction of problems by using Google and Stack Overflow.
PaulHoule: If you're programming in Scala you'll have a lot more success understanding the fundamentals of the language. If, for instance, you need to access Scala objects from Java (particularly the super-prevalent ones like Option and List) you'll find that cookbook-style documentation is 100% AWOL. Go look at the scaladocs for Option and List, however, and you'll be calling methods on them in no time from Java.
PaulHoule: If you insist on working with Scala, get a book and read it all the way through from the beginning, skipping forward when you don't understand something.
fogus: Which book do you mean? Also, do you mind elaborating on why one should avoid building DSLs with Scala? In my own experience [1] I've found it extremely nice for internal DSLs.
troutwine: Presumably he means Ordersky's Programming Scala. While it is possibly one of the better Scala books available it is downright bad, having committed the doorstop producing sin of confusing a language tutorial with a reference with a thesis defense. The second edition of the text is all over the place, providing little in the way of even trivial program examples and maintaining shockingly conservative advice from the first edition, written for the language in its state a few versions back.
troutwine: The assessment that Scala is a pretty structure built of weak wood is not too far off, at this point. Compared to other strongly functional languages--Haskell and ML, say--the type system is shoddy and limited. In part this is a frustration of maintaining objects on Java's terms, but also defects in the JVM: type erasure is a hair-shirt that neither of languages I mentioned previously have to wear. You can somewhat avoid the loss of types with manifest hacks, but it's shoddy business. Often you can't; note that Akka has a distinctly dynamic feel, being that certain messaging functions--!! and !!!--must return an Option[Any] even when the original message is well-typed. The system loses the type information at runtime!
troutwine: Compilation speed is also an agrivation. It's a slower process than Haskell--not zippy to begin with--and comes with less result, to boot. All that said, I tentatively like Scala, especially if a project is required to run on the JVM. I find it to be an especially pragmatic language, if unbeautiful and not something I intend to use for long-term, exploration coding. A fine choice for a language to be used in anger, let's say, if the memory usage of the JVM is of no concern.
Peaker: If I understand "type erasure" correctly, Haskell and ML both do have type erasure. In Haskell, using typeclasses like Typeable, you get the power of keeping types in runtime, but the types are actually erased.
troutwine: Oh, sure. Sometimes types disappear at compile-time and aren't needed during program execution: the theorem is already proven so why should the runtime system carry around the baggage? Unless we're talking past one another, the Scala problem is rather worse: start passing around Seq[Seq[Int]]'s through your code and the compiler will be unable to ensure that it's always a Seq[Int] stuffed in there; the compiler comes with warning flags, but it's rather a bother and decidedly more dynamic.
troutwine: You are quite correct, almost all strongly typed languages perform some type erasure for efficiency purposes. The problem, as I see it with Scala, is rooted in defect in the JVM; the system looses type information and cannot verify at compile-time that all your types will be correct. Please correct me if I'm wrong or have misunderstood you.
Peaker: I don't know Scala -- but it sounds like a compile-time type-verification problem more than a type erasure problem.
Peaker: When Haskell targets x86, the x86 opcodes surely don't help Haskell verify that [[Int]] really has [Int]s in there, but it's not necessary because it is proven at compile-time. So I am a bit confused why Scala needs the JVM's help.
troutwine: Consider that Haskell does its compilation step once; the types and their parameters are discarded and machine code is generated up front. (More correctly, LLVM IR is generated and combined with the Run Time System into a binary.) In Scala, and Java before it, compilation happens during program execution: you cannot discard types because the compilation step is never over. Ordersky's previous work on Pizza ensured that, however, that type parameters _were_ lost; rather than modify the JVM to support generics it proved to be more expedient with regard to backward compatibility just to strip them out. Pre-generics binary code could co-exist with post-generics because they compiled down to the same bytecode. Hence the complaint that in Java Array[Int] and Array[String] generates two special purpose, 'parameterized' Array structures in memory. Mostly the Java compiler can be clever and produce relatively only what is needed during execution, but the PermGem exception happens because, well, it's a hack.
troutwine: Now, consider the difficulty of Scala wherein it's possible to represent a compound type. Erasure ensures that only the first parameter in the chain is generated in the type-erasure step, destroying the meaning of the union. There are kludgy ways around this--wrapping, bundling up manifests--but in the end the JVM does not allow the transmission of necessary information efficiently. Manifests serve the purpose of maintaining parameter information at runtime, but do so at the expense of code cache space and stress system resources. PermGem exceptions are much more common, in my experience, when doing Scala work as compared to Java.
troutwine: The shorter answer to your question is the JIT nature of Java combined with a byte-code designed not to maintain the information needed to generate all possibilities of machine code on demand. LLVM IR maintains such information for Haskell--when targeting machine code directly I believe this is achieved by static polymorphic compilation, but I could be wrong; Stack Overflow time?--and the CLR does the same for C# and friends. It's a JVM problem entirely. The JVM promises to perform any and all compilation but is unable to accept all the information needed to do so effectively.
Jun 23rd
3 notes
4 tags
Scala Integrated Query →
For reference: Ferry.
Jun 22nd
3 tags
Relational Database Implementation Problem: 1
Stored programs should be checked for consistency with existing table definitions at the time of CREATE; alteration of the schema should re-check the consistency of stored programs. Getting run-time errors for what should be checked at ‘compile time’ is balderdash.
Jun 21st
2 tags
Falling asleep at the wheel; late night coding.
2. Waiting for source changes... (press enter to...
Jun 21st
3 tags
PID Controller →
PID Controller, where have you been all my life?
Jun 21st
6 tags
Dr. Stefan Brass -- "Deduktive Datenbanken und... →
Jun 20th
4 tags
There's a trust-worthy fellow. →
The folks at Sencha have long used their project and api documentation as a technology demonstration; the javascript they apply admits no graceful degradation, harming searchability, the reading capability of the disabled and usability. Especially agrivating in the ExtJS3 series documentation are the pseudo-tabs: clicking a “link” in the API will spawn a new “tab” inside of...
Jun 20th
4 tags
The Economist -- "The man who screwed an entire... →
Jun 10th
1 tag
Jun 10th
28 notes
4 tags
NASA -- "A Big Surprise from the Edge of the Solar... →
Fascinating: the heliosheath is frothy!
Jun 10th
8 tags
Daily NK -- "China, the 'General's Shortcut'" →
North Korean propoganda efforts are fascinating; the Kim regime, especially under Kim Jong-Il has always relied on exhortations to great effort on the part of the worker, for the betterment of their lives and, primarily, in gratitude for the Struggles of the Leader. The simultaneous nature of the meetings, which were entitled, ‘Welcome great leader comrade Kim Jong Il’s historic China visit...
Jun 9th
4 tags
A recent project has necessitated my use of Intellij. I prefer my unwieldy text editors to run Lisp, thank you very much!
Jun 8th
4 tags
Scala-Play! Framework: Arguing about Anorm →
The great difficulty in arguing a point without making headway is the determination of correctness: am I wrong, or just misunderstood?
Jun 6th
7 tags
Telehack -- An archival, interactive... →
An amazing bit of work. Truly beautiful.
Jun 5th
19 notes
5 tags
Urs Peter -- "Scala & Spring: Combine the best of... →
Maybe I’m a loon, but that’s an un-godly amount of code for one lonely table.
Jun 4th
11 notes
5 tags
Financial Times -- "Regrets? I've had a few..." →
Jun 4th
7 tags
There is a man outside of my window spraying herbicide; the amount of which used here in Rochester, NY is, to me, astounding. There is a strip of land between my building’s parking lot and the next; my management company occasionally sprays herbicide on it, killing the shade plants that grew underneath the trees bordering the lot. The man is doing that now. On windy days—which are...
Jun 3rd
5 tags
Deutschlandradio Kultur just introduced me to Harry Everett Smith. It seems strange that I should learn more about English language, and specifically American, music from the German radio, but I suppose the outside-in view of a culture is a reveling one, intro-retrospectives of a moving culture are difficult to pull of and Clear Channel’s robots haven’t much taste in music.
Jun 2nd
4 tags
Rompf and Odersky -- "Lightweight Modular Staging:... →
Jun 2nd
4 tags
StackOverflow: Total Collections, rejecting... →
Jun 2nd
May 2011
38 posts
3 tags
My apartment is littered with reading materials: magazines, newspapers, print books and digital books. Excepting the kitchen, there’s hardly a surface that does not have something readable. Sometimes I am struck by how fine a thing it is to be an adult; this is one such time.
May 31st
8 tags
Thomas Frank has a new piece in the June Harper’s Magazine: “Required Reading”. Discussing the case of Omar Khadr Frank notes that American law-enforcement have “recommended a very different curriculum [from the Canadians] to ease his return to civil society.” That reading? The 7 Habits of Highly Effective People. Fitting, a book whose central premise is that the...
May 31st
5 tags
Ackley and Cannon -- "Pursue robust indefinite... →
May 31st
7 tags
Thomas Frank -- "The Rise of Market Populism ... →
May 29th
6 tags
Bradley K. Martin -- "Under the Loving Care of the... →
May 29th
3 tags
I like the Wikipedia; I have a hard time liking... →
May 29th
4 notes
4 tags
"Thank you Father Kim Il-Sung: Eyewitness Accounts... →
May 29th
4 tags
"You are Solving the Wrong Problem" -- quick... →
May 27th
7 notes
3 tags
With reference to the Norvig article, I’ve failed to find any transcript of Professor Chomsky’s remarks. I should very much like to read one, if it exists.
May 27th
4 tags
Peter Norvig - On Chomsky and the Two Cultures of... →
May 27th
2 tags
May 26th
224 notes