Article posted on Feb 8
I'm getting over the flu, and my hands are covered in ink.
When I re-started the Finnix project in 2005, I bought an inkjet printer. I already had a laser printer (an HP LaserJet 1200, which lasted 12 years, never once having to replace the toner cartridge), but I wanted a compatible inkjet printer to be able to print directly on CDs. This was a relatively new concept at the time, but there were a few mid-range printers which did this.
I bought an Epson Stylus Photo R220 from CompUSA (remember them?) for about $120, and kept it alive for the last 8 years. In inkjet printer years, that's easily over 100. Several times over the last few years, I considered replacing it, but the R220 was the devil I knew. I knew all inkjets are crap in some way or another, and I knew exactly what the quirks were on the R220. The biggest problem was if I didn't print something at least once per week, the nozzles would clog up and would require about half the cartridges' worth of ink to unclog them. That, and the utility to print directly on CDs required a Windows-only application (you do not want to try to position things manually when printing CDs). Still, overall it was a decent printer.
Today I went to use it, and got a notification, something to the effect of "parts within the printer are almost at the end of their service life". From some searching, I found out this meant the overflow ink reservoir (which is a series of cotton pads within the printer) was almost full, according to its predictions. I followed a guide which showed me how to redirect the overflow tube outside the printer and into a new receptacle (in this case, a small bowl with some paper towels in it), and felt satisfaction with my "mod".
I also needed to replace the ink cartridges which were empty. I did so, ran the ink priming utility, and did a nozzle check test, which prints a test pattern for each color and lets you determine if any colors' lines are clogged. Normally after replacing the cartridges, some of the lines would be clogged. The solution is simply to wait a few hours, prime it again, and test it again. Getting full output would usually never take more than 2 or 3 cycles.
This time, all of the colors looked remarkably well, except for cyan. Instead of a series of diagonal lines, cyan came out as one big blob halfway down the page. Game over, man.
I did some quick research, and settled on the Canon Pixma MG5320 as a replacement. The first thing you will notice is it's a "multifunction" printer. That's because it seems you cannot buy just a printer anymore, unless you want to spend $500 or more on a "professional" printer. I already have a scanner, an Epson Perfection V200, and it works fine (I mostly use it for light document scanning). I didn't really want a multifunction printer because I suspected the scanning software would be crap (spoiler alert: turns out I was right), and it nearly doubles the size of the unit. But that's what I had to get.
It got decent reviews, with the biggest con being the cartridges are small. However, aftermarket cartridges are available, which was a requirement I had in a replacement. The MG5320 was replaced by the MG5420 in December, which is nearly the same, but SuperMediaStore doesn't have aftermarket versions of the MG5420's cartridges yet. I don't know if it's just because the MG5420 is new or if the cartridges have even more restrictions which haven't been bypassed by the aftermarket manufacturers yet, but I didn't want to risk it. Walmart was still selling the MG5320, and it was on sale for $90 (probably clearance), so I went there and bought one.
Setup was easy, mostly done through its built-in LCD. One eye raiser is it required a special piece of heavy paper to do the initial calibration, with special notches on the paper. The printer included two sheets; I really hope this calibration is not required whenever the cartridges are changed. The old R220 used six cartridges: cyan, light cyan, magenta, light magenta, yellow and black. The MG5320 uses five: cyan, magenta, yellow, black, and another black. (One of the black cartridges is larger than the others and is apparently for when you're just doing grayscale printing. How much more black could have been included with this printer? The answer is none. None more black.) I was worried not having the more granular cyan and magenta would affect the print output, but the first CD I printed looks just as good as the old printer.
The Canon software used to print CDs is a bit more convoluted than the old Epson software, but it gets the job done, where the job is "just take this 600dpi image and put it on a CD". (Both the old and new software wanted me to do text/clipart/etc layouts, in a 1990s Broderbund Print Shop sort of way.) But the end result on the new printer is fine. Oh, and while it's directly connected to the Windows machine via USB (like all printers, this one didn't come with the required USB cable because, err, look over there!), there is also a wifi adapter on it. After setting that up, I was able to tell my Ubuntu laptop to automatically find and use it. It was literally the easiest printer setup I had ever done.
PS: If you want to print on CDs using a printer with a CD attachment, forget the printable CDs you find at the office supply store. They're porous, look bad, and smudge easily. Instead, get Taiyo Yuden Water Shield CDs. I don't know how they work, but they do. They're high gloss, dry almost immediately, and once they dry, they're waterproof and almost impervious to wear. Quite simply, they look great, and are worth the extra money.
PPS: I got rid of the HP LaserJet 1200 last year. I loved that thing. I bought it in 2000 from an OfficeMax which was selling it as a used floor demo unit (for about $200 IIRC, about $150 less than retail), so it already had a bunch of pages printed. Still, the toner cartridge which came with it was still going strong 12 years later. However, in its final years, the feeder was producing extremely skewed printouts, which was not something you could just adjust. I replaced it with a Brother HL-2270DW, which I picked up on sale for $70. It's got wired/wireless connectivity, supports duplex printing, but is otherwise just a simple laser printer, which is fine by me. Though, ironically, I have to tell Ubuntu it's an HP LaserJet 1200 PCL3 with a duplexer to get it to work, but once I do that, it works fine.
Article posted on Feb 3
(No pictures because #1, I'm lazy, and #2, it looks like chili.)
I originally set out to prepare a chili dip to re-heat quickly for tomorrow. That failed (the cooked dish was way too thin for dip), but what I instead created was, considering the ratio of tastiness to ease of preparation, the tastiest thing I have ever prepared.
Crumble the queso, mix everything together in a 2-quart covered baking dish, and bake at 350° for 30 minutes.
As you can imagine, it's pretty spicy. You can play around with the non-hot equivalents of the various ingredients as desired. When I was a kid, I really didn't like spicy foods, but over time that has changed. The likely reason is I'm getting older, and when you get older, you start losing taste buds. When I was in high school, friends and I used to go to Taco Bell often, and they had just introduced the Fire sauce. I would eat it to be "cool", but really I thought it was too spicy. These days, it's very mild. When I was in my 20s, I started liking things which were a little hot, but had a lot of flavor (like Frank's RedHot sauce, which despite the name isn't that hot). These days, I tend to like heat for heat's sake.
Article posted on Jan 30
The original Half-Life and Counter-Strike games were quietly released for Linux and Mac OS X last week, and as the maintainer of SteamLink, a repackaging of Half-Life: Uplink for Steam, I went out to see if the mod's files could be installed on these platforms.
Turns out there is a bug in Steam for these platforms, where it tries to launch the Windows version of Half-Life for GoldSrc mods from within Steam. However, Half-Life can be manually launched and pointed at the mod.
I have released a new version of SteamLink as a zip file. If you would like to run Half-Life: Uplink on Linux or OS X, simply download and extract the zip, and run the installer shell script. It will determine the Half-Life installation directory, install the mod, and give you a symlink to a script to launch it.
Article posted on Dec 23
This is the post I intended to make two weeks ago, as a follow-up to an introductory post on DayZ. It details a rich, full day in the game two Sundays ago. It helps to reference this map when understanding the locations in the game. Mind you, until this point, I could have counted the number of times I had been in a vehicle on my hands, but in this exciting day, I was in five.
I logged in to a server and spawned by Cap Golova as a fresh survivor. I hadn't played on the main hive in a week or so (hives store your player's state and equipment), so I didn't remember why I had died previously. There is a lighthouse at Cap Golova, and next to the lighthouse is the best chance to find a fully working bicycle, so I checked. Sure enough, there was one. Since I had no equipment, nothing to lose, and a bike, a fun thought entered my mind: I was going to ride up to the Northwest Airfield and ride around the runways. Northwest Airfield is a hotspot for combat action, since it spawns the most military weapons, and my plan was essentially a (fun) suicide mission.
I got to the airfield, rode around for awhile, and was disappointed by the lack of action. No zombies were spawning, which is an indication nobody was around. (Zombies will not spawn if you are in a vehicle, only approaching an area on foot.) However, there was a helicopter crash site on the airfield (crash sites are rare and spawn the rarest weapons in the game, but are guarded by lots of zombies), so I got off the bike on a nearby road and walked over to the crash site. I picked up a rifle and binoculars, but got knocked out by a powerful zombie hit. I regained consciousness and managed to make it back to my bicycle, but was near death. I rode out of the range of the heli crash site zombies, got off the bicycle, and bandaged myself up, but I couldn't see straight. Just then, I heard a zombie approaching. I got back on the bicycle, and noticed zombies coming from a second heli crash site near by!
In the escape, I crashed the bike on some rubble, effectively destroying it. I walked, still in a bad state, to Vybor, where I proceeded to eat my way back to relative health. Blood bags can restore you to full health, but must be administered by another person. When alone, the only way to restore health is to eat. The fastest way is to kill, gut, cook and eat a cow, but that requires a hunting knife and matches, which I didn't have. By eating a dozen or so cans of food, I was able to at least see straight.
On a bridge south of Vybor, I saw an ATV. As I mentioned in my last post, ATVs are very buggy, and will often flip over, and will always flip when driving over bridges. You could tell someone tried to drive over the bridge, flipped the ATV, and abandoned it. Sometime after that, the server restarted, which will right flipped vehicles. With some work I was able to get the ATV off the bridge (ATVs on bridges will still often be "boxed in" between invisible walls, but can be escaped with enough work), and I drove it south to my "base", a tent hidden north of Balota.
West of Balota, in Komarovo, I found a bus on the side of the road. Buses are fun to have; you can give people rides and go around the map with a very large target painted on you, until something inevitably happens and you're killed. It's fun, trust me. The bus was in good shape and had some mid-level supplies, but was missing two wheels. Someone probably crashed it here and abandoned it. I dropped the ATV and all of my supplies off at the base and went to the Komarovo industrial area to search for wheels. In a large factory building, I found a wheel, plus the body of a survivor who was carrying another wheel (probably doing the same thing I was doing, possibly even the person who crashed the bus). I fixed up the bus and drove east along the coast.
Despite having a dozen or so people on the server, I didn't find anyone in Cherno or Elektro, so I drove north along the coast, looking for freshly-spawned players. Still, nobody. I made it up to Berezino (the northeast corner of the map), turned around, and went back south, but didn't make it far. At Nizhnoye, I crashed into a Jersey barrier, breaking two wheels on the bus (again, sigh).
I spent the next half hour walking between Nizhnoye and Factory, looking for wheels. I didn't find any, but found a bunch of other vehicle parts: engines, fuel tanks, a main rotor assembly for a helicopter, etc; I put those in the bus as I found them. Unfortunately I'm knocked out and killed by a zombie at one point. (Usually zombie hits are nothing more than small annoyances to experienced players, but they can sometimes be powerful enough to knock you out and kill you.) I re-spawned by Kamyshovo, a bit of a walk from Nizhnoye, but doable.
At this point, I noticed some talk in the "side chat", a global chat medium between players, enabled on some servers. Apparently a group of "friendlies" had found a broken helicopter at Devil's Castle, and was looking for the parts to fix it up. I had only been in a helicopter once before, so I explained my situation: I had most of the parts they needed, but first needed to get back to my bus, fix it up, and ride over to Devil's Castle. They had the area pretty well secured, so they were happy to wait.
(This is the part I mentioned before. While the #1 rule in DayZ is "trust no one", some of the best (or worst) experiences happen when you do decide to trust someone, team up with strangers, etc. Listening to people tends to give you a good (but not perfect) idea of whether you can trust them, but it mostly comes down to gut instinct. Besides, if you have nothing to lose, you can afford to take some risks.)
Luckily, I found two wheels in a warehouse in Kamyshovo, but upon exiting, I was hit by a zombie, started bleeding, and had no bandages. I searched around for one, didn't find one in time, so I hid myself and bled out, hoping I could reach my body after I respawned. Conveniently, I respawned near Balota, so I retrieved the ATV I had hidden nearby. After a few random ATV flipping episodes which ate away at the time (you can self-right a flipped ATV, but it takes a lot of time and fuel), I made it to my body, retrieved the wheels, and drove to the bus. I hid the ATV in the woods nearby, fixed up the bus, and made the journey to Devil's Castle.
It took awhile (buses don't work well on dirt roads), but I eventually got the "party bus" (as it was called by people in side chat by that point) to Devil's Castle. The people there were very nice, offering me food and weapons from the stash they had built up on-site. Sure enough, there was a broken helicopter in the middle of the castle yard. I had most of the needed equipment with me, but we were still missing some glass, so some people were sent out to search for it. I stayed behind with two other people to defend the castle.
Embarrassingly, I died while defending the castle from a wave of zombies. I wasn't attacked... I fell off a ledge. I respawned as far away as possible (in Kamenka), and considered ragequitting. However, a few minutes later, everyone in the server was transported by a hacker, to an airfield. This is not uncommon in DayZ; a hacker will transport everyone somewhere, and watch as the inevitable melee happens. However, this was different. Surrounding all of us were about a dozen helicopters. To everyone's credit (as was pointed out after the event), not a single shot was fired, and instead everyone ran for helicopters. Someone reached one, took off, and crashed it within a few seconds (helicopters in DayZ/ARMA are difficult to pilot, and you would not be able to pilot one if you hadn't done the training in ARMA first). Unfortunately, this started a chain reaction, destroying most of the helis and people.
I was alive, a few were left (and only one or two other people), and I managed to reach one. Luckily I knew how to fly a heli (not an expert, but competent), so I flew away. In the end, apparently I was the only one to survive that incident. I flew around the map for about an hour.
Now, a word about ethics in DayZ. Because DayZ is so poorly secured and hacking/cloning/etc are so rampant, there is a strong sense of ethic among the people who don't hack. There is a general disdain of "hacker trash", or ill-gotten goods. Sure, I won the little contest the hacker had made, and sure, I was going to have some fun with the helicopter I was now flying. But I knew from the moment I got in that I was not going to keep this, or let anyone else have it. This heli would be destroyed by the end of the day.
So I flew around for awhile, getting better at the controls, buzzing the coastal cities. While I was doing this, apparently the hacker then turned everyone into rabbits. I wasn't affected; this may have been because I was in a vehicle at the time. This contributed to most of the people in the server leaving.
Of the people who were left, I asked if anyone wanted a ride on side chat, and someone volunteered. He was just outside Elektro, I picked him up after some difficulty landing (cross-winds were very strong at the time), and I dropped him off at the Northwest airfield.
I flew back to Elektro, but by then it was getting dark, so I decided now was the time. I auto-hovered above the church, gained a lot of altitude, cut the engine, and bailed out. Unfortunately I was way too high up; the winds took both the helicopter and I away from the city, toward the ocean. The helicopter disappeared into the distance and I could hear it explode upon crashing into the water, but I was being taken over the water too.
My parachute landed near Draken island, so I swam to it (which contains nothing but an empty lighthouse), got to shore, and logged out. It was a good day.
Article posted on Dec 10
DayZ is a zombie apocalypse FPS game, emphasizing realism wherever possible. I started playing it after surgery, since I had a lot of free time. And it requires a lot of free time. It's very time consuming, and very frustrating, but can be entertaining in the right mindset. I could tell you a hundred stories so far, and in fact began this post with the intent of telling one, but understanding it requires a lot of explanation. So I'll begin with an exposition of the typical DayZ experience.
You awake on an ocean shore; you have no idea where you are. Your possessions are a small backpack, a flashlight, a bandage and some painkillers.
After walking down the shore, you spot a small town in ruins, with zombies shambling around. If you are careful, using cover and/or crawling, they might not see you. But if they do, it becomes a problem. They're stronger than you, just as fast, hard to lose, and you have nothing to defend yourself with.
Hopefully you find an old barn or shed, and maybe it has an axe, which you can use as a crude weapon. You're also on the look out for food and drink, because you risk death from hunger and dehydration.
Next to the train tracks, you hear some flies buzzing. You see the body of another survivor not unlike yourself. What killed him? Not wasting an opportunity, you search his body, possibly finding a canteen and a watch. Score!
Eventually you come across a larger city. The signposts are in Cyrillic; you have no idea what they say. There are more buildings, more opportunities to find supplies. You may even find a pistol and some ammo. Vehicles are everywhere, but most are completely burned out. If you're very lucky, you may find a vehicle which could be salvaged, but it would require a toolbox, parts, fuel cans, etc.
But in this larger city there are larger dangers. Many more zombies are around, it's hard to avoid them. And there's the risk of encountering other survivors. You may be in the remains of a supermarket, looking for food, when you turn a corner and come face to face with another survivor. He says "I'm friendly", but you can't be sure. There are no laws, nothing to prevent him from shooting you if you turn your back. You must decide how to handle the situation.
Other survivors can easily kill you. Maybe they want your can of baked beans or the rifle you just found. Maybe they are afraid you'll kill them. Maybe they've found a sniper rifle in the military barracks a few kilometers away and are sitting in the tree line outside the city, picking off survivors for the thrill of it.
If you stay alive long enough to build up some supplies, your confidence grows. You might ally yourself with some other survivors. Maybe you even get enough equipment together to fix up a vehicle. But your life could end literally at any moment.
So that's DayZ in a nutshell. It looks very realistic; for example, it's hard to pick out people in the distance if you haven't trained yourself to look for small bits of movement. There are no big name tags above people's heads. The servers follow a real-time day/night cycle, and it's very hard to see at night, unless the sky's very clear and the moon's out. The map is very large, many kilometers from one side to the other, and you're walking it in real-time (unless you have a vehicle, which again are very rare). All of the (official) servers are linked together in one "hive", so your position and equipment are saved if you log out one day, then log in the next on a different server.
The zombie aspect is basically just there to keep things interesting. The real game is the human interaction. With no rules, you must be a lot more calculating in order to survive. You would think that with no rules and everything at stake, there would be no civility in the world. But a lot of the fun experiences come from deciding to trust someone. There are a lot of bandits in the game (people who kill for the thrill of it), but there are also a lot of good people.
Unfortunately, DayZ is pretty buggy. Sometimes walking over a rock will break your legs. Once you do build up enough experience to start finding and repairing vehicles, you'll quickly find the ATV is the most annoying vehicle in the game; do not drive it over a bridge, it WILL flip over for no reason. And unfortunately hacking is rampant. Someone might teleport behind you and shoot you in the head, or decide to turn everyone in the server into rabbits and place them on an island.
And that's just the illegitimate gripes about the game. Many of the normal in-game interactions can end your run in an instant. An errant zombie hit may knock you out and kill you, taking all of your accumulated loot with you. You may be able to get back to your body in time after you respawn (one of the few aspects that break the ultra-realistic feel of the game), but probably not. My personal mantra is "DayZ giveth, DayZ taketh away". Funny enough, I found it a lot more enjoyable to play the game once I accepted that I could die at any moment. I would take more (yet calculated) risks, and didn't drive myself crazy trying to keep myself alive, or despair when I did get killed.
So anyway, that's a good introductory explanation of the game. I played it a lot when I was on medical leave, but since it is a real time waster, I've been limiting myself to weekends since returning to work. Hopefully in the next post, I'll give you the story of what happened Sunday.
Article posted on Nov 14
There is now an article on Wikipedia about me. Sort of.
Article posted on Nov 4
I'm working on re-doing my home router / VM server to provide better IO. The goal is to have an SSD as the boot drive, and 4 2TB disks in RAID 10 (4TB usable total) for the VMs. I'll be using md RAID for building it, however I want to be particular about where the drives are physically, for a few reasons:
Linux md RAID 10 is a relatively new mode. In the past, you would manually create multiple RAID 1 arrays, then combine them in RAID 0, thereby knowing where the disks were placed, since you were doing it yourself. The mdadm RAID 10 method is easier, but I found there is literally no documentation on what drives it uses for the underlying RAID 1 arrays. Using loopback devices and some trial and error, I figured out how the arrays are assembled.
In a nutshell, the underlying RAID 1 arrays are paired two at a time, in order given during creation. If you were to do this:
# mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sd{a,b,c,d}1
sda1 and sdb1 form one RAID 1 array, and sdc1 and sdd1 form another:
|---------------------------| | RAID0 | |---------------------------| | RAID1 | RAID1 | |-------------|-------------| | sda1 | sdb1 | sdc1 | sdd1 | |---------------------------|
One other thing to mention is what happens when multiple drives are lost. Say in this case, both sda1 and sdd1 are lost, resulting in a degraded but functional array:
# mdadm --fail /dev/md0 /dev/sda1 # mdadm --remove /dev/md0 /dev/sda1 # mdadm --fail /dev/md0 /dev/sdd1 # mdadm --remove /dev/md0 /dev/sdd1 |---------------------------| | RAID0 | |---------------------------| | RAID1 (D) | RAID1 (D) | |-------------|-------------| | | sdb1 | sdc1 | | |---------------------------|
If you were to replace sdd and add it back first, you might think it would go in the second RAID 1 array. But no, it takes the first available degraded slot:
# mdadm --add /dev/md0 /dev/sdd1 |---------------------------| | RAID0 | |---------------------------| | RAID1 | RAID1 (D) | |-------------|-------------| | sdd1 | sdb1 | sdc1 | | |---------------------------|
So be careful in this situation, if you care about where the devices are physically laid out.
[0] Half of the order actually arrived Friday, including the SSD and a 4-port PCIe 4x SATA 6Gbps controller. The idea was to place two of the RAID drives on the motherboard SATA 6Gbps controller, and two on the new controller, plus the boot SSD (which is also SATA 6Gbps). My system has 3 PCIe 1x ports and a PCIe 16x port. The 4x card was supposed to go in the 16x port, but I learned after failure that many motherboards do not like non-video cards in the primary 16x port. Oh well. The boot SSD will now go on one of the motherboard SATA 3Gbps ports, and I've got an order in for a 2-port PCIe 1x SATA 6Gbps controller.
Article posted on Oct 25
The last few months had been going great. I had gone on a diet and exercise, and had lost over 30 pounds. I was feeling very good with myself.
Two and a half weeks ago, the day after I had returned from a business trip to London, I woke up with an intense pain in my neck, shoulder and left arm. I immediately knew what was causing that type of pain. This had happened before.
You may remember five years ago, I got a herniated cervical disc, C5-C6. It came on gradually over a few months, so I didn't get a proper diagnosis immediately. But once it was identified, I had surgery. Recovery was a success, and I thought it was behind me.
This time I wasted no time. It happened on a Monday which was a holiday, so I found some old Vicodin to quell the pain. I called my neurosurgeon on Tuesday, got an appointment for Wednesday, they were able to get me an MRI and x-rays that Saturday, my doctor reviewed the results Monday, and Wednesday we scheduled surgery for the next Monday, for a total of two weeks.
Last time it was C5-C6, which puts pain on the neck, shoulder, bicep and makes you lose sensation in part of the hand. This time it was C4-C5, which puts pain on the neck, shoulder and deltoid, which lets you raise your arm. Within a few days, I had completely lost the ability to raise my left arm.
The surgery was a success in that the primary pain is gone. But I'm still recovering, and very sore and weak. And my deltoid has not recovered; I still cannot raise my left arm. The doctor says it may recover on its own, but now it's looking more like I'll require physical therapy.
(You'll never appreciate your deltoid until you lose control of it. Things such as putting on a shirt or applying deodorant become complicated tasks, requiring you to brace against a wall and "walk" your arm upward with your fingers and your other functioning arm for a brace.)
And to kick me while I'm down, while in the hospital, they took blood tests and found my fasting blood glucose level is 177. So I have diabetes. I've been ordered back to my GP to start dealing with that.
But hey, life was good for awhile.
Article posted on Aug 22
I'm not a programmer, honest, but lately I've had this annoying habit of releasing code. But instead of my normal rambling posts about new announcements, I'll try to keep it brief.
apache-vsl has been one of my "90/90" projects (90% done, just need to finish the remaining 90%) for many years; I believe I started it around 2006, and I finally