Atom is my New Text Editor

I started using BBEdit back in the 1990s and eventually moved to jEdit in the 2000s. Well, it’s 2020 now and since I tend to change text editors every ten years or so, I’m behind schedule! I’m pretty sure that in recent years I checked out Brackets, Sublime Text, and maybe even Atom, but I stuck with jEdit because I knew it, customized the heck out of it, and didn’t see a reason to switch.

For me, a text editor should be open source, run on macOS, Windows, and Linux, be extendable, customizable, and hackable, and… I should like using it. Life is too short to use a text editor you don’t like!

I’m working on a rather large project on GitHub right now, and I had to walk through the process of installing GitHub Desktop, and while I was jumping into the GitHub Desktop experience I figured I would also try out Atom since it integrates well with GitHub and GitHub Desktop.

When dealing with a new text editor it’s hard not to find faults. Part of it is that it’s new, and may do things differently than you are used to with your old text editor, or it may have missing features, or what appears to be missing features because it does things differently. It’s easy to take the stance of “What!? I can’t do X anymore!?” (Where X is some esoteric thing that you used to do.) It’s important to remember to take some time, investigate, dig in, and see what a new text editor offers.

There was a feature in jEdit that was really neat, but I think I used it maybe once or twice a year, and I could have achieved the same end result using another method. In Atom there’s a feature I’d never seen before, but once I understood it, it blew me away, and I was thankful it was there. I might not use it all the time, and yes, I could totally achieve the end result another way, but it’s nice to have new things.

I do miss macros and macro recording and playback in jEdit. Despite all the packages for Atom I’ve yet to find an equivalent. I have already written a really simple Atom package, so it’s good to know that’s an option if I can’t find some of the features I need. (Update: I did find some macro packages, just needed to be on a machine with dev tools to install them.)

Here are the packages I’ve added to my Atom install so far:

I’ve tried a few others, but haven’t added them to the lineup quite yet, but I’ll keep an eye out for new and useful packages. I’m also a fan of the command line integration and ability to customized the look of the editor by using CSS (though I wish there were more/better example files out there showing how to customized everything.)

So yeah, it’s safe to say at this point I’ll keep using Atom as my text editor, even though it will take some time to get used to the find & replace, and I’ve experienced a few crashes, supposedly can’t deal with large files, etc… I mean, the Command Palette is awesome. jEdit had a similar feature (I think?) but I never used it. I think one of the things I like about Atom (and I liked about jEdit) is that they were built by hackers for hackers. People who want to fiddle the bits and change things and make it their own.

The other important thing about a text editor is what you use it for. I will most likely not be using it as an IDE, though I may play around with integrating it into OpenSCAD or the Arduino IDE, I’m not doing large scale software development. I am mainly… working with text. Writing text, manipulating text, writing scripts, editing text files… stuff like that. It’s rare that I need autocomplete (in fact I disabled it) and some of the “coding” features just get in my way. YMMV depending on what you use a text editor for in your own work.


CheerLight 2012


Here’s my CheerLight 2012 device, which I call the CheerLCD! And what is CheerLights you say?

CheerLights is an ioBridge Labs project that allows people’s lights all across the world to synchronize, stay linked based on social networking trends. It’s a way to connect physical things with social networking experiences and spread cheer at the same time.

Much like last year, I’ve opted for a small desktop display—a USB-powered computer peripheral—rather than some giant string of multicolored lights…


With the combined power of 3D printing, affordable electronics, and the duct tape of programming languages that is Perl, we’ve developed a device that informs you of what color the CheerLights around the globe are, not only with color, but with words!

(Though we’ve not yet done extensive testing, the text should be legible even by those suffering from color blindness. Accessibility, FTW!)


The CheerLCD consists of a USB + Serial Backpack Kit and LCD Display from our friends at Adafruit Industries. But you can’t just have a display without some sort of thingy to display the display properly… enter the 3D Printer!


The CheerTree was designed specifically to hold the LCD Display. I utilized Inkscape for the design of the front plate, and then brought that shape into OpenSCAD to add the base and create an STL file for printing. (It ended up warping a bit but that just adds to the charm and aesthetic of the overall device.)

I know what you’re saying, “This is all well and good… but we need to see the CheerLCD in action!” As you wish, my friends… as you wish.

There’s some code over on github/CheerLCD, and some files on Thingiverse for the CheerTree.

Enjoy the Holiday Cheer!


DokuWiki Yak Shaving


Yak Shaving is described as “any seemingly pointless activity which is actually necessary to solve a problem which solves a problem which, several levels of recursion later, solves the real problem you’re working on” or something like that.

I’m not 100% sure this would be considered yak shaving, but I’m working on something that requires random pages to be served from DokuWiki, just like the built-in function that MediaWiki has. (I used to use MediaWiki, but switched to DokuWiki, and like it much better. We also use it for the Milwaukee Makerspace wiki.)

There is a random page plugin for DokuWiki, which did not work. So I took the existing code, poked at it a bit, mainly by comparing to other plugins that did work and making simple edits, and got it working. (YMMV obviously.)

Because I’m a believer in “doing the right thing” and helping other people in their quest to not reinvent the wheel and stay DRY, I figured there was more to do…

So I emailed the original author of the plugin. I’ve not gotten an email back yet. Also, he (or she) appears to be French, and I’m a stupid American who can’t read French. (I’m not even sure why I mentioned that part.)

Anyway, I was happy that I fixed something so I figured I’d toss it on the old GitHub in case someone else was looking for a random page plugin for DokuWiki that (seems to) work.

Oh, and not content to not mention something I did, I posted the link on Google+, which was picked up by Nils Hitze who mentioned it to Andreas Gohr, who happens to be the author of DokuWiki (who I follow anyway, because he’s a RepRapper too) and he suggested I adopt the (possibly orphaned) plugin.

tl;dr → I fixed the Random Page plugin for DokuWiki. You can grab it from GitHub.

Also, this is how the f’ing Internet works!


Analysis of Scoville illustration

I got invited to use the web site at, and while browsing the site trying to figure out what it was, and why I’d want to use it, I came across this illustration in the footer…

I’m still not convinced I want to use Scoville, but I was fascinated by the illustration, and thought I would offer a complete analysis of said illustration for your consideration.


The scene itself is surreal, and appears to take place on a floating city. We’re not really sure where the city is floating… In deep space? Above a planet? Is it MagLev® Technology? We don’t know…


What we do know, is that the city is under attack. We can clearly see a number of aliens descending upon the city in attack mode. Two of the creatures look like battle-hardened soldiers from the Space Invaders fleet, and the other looks like it may be related to the horrible beast most often found on the GitHub planet.


There also appears to be discharges from a number of energy weapons, possibly from larger battle cruisers orbiting this floating city. You can clearly see disruptions in the time/space continuum in this close-up.


Three of the individuals in the illustration are talking, or yelling, or perhaps telepathically communicating. Since we cannot see what they are saying, we will assume their communications are encrypted. I find it interesting that there are 3 attackers in the sky and 3 people on the ground engaged in communication. Are they somehow linked? Are they working together? I smell traitors!


We see two objects of interest in the illustration, a large orb-like structure in the center, and a small pyramid on the right. We can only assume that the orb-like structure is what powers this city, and perhaps, is also the valuable object being sought out by the attackers… the “MacGuffin” if you will.

Now, the pyramid is also of great interest. If my studies have taught me anything, it’s that pyramids are used as teleportation devices. This begs the question, will the beings of this city use the teleporter to leave and save themselves, or will the teleporter allow the transport of ground troops to fight the impending battle? Either way, the pyramid cannot be ignored!


On to the next question… Who is watching!? We see a number of cameras in the sky, as well as a communications transmitter atop one of the buildings. It’s clear that the event is being monitored by someone, and judging by the model of that transmitter, the signal is traveling quite a distance. Will help arrive in time? Are the enemies of this world watching and waiting to see it fall? Unknown.


I know that the people look helpless, but all hope is not lost! You can clearly see that the city has established itself as a leader in the BDN (Balloon Defense Network) that was so popular in the last century. While it’s true that 99.5% of the balloons in the Balloon Defense Network are destroyed within 5 minutes of launching, and a Balloon has never actually fire a shot in battle, there is still that 0.5% chance that this time something different will happen.


It’s been said that where there is music, there is life, and while we fear that life upon this floating city will come to a tragic end, the music goes on! You can see that music is being blasted into the sky, perhaps as a last testament to the bravery of these poor souls who will soon be destroyed as their city burns and their balloons burst. Sadly the song they are playing was rated with only one star in iTunes. Not good!


It’s also been that it’s always darkest before the storm, and that appears to be true in this case, and while this great city, and all of the wisdom contained within it are on the verge of total destruction, we see one final glimmer of a spark of a chance that something may step in and prevent the inevitable.

I mean, this city has not only a palm tree growing out of a building, but it also has a heart… and that my friends are two of the most powerful weapons in the universe.

(Note: palm tree and heart may not guard against alien invaders or proton weapons.)