Functional Versus Procedural
Just to be sure there’s no confusion, let me define my terms here: Functional means that you write an expression (which could be defined as a function) that returns a value. Procedural means that you write a statement, or a sequence of statements (which could be defined as a procedure) which has some effect on the machine state (alter the values of variables or whatever). If I have to choose...
Emacs Versus VIM
I first encountered a full-screen text editor in my first year at University, which was 1979. It was a locally-developed application, built on top of the text-editing-oriented programming language TECO. Later, in the 1980s, I discovered Unix systems, but for many years I considered them inferior to the DEC systems I was familiar with, particularly VAX/VMS. But when I had to use them, the standard...
Android-Related Development Utilities
Here are a couple of Python scripts I wrote to make it easier to do development for Android: apitizer uses the Sun javap command to decompile and display the contents of .jar files. I use it to compare the contents of various versions of the Android libraries against the Google documentation, because the latter is sometimes incorrect. new-android-project is a wrapper around Google’s android...
Errors In Java Language Spec, 3rd Edition
Section 5.1.10, pages 89-90: 5.1.10 Capture Conversion Let G name a generic type declaration with n formal type parameters A1 … An with corresponding bounds U1 … Un. There exists a capture conversion from G<T1 … Tn> to G<S1 … Sn>, where, for 1 ≤ i ≤ n : If Ti is a wildcard type argument (§4.5.1) of the form ? then Si is a fresh type variable whose...
Coding Horror: Separating Programming Sheep from... →
eddieatthegov: The main stumbling block? Forming a coherent mental model of what the computer might be doing. Even if your initial model is off, it seems you go on to do well at programming. People without a model in mind programmed very poorly, and got even worse as the subject matter grew more complex.
Android Sample Code
The following sample Android apps are available from my GitHub area: 3D Compass, which uses the orientation sensor and OpenGL to render an arrow that always points north, regardless of how you hold your device Memory Hog, which lets you allocate large amounts of memory to force background tasks to be killed (useful to test that your apps cope gracefully with this) ObjViewer, which loads and...
Wikis I Have Contributed To
The Blender 3D: Noob to Pro Wikibook, particularly sections on 3D geometry 2.5x user interface 2.5x scripting Inside DVD-Video Wikibook The Waikato Linux User Group (contributions) android-dls.com (contributions) codecodex.com (seems to be defunct, however some of my contributions are still accessible via archive.org)