Wednesday, March 29, 2006

谈话不烹调米。

Tan hua bu peng diao mi.

Monday, March 27, 2006

Feeding the Furnace

For a few weeks after I got back from my trip to Seattle, I noticed I just didn't seem to have the energy I used to in karate class. I was still practicing the same amount of time as usual, but I just felt a lot more worn out. I was trying to figure out what it was - at one point I thought maybe it was a change in the weather or air quality, but I think I finally figured it out. I wasn't eating enough food. Before the trip to Seattle, I was eating 4 meals a day - I'd have breakfast before work, then around 10:00 I'd take a break at work and go to the cafeteria and get another breakfast, then I'd have a big lunch, and then supper later at night when I finally got home after karate class. At some point, I got out of the habit of getting a second breakfast at work. It wasn't until someone asked me if I had lost weight that I considered maybe I wasn't eating enough.

So, for the past few weeks I've resumed getting a second breakfast and now noticed I have a lot more energy in karate class. As a double-check, I also tried using a calorie measurement program to figure out how many calories I should be getting, and sure enough, based on the amount of time I spend practicing karate, I should be getting at least 3500 calories a day to maintain my weight - which is a bit hard to do with just 3 meals a day and is actually about what I'm getting with my 4 meal a day plan. Karate is listed as one of the highest calorie burning exercises in the calorie counting program. It lists it as burning 12 calories per minute - that's significantly more than hockey (9) or tennis (singles:6, doubles:9) and is about the equivalent calorie buring of running at a speed of 6 miles per hour.

If you are looking for an exercise program that is interesting, challenging, and helps you stay fit, I'd highly recommend karate. As I've mentioned in the past, there are also many benefits besides the physical fitness aspects. For more information, check out this web site.

Sunday, March 26, 2006

Rewired

I really don't like sitting idle. As a result it seems I always try to have something to do to fill up my free time on the weekends. This weekend's project was some minor electronics rewiring at my condo. I have DSL for Internet access, which means my Internet access is located wherever I happen to have a phone jack. The problem is, my condo is in an old (1800's) mill building that was renovated in the 1980's. As a result, it was not designed for computer networking. Heck, it doesn't even seem like it was designed very well for telephone access. For example, there is no phone jack in the kitchen, but there is one in the bathroom. What's up with that?

Anyhow, since there are limited locations for phone jacks, I decided to see what I could do to improve the situation. After poking around looking at holes in walls where existing wiring was, I eventually discovered that all the telephone wires branched off one master wire located in a utility closet that contains my hot water heater and furnace. Basically, there was just a bundle of spliced wires hanging behind the hot water heater. Not very well organized, to say the least. So, to improve things a bit, I went out to Home Depot and picked up a telephone bridge board. It's just a simple junction board that allows all the telephone wires to be punched down to a common base. This way I can easily label them and know which wire goes to which room. Also, DSL requires a filter to be put on any line that has a telephone (so the voice calls don't interfere with the DSL Internet signal on the same wire). Normally you put these special filter plugs on each phone jack. The plugs are kind of big and clunky looking, so I figure putting just one in the utility closet before all the wires head out to the phone jacks will simplify things quite a bit.

Here's a picture of the telephone bridge board. I haven't yet attached the DSL filter.



After wiring up all the telephone jacks to this bridge board, I then just ran one DSL specific line (i.e. an unfiltered wire) to another closet for my DSL modem. My laundry closet is right next to the furnace utility closet, so I figured that would be a good enough spot for the DSL modem. I just wanted a place that would be out of the way and there was already a hole in the wall from when there used to be a gas line for the dryer, so it was easy enough to run a wire between the two closets. In this picture you can see the DSL modem mounted on the wall of the laundry closet.



After wiring the DSL modem in the laundry closet, I then just needed to run an ethernet cable to a location which would be convenient for my wireless router and hub. I choose my living room. The living room is pretty much in the center of my condo, so the wireless signal would provide the best reception to all the other rooms on each floor. Plus, I have a wired ethernet MP3 player that I had been wanting to connect to my stereo. I've had this MP3 player for several years, and in the past I had enjoyed using it for playing music from Internet radio stations (such as Radio Paradise). Unfortunately, since it is several years old, it isn't wireless, so it requires a direct-wired ethernet connection for Internet access (which meant in the past it had to be whereever I had a phone jack). Ever since I had turned my original living room into a dojo last year, I had to moved my DSL connection to a different location and as a result I haven't had a nearby wired ethernet connection available for hooking up this music player in the new living room. But, now I will! I just have to drill a couple holes in some walls for running the ethernet cable from the DSL modem in the laundry closet to the living room.

In this picture, you can see the beginnings of making the outlet jack for the ethernet cable. The cable was being fished from a hole in the bottom of the other side of the wall (in a closet). I lowered some bead chain through the outlet hole and then just pulled it out the hole on the other side of the wall. Bead chain is convenient to use because unlike string, it will hang strainght down, so if you know you have the holes lines up with each other (at different heights), the chain can just be lowered through the top hole and pulled out the bottom hole.



After fishing the bead chain through the hole, I then attached some string to the chain and attached the string to the ethernet cable and pulled it all back out the hole. It was then just simple matter of putting on a faceplate and it all looked neat and tidy. This picture shows the end result.



The oulet box actually has a second port (which is currently filled with a blank), but I plan on running a phone line to it at some point so then I'll have telephone access in my living room. Technically I could use a pair of wires in the ethernet cable for the telphone signal (the ethernet cable has 8 wires in it but only 4 are used for the ethernet signal), but that would require me to splice the wire on both ends and make some Frankenstein-like cable with both an RJ-45 and RJ-11 plug on one end. I'd rather just run a second cable specifically for telephone.

This final picture shows the finished setup with my wireless router and the small Slimp3 MP3 player sitting on top of it. Finally I have music again in my living room.



(Ick! Sorry about the odd word-wrapping around the edges of the photographs. I was experimenting with different sized photos and apparantly I picked a bad size for this layout.)

Happy Birthday Mom!


Today's is my mom's 82nd 67th birthday. If you happen to see this lady today, wish her a happy birthday.

Tuesday, March 21, 2006

Making a Bo Rack

This past Sunday I had a lot of free time, so I decided to make a bo rack for my home dojo. I was originally inspired by the idea of making a rack for the dojo where I take karate classes, since it would be useful to have one in the area where everyone leaves their coats and such, but I found out someone else is already working on one. So, I thought it would still be fun to make one for home. It's not that I have more than one bo, but at some point I might - and if anyone ever comes to visit, and they happen to have a bo with them, there wil be an available spot on the rack for their bo. :-)

Making the rack was a pretty straightforward process, although it did make a bit of a mess of my dining room. Saw dust just seems to get everywhere. I live in a condo with no garage or basement, so I have to make do with the space I have. In this case, I used my dining room table as my workbench.

I first started out by measuring one of the bo racks at the dojo to get an idea of the dimension that actually worked for spacing of holes, distance from the wall, etc. I then found some scrap wood at home (left over from a previous shelving project) that would be usable for this project - a 12" wide by 3/4" thick pine board and a smaller 1.5" x 3/4" strip of pine.

I then took the 12" wide board and drilled 1 1/8" diameter holes, evenly spaced 3/4" apart. The holes were also 1 7/8" away from the edge of the board. Since the scrap wood was long enough, I drilled nine holes. This series of holes would be later cut down the middle (cutting each hole in half) so as to make the top portion of the rack.



While I was drilling the holes through the board, I noticed the board was often splintering where the drill popped out the other side of the board. I then thought of the idea of partially drilling a hole from the opposite side of the board to reduce the chance of the board splintering when the hole was complete. In order to do this, I just had to first drill a small pilot hole completely through the board so I would have a guide hole to ensure the large holes would line up properly. This can be seen in the following picture. (If you look closely at the rightmost hole, you can see the splintered edge.)



After I drilled all nine holes, I then used a table saw to cut the board down the middle, bisecting each hole - resulting in a long strip of wood with nine half circles. I also cut off the other remaining nine half circles as another strip of wood, just in case I might need to make another rack at some point (or if I made some major gaffe during the making of this one, I had some extra pieces to fall back on).

After cutting the wood that would be used for the top portion of the rack, I then made the base. For now, I just used some of the remnants of the 12" wide board and used the strip of wood with the half circle pieces as a guide for where to drill sunken holes. These holes were all made 3 1/2" from the edge of the board. This would ensure when the top piece was mounted on the wall, the holes on the base would be positioned so the bo had a slight lean to it to stay in the rack, but not too much a lean as to lead to warping of the bo over time. I only had a spade bit for making sunken holes, so I had to be careful not to make the holes too deep, otherwise the tip of the bit would pop through the board. Ideally, I would have liked to have used a fostner bit since the tip doesn't protrude as much, but the only one I had was 1" wide. And fostner bits are a tad expensive so I didn't go out and buy one. This picture shows the base board with some of the sunken holes drilled.



After this process, I now had the raw material for a rack that could hold 9 bo. Since that was way overkill for my home use, I then cut the boards in half, leaving two 4 hole pieces. (The extra hole was sacrificed to give two boards with 4 uniformly spaced holes. If I tried to make one board with 5 holes and another with 4, one hole on each board would have been too close to the end of the board.) I also cut a piece of the 1 1/2" x 3/4" pine board that was long enough to act as a backing for the top portion of the rack with all the half circles.

After all the cutting was finished, it was just a simple process of sanding, staining, and then applying a couple coats of polyurethane. I found a Dremel tool was very handy for sanding the half-circles and the sunken holes on the base. I stained the wood Sunday night, and applied coats of polyurethane the past two mornings. This picture shows the pieces drying after the stain had been applied.



After the polyurethan had dried, I drilled a couple holes in the back of the rack so it could be hung on the wall. This picture shows the final product.



One thing I discovered is the angle of the bo might need to be adjusted. I don't think the bo is upright enough. The problem is I didn't take into account the 3/4" thickness of the baseboard trim in my condo, so the holes in the base of the rack in relation to the top of the rack are 3/4" further out than I planned. This can easily be fixed by sawing off 3/4" from the base so the holes are then closer to the wall. I just don't want to get saw dust all over the dining room again, so I'm putting off this final step until this weekend.

Sunday, March 19, 2006

A Fool and His Money

One thing I really have a hard time with is controlling my spending habits.  Don't get me wrong - it's not that my spending is totally out of control.  I do pay off my credit card balance in full every month, but I find I'm still spending money on frivilous things. (Hmmm... the dictionary definition for frivolous does seem very appropriate for my situation: not having any serious purpose or value.)  

In an attempt to help control my spending, I plan on posting periodic lists of my non-essential purchases for all to see. My hope is that by listing all my purchases here for my family, friends, and total strangers to read, I can try to embarass myself into making better purchasing decisions and perhaps not be so consumer oriented.  Either that or it'll make a nice inventory list for someone who wants to rob me. 

So, with no further delay, here's the first of my brief descriptions of non-essential purchases for the past week or so.

Purchase block #1, via Best Buy
Howl's Moving Castle: ($16.99) DVD of the recent Miyazaki animated film
My Neighbor Totoro: ($16.99) another Miyazaki film that was just released on DVD
Seven Years in Tibet: ($9.99) DVD of the movie telling the story of Austrian Heinrich Harrer and his meeting with the teenage Dalai Lama in the 1940's
I'm a big fan of the animated films by Hayao Miyazaki, so when I heard two more of his films were released on DVD, I went to Best Buy to get them. I'm not sure why I felt I really needed to actually own them, but I've already bought all the other Miyazaki films on DVD, so it's kind of turning into a collecting thing. Not that that justifies the purchase. And the Seven Years in Tibet purchase was an impulse buy. I had heard good things about the movie from several people and it was relatively cheap, plus it was the Super Bit version (with extra high quality video). But, since I don't even own a TV and can only watch DVD's on my laptop which has a 12" screen, I really don't need the "extra high quality video". And as is the case with most DVDs I own, I seldom watch them more than once, so I'm not sure why I have this desire to own copies of them.

Purchase block #2, via The Gamekeeper in Providence, RI
Tichu ($9.99)
Ingenious ($34.95)
Santiago ($37.95)
Anyone who knows me fairly well will know I tend to have an obsession with board games. I own about 300 different games. They're not the typical games that come to mind when most Americans think of board games (i.e. Monopoly, Risk, etc.). They tend to be a bit more strategy-oriented and in general are more friendly and social in gameplay - players usually aren't eliminated during the course of the game, and the games tend to be playable in an hour or so. There's a decent introduction to this style of games at this web store: Funagain.com. But, even though I do enjoy playing board games, I don't get the opportunity to play them very often anymore. So why do I have so many games? It's something I'm now wondering. Even if I played one game a day, it would take about a year to play all the games I own. And this begs the question, why did I just buy 3 more games? They are good games, but it's unlikely I'll get to play them any time soon.

Purchase block #3, via Toys-R-Us
Worms 4 Mayhem($19.99)
Heroscape Expansion Pack($15.99)
On my lunch hour this week I wandered over to Toys-R-Us and ended up making these two impulse purchases. I have enjoyed the Worms video game ever since the first version came out for the PC many many years ago, so when I saw a new version for the XBox was available, I bought it. The odd thing with this purchase is this - I seldom use my Xbox. I used to play video games excessively, however since starting karate a year ago, I rarely play them. In fact, until about a month ago I hadn't even turned on my Xbox in about a years time. (I suppose not having a TV helps in that regard - there's nothing to conveniently hook the Xbox up to unless I take it to someone else's house). So why buy a game I don't even expect to play very often? And as for the second thing I bought while at Toys-R-Us, it's a board game expansion for a game I own, but it's a game I haven't played in at least a year. So why did I buy this?

And finally, the purchase that I'm most embarassed of and really got me wondering what the heck I'm spending my money on:

Purchase block #4, via Toys-R-Us
Nintendo DS w/ Nintendogs game bundle($150)
Puyo Pop Fever($29.99)
Guesstures($24.99)
Yes, you read that right. I actually bought the Nintendo DS with the Nintendogs game. What the heck was I thinking??? Up until a couple of days ago, I never even considered the idea of buying this game system. What piqued my interest was a conversation I had with a friend at work. She was talking about how she thought it would be nice to have a puppy, but she really didn't want all the actual obligations that go along with it, so she would never really get one. So I jokingly suggested she get a virtual pet - then she could just play with it when she wanted to, but since it's not a real life, she wouldn't have to feel bad about neglecting it. I even went so far as the show her the web site for the Nintendogs game. I had never actually seen the game before (I had only heard of it), so when I went to the web site I was quite surprised at how cute this program actually is. And that was what started the idea of actually buying the game. Over the next few days I kept bouncing the idea around in my head - it made no sense at all, yet it was still something I wanted to get. And the more I thought about it, the more I wanted to buy it. I started to make justifications that there were other games I would also like to own that also used the Nintendo DS, so it would justify the expense of the new game system. Hey, I thought, there's a new Worms game coming out for it. And that Puyo Pop puzzle game is a lot of fun, and there's a version of Bomberman that works on it, and I could play Mario Kart with my nephews over the Internet, and, and, and... Eegads! Talk about a bunch of weird rationalizations. So, after a couple days of weird rationizations, on this past Saturday when I had too much free time on my hands I stopped at the toy store and picked up this game system, along with a copy of Puyo Pop, and yet another board game - Guesstures. (To be technical, Guesstures is more of a party game, there's no board. ) Granted, the Nintendogs game is quite cute. But it's certainly not something I needed. Besides, I'd much rather have a real dog. Unfortunately they don't allow real dogs at my condo. Which brings up the idea of yet another purchase... maybe I should get a house...

Gah! I really need to get back on track with my Zen meditation. Talk about a great example of a lack of control of my desires.

Monday, March 13, 2006

Jumping Icons

One of the most amusing features that I've seen so far with Mac OS X is the jumping icon.  I'm not really sure what the official name of it is, but it is basically a less obtrusive way for a program to get your attention.  If you are familiar with MS Windows, you are familiar with the pop-up dialog boxes that programs can throw up on the screen when they need your attention.  The problem with them is when they pop-up, they usually grab the current keyboard focus, so if you are busy typing away and a dialog box pops up because some program wants your attention, you might accidentally dismiss it before you get a chance to read it.  On the Mac, instead of throwing a window up in your face, the icon for the program that wants your attention starts hopping around on the bottom of edge the screen.  It's kinda cute, and gets your attention in a way that doesn't require you to immediately drop what you are working on, but since it keeps hopping, you also are not likely to accidentally forget the program is still waiting for your attention.  It's a very simple idea, but it's makes a big difference.

Sunday, March 12, 2006

Red Sky at Morning, Sailor Take Warning


For some reason I woke up up briefly this morning at exactly 6:00 AM, just in time to see a rather pleasant sunrise. It was interesting to see how quickly the whole scene changed in just a few minutes. Had I woken up 5 minutes later, I never would have known there was a beautiful sunrise today.

I'm not sure of the real accuracy of the saying about "red sky at morning", but coincidence or not, it did seem accurate today. What started out as a bright sunny morning quickly turned grey with periods of rain throughout the day.

Saturday, March 11, 2006

My First Mac Program

Well, it's not really pretty, but I managed to convert my artificial life program from the MS Windows platform to the Mac. Fortunately, the program had originally been written in C++ and used OpenGL for the graphics, so it was mostly portable. The only part I had to change was the initialization of the graphics display window. On the MS Windows enviroment, I was doing a bunch of messy things on startup dealing with graphics contexts and such. For the Mac, I switched over to using GLUT, which greatly simplified the initial graphics startup, and as a side effect the code is now pretty much completely portable for other platforms that also use GLUT. There really isn't any Mac-specific code.

This porting was mainly done as a learning exercise so I could gain some familiarity with the Xcode development environment on the Mac.

If you have a Mac running OS X and are interested in trying it out, you can download the binary here.

After downloading the disk image, open it and drag the "Soup" folder to whereever you'd like. Then run the "Life" program located in this Soup folder. Once the program is running you can press the "up" arrow key to switch to fullscreen, or the "down" arrow key to return to window mode. You can also resize the window by dragging the lower right-hand corner (like most Mac windows). Pressing "ESC" will exit the program. (As a side note, I'm not sure whether it's the Mac's compiler optimizations or what, but the program runs dramatically faster on my 1.5 Ghz Powerbook than on my 2.5 Ghz MS Windows-based Dell which I use at work.)

I had been goofing around with making an installable package with the PackageMaker program that Apple provides, however it seemed like overkill for this simple program. It seems easier to just let someone drag a folder whereever they want rather than go through a whole install process. I still need to figure out how to make the Life program have a different icon than an executable shell and also get rid of the console window that pops up when the program is run.

If you are interested in the source code for this program, feel free to contact me. I should note, however, that it is not at all pretty. It was written over 5 years ago when I was just tinkering with some ideas for artificial life algorithms. It was mainly a stream-of-consciousness thing done over the course of a day or two, and the code never got cleaned up after that initial burst of inspiration. As such, expect to see lots of examples of bad coding. At some point I might actually clean the code up and make it more presentable, but there are just too many other things I'd rather spend my time on.

Friday, March 10, 2006

Watch out for low flying birds

Not that you shouldn't be paying attention while driving, but now you should be paying extra attention. It's that time of year when the birds have things on their mind other than looking out for cars. 

Apparantly as part of some courting dance, this morning a pair of robins were performing chaotic aerial acrobatics by the side of the road while I was driving past.  As bad timing would have it, they decided to move the performance into the middle of the road forcing an abrupt braking on my part.  The good news is the robins managed to fly under my front bumper unscathed. Also good news is my catapulted Mac laptop survived its unexpected crash flight off the front seat into the firewall.  (No, I wasn't using the laptop at the time - it was in a bag.)

Thursday, March 09, 2006

nihilism

Based on the point of view I've recently been expressing in some conversations with a friend at work, she suggests I should replace my Buddha quote on the right side-bar of this page with the following dictionary definition:

ni·hil·ism
Pronunciation: 'nI-(h)&-"li-z&m,
Function: noun
Etymology: German Nihilismus, from Latin nihil nothing
1 a : a viewpoint that traditional values and beliefs are unfounded and that existence is senseless and useless b : a doctrine that denies any objective ground of truth and especially of moral truths
----

It is an interesting philosopy and from a purely logical point of view it does make sense, but I'm not sure I'd really call myself a nihilst.  Granted, I might sometimes give this impression, but it's mostly just all in good fun. I tend to have a dark, self-deprecating sense of humor at times. For example, yesterday when this same friend was returning an empty coffee pot to me (that had once been full of jelly beans) she said something along the lines of "Hey, I found something of yours that is fragile and empty," (in reference to the coffe pot) and I responded with, "Is it my soul?"  But it was just a joke. Really. 

I just need to get back to remembering the whole "live the present moment wisely and earnestly" thing.   

Monday, March 06, 2006

Ultimate Geek Computer


Well, I must confess, I recently did a bit of self-indulgent spending - I bought a 12" Mac Powerbook. Why a Mac? There are several reasons. The first is while in Seattle I got the chance to use a friend's Mac and really grew to liking it. At first it was a bit awkward coming from a Microsoft Windows world, but I quickly appreciated the slick design of both the physical machine and its software functionality. Coincidentally, when I got home from the trip, my 3+ year-old Dell laptop began to misbehave (as can be seen in this picture of its garbled video screen).

So that, combined with a decent tax return, pushed me over the edge and I decided to make a new PC purchase. Over the past couple years I had read a bit about the new Macs based on OS X. While the graphical interface is probably what the Macs are best known for, for me a strong selling point was behind the scenes these machines are now running a version of Unix. I had been using Unix-based systems for over ten years in my previous job, and I knew there are a lot of interesting things you can do with a Unix-based system. It's probably not something most computer users would care about, but for someone who is a programmer, and a compuer hobbiest, having a Unix-based computer offers a lot of potential. Combine that with the very nice software that comes with a Mac and I made my decision.

Friends at work have jokingly told me I've gone over to the "dark side", as the Mac is better known for graphic arts and design. But, if they took the time to see what you can do with these OS X systems, they would realize it is a very nice toy... errr.. tool for computer geeks, too. It's amazing the amount of flexibility Apple has designed into this thing. Almost every program that comes with the Mac has the ability to be automated using a scripting language called Applescript. For example, for publishing photos on this blog, I used to have to manually resize my photos and save them as web-sized copies, then upload them to my web server, and then make sure I remembered what I named them on the web server so I could reference them in my blog entry. Now, I have it all automated via a simple Applescript which I wrote. I just click on one or more photos and choose to run them through my script. Behind the scenes, the Mac automatically makes smaller-sized copies of the photos, sends them to my web server, and copies the name of the files to my clipboard so I can just paste the image reference into my blog. What used to take me several minutes now takes literally 1 or 2 seconds.

One downside of all this is it's just too much fun learning all the underlying details of this system. Since I have very little free time as it is, I find I've been staying up a bit later than I should lately trying to learn more about the system. I was recently surprised to discover Apple even includes a full software development system for free with the Mac. In a folder aptly named "/Developer", there is a program called Xcode which is a full interactive development environment (IDE) for writing software in C/C++, Java, and a few other programming languages. Very nice!

So, if you like tinkering with computers and are in the market for a new system, I'd highly recommend you consider a Mac.

Sunday, March 05, 2006

Raven Study

Since I took so many pictures of a raven, I figured I'd post a few of them. I find it interesting how the feathers look almost like fur in certain areas of the bird's head.




On a side note, if I had to pick a favorite bird, it would probably be the raven. They are quite intelligent, in fact they are the most intelligent of all the birds. Some people even claim ravens are more intelligent than cats and dogs. Here's a link to an article that gives an example of their intelligence. Also, this article from PBS is pretty good.

Saturday, March 04, 2006

Now I can sleep...


This is just a quick test of my automated processing of a photo to a size suitable for the web, including FTP'ing it and pasting it to my clipboard so I can include it as a link in a blog entry. Let's see if it works...

(BTW: this large raven was just sorta hanging out about 10 feet away from me near the North Cascades National Park in Washington. It was a very curious bird - it must have been used to people as it just stood there tilting it's head at different angles while staring at me. Either that or it was striking some poses for the camera. ;-)