Wednesday, August 3, 2011

Simple Android mockup

Must ... do ... this.

Text-to-Speech

This ... isn't really one of the usual subjects here, but:

A/B testing vs. bandit algorithms

I'm starting to think some kind of A/B testing should be included in WWW::Publisher - probably as some kind of more generic mechanism, of course - but along comes a new strategy, the "bandit algorithm", which is more optimal, apparently. [article] [hnn]

Shell under Wx

I really want a Perl REPL inside Decl, but in a Wx or other GUI environment, I want to be able to put it into a separate window. Until now, somehow I've managed never to be able to figure out how it's done. But there is a CPAN shell in such a Wx app. What I really want, then, is to do that, but for a generic shell. (There is also such a thing for Tk, by the way.)

In the larger scheme of things, it would be nice to be able to define the "operating environment" in some way, and pop up semantically specified things like "a shell" in a way that's appropriate to that environment. In a remote context, it could even be some kind of AJAX thing. (I know it's no longer de rigeur to call it AJAX, but hey, I'm old.)

While researching it this time, I also ran across the kitchen-sink REPL Devel::REPL, based on Moose and importing lots of stuff, and PPI, which is a Perl kind-of parser that looks pretty darned interesting.

iOS to Android: a comparison

Good overview of Android, actually.

Federal Register API

The Federal Register has an API.

Saturday, July 30, 2011

Research workflow

OK, so I don't nearly have time to write about this post in anything like the detail it deserves, but: he's a CS prof now, he's defined a pretty snazzy-looking approach to organizing research activities, it looks a whole lot like Hofstadter's model of mind, and I want to think a whole lot more about it.

So I'm posting it here, on the off chance I'll run across it again in a few months when I have some free moments. I don't even have time to read it all right now. Argh!

Also, from the same blog, the post that hit HNN: [here]. A good post, but not the one I'm most interested in.

Pump > Picasso

Pump > Picasso > blog example - a Pythonic Web framework that looks really nice and minimalistic. And the blog example is more or less a kata.

Machine learning tool list

Here's a tasty list of tools to investigate next time I have leisure to think about machine learning.

Article: The HTML5 Boom is Coming. Fast.

Well, this is good news: the desktop browser and mobile worlds are converging on HTML5 as their graphics platform of choice. Bye, Flash.

Time to whet those tools.

Target domain: testing

Unit tests. Something. Testing is probably related to workflow. Yes, I know this is overly terse.

Article: the Pain of JSON API Testing

A weird little article about Ruby JSON API testing and why it's difficult with Cucumber, which is a testing system in Ruby. Might I say: this Cucumber makes me see why Ruby.

FreeForm

A new programming language? Sorta kinda what I'm doing lately? FreeForm. [hnn]

Steve Yegge: the Universal Design Pattern

I think I need to reread this just to summarize it, but he starts from Doug Hoftstadter and goes to prototype-based programming, I think, is a reasonable one-sentence overview.

Miscellaneous software-component stuff

Link-dump time. These are pretty much all notes on software components. (Note to self: define somewhere that what I call software components don't seem to be the same thing as everybody else's software components. - Really these are slot fillers for particular roles in a system design or something.)
  • WSGI in Python: The Pluggable Pipe Dream. [article]
  • LevelDB, Google's key-value store, is now open source. [site]
  • Using MySQL as NoSQL. (The circle is complete.) [article]
  • Redesigning the Netflix API. [slideshow article] (the Programmable Web)
That's that.

Target domain: Windows 7 gadgets

A StackOverflow overview. tl;dr: they're HTML/CSS/Javascript and run in built-in IE in the Desktop.

Target app: Drag-and-drop Faxaway.com fax sender. That would rock!

Target domain: Telephony

Twilio [representative link] provides telephony as a service, with the ability to write applications that handle incoming calls and SMSs in ways I'm sure I don't yet fully understand. (Add Faxaway.com for incoming and outgoing faxes and I think you've got all the telephone-network-based forms of communication covered...)

Anyway, I need to do a little Twilio work for a side venture I've got going on, so I'll need to spend some time with it - the question I'm now asking myself is: how difficult would it be to put together a domain for Twilio apps? What exactly does that even mean? I want to spend some time thinking about that, because writing app domains feels like an important direction for Decl. The final output language could be anything, after all - including PHP or what have you - so this is kinda like Web programming, except different.

So. Marker in the sand here.

Polyglot programming

Here's an interesting article about a programming project that mixed C# and F# for the heavy lifting, and called external Ruby and Javascript. I think maybe the takeaway is that polyglot programming can work well when it's called for (each language has its own strengths and weaknesses).

On the other hand, I've heard comments by Rubyists that sometimes the proliferation of DSLs in typical Ruby programming makes comprehension more difficult. So ... another balance to be struck, perhaps.

Evolutionary program repair

Oh my God this makes me salivate.

The concept: use GA to perturb a syntax tree for a C program, use unit tests as the fitness criteria, sit back and watch code arise that meets all requirements. The link goes to fixed code. In real projects, apparently.

The mind boggles!

Parasail

A language for the development of parallel, high-integrity programs. Very interesting! Most interesting takeaway for me is that a "loop" in Parasail is what I called a checklist - if you don't specifically force sequentiality, it's not sequential. [specific post but the whole blog is probably worth a read through]