• Issue #44: Mobile

    The Law Of Diminishing Returns

    The myth of the cross-platform mobile application is as old as the iOS + Android duopoly. Back in 2008, a small Canadian company called Nitobi Software released a JavaScript-based framework for cross-platform mobile applications called PhoneGap. Adobe snatched Nitobi in 2011, right after realizing that Steve Jobs was right, and that mobile apps based on Flash were nothing else than a chimera.

  • Issue #44: Mobile,  Library

    Erica Sadun

    iOS developers new to the platform are completely (and thankfully) unaware of its rocky start during its initial years. The first iPhone was announced on January 9th, 2007, and was released in the United States on June 29th that year. The iPhone SDK was announced by Steve Jobs in October 2007, and released in March 2008. But even before the official SDK was first announced, people were already "jailbreaking" the device, and thereby making applications for the iPhone. First-generation iPhone and iPad developers will surely chuckle when reading the words "PwnageTool," "JailbreakMe," and the name of the first App Store, also known as "Cydia."

  • Issue #43: Types

    Issue #43: Types

    Welcome to the forty-third issue of De Programmatica Ipsum, dedicated to the subject of Types. In this edition, Graham crafts a Motorola 6809 CPU emulator to show that types are useful, but not needed; Adrian reviews history and literature to show that types are useful, but should not be abused; and in the Library section, Graham reviews "Recoding Gender" by Janet Abbate.

  • Issue #43: Types

    Apples And Oranges

    Stanford Professor Jerry Cain spent the first 17 lessons of his 2007 Programming Paradigms lecture (CS107) explaining how to build a generic set of data manipulation functions using plain C, carefully showing how all those "bit patterns" are represented in memory. The resulting code, featuring a relatively large amount of casts to and from void * pointers, can sort and search arrays of integers, strings, floating point numbers, and pretty much anything that can be referenced with a pointer. Which is the same as to say, a lot.