Cleared: Samus Returns

2017-12-11 12:23 - Gaming

My clear screen for "Samus Returns".

I started this game over Thanksgiving week, and just (this weekend) finally finished it. Some boss fights were a bit frustrating, but overall I found it to be a great and enjoyable 2D Metroid game.

Thanksgiving 2017

2017-11-23 22:36 - General

Diced potatoes. Creamy parmesan mashed potatoes. Slow cooker sweet potatoes with applesauce. Pumpkin filling for ... Pumpkin cream cheese crescents and cheese and garlic biscuits, baking. Pumpkin cream cheese crescents. Cheese and garlic biscuits. Home made from scratch stuffing. Baked turkey breast. Sliced turkey. Green beans and cranberry sauce. Chocolate cookies with peanut butter and chocolate chips, dough. Chocolate cookies with peanut butter and chocolate chips.

Here's a pictorial overview of Thanksgiving at our place this year. I made both the mashed and sweet potatoes, both rolls, and the cookies. My mom made the rest and the pie (not pictured). The pictures don't really do it justice, everything was fantastic. The sweet potatoes were not as great as I imagined (based on the recipe) though.

KQ Button Tester; nee Turbo Button

2017-11-16 22:19 - Making

My KQ Turbo Button device, on a messy desk.

I've never posted here about this device I made. I made it earlier this year, mostly as a joke. On the right, now mostly hidden by the fan, is a solenoid. It sits poised above a yellow arcade button, also mostly hidden by the fan. On the front of this view is the electronics and the controls are on the top, all glued to a huge 12 volt lead acid battery.

The original point was to be able to press that button with inhuman speed and accuracy. I managed to leverage that to contribute to some of my videos about Killer Queen. More recently I've been interested in figuring out how to pick good arcade hardware. The moving parts wear out and need replacing. Which ones to buy as replacements?

So I updated the device, not only can it push the button — normally the one in the real arcade, now (in the extra little bit of wood it's sitting on) a dedicated one — it can read its value. So it can be used to derive fine details about the performance of the button, when pressed. I want to do quite a bit with this. Here's one example:

ED 0
D 12272
U 12280
D 12284
U 12540
D 12832
U 12836
D 12844
EU 0
U 8364

That starts ED 0 for "event down zero". Then a bunch of lines D and U indicate the timing of "down" and "up" events observed, in microseconds since we started the "down" event. All real mechanical switches "bounce" a bit when activated (and deactivated, usually). In this case, the button first went down about 12 milliseconds after we started (it takes some time for the solenoid coil to charge up, then to physically move) and the switch contacts bounced apart and back together three times after that, taking just over half a millisecond to settle down into its final resting state. And in this case when it came back up, there were no bounces. In my limited experience so far, this looks like good performance for such switches.

This is just one bit of data but we can compare quality in the "bounciness" category pretty easily: how many bounces, and how long before the last one is done? I intend to follow this with a post containing a detailed summary of this, for several switches. I need to make a final call on exactly what I want to measure, and make sure my tool will do that if at all possible, so it will take a little time.

Tech Woes; Server With No Display!

2017-11-11 23:10 - General

I've got a story to tell, about my broken computer. It's actually still somewhat broken, but I've just climbed up out of a valley that so deep, it feels almost like it's fixed. Here's the story, but be warned: it's probably too much detail.

So, I keep a server at home. It's multi purpose. It stores my important files on a redundant ZFS array. It plays some of those (media) files on my TV. It runs and exposes various small services. It's deeply important to me given all these things I use it for. In addition to that local disk array, I have a remote backup of the data on a similar machine at my Mom's house. Which has an extra disk for her data. And I've got an extra disk for a remote backup of that.

That last fourth disk in my server is a relatively recent addition. Around when I put it in, I noticed that the drives all stuffed next to each other get a bit warm. I decided to install an extra fan, to keep them cooler. This started its own sad story. There's an unused "case fan" header on my motherboard, yay. I have a spare compatible fan, yay. It doesn't support speed control though, and is far too loud to keep running in a studio apartment. So I found a bigger fan, which supports speed control. Got it all set up, figured out how to set the speed, and I can tell even when running slow enough to be effectively silent, it still moves plenty of air. Great! So I screw it in to place, get ready to call it a day ... and discover the cable isn't long enough. Long story short, I probably crossed a wire and zapped something while trying to extend it to reach. It doesn't go anymore. Not sure if it's busted, or the power connector. But I find yet another fan, this one uses not the fan connector but just the standard power accessory (i.e. old IDE disk) connector, and is designed to be quiet. Great!

But doing all this effort to get a working fan installed involved opening up the computer, moving things around, fiddling with them... And as I said quiet is nice when you only have one room. I noticed a little noise, it seemed to be a fan (new fan, CPU fan, power supply fan?). I decided to use my standard technique of (briefly) stopping the running fan by jamming something into it to narrow down where the noise was. Wasn't the new fan. Wasn't the CPU -- but this one ran fast enough to hurt my finger a bit so I stopped using that. Popped a screw driver into the power supply fan and WHAM. Broke one of the blades off of it. Ugh. Had to open it up a bit to move the fan guard out of the way to un-jam it. Everything still worked, but I had never completed my earlier goal of figuring out where the minor noise was coming from. Everything was still off, so I put the driver back into place, intending to block that fan from spinning while powering it back on.

ZAP! I shouldn't have used a metal screwdriver. There was a spark and a pop. And I busted a fuse. And I was scheduled to leave on a flight at ten AM the following day (this was the night of October 4th). Stomach in knots. I managed to take the power supply out, take it apart, and find the fuse, confirming it was blown. And soldered in. I have an old power supply lying around that was supposed to be for a project that never came to be. Open that one up. Its fuse is soldered down too, but compatible. Remove it. Remove the blown one, replace it. Put it all back together. Plug it all in. It turns on! Everything shakes a tiny bit, as the fan with a missing blade spins, but it turns on.

But no matter what, it doesn't show anything on the TV anymore like it used to. Unplugged a monitor from my desktop to carry it over, and it won't show anything from any of the other connectors, either. Stomach drops again. Before long, I figure out that everything but the display works. If I power it on, wait patiently until I know it's asking for a password, type it in blind and wait again: it boots. It responds on the network, and so everything I use it for still works -- except playing things on the TV.

So I leave it be, fly out for my trip and eventually come back. I'm pretty patient here, but I know I've got to do something. The first thing I do is replace the power supply. Really I just need a fan, but just the right one, which won't be easy. They're not too expensive so after $25 and a few days I have the replacement in. It doesn't have an off-balance fan, but otherwise it doesn't help, still no video. What to do? By lucky coincidence (this might have been earlier...) I have a spare identical video card, so I swap it in. Still no display. So I order a replacement motherboard, wait for it, laboriously swap all the components over. Still no display. So I return the motherboard I don't seem to need. (And take a $20 hit in return shipping/restocking fees. Blech.)

So what can be left? I know sometimes the motherboard's built in video is really controlled by the CPU, so I order a replacement CPU. While waiting for that to arrive, I make a stupid mistake. Right now, the computer is functional, but I can't see its display. If something goes wrong, I can't fix it, because I can only use it in a working state, when it boots and I can then remotely log in. Somehow I forgot all this and in an otherwise idle moment, I started an update for all three of my similar machines (this one, the backup at Mom's, and the public hosted server I run). Of course, of course, this time something goes wildly wrong on this machine. Some shared library that everything links to is hosed, and I can't run any more commands at all.

That was three days ago, the 8th. Yesterday I got the replacement CPU, but it didn't help because I can't boot that machine right now. Today I traveled into Brooklyn for the Killer Queen Coronation competition, and I had a few spare hours afterwards, and I was already close to Micro Center. I was at the point that I was ready to throw money at the problem. Just buy enough replacement parts that I'll surely end up working, and put this stressful mess behind me! Well, once I get there I realize I'll be over $300 in the hole for a new motherboard, CPU, and memory.

But I've already replaced the motherboard, that didn't help. I've replaced the video card which didn't help. What is going to help? I'm getting less confident that this expensive solution is going to be it. And it gets worse. Remember that ZFS array I mentioned at the top? It's encrypted, so I need a separate boot partition. On a separate drive. Right now, that's a Compact Flash card in an IDE adapter. Which sounds crazy, but works great. Except new motherboards don't come with IDE connectors anymore, so I'll need to buy even more something to make that work, and I'm starting to really doubt myself. And with no display how will I set up that replacement? What now?

Here starts the silver lining. I figured out a temporary fix that I was confident enough in that I gave up, left the store empty handed, and headed home to try it. I took my main desktop computer mostly apart, plugged in the server's drives instead, and booted a USB rescue environment there. And it worked, I could mount the disks. I'm happy I put my root partition on the ZFS volume, because now that I could finally boot "the server" and see its display, it was trivial to do a snapshot rollback. Took everything apart again, reassembled the original server, booted it blind, and voila! It's running, sans display, again. I can remember not to update it and patiently figure out a reasonable long term fix. Phew! I'm actually only right back where I was a month ago, but with the whole thing broken for a few days, this feels quite relaxing in comparison.


2017-10-30 14:25 - Bookmarklets

It's been a while, but today I have a new bookmarklet. This one removes "fixed" position elements that stay in your way as you scroll. It's a fixed version of one I found online, which also handles the sticky property.


PCB Prototyping Service Review: JLCPCB

2017-10-01 10:46 - Making

Scan of a board produced by JLCPCB.

Disclaimer: the PCBs pictured and discussed in this article were provided to me at no cost, in return for writing this review. I've received no other compensation and this is my own personal un-altered opinion.

Recently I was contacted about a new PCB prototyping service called JLCPCB and asked to do a review. I've done a few of these over time, and this is much the same. Pictured at left is four copies, two front and two back, of the board that I had made for this review.

It's a simple board so I can't comment on high density pads, but all of the traces, holes, and solder mask appear to be well aligned. The silkscreen is solid and legible everywhere. Overall, I would say these are perfectly fine boards.

I got ten copies, and they were all generally fine. Look (very) closely at the far bottom right of the image, though. You'll have to go full resolution to see it, but there's some scuffing around the pads near the bottom middle and bottom right. Cosmetic only, it seems, and the other nine boards had no issues or only even more minor scuffs/scrapes.


JLCPCB's claim to fame appears to be their $2 minimum cost. This applies only to the first board in any given order, and shipping from China applies to any order. So really you can get a few copies of one board made for $2, but you can only get it delivered for more like $12. Add a second board to the same order (e.g. to share the shipping overhead) and it will be $5.

Customer Numbers

Just like EasyEDA, this is some sort of batching service, which adds customer numbers in the silkscreen. They do say this ahead of time, but as I've called out in earlier reviews, I really don't like it. Especially here. I explicitly put in the in the "remark" box that I'd prefer this number to be located under U2 or U1. It would fit in either place. But instead, it was put out near the edge in the most visible place.

Final Call

These are fine boards, there's (almost) nothing wrong with them. But if I'm going to pay a couple bucks for the boards, plus $10 to $15 for shipping, I'd rather go with Elecrow's "special" service, ten copies up to 10x10cm for $5 — with no extra customer number printed.

Fanboy Mode Unlocked: SNES Classic

2017-09-30 21:06 - Gaming

Me proudly holding my SNES Classic.

Nintendo released their NES Classic last year, and the shortages were famous. The SNES classic was just released yesterday. I spied a few lines outside on my way to work, but couldn't really afford to join. I looked a bit online and indeed everything was sold out everywhere. Then I spied a tweet from the Nintendo NYC store, past 6PM, saying they were out today (yesterday) but tomorrow at 9AM (today) you could get in line again.

I ended up awake a bit early, anyway so I headed out and was in line by 8:30. The line was already huge. It took nearly three hours for me to get to the front, but I did, and I might regret it just a hair, but I'm happy overall!

New Super Mario Bros. U: All star coins!

2017-09-04 13:38 - Gaming

New Super Mario Bros. U: All star coins!

After plenty of playing, especially one or two of the levels in the star world in the background here, I finally int "100%" in New Super Mario Bros. U, having beaten all the levels, plus collected all three star coins from each. Phew!

Quarto Game Board

2017-08-11 12:57 - Making

I recently discovered (via the awesomely named YouTube channel I Like To Make Stuff) of a board game called Quarto. It's got simple rules and it's pretty easy to make a set yourself. I'm visiting my Mom in New Jersey, and that means access to some tools I couldn't keep in the city.

Rounding the material for half the pieces. The pieces are all rough cut out.
The board is a grid routed into some already-finished wood. Complete!

I picked some already-one-inch-square scrap available, it seems to be PVC. I rounded off the corners on the router table, then cut out eight short pieces and eight tall pieces, half of each from the rounded over section and half from some raw square section. Then half of the pieces got holes drilled in the top, and half got spray painted black.

The board is another scrap piece, of wood that was already finished. A grid of shallow lines, again with the router table, formed the play spaces. I chamfered the edges and with the paint dry, it was done!

This was a quick and dirty project. The grid lines were not routed the best, and the spray paint leaves a lot to be desired. But they're definitely good enough to play with. So I'll give that a try, and then decide if it's worth trying again, with perhaps better materials and more care.