Making things happen with the JOLIE programming language

I caught this really interesting interview over at the KDE news site which talks about a programming language called JOLIE which is used for what seems to be called service-oriented computing. Basically, it seems the admirable aim is to use JOLIE to increase compatibility by replacing inter-application frameworks like DCOP, DCOM and D-Bus. From the KDE perspective, it looks like there is work being done toward integrating JOLIE with Plasma, the KDE desktop shell which sounds to me like it would add a whole new level of programmable richness to Plasmoids. The interview from the KDE site and the JOLIE project page have more details and the concepts seem pretty cool.

Wait, so Firefox in Qt is not just a dream?

Well, it would seem that my tiny-little-private dream is not just a fantasy! It looks like Nokia is helping to port Firefox to Qt instead of GTK+, which I personally believe to be butt-ugly in most instances. This is most likely because I’m a proud KDE user…

IMHO, Qt is a better technical platform but I wonder if this is just a port of Firefox or whether it’s a complete Qt version of XUL and such. A complete port of XUL would actually be amazing and would have some serious potential! Even if it’s just an Firefox thing, I’d like to have my favorite browser fit in with my desktop a little better!

A $200 tablet?

A recent blog post on TechCrunch discusses their plans to try for the construction of a $200 tablet for light browsing with a modified Firefox 3 (in a special kiosk mode) and VOIP thanks to Skype. Now, we’ve heard rumblings of low-cost, touch-based computing devices before. Remember concept stuff from the XO-2 which was supposed to be the second OLPC? The idea was to have it be an ebook-style device with dual touchscreens and a sub-$100 price tag. Shortly following the announcement by the OLPC guys, some researchers from Maryland and Berkeley showed of a prototype ebook reader that responded to hand-generated movement like opening and closing the leaves to advance the displayed pages.

While the dream of a lightweight, $200 tablet seems a little far-fetched, the blog post does show that some serious thought went into this. They are very insistent that the proposed device run a stripped down version of Linux that will boot right into Firefox instead of a traditional desktop. From there, the plan is to have a special start page with “large buttons for bookmarked services” linking to sites of great interest and/or utility.

With this in mind, it stands to reason that SproutCore would be an excellent way to build this start page. By designing the startup page as a SproutCore application, the whole experience can be constructed in a completely customized way while still maintaining whatever parts of the traditional application experience are desired. Furthermore, SproutCore apps can be cached can be automagically and transparently upgraded as well as cached on the client so that basic functionality can be maintained even in the absence of a WiFi link.

After a little bit of thought, I think that the main interface (with the big buttons) should be a draggable grid of icons so that a user may reposition applications according to their preferences and usage patterns. Additionally, there should be a basic configuration interface allowing users to add or remove sites from the startup page. After that, anything else seems like an added complication even if it’s really, really interesting.

Planet Plug goes live!

After much tweaking and messing around, Planet Plug has finally gone live! It doesn’t have many active subscriptions right now but that should change as more people sign up. If you’re a member of the Philadelphia Linux community, you should get onto the #plug IRC channel on irc.freenode.net and ask to have your feed added. Hooray!

Link to it with this button: Planet Plug button

Open Source in Schools

This afternoon I read a really thoughtful paper about Free/Open Source Software in schools published in the Canadian Journal of Learning and Technology. As an aside, the CJLT has a really solid collection of papers and I look forward to paging through them in the coming months. Anyway, this paper, Open Source Software and Schools: New Opportunities and Directions by Gary Hepburn, presents a tasty discussion of the benefits and advantages to using F/OSS in schools.

After a brief overview of the proprietary software model, Hepburn devotes a solid page examining the issues surrounding using proprietary software in schools. He cites the cost of doing business with Microsoft (according to the Microsoft School Agreement), as of Winter 2005 with a school of 400 machines, to be US$7200 for the OS alone and US$19,200 for a complete desktop package. Additionally, he notes that, in general, “…using proprietary software requires a high degree of accountability” on account of license compliance issues and other legal liabilities. Alongside the financial downsides, Hepburn makes a very good point when examining “…school’s complicity in exposing students to commercial products and corporate interests”. The idea of a classroom as a corporate marketing machine is rather unappealing.

While it’s not hard to find literature extolling the virtues of F/OSS, Hepburn does a nice job of emphasizing the potential benefits for schools. One particular point that caught my eye was his comment that “Schools can also burn OSS on to a compact disc and give it to staff or students to take home and do what they wish with it”. Granted, projects like OpenDisc have been leveraging the flexibility of F/OSS licenses for some time now, but I have been toying with the idea of using virtual machines as distributable workspaces. Personally, I find the idea of being able to send a student home with their own system saved on a thumb drive very compelling.

After touching briefly on the subject of Linux, Hepburn goes on to discuss some of the neater software packages from the F/OSS world. In particular, OpenOffice.org gets a shout out though I don’t know if I agree with his insinuation that OO.org requires fewer system resources (specifically hardware) than MS Office. Overall, I do agree with his other major points which support the ideas that the F/OSS community is better equipped to respond to change and correct errors. Moreover, I fully support the idea that more diverse exposure to different types of software will lead to an overall greater computing literacy.

With a healthy sprinkling of Lawrence Lessig quotes and shameless support for F/OSS, this paper is definitely worth a read.

VirtualBox to QEMU

Recently, I had cause to convert a VirtualBox virtual machine to one compatible with QEMU and KVM. A quick search found me multiple methods for converting an image QEMU -> VirtualBox but nothing helping me to go from VirtualBox -> QEMU. After asking on the PLUG mailing list, I got some help and managed to convert it without any issues. In order to do it, you’ll need the vditool tool contained in the virtualbox-ose package available from the Debian repositories. Here’s how I got it working:

  1. vditool COPYDD vbox-image.vdi raw-image.img
  2. qemu-img convert -f raw raw-image.img -O qcow2 qemu-image.qcow

The first step copies the contents of the image (*.vdi is the VirtualBox filesystem image extension) to a raw disk image. Be advised: this file will be the full size of the virtual hard drive. That means that, unlike *.vdi and *.qcow formats, if the virtual disk has a maximum capacity of 8Gb, the raw image will be 8Gb in size regardless of how full the disk is.

Once you have the raw image, run the second step which uses the QEMU disk image manipulation tool, qemu-img, to convert the raw image into the QCOW2 format. The new QEMU image will be much smaller than the raw image was and it can be made smaller by passing qemu-img the -c option to enable transparent compression. However, seeing as how this just uses zlib on each cluster, this might introduce more overhead to I/O than is desired and will most likely degrade your overall VM performance.

KDE4: It’s the fourth KDE!

At long last, my waiting is over and I have successfully downloaded and installed (according to directions) KDE 4.0! Hooray. I have a wide range of opinions on this release but overall, I am very pleased. I would share screenshots of me going about my normal day-to-day life but there are already so many screenshot tours (the best collection is on the KDE site) that it seems redundant.

At first glance, KDE 4 is visually gorgeous. The all-new Icon theme is called Oxygen and the matching window decorations only make it prettier. While the default theming is a mite dark compared to the brighter default look packaged in past KDE releases, the icon sets and window decorations still look sharp and crisp. Clean lines, an excellent default wallpaper and delightful SVG graphics on the desktop increase the aesthetic appeal even further.

Plasma, the new desktop and presentation layer, also packages a much-needed improvement to the aging SuperKaramba widget system. The new dashboard functionality allows for rich applets (affectionately called “Plasmoids”) to be added to the desktop layer. It’s an excellent start but many plasmoids are broken on their own or induce other display. I’ve had several of them completely crash Plasma and require a hard restart of graphics in order to get a usable desktop again. Even so, the future of Plasma looks bright with fun stuff on the horizon like a widget packaging system (Plasmagik) and multi-language scripting.

The visuals are not the only KDE4 features still developing. Under the hood, the 4.0 release is not yet the super-framework once promised. Fortunately, there is a whole lot of functionality there and the new hardware-management system called Solid is a perfect example. Opening up the Solid control panel shows a unified and intuitive way to control things like networking and Bluetooth. Furthermore, Solid deals with USB devices and other bits of your system in a straightforward fashion.

To be sure, the 4.0 release is not what I’ll be using as my primary desktop (for that, I have 3.5) but it does make one reconsider the ways in which we interact with our computers. While others agree that this release is buggy, I haven’t done much effort to determine if the issues I am having are a result of my particular configuration…

Monitoring The General Public Virus

On my second day of having a sore throat, it would seem that I have contracted the General Public Virus.  If it is just the common cold, then I should expect to be better in 6-10 days but if it’s something else, then I can expect a different recovery time. In response to my condition, I have decided to begin a little project where I will track my symptoms for the duration of the illness. I have set up a database using Kexi and plan to test out some of the more advanced features.

I will be recording the severity (using the universal pain scale) of the following symptoms, to be measured 3 times daily.

  • Body temperature
  • Muscles aches
  • Congestion (values over 5 indicate active running of the mucus)
  • Headache
  • Joint stiffness
  • Throat soreness/pain

All the while, I will be drinking plenty of clear fluids, eating regularly and getting plenty of rest. Afterwards, I will begin to analyze all of the data collected using tools to help visualize and discover trends in the data. Let the experiment commence!

A Few Good Ideas

I have been keeping a little list of good ideas which are either ideas which I would like to point out or ideas which I would like to see implemented/used more often. It has always been interesting to watch the development of the world around me and from this I have gained an appreciation for good ideas and generally neato stuff.

  • Metalink - Have you ever tried to download a large file which is available from multiple locations and may even be retrievable using a variety of methods? Well, I have and I know it’s a real frustration that I can’t get the file faster by leveraging all of my potential options. Enter Metalink! Metalink is an open standard which provides a specification for a little XML file that lists all of the ways one can retrieve a file. For example, for a file available from multiple mirrors the Metalink file would list the available mirrors. If the file was additionally made available through rsync or BitTorrent, it would make note of that as well. This file can then be parsed by a Metalink-aware download client which will seek to initiate a download by grabbing chunks for the various sources and then piecing them together. Apparently (according to the Wikipedia article), the Metalinks spec allows for enumerating a multitude of download sources including HTTP, FTP, rsync, BitTorrent, ed2k and magnet links. I’d like to see this used by more distributors of large files and supported by more download clients (though I heard KGet supports Metalink beginning in KDE4…wahoo KDE4!).
  • Eee PC -As everything seems to be moving to web-based apps these days, it often seems silly for a person to be lugging around an expensive and overpowered computing device which they’ll generally only use to surf the web. In fact, it makes sense that many desktop users are most likely spending too much money for a computer with capabilities they’ll never use! In any case, for those looking for a lighter and cheaper alternative for network-centric computing on the go, check out the Eee PC by Acer. Runs a customized simple-GUI with Linux under the hood though I’ve heard it also comes in a less-good Windows variant. It’s light, small and cheap.
  • Jabber - I’ve said for ages now that more people should be looking to Jabber-based technologies for instant messaging and more. Having one Jabber account on one server allows me to communicate with any user on any Jabber server out there. It also allows me to use any service being offered by any Jabber server. These services could be everything from conferences and data services to gateway transports to other chat networks. It gets even better! Once an organization or community has a Jabber deployment running, the door is open to use that as connective tissue for other services and individuals to connect. This is especially true given the availability of solid XMPP (Jabber’s underlying protocol) libraries for every language you’d want to use.
  • Using Java-the-platform without Java-the-language. Now, it’s been ages since jwz published his famous “java sucks” essay, but I firmly believe that non-client Java (save neat stuff like Web Start) can be a very powerful platform. Much of the server-side Java scene is not so bad. For example, JSP is a very cool templating language which also allows for convenient development using MVC (the Right Thing™). The real pain seems to be in developing the back-end stuff in Java-the-language. Now, thanks to projects like Jython and, more notably, JRuby, things are getting better. I’ve heard about people developing whole servlets and other web-apps in Ruby and then compiling them to Java classes and deploying them as they please. The power of Java without the Java!

Microsoft and Friends make money on your ignorance

Microsoft and the companies that sell Windows maintenance products make money on your ignorance. I’m sorry, but it’s true. Generally speaking (and for the purposes of this rant), the average computer user most likely fits into one of three categories:

  1. Novice users - “Timidius Clickitus” - These are the users who use computers for limited tasks which are usually work related. Vacations typically involve a complete break from email and the like. Most likely to be found begrudgingly anthropomorphizing the computer into an arch enemy, “Technology hates me…”
  2. Comfortable users - “Digitalium Vulgaris” - Mostly under 30, this category encompasses those users who are relatively at ease with technology. Even though society (and their grandparents) keep telling them that they’re “so good with this sort of thing”, they have little idea what they’re actually doing. If you squeeze Facebook/MySpace/YouTube, these users drip out. Most likely to be found saving everything to the desktop, being amazed by keyboard shortcuts and confused by Wikipedia’s edit links.
  3. Power/Expert users - “Snotnosi Smartypantsicum” - This group has an eclectic mix of Windows sysadmins, programmers and hardcore gamers who have more “power” tools and tweaks installed than a NASCAR racer. They constantly experiment with altering the behavior or aesthetic of their desktops in search of the “One True Workflow (TM)” which they will then tout over the inefficient lives of their friends and family. Most likely to be seen getting excited over Windows Updates and oogling over the amount of lipgloss applied to the Vista graphics. Note: these users are not-too-distant cousins of the automobile fanatics who believe a spoiler will make their cars go faster

Now, please be aware that I am being somewhat hyperbolic as I make these sweeping generalizations and that I do it for a reason. Microsoft and tech support companies count on the users of these three categories needing (at least) help from the categories above them. Even the most experienced users, because Windows is proprietary software, have no real idea how things work underneath and can only move things around hoping that what worked before will work again.

This general lack of education has created legions of cargo cult users who don’t know what they’re really doing. For confirmation, one need only look to the entire niche market of “system imaging” applications which are programs designed specifically to create working snapshots of Windows installations which can simply be copied onto hard disks, avoiding the lengthy install process. While this is legitimately useful for installing custom Windows environments when organizations acquire new machines, it’s also used as a form of “workstation triage”. Back when I was in high school, the service techs would spend no more than 15-20 minutes poking about with a given computer before they would just decide to wipe the disks and re-image the machine. That’s right: without specific knowledge of the nature and inner workings of the system, it’s easier to give up than it is to resolve the issue.

The end result is that people get annoyed and upset when they have to call one tech support agent after another only to be told that they need to send their computers in to be re-imaged anyway. So, in this ever-worsening world of enforced ignorance and stunning aggravation, who enters the scene to deliver the struggling masses? Microsoft.

That’s right! The company that deliberately withholds critical information (calling it a “proprietary trade secret”) is the same company that brings in the big boys of personal computing to mop up the mess with your hard earned dollars. The only catch is that you have to pay for the help. You pay for new versions of software which usually contain little more than bug and security fixes. Then, because of the poor quality of the software, you pay other companies for anti-virus products, personal firewalls, spyware removal tools and pop-up blockers. An entire market has been created to fix Windows’ flaws with more software.

Beyond that, if somehting goes wrong, you pay the waiting armies of “certified professionals”, such as the Geek Squad, to rescue your computer from the clutches of “EVIL HACKERS” and the fictitious horde of internet assailants who, after stealing your vacation photos, have nothing better to do.

How much does all this cost? Adding the $99 for a the Windows Vista Home Basic (yes, basic!) upgrade pack to the >$130 price tag of Norton 360 All-In-One Security with a 2yr subscription adds up to over $230. Then if you pay the $249 for Geek Squad to come to your house and upgrade it you might as well take advantage of the discount you get by having two jobs performed at the same time and have them install Norton for you…another $59. All in all, you end up paying over $440 before taxes. Sound like a lot to you? Yeah…same here.

It just bothers me a whole bunch when good people pay for bad products. Learn to use Linux.

—- END RANT —-

« Previous PageNext Page »