Broken Water Pipe

Had a bit of excitement on the way home, today. As I was walking home from the bus stop, after work, I noticed a lot of muddy water bubbling up from the street. A water pipe had broke. I must have just caught it in the early stages. Went home, my mom had already contacted the municipality, and went out later to check on it. The bubbling puddle had become a lake. Some neighbours were directing traffic around the hole initially, and then eventually telling people to take the long way around. We couldn’t use our water for a while, and now it’s a little brown, but at least we can use it!! Just don’t plan on drinking it for a while. Hours later, people are still working on it. Not quite sure what the status is.

Lake Strathcona

Driving across the lake

New Digital Camera: Canon PowerShot D10

(photos below)

My beloved Canon IXY (ELPH) digital camera has finally (mostly) died, thanks to me putting it in a bag that had falsely secure liquids. (It got beer on it and now it behaves very strange and lacks some features, such as playback.) Oops. Anyway, I don’t like having to be so careful with my camera; it interferes with my lifestyle. So, a logical choice for my next camera would be… a waterproof camera? 🙂 And since I know I like Canon cameras already, a waterproof Canon would be great! Luckily, Canon released their first waterproof camera, this year.

I’ve had the Canon PowerShot D10 (youtube, dpreview, dpreview group test) for 2 weeks now and taken over 100 photos. The interface and features are a nice refinement over my old Canon camera, but there are a few notable things that irritate me. It’s a little larger and heavier than I would like for a point-and-shoot; most importantly, I can’t put it in my pocket. 🙁 It lacks HD video, which I would love and is common for digital cameras this size and price point. It seems to select a rather high ISO setting, compared to my IXY, when on Auto and in lower-light situations – I’m not sure if that’s a bad thing or not, but I have to get used to it. And, of course, making a camera waterproof puts some restrictions on the physical interface: no sliders, no knobs or dials… just buttons. But overall, I have tested it indoors and outdoors in different lighting, in the pool, the ocean, and the rain, and it seems to work pretty good. It turns on really quickly, and the battery life is fantastic (it’s just started flashing for the first time, and I’ve taken a lot of video, as well). In addition to being waterproof to 10 metres, it’s shock resistant and cold-resistant, so I will definitely be using it on the mountain, this ski season. It’s certainly not perfect, but I think I’m going to keep it. 🙂

Here are a selection of photos taken with it:

Kitchenware and Shopping!

Last Friday, I had no plans and decided to do a little shopping at Pacific Centre before leaving downtown Vancouver. I wasn’t really looking for anything special, just looking to see if I could find any sales or see anything I “simply must have.” (I was bored and didn’t feel like going home quite yet.) When I entered Sears, I headed straight to the men’s clothing section, on the bottom floor. Lots of sales, so I bought a few shirts. And when I asked the cashier if she knew when the jeans would be on sale, she told me she just took the sign down – they’re on sale, right now! Alright then! Picked up a couple pairs of jeans for 40% off, as well! Sweet. Nothing like clothes that fit and are on sale. 🙂

Next stop: Kitchenware, top floor

I’ve been looking at cookware and knives, recently, so they’re a bit of a personal weakness.
There was a sales person setting up signs for a sale starting Saturday: 50% off all cookware sets. Well! I really had to look around, didn’t I!? Most sets are originally $400-800, so 50% is $200-400. Not bad, not bad. But I found an 8pc Kenmore Elite set that I was really impressed with. There were only 2 boxes left, and the price was $160. If this set was also 50% off, I was going to pay the $80 and walk out of there with it that night. I asked a sales associate, and he said it was already at a clearance price, but brought it to the cashier to check – it didn’t register a price when it was scanned and he said she was “too chicken” to ring it through at 50% without a manager’s approval. Okay, alright. No biggie, I don’t need a pot set, right now. I put it back, but I was still thinking about it at the $160.

Knives and knife sets were also 20% off and lots of other things were on sale, so I picked up a great little Lagostina chef’s pan (originally $65) for $20, and a couple of cheap-ish knives: a Roscan 8″ Chef Knife and a Henckel Santoku. I had honestly bought quite enough that day and was very happy with my purchases. But when I got home, I checked my receipts and I had only received a discount for one of the knives. I had to go back… and when I did, I could check on the pot set again. 🙂

The next day, after meeting friends for dimsum (which I totally thought was Sunday!! Sorry…), I went back to Sears to check on those pots and get a few dollars back on my knives. As I entered, I was given a Scratch-N-Save card: 10-50% off whatever I buy, but I have to scratch it at the cashier. Obviously, odds are pretty high for the 10% and ridiculously low for 50%… but this applied to all regular and sale-priced items. Anyway, everyone just assumes they have a 10%, so whatever they get is an at an additional 10% discount. I wasn’t planning on buying anything, unless those pots were 50%…. That’s the first thing I checked. Nope. The $160 price tag was already a clearance price – they’re cancelling this line for some reason, and there was only 2 boxes left there. Not surprised in the least ($160 was still a really good deal), I took my receipt to get the rebate on the knives. The cashier took both knives back and applied my 10% scratch-n-save. Cool. I guess I was done. But I had the car… I almost felt obliged to get something, or at least give another look. So I did. And I decided on a $30 salad spinner (I hated the salad spinner we used at home) and took it to the till.

When it was my turn, I was offered another scratch-n-save and told to “pick a lucky one.” So I selected one from the fan of cards the cashier had made for me and pulled my Visa card out as she scratched it. No, wait…. is that… 50%?! WHAT?! It was funny, everybody around me got really excited asking me to buy their items… there aren’t many of these. They announce this shit over the PA. Of course, it’s an absolute WASTE on a $30 salad spinner… so I asked, “Um… Can I go grab something else…?” She replied, “Well, we’re not supposed to let you do that, but if you know what it is and it’s nearby…. I guess so.” I quickly hopped over and grabbed the $160 pot set and brought it back, totally elated. Fate? I think so. I felt so good I made a small donation to the boys and girls club. Hah. Am I really that shallow?

Now here’s the question you’re thinking: Steve, why didn’t you get an $800 set that was on sale for $400, for $200? You know, I had a tiny sense of regret shortly after I bought them, but I brushed that off quickly. Think of all the things that came together for me to get the pot set I wanted for the price I wanted. I didn’t get full discount on my knives, had to come back. I was late for meeting my friends for dim sum (was delicious), so I borrowed my mom’s car. The people I let ahead of me in the line. The time I took. The visitor parking at my friend’s being full and making me decide to leave early – and maybe having time to drop by Pacific Centre. The fact that I had the car encouraging me to buy the salad spinner. The clerk fanning out a selection of discount cards, and me picking the right one. Seriously amazing. True, I didn’t save HUGE, but the way everything fell together … I still get giddy thinking about it. Those pots would not let me leave without them! 😀 So that day, I walked out with a 8pc pot set and a salad spinner, made a small donation, and paid tax for barely over $100!

That was Saturday. I kept telling my mom if she needed anything, she should at least go look. So she did. Sunday. My mom picked up the same Lagostina chef’s pan I had (75% off). I tagged along, figuring my shopping was long done. It wasn’t. *sigh* I ended up buying a cutting board and 2 new pillows (half price). Scratch-and-save discounts on these were 15%, because the store was dead and the cashier was younger and scratched a couple herself on my behalf. 🙂

Next up on the to-buy list is a replacement digital camera (mine’s totally busted), and an HD TV. If you see any deals, let me know. 🙂

Hi. My name is Steve. I’m a sucker for sales.

(I’ve since used the sauté pan from the set, and I absolutely love it.)

Dinner: Sautéed Salmon

Sauteed Salmon and Asparagus

Eager to use some new kitchenware I bought over the weekend (a post in itself, perhaps), I made dinner last night. Along with the salmon, I stir-fried veggies & rice and attempted a simple white sauce using a white wine reduction. All things considered, it went pretty well. The biggest problem was that the salmon was too dry by the time we ate: I shouldn’t have fully cooked it, because it became a bit overcooked while staying “warm” in the oven waiting for me to finish the rest. I used a single sauté pan because I wanted the flavours of everything in the reduction/sauce – so I should have planned better. I also think I used a bit too much oil. I had never tried making a white sauce or a reduction before, but they turned out quite decent. The red onions used as garnish on top of the salmon were also sautéed in a little white wine, making them sweet. The sauce ended up compensating for the dry salmon. I had a decent lunch today. And it was pretty low carb, too! 😀

I like my new pots. And knives. Cooking’s fun. 🙂

Canadian Income Tax 2009

If you have any trouble understanding how income tax works or is calculated, play around on this webpage and see if it helps you. (It probably won’t, but you might have fun not learning anything!) It lets you dynamically compare different income taxes within Canada using a pretty graph and it lets you calculate your own (simplified) tax results, whether your income is salary or hourly based.

canitax

Why Did I do this?

I didn’t do my taxes; an accountant did. But when I was reading about them, I stumbled upon a couple webpages and became interested in the differences among the provinces and territories within Canada and
different income ranges. That’s what started this mini Javascript project.

This is not a work of art

I wrote it mostly on the bus using my recently acquired Dell Mini 12 netbook (on Windows XP… ew). And from that experience, I can firmly say that writing even very simple things, it’s good to have a fair amount of time set aside in a relaxed environment. I would write a couple things here and there for 20 minutes or so… then not look at it again for a few days… it took me 5 minutes to figure out what I wanted to do the next time I opened it. The only times I made significant progress was when I sat down for more than an hour. The code wasn’t really designed, it was just… written. It’s messy, there’s lots of hard-coding, poorly named fields and variables (didn’t help with figuring out what I was doing last time), and if it were anything serious, I’d rewrite large chunks of it. And make it prettier. But as it stands, it’s just kinda fun. 🙂

In addition to being curious about the taxes in Canada, I was also interested in trying a javascript graphing library. I had been impressed with different javascript-generated graphs on the web and wondered how difficult they were to create. I used FLOT (with lots of copying and pasting from examples), and it seemed to work alright, but it depends on JQuery, which I wasn’t familiar with. Actually, I’m still not very familiar with it… and wrote almost everything in regular javascript. I know it’s worth learning, but I guess I’ll save
that for another time. 🙂

Let me know of any errors in tax calculation.. or code design, for that matter. There’s lots of those, but I’m sure I’m not aware of all of them! hah.

(I’ve been sitting on this post for about 2 months now. hah! Figured I might as well publish it.)

Monthly Expenses?

I try to make all my purchases on credit card. This lets me easily review all my expenses each month, or at any time using online banking. (wooh, technology). So for my last statement, I downloaded it as a spreadsheet, did some grouping, and made a chart. I had to pull in some data from my debit card statement, as well, which wasn’t so accommodating (no CSV download), but I managed.

Monthly expenses: mid-April - mid-May 2009

Monthly expenses: mid-April - mid-May 2009

The three categories at the top with a bold line around them are pretty static and not going to change much in the immediate future: rent, bus, and phone. The three categories at the bottom with grey outlines were exceptional and help make this month a more expensive one: a trip to whistler (all expenses, including eating out, hotel, etc), some clothes (which I don’t buy often), and a new computer. These make up more than half of my month’s expenses. The rest of it is the interesting stuff. Eating out and liquor account for the greatest remaining expenses…. and eating out includes drinking out, whereas liquor is basically for drinking in – so already I could drastically reduce my expenses by drinking in more and drinking out less, right? 😀 (I don’t see drinking out decreasing drastically, any time soon, however….)

Food is miscellaneous groceries I’ve bought, and is very small because I live at home and don’t generally buy groceries. For that same reason, my rent should actually be half of what it is, but I plan on paying at least double, for the time being. I find it funny that coffee (when I buy a coffee and or any muffin or baked good) has its own slice of the pie – but not unexpected. Because I don’t have a car, gas is ridiculously small, but I like to replace what I use when I borrow my mom’s car.

For me, it will be interesting to see what changes next month. 🙂 And who knows, at this rate, that might be the next time I blog! haha. ^_^;;

Oh, and I’ll be going to EAT!Vancouver, this weekend. I might even attend multiple days. I went last year and enjoyed it. It’s a barrage of samples and people trying to sell you stuff… and it’s where I tried and bought my RADA cutlery, which I like quite a bit. Thinking I might get a tomato knife or something. It’s only $12. If you’re looking for something to do this weekend, give me a shout. 😉

Tuna Teasers

We have a potluck lunch in the office, tomorrow, so I did something I never do: bake. 😮 I know, I know. Anyway, I decided on these things called Tuna Teasers – I remember enjoying when my mom had made them. Then I looked at the recipe. My god, was it simple! And quick! It’s from a recipe book called Fast and Fantastic, so I guess it holds true, in this case. 🙂 Here’s the recipe:

Tuna Teasers

Ingredients

  • 1 c flour (I used whole wheat flour)
  • 1 1/2 tsp baking powder
  • 1 tsp onion salt (I substituted with onion flakes)
  • 1/2 tsp curry powder
  • dash of cayenne pepper
  • 1/4 c butter
  • 1/2 c milk
  • 1 can flaked tuna fish, drained
  • 1 c shredded cheddar cheese
  • 1 tbsp finely minced green pepper (I substituted with green onion)

Instructions

Preheat oven to 450F (230C). Combine first 5 ingredients. Cut in butter until mixture resembles fine crumbs. Add milk and stir until blended. Add last 3 ingredients. Mix well. Drop by tablespoonfuls onto lightly greased baking sheet. Bake for 10-15 minutes or until golden brown.

Makes 36 small puffs. About 15 medium sized.

File List Applet – now with more autotools!

I decided that before I did any more work on the applet, I would improve its installation process to make it easier for people to try it out. So, the process to get and build the source now looks like this:

Download

  • Browse source here.
  • Download the source: bzr branch http://stevenbrown.ca/src/FileListApplet

Install

  1. Install dependencies (Ubuntu package names given): sudo apt-get install python-xdg python-gnome2-desktop python-gtk2 python-pyinotify
  2. Branch the source using the bzr command, above.
  3. cd into the directory.
  4. ./configure --prefix=/usr (the prefix is important!)
  5. make
  6. sudo make install
  7. If the applet does not show up in your Add to Panel menu, try restarting the bonobo-activation-server: killall bonobo-activation-server.

Autotools

Autotools is pretty much the standard in source package management on linux. Except for the name, there is nothing automatic about autotools. Every encounter I’ve had with autotools has usually defeated me and left me frustrated and leaving whatever I was working on to do something else. For me, because I had labeled it the next step, it basically stalled the entire project for a while. Most people tend to copy and paste other projects’ autotools setup, but I figured that was overkill for my purposes and I didn’t find anything that quite suited me. I looked at gnome-blog, but it seemed like some stuff wasn’t quite working properly and some was completely unnecessary… in fact, this seemed to be a trend when looking at the autotools stuff in projects. Why is this? Autotools is not simple and due to this simple fact, I think it fails completely on many levels. Developers massage it enough to get it working, but few actually understand it all – I know I sure don’t! So please forgive the sloppiness and feel free to send patches. 🙂 I gave up doing a couple things, like getting the revision number (bzr revno) and including it in the version string (see configure.ac). I know it’s probably something super simple, but I couldn’t seem to pass a variable containing a string as the version….

I feel that GNOME, as a platform for development, could seriously benefit from some kind of frontend to autotools that handled GNOME development nicely and hid as much as possible from the developer (including all those nasty config files that pollute the package tree). Anyway, I did not have an enjoyable time grappling with autotools, but I’ll end this mini-rant here.

Laptop’s New Life

My laptop has had its fair share of problems, mostly because it’s aging; I bought it nearly 6 years ago!! I’m actually impressed it’s aged so well! A few days ago, the display started to flicker with increasing frequency and become distorted shortly after turning it on. Here’s a video showing the problem: (Warning: contains a little bad language – woops…)

(Link to video here if embedded object doesn’t show up.)

Last night, I took it apart and tried wiggling every LCD-related wire I could find, hoping to affect the display’s output and conclude it was a fixable loose connection.

Laptop in Pieces

Nope. Fine. Who needs a screen anyway?

Screenless Laptop

I now have a very compact desktop – it even includes wireless, keyboard, mouse and speakers! It just needs a monitor. I haven’t decided whether I will make it a pseudo media PC to stream things from my desktop to the TV (a little work), or just to have it replace the family computer (almost no work!). The family usually gets my computer hand-me-downs. 🙂

Anyway, looks like I’ll need a new laptop sometime soon. I vowed to go smaller with my next laptop, but I’m not sure if a netbook would suffice. Of course, I would like it to run Linux (Ubuntu?), have long battery life, reasonable storage, support WPA2, have a built-in 1.3MP camera, and all that good stuff. Bluetooth would be nice, too. Let me know if you have any suggestions.

Reading – XP and Design Patterns

I got a few books out from the library, recently, which I’ve been reading on the bus. I’m currently alternating between Extreme Programming Explained: Embrace Change and The Joy of Patterns: Using Patterns for Enterprise Development. I wish I had read the XP book before being project manager for my Software Engineering project at University, a couple years ago. But perhaps having gone through that experience allows me to relate to the material more directly. It’s easy to read and the author, Kent Beck (one of the fathers of XP), identifies the reasons behind the development methodology, and the problems they help solve. I’ve always had this feeling of agreement with XP practices, many of which seem like common sense, but haven’t always been able to articulate the reasons. Thankfully, the author does not have this problem. 🙂 I’m about 50 pages in, and it’s quite good, so far.

I picked up the Design Patterns book because the one I wanted, Design Patterns: Elements of Reusable Object-Oriented Software, wasn’t there. (The library has 3 copies of it, but it’s always out with a wait-list of people requesting it. This list now includes me. 🙂 ) Anyway, the one I picked up is extremely terse. There are UML diagrams provided, sample code, and a problem description… but not much in way of explanation. It’s format is kind of like this: there’s this problem, how do we address it? Boom, here’s a pattern. Boom, here’s a diagram. Done. Next. Or… but we could improve on this pattern with this other pattern. Boom, another diagram. Why? Figure it out.

This book is fine if you’ve been exposed to the patterns previously, and need a refresher, but it is not a good source to learn from. I’m familiar with some of the patterns, but even then, they may be called something different, or implemented slightly different, and it’s been a while, so it takes me longer to understand than if there was more explanation. Looking forward to picking up the other patterns book. If you have not been exposed to design patterns before, or are a relative beginner programmer, and definitely if you are not familiar with UML diagrams, avoid this book. It’s a book on design patterns (not a simple topic) that’s less than 200 pages, so you can’t really expect a thorough resource. I’m about half way through it. On one hand, I’m curious what such a small book has to offer, but on the other, I’m not sure I’ll finish it. I’ll probably concentrate on the XP book, for now.