07 Nov

Learning Python - Part 9

in Article, Learn, Programming, Python, Tutorial

This is part of an ongoing series on learning the Python programming language. If you haven't read them yet, I advise you to catch up on parts one, two, three, four, five, six, seven and eight before reading this article.

Like any other language, Python has support for data structures. A data structure is an object that can hold a set of other objects. Python has 3 basic data structure classes: list, tuple and dict (short for "dictionary").

30 Oct

Learning Python - Part 8

in Article, Development, Learn, Open Source, Programming, Python, Tutorial

This is part of an ongoing series on learning the Python programming language. If you haven't read them yet, I advise you to catch up on parts one, two, three, four, five, six and seven before reading this article.

Before we delve further into Python itself, at this point it is helpful to deal with objects and classes and how Python implements them. Python and many other languages are built on objects and classes and use a particular method of programming called Object Orientated Programming (otherwise known by its TLA, OOP).

23 Oct

Learning Python - Part 7

in Article, Learning, Modules, Python, Tutorial

This is part of an ongoing series on learning the Python programming language. If you haven't read them yet, I advise you to catch up on parts one, two, three, four, five and six before reading this article.

In this tutorial, we'll deal with modules. A module is a collection of objects, like functions, classes and even other modules. In Python a module is simply a file with a .py extension. This allows you to reuse those objects by including the module file with your program.

Python has a huge library of built-in modules. Whenever you use Python these modules are available to your program. To use modules or objects within modules in your program you need to import them using the import statement.

12 Oct

How To Join An Open Source Project

in Article, Contribute, Development, Open Source, Open Source Software

How To Join An Open Source Project

As the leader of a successful open source project, two of the questions I am asked the most are:

  1. How can I get involved with your project?
  2. I'm not a developer, is there a way I can help out?

While most projects have some sort of "getting started" guide, and within the open source community there is a general understanding of how to get involved, there seem to be few guides on how to do it.

This is an attempt at being a one-size-fits-all guide. Not all open source projects work this way, and this guide won't address every situation, but it should at least provide a general pointer in the right direction.

10 Oct

Learning Python - Part 6

in Article, Learn, Programming, Python, Tutorial
Python Tutorial

This is part of an ongoing series on learning the Python programming language. If you haven't read them yet, I advise you to catch up on parts one, two, three, four and five before reading this article.

This particular tutorial will be fairly short because we'll be dealing with a single topic, docstrings.

Docstrings, or documentation strings, are special free-standing strings within your code which are used to help other programmers understand how your program works. These strings cannot be put just anywhere, however, they need to be placed as the first part of a code block, whether it is a function, a class or a module.

01 Oct

When Open Source Software is not Open Source

in Article, Open Source, Open Source Software, Proprietary, Technology

Proprietary Software

Over the years I've come across various new open source projects that seem awesome at first glance, but on further investigation leave me with a bitter taste in my mouth. This is not because they use PHP (which is my pet hate, and ghastly in its own right), but rather because I am unable to use them because of the technology choices they made.

One of the systems I looked at recently was built on the .NET framework, which put an immediate damper on it. You see, I don't use Windows anywhere, and the main prerequisite of the .NET framework is Windows, so I cannot run it on my platform of choice, which is Linux.

By choosing to build their software on a proprietary stack they actually denied me the freedom to run the software on my platform of choice. I don't know about you, but that sounds counter to the freedoms that open source is all about to me.

28 Sep

Why Bibles Should Not Be Copyrighted

in Article, Bible, Copyright, Creative Commons, Evangelism, Gospel

Copyrighted Bibles

These days if you pick up any Bible off the shelf and look at the first couple of pages you'll no doubt see a copyright notice saying that you "cannot reproduce this work without permission..." with a few instances where you are allowed to display a selection of verses, generally aimed at the church context. While this is fine in most western world cases, I believe this is actually counter to the Lord's intentions for His Word.

Now, I will admit that I made the title to this article sensationalist, but to most companies.(especially publishing companies) "copyright" equates to a restrictive license. In reality, copyright just indicates that you retain the rights to control the licensing of your work. Licensing is actually a separate system by itself.

25 Sep

Top 10 Open Source Fonts for Linux

in Article, Design, Font, Open Source, Typeface, Typography

This is a guest post by Raoul's brother Etienne, who is not only passionate about fonts and typefaces, but also open source software.

Open Source Fonts

Any modern operating system includes a wide selection of typefaces so that one can get working immediately. Windows comes with its ClearType fonts installed by default, including the award-winning Calibri, while Apple’s OS X has included the coveted Helvetica ever since it was NeXTSTEP back in 1988.

But what about those of us who choose free and open-source software? How can we ensure that the typefaces we use are free from proprietary restrictions? How can we share our fonts with our friends freely and legally? And, most of all, how can we make those using proprietary software jealous of our beautiful documents and publications?

I have thus put together a list of my top 10 free or open-source typefaces. While there are indeed a large number of fonts available free of charge, I have ensured that those listed here conform to either the Free Software Definition or the Open Source Definition.

21 Sep

Learning Python - Part 5

in Article, Learning, Programming, Python
Python Tutorial

This is part of an ongoing series on learning the Python programming language. If you haven't read them yet, I advise you to catch up on parts one, two, three and four before reading this article.

In this part of the series we are going to be exploring functions, including how to define them, using parameters, and retuning values. Functions are one of the most used features in programming.

A function is a reusable block of statements which can be used from multiple places and multiple times. Functions usually have a name, which is used to identify it when you want to use it. Running a function is typically known as "calling" it.

11 Sep

Building A Proprietary API the Smart Way

in API, Article, Open Source Software, Programming

These days the world revolves around publically available APIs (application programming interface). Twitter has an API and Amazon is built on APIs, to name two well-known examples. Any system that wants to allow external applications to interact with it directly will have an API. In this particular article I'll be talking about APIs like the Twitter API - that is, Business to Customer APIs, not Business to Business APIs.

API

A while back one of the open source projects I work on was approached by a licensing company to chat to them about integrating with their API. We were extremely happy to engage with them on their API as it really adds value to our software, since users have been asking for it. A few days before the scheduled meeting the developers of the project chatted about how the API was likely to be written, and what that would mean for us. Being an open source project we knew that any API that depended on a secret application key would not work, since we would have no way to keep that key hidden in a publicly available source code repository.

Copyright © 2009-2011 Raoul Snyman. All original content is licensed under the CC BY-SA license.