Project Organisation

So I just wrote a post below on my AI project's code framework and here are some additional thoughts on general project organisation.

My group sends files back and forth in e-mail. It's awful. I was using a broken version of some of our own software for half a week because I was using the latest thing I received in e-mail. Also, we always run the danger of using old results. Yikes.

Things that would have been good:

  • Using a file repository, like git, so we could access the latest results and code
  • Having a group web page where my group mates could download the last generated results or start a new generation run. That is, one canonical place to access them from.
  • A group task list.
  • Blah

I suddenly grow tired of writing and will take a nap.

Frameworks for Science

My AI project uses software from different places on different platforms to do different things. Briefly,

  • software to calculate measures of entropy: JE, MI, an VI. Written in Java by a group mate.
  • software to split our datasets into 5 folds. Written in C# by another group mate.
  • software to generate association rules for our dataset. A binary provided by Christian Borgelt.
  • software to measure the performance (accuracy, precision, recall) of the class association rules. Written in C# by a group mate.
  • Excel to look at the data.

Most of those have GUIs that my group originally intended on using. Because I hate wasting time and using the mouse, I've since created a BASH script framework to automate it all.

Our Framework

First I went to each piece of software we owned and modified it to work in a headless manner. Instead of giving input through the GUI, we do it through command-line arguments. Instead of displaying the output in the GUI, it outputs it to a file or to stdout (to be piped into a file). For Borgelt's apriori software, there is a command-line binary already, so we figured out the parametres it would want to match the GUI we had planned to use.

Then, I wrote multiple small scripts, each handling one task, and then chained them together, so we can go from a single directory with CSV datasets, to generating entropy, generating rules, selecting only the rules we want, testing their classification ability, doing feature selection on the original datasets across over a dozen different proposed entropy thresholds, generating rules on those featured selected sets (over a dozen for each dataset and measure combination), and then testing classification performance for those reduced feature sets.

Then there's a script that averages and batches together all the performance results across those combinations of dataset-measure-threshold-fold (5 data sets x 3 measures x 16 thresholds (just checked) x 5 folds = 1200 records) and creates a single 240 record spreadsheet reporting fields dataset, measure, threshold, avg. accuracy, avg. precision, avg. recall, and time to generate the rules.

It completes the first four datasets in around ½ an hour. The fifth one is larger and takes a few hours, so I usually start working with the results from the first four first. :D

AI Project and the Evils of Group Work

Believe me, I understand the value in working in groups in school. You really learn how to work alongside others and how to handle all the added complexity and planning, and you might even make friends. I know there's much more to it than that, too. But regardless, I have sincerely disdained every group project I have yet to work on and wish to avoid doing it ever again.

Our project looks at the use of entropy in feature selection. Each of the group members has been flaky at one point or another. However, with our final paper due on Tuesday, one of our group members has not communicated since we last talked on Thursday in class, and also failed to do almost any of her work for the presentation the week before.

This means I'm going to lose the rest of my time until Tuesday to compensating for that. I have another class which has a project due in mid-December which I haven't started, and for which I have yet to submit my project proposal(!) despite it being almost three weeks late! This is ridiculous! And I just don't have the time to fix it. Back to toiling away in the misery that is group work.


First Semester

I feel like I've not been getting everything I should have out of this semester. It started well enough, but things have kind of fallen apart. A late assignment. Uninspiring group work. Missed trains. I'm trying to salvage it, and it stands to reason that some rescue should be possible, but it does affect my enthusiasm, feeling as though I'm missing out on a great opportunity for education.

I've been too tired to concentrate during or have plain missed too many of my Natural Language Processing courses. It's partly the consequence of having to take a 4:45AM train there, and getting back to London late on Tuesday night to begin with. It's hard to get to sleep before going to class, so sometimes I try to stay up or just sleep a little, and I end up sleeping through, or arriving sleep deprived. It's awful. And this is otherwise one of my favourite courses in my University career, and the last few lectures are just foggy in my mind.

I don't work well in groups. At least not in school. I have worked well in groups outside of school a lot. I've worked well in groups outside of Computer Science, too! There's too much conflict and unbalanced interest. I'm tired of fighting it, so now I just try to flow and make sure things stay on track. That doesn't work out well either.

I am complaining today, but I hope the last couple of weeks to come will be markedly better. :) Now to go present a week late on a case study.


TypeError: 'gdb.Value' object is not callable

I like writing code in Vala recently. I'm currently writing a little parser for Pidgin logs. However, when I try running it under gdb, I often get python tracebacks within my gdb backtrace that of the type TypeError: 'gdb.Value' object is not callable.

#4  0x08052d20 in pidgin_html_log_parser_parse (self=Traceback (most recent call last):
  File "/usr/share/glib-2.0/gdb/gobject.py", line 72, in to_string
    name = g_type_name_from_instance (self.val)
  File "/usr/share/glib-2.0/gdb/gobject.py", line 59, in g_type_name_from_instance
    name = g_type_to_name (gtype)
  File "/usr/share/glib-2.0/gdb/gobject.py", line 24, in g_type_to_name
    typenode = lookup_fundamental_type (typenode)
  File "/usr/share/glib-2.0/gdb/gobject.py", line 17, in lookup_fundamental_type
    return val[typenode >> 2].address()
TypeError: 'gdb.Value' object is not callable
, log_path=0x805deb8 "/home/user/file.html", protocol=
    0x8057448 [Protocol], my_account=0x80574c0 [Account], their_account=0x8057230 [Account], error=0xbfffef98)
    at /home/user/files/mine/development/projects/myproject/PidginLog.c:3009

After thinking about it for a little while, I realised that the issue must be that my class is somehow not a GObject. I was failing to extend from GLib.Object!

So, the affected classes have now changed from:

class Foo { ... }
class Foo : GLib.Object { ... }
and all is well with the world once more.

I'm surprised that there were few other questions about this online. Perhaps everyone else is more mindful than I or fewer people use Vala than I thought.


Another Busy Weekend?

Just when you think you're caught up, you aren't, at all, remotely.

School-wise, this weekend was full of Natural Language Processing work and squeezing in what AI I could. It didn't help that my group was able to produce the files I needed to work with at 5PM on Sunday, right when I was out for the evening. I then failed to communicate this when I checked them in the morning, so they're probably wondering "Where's Richard?", especially since I was unable to get to campus again. Ugh. It's humiliating being stranded every other week. An embarrassing first semester indeed.



I've been saving up my charm all week for this Sunday evening :)

Organising People

... into lists!

Just reorganised my IM (and consequently Facebook) contact list which for the last 7-8 years has been based on a colour scheme. Group white was the absolute best person, purple were my closest friends, blue were good friends, red acquaintances, orange schoolmates, yellow workmates, grey undesirables, and black: things I didn't look at. Now it's normal, with stuff like "Guelph", "New Zealand", "Work", etc. One of the original motives, masking what I thought of the contacts, so someone wouldn't go "Hey, why aren't I under Friends?!" doesn't seem important anymore.

A Great Yesterday: a dull tale indeed

And by Yesterday I don't mean Friday but Thursday.

I broke my computer. Well, its OS installation at least. I was upgrading to Fedora 14 (yay!) after testing the LiveCD and finding things were nice. However, I foolishly needed my computer to go and interrupted the upgrade when I thought it was safe. I was wrong. The package manager and my installation were left in an inconsistent state. D'oh.

Consequently, I didn't have access to my computer for a couple days. Rather than sleeping, I spent my time trying to fix it, and having failed that, I departed for the Thursday morning train at 3:30AM not with my laptop but with a borrowed PowerBook G4 and none of my work :)

The walk was wonderful. It was November chilly. It made me glad to feel cold. To see a starry night. To have an hour-long walk to catch a train. It was wonderful, though I panicked to my girlfriend with late night phone calls discussing my dread of this and the day to come. I even recovered a couple hours of sleep on the train and then in the CS building as I waited for class.

Class itself was great. I fell asleep near the end, but the first half was all delicious as NLP usually is. Afterward, I went to attend the project demonstrations for the course I TA. Napoleonic naval battle simulations? DELICIOUS. It was nice seeing the work they had done, and seeing how it was shaped by their previous programming assignments. Also, because all the students have to interact across 5 teams that interact with each other on interfaces and functionality, there was a class-wide enthusiasm for what they were doing which I never got to experience in my undergrad. I am jealous! The latter half of the lab I spent regrading assignments and helping give grades to students whose assignments before didn't seem to do... anything. Most of the time, my marking was hindered by the process in which I tried to make it work. My reasonable protocol could not be handled by everyone, and while that deserves some deductions, it's good to be able to mark what can work and recognise the work done.

One group of students afterward invited me to join them for sushi. I figure it's not a conflict of interest as I'm still paying for myself and I don't remember student names anyway! HA. I didn't realise that we were going to go to Fuji sushi downtown, where I was already planning to go as part of OCUS Eats Out in the evening. However, I went and was glad. We discussed their project a bit, but ended up mostly eating. I will discuss the food later.

After this, I hurried back to campus to go to AI and meet my group. More Information Theory. The group work was well-divided and scheduled, hooray. Then I made my way to OCUS. At first I felt like a great outsider but our current OCUS president (?) is very inclusive, and I got a ride with PhD student who was even in OCUS during my undergraduate. It was a great car ride, and I learnt a lot, and a little gossip. We ended up having a large party arrive and got to sit in the fancy section with the long tables. Now for the food, though.

It was awful. At lunch, the green tea was served unsteeped so in the evening we just took the pot to pour it ourselves. The edamame was barely salted and we too young at lunch, so we didn't order any at supper. They forgot parts of our order and the stuff ordered first came last in the afternoon. In the evening, with our larger crowd, we were split into 4 sections, and my section waited 45 minutes for the bulk of our food while all the other sections had theirs arrive in a steady stream. I almost ate a Forest Roll because I was told it was vegetarian when it really had crab. Would recommend.

This was my first time eating All You Can Eat sushi, and I can see the appeal. You can order food gradually as you've a taste for it. You can get dessert. You can sit for a while and enjoy yourself (up to 1.5 hours, a limit to prevent you from living there). I have heard people describe it as a bad thing, as a waste of fish, with so much being eaten all at once. Since I don't eat fish, though, that one criticism doesn't apply to me, just the general overconsumption of food does, which seems somewhat reasonable if resources allow when there is cause for a feast. Feasts, I've noticed, are a big thing in human culture. Food. Nom.

While the restaurant's service wasn't great, and their vegetarian selection wasn't either, and some of their dishes were lacking in quality, the reason I went and would go again is entirely the social experience. When you want to eat with a large group, it seems like a great idea, especially since it's served almost like dim sum. Food for a group and you pick away at it. I think I'd like to have that experience with exclusively vegetarian food, though. I've had that once with my Vancouver landlady, my girlfriend, and a friend, but I'm more familiar with having to pick and choose what goes on the plate through work lunches and stuff.

The two groups were fun and funner. The first group had a vegetarian who ate fish and my evening group had another vegetarian who didn't. Since the latter and I were at different tables (the OCUS group took up TWO long tables with almost 16 people at each), we even offered pieces between tables as demand and supply allowed near the end. I remained disturbed at the difficult I have at remembering names of late. I credit it with being on campus only twice a week and dealing with so many people. In earnest, though, it's probably largely the result of passively learning their names rather than actively. At the latter, I got to talk to a PhD student who's been TAing for years and had his undergraduate in CS. Elsewise, there was a lot of humour, and once I missed my train, gossip. The gossip is somewhat strange since I have a faint idea of who a lot of the people concerned are from when I was there before, but I don't know them very well, or they're knew people who I don't know very well. My interest in gossip is benign and educational of course, and I eschew malice in it. :D

Afterward, I returned to the OCUS lounge to work but ended up finding that one of the girls had indeed bought a new comic from the Firefly universe, Serenity: The Shepherd's Tale, as had been threatened at supper. I ended up reading that and consequently was dragged along to OCUS's dodge ball game, where I loudly cheered "Sink their battleship!" and "Smash their skulls in!" and, when we had too many people on the sidelines of the enemy side "Good, you've got 'em surrounded, now blast 'em!" We ultimately lost 2-3, but our victories were truer, you know, as we won by clearing their court both times, while they only could win by having more units still on court after time.

An argument on the epicness of Scott Pilgrim vs the World occupied my double-walk back to the lounge where, in a fit of other people working, I pulled out my Ace: Dutch Blitz. 3 people quickly gave up any hope of productivity and joined me in 4 fun-filled and educational rounds before I had to depart to catch the last-possible-train-which-I-really-shouldn't-miss. I naturally left the addiction behind for them to better habituate themselves to my favourite way to play.

The bus ride down was a typical late Thursday night affair: rowdy students. My walk to the station was typical: a free muffin from the Salvation Army's late night table. My train ride home was the usual sleep-deprived fight to do something on a computer. My walk home was the usual "I just want to take a nap in these bushes" late-night affair. Once home, I talked to my girlfriend about her day and enjoyed useless speculation on life before finally sleeping for a hundred hours straight.

A couple weeks

Writing nirvana is nigh at hand! My dream of being able to write things locally in a managed way and then publish them wherever approaches. Streamlines approaches. I hope to have it in production use by January. (Winter break will be necessary to allocate time to it.) Until then, I'll continue writing the old fashioned way: one box, one location. Today's box is blogger.

School has been harsh recently. I have had an assignment that was incomplete by the due date, but the professor graciously allowed an extension. Then I felt ill (due to sleeping and eating habits I suspect) and had a bunch of grading to do for the course I TA. The marking went off well, but probably took too long to do. A number of students fared poorly, and some of it I thought was due to finickiness or transient errors. I had them come back yesterday for regrading, where anyone who didn't like their mark could argue it. Some people don't do better, some do.

Last Thursday I almost didn't want to go to school. I still wasn't feeling great, but I did, and it was a Good Thing. I went somewhat sleep deprived, as I had a lot of stuff to do like finishing preparations for a lab on Object-oriented programming (humans make great metaphors for objects, which was sort of backwards) and trying to finish that assignment, which I kept being too busy to do! Consequently, I got minimal sleep, having to get ready at 3:00AM for my 4:45AM train, filled with crippling fear of missing my stop again :| (Which happened a couple of weeks ago and retaught me that some suffering in life is a Good Thing.)

The lab I prepared went well, and even featured me spending too much money on a bake sale to get treats for the students that made it out. It was somewhat redundant, as they had just had to submit an assignment that involved discovering objects in a domain. SIGH. The lab had been delayed because I thought it would be important to do well and the week before I was too busy with a midterm and a presentation to attend to it well. I should have been more aware of their upcoming assignment though. Oh well, it turned fun.

In AI we started a set of lectures on Information Theory, which we already had in my Natural Language Processing course a couple weeks ago. Review is good. I sort of prefer NLP where explanations focus more on the mathematics of an issue, though.

Afterward, I visited multiple people, laughing with students in the lab, CIS students in the CS lounge, and dropping by OCUS briefly where I discovered new people before making a mad dash to the bus to the train to try and catch a bus to Windsor which I failed in doing.


Friday saw me catching a morning bus to Windsor to visit my girlfriend and work. There was some great fun, including carving pumpkins with friends of her, visiting Value Village, and buying a Pogoplug (not yet operational)! We also dressed funny and played games. On Halloween, we drove all the way to Guelph to do Trick or Eat. I barely saw anyone I know, especially since we incidentally signed up to go with FLASH, but the FLASHers were a fine folk and soon Princess Leia, a disgruntled Newsy, and two knights templar were canvassing the streets explicitly for foodstuffs and implicitly candy. A great haul was had, and a sidewalk attacked the princess.

More school

On Tuesday I missed my train into Guelph. It was either this week or last, as well, that I had discovered mildew on my futon frame and spent half a day cleaning as a consequence. I knew, if I would just embrace the mildew, I'd have fewer complaints. Yada, yada, yada, this Thursday in the next post.


#General #Microblog friends #Technology life gnome music google iaido guelph fedora vegan bugs food school #GNOME linux technology #School jodo blogger gxml #Budo #Photos work web nature happy vala firefox android art Flesherton anime internet travel home open source stress kendo kosmokaryote writing animals birthday dad science security canada computers environment future cookies development german language photos programming reading sick sleep snow video winter GUADEC cell phones css fun learning love me movies people phone picasaweb ta time christmas evolution vancouver vegetarianism #Vegan Toronto ai git gsoc identity new zealand society speech vlogbrothers adventure birds communication dreams facebook google+ gseta happiness libgdata netflix night responsibility skedge stars tea tv video games wind mobile Nintendo baking cake consumerism design fedora 17 javascript memories nlp organisation photography quote tablet uoguelph Josh Ritter animalia blogging books bug encryption family humanity magic meaning memory money pidgin rain recipes speechdispatcher sushi weather #Reading Spain TAing The Frames cat chocolate cold cycling death emusic film flight genderguesser gitorious halloween health knowledge languages liv mail new years nightmares politics productivity psychology software swords the legend of zelda ubuntu web development xml xorg youtube Thanksgiving acer bc busy change conversation cooking duolingo emacs fedora 18 galaxy nexus gay rights gmail japan libxml2 martial arts materialism mozilla nerdfighteria nostalgia privacy rhythmbox sound space university upgrade valentines wahoo walking water web design Con-G Europe John Green Scott Pilgrim age animal welfare apple autumn bash blog brain brave breath of fire II calm camera canada day clothing comments confidence conservation creativity culture dance dataloss djaqua duplicity e-mail emotion english errors feminism gdom germany goals google reader gtk humour intelligence japanese laundry law light math morning moving ottawa peterborough pets philosophy pie quality research sei do kai shopping spring style summer value village vday vonage website x11 #Life New York alone anime north anxiety argument backup budo buffy business cats computer science concert copyright data loss diy eating economy education energy exercise failure fedora 19 feelings file systems flowers freedom french friend games gdata greyhound growth habits heat history house html ice cream im information java joy koryu laptop living lost microsoft mood moon muffins mystery news nz pain photo php physics pirates pizza play poverty preupgrade progress purple python rae spoon reality reflection religion rss self serialisation sharing skating social sun synergy tachi uchi testing themes thesis thinking thought thoughts transit turtles veggie challenge velociraptors violin weekend weird yum zellers API Air Canada Empathy Grimes Hank Green Hugo Jane Austen Lord of the Rings Nexus One OCUS Sudbury Trick or Eat arboretum audible autonomous automobiles beauty bike blogs browsers camping cancer canoeing celebration charity chrome cleaning colour community content corporations crafts decay decor depression depth disaster drawing epic equality experience faery fest farmer's market fedora 12 fedora 16 fedora 20 fedora 22 fedup fireworks gender ghetto ghosts glib gnome blog gnome shell google talk green hair hobocore hungry icarus instant messaging interest introspection jobs last exile luks macbook mail-notification mario meat in vitro mind mom moon festival motivation mtp ninjas oh the humanity pagans pants papers past performance perl phones picnics pitivi plastic pride pumpkin pumpkin pie quiet thrill receipts rogers rpm seminar sewing simple simplicity sleep deprivation smells soy milk speech dispatcher sports stories story telling strange streamlines swimming telephone temperature texting thrift stores time management time travel tragedy truth understanding united states urban ecosystems usability usb veganism voice volunteering webschwerver wild wireless working world yojimbo zoology Avatar: The Last Airbender Blassreiter CIS*2750 CIS*6890 Czech Republic Diablo Dresden Codak Dunedin Dutch Blitz Electric Networked Vehicle Elliott Brood Ender's Game France Fringe GNOME 3 HTC Hayao Miyazaki Mario Kart Montréal Network Manager Newfoundland Nintendo Switch Ontario Ouran Host Club Richard SVC Samsung Samurai Champloo Santa Claus Studio Ghibli TCAF US academics adb advertising aeroport algonquin amusing animal agriculture apartment ask automation awkward bad movies banana bats battery beard belladonna beta bicycle book branding breakfast brno bus buses buy nothing day cabin calgary candy cards cars catastrophe celebrate celtic chat cheap cheese childhood china chinese calendar cities clarity clean clock comics compassion compiler computer conspiracy theorists consumption context convention cookie cool cornerstone cosplay cottage country court creation cthulhu cupcakes curiosity cute dancing dark themes dbus definition deja-dup democracy despair detachment dinosaurs discomfort dns dodgeball dragon dress dust dystopia earth earth day efficiency eggs elections email enhanced history ethics evil exhausted expectations exploring ext3 ext4 fail fair trade fall fashion favourite feedly ferry focus formal free friendship fruit fudge full moon furniture gaelic game boards garden gardening gee generosity genetics gimp gir gobject good google hangouts google wave government grading gratitude green roofs groups gsec guerilla gardening haircut hakama help homosexuality honesty howl hp human rights humanitarianism humility hypocrisy ice images imaqua instagram integration intellectual property internet explorer jabber jazz jelly bean jokes kernel keyboard knife labs last exile: fam the silver wing laurena lazy letters library libxml livejournal lizzie bennet loneliness loss lovely lyrics maps maturity meditation melancholy metadata microbes microfinancing microwaves moon cake morality mother music concert muso jikiden eishin ryu myth namespaces nasa nautilus nerdfighter neural networks nintendo 3ds normal normality notes obsolescence oceans open open souce open standards panasonic paper parties patches peanut butter perception personal perspectives philanthropy plants pleasant poem politeness potluck preparation problems ptp pulseaudio quidditch racism recreate redundancy relationships relax repairs resizing richard's room roomba roses rsync running sad sadness salsa samurai sanity scary schwarting seasons self-esteem self-navigating car selinux semiformal senility sensitivity sentimental sheep ships silicon motion sleeping in sms social justice software engineering solitude solutions songs soup speed spelling ssh star wars strangers stupid success sunset surreality survival skills suspense sustainability sweet sympathy symphony tardigrades tasks teaching technical communication and research methods test tests thrift tim tams time and space tired tools tracker tradition tranquillity transience trees trust tumblr twitter update user experience utopia via vihart vlog waffles warmth waste waterloo wave web comic webkit wii wiki winter is coming wizard wonder woods words xmpp yoga youth zoo #Gaming #Wishlist #anime #general 1. is anyone reading this? 1602 1984 2. you win a prize! 2008 2014 24fps 3. gimme a call to collect 404 A Short Hike All My Children Andy Griffith Argentina Armstrong House Avatar: The Legend of Korra BarTab Beach House Boston Boston Summit British Columbia Businesses C CIS*6050 Cambridge Christopher Plummer Claymore Creatures Darker than Black David Attenborough Dear Wendy Docking Station Dollhouse Earthbound England Excalibur FOMO February Fergus Final Fantasy IX Fire Emblem GError GNOME Files GSA Go Google Play Music Hunger Games I am not okay with this I believe in a thing called love I'm a wizard IRC Ikea Ireland JRR Tolkien King Arthur Lost Lagoon MIT Mac OS X Madrid March Massachusetts Matlock McGuinty Melodies of Life Merlin Michael Cera Mother Mother Mr. Tumnus Narnia Neil Gaiman New York Philharmonic Nick and Norah's Infinite Playlist Nintendorks Norns North Korea NotesFromNewYork Olympic OpenShot Orphen Orson Scott Card Oscars PEAP Pauline Johnson Pete Peterson Planet Fedora Porco Rosso Questionable Content R ROM Rent S SIM Wireless Sauble Beach Sega Sega Genesis Selenium Shakespeare She-Ra Snakes and Lattes Splatoon Star Trek Steve Grand Stranger Things ThanksLiving The Darkness The Devil is a Part-Timer The Fifth Estate The Guild The Hobbit The Stand Tianjin Tim Hortons Tolkien UI UK UX VPN Will Grayson Will Grayson Wolves in the Wall WordPerfect Xiki [General] abrt absolutism abuse academia accessibility active activism activity addiction adreama adrift adulthood advertisement air airport express airship ajax al gore alarm clock albums aldiko alice in wonderland alien alistair summerlee amateur amazon ambience ambition amy winfrey anaconda and imperfection angle angry birds anhosting animal cognition animation anon anonymity ant apache apology appearances appreciation aqualab arcade architecture arduino arrogance assassins assignments association analysis astrid asus eee top asynchronous ati attachment attitude attribution audio aural abuse authentication authenticity automake automarker avatars awesome b43 backpain backtrack3 backyard bounty bad bagel bandwidth banjo banks barbarians barefoot baseball bathroom beaches beautiful bed bees beetles being belief bellaqua benedict cumberbatch berlin bertrand russell bill gates biofabrication biology biometrics bit rot bitcoin black and white blame blockbuster bloomberg blue board games bohemian bold bon thé place bonds border boredom botany boxing day boy brain scoop brickworks broadcom broccoli browsing bubbles bubbly buildings bunnies burn bus stops butterflies buttons c# c++ cafe calendaring calligraphy camel camera obscura cameras canadian english canopy capitalism captivity careless caring cast causality cbc cedar row cello censorship certainty cgi chalk challenger changing locks chaos theory charm cherry blossoms chickadee chickens chivalry choir chopsticks chores christchurch christianity chudan church cijf cinnamon classes clif clorox clorox green works cloud cloud atlas clubs cname coca cola codeine codeviz cognition coincidence coins color comfort commons communism competence competition competitive coughing complaints completeness compliments conference configuration conflicted confusion consciousness consent conservatives conservativism console construction constructive criticism contagion contest contributing convenience corpses cough suppressants coughing coupons courageous crashes crates crayons crazy creative commons criminals crisps criticism crosscanada crowd crtc cry crying cryptic cryptozoology csh cuddles cult currency current tv curse customer service customisation cuttlefish cvs daily grind data data mining databases dating david bowie dconf debate debug symbols debugging delicious design patterns desktop desktop summit destiny dftba diet difficult digimon digital receipts disabilities disappointment discordianism discourse discoverability dispute dissection kit distraction diyode dnf doctor who doctors documentation dokuwiki doubt doughnut dpkg drab drano drano prevention dream dreaming drinking drm drowning dryers drying dtwydt ducks dvds dying dynamic typing ease easter easy ebony jewelwing ebooks ecards economics editors eeetop el paso elder neglect electronic receipts elements elitism ellen page embarrassment emily graslie emptiness empty enchant end of enterprising environmental science symposium eog epiphany eplugin equipment essentialism ether euphoria evoaqua experiment experimenting expertise extensions extortion facades faith falafel familiarity fan fancy fantasy fascism faun favicon fears fedora 11 feed me feedback festival fibonacci fiction fiddler crab field guide field identification figment figures of speech file formats finances fire fish fitness fixing flac flash light flesherton fling flexibility flour flow flying fonts footprints forceps forgottotagit fork fortunate fortune found fragaria frameworks fraud fred penner free time freezing french fries fresh friday friend's wedding frog fspot funding funerals funny fury fuse gargoyles gdb geek geeks gf3 gi gifts gio gitlab gjs glass globalnewtgames glory gloves glue gluten gm gmo gnome keyring gnome software gnome-control-center go ninja go go transit goat gods goodbye goodfella's google assistant google books google calendar google chrome google wallet gp2x gqe grad graffiti grammar graphing graphviz grass green beaver grey county groceries growing up gtest gtg guts gvfs gvfs metadata gypsies habit hal halls hard hard drive hard drives hardship hardware harry potter hdtv heart heart break heaven 17 hemlock grove hewlett packard hijinx hiking hoaxes hobbies holidays homelessness homework honey badgers honour horatio hornblower horror hostels hosting hot house of cards hp lovecraft hugs humblebundle humbleness hunting hyperlinking hyrule i am a carpet ibm thinkpad x41 icalendar ice cream sandwich ice rain icthyology ignorant ill image image editing imagination impermanence inadequacy inaturalist inconvenience independence india individuals industry infinity ingrid michaelson inhumanity injuries ink innovation insects installation intel interactivity interlocutor internet tv invertabrates io irish irony isolation it it is indigo james bond java 13 jedi jikiden joke journalism journey judgement julian assange julie thiel justice kata kayak keys ki-ai killme kim taylor kinder kindness kirby kitchen kitzl kiva knights knots kodak koodo kung fu labels landau sacamoto late laundromat led legend lending lenovo lessons letsencrypt letstrace letter writing liberalism liberals libnotify libreoffice librpm lifehacker lilo limericks limits linksys liquid lists live wallpapers livecd liveusb loans local local food local install login london losher lots of hugs mac mini machine learning machine vision madness mae magic school bus magical maintainership majesty malaria malls mantis shrimp marine life marketing marking massages matrices maturation may seminar meat media medicine mel's diner memory leaks mental health meow mercy messaging metacity metaphor methodology mezzo forte micropayments mild mild weather military milk mindhacks minimalism misanthropy miscellany misery misfortune missed the boat missing mlp modelling moisture mold molly parker monitors monologue more cats mosquitoes moss mother's day mounting mouse moxies muffin muffinfilms mundane murder museum mushishi mushroom soup mushrooms musicals mutual funds my slumbering heart mysql nameservers nanowrimo national treasure natural language processing naturalism nausicaa navigating necessity neighbours nervous netgear network new new users newspaper hat next year ninja turtles nodelist nointernet noise noisy nominate non-root norse noses not really dying notebooks notification-daemon novels november fair nuclear war numbers numix obama obligation obliviousness obscure ocz ogg oggenc olap olive omote open formats open music openness openoffice optimisation optimism orcas orchestra oreo oreos org-mode origami oscar otr overheat owen sound package management packagekit packing paint shedding pan pancakes panda parallelism paranoia passport patents patience pattern recognition pdo peace peaceful pen pence pender penguins penmanship perfection pet rocks physical piano pickman's model picnik pidgin plugins pikmin pintsize pipelight pirate festival pizza hut plagiarism planning plans playground playlists plumbing plushies podcast poetry points pokemon polls pomplamoose positions posse post posters postmodernism potatoes potlucks power ppc practise prejudice premier pressure pretty pride and prejudice priorities private processes professionalism progressive web apps projects promise protest proud purchases pwa qt quarantine rad radeon railroad randall munroe raop rats reagan recursion recycling redhat reductionism refactoring refrigerators regret relativism release renew renfrew repetition report resolutions resolve resumes reuse reuters reviews revolution rhino rhps ricola risk road trips roar robots rockwood rot rover rtm ruby day ryu safety sanctuary sand satisfaction savages scary movies scheduling schneier scholarships scooters scp screenshots script seals search secret world of arrietty secrets seitei self-interest self-respect self-sufficiency self-worth semesters senescence sessions setbuilder settlers of catan sftp shame sheepo pistachio sheila patek shell shells sherlock holmes shipping shogun shotwell shoulder bag sigh signal sim city simafort simpsons sincerity singing sjr skill skunks sky slackware slashdot sliver small smartphones smiling snails sneezing snowboarding soccer social dance social media socis soft solemn someonesmotherwantstoadoptme song sony sophistication sorbet sorrow sparklers speed river spell spellchecking spies spilt milk splendid splendor splinter spoilers sponges sql squaresville sr ssd sshd stanley park starry night starving steampunk storage strawberries strength structured information struggle stuff stylus suburi sucks sugar super mario super mario land 3d superiority superstition surprise surprises surreal sushi surrender swings systemd systems tabs tachi uchi no kurai tail coats tameshigiri tarot taxes tears technocracy teddy bears tedtalk term termcap terror the duke the fault in our stars the hulk the human league the irregular at magic high school the onion theatre theory thingsidon'twanttodo tim berners-lee tim mcgraw timber timbre timeliness tin tin toaster todo toilets tolerance tonight toomuch touch screen touchpack tour tourniquet towels toys trac trailer translation travel buddy treestyle view trex triumf triumph trivia trouble tweak twist tx2500 tx2617 typing ugly logos umbrellas un dinaru underwold unemployment universe unlimited blade works updates upgrades uploading urban agriculture urban ecology urchins vagrancy vagrant vague but exciting valadoc validation values vampires vanilla ice variety vegetables velvet burger verb version control vi vinegar violence voip vpnc vulnerable waf wandering wanting war warm wayland weapons web hosting webcomic webcomics webfonts werewolves whales what a wonderful town whatsbetter whic are also lazer powered white spot wifi wii u wikisource will williams wings wisdom wishes wizardry wolf wonderland wordplay world cup world water day writing voice xenophobia xephyr xinput xkcd xpath yahoo yay yyz z-index

Blog Archive