Database, Fuppes, Weekly Summary

Before Uni Begins (Weekly Summary Five)

DOE (Digest of Events)

This week in the news:

  • The Fuppes Packaging effort is moving along slowly; nobody has chosen to sponsor it yet.
  • I have written a html Logic Tree drawing program and it works on all HTML versions.

Uni Comes Back

University starts up again this week and I am really looking forward to it; after all, I will be doing AI, OS and Haskell. I have actually done quite a bit of study already for these subjects. Unfortunately, it means that I will not be able to spend as much time as I usually do on extra projects. It does not mean that I will stop working on them but that I will be moving slowly instead.


They say that “Prevention is better than Cure” and I do worry occasionally that all of this extended work on the Computer may eventually hurt my hands. To prevent that scenario I am now learning to use Programmer Dvorak and learning how to Touch Type at the same time. It is proving to be rewarding already and, though I type really slowly, I can already type without touching the keyboard. And I have noticed that my speed is regularily increasing. I was so happy with the improvements that I went online and bought Programmer Dvorak Keyboard Stickers and when they arrive in the mail I fully intend on applying it immediately. (You may have noticed that this post is not as long as usual; this is why)

Fuppes Config

Uli has spoken with me and he does not wish to add another dependency to Fuppes by using SOCI. Fair enough. As a result he is currently doing some database work and I am going to work on getting the Fuppes config separated into multiple files. That way for each different device you use a different file; so sharing devices will become much easier.


Scratching an Itch

Prenote: The cool bit is at the end in the links. Stick with me for the cool stuff.

I have programming ideas sometimes that start as something small, but, if after two weeks I still have the idea and think it’s a good one, then it becomes an itch that I really want to scratch. A couple of months ago I envisioned a very massively large project that seemed like it would have a possibly cool component; this is the releasing on the idea behind that component.

The Big(ish) Picture

The large program that I imagined would have a database if items and all of these items could be either ‘true’, ‘false’ or ‘maybe true or false’. We can shorten that to just ‘maybe’. Essentially I wanted users to be able to see these dependencies. However, as I thought about it, lets say I had the items [A,B,C,D,E] and their respective values are [true,false,maybe,maybe,false] and and element ‘J’ depends on them with the following expression {J => (A and B) or (C or E) and D} then I display all of that information to the user then they would probably react something like this: “…WTF is this shit!…*close window*”

And even if I said that the final result was {J => Maybe} then the users will all cry (but where did that come from). And just so you know:

Maybe and True = Maybe
Maybe and False = False
Maybe or True = True
Maybe or false = Maybe


J => (true and false) or (maybe or false) and maybe
J => false or maybe and maybe
j => maybe

So how do I present this nicely to the user?

The ‘HTML Logic Trees’ Project (The Component)

I have created a graphical representation of the entire project using either HTML tables in old browsers (a disgusting hack really) and, much more awesomely in HTML5 using the <canvas> object. I am really proud of the result so you can look at what I have so far. And you can get the code (and help to develop it) on GitHub.

Please let me know what you think. I love it personally; small but somehow very satisfying.

Weekly Summary

Busy Week (Weekly Summary 4)

This week was another very busy one. There was alot to do, and many people were making requests, so I was forced to try and distribute my time. Unfortunately this meant little work on Fuppes, which I intend on changing in the coming weeks, and pumping it right back up again.

Digest of Events (DOE)

  • I started using Google Chrome on Linux instead and I don’t think I’ll be going back to Firefox any time soon. Chrome is just faster and did you know that it actually compiles javascript so that it can gain faster execution speeds? And because I now use Google Chrome I looked into Vimium for all those Vim shortcuts that we know and love.
  • I was required to setup and eCommerce web application by a family member that really needed a solid one; so I decided to use Spree which turned out to be a joy to use. I’ll discuss this further down the page.
  • I talked to Ulrich and he had very exciting news that I am going to keep secret until he sees fit to talk about it; I only mention it because it got very excited hearing about it.
  • I did small amounts of Fuppes development and tried to keep up with the requests on various forums and locations.
  • Did some work for my local society; University begins in a week for me and they need all the help that I can give them. Lots of Django work there; actually on that note I don’t like Django. I much prefer Rails.
  • I have read about 150 pages of my “Modern Operating Systems” textbook and 210 pages of “Real World Haskell”. I even sent emails to the authors saying thankyou, asking questions and letting them know about some bugs. This is all in preparation for University; I’m trying to make the session easier on me so that I can distribute my time evenly over everything.
  • Two spammers left comments this week. So I am just going to let every spammer know that if they try and use me for their spam then I will block them with the tools at my disposal; and more; Please do not use this blog for your spam; for both of our sakes. Spammers, you have been warned.

All in all alot went on this week and there is always so much more to be done. I think I’ll be balancing and prioritising for a little while longer yet.

Extended Summaries

Spree and eCommerce (and Rails and Django)

A family member wanted me to consider creating them an eCommerce engine so that they could sell products online. Personally, I don’t have mush time to create a fully fledged eCommerce engine, so the first thing I did was look for and eCommerce engine and Spree was the best one I found (and It was just built on top of Ruby on Rails). After a few minutes I had spree running on my local machine but I really needed to provide static pages to the site. To that extent I decided to use the spree-static-content extension and it was almost perfect. After a quick patch it was ready to go and working beautifully. I’m actually really happy with the result. It all looks rather nice and I would recommend Spree to everyone and anyone. Actually, if this proves to be a fruitful affair, then I think that I will quickly try and get a few clients and make them sites using Spree.

While doing this nice, easy and beautiful programming with Ruby and Rails I was also forced to maintain the Django made website for CSEsoc. Django is painful and the part that I don’t like the most is the lack of a db:migrations framework. But other than that, doing things in Django just seems that much more difficult. They are technically equivalent; they are both web frameworks. But I know that I spend much less time using Rails than I do using Django.

Future Planning

The next week is going to be all about planning for University and getting as much done as I possibly can before I no longer have time to sleep. It will involve fore work on Fuppes, quickly getting that Spree website finalised, helping CSEsoc and finishing the reading of my textbooks. I have heaps to do but, despite everything, I’m having alot of fun doing it.


Google Chrome and Vimium

If you are like me then you enjoy using Vim as your text editor. The thing you love most about vim is how intuitive the commands are. ‘d’ to delete and “[n]gt” to goto the n’th tab. If only everything contained the same commands and were as easy to use as Vim. Well other people have had the same thoughts. In firefox you may be familiar with the popular Vimperator plugin that essentially makes it possible to run firefox as though it was vim. Makes the entire browsing experience that much easier and for a long time I loved it.

However, more recently, Google Chrome has come out and in my humble opinion it seems to be fast, easy to use and also easy on the eyes; and now google have released it for linux and I’m sold. The only thing that I am missing is my vim-like browser experience. So after a little bit of searching around I found something that looked very promising: Vimium. Currently it is a simple javascript extension to Chrome that works pretty well. It is currently early days and the extension has a few bugs and a few missing features that I would like but I’m going to keep my eyes peeled. With any luck, in another couple of months I’ll be able to use my browser with Vim extensions.

Edit: Recently it has become nicer and I would now recommend that you download it and try it out yourself. There is no better judge for you than you.

Fuppes, Packaging, Weekly Summary

Packaging Gets Complicated (Weekly Summary Three)

Happy Valentines Day readers. I’ve had quite a little trip over the past few days. I have done alot this week in my attempt to package Fuppes for Debian and it makes for a long sort of story; so long, that you should consider this the weekly summary. I had finally taken Fuppes to the stage where I believe that it was ready to package; it compiled just fine on Ubuntu and, believing that Debian and Ubuntu were not that different, I wanted to make and submit a package for Debian. But first that would require a Debian install on my machine.

Dual Booting Ubuntu and Debain

The logical option was to dual boot Debian and Ubuntu and make them share the same /home partition. For those of you who have not heard of this before, many GNU/Linux users that I know prefer to always partition their machines so that one partition is for the root directory and one for the home directory. This has important advantages for data retention:

  • Your OS is separated from your personal data
    The operating system exists in the root directory and all of you data (should) exist in the /home directory; therefore, if you wanted to, you could completely reinstall your OS and keep all of your data. This has saved me quite a few times when I have damaged my OS beyond repair and done a complete reinstall; a few moments after the reinstall I’m exactly where I left off. No loss of data at all.
  • Better for Hard Drive Fails
    I have been led to believe that partitioned hard drives are easier to extract data from in the case of faults. Should you be crazy enough not to make backups, then you may have a greater chance of success of recovering your drive with this setup.

What this all means is that when I wanted to dual boot two operating systems that point to the same data all I had to do was add an extra partition for the Debian OS and tell it to mount the /home directory as its own. Therefore I have the following partitions on my machine:

  • /dev/sda6 – Ubuntu /
  • /dev/sda7 – /home
  • /dev/sda8 – Debian /
  • swap – Common swap directory

However, getting there was not that easy, and I encountered two problems when trying to install Debian lenny via a net install I met with two problems. The first was one that I could not explain; when I tried to install Gnome as my window manager it would download all of the required packages and then freeze for no apparent reason. I had no idea why that happened and I still don’t but I can tell you that using Xfce as my window manager instead solved the problem.

The next issue that I encountered was more serious, my Debian net install CD had no knowledge of the existence of /ext4 file systems; which was the type of file system that I had installed the Ubuntu root on. So when the Debian install went looking for other OS installs it could find nothing. It said that it found nothing else on the machine and asked me if I would like to overwrite the MBR. I didn’t really think straight and clicked OK; byebye Ubuntu Boot record. So Debian installed correctly but now my Ubuntu partition was unreachable; good one Robert, I felt pretty dumb. But, luckily, it was fairly easy to just reinstall Ubuntu on that partition again. Ubuntu recognized the /ext3 partition that Debian was installed on and now I have a Dual Boot-able system with Debian and Ubuntu. Finally I could try and compile Fuppes on Debian.

Compiling Fuppes on Debian

When I tried to compile fuppes on Debian it proved to be more difficult than I thought. It seems that the real difference between Debian and Ubuntu is the strictness of which packages you can install and what they provide. Debian is very strict about the whole FOSS concept and does not let you use anything that is not. As a result many of the meta-packages for fuppes did not build. My short term solution was to simply comment them out and try and get what remained into Debian. Once it was in Debian then it would be my future task to add support for all of the extras. As a result I am pleased to announce the following:

FUPPES has finally gone up for Debian RFS (Request For Sponsor)!

The package itself has been placed on for sponsors to download it and check it out. As of the time of this writing three prospective sponsors have checked it out downloaded it. I hope to hear from them soon with any comments that they may have. I expect that there will be a number of things that I got wrong, being my first package, but I will put in whatever effort is required to actually get this package in there.

Other Notes of Interest

  • It turns out that it is not that hard to make a package archive mirror for Ubuntu; I’ll be making one later this week.
  • The Ubuntu Vimperator package is broken in Ubuntu but not Debian. So for a dual booter like me I cannot currently have Vimperator in both UbuntuĀ  an Debain. This should be fixed in Ubuntu Lucid.
  • Bioshock 2 is an awesome game! I finished it in four days. The storyline was a major disappointment but the gameplay was beyond compare. All in all good work 2K.
  • Telstra Bigpond frustrates me. I am only allowed 12GB per month and there are no other competitors that I can goto to get a better deal; somehow they have monopolised my area and I am stuck with their ripoff prices.
  • The next game I might look at playing is Trine; suggested to me by a friend.

I hope you’ve had a great week. Thanks for reading this long post and I will keep everyone updated.


Fuppes Liscense and Others

Fuppes is released under the GPLv2 or above and I was wondering recently what restrictions that placed on us as developers and users of the software; and, more importantly, why the GPL and not some other lisence? To that extent I found this post on fosswire very useful.

I personally like the fact that Fuppes is under the GPL. If we are going to work hard to produce an awesome piece of software and it is our desire to give it out for free, on the condition that all software that uses it also be free, then our wishes should be abided by. We want to help all those who believe in free software; we do this out of a desire to help. If we wanted people to make money from our effort then we would, in turn, sell it to them. Commercial software cannot depend on free alternatives, if you want to make people pay for it then it stands to reason that you should have to pay for it.

In fact, it would be nice to have a dual license whereby your software is free to use in free software but Companies must pay to use it in theirs. If one exists then I don’t know about it and please let me know.

I really appreciate the OS community and this is the only way I can give back meaningfully; it is my way of paying it forward. If you wish to show your true appreciation for a piece of software then the best way to do it is to help people work on it. All assistance goes a long way, consider a project with five people, your input gives then 20% more man power, which is huge for them. And why not help them to help you after all?

P.S. I will start putting Fuppes up for the RFS in Debian soon.

Weekly Summary

Weekly Summary Two

This is a small weekly summary mainly because I focussed on only one thing; changing the database code.

Digest of Events (DOE)

  • Essentially I spent the week converting Fuppes to use different database code and I still have more left to go.
  • I had a little moment while doing some Haskell programming; it was a good moment. I have decided that I really like Haskell.

New News


I have no real new news so instead how about some humour to distract you? One of my favourite sources of humour, they sit there and make fun of movies. HISHE stands for How It Should Have Ended and they remake movies in cartoon form of how movies should have ended. They are back in action and rolling a new video out every month. Go take a look at them do their thing and enjoy.

Future Planning

  • Still working on the database items and getting it all working together.
  • Transcoding seems to be failing in all sorts of different ways so I will need to look into it soon.
  • Packaging of Fuppes for Debian is still going, soon I will just bypass waiting on people and attempt to get it into debian. I’ll send the RFS; it’ll be an exciting day.