2008-05-24

From the 19th

Life

Pending

Harbour seals are what we saw from within that kayak. Purple starfish below. A jellyfish. Rocks that rise up from below to rip us apart. The sun. Geological and oceanic history. Milk chocolate Aero bar air pockets from the crunched-off rock face. Deer in the garden, banging on the fence. Sailboats sitting nicely in the sunset. A quiche, olives, egg salad sandwiches. The latter two once made me go "Yuck" but Michelle has mystic Montrealer powers to invert that reaction. Fritz and his fatal follies, welcome weeds and relatively economical ice cream.

It's partway stressful, partway calming to visit Pender Island and my girlfriend's grandparents (and sometimes uncle). Conversation does not flow so finely as among my own age group. But people can still marvel at eyeing the eye from withincomraderie the focal range of the concave speaker. Some opinions are out-moded and bite at the senses. I suppose it isn't easy sticking to the latest thinking fashions when you're isolated on an island. But are you? CBC radio plays podcasts on the Creative Commons. What a wild ride! Planet Earth plays on CBC in the evenings, what marvels! Wi-fi waves squeak between the floor boards and aromatise the first floor. As long as people thrive, it will be hard to isolate yourself on this planet :)

Oh, by the way, I don't really believing in so strong a segregation between this animal species and the rest of them - I hope that was clear.

And here I am, the environment I am paying attention to are a bunch of elemental right-angled divs with a flat solids of the coloured variety. Orange without(?) the cancer.

Discomfort and the Retreat

I retreat more from potentially uncomfortable situations. I used to be emboldened by them. Stand loud and stand proud. It was easier in Guelph, in Flesherton. Fewer consequences, perhaps? Now I'm wary, of what I know not. Perhaps I am descending into madness and paranoia :) Not really. I think that, perhaps, there are just too many people around and many fewer restrictions protecting me from them. I have to protect myself in a town full of freedom. Foolishness leaves me open as a target, I think I fear. How foolish s that!

Tim Tams and associated Edibles

I continue to be amazed at our ability to hunt down the inexpensive. We finally discovered a sane supplier of pitas. 1.09, 1.79! No more will we balk at the 4s and 5s we witness near everywhere else. Oh me, oh my! We had hummus (not humus, BoFIIers) again! And a jar of olives! I don't think the olives were the greatest deal (coming from SuperValu) but it was good to have them again. A little luxury to relax? How much relaxing can I afford? A lot of debt to repay right now. NOTE TO SELF: notify OSAP that I am taking a DE course :D.

I never thought I'd find crêpes as fast food, but low and behold, three Cafe Crêpe Expresses across a 3-block stretch! And, dun dun dun, we finally hit the recipe book down here! Onions, potatoes, and egg, oh my. I think I liked it more the second time around, at that. I need another cherry.

Oh, addendum: cheap cheese was secured! Well, relatively "cheap". Big bricks for $7. Almost an Ontario price, but just over half the BC fare. That and milk are proving difficult to secure at reasonable costs. I mean, I thought 4L of milk was expensive in Ontario: they won't even it sell it in such quantities here! Glass bottles are a pleasantry, at least.

Adventures ho!

I have only been writing about a fraction of the joy I've found out here. I wish I could show you all the late night view. There's so much to say and do, and I naively continue to believe I will fit it all in :) Mwahaha. Let me just get a day to set up my photo stream, eh? But even that will fair to capture Pascal, the non-hostile hosteller and pizza Subway champion.

I wonder what friendship will be like out here. There are few at my work who are quite my age, or share my Open Source aspirations. I don't have the fortune of fellow co-ops for auto-camaraderie. There are the pre-installed type, Ruth and Aidha. However, the former's a bit put out and doesn't seem very social, while the latter is too enveloped by the awesomeness of grad-osity at present. Fortunately for me, my girlfriend precludes the Old Anxieties with ease and agility unknown to mere mortals. I hope her home planet doesn't try to retrieve her.

Well, now to go on this righteous day for a walk to meet her and see the surrounding sites and sights. Maybe we can climb a mountain, too.

Labels: , , , , , , , , , , ,

8 bookmarks

More updates!

New Zealand

For those unaware, my NZ plans are on indefinite hold. The supervisor I wanted cannot accept me for the next year, I am not eligible for most forms of financial support for International students, international tuition is prohibitive, I feel I don't know enough about the field, and my girlfriend is also now considering UBC. Also, I found something a little closer by ...

Employment

Hello working world! I am now gainfully employed by a company that develops software for brokerage firms. I get to use an esoteric platform which I might never use again, but which is very effective at database access and manipulation.

One neat thing about the position is I get to take note of a lot of differences between the proprietary and open source worlds. The platform lacks a lot of niceties I find in the Open Source world. There are strange limits to characters, software used to get around feels limited, shared drives?! While the software that we develop and ship seems to be managed well, we of course use a lot of packages in our work that I can only describe as unmanaged. I can imagine, in an open source environment, someone regularly updating one metapackage that depends upon all the real packages we need to work, and we just install that to set-up. Also, from a Getting Thinds Done perspective (not related to the book/website/philosophy of the same title), I wonder why companies go with proprietary Unix rather than Linux. I have yet to access a Unix that didn't feel combersome, lacking, and limited. And it's not just that I'm more familiar with Linux-based systems. One prominent example would be the shell. Maybe it is more that that adminstrators don't bother supplying useful defaults? I don't know. Perhaps we use a proprietary Unix because the platform doesn't support Linuxes.

The Platform

Now this is pleasant. I generally dislike custom SQL languages, like PL/SQL. And this is somewhat like it. Especially in its "I look horribly ugly and no one has bothered to love me" kind of style. However, its capabilities are swell. How oft I have wanted to create an arbitrary, temporary table to stuff in a bunch of related data (records) into a double array of varying-typed data. Perhaps there are simple systems to achieve this in C and Java, but I have yet to find them. As well, I dislike heavily having DB access constructs stuck inside /strings/ that go unchecked until runtime! Clumsy and lousy! Give me support for the DB in the language, please! This is a reason why, despite not really caring about C#, I enjoy LINQ :)

I wonder what things I will discover as my ignorance shrinks?

C++, Perl, and JavaScript

I still think C++ is a terribly ugly language, but at the local Value Village, I recently acquired three books, one of them is O'Reilly's "Practical C++ Programming". I might as well be decent at it, even if it is ugly. Who knows when I'll have to use it for something important. The other two books are JavaScript: The Definitive Guide, and Learning Perl. I previously had the luxury of access to O'Reilly's Perl Cookbook. I think my Perl skills, despite regular use, have actually waned a little since then. Read more, Richard, read more!

Duplicity

I haven't done much programming on this in a while. 2 weeks, since jobness began to interfere. I must allocate more time before I lose where I was :(

Life stuff

Coming in a following post!

Labels: , , , , , , , ,

2008-05-12

Aha. The reason why Firefox's UI blocks: fsync.

2008-05-11

BackTrack3 lilo bootloader issues and a solution

A friend of a friend recently tried to install BackTrack 3 from a LiveCD. It's based on Slackware Linux, apparently. He ran into some issues I helped him solve, and I thought I would reproduce the problem and solution here in hopes that it might help someone else.

He had run the LiveCD, run through the Install as he thought he should, but was hoping for a dual-boot. This was apparently causing him issues (that perhaps a sole BT3 installation would avoid?

After running the installer, and having the distribution installed to his new Linux partition (in this case, /dev/sda4; /dev/sda1 was Windows, and 2 and 3 were for swap and something else), he encountered the following when trying to install a bootloader using lilo.

bt etc # lilo
Fatal: creat /boot/map~: Read-only file system

The issue here seems to have been that his mounted root file system is on the LiveCD. This makes it non-readable, and also means it's not the file system he wants to be installing the boot loader in.

solution 1:

lilo -r /mnt/sda4

This makes lilo use /mnt/sda4 as its root directory (yay, chroot). This is important, because /mnt/sda4 is mounted to /dev/sda4 where his actual on-disk BT3 installation is.

Unfortunately, there's another problem.

bt etc # lilo -r /mnt/sda4
Warning: LBA32 addressing assumed 
Fatal: raid_setup: stat("aufs")

We were find with the LBA32 addressing being assumed, but how did RAID concern his laptop? And why another union FS? Apparently his "boot=" line in his lilo.conf referred to aufs, so he changed it to refer to /dev/sda instead. That didn't help:

bt etc # lilo -r /mnt/sda4
Warning: LBA32 addressing assumed 
Fatal: raid_setup: stat("/dev/sda")

Eventually, it occurred to me that dev/ inside /mnt/sda4/ wouldn't be populated with anything, now that it's dynamically populated (I think). However, /dev/ in the LiveCD environment was. After some googling, this was done:

# mount --bind /dev /mnt/sda4/dev
# mount -t proc proc /mnt/sda4/proc

I'm not sure about the necessity of mounting the proc, but we definitely needed to dev to be populated on sda4. After doing this, `lilo -r /mnt/sda4` was successful. Yay.

summary

If you're having issues installing a bootloader for your dual-boot BackTrack3 installation, and are getting either of the following two errors, try the following command sequence (replacing sda4 with your target partition).

error 1
Fatal: creat /boot/map~: Read-only file system
error 2
Fatal: raid_setup: stat("aufs")
Fatal: raid_setup: stat("/dev/sda")
solution
# mount --bind /dev /mnt/sda4/dev
# mount -t proc proc /mnt/sda4/proc
# lilo -r /mnt/sda4

And you might have to set the line "boot=/dev/sda" in lilo.conf.

If this helps anyone, please let me know. If you seem to have the same problem and this doesn't help, then really please let me know. I don't want useless instructions remaining useless forever.

Labels: , , ,

2008-05-10

fatal optimism

I frequently get really stupid, really optimistic ideas about what's possible. I still think it should be able for a single individual to write an entire operating system in good time, if they thoughtfully approach it, and spend most of their time to developing methods to reduce work elsewhere. Defining new languages, libraries, toolkits, etc. All very small, all very generative. Of course this is foolishness. Ah well.

I have just been reading again on closures, polyglot programming, and the evils of large code bases. It makes me hungry to try Vala again.

Labels: ,

RMI and ClassNotFoundException

<DuplicityServer>.localBind(): RemoteException occurred in server thread; nested exception is: 
 java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
 java.lang.ClassNotFoundException: org.kosmokaryote.Duplicity.DuplicityServerRI

So, I reckoned that this had something to do with either the Remote interface not being public, or a classpath issue. I think it has turned out to be a classpath issue that I didn't really expect, but probably should have. Ultimately, it came down to where I was starting rmiregistry from, which I really did not expect. Starting it at the base of my package meant it had my package neatly present in its classpath. However, I was doing it in its parent directory. Boo. Error fixed!

Labels: ,

2008-05-08

Duplicity

The map descriptor loader now works, and works well. Yay. It took longer than I had hoped, but so has everything else so far. It also showed some major weaknesses in the design of my system :) I think I have two many two-way relationships. Objects contained in another object have references to their container, and I think this might ultimately prove undesirable in quite a few cases. Ah well.

The underlying logic seems to be mostly done now. Everything compile cleanly still. The few tests I have are passing. I need more tests! Apparently Donald Knuth isn't fond of Unit Testing, but I think I have a use for it :| I lack the experience to be very sure of my code, especially given its many evolutions. I hope I will be able to make a release with a text UI soon. I would like to have something of note to point to on my resume as I carry on my job search.

Labels:

2008-05-05

Update the Great

Virtual Jobs

My memory will work against me. I learnt many principles and their definitions throughout University. While I have integrated most of the principles (I hope) and can apply them as necessary, my ability to associate specific terms with appropriate definitions is questionable. I just had a phone interview with a job that asked me to explain a few concepts that I remember learning but couldn't recall what they refer to. In hindsight, I did know a couple, and I could properly define one of them now and could have defined the other then if I had a few moments to compose myself. A couple other ones I have had to look-up again. They concerned databases, and the principles that underly them are intuitive to me. I need to keep up better on my terminology, but I do not know how. Perhaps read more technical books? I suppose I should have my father mail me more of my textbooks :)

Virtual Play

I started work on a Java project called Duplicity for now. It's proving very fun, but it would be simpler if I could do something like this:

class CatOwner {
  ...
  public ArrayList getPets() {
    ArrayList cats = this.getCats();
    return cats;
  }
}
class Cat extends Animal {
  ...
}

However, I cannot convert a collection with a type into a similar collection of its supertype. It seems as though I logically should. Any Cat is also an animal, so why can an ArrayList of Cats not be known as an ArrayList of Animals. I am sure there is a good reason and I'm bound to find it eventually, but right now it's a nuisance.

Physical Location

I have migrated to Vancouver! My girlfriend and I departed Ontario on the 23rd via Greyhound and arrived in BC on the morning of the 26th. It was a spectacular drive. In summary, Winnipeg is sexy, Medicine Hat is funky, and Canmore is cool. Have you heard of the Legend of White River? If you're ever there and that awkward boy dances desperately before you, it's his method of speech and sustenance. Aid him! Most of my photos are spectacularly blurred or spotted (through the dirty Greyhound windows), but I intend on uploading a large amount to Picasa Web once I can afford a decent account.

We spent the first little while in Victoria among my sisters and my nephews. They are nearly 10 or 7 months old now (born 3 months early, so I say 7, going from when they should have come out). I don't get along very well with the younger of my two sisters, and her dog less, so it might be a good thing that I am aiming to gain employment in Vancouver. We are there now, borrowing my girlfriend's uncle's apartment for the month of May. It's situated downtown and on the 19th story. I am spoiled.

We've been trying to walk most places, including from Granville Island to Stanley Park. It's a blast. The weather has been fair and sometimes welcoming. The shops are all very neat. One bad thing that I'll discuss more upon below are the food prices, though.

Fan club

I am pretending I have a fan club. An acquaintance and a friend have moved to Vancouver, and another friend from Ontario has gone to BC to Vancouver Island, hoping to work on an organic farm. It's nice knowing other humans in the area.

I wonder, if I ever manage to accomplish all the things I hope to, whether I really will have a fan club, in the sense that the GNOME developers have fans like me. That aloof respect and admiration. Shock and confusion when someone criticises them. Hmm. ^_^

The Cost of Eating

Food prices here seem on average to be 25-50% greater than in Ontario. A 700g brick of cheese averages out at around $13 in most of the larger stores I've been into, while in Ontario I found it pricey at $9. Milk is sometimes cheaper, but we have a hard time finding 4L of organic milk. We're going to soy this week. The cheapest source of our vitals has proven to be Chinatown, and definitely not Granville Island. However, upon our wandering walks, we discovered a number of smaller shops that had the odd item at much better prices. We thought through most of the day that we had triumphed with Strawberries, 2 for $4! But before the day's end, we found 3 for $5.

In consequence, we are now cataloguing prices we encounter and tabulating them in a spreadsheet. We're doing it via Google Docs, and we if we can find any other suckers^wfriends to contribute, we'll share it with them as well. I feel almost certain that such a website must exist for Canadians (I know of one for the US) but I cannot find it yet. Hmm.

Labels: , , , , , , , , ,