It may be a Law Of Nature regarding the evolution of software that every popular software tool eventually increases in complexity until it becomes so complicated to use that the only users who can deal with it effectively are those who use it as a full time job. In fairness, that’s in large part because they’ve evolved to do some very complicated things, but it does have the effect of squeezing the amateur out of the game.

I have been a huge fan of Microsoft Visual Basic, once it became a full-fledged language under .NET. I have written many thousands of lines of code in a variety of programming languages, and taught college level CS-1 courses in five of them (C, C++, Java, Visual Basic, and Perl). Of those five, Visual Basic (in my experience at least) is by far the easiest learning curve for students. And for any program requiring a GUI, Visual Basic is by far the quickest of the five for getting a working prototype up and running, and always my first choice (Python would be first choice if all I need is a console program). Microsoft has made things even better by opening up the full, non-crippled version of Visual Studio 2013 for free.

There is, however, one aspect of the Visual Studio experience that hasn’t improved, in my opinion — in fact it’s gotten worse. And it’s a big enough issue that I’m probably going to hold my nose and switch to single page javascript apps as my go-to platform for quick and dirty GUI programs. I’m referring to the problem of deployment.

More »

This post is about a simple children’s math game that I coded, which anyone interested is welcome to download. I’ll get to that momentarily; first a word about why it seemed worth doing.

One of the most glaring failures of public education is its inability to impart even basic math skills. There is a reason why we don’t succeed in teaching math: it’s impossible, the way we try to do it. All the children in a class in school are expected to do the same assignments, in the same book, in the same order, at the same time. When the book moves on to the next topic, every child in the class has to move on, whether he or she has mastered the current topic or not.

That doesn’t work at all with math because math builds on what has already (supposedly) been learned. You can’t successfully teach a math topic to a child who hasn’t already mastered all the basic skills that led up to it. If a child is weak on even one of the previously covered skills, he or she will flounder, most likely from then on. In elementary math, if you want a child to succeed, you do not move on to topic N + 1 until the child can execute topic N, consistently, quickly, with no false moves, and no mistakes. You don’t have to take my word for that — precisely that concept is the foundation of the only truly effective children’s math curriculum I’m aware of — the highly successful (and expensive) Kumon Math after school tutoring program.

Our two nephews who live with us (ages 9 and 14) go to a private (Catholic) school here in Davao (Philippines). Both are bright kids; both struggle with math. They get passing grades, but that’s mainly because schools find ways to let kids get passing grades without actually being able to do math. If they didn’t do that, everyone would be stuck repeating fourth grade forever, since, as already noted, it isn’t possible to learn math this way. More »

(Published in Live In The Philippines web magazine)

Along the usual route of my daily walk, my neighbor, Joe, an elderly Filipino, is often sitting in a chair just outside his gate, having a late afternoon coffee. I usually stop for a moment to chat. Good chance to practice some Bisaya (the local language here in Davao).

A few days ago Joe mentioned that he and his wife were going to Manila. So, in my usual “talk like Tarzan” version of pre-kindergarten Bisaya, I asked if he was flying there.

The Bisaya word for flying is “lupad”. (I learned this from the quite excellent Bisaya course offered here on this very web site.)

So I asked, “molupad ka ba sa didto?”, which, according to my calculations, meant “are you going to fly there?”

Whereupon everyone present (anywhere you go here, there are always other people around) burst into peals of hysterical laughter. More . . . 

As expounded elsewhere in this blog, I built a database of full-text U.S. patents and patent applications and some search tools for doing some data mining in it. As described in this post, I used it to extract a corpus of patents and applications that appear to represent in-house inventions of Intellectual Ventures, and organize them by subject matter.

Intellectual Ventures (“IV”) is the intellectual property powerhouse founded by Nathan Myhrvold after he left his position as Chief Technology Officer of Microsoft. IV receives a lot of criticism in the press and the blogosphere, often being portrayed as the mother of all “patent trolls” (a pejorative term originally popularized by IV co-founder and vice-chairman Peter Detkin, who was in house at Intel at the time). IV owns a lot of patents — according to its own published figures, it has acquired 70,000 patents since its founding, and filed 3,000 patent applications on the inventions of its own team of inventors. (Not everyone thinks this is a good thing.) More »

I don’t know much about global climate science. I’ve read a few papers and listened to a few lectures, but it’s not something I’ve ever studied in enough depth to have any business commenting on.

I do know a bit about computational modeling, though, and I also have some experience with argumentative overreaching (having spent 20 years as a litigator).

It’s fairly easy to fool oneself with computational models. Models have parameters that have to be “tuned” to fit the data, and given enough parameters (it doesn’t take very many) you can make a model fit just about anything.

In fact, I would go so far as to offer the following conjecture:

Conjecture: For any model of a complex system where a set of parameters determines the fit of the model to training data and the model generates a binary prediction A, there exists an alternative set of equivalently plausible parameter values that produces no worse fit to the training data and generates the opposite prediction (i.e. ‘not A’).

More »

In the continuing saga of me trying to bludgeon WordPress into doing what I want it to, I took a shot at coding a simple widget. You can see it there on the right — it shows the local time here in Davao, Philippines, and a quote taken at random from a text file.

Widgets, for the uninitiated, are separate programs that “plug in” to (in this case) a WordPress page. There are thousands of WordPress widgets out there, and most of the ones you see on blogs are “canned” widgets — you just download them, drag/drop them onto your page, perhaps specify a setting or two.

Or, you can write your own. It isn’t difficult, but it does require some basic familiarity with at least PHP and preferably also javascript. More »

It is commonly held that countries can gain an economic advantage by devaluing their currencies against those of their trading partners. This is often referred to as the “beggar thy neighbor” tactic. I don’t see how it can possibly benefit the country doing it. I have tried to discuss this with several folks who are much better versed in these matters than I  — some with PhD’s in economics — and they seem very sure that the devaluing country does gain an advantage, but I still don’t see it.

To explain where my understanding seems to go off the rails, I’ll take an oversimplified example. A year or so ago, Switzerland found its currency appreciating against the Euro (and just about everything else), so it arbitrarily instituted a “peg” at 1.20 SF to the Euro. In other words, the Swiss franc would not be allowed to rise above that level. If it started to, the Swiss central bank would print more Swiss francs and use them to buy Euros, in whatever quantities might be necessary to keep the Swiss franc from rising in value. When this policy was announced, the value of the Swiss franc immediately dropped like a stone. How much depends on which currency you’re comparing with and over what time frame, but for purposes of today’s exercise let’s call it 15%. More »