Hacking

Hacking

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".

Emulating disk menus with HTML5 and Chromium for Lib-Ray

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.

Migrating Multiple MediaWikis with Practically Perfect People Policies

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.

Understanding Surround and Binaural Sound

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.

A Simple NFS File Server

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).

Installing a Debian GNU/Linux test server with VirtualBox

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.

Private Collaboration and Digital Asset Management with MediaWiki

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.

Some tips for troubleshooting packages on your system or Ouch! the Pain!

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.

Copying Debian package selections to a new machine

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.

Tales From the Front: in Search of APT-GET UNDO

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 apt-get undo.

Falcon WOPI, the Falcon Web Oriented Programming Interface

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.

MediaWiki and Script Translation for the Morevna Project

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.

Backup up your GoogleMail locally with getmail

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.

Can't Program, won't Program? Then Mash the Web with Mozilla's Ubiquity

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.

Open messaging for the Open Web: Installing and configuring Mozilla Raindrop on Ubuntu 9.10

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.

Keeping score in test-driven development with Python, PyLint, unittest, doctest, and PyRate

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".

Getting Stanford's "Karel the Robot" to Run in Debian's Eclipse

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.

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.

Make your own Wayback Machine or Time Machine in GNU/Linux with rsnapshot

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).

Howto: A Theme for KMahjongg

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.

Pages

Subscribe to RSS - Hacking