My last major communication with the FLOSS universe was almost a month ago, so I figure its time that I tore myself away from school here and wrote something.
Its currently the last week of classes, and next week is finals week. Naturally, that means every teacher wants to cram in those last few major projects. And with 19 credit hours this semester, that leaves very little time for me to do much of anything. So in these last three weeks, I’ve been slammed with two rather big projects.
The first one is a rewrite of a lot of obfuscated C that tries to implement a parallel fast fourier transform algorithm (theoretically faster than FFTW, but we’ll see…). For an example of the original code, its on the class’ github repository. Its not pretty, especially considering how the math professor behind this project seems reluctant to teach us how his algorithm actually works. We’re really flying blind here.
The second project is a rewrite of the guest tracking system we use on campus for student dorms. The current system apparently never had any user feedback during development. Somehow, simple tasks such as checking in people takes way more steps than just “scan the barcodes”, yet checking out entries (as long as it is one of the 5 ‘random’ entries in the sidebar) is one click with AJAX. In fact, the job training to use the system actually includes “Use ctrl+f to search a page to find if they are checked in. If its not there, go to the next page and try again.” Its not uncommon to have 10 pages of entries.
The last two projects are actually pretty simple. The third project is a kind of mapquest involving distributed computing and graphs. The other is bolting on a quick menu system to our previous midterm project.
PROTIP: If you take CS classes here at UA, Dr. O’Neil and Dr. Chan make the projects in the rush weeks painless. Highly recommended.
The big personal project for this semester was a presentation I gave as a Fedora Ambassador. Last friday I gave a presentation explaining “Open source software: what it is, why its important, and how to get involved”. In reality, it was mostly about free software. For a startlingly pro-microsoft campus, a gentle introduction to the difference between the two seemed like it’d be a good, popular presentation. Only 10 or so people showed up. Can’t blame them though, since it /is/ almost finals week. I’ll be uploading my slides someday soon.
Finally, there was some relatively important news I’d like to announce here. Last Wednesday, I was elected president of the student chapter of the ACM. Neat. My term officially starts on the 6th of March, so I won’t be able to do a ton yet, but I’m already thinking up some good ideas for this coming year.
So, if you’ve been wondering why I haven’t been coming to any Fedora ambassador meetings or why I haven’t already joined the KDE-SIG, or done any commits in KDE, this is why. Apologies for not carrying out duties or whatnot (if any were really even given to me). It also really doesn’t help that our campus network is still randomly blocking PING/PONG messages on unencrypted IRC due to “security concerns”.
An Akron friend of mine put down her thoughts on Christianity and religion in general.
I’ve got a few things to say about it too, but I’ve never really shared my view on religion with the world. Just bits and pieces. Its 10:45PM here at my CA desk in a building with less than 40 residents, so I’ve got some time. Grab a chair, it’ll be a good read.
Lets start with retelling my religious upbringing.
My parents were Christians when I was born. I got baptised after adoption and everything. I seem to remember going to church once or twice. Towards my first elementary school years, my best friend and myself went to Vocational Bible School. Not sure what provoked this. Maybe our moms wanted us to have a better understanding of the popular religion. I remember learning a lot about Jesus, God, Satan, and their eternal battle. And a few things about St. Valentine. Oh, and we sang in the choir.
I can’t remember ever going to church for a very long time after all that. There were quite a few other kids in elementary school who praised Jesus and his gospel though. I thought they were a bit nutty for that. Religion never played an important part in my life. By the time we started getting up towards junior high, I had already decided that Christianity wasn’t right for me. I justified this decision based on the crazy kind of Christians I’d seen in the world already, both at-large and around me. The kind who think you’re going to hell if you don’t go to church. The old school kind. A few close friends of mine agreed (including my best friend who went to bible school with me), and we generally came to an agnostic consensus.
Then in 2006, my mother passed away.
I haven’t said this publicly ’till now for various reasons. I wanted to tell people, but the one thing my mom didn’t want was people feeling sorry for me because of her. I’d like to go on, but I’d think it’d be disrespectful to her if I tried telling her story online. She’s more to me than what can be said through text. If you meet me in person sometime, go ahead and ask. I’d love to tell.
But still, this was the absolute biggest event in my life. I started thinking back to Christianity. Going to heaven, your sins being weighed, the whole nine yards. I considered going to church for the first time in over 12 years. Not sure why I wanted to go, but there were people out there who did it in these times and it seemed to help them. I wanted to know what they saw..
I didn’t go though. I eventually came to my own conclusions after further thinking about my agnostic views of the world. Some of this was actually influenced by the anime series Neon Genesis Evangeleon. If you haven’t seen it, go watch it. If you have, skip this next paragraph.
Neon Genesis Evangeleon starts out as a classic giant robot anime. It quickly delves into a discussion of religion and psycoanalysis. Specifically, Freud’s theory of identity. Towards the end of the series, the characters begin to question reality and perception. They asks deep questions such as “Who am I?”, “Why am I here?”, or “Do I see me as what others see me as?”.
My explanation of death starts out as this: When you die, you still live on. My father and I watched my mother pass away before our eyes. I still think she’s around though. Take an open mind and consider this: When a loved one leaves the room, how do you know they’re still alive? It doesn’t matter what answer you give, you can’t really give evidence they’re still alive. It is possible reality is all just a figment of our imagination. You’re just a brain in a tank with two entities describing a reality for you. Conversely, If there isn’t a single person in the multiverse who knows you exist, how do you prove to yourself that you exist?
This all leads to my understanding of life after death. As long as someone in the world remembers you and acknowledges you made an impact on the world, you haven’t really gone away. I still miss my mom when I go home and sit alone for a few hours, waiting for my dad to come home. But I never feel like I’ve really lost her. I always think about her.
Kat says religion is good for explaining the unknown. I agree. Thats how I believe religion started. Nobody could really explain how this big hot orb in the sky moves across in regular intervals, so thats why the Norse made things like the Trundholm Sun Chariot. However, science has proven that there is no big horse in the sky. Its only natural then that they tried to explain what happens to you after you die.
When you die, your body will rot away (or be cremated). You’ve now been reduced to the basic elements of organic chemistry. What religion tries to explain is what happens to your soul. This raises the question of what a soul is, which is another hotly debated one. I’m defining it as your personality and mental identity. Biologically, thats a side effect of our brain. All the religions tell stories about some kind of afterlife to help make sense of death. It is the great unknown. Once you die, you can’t come back and tell the world what it was like. Even if you did, it wouldn’t be interesting. You wouldn’t even notice dying. You might notice your perception of the world fading away but once you get to some point you simply cease to perceve.
The problem with Christianity is that they try to make death seem like a deadline. If you haven’t turned into their definition of Good, you’re screwed. Their definition of good is to accept that Jesus died for your sins. If you don’t, you’re a selfish bastard and deserve to burn in hell for eternity. Yet the very god they worship doesn’t show a lick of concern for his creation. Even more so if you don’t help propagate the religion. Taking God’s name in vain is an unforgivable sin. Badmouth the religion and you’re no longer eligible for heaven. It doesn’t matter how good of a person you are, one mistake and your soul is deemed “obviously evil”.
This is the flawed part of organized Christianity. No chance to repent for your mistakes. You’re either constantly worried about doing the right thing lest the one you worship screws you over. Thats not something I’m interested in worshipping. I’d rather believe there is a wholly neutral entity that can’t be swayed by how much praying you do. Karma is a big component of my beliefs. If you do something bad, do something good or something bad will happen to you.
Organized religion discourages open-mindedness and encourages groupthink. The two aren’t mutually exclusive. I’ll believe what I want to believe. Perhaps Christians are right, and there is a god out there who is petty and vain. Or maybe pastafarianism is right and we’ll all be presented with a hooker factory and beer volcano upon death. Devout believers of a religion lack open mindedness. Every experience I’ve had with a devout Christian trying to explain their reasoning behind something has usually ended with “because of god!”.
Earlier this week I found this brilliant video explaining open-mindedness. Watch it, and maybe you’ll understand where I’m coming from.
A few hours ago I moved Bubblemon out of kdereview and into kdeplasma-addons.
Keep an eye out when 4.3 ships. You’ll like it :)
On tuesday night here on campus, the Student Union had a special free showing of Adventureland for students only. @keylynn and I went to go see it with friends, and I’d say it was a pretty good movie.
It starts out fairly nice. If you’ve seen the movie Superbad, Adventureland can be imagined as a kind of continuation of the story. James Brennan’s extraordinary summer plans are ruined when the 1980’s economy hits, forcing him to get an ordinary summer job working at Pittsburgh’s Adventureland themepark. There he meets Em, who is apparently the first girl he’s ever really fallen in love with. The plot feels muddy after that, until the very end.
But its a good kind of muddy. IMDB’s review sums it up nicely:
The set-up provides plenty of opportunity for crude humor, Mottola indulges with abundant involving puking, groin pinches, drunk and stoned behavior, and lax work habits. But his real interest is the navigation of dubious emotional and ethical straits by immature characters who make serious mistakes while trying to feel their way out of their unhappiness.
Adventureland (2009) - IMDB
Watching James and Em make bad choices while watching both sides of the story unfold left me feeling very empathetic towards them and at times even annoyed. They made bad choices while the real answer was in plain sight. Every so often, you’d expect one of them to finally come through. Instead, James’ awkwardness or Em’s stubbornness got in the way. In the end, it all worked out though. The ending leaves you hanging a little, just like the rest of the movie, but that may be seen as a good kind of hanging.
If you’ve got the time, I’d suggest seeing Adventureland. Its a worthwhile film with a really crappy tagline.
Last night I committed a quick patch to Plasma’s plasmaclock library that almost all plasma clocks use. It changes the configuration interface a little bit to add one neat feature: speaking the time.
Now, you can configure any plasma clock to speak the current time every Nth minute of the hour. I was inspired by a neat little Android app I found the other day for my G1 called “Talking Clock”, which speaks the time every hour. Very handy.
As part of changing the configuration interface, it renames the “Calendar” page to “General” and uses Applet::icon(). I also went in and changed the analog-clock and digital-clock plasmoids’ “General” pages to “Appearance”. Now there aren’t a whole mess of clock icons in the settings :)
The middle of last year, I started working on Glovebox, a rather ambitious project for a car computer environment.
One of the biggest choices I made was to write my own set of UI libraries on top of Qt to mirror the kind of integration that KDE has. This was mostly because I didn’t want to drag in the few hundred MB needed for Plasma.
Wow, that past me was an idiot. Lets all point and laugh.
Ever since Plasma got moved into kdelibs, I’ve been thinking on and off about building Glovebox on top of KDE. For some reason over the past few weeks I started thinking more seriously about it.
At any rate, I’ve decided to go ahead and do that. I’ve also thought about another good idea. I’ll allow Glovebox’s UI to run under an X server in addition to the original idea of using Qt Embedded’s framebuffer stuff.
So most of tonight will be spent hacking the build system and Launchpad into shape, followed by restructuring the page plugin system to use KParts.
Ahoy, Planet Fedora! I’m Trever Fischer, one of the newest Fedora Ambassadors.
Let’s start off by saying some mildly interesting things about me. Right now, I’m a computer science student at the University of Akron. I’ve been using Fedora since Fedora Core 3. Between classes and campus involvement, I’m an active KDE hacker.
I only recently joined the Fedora Project as an Ambassador because I’m sorta embarrassed by the lack of open source software here on campus. Our computer science department has a strong emphasis on it, but the rest of the university treats it like a horrible plague. Sad, I know. This is exactly why I’m in the elections for senator for our associated student government. I’ve got a strong platform aimed at reducing our dependency on proprietary software and the campus technology budget by pushing for more free software. Do we really need 25 new computers for every dorm’s computer lab? Considering IT services is forcing vista upon everyone, yes. Do we need to have expensive microsoft certified contractors come in and ‘improve’ our wireless (which was working just fine before they did)? No, we’ve got students who are supposed to be learning that kind of stuff. Some are even already employed by the university to do things like that. Give them some real world experience, I say.
Our elections are running until this Thursday at noon, and the results announcement is at 4pm. Hope I win!
3 days ago, Daniel announced the release of KPackageKit 0.4.0. Outside of the lone message on packagekit-devel, I haven’t seen much hooplah, so here I am writing up a news release for the planet. Our last release was way back before October, so quite a few new features were added since then:
Along with some neat minor features:
For those not in the know, KPackageKit is the KDE frontend to PackageKit, the unified package management system. PackageKit doesn’t replace your distro’s default manager (eg, yum, apt, rpm, or dpkg), but it improves upon it by giving a generic D-Bus interface. Frontends (like KPackageKit, or gnome-packagekit) use these simple calls to do normal tasks like updating your system, checking for updates, and installing packages.
To get the ‘official’ release in SVN, check out revision 927064.
My current project for KPackageKit is implementing the client-side D-Bus interface for apps to install things like media codecs and fonts on the fly.
So in my last post, I said this in reference to bubblemon:
While writing this, I found a few possible bugs in plasma. I say possible, because I’ve been known to be an idiot sometimes
Turns out using setAspectRatioMode(Plasma::Square) fixes it:

Bubblemon in the panel with its proper round shape
You’d think, however, that using KeepAspectRatio (as I previously was) would suffice. If I manually resize, plasma should keep my aspect ratio. I understand now why plasma shouldn’t keep the ratio constant in the panel, but the apidox doesn’t seem to explain that.
Anyways, I added two important (and two mundane) features to bubblemon this morning at some ungodly hour. Anti-aliasing, smooth value transitions, label scaling, and support for any ksysguard sensor. To get the last one, I added some code to the systemmonitor dataengine that supplies various metadata, such as maximum, minimum, translated name, and translated units. Now its a lot easier for anyone to get, say, the current total memory on the system without having to request mem/physical/free and mem/physical/used.
The label scaling is the other important feature. Quite simply, when the label is too big to fit in the sensor, the text gets word wrapped and the font keeps shrinking ’till it fits. If the text is too small for even a 1pt font to fit it in, it won’t even bother showing text. After all, text at that size is just impossible to read. IMHO, I think this makes bubblemon as complete as it can be.
Now I can go back to helping hack KPackageKit into a form resembling a release. And sleeping.
So, uh, hi there. I’m new to the planet.
To get things started, I’m Trever, a 20 year old CS student from the good ‘ole US of A, which may or may not be true depending on your opinion of the united states. Your call. Anyways, I’ve been hacking on KDE on and off since 2007ish. The most I did was make a few patches for Amarok and just go bug hunting. Oh, and coding a lot of PHP. Apparently I’ve grown out of my PHP phase and moved on to bigger things with C++ and python. I’m one of the two people (the other one is Daniel) who work on KPackageKit, the KDE frontend to PackageKit. KPackageKit was the big reason I started hacking on KDE for real. It has also been rumored that I help work on the KDE bits for PolicyKit in fits (this rumor was started by me).
Cool, now that bit is out of the way. Now for something completely different, and really neat. I call it “Bubblemon”:

Bubblemon showing roughly 50% CPU usage
You can find it in playground/base/plasma/applets/bubblemon.
I’ve had the CPU plotters provided by the system-monitor plasmoid bundle, but I thought they were too boring, hard to see current usage at a glance, and I couldn’t really shrink them small enough. I think bubblemon addresses those shortcomings. Bubblemon is a glass sphere that fills up with some kind of goop depending on what it is monitoring. The cool thing is, the more full it is, the more it boils. Yes thats right, this is a cool animated plasmoid. It is guaranteed to wow your friends[1]. The hotter it gets, the faster it boils with more bubbles.
In addition to monitoring your CPU usage, you can also monitor your memory usage. Soon, I’ll be adding temperature monitoring once I rework some of the internals (its all about plugins, man).
While writing this, I found a few possible bugs in plasma. I say possible, because I’ve been known to be an idiot sometimes. For instance, there’s this:

Bubblemon chilling in the plasma panel
Putting it in the panel doesn’t seem to respect the plasmoid’s aspect ratio. I’m not entirely sure why this might be happening, as the battery plasmoid doesn’t have this problem, and I used it as reference for most of the code. I also haven’t updated my kdelibs with kdesvn-build since a month ago, so I’m not sure if it is fixed or not. Another issue I found was the lack of a plasma API to handle my animation. Bubblemon is forced to create its own QTimer, which is then connected to a slot that moves the bubbles and calls for a repaint every 40 ms, giving a 25fps animation. This gives plasma an ungodly number of wakeups per second. Not entirely sure if that can be helped though. However the methods that actually move and draw the bubbles take up 50% of my CPU (10 of which is system), which is unacceptable even on this dual core 2Ghz thinkpad.
The good news though, is that when my laptop goes on battery power, Applet::shouldConserveResources() returns true and bubbles are no longer bothered with, dropping CPU usage down to about 3%. If there’s any C++ gurus around who can figure out what is being such a resource hog, you’d be doing something pretty awesome for me. I’ve ran it through valgrind a few times, and it seems like most of the work is spent blending textures together in Qt. Later this week I might try 4.5 to see if that fixes anything.
1 Not an actual guarantee.