[General] What is essential in life

I use my computer every day, but is it necessary?  Today I kept looking at it folded up on a chair in my bedroom and I ignored it.

Facebook?  I've disabled the account and removed the app from my phone a number of times.

Television?  My father watches it for hours a day (he doesn't use computers) but his father didn't, and I don't have a television.

Is my Wii essential?  I've lent it to a friend (largely because I have little access to a TV on which to play it). 

Is it books?  I have been reading only one or two per semester for the past two years, due to school.

Is it tea?  When I lost my tea flask, I dropped from 700mL-1L of tea a day down to 0mL most days.

Are people necessary?  I haven't felt like I've had anyone close to me (personally) close to me (geographically) for a few months now.  This is admittedly not the easiest thing to do without.

Is it knowledge?  I used to pick up information like it was chocolate, but my interest in general domains of information has shrunk (I still like many domains, but I don't put as much effort into learning about things not needed by school now).

Is it a hobby like iaido?  Maybe, but I haven't be able to practise it seriously for the past couple of weeks, and I broke from kendo for years before picking up a sword again.

Is it thinking?  Maybe all someone really needs to do is to be able to and reflect.  Maybe tea isn't necessary, but it's welcome.  Perhaps a book itself isn't necessary, but having some sort of new input to keep thinking on is useful.

The continual distillation and simplification of life.

[General] Idyllic Winter Village

Walking down ice dusted sidewalks, watching a light show reflecting off individual flakes of snow and ice, the pattern changing rapidly as I steadily progress forward.

Ice crystals saturating the sky, capturing vertical columns of light.


[General] 3-2-1 Cookies, Christmas edition

My Christmas variant of my 3-2-1 Cookies!

  • 2/3 cup white sugar
  • 1/2 cup vegan margarine
  • 1½ cup all-purpose flour
  • 1/3 cup pumpkin puree
  • 1/2 cup Fair Trade chocolate chips
  • 1 tbsp cinnamon (or 2)
  1. Preheat oven to 350°F
  2. Put margarine in mixing bowl
  3. Dump sugar onto margarine
  4. Mix vigorously!
  5. Add half of the flour, blend cautiously then vigorously
    It should be dry now
  6. Add pumpkin to undry it!  Mix until its mushier
  7. Add the other half of the flour and mix until perfect
  8. Dump in chocolate chips, mix evenly
  9. Insert into oven
  10. Baked for 10-14 minutes



[General] Calm


So Santa failed to make it this Christmas for many homes.  On the news, there are lots of irate and furious people.  I think this is a useful moment to reflect on the reasons people are frustrated here and see if there's anything useful to learn.
  • Perhaps there's too much emphasis put on the specific date and time.  Perhaps it doesn't matter if parcels and gifts are a day or two late.
  • Perhaps it's a problem that many kids believe there is a fantastical person named Santa who is obliged to reward them for questionably good behaviour by bringing them gifts on a specific date.  Perhaps it's difficult for parents to explain the delay without disillusioning them.  Perhaps it's not worthwhile lying to your children, given that reality happily and necessarily contradicts lies.
  • Perhaps people worry too much about things working out a specific way.  Perhaps people could try to be more flexible.
  • Perhaps people make themselves unhappy unnecessarily by being intentionally inflexible.
I've been trying to have more moderate and reasonable expectations for people and things, and to be accepting and indifferent to things like delays.  I don't always succeed, but I'm sure I'm doing better than I used to.

I used to get very frustrated very easily, but I think that was because I maintained a very high level of stress.  Since I gave up on stress, I've been much less frustrated with the world around me.  I spend much less time angry at others (almost never) and when I do, I try to figure out why and what I can change in myself to change that.  I don't want to hold unreasonable expectations for others, and if I find myself holding them, I want to drop them.

I wouldn't say Christmas has gone the way I would have wanted.  There was a friend I had hoped to see that I haven't gotten to.  There was a material item I had hoped to acquire but didn't.  There was a movie I wanted to see, but haven't been able to*.  I've managed to be comfortable with all of that, which I'm grateful for.  (* regarding the film, I've actually been affected by the circumstances, but not specifically failing to see the film itself, as I don't think seeing films in theatres or in a timely manner is particularly.)

I've gotten better at being on time myself (because it matters to some others) and not worrying if other people aren't on time (because I'd want others to understand when I encounter delays).

So, my key to avoiding disappointment and maintaining happiness is trying to minimise unreasonable expectations and to avoid blaming others when plans don't work out.  It doesn't always work, but it has helped. :)

[General] New Goal

I've felt kind of directionless for a little while, but I have a concrete, real, near goal to pursue!

I'm taking my father to Germany.

For a variety of reasons, I'm valuing my father a lot more right now.  For the past couple of years, I've been a bit remote from him, a bit embarrassed at where my life has been going, a bit frustrated that I couldn't be who what I want to be for him.

But he is consistently my strongest supporter and I want to make sure he enjoys as much life as possible, and I don't want finances to impede him.  So I'm going to finish my Masters and I'm going to get a real job and I'm taking him by August (around when I want to go to Strasbourg, France, anyway). 

Here's we go!

[Microblog] Transient Thought

Mezzo Forte was the anime I wanted to recommend yesterday!  Note to self.


[General] Books to read

Here are two books that are newly on my to-read list.

  • "How to Avoid Huge Ships" by Captain John Trimmer
    I strongly recommend the Amazon reviews.

  • The Stray Shopping Carts of Eastern North America: A Guide to Field Identification by Julian Montague
    I strongly recommend the Amazon reviews as well.

[Microblog] Merry Boxing Day!

That special day every year where cats claim leftover boxes to be their personal towers.


[Microblog] Camerography

Why I look at Micro 4/3 cameras

[Microblog] Transient Tickliing

Listening through the stereo channels of Rae Spoons' song Bones in the Museum with headphones tickles my brain.  I mean, the sound keeps alternating so quickly and softly that it's disorientating and it feels like someone is tickling either ear with actual feathers.


[General] The Challenge of Living

Streamlines is my idea and prototype for a publishing platform for a regular user.  Not for writing books or a professional blog, but I like to write in journals and sometimes on social networks and sometimes to friends in the forms of messages or letters.  It keeps expanding.  Basically, the whole point is to entirely streamline my expression and consumption of ideas.  I want it to have two directions, out: the stuff I write, and in: the stuff I read.  I want it to blend RSS subscriptions, e-mails, personal messages, texts, etc.  I want to be able to selectively send out writings to individuals, to blogs, to phones, etc.  I want the UI to be incredibly sparse, almost entirely whitespace in which to write or read.  I'm sad that user interfaces today often are clunky because they try to be flashy; I'd often like something dead simple and super fast and responsive.

Charities are weird.  I get addicted to contributing.  I was contributing to more than I could afford for a little while :o and had to pare down as my financial situation constricted during my Masters.  However, I'm happy to have just contributed to the Project for Awesome, a Nerdfighter/Foundation to Decrease World Suck project, and the Georgian Bay Turtle Hospital, a care centre planned for my local bay :).  I wish I had participated earlier, during the actual 24 hour period, but I was in transit and had a lot of work to do.  In the future, I imagine taking the day off any responsibilities I might have to enjoy and participate with the community life.  I look forward to my perk.

VlogBrothers is kind of like having surrogate brothers who don't know I exist, though one of them once read words I wrote.  I've been annoyed at them for the odd sexist, carnist, and anti-Google+-ist comment from them over the past couple of years.  However, having caught up on the past 3 months of videos tonight (see busy-ness) it's clear why I sort of love them.  I took notes on things I want to write about, but briefly it's curiosity and my desire to feel it again, the joy of being able to relate to John's experience following his 24th year of age, the claim that sugar does not induce hyperactivity (a claim I've suspected), and more.

Music is weird for me.  I mostly get it in binges once a month or once every few months.  I have an interestingly limited catalogue to choose from, through emusic.com.  Sometimes I run into albums that have a couple tracks already downloaded not by me, like today, and that's strange.  My goal for the next decade will be to go see an order of magnitude more live shows.  And buy from more YouTube musicians.  Also, I may have found a real person to teach me how to use my violin this time.

Feminism remains important in life and to me.  A friend has been notably harassed twice in the past couple of months and had others make hostile comments in support of the harasser.  It's the type of behaviour that is easy for me to believe doesn't actually exist, because my social circle doesn't generally feature it.  Feminism isn't just about improving culture to reduce harassment and sexist remarks, but just generally about rectifying systemic inequality, which is unsettling to look at already, especially when I see where I'm benefiting.  Sigh.

Cameras are a thing I'm thinking about now.  I'll elaborate on why I have started to later.  For now, I'll note that Kody (my camera from 2004-2011), capturer of many spectacular memories, has been dissected.

Languages are a lot of fun.  I wrote here before about duolingo.  I've picked it back up, and have finally doing French regularly in advance of going to Strasbourg in August.  Hooray for goals.

Stories are things I enjoy working on, but I've lacked the skill and confidence to really build on the ones I value.  G21, Afawnoly, Plush Vikings, SDK Advenures.  There are four that matter now, and I've started at least collecting thoughts for one of them on a public blog (oooh, secret location) and the other has initial sketches for its web comic format out (hint: my art sucks).  Like my writing for this blog, my fictional writing and my drawing lacks personality, purpose, and meaning.  It's mostly rambling, an exercise in moving my fingers.  But that's still better than nothing.  Hopefully I can find a voice I like in the future and do my stories justice then.

Iaido and jodo are becoming more and more a core part of my life.  I'm wary of letting them become my major trait.  I don't want to be singularly defined by any one thing.  Not by veganism, not by open source, not by martial arts.  If you notice the above, you might notice a relatively broad variety of interests.  That's really intentional.  A part of it is fear, of becoming pigeon-holded into a narrow set of interests and becoming unable to relate to other people.  I suppose I'm afraid of being unable to connect with others.  I think that the fear is a problem, not the inability to connect.  I should be able to calmly do away with others. 

School is progressing.  I sometimes feel a bit embarrassed that I'm still going at it.  However, I feel heartened when I read that one of my favourite professors took four full years to complete his.  I suppose I just fear having productivity derailed again.  Yikes!

Growing up is still an idea I don't subscribe to per se, as in I don't mean to sacrifice my values of my youth that I've kept alive, but I've now gone over the G1 driving manual and the plan is to go for the test the week before my birthday.  Meanwhile, my German passport appointment is scheduled for a month after my birthday (3 month wait-times for 20 minute appointments; yikes!).  This is actually notably more complicated for me to pursue as a person than I'm going to ever elaborate on here.

Merry Christmas.


[Microblog] Like a crème brûlée

Snow.  Mountains of it.  The thermometre pops above 0°C.  The snow puddles like the water it is.  The thermometre drops below 0°C.  The water sheets over the snow like the ice it is.  A cold crème brûlée, crisp outside, soft inside.  Crunchy to fall into after midnight.  Happy hometown.

[Microblog] Microfinancing joy

Kiva loaned a new $25 in my name today.  Awesome!  I wonder who contributed that money to Kiva; I hope I will direct it well.


[General] Learning and age

I've been told by teachers and professors that when you're younger, you can learn much more easily, that kids soak up information like a sponge.  I've often been paranoid about my ability to learn as I age.  But reflecting on life, I actually don't feel like it's harder.  Often, it's easier.  I'm not that old yet, but at least at almost three decades, I'm still doing fine.

One thing I notice is that I'm more complacent in a lot of ways; if I want to be productive learning, I have to want to, and to do so actively.  Perhaps it's easier when you're younger because there's a large vacuum in your understanding of the world around you, so the first time you encounter types of knowledge, it has to leave a strong impression.  Especially when it's relevant to your life or interests; the first time you read into a new field, it can be so fascinating. 

As I get older, I have lots of models of how the world works.  Most learning now requires modifying those.  Perhaps existing knowledge is supposed to offer some resistance to knew knowledge and understanding. 

However, I feel that any increased resistance here is offset by having a great framework of understanding related concepts that makes learning new things much easier in some ways.  I have a much easier time now re-learning French (I haven't seriously touched it in 12 years, and barely knew anything before) thanks to my related knowledge of German, and thanks to my more thoughtful approach to it.  Same with swimming, martial arts, etc.  Before, I didn't know how to learn, I would sometimes get anxious and flail.  Now it's calm and structured and productive.

I hope this can be maintained as I age, and that I can be resistant to inertia in my ideas.

[General] Language learning tip: Genders

My advice is to not memorise specifically the word itself and its named gender as two related parts. Rather, learn them together using the gendered article and the noun.  Also, learn them using both the textual representation and the audio, so you'll have double the memory to cue recall.
So, not "Apple is Apfel and it's masculine" but rather "'The apple' is 'der Apfel'".

The reason in part is because if you start learning two gendered languages, like German and French, sometimes the genders are different.
Apple: Apfel (m), pomme (f)

The gender and the word are a bit detached here.  If you can memorise them with their gendered article, though, and get used to the sound of it, it can become much easier to recall it reflexively, with  auditory memory helping.
Apple: der Apfel, la pomme.
In theory, you would not encounter the wrong ones in examples:
Apple: die Apfel, le pomme

Whereas if you remembered it as Apple -> Apfel, m, pomme f, it can be easier to accidentally swap the gender, since they're just generic labels shared by the two languages.

I am using duolingo.com again to review my German and to relearn French.  Mwahaha.


[GNOME] Public Service Announcement for Fedora users upgrading using fedup

Consider updating fedup to 0.8.0 from updates-testing

# yum update --enablerepo=updates-testing fedup

Or else you may end up with a broken System Upgrade.


[Technology] Another disappointing upgrade experience

So, sometimes, I'm actually pleased with Fedora upgrades.  Not recently though.  With Fedora 20, I again run into a crippling, opaque problem, which ultimately isn't a huge barrier for me, but I can imagine my friends being lost.

This time, at the time of its release, an appropriate version of fedup (the official upgrade tool) is not available in the Fedora 19 repositories.  You want 0.8, but instead you'll use 0.7, and after downloading a ton of packages, you'll go to restart and then it will fail to upgrade, complaining about things like

-- Unit boot-efi.mount has begun starting up.
Dec 18 03:14:13 symonia.localdomain mount[768]: mount: unknown filesystem type 'vfat'
Dec 18 03:14:13 symonia.localdomain systemd[1]: boot-efi.mount mount process exited, code=exited status=32
Dec 18 03:14:13 symonia.localdomain systemd[1]: Failed to mount /boot/efi.
-- Subject: Unit boot-efi.mount has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- Unit boot-efi.mount has failed.
-- The result is failed.
Dec 18 03:14:13 symonia.localdomain systemd[1]: Dependency failed for Local File Systems.
-- Subject: Unit local-fs.target has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- Unit local-fs.target has failed.
-- The result is dependency.
I mean, if you can even find that in the voluminous journal output once you're on the command-line.

The solution is to update to the version of fedup in the updates-testing repo

# yum update --enablerepo=updates-testing fedup

Then re-run fedup.  However, if you tried with 0.7 first, 0.8 wants to download the packages in a new directory configuration, so you'll end up with 1.5GB of duplicate packages on your system O_O.  So, I hardlinked the ones in the 0.7 directory (/var/lib/fedora_upgrade) into the various repo-specific directories from 0.8 (/var/tmp/system_upgrade/SOMEREPO/packages).  Those directories might not be quite right, as having eventually succeeded in upgrading, the latter one is gone (the former is still around, wasting space, of course).

Why would the current version of fedup at the time of release be non-functioning, when it's the recommended tool for upgrades?  Yeesh.

The relevant bug is here:

[Microblog] Drawing

Tonight?  Just drafting the SDK Adventures web comic...  :D


[Technology] Fedora 20's System Upgrade with FedUp fails to boot :(

I bet it's because my file system is encrypted.  Sigh.  That used to work.  Silly Linux.

[Technology] Netflix on Fedora, working thanks to Pipelight

I had previously tried to get Netflix to work on Fedora through recompiling wine with associated patches.  It never quite worked (segfaults).  However, thanks to Pipelight, I can now install it relatively easily on Fedora.  Pay attention to all the steps, but it works!


[General] A Journey

Late night ramblings from Flesherton

I saw photos of a friend in India.  She moved there for this past year and studied yoga and traveled.  This idea of getting up and going, independent of possessions and free of anchors really appeals to me.  I appreciate some of the courage involved to leave your comfort zone by entering a different culture, alone, with the associated risks to safety and well-being.

It's that time of life; I've been in one spot well too long.  I see people as concepts recycled across people as physical realities.  I mean, new friends have become old friends and many have left my daily life (still friends, though!) and new new friends have replaced them, but despite being different people physically, it's all very much the same conceptually; the people themselves are interchangeable.  I'm resisting routines now.  I've moved twice in a year.  The only thing really keeping me is just finishing my prolonged Masters (mere months) and ... iaido and jodo.

I've been managing stress in my life well, to the point of it being typically absent, but I've started building too many commitments, a dangerous creator of stress.  At least this time I've been good about curating them; giving up old ones (pulling back from GSETA, leaving a GRA, etc) to make room for new or more important ones (iaido!).  It would be welcome to release all the specific obligations I have from my mind and move freely again.

I'm not sure whether my friend's adventure will be my adventure, but I do want to visit India and I do like yoga.  I haven't practised it much recently; the last time being two years ago when I picked it back up after 5 years.  Why yoga?  Functionally, I find the stretching useful.  I've become a big fan of stretching since I started cycling regularly last year.  (Finally put my bicycle inside this morning!)  For many people, it's apparently spiritual.  I don't generally identify with spirituality at all, which I think sometimes creates an unfortunate chasm between myself and some of my friends.  It's unfortunate because I think we share similar experiences but I identify them differently.  It's unfortunate that the words we use to describe things can also limit our ability to engage in a thing.  That we can be easily put off from something because of associations that aren't fundamental to the thing.  I think I used to put off by yoga for that reason, though the act itself is productive.

I try to present my interests in a generally palatable way.  As a vegetarian and now as a vegan, I want to be able to present myself, the diet, and the life style in a way that won't alienate others.  That means not being adversarial, and not using exclusionary language, jargon that others can't relate to, or fixating on ideas that others can't readily subscribe to.  When I do something like yoga or tarot, I try to do the same thing; highlight the elements that people can readily accept in a palatable presentation.  You don't need to believe in harder-to-swallow spiritual beliefs to find them interesting and useful, to find meaning in them.

I've started finding meaning in everything, for the past few years.  Even bands that I once criticised or dismissed.  I used to look at things and judge them whether they were relevant or worthwhile or "missing the point" (which was quite a narrow-minded perspective as to what the "point" in life is).  Now, though, that's almost impossible to do.  Almost anything that is done has meaning, its act or existence is the result of something, of a motivation or an intent, which is based in a belief or a value, which is the result of an application of logic or the product of a feeling or of a complex combination of interacting factors.  And those are interesting.

I'm not a very articulate person.  I don't spend enough time or I'm not capable of composing my thoughts meaningfully.  Especially for blog posts.  But country music has meaning I can find.  Kung fu has meaning I can find.  (I just watched the new Karate Kid with my father and suddenly kung fu was awesome.)  Yoga has meaning I can find.  This connects with a belief I've carried for longer than I've followed it, but that when I dislike something, that's a "failure of appreciation".  It's not that the thing has nothing to appreciate about it, but that I have failed to appreciate it.  I used to use that phrase usefully with others, to sometimes persuade them that there could be a worthwhile aspect to something they disliked (like drinking tea or eating olives!) and I sometimes wondered at my hypocrisy when I would dismiss others' ideas or interests.

So, like finding a "silver lining", I like to find meaning and benefit in things, in inconvenient situations, in compromises, in strange and weird things, in things foreign to me, outside of my interests.  "Oh, you do ninjutsu?  What's it like?" rather than laughing at people for playing at being ninjas.  (Aren't I just playing at being a samurai? :D)e's

I expressed to a friend the other day that it felt like my identity becomes diluted the more prejudices I surrender.  I'm a less sharply defined person.  I'm less of a person.  It makes having excitable conversations over interests more challenging, I think.  I can't simply advocate for my own interests above others.  That's probably for the best.

So, the summation of my late night rambling:
  • I need to get a move on
  • I am compelled to journey freely through the world
  • I should resume yoga (so many things to do in life already; but can be efficiently integrated?)
  • I find it sad that words and perspectives separate people who have the same interests
  • Communication is important to share ideas and activities without alienating others
  • I think everything that is might be meaningful and interesting, at the very least because existence of something represents some information and consequences that are at least curious
  • I'm always a recovering hypocrit
  • My identity is dissolving
I need to get up and go.

a wandering tomcat

[General] Words, Culture, Feminism

I like this commercial.  I have an interest in the choice and effect of words in culture, and how it helps shape beliefs.  I see the problem this video highlights in real life.  I feel it sometimes in my instinctual reaction to people related to their gender, and want to resist that.

[Microblog] Home again

Idyllic Flesherton.  Watching the Karate Kid on Netflix with my father.


[General] Life's Pilgrimage

Remind me to talk about what Scott Pilgrim means to me some time.  In the meantime, I'll note some recent life craziness,
  • wandered the Tulgey wood
  • random trip to Niagara falls at night
  • addressed some tax stuff in my favour, giddy
  • winter walk with MW, planned for time travel
  • hung out with MC and his housemate to fix a computer (I got to disassemble every part of the laptop!)
  • hung out with SS and wandered the Bookshelf looking at pictures of old churches and bull seals
  • hung out with BF, her cat and dog, and helped with calculus homework (even a decade and I'm still a Math Wizard!)
  • hung out with BF, SR, EW, JM and Chi the cat; watched a documentary about an invasive toad in north east Australia (hilarious) and Scott Pilgrim vs the World; so many thoughts


[Technology] Android phone; remote locate, ring, lock and wipe

I remember reading that Android could now locate, ring, lock, and/or wipe lost phones using the Android Device Manager but I never tried it (or enabled the remote lock or remote wipe) until today. Triangulating my position via my cell service isn't very useful or accurate (in part due to WIND's relatively few towers, I presume) but when wifi or GPS is one, it works well. I wish I could remotely activate those, too, to get a finer lock. Sadly, nothing so exciting as losing my phone tends to happen. :'(


[Microblog] Hour of Code

US President Barack Obama wants young Americans to learn how to code. Non-Americans could probably benefit too.


[Microblog] Transient Thought

Wood finds its true purpose in Kim Taylor's hands.


[General] Opportunities

Something I'm trying to remind myself to do is to take early opportunities to do things with deadlines.  I don't just mean work and academic deadlines.  I mean domestic life too!  Here are a small list of examples
  • use the washroom; sure, you don't really need to now, but when you're an hour into iaido practise and you want to, you'll regret it
  • hydrate; sure, you're not thirst now, but when you're two hours into iaido practise, you'll regret it
  • buy toilet paper; sure, you have three rolls left still, but when you realise you're down to none, you'll regret it
  • eat; sure, you're not hungry now, but when you've been running a lab for 3 hours with no end in sight, you'll regret it
  • fold your hakama; sure, you're in a hurry and it's still got its creases now, but when you're a week from a grading and those creases are more an idea than a thing, you'll regret it
  • clip your nails; sure, they're not that long now, but when you're doing seated kata and your toe nails bend the wrong way, you'll regret it
  • visit your family and speak to your loved ones; I don't want to explain that type of regret
  • pick up soy milk; sure, you've still got some, even if you are at a supermarket right now, but in two days when your fridge is empty and you're too busy to shop, you'll regret it
  • file your taxes; well, let's hope you don't get into a situation where you'll regret it!
  • test your code; sure, it worked last week, and you've got a deadline, but once it's in production and easy-to-test-for bugs pop up, you'll regret it
  • upload and share or sor your photos; soon, it will be two years since you've gone through that mess and you'll wonder why you take any to begin with if no one sees them
  • practise seitei; sure, it's months from the next grading, but when there's four weeks to go and you realise you haven't practises seitei for a year before your nidan, you'll regret it
  • spend time with the person you love; sure, you seem them every day and you're busy right now, but when they leave you, you'll regret it!
  • record what you've learnt; sure, practise just ended and you're enjoying fries with your fellow budoka and it's late and you want to do it in the morning, but when you've forgotten that insight from the night before, you'll regret it
  • do your dishes; sure, you could just let them soak for 72 hours and you'd rather play Skyward Sword, but when your housemates start throwing them at you, you'll regret the porcelain shards in your eye
  • read the assignment outline and at least prototype it early; sure, you've two or three weeks before you need to submit your 2750 assignment, but when you've left it until two days before and you discover why the course is called the Angel of Death and that TA Richard will happily give you a 0, you'll regret it
  • brush your teeth; sure, it's almost 3AM and you have to wake up in 6 hours, but when you're in the dentist chair getting a root canal, you'll regret it
  • go for a walk; sure, you've work to do, and there'll still be nice leaves or snow or sun or cool air or fun rain tomorrow, but when it's been six months and your village stakes you for suspected vampirism, you'll regret it
Ultimately, I never really know when I'll have my next opportunity to do these things.  Do you have any tasks that you feel should be done promptly?

[Microblog] Intransient Warmth

One of my favourite students that I've TA'd a few times sent me a very beautiful message today that I'm not sure I deserve, but inspires me to live up to their perceptions. :)

[Technology] 12 Days of WaitingforFedora20

Fedora 20 is coming!  With GNOME 3.10!   On the 17th!

A friend recently had issues trying to reinstall Ubuntu a few times and has agreed to give Fedora a try.  I haven't used Ubuntu regularly in a while, but I don't have much inclination too given my affection for GNOME Shell.  I'm curious why a friend recently told me they switched from Fedora to Ubuntu and that perhaps I should be able to guess why, but I'm not sure what they were suggesting in the end?  Ah well.  To the future, where everything is GNOME!


[General] Birth

I'm delighted to note that my friend Victoria and her partner have officially spawned! (as of December 1st)


[Microblog] Transient Travel Buddies

The Third

[General] Richard: A Fiction in Progress

I never know what to write any more.

Solitary moments are useful for me.  They help me recollect myself.  In high school, I would roam the mean streets of my hometown for an hour a night, even in the worst weather, especially in the worst weather.  Walking and talking are often said to be my favourite activity.  I don't have many walkandtalk partners any more.  People are busy.  I'm busy.

Tonight I was with friends, and I abruptly decided to leave, to catch a bus home, and I ran very hard.  My willingness to run is important to me.  In a time where my identity feels fuzzier and fuzziers as old prejudices fall away and are replaced by a hollow openness, myths matter a lot.  The myth of me being olympian in my running, of the time I beat friends back to my housing complex when they were cabbing and I was running on thin ice.  Formative.  Like how Ninja Turtles determined my favourite animal, colour, career, and hobby (swinging swords and sticks).  Thanks Donatello.  So today I ran, and I ran hard, and I ran well, and all the running in the world can't account for buses departing at 23:44 instead of 23:45.   7 metres too late.

I caught another bus back to my friends, got off on their block, took a few steps, and then changed my mind.  I do it a lot.  I cause commotion in busy pathways when pedestrians are milling about by changing my mind.  I don't make good plans.  I'm not good at sticking to them.  I abruptly stop and pivot.  I spend a lot of time distracting myself with friends.  It pre-empts unhelpful thought patterns, a distraction, but a useful one.  I need more time to talk to myself calmly.

I watched locals perform at the Cornerstone, singing, wondering whether it was supposed to move me, actively letting myself feel moved, imagining their experience singing and guitaring, comparing it to memories of experiences seeing bands previously, to memories of high school, where everything was rife with meaning, when connecting with others was less perfunctory and more overwhelming and bubbly. I wonder whether I'm growing unassailable and inaccessible by the world I live in.  I steel myself against threats, against potential criticism, dismissing the critics when their mouths open, intolerant to hurt.  I think it leaves me detached.  I'm invulnerable while I remain uninvested in the going ons around me.  I've felt a lot already, more than I would have wanted.  I'm on a hiatus from feeling, and it cheats me out of my life a little.

But there is no truth to the above.  Nothing is true, everything is permitted.  I used to have a textbook understanding of truth, of reality, of objectivism.  There is an objective reality, and truth is what agrees with it.  It turns out that whatever shared reality there is is pretty irrelevant for my experience of truth.  It doesn't matter what's actually happening if everyone operates on their experience and skewed perception of that shared reality.  Side note; in computing if you write a program and the compiler gives you a warning and you don't understand why, some blame the compiler, but in reality, it's the human; a good developer should be skeptical of their own understanding of a situation, and I want that to apply to my daily life as well.  Nothing is necessarily as it seems, and some things are multiple, disjoint things at once.  So I say that I harden myself against feeling, and yet every day I am overwhelmed by feelings, I'm fragile and porous, a mighty sand castle, whose foundation is still but sand.

My truth does not reflect an objective reality anymore, but instead meaningful plausibilities.  Tell a story as accurately as you can, and perhaps that makes it true, perhaps if someone fact-checks it against hard evidence, and most of it can be verified, your recounted version is true.  Now generalise it, abstract it, replace individuals, substitute situations, but maintain the complete plausibility and likelihood of events, and the meaning of its consequences.  You're telling truth still, to me.  Attempts at precise repetition seems like vanity to me, given our woeful perception and encoding of our experiences.  But perhaps it's just how I excuse my poor performance.  Perhaps you remember things crisply without error.  Perhaps modifications dilute all meeting and erode the purpose behind life.  I can't tell because my knowledge and understanding of what happens to me is deeply flawed, so I give up to it. 

But I still must operate in the world, regardless of what's true.  I still need to reflect, try to minimise my errors, and be open to learning and relearning through my experiences.  I make decisions on what I probably know.  Confidence intervals are wide with this one.

So I walked home.  I like walking.  I like walking in the cold.  I like walking in miserable weather.  I like walking when I'm tired.  I like walking when I should hate walking.  A little attempt at contrarianism.  A little attempt to foil expectations, of others and myself.   I don't want to be classified, boxed, and shelved.  I want to exercise my freedom to live life in any way I want.

As I walked I watched my shadow and thought about the fiction of myself.  I thought about my fiction while I sat in the Cornerstone listening to the music, by myself.  I am the moody, solitary stranger, whose moods are to the public eye a sad cheerfulness.  Something pretentiously romantic, without the romance.  I sit with a straight back, a square face, my beard anchoring my expression, my hair an unintended masterpiece by my own evaluation in store windows and mirrors.  Today I have my crimson red dress shirt on (you know the one), a grey vest (rarely worn, a recent acquisition, but it actually fits), slacks, and (you may have guessed) my tail coat of consequence.  And my black wide brimmed hat.  You know those pretentious nerds you see, who walk around dramatically like Neo in a trench coat?  You know how awkward it makes you feel to see them, how your conclusion must be "This person isn't dark or mysterious like in a show, they're sad and pathetically detached from the reality they wander through."  (Ha, reality, that word again.)  That's me, I'd like to think.  The fact that I smile when I think that is indicative of my contrariness.  I'm happy to seem ridiculous to others, in mild contempt of them.  Don't box me, I say wordlessly.

So, to avoid seeming pathetic, there's always a faint smile, and hopefully never a smirk.  I sit there quietly smiling inward, while people sit all around me chattering.  For a long time I wondered if I was socially incompetent, as I'd wander singularly around the downtown while seeing so many others with others giggling and chatting.  Am I defective? is the standard question.  Two important realisations is that I too can have others to wander with if I express my interest in it.  It turns out I'm normal and nothing special; people will hang out with me as statistically likely as with someone else.  Another realisation is I enjoy being alone in a crowd.  I have my thoughts to dwell on without taxing conversation, and I feel less alone for all the fellow meat bags pounding the surrounding pavement.

So I sit there in the Cornerstone as the musician plays, accompanied by another who might be delusional and pretentious, but is clearly happy tonight, which I think is good enough to validate her delusions of grandeur and her pretentions of classiness.  If it works for you, ignore all the haters.  I sit there with my straight back, and faint smile, not registering what the musician is singing, with my hat next to me, and I skip the next bus home so I can sit out the whole evening, in the company of strangers who don't even notice the dark dressed silent stranger smiling to himself in the centre of the room with nowhere in particular to be.

I used to have more purpose, and I think about that as I walk home.  I'm walking since I stayed long enough for the bus service to end, and as I walk, Out of Service bus after Out of Service bus drives by me towards my home.  Perhaps I should try to hitch a ride.  But once I'm home, I'll just sit in front of my computer as I do now, but with no purpose, except to feed my mind certain sensations to silence it.  It's cold, there's drunk chatting with me, and my right foot feels broken for no particular reason; I'm pretty happy.  I'm happy because of everything that's wrong in the world.  Inside the church where the choral concert this night had been, I'm happy that the paint is peeling, not out of contempt, but out of acceptance that everything is continuously falling apart.   That's normal.

So I'm walking, and I know which route is most direct, and best trodden, and I take the other route.  This is not that poem.  I walk along the train tracks, of course.  And I realise what I realised earlier in the kitchen, and previously, that I make choices that don't reflect what I want or who I am, but who I think I am and who I think I want to be and who I think others think I am and who I think others think I ought to be.  I am untrue to myself to be true to an image.  And as I expressed earlier, there's no difference; I'm many things at once, I'm my pretensions/pretenses and my sincerity and my aspirations and my failings.  My mind entertains contradictory beliefs and handles that very well, thank you.

So I choose to walk on the tracks, in my costume, which serves not to emphasise me as much as to alienate me.  Others see me and I'm not someone cool they want to include in their lives, but rather some unpredictable variable that poses a threat.  But that doesn't matter, because I don't mean to be cool to them.  There's only one person I really made choices to impress, and that's only because they seemed to delight in it, so that was a Good Thing.  I've done well now to learn to do things not for the sake of others' response to me, but for the sake of the thing.  I can share a cupcake with a stranger and walk away without fishing for gratitude: I am progress!

So I do this for me.  I do this so that in another 45 years, I can be 74 and walking through the future as an anachronism, and at that point a couple people can exist who think and wonder about that weird old antique who wanders the streets. I look forward to age.  I'm resigned to my fated demise.  Let it run its course, and be glad that I lived and not sad that I die.  But for now, and forever, I do this for me, because it makes me happy to be a thing that I enjoy.  Like practising jodo with the laminate jo staff, a bit more fragile then a blank one, but very aesthetically pleasing, I do it because it looks cool to me others be damned.  I walk along the train tracks, my black wide brimmed hat on, my black tail coat tightly buttoned to keep me warm, my flashy Legend of Zelda gloves and Converse clones breaking the theme, adding the contrast and contradiction I delight in, as I walk down train tracks I've never seen before.

I like adventuring.  I like exploring.  I don't do it as often as I used to.  In New Zealand, I failed to make use of a lot of opportunities to adventure, but mostly in the conventional sense of traveling the country; I wandered those streets like a bored local though, but without the boredom.  I walk until I find graffiti.  Graffiti is almost predictable, it's the same type of thing (I've boxed it in, you see; I've clustered and classified in human vanity), and it's awesome.  It's what I would hope or expect to read, and it satisfies those expectations completely.

So this contributes to my myth.  The dark gentleman (my standards have twisted about, but the concept of gentleman still holds appeal to me) who likes anachronism, contradictions, train tracks and graffiti, who runs.  The goal of unconvention, of eccentricity, of a spectacle.  And I wonder about whether it's a waste of time or whether cultivating my own myth is valuable.  I don't think it's exceptional.  I think most people get a sense of what they are supposed to be, and they make decisions in its favour, without evaluating how applicable that sense is to themselves.

For instance, I had to pick between living in a modern house with modern amenities in a new suburb of Guelph, with all the conveniences of modern life.  Or, I could live in the ward, an old neighbourhood in Guelph, with a strange lady and the creeky floors of a decrepit century home.  I very much wanted to choose convenience, but in my continual self-definition, I chose the quaint, rustic home that promised weirdness and adventure and inconvenience.  And I can say that it was a good choice.  I've been immensely pleased with it, and it's been the best living situation I've had in years.  Making the hard choice to be who I wanted to be rather than who I am paid off.

So the myth.  I'm not a real person.  What I feel doesn't strictly matter.  What I experience is relevant to only myself, bu thanks for reading.  I wonder what fiction of me you see, and how it is that two individuals ever manage an understanding on anything.

Good night.

(P.S. if you actually read all this, I'd be happy to know; I suspect no one reads anything I write, which is liberating)

[Microblog] Transient Thought

Alone time in crowds.


[Microblog] Transient Thought

I have been in one spot for too long, I think as I take a bus down Gordon Street for the thousandth time. Time to move.


[Microblog] Patience

My thoughts are occupied by the uncertain and weighty circumstances of friends.


[Microblog] Transient Cookies

Cookies for a friend.  I only saw them for about 10 minutes before packing them all up and shipping them off.


[Technology] Permanent flux and brokenness

So Google Hangouts for Android now supports SMS and IM.  That's great.  Except for when my friend Kevin is messaging me and then half of his messages appear in one app (texts) and the other half another (IMs) indiscriminately and inconsistently.  Trying to chat with him from G+ Hangouts results in me missing random messages, since G+ Hangouts doesn't catch texts.

So, obviously, the next feature we need is letting GMail/G+ manage your texts too.  That would actually be nice, if I could send a text to any friend from my web browser.  My SwiftKey virtual keyboard on my phone is pretty great, but it's still painful have long conversations through compared to a full keyboard.

It's amusing how quickly I stop considering the privacy impact of letting all my communications be hosted remotely together in the same location.

Anyway, it's sad how people have been solving the problem of digital messaging for over thirty years and it's no better now than it was before, or it's worse.

[MIcroblog] Transient Sights

Bluejays and squirrels dancing in the trees outside my bedroom window.


[General] More amateur webdesign


Now with Richard's patented amateur web design!

The prettiest parts are for members.


[General] Veganism, vegetarian, and meat consumption

So, I almost never write about this because I don't have the time to provide well-cited research.  However, Business Insider published an article titled "7 Charts That Could Convince You To Become A Vegetarian" last month, which I finally got around to reading and thought it was a good overview of some of the concerns I have as a vegan.  I've taken some notes and listed them here.

I'll note that it's good to approach any literature on contentious subjects with some skepticism.  I'm generally skepticism of claims from those who advocate vegan diets and those who advocate for meat.  I've added some of my own comments below, bolded key words for many claims, as well as identifying BI's source where they listed it.  (They did a decent job of citing their claims.)  I don't have time to investigate potential biases in some of these claims (which I'm sure there are a few) but a lot of it seems logical and reasonable to start with.

I think I might try to list more data points that I encounter here for future reference, as I have a terrible memory, and don't like parroting the gist of something I've learned when speaking to someone very skeptical.  Much of the language below is theirs, just concise.
  • concerns on land, water scarcity; health; animal welfare (FAO: Food and Agriculture Organization of the United Nations)
  • 870 million chronically undernourished (FAO, worldhunger.org)
    • 5 million adults, 10.9 million children die from malnutrition annually
    • (food production or distribution problem?)
  • global food prices at "near record highs" and are volatile (FAO)
    • India has "dangerous inflation" (BI)
  • African continent has greatest hunger, least arable land
  • using land for cabbage instead of beef feeds 22x more people
    • (what type of land?)
    • cabbage 0.3g protein/23g, meat 3.2g protein/23g
      • cabbage "high" in Vitamin C, fiber
      • protein available through other legumes, leafy greens
      • (I'm told that the amount of protein in a typical vegan diet is still safely above the level of protein deficiency)
  • water scarcity
    • growing problem (BI)
    • 2.7 billion (40% of people) affected for 1+ months per year (waterfootprint.org)
    • meat as inefficient use of water in food production
      • 1kg beef requires 77x the water used for 1kg potatoes (International Water Management Institute)
      • pork uses 0.3x as much as beef, chicken 0.15x as much
        • (so, 23x and 11.5x as much as potatoes, then?)
  • carbon (and CO2-equivalents)
    • CO2-equivalent footprint as much higher
      • (lots of people don't care, as they don't believe in climate change)
    • 1kg of lamb 40x as much CO2e as 1kg of tomatoes
      • (example for the two extremes, if you look at the chart, lamb is the worst meat and tomatoes the 2nd best non-meat; beef and chicken are 10x and 2.5x as much as rice (2nd worst non-meat), 13.5x and 3.5x as much as tofu)
    • methane produced by livestock on farm
    • legumes (inc. soybeans) as most energy-efficient source of protein compared to vegetables and meat (American Journal of Clinical Nutrition)
    • however, vegetables require pesticides and fertilisers that harm the environment too
  • factory farming
    • common (across USA) (Food & Water Watch)
    • accusations of animal cruelty 
      • e.g. chicken beak removal (peta)
        • (I get told "You have to or they'll hurt each other!", but then again, you've trapped them in tight cages or crowded barns with no way to exist but grow fat and die; I'm not sure of removing their means of expressing themselves is the ideal solution there)
    • sources of pollution for air and water; disease
      • (were cattle the source of the e. coli in Walkerton?)
      • e.g. a large pig farm contributing to human illness (?) (dailymail.co.uk)
      • overuse of hormones and antibiotics (Food & Water Watch)
        • contribute to antibiotic-resistant bacteria (treehugger.com; hey, Hank Green's site!)
          • can pass to humans through meat consumption (really? irradiate it all!)
      • excessive pollution cases (organicconsumers.org)
    • animal density on farms increasing
  • nutrition, health
    • shows Aggregate Nutrient Density Index (Dr. Joel Fuhrman, drfuhrman.com) for foods (wholefoodsmarket.com), which considers range of micronutrients including vitamins, minerals, phytochemicals, antioxidant capacities, etc. (also protein and fiber, apparently)
      • shows vegetables, legumes, fruit, whole grains as more nutrient-rich than fish, dairy, meat, eggs, cheese, which are more nutrient rich than refined grains, oils, and sweets.
      • (potential for bias in scale's definition, perhaps?)
      • animal products as high in protein, iron, but lacking other vital nutrients
    • higher longevity for those with low meat consumption in cohort study of NAs and EUs (American Society of Clinical Nutrition)
      • long-term (17+ years) vegetarians as living 3.6 years more than short-term vegetarians 
        • (I'd like to see more granularity in such a study!)

[General] Controlling Facebook

So, I had disabled my Facebook account for two weeks, in part because it really was a regular (if small) distraction that interrupted my focus.

I really needed to communicate with someone through it today, though, so I've re-enabled it, but hope to continue to enjoy my freedom from distraction with the following actions.
  • I've blocked it on my own computer.  That helps prevent me from casually going over to it.  I can override that for when I actually need to use it, but it's a hassle, and prevents instant gratification.  I think I will check it on a weekly basis.  No more time for keeping up-to-date with the newsfeed, I guess.
  • I've removed the Facebook app from my phone, so no more omnipresence for me.
 I think Facebook is uniquely useful, but without good self-discipline, it like anything else can impede my other goals.


[General] Helping others and learning stuffs

Today I made a website for a group on campus, Guelph Queer Equality.  It's not published yet, but here's a screenshot:

As you can see, it's fabulous.  I volunteered to do this because I support their work on campus and it benefits good friends of mine.  They didn't have a website before, but wanted one, so I thought my skills could be useful to them.

I'm not brilliant at visual design, but they didn't have any website before, and what I can provide for free is (hopefully) preferable to nothing.

I enjoyed doing this because it did not take too long and was a break from my regular work (thesis, TAing, GRAing, etc).  Here are some fun things I got to play with
  • HTML Canvas.  I've poked at it a couple times before, but never really  made it far.  It felt like one of those weird things I might never quite understand.  Basically it gives you a space on your page to draw on.  You have a context that you can use to draw shapes, letters, images, etc.  In this screen shot, the name "Guelph Queer Quality" is drawn on the canvas, and the rainbow and the whitespace are drawn too.
  • Web fonts.  The header and the URLs are done in Snippet:
  • PHP.  The elements of the site that are consistent across pages are in template PHP files that get included into the primarily-content-based named pages (Updates, Events, FAQ, etc).  Also, the blog posts are actually just a feed from a Blogger blog, whose atom feed is getting parsed.
  • JavaScript and CSS.  This was used to position content in the right place, and required many calculations.
I also briefly was using neat stuff like CSS transforms but that was too much for the group. :D


[General] Peterborough and Koryu

This past weekend I went to Peterborough for a koryu seminar.  Koryu are traditional schools of iaido, of which there are many, and are distinct from ZKNR iai (called seitei), which is a standardised set of kata used for teaching and grading within the International Kendo Federation (which has iaido and jodo sections, and includes members like the Canadian Kendo Federation, which my dojo is a part of).  My dojo's line of koryu is Muso Jikiden Eishen Ryu, which is pretty popular in Canada.  Another popular one similar to Jikiden is Shinden.  Anyway, for now Peterborough.  Later I'll write a post about the seminar itself.


I have a very fond place in my heart for Peterborough, and I've acquired a few favourite locations.  This is my third time there, and this time I sought out two eateries I've visited before, the Night Kitchen; a hip pizzeria that's open until 3AM!, and the Planet vegetarian and vegan bakery.  Sadly, I never did make it to the Planet again, as their hours are a tad ridiculous (9AM-3PM on weekends, closed on Mondays, 9-4 other days), but I did make it to the Night Kitchen where I introduced friends to their flattest late night pizza.  

Speaking of food, I also had another Best Ever moment, this time at Brio Gusto, an actually classy place to eat, without ridiculous prices.  I had a veganised La Rioja, a pasta dish.  I regret not taking a photo, but it was too consuming.  The only other Best Ever dish I've had was the ratatouille at Sky Tower in Auckland.
in lieu of la rioja, a ratatouille
We also ate at the old Stone brewing company, where political conversation at our table proved offensive enough to a table of neighbouring patrons that they left.

I was getting a desperate hunger for chocolate, and recruited friends to join me on a random quest to try to find a chocolate vegan dessert, at 10:30PM, in a town small than Guelph.  Hilariously, we stumbled upon blackhoney, a delicious café open late with an affordable vegan chocolate oblivion cake.
Chocolate oblivion cake
It was magnificent.  While eating it, I noticed that someone at another table was wearing a hakama and iaidogi and, when I enquired, it turned out that they do practise iaido but actually weren't there for the seminar (!).  

[Budo] Peterborough Seminar lesson

So, the Peterborough Examinar managed to catch some awful posture of mine for posterity's sake (if sift through the photos at the top)
At least with that kata in Eishin Ryu has my opponent on the floor at that point...


[General] E-mails

I hadn't really replied to most e-mails for the past two weeks due to saturated busy-ness.  So, I just stole 2.5 hours of sleep to go back and deal with e-mail from the last two months.  Out of the almost 200 in my inbox from the past few months, I only archived half of them, but at least it doesn't say I have 40 unread ones still.

Information overload.

[General] Best Trick or Eat Ever?


[Microblog] Best brains

Just started playing Candyman by Aqua and the person next to me asked "Is that Rammstein?" Best brain ever.

[General] Life overwhelming

My life is currently perhaps overallocated.  I currently spend my time on the following things
  • Research (thesis, GRA)
  • TAing
  • Software development (GNOME, GXml)
  • Martial arts (iaido, jodo, kendo)
  • Exercise (pushups, pullups, situps, running, cycling)
  • Reading (John Green, Orson Scott Card)
  • Writing (blog entries, diary)
  • Cooking and baking (at least one meal a day; learning vegan methods)
  • Friendship
  • Nature
  • (Nintendo, anime; I don't get much if any time for this)
Things I'd like to spend time on but cannot include
  • Languages (German, Japanese, French)
  • More martial arts (Niten Ichi-ryū, jujutsu and aikido)
  • Yoga
  • Swimming, skating
  • Archery
  • Traveling and exploring (I actually do get some of this done through other things like GNOME and academia :D)
  • Writing (stories, webcomics)
  • Drawing (webcomics)
  • Software development (websites, mobile apps, games)
  • Zoology and botany (iNaturalist)
  • Wizard moot
  • Philosophy (I'd like to better understand my veganism, Discordianism)
There's so much more, too.  I am doomed to die without ever being bored (well, since I was 15).


[GNOME] GXml: This Halloween, redundant code dies

XPath, Attr, and a tale most foul
I'm working on merging Adam Ples' patch for XPath support (branch: xpath), and I notice that a test failed because they were expecting the GXmlDocument to be able to translate from an xmlAttrPtr to a GXmlAttr.  (GXmlDocument remembers a mapping between xmlNodePtrs to GXmlNodes already to avoid duplicating its proxy nodes.)  The patch's expectation is reasonable, but for a variety of reasons, most of all that xmlAttr != xmlNode (except that they sort of do), GXmlAttrs are not considered "backed nodes" (unlike the other GXmlNode types (like GXmlElement) that have an xmlNodePtr behind them) so we don't map between them (and attrs are handled more just like strings (which we need to do, because there isn't really a xmlSetPropNode in libxml2, for instance).  Also, because at one point wanted to use a more familiar GLibHashTable to store an element's mapping of attribute names to attribute values, rather than the NamedNodeMap that the W3C DOM specifies.  However, perhaps it's worth changing how things are done to support the xpath's code's reasonable assumption.

So I looked over the GXmlAttr, GXmlElement, and GXmlDocument code and realised that if I do treat xmlAttrs as xmlNodes where it's safe to do so, I could greatly simplify a lot of code.  And, also, if I do implement the NamedNodeMap for accessing an element's attributes, I could also remove a complicated kludge in GXml which currently requires synchronising elements' attributes between the GLibHashTable they've been stored in and the libxml2 structures they need to be in when doing tasks like saving to disk or stringifying a node or document.

Consequently, there's a new branch in GXml called newattr where this is happening.  Attr.vala loses 85 lines of code, Element.vala loses 127, and Document loses 38.  NamedNodeMap.vala adds 130, with a big chunk of that being a copyright notice and comments, though. :)  Overall, there's a net difference of 119 lines removed (so it's not that massive, but!), including the complexity of syncing Elements at all (needing to remember to call a method to sync each time you might want to was error prone and a delayed performance penalty), and the reduction in parallel code between GXmlAttr and other nodes.  YAY!

I'm considering offering some GLibHashTable-style convenience methods to GXmlNamedNodeMap (like lookup and size) so anyone who has to port will have an easier time (they'd just wrap get_named_item and get_length, for example).  Let me know if you have an opinion on that!

GXml going forward

The next stable release is waiting for this to happen (since it will include API breaks from the summer anyway).  Also, Owen Taylor provided useful advice to me at the conclusion of the Summer of Code that has led to much more useful documentation regarding memory handling of GXml objects, which is already in git master.  The devhelp gtkdocs that valadoc generates have some oddities that I still need to investigate, but I don't think I'll let that be a blocker.  So, if you use the latest documentation and something's unclear, let me know (by filing a bug!)

[Microblog] Winter is coming

And with it comes NaNoWriMo...


[Budo] Spot-cleaning hakama and gi

So, my iaijokendo club gets a little social and grabs snacks after practise or enjoys a good samurai anime on many a Sunday, and we don't always change before hand (well, at least not after iaido and jodo practise, but kendo... yeah), so I am embarrassed to admit that I've sometimes gotten bits of food, like faux ramen noodle starch or a slice of apple pie, on my gi and hakama. Regardless of whether you think that's respectful, it helps create a strong connection between we practitioners together with the art.

Anyway, my solution to cleaning out small food stains (even after a week if I didn't notice it before hand O_O) is... vinegar on a cloth, and rub out the stains!  It's super effective.  I usually wash my gi and hakama in a tub with some vinegar and air dry it anyway occasionally.  (The smell disappears as the vinegar evaporates.)


[Technology] Numix in GNOME

If you're a Linux user and not a fan of faux 3D beveling and flashy gradients, then I strongly recommend the Numix Project: http://numixproject.org/

In particular, I'm using their Gtk+ theme, their icons, a Firefox theme, and one of their wallpapers.

I kept Firefox open for the screenshot because I notice a striking similarity between Numix's aesthetic and Google's style new to last year, which both have squarical flat shapes and colours everywhere.  I like it.

Gtk+ Theme

Download it from the Deviant Art page linked above, and unpack it into ~/.local/share/themes/ (you can find that directory by opening the file browser, and typing in the path directly or choosing to see hidden files and folders and navigating there).  You should have a directory ~/.local/share/themes/Numix (and for ~/.local/share/themes/Numix - Gtk3.4)  now.  Then open GNOME Tweak Tool (gnome-tweak-tool, you may need to install it), go to the Themes section (you might need User Themes extension installed but I doubt it), and set GTK+ theme and Current Theme to Numix.

Icon Theme

Go to the github page linked above.  In the bottom right, there should be a "download zip" button.  Download it, and unzip it.  This should give you a folder "numix-icon-theme".  Go in there and copy the Numix folder into ~/.local/share/icons/.   Then go to GNOME Tweak Tool again and set the Icon them. Next, be delighted when opening Activities view of GNOME Shell.


Sadly, Firefox does have great support for this yet.  If set the Gtk theme to Numix, many of Firefox's widgets won't theme at all and will look like GNOME 2.0.  However, that's not so bad. You can at least spice up the tab bar by downloading the Numixy theme by visiting the above link.  Google Chrome apparently has an official Numix theme provided by the Numix Project.

Things wanted

I don't usually put too much effort into theming my environment because a lot of themes grate on me after a while, and because they're often incomplete.  They're not actively maintained.  Someone creates two hundred icons, but then stops creating new ones for new applications.  That's why the Tango project was special, good guidelines and motivated people.

It would be nice to have GNOME Shell itself be themed (I think the Numix developers are Ubuntu users though) and to have better support for Firefox.  Anyway, I'll enjoy it while I can. :)

[General] Tiny lives

Today I volunteered in the Hagen Aqualab on campus under my friend Cara.  She looks after the urchins there.  My task today was to clean the larvae!  They are adorable, microscopic, and look like this:

via Duke.edu
I called them my little Vs.

Cleaning them involved first emptying the large jars they live in using a filtered tube (so they don't get emptied out).  Then we swish the water in the jar around (to get them off the sides and pour their environment into a dish.  We then put the dish under a microscope and use pipettes to identify the "white stuff" (produced by algae in their environment) and we try to suck up all the big pieces without sucking up any of the tiny baby urchins!

This is HARD!  Good pipette control requires a little bit of practise, or you end up sucking up too much, or you end up blowing everything everywhere.  I took about 4x as long as a typical cleaner (hey, it's my first time, and I haven't worked with pipettes since high school!), but eventually I started to feel comfortable with identifying what stuff I needed to remove (I don't need to get ALL the white stuff, just the notable pieces) and how to selectively suck some up without catching larvae.  Regardless, I still went through the discard dish (that I had transferred the white stuff by pipette to) and rescued about a dozen minuscule urchins (including a few that I don't think I discarded :D). 

Anyway, then they went back into their jars (presumably with fresh water).  I poked my head at the adult urchins before running away for a meeting, but it was a great morning.
via ThinkQuest
(Note: the images above are from Google, and not from the lab, as I didn't think to photograph anything while there!)


[General] Fast, fast, fast!

I used to hate managing my photo collection with F-Spot because it initially took a long time to import and for various reason, I had to do that every few months.  I also hated that it would spontaneously crash and fail.

I've used Shotwell occasionally before.  I realised I hadn't in a while (I've been managing photos through most of the past couple years via Google+'s photo thingy, though I still have local copies), and I wanted to be able to quickly find some photos from a few months ago (and Google+ sort of sucks for quick browsing, being over a network and all).

I'm impressed that it all loaded incredibly quickly, and nothing crashed.  All 54,968 photos!  Whee!

My home on campus


[Microblog] Transient Thought

Potlucks.  It's communism for dinner.


[Technology] Vala features

Here are a few nifty vala features I did not already know.

I can run "vala foo.vala" and it apparently does "valac foo.vala; ./foo".

Also, I can have preprocessing directorives like this

"#ifdef DUCK
stdout.printf ("QUACK");
stdout.printf ("Woof");

I can't seem to use #define, but I can do
"valac -D DUCK foo.vala"
which will define the symbol.

Hooray/boo for conditional compilation!


[General] Ebony Jewelwing


It actually did go onto my hand, and onto my shoulder, and then onto C's elbow.  Hooray for iNaturalist for allowing us to ID it.  I made my first observation after having an account for N years for N>3.


[General] This is still what it means to be cool

A friend recently used the phrase "cool friends" and I was instantly fascinated by what that meant.  I've realised that coolness can be relative to your context.  In high school, it seemed to clearly mean to me the people that had the most social esteem.  But since then, there are other qualities like being confident and independent and indifferent to others opinions, to remain calm under pressure, to be your own person, to have interesting interests.

Am I cool?  Some people tell me that, but they're deluded by my additional years of life.  I think a bunch of friends are cool. My one friend is exacting and confident independent of people, and has keen interests and is a doctor.  Another friend seems really cool, who runs with wolves and canoes and dances, and runs through the wilderness, and, well, is a wolf.  Another friend is a philosopher and mines the depths of thought and feeling to interpret reality.  I know a few open source developers who are exceedingly competent and fun and they're really cool.  I know a hippy who left to travel India and live with poor people and that's super cool, too.

Coolness is weird.  It's quite diverse to me now (though there's an obvious common thread) and it's based less on specific interests (OMG YOU SWING A REAL SWORD?!) and it's way less connected to social behaviour.  I now have a ridiculous amount of 'friends' on campus, but that really doesn't make me cool.  Several people on the list are pretty quiet and maybe a little awkward, but they're definitely cool.

I like how this concept changes between people, and goes beyond the social hierarchy found in public schools. It also isn't dedicated to trend-setting musicians or edge game consoles.  I think to me it involves the amount of meaning I can perceive in someone's being, actions, etc.  I have more thoughts, but now I sleep.


[Microblog] Transient Pleasures

I was on the phone today in the yard with the sun and trees when a cat came up and starting playing with me.   Flesherton alone does not have idyllic moments.


[Microblog] Transient Thought

Change and variety are so essential to my life.  I take it for granted that everyone would want it.  I suppose it's something my friends help reinforce.


[GNOME] Final Report for GXml in the 2013 Google Summer of Code

The Google Summer of Code has ended, and GXml is spoiled with the fruits of labour:
  • the autotools build system has improved
  • documentation is more complete and more accurate
  • many new examples across most classes, especially for C and JavaScript
  • many bugs were flushed out and fixed (e.g. attribute syncing between underlying libxml2 xmlNodes and GXmlElements)
  • it has a mailing list (gxml-list@gnome.org)
  • new stuff
    • document child management, node cloning
  • new memory tests
  • new error handling model
  • new memory handling model (fixing leaks and improving performance!)
  • improved API compliance
  • bug-fix release (0.3.2) without API breaks
  • imminent 0.4.0 with API breaks (pending some updated patches for XPath, Serialization, etc)
I've talked about those before (near the start and while at GUADEC) so for my report I'm going to focus on the outcome in terms of performance.

Look forward to 0.4.0 imminently, and happy hacking.

GXml's performance versus pure libxml2

One question people have had is the difference in performance between libxml2 and GXml, since GXml currently wraps it.  Things should be worse, as there's typically more code for each operation, but how large will the penalty be and will it matter for you?


I created a simple test suite with the four following tasks:
  1. loading a file from disk
  2. loading a file from memory
  3. stringifying a document
  4. saving a document to disk
The test suite is highly modular, and it's easy to add new tests.  For each test, you define a setup function, a test function (the measured test), and a cleanup function.  So if you'd like to see anything else in particular tested, let me know.


I've run it on a Lenovo ThinkPad Twist S230u with the following configuration
  • Intel® Core™ i5-3317U CPU @ 1.70GHz × 4 
  • 4GB RAM, SODIMM DDR3 Synchronous 1333 MHz (0,8 ns)
  • 500GB HD @ 5400 RPM (HGST HTS725050A7)
    • /home, including test files
  • 24GB SSD (Samsung MZMPA024)
    • everything outside of /home, including libraries 
  • Fedora 19, x86_64
  • libxml2-2.9.1-1.fc19
  • GXml from git HEAD

Test Data

The test data was based on my updateinfo.xml files from yum, in particular the one found at: /var/cache/yum/x86_64/19/updates/gen/updateinfo.xml.  It contained 98743 different nodes over 11,136kB.  I created smaller and larger versions of it, resulting in

namenodessize (kB)
test3.xml22 2762 784
test4.xml47 7075 568
test5.xml98 74311 136
test6.xml197 48422 268
test7.xml394 96644 536
This testing could be improved by using diffferent types of files with different types of data.  Flatter ones versus deeper ones, for instance.  The different sizes were done by either duplicating the content within the root element or by deleting the second half of nodes inside the root element.  test5.xml represents the original updateinfo.xml


Three values were measured.  One was time taken to complete a task (like load a file), using g_get_monotonic_time, which reports in microseconds.  One was memory used by the task after it completed, using mallinfo, in particular the uordblks field (total allocated space), and one was memory leaks (also using mallinfo, after we freed memory).


I ran the tests once averaged over 10 trials for each combination of test and file, and then again over 25 trials.  Ways the procedure could be improved includes better isolation on the system from other processes, or providing more detail than the averaged scores, so we can detect any exceptional anomalies (e.g. some other process causes a file load to be delayed by hogging I/O).


Keep in mind that GXml wraps libxml2 for most functionality, so we don't expect it to be faster than libxml2, rather we want to see what penalty a GObject wrapper (written in Vala) causes.

Memory Leaks

GXml was leaking memory like a sieve before the summer.  (0.3.2 includes memory leak fixes without the API breaks!), so I wanted to know what memory was left after these tasks from both libxml2 and GXml.  Luckily, neither had any in the cases tested.  (That does not mean there aren't any!  Kudos to those who find them (and more to do who patch them)).


load disk
test3.xml 20814019236675841,1371
test4.xml 42604277484771521,1378
test5.xml 86151738980652171,1383
test6.xml 1722616571961260661,1385
test7.xml 3444835593922412801,1386
test3.xml 37547565131,5051
test4.xml 66747637970,9558
test5.xml 1442341610241,1164
test6.xml 2844882879111,0120
test7.xml 5614065649041,0062
load mem
test3.xml 24988568288660151,1552
test4.xml 51434229595238411,1573
test5.xml 1041920431206655881,1581
test6.xml 2083567302413307371,1583
test7.xml 3437910093915640271,1390
test3.xml 44199538601,2186
test4.xml 84215716950,8513
test5.xml 1729201847351,0683
test6.xml 3471573599091,0367
test7.xml 5726275555190,9701
test3.xml 25610245130,9572
test4.xml 52908491750,9294
test5.xml 96449983081,0193
test6.xml 1921971962951,0213
test7.xml 3843433951941,0282
test3.xml 273533931361921,1465
test4.xml 569649662877761,1038
test5.xml 11394656125928001,1051
test6.xml 22789264251855521,1051
test3.xml 22873267491,1695
test4.xml 46166545371,1813
test5.xml 932051113121,1943
test6.xml 1989882356451,1842


loading documents from disk
When it comes to loading a file from the disk, we compared xmlReadFile versus gxml_document_new_from_path (which uses xmlParseFile). 

Memory usage differences are consistently ~14% higher. 

Time-wise, on smaller files, GXml tasks up to 50% longer than using libxml2.  I'm not sure why test4.xml is miraculously lower from this run.  You can see that the larger the file, smaller the difference, which makes sense, since most of the hardwork is done by libxml2 anyway.

loading documents from memory

With memory, again, we see a consistent increase between ~14-16%.

Time-wise, again GXml oddly performs better on test4.xml.  Elsewise, we see the same trend: there is little difference with larger files.

saving to disk

We don't report memory differences because GXml's save functionality cleans up its use of xmlSaveCtxt before it exits, so we can't (easily) see how much we used.  Neither leak, so there is nothing to see there.

Time-wise, it seems to take about the same length of time, but GXml may be trending to more.  This could be due to tasks like synchronising data that is initially stored just in GXmlNodes and needs to be copied into the xmlDoc of libxml2 to make it to disk.


Memory-wise, we typically see an increase of ~10-15%.  Note that they failed to handle the stringification of the largest file, test7.xml, which requires further investigation.  Stringification was done with xmlDocDumpFormatMemory.

Time-wise, the increase was ~16-20%. 


Regarding memory usage, if you use GXml for cases such as these, you can expect around a 15% increase in memory usage.  That makes sense, as GObjects are used instead of the light C structures libxml2 typically does.  One benefit in hwrapping libxml2 is that we don't actually create a GXmlNode for every xmlNode in a document, only the ones we use, so a pure GObject implementation might use more memory.

Regarding time usage, the difference for some operations is small, a couple percent, and for others, the difference is larger with smaller files, as big as 50% when loading a smaller file.  Larger files in those cases (such as loading documents) see less and less of a penalty.

I feel as though for many common applications, these don't represent a significant penalty (time taken in loading large documents is still a few dozen milliseconds), and can be worth the benefits in using a GObject API.

Going forward

If you're interested in more about GXml's performance, the test suite will be in gxml/tests/performance/.  Feel free to submit new tests and test files.

Regarding GXml, HEAD will be pushed out in a new feature release including the API changes, fancy new features, and contributions from others, including Daniel Espinosa, Adam Ples, Simon Reimer, and others.



#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 fonts 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 webfonts 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 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 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