I purchased a cheap (sub-$100) laser engraver from dxsoul. I can't in good concience recommend this device to anyone, but I still wanted to take the time to write about my experience with it.
I've long been a user of ad blocking and anti-tracking technologies, and I wouldn't say a word against a user who surfed my public websites who blocked these items. In fact, in that post where I announced the addition of ads, I encourged their use.
With ad blocking back in the news (once Apple enables ad blocking, it's suddenly the next big thing, eh?) I want to take a step and say that there is an Internet for people who don't want pages full of flashing banner ads and which secretly extract tracking data in an attempt to make those ads even more effective; and that furthermore, my website should be a part of that Internet.
It costs me just $5 a month to host this website, a cost that is almost certain not to grow compared to the price of a cup of coffee. Let's all host our little, independent websites and supply good content according to our interests just like we did back in the 90s.
this little graphical toy last month. I had intended to put a few finishing touches on it before blogging about it, but instead it has languished.
Enter a few numbers, press "update" and get a geometric pattern.
Requires a browser that supports svg, which must be most of them by now. I tested on Firefox and Chrome.
(Updated to actually link to the toy)
DragonBoard, an affordable 64-bit ARM single-board computer, but unfortunately it hasn't lived up to my hopes.
First of all, it shipped with one terrible problem, making it useless for headless development: The onboard wireless doesn't receive multicast traffic, including ARP requests! And their kernel doesn't provide many modular drivers, so adding any old USB wireless dongle doesn't work until you rebuild the kernel. As of this writing, there is no useful workaround.
And that's when I hit the second show-stopper problem. I planned to build kernels for this thing anyway, because the goal is to run LinuxCNC on it with rt-preempt realtime. So I stuck in a large capacity micro-sd card, obtained the kernel source, built it, and rebooted with my new kernel.
(incidentally, testing kernels is a PITA. You have two choices: one, flash the one and only boot area with your new and untested kernel and hope for the best; two, tether to a PC (losing USB keyboard and mouse on the dragonboard!) and use fastboot every time you boot. ugh)
.. but the new kernel just didn't work. It scrolled kernel messages, but got stuck partway through booting. dmesg implicated the wireless card. This one at least has a workaround: cherry-pick a certain commit from their kernel git. As I understand it, this bug is triggered by using the compiler on the dragonboard, and not encountered with the linaro cross-compiler running on a traditional x86 desktop.
Anyway, having found out about this I was briefly celebratory. I booted with my own kernel and had a working USB dongle. Unfortunately, that celebration was short-lived. The USB dongle hasn't been terribly reliable either, particularly under high CPU load.
I soldiered on and patched the linaro 4.0 kernel with the 4.0-rt5 patchset. There were a few minor conflicts which I believe I resolved correctly. Unfortunately, the LinuxCNC latency-test readily encounters latencies above 15ms (15000us). LinuxCNC really would like sub-100us max latencies.
I briefly enabled tracers, and have traces that seem to implicate a variety of subsystems: networking, usb, and video *all* figure. More experienced developers than I will have to be the ones to sort out RT on 64-bit ARM.
I won a copy of the book Hacker's Delight from John Regehr for my entry in his nibble sort contest earlier this year.
In that thread I had heard about the CBMC Bounded Model Checking software, and it gave me the idea to combine the two: a project to take implementations of the algorithms from Hacker's Delight and prove the algorithms' properties with CBMC.
I have a modest start on github, which I am calling "Proven Delights":
Like many people over the age of 30, I remember when the Humble Bundle consistently offered Linux versions of almost everything in their bundles.
Those days are long gone, and now it's necessary to scrub over the "DRM FREE!" button of every title to find out whether it's on Linux.
But with this userscript (tested only on firefox with greasemonkey), titles that are not available on Linux are automatically greyed out and need trouble you no more.
If you're like me, and the number of times you boot a Windows machine to play video games is way under twice a year, remember to vote with your wallet: before checking out, open "choose where your money goes" and "developers", then slide the slider for all non-linux titles right down to zero.
This weekend I made good on my threats to try my hand at a homemade hazelnut butter and hazelnut coffee. I've only had one cup of coffee and a few spoonfuls of the butter, but I like how both turned out.
Toast 1½ cups hazelnuts in a cast iron skillet. Roll in a pillowcase or dishtowel to remove most of the dark skin (if the skin is stubborn, you didn't roast enough—return to the skillet). Place in food processor.
Process until hazelnut pieces are coffee-ground sized but still powdery. Remove ½ cup or so for hazelnut coffee; store in airtight container in refrigerator.
Add 1½ cups toasted sunflower seeds, 1 cup dark chocolate chips and ½ tsp salt to food processor. Process until it forms into a ball. Store in airtight container. I expect this to keep as long as any other preservative-free nut butter. Originally I stored my nut butter in the fridge, but the next morning it was too stiff to spread well. It's clearly much better to store it at room temperature, as long as it's used up quickly.
This butter is not as smooth, oily, or sweet as the commercial product you may be thinking of; it's more like Justin's Chocolate Hazelnut Butter.
Hazelnut coffeeCombine 1 part hazelnut powder with 5 parts coffee grounds and then follow normal coffee-making process (I use an aeropress and then add a liberal splash of heavy cream). I assume that it will work to store this combined with ground coffee for at least a few days depending how picky you are about the freshness of your coffee beans.
Both recipes will benefit from some tweaking to your own personal preference, but as a proof of concept both of these ideas are obvious winners.
So I was happy to learn enough about angularjs to cheat at my favorite incremental game of the moment, Swarm Simulator.
var sc = angular.element(document.querySelector('.ng-scope')).scope() sc.env.isDebugEnabled = 1 sc.game._units.byName.nexus.prodByName.energy.val = new Decimal(1000) sc.game.unit('mutagen')._addCount(new Decimal(1e100))
All older entries
Website Copyright © 2004-2014 Jeff Epler