I was tagged by Ryan.
1) I often think "backwards". My sentences often come out like "I put the kitchen in the potatoes". I have to translate in my head for it to make sense. This is extra hard when I am tired.
2) Some things that I find comforting are a warm drink, a moderate disorder (ie mess) in the room that I am in, and a warm blanket. All 3 at once are best.
3) In Canada the farthest east I have been is Quebec City and the farthest west is Sudbury area. I'm looking to change that.
4) I find that I bob along in life on a good dose of luck and fortunate circumstance. If I don't "push", things just seem to work out for the better. That thought feeds my laziness.
5) Even though I love traveling and would like to do a lot more, I don't travel well. The night before I don't really sleep because of anxiety. Not sure why, just general stress. I get this even when going to the cottage. That's why I find weekend trips so stressful: in 3 nights I don't sleep 2. Then the grumpyness sets in. ;-P
I tag Kibbee. ;-)
Saturday, 30 December 2006
Thursday, 28 December 2006
Taking better pictures
One of the things that I want to improve is my pictures taking. It's really bothered me when other people have been able to take better pictures than me on the same camera.
Some simple changes like knowing about using fill flash.
No fill:
Fill flash:
Another thing to be aware of is where you flash is with respect to the lens. If we turn our camera to take a "portrait" layout photo and have the flash underneath the lens, you have a huge shadow over the person's head. Not cool.
I'm sure that there are a ton more helpful hints to allow me to take better pictures, but until I can use a point-and-shoot camera well, I'm not going to upgrade to something fancier like an SLR.
Some simple changes like knowing about using fill flash.
No fill:
Fill flash:
Another thing to be aware of is where you flash is with respect to the lens. If we turn our camera to take a "portrait" layout photo and have the flash underneath the lens, you have a huge shadow over the person's head. Not cool.
I'm sure that there are a ton more helpful hints to allow me to take better pictures, but until I can use a point-and-shoot camera well, I'm not going to upgrade to something fancier like an SLR.
Labels:
home life
Thursday, 14 December 2006
They're coming to take me away...
Ever notice that a cubical is just a small room with padded walls where you can be observed for 8 hours a day? No? Just me then...
Labels:
random thoughts
Tuesday, 12 December 2006
Integration vs Unit Testing
I love tests. If you have not worked with me, you have no idea how much I love them. They help me be lazy so that I do do more work with less time. It also helps that tests mean I can build a better product.
For the last couple of years, I have been writing integration tests in that the tests that I write for the UI layer go all the way down to the db. With unit tests, you are supposed to have mock objects for all dependencies. But here's the thing: I'm lazy and have not been sold on the idea of mocks for something like a db.
Why do I like integration tests? I have found many errors that I do not believe that I would have found with "unit tests". That and my perceived extra work with creating and managing mock objects. The disadvantages of integration tests?
1) You may be adding data to the db that wasn't intended
2) possible side effects from one test to another
3) slower!!!
# 3 is my biggest complaint right now. My test suite takes minutes to run. Seconds would be better. Less than 1 second would be best. Something that I think would help would be to have an in-memory database for Oracle. I've blogged about that before :-/ No luck finding one online tonight 'cause oracle.com seems to be down... (yikes!).
If you believe that "unit testing" as apposed to integration testing (with a unit testing framework) is the way to go, please comment on why. My mind is still open, I just have not seen an argument that has changed my mind and I am wondering if I am missing out on something.
Update: a co-worker pointed me to Oracle's TimesTen that will allow you to do in-memory testing. I have not tried it out yet, but I hope that there would be no difference in behaviour between TimesTen and 10g. One of the things that I have done with my tests is to make them run in a transaction and then just roll them back at the end of the test (by default). This solves all 3 problems. I am much happier now that I have done this. ;-)
For the last couple of years, I have been writing integration tests in that the tests that I write for the UI layer go all the way down to the db. With unit tests, you are supposed to have mock objects for all dependencies. But here's the thing: I'm lazy and have not been sold on the idea of mocks for something like a db.
Why do I like integration tests? I have found many errors that I do not believe that I would have found with "unit tests". That and my perceived extra work with creating and managing mock objects. The disadvantages of integration tests?
1) You may be adding data to the db that wasn't intended
2) possible side effects from one test to another
3) slower!!!
# 3 is my biggest complaint right now. My test suite takes minutes to run. Seconds would be better. Less than 1 second would be best. Something that I think would help would be to have an in-memory database for Oracle. I've blogged about that before :-/ No luck finding one online tonight 'cause oracle.com seems to be down... (yikes!).
If you believe that "unit testing" as apposed to integration testing (with a unit testing framework) is the way to go, please comment on why. My mind is still open, I just have not seen an argument that has changed my mind and I am wondering if I am missing out on something.
Update: a co-worker pointed me to Oracle's TimesTen that will allow you to do in-memory testing. I have not tried it out yet, but I hope that there would be no difference in behaviour between TimesTen and 10g. One of the things that I have done with my tests is to make them run in a transaction and then just roll them back at the end of the test (by default). This solves all 3 problems. I am much happier now that I have done this. ;-)
Labels:
work
Monday, 11 December 2006
My life as a project
I'm not sure if it's a good thing or just really sad, but I find it a lot easier to manage my life as I would a software project. You come up with some long term goals, figure out what "user stories" that you have to do to get there, map it out... still keeping in mind to stay flexible in the short term to deal with things you had no idea would pop up.
This "life as a project" though popped into my head the other day. Laura and I needed a quick and easy to to collaborate and keep track of "todo's" and lay out a plan of attack. So I installed a wiki that we both can assess and work with. Such a better solution than emailing text files around. We'll also use this for keeping track of our "lessons learned" (I call it a post-mortem) when we travel so we can improve.
Does this make me a super big nerd? Probably, but I see it as picking the right tools for the job. ;-)
This "life as a project" though popped into my head the other day. Laura and I needed a quick and easy to to collaborate and keep track of "todo's" and lay out a plan of attack. So I installed a wiki that we both can assess and work with. Such a better solution than emailing text files around. We'll also use this for keeping track of our "lessons learned" (I call it a post-mortem) when we travel so we can improve.
Does this make me a super big nerd? Probably, but I see it as picking the right tools for the job. ;-)
Friday, 8 December 2006
QotD
"why can't I get through this door?"
"because it's a wall."
"because it's a wall."
Wednesday, 6 December 2006
Commonly heard
Something that is commonly heard in our apartment is: "I'm too full, I don't want anything thing... Oooohh, is that chocolate?"
Other things could be cookies, beer, or pie. Life is Good. ;-)
Other things could be cookies, beer, or pie. Life is Good. ;-)
Friday, 1 December 2006
Html img alt tag: Sometimes less is more
Sometimes less is more: providing useless info does not help anyone.
disclaimer: Most of this I learned from my co-worker who is visually impaired and uses a screen reader (SR). I wanted to blog about this since I feel that when people understand the reasons, they remember the solutions.
Web developers should know that the img tag requires an alt attribute to be set. What happens when you don't and use a SR? It reads the scr attribute. Yuck.
Okay, so that means we should always fill out the alt attribute? No. Sometimes it's good if you put alt="". Like for a spacer image, it's not going to help someone using a SR and it saying "Option One...spacer image... Option 2... spacer image...". Putting alt text on those images provides no useful info to the user.
That's not all. You have to make sure that the alt text makes sense in the context that you are displaying it as well. For example: I've got a table that lists widgets and I put an image beside the "widget name" that will bring the user to an edit screen. If I put the alt text as "edit a widget", that doesn't really help out the user too much. Someone not using a SR can make the cognitive leap that the image and text visually beside each other are associated. For someone using a SR they would have much more trouble. Alt text like "edit [widget name] widget" would be more useful.
Just another thing to keep in mind when building accessible web applications. ;-)
disclaimer: Most of this I learned from my co-worker who is visually impaired and uses a screen reader (SR). I wanted to blog about this since I feel that when people understand the reasons, they remember the solutions.
Web developers should know that the img tag requires an alt attribute to be set. What happens when you don't and use a SR? It reads the scr attribute. Yuck.
Okay, so that means we should always fill out the alt attribute? No. Sometimes it's good if you put alt="". Like for a spacer image, it's not going to help someone using a SR and it saying "Option One...spacer image... Option 2... spacer image...". Putting alt text on those images provides no useful info to the user.
That's not all. You have to make sure that the alt text makes sense in the context that you are displaying it as well. For example: I've got a table that lists widgets and I put an image beside the "widget name" that will bring the user to an edit screen. If I put the alt text as "edit a widget", that doesn't really help out the user too much. Someone not using a SR can make the cognitive leap that the image and text visually beside each other are associated. For someone using a SR they would have much more trouble. Alt text like "edit [widget name] widget" would be more useful.
Just another thing to keep in mind when building accessible web applications. ;-)
Labels:
work
Sunday, 26 November 2006
Subversion on a shared host
I finally got some hosting (bluehost specifically) going for some pet projects of my own. At this point I'm planning to wipe my linux box which has my CVS repository on it, so I thought that I would try out installing subversion on my hosted space. My goal was to be able to access subversion through an eclipse derivative: radrails.
Sorry for all the keywords, but I'm hoping that this will get picked up by google and save someone else a bunch of time. This is an account of what I did to get it working, and some steps may seem obvious to others, but I am a newbie to svn. This was only for me to get access, so tunnelling over ssh was my perfered choice.
1) I followed Matt Harvard's post onHowTo: Install Subversion on a Shared Host Install Subversion on a Shared Host. That was great, but at the end I was like "what now??".
2) Create a repo location:
3) While logged in over ssh to your host, run the command:
It should prompt you for your password. ref
4) I got:
which means that since the
5) Then using the subversion book as my guide, I modified config files to allow my user to have read write access.
This means for the root of the repo, my account has read write access.
I just gave it a different crappy password since you will authincate against ssh.
This gives autherized people write access, shows where the password and authorization files are located. After the install the files created here have lots of comments explaining what you have to do. You pretty much just have to uncomment lines.
6) Whew. Now We're done setting up svn on the host. However, if you try and connect to svn with
Not so good, but fixable. I found a great post on the subclipse mailing list. It's two problems: eclipse not having a ssh program to connect with, and needing a public / private key to make connecting so much easier.
After finding all this, everything was good. ;-)
HTH
Sorry for all the keywords, but I'm hoping that this will get picked up by google and save someone else a bunch of time. This is an account of what I did to get it working, and some steps may seem obvious to others, but I am a newbie to svn. This was only for me to get access, so tunnelling over ssh was my perfered choice.
1) I followed Matt Harvard's post on
2) Create a repo location:
svnadmin create /path/to/repos
.3) While logged in over ssh to your host, run the command:
svn list svn+ssh://youraccount@yourdotcom/home/youraccount/path/to/svn/
It should prompt you for your password. ref
4) I got:
bash: line 1: svnserve: command not found
svn: Connection closed unexpectedly
which means that since the
make install
that I did in Matt's instructions installed subversion in ~/bin/
. When you use the svn then you are not using an "interactive shell", so the path isn't set as it is when you log in. There is a couple of ways around it. Some people put a soft link in their home to the svnserve file, but I decided to just edit the ~/.bashrc file by adding PATH=$PATH:~/bin
. Now if you re-run the snv list ... command from step 3, it should work.5) Then using the subversion book as my guide, I modified config files to allow my user to have read write access.
$REPO_LOCATION/config/authz
[/]
youraccount = rw
This means for the root of the repo, my account has read write access.
$REPO_LOCATION/config/passwd
[users]
youraccount = mysecret
I just gave it a different crappy password since you will authincate against ssh.
$REPO_LOCATION/config/svnserve.conf
[general]
auth-access = write
password-db = passwd
authz-db = authz
This gives autherized people write access, shows where the password and authorization files are located. After the install the files created here have lots of comments explaining what you have to do. You pretty much just have to uncomment lines.
6) Whew. Now We're done setting up svn on the host. However, if you try and connect to svn with
svn+ssh://youraccount@yourdotcom/home/youraccount/path/to/svn/
you will get:The system cannot find the file specified.
svn: Can't create tunnel: The system cannot find the file specified.
Not so good, but fixable. I found a great post on the subclipse mailing list. It's two problems: eclipse not having a ssh program to connect with, and needing a public / private key to make connecting so much easier.
After finding all this, everything was good. ;-)
HTH
Labels:
work
Saturday, 25 November 2006
James Bond - Casino Royale
Went out for a date last night and saw bond. Really good, I'd recomend you go out and see it.
A co-worker suggested I see it and said "oh, you won't like the CENSORED sceen". Ya, not too impressed that I was waiting for that sceen. I prefer to not actually know anything about the movies that I see. *sigh* Can't have everything I guess.
I think that with this movie they fixed a lot of the stuff that I was getting tired with, as well as made fun of themselves. Pretty refreshing. Go see it. ;-)
A co-worker suggested I see it and said "oh, you won't like the CENSORED sceen". Ya, not too impressed that I was waiting for that sceen. I prefer to not actually know anything about the movies that I see. *sigh* Can't have everything I guess.
I think that with this movie they fixed a lot of the stuff that I was getting tired with, as well as made fun of themselves. Pretty refreshing. Go see it. ;-)
Labels:
movies and music
Monday, 20 November 2006
Sunday, 19 November 2006
No Wii for Mii
Went to Walmart just as they opened the store... apparently you needed to get a ticket for the consoles that they had. No one said anything. Then we went to BestBuy and they had a sign out front saying that they had 81 consoles, tickets started to be given out at 6am. There was about 50 people ahead of us so I had hope.
We got there about 7:20 ish and waited. I heard rumors that all the tickets were gone, but I stayed. It had nothing to do with Laura going back to pick up a winter jacket 'cause I didn't bring a warm enough coat and I had no way to go home. At about 7:55 a guy from came out and confirmed that all tickets were gone, but we were able to stay around in case "anyone's cards didn't go through". So we left.
The thing that bothers me is the people in line talking about how they are just going to flip it on ebay or something. People looking to make a profit are driving up the damand. It's cyclic.
Oh well. I'll just have to wait a couple of weeks I guess. Hot chocolate makes everything better. ;-)
We got there about 7:20 ish and waited. I heard rumors that all the tickets were gone, but I stayed. It had nothing to do with Laura going back to pick up a winter jacket 'cause I didn't bring a warm enough coat and I had no way to go home. At about 7:55 a guy from came out and confirmed that all tickets were gone, but we were able to stay around in case "anyone's cards didn't go through". So we left.
The thing that bothers me is the people in line talking about how they are just going to flip it on ebay or something. People looking to make a profit are driving up the damand. It's cyclic.
Oh well. I'll just have to wait a couple of weeks I guess. Hot chocolate makes everything better. ;-)
Labels:
home life
Friday, 17 November 2006
Wii are getting close
I'm actually really looking forward to the Wii coming out. I'm not hard core enough to camp out, but I think that I'm going to set the alarm for early on Sunday to go out and get one. My 2 options are the BestBuy and the hidden Walmart. Laura called for me (what a sweetheart!) and asked and both stores said they will have "about 50". I'm still not sure how fast those are going to fly off the shelves, but here's hoping that I'll be able to pick one up.
At this point I think that I'll just pick up Rayman and an extra controller. At some other point I might pick up a classic controller and a star wars game. I'm a sucker for the star wars games... and when they come out with one for the Wii (I'm sure that they will), that will be added to my collection if it's up to the usual quality of LucasArts.
At this point I think that I'll just pick up Rayman and an extra controller. At some other point I might pick up a classic controller and a star wars game. I'm a sucker for the star wars games... and when they come out with one for the Wii (I'm sure that they will), that will be added to my collection if it's up to the usual quality of LucasArts.
Labels:
home life
Tuesday, 14 November 2006
Phone dancing
I gotta say that phone dancing is one of the most beautiful events that I have seen in a while. Phone dancing for Vancouver 2010!!
Monday, 13 November 2006
Sunday, 12 November 2006
Where have I been, #1
As time goes on I trust less and less to my memory. One thing that I use this blog for is to have a nice central place for the stuff I want to remember. I figured that I would compile a short list of where I've travelled to in my life. I might be updating the list with places I forgot. If anyone's got any questions about anything I'll do my best to answer.
Places of interest in Canada (that I didn't live in long term):
Niagara Falls
Montreal (lived there for 4 months)
Quebec City
(Ottawa and Toronto don't count)
Age 6:
Disney World - don't remember tons about this trip but it was fun.
Age 15(??), family cruse to caribbean:
Aruba
Saint Lucia
CuraÁao
Barbados
Grenada
Margarita Island
Age 18, high school grad trip:
Cuba, a Cayo Coco resort.
Age 24, Europe trip with Laura to France, Spain and Portugal:
Paris
Barcelona
Madrid
Seville aka Sevilla
Lisbon
Porto
…vora
Faro
Donostia-San Sebasti·n
Bordeaux and then a side trip to Saint-…milion
Christmas Cruse 2005:
Miami
Grand Cayman (go Stingray City!)
Costa Maya, Mexico
Update: For our upcoming trip, here are the places we're planning on going. ;-)
Fort Lauderdale, Florida
San Juan, Puerto Rico
Philipsburg, St. Maarten
St. Johns, Antigua
Charlotte Amalie, St. Thomas
Nassau, Bahamas
Places of interest in Canada (that I didn't live in long term):
Niagara Falls
Montreal (lived there for 4 months)
Quebec City
(Ottawa and Toronto don't count)
Age 6:
Disney World - don't remember tons about this trip but it was fun.
Age 15(??), family cruse to caribbean:
Aruba
Saint Lucia
CuraÁao
Barbados
Grenada
Margarita Island
Age 18, high school grad trip:
Cuba, a Cayo Coco resort.
Age 24, Europe trip with Laura to France, Spain and Portugal:
Paris
Barcelona
Madrid
Seville aka Sevilla
Lisbon
Porto
…vora
Faro
Donostia-San Sebasti·n
Bordeaux and then a side trip to Saint-…milion
Christmas Cruse 2005:
Miami
Grand Cayman (go Stingray City!)
Costa Maya, Mexico
Update: For our upcoming trip, here are the places we're planning on going. ;-)
Fort Lauderdale, Florida
San Juan, Puerto Rico
Philipsburg, St. Maarten
St. Johns, Antigua
Charlotte Amalie, St. Thomas
Nassau, Bahamas
Thursday, 9 November 2006
Bus theory
Ya, I know that I have not been blogging in a while. I keep on thinking up "great posts", but by the time I sit down at a computer to put fingers to keyboard I just don't have the energy. Meh. Okay, on to the post...
I've got a theory about what OC transpo has been telling their drivers lately: the drivers that make the most riders ill in the next couple of months gets a christmas bonus. All the drivers seem lately to be either 100% on the gas or 100% on the breaks. I've got a short bus ride (hung up the bike for the winter), and I feel like I'm going to puke by the time that I get to work / home.
My alternative theory is that since they are tracking all buses by GPS they are keeping a closer tab on drivers staying on schedule. Either way, I've got to be careful not to toss my cookies. :-/
I've got a theory about what OC transpo has been telling their drivers lately: the drivers that make the most riders ill in the next couple of months gets a christmas bonus. All the drivers seem lately to be either 100% on the gas or 100% on the breaks. I've got a short bus ride (hung up the bike for the winter), and I feel like I'm going to puke by the time that I get to work / home.
My alternative theory is that since they are tracking all buses by GPS they are keeping a closer tab on drivers staying on schedule. Either way, I've got to be careful not to toss my cookies. :-/
Labels:
home life
Tuesday, 24 October 2006
Rock bottom
You know that you've hit rock bottom when find yourself at home watching The View. Oie. Time to get professional help. :-(
Monday, 23 October 2006
uhgg... sick...
It's that time of year again: Jim being sick. *sigh* I hate being sick... but who enjoys it? It means that everything that I was doing comes to a standstill.
Speaking of frustrations, my space bar is getting stuck. It makes it difficult to type. :-( I keep on debating if I should go buy a new laptop, fix up my desktop or figure out why my space bar isn't really working (I'm sure it's just dirt). I want a new computer, but I don't want to spend 1k+ either.
Oh well... time for tea.
Speaking of frustrations, my space bar is getting stuck. It makes it difficult to type. :-( I keep on debating if I should go buy a new laptop, fix up my desktop or figure out why my space bar isn't really working (I'm sure it's just dirt). I want a new computer, but I don't want to spend 1k+ either.
Oh well... time for tea.
Thursday, 19 October 2006
Disruptive Interviews
In response to Ryan's post about being disruptive... here goes.
I feel that it's great to ask questions in an interview. It's the initial phase of discovery for both parties. Both sides want a positive experience. Expressing that you don't like a process or tool isn't going to kill you. It's just an indication of how well you'll fit into the corp culture.
As JP mentioned, it's great to be able to get into a job and then change things for the better from the inside. However some places have so much momentum that it would take more force than someone "on the bottom" to be able to change it. Disruptive is good, provided that change is possible. If change isn't possible, then it's just frustrating for both parties.
What am I? I'm not actually sure. Sometimes I act "robot-ish" plugging away to get the job done. Other times when I feel the time is right I push to change the status quo. So far I had been able to influence change in 2 major technologies as well help focus on quality. Those times I really do rock the boat. Sometimes I say things that I really shouldn't[1]. I feel that it's all about picking your battles.
Having said all that, it doesn't mean that people you interview can't change just as much as a business. One of the best developers that I work with I helped interview. In the interview I asked "what do you think of unit tests?" to which he replied "I don't like them. I don't do them." Not a good sign? Perhaps. I told him that I do write them. It was an easy sell in the end. He's test infected now. ;-)
I've seen other people who are like "oh, I love unit tests, I write them all the time" but don't. They talk the talk, but they don't walk it. Asking a question and getting the right response isn't necessarily mean you'll get the right behaviour. That's what Ryan was talking about when he said "The only way to know is to jump in the team and do 4-8 months of real work."
I think that even disruptive people have lulls where they are not being "disruptive" just for the simple fact that they have found something that works for them. Change usually happens in spurts.
In the end I think that it's all aboutclichÈs
[1] In a meeting with a bunch of people I said we don't build software well, that we're not doing a good job. I said that we can be doing a much better job. One of the guys took me aside later and asked why I said that, why would I say that we doing a bad job (in front of his boss).
I feel that it's great to ask questions in an interview. It's the initial phase of discovery for both parties. Both sides want a positive experience. Expressing that you don't like a process or tool isn't going to kill you. It's just an indication of how well you'll fit into the corp culture.
As JP mentioned, it's great to be able to get into a job and then change things for the better from the inside. However some places have so much momentum that it would take more force than someone "on the bottom" to be able to change it. Disruptive is good, provided that change is possible. If change isn't possible, then it's just frustrating for both parties.
What am I? I'm not actually sure. Sometimes I act "robot-ish" plugging away to get the job done. Other times when I feel the time is right I push to change the status quo. So far I had been able to influence change in 2 major technologies as well help focus on quality. Those times I really do rock the boat. Sometimes I say things that I really shouldn't[1]. I feel that it's all about picking your battles.
Having said all that, it doesn't mean that people you interview can't change just as much as a business. One of the best developers that I work with I helped interview. In the interview I asked "what do you think of unit tests?" to which he replied "I don't like them. I don't do them." Not a good sign? Perhaps. I told him that I do write them. It was an easy sell in the end. He's test infected now. ;-)
I've seen other people who are like "oh, I love unit tests, I write them all the time" but don't. They talk the talk, but they don't walk it. Asking a question and getting the right response isn't necessarily mean you'll get the right behaviour. That's what Ryan was talking about when he said "The only way to know is to jump in the team and do 4-8 months of real work."
I think that even disruptive people have lulls where they are not being "disruptive" just for the simple fact that they have found something that works for them. Change usually happens in spurts.
In the end I think that it's all about
- keeping your ear to the ground
- picking your battles
- being passionate
[1] In a meeting with a bunch of people I said we don't build software well, that we're not doing a good job. I said that we can be doing a much better job. One of the guys took me aside later and asked why I said that, why would I say that we doing a bad job (in front of his boss).
Labels:
work
Wednesday, 11 October 2006
Good (or bad) start to the day...
It was sort of nice to see the by-law officer sitting beside my building this morning. Most people who go to the private school next to my building drop off their kids in the morning in their BMW's while stopping in the "no stopping" zone. The officer was just sitting in his van writing down licenses. Awesome. That put a smile on my face. ;-)
Saturday, 7 October 2006
Crouching Greeter, Hidden Walmart
Today I went to the hidden walmart on terminal ave. It's new and I have to say, it's the nicest walmart I've been to. (yes, that's an incredibly weird statement.) I think that they actually tried to not make the store look cheap inside. The floors aren't those 12 inch stick tiles: they are brown cement smooth as a baby's bum. Some of the shelves are made to look like nice wood. A lot of the store seems to have been thought through.
Labels:
home life
His job
There is a boingboing story with the Daily Show and explaining what GWB's job is... too funny.
God, I need a PVR to get the shows that are on too late for me...
God, I need a PVR to get the shows that are on too late for me...
Tuesday, 3 October 2006
My employer sucks
Ya, you read that correctly. My employer sucks. The working relationship is good enough, but some things just annoy me. Examples you ask? Well, I never get paid on time. Usually a couple of days late. Worst part of that? Laura has to remind the person that does payroll to cut a cheque. :-( Really it makes sense if you ever see the desk of the guy that writes the cheques... a complete mess piled high with letters, forms, contracts and other documents to be filled.
*sigh* It feels good to complain. Doesn't fix it though. It's just some of the problems that goes along with being self employed. :-P
Now, if you don't mind, I've got to go cut a cheque 'cause Laura's reminded me (again) and then clean up my desk. It's a mess...
*sigh* It feels good to complain. Doesn't fix it though. It's just some of the problems that goes along with being self employed. :-P
Now, if you don't mind, I've got to go cut a cheque 'cause Laura's reminded me (again) and then clean up my desk. It's a mess...
Wednesday, 27 September 2006
Where, when will be linked to what
I've been thinking of how there are more and more picture / mapping services like how flickr ties into Yahoo maps and how this will (shortly) lead into your camera (cell phone??) being GPS enabled and encoding where you took the picture along with the other meta information - when. That will be pretty cool in itself as it allows you to easily upload pictures to a service and see everything laid out on a map.
The cool part will be when someone takes the meta information and co-relates it to the tags that people have added - what. You'll be able to mine a site like flickr to figure out that all the pictures at this location are likely to be the Eiffel Tower. By linking when and where, you will no longer have to rely on people tagging things the same to associate images of the same event.
Everyone's photos will add to the collective and with photo tourism, 3d models and walk through's will be possible of just about any location. Now they'll have data to make a holodeck. That's step 2. ;-)
The cool part will be when someone takes the meta information and co-relates it to the tags that people have added - what. You'll be able to mine a site like flickr to figure out that all the pictures at this location are likely to be the Eiffel Tower. By linking when and where, you will no longer have to rely on people tagging things the same to associate images of the same event.
Everyone's photos will add to the collective and with photo tourism, 3d models and walk through's will be possible of just about any location. Now they'll have data to make a holodeck. That's step 2. ;-)
Labels:
random thoughts
Grr.... "web developers"...
One thing that really frustrates me is sites that don't work in firefox. I was frustrated with Orleans Bakery's website. For small business, I usually mentally cut them a lot of slack 'cause I'm just impressed that they have a website.
At the bottom of the page it links to who did it. So, out of the same curiosity that makes people watch an accident on the highway, I followed the link. It brought me to a flash heavy page (all blocked with flashblock), I enabled them to see... nothing. It was all (mostly) just blank. I couldn't figure it out, it's just flash right???
Then I scrolled down to the bottom of the page to see:
I don't know if I'm amused or ticked off. I just think that it's pretty funny that someone is marketing themselves in a way that states at the bottom that the product will only work for somewhere between 55 and 90-ish% of the market. Please, please if anyone is reading this who feels that they are a "web developer", try out your site in the top 2 browsers... hopefully in more then one OS, but it's not like anyone uses an OS other than WinXP. :-P
At the bottom of the page it links to who did it. So, out of the same curiosity that makes people watch an accident on the highway, I followed the link. It brought me to a flash heavy page (all blocked with flashblock), I enabled them to see... nothing. It was all (mostly) just blank. I couldn't figure it out, it's just flash right???
Then I scrolled down to the bottom of the page to see:
Note : This site is best viewed in 800px by 600px with 32 bytes colour or more.
Internet Explorer 6.0 (or a more recent version) is required and can be downloaded from the Internet.
I don't know if I'm amused or ticked off. I just think that it's pretty funny that someone is marketing themselves in a way that states at the bottom that the product will only work for somewhere between 55 and 90-ish% of the market. Please, please if anyone is reading this who feels that they are a "web developer", try out your site in the top 2 browsers... hopefully in more then one OS, but it's not like anyone uses an OS other than WinXP. :-P
Labels:
rant
Monday, 25 September 2006
Sunday, 24 September 2006
Entertaining to non-computer people
It has been brought to my attention that this blog (apparently) has too much computer related stuff in it. Yes, I spend (at least) 1/2 of my waking time working and thinking about computer related stuff. So I blog about it. I find that logical. Sorry if it's not entertaining... I guess sometimes I am boring.
So, without further ado, here's some pictures of puppies. Yay!
So, without further ado, here's some pictures of puppies. Yay!
Labels:
home life
The Myth of the Golden Colander
I've been thinking for a while about creating the One True Process that would ensure that code that passed it would be Good Code. Let's call this the Golden Colander. It will be a way to filter out all the bad code and only allow the "golden" code through. Think of it as an idiot proof automated code review.
Conceptually, if you had something that was this good, you could get that army of infinite monkeys with infinite keyboards that you always wanted to do all the grunt work.
If you had this Golden Colander you wouldn't have to manually code review someones work, you wouldn't have to run code coverage on it, it would be automated, fair and black and white if code was good.
A couple of things pop into my mind as I go down the path of this thought experiment:
1) I would be out of a job. :-(
2) at this time and for the foreseeable future, this is an impossibly complex tool to build. Not going to happen any time soon.
I love automated tools and love to apply them to any work I am doing. But there is one "failing" of the tools I have seen: there is nothing that can make as good an evaluation as a person. Compilers might tell you if variables are not being used or other common problems, but it can't tell you that you are doing something architecturally stupid. You can add unit tests to a project, but not force anyone to run them. You can say "add comments", but there is no automated process that can evaluate if they are good comments. These are some of the things that I would love to fix if there was a Golden Colander, but alas, it's a myth.
Thinking about these things has brought me around to the value of a code review (or pair programming). Nothing can help to prevent brain dead decision quite like explaining it to your peer or superior. It's funny how little shame is required to get people to think things through or be a bit more careful.
Now, catching things in code review is great and all, but that's reactive. The damage has been done and now you're in "fix it" mode. I have found that it's far better (cheaper) to do something right the first time than doing it crappy and then re-doing it. What does this mean? You must hire the smartest people you can to do the job. 2 people that that are 1/2 as smart as personA else won't do the same quality as personA. They'll do worse, just faster. This applies to every field that I can think of, not just software.
Since google only hires the smartest people, I bet that the QA department has a much harder time looking for bugs than other places. It's like in cooking, if you want better tasting food, start with the best ingredients you can.
I'm going to end it here since I think that I am rambling but here's the conclusion: no process can compete with starting with the smartest people for the job, and giving them the right tools.
Conceptually, if you had something that was this good, you could get that army of infinite monkeys with infinite keyboards that you always wanted to do all the grunt work.
If you had this Golden Colander you wouldn't have to manually code review someones work, you wouldn't have to run code coverage on it, it would be automated, fair and black and white if code was good.
A couple of things pop into my mind as I go down the path of this thought experiment:
1) I would be out of a job. :-(
2) at this time and for the foreseeable future, this is an impossibly complex tool to build. Not going to happen any time soon.
I love automated tools and love to apply them to any work I am doing. But there is one "failing" of the tools I have seen: there is nothing that can make as good an evaluation as a person. Compilers might tell you if variables are not being used or other common problems, but it can't tell you that you are doing something architecturally stupid. You can add unit tests to a project, but not force anyone to run them. You can say "add comments", but there is no automated process that can evaluate if they are good comments. These are some of the things that I would love to fix if there was a Golden Colander, but alas, it's a myth.
Thinking about these things has brought me around to the value of a code review (or pair programming). Nothing can help to prevent brain dead decision quite like explaining it to your peer or superior. It's funny how little shame is required to get people to think things through or be a bit more careful.
Now, catching things in code review is great and all, but that's reactive. The damage has been done and now you're in "fix it" mode. I have found that it's far better (cheaper) to do something right the first time than doing it crappy and then re-doing it. What does this mean? You must hire the smartest people you can to do the job. 2 people that that are 1/2 as smart as personA else won't do the same quality as personA. They'll do worse, just faster. This applies to every field that I can think of, not just software.
Since google only hires the smartest people, I bet that the QA department has a much harder time looking for bugs than other places. It's like in cooking, if you want better tasting food, start with the best ingredients you can.
I'm going to end it here since I think that I am rambling but here's the conclusion: no process can compete with starting with the smartest people for the job, and giving them the right tools.
Labels:
random thoughts
Saturday, 9 September 2006
Accounting software
After doing my corp taxes this year with MS Excel, I think that for next year I'll use some software. I say "taxes", but I'm talking about my bookkeeping. I don't trust myself to actually do my taxes... Wikipedia has a "comparison" of packages, but it's pretty light on the details.
I found another review of different programs, but I'm not how much credit I would put into this review... *sigh* A co-worker was using GnuCash but then switched to make things easier for his account, but apparently it didn't make any difference to what he was charged. For lack of an obvious choice, I'll probably just go with QuickBooks since it's popular choice. Does anyone have any preferences for what they have used?
I found another review of different programs, but I'm not how much credit I would put into this review... *sigh* A co-worker was using GnuCash but then switched to make things easier for his account, but apparently it didn't make any difference to what he was charged. For lack of an obvious choice, I'll probably just go with QuickBooks since it's popular choice. Does anyone have any preferences for what they have used?
Labels:
work
Thursday, 7 September 2006
Bad code...
Too funny when I heard someone singing to the theme of Bad Boys
Bad code!
Bad code!
Whatcha gonna do?
Whatcha gonna do when they code review?
Labels:
quote
Tuesday, 5 September 2006
Different attitude at work
After reading about compact fluorescent light bulb on slashdot and "if every one of 110 million American households...[replaced] an ordinary 60-watt bulb... [it] is equivalent to taking 1.3 million cars off the roads". Wow.
That got me to thinking... how much would we save if we didn't actually turn the lights on? Like at places of business... people seem to treat power differently than if they were at home. At home when someone leaves a room and no one else is there, they turn off the light. At a place of work, not so much. Why? I don't know. If we just changed the social aspect that it's "okay to waste" when you're not directly paying for it, then I think that we'd use a lot less power.
I know at some places they have motion sensors to figure out when the lights should turn off, but I think that's overkill. Just turn off the freaking lights.
Think about that next time you walk by an empty board room with the lights on, or an office building that seems to have all the lights on at 7 pm on a Wednesday.
That got me to thinking... how much would we save if we didn't actually turn the lights on? Like at places of business... people seem to treat power differently than if they were at home. At home when someone leaves a room and no one else is there, they turn off the light. At a place of work, not so much. Why? I don't know. If we just changed the social aspect that it's "okay to waste" when you're not directly paying for it, then I think that we'd use a lot less power.
I know at some places they have motion sensors to figure out when the lights should turn off, but I think that's overkill. Just turn off the freaking lights.
Think about that next time you walk by an empty board room with the lights on, or an office building that seems to have all the lights on at 7 pm on a Wednesday.
Labels:
work
Tuesday, 29 August 2006
Takes guts
A co-worker pointed me to Spring: A Developer's Notebook on amazon. Take a look at the first review, the one star one.
Saying something like that takes guts. I've got more respect for the author now.
Saying something like that takes guts. I've got more respect for the author now.
Labels:
interesting read
Neat...
I was going to talk about the fact that you can now tie geo locations to a picture in flickr. More interesting (to me), someone linked to a photo tourism site that we (sort of) helped with by contributing pictures. Just check out the thank you page. Did I ever mention that I love getting credit for doing no "work"? No, well nevermind then...
Sunday, 27 August 2006
Hahaha...
While doing some work for my dad (he said it had to be done in vb), I found a quote that I really liked because it reflects my feelings as well. ;-)
The quote is about dates, but I've been just about equally frustrated with everything I've done in it. I can't believe that people have built complex app's with vb!! Oie.
Working with dates in ASP/VBScript makes me want to bludgeon my skull with a blunt object. I've read all the articles and searched the internet for wisdom, but most documentation stops short of providing any real answer.source
The quote is about dates, but I've been just about equally frustrated with everything I've done in it. I can't believe that people have built complex app's with vb!! Oie.
Labels:
work
Friday, 25 August 2006
Spell check
Pretty soon spell check will be native to firefox 2, which I consider to be a good thing. And to the delight of anyone who reads this blog, now I have can install the SpellBound Dev plug-in and actually see what what's misspelled as I go. Awesome. I can hear everyone else's relief as well. ;-)
Unfortunately, it only tells me what is wrong, but not how to correct it (at this time). It looks like google will continue to be my fastest way to get suggested correct spellings.
Unfortunately, it only tells me what is wrong, but not how to correct it (at this time). It looks like google will continue to be my fastest way to get suggested correct spellings.
Labels:
tech
Wednesday, 23 August 2006
Override and...
One thing that I really don't understand when people are creating a sub-class is why they would write code like:
Does this make sense to anyone? Is there some secret that other people know that I'm missing by writing code that does nothing? This rant brought to you by reading someone else's code.
public void myMethod(String name) {Why bother to override a method (without changing it's visibility) and do nothing? I find it just clutters up the code and adds exactly nothing. This goes for constructors as well, which is where I see this type of code more often, especially when people write JUnit tests!
super.myMethod(name);
}
Does this make sense to anyone? Is there some secret that other people know that I'm missing by writing code that does nothing? This rant brought to you by reading someone else's code.
Labels:
rant
Tuesday, 22 August 2006
Maven... finally.
I've started to use Maven more the last week or 2 with MyEclipse. I don't have it totally setup yet as an external tool, but that'll come soon. Pretty good so far. I quite happy with it.
So far my only complaints are that I didn't understand how to use a jar that wasn't open source (or couldn't be put in a repo), but I found a helpful post on how to do it (hint: use the install:install-file target). Annnnyyyyways.. it's great being able to quickly have different lib's used in your project and then make a site that has all kinds of reporting on it.
My question about the RoR fanclub is that is there such a thing for that env as well? After a quick search I found a code coverage tool for RoR called rcov. I'd assume that since testing is built right into the framework that most of the "build" tools would be as well.
Not that I ever really wrote an ant script, but I don't think that I would ever use one if I can just use maven now. Finally, some convention over configuration in Java... baby steps.
So far my only complaints are that I didn't understand how to use a jar that wasn't open source (or couldn't be put in a repo), but I found a helpful post on how to do it (hint: use the install:install-file target). Annnnyyyyways.. it's great being able to quickly have different lib's used in your project and then make a site that has all kinds of reporting on it.
Not that I ever really wrote an ant script, but I don't think that I would ever use one if I can just use maven now. Finally, some convention over configuration in Java... baby steps.
Labels:
work
Sunday, 20 August 2006
Little Miss Sunshine
Just saw Little Miss Sunshine. Really good. Really funny. See it.
And that's all I have to say about that. ;-)
And that's all I have to say about that. ;-)
Labels:
movies and music
Making better coffee
At home I have a hand-me-down coffee maker with the feature set of "on and off". It makes coffee, which is exactly what I need it for. I did a quick search and on how to make better coffee and of course I got lots of hits like this one. Most of them say to use a french press and bottled water. Oh, and don't forget to use a specific grinder, measuring out your ingredients down to the gram. Oh, and have the water in a specific 5 degree range.
Riiiight. I like good coffee, but I also don't like doing a lot of work to get it. I know, that doesn't make much sense. I just don't want to become one of those crazy people that won't enjoy something unless it was make in a specific way... the way that I read it somewhere as being the "right way"... which would become "my way" with no really good reason.
I don't want to spend 500 $ for a coffee maker. I don't want one with "pods" that you have buy in order to make a cup. *sigh* At this point I'll just keep on playing around with the amount of water and (pre-ground! *gasp*!!) coffee to see if I can tweak things. Time for another cup. ;-)
Riiiight. I like good coffee, but I also don't like doing a lot of work to get it. I know, that doesn't make much sense. I just don't want to become one of those crazy people that won't enjoy something unless it was make in a specific way... the way that I read it somewhere as being the "right way"... which would become "my way" with no really good reason.
I don't want to spend 500 $ for a coffee maker. I don't want one with "pods" that you have buy in order to make a cup. *sigh* At this point I'll just keep on playing around with the amount of water and (pre-ground! *gasp*!!) coffee to see if I can tweak things. Time for another cup. ;-)
Labels:
home life
Saturday, 19 August 2006
Pretty happy about my degree
For all the pains that I went through for my degree, I think that it was really a smart choice for me. To have actually been trained in the field that I work in, I feel that I have a huge jump on people just with all the background knowledge that I have. And what courses provided me with this edge? Those are the ones that I was like "why are we talking this? I'll never actually need this in any job..."
That material isn't the stuff that most people would see directly on the job, but I feel that it really helps me understand why things are done in certain ways. Weird eh? All the stuff that I thought was a waste of my time has turned out to be my edge, my advantage. Go U of O.
That material isn't the stuff that most people would see directly on the job, but I feel that it really helps me understand why things are done in certain ways. Weird eh? All the stuff that I thought was a waste of my time has turned out to be my edge, my advantage. Go U of O.
Labels:
school
Friday, 18 August 2006
Brown dot on my nose
Oie. Quite a few times while at work I have noticed a brown dot on my nose. Always in the same place. At first I thought it was mud that was kicked up from my bike ride in, but that's strange 'cause I have a shower after I get to work... Very weird.
I just figured it out: my travel mug that I use at work has a flip up lid. The part that was touching the opening for the coffee is now at the perfect place to come into contact with my face as I take a drink. Perhaps not an optimal design, ah well. Good thing is that it's a pretty tough mug and I like that fact that it's see-through. :-/
I just figured it out: my travel mug that I use at work has a flip up lid. The part that was touching the opening for the coffee is now at the perfect place to come into contact with my face as I take a drink. Perhaps not an optimal design, ah well. Good thing is that it's a pretty tough mug and I like that fact that it's see-through. :-/
Labels:
food and drink
Monday, 14 August 2006
Soft tires? Tired Jim...
You know how they always say to improve your gas mileage (kilimeterage?) you should make sure that your tires are properly inflated? Ever wanted to bring this fact "home" to really understand it?
Just let some air out of your bike tire and bike around for a bit and you'll really understand how much an impact this has. It's not a small thing.
The back tire on my bike keeps on going soft. Not quite sure why yet since I just changed the tube (I had a staple through the tire). My next step will be to swap out the whole tire with my "spare" bike... If that fails? Well, I might actually have to go out and buy a couple of new tires.
Just let some air out of your bike tire and bike around for a bit and you'll really understand how much an impact this has. It's not a small thing.
The back tire on my bike keeps on going soft. Not quite sure why yet since I just changed the tube (I had a staple through the tire). My next step will be to swap out the whole tire with my "spare" bike... If that fails? Well, I might actually have to go out and buy a couple of new tires.
Labels:
home life
Tuesday, 8 August 2006
Change ATM
I would really love to have a change ATM. You go up, swipe your card, and dump in a handful (or more) change. It sorts it, and adds the money to your account. All done. At this point I have a big pile of change and I don't feel like rolling it. *sigh* Ah well.
Update: Woa... I saw on Canada AM this morning how they are putting in machines just like I said. I found an easier to read story at Canada Business. At 9.8% fee, it's a bit steep, but cheaper than rolling your own and then going to the bank. And another weird thing? Aleks is sort-of right: we'll be able to do laundry (dry cleaning), banking and groceries all at the same place...
Freaky. Just like in Sphere... I just have to think about it, and it becomes true, even if it happened in the past!! The power, the ultimate power!!! Bwahahahahaha!!!
Update: Woa... I saw on Canada AM this morning how they are putting in machines just like I said. I found an easier to read story at Canada Business. At 9.8% fee, it's a bit steep, but cheaper than rolling your own and then going to the bank. And another weird thing? Aleks is sort-of right: we'll be able to do laundry (dry cleaning), banking and groceries all at the same place...
Freaky. Just like in Sphere... I just have to think about it, and it becomes true, even if it happened in the past!! The power, the ultimate power!!! Bwahahahahaha!!!
Labels:
random thoughts
Sunday, 6 August 2006
No evidence...
One thing that I was thinking about when I read about scientists recovering old texts is what would be left for future people to learn about the lives we're living right now. Out knowledge is being stored more and more in electronic format which is pretty fragile. No stone tablets for us. Our books are printed on paper with a high acid content and degrade very quickly compared to old paper which lasts (at least) 100's of years. (Ya, I read it somewhere... no proof on this blog).
What's likely going to be left? Environmental damage? Landfills with diapers, broken plastic toys and food wrappers? Probably just evidence of our own stupidity and not much else. Sad really.
Instead of being the Achilles' heel, maybe the thing that will actually save human knowledge will be the digitization revolution - all knowledge being at least in digital format. Redundant, distributed libraries so the loss of one building won't have such a huge impact. We'll have to see how things turn out with the digitization and the copyright laws. ;-)
What's likely going to be left? Environmental damage? Landfills with diapers, broken plastic toys and food wrappers? Probably just evidence of our own stupidity and not much else. Sad really.
Instead of being the Achilles' heel, maybe the thing that will actually save human knowledge will be the digitization revolution - all knowledge being at least in digital format. Redundant, distributed libraries so the loss of one building won't have such a huge impact. We'll have to see how things turn out with the digitization and the copyright laws. ;-)
Labels:
random thoughts
Friday, 4 August 2006
Crapsticks
We were planning to go away for a family cottage weekend. However, the strong storms lately have taken out the power at the cottage and it will be too difficult on the cottage to have that many people there without power. Estimated time for the power to back on? Sunday night. :-(
I'm a bit sad. 1) I won't see some family that I really only see a couple of times a year (this is one of them) and 2) it's rare that we have the chance to get away to the cottage.
Dammit.
Now I have to figure out what to do with the food that I have bought.... at least it hasn't been too much so far... anyone know good things to do with 3 doz eggs? I'm thinking lots of egg salad and souffles... *sigh*. At least I have frozen the bacon (and I know that will be used without a problem). Oie.
I'm a bit sad. 1) I won't see some family that I really only see a couple of times a year (this is one of them) and 2) it's rare that we have the chance to get away to the cottage.
Dammit.
Now I have to figure out what to do with the food that I have bought.... at least it hasn't been too much so far... anyone know good things to do with 3 doz eggs? I'm thinking lots of egg salad and souffles... *sigh*. At least I have frozen the bacon (and I know that will be used without a problem). Oie.
Wednesday, 2 August 2006
It's all new again
One of the interesting things working with Java web apps is that the "best practices" keeps on changing. Frameworks that at one time are looked at as the shining example of doing things well turn into "old school" and clunky in a handful of years. The idea of "Enterprise" solutions get thrown out in favour of lighter, cleaner frameworks. Pattern overload gets turfed in favour of KISS. Vendor lock-in gets tossed for plugablility. Even the language is changing relatively quickly: they're on v6 beta 2 at the time of this writing and expecting to release it in the fall. There is always more to learn, better ways to do things. Status quo just means that you'll be left behind.
Labels:
work
Tuesday, 1 August 2006
Keeping it neutral
One of the things that I feel that I have to work on is keeping things neutral and not losing my patience, even if I am frustrated. I don't think that it helps the situation in the long or short term. I know that I have not liked it in the past when people have lost their patience with me, and I don't want to become like that. I think that this will require more effort on my part.
And if it gets really bad? I guess I should just walk away for a couple of minutes and come back, but that's not always an option. :-(
And if it gets really bad? I guess I should just walk away for a couple of minutes and come back, but that's not always an option. :-(
Labels:
work
Sunday, 30 July 2006
Don't kid yourself: that's coupling
One of the books that I was reading (I think that it was Lighter, Faster Java) was talking about coupling. When working with a language like Java, it's a good idea to try and deal with interfaces instead of concreate classes. Especially with method signatures. But that's another rant about the joy's of the Java Collections.
Back on topic. Working with interfaces is a good idea, just don't kid yourself when you are doing it. For example, if you have some code like this:
Set mySet = new HashSet();
it is no less coupled to HashSet than code that is written like this:
HashSet mySet = new HashSet();
So, using interfaces in method calls / signatures: good. Using interfaces where you create a new concreate object (not using a factory or something like that): pointless.
Back on topic. Working with interfaces is a good idea, just don't kid yourself when you are doing it. For example, if you have some code like this:
Set mySet = new HashSet();
it is no less coupled to HashSet than code that is written like this:
HashSet mySet = new HashSet();
So, using interfaces in method calls / signatures: good. Using interfaces where you create a new concreate object (not using a factory or something like that): pointless.
Labels:
work
Friday, 28 July 2006
Crraaazy stuff...
Just when I think that I'm pretty good at biking, I see something like this. Oie.
Pretty funny stuff on the net... like Bush singing "Sunday Bloody Sunday". Not as catchy as Taking the Hobbits to Isengard though...
Pretty funny stuff on the net... like Bush singing "Sunday Bloody Sunday". Not as catchy as Taking the Hobbits to Isengard though...
Labels:
cool
Thursday, 27 July 2006
Side Effects
When I have been writing testing code, I have let the data be saved to the db. I know that this goes against the idea in unit testing that you test should have no side effects. And frameworks that have testing built in like RoR or Spring help make sure that your work doesn't have any side effects by rolling back the transaction when the test is done.
This helps make it so that your tests can run in any order, etc., but I don't really like that. Why? Because I have found more bugs with leaving data in the db than clearing it out all the time. My test data has some randomness to it (another no-no), but it helps show bugs. Like what happens if you have a first name in all CAPITALS? CamelCase? lowercase? What about accents?
Another benifit I have seen is when I use reflection to "fill" out a java object, save it, and then display it to the UI. I can find cut and paste errors of the html (struts) form fields or where you are displaying this data. This comes from the fact that I hate manual testing, espically creating the data.... I can't help it, I'm lazy. If I've already set up my test suite to create "valid" data, why can't I leverage that functionality? Maybe I can, but I don't see how to yet.
I'll post if I do find out how to do it. ;-)
This helps make it so that your tests can run in any order, etc., but I don't really like that. Why? Because I have found more bugs with leaving data in the db than clearing it out all the time. My test data has some randomness to it (another no-no), but it helps show bugs. Like what happens if you have a first name in all CAPITALS? CamelCase? lowercase? What about accents?
Another benifit I have seen is when I use reflection to "fill" out a java object, save it, and then display it to the UI. I can find cut and paste errors of the html (struts) form fields or where you are displaying this data. This comes from the fact that I hate manual testing, espically creating the data.... I can't help it, I'm lazy. If I've already set up my test suite to create "valid" data, why can't I leverage that functionality? Maybe I can, but I don't see how to yet.
I'll post if I do find out how to do it. ;-)
Labels:
work
Thursday, 20 July 2006
What the brain can do...
Olny srmat poelpe can raed tihs.
cdnuolt blveiee taht I cluod aulaclty uesdnatnrd waht I was rdanieg. The phaonmneal pweor of the hmuan mnid, aoccdrnig to a rscheearch at Cmabrigde Uinervtisy,
it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoatnt tihng is taht the frist and lsat ltteer be in the rghit pclae. The rset can be a taotl mses and you can sitll raed it wouthit a porbelm.
Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe. Amzanig huh? yaeh and I awlyas tghuhot slpeling was ipmorantt! if you can raed tihs psas it on !!
cdnuolt blveiee taht I cluod aulaclty uesdnatnrd waht I was rdanieg. The phaonmneal pweor of the hmuan mnid, aoccdrnig to a rscheearch at Cmabrigde Uinervtisy,
it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoatnt tihng is taht the frist and lsat ltteer be in the rghit pclae. The rset can be a taotl mses and you can sitll raed it wouthit a porbelm.
Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe. Amzanig huh? yaeh and I awlyas tghuhot slpeling was ipmorantt! if you can raed tihs psas it on !!
Labels:
interesting read
Wednesday, 19 July 2006
I feel so small...
Ever thought that you are big? Important? Check out the scale of things and tell me if you still feel that way. ;-)
Labels:
random thoughts
Tuesday, 18 July 2006
My Golden Hammer
I've been reading Better, Faster, Lighter Java and (like it many tech books) they always warn against a tool becoming a golden hammer. Which has got me wondering... is unit testing my golden hammer?
Any (programming) task I have, I try my best to write a test for it. Is this a bad thing? I never thought so. I write tests for resource files, to test config files, anything that I can write a test for, I do. I've just been thinking about this because someone was surprised that I was writing tests to test my Commons Validator configuration. Strange? Maybe. Documenting how the app is supposed to work? I think so.
Any (programming) task I have, I try my best to write a test for it. Is this a bad thing? I never thought so. I write tests for resource files, to test config files, anything that I can write a test for, I do. I've just been thinking about this because someone was surprised that I was writing tests to test my Commons Validator configuration. Strange? Maybe. Documenting how the app is supposed to work? I think so.
Monday, 17 July 2006
Relying on Config
My biggest beef with J2EE apps is how much you have to rely on config files. Yes, using config files allows you to be super flexible and "plug" in the features that you need. My gripe is that there is only run-time checking if you've configured something properly. No compile time checks.
Configuration sounds like a great idea. Here's the catch: with (struts) web apps, you're got config files tied to each other, tied to resource files, tied to Java classes, tied to just about everything. And if you're misconfigured something and you're lucky, the error message has something to do with your misconfiguration.
If you read this blog, then you know that I can't spell. I rely heavily on auto-complete to catch spelling and typing errors. That's why I don't like config files.
I also don't like manual testing. I love unit testing. I don't like coding without a test to show what and why I am changing code. So, when I am configuring the Commons Validator, I want to know that it's set up correctly and checking the right thing. That means I was looking for a nice way to check the validation in a unit test, without having to drive through the action class. I want to test it as a unit, in isolation (as much as possible). I am pretty disappointed that I have not found an example of how to check that things are being validated correctly without using strutstestcase and building up a request string. :-(
Which brings me to my original point. I'm okay with things blowing up with they are configured properly (fail early, fail fast). I'm not cool with the potential for validation to be skipped because of a mis-configuration, especially without having any unit tests. Manually testing isn't an option. I don't like getting any bugs back from QA.
The Validator isn't a new tool. There should be examples out there. If they are, I just have not found them yet. When I find the example, or make one of my own, I'll post it here.
Lack of unit tests isn't an option.
Configuration sounds like a great idea. Here's the catch: with (struts) web apps, you're got config files tied to each other, tied to resource files, tied to Java classes, tied to just about everything. And if you're misconfigured something and you're lucky, the error message has something to do with your misconfiguration.
If you read this blog, then you know that I can't spell. I rely heavily on auto-complete to catch spelling and typing errors. That's why I don't like config files.
I also don't like manual testing. I love unit testing. I don't like coding without a test to show what and why I am changing code. So, when I am configuring the Commons Validator, I want to know that it's set up correctly and checking the right thing. That means I was looking for a nice way to check the validation in a unit test, without having to drive through the action class. I want to test it as a unit, in isolation (as much as possible). I am pretty disappointed that I have not found an example of how to check that things are being validated correctly without using strutstestcase and building up a request string. :-(
Which brings me to my original point. I'm okay with things blowing up with they are configured properly (fail early, fail fast). I'm not cool with the potential for validation to be skipped because of a mis-configuration, especially without having any unit tests. Manually testing isn't an option. I don't like getting any bugs back from QA.
The Validator isn't a new tool. There should be examples out there. If they are, I just have not found them yet. When I find the example, or make one of my own, I'll post it here.
Lack of unit tests isn't an option.
Labels:
tech
Planetarium
One of the cool things that I have found with my stumble upon plugin is planetarium. It allows you to set the date, position, etc. and take a look at the night sky. You can rotate, mouse over stars (and get info), ... lots of cool stuff. Nice. ;-)
Quiz - What would you do?
You are driving in a car at a constant speed. On your left side is a valley and on your right side is a fire engine traveling at the same speed as you. In front of you is a galloping pig which is the same size as your car and you cannot overtake it. Behind you is a helicopter flying at ground level. Both the giant pig and the helicopter are also traveling at the same speed as you.
What must you do to safely get out of this highly dangerous situation?
(click continue for the answer)
Answer:
Get off the children's carousel and, next time, don't drink so much.
What must you do to safely get out of this highly dangerous situation?
(click continue for the answer)
Answer:
Get off the children's carousel and, next time, don't drink so much.
Tuesday, 11 July 2006
Struts 1.2.9, html:cancel and hours of fun
Let the rant begin.
I've had lots of fun today with struts html:cancel button. Too much fun. *cough*
My problem with the widget is that it is designed to be a cancel button only when you don't specify a value for the "property" attribute. But it allows you to specify a value for that.... let me say that again a different way: it allows you to remove all it's functionality if you just specify an attribute that you would on just about every other control. Why you ask? I have no idea.
I find the whole thing funny and sad at the same time. You have methods designed to check for a specific pram. Then they make it super easy to remove the pram. I'm just ticked off about the time that I wasted today.
And I am not even talking about how much time I wasted to find out the if I want to use above mentioned cancel button I will have to make note of it in my mapping file. No, it doesn't print a helpful message (that I saw), it just seemed to die. It wouldn't even enter in the cancelled method in my LookupDispatchAction. No, it just throws an exception.
Whew... for all that struts does for me, some times (most times) I wish that I didn't have to manage it so closely and know all the in's and out's. I've been using it for a while now and I am still learning most days. Not because I am dumb (I hope), but that it's just so freaking big. Design gone wild to be able to be the utmost flexable...
Sometimes I don't want a swiss army knife. Sometimes I just want a really big hammer.
I've had lots of fun today with struts html:cancel button. Too much fun. *cough*
My problem with the widget is that it is designed to be a cancel button only when you don't specify a value for the "property" attribute. But it allows you to specify a value for that.... let me say that again a different way: it allows you to remove all it's functionality if you just specify an attribute that you would on just about every other control. Why you ask? I have no idea.
I find the whole thing funny and sad at the same time. You have methods designed to check for a specific pram. Then they make it super easy to remove the pram. I'm just ticked off about the time that I wasted today.
And I am not even talking about how much time I wasted to find out the if I want to use above mentioned cancel button I will have to make note of it in my mapping file. No, it doesn't print a helpful message (that I saw), it just seemed to die. It wouldn't even enter in the cancelled method in my LookupDispatchAction. No, it just throws an exception.
Whew... for all that struts does for me, some times (most times) I wish that I didn't have to manage it so closely and know all the in's and out's. I've been using it for a while now and I am still learning most days. Not because I am dumb (I hope), but that it's just so freaking big. Design gone wild to be able to be the utmost flexable...
Sometimes I don't want a swiss army knife. Sometimes I just want a really big hammer.
Labels:
rant
Tuesday, 27 June 2006
Google Calendar
Very recently I've been using the google calendar and I really like it. Not so much for the fact that it helps me keep track of what I'm doing (I don't need a calendar to track what I do), but it helps me see what other people with busy schedules are up to. For example: Laura. Before I could never keep track of where she was when. Now I just have to check the schedule online because she's shared her calendar with me. I've also got it set up for family birthday / anniversaries.
I think the killer feature of this tool is that it is great for collaboration. Since the work for events is usually managing it between different people, it doesn't make sense for n different people to keep n different copies of the same event. But that's not news to anyone.
My only grip (that's widely shared on the 'net) is that there doesn't seem to be an easy way to export the calendar from iCal to a format that a palm can use. I've found some hacky ways and some tools, but I don't know how well they work or if they'll mess up Laura's palm something awful. Anyone with a better solution (even if it's only a one way process from iCal to palm)?
Note: looking for a solutions for a WinXP box, hopefully free. So, iSync and the "The Missing Sync" are classed as runners up. ;-)
I think the killer feature of this tool is that it is great for collaboration. Since the work for events is usually managing it between different people, it doesn't make sense for n different people to keep n different copies of the same event. But that's not news to anyone.
My only grip (that's widely shared on the 'net) is that there doesn't seem to be an easy way to export the calendar from iCal to a format that a palm can use. I've found some hacky ways and some tools, but I don't know how well they work or if they'll mess up Laura's palm something awful. Anyone with a better solution (even if it's only a one way process from iCal to palm)?
Note: looking for a solutions for a WinXP box, hopefully free. So, iSync and the "The Missing Sync" are classed as runners up. ;-)
Labels:
tech
Monday, 26 June 2006
Too funny
Just when you'd wish you brought a hammer with you, someone comes up with a generic solution. Scott Adams, what haven't you taught us?
Labels:
interesting read
Saturday, 24 June 2006
A bit sad...
I was in staples yesterday and had a bit of a sad moment. I was checking out the games in the bargin bin and my computer can't even run those. *sigh* Ah well. I'll have to wait for the Wii.
Update: checking out what titles are launching with the Wii, Rayman Raving Rabbids (with screen shots 1, 2, 3) looks sooo funny and Red Steel looks like fun for a shooter. Either way they all look really pretty and a huge upgrade from my current game console.
Update: checking out what titles are launching with the Wii, Rayman Raving Rabbids (with screen shots 1, 2, 3) looks sooo funny and Red Steel looks like fun for a shooter. Either way they all look really pretty and a huge upgrade from my current game console.
Labels:
tech
Thursday, 22 June 2006
Google Map Pedometer
A friend pointed me to the gmap pedometer which is a tool that uses google maps. It's not actually made by google, but it's pretty cool. You can save your routes, like our running route. Some of the lines are a bit rough in that map because I was having troubles with the app (it wouldn't make another way point) and I got frustrated. Ah well. It's pretty cool over all. Later I'll figure out how long our biking route is. ;-)
Labels:
tech
Wednesday, 21 June 2006
Cube Farm was never meant to be
Something was pointed out to me: the guy who invented cubicles never meant for them to used as they are. No matter how good the intentions are, an invention can always be changed to fit someone else's needs. Usually bean counters, monopolies or governments. Ah well. ;-)
Tuesday, 20 June 2006
QotD - I love work
I really like this one:
I love work. It fascinates me. I could watch it all day.
Saturday, 17 June 2006
Agents of hate and terror
Does anyone else think that Harper is sounding more and more like Bush every day espically when he says sound bites like "agents of hate and terror"?
*sigh* Let's just hope that we don't go that way too. :-(
*sigh* Let's just hope that we don't go that way too. :-(
Labels:
random thoughts
Blue sky
When Laura and I were travelling last summer in Spain and Portugal, after a couple of weeks something was bothering me. Something that I couldn't put my finger on, but just had a feeling that something wasn't quite right. How could something be wrong when the weather was sunny and gorgeous all the time?
After this feeling building up for 3 weeks I was able to figure it out: it wasn't ever cloudy. Ya, sometimes there were wisps of clouds, but it was always sunny and blue sky. Not that I want clouds and freaky weather, but that's what I am used to. Two days of clear weather in Canada is nice but rare. You can usually see big clouds at some point even if it's not going to rain.
I felt comforted when we got to San Sebastian and it was cloudy and cool. That was the first time we had to use our wind breakers in like 3 weeks.
I would never have thought that I would have gotten freaked out my nice weather, but I did. In another post I'll discuss about the food... ;-)
After this feeling building up for 3 weeks I was able to figure it out: it wasn't ever cloudy. Ya, sometimes there were wisps of clouds, but it was always sunny and blue sky. Not that I want clouds and freaky weather, but that's what I am used to. Two days of clear weather in Canada is nice but rare. You can usually see big clouds at some point even if it's not going to rain.
I felt comforted when we got to San Sebastian and it was cloudy and cool. That was the first time we had to use our wind breakers in like 3 weeks.
I would never have thought that I would have gotten freaked out my nice weather, but I did. In another post I'll discuss about the food... ;-)
Labels:
travel
Scary things like microwaves
One of the things that bothering me more and more is the microwave. Yes, that does sound dumb, but I can't help thinking about what kind of damage we're doing to ourselves while we are in the same room as it. What makes me think that it is bad? Well, it was messing up our old 2.4MHz phone, and we "lose the internet" when it takes out our wireless router. Actually, it's very hard for us to use the wireless router around dinner time even if we're not using our microwave. That's what I find scary.
I just wondering how people will react in 50 years when we tell them how we live today. People won't believe how we couldn't know that the things we are doing are really bad for ourselves. I just hope that I am around long enough to tell those "crazy" stories... :-/
I just wondering how people will react in 50 years when we tell them how we live today. People won't believe how we couldn't know that the things we are doing are really bad for ourselves. I just hope that I am around long enough to tell those "crazy" stories... :-/
Labels:
random thoughts
Thursday, 15 June 2006
To house, or not to house...
One of the things that scares me: buying a house. Not because it's scary to have a house (I want one), but it's the cost. Apprently they are at a record high. Does that mean we should hold off for the prices to come down? Are the prices coming down?? If not, should we buy now while we still can?
*sigh* Who knew that we'd be dealing with "grown up" stuff like this. Now to get back to grapevine and mls (which is horrible by the way).
*sigh* Who knew that we'd be dealing with "grown up" stuff like this. Now to get back to grapevine and mls (which is horrible by the way).
Labels:
home life
Tuesday, 13 June 2006
Monday, 12 June 2006
Damn cursors...
Something that a co-worker pointed out to me today which I thought was really cool is the visual hint of html cursors. It's got lots of different properties like , , , , , , (mouse over the words to see what I am talking about).
Using the "pointer" cursor on a html label lets you know that it's clickable. As people know, I love html labels for widgets like radio buttons that can be difficult to target. I just love little helpful tips that add polish to an application. ;-)
Using the "pointer" cursor on a html label lets you know that it's clickable. As people know, I love html labels for widgets like radio buttons that can be difficult to target. I just love little helpful tips that add polish to an application. ;-)
Labels:
tech
Wednesday, 7 June 2006
My God, it's full of <del>stars</del> crap!
Checking some of the (video) content over on myspace and one thing that strikes me: it's all garbage. I thought that blogging was pretty bad (on average) where people dump the random things that happened to them that day, but to allow video? Oie.
The more access people have to publishing content, the more content, but the ratio of quality content can't seem to keep up. It's really quite amazing really.
I'm pretty lazy. My time is important to me. I love content that's been filtered by others like comments on /.. Places that don't have filtered content like the dilbert blog, I don't even bother to skim. I wonder how long till everything is connected, everything is rated. Instead of "street cred", people will have "web cred". Maybe it will be relative web cred so that my friends opinions will be worth more to me (as web cred) than similar people have half way around the world... oie. I am sure that someone else has thought long and hard about this and have written sci-fi stories or a thesis about it. Either way, it's time for me to stop my current brain dump.
The more access people have to publishing content, the more content, but the ratio of quality content can't seem to keep up. It's really quite amazing really.
I'm pretty lazy. My time is important to me. I love content that's been filtered by others like comments on /.. Places that don't have filtered content like the dilbert blog, I don't even bother to skim. I wonder how long till everything is connected, everything is rated. Instead of "street cred", people will have "web cred". Maybe it will be relative web cred so that my friends opinions will be worth more to me (as web cred) than similar people have half way around the world... oie. I am sure that someone else has thought long and hard about this and have written sci-fi stories or a thesis about it. Either way, it's time for me to stop my current brain dump.
Labels:
random thoughts
Tuesday, 6 June 2006
Happy 666!!
It's been hell today... just joking! Happy 06/06/06 to everyone. ;-)
Lip service has negative value
I feel that lip service has negative impact on all the things that you do. It's worse than not saying anything at all. Specifically I am talking about processes at your job.
Let's make up an example. Let's say you have 2 processes, people have to: 1) check tests in with their code and 2) write their name on the whiteboard as the last person that checked code in.
Arguably process #2 might not be as useful. So people stop doing it consistently. Then it stops being done at all. New people come join the group and have to learn what processes are done, which ones are bent, and which ones are ignored. I think that this leads to a thought process of "well, if process #2 is optional, maybe #1 is as well". Ignoring one process is a broken window and will quickly lead to more being ignored.
If you have a process, there has to be some kind of audit or automated check. If there isn't, that means it has to really make sense why you are doing it so that it's not really a process, it's just "the way things are done". For processes without audits or 100% buy in, you have to question why you actually have it if it's not important enough to check that it is being followed.
I think that for all processes, every once and a while you should be asking yourself:
If you have a process that is almost universally ignored, all that you are doing is weakening the other processes. It's a strange case where the whole is less than the sum of the parts. Back to our example, rather than having said anything about process #2, it's better to not have said anything at all rather than risk that people start to not check in tests with the code. But with that process, if there is no audit, no enforcement, that too will soon be an "optional" process. No matter how strong the process, there must be someone around to check for cracks starting before you have a flood on your hands.
Let's make up an example. Let's say you have 2 processes, people have to: 1) check tests in with their code and 2) write their name on the whiteboard as the last person that checked code in.
Arguably process #2 might not be as useful. So people stop doing it consistently. Then it stops being done at all. New people come join the group and have to learn what processes are done, which ones are bent, and which ones are ignored. I think that this leads to a thought process of "well, if process #2 is optional, maybe #1 is as well". Ignoring one process is a broken window and will quickly lead to more being ignored.
If you have a process, there has to be some kind of audit or automated check. If there isn't, that means it has to really make sense why you are doing it so that it's not really a process, it's just "the way things are done". For processes without audits or 100% buy in, you have to question why you actually have it if it's not important enough to check that it is being followed.
I think that for all processes, every once and a while you should be asking yourself:
- does this process still make sense in our current env
- how much value does it bring
- how much does it cost
- could we be doing a different process for a greater ROI
If you have a process that is almost universally ignored, all that you are doing is weakening the other processes. It's a strange case where the whole is less than the sum of the parts. Back to our example, rather than having said anything about process #2, it's better to not have said anything at all rather than risk that people start to not check in tests with the code. But with that process, if there is no audit, no enforcement, that too will soon be an "optional" process. No matter how strong the process, there must be someone around to check for cracks starting before you have a flood on your hands.
Labels:
random thoughts
Monday, 5 June 2006
Faster, Stronger, Better...
When someone tells me that I am the resident expert of anything, I laugh. Not because of the explanation of what an expert is (an "ex" is a has-been and a 'spert is a drip under pressure), but because I can't seriously see me in any kind of role like that right now.
Don't get me wrong, I like being able to share my knowledge with other people. But to look at the stuff I have done as a shinning example? hahah... No. I can't believe that for the simple fact that I would no longer try and do a better job. I have to believe that I can do my job better. To make my apps faster, stronger, more robust, better tested, easier to maintain.
I can't let my skills stay where they currently are. I have to read more, learn more, do more. There isn't an option.
Don't get me wrong, I like being able to share my knowledge with other people. But to look at the stuff I have done as a shinning example? hahah... No. I can't believe that for the simple fact that I would no longer try and do a better job. I have to believe that I can do my job better. To make my apps faster, stronger, more robust, better tested, easier to maintain.
I can't let my skills stay where they currently are. I have to read more, learn more, do more. There isn't an option.
Saturday, 3 June 2006
My Cubicle
If you work in a cube, you would probably like the song this guy linked to. Pretty funny.
In other news, I'm going to stop using trackback. No one ever tracks back to me (other than Ryan or myself), so I don't seem much point.
In other news, I'm going to stop using trackback. No one ever tracks back to me (other than Ryan or myself), so I don't seem much point.
Tuesday, 30 May 2006
Dangers of biking to work
The biggest danger biking to work isn't biking in traffic. It isn't the cars, vans, dilivery trucks, buses, or other bikers. It's the people walking along listing to their music. I try not to bike on the side walk, but there are a few places where I have to (along the transit way). Now, I understand why if you're listening to music you might not hear someone ringing a bell. But for frigging sakes stay at one side of the path! And I don't care which one, just pick one!
I think that it would be easier to avoid drunks in the market on Saturday night than "normal" people walking along not paying any attention to the world around them. *sigh*
I think that it would be easier to avoid drunks in the market on Saturday night than "normal" people walking along not paying any attention to the world around them. *sigh*
Labels:
rant
Monday, 29 May 2006
Happy Year 3!!
It's been 3 years so far... I guess this is the last year that this anniversary will be important... ;-)
Labels:
home life
Sunday, 28 May 2006
T minus 363 d
We just passed our negitive one year anniversary. Weee!! Needless to say, wedding planning is on our minds. I just find it so weird though... some of the traditions of a "typical" wedding don't feel applicable to us. I guess we're part of the "new norm" of couples living together for a couple of years before tying the knot.
Examples? Well, like not seeing the bride before (or on) the wedding day. Or picking out gift suggestions for "our new life" together when we've already bought everything that we need or use for day to day. What about invitation's? Most communication I have about parties is done with email or by phone. What's so bad about sending out an e-invite for people to come? *sigh* I think that I just don't get it. I know it's a very important day, but sometimes I feel that we're asking the barber if we need a haircut: they'll always say yes.
Examples? Well, like not seeing the bride before (or on) the wedding day. Or picking out gift suggestions for "our new life" together when we've already bought everything that we need or use for day to day. What about invitation's? Most communication I have about parties is done with email or by phone. What's so bad about sending out an e-invite for people to come? *sigh* I think that I just don't get it. I know it's a very important day, but sometimes I feel that we're asking the barber if we need a haircut: they'll always say yes.
Labels:
home life
Thursday, 25 May 2006
You can't compare two Booleans...
I've been tracking down a problem with the CompareToBuilder that's part of commons lang. If I had a boolean in my class, and if used the reflectionCompare method it was throwing a ClassCastException. It didn't make any sense to me.
Then I took at look at the source (soooo useful!) and I finally figured it out I think. (btw, a great site for seeing source of OS projects is this one).
At one point in the commons lang project they have this line:
comparison = ((Comparable) lhs).compareTo(rhs);
which was throwing a ClassCastException. Both lhs and rhs are "Objects". Can you see the problem?
When doing something reflexivly Java casts primitive types to their wrapper types (boolean become Boolean and int becomes Integer). I'm using Java 1.4.2 and Boolean doesn't implement Comparable. Doh!
Sometimes I really wish that they just made compareTo part of the Object class...
Then I took at look at the source (soooo useful!) and I finally figured it out I think. (btw, a great site for seeing source of OS projects is this one).
At one point in the commons lang project they have this line:
comparison = ((Comparable) lhs).compareTo(rhs);
which was throwing a ClassCastException. Both lhs and rhs are "Objects". Can you see the problem?
When doing something reflexivly Java casts primitive types to their wrapper types (boolean become Boolean and int becomes Integer). I'm using Java 1.4.2 and Boolean doesn't implement Comparable. Doh!
Sometimes I really wish that they just made compareTo part of the Object class...
Labels:
work
Friday, 19 May 2006
Thursday, 18 May 2006
There's always an excuse...
I can always find an excuse for not running, biking, going for a walk, ... just about anything. My excuse this week? I don't want to bike in thunder showers. And every day this week they have said that it will!! Grrr.... arrggg... I should just suck it up. *sigh*
Tuesday, 16 May 2006
Monday, 15 May 2006
Sorting it all out
One of the things that I learned in the last month or so is that sorting in different languages, with accented characters, isn't the same. :-( I'm going to outline a case-insensitive example in Java and Oracle and my experience with that.
With Oracle as a back-end, if I wanted to order by a String column I would call the upper (or lower) method on the field to return a sorted list. I knew that this was a bit of a hack because some (European?) languages have strange conversions from upper to lower case. I remember reading that's why they made XML case sensitive...
So, with the work that I was doing I run some sql (or hql) with something like "... order by (UPPER(col_name))" and in my test suite I would check that it was sorting correctly by using a case insensitive comparator. Now, to find out that it will not work you just have to read the documentation. But course I never thought that it applied to what I was doing.
Here's an example: if you have the names "BÈretta" and "Butler", the default in Java and using upper in the db are both to return "BÈretta" after "Butler". Not correct in a French locale.
To sort it correctly in Oracle, you should do something like:
"order by nlssort(col_name, 'NLS_SORT = FRENCH')"
To sort it correctly in Java, you would have to use a collator like the RuleBasedCollator. Example:
Collator collator = Collator.getInstance(Locale.CANADA_FRENCH);
// make the ordering case-insensitive
collator.setStrength(Collator.SECONDARY);
The Collator is actually very interesting because you can put different emphasis on different parts of the sorter. Really kind of cool.
With Oracle as a back-end, if I wanted to order by a String column I would call the upper (or lower) method on the field to return a sorted list. I knew that this was a bit of a hack because some (European?) languages have strange conversions from upper to lower case. I remember reading that's why they made XML case sensitive...
So, with the work that I was doing I run some sql (or hql) with something like "... order by (UPPER(col_name))" and in my test suite I would check that it was sorting correctly by using a case insensitive comparator. Now, to find out that it will not work you just have to read the documentation. But course I never thought that it applied to what I was doing.
Here's an example: if you have the names "BÈretta" and "Butler", the default in Java and using upper in the db are both to return "BÈretta" after "Butler". Not correct in a French locale.
To sort it correctly in Oracle, you should do something like:
"order by nlssort(col_name, 'NLS_SORT = FRENCH')"
To sort it correctly in Java, you would have to use a collator like the RuleBasedCollator. Example:
Collator collator = Collator.getInstance(Locale.CANADA_FRENCH);
// make the ordering case-insensitive
collator.setStrength(Collator.SECONDARY);
The Collator is actually very interesting because you can put different emphasis on different parts of the sorter. Really kind of cool.
Labels:
work
Sunday, 14 May 2006
Friday, 12 May 2006
Security over Freedom
Pretty much this whole /. thread is a good read, with the following being the best part:
"The masses almost always value security over freedom until they have so little of either a revolution is born."
"The masses almost always value security over freedom until they have so little of either a revolution is born."
Labels:
interesting read
Sunday, 7 May 2006
Why use an applet?
Okay, I don't get why the census 2006 requires you to have the Java JRE with specific browsers and OS's. I don't get why they can't do this kind of thing with just the browser. What's not good enough with the encryption that the banks and just about every online presence uses? Why do I have to run an applet to fill out a form with radio buttons and text fields? PITA.
Maybe there's a great technical reason for it, but from my point of view it's just inconvenient, annoying and makes me think that it was a "lazy" decision. Stupid heads...
Maybe there's a great technical reason for it, but from my point of view it's just inconvenient, annoying and makes me think that it was a "lazy" decision. Stupid heads...
Labels:
rant
Saturday, 6 May 2006
Serenity
I was out in the Ottawa River today paddling around in a kayak in the rain. Only for like 5 minutes, but I felt such a sense of serenity just to be out in the water for a couple of minutes. *sigh* That's something that I'll have to work in my daily routine. I could do with the peace.
Btw, it looks like Serenity is a popular boat name...
Btw, it looks like Serenity is a popular boat name...
Labels:
random thoughts
Thursday, 4 May 2006
Happy Star Wars Day!!!
Everyone loves Star Wars Day, which of course is May the Fourth. hahhaha... God, I love that joke.
Another interesting fact:
This morning, at precisely one hour, two minutes, and three seconds after midnight, it is the last time in 1000 years that the time and date can be written as:
01:02:03 04/05/06.
Another interesting fact:
This morning, at precisely one hour, two minutes, and three seconds after midnight, it is the last time in 1000 years that the time and date can be written as:
01:02:03 04/05/06.
Wednesday, 3 May 2006
For those Amazing Race fans...
I think that they would like this quote from Carissa Gaghan (from TAR 8)
Monica is a big sissy pants because she is afraid of a little crayfish. Maybe when she was little some big bad crayfish stole her lunch money.hahahaha.... gotta love the 10 year old making fun of the 20 (?) something chick... too funny.
Tuesday, 2 May 2006
hee hee...
Ah, someone that hit the nail on the head commented on /. about the Nintendo changing it's new console's name from "Revolution" to "Wii"... too funny...
Taking at day off...
It looks like it is an awesome day to run, but I'm skipping it today. Biking into / out-of work is a bit of exercise, but adding a run everyday to that might be too much at first. I think that I'll run tomorrow after I have given my legs some time to rest up.
Next step: to get some cycling panniers so I don't have to wear a backpack which is hard on the shoulders and makes things a bit more difficult. I'm looking at a couple at mec: option 1, option 2. They are going to be about the cost of one month's bus pass, so I think that I am okay with the cost. ;-) What I'll try and do this weekend (at the latest) is some general bike fix-up including putting on the kickstand that I bought last year. Only time will tell if I get my ass in gear and get this stuff done. The possibilities are endless now that I have paid my taxes.... :-P
Next step: to get some cycling panniers so I don't have to wear a backpack which is hard on the shoulders and makes things a bit more difficult. I'm looking at a couple at mec: option 1, option 2. They are going to be about the cost of one month's bus pass, so I think that I am okay with the cost. ;-) What I'll try and do this weekend (at the latest) is some general bike fix-up including putting on the kickstand that I bought last year. Only time will tell if I get my ass in gear and get this stuff done. The possibilities are endless now that I have paid my taxes.... :-P
Labels:
running etc.
Friday, 28 April 2006
What do you bring?
One of the things about working on many small or medium projects is that you sometimes hand off what you've done to someone else while you start something new. Yes, you can advise the new people, but now it's their project. Everything brings something unique to the table, good or bad. Most people bring a mix of both.
So sometimes it's hard to look at something that you have done and see that people are not working how you would have. They're not following the process you set up. *shrug* There's nothing that you can do about that if they know about the process. You can guide, you can suggest, but in the end it's someone else's project now and that can be hard to remember sometimes.
So sometimes it's hard to look at something that you have done and see that people are not working how you would have. They're not following the process you set up. *shrug* There's nothing that you can do about that if they know about the process. You can guide, you can suggest, but in the end it's someone else's project now and that can be hard to remember sometimes.
Thursday, 27 April 2006
Dilbert blog QotD
To put that in capitalist overlord economic terms, the fourth yacht-hooker of the day doesnít make you that much happier than the first three.From the dilbert blog.
Wednesday, 26 April 2006
"Long overdue"
To quote ryan's BulletBlog: long overdue. What the hell am I talking about? It's Canadian musicians getting together and saying that suing their customers or DRM isn't the solution to file sharing. That in fact it's been shown that people who share their music are more likely to go out and buy music.
I just love Steven Page's interview on Canada AM. Gotta love the artists that know if they keep on providing great content, they'll be okay. It's just great to know that there are people like CMCC who are looking out for music's best interest.
Update: now I see that it's also a slashdot story.
I just love Steven Page's interview on Canada AM. Gotta love the artists that know if they keep on providing great content, they'll be okay. It's just great to know that there are people like CMCC who are looking out for music's best interest.
Update: now I see that it's also a slashdot story.
Labels:
movies and music
Sunday, 23 April 2006
Pissed off...
I got hit with a bunch of comment spam. Not so unusual in itself. They refered to blogger pages that would redirect to a porn site. Now if I get spam from mySpaces or some other service, I try to report the abuse. Not so with blogger. I have to have a blogger account to write to them, and I can't use the "mark as questionable" part on the blogger page 'cause it redirects. *sigh* I understand why blogger to trying to have the masses mod it's own content, but it doesn't help me to contact them.
</rant>
If anyone has a blogger account and feels like reporting the abuse for me, I'll send them the list of 1600 ish bad accounts.
</rant>
If anyone has a blogger account and feels like reporting the abuse for me, I'll send them the list of 1600 ish bad accounts.
Labels:
blog
Saturday, 22 April 2006
Life of Luxury
One of our friends lent us a dishwasher. Not that we're allowed to have one, but we've got it. We've only done one load, but it was so nice to be able to wash dishes like that... no more glasses or plastic for me!! (those are clearly the most hated items to hand wash). That and the fact that it gives us more counter space as well as somewhere to put the dishes that have not been washed yet... by adding an appliance, my kitchen just got bigger. ;-)
The thought that makes me sad though? We'll be returning it in like 6 weeks. *sigh* What we'll have to do is replace the void left by the dishwasher with a house. Let the house hunting (that we can afford) begin!
The thought that makes me sad though? We'll be returning it in like 6 weeks. *sigh* What we'll have to do is replace the void left by the dishwasher with a house. Let the house hunting (that we can afford) begin!
Labels:
home life
Saturday, 8 April 2006
We won a trip!! (sort of)
Last night we got a call from great vacation destinations saying that we had won a trip after having entered a ballot at the wedding show last weekend. We filled out every ballot that we could there, so it was possible that we won. Woo-hoo!
It sounded great. 7 night vacation. It included a 2 night cruse, 3 nights in orlando, a rented car for a week, tickets to disney land. Somewhere in their spiel there was a 3 night vacation to cancun and 2 days in Las Vegas. Sweet.
All we had to do is pay the small administrative fee that we "knew about already" and the airfare. But what a vacation! Let me tell you more about it!
If you didn't pick up on that, our "free vacation" turned into a "fee vacation". Oh, and we'd have to sit through a small 2 hour sales pitch at one point of the trip. What was the price of this admin fee you ask? 399 USD per person. All we had to do is tell her our credit card number. Oh ya, we weren't allowed to hang up and call her right back.
So we were like "no, we can't afford it right now" to which the sales girl responded "that's why we put it on your credit card, so you can pay it back in little chunks". Riiiight. No thank you. For anything that we win, I don't expect to have to pay several thousand $ to take advantage of it.
So, in other words we didn't take advantage of it. Laura also pointed out that on their website, the "contact us" and "about us" links aren't even active. Doesn't inspire confidence that it's not a scam. I think that it's as close to a scam with it still being legal. Another funny thing that the sales girl said: that we "won" because we fit the right demographic. I'm a little sad 'cause that means we are in the "young and stupid" demographic. Ah well.
It sounded great. 7 night vacation. It included a 2 night cruse, 3 nights in orlando, a rented car for a week, tickets to disney land. Somewhere in their spiel there was a 3 night vacation to cancun and 2 days in Las Vegas. Sweet.
All we had to do is pay the small administrative fee that we "knew about already" and the airfare. But what a vacation! Let me tell you more about it!
If you didn't pick up on that, our "free vacation" turned into a "fee vacation". Oh, and we'd have to sit through a small 2 hour sales pitch at one point of the trip. What was the price of this admin fee you ask? 399 USD per person. All we had to do is tell her our credit card number. Oh ya, we weren't allowed to hang up and call her right back.
So we were like "no, we can't afford it right now" to which the sales girl responded "that's why we put it on your credit card, so you can pay it back in little chunks". Riiiight. No thank you. For anything that we win, I don't expect to have to pay several thousand $ to take advantage of it.
So, in other words we didn't take advantage of it. Laura also pointed out that on their website, the "contact us" and "about us" links aren't even active. Doesn't inspire confidence that it's not a scam. I think that it's as close to a scam with it still being legal. Another funny thing that the sales girl said: that we "won" because we fit the right demographic. I'm a little sad 'cause that means we are in the "young and stupid" demographic. Ah well.
Labels:
home life
Monday, 3 April 2006
Great Security
A co-worker sent this article to me and I thought that it was so funny... that's why I think that it's good to have developers who have some testing experience (in a QA group). They'll have a "better" mentality. One of "how can we break this" rather than "how can we make this work".
Oie.
Oie.
Labels:
interesting read
Wednesday, 29 March 2006
Really Good Thought Experiment
I've been reading the dilbert blog by the author of dilbert. He's really quite a good writer. He published a book in 2001 called God's Debris and now he's offered it online for free. I've read it and liked it a lot. I'd say if you've got a little bit of time, give it a read. ;-)
My only complaint? Now I want to read the the sequel. ;-P
My only complaint? Now I want to read the the sequel. ;-P
Tuesday, 28 March 2006
Obscure IE "features"
Ever get to the point with a problem where you're like "I give up" but then go back and google it one more time? Well, it worked for me today and I am very happy. ;-)
Apparently IE will only send "button info" along with a form (when you click enter in a text field) if there is more than one text field. How did I figure this out? MS spec? No. Message board? No. Someone's blog entery? Yes. ;-)
God, I love the net.
Apparently IE will only send "button info" along with a form (when you click enter in a text field) if there is more than one text field. How did I figure this out? MS spec? No. Message board? No. Someone's blog entery? Yes. ;-)
God, I love the net.
Validate every page
A co-worker showed me a plugin for FireFox that validates as you go. I think that this is great because it helped me quickly find bad html and let's me fix it as I go. I very much perfer trying to keep on a constant quality rather than go through a big "fix cycle". ;-)
Labels:
work
Monday, 27 March 2006
My Porsche pulls to the right...
One thing that has bothered me lately is the mislabeling of concepts. Let me explain with an example:
I've got a Porsche. It's a good little car, but not what I would really expect with the name "Porsche". I tell my friends that I drive a Porsche and they are all impressed. They think that I am hot shit and I agree with them: Yes, I am hot shit. If something goes wrong, I read about how to fix my Porsche and what helpful suggestions other Porsche owners have. However, these suggestions have not been very helpful: I usually end up finding my own solution for the problem. Did I mention that it doesn't perform as well as the Porsche dealer said it would? I'm not exactly happy and am thinking about switching back to my old Ferrari. And the weirdest thing about my Porsche? It says "Ford Focus" at the back. Weird.
...
Yes, that was a long winded example. My point is no matter what you have, it's in your best interest to describe it as best you can. If you're calling it something that it isn't, any help you seek won't be as relevant as if you had just described what you actually have. If everyone is on the same page with an accurate view of the current state of affairs, you're more likely to make productive progress.
I've got a Porsche. It's a good little car, but not what I would really expect with the name "Porsche". I tell my friends that I drive a Porsche and they are all impressed. They think that I am hot shit and I agree with them: Yes, I am hot shit. If something goes wrong, I read about how to fix my Porsche and what helpful suggestions other Porsche owners have. However, these suggestions have not been very helpful: I usually end up finding my own solution for the problem. Did I mention that it doesn't perform as well as the Porsche dealer said it would? I'm not exactly happy and am thinking about switching back to my old Ferrari. And the weirdest thing about my Porsche? It says "Ford Focus" at the back. Weird.
...
Yes, that was a long winded example. My point is no matter what you have, it's in your best interest to describe it as best you can. If you're calling it something that it isn't, any help you seek won't be as relevant as if you had just described what you actually have. If everyone is on the same page with an accurate view of the current state of affairs, you're more likely to make productive progress.
Labels:
rant
Saturday, 25 March 2006
V for Vendetta
Remember, remember the fifth of November
The gunpowder treason and plot.
I see no reason why gunpowder treason
Should ever be forgot.
Laura and I watched V for Vendetta this week. It wasn't what I was expecting at all. It was excellent though, I really enjoyed it. It's weird because you are rooting for the terrorist... I don't want to say too much about the movie. I'd rather people saw it without any preconceived ideas.
I had no idea about the 1605 gunpower plot or anything about Guy Fawkes. Really interesting. Sort of makes me wonder just how much history we're forgetting about and how much we're dooming ourselves to repeat.
Labels:
movies and music
Thursday, 23 March 2006
Censorship
Do I censor this blog? Yes. I'll delete any comment that I think is spam. I'll even get rid of any post that I really don't feel is appropriate, but I've only had to do that once or twice.
Just so we're all on the same page. ;-)
Just so we're all on the same page. ;-)
Labels:
blog
Belly who?
Supposedly this question has caused churches to break up and other messed up things.
Going on the assumption that God created Adam and Eve as a template for all people that followed; did Adam or Eve have a belly button? If he didn't (since he was made out of dust) does that mean that we're not really the same as Adam? Of if he did, where did he get it from?
But I think that this question leads to a bigger issue: if God doesn't approve of popsicles without sticks, then why would He tolerate freeze pops to exist?
Discuss.
Going on the assumption that God created Adam and Eve as a template for all people that followed; did Adam or Eve have a belly button? If he didn't (since he was made out of dust) does that mean that we're not really the same as Adam? Of if he did, where did he get it from?
But I think that this question leads to a bigger issue: if God doesn't approve of popsicles without sticks, then why would He tolerate freeze pops to exist?
Discuss.
Labels:
random thoughts
Wednesday, 22 March 2006
Java Quiz
Bonus points to anyone who knows what the results of this will be without running it or looking at the documentation. ;-)
For anyone interested, here's the documentation.
public void testTrue() {
String str = "true";
boolean expected = true;
assertEquals("not what you expected?", expected, Boolean
.getBoolean(str));
}
public void testFalse() {
String str = "false";
boolean expected = false;
assertEquals("not what you expected?", expected, Boolean
.getBoolean(str));
}
Labels:
tech
Monday, 20 March 2006
Shirt and Tie
I wore a shirt and tie, dress pants and nice shoes into work today. My reason? To mess with people's heads for fun. ;-) All morning has been "where's the interview?" When I tell people that there is no interview and I just did it randomly just for fun, no one believes me. They go "sure you are... *wink*"
Ya, I find it funny. Yes, today is a good day: the elevator was empty going into work today... god, I love messing with people's heads sometimes. And no, I am not going to explain that last comment. :-D
Ya, I find it funny. Yes, today is a good day: the elevator was empty going into work today... god, I love messing with people's heads sometimes. And no, I am not going to explain that last comment. :-D
Labels:
work
Saturday, 18 March 2006
525 600 minutes...
365 days is 525 600 minutes. But google says 1 year is 525 948.766 minutes. Humm... who's right? Probably google. ;-)
Labels:
random thoughts
Pigs Pens and Ball Bearings
A math teacher friend gave me a puzzle the other day. I'll post her's and one that I heard too. In a couple of days I'll post the answers if no one has gotten it.
First Problem:
You have 27 pigs that you must place in 4 pens. Each pen must contain an odd number of pigs (zero is not an odd number). You can't have 1/2 pigs or anything like that.
Second Problem:
You have 7 ball bearings and an equal arm balance. One ball is slightly heavier than the others. What is the fewest number of weighings that you will need to find the heavy ball?
First Problem:
You have 27 pigs that you must place in 4 pens. Each pen must contain an odd number of pigs (zero is not an odd number). You can't have 1/2 pigs or anything like that.
Second Problem:
You have 7 ball bearings and an equal arm balance. One ball is slightly heavier than the others. What is the fewest number of weighings that you will need to find the heavy ball?
Thursday, 16 March 2006
Java Puzzlers
If you're doing something in Java, you might be interested to check out Joshua Bloch's new book Java Puzzlers. I checked out the interview and free chapter and it was an interesting. A lot of the problems seem a bit obscure, but that's why they made a book! ;-)
It's a good place to see how not to do things. Some of the problems would have been solved by either following the "things to do" outlined in Effective Java or not doing weird byte operations.
It brings up a point in my mind how KISS is such a good design concept and how "being clever" causes more problems than it solves most of the time. When someone describes their architecture as being "neat" and how they'll have to explain it sometime sets a red flag in my head: if you have to set aside time to explain the architecture then it's probably more complex than you need it.
It's a good place to see how not to do things. Some of the problems would have been solved by either following the "things to do" outlined in Effective Java or not doing weird byte operations.
It brings up a point in my mind how KISS is such a good design concept and how "being clever" causes more problems than it solves most of the time. When someone describes their architecture as being "neat" and how they'll have to explain it sometime sets a red flag in my head: if you have to set aside time to explain the architecture then it's probably more complex than you need it.
Wednesday, 15 March 2006
Using that edumacation
One of the things that has struck me lately is just how much I use what I learned at school every day, just about. My degree just didn't "teach me how to learn" crap that you tell the arts students, but so much more. I find that I am able to use material from 1st year all the way to 4th. It's awesome. Some people are like "wow, that's a great idea! I won't have thought of that." to which I usually reply something like "Ya, I wish I had been the guy to think of it too... that's what they taught us in school".
I'm not trying to promote UofO or anything. I'm just so happy that whoever worked on planning the courses we took (which I grumbled about at the time with the best of them) did a good job. Yes, there were gaps which I believe they have been working on to fix since we left, but I'm still happy with the result.
What percentage of people actually apply and use what they were taught in school? Probably pretty low for most programs. We're the lucky ones.
I'm not trying to promote UofO or anything. I'm just so happy that whoever worked on planning the courses we took (which I grumbled about at the time with the best of them) did a good job. Yes, there were gaps which I believe they have been working on to fix since we left, but I'm still happy with the result.
What percentage of people actually apply and use what they were taught in school? Probably pretty low for most programs. We're the lucky ones.
Labels:
school
Monday, 13 March 2006
Gross
Do you have those automatic doors on the bathroom at your work? I do. I guess it makes them wheelchair accessable and all that. Some people perfer to hit the button with their hip so they don't actually have to touch the door.
Okay, I'm cool with that. You don't want to touch the "dirty" door handle. I'm cool with that, I can relate.
What I don't get is that a lot of time the people who use the button are the same who don't wash their hands. YUCK! So, you're a dirty SOB and don't want to get germs from other dirty SOB's? Gross. I really wish that there was some kind of electric shock for not washing your hands when leaving the bathroom...
</rant>
Okay, I'm cool with that. You don't want to touch the "dirty" door handle. I'm cool with that, I can relate.
What I don't get is that a lot of time the people who use the button are the same who don't wash their hands. YUCK! So, you're a dirty SOB and don't want to get germs from other dirty SOB's? Gross. I really wish that there was some kind of electric shock for not washing your hands when leaving the bathroom...
</rant>
Labels:
random thoughts
Saturday, 25 February 2006
1984
After seeing a slashdot comment, it really made me think... quite scary how society could easily become 1984.
Feel that?
Did everyone feel the earthquake last night? We did. That was the first time that I have felt an earthquake and not thought that it was just a truck going by. It rumbled for a while. We heard it more than we felt it after the initial shake. Sorta cool and scarry at the same time.
Labels:
home life
Monday, 20 February 2006
The Great Digitization
Something that I wanted to do for a little bit is start to archive all my families photos. This isn't a small task, we're talking of 1000's of slides to start with, not including all the prints and negitives.
One solution is to get a bulk slide scanner, but I think that's a lot of money for something with a super specific task. As soon as I would finish, then scanner is going to be useless to me. So at this time I am leaning towards a flatbed scanner with a slide / negitive / print attachement. I figure that would be the best way to go.
Now I have to think about storage. I'm thinking of using RAID, but have no experience of this right now. So, the plan that's currently in my head is to either wipe my linux box and put WinXP on it or I can try and use linux to do the scanning. It's a little bit of an older computer and I would have to put in a USB 2 connection in it...
Why do I want to do this? Am I just nuts? That discussion aside, it's because I want to know who is in the pictures, and the only way to do that is ask the people who know while they are still around. Otherwise the pictures will just in some drawer or box not to be seen by anyone. If they are digitized in some way, then we can make DVD presentations, slide shows, ... just about anything.
I just feel like it's something more, something of a record of the journey our my families life rather than just the same old Birth Marriage Death (BMD) info. Either way, it's a big task and it's something that I'll start early. I just have to start with one single step... ;-)
One solution is to get a bulk slide scanner, but I think that's a lot of money for something with a super specific task. As soon as I would finish, then scanner is going to be useless to me. So at this time I am leaning towards a flatbed scanner with a slide / negitive / print attachement. I figure that would be the best way to go.
Now I have to think about storage. I'm thinking of using RAID, but have no experience of this right now. So, the plan that's currently in my head is to either wipe my linux box and put WinXP on it or I can try and use linux to do the scanning. It's a little bit of an older computer and I would have to put in a USB 2 connection in it...
Why do I want to do this? Am I just nuts? That discussion aside, it's because I want to know who is in the pictures, and the only way to do that is ask the people who know while they are still around. Otherwise the pictures will just in some drawer or box not to be seen by anyone. If they are digitized in some way, then we can make DVD presentations, slide shows, ... just about anything.
I just feel like it's something more, something of a record of the journey our my families life rather than just the same old Birth Marriage Death (BMD) info. Either way, it's a big task and it's something that I'll start early. I just have to start with one single step... ;-)
Labels:
home life
Saturday, 18 February 2006
Friday, 17 February 2006
Thursday, 16 February 2006
Helpful advice
Laughed when I read this guys advice on how to best manage code. Pretty funny. Almost as funny as the root question.
Warning One Three Three Four
I just wanted to pass along a warning to everyone. If you are buying a box set of dvd's or movies, check that it contains what it should. A couple of days ago I just bought the Firefly series (ya, only 1 season). It's a four disk set and I have disks 1, 3, 3, 4. No #2. I called BestBuy (where I bought it) and they don't have any more right now, I'll have to go to the other store. *sigh*. So if you can see what's in the box set, spend the extra 2 seconds to check.
Labels:
movies and music
The good and the bad
I just thought that this was funny:
the guardÌan of worlds vs the destroyer of worlds
It looks like the first link has now been changed to a "private" page. :-(
the guardÌan of worlds vs the destroyer of worlds
It looks like the first link has now been changed to a "private" page. :-(
Sunday, 12 February 2006
Uphill is harder than it looks
A couple of people invited us to go cross country skiing in gatineau park. I've just recently gotten skis. So this is the second time in 8 years (the other was a couple of weeks ago) that I have gone out skiing. We kept it to 10 km 'cause I didn't know if I could handle going 20. I probably could have, but it's best to "ease" into this kind of thing.
I took a couple of pictures, but it's hard to take pictures when you are trying to keep up with the group. If anyone is interested, we started from parking lot P16 where at the start there is "a bit of a hill". Holy freaking crap. The biggest hill I had x-country skied before that was the septic hill at my parents house. I was sliding backwards having a tough time. I got passed by a guy going up pulling his kid.
Anyways, after a while I figured out things better. I still was slipping a lot but it's all good. It's really nice there, but the 6 $ / person is a little high to be going all the time. Especially when we can just cross the street and ski along the rideau river. Not quite as nice, but the drive is shorter. ;-)
I took a couple of pictures, but it's hard to take pictures when you are trying to keep up with the group. If anyone is interested, we started from parking lot P16 where at the start there is "a bit of a hill". Holy freaking crap. The biggest hill I had x-country skied before that was the septic hill at my parents house. I was sliding backwards having a tough time. I got passed by a guy going up pulling his kid.
Anyways, after a while I figured out things better. I still was slipping a lot but it's all good. It's really nice there, but the 6 $ / person is a little high to be going all the time. Especially when we can just cross the street and ski along the rideau river. Not quite as nice, but the drive is shorter. ;-)
Labels:
running etc.
Tuesday, 31 January 2006
Newest spam technique
I don't know if anyone has noticed, but this blog is being hit a lot lately by comment spammers. I've been keeping up to it, so I don't think it's that bad right now.
The problem is they are not linking directly to their spam pages, but linking to a google group, or a yahoo group, or to a msn spaces.
Now, I don't want to block those domains, so right now I don't have an automated way to fight the spam. *sigh* I've reported a couple of those groups to msn or google, but I don't think that's the best way to keep up with it.
Spammers are evil. I want to reach through the ether and smack them upside the head. It's just another battle in the Spam Wars.
The problem is they are not linking directly to their spam pages, but linking to a google group, or a yahoo group, or to a msn spaces.
Now, I don't want to block those domains, so right now I don't have an automated way to fight the spam. *sigh* I've reported a couple of those groups to msn or google, but I don't think that's the best way to keep up with it.
Spammers are evil. I want to reach through the ether and smack them upside the head. It's just another battle in the Spam Wars.
Labels:
blog
Sunday, 29 January 2006
Thursday, 26 January 2006
Oie...
From cbc.ca on issues deployment of military icebreakers in the Arctic in order to assert Canadian sovereignty.
"There's no reason to create a problem that doesn't exist"... "We don't recognize Canada's claims to those waters..."
-- David Wilkins, U.S. ambassador to Canada.
Labels:
interesting read
Subscribe to:
Posts (Atom)