Friday, October 30, 2015

Deep neural network classifies selfies

This is just a cool, well-written article.


So this is cool. The debugger "rr" approaches things from a different perspective from most debuggers. Instead of instrumenting a live, running program, it makes a thorough recording of a full run, which you can then run back and forth through with a debugger. Sounds resource-intensive, but also pretty fantastic - like the author, I hardly ever use a debugger, but even my few times using one have been characterized by shooting past the point where things actually started to go wrong.

FizzBuzz as the illumination of thought about requirements

It's interesting how FizzBuzz has kind of become the go-to program for thinking about software development as a whole. Here's an interesting article from the standpoint of maintainability and understanding the requirements behind the requirements.

Monday, October 26, 2015

Declarative description of financial contracts

This is something moving rather close to a semantic approach. Very interesting.

devd ubersimple command-line HTTP server

Quick testing of web apps.


SQL for graph databases, only ... it's still basically vapor. Looks promising, though.

Update 2016-02-18: still unchanged. I'm not holding my breath on this one.

Fuzzing Raft

I'm starting to really enjoy posts about fuzz testing.

Cracking PDF DRM with Clojure

Fun little post.

Monday, October 19, 2015

Machine learning courses again

I may live to regret this (like I did in 2012), but I'm taking another stab at the MOOG machine learning courses. Well, the Stanford one at Coursera, anyway, but maybe I'll take another run at the Caltech one as well, after I'm done.

Some links, to keep them in a convenient place. Some are useful for actually doing the classes, some for understanding the math, and some ideas for what to do after the course, in no particular order.
So. Machine learning.

Update 2016-01-09: Unsurprisingly, I didn't have time for the Coursera run. Did break my word count record for 2015, though.


A pretty fascinating look at the philosophies (dare I say the semantics?) behind MVC, MVVM, MVP, Model-View-Whatever architectures. Thought-provoking.

Thursday, October 15, 2015

Visualization of pathfinding algorithms


Refactoring Clojure

A thoughtful article about refactoring Clojure. Refactoring, of course, being exactly what semantic programming is about, ultimately.

Gantt charts and project management

Oh, look: an open-source Gantt chart editor.

Sunday, October 11, 2015


Quora often has very interesting posts.

Static blog weavers

Ran across this list of static blog builders provided by a static-page hosting company. One in particular, blogc, stood out as it's a command-line ANSI C tool. That's kinda neat.

As usual, this kind of thing just screams "semantic domain" to me and begs analysis from that standpoint. Soon, compadres. Soon.

Sunday, October 4, 2015

PowerPoint cognitive style

Edward Tufte really doesn't like PowerPoint.

Timely dataflow

Still haven't quite figured out exactly what timely dataflow is (something like JIT-evaluated lazy streams that take advantage of parallel processing resources), but here's a paper to read.

Here's a Rust implementation of a similar system, with differential dataflow built on top of it.

FSM-enabled key-value store

I'm not even sure exactly what keyvi is, except something very wonderful. If I understand correctly, it finds strings in a fuzzy manner. I should really look at it more closely.

Rethinking cron

I guess I'm not the only one that doesn't like cron much (except, you know, the part about how it always works). Alternatives for many purposes appear to be in the category of job queuing systems, so that should probably be examined at some point under the "system architecture" rubric.

Also, here's a Python job scheduler inspired by this article. ("Job scheduling for humans.")

007, a simple macro language

This is very cool. 007 is a macro-enabled language that is written on top of Perl 6. I really kind of need to look at Perl 6 sooner or later.

A curated list of NLP resources

Rat cheer. Excellent list.

Also on the topic of NLP: Semantics, grammars, and representations for deep learning, a paper I'd like to read when I have the mental capacity to really read it. (Having the Android tablet has really helped with that.)

Also, a primer on deep learning tools in NLP.

Saturday, October 3, 2015

The best regexp trick ever

It's true. It is! It's just this. Say I want to find all instances of X that aren't in quotes. Then I just say /"X"|(X)/ and ignore overall matches, just taking group 1 matches. Pretty brilliant, actually!

Declarative Arduino

I've been doing a little initial dabbling in Arduino tutorials in preparation for an upcoming project that involves (gasp) actual hardware, and as usual my thoughts continue to want to make it all a new domain. What I'd really like to see is a single specification that defines the circuit on the Arduino, the code running in it, and any UI code on the host that talks to it (whether through the serial port or by radio).

Those pieces would then draw the schematic, write  the Arduino Java code, and write the host-side C or Perl or whatever is running over there. Later, you could even automate the assembly of the circuit on the Arduino side (wouldn't that be a cool project? Combine it with the circuitry evolution thing I saw a couple of weeks ago....)

Thursday, October 1, 2015


So "doit" is a build tool written in Python, designed to be more general in scope than make. The documentation speaks of workflow. It looks like an attractive tool.

And speaking of attraction, it seems to me that there are natural "semantic attractors" when it comes to the many tools written for the same domain. What you'd really want to do is to boil things down to a semantic core and then map out how each tool expresses things in its own unique way. Factor out the commonality, as it were.

So the build tool domain would be an interesting domain to do that in, especially given its patent usefulness in building tools.

Gear Generator

Oh, sweet: a gear generator. Does exactly what it says on the tin.


Specifically, Transpose. Here we have a really attractive online tool for sticking structured notes in the cloud. "Structured", here, means typed fields that go into something in the back office that can be searched by type. Notes are also typed in that they are arranged into templated lists; each template has a set of typed fields. If my template includes a date and a location, for instance, I can look for all notes within a mile of a given set of coordinates, plotted on a Maps window.

That is pretty freaking excellent.

Transpose the business is a freemium model that incorporates crowd sourced templates in its "public library". That allows you to leverage some level of information about how other people do things. That's pretty freaking excellent, too.

The free version permits up to 10 templates.

Your mission, if you choose to accept it: write a sketch of the system and the business in Decl. Work on the semantics behind the scenes to make it a reality.