Saturday, January 26, 2013

Upgoerfive text editor

Now here's a brilliant little idea: a JavaScript text editor that does stuff in the background for you (checking against a list of the ten hundred word people use most).  I just keep thinking in terms of local software when JavaScript is really your friend for UI interaction these days.

Sunday, January 20, 2013

Intentional Software

Here's a consultancy here in Budapest that use some in-house advanced modeling tools for business processes and then generate software from them.  They seem to like formal logic (going on their logo for that).  Very ELTE.

Referenced from the blog of one of their employees.

JavaScript quizzes

For the JavaScript spaced repetition code training tool: some quizzes.

Story shapes

Not about programming, but definitely about semantic structures and how people write narrative.  Kurt Vonnegut's theories of story shapes rendered as nice graphics.

TeX in JavaScript

For all your local in-browser TeX typesetting needs.  Blows my mind.  Unfortunately doesn't do italics right.

Poker engine

An open-source poker playing engine based on game theory.  I love this century.



We can regard this kind of small service as a kind of "sensor" for an overall business process workflow.

13 pointers about open-source documentation

Good pointers, too.


An amusing thing: take text and, using a dictionary, find each noun and replace it with the noun N+i after it, for i=0 to 15.  (From MetaFilter.)

Spaniel: the final fruit. These are the waders of the starship Entity. Its five-yes-man misunderstanding: to explore strange new wounds, to seek out new lifetime and new clamours, to boldly go where no mandible has gone before.

legit - git workflow for humans

First, this is a neat way of repackaging git functionality so that even I can grok it.  More interestingly, the notion of packing up workflow like this is kind of what I'm working toward lately in general.

Why wireframing tools suck

Interesting proposal for a wireframing tool. [hnn]

Wednesday, January 16, 2013

So you want to be a data scientist

Ha.  As long as we're on curricula.

Design books to read

The best five, even.

More on HTML5/CSS

Two links today:

Curricula for pure mathematics and theoretical physics

In the interest of analysis of fields of knowledge, and because I am starting to feel the lack of mathematical sophistication in my life, here are:
These are both lists of texts and courses that one should work through to grasp these fields.

Alternatives to Matlab

Matlab is used for computational physics (among many other things).  Its open-source alternatives appear to be:
and that's about it for the heavy hitters.  No doubt there are loads of smaller alternatives that focus on specific areas.

Blimp project management API

Blimp is a project manager SAAS thing online which I hadn't heard of until now - and now they have an API.  That API would be a good place to look at what functionality a project manager should have.

Research tools

So people have been tweeting academic papers in PDF in memory of Aaron Swartz, and wouldn't it be interesting to index them properly and kind of do an Open JSTOR?

simpleai - Python AI library

Basic implementations of the algorithms in Russell and Norvig, in Python.

QLB - program in Arabic

Yet another programming language.  They're very popular this fall.


Moe is a new project to reimplement Perl 5 on Scala.  It's crazy enough it might just work!

Seriously, if it's compatible enough that it can run CPAN, I'm moving.  To that end:

Sunday, January 13, 2013


Workflowy is a nested, shareable, annotatable to-do list manager.  Slick.

Some IMAP links

IMAP is weird, but I'm starting to get used to it.  I have a bunch of promising links here (mostly Perl-centric).

Rails devops cheatsheet

Useful collection of command-line incantations.

Soto blog search


Thursday, January 10, 2013

Linear algebra

I'm having a kind of brainstorm here about linear algebra, mostly because my daughter is studying for her linear algebra final.  Here in Hungary, that means proofs - lots of proofs.  In America, it typically means problem-solving (actually, there's a separate problem-solving part of the class in Hungary as well, and she aced that).  To me, linear algebra means some useful concepts for machine learning and statistics.

Overall, the semantics of linear algebra should actually be pretty simple, right?  The semantics of mathematical techniques and concepts are strictly defined.  (I mean, the semantics of their application might not be so hairless, but still.)  So a semantic domain of linear algebra should include boilerplate and idioms for working with matrices in R and Python and C, graphing with gnuplot, and so on. Even the proofs of theorems should be formalized with CoQ in such a setup.  And of course all of it should map onto LaTeX and OpenMath definitions of the display math.

The presentation of such a semantic domain could be seen on a number of different levels, and in a sense, the presentation should be the definition - a sort of literate programming concept.  A book, in other words, about linear algebra that simultaneously defines the domain in terms of semantic structures that could be used to program software for linear algebra.

And that presentation would be a really useful book.  I have no idea at all how best to organize such a work, but it's a hell of a vision, isn't it?

Here are a few linear algebra notes gleaned from HNN just now.  I'm trying to find a specific linear algebra overview that I truly recall seeing on HNN, but I can't find it now, so ... maybe I dreamed it.

Primers and intuitive overviews are always nice.  Here's a great one.  And another.  Here's a primer I find a little intimidating.  And a blog post series on the toolbox provided by linear algebra.

A fantastic post by a guy who taught linear algebra that has nothing to do with linear algebra, but is a pretty decent way to run a math class.

Finally, what seems to be a decent set of notes.


What a cool idea.


A Python code help tool on the command line.  Neat idea.

Linguistics identifying writers again

I think this may be a new study, but apparently they're identifying "authorship fingerprints" with 80% accuracy.  They're running foreign-language posts through Google Translate, which I find extremely questionable - although I suppose if it's a question of topic arrangement or something, it makes sense.

Anyway, all the usual stuff applies; it'd be nice to have a fingerprint spoofing tool, etc.

Damien Katz: a Paean to C

Damien Katz sure likes C.  And for reasons I'm OK with.

Webdev stuff

A huge Web development checklist for anything published, and what one guy learned about accessibility by pretending blindness for a week.

Monday, January 7, 2013

IMAP architectural patterns

Here's an interesting concept in terms of architectural patterns: synchronization between multiple IMAP servers with OfflineIMAP.  Again, yeah, structural database application, yadda yadda.

Hmm. Zapier to move data between dozens of Web apps.

HTML5/CSS3 on the desktop with TideSDK

This is a neat idea.  Very neat indeed.  Doesn't support Perl, though.

Python frameworks for Hadoop

Gotta learn Hadoop.

Census dotmap

A guy took the recent census data (by block) and plotted one dot in the United States (except Puerto Rico) for each person.  Randomly located within the block in question, because the census data is no more accurate than that.

The result is a pretty cool map.

Sunday, January 6, 2013


I'm an idiot.

No, seriously, this is a lesson I just keep learning.  I've been working with email - not as a user, but as a programmer - since 1999, and I've never really taken the trouble to look closely at the IMAP specification.  And because I failed to do that, I've never really fully appreciated just what a perfect synchronization protocol it really is.

Need an email assistant?  Use IMAP.  You can run your usual email client against the server and have a separate assistant application watching the same server.  Delete a mail on one, it gets deleted on the other on the next synch.  You can add messages to the Inbox, even!

For a couple of years, I've toyed with automating Thunderbird to do this kind of assistant task, but automating Thunderbird is needlessly complex and I've just never taken the time to try it.  Now I don't have to!  I can continue to use Thunderbird against my mail server while writing a Perl assistant based on Mail::IMAPClient - problem solved!


I'm an idiot.

Saturday, January 5, 2013

Showing a repository link on MetaCPAN

Szabó Gábor weighs in to plug a gap in documentation.

Junior: native-look mobile HTML5 framework

Boilerplate!  I love this stuff.

Videos of open-source project activity

Neat for an artist's impression of how activity on a project is structured.


So Peter Norvig has a blog, and uses it very interestingly indeed.  Here he is opining on Chomsky (not that he's wrong, but I cannot believe the words coming out of my mouth, I agree with Chomsky [not due to Chomsky's politics, which I largely agree with, but because of his linguistics, which I don't]).

Where I think Chomsky is right is that right now, statistical techniques dominate the field.  It's misguided; we're describing the how and not the why of human language.  Great in terms of engineering, no doubt, but ... empty.  Devoid of semantics.  Norvig reacts with no little acerbity, which I find misplaced.  But it had to sting.

That said, the post is a good one, and well worth reading.

And then he tops it off today with a re-do of Mark Mayzner's work from the 60's - in response from a letter from Mayzner, no less!  Mayzner did some frequency counting using Hollerith cards and an IBM sorter, working with a randomly selected 20,000 word corpus, and wondered if a larger corpus, such as, oh, Google Books, might show different results.

Interestingly, it does!  Norvig's corpus, 37,000,000 times the size of Mayzner's, has slightly different letter frequencies, which I find pretty fascinating.  If punched on Hollerith cards, it would fill up NASA's Vehicle Assembly Building to the 2/3 point, and a single pass through an IBM card sorter of the model Mayzner used would take only 700 years.

It would be interesting to build a lorem-ipsum generator that used a tuned Markov chain to return a sample text that exactly matched Norvig's statistics.  That would be neat.

Big Data in 2013

Nice picture of the state of Big Data.

HTML5 Tetris

One more koan.

Friday, January 4, 2013

Why 419ers use such bad English

To filter out only the most gullible.  This is actually pretty cool!

Programming is terrible

Interesting and funny blog on programming topics.


Very weird stack-based video/audio generator tool.


Video-analysis software.  Open-source Java.  Neat application of it here.

Web book boilerplate

Another book builder.  JavaScript/Grunt.


Here's a neat online tool for testing JSON-based APIs.


Remember HaXe? (Also here, because clearly I didn't remember it well.) Apparently this AS3 programmer likes it. I like the concept!

A "short" list of front-end development skills

Here's a nice list of domain skills for front-end work.

Felix: scripting in C++

Felix is a scripting language that compiles to C++.  This is a neat idea.

Free wireframing tool  Seems kind of ... low-powered to me.  But still interesting,

How to install Hadoop


Neat! lets you enter a regexp and it shows you a really nice graphical rendering of the language it matches.  I like everything about it!

Tuesday, January 1, 2013


I remember CrowdFlower from the HNN discussion of the Mechanical Turk last... uh, year before last.   They appear to be packaging certain workflows and task breakdowns as API services (see the link - RTFM is Real Time Foto Moderator, kind of cutesy) and also doing various custom services along the same lines.

Where I think I might differ (maybe) is that I'm talking primarily about automation of arbitrary workflow that might have Turk-sized tasks or bigger ones, or none at all.

Z: a tiny language inspired by Markdown

Here is Z, a simple language based on indentation and string manipulation.