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".
The final step (and probably most interesting) step in creating my Lib-Ray prototype (for releasing high-definition video without DRM or other anti-features) is to make a disk menu system to access the video data that I've already prepared. This column will actually document my second prototype design, as opposed to the first prototype which I presented at Texas Linux Fest in April 2011. This second is a big improvement and conforms much better to the draft HTML5 standard from the WHAT Working Group, and is much more functional in the existing Chromium browser, although improvements are still needed.
I am setting up five MediaWiki instances in three domains on one server with three different security configurations. Each has its own MySQL database backend and its own separate home on the filesystem. All share the same MediaWiki code (from the standard Debian GNU/Linux 6.0 "Squeeze" package installation). All share the same extensions, including the Debian packaged extensions, and some others installed from source. And of course, I'm migrating content from my home LAN server to the web server. In this column, I'll explain how I'm doing this in 10 "easy" (okay, actually quite hard) steps.
Film soundtracks are usually made available in either "Stereo" or "5.1 Surround" sound, although other possibilities exist. Quite a few of the source sound recordings I've been using are "binaural" recordings, which sound eerily realistic over earphones, but often less impressive when played back on speakers. What does this stuff mean, and how can I use free software tools to make the most of it? This will be an ongoing learning experience, but I want to start with a brief description of these most common technologies, and how they are supported by the file formats we have available to us: Vorbis, FLAC, and WAV.
It has been said that "'best' is the enemy of 'good enough'". The Network File System (NFS) may be a good example. It's often overlooked in favor of more capable (but more complex!) resource sharing software like Samba, which can network easily with Windows computers. But if you have a home LAN with a lot of GNU/Linux machines on it, you don't need Samba. NFS will do just fine, and it's very simple to set up. I've been using this configuration for about 10 years now (essentially since I started using GNU/Linux in the first place).
There are a number of good reasons for installing a virtual machine on your computer -- as a way to run software that isn't compatible with your primary operating system, as a sandbox for development, or as a place to test package installations, new distributions, or new server configurations. Setting one up with VirtualBox OSE is quite easy.
My partner (and wife) Rosalyn and I have needed a way to collect our work on Lunatics in a way that is easily maintained and allows for collaborative editing and for collecting all of the media and notes that we have created for the project. It may seem a little like overkill for just two people, but there are a number of advantages to installing a wiki for this purpose, and the MediaWiki software is the best I know for this purpose, since its development has been so motivated by the needs of Wikipedia.
When something is working, it seems to make sense to you. For example, we all know that a car burns gas, and uses the energy to run a motor that turns the wheels to make it go. Gas--> motor--> wheels--> Go! It seems simple. The same is true of an operating system. You turn it on, it boots up, some text goes across the screen, then the windows pop up and you're ready to go. Boot--> text--> windows--> Go! Its easy, until something breaks. You never really understand how complicated something is until it breaks.
Most of us will install our GNU/Linux system once or twice and then use the excellent package management systems to upgrade when new releases of our chosen distribution come out. Users of Debian and Debian-based systems (such as Ubuntu) will be quite used to the idea that you only need to install it once. But what happens when you want to replicate one Debian system on another machine? Do you use cloning tools? Yes you can but only if the hardware is similar on the two machines. What if one has an Intel Pentium-based processor and the other has an AMD64? In that case what you need is some way to replicate the package selection but use the appropriate ones for the new architecture. Enter dpkg.
I am currently in that level of hell reserved for people who upgrade their GNU/Linux system too quickly. I have for some time now been happily using KDE 4 with the plasma desktop enjoying the cute little animations and eye candy, and learning to use the task-bar and widgets. Then my bliss was interrupted by a simple mistake. I decided to upgrade. I forgot that my
/etc/apt/sources.list was set to load experimental versions of the software, and now my X-server system is broken. It is only now that I am discovering that there is no
These are exciting times for Falcon's language development. New and interesting features are being implemented, tested and rolled out at break neck speeds! Not only are core language features being released, but so are a multitude of feathers (Falcon libraries/modules). One such module release is V1.0 Web Oriented Programming Interface (WOPI). It is the intent of this article to cover the basic features/functionalities of WOPI through common web oriented functional examples.
We are getting very close to wrapping up the English translation of the script for "The Beautiful Queen Marya Morevna: Underground" (which is the working title of the film being produced by the Morevna Project). So it seems like a good time to talk about the software we've been using, which is MediaWiki.
To the chagrin of their competitors, GoogleMail seems to have become almost as synonymous with webmail as Google has with search engine (recently my six year old was explaining to me how he Googled for something at school). GoogleMail is a useful tool and has a lot of advantages over traditional client-server mail accounts, particularly if you are on the move. To be honest those sorts of advantages are present in pretty much any webmail setup: I'm just concentrating on GoogleMail because it's by my experience the most popular. But GoogleMail has one disadvantage, all your messages are stored on Google's servers. If you lose access to Google service or to your account then you lose your e-mails. Fear not oh free software lover, help is at hand in the form of the very useful getmail.
Like any other aspect of life the internet is awash with hype. And snake oil salesmen. It's lure exceed the benefits those spam e-mails promise that inundate your inbox with offers of little blue pills to reach those parts of your anatomy other chemicals just can't reach. However, sometimes the hype is not just, well, hype.
Mozilla's Firefox browser has been downloaded more that one billion times and its success is reflected in the millions of downloads of one of its killer features: addons (or extensions, as we geriatrics called them). The Browser operates under a tri licence and the addons for it are overwhelmingly free and open too. They empower the user and extend the browser. They help to put the user in control. Ubiquity does this in a way that makes web mashups creative fun and allows you to command the web, not just surf it, without any need to be a programming master of the universe.
By the time you read this Karmic Koala will have been released to a waiting world, but I couldn't wait. A felicitous combination of a desire to do a distribution upgrade to the release candidate and a Twitter arriving on my laptop giving me a link to Raindrop kept me busy for the day. I was intrigued by Raindrop and having used other Mozilla lab experimental software I was determined to see what all the hype was about. If you like the idea of combining a tool for aggregating Twitter, e-mail, RSS and other social Web 2.0 stuff with free and open standards then read on.
Programming is more fun when you keep score. The extreme programming (XP) development model popularized the idea of test-driven development (TDD) with professional programmers in mind. But TDD turns out to be even more useful for lone amateur programmers, because it provides much needed motivation in the form of more visible rewards for your work. This is true even when simple test runners are used, but I decided to make things a little snappier by including a couple of other types of measurement and generating a "scorecard" for the present state and progress of my Python software projects. Here's how it works, and a download link for my script, which I call "PyRate".
I'm taking Stanford's Open Courseware "Programming Methodology" this semester, but I got stumped early on by the problem of setting up the special Stanford class libraries in my Debian-standard Eclipse installation. The instructions and files available from the website are only available for Windows and Macintosh platforms. The process is not that hard, but if you're new to Java and Eclipse (and especially if you are new to programming, as the class assumes), you'll likely be thrown by this. I couldn't find any documentation on how to do this after extensive searching, so here it is.
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.
A good backup system can help you recover from a lot of different kinds of situations: a botched upgrade (requiring re-installation), a hard drive crash, or even thumb-fingered users deleting the wrong file. In practice, though I've experienced all of these, it's the last sort of problem that causes me the most pain. Sometimes you just wish you could go back a few days in time and grab that file. What you want is something like the Internet Archive's "Wayback Machine", but for your own system. Here's how to set one up using the
rsnapshot package (included in the Debian and Ubuntu distributions).
There are a number of simple games I like to play when waiting for a package to download or compile. Often the available themes don't really suit me, and in any case I like to make themes or skins when I can. One of the easier packages to create an alternate theme for is KDE Mahjongg (
kmahjongg), which I will demonstrate here using Inkscape and Gimp. With the 40th anniversary of the Apollo 11 moon landing coming up, a space exploration theme seems appropriate.