List of books that I’ve started but want to finish

  • The Glass Cage, Nicholas Carr
  • Armada, Ernest Cline
  • The Internet is not the Answer, Andrew Keen
  • Future Crimes, Marc Goodman
  • Hieroglyph: Stories and Visions for a Better Future, Ed Finn and Kathlyn Cramer
  • Hacker, Hoaxer, Whistle-Blower, Spy, Gabriella Coleman
  • The Age of Cryptocurrency, Paul Vigna
  • Seveneves, Neal Stephenson
  • Station Eleven, Emily St. John Mandel
  • The Story of Alice, Robert Douglas-Fairhurst
  • Surveillance after Snowden, Lyon
  • No Future for You: Salvos from The Baffler, John Summers, ed.
  • In Xanadu, William Dalrymple
  • Infinite Jest, David Foster Wallace
  • Countdown to Zeroday, Kim Zettler
  • Trigger Warning, Neal Stepenson

From, The Novel in Analog: Joshua Cohen’s Book of Numbers

As Cohen’s work reminds us, printed books are mostly private pleasures, lonely ones even. Unlike so much media today, they don’t target, watch, or measure us; they don’t flatter us with personalized stories based on accumulated data profiles (not yet, at least). But even as this essentially analog quality has convinced us that novels are doomed to be political dead zones, it has become one of their newfound attractions. “If you’re reading this on a screen, fuck off,” goes Book of Numbers’ opening line.

nomnomnom — regularly eat your cookies from Chromium

Cookies on websites both suck and are incredibly useful. They are useful because it’s convenient to not have to re-enter usernames and other stateful pieces of data. They suck because cookies are used to track you and they remember things that the website considers useful but you may not.

By the way, if you don’t have the EFF’s Privacy Badger extension installed, go install it. Privacy badger does care.

Let’s say you like to read the NYTimes but you may find that the 10 article limit per month to be a bit restrictive. After all, you go to your local library and read the gray lady there but sometimes well, you also re-read them online. But instead of reading the article you receive a bunch of indistinguishable-from-malware popups about reading more than 10 articles per month. How to get rid of them?

Well, you can just go clear your cookies in Chrome/Chromium. But chrome stores cookies in a SQLite database so you could make a script to go into the database, and remove offending entries. If you were to go and do that, say on Linux, you might end up with a SQL file like this:

delete from cookies where host_key LIKE '%nytimes%';

If that file was called nomnomnom.sql, you could have a script called nomnomnom.sql that did

sqlite3 $CHROME_COOKIES < ~/bin/nomnomnom.sql

Then you could add this to your crontab to say, get rid of the nytimes cookies everyday. As an example.

A list of random things going on in my life

A list of random things going on in my life

It’s been a while since I published anything personal on here. Not that I ever really did that, but I’ve been having some blogging guilt lately. I present the following unorganized list of things going on which you may, or more likely may-not find interesting. I tend to get introspective around birthdays that are divisible by five. This is a complete random collection of items. You have been warned.

Continue reading “A list of random things going on in my life”

Beowulf, Grendel, and the BeagleBone Black

My brother is a PhD candidate in a computational chemistry program. He occasionally asks me for help with some of the software he’s required to use. In the course of helping him, I’ve learned a few things about scientific software. The following are my observations:

  1. Scientists love Fortran. They love Fortran as much as a Linux systems programmer loves C and they will probably never leave it for the same reasons. There is apparently a lot of Fortran code out there and the effort to rewrite it would be immense. I’ve suggested to my brother to use wrappers in SciPy, a language with which he is more familiar, but the old guard insists on using Fortran.

  2. I think scientists-who-use-software don’t really get how to write cross-platform code. One package he showed me used a Make file (yeah!) but required you to edit a bunch of text config files first to specify the architecture and some paths and then run make.

  3. Despite these unfortunate realities, I feel that scientists are among the few who use computers for their full potential. It saddens me that the raw computational power in your smart phone is being used to so that you can click like on a post.

There was only so much help I could provide my brother because I really didn’t know anything about the software being used in massive clusters. So when Packt publishing offered me a chance to review Building a BeagleBone Black Super Cluster by Andreas Reichel, I was interested. My cluster operations knowledge is very limited, but I’m pretty familiar with the BeagleBone so I thought this book might be a good way to learn more.

A pack of BeagleBones found in the wild found in a cluster formation.
A pack of BeagleBones found in the wild found in a cluster formation.

I enjoyed reading Andreas’ approach to the topic. He brings a certain academic perspective to the BeagleBone which is a bit refreshing in a way. In the preface and his introduction he puts the BeagleBone in historical context of computing history which was enjoyable to read.

He then continues to describe how to build a small cluster of BeagleBones. He made a custom mount of ten BeagleBone blacks. The details on how to build the enclosure are complete including how to hack an ATX power supply to power everything. I thought the set up was particularly clever.

The rest of the book describes how to use open source scientific software to run on this cluster. The examples seem very complete including providing details on source code modifications that need to be performed before compiling. This confirms my impression of scientific software :)

The book is approachable by more than just academics. I think there is a growing citizen-scientist movement who would benefit from learning more about parallel computing, especially in the areas of simulation and modeling. There are the occasional Hackaday posts the mentions clusters if you are looking for applications. One post describes a 33 Raspberry Pi cluster and the other an eight-node clustered webserver.

Now if my brother asks for help, I still really won’t understand what he’s doing, but I’ll at least have some background on how the software tools should work.

Arduino libraries

Arduino libraries

I’ve been working on a few Arduino libraries lately. Since there is no package manager for Arduino1 you have to install libraries manually. Generally, this is not a big deal as you just need to plop the library in your /Arduino/libraries/ folder. If you are writing a library, spend the extra effort and make the library conform to the Arduino IDE 1.5 Library Specification. This will make it even easier to plop libraries in that folder and plus, your library and examples, will nicely display in the IDE.

This is an Arduino Library. Punny :)
This is an Arduino Library. Punny :)

However, the documentation is very sparse about what keywords are. Basically, keywords are used by the IDE to perform syntax highlighting and thankfully, this post provides some clarification. I also submitted an issue so hopefully they improve that page. I guess I could have edited the wiki directly, but I couldn’t find a link to the actual keyword definitions.

Lastly, if you do create an Arduino library, pretty please, with sugar on top, pick an OSI Approved License. It may be fun to pick something else, but consider that there may be somebody who wants to seriously use your library and unless you pick a clear license, it will be unclear how to incorporate your library with their larger work.

Enjoy the snow while it lasts.

  1. Feel free to run off with this good idea.