programming

Book Review: Annie's CS101 by Dmitry Zinoviev

The full title is "Annie's CS101, A Charting Approach to Computer Programming." This is an interesting approach to an introductory programming course -- the target is for younger learners (although not children), and it focuses on the thought process behind conceiving of a programming problem and solving it. The language of instruction is Python, although this is not really a Python book.

Encouraging the next generation of hackers part 2 - Software implementation

In the first part of this series I looked at the Raspberry Pi -- a $25 computer which is being developed to remove one barrier to encouraging the next generation of programmers. It's ambitious and commendable but on its own it may not be enough. The choice of software for such a project is important and as important is the implementation of that software.

Encouraging the next generation of hackers part 1 - Raspberry Pi the $25 computer

If you keep your eyes and ears on tech news, chances are you've heard of Raspberry Pi -- an ambitious project to create a small form-factor usable computer for the education market which will be available for £15/$25. The price is not the ambitious part though, it's the aims of the project behind it which I think are ambitious and worthy of some attention. Of course with that price it can only be based on free software.

The falcon virtual machine: an organic virtual machine shown with practical examples

At the beginning of 2011, the Falcon Committee decided to release version 1.0 of the Falcon Programming Language during the year. After a bit of discussion and planning, we begun working on a new version of the engine to support some constructs we wanted to add to the language: mostly rules and structured prototypes. Also, we spotted the possibility to add fuzzy logic and evolutionary programming (A-Life) constructs directly into the language. We now have a working prototype of what we’re calling the "Organic Virtual Machine".

Review: Making Software, Edited by Andy Oram and Greg Wilson

It's an old joke among programmers that questions of the efficacy of programming languages, abstraction models, management models, or other fundamental ideas of software engineering are simply "religious wars" -- i.e. conflicts impossible to resolve, because they are based on faith and superstition rather than any kind of objective evidence. And yet, a lot of important decisions are based on these ideas. So it's refreshing to see a book that attempts to apply real scientific rigor to the questions of programming and software engineering, and that's what "Making Software" gives us.

Moving to an IDE for programming (Eclipse with PyDev)

In the past, I've always shied away from integrated development environments (IDEs), but I recently had a strong enough motivation to finally learn how to use Eclipse -- one of the most widely-used free software IDEs available today. Eclipse is known mainly as a Java IDE and it does require Java itself, but it is also a powerful and flexible multi-purpose platform, and adaptations exist for programming in many languages, including Java, C/C++, Lisp, and Python. Python support is available with an Eclipse package called "PyDev", and I have found it to be a big step up.

Why Gtk+ May Just be the Best GUI toolkit ever

When it comes to programming a lot of people look to C/C++ for answers. They're pretty straightforward languages that are general-purpose(they aren't really good at anything in particular, but can be used to do just about anything). The only strike against these languages is that unlike Java, they don't bring a GUI API built in. Instead, C/C++ coders must rely on other libraries and even system APIs to get the job done.

Saving my sanity with Zenity : shell script interaction via the GUI

Whilst an increasing number of recent converts are avoiding it (and I don't blame them really), the shell is still a key tool for the majority of GNU/Linux users. Shell scripts are knocked-up, shared and deployed in all sorts of circumstances -- some simply time-saving, others life-saving. But even if the shell script has been written by somebody else, running it can be a cumbersome and frightening exercise for users of lesser experience or confidence. How do we bring the flexibility of the shell script to the GUI-only user?

Becoming a free software developer, part V: When and where did you learn?

In my last article I talked about how interest leads people to program. Then life rose up behind me like a giant Doberman pincer and bit me on my backside; so, I didn't think of programming for over four months. However, just this week something happened that made me want to program again.

I was preparing to teach some students how to use dichotomous keys to identify organisms. Suddenly, while I was staring at a simple teaching key for identifying fruit, my eyes glazed over and I had a moment of clarity. I realized that I was looking at the basis of a very simple program.

Book Review: Ruby by Example: Concepts and Code by Kevin C. Baird

Ruby is currently one of the most fashionable and modern languages to program in. Ruby is synonymous with the Rails framework, which is a robust and deep framework used to prototype and then build stable and scalable web applications. Of course, Ruby has considerable potential in its own right. The book "Ruby by example, concepts and code" by Kevin C. Baird and published by No Starch Press will help you to learn the Ruby language via small incremental example scripts.

Programming languages and "lock-in"

Language and lock-in

One of the favorite arguments for free software is that it avoids lock-in to a particular manufacturer's products. Something similar happens due to choice of programming language, though, which accounts for the sometimes-baffling project rivalries in the free software world. While this may be a surprising result to end users, it makes a lot of sense if you think about how developers—especially free-software developers—work. Occasionally, you hear complaints about these "divisions" of the free software world, but is this really a bad thing?

Zen and the Art of Computer Programming

Is it true that programmers enter a state comparable to deep meditation while they are at work? Some claim that they do, but how do we know what they mean by this? In order to understand, we first need to decide what we mean by meditation, for it has been defined in so many different ways. One is the ability to rest in the here and now and it is usually understood that meditation will lead to a state of increased awareness and undivided attention. Since I run Song Of Life, I often wonder this.

Return of the bespoke database

I've mentioned before the recent move among UK charities to become more "professional", which is often translated as "do what the corporates do" (particularly when it comes to IT). One reason for this is the dreaded bespoke friend-of-a-friend database. These "databases" (and I use the term loosely) are often written by a student, with tenuous links to the charity, looking for a final year project and usually in Microsoft Access and they are usually awful to maintain.

Book review: Learning PHP Data Objects by Dennis Poppel

Learning PHP Data Objects by Dennis Popel (Packt Publishing, 2007) introduces the PHP5 extension PDO. If you've ever worked on a LAMP server, you must know how tedious it is to go through the results of an SQL query, and to manage the connection--even worse, if you happen to change database, your work is pretty much lost: PostgreSQL, MySQL and SQLite don't have the same driver nor functions! Not so with PDO.

Get your classes and objects ready: PDO will make using a database under PHP5 a snap.

Becoming a Free Software developer, part IV: Putting your interest to good use

As we follow the zig-zaggy quest of me trying to learn to program, I discover the next significant step, "Interest". I started with a goal: to learn to program. Next I came up with a plan: Learn Python by writing a program called PT (period tracker) but I lacked the last bit, interest.

You see, there was very little that period tracker did that a calendar didn't. Spending hours to make a program to do work that I could do in five minutes with a calendar and a pencil seemed like a waste of effort.

Gaia Ajax Widgets: no-JavaScript Ajax

Imagine you need to create an Ajax application, and you’re scratching your head in frustration since you don’t understand prototype.js, you think using ASP.NET Ajax feels like building a car with scissors and paperclips and you don’t know enough Java to use GWT. If this is your problem, Gaia Ajax Widgets could solve your problem: Gaia abstracts away JavaScript, feels like normal ASP.NET, works on both ASP.NET and Mono—and it’s free software.

Book review: Linux Programming by Example by Arnold Robbins

One positive example of a book that is ageless when measured against internet time is Linux Programming by Example by Arnold Robbins and published by Prentice Hall. Don’t let the 2004 publishing date fool you, the book is just as useful today as it was all those long, long three years ago. A C biased book on the subject of the fundamental core API’s such as file and memory management within GNU/Linux and based on the explanation of free software core commands, this is a powerful and valid helper for needy learners of the fundamentals.

The book’s coverThe book’s cover

The seven sins of programmers

[Click here for an expanded, updated version of this blog entry which hasnow been published in issue 17 of Free Software Magazine!]

Programmers. The system administrators worship their bit twiddling capabilities. The users exchange vast quantities of beer for new features and tools. And the project managers sell their soul when they make the magic work. But inside the average programmer's psyche are several demons that need exorcising.

Pride

Pages

Most forwarded

Interview with Dave Mohyla, of DTIDATA

Dave Mohyla is the president and founder of dtidata.com, a hard drive recovery facility based in Tampa, Florida.

TM: Where are you based? What does your company do?
DTI Data recovery is based in South Pasadena, Florida which is a suburb of Tampa. We have been here for over 10 years. We operate a bio-metrically secured class 100 clean room where we perform hard drive recovery on all types of hard disks, from laptop hard drives to multi drive RAID systems.

Anybody up to writing good directory software?

Since the very beginning, directories (of any kind) have had a very central role in the internet. (I have recently grown fond of Free Web Directory. Even Slashdot can be considered a directory: a collection of great news and invaluable user-generated comments. As far as software is concerned, doing a quick search on Google about software directories will return the free (as in freedom) software directories like Savannah, SourceForge, Freshmeat and so on, followed by shareware and freeware sites such as FileBuzz, PCWin Download Center and All Freeware (great if you're looking for shareware and freeware, but definitely less comprehensive than their free-as-in-freedom counterparts).

Interview with Mark Shuttleworth

Mark Shuttleworth is the founder of Thawte, the first Certification Authority to sell public SSL certificates. After selling Thawte to Verisign, Mark moved on to training as an astronaut in Russia and visiting space. Once he got back he founded Ubuntu, the leading GNU/Linux distribution. He agreed on releasing a quick interview to Free Software Magazine.

Is better education the key to finding better software?

I read David Jonathon's article Anybody Up To Writing Good Directory Software? the other day, which got me thinking about software directories in general. As David mentioned, many of the software directories one finds when doing a quick google search are free as in beer, not as in freedom. But what interests me is the software directories that already exist, providing a combination of both free as in beer software, and open source software. Sites such as Freeware Downloads and Shareware Download don't advertise themselves as providing free as in liberty software, but each of them have a good selection of open source software available... if you know where to look.

Most emailed

Free Open Document label templates

If you’ve ever spent hours at work doing mailings, cursed your printer for printing outside the lines on your labels, or moaned “There has got to be a better way to do this,” here’s the solution you’ve been looking for. Working smarter, not harder! Worldlabel.com, a manufacture of labels offers Open Office / Libre Office labels templates for downloading in ODF format which will save you time, effort, and (if you want) make really cool-looking labels

Creating a user-centric site in Drupal

A little while ago, while talking in the #drupal mailing list, I showed my latest creation to one of the core developers there. His reaction was "Wow, I am always surprised what people use Drupal for". His surprise is somehow justified: I did create a site for a bunch of entertainers in Perth, a company set to use Drupal to take over the world with Entertainers.Biz.

Update: since writing this article, I have updated the system so that the whole booking process happens online. I will update the article accordingly!

So, why, why do people and companies develop free software?

More and more people are discovering free software. Many people only do so after weeks, or even months, of using it. I wonder, for example, how many Firefox users actually know how free Firefox really is—many of them realise that you can get it for free, but find it hard to believe that anybody can modify it and even redistribute it legally.

When the discovery is made, the first instinct is to ask: why do they do it? Programming is hard work. Even though most (if not all) programmers are driven by their higher-than-normal IQs and their amazing passion for solving problems, it’s still hard to understand why so many of them would donate so much of their time to creating something that they can’t really show off to anybody but their colleagues or geek friends.

Sure, anybody can buy laptops, and just program. No need to get a full-on lab or spend thousands of dollars in equipment. But... is that the full story?

Subscribe to RSS - programming

Free Software Magazine uses Apollo project management software and CRM for its everyday activities!