Call me a freak: I don't like writing on envelopes. I dislike the way it feels when you push on an envelope already stuffed and sealed, I don't like making a mistake and having to unseal and restuff. And let's not even talk about the days when you have to send out a bunch of mailers - thankfully that's become less common these days.
So I got myself a Brother label printer. It's one of those dual purpose printers you can use to label, say, an envelope, but you can also print the address on an envelope. The problem: I had to enter every single label by hand, print it, and then go on to the next one.
There was a USB connection, and there was software that allowed you to print to the label printer. But of course it ran only under Windows. I could have used Wine... Wait, no: I used Wine to make it print, but it crashed consistently, like a great many hardware-dependent software does in an emulation.
Enters Woot, that had a phenomenal sale on one of the top model label printers, the DYMO LabelWriter 4XL. Where 4XL stands for 4 (their top series of personal label printers) and XL (as in the size of labels that thing can print - which also happens to be 4").
I had already researched enough to know that DYMO was open-source friendly-ish. There was a published CUPS driver, and software floating around. Woot is an Amazon company, so I trusted them to take the thing back if it didn't work as promised.
Well, the printer arrived today and I am already writing an article about it. So you already know how hard it can be to get it to work: less than 30 minutes. Even less if you read this article!
So, I took the plunge and booked a flight with Spirit Airlines. For those not in the know, Spirit is a low-cost airline with tons of extra charges, like the ones that had been popping up in Europe, and not unlike its competitor Frontier.
The basic idea is that you pay a "base price" that is much lower than other airlines' fare. Then you have to pay for extras that are free-ish on other airlines. For instance, on Spirit you pay for carry-on luggage. Also, you pay for drinks on the plane (even soda!). You even pay if you lost your boarding pass or didn't bother printing it at home.
Also, the flights themselves are very bare-bones. I am not the tallest guy in the world, but even for me the seats were uncomfortably close to each other. Sitting with the back glued to the chair, I barely had two inches of room in front of my knees. Also, the seats don't recline - which is a must because every degree of inclination gets part of a chair into your knee.
There is no on-board entertainment system. The seats look worn and old. When we got onto the plane, there were pepitas strewn on several seats. All in all, not the best experience.
BUT! I paid about half as much as I would have on any other airline. That was absolutely worth it, and I would have considered upgrading to make my flight more comfortable. I could have done so on my first flight, but I wanted to see how Spirit does with bare bones. And it does well: it delivers as promised, and the flight experience is more than OK.
It took me a long while to fall in love with Python (the language). It was mostly because the features I ended up liking were hidden behind the giant flaw in the foreground: mandatory matching white space. That means that, unlike in most other programming languages, Python decides that two lines belong together if they are preceded by exactly the same white space. If the white space doesn't match, Python complains.
I won't go into details here. Suffice to say that I ended up loving what lies beyond that fatal flaw. The Python developers created an environment where things are easy, and expected. Python tries to do what's intuitive most of the time, and that makes it so much easier to work with.
So I decided to use it instead of my old staple, Tcl. Tcl was really marvelous in certain aspects, but it had gotten little love lately. Tk, its GUI, was once the gold standard of graphical user interface scripting, but it looks dated and weird now. So I started porting all my old scripts from Tcl to Python, to see how much time it would take and if they'd get longer or shorter.
What do you know, programming was a breeze. Python has libraries for pretty much anything you could wish, sometimes it's a bewildering amount of choices. So all my scripts ended up being significantly shorter, faster, and easier to read.
Once I was done with my scripts, I started looking for a new challenge. I came up with the idea of taking the NOAA chart for the Torrey Pines buoy and making it look better and more informative.
Here is the original chart. Notice how wave heights are simply plotted without averaging out anything. That's very confusing and doesn't give a good picture of the current waves - especially because the data is accurate only to 10 cm and the jump from one level to the next is quite high.
So I thought I could do better. I decided I would create a graph with configurable memory that would average waves out, so that I'd get a smoother picture of what's happening. To do so, I'd have to figure out how to get the data, and what kind of data visualization was offered in the Pythonic world.
All of you who knew him will be saddened to hear that Mondo, my cat and friend of 13 years, passed. He was the loudest of cats, especially in the middle of the night, but it was near impossible not to love him. He made up for his annoying night time ways with a cuddly and loving personality that charmed even the lightest sleeper.
Mondo was perfectly fine (as humans can discern) until mid-July 2014. Then he turned suddenly ill, seemed to recover, but four weeks later had a fatal relapse. Cancer ate him through and through at the young age of 13.
Now that we got the fundamentals out of the way, a little bit more about Mondo:
After the previous article explaining the principles behind this form of "safe" cloud backup, here a step-by-step tutorial on how to make it work. The software used and the commands issued are all for Ubuntu, but you should be able to translate them into any modern Linux variant. On the other hand, much of the infrastructure required works only on Linux.
Aside from the obvious (a modern version of Linux), you will need a series of tools that don't come installed standard. First the actual commands, then an explanation:
sudo apt-get install mdadm lvm2 cryptsetup-bin
We are installing three packages:
mdadm: the package to control RAID arrays. From the description: "tool to administer Linux MD arrays (software RAID) The mdadm utility can be used to create, manage, and monitor MD (multi-disk) arrays for software RAID or multipath I/O."
lvm2: the package required for logical volume management, allowing us to resize after creation. "This is LVM2, the rewrite of The Linux Logical Volume Manager. LVM supports enterprise level volume management of disk and disk subsystems by grouping arbitrary disks into volume groups. The total capacity of volume groups can be allocated to logical volumes, which are accessed as regular block devices."
cryptsetup-bin: the package to encrypt the data. Technically, this is just a utility to manage the process, while the Linux kernel does the actual encryption, but to us it's the same thing. "Cryptsetup provides an interface for configuring encryption on block devices (such as /home or swap partitions), using the Linux kernel device mapper target dm-crypt. It features integrated Linux Unified Key Setup (LUKS) support."
- PRIMER: Redundant Data Backup in the Cloud for Linux
- L'America: What's So Great About America?
- Apple Buys Beats: Who Do I Want to Be When I Grow Up?
- Samsung UD590 4k Monitor and Kubuntu 14.04
- Up and Down the West Coast: Seeking Fresh Powder Edition
- I HEART Janet Reid, but She's Dangerous
- Following the Pineapple Express to Mammoth with a Mountain Collective Pass
- Living With the Puck: StraightTalk Unimax U240C Reviewed
- L'America: The 411 on Thanksgiving
- Fixing KSnapshot Quirks - and Programming the Linux Shell in the Process