Black Garlic

I’m not a fan of spicy foods. Heinz 57 is, for me, what hot sauce is for most normal people. I never understood the appeal of black pepper, since it tastes like hot coals on my tongue. Similarly, I usually find garlic to be overpowering and painful rather than flavorful to taste, and only really used it in garlic bread as an excuse to consume butter.

Then, shopping in Wegmans one day a couple of years ago, I discovered black garlic. It’s botanically still garlic — but completely different. When garlic cloves are gently heated over the course of several weeks, they undergo a Maillard reaction that breaks down the sharp garlicky enzymes into smoother, subtler sweet and umami flavors. Just like time can turn grape juice into wine, a couple of months of gentle heat can turn cloves of garlic into something magical.

A bulb of black garlic, fresh from the fermenter.
(Two months ago, this was a bulb of fresh, white garlic.)

The recipe is a lot simpler than you might think. Wrap bulbs of fresh garlic (the same kind you’d use to sort out a vampire problem) tightly in plastic wrap and then aluminum foil, place them in a smart pot or crock pot with Keep Warm setting, and leave them alone for six to eight weeks. (I started mine at the end of August and harvested today, November 1st.) You could probably pack the cooker full, if you wanted to do a lot of them. Yield is one bulb per bulb.)

NOTE: DO NOT USE A “COOK” SETTING — EVEN “LOW.”
You want the bulbs to stay in a warm, humid environment — around 85% humidity and 70C.

The rest of the batch in the Smart Pot.
These are done — but you can’t tell without opening them (or smelling them.)

After a couple months in the cooker (pro tip: get one that doesn’t helpfully turn itself off periodically), they’re done. Shut it down, let them cool, and unwrap…

The rest of the cloves. I’ll keep them wrapped in the plastic for now.

Taking one clove apart for science reveals a complete transformation inside — the cloves have been transformed from pungent, acrid fresh garlic into coal-black lumps. Separating them from the garlic skin, I got about 22g of cloves from one bulb.

The bulb was very dry and, while not fragile when whole, disassembled easily.
The cloves of garlic, fermented into black garlic.
I believe they should be sticky and gummy; these were hard and dry.

The black garlic I bought from Wegmans had sticky, gummy cloves — which were messier to extract but tasted great. The ones from this homemade batch were hard and dry — very easy to clean up, but slightly bitter-tasting along with the characteristic sweet umami flavor. It’s nothing a dash of sugar won’t fix, but I may try cooking the next batch for six weeks instead of two months.

I ground some up and mixed it with mayonnaise.
Not bad, but slightly bitter. Two months may be a couple weeks too long.

To make your own:

* Wrap bulbs of fresh garlic in plastic wrap and then aluminum foil;

* Place them in a covered smart pot or crock pot (on Keep Warm) for about six weeks;

* That’s it. Enjoy!

Posted in Food, HOW-TO | Leave a comment

Warranty Not Void If Removed

Occasionally, bureaucracy gets it right. But getting the word out is often another matter.

We’ve all seen devices with those “WARRANTY VOID IF REMOVED” stickers. We may be curious about what’s inside that Xbox or Roomba, but breaking the manufacturer’s seal would void the warranty.

Well, it turns out that, in the U.S. at least, those stickers not only have no legal force — but are themselves illegal. Manufacturers, according to a 2018 ruling by the Federal Trade Commission, shall not make warranty coverage contingent on using branded parts or service. Since one of the specific warnings in the press release refers to “the warranty seal,” it is implied that this extends to manufacturer warnings that opening the cover will void the warranty.

So go ahead — do that DIY repair. (It’s better for the manufacturer than RMA’ing it, and better for the environment than throwing it out.)

Posted in Current Events, Digital Citizenship, Electronics | Leave a comment

Comma Delimited

Some of the most useful tools are the simplest. I would argue that simplicity is often why those tools are the most useful.

The humble .csv file is a good example of this. It may even, other than the question of character encoding, be one of the only things nearly all programmers can agree on. It’s almost up there with “bytes have eight bits.”

.CSV files, named for the traditional file extension dating back to the days of DOS, are just about as simple a data format as there is. CSV stands for Comma Separated Values — and that’s just what these files are. Raw data, split into columns by commas and into rows by CR/LF combinations (okay, this varies by system, too.)

Although .csv files aren’t as flexible or self-documenting as modern formats such as JSON, they are both (generally) human-readable and very simple to programatically create and parse. Practically anything that works with data can export them, so they have become a significant lingua franca of data analysis.

It’s not as flashy as XML, but there’s something to be said for a format that’s easily readable by desktops, microcontrollers, and humans.

Posted in Coding, Tools | Leave a comment

Printing Large Numbers on Arduinos

2^32 (4,294,967,296) sounds like a big number. It’s over four billion, after all.

Large as it is, four billion (or more) is increasingly a perfectly reasonable number to be working with. For instance, it represents access to four gigabytes of memory, which isn’t much, these days. 32-bit math has become limiting, which is why computers switched to 64-bit hardware about ten years ago. (It was the memory addressing that made it happen.)

There’s good support for 64-bit numbers on desktop software, too. C provides the “unsigned long long int” (or uint64_t) type, which can hold numbers up to 2^64-1, and this covers nearly all of the cases that don’t fit in 32 bits.

Unfortunately, these large numbers, being newer than their 16-bit and 32-bit counterparts, aren’t always supported as well on smaller devices like microcontrollers. (After all, an 8-bit microcontroller has to do a lot of shuffling and carrying to do math with them.) Arduino C’s usual, super easy to use Serial.Print() function doesn’t understand how to handle anything larger than 32 bits. Trying an end run using tricks like sprintf(myString,”%llu”,bigValue) doesn’t work, either.

The proper solution would be to find a way to include 64-bit capable printf() code in the Arduino C compiler — but I suspect that if this were easy, someone would have done it by now. So I came up with a hack: use long division.

Integers, in any base, can be constructed digit by digit, and Arduinos can still do math with 64-bit numbers. So, to print out large numbers, take the number modulo ten, add that to the left end of your string, take it away from the original number, and divide it by ten. It’s not super efficient, needing an integer division operation for each digit — but it will still run in O(log(n)) time, and shouldn’t take very long at all, even for large numbers. It can be done in C readily enough, but the BASIC-like string concatenation capabilities of Arduino C make it easy.

Here’s the code, which should work for all Arduino-compatible devices:

void bigPrint(uint64_t n){
  //Print unsigned long long integers (uint_64t)
  //CC (BY-NC) 2020
  //M. Eric Carr / paleotechnologist.net
  unsigned char temp;
  String result=""; //Start with a blank string
  if(n==0){Serial.println(0);return;} //Catch the zero case
  while(n){
    temp = n % 10;
    result=String(temp)+result; //Add this digit to the left of the string
    n=(n-temp)/10;      
    }//while
  Serial.println(result);
  }

Now, 18,446,744,073,709,551,615 is the limit. Happy large-number computing!

Posted in Arduino, C, Coding, HOW-TO, Math | Tagged , , , , , , , , , | Leave a comment