You've probably heard of this intriguing new crowd-funding service called Kickstarter, right? (If not, how are you getting this website from that cave of yours?). A lot of people are using it to fund all kinds of exciting new things, and it's obviously useful option for free software projects. Properly used, it can allow us to close the gap against proprietary applications that still have more polish or exist in niches that require more capitalization. But the idea that it is somehow immoral to ask for money to work on free software has got to go!
Since script extensions are going to be a part of our toolchain on creating Lunatics, I thought it would be a good idea to familiarize myself with how scripts are created and run in Blender. As a learning project, I decided to create a script for creating 3D pie charts from CSV data files. My first task is to write this for Blender 2.49 using the API for Python 2.6. This is the version documented in the Python Scripting book from Packt that I recently reviewed, so it's a good place for me to start.
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.
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.
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.
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".
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.
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.
The creator of the C++ programming language brings us a new textbook in programming principles that could well become a classic tome.
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.
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?
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.
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.
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?
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.
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.
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.
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.
Imagine you need to create an Ajax application, and you’re scratching your head in frustration since you don’t understand
Ever need to code quickly? You can code Rexx like water—yet it’s powerful. Here’s everything you need to start, by studying real-world programming examples.