August 20, 2014

Chrome 64-bit font rendering

Google Chrome 64-bit dev came out a few weeks ago, and I quickly switched to it. Unfortunately it had a bug displaying Chinese text, so after a few days I switched back to the beta version, but then 64-bit filtered down to the beta version, so I moved back to the stable release. Unfortunately when 64-bit came to the release version, I had to figure out how to resolve it.

Luckily, after some trial-and-error, I found the setting in chrome://flags. The setting is Disable DirectWrite Windows. (Disables the use of experimental DirectWrite font rendering system.) #disable-direct-write



The strange thing about this display issue is that it can display the Chinese text properly if I zoom in or zoom out. Only the standard text is affected, bold text is also not affected. I imagine something in the accelerated font rendering system accelerates the font display so much they just slip off my eyeballs. Oh, the problem also affects other similar fonts, such as Japanese and Korean.

March 19, 2014

Linksys NSLU2 and Attitude Adjustment

Time is such a strange thing. I was cleaning up my pile of junk and suddenly saw my dusty Linksys NSLU2. I was wondering why it's sitting in the pile and whether OpenWrt would be available for it to make an easy print server. A quick search on the Internet revealed that I had written about OpenWrt myself 2.5 years ago.

I had completely forgotten that I had done this. I guess with Mom being sick and being overworked I had just lost track of things. Incidentally, this is why I haven't written much on my beloved blog. Since I'm in need of more print servers now, I decided to upgrade it to the current version of OpenWrt.

I booted up the NSLU2 and sure enough, it still has the exact same version of OpenWrt "Backfire" 10.03.1-RC5 that I installed back in 2011. The current release version, "Attitude Adjustment", was released in April 2013. So I downloaded an image for the NSLU2 and proceeded to upgrade it. The upgrade can only be performed using the Sercomm utility and not from the OpenWrt web interface, so I had to boot up my VMware image like before to perform the upgrade.

In Attitude Adjustment, the first USB printer device is /dev/usb/lp0, so the device name has to be edited. After that, everything works just fine.

Stupidly enough, after finishing the upgrade, I remembered why the NSLU2 wasn't being used. I actually let my users test it, but they didn't like it since it had to be manually powered on if power was lost. The NSLU2-Linux site actually has a page specifically for this issue. However, this may not be an issue any more today, as the new Epson printers that we've started using recently do not automatically turn themselves on when a print job is received. We used to use Canon printers that has this feature, but Canon stopped making small sized printers so we stopped buying them.

February 12, 2014

Garmin Forerunner 220 foot pods

I've been running (as a form of working out) off and on for the past few years. As an engineer, data analysis is important to me, even if I'm a poor and slow runner. I first started with a Garmin Forerunner 205 to track and analyze my runs a few years ago. The 205 is a "GPS watch" and it relies on GPS signals to track distance and speed. The 205 only works as a GPS and doesn't support linking to "foot pods", which is required for running indoors (no GPS signal) or on a treadmill (no movement).

Of course, at the time I bought the Forerunner 205, I didn't think I would ever run on a treadmill since I don't have one at home and I didn't plan on getting a gym membership. But eventually I realized that I had to run indoors during rainy seasons. Anyway, so I decided to get a Nike SportBand. The SportBand uses a foot pod (placed inside the shoe on specific shoe models or tied to the shoelace using an accessory or duck tape) to measure the foot's movement instead of relying on GPS for movement. So it works both outdoors and indoors, but unlike a GPS, it's not able to map the course of the run, and it needed calibration to the individual in order to be accurate.

A lot of people say the Nike+ system is inaccurate and without calibration it makes most people think they're actually faster than they are, usually by 5% or more. Since I have both the GPS and the Nike+, I discovered that my Nike+ is actually slower than my GPS by about 5%. After calibration I get 99~100% accuracy compared to my the Garmin GPS.

Fast forward to 2014. Recently I finally got tired of using two systems and constantly having to convert my workouts between systems (details in another post), so a few weeks ago I upgraded to a spanking new Forerunner 220 with a foot pod (purchased separately), so I can use one system for both outdoor and indoor runs.

The Garmin Foot Pod (usually called the "SDM4" to distinguish it from generic foot pods) costs way too much locally, but I managed to find Adidas miCoach Stride Sensor locally for half the price of the SDM4. Contrary to popular belief, the miCoach Stride Sensor is available standalone, although I have no idea where it's available online (I searched) as I found it at a local shop. (The miCoach sensor is half the price of the Garmin locally, but only because they sell the Garmin at twice the price they should be selling.)

The Adidas Stride Sensor looks exactly like the Garmin SDM4 Foot Pod, apparently being manufactured by the same manufacturer. They both use the same ANT+ protocol, so they are completely compatible with each other. Strangely enough, it does NOT fit inside the Nike+ hole inside my Nike shoes, despite everything I read on the Internet that the ANT+ sensor is exactly the same size as the Nike+ sensor. But the Garmin / Adidas sensor is microscopically bigger and it does not fit.

(Oh, the Stride Sensor is a different product from the Adidas miCoach SPEED_CELL. The SPEED_CELL has built-in memory and will upload workout information to your computer after the workout without having to have a recording device at the time of the workout. I guess it might also function as a regular foot pod, but I don't have one to try it out.)

Stupidly enough, one thing that caught me completely off guard about the Forerunner 220 and the ANT+ foot pod is that the watch only supports linking to one foot pod at a time. This is unlike the Nike+ system that supports up to 10 sensors. When I was using the Nike+ system, I actually bought one sensor for each pair of shoes I have, so there's no need to swap the sensors. I don't quite understand why I can only link to one ANT+ foot pod on the Garmin. Am I supposed to move the foot pod to whichever shoe I decide to wear before I start my workout? Completely illogical.

July 26, 2013


I'm posting this in celebration of SysAdmin Day 2013.

Like everywhere with a file server, all our users' files are stored on the file server, so the users don't need to worry about hard drive damages and they can access their files from any computer in the domain just by logging in, and I don't need to worry about having to move files over to a new computer when their computers gets replaced, and backup scripts and shadow copy on the server keeps everyone's files safe.

So I gave a user a new notebook computer, and he called me up a few hours later and said that Documents is empty on the new computer, and he couldn't find his files anywhere. Okay... I let him know that in order to see the files in the new computer, he needs to save his files on the server and not on the computer's hard drive. In fact, he should not be using the local hard drive at all, and should always use the server to save his files.

A few hours later he brought his old notebook to my office, and let me know that he had successfully moved all the files to the file server, and he had already deleted all his personal files from the old computer.

"Very good, hope you like your new computer."

Yet a few hours later, he called me up again and said he couldn't find his files on the new computer. Even though he made sure they were there earlier.

"Wait... when you told me earlier that you deleted the files, what exactly did you do?"

"You told me to move my files to the file server. I did that."

"... and?"

"When I was sure I can see my files on the new computer's file server, I went back to my old computer and deleted them all from the old computer's file server."

"Uhh... right, let me do some magic here, call me back again when you see your files appear."

Fortunately, my server performed a shadow copy before he deleted the files, so I restored his files without any trouble. A few minutes after I finished restoring his files, he called me back.

"Great! I can see my files now! Thanks! But what about my emails? I deleted them from the old computer too."

(We use Google Apps.)

June 23, 2013

DD-WRT duplicate MAC address

Earlier this year I decided to upgrade my team of WRT160NL to the latest DD-WRT. The upgrade went fine, but afterwards I could only reach just one of the WRT160NL's. Upon closer inspection, I discovered that the MAC address on all of them were set to 00:11:22:33:44:55.

This would be perfectly fine for normal users who have just one such router in her LAN, but it didn't work for me since MAC addresses have to be unique in a LAN.

The nvram set command can be used to change the MAC address, but it only affects the MAC address displayed in the DD-WRT control panel, it doesn't actually change the MAC address. After some fiddling, I found that I need to use the ifconfig command, so the full command is:

ifconfig br0 down
ifconfig br0 hw ether 00:25:9C:CA:23:0D
ifconfig br0 up

The LAN MAC should be the same as the Wireless MAC, so that's what I used. The commands can be save as a startup command using the DD-WRT interface. And here's a screen capture of the new setting in effect.

Since I have more than 10 WRT160NL's, I had to go to each one to change the MAC address. This is a bug in DD-WRT, but since it only affects people with multiple routers, I think it may be a long time before it gets fixed, so my workaround will do for now.

May 31, 2013

Business courses on Coursera

I wrote about MOOC earlier. Since I lack a lot of business management knowledge, I decided to look at Coursera in more depth and take some business courses there. I've already taken courses at edX, Coursera, and Udacity (big three of MOOC) at this point, and I think I can make a fair comparison of them.

I would not say that Coursera's courses are comparable to university classes. At best, they're similar to extremely high quality training courses. I took classes on innovation and operations management (among others). Both courses were 8 weeks long with some tests and "peer-graded" projects. The concepts I learned were solid though. Both classes have optional textbooks that must be bought separately that go into more detail than the online lectures and free materials, but neither require the textbook. The courses are completely self-contained. I spent roughly 4 hours per week on the innovations course (standard track), and roughly 8 hours per week (practitioner track) on the operatons management course.

And yeah, peer-grading really sucked in one of the other courses I took as the grading criteria wasn't clear at the beginning. Even though the class instructor posted in the forums to clarify the grading criteria, many people did not read the forums and I managed to fail the course spectacularly. The innovations course's projects were group projects, and many people complained that their partner got bored with the course and disappeared. (Apparently the course completion statistics of MOOC is only roughly 5~10%.)

These problem is in part due to the multitude of courses available from different universities and instructors. Some of the courses are really professionally made, while some seem to be put up in haste with bugs and missing features. Because I took so many classes all at once, it was quite obvious that the Coursera platform has many optional features that are up to the instructor and staff to use at will, and many are learning as they go along.

Coursera made headlines at the beginning of the year for introducing the Signature Track. The Signature Track really a certificate with a unique URL that contains the student's name and course details. Without the URL, the Coursera (and Udacity) "statements of accomplishments" are completely worthless since you can actually edit your profile name, and re-download any certificate, and the certificate will contain the new name. Another perk of the Signature Track certificate is that it looks really professionally made, I'm not sure though if it's a PDF file like the statement of accomplishment or if you get it in the mail. It costs roughly $30 to $50 for the verified certificate right now, but according to Coursera, prices will go up.

I paid for a Signature Track course just to find out what the verified certificate looks like and see how they handle the verification process. Every time you submit an assignment, there is a typing pattern recognition test and webcam facial recognition test to "prove" that you are really you, and that you're actually doing the work. This is kinda hokey since nothing stops you from cheating and proving yourself to the computer really proves nothing. Besides, I tried typing the verification phrase randomly and not sitting in front of the webcam when submitting, and Coursera still happily accepted my submission. I'm not sure how much tolerance the tests have, but they surely accepted anything I threw at them.

Even with all the verifications and stuff, the Signature Track certificate really doesn't hold any value since it's not from an accredited institute. But like I said above, Coursera's courses both in quality of material and length of the course are only comparable to high quality training classes as opposed to a university class, so they're still invaluable if you're thirsty for knowledge, and not just a piece of paper to prove to your employer that you took a class. Personally, I would pay for the Signature Track as a way to support Coursera, and also to make myself work harder on the courses since it's being paid for, and not give up so easily.