David Bolton

David Bolton was a game developer and a past game designer at MicroProse. He now works as an independent developer creating mobile and desktop applications and writes on programming for About.com and News.dice.com

How to Build Apps in Swift

app image 1
Earlier this year, Apple executives unveiled Swift, which is meant to eventually replace Objective-C as the programming language of choice for Macs and iOS devices. While Objective-C remains popular, developers frequently complain about how difficult it is to use; Swift’s features will supposedly eliminate at least some of those issues. Despite its ease of use, developers will still need to spend some time learning how the language works. This is the first of a few articles that show how to… continue…

Passing Functions as Parameters

Passing a Function as Parameter in C#
When I first started programming in the late 1970s, I was heavily into Pascal and the concept of passing an address as a parameter was just unheard of outside of academic circles. Procedural programming treated functions as something that were called, not passed around. Had I known C then—which had been around since the early 1970s—I might have been more aware of function pointers. If you don’t know C that well, a pointer is a variable that holds the memory… continue…

Creating Random Access Text in C#

Contents of the Two Files
Back in April I looked at disk folders as a possible alternative to NoSQL or using a relational DB. My conclusion wasn’t encouraging—I was concerned about poor performance, especially on Linux. The use case I examined was for a server that had from 100,000 to 1 million users. I wanted to store and retrieve text files for any user. Those files could vary in length from a few bytes to a few KB. Back in the dark ages—before the Web… continue…

6 Developer Tips for Better Disaster Recovery

Blue Screen of Death
You go through life thinking that it won’t happen to you, but someday it will: Your development PC suddenly goes from being state-of-the-art to having the computing power of a brick. How quickly you get back into action depends upon your budget and preparedness. Over the recent July 4 weekend it happened to me. The disaster was partially of my own making. Thanks to a slightly dodgy set of RAM—both Ubuntu and Windows 7 memory tests agreed on this—I was… continue…

Is the Time Right to Learn Python 3?

Python Logo
Python is an excellent and very popular programming language, considered one of the best-designed. It has a simple, clear syntax and runs very fast (faster if you compile it with CPython), but there is one slight problem facing anyone new to it: Which version should you learn? There are two versions of Python—Python 2 and Python 3. Python 2.7 is the last of the 2.* series (currently up to 2.7.7) and has been the recommended version to learn for ages.… continue…

4 Python Frameworks You May Not Know About

Python Logo
The phrase “Python frameworks” usually refers to Web frameworks, collections of software that aid development of websites and services. But there are a few frameworks that aren’t for Web development, and some that you might not have come across. Say hi to QuePY, Cement, Carrot and Charm. Click here to find Python jobs. QuePy Ever heard of Freebase or DBPedia These are very large collections of free structured data. DBPedia is where structured data from Wikipedia is held, while Freebase… continue…

Coding Challenge Wrap-Up: Who Won the Map

Roman Trade Network
Compared to our previous coding challenges, May’s was a modest affair, with just three entries coming in from Rick Matter, Jon Pattinson and Jay Nagel. And, despite opening the entries to include Delphi, Go and Python as well as C/C++, Java and C#, all three were written in Java! (You can find all the competition files here.) In this challenge, you were given a 20×20 map that contained 20 trading islands, each occupying a square. Each island was a trading… continue…

4 Ways to Debug Application Crashes

Magnifying Code
Among the worst things that can happen to an application developer is having their software crash at a customer’s location—and having the customer on the phone to them, screaming. So how do you prepare against such an eventuality? In this article I’ll look at a few things you can do to be ready when–not if–something goes wrong, whether it’s hardware failure, a disk crash or someone pulling out a power cable and corrupting a disk. Actually, if you can deal… continue…

Pascal Is Way Underrated

Delphi IDE
While it came slightly later to the party (see my article here), Pascal’s history can perhaps be summed up with the phrase, “Always the Bridesmaid never the Bride.” Developed at the end of the 60s by professor Niklaus Wirth, Pascal was only intended to be a teaching language. Original Pascal had very limited string handling, no disk access and, crucially, lacked any kind of library mechanism. What it did have was an easy-to-read syntax, a good type system, facilities for… continue…

Comparing Django, TurboGears2 and Web2py

Python Frameworks
One thing Python isn’t short of is packages and Web frameworks. A visit to PyPi, the official package index, shows that frameworks alone have a whopping 12,514 packages available, with Django, Plone and Zope 2 leading the pack. Web development frameworks in Python are about as common as content management systems in PHP. The point of a Web framework is to save you the effort of writing infrastructure code when developing a non-trivial website. Unless you have a well-funded and… continue…