Sunday, March 16, 2014

Beaglebone Black setup

I have been wanting to build a simple robot, to roam around the house for some time. I have focused on the brain to start with. A couple of years ago I looked into avr 8-bit microcontroller. The avr chips are easy to write code for and have a lot of features, but they are still just a microcontroller. I wanted something that could run linux and make things like adding wifi easier. Somewhere along the line the Pi came out. I looked at it and found the i/o pins it provided to be limited. After looking some more, I found the Beaglebone Black, which was like the Pi but with a lot more i/o pins.

Excited to find a $45 computer with the features I wanted, I went to order it and found it was out of stock everywhere. After looking around a lot, I found the site adafruit had a sign up for when the Beaglebone Black would be back in stock. I put in my email and 5 days later I order one. A week after that with the cheapest shipping I got my board in the mail.



The Beaglebone Black is about the size of a credit card. The thickness part is the Ethernet port.

With board in hand, I am all ready to see what I have. I hook up the usb cable that came with it and my Ubuntu 12.04 networking manager crashes. After some searches I give up and connect it to my router and power it with a phone charger. Once I find the IP on my router, I just ssh in as root with a blank password. I see it running angstrom linux and uses systemd (more on this later).

A couple of weeks later, I look more into hooking up the usb to Ubuntu and found the solution on adafruit. I just needed to add some udev rules. After adding the udev rules with the script on adafruit, just plugging in the usb boots up the board and adds a eth2 to Ubuntu. Now I can just ssh it the board as
ssh root@192.168.7.2

 At this point, the Beaglebone Black will not be able to access the network without some iptable changes. At this point that is not important to me, I just want to configure the board and I plan to add a wifi usb dongle in the near furture.

Overall, I have been very happy with the Beaglebone Black. I know the Pi has a much larger community, but given the Beaglebone Black is always out of stock I think its community is growing.

Saturday, March 15, 2014

More free fonts!

For some reason, I think that fonts are very important to get right, especially for video game development. The best example I can think of is Team Fortress 2. The game's art design and music effectively sets the mood of the game as a cold-war era future-ish spy movie... thing. And the font used in the game lends to that mood as well. Imagine if they used Arial: it would feel out of place and not contribute to the playful, kooky atmosphere.

So, here I am again, eating up free font lists like this one: http://www.awwwards.com/the-100-greatest-free-fonts-for-2014.html


Linus and XML

Reading this post from Linus Torvalds, I never thought of the git subsystem as a replacement for a file format.

tl;dr:

Linus' project, Subsurface, a SCUBA diving logger, originally used XML. Linus hates XML, and has been looking to replace it. He ended up using the git object database format. With it, he gets efficient deduplication and compression, as well as backups and history.


You might say "But the git object database format isn't a file format, its a bunch of files tied together which makes up the format. Its a database format." And you'd be correct.

The discussion has Linus revealing "As to JSON, it's certainly a better format than XML both for humans and computers, but it ends up sharing a lot of the same issues in the end: putting everything in one file is just not a good idea. There's a reason people end up using simple databases for a lot of things."

There's been several projects that have used git and/or its technologies before. I can think of backup systems, FUSE filesystems for a substitute for ZFS or btrfs. In the comments of Linus' post, one of the devs of Pitivi mentioned they had toyed with using it for that project.

Reading up on git objects and libgit2, it seems that the git subsystem could be a good replacement for text file formats in certain scenarios, provided you're okay with having a good text database, instead of wrapping everything into a single file. It's dependent on the situation. It sure beats the "Just use XML for everything, everywhere" mentality.