Monday, May 30, 2011

Target app: www.timeoffhq.com

Look at it! Quick, easy, simple! It should be dead easy to do that!

Useful string functions for PHP

It caught my eye.

HTML overview

Just because I'm finally doing HTML::Declarative, here is a useful link to an HTML overview that I'm going to use to build a database of valid attributes and tags.

Dmainai - an AI tank game

Fun!

Unix tools

Man, this is a domain rife for semantic clarification if ever there were one. It'd be good for me just to write it, actually, whether it ever got used or not.

Everyjs.com

Ha. A list of currently useful Javascript libraries. "The right tool for the job."

Data Mining: the map

Here's a fascinating map of data mining techniques.

MessagePack

An alternative to JSON that packs things much smaller. Good idea!

Error handling

Oh, man, my Achilles heel is error handling. So it was with great interest that I read this article about how (not) to do it. It kind of ends up being a long-format advert for Erlang, but that's OK; non-mutable variables are a good way of dealing with exceptions.

What I'd really like to think harder about is to address error/exception handling at the semantic level. Somewhere in there, errors are workflow. They might be really simple workflow, but at least potentially they're a matter of making a bookmark to a record that tripped us up, and doing something about it later.

The notion of saving state is also interesting, as is the concept of transactions as a method of keeping changes in bundles.

At some point, I'd really like to get serious about a uniform way of talking about errors.

Huh. Looks like I was already thinking about this in 2009. Well - to be fair, it was already bothering me in 1989.

UI design

An excellent list of ten considerations for UI design. Again: we oughta have a semantic domain for this. Patterns. Boilerplate. Macros. The works.

CSS again

Thirty-two neat things you can do with CSS that traditionally required JS.

Project management with Task Warrior

Task Warrior is a command-line tool for task management. It's really quite extensive. A project management domain could interface with it, say.

Domain: crowdsourcing strategies

Here's an interesting paper on the efficacy of a number of different crowdsourcing strategies (using Mechanical Turk). Which leads to the concept of "programming for crowds". If I can program a company, then I can surely program a crowdsourcing application, right?

Think about it.

LLVM

A chapter in The Architecture of Open-Source Software on LLVM, the compiler backend that's used in GCC and lots of other things.

Boilerplate

It's what's for dinner! A boilerplate setup for mobile services.

Saturday, May 28, 2011

Tetris AI

Here's a fun post: the author wrote an AI to play Tetris (OK, I have this same urge, of course), and that AI had a set of parameters he guessed at. The logical next step was to run a genetic algorithm to try out different values for those parameters.

That's cool!

Pastebin harvesting

Here's a fascinating idea. Pastebin has a public section. Concerned about abuse, one Internet citizen scraped it to see what was there - there were lots of .... things there of dubious ethics. Let's say.

Why not scrape it daily and analyze what's there? This seems kind of interesting to me, and I'm not even entirely sure why.

NLP Christmas in May

I found out that not only is the journal Computational Linguistics now free online - but a lot of journals in computational linguistics are free online (archive here). All I need to do now is build a semantic bot to analyze them...

Rosetta Code

So there's this site Rosetta Code that shows snippets of how to do Task X in lots of different languages. I find that pretty fascinating from the semantic-programming standpoint; in a certain sense, each set of solutions encodes the same thing, the same meaning.

The link goes to "open a window"; Perl has five ways of doing it, depending on the GUI framework you're using, and I'd like to explore that parallelism in Decl.

Wednesday, May 18, 2011

COLM: COmputer Language Manipulator

COLM is a language for parsing and tree transformation (like TXL before it). Bears watching.

(I'm pretty sure my concept of mapping is equivalent to a tree transformation with notes kept to permit reversibility.)