Playing With Flash

I recently picked up one of these $10 CH341A USB flash programmers and a test clip. I didn’t really have any initial plans for that it but thought it might come in useful someday while messing with router bootloaders. This unexpectedly turned out to be a lot of fun so far and not a bad tool for the price.

Rummaging through my parts bin, I found a Winbond 4K SPI flash of unknown provenance, hooked it up, and read out the contents with flashrom. Turns out this was an AMI BIOS that I pulled from some motherboard way back when. Disassembling the BIOS might make a good rainy day exercise.

I tried using chavrprog to program an ATTiny13, which did not work at all. The chip did not appear to respond to any of the SPI commands. Oh well.

On a bricked router I had sitting around, I read the flash directly from the board using the test clip. I happen to remember the confluence of events that lead to me bricking this (writing bootloader to wrong partition), and could finally verify the damage on the flash dump. When I get a free moment, I’ll try bringing it back to life by reflashing a repaired image.

On a different model, unbricked router, reading out the flash on the board didn’t work. Applying power to the flash chip powered up other components on the board, so I’m guessing I’d have to desolder this flash chip in order to read/write it. Maybe worth retrying after spending a few weeks practicing SMT rework.

Planting time

With the terribly cold and gray winter finally starting to abate, I’m going to start my indoor seeds this week. Nearly same setup as last year: I’m sowing the head-start seeds indoors, to go under basement grow lights in a couple of weeks when they have sprouted. A new addition is this heating mat, which I had to laugh at because of the prominently featured cannabis leaves on the package. I wonder just what the distribution of carrot growers to “other” is, now that it’s legal here.

For any curious persons or LEOs reading, no, I’m not planting weed. I’ll be starting basil, tomatoes, peppers, and lettuce in flats, and hopefully it will be warm enough to direct sow carrots and radishes. Beans should come a little later. Can’t wait!

2019 Crossword Tournament

The American Crossword Puzzle Tournament starts this weekend. Once again, a version of my xword webapp is being used, with only a few minor changes since last time (sorry).

I did almost no puzzling last year, so I’ll give it a go, but I’m not expecting to finish in the top 100 this time around. Good luck to anyone participating!

More filler

I noticed some HTML5 crossword construction apps have sprung up over the last year, so I no longer have first mover status on that. Also their UIs are generally better and I dislike UI work, so it seemed reasonable to join forces. Thus, I sent some PRs around.

It was surprising to me that the general SAT solver used by Phil, written in C compiled to asmjs was so much slower than a pure Javascript purpose-built crossword solver (mine). I assumed the SAT solver might make certain search optimizations that could overcome the minor optimizations related to mine being only a crossword solver. So, yay, my code is not that bad?

In these apps the filler runs as a web worker so even when slow it isn’t too noticable (except for hogging a core).

Anyway you can try out my filler today with Kevin (filler code is here, which is exactly the code in my own app except with some janky whitespace because I stripped out all flow annotations).

Peak 2018

I almost let the second half of 2018 go unblogged (are people still saying blog?). It’s not that nothing interesting happened in all of that time, but real life has been ultra busy. Did I mention that Sammy turned one and is on the verge of walking?

The garden delivered tons of produce this year, enough that I didn’t really keep up. I gave myself a crash course in canning, making four jars of tomatillo salsa and six jars of habanero jam. Maybe fewer peppers next year?

I harvested around five bowls of tomatoes, many of which are taking up space in the freezer right now.

And at least four of these basil bowls, mostly frozen pesto at the moment:

This is what it is all about: pizza with homegrown basil, homegrown tomatoes, and sourdough crust from locally cultured yeast.

Anyway, happy New Year!

Another one about plants

Here’s what the garden looks like right now. Compare to this time last year.

We had our backyard professionally landscaped last fall, and the landscaper decided to put in an empty bed next to the house instead of incorporating my unsightly DIY planter box into the design. But that area gets sun only half of the day, so I planted both this year, reserving the landscaper-approved bed for the experimental plants (mostly tomatillos and some extra basil). In the photo you can see the tomatillos in the background on the right: they have grown as tall as I am, with plenty of flowers but no fruits yet. Still, the pollinators are visiting so that could change:

Meanwhile, there are baby tomatoes and baby peppers everywhere, and lots and lots of basil. Having eight basil plants means making pesto every other week just to keep up. I picked my first jalapeno yesterday. Although I tried hard to label all my plants this year, I found that one of my intended habeneros was a mislabeled poblano. No worries, poblanos are great. Looking forward to stuffed peppers next month.

We have a family of wild rabbits living near the house, so I stayed away from lettuces or other rabbit-friendly fare. Perhaps I’ll try lettuce in the planter box next year since it is high enough it might evade their grasp. I planted a few onions in the lower bed to keep the rabbits away from the other plants, having heard that they hate the smell of onions. Naturally, onion stalks are the only thing they’ve eaten so far.

This is still the quiet times before the Japanese beetles. Once they show up a few weeks from now, they will require thrice-daily purges, a not so fun task.

Posting on posting

After several years of working at popular infosec startup, I’ve now moved on to giant tech company. It was pretty crazy watching the former grow from “hey, we have a cool idea” to a company with hundreds of developers — at turns gratifying to see people describe your software as life-changing, and incredibly stressful when a bug landed on the top of Hacker News.

In the new gig, I’m working on Linux wifi again, so, apologies in advance. Hopefully, I’ll be able to do a bit more work upstream now that it is kind of my job. And yes, this post exists just to break up what would otherwise be a long string of consecutive garden blogs.

Garden 2018

I’ve started my seedlings for the 2018 gardening season. On March 24, I planted jalapeno, habanero, roma tomato, green onion, and basil seeds into jiffy pods. A few days later I planted some tomatillos and poblanos in another tray. By this time everything has sprouted and the plants are under grow lights for 15 hours a day on a timer (an innovation since last year the plants got a little leggy on the windowsill). The first tray is about a week ahead of the other tray, so it’s been getting full light for a week and had its first watering this morning. The tomatoes have their first true leaves as of today.

I’m targeting planting out sometime in mid to late May. I can’t remember when I potted up the plants last year but it must’ve been some time in late April / early May. That’s at least a couple of weeks away for these 2-week old seedlings.

This year I hope to have better tomatoes by planting fewer of them and giving them more space. I was originally planning to do just two roma plants with two-foot spacing, plus one tomatillo plant. Then I learned that tomatillos won’t self pollinate so I’ll need to do at least two of those also. If those plus all the pepper plants work out, we’ll have way more than we can eat. Of course, the rabbits may still have other plans.

Crossword digest

This month my age incremented again. On the very anniversary of my birth, I received an email from Will Shortz’s assistant, saying (nicely) that the puzzle I submitted back in November didn’t make the cut. I was prepared for this: a puzzle with a similar theme came out a couple of weeks after I mailed mine in, and well, it’s not exactly that unique in the first place. Also the middle section of my puz is a bit of a stretch. And, I felt bad about not trying to excise 23-A from the puzzle.

But anyway, their loss is your loss! Click here to try it.

The 2018 American Crossword Puzzle Tournament starts this coming weekend. Last year, I complained that the online crossword tournament used a Java applet and would have almost no browser support by this time. This year, the online solver is running a version of my own XwordJS, customized (by me) for the ACPT’s backend (which I had nothing to do with). Here’s hoping it works.

After the 2017 tournament, I hoped to increase my solving speed to be more competitive this time around. In reality, I didn’t put much effort into this goal, so I expect to be about the same. My best NYT Monday time, for that one month when I tracked it, was a hair over 7 minutes, far from the front of the pack.

Meanwhile, I did make a bit of progress in solving cryptics, having done the puzzle a few times in the Toronto Star and actually finishing last week’s. I have to say they aren’t as fun as American style crosswords due to the arbitrariness of the cluing, or so I tell myself so that I can feel less dumb.

Making copies

One of my early goals this year has been to revamp the backup regime at the old homestead. Previously, I have relied on rotating external drives connected to my main desktop, and putting most content on a samba share that also got backed up. But it was a bit ad-hoc and things not on the share only got backed up sporadically. I’d rather not use a cloud backup service because reasons, so I bought a NAS, and now it looks like this:

  • Daily:
    • download cloud assets (google photo)
    • backup all disks to NAS (borg backup on Linux, Windows backup). Incrementals of 7 days / 4 weeks / 6 months
    • backup NAS to external drive (rsync)
  • Weekly:
    • borg check the latest backup
    • swap external disk with one in fire safe
  • Monthly:
    • swap external disk with off-site disk

I think this should work well enough until I use up enough storage to outstrip the individual external disks, then I’ll have to rethink things. Too far, or not too far enough?