April 20, 2015

Packaging up a Java application on OSX with recent versions of Java

So, I've started hacking on a very, very old project of mine that is a Swing-based Java application. I got it running again on OSX but things have changed a lot since I last was doing much coding on it. It used to be that Apple vended Java for OSX, but now Oracle does, and the way that you package up a Java application as an OSX application has changed.

Oracle has some documentation on how to package up an application, but I have to admit that it took me a lot longer than it should have to get this to work. First, Oracle distributes an Ant task for packaging the JAR. I don't use Ant for my project. Actually, I don't remember how I was packaging up the application before. I think I just hand-crafted some directories and dropped an Info.plist file in there that worked.

I was a bit intimidated by that, but it does look like someone has done things by hand. This also looked pretty complicated.

So I ended up installing ant. I had previously installed homebrew on my machine, so that was as simple as "brew install ant". Then I needed to put together a build.xml. I know a bit about that, but not much. I use eclipse for this project, but haven't done anything smart with how it is set up. It just uses the default java builder. I think I even have it set up to put the compiled code in the existing directory structure with the Java files. Not really great. Anyway, I made a simple build.xml that pulls in the libraries I need and some other resources. When I tried to run the resulting application though, I get a failure:

LSOpenURLsWithRole() failed with error -10810

That was not helpful. Running from the command line didn't help, just output that error. Running via java -jar did help though: it couldn't find some classes it needed. Oh, right, I need to set the classpath in the Manifest file. So if you get that error, check to see if your classpath is set correctly. Remember that when you run something via -jar, the -classpath option is completely ignored, and it takes the classpath from the JAR's manifest file. Here is what my final build.xml looked like:

<project name="GMAO" default="bundle-GMAO" basedir=".">        
    <taskdef name="bundleapp"
             classpath="../GMAO_libs/appbundler-1.0.jar" />
    <!-- See the lib reference here, this is why you need to use the lib directory! -->

	<path id="build.classpath">
	  <fileset dir="${basedir}">
	     <include name="lib/*.jar"/>

	<pathconvert property="manifest.classpath" pathsep=" ">
	  <path refid="build.classpath"/>
	       <globmapper from="*.jar" to="*.jar"/>
	<target name="create-jar" description="Create GMAO Jar">
		<jar destfile="GMAOGUI.jar" basedir="." includes="**/**.class,../common/**/**.class,images/**,docs/**,*html,*xml,*xsl">
				<attribute name="Main-Class" value="com.FuguTabetai.GMAO.GMAOGUI"/>
				<attribute name="Class-Path" value="${manifest.classpath}"/>
    <target name="bundle-GMAO" depends="create-jar">
        <delete dir="appBundle" failonerror="false"/>
        <mkdir dir="appBundle"/>
    	<echo message="JAVA_HOME is set to = ${java.home}" />
        <bundleapp outputdirectory="appBundle"
        	<runtime dir="${java.home}/.."/>
        	<option value="-Dswing.volatileImageBufferEnabled=false"/>
            <!-- The following is important and should point to your build -->
            <classpath file="GMAOGUI.jar" />
            <!-- You can have multiple instance of classpath if you 3rd party or
                 dependent jars in different locations -->
        	<classpath file="lib/TableLayout.jar" />
        	<classpath file="lib/commons-logging-1.2.jar" />
        	<classpath file="lib/helpgui-1.1.jar" />
        	<classpath file="lib/jcommon-0.7.0.jar" />
        	<classpath file="lib/jfreechart-0.9.3.jar" />
			<classpath file="lib/jnlp.jar" />
    		<classpath file="lib/skinlf.jar" />
    		<classpath file="lib/swingfx.jar" />
    		<classpath file="lib/xnap-commons-0.9.5.jar" />
        	<classpath file="lib/xpp3_min-" />
        	<classpath file="lib/xstream-1.2.jar" />
        	<classpath file="lib/gmao_common.jar" />
The Appbundler documentation was useful in adding some additional properties. I know that the build.xml could be better, and I'll probably improve it, but I wanted to note it here because I know in a few years I will want to figure out why I did this.

March 28, 2015

Excruciatingly slow Swing performance while loading / painting images on a Macbook Pro Retina 13" under Java 1.8

So, in my previous post I mentioned that I was doing some profiling of a Java Swing application. The application was super slow. An operation that used to take less than a second (basically loading an ImageIcon and painting it) would take about three minutes (I timed it) under Java 1.8.0_31 on OSX 10.9.5. It made my app very slow to use. Once the image was loaded, things were fine, except some other operations (Java2D Transforms) were unusable. That made the app almost unusable under certain conditions.

I spent some time looking around on the internet, and found lots of people complaining about issues that might be related. Since this application is one that I wrote, I could change it if there was a fix out there.

Mostly discussion focused around Oracle's implementation being OpenGL only, and not using the Mac Quartz rendering anymore. That is something that I've known about since Java 1.6 when Apple dropped their own implementation. That is probably the cause of the problem, but there is nothing that I can do about it, aside from downgrading to Java 1.6, which I don't want to do because I want to be a cool guy living in cool times and using Java 1.8 features and maybe even some closures.

One thread hinted that BufferedImage of TYPE_INT_ARGB_PRE instead of TYPE_INT_RGB are significantly faster. It didn't make a measurable (wall clock) difference in my application. I was disappointed.

The actual problem seems to be with a lack of implementing VolatileImage in BufferedImage. It looks like you can use VolatileImage directly and gain back some performance, but further digging indicated that I could set the JVM Property -Dswing.volatileImageBufferEnabled=falseand for whatever reason, all my performance problems went away. That isn't super useful for software that you distribute because seriously, how many users are going to know how to set JVM properties? I guess once I get around to packaging up my software as an application again I'll be able to set that anyway, but I hope that this is fixed in an upcoming Java release.

It is disappointing to me that Swing graphics had such a horrible regression and it has apparently been around for two Java versions on OSX. I really like Swing because I can run my application on OSX, linux, and Windows (and I sometimes do!) but it doesn't seem like it is getting as much love as it used to. Which is strange, because Android is dominant in the mobile space and clearly graphics performance is good enough there for all sorts of applications and games.

March 8, 2015

Profiling in Java

I've recently started doing some manga translation again, but what that means is that I've tried to get my GMAO program running on my newer MacBook. Just trying to run the OSX app that I packaged a few years back brought up a dialog box asking me to install the 1.6 JRE. I don't really want to do that, we're in the 21st century now, and I want to run Java 1.8. So I downloaded that JRE. Still, I get the message. It turns out that the type of launcher I use (info.plist XML or whatever) is the style that Apple supported which only works with their JRE, which is only available to 1.6. And is more or less deprecated now.

So I found out that if I download the JDK (and just the JRE) I get the command line tools, and then I can pretty easily start up GMAO from the command line from the .app. Which still is far from ideal, so I guess I need to re-package it to use the new launcher format. First though, since I can at least run GMAO on the new laptop, I started to do some translation. Great.

Except, it takes about three minutes (wall clock minutes) to load a new image. That is terrible. It used to take on the order of seconds, if that. So I guess there is something in the APIs that have changed to make whatever I'm doing super slow - I know my code doesn't do anything that should take that long. So I'll have to track that down.

I installed Eclipse and copied my code over. Wow, over 800 warnings. Mostly about non-parameterized types. I should probably fix those. I'm able to compile under Java 1.8 though, so that is good.

Where is all that time going when I load an image? Let's try to profiling. So, I try to use jvisualvm. I can look at the heap and stuff, but CPU profiling is not supported: "failed to create jmx connection to target application". I tried many things, but I just couldn't get things working. I enabled some logging and a net connection was timing out.

RMI uses two ports for communication, which is pretty dumb if you are behind a firewall. Anyway, I don't think that was the problem here, I think it was having trouble finding the host to get the RMI information from.

Finally I found some java options that I could use to get the connection to work. On the JVM running the app I want to profile:

java -Xmx2048m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=3333 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost -Dcom.sun.management.jmxremote.rmi.port=3334 -classpath $CP com.FuguTabetai.GMAO.GMAOGUI
I was able to start up jvisualvm and connect to the JVM that way. The profiling was helpful, but didn't get me as far as I wanted. By the way, if you are on OSX and want to start jvisualvm you can just use jvisualvm, but to run Java Mission Control I had to find out where that binary was:
find /Library/Java -name jmc
/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/lib/missioncontrol/Java Mission Control.app/Contents/MacOS/jmc
Here are some other interesting notes. Using the HPROF option just showed me some garbage, it isn't accurate. See this excellent post for more information about that. This post was super helpful in tracking down my connection problems with JMX. Google might have a nice lightweight java profiler but I haven't read that yet. This stackoverflow post pointed me in the right direction for finding the critical java.rmi.server.hostname parameter (and maybe com.sun.management.jmxremote.rmi.port.) I'll probably need to look more into how to do Java app bundles in this brave new Java 1.8 world.

February 28, 2015

2015 Austin and Dallas trip

Love and War in Texas Lisa and Alan Austin Guacamole sampler Texas State Capital Alan and Austin Mounted Police Texas Capital specific door hinges Texas State Capital Rotunda Texas State Capital Rotunda Texas State Capital
At the end of January, I attended the AAAI conference in Austin, TX. Since my father lives in Dallas, it was a great chance to bring the family and take a bit of a vacation. So, we all flew out from Tokyo to Dallas, about a 12 hour flight. That is quite a bit longer than the 9 or so that we are used to when going to the West coast, but because the flight we were on was direct NRT -> DFW, and the plane left late Alan slept most of the way, and it wasn't really all that bad.

We arrived at Dallas, rented a car, and drove to my dad's place. That first night we had dinner at Love and War in Texas. Lisa got the large beer, and it was very, very large. The steaks were also quite large. That turned out to be a theme all through our stay at Texas, lots of food. Lots of good food.

On Monday we drove down to Austin, a nice four hour drive. We stopped at one of the nice rest areas on the way, and it had a really nice park with a neat playground for Alan to play on. We were on a relaxed schedule and didn't get in to Austin until the evening. I'm not going to talk about the conference - it was a nice conference, and had a lot of NLP that was relevant to work. Interestingly it also had a few robots on display, and Alan really liked watching them. There was a robocup soccer game that Alan thought was great. Robots! Playing soccer!

The next day for lunch I met up with Lisa and Alan, and we walked across the river to 2nd street. We had lunch at La Condessa who had a great guacamole sampler. Lisa and Alan went to Zilker Park once when I was at the conference, and I have photographic evidence that they also went to the Capital building.

One evening we went out and visited from friends who live down by the Whole Foods. We stopped there once or twice over the week, and got some snacks / dinner / breakfast. It is a nice Whole Foods.

Another evening we went out for Ramen. That was certainly and experience. The ramen was pretty good, but the atmosphere was very different from what you get in Tokyo. More like a club with upbeat music and lots of open seating, as opposed to the small, cramped counter-only seating you usually get in Tokyo. It was also a very Austin college crowd. It made me feel old. The ramen was good though.

Midway Food Park Midway Food Park Louie Mueller Barbecue Louie Mueller Barbecue Louie Mueller Barbecue
Another day for lunch we all went out to Midway Food Park, a neat little place where there are a bunch of food trucks hanging out in a park. It was pretty cool. They also had a nice playground that Alan spent some time at.

On the drive back to Texas we detoured a bit and swung by Taylor, Texas to eat a late lunch at Louie Mueller BBQ. That was a great meal - paper for plates, great sauce, really good bbq, nice pickles, really great pulled pork (excellent when you made a little sandwich with the pickles and bread.) The place has had some great reviews, and makes the Texas Monthly list of top 10 BBQs in the state. It was definitely worth the extra 40 minutes or so to head off the highway. The town it is in is also a small, cute country town. Lots of open country on the drive around there too.

TV is corrupting our youth Space Pirates Welcome to America, Texas Style Welcome to Texas Doggy facilities at DFW
Once we got back to Dallas things started to get interesting. Both my twin and younger sisters flew out, and my twin brought her two kids with her. Also, a friend of ours came with her child, and two of Lisa's friends from Japan came for a week. Two of Dad's friends came as well, so there were lots of people in the house. Usually there is only one person there, but at one point there were 14 people staying there!

Alan and his cousin really get along well - his cousin is about a year older, and very active. Alan always enjoys running around with him. On this trip they had lots of fun playing in a spaceship (cardboard box) with their Space Ninja helmets (modified cardboard boxes.) Alan's cousin doesn't watch too much TV at his house (because they don't have a TV) so we probably exposed him to too much of that.

On Superbowl Sunday Lisa's friends arrived. We drove out to DFW and welcomed them to the USA in an appropriate way - with balloons and a US Flag. DFW has an interesting doggy potty facility in the parking garage. We also had a party at Dad's place. I think only one person watched the superbowl - which is probably a record for Texas parties on Superbowl Sunday.

DART to Downtown Mavs Express American Airlines Center Mavs Games Alan and Dave at the Game Three Generations of Evans at the Mavs game Lisa and Alan at the Mavs Game Alan and Lisa at Mavs Game Alan, Lisa, and Dave at the Mavs Game
On Monday February 2nd, I took cousin Scout, Lisa, Alan, Lisa's two friends, and dad to the Mavericks game. They were playing the Minnesota Timberwolves. We took the DART from Plano down into downtown Dallas, and before the game had dinner at the West End Hoffbrau Steak House. I used to really like the place back when they had the Cow Bus that ran from the Steak House over to Reunion Area for the games. I would take mom there every once in a while and we would go to a game together. Anyway, we all went out to the Steak House, and it was good, but unfortunately one of their specialties was out for the night. Still, good food, and they had nice play mats for Scout and Alan to draw on while the adult ate.

We had to quickly catch the DART for one or two stops to get from the West End to Victory Station, but that wasn't too tough. I was really excited to meet Dad at the American Airlines Center because then we had three generations of Evans men watching basketball together! That was great! Alan was excited to watch because I often watch the Mavs back at home, so he recognized the floor there. I was a bit worried that the area would be too loud for Scout, but he had a good time.

The Mavs won, but I don't think that was what was important to Alan and Scout. I think they enjoyed the timeout entertainment as much as anything else, and walking around the arena was fun too. A month later Alan still talks about it - we were up high, "like a tree". They also really liked the popcorn. I'm surprised anyone could eat anything after the large dinner, but we somehow finished off an order of popcorn. I think Lisa's friends enjoyed it too, although I doubt they had ever watched a basketball game before. By the time we got home, Alan and Scout were both exhausted, which made things a bit difficult, but we all managed. It was lots of fun, and I'm sure I'll remember that night for a long time.

Kids at the piano Perot Museum of Nature and Science Perot Museum of Nature and Science Downtown Dallas El Fenix
The next day we took a trip out to the Perot Museum of Nature and Science. It is a really interesting building downtown. The museum was nice. They had an interactive exhibit / ride about shale gas drilling, which was interesting, although it really seemed like they have an agenda to promote there.

After the museum we stopped off at the El Fenix across the street for lunch. Which was great. And there was too much of it.

Panda Nigiri
For dinner Lisa's friends made a vegetarian soup and lots of sushi. One of the cute ones was this panda.
Cooper's Old Time Pit Bar B Que Fort Worth Stockyars Lots of strollers Buggy ride Buggy ride Buggy ride Cattle drive Cattle drive Cattle drive Cattle drive Cattle drive Cowboy Cowboy
The next day was a long drive out to Fort Worth for the Stockyards and the Cattle Drive. It was very nice. I think the weekends would be better, but weekdays there aren't many people so there are benefits either way. The vintage steam railroad wasn't running unfortunately, because Alan would really have loved that. That only runs on the weekend.

This highlight was certainly the cattle drive. Alan and Scout both liked that. I was amazed at how large the horns were on the Texas Longhorns. They are called that for a reason. There are a lot of cattle too. I wonder how much cattle business still goes on there - I know it isn't a small amount.

We didn't have dinner there, but we did have lunch before heading to the Stockyards. We had BBQ at Cooper's Old Time BBQ. It was pretty good, not the best I've had, but pretty good for sure. You could tell that there were a lot of locals there too, just from how they dressed. Seemed like a nice working class place with a bit of a tourist crowd, so more legit that straight up tourist places.

Japanese Facial masks Japanese facial masks Japanese facial masks
Watch the above video first. Then watch the one below. The video below is of us watching the video above and trying to do the Youkai Watch dance.
One evening Lisa's friends passed out some facial masks, which had a bunch of strange patterns on them. Actually, I think Lisa might have picked those up at Tokyo Hands come to think of it. We all put on those. I think they made us more beautiful. One of the things we did with the crazy masks on (besides taking crazy face pictures - it was very late at night) was to do the dance to the Youkai Watch "Youkai Exercise" video. I linked to a video of an English translation of the Youkai Watch exercise video. Youkai Watch is a kid's TV show, basically an updated version of Pokemon with a kid who can see Japanese monsters that are invisible to everyone else in Tokyo. The kid goes around and battles them or something and somehow his watch is involved, I don't really know. It is very popular here. With kids. Anyway, there is a song called "Monster Exercise" and it has an associated dance with it. We tried the dance. There are all sorts of crazy videos on Youtube if you search for "youkai taisou" so try it out some time. Also, try the translation of the video I posted, it is really funny. We had a blast trying to dance to it with monster facial masks on.
Clean Room Alan SMU Cafeteria SMU Wave SMU Meadows Museum

Group photo Family Photo Family Photo Funny photo Group Photo Family Dinner Lots of guests Going back to Japan
Finally, on one of our last days we stopped by Southern Methodist University where I went as an undergrad (along with both my sisters) and where my father still teaches. We stopped by his building, and did a quick tour of the clean room. We also met up with a photographer who took our pictures. Unfortunately, it was raining, but she was great and we came away with some really nice group shots. Since we only get together maybe once every few years i really like that the last time or two we have had professional photo shoots done.

We met up with even more family at the Red Lobster for dinner, and had a great time there. On our last day we all headed to the airport and started the long trek back home to Japan. It was a really great trip to Dallas, and lots of fun to see family. Alan is still talking about all the fun he had with cousin Scout and his Aunts, as well as Lisa's friends who were just great with the kids. We try to facetime with family on the weekends, but nothing replaces actually being there.

January 15, 2015

What is my mail server rejecting?

I've recently migrated my hosting from one VPS to a new host. It was a lot more work than it should have been. I'll try to be much better at keeping my host up to date and maintained.

At any rate, I finally have my mailserver up and running on the new host. I implemented greylisting and some other spam prevention measures. Sometimes I wonder what is being rejected and why. Here is a super simple perl one-liner that can look at the mail.log file and spit out what hosts are rejected, and what the rejection reasons are (independently.)

grep reject mail.log | perl -n -e 'END { foreach my $key (sort {$hosts{$a} <=> $hosts{$b}} keys %hosts) { print "$hosts{$key}\t$key\n"; } foreach my $key ( sort { $reasons{$a} <=> $reasons{$b} } keys %reasons) { print "$reasons{$key}\t$key\n";}} if (m/RCPT from (.*?): .*?: (.*);/) { $hosts{"$1"}++; $reasons{"$2"}++}'

January 2, 2015

2014 Year in Games Review

I thought it would be interesting to look at what games I played this year. I don't mean things like Basketball (which I did play, about once a month with the Amazon JP basketball club) but games on the computer.

I supported a few games on Kickstarter a few years back, and some of them finally came to fruition in 2014. Looking at my Steam page, I've played a few games, 10 with more than 2 hours on them. Too bad Steam doesn't have an option to limit game time by time period, I would love to see how much I play in a year or a month or whatever. I guess that on average, if I can get three hours of gaming a week, that is a good week. Anyway, some of the games shown in Steam I didn't play this year. For example, those 199 hours logged on Fallout: New Vegas were definitely from a few years back, before I had little Alan running around. So what did I play this year? I'll give it my best shot based on a real spotty memory. February 27th: Shadowrun Returns: Dragonfall is the second in the Shadowrun Returns franchise. That came out in July 2013, and I'm pretty sure I played and finished that game then, but the Dragonfall campaign came out in late February 2014. I definitely played and finished that sometime this year. It was great. I really liked the original, it has some things that I really enjoy: turn-based tactical combat, a very interesting setting (I liked Shadowrun back in high school) and a good story. Not a great story, but a good one. The second installment makes some improvements in combat, and really brings a much better story and game structure to the table. There is more freedom in how you decide to tackle objectives, and there is less linearity in the game with more optional quests. Overall a lot of fun. It looks like they are kickstarting a Hong Kong campaign in 2015, and I will definitely back that.

July 30th, 2011: Bastion. This game came out in 2011, but I picked it up in a Humble Bundle at some point, and played it. I think it fell between Shadowrun and Divinity. It was lots of fun! I logged 12.4 hours, and completed the game once (there are two endings, and I think I chose the less popular one.) I keep meaning to go back and get the other ending, but I haven't had the motivation to do it.

June 30th: Divinity: Original Sin is the game that I spent the most time with this year. I logged an amazing 131 hours, which means I put an average of about 45 minutes a day into it since it came out. That isn't quite right, because I would say that 30 or 40 of those hours were actually logged while I was putting Alan down for a nap or otherwise not actually playing the came, but I'm still really surprised that I got that much time logged! I was just able to finish the game a few days before the end of the year (it released on June 30th.)

January 14th: Broken Age. I backed this on Kickstarter and played through the first part at some point. Steam says that I have 4.7 hours on it, and that sounds about right. I enjoyed it, the game has a great sense of humor. I'm not really good at adventure games though, and there was one puzzle solution that took me a long time to figure out. I really enjoyed the voice acting and the humorous lines you get when you try to use things on other things that make no sense. The second part is supposed to be coming out sometime in 2015, and as a backer I will get that too.

???: Dark Souls Prepare to Die Edition. Steam says that I put about 6 hours into this game. That sounds about right. I got out of the tutorial section, and that is about it. I enjoyed it though, and do want to go back and play some more. I just have many other games ahead of this one to vie for my limited time.

June 3rd: Ultra Street Fighter 4. I've continued playing Street Fighter 4, but not as much as I would like. I'm not as good as I used to be. I have trouble on the execution side of the game, and it seems like Capcom keeps bringing Street Fighter further into the heavy execution required side of things. I didn't like when SF4 introduced single frame links, and they keep adding more of those. Also, the new systems like Red Focus and Delayed Standing make you have to pay more attention to subtle signs to be successful. The same thing for hit confirming. I don't like kara-throwing at all, and option selects are ridiculous. If you want to be good you have to learn about all of theses things. I just don't have as much capability in those areas, although I still enjoy the zoning and building predictive models of the other player and exploiting those.

September 19th: Wasteland 2. Steam says that I have 31 hours on Wasteland 2. This is the game that I was most looking forward to. I really enjoy it, I've pretty early in the game, but I like the combat a lot, and love the world and writing. I'm not a big fan of the camera controls and strange viewport that you are limited to. It seems like you can't play it zoomed in because your characters block too much of the view, and zoomed all the way out you miss a lot of the very pretty environments. I don't like the square based combat grid. Actually, I think Divinity: Original Sin did an amazing job with their tactical combat field. They don't have a partitioned battlefield, everything is positionally free and not aligned any kind of (square or hex) grid. They use the computer to keep track of how much movement would cost and have a great UI for displaying how that looks. I wish I had larger character portraits in Wasteland 2 as well, but for the most part I'm very happy with what my kickstarter backing delivered. I'm excited to keep playing this one, but it is the kind of game that I want to be able to sit down and play for an hour or two, and that has made it hard for me to have many sessions with the game.

So that's my year-in-review for games for 2014. I think I had the most fun so far with Divinity: Original Sin, but I also really enjoyed Shadowrun Returns: Dragonfall, and Wasteland 2. It was a great year for turn-based RPGs actually!

November 16, 2014

A trip to Nikko with the family

Toshogu temple
Toushougu Shrine
Toshogu temple
Dad, Dave, Lisa, and Alan at Nikko Toushougu Shrine
Sleeping cat at Toshogu temple
The carved sleeping cat up there is famous for some reason.
Toshogu temple
Alan was enjoying himself, even if I did have to carry him a bit.
Toshogu temple
We saw some of the beautiful fall colors as well.
Toshogu temple
Alan also ran around a lot on his own.
Evans family at Kegon falls
The four of us at Kegon falls
It is a bit messy, but we enjoyed the stay at a traditional Onsen. I do find sleeping on the tatami mat with the thin futon a bit tough, but for one night, no problem!
My dad came to Japan on his way to China for a three day layover. He's headed to China to give a talk at a conference (and based on my recent experience I had some advice for him!) We thought it might be fun to go on a trip, so we did an overnight trip up to Nikko. We piled all four of us into our tiny Mini Cooper (reinforcing the idea that we will need a bigger car if we want to do things like this more often with more people) and took off. Nikko was a nice two and half hour drive from Tokyo.

We made our first stop at Nikko Toushougu Shrine, where we walked up many, many stairs (still, no comparison to the Great Wall of China!) to see the grave of Ieyasu Tokugawa. It was a very impressive temple complex. We walked all over the place, and went to a nice yudofu restaurant for a late lunch. It was all tofu, so dad was able to get along just fine. Actually, now I'm not so sure that what we saw was the grave of Ieyasu Tokugawa. Based on the wiki article, it sounds like there are many shines in which he is enshrined (hah!) So perhaps there is some amount of his ash there, since cremation is very common in Japan. Actually, based on what my father-in-law was saying, burial is now illegal, so cremation sounds like the only reasonable option to me.

After lunch, we piled back into the car and headed up to Kegon falls. It was an amazing waterfall! Lots of water falling from the crater lake of a volcano that formed about 1000 years back or so. I think. Lisa said that it was well known for suicides. I think there are many places in Japan that might be well known for suicides, like the train tracks.

We had reserved an overnight stay at a hot springs resort on the Chuzenji lake. On the drive up, we took a famous road called the Irohazaka road. After the drive and settling in at the hotel we took a dip in the super-sulfurous baths. They were a bit too hot for Alan, but it was quite nice, and dad seemed to enjoy it as well. Afterwards we had a nice dinner, provided in the package (all the Onsen are like this, and include breakfast as well.) The only problem was that it was in the traditional Japanese style, and involved a lot of sitting on the floor. That is a bit tough for dad and I, but we managed. They even provided an all-vegetarian option for him, which was really nice. We all bedded down in a large room in four futons, with a super satisfying sleep given all the walking that we did.

I chatted with the staff to make sure that we could have western seating for the breakfast, which we got. So the next morning was a nice breakfast (assuming, of course, that you don't mind fish and rice for breakfast) before a leisurely check-out. On the drive back to Tokyo we stopped for some gifts (you usually buy some kind of local food / snack for people at home and work when you go somewhere, so we had to load up on those.) The drive was also pretty nice, and we didn't hit much traffic (surprisingly!) The next day Dad flew out to China - but it was great while he was here. Alan is still talking about Grandpa Gary. We'll see everyone again in July 2015 when we go to America (and probably a big road trip there too!)

November 15, 2014

A Business Trip to China

The CCTV building in Beijing
The CCTV building in Beijing. Can you see the air? You normally shouldn't be able to see air.
Tiananmen Square
I really liked the Forbidden City and Tiananmen Square.
Forbidden City
The Chinese Army have some hoops set up in the Forbidden City.
Forbidden City
The Forbidden City is amazing: huge, old, awesome architecture, and better history. Also, crowds! And look at the neutral gray sky; that is what I saw in Beijing for the first week of my visit.
Forbidden City
This long stone dragon carving is from a contiguous stone. I think.
Forbidden City
Upkeep costs on a multi-thousand year old property must be killer.
Forbidden City
This was in the gardens, and she was up on top of some strange stone looking object that had to have been created over a very long period of time in a very manual process. She had to climb over many "do not touch" signs to get up to the top.
Forbidden City
These nine dragons are probably important. I get the feeling that it might be nice to go here on a tour where someone speaks English. Or go here having studied some Chinese history.
The Great Wall of China in Badaling
Up to the Great Wall at Badaling! I highly recommend taking the cable cars, because you are in for a long stair climb otherwise.
The Great Wall of China in Badaling
The Great Wall was amazing.
The Great Wall of China in Badaling
Proof that I was at the Great Wall. (Overlooking the fact that Photoshop now makes pictures almost worthless as far as proving things go.)
The Great Wall of China in Badaling
Narrow stairs within the wall.
The Great Wall of China in Badaling
One last shot of the Great Wall. It really was amazing. I'll just note though that their wall didn't work: I was a dirty foreigner on the wrong side!
I went to China for work a while back. I spent four days at the China office working with our local team there, and then spent the next week in a training session in Beijing. Many of the participants in the training session were from Japan, which was kind of funny. Still, Beijing is only a short flight away from Tokyo (about four hours - almost nothing compared to flying to America!) so it wasn't all that bad. I was excited to go to China, since I had never been there before. I had to jump through some hoops to get a Visa, but it wasn't difficult at all.

What did I think of China? I had a really tough time there. The Kanji looks similar enough to Japanese kanji that I feel like I should understand it, but I don't. At all. The simplified characters make me feel a bit uncomfortable, and they often had characters in n-gram sequences that I just don't understand. I don't know any Chinese at all, and I couldn't communicate one bit. English wasn't super useful either; it was useful at one hotel, but not so much the other. Taxi drivers didn't understand English at all. Before I went to Japan I printed out a little sheet with the possible places that I might want to go (two hotels, work, and the airport) and used that. If it wasn't for that I wouldn't have been able to go anywhere. I actually took the bus to work mostly, and the second week of training was all located at the hotel, so I didn't do much traveling at all there. We did go out as a group a few times to dinner, and we had to take taxis then. That was a real experience. It probably took about 40 minutes to get three taxis. They each took different routes and got caught up in crazy traffic. When we tried to get taxis going back, they wouldn't always stop to pick us up. Or, once we told them where we wanted to go, the driver didn't want to go there, and wouldn't take us. I was amazed. Something like that would never happen in Tokyo.

The air was unbelievable in Beijing. The first week I was there, I didn't see the sky at all. It looked gray and overcast every day. The air was kind of dusty, and I had to constantly clean my glasses. I started to get a persistent cough. I can understand why people would not like the air quality there. On the second week it cleared up a bit, and I was amazed at how many skyscrapers Beijing seemed to have. I thought that if it was a videogame, I would have said that they have terrible pop-in and too much fog turned on. It was really amazing to me. I know that Los Angeles used to have a problem with Smog when we lived there in the early 80s, but they managed to clear it up. I don't know if Beijing is going to be able to make as much improvement because they already have cars with good emissions standards (I assume) and I believe a lot of their pollution comes from factories, which drive a large percentage of their GDP, which makes it difficult to try to cut back on emissions there without having an impact on global competitiveness.

Over the weekend that I was there, one of my friends from work was kind enough to show me around Beijing. We took one day and went to the Forbidden City and Tianeman Square. They were both amazing. The Forbidden City was huge. Unbelievably so. It had some really amazing architecture. You could spend hours walking around there and not see everything. Days probably. One thing I wanted to do was find the Starbucks in the Forbidden City. I never found it. It turns out that it was shut down a few years back by the Chinese government because of concerns about the image. I can understand that. I still really wanted to go to a Starbucks in the Forbidden City. They have some tea shops now, but it just isn't the same.

I really liked Tianamen Square too, but probably for the wrong reasons. The big picture of Mao, all the people, the China Dream, all that stuff is great. But I just kept seeing Chun-Li's stage. No bicycles though, just a bunch of cars. Too bad. Now that I am back and have done some internet searching though, it turns out that Chun-Li's stage never had a picture of the Forbidden City and Mao in the background. I thought I remembered a picture of Chun-Li in front of that exact backdrop, but I was wrong!

Security to get into Tianamen Square was really tight. We had to wait maybe an hour and a half to go through security. There was a person who once immolated himself in the square in protest of something, and the government really doesn't like that. So now they check for people bringing in fuel or something like that.

On Sunday we went to the Great Wall. I don't know if can say much about the Great Wall that hasn't been said anywhere else; it is an amazing wall. We walked up and down it. We actually took a cable car up the wall. I highly recommend that. If you don't take a cable car, you will have to walk up more steps than you can easily imagine. We actually had to walk down those same steps because the cable car shut down at some point for maintenance (and does so daily - watch the schedules!) but going down was bad enough. I am very glad we didn't have to climb up all those steps. I can't imagine trying to breach that wall without steps (or cable cars) and instead arrows coming down at you. Unbelievable.

All that said, the wall didn't work. I was on the wrong side!

Based on my experience at the Great Wall, I think if America builds a huge wall between Mexico and America all that will happen is that we get massive crowds of people taking buses out to the wall to climb around on it. I don't know if that would address the problem that people have with the US-Mexico border. It might be good for tourism though.

The drive back was slow - we hit traffic in Beijing and the two hour drive out turned into a four hour drive back. Crazy.

September 2, 2014

The Magician Trilogy

Lev Grossman's "The Magician's Land" was recently released. I really enjoyed the first two books in the trilogy, The Magicians, and The Magician King. I was looking forward to the conclusion of the trilogy quite a bit, and in preparation I re-read the entire series. It is rare for me to go back and re-read books, and this was my first re-read of the Magicians books. I feel like I understood what was happening a lot better and came away with a better holistic understanding of the story. The re-read helps a lot; the books are rife with references to previous characters and events. There are lots of references all over the place actually, to pop and nerd culture. I had to look up a lot of words as well - I really appreciate the dictionary feature of the kindle, which was one added bonus over the paper version that I read the first time.

Actually, last summer I read a short story in this universe from the "Unfettered" anthology. That was really a lot of fun to read at the time - it really brought back the impact of the series and was a nice short story to tide me over for the release. I was a bit disappointed because it turns out that the short story from Unfettered was in fact a good portion of one of the chapters from The Magician's Land. I wonder if the short story (starring Plum, a character from The Magician's Land) in the "Dangerous Women" anthology is also a part of the book. I'm interested in picking up that anthology, but the price is a bit high now; I'll wait for the mass market paperback edition to force down the Kindle pricing a bit before picking that up.

So, a quick post on some books. If you haven't read the Magicians, and are looking for a smart take on Hogwarts style stuff for adults, check it out. The characters are (intentionally I believe) fairly unlikeable and it takes some work to get through, but it is a really fun series. I really look forward to more in that universe, and might check out Lev Grossman's other work as well.

May 7, 2014

Updating my desktop

The main thing I use my desktop computer for is streaming NBA games via NBA International League Pass. My desktop machine is pretty old, it dates back to at least December 2007 and probably a bit before that, running an Intel Quad Core Q6600 from that time. It has been having a bit of trouble streaming the NBA games. It is running with a Radeon HD2400 Pro passively cooled graphics card, I think. Anyway, I decided that I wanted to update the system. So I decided to go for an AMD build this time, thinking that it would be a bit cheaper, and I've never had an AMD system.

It turned out, as these things always do, to be more complicated than I anticipated. First off, I decided on the processor that I wanted. Might as well get the latest and greatest, so I chose a very new "Kaveri" processor with a nice integrated graphics stack. The particular one I ordered is an A10-7850K. People say that it isn't really a great update over the previous generation, but it still should be many times better than the Q6600 I am currently running. It will also require a lot less electricity. I should also be able to get better graphics performance without a card than I have with a dedicated graphics card. All this is nice because I want the machine to run cool and silently, since I have left it on continuously since 2007.

Since I'm going from Intel to AMD, I will need to buy a new motherboard. The current one is so old that even an Intel upgrade would need a new motherboard, so no big deal there. I've had good luck with Gigabyte, so I chose another one of those that is said to work well with the A10-7850K. That also means I need new memory. So I lined all those things up.

When it got here, and once I was able to find some time after putting Alan to sleep, I pulled the old motherboard and got the new one in there. I installed all the parts and… Nothing happened. Huh.

I checked around on the web, and the processor that I have is so new that you need to update the firmware on the motherboard. Which requires an older processor that does run with it. Well, there are lots of processors that will work with that motherboard, so I got a cheap one (the A6-6400K, which still should be better than the Q6600, maybe) and a few other things. A blu-ray drive to replace the DVD drive that now won't work (no ATAPI interface on the motherboard, or whatever old interface it is using) and a bunch of other things I needed: molex to sata power converter cables, and some molex to motherboard fan conversion cables to see if I could get the two large case fans to be controlled by the motherboard.

When that got here, and I found some more time, I took out the old CPU (shoot, now I need some thermal paste for when I put that back in, so I ordered some of that too) and put in the new one.

Still nothing.


Then I checked a few things, online, and on the motherboard, and wouldn't you know it, I didn't plug in the CPU power connection. So maybe it would have worked with the original A10-7850K (it has been a few months and they might be shipping newer BIOS versions with the motherboard.) I haven't been able to check that because the motherboard posts so fast that I haven't been able to drop it into the bios screen.

Anyway, on first boot with the A6-6400K windows did come up (complained about having a problem, and that it could not fix it, and then rebooted fine) and started to install lots of drivers. I couldn't even get networking going. That was on the Radeon HD2400 Pro graphics card. I shut down after a bunch of drivers were installed and switched to the integrated graphics. That booted up too, and now I have an internet connection. To update the BIOS I need to run a few things, but until the new thermal paste comes, I'll see how well things work on the A6-6400K.

For fun, I installed Steam, and Dark Souls: Prepare to Die edition works on this setup. It probably doesn't have a rock solid framerate, but at 1280x960 (or something like that) it works well enough. Sadly, for some reason my keyboard doesn't bring up the in-game menu so I don't have a good way to quit the game (maybe because I'm using a small apple keyboard, I don't know.)

So now I've spent two days with this machine with the A6-6400K and it is just above and beyond what I had before. Probably because I was able to beat the Asylum Demon though.

Just before swapping in the A10-7850K I re-ran PC Mark7 (1949) and 3D Mark11 (it never actually got a score to me.) Also, I tried Dark Souls in 1920x1200.

Once I got around to swapping in the A10-7850K (and re-installing the drivers to pick up the proper video driver) the PC Mark7 score was 2165 (better, but who knows what that means?) and 3D Mark11 says it was P2030. Concretely, it had 2x the FPS in some of the tests that I noticed, and Dark Souls runs nice and smooth in 1920x1200, so I guess I'll just keep playing it that way.

Seems pretty good overall!

April 5, 2014

Family Trip to Ishigaki

Last weekend, the family went for a trip to Ishigaki, Okinawa. I had never been to Okinawa at all before, and was pretty excited for the trip. Our friend Mibe was getting married, so we flew out Saturday, the wedding was Sunday, and then we stayed through Wednesday.

Ishigaki is about as far South East from Tokyo that you can get and still be in Japan. It is super close to Taiwan. Maybe the embedded Google Map to the left shows that, but I was surprised at how far away it is - a three hour flight from Tokyo!

Alan was super excited to fly on the plane. He had a great time. The ANA flight attendant gave him a cute little airplane toy, which he played with the whole time we were there (and which now I can't find.) Unfortunately, we checked out stroller on as baggage, and it came out broken. Lisa talked with them, and they said they would fix it.

We rented a car and headed out to the hotel. I think you could drive around the entire island in about four hours, and mostly it takes that long because the majority of the island has a 40 km/hr speed limit. We were staying at a nice hotel where the wedding would take place, right on the ocean. They didn't really have a nice beach, but we could walk down to the water, going over a little seawall and down to some rocky shores.

We had some great food - Ishigaki is well known for Beef - and had a lot of Orion beer.

The wedding was outdoors, and beautiful. I'm sure if you know the couple you can find some pictures somewhere. Alan was a trooper and didn't make much of a fuss during the wedding, which was pretty quick as far as those things go. I got sunburned, since I of course forgot to put on sunscreen. As always.

The standouts from this trip include a Glass Boat ride, which Alan really loved. He loved all the boats really - including a ferry we took. On the glass boat ride Alan would point to a fish, and then pretend to eat it, along with the accompanying eating sound.

We had two really nice dinners, one early on at Hitoshi which specializes in Maguro. It was great. We also had a nice Yakiniku dinner, but I can't remember the name of the place.

Another memorable moment was when we took a ferry to Taketomi Island and went on an ox-cart ride. The island is tiny. It was lots of fun though.

We did safely make it back to Tokyo, exhausted. We survived a five day vacation with a two year old, and it was great! I would still like to check out Naha, Okinawa, and see how it compared to Hawaii. I don't know when we will get a chance to do that though.

January 25, 2014

Ugly Japanese fonts in Emacs on OSX

At some point, when I started to use Japanese in Emacs on my Mac (currently emacs verison 24.3.1) Japanese text turned childlike. It is annoying.

I tracked down the problem: if I do something like M-x list-fontsets and the M-x describe-fontset with a likely candidate, I see something like:

  .. 〿 (#x3000 .. #x303F)
㈀ .. 龯 (#x3200 .. #x9FAF)

You can also do something similar by placing the cursor on an ugly font, and do a M-x describe-char and it will show the font that displays the character. In general, the fonts that are used to actually display something is set by the fontset, since not every font can cover every possible character that can be in a buffer.

What is this Wawati? Open up Font Book on the Mac, and take a look. It is some ugly Chinese children's font or something.

Why does that get added as the default font to display characters in the ranges x3000 - x303F and x3200 - x9FAF? That is a lot of characters.

Based on unicode-fonts.el it sounds like the default font you get for an unknown symbol that is non-ascii is pretty random. So this unicode-fonts.el package tries to set some default mappings based on unicode character ranges. I installed some of the recommended fonts from there. I also had to install font-utils. And also ucs-utils. And also list-utils.

Once all of those were installed, Japanese fonts now look a lot better.

Blog0 Comments

August 2, 2013

On the road: Seattle to Dallas in a 1951 Pontiac

View Larger Map

Our pontiac at an old shell station

Under the hood of the 1951 Pontiac

I get under the hood a bit too



Old Faithful Inn

Unstable Ground!


Gary and Dave at Yellowstone





1951 Pontiac in front of Old Faithful


Grand Teton mountains

Yellowstone National Park












1951 Pontiac in front of SMU's Dallas Hall

My dad has two cars that are in Washington state: a 1951 Pontiac, and a 1954 Hudson Hornet. The Pontiac is a car that his dad (my grandfather, Chet Evans) took delivery of when he owned the garage part of the Pontiac dealership (McGillvrae Pontiac, Omak, WA), and he drove it to the dealership from Oregon before it was passed on to the original owner, after Chet installed accessories: seat covers, backup lights and possibly the heater.

My dad then bought that very same car from the original owner (who lived in Okanogan, WA) in 1978 and used it while he was teaching at the UW in Seattle. When we moved back to California in 1979, the Pontiacc was left with Grandpa in Omak, and he drove it with some regularity until the late 1990s, at which time the engine was getting low on compression and the car sat in my grandparents’ garage.

Last year after she passed, we had the Pontiac and Hudson moved to a place near Spokane, where we had work done on them to make them mechanically safe for the trip to Dallas.

The Pontiac has had a lot of work, the engine was rebuilt, the pistons cylinders were bored out, the transmission was re-built, the brakes were re-done, the front suspension was rebuilt, seatbelts were added to the seats, and so on. This summer it was ready, and timing worked out such that I would be in Seattle for work in late July.

So dad and I decided to drive the Pontiac down to Dallas, TX from Seattle, WA to get it where it needed to go.

Table of Contents

1 2013-07-23 Getting Started

I checked out of the hotel at 7:00am, and dad and I loaded up the car. We got on the road, and took I-90 out of town. We made a quick stop in Issaquah and took a few pictures of the Pontiac in front of an old Shell station that we saw there when we met some cousins for dinner once. Things went pretty well on the road, although going over Blewett pass the Pontiac had some trouble, slowing down to maybe 45mph or so. I think that's a pretty good pace for a car that is 62 years old.

We wanted to get some shopping done, but stopped for lunch first at Perkins in Ellensburg, WA.

We had wanted to find a grocery store or something, but got turned around and just ended up back on the highway. We decided to go through to Moses Lake where there was a Walmart super-center, which we thought would have just about everything we wanted.

We got an ice chest, and some ice. Some grapes, bananas, M&Ms, and water. We also got clip-on sunglasses (useful on the road!) some paper towels, mechanic's hand cleaning grease, a bunch of wrenches and a tool set, and a seat cushion for the driver. The seat cushion seemed to help Dad, but seems about the same to me. With the ice chest on the bench seat between us, we were set up pretty good.

Dad also had the radio fixed on the Pontiac. It is still the original vacuum tube radio, but there is also an ipod input on it – although the input works by connecting to the antenna input and not directly to the amplifier section. Line in didn't exist in 1951! The ipod to radio interface works pretty well, so we've been listening to some podcasts as well. The one problem is that if you have the air vents, both side windows, and both windows open, it is a bit noisy in the car and hard to hear. It is still possible though.

From Moses Lake we drove on to Spokane, and then continued on I-90 through Idaho, and into Montana. In Montana we started up another pass, but this time in the later afternoon. We slowed down a bit again, but seemed to be going ok. On the road there were a whole bunch (maybe six!) hot rodded custom model-As and model-Ts. They were from Spring Creek, TX. We'll have to check when we get internet access to see where that is, and whether we can stop there on our trip to Dallas.

On the final ascent of the pass, the temperature shot up. Generally the temperature climbs pretty high when we were going up the pass, so we would turn on the heater to max and turn on the fan to help cool down the engine. I didn't really notice a difference when the heater was on; the car was already hot, and we already had hot air blowing around, but it did seem to help the engine temperature a bit.

Probably about a mile away from the top of the pass, the engine started cutting out, and our speed fell down to about 20mph. I pulled over to the side of the highway, and shortly after the engine died.

We got out and popped the hood - the engine had definitely overheated, and the coolant blew out the overflow system's cap. It didn't look like we had an oil leak, which was good. Dad spent some time looking at some stuff, he removed the air filter and confirmed that the choke was set appropriately. (The Pontiac has an automatic choke, but it makes sense to check it.) We were also running low on gas, but verified that gas was being pumped into the carburetor. Potentially the fuel pump is a bit weak, and Dad was talking about maybe putting an electric fuel pump in once he gets the thing to Texas. Other things that might be a problem include: a clogged fuel pump, a bad coil, vapor lock (maybe related to the fuel pump, but also just because it ran hot.)

We took some time off, dad got in a quick run, I read some stuff on the kindle, and after an hour or two of a nice break – we had a chance to eat some fruit and other stuff – the car started up again. We were able to get going again, but did have another fifteen minute break when the engine quit for a second time on a second uphill portion. We pulled into a station and picked up some 50/50 antifreeze and water, filled up the gas tank, and took off again.

We pulled in to Missoula at about 22:00, and we visited with a friend of dad's before heading to a hotel.

Tomorrow we plan to change the oil, change the potentially clogged up fuel filter, and replace the coil. Then we head back out.

So today was pretty good: from 07:00 to 22:00 on the road, with a nice break on the side of the road in the middle, from Seattle, WA to Missoula, MN.

2 2013-07-24 Missoula to Ennis

In the morning Dad took the Pontiac to a shop and got the oil changed, changed the oil filter, and he changed the electrical coil. The first time he changed the coil, the car wouldn't start, but then he pulled it and put it on again and it worked. Seems a lot like debugging a program.

We got on the road, and things were good. We had lunch, and then had some trouble starting the car. Dad bought some starting fluid, and that helped a lot. So we drove some more but got stopped on an uphill climb. We did the same things we've done before (waited) and got back on the road after two hours or so.

Not too much after that the engine died again. This time dad pulled apart the carburetor, and there was a piece of the accelerator pump in the carburetor bowl. While we were working on this, a guy stopped on the road behind us. He has a '51 Pontiac as well, and he and his wife gave us some tips on stopping in Ennis. They have a NAPA auto parts store with a guy there that knows a lot about old cars, so maybe there will be some help there.

We have a few other ideas about what we can do to help the car. Insulate the metal fuel line since it seems like we are vapor locking when it gets too hot. We can also try to put some wooden clothespins on that fuel line to help radiate the heat, which is apparently a well known (but likely totally ineffective) solution as well. Also, we can try higher grade fuel. Older cars weren't designed to work with the high ethanol levels in modern fuel, and maybe higher grade fuel will help with that.

We did make it to Ennis, and stopped at the hotel that was recommended to us, ate at the restaurant that was recommended to us, and checked on when the NAPA auto parts that was recommended to us opens.

Things aren't looking too great, because the Pontiac has also now started stalling when you idle it. Maybe the idle is too low for some reason, although it is hard to figure out why.

Anyway, we'll see what happens tomorrow!

3 2013-07-25 Ennis to Yellowstone, with a lot of luck in between

We went to the Napa Auto Parts store at 8:00am when they opened up, and asked about parts for the Pontiac. We wanted to get a rebuild kit for the carburetor and an electric pump. They didn't have anything for the carburetor (we would have been shocked if they did) but they did have some electric fuel pumps. 12 volt ones. The Pontiac runs on 6 volts, but dad thought that a 12 volt pump would work, it would just work at about half capacity. We had some discussion with one of the guys at the shop who was pretty adamant that it would not work, and quoted Ohm's law. Dad knows that law pretty well, and tried to talk a bit about it, but in the end we didn't get in to any arguments and I was happy that nobody trotted out whatever degrees they might have (I think between the two of us we have 2 undergraduate Electrical Engineering degrees, and one PhD in Electrical Engineering, as well as a few other degrees not worth mentioning.) We didn't get anything at the Napa store, and headed out to the other store in town.

The other place didn't have anything that was helpful either, although they could have had a 6 volt fuel pump sent overnight. It wasn't clear whether they would be able to install it the next day. Installing the fuel pump (in line with the existing mechanical one) is a bit of a job: you have to mount it, maybe move some hoses or lines around, run electrical power to it, maybe mount a switch for it, drill some holes to get wires where they need to go, and so on. Maybe a 1-3 hour job on a good day.

While we were at the shop, we picked up some insulating wrap used to wrap exhaust headers. We thought that would help keep the fuel line cool. One of the guys there also told us that he had problems with vapor locking, and one thing that worked was to put some transmission fluid in the gas – that raises the density of the gas and raises the flash point so it is a bit harder to vaporize it. We put the wrap on the fuel line (with the help of some duct tape – and I actually did the wrapping myself) in the parking lot of the parts store. Hopefully that was helpful. It couldn't hurt anyway.

We went back to the hotel and made a few calls to parts stores in Bozeman, which is the nearest large city, and was recommended as a place that might have a 6 volt fuel pump. One place actually did have a 6 volt fuel pump in stock, and we asked about whether they knew a place that would install it. It turns out they did, and the guy could do it the same day! We told them we would be there in about an hour (it was 50 miles away) and we packed up.

After we got some gas (premium) we headed down the road to Bozeman. And the car stalled. On a straightaway. Actually, I should mention that yesterday, after putting the carburetor back together, I thought something was funny with the gas pedal. It seemed like it wouldn't go down as far as it used to, like something was stopping it about halfway down. Dad took a try at driving, and agreed that it felt strange, but after stomping on it a few times it was back to normal. That was yesterday, when basically we just limped up a bit of a hill and then went downhill from there.

Well, after the car pulled over about 800 meters from the hotel that we started at, we popped the hood and took a look. Part of the accelerator linkage was bent, and that is when Dad noticed that the previous day he had installed the linkage that sets the idle and fast idle (and is part of the automatic choke system) improperly when he put the carburetor back together! That explains why the pedal wouldn't go all the way down - until it was forced and bent the linkage. And explains why the car wouldn’t idle…

Dad used some duct tape to secure the automatic choke linkage out of the way and we were able to just barely limp up the mountain, then coast down to the flats. Bozeman was about 50 miles away, and we had a few more mountains in the way. There were some close calls where I didn't think we would make it, but in the end we were just able to clear the final uphill parts of the road, and we got to Bozeman probably at about 11:00am.

The parts store there did have a 6 volt fuel pump. We also picked up some other miscellaneous stuff, and then headed over to the shop (next door) run by a guy out of his garage. He had a truck up and had pulled the rear end on it. He took a look at the Pontiac, but was a bit negative when he realized that the job wasn't to swap out an electric fuel pump, but to install one where we never had one in the first place. That is a significantly harder job. He wasn't sure he would be able to get the car done since he had other business to finish, but after hearing out story he said he would take a look at it.

The mechanic's name was Jason, and he was just great. He was a younger guy, but really knew his stuff when talking about these older engines. He grew up working on cars apparently, and managed to move around his schedule so he could start on the pump installation right then. While he did that dad I did some work on the accelerator linkage—basically repairing the damage that we had self inflicted the previous day. We had bought some parts previously that we needed to properly reconnect the linkage, so after bending it back into place, we checked back in with Jason. He said he need an hour or two more, so we went off to lunch.

When we got back Jason was done! The pump was in, he had a switch installed nicely under the dash, and it worked great. We paid him (and gave a nice tip for all the trouble we caused him) and took off, headed for Yellowstone National Park.

I cannot stress just how amazing Jason was. He was fun to chat with, really knew his stuff, worked very quickly, and went out of his way to get us on the road again. It was really just amazing when you consider that there is no reason that any parts store really should have a 6 volt fuel pump. Those are just rare. We were very lucky that there was one near us, at a place that we could limp to in the Pontiac. Then we were super lucky that there was someone that could install it for us. That isn't the kind of job that you can do (or would want to do) easily on the roadside. You need a shop with a lift or at least a jack, power tools to cut some holes, wiring, all sorts of stuff. It is really amazing that we were able to find the right combination of parts and labor to get the Pontiac back on the road.

And it was really back on the road. We had a few hills in between us and Yellowstone, and it took them like a champ. Before, you could only give the car a little bit of gas. If you gave it too much it would cough, act like it wasn't getting any gas (which is wasn’t), and start to die. It would do that too if you just gave it a little bit of gas, it would still do that, but you could get a lot further. A bit further.

Now, if you put the pedal to the floor it would downshift and give you all it got. The engine is about 90 horsepower, so if you are used to a modern musclecar, or even just a modern* car, that isn't really much, but with the electric fuel pump (and our additional ad-hoc modifications like a wrapped fuel line, transmission fluid in the gas (only once), and premium gas) it would now power up the mountain and only lose a bit of speed. Down to about 50 instead of 20mph (or stalled.) We had lots of ups and downs, but the Pontiac took them all like a champ. We probably crossed the Continental Divide about 10 times.

Clearly this is what was giving us our problems. Before when you climbed a hill, the car would slow down, and the engine temperature would rise. Now the temperature stays pretty constant and you can go at a reasonable speed up the hill. That fits in well with what we suspect: the mechanical fuel pump wasn't able to supply enough fuel, making the engine run lean, raising the temperature, causing misfires, reducing the engine speed causing the fuel pump to pump less, reducing the fuel supply, etc. Now, we have enough fuel and the engine temperature doesn't rise.

It was just an amazing feeling. It took a while, but it even got to the point where we didn't start to worry at approaching mountains.

We made it to the Yellowstone entrance, and dad got a 65+ lifetime pass to all national parks for $10. That is cheaper than normal admission. He has no excuse not to come back. We drove around and stopped at a few places. There was one really neat geyser, and we met some nice people. Everyone seemed to like the car.

We decided that there isn't anyway way we could stay at the Old Faithful Inn (they book up in advance pretty quick) but we wanted to check at the lodge for some souvenirs and ask about a room anyway. It was about 17:30 when we pulled in to the parking lot. The place is just beautiful, old wood, huge. We asked at the registration desk whether there were any rooms open, and they said no, they had just turned some people away right before us. We asked if there were any other places to stay in the park – as young kids we stayed with the family in some cabins, and there are other places to stay here. They checked, and while they were doing that, a room at the Old Faithful Inn opened up! There was a cancellation, so we took it right away. Amazing! Our luck today has been unbelievable. Perhaps it is some sort of karmic payback for the vapor locking and hours that we have spent on the side of the road (about 6 over two days and three "stops".)

So we decided to go for a loop around the park. There is a highway that circles the park. Going by the map I guess that the full loop is about 160 miles or so. There is also a road that cuts the park in half, for about a 80 mile loop. We thought we could do that and get back by 21:00 or so. The restaurant in the Inn closes at 22:00, so we thought we would try to look around the park and come back for dinner.

We headed out and the car was great. A champ on the mountains. We saw some Bison, got out and looked at some geysers, saw an old bus (it was actually on a new chassis and engine, maybe a modern bus but made to look like the old ones) and stopped for a picture at one of the Continental Divide signs. We had crossed the Continental Divide a few times already, but didn't stop because we were going to fast. This time we were able to stop. While there we met some guys riding their bikes from Oregon to Vermont. Crazy! Two more guys cycled up and they were riding from Washington state to Argentina. Or something impossible like that (isn't there an ocean in the way?) They were all really great guys, and took some pictures of us, and then were interested in the Pontiac so we took some pictures of them. Lots of fun.

We finally did make it back to the hotel at 21:20, almost exactly three hours after we left. You could easily take a lot longer than that if you wanted to stop to get out and look at things. A full loop of the park would probably take 6 or 7 hours just driving, much longer if you actually stopped to look at stuff.

We're in the hotel room now, and while there isn't any tv or internet access, that is just about how a place like this should be.

The plan tomorrow is to get up and go for a run, then take some pictures at Old Faithful, hopefully with the Pontiac in them. Then we'll head south and see how far we can get.

Things are looking up!

4 2013-07-26 Buffaloed by buffalo

This morning dad and I got up at about 6:30am and went out for a "run". We went at dad's pace, so a brisk walk. We did about 5km out around Old Faithful and the surrounding geyser area. It was a really nice walk, with lots of interesting things to look at and some interesting signs about the geysers. It was a bit chilly, but we had enough to talk about and look at to keep our minds off of the cold.

On the way back to the hotel, within sight of it actually, we saw a strangely shaped rock in the distance. Getting closer, it turns out it was a statue of a buffalo. Getting closer, it was a buffalo. A real buffalo. That was looking at us funny. We probably should not have worn bright yellow and red shirts. A park ranger was there and yelled at us to keep at least 25 yards away. I have no idea what that distance is. We took some pictures and edged around behind the buffalo. Amazing. Just amazing.

We then packed up the Pontiac and headed out. The trip down to the South exit was very pretty. We weren't always even the slowest car on the uphills (but probably we usually were.) We drove out through the exit, and then went through the Grand Teton national park. Those mountains were amazing. There was nothing on the road until we hit Jackson Hole, where we got some gas and lunch from the Albertson's supermarket. Then we headed on to Pasoga Springs, Colorado, where a friend of dad's lives.

We were doing great, until somewhere around Utah I noticed that there was a burning smell - I had noticed it a bit before, but thought it was a forest fire off in the distance or something. Dad also noticed that the battery charge gauge indicated that we were pulling current from the battery! We pulled over in a gas station and popped the hood. The generator was not generating. That is a problem. You need to have a generator, because in order for an engine to run, you need a few things. One of them is gas (which we had some major problems with, until we got that electric fuel pump installed!) another is air, and another is a spark to ignite the fuel and cause the explosion that pushes the pistons. The spark is generated by the spark plug, which needs electricity to run it. That comes from the battery. You can't just use the battery though, it will eventually run down. So cars have generators (or alternators more likely if you have a car that is anywhere near modern) that use power from the engine to generate electricity and re-charge the battery while the engine is running. Nice. So we didn't have a generator. That was a problem.

Dad removed the generator from the battery circuit so it wouldn’t short out the voltage regulator and leave us with two broken parts. We couldn't remove it entirely because the belt that it was driven off of also drives the water pump for the cooling system. So we needed the belt to be tight to drive that, which means the generator needs to be in the belt loop. Dad actually has an older generator in the trunk, but that needs some work before we can try it (mostly it needs to be cleaned out since it was sitting outdoors since the 1960s.) What we decided to do was to buy a battery and a battery charger so that we could charge the battery overnight, and swap out for a new one if we needed during the day.

We went to a Walmart, but they didn't have anyone to help us in the automotive section. They did have a battery charger that would work for 6 volts, so we got that, and then headed out. By chance we spotted an AutoZone, so we stopped there and got a spare 6 volt battery. And some bungie cords to tighten it down, since it is the wrong shape for the battery shelf in the Pontiac, but we can probably shoe-horn it in there if we need to. Then we drove another 60 miles. In the dark. With the lights on. Which are a huge drain on the battery. The battery that is in there is a really good one though, and seemed to be fine. We decided to stop at about 10:30pm since we could get up at sunrise and drive without the lights which would be less drain on the battery (it has to power the spark plugs, remember) and would be safer to boot. So now we are charging one battery in the room and Dad is cleaning up the spare generator outside.

(A few hours later.) It is now 1:30am, and I can't believe it, but we managed to fix the car. The spare generator, an old one from Uncle Jay's Pontiac engine, actually worked. Dad cleaned it up, especially where the brushes contacted the commutator, we removed the installed generator, and put the old one in. That should have taken about 20 minutes (I guess if you are a practicing mechanic, in a shop with the right tools, and it isn't pitch black outside) but took us about two. Maybe. I'm not sure. We both thought there was no way that this would work - at worst we were back where we started - but when we started up the engine, it showed the battery being charged. Truly amazing.

I can't believe how we have had such great luck and managed to fix all these problems that have popped up. What an adventure.

Next time we do this though, the car will have a 12 volt system. This 6 volt system has made a hard task even harder!

5 2013-07-27 From Price, Utah to Tucumcari, New Mexico

There isn't much to say about today. We got up and were driving by 8am. The plan was to get going earlier, but we got some extra sleep in the interests of safety. I did most of the driving since I had a few hours more sleep than dad.

We drove, and drove, and drove. The generator generated. The fuel pump pumped. The car went. It was a great feeling. Not much happened on the road. We went on the smaller backroads, which was a lot of fun. We went through a few small towns. There was very, very little in Utah. It seemed like a sage-brush filled wasteland.

Entering into Colorado the scenery greened up a bit, and it really looked like nice country. It was a very sparse country though, and at one point I was worried that we would run out of gas since it was sometimes an hour or almost two between gas stations.

We stopped off at Pagosa Springs to visit with Sue, a friend of dad's from when he was working at JPL as a grad student and post doc. Sue and her sons Eric and Phil were the first to babysit Alana and me. They were quite nice, and had a lot of cats and dogs.

After that we headed back out. We had eaten lunch in the car earlier (Subway - a really good meal and easy to do in the car!) and didn't stop for dinner either, although we did have a lot of fruit. And Peanuts in M&M form.

We drove down into New Mexico, and parts of that place look like another planet. At one point we crested a hill and were directed to the other side of the road to detour around a helicopter that was there to (presumably) airlift someone out to the hospital. We didn't see any wrecks, so they must have been hiking or something.

We didn't run the radio at all since we were worried about the generator giving out. It was fine. Once night fell we turned on the lights, and while the generator wasn't able to give a surplus of electricity with the lights on, it was able to keep the lights from drawing from the battery.

We figure that we can use the radio tomorrow if we want, just because we were able to get the remaining distance down to about 470 miles, or about eight hours. We can probably get back on the battery alone during daytime if the generator gives out.

Anyway, we drove until about 10:45pm, and checked in to a hotel at Tucumcari, New Mexico. Tomorrow morning we'll get an early start and check out Amarillo, TX and Route 66. After that we'll head back to Dallas, and if all goes well will arrive in the late afternoon, with a whole day to spare!

6 2013-07-28 From Tucumcari to Plano

We got an early start and were on the road by 7:00am. We forgot about the time zone change, so once we entered into Texas we lost an hour. There wasn't too much going on from New Mexico into Texas. Once we got into Texas we took an exit for Historic Route 66. We road along that for quite a while, but at some point it turned into a gravel road! And then a dirt road! We had to get back onto I-40, and we stayed on until we found an exit for Cadillac Ranch.

Cadillac Ranch is an art installation that has been around since the sixties. It is basically a bunch (10) of older Cadillacs that have been jammed nose-first into the ground at a 45 degree angle or so. People are encouraged to spray paint the bodies of the cars, and they are very colorful. It is a really interesting project. There were lots of people visiting, from all over the place. We had wanted to drive the Pontiac up close to the installation but that wasn't possible. We did get some shots with the Cadillacs standing in the distance though.

We got back on the highway and drove through Amarillo. We didn't find too much Historic Route 66 stuff, unfortunately. It was just a normal city, so we got some gas and drove on. There wasn't really too much interesting out of Amarillo; we just were on some big roads for a while. Eventually we made out way to 286, which headed West pretty much across Texas until we hit I-35, and we know our way home from there.

We pulled into the house in Plano at about 5pm that evening.

Can you believe it? According to the Odometer we had come about 2700 miles, in a car that is 62 years old. We had two major failures: fuel pump not strong enough, requiring the installation of an electric fuel pump, and the generator failing, requiring replacement with an old one that was in the trunk. The chances of that old generator working were tiny, but it actually worked. Dad didn't bring it along as a back-up, but as something that he would have rebuilt once we arrived. So that was just very lucky. We were both kind of curious how far we would have been able to go just on the battery alone; we think we could have made it in about the same time with two batteries and a charger, but we never had to test that theory.

It was a really great trip. Part of the adventure of driving a classic car is dealing with the adversity that it presents: no modern conveniences (no air conditioning, power anything, comfort), very high likelihood of some sort of break down or problem, and a change of mindset to a more slow-paced, relaxed trip where we could see the sights.

Dad still has a 1954 Hudson Hornet in Washington state that he will need to get to Texas at some point. It is also being mechanically restored, and he will have the electrical system switched out to a 12 volt system since he's having the wiring redone anyway. There is a chance that we can have another adventure like this next year.

I'm looking forward to it!

*Dad’s definition of a modern car: hydraulic brakes, 12 volts and overhead valves. His definition of a luxury car: a modern car with air conditioning.

July 7, 2013

Let's try to build gemrb for android on Mac OSX

I've been playing Baldur's Gate with GemRB lately.

I have found it to be pretty unstable on my Kindle Fire HD 8.9", so I want to try to run it under a debugger and see where it crashes. My first step is to try to get the code locally and build it.

I'll need GIT for that and heard that the Git OSX Installer is a reasonable way to get GIT for Mac. So I've installed that.

I had to set up a Github account (as FuguTabetai) and add SSH keys to that. Once I did that though, I was able to clone the repository (on my personal MacBook, ~/Documents/workspace):

$ git clone git@github.com:gemrb/gemrb.git

So now I have the code locally. The question is, now what to do with it. Let me take a look around. The android subdir has a great README setting out what I need to build. That includes the android-sdk (already installed due to playing around with that a few weeks ago) but I'll need to get android-ndk, mercurial (apparently) as well. Including stuff from the gemrb, I will probably also need to get cmake, make, g++, and a bunch of libraries: Zlib, Python 2.3, SDL 1.2, OpenAL, SDL_Mixer, libpng, FreeType, iconv, libVLC 2.0+.

Wow, this might take a while to get going. I have used fink in the past, but it looks like right now that is hosed. I think it would be nice to install MacPorts, but that needs the command line tools for developers to be installed. I can only find downloads for that for Mountain Lion or Lion. I'm on Snow Leopard. I found that I can download Xcode 4.2 for Snow Leopard and that includes the command line tools. So I'll do that. I think I'll need to upgrade to a newer OSX version at some point soon though.

I'm trying to do this so I can install MacPorts, and from there the other libraries that I need to build gemrb. I think this is going to take a while - I have to at least wait for the 1.8GB Xcode download to finish over the hotel internet.

June 30, 2013

More on Baldur's Gate on a Kindle Fire HD 8.9" with GemRB

Baldur's Gate 1920x1200 GemRB

Baldur's Gate 1920x1200 GemRB

Baldur's Gate 1920x1200 GemRB

Baldur's Gate 960x600 GemRB

Baldur's Gate 960x600 GemRB

Baldur's Gate 960x600 GemRB

I've spent a bit more time playing around with my Kindle Fire and GemRB. Planescape: Torment seems like it needs more work before that will be fully playable, but Baldur's Gate 1 and 2 are supposed to be very well supported. I would like to play through those, so I set them up. I played Baldur's Gate 1 many years back, but I remember very little.

This time through I want to play as a Fighter/Mage and import the character into Baldur's Gate 2. There is a nice mod that adds the Baldur's Gate 1 content to the Baldur's Gate 2 engine, and lets you play through them both. That is called Baldur's Gate Trilogy WeiDU. I installed that. I also followed more or less exactly this post from gog.com to enhance the gameplay which includes some other mods and restores some extra content. This time around I took some screenshot with the game in 1920x1200 resolution with the original fonts, then with some large fonts (overran the content areas for the most part) and finally at 960x600 (my preferred resolution) with the droidserif font. It looks pretty good, but the font is still a bit big, and the "p" is cut off (probably it is too wide for the space allocated to it?) but still it is all very readable.

Unfortunately I have some some problems. I keep finding hard crashes when I explore around the map. They are repeatable, and I have a save game for them so I'll try to get in touch with the GemRB community to see if they can help. My guess is that the BG2 engine with the BGT mod and the additional content plus other mods that I added just hasn't been tested much.

So I think I will just install Baldur's Gate 1, and the suggested mods for that, and then try again.

June 28, 2013

RPGs on the Kindle Fire HD 8.9"

I've had a Kindle Fire HD 8.9" model for a few months now. I really like it. I am able to read email (personal and work) and set up calendar entries (personal and work.) I can do some light web browsing, and check up on FaceBook with it.

Every once in a while there are deals on Apps. In a recent deal, I picked up the game CHAOS RINGS from the Amazon Appstore.

It is a pretty 3-D game with what look to be pre-rendered (or at least fixed camera position) backgrounds. The story is simple, and very Japanese. Combat is a JRPG style system where the two opposing forces line up and take turns attacking each other. I love turned based combat, so that is a bonus in my book, although I prefer games that blend strategic with tactical combat like the old Gold Box games, or Infinity Engine games. Still, this game is very easy to pick up for a few minutes, grind out a few battles, and put back down. They have a few puzzle stages that have all been variations on a theme (sliding block puzzles, teleporting block puzzles, things like that) but they have all been fairly easy. The maps on the overwold have so far been very simple, there is an automap, and zero need to take notes.

The economy seems pretty poorly balanced to me. The only thing I think you need gold for is to buy keys to open locked chests, and at this point I have more gold than I know what to do with. You can buy weapons and armor (as well as "gems" and items) but for everything except the item, there is a linear progression in power and zero choice involved. I either find something better than what is for sale in the dungeons, or I buy the best that is available (it hardly makes a dent in my amassed wealth) and that is it. The items can be somewhat useful, but so far the battles haven't been well tuned either and I think that giving up a turn to apply a buff just isn't worth it.

So I'm still going through this RPG, even though the story seems a bit simplistic, contrived, and the characters are annoying. It is a fun diversion.

GemRB and Infinity Engine Games

The other thing I came across recently is GemRB. GemRB is a "Game Engine Made for pre-Rendered Backgrounds" that is an implementation of the Infinity Engine that powered the BioWare and Black Isle Studios RPGs (Baldur's Gate, Planescape: Torment, Icewind Dale, etc.)

I had known about GemRB for a while, but since I heard that Planescape: Torment wasn't really playable in the current build, didn't go to too much effort to try it out. The other day though, Good Old Games had a D&D bundle for a ridiculous price which included six or seven infinity engine games for like $20. So I bought it, and then started to play around with getting it to run on my Kindle Fire HD 8.9".

First off, I basically followed this forum thread on how to set up GemRB for Android. I ran into a few problems, but not too many.

First, you have to install the game on windows. That went well. Then, you have to decide what resolution you want to play at. There are mods that modify the game engine and data files to allow resolutions that were not supported at the time the game was written. In my case, I thought I would try out 1920x1200, which is the native panel resolution on the Kindle Fire HD 8.9".

That didn't work out so well; I was able to play the game, but the controls were so tiny that I had a real problem reading text and hitting controls.

I then re-sized the game using the tweaks and fix packs and the widescreen mod. There is an option to install for GemRB, which I did. I changed the resolution to half the native panel resolution, so 960x600. The controls are still a bit too small, but they are at least mostly reliable. Text is still smaller than I would like, and a bit hard to read due to the raster fonts being scaled.

It turns out that GemRB supports TTF fonts, and people have been able to get that to work on the android version so I'm going to look at that next.

I wanted to find out what fonts are already on my system (so maybe I can just set the fontpath to that), so I started up an ADB shell session. It looks like the Kindle Fire HD 8.9" (first generation) fonts are stored in /system/fonts/, and the following are available:


I think I'll try Droid Serif Regular.

In the GemRB.cfg file, which is /sdcaard/Android/data/net.sourceforge.gemrb/files/GemRB.cfg, I had to edit it and add in


The thread I linked to says to edit the override/pst/fonts.2da file, but that file did not exist. Knowing how these things sometimes work, I copied the file /sdcard/Android/data/net.sourceforge.gemrb/files/unhardcoded/pst/fonts.2da over to /sdcaard/Android/data/net.sourceforge.gemrb/files/override/pst/fonts.2da and edited that to include the DroidSans-Regular file.

Unfortunately, that didn't work. My fonts.2da file was seemingly deleted on program launch? I came across a message suggesting that the GemRB binary directory might be getting unpacked on launch, but that you could put the fonts.2da file in the game's override directory, so I added it and modified it in the /sdcard/gemrb/pst/override/ directory. That caused the program not to be able to launch, and the log file revealed that it couldn't find the font DroidSerif. It turns out that I had a space like: "DroidSerif -Regular" so that is not going to work. After fixing it, it worked! But a lot of the text was too big at 24 point... And when I tried to talk to someone the game crashed. Setting the size back to 14 for two of the entries seemed to fix it. Not bad. Not great, but not bad.

June 21, 2013

Family fun at Disneyland!

On Tuesday, Lisa, Alan, and I went to Disneyland as a full family for the first time. Lisa and Alan have gone a few times with Lisa's parents, but I was never able to join them. On Tuesday, I took a day off of work, and invited another friend of mine and his wife who also has a young child a few months older than Alan.
Dave, Alan, and Lisa at Tokyo Disneyland!

I was very excited to go with them, but unfortunately their child got a fever, and was unable to go. We'll try to re-schedule before the end of summer, but we decided to take the chance and go to Disneyland with just the three of us.

I get very motion sick very easily. Lisa doesn't seem to have that problem, and who knows whether Alan does or not. I have to say that going to Disneyland with Alan was a blast! There were many things for him to enjoy, and I think he had a great time.

Alan, at a little over one and a half years old, really loves boats and trains, and to a lesser extent buses and cars. There are lots of boats and trains and cars at Disneyland! I'm not sure if I remember the exact sequence of events, but I know that one of the first things we did was take the Jungle Cruise. Alan really liked the boats, and waiting in line wasn't even that much of a problem. It was a bit difficult for him to see the animatronics because they were always off behind him, and looking forward across the boat to the other side his view was obscured by the other passengers. He really liked the waterfall though.

Come to think of it, before we did the Jungle Cruise, Lisa went to get the Monster's Inc. fastpass, and Alan and I lined up in the line for Buzz Lightyear's shooting ride. Alan rode that with us, but he was a bit scared at the loud noises and some of the dark places. When he saw the Toy Story characters that he recognized though he was really happy! On Lisa's ipad we have two short videos, and they are both Toy Story videos. Alan loves watching them, and I'm sure he liked seeing life-sized versions of characters that he recognized!

After the boat ride, we got a fruit cup snack (that went over well!) and then road on the train. The train at Tokyo disneyland leaves from the second floor of the Jungle Cruise ride, and drops you off at the same place after making one loop of the park. Alan also really liked the train ride (he loves trains) and wasn't even scared in the dark parts of the ride.

Untitled Alan isn't happy to see Chip.  Or Dale.
Alan isn't too happy with Lilo either
After that we headed over to Fantasyland because we had a fastpass for Monsters Inc. coming up. On the way though, we noticed that The Pirates Carribean had only a 5 minute wait, so we rode on that. Alan liked the boats again. I thought he might have had a problem with the drop at the beginning of the ride, but he really seemed to enjoy that too (more than I did even!) He was a little bit scared at some points of the ride, but mostly seemed to enjoy it, and even fell asleep halfway through! Up until now Alan had been doing a lot of walking and was probably getting a bit tired, so when the ride turned a bit dark it isn't surprising that he would nod off. He woke up when we picked him up though, and then wouldn't go back to sleep in his stroller unfortunately.

We went over to Monster's Inc, but were a few minutes early, so we rode on the race car ride. Alan tried to steer for a bit, but didn't seem to really understand the concept of a steering wheel yet. After that we did head over to Monster's Inc, and Mommy and Daddy enjoyed that one. Alan seemed to have a bit tougher time - that ride really does have some violent turns. He wasn't crying though. After that we got Alan into the stroller, and he fell asleep. We had a lunch reservation at Lilo's Luau and Fun at the Polynesian Terrace restaurant. Many of the Disney characters took part in a kind of show, and walked around the room letting you take pictures with them. For the most part Alan took good pictures! He was a bit scared of some of the characters, but oddly enough he seemed to warm up to them later on. At the end of the lunch there was a show on the stage where the characters taught everyone a dance. Can you spot Alan? He has a bit of help from Lisa.

During lunch, I got a message from a friend of mine. By change he and his wife were at Tokyo Disneyland, so we met up with them and watched the parade.

Alan was up on my shoulder for the whole parade. That was a long parade. Maybe it was just that Alan is getting heavy, and it was pretty hot, but I was glad when that was over! We went with the Oyamas and road on Haunted Mansion. I always liked Haunted Mansion. At some point we took a ride on the Mark Twain, the large riverboat, and Alan really liked it. We wandered all over the boat and he liked waving to people on the shore.
Lisa and Kiyoko went to ride Big Thunder Mountain, while Alan, Akihiro, and I sat down and rested for a bit. After the ladies returned we walked over to Star Tours where we had a fastpass. Lisa and I rode it first, and Akihiro and Kiyoko watched after Alan. We were able to get a pass for them once we were done, which was really nice. I was looking forward to this ride, but was a bit worried that I would get motion sick. I got very motion sick. I watched about half the ride, and then had to close my eyes and pray for the ride to end. Afterwards our friends rode, Lisa took Alan to the baby center to feed him, and I just tried not to be sick, and tried to stop my arms from tingling. That pretty much ended our evening; when the Oyamas returned we decided to part ways. Lisa was off feeding Alan, I was useless, and they have yearly passes so didn't feel a need to ride on anything.
We ended our day off with Pizza for dinner, and Alan really liked that. He ate an entire slice - the same as Lisa and I! Then we finally headed home, and got him into bed by 10pm. He slept in late the next day. I think he had a lot of fun, and I am looking forward to going back with our friends who have a boy about the same age.

April 28, 2013

Whew, it sure has been a while!

Wow, I have not written in this blog for a long time. Almost five months! It is true that I have been busy, trying to get work done and keep things running smoothly at home. Mostly though, I just haven't been prioritizing writing a blog. I don't think that will change too much, but I'll try to get a few posts in here and there.

The main problem is that if I put a computer on my lap, that is an open invitation to Alan to come around and start pounding on keys to see what they do. (Mostly the make me mad, and then I have to close up the computer.) Alan is walking around like a pro now, and anything within outstretched arm reach is fair game to be grabbed, pulled, hit, and generally abused. So that means that when I'm at home, I pretty much am not doing computer things.

I've been making special effort lately to come home from work before the sun sets, and then I take Alan out for a walk. Usually that means that he walks to the elevator, presses the down button (and probably the up button) then a few buttons in the elevator, and wants to be picked up not too much longer after that. We wander around outside for a bit and he waves hello to basically everyone.

Anyway, Alan recently started going to day care, and probably because of that our family has been sick for the past two weeks. With colds that just won't go away. Or maybe one does go away, and a new, different strain takes it place. I'm really getting sick of it.

Alan is just about getting to the point where he does not need to be held every waking minute, so I've started to get a little bit more free time. Just a little bit. I've been doing two things: playing around a bit with Android programming (fun!) and playing a little bit of Street Fighter IV. I've also been watching some basketball games, but usually that turns into taking Alan over to the balcony and looking for boats, so I'm not really paying too much attention to the games.

Speaking of the balcony, Alan really like it. From out condo we have a nice view of a canal that connects to Tokyo bay. Boats go through there every once in a while. The weather has recently got pretty nice, and jetskis have started popping up, as well as a boat pulling a wake boarder. There is a company around here that offers that, but I haven't been able to find them on the internet. Alan really likes the boats - he has his own sign for boat. He also has learned airplane, which is convenient because we can see a lot of those coming and going out of Haneda airport which isn't too far. We can also see the Tokyo Monorail pretty well, and he loves watching those go by. We have a nice view of a bridge and a highway, so he'll sometimes point out busses too, but I haven't been able to teach him the sign for bus yet.

Because the weather is nice now, I expect to be spending a lot of time out there with Alan. I'd better clean the balcony up!

Other fun stuff: I figure in the next week or two I'll be able to get my T. Hawk ranking up to B+. The online ranking component doesn't really seem to mean anything though, other than the more you play the higher your rank goes. That isn't quite true, because there are rules about points going up and down, but more or less, if you play more on average your score will go up. I'm still kind of excited to get a B+ ranking though.

Finally, programming with Android. This has been fun. I actually got my Kindle Fire set up so I can run my own programs on it. It is really exciting to see something that I wrote working on a small touchscreen. I've got two apps I'm working on: one is super dumb and just for me, to track my wins and losses in street fighter because I want to see that kind of data. The other is an android implementation of my manga translation program. I think if I have that on a tablet it will be a lot easier to translate more. Even if not, it will be fun to program the thing up and correct a few mistakes I made in the desktop Java version. Mostly, architecting a more clean model for displaying the text bubbles.

I'll try to post a bit more too! And take more pictures. Looking through the pictures that we've taken recently, I just don't have enough showing how far Alan has come from a non-moving slug-like being to the small human that he is now!

December 23, 2012

Disneyland in December

Lisa, Alan, and I flew to San Diego last week and will stay here at my sister's place through the new year. Last week we also decided to go up to Disneyland for three days (THREE DAYS!) to get a taste of the American Disneyland park. We had come here together before Alan was born a few years ago, but that was just for one day with a park hopper ticket, which didn't leave us enough time to really experience what both parks (Disneyland and California Adventure) had to offer. So this time we booked the Grand Californian Hotel for two nights.

The hotel was quite nice, a very large room, and had two queen sized beds. On our first night there, Alan (for the first time ever) got a bad fever, so we had a real tough time. After a bunch of calls to the front desk, who were super helpful, they were able to provide us with disposable thermometers, baby advil, additional towels, and some bags for ice. This was all between 2am and 4am, and the Disney staff was really great. Of course, since Alan got sick, that eventually got passed on to me, and I am now feeling terrible, but I guess you have to expect that when you have kids.

I've stuck a bunch of pictures over there to the left. We decided to get the Disney Photopass plus on our second day. I really should have pre-ordered that thing, since it costs $70 if you pre-order, and $100 if you don't, but at any rate it was worth it. The photopass plus basically lets you get your picture taken by the disney photographs that are all over the parks, and after your trip, you can download all of those pictures. The flat fee gives you access to all the pictures, which is great because you don't have to pick and choose and then pay for each one. We got about 100 pictures, so that comes out to about a dollar a picture. Not bad. The photographers will also take a picture with your camera, which is really great, but their equipment is better and they have it set up to get really great shots. Particularly the shots of Snow White's castle at night turned out well, whereas with my camera the white balance wasn't quite right, and the flash exposed our faces well, but the background was more washed out.

We were lucky that my younger sister Jana and her husband Marco were able to join us for the three days, and on the last day my dad, Alana, her husband, and her son Scout were able to join the five of us. We got a whole bunch of group shots in that time, which is great, since it is very rare for the whole family to get together.

Going to Disneyland with a kid (a one year old in our case) is a lot different than when you are alone. I'm not really a big disney fan, and in fact I get very sick on most rides, so I don't really ride many things, but since we had Alan we didn't ride much at all. Disney does have this one feature which is great though: parent swap. You can get in line, and ask for a parent swap card, which lets one parent wait in line while the other takes the child off to do something. The cards are good for two people, so in our case Marco and Jana waited in lines, which Lisa and I fed Alan lunch or whatever. We did that with a few rides, most notable being Radiator Springs Racers and I think also California Adventure. That system makes it much easier to take care of a young child, and makes it really convenient if you have some friends who will wait in line with you. When your friends are done waiting in line, they pass the ticket back to you, and you essentially get to join the fastpass line for the ride. So you don't have to wait very long.

I was super excited to see Cars Land in California adventure, which is based on the Pixar movie Cars. The only ride I wanted to try was Radiator Springs Racers and it was the first thing we rode (I think.) It was great. I really like the whole feel of Cars Land, it looks just like it came right out of the movie. I get motion sick very easily, but as long as the rides are smooth and don't make sudden jumps or drops, I am ok. Radiator Springs Racers does have one or two quick drops and jumps, but I was generally fine with it. It was a lot of fun. We went through the path that has you go through Ramone's Body Shop, although apparently you can also go through Luigi's tire shop as well. It was lots of fun. It looked like the line had a lot of neat stuff in it too (we skipped that with the parent swap thing) so that might have been neat to see also. Highly recommended.

We ate at Flo's V8 cafe, which was ok, but expensive for what it was. Since we planned to spend 3 days at Disneyland, I expected that we would spend a lot more money than reasonable and eat a lot of food that was just average. The decor was great though.

I don't really remember too much what we did in the afternoon, we had to drop Jana and Marco back off at their hotel, and then we took the monorail over to Disneyland. I was really surprised that they made us fold our stroller on the monorail. The monorail is really small compared to the one at Tokyo Disneyland, which is more or less a normal form of transportation compared to the one at Disneyland, which is like a small scale toy monorail. I think we rode the Buzz Lightyear ride, did some shopping, and then headed to dinner at Goofy's Kitchen.

I reserved one "Character Dining" experience which we used as dinner at Goofy's Kitchen. It was a buffet with a pretty reasonable selection, where a bunch of disney characters would come to your table while you eat. It was very popular with the kids. Alan was a bit too young to really appreciate it, but we got a few good pictures with some of the characters. The food wasn't bad, and I did certainly eat a bit too much. If you don't like loud kids though, this probably isn't the place for you (but then, is Disneyland at all?)

That evening, unfortunately, Alan started to sound a bit sick so we went back to the hotel after dinner. He napped for a bit, but was burning up and couldn't sleep. Like I already said, the Disney staff was great in getting us stuff that we needed to make sure that Alan had as comfortable a night as he could. The baby advil seemed to work and brought down his fever enough that he could sleep. We caught a few hours of sleep as well, but it was probably on the order of two to four hours of sleep for the parents.

We got a bit of a late start on Wednesday due to the sickness, but were able to meet up with Jana and Marco. We split our time between the two parks. We met Jana and Marco at Cathay Circle and rode the Soarin' over California ride (again with the parent swap thing.) I normally get pretty motion sick, but Soarin' was smooth enough that I didn't have much trouble. After that we tried to meet back up with Jana and Marco, but we got stopped by a parade. A parade! Those are great fun. So we watched that for a while. Then we met up with Jana and Marco and probably wandered around a bit more. I don't really remember. At some point in the first or second day we rode the Ariel ride, and Lisa and some other people rode the roller coaster on the Paradise Pier which I wouldn't touch with a ten foot pole if the pole operated by telemetry from an undisclosed bunker location multiple states away. I do remember that we left the park early in the afternoon (like at 4pm or so) to go back to the hotel because Alan was coughing and seemed to be sick again.

Alan slept a lot on on Wednesday night, so that was good. He was pretty clearly sick though.

Thursday was our last day, so we checked out and had the front desk store our luggage. Then we headed out to the Disneyland gates and met the rest of the family. The plan was to have lunch at 11:30am at the Cafe Orleans (it was the only place we could reserve for a party of 10.) We went to Small World before lunch, and rode the carousel. At lunch we got some birthday celebration stuff (Alan turned 1!)

After lunch some of the big kids rode on Big Thunder Mountain (yet another I passed on.) Then we tried Matterhorn. That is one that I did try, and it was a little rough, but I came out of it ok. Then I bought some popcorn (which was delicious) and everyone ate it up in quick order. We went to the line for the Casey Jr. Circus Train (which was probably the longest line we waited in!) and by the time we rode that, we were hungry so got dinner and some people left. Lisa, Alan, and I made one more pass through the park (hitting Cars land at night) then returned to the hotel to pick up our luggage and drive back to San Diego.

Aside from the people getting sick, it was a very successful and fun trip.

December 22, 2012

A quick review of the US Kindle Fire 8.9" tablet

I bought myself a Kindle Fire a while back. I only got to see it recently; I live in Japan and we only have the Kindle Fire 7" over there. I had it delivered to my sister's place in California, and have been playing around with it for about a week while I've been here on vacation.

I bought a cheap case for it (about $20?) and the case is great too. I have an android phone, so was curious how the Amazon UI experience compared. The choice was down to this or a Google Nexus 10". I actually think I would prefer the nexus, but I wanted to see how the Amazon experience measured up, and anyway my phone (a new LG Optimus G) is a new phone with a pretty powerful setup and should be a good indicator of the stock Android experience. So I picked up the wifi only 32GB (I do wish it had SD expansion if only because I could not worry about filling it up) version.

There are three main things that I want to do with a tablet:

  1. Check my email. Note that this almost positively involves writing email in Japanese.
  2. Browse the web
  3. Keep up on my RSS feeds, which I currently do with Google Reader
  4. (Optional) Play some games
  5. (Optional) Keep up with FaceBook. Note that this almost positively involves writing in Japanese.
  6. (Optional) Video chat with family
  7. (Optional) Play around with programming this thing
So how does it hold up on those fronts? For checking email it is great. I don't know what the email app is that it uses but it works great when I set up an IMAP connection to my personal mail server. It also works well with the web-based Gmail page. Of course, Google Play is not on the tablet and you don't have access to the Google apps. Normally. The email is great though. I have no problem with it (except that maybe it looks like if I have multiple devices on the same IMAP account, I can't force a sync so the local changes on the tablet might not be reflected on the other devices.)

Web browsing: great so far. Except I have now way to change the font size. Sometimes you can use pinch to zoom and it will zoom in on the web page (scaling it up.) Sometimes pinch to zoom will increase the font size. Sometimes it does nothing. Otherwise, web browsing on the tablet has been great, and much better than on my phone. The screen display is gorgeous, it has a HD 1920x10yy panel (I don't really remember off the top of my head, but it looks great.) The web pages load quickly over wifi, it scrolls well, and hasn't really had many problems with any web pages. There is no flash support, which is a good thing from my point of view. I haven't wanted to install flash yet, but there are ways to sideload it as far as I can tell.

Keeping up with RSS feeds has been great too using the Google Reader webpage. I do have two minor niggles with that: it should just load all available stories automatically (I have to periodically tell it to load more -- same with Gmail) and I wish it would say how many stories are left. Also, when I long press on a link to open it in a new tab, every once in a while (after opening up lots of tabs) it will open the link in the main tab I am in. I think that is intentional, they probably limit the number of open tabs.

The one major problem is that I can't write Japanese on this thing! I finally fixed that today. I spent a lot of time reading things about this and that, but in the end the approach I took was this:

  1. Backup the Japanese keyboard (that I like, not the default one) from my phone. I have one keyboard that I like, Jellybean keyboard. I needed to back that, and its Japanese dictionary up. I was able to back them up using File Expert, which has an option to save the APK files for apps that you have installed on your phone to the internal memory. Since I don't have access to the Android App store I used the 1mobile appstore file expert download. Note that you need to enable loading 3rd party apps in the Kindle, which is buried somewhere in the preferences but that isn't too hard to do.
  2. Hook up the phone to my computer and copy the backed up APK files to my computer.
  3. Hook up the tablet to the computer and copy the APK files over with the now installed 1mobile File Expert app.
  4. Run File Explorer, locate where I copied the apps, and run them. Run the Jellybean Keyboard app and it pulls up preferences that let you select the language to use. It looks like actually just installing the Jellybean keyboard would have worked, but I need the Japanese dictionary to type Japanese. For some reason, the keyboard itself could not download the dictionary, so it is good that I copied it over.
  5. Hey, Japanese works!!
So now I just have to focus on the other things. I did buy CinePlayer, which plays movies fine (I copied some over to the tablet.) I usually use VXPlayer, but that crashes after a few seconds, consistently, so I needed to pay all of $2 for the CinePlayer app. It works well. I also bought a Humble Bundle a while back that has a lot of Android games. I haven't had time to play any of them yet.

The FaceBook app is broken in a strange way: the first 10 entries or so work, but after that everything is just text and looks like there is no CSS formatting. No pictures. And you can't update it. I've reported that to FaceBook (as have others) but luckily the mobile version of FaceBook in the browser works very well. There are some problems there (sometimes pictures are too large and run off the screen?) but it works well enough. Time should help there.

The speakers on this thing are great. They are loud. I fired up Amazon's cloud player and have a bunch of music in there, even though I haven't ever used it before. Previous purchases just ended up there. Neat.

I haven't looked at video chat, but it does have a front facing camera. I haven't looked at programming either, but it should be possible.

Overall, I'm really satisfied! We have an ipad mini in the house too, and I prefer the Kindle Fire 8.9" to that, and it was cheaper to boot.

Go to Page: 1 2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27