Archive for February 2009

Kindle Monospaced Fonts: Fail

A mixed bag:

The Kindle has Greek characters, but not complete math (in the image below, there should be a ⇔ <=> character).

It converts Courier (at least) to monospaced, but does not auto-convert Consolas:

As you can see, neither the Courier nor the Consolas work (just look at the difference in space taken by ||||| and mmmmm).

This is a PDF conversion, so it’s possible that a different authoring route (perhaps Kindle specific) is necessary to get monospaced fonts (See update below…) . Bad news for programmers:

 IMG_0081

IMG_0082

Update: Ah hah!

I managed to trigger the Kindle monospaced font by converting from HTML and using the <pre> tag:

IMG_0083

More bad news, though: using an explicit HTML <font face=”Courier”> tag does not work.

Functional Programming Guidelines a la SOLID?

The recent kerfuffle between “Uncle Bob” Martin and Joel Spolsky involves the SOLID Principles,some object-oriented design guidelines that compress into a pleasing acronym.

While there are weaknesses in the mainstream OOP languages, I believe that OOP has a great advantage in that it is teachable. You can start with “objects are nouns, methods are verbs,” draw some class diagrams, and move on to SOLID… all of which could be criticized as overly abstract and ungrounded in the business of turning inputs into outputs, but y’know, darn it, there are teachable principles.

Functional programming fits well with test-driven approaches to development and provides some guidance on concurrency issues. In the Jolt Judges discussions this year, nothing has engendered as much discussion as Haskell and Scala.

But from a pedagogical standpoint, I think that functional programming has a big problem. To the extent that you get anything in terms of principles, it’s mathematical category theory. How do you determine when a function is too big? When should you split a data structure into sub-structures? How can you tell a well-thought-out function from a poorly-thought-out one?

Functional programming needs answers to these types of questions and those answers can’t be of the “once you understand it, you’ll develop a feel for it,” ilk.

Mathematica Releases $295 Version For Home Use

Mathematica is one of the most impressive pieces of software I’ve ever used. I use it any time I can find an excuse, which is unfortunately not that often (it’s surprising how rarely math intrudes upon the actual day-to-day life of the software developer).

In line with its professional utility (my brother-in-law uses it when designing electromagnetics for FermiLab), Mathematica costs a pretty penny. However, Wolfram Research has just released a $295 version for non-professional use (Mathematica 7 Home Edition). Not exactly cheap, but when I specifically asked if it was limited, I was told it is “a fully functional version of Mathematica Professional with the same features.” 

Column on IronPython Up

My latest column for SD Times argues that Python is “your best bet for easy access to arbitrary values of interesting.”

div>