I had the honor of introducing zEscrow about a week ago, at the Ubuntu Developer Summit during Friday's plenary of lightning talks. The video is unfortunately not yet available on YouTube yet, but as soon as it is, I'll embed it here. But you can view my slides now!
zEscrow is a free service offered by my employer, Gazzang, to users of Ubuntu's Encrypted Home Directory, to aid them in safely backing up and retrieving the bit of configuration and key material necessary to recover that data later. I can't state this emphatically enough...
This very well may
save your encrypted life at some point!
save your encrypted life at some point!
The Quick Start Guide
If you're running a version of prior to Ubuntu 12.04 LTS, first add the PPA:sudo apt-add-repository ppa:zescrow/ppa
sudo apt-get install zescrow
And if you're on Ubuntu 12.04 LTS, just install.
sudo apt-get install zescrow-client
Now, just run
This might help explain why I have personally received hundreds (probably climbing north of a thousand) emails, IRC messages, forum posts, StackExchange questions, Launchpad bugs, SMS messages and even phone calls to my cell phone (!?!) from users who have forgotten their login password, or did not record their randomly generated eCryptfs mount password at installation, and are now cryptographically locked out of their own data :-(zescrow, and follow the three simple prompts:- Choose your server
- Enter your login password
- Visit the one-time URL
How it Works
Some inquiring minds might want to know the nitty gritty details. You're welcome to read the code, as Gazzang has released both the client and server as free and open source code in Launchpad under the AGPL. Here's a narrative pseudocode of the algorithm though:
- Choose your zEscrow server. I recommend that you use the default, zescrow.gazzang.com.
- The zescrow utility will download the public GPG key associated with your zEscrow server and load it into a temporary keyring stored entirely in memory.
- Enter your LOGIN password. This will be used to decrypt your ~/.ecryptfs/wrapped-passphrase file. Under NO circumstances will your LOGIN password will sent to the remote server!!!
- The utility will create a tar archive of your entire ~/.ecryptfs directory, but replacing your wrapped-passphrase file, with unwrapped-passphrase. This protects your LOGIN passphrase from ever leaving your system, but ensures that your randomly generated MOUNT passphrase will be securely transferred to the remote server
- This ecryptfs.tar archive is securely transmitted to the zEscrow server over SSL.
- Upon a successful transmission to the zEscrow server, a cryptographically nonced URL link is sent back to the client utility, which embeds a checksum of the transmitted archive, verifying the integrity of the transmission.
- You MUST complete the transaction by opening the link IMMEDIATELY, to "claim" this upload as yours. Upon doing so, you'll be required to login using Google OpenID.
- (Yes, you must have a Google OpenID to use this service. Sorry. Send a patch, if you want support for another OpenID provider).
- That's it! You can now download your backups from zescrow.gazzang.com at any time, and use ecryptfs-recover-private to get your data back, following these instructions!
The Motivation
Unhappy Users Don't Back Up their eCryptfs Passphrase
A few random quotes from the last 2 months alone:- "Through idiocracy I have screwed up my encrypted home directory and if possible I need help getting it back."
- "I was trying to mount my encrypted home directory from a livecd in order to back up my data (according to the instructions), when I accidentally deleted one of the .ecryptfs folders in my encrypted home."
- "Mr Kirkland, my name is MB. I used an Ubuntu system with ecryptfs. Something happened and it all went up in smoke. I saved a backup and moved on. Chalked it up to bad backup practices and moved on. I found the encrypted backup a few days ago, and I've been trying to unscrew it. I *think* I found the old wrapped-passphrase file, and I tried to fix it. So far, I've been unable".
- "Please help as I am stuck in Korea and will be totally shagged without my e-mail and data. I have 6 months un-backedup work on the disk, of course. And I saved the password for the disk on my home partition...great move eh?"
But Happy Users Do Back Up their eCryptfs Passphrase!
On the other hand, I have helped hundreds upon hundreds of users recover their data, when its clear that they HAVE backed up their randomly generated MOUNT passphrase. These two blog post of mine, about the ecryptfs-recover-private utility and how to mount your encrypted home from a live CD, are my two all-time most viewed posts. A few quotes from happy users:- "you saved my life, thank you!"
- "Where do I send hugs? It's great, thanks so much! I just want to add my note"
- "Worked like a charm - thanks."
- "YOU SAY IT! *YOU* *THE* *MAN* JUST SAVED MY LIFE! THANK YOU"
- "Thanks $deity and Dustin, this method works for recover my encrypted private directory and backup it to external drive. Thanks again for this tutorial."
- "Thanks Man!! it worked for me!!"
- "Today, making a liveCD and following your instructions above put a massive smile on my face. I can't believe I've now got access to everything again and nothing is lost. Thank you so much for sharing your knowledge - I shall sleep well tonight!"
- "Thank you for this addition to Natty! I was having a hard time mounting my files on a system I wrecked ;)"
- "thank's a lot, u'r save my life"
- "My god. Thank you so much! I tried to upgrade to 11.04, and it wrecked my OS. This is a lifesaver."
- "This is cake my friend nice job! I remember when this was stuff was hard. I've been trying to recover a drive for some time now."
- "I just wanted to say thanks for building this. I used it to recover a ~/.Private directory on an external drive, and it worked flawlessly. It's folks like yourself building tools like this that makes open source projects such a pleasure to use. So kudos, and thanks."
:-Dustin
I'm very proud to announce today the launch of eCryptfs.org! For the first time in the 7 year history of the project, eCryptfs has it's very own, dedicated home on the web at eCryptfs.org.
eCryptfs.org now serves as the project's official portal to numerous resources, including: information about the project, StackExchange questions and answers, mailing list archives, the Google Plus page, package download links for all major Linux OSes, pointers to the kernel and userspace source code repositories, support resources, documentation, and news.
The kernel sources continue to be hosted on git.kernel.org, and the user space sources and bugs hosted on Launchpad.net. We are now using StackExchange.com for questions and answers rather than Launchpad.
A special thanks goes out to the original authors and developers of eCryptfs in the IBM Linux Technology Center Security Team, the Canonical Kernel and Security Team, Red Hat and beyond, as well as all of the contributors to eCryptfs over the last 7 years. Gazzang commissioned the artwork and web design, and is sponsoring the web hosting of eCryptfs.org as a bit of a "thank you" to the eCryptfs community growing far and wide. Let us know what you think!
Cheers,
:-Dustin
I'm absolutely thrilled to have been invited by Barton George to participate in Dell's Project Sputnik! As of this morning, the gag order has been lifted and I can finally publicly blog about it :-)
I'm writing this blog post from a brand new Dell XPS13, given to me by Dell! Project Sputnik is a new endeavor from Dell to produce a portable hardware and software platform specifically designed for developers. Have you been to a conference recently where the predominant hacker platform involved a legion of Mac Airs running OSX? Well, I think we finally have a contender :-)
I drove clear across Austin on Monday last week to meet Barton at The Domain and pick up the new machine. Saying this sounds strange, but the experience unboxing this laptop was significantly different than any other computer I've ever opened. The packaging itself was elegant, even beautiful.
And the hardware -- wow! Aluminum outer shell. Chiclet back-lit keyboard. Thin, light, sexy. At 13", it's the perfect balance between portability and usability. The accessories and peripherals are simple, but sufficient. Two USB ports. A combination mic/headphones jack. An external display port (dongle required). And one very slim and trim AC/DC power adapter. Oh, and there's a little button that you can press and see how much battery you have left. There's a quad-core i7 with VT. Intel video and wifi. Bluetooth. 256GB Samsung SSD. 4GB of RAM (I really could have used 8GB, and it's soldered onto the motherboard). With a 46W-h battery at 7.4V, I'm getting 6+ hours of uptime.
I installed Ubuntu 12.04 LTS myself (as the pre-built image didn't actually exist when I received my device as an Alpha Cosmonaut). Everything worked out of the box, except as mentioned by Barton in his blog post (I had the toggle the hardware wifi kill a few times to get wifi working, and without proper drivers for the touchpad, it's lacking multi-touch support).
From the software side, I'm really excited about the idea of developing a derivative or customized distribution of Ubuntu, precisely tailored for developers. I've used Linux as my development platform for 12+ years, and Ubuntu for the latter half of that. In fact at Gazzang, the vast majority of our developers use Ubuntu desktops, and our development largely happens (or starts) on Ubuntu cloud images and servers.
Ubuntu is such a modern platform, with stable, recent versions of thousands of open source software packages. Partnered with Dell and this breathtaking piece of hardware, I think we're seeing the first glance of an amazing developer platform!
Any downsides? I'm looking forward to a proper driver for the touch pad (I'm told it's in the works). And I really want 8GB of RAM (I usually give my VMs 4GB). Aside from that, this is a truly beautiful machine -- easily the best laptop I've ever seen or used from Dell. I love the focus and attention they're paying to Ubuntu in this space. Well done, Dell!!!
:-Dustin
During the course of a recent public thread on Google+ this weekend, I mentioned that I am in the market for a used, late model Cadillac CTS-V (sort of an American equivalent of the BMW M5). Truth be told, I've been watching CraigsList, eBay, Autotrader, and Cars.com for a very specific vehicle. There's only a few hundred ever made to my precise specification. I've contacted a small handful of dealers and individuals for more information about a couple of cars, but haven't quite found exactly what I'm looking for.
Yesterday, I received the following email:
To a less savvy buyer, this probably would have proceeded with "Mary" insisting on a deposit being paid in advance of ever seeing the vehicle or title. And sadly, a few people will probably fall into this trap and lose a few grand :-(
What strikes me about this attempt to defraud me, as compared to the thousands of other random email messages that fill my spam box each month, is how precisely and surgically directed it was. At me. Offering something I'm specifically shopping for. Right now. That's more than a bit scary...
Well, beware....it seems the bad guys are getting even more sophisticated :-/
Dustin
Yesterday, I received the following email:
Mary Smith ga.marysmith@gmail.com 7:37 PM wrote:
Hi Dustin Kirkland,My name is Mary Smith & I am the Sales Manager of a large auto dealer group, we actually have a store in Conyers,GA.We are selling the 2009 Cadillac CTS-V, for a customer of ours. It is an Original, non-smoking adult owner and was parked in the indoor garage most of the time. Very fast, powerful but yet smooth drive. It is loaded with all the standard features. No accidents. All power features work properly just like they should and everything is in excellent working condition. The carpeting is very clean and stain free. No rips, no odors. This is a non smoker vehicle. A real head turner on the road. Always stored inside and never driven in the snow. Black Raven Exterior / Ebony Interior Leather Seating with Suede Inserts.Navigation System.AM/FM Stereo with CD/DVD Player, Bose 5.1 Cabin Surround Sound 10 speaker system. 40GB Hard Drive Device.Bluetooth.Universal Home Remote. 5 Speed Manual Transmission.The price is $35,750 ( the owner selling it due to a change of job)This car has less than 15,000 miles and a CLEAN CarFax with One Previous Owner! The mileage represented on this vehicle is accurate.We proudly stand behind each vehicle we sell because it has passed a thorough inspection. VIN# 1G6DN57P590172365The warranty is full active, fully transferable to the new owner.The vehicle is warranted as being free of lien. It has a clean title in to the owner's name. The pictures speak for themselves. If you need more details or would like additional pictures, please contact me.
-- Thank-You!
Mary Smith
951 Dogwood Dr
SE Conyers, GA 30012
sales@ga-autogroup.com
- On the surface, this seemed very attractive. It's pretty much the exact car I'm looking for, but at a significantly-better-than-market price (flag #1).
- I have been shopping at Cars.com, though I don't recall contacting this individual or dealer (flag #2).
- I found it slightly odd that she would have sent this email from ga.marysmith@gmail.com, rather than an @ga-autogroup.com address (flag #3), but hey, maybe their internal email system was Exchange or worse (Lotus Notes).
- While the prose was readable, there were a couple of missing periods, sentence fragments, and poor use of capitalization. Also, the description claims a 5-speed manual transmission, while this car only comes in a 6-speed manual transmission (flag #4).
- So I visited the website, ga-autogroup.com, and found a small collection of used cars, including the car advertised here, at the price listed in the email. While the website was reasonably well done, I found it odd that the domain name had only been registered on March 27, 2012 -- less than a month ago (flag #5).
- The IP address hosting the site, 50.28.2.79, is also hosting 7 other similarly suspect looking auto dealership websites: quadcitiesnewandusedcarsandtrucks.com, carmau.com, mamotorsllc.com, randycrowlautosales.com, blueridgeautos.com, etnaautosolutions.com, imperialmotorspdx.com (flag #6).
- The physical address listed in the email does match the one on the website -- 951 Dogwood Dr SE, Conyers, GA 30012 -- but that address doesn't actually exist! There are only even numbered addresses on that street, including several car dealerships, but none of them named GA Auto Group (flag #7). Google Streetview helped me browse the area remotely.
- The text on their home page claims to "have sold over 10,000 cars" but I couldn't find a single review (positive or negative) about them on the internet (flag #8). That's just not even possible in today's world, when buying and selling vehicles over the Internet.
- They also claim to be a "Carfax Advantage Dealer", but checking Carfax's website, there's 12 Carfax Advantage Dealers with a matching zipcode, but none of them are this GA Auto Group (flag #9). I contacted Carfax and they had never heard of this dealership.
- I called the phone number (albeit after hours) listed on their website, 1 (678) 487-7289, and received a completely generic "Please leave a message" recording (flag #10)...
- ...in a vaguely British accent (flag #11). Have you ever been to Georgia? If not, watch a few clips of Gone with the Wind on Youtube (unless you have 6 hours to kill).
- The "About Us" section of the website claims that they have been in business since 1981 -- odd for a company that just launched its website 30 days ago (flag #12).
- I checked the Conyers Chamber of Commerce website and there's no record of GA Auto Group (flag #13). I also picked up the phone and called the Chamber of Commerce this morning. No one there had ever heard of the auto group. Pillar of the community since 1981, eh?
- The "Service" page of the website has a top notch photo of an automotive service department -- really clean and slick looking! Using Google's Search by Image technology, it's remarkable that the Auto Group of San Antonio has the exact same service facility (flag #14)!
- I paid $40 and bought the Carfax report, which shows an excellent, clean, never-wrecked vehicle matching the description. However, VINs are not secret -- anyone could claim to have possession of a vehicle with a given VIN. Googling around for the listed VIN, I see the same car for sale on 7 different websites (flag #15), and tellingly, more appropriately priced on a few of those.
To a less savvy buyer, this probably would have proceeded with "Mary" insisting on a deposit being paid in advance of ever seeing the vehicle or title. And sadly, a few people will probably fall into this trap and lose a few grand :-(
What strikes me about this attempt to defraud me, as compared to the thousands of other random email messages that fill my spam box each month, is how precisely and surgically directed it was. At me. Offering something I'm specifically shopping for. Right now. That's more than a bit scary...
Well, beware....it seems the bad guys are getting even more sophisticated :-/
Dustin
One of my esteemed colleagues, at Gazzang, our lead Sales Engineer Robert Linden asked me a great question via email this week. As I wrote my response to him, I realized that I've composed similar answers before to friends and family and colleagues who have asked me about iPhone and Android devices. With Robert's blessing, I'm posting both his question and response here in my blog. Enjoy!
These are great questions!
As a rule, I always "root" my phone. It voids the warranty (to some extent), in that if I have to return the phone to manufacturer, I'd need to "unroot" my phone before mailing it to them. If it's still functional, that's possible to do. If it's totally dead, then it's not possible. In which case, if the manufacturer can tell that I've rooted, they *could* possible refuse to repair it. I also have to "hide" the fact that I've rooted the phone from Sprint (my carrier).
Mostly, this just means being smart when you're talking to them on the phone. It's about like hiding from your parents in high that you occasionally went to parties when kids were doing less than wholesome things :-) Sprint *probably* knows that you've rooted your phone, but definitely don't flaunt it or even admit to it.
For me, it's a matter of personal choice. I buy my devices out right, without any contract or rebate. I often buy them used off of swappa.com. I like to "take control" of my device, uninstalling the "bloat ware" and "crap ware" that comes with the device from the manufacturer, and re-installing the OS and all applications per my choice. That's not for everyone, of course. My wife, for instance, doesn't really care. Nor does most of the waking population of the world. But for hard core hackers, it often is important. That's actually one of the interview questions we've started working into our engineering interview process...asking if the candidate has ever rooted their phone or tablet or router, etc. :-)
So yeah, step 1 is rooting (unlocking, jailbreaking) the phone, which allows you to replace the bootloader. This is easier on some devices, and harder on others. Some are "development" models (like my old HTC G1, and my original WebOS Palm Pre), which basically come rooted by default. I flash my bootloader with a tool called ClockworkMod (CWM). This allows you to do two very important things...make a complete backup image of your phone, and boot any kernel/os you choose. Note that most, but not all, devices are supported by ClockworkMod. You'll need to check that website to see its compatibility with your device. If you're buying something that just hit the market, it can sometimes take 3 months for the very smart developers to port CWM to it.
Next, I backup my stock image from the manufacturer. This is what you'd need to re-image the device with, if you ever return it. I've had to recover and send back to the manufacturer one phone (HTC Shift), and one tablet (Lenovo A1) for repair. Both HTC and Lenovo fixed my device exactly as requested, no problem.
Then, I typically install CyanogenMod (CM). Cyanogen is a "distribution" of Android, much like Ubuntu and Red Hat are distributions of Linux. Cyanogen removes all the bloatware and adds some really nice utilities and functions. It's sort of like the DD-WRT of Android (if you're familiar with the DD-WRT Linux distribution for routers). Cyanogen actually DOUBLED the battery life of my HTC Shift, having removed all of the crap ware that Sprint and HTC load the phone with, and tweaking a number of power settings.
Cyanogen has its own versioning scheme. I'm running CM7 on my HTC Shift. You mentioned "Ice Cream Sandwich" -- that will be CM9, which is currently in a beta testing mode. Again, you'll need to check the
Cyanogen website for compatibility with your device, but if you want a stable CM9 installation for your device, you might need to wait a few more weeks/months.
Hopefully this all makes sense :-) I usually allow about 2 hours nowadays for:
- rooting
- installing CWM
- backing up
- installing CM
- configuring to my liking
However, the first time you do it, the first 2 steps might take you a bit longer.
If you don't mind buying something slightly used, I highly recommend swappa.com. There, you can find many gently used Android devices that are *already* rooted, and some are already running Cyanogen. Perhaps do a little browsing there before you overpay "the guy at Best Buy" for a brand new phone brimming with bloatware :-)
--
:-Dustin
On Tue, Apr 17, 2012 at 5:53 PM, Robert Linden wrote:In the spirit of open source, trying new things, etc... I'm considering replacing my iPhone with an Android phone. I've done some research, but wanted to get your thoughts on things. I know "Ice Cream Sandwich" is the latest release of the OS, and next month the big wave of new phones will hit the market with this version of the Android operating system. I believe that the Samsung Galaxy is the only one currently out with the latest OS already on it, right?
Some things I'm wondering about are... Is there a phone / carrier that is more 'open' than others? I heard Eddie talking at the All Hands how he had just upgraded to 'Sandwich' on his phone... I know that this isn't always possible to do, is it? The "guy at Best Buy" mentioned a phone that had "less bloat-ware" and "free apps" installed (a desirable situation I think). I didn't make note of this. Can I "un-bloat" my phone? Do you have to "jailbreak" some Android phones, like you can do with iPhone to open it up? I'd appreciate any advice / recommendations if I do decide to make the switch soon...
Hey Robert,
These are great questions!
As a rule, I always "root" my phone. It voids the warranty (to some extent), in that if I have to return the phone to manufacturer, I'd need to "unroot" my phone before mailing it to them. If it's still functional, that's possible to do. If it's totally dead, then it's not possible. In which case, if the manufacturer can tell that I've rooted, they *could* possible refuse to repair it. I also have to "hide" the fact that I've rooted the phone from Sprint (my carrier).
Mostly, this just means being smart when you're talking to them on the phone. It's about like hiding from your parents in high that you occasionally went to parties when kids were doing less than wholesome things :-) Sprint *probably* knows that you've rooted your phone, but definitely don't flaunt it or even admit to it.
For me, it's a matter of personal choice. I buy my devices out right, without any contract or rebate. I often buy them used off of swappa.com. I like to "take control" of my device, uninstalling the "bloat ware" and "crap ware" that comes with the device from the manufacturer, and re-installing the OS and all applications per my choice. That's not for everyone, of course. My wife, for instance, doesn't really care. Nor does most of the waking population of the world. But for hard core hackers, it often is important. That's actually one of the interview questions we've started working into our engineering interview process...asking if the candidate has ever rooted their phone or tablet or router, etc. :-)
So yeah, step 1 is rooting (unlocking, jailbreaking) the phone, which allows you to replace the bootloader. This is easier on some devices, and harder on others. Some are "development" models (like my old HTC G1, and my original WebOS Palm Pre), which basically come rooted by default. I flash my bootloader with a tool called ClockworkMod (CWM). This allows you to do two very important things...make a complete backup image of your phone, and boot any kernel/os you choose. Note that most, but not all, devices are supported by ClockworkMod. You'll need to check that website to see its compatibility with your device. If you're buying something that just hit the market, it can sometimes take 3 months for the very smart developers to port CWM to it.
Next, I backup my stock image from the manufacturer. This is what you'd need to re-image the device with, if you ever return it. I've had to recover and send back to the manufacturer one phone (HTC Shift), and one tablet (Lenovo A1) for repair. Both HTC and Lenovo fixed my device exactly as requested, no problem.
Then, I typically install CyanogenMod (CM). Cyanogen is a "distribution" of Android, much like Ubuntu and Red Hat are distributions of Linux. Cyanogen removes all the bloatware and adds some really nice utilities and functions. It's sort of like the DD-WRT of Android (if you're familiar with the DD-WRT Linux distribution for routers). Cyanogen actually DOUBLED the battery life of my HTC Shift, having removed all of the crap ware that Sprint and HTC load the phone with, and tweaking a number of power settings.
Cyanogen has its own versioning scheme. I'm running CM7 on my HTC Shift. You mentioned "Ice Cream Sandwich" -- that will be CM9, which is currently in a beta testing mode. Again, you'll need to check the
Cyanogen website for compatibility with your device, but if you want a stable CM9 installation for your device, you might need to wait a few more weeks/months.
Hopefully this all makes sense :-) I usually allow about 2 hours nowadays for:
- rooting
- installing CWM
- backing up
- installing CM
- configuring to my liking
However, the first time you do it, the first 2 steps might take you a bit longer.
If you don't mind buying something slightly used, I highly recommend swappa.com. There, you can find many gently used Android devices that are *already* rooted, and some are already running Cyanogen. Perhaps do a little browsing there before you overpay "the guy at Best Buy" for a brand new phone brimming with bloatware :-)
--
:-Dustin
AUSTIN, Texas -- Kirkland Family Life Enterprises are thrilled to announce the timely release of the first product of its next generation -- Kirkland 12.04 Ultra LTS (code name: Camille).
Chief Architect and Lead Developer Kimberly Kirkland (code name: Mommy) delivered a perfect new child process at 9:35am on April 12th, 2012 -- impressively, three days ahead of schedule. As with most technical projects, the development team labored all the way through the night, having begun the release procedures with an all-night Sprint that kicked off around 7pm the previous evening.
Project Manager and Community Coordinator Dustin Kirkland (code name: Daddy) multitasked a stream of procurement and support requests, and helped ensure a smooth delivery. He tagged each milestones with numerous snapshots, offering encouragement throughout each work item. Kim and Dustin were bolstered by an expert pair of support engineers, Stephanie Carter (code name: Nanny) and Gerri Gros (code name: Mimi), who joined them on-site for the final QA and the initial release party. Dustin wore an Ubuntu 9.10 "Karmic Koala" t-shirt for the duration of Sprint, with Kim noting that the Koala face made her smile any time the going got tough.
Camille 12.04 is an "Ultra" Long Term Support release, with first class expert support for at least 18 years (wow, take that, Ubuntu!). She is already showing tremendous input/output capabilities and impressive throughput performance on both ends. A contract technician confirmed that her dual-channel stereo input is in good working order, and that her analog output volume, while still a bit inarticulate and compressed, is quite audible. "I thought release day would never come," says Kimberly, exhausted but joyful. Kim sheds a tear, "We've been waiting to meet her for so long!"
Complete release notes do state that Camille is currently prone to frequent, spontaneous reboots and random periods of inactivity. Fortunately, her init and shutdown sequences are quite efficient. Kim and Dustin shared the design responsibilities for Camille's look and feel. They seem to have done quite an elegant job, having achieved a bit of unity around her outer shell. She has a simply gorgeous greeter! They are still getting used to the new user interface. And they're working their way through the various documentation and manuals whenever she enters one of her multiple sleep states.
"We've wanted this for so long, we're going to cherish every second of uptime!" says Dustin, while dealing with Camille's un-handled garbage collection on the system console. "We've actually decrypted and documented a few of her error codes."
Camille is currently in a limited-release mode, with access only granted to a few privileged associates. But in another 6 weeks or so, she's expected to make her first GA appearances, with a formal release party still to be held.
While Kirkland Family Life Enterprises are most certainly still in start-up mode, their trajectory looks quite promising, as we confirmed with Board of Directors chairmen Allen Kirkland (code name: Paw Paw) and Robert Gros (code name: Bob). "We're extremely pleased with our venture investments and they have our complete backing...in fact, they're looking reeeeeal good!" claims the chairmen. Technical Advisors Donna Kirkland (code name: Gran) and Gerri Gros (code name: Mimi) said, "We're so proud of the whole team, they're really doing a fine job!"
Asked if there's a 2.0 update in the works, Dustin, wearing his VP Product hat, shrugged and noted that they still have plenty of development to do on this one. "Let's work on maturing our 1.0 with a few stable release updates before we start talking about a whole new product line -- there's so many SRUs to process! We're not on a time-based release schedule, so just ask me again in a year or two."
:-Dustin
Kim and I are expecting an addition to the family and baby car seats and Corvettes don't mix. And so I'm parting with my pride and joy (replacing it with a Cadillac CTS-V), but I'm hoping it finds a new home that will appreciate it and baby it as I have!
I'm the second owner, having bought it in May of 2003. I have since put 31,000 miles on it over the last 9 years. Meticulously maintained and cleaned, it has always been garage kept, and rarely even driven in the rain (like count-on-one-hand times). The Pewter on Tan leather color combination is very classy and distinctive. Even with C6's cruising around, this car has plenty of speed, power, and handling and you'll always get 2nd looks when you
drive around with the top off ;-)
This car has the variable suspension package, allowing you to switch the ride from rigid, corner-on-rails "performance" mode, to deal-with-potholes-in-a-
It also has "active handling", which keeps your rear tires on the road. Active handling is usually on by default, but you can turn it off any time with the push of a button and peel out in 1st, 2nd, and even shifting to 3rd gear. The removable hard top is really the best of both worlds. When the top is on, there's no interior noise and never any water leaks (like you'll find in a convertible). But the top comes off in seconds and then you're cruising in style!
Lots more pictures are posted at:
Features:
- 5.7 Liter V8, 350hp
- 59,500 miles
- Manual, 6-Spd
- Adjustable Suspension Pkg (Tour, Sport, Performance)
- ABS (4-Wheel)
- Bose premium stero
- Power Steering
- Tilt Wheel
- Air Conditioning
- Power Windows
- Power Door Locks
- 2 x remote key fobs
- Cruise Control
- Dual Air Bags
- Dual Power Seats
- All leather
- Premium 5-spoke chrome wheels from 2002 model
- Drilled, slotted high performance brake rotors
- Oversized chrome exhaust tips and Corvette emblem plate covering rear transaxle
- Oversized Blackwing air filter (adding 10-15 horsepower)
- 10-disc Sony MP3 changer added to the trunk, controls in the ashtray
- Cast aluminum gas pedal and dead foot pedal to match brake/clutch pedals
- Brushed aluminum gear plate on shifter
- Corvette emblem floor mats
- C5 fitted canvas cover in trunk (in case you ever have to park it outside)
- LS1 engine plate in glove box
- Bypass installed to remove 1st-4th forced shifting
:-Dustin
Just following up on my recent post about Piet Mondrian and Byobu...
I had planned on running the guest@mondrian.byobu.co HP/OpenStack instance for just one day, but I've actually kept it running for 3 weeks now!
I compiled a few statistics for you over those 3 weeks. There have been:
I had planned on running the guest@mondrian.byobu.co HP/OpenStack instance for just one day, but I've actually kept it running for 3 weeks now!
I compiled a few statistics for you over those 3 weeks. There have been:
- 2,405 successful password authentications as the guest user!
- And only 5 of you have +1'd the Google+ post? Yeesh :-) I reckon XKCD is right :-)
- 308 successful public key authentications as the ubuntu user
- from 2 different IP addresses which I can confirm are both mine (home and office), whew!
- 16,002 failed password attempts for the root user
- seriously, people?
- 6,813 more failed password attempts for some 4,929 other random invalid users on the system, originating from the following malicious IP addresses, damn you!
- 108.15.99.40
- 115.178.77.152
- 115.238.176.98
- 118.67.249.136
- 119.10.114.200
- 121.14.46.119
- 123.125.149.134
- 123.215.30.134
- 124.238.214.46
- 176.32.184.75
- 199.119.204.3
- 211.91.224.131
- 216.196.184.5
- 216.230.144.226
- 222.174.35.3
- 60.31.123.54
- 61.135.199.195
- 61.50.247.173
- 68.169.46.31
- 76.176.60.100
So take this as a lesson.... Make sure you disable password authentication on your servers. There are automated unsavory types out there, all of the time, constantly poking and prodding at your cloud instances, looking for an easy way in!
:-Dustin
As opposed to the traditional baby monitor, I've decided to put together something of my own system, in that Linux hacker do-it-yourself sort of way :-)
Here was my check-list:
- Cobble together a little desktop machine from some scrap hardware laying around
- Install Xubuntu 11.10 with automatic login
- Add a Logitech C910 HD web camera
- Install Skype
- Create a new Skype account
- Set it to automatically accept calls from Kim and I (only!)
- Set it to automatically enable video
- Disable all of the annoying notifications and sounds
- Add this new user "babyroom" to my Skype contacts, as well as Kim's; obscure it as much as possible
And there we have it ... a high definition baby monitor that Kim or I can check from my Laptop, PC, Android phone or tablet! I would prefer using Google+ Hangouts for this, but I haven't quite figured out a way to have it auto-answer incoming hangout requests...ideas?
In any case, the high-def video monitor in the room sparked another idea -- to create the time-lapse video of us putting the finishing touches on the baby room you see above :-)
I recorded this in 1280x720 webm format using Cheese, over the course of about 35 minutes, while we assembled a simple crib and rearranged some furniture.
I then spent 4+ hours trying to figure out how to resample the frame rate and fit it down to a 1-2 minute video. I struggled and fought (violently) with:
I recorded this in 1280x720 webm format using Cheese, over the course of about 35 minutes, while we assembled a simple crib and rearranged some furniture.
I then spent 4+ hours trying to figure out how to resample the frame rate and fit it down to a 1-2 minute video. I struggled and fought (violently) with:
- OpenShot - slowing it down rendered it very choppy
- Pitivi - doesn't support modifying the frame rate
- Avidemux - should have worked, but the result wasn't very smooth and the colors were painfully distorted
- SlowmoVideo - never got it to work
Alas, all I needed was a trusty old command line utility that I hadn't used in years (not since my Mythbuntu days)...mencoder!
This command rendered the video you see below in about 5 seconds:
This command rendered the video you see below in about 5 seconds:
mencoder -fps 195/1.001 \ -ovc copy \ -audiofile soundtrack.mp3 \ -oac copy input.webm \ -o output.webm
My input file was 32:59, and I wanted my output file to be exactly 2:14, to match up with my chosen soundtrack, so I used a frame rate multiplier of 195/1.001. It look a little toying to get it right, but it worked out very well, I think!
Enjoy!
:-Dustin
One of the biggest differences in my new job is that I have to commute into the office every day. And with that, comes the second biggest difference -- that I can't wear a t-shirt and pajama pants as I sit and hack the day away in my Eames lounger.
And so I drive 12 (scenic) miles from my house in the hills west of Austin right to the heart of downtown, fighting traffic if I sleep even a few minutes past 7:15am. I wear a button-up shirt almost every day. Not that that's formal -- I also wear jeans and cowboy boots. But I'm dressing for the job I want, not the job I have. A dude rancher, I reckon :-)
The net result is that I had a closet full of awesome Linux and open source t-shirts -- shirts I had worn for years -- that just weren't getting their due anymore. And my Etsy-awesome lovely wife Kim convinced me to part with a number of my favorites to create a t-shirt quilt that captures my last ~7 years in the Open Source world!
Now, mind you, I shed a tear or two as Kim's shears tore through a couple of these shirts that I've carried with me across six continents and most of the two dozen timezones... :-/ On the other hand, a few of these weren't particularly my favorites, but did fit the color scheme she was going for. In the end, her work was really quite beautiful! And warm.
For those interested, I'll document the 6 rows by 4 columns:
- Row 1:
- Ubuntu Jaunty "I Ubuntu My Desktop"
- Puppet Labs, Peace/Love/Mozilla
- Linux Foundation 20th Anniversary of Linux
- Google Summer of Code (Mentor)
- Row 2:
- Texas Linux Fest
- IBM Community
- Ubuntu Precise Pangolin
- Linux Foundation (back of shirt, weird, hard to read, fit color scheme)
- Row 3:
- Linux Plumbers (Santa Rosa)
- Ubuntu Developer Summit (Orlando)
- OpenStack (Boston)
- Open Source Red Hat Summit (New Orleans, 2005)
- Row 4:
- Ubuntu 10.10 Maverick Meerkat, Fedora Project (FudCon 2005, Boston), Ubuntu Developer Summit (2008, Prague), Ubuntu 10.04 Lucid Lynx
- Slashdot
- Ubuntu (simple, probably my first Ubuntu shirt, circa 2005!)
- Ubuntu (all release version and code names 4.10 - 9.04)
- Row 5:
- Ubuntu Developer Summit (Barcelona 2009)
- Ubuntu 8.04 Hardy (the most beautiful Ubuntu t-shirt ever, which either shrunk too much, or my belly grew too big; let's say it shrunk too much)
- VMWare Cloud Foundry (Kim wanted a black t-shirt in this spot?)
- Row 6:
- Gazzang, the little start-up that could (lure me away from an awesome gig at Canonical)
- Back of Texas Linux Fest
- Back of Ubuntu 10.10 random 1's and 0's
- Ubuntu Ensemble DevOps t-shirt before the Ensemble project name was deprecated in favor of Juju :-)
Ah memories... So Kim enjoyed making this for me, but it was a heck of a lot of work, and I don't think she'll be doing it again. But if you're looking for a quilt made of your own favorite shirt, check out our friend Liz who has her own Etsy site for this sort of thing ;-)
Cheers!
:-Dustin
I'm thrilled to see Gazzang's next big thang is now out of the gate...
We announced today our comprehensive, turnkey encryption platform for Big Data, Hadoop, NoSQL, and several other cloud workloads. Our encryption technology is built on top of eCryptfs and transparently encrypts data, protecting sensitive data at rest without requiring modifications to your applications, partitioning, or filesystems.
We've tested our Gazzang Encryption Platform for Big Data against Apache Hadoop, Apache Cassandra, and MongoDB, on Ubuntu 10.04 LTS and Ubuntu 11.10, with both OpenJDK and Sun Java.
The news hit a good handful of tech news outlets today. Enjoy!
We announced today our comprehensive, turnkey encryption platform for Big Data, Hadoop, NoSQL, and several other cloud workloads. Our encryption technology is built on top of eCryptfs and transparently encrypts data, protecting sensitive data at rest without requiring modifications to your applications, partitioning, or filesystems.
We've tested our Gazzang Encryption Platform for Big Data against Apache Hadoop, Apache Cassandra, and MongoDB, on Ubuntu 10.04 LTS and Ubuntu 11.10, with both OpenJDK and Sun Java.
The news hit a good handful of tech news outlets today. Enjoy!
- Gazzang Launches Big Data Encryption and Key Management Platform
- Hadoop Users Could Get Their First Taste of Real Encryption
- And a growing list of subtle clones...
I spent a good half hour on Monday morning with Amber Graner of Linaro. This was my first experience with G+ On Air, a mechanism for conducting video interviews over G+ Hangouts and record them for rebroadcast over YouTube later.
I've known Amber for nearly 4 years now, and she's such a warm, fun, and energetic person. I'm always humbled by her interest and willingness to branch out and learn about new technologies. She's truly an inspiration for us all :-)
In this interview, we talked about Linaro, ARM, Android, Ubuntu, Cloud, Gazzang, Encryption, eCryptfs, and (of course) Byobu :-) Enjoy!
:-Dustin
I've known Amber for nearly 4 years now, and she's such a warm, fun, and energetic person. I'm always humbled by her interest and willingness to branch out and learn about new technologies. She's truly an inspiration for us all :-)
In this interview, we talked about Linaro, ARM, Android, Ubuntu, Cloud, Gazzang, Encryption, eCryptfs, and (of course) Byobu :-) Enjoy!
:-Dustin
A little while ago, I added a fun Easter Egg to Byobu, in honor of one of my favorite artists, Piet Mondrian.
All day today, you'll be able to ssh into a shared Byobu session in HP's OpenStack cloud and see the Easter Egg in action!
March 7, 2012 happens to be Piet Mondrian's 140th birthday!
For an engineer and a scientist, I'm probably more of an art lover than most. I studied art history a bit in college, and even worked for the art department at Texas A&M University, which earned me a few free art classes over my usual engineering workload. I generally seek out both boutique art galleries and the big ones when traveling. All that said, Piet Mondrian is one of my favorite artists. His lines, colors, proportions, precision, balance, symmetry and asymmetry speak to a part of my soul that's hard to explain.
You might recognize some of these, as his most recognizable works:
In the spirit of Google Doodles, I thought I'd call attention to Byobu's Piet Mondrian function quietly nestled in Byobu. If you're running byobu in tmux mode (which you can launch with byobu-tmux), then you can simply press ctrl-alt-F12 in most environments (my sympathies if you're off the beaten path). You should see something like this:
This is the output of the 116 line shell script found at /usr/lib/byobu/include/mondrian. I don't think I've ever narrated my source code in my blog before, but I reckon I will do so here. It's not that I'm particularly proud of the implementation or the code, but rather that I'd like to explain the algorithm I have applied to Mondrian's art :-)
:-Dustin
All day today, you'll be able to ssh into a shared Byobu session in HP's OpenStack cloud and see the Easter Egg in action!
- ssh guest@mondrian.byobu.co
March 7, 2012 happens to be Piet Mondrian's 140th birthday!
For an engineer and a scientist, I'm probably more of an art lover than most. I studied art history a bit in college, and even worked for the art department at Texas A&M University, which earned me a few free art classes over my usual engineering workload. I generally seek out both boutique art galleries and the big ones when traveling. All that said, Piet Mondrian is one of my favorite artists. His lines, colors, proportions, precision, balance, symmetry and asymmetry speak to a part of my soul that's hard to explain.
You might recognize some of these, as his most recognizable works:
In the spirit of Google Doodles, I thought I'd call attention to Byobu's Piet Mondrian function quietly nestled in Byobu. If you're running byobu in tmux mode (which you can launch with byobu-tmux), then you can simply press ctrl-alt-F12 in most environments (my sympathies if you're off the beaten path). You should see something like this:
This is the output of the 116 line shell script found at /usr/lib/byobu/include/mondrian. I don't think I've ever narrated my source code in my blog before, but I reckon I will do so here. It's not that I'm particularly proud of the implementation or the code, but rather that I'd like to explain the algorithm I have applied to Mondrian's art :-)
- First, it hardcodes the color values of red, yellow, blue, and white from a 256 color palette. To do so, I used the color picker utility in gimp against Mondrian's Composition 10, 1939–1942.
- Next, it chooses some random number of rectangles between 10 and 40, which seemed to me to be fairly representative of most of Mondrian's geometric compositions.
- Then, from the randomly numbered rectangles, 3 are chosen -- 1 for red, 1 for yellow, and 1 for blue. I fully well appreciate that Mondrian put far more thought into what regions where colored, and which color, how much, with great precision and balance. I hope one day to decode his algorithm, but for now, my code simple chooses these at random.
- Now, tmux does a bit of the hard work for us, creating a new window in byobu, sets the background to our particular white, and splitting that window into a number of panes matching our randomly chosen amount.
- Finally, one pane each is colored red, yellow, and blue. Note that tmux does not support the classic UNIX terminal feature bce (background color erase), so instead, we use a one-line perl script to color each pane.
And there you have it! A random approximation of a Mondrian composition right there in your terminal!
Here's a few images produced by implementation of the algorithm above...
Now surely I'm not the first programmer/art-lover who has tried to reproduce Mondrian masterpieces in source code?
Hardly!!! :-)
In 1966, Michael Noll of Bell Labs produced this incredibly interesting paper and research project, where his computer program produced a reproduction of a Mondrian work (Composition with Lines, 1917), and presented it to 100 human subjects.
Only 28% of the human subjects were able to determine the computer generated replica. Somehow, 59% preferred the computer generated piece! (I am not in that majority.)
So it seems I'm hardly the first, and Mondrian has been piquing the interest of computer programmers for at least 50 years. To the contrary, it seems more likely to me that Mondrian was so far ahead of his time that he may have presupposed the precision and mathematics of computer generated images.
Hats off to you, Mondrian. Rest assured that many, many people continue to enjoy your work, and it continues to inspire artists and engineers alike!
:-Dustin
I'm quite proud to say that the pbput and pbget utilities have graduated from their incubating home in the bikeshed package and have made it into the more ubiquitous pastebinit package. A huge thanks to Stéphane Graber for merging these useful utilities!
As of Ubuntu 12.04 LTS (precise), anywhere you have the pastebinit command, you'll also have the ability to pbput and pbget data.
"And so what does that mean?" you ask :-)
- Have you ever wanted to just download some raw data, maybe some code or text, from a pastebin?
- Or have you ever needed to pass someone some raw data, perhaps binary, perhaps text, perhaps an entire directory tree, and just wanted to give them a URL?
- And have you ever wanted to do that totally securely?
Try this on an up-to-date Ubuntu 12.04 system:
$ pbget http://pastebin.com/ut6MHMWJ usr/bin/pbput INFO: Output is in [/tmp/pbget.60RezTX8QF]
$ bzr branch lp:pastebinit Branched 150 revisions. $ pbput pastebinit http://pastebin.com/8ReP9QLV
Note that you (the poster) might have to visit that url once manually and enter a captcha, to convince pastebin.com that you're not a bot.
But you can now:pbget http://pastebin.com/8ReP9QLV
Try it!
$ pbputs supersecret.txt stgraber@stgraber.org
You can try downloading that one, but it's encrypted with Stephan's public key, so he's the only one who can make any sense out of it!
It's really quite simple, actually... pbput, pbget, and pbputs are all symlinks to a single shell script that at /usr/bin/pbput, which is only 74 lines of code!
When you pbput data, it's bundled into an archive using tar, optionally encrypted with gpg, compressed using lzma, encoded using base64, and then posted to a pastebin using pastebinit.
And a pbget is just unwrapping each of those, retrieving it from the pastebin using wget, decoding, decompressing it, optionally decrypting it, and exploding the archive.
If the data was posted using standard in, the output comes back in standard out. And if the data was posted as a file or directory, it gets dumped to a new temporary directory created by mktemp.
Slick, huh? :-) Give it a try and let me know what you think!!!
:-Dustin
Winter time is road race season in Austin, Texas. The weather is cool and sunny, and it's actually quite a nice time to venture out for some long runs. I've run three races in Austin so far this year.
Austin Gorilla Run 5k
Former Gazzanger Unji Udeshi was one of the organizers and race chairs for the Austin Gorilla Run, which was truly one of the most unique races I've ever experienced.
Proceeds from the race directly benefit Ugandans, Rwandans, and citizens of the Democratic Republic of Congo in veterinary educational training, with the end goal of protecting the highly endangered Mountain Gorillas in Africa. In 1987 there were only 248 mountain gorillas alive in the world, but through the veterinary and conservation efforts of the MGCF, the population has nearly tripled to 720.Over 1200 of us dressed up in full Gorilla suits to "run" a 5K (for a very loose definition of "run"). Mostly we just goofed off and had a really good time.
Here's a quick pose in the Gazzang parking lot before the race....
Being the good gorillas were were, Larry (Gazzang CEO) and I took a break from the race to a little climbing.
I brought my dogs, Tiger and Aggie, who were a little skittish of all the goofball gorillas at first! They're really well trained dogs, and are running up to 15 miles with me at a time now. Kim took a ton of awesome pictures.
And our crew, unmasked and post race enjoying the Silverback Pale Ale from Austin's own Thirsty Planet Brewery... Unji, Larry Warnock, Liz Britain, Catelin Warnock, Dustin, Tiger, and Aggie!
Austin 3M Half Marathon
A few weeks later, I shucked the gorilla suit and ran Austin's 3M Half Marathon. This is quite simply my favorite race! This was my 4th running of the race. I think I actually first fell in love with running at the finish line of this race in 2004, which I finished in a blazing (for me, anyway) time of 1:48:14!
Well, I was a little shy of my personal best time, but I did finish in 1:59:07, which beat my goal of 2 hours.
I was proud of my time, but I was far more proud of my splits, actually. Almost perfectly negative splits! Negative splits mean that you accelerate your pace throughout the race. It takes quite a bit of discipline to perfect, and this is about as close as I've ever come:

Mile 1 9:56 Min/Mi Mile 2 9:30 Min/Mi Mile 3 9:38 Min/Mi Mile 4 9:29 Min/Mi Mile 5 9:21 Min/Mi Mile 6 9:07 Min/Mi Mile 7 8:58 Min/Mi Mile 8 8:46 Min/Mi Mile 9 8:37 Min/Mi Mile 10 8:44 Min/Mi Mile 11 8:35 Min/Mi Mile 12 8:27 Min/Mi Mile 13 8:18 Min/Mi Mile 13.1 7:53 Min/Mi
Austin Livestrong Half Marathon
This past Sunday, I ran the Half Marathon portion of Austin's Livestrong race, benefiting Austin native Lance Armstrong's awesome cancer foundation. Another beautiful, perfect morning for a run!
As usual, I wore my I'm Running Ubuntu shirt. As usual, it evokes a response, Austin having such a healthy tech community. Interestingly, though, this time I heard a lot more "Ubuntu...Linux...yeah!" catcalls than ever before. I liked that a lot, as it really showed how many actually recognized Ubuntu as a Linux distribution, rather than just a fun word to yell at someone running past them :-)
I beat my 3M time by 28 seconds, finishing in 1:58:39. Interestingly, though, this time I did not run negative splits. My splits were actually pretty flat, with my fastest mile (8:47) less than 30 seconds different from my slowest mile (9:16), which is fairly tight, compared to the 1m40s difference between my fastest and slowest mile in the 3M. It's a different style of running, trying to bang out the same pace mile after mile, than the negative split approach.

Mile 1 8:59 Min/Mi Mile 2 8:56 Min/Mi Mile 3 9:10 Min/Mi Mile 4 9:07 Min/Mi Mile 5 9:02 Min/Mi Mile 6 9:08 Min/Mi Mile 7 8:54 Min/Mi Mile 8 8:39 Min/Mi Mile 9 8:48 Min/Mi Mile 10 8:50 Min/Mi Mile 11 9:04 Min/Mi Mile 12 8:47 Min/Mi Mile 13 9:16 Min/Mi Mile 13.1 7:40 Min/Mi
So what's the point of this post? Get out there and get some exercise! Support a charity and run a race or two! Support your own cause (Ubuntu/Linux for me) by wearing a shirt and showing some pride for something you believe in!
:-Dustin
I have interviewed hundreds of candidates and had the delight of hiring dozens of Linux and open source developers, engineers, and interns over the last 10 years -- at IBM, Canonical, and now Gazzang. The most recent one signed his contract this morning, in fact! It's quite a rush to bring new talent into a small team.
Linux jobs are actually hotter now than ever before! The Wall Street Journal picked this up recently. And while HostGator has been running giant billboards throughout Austin for at least 2 years now, which plainly asks, "Do you know Linux? We're hiring!" -- I was impressed to see that they had the same billboard scaled up to 3-stories in height right in Times Square, New York.
Given that my own well being is so deeply invested in being an open source hacker, I selfishly love seeing the Linux and open source job market expanding so vibrantly.
From the interviewer's chair, however, my poking and prodding of a given candidate's Linux skills have changed a bit over those 10 years. I'm often looking for the candidate's inquisitive nature. I want to know how interested they really are in going down the rabbit hole.
- 10 years ago, you had to know how to deploy and run a LAMP stack, and hack your way around Apache, MySQL, PostgreSQL, PHP, Perl, and Python. You would shriek in horror at bad HTML and CSS and could really make a website sing with a little Javascript.
- 9 years ago, I wanted to see someone who regularly compiled their own upstream kernel, maybe tweaked a few configuration options on or off just for fun. Bonus points for each additional software package you compiled from source. Gentoo users were shoe-ins.
- 8 years ago, I wanted to talk to people who were sending and receiving PGP or GPG signed, encrypted email. I was delighted by those who had at least 1024D keys!
- 7 years ago, I found users who were willing and able to tweak their SELinux policies and AppArmor profiles absolutely intriguing. If you were running SELinux in enforcing mode on a production system, well, damn, you probably got the job!
- 6 years ago, I wanted someone who had built their own Beowulf cluster, for fun, over the weekend. If not Beowulf, then some sort of cluster computing. Maybe Condor, or MPICH.
- 5 years ago, I'd structure some conversation around reinstalling dd-wrt or openwrt firmware on routers. What serious hackers would run stock router firmware?!?
- 4 years ago, I needed you to have experience with open source virtualization, such as KVM, Xen, and QEMU. Oh, and surely you're running MythTV on a few computers around the house, right?
- 3 years ago, it was all about developers who had Launchpad or Github accounts, had written some open source software and packaged it for Ubuntu or Fedora. While your friends update one other over Facebook, you're pushing updates over git and bzr.
- 2 years ago, I was interested in people who had built or deployed their own cloud infrastructure using Eucalyptus or OpenStack.
- And last year, it was all about the move from traditional configuration management to cloud-ready service orchestration; experience with Puppet/Chef/Juju were golden.
But you need to be on the cusp of what's next. I'm hoping you've rooted your phone, jacked your bootloader, and installed a CyanogenMod of your choosing -- at least on your phone at least if not your tablet and e-Reader too! Hopefully you've tried out this big data business and threw together a map-reduce Hadoop job or two, just for grins. Clearly you'll have a strong, informed opinions on Unity vs. Gnome3, upstart vs. systemd, and the UEFI secure boot mess.
Oh, and big bonus points if you read my blog. But you knew that already. If you read my blog, you've seen this. And this is what we'll talk about in our interview :-)
:-Dustin
ecryptfs-utils-96 has been released, with upstream tarballs (and signatures) available on Launchpad at:
And now in the Ubuntu precise development release.
Special thanks to first time contributors Colin King and Eddie Garcia!
[ Dustin Kirkland ]
* CONTRIBUTING:
- added a new file to describe how to contribute to ecryptfs
* === added directory img/old, img/old/ecryptfs_14.png,
img/old/ecryptfs_192.png, img/old/ecryptfs_64.png:
- saving the old logos/branding for posterity
* debian/copyright, img/COPYING:
- added CC-by-SA 3.0 license
- use the text version
* img/ecryptfs_14.png, img/ecryptfs_192.png, img/ecryptfs_64.png:
- added scaled copies of images used for Launchpad.net branding
* src/utils/ecryptfs-recover-private: LP: #847505
- add an option to allow user to enter the mount passphrase,
in case they've recorded that, but forgotten their login
passphrase
* src/libecryptfs/sysfs.c: LP: #802197
- default sysfs to /sys, if not found in /etc/mtab
- it seems that reading /etc/mtab for this is outdated
- ensure that ecryptfs works even if there is no sysfs entry
in /etc/mtab
* src/key_mod/ecryptfs_key_mod_tspi.c: LP: #462225
- fix TPM and string_to_uuid 64bits issue
- thanks to Janos for the patch
[ Tyler Hicks ]
* CONTRIBUTING:
- clarified how to contribute to the ecryptfs kernel module
* tests/lib/etl_funcs.sh:
- created eCryptfs test library of bash functions for use in test
cases and test harnesses
* test/etl_add_passphrase_key_to_keyring.c:
- created a C helper program to allow bash scripts to interface to
the libecryptfs function that adds passphrase-based keys to the
kernel keyring
* tests/kernel/tests.rc, tests/userspace/tests.rc:
- created a test case category files for test harnesses to source
when running testcases of a certain category (destructive, safe,
etc.)
* tests/run_tests.sh:
- created a test harness to run eCryptfs test cases
* tests/kernel/miscdev-bad-count.sh,
tests/kernel/miscdev-bad-count/test.c:
- created test case for miscdev issue reported to mailing list
* tests/kernel/lp-885744.sh:
- created test case for pathconf bug
* tests/kernel/lp-926292.sh:
- created test case for checking stale inode attrs after setxattr
* tests/new.sh:
- created new test case template to copy from
* tests/userspace/verify-passphrase-sig.sh,
tests/userspace/verify-passphrase-sig/test.c:
- created test case, for make check, to test the creation of
passphrase-based fekeks and signatures
* configure.ac, Makefile.am, tests/Makefile.am, tests/lib/Makefile.am,
tests/kernel/Makefile.am, tests/userspace/Makefile.am:
- updated and created autoconf/automake files to build the new tests
directory
- added make check target
[ Eddie Garcia ]
* img/*: LP: #907131
- contributing a new set of logos and branding under the CC-by-SA3.0
license
[ Colin King ]
* tests/kernel/extend-file-random.sh,
tests/kernel/extend-file-random/test.c:
- Test to randomly extend file size, read/write + unlink
* tests/kernel/trunc-file.sh, tests/kernel/trunc-file/test.c:
- Test to exercise file truncation
* tests/kernel/directory-concurrent.sh,
tests/kernel/directory-concurrent/test.c:
- test for directory creation/deletion races with multiple processes
* tests/kernel/file-concurrent.sh,
tests/kernel/file-concurrent/test.c:
- test for file creation/truncation/unlink races with multiple
processes
* tests/kernel/inotify.sh, tests/kernel/inotify/test.c:
- test for proper inotify support
* tests/kernel/mmap-dir.sh, tests/kernel/mmap-dir/test.c:
- test that directory files cannot be mmap'ed
* tests/kernel/read-dir.sh, tests/kernel/read-dir/test.c:
- test that read() on directory files returns the right error
* tests/kernel/setattr-flush-dirty.sh:
- test that the modified timestamp isn't clobbered in writeback
* tests/kernel/inode-race-stat.sh, tests/kernel/inode-race-stat/test.c:
- test for inode initialization race condition
-- Dustin Kirkland
:-Dustin
The Gazzang office at 502 Baylor Street in Austin, Texas is one of the destinations of the 2012 SXSW Startup Pub Crawl, on Thursday, March 8th.
Join us between 4 and 10 pm for an open house, drum circle, and some awesome live music from the Lost Pines bluegrass band! Please RSVP here. Come talk to us over free beer and food about Cloud security, data privacy, encryption, eCryptfs, key management, Linux, and Ubuntu. Meet the entire cast of the Sh*t IT Security Guys Say short film. And tap into the vibrant tech start-up culture that's rocking downtown Austin by day, juxtaposed against the awesome live music culture that rocks downtown Austin by night.
View Larger Map
Come get your bang on!
:-Dustin
We had a blast at the Gazzang offices last week shooting this fun video, Sh*t IT Security Guys Say. What a great way to kick back and have a little fun on a Friday afternoon ;-)
We worked with Austin filmmaker Brandon Stephens who took some time away from work on his feature film, Enemy of the Mind, to hack on this little project. Our CEO Larry Warnock (Mr. Backdoor) called the shots and our new Marketing Director, David Tishgart (Mr. Redbull) handled the script. Also featured in the short: Ben First (Marketing, aka Mr. Ruby), Liz Britain (Marketing, aka Ms. Slashdot), Rob Balena (Sales, aka Mr. Millennium Falcon), Sergio Pena (Mr. $*&%!#), Eddie Garcia (Engineering, aka Mr. IT), and I guess I'm Mr. Wingdings ;-)
As many of my fellow hackers, I predictably cringe when I watch a movie or a tv show and the hapless IT characters attempt to interface with a computer or discuss technology. The Matrix, The Net, Swordfish, whatever, it's all painful to hear. And funny enough, our little video is no different, and this time I actually share the blame :-) Most of our one-liners make no IT sense whatsoever. And while some of the one-liners I proposed made perfect IT/Security sense, but they just didn't play well on the screen.
In any case, for my hacker/dev/IT peeps, here's my full list of one-liners I proposed for our project:
I hope you enjoy watching it as much as we enjoyed making it!
Cheers!
:-Dustin
We worked with Austin filmmaker Brandon Stephens who took some time away from work on his feature film, Enemy of the Mind, to hack on this little project. Our CEO Larry Warnock (Mr. Backdoor) called the shots and our new Marketing Director, David Tishgart (Mr. Redbull) handled the script. Also featured in the short: Ben First (Marketing, aka Mr. Ruby), Liz Britain (Marketing, aka Ms. Slashdot), Rob Balena (Sales, aka Mr. Millennium Falcon), Sergio Pena (Mr. $*&%!#), Eddie Garcia (Engineering, aka Mr. IT), and I guess I'm Mr. Wingdings ;-)
As many of my fellow hackers, I predictably cringe when I watch a movie or a tv show and the hapless IT characters attempt to interface with a computer or discuss technology. The Matrix, The Net, Swordfish, whatever, it's all painful to hear. And funny enough, our little video is no different, and this time I actually share the blame :-) Most of our one-liners make no IT sense whatsoever. And while some of the one-liners I proposed made perfect IT/Security sense, but they just didn't play well on the screen.
In any case, for my hacker/dev/IT peeps, here's my full list of one-liners I proposed for our project:
- Right, RSA 4096 is definitely the way to go - Ubuntu or Fedora? - Did you read Bruce Schneier's post today? - Wow, check Slashdot! - Open a new terminal - Emacs or Vi? - Grab my public key - apt-get dist-upgrade - Sure, I encrypt my home directory - Hang on, I'm recompiling my kernel - PC Load letter???? The f*ck does that mean? - Yeah, I need to merge those changes - We're moving from MD5 to SHA512 hashes - Of course I've rooted my Android! - Chef or Puppet? - There's an XKCD about that :-) - Users, I swear...add it to the FAQ - Buffer overflow, uh oh... - Python or Perl? Ruby!?! -- you gotta be kidding me :-( - You don't have to forward me that email. I've already seen it. You don't use email encryption :-) - Would you sign my public key? - Fire up an instance in EC2 - My kernel oops'd - TCP or UDP? - There's not enough entropy on this friggin machine! - You haven't rooted your phone? - No open access points? I see 12 running WEP. Give me a minute... Okay, I'm in. - Where's your public key? - Drop that in a pastebin - Okay, I have it. What's your fingerprint? - Java or C++? - What do you think of Unity? - OpenStack or Eucalyptus? - Check StackExchange - Shit, not another core dump...
I hope you enjoy watching it as much as we enjoyed making it!
Cheers!
:-Dustin
I've made two pretty cool changes to the bootmail utility...
- Bootmail now sends a message on both boot, and shutdown, using an upstart job. Big thanks to Clint Byrum for a bit of help on that one!
- Bootmail has always sent GPG-signed email. But now, it will actually send GPG-encrypted email too! All you need to do is set the RECIPIENT_KEYID variable in /etc/bootmail/gpg.conf to your GPG key id, and bootmail will send you GPG encrypted AND signed boot and shutdown messages!
Now, perhaps you wondering why, or how one would use this...
Actually, I have all of my EC2 instances set to install and use bootmail. With this, I get an email when I start, reboot, and shutdown an instance. I find it helps me remember what instances I have have running at any one time, by keeping the email in my Inbox (I practice Inbox Zero).
Moreover, I use cr-gpg with Gmail, so that I can read GPG encrypted email and verify GPG signatures within my Gmail web interface. Check out this post for more information on how to set that up!
:-Dustin
My Google Alerts and IRC highlights have been firing almost daily with references to ssh-import-id, a handy utility I co-authored with my buddy Scott Moser a couple of years ago.
That's quite exciting to me actually, as I find the tool really, really useful, and I wish more people knew about it. I tried in vain to contribute it to the OpenSSH project, as a complement to ssh-copy-id, but it never landed there. Oh well. There's rarely a day that goes by that I don't use it, actually. I frequently use virtual machines in public clouds; usually EC2 but not exclusively. I often want to share that machine with a colleague. Rather than sharing a password, I simply:
$ ssh-import-id edygarcia sergio-pena INFO: Successfully authorized [edygarcia] INFO: Successfully authorized [sergio-pena]
And now, I just share the hostname or IP with Eddie and Sergio and they can SSH into this machine and authenticate using their SSH keypair.
Reviewing what actually happened...
Note that I've uploaded a couple of minor fixes to ssh-import-id in the last 2 weeks that more accurately validates the contents of the public keys retrieved from Launchpad (thanks, Soren for one of those).Reviewing what actually happened...
- ssh-import-id looped over each of the arguments on the command line, which are typically Launchpad user IDs
- Fetched each user's public keys from https://launchpad.net/~/+sshkeys
- Validated each key's syntax
- And concatenated the results to the local ~/.ssh/authorized_keys file
The methodology is secure in that:
- I know what each of my colleague's Launchpad IDs are, and that's easier to remember than their SSH fingerprints
- I know that they had to authenticate with Launchpad to upload their SSH public keys
- I know that the communication between my system and Launchpad was authenticated and private as it used https with a valid SSL certificate
You can always grab the latest version from ppa:launchpad/ssh-import-id, though perhaps I should SRU some of these changes to Lucid/Natty/Oneiric. Anyone willing to test and validate those SRUs, if I propose and upload them?
Cheers,
:-Dustin
The feedback on eCryptfs' new mascot and logo has been just awesome :-) At the bottom of the last post, we opened a call for name suggestions.
As it turns out, my mom reads my blog from time to time, and with that post, she saw an exercise and opportunity for one of her high school classes. She tasked them with researching eCryptfs and the reasoning behind the new logo. As an extra credit assignment, they were invited to propose names for our tenacious new mascot. These are so much fun, we'll share all of them with you now!
Leading by example, Mrs. Kirkland (aka, my Mom) writes:
One of her students, Christopher Bordelon suggests:
Another of her students, Kristin Seneca, had a different idea:
:-Dustin
As it turns out, my mom reads my blog from time to time, and with that post, she saw an exercise and opportunity for one of her high school classes. She tasked them with researching eCryptfs and the reasoning behind the new logo. As an extra credit assignment, they were invited to propose names for our tenacious new mascot. These are so much fun, we'll share all of them with you now!
Leading by example, Mrs. Kirkland (aka, my Mom) writes:
I think you should call him...Honey, but play on the "e" ... and the quotes actually look like claws. Hon"e"y. The "e" fits perfectly in the hand. Plus, when he is standing, he really forms an H. I am no artist but I am sure you can see the H in its body. I know you are just looking for a name... but I wanted to show you why I thought the name fit.Thanks, Mom! The quotes around the "e" do look like claws, and it does refer back to the "e" in eCryptfs.
One of her students, Christopher Bordelon suggests:
I think the name Henry would be the perfect name for the honey badger. The name Henry refers to the noble politician Henry Clay. Henry led a defensive army when it came to the war of 1812. By naming the honey badger Henry it will set the tone of the project to have a well strengthened background. By being a member of the war hawks, Henry was always ready for a battle. He knew he would not be able to be defeated. I feel this is a great name for the honey badger because Henry Clay is a well known political leader in United States history. When people hear this name they will be drawn to it because of the historical accomplishments of Henry Clay. Henry was also known for living a very long time. By Henry living a long time this means that the project will be around for a long time too. He outlived the majority of his fellow leaders. By using his historical context the project will have a face that will never be forgotten. The project will have a mascot with a defensive output that will make customers want to bring their services there.Thanks, Christopher. We just loved the historical references!
Another of her students, Kristin Seneca, had a different idea:
I really appreciate the new logo; it is a major upgrade to the last. It has more vibrant colors and an all around better design. It isn’t as plain or boring as the key overlapping the pie chart. With a great logo, the project should want a great name to go along with it. This is why Boris the Badger would be a perfect name for your project's new honey badger logo. Boris the Badger would be a great name for eCryptfs' new honey badger logo. This name has significance to the honey badger. A honey badger is fierce and strong, much like what the name means. According to 2000names.com, the name Boris means a battle or fighter. It was derived from the name Bogoris, meaning small. Since the honey badger is one of the smallest and fiercest warrior animals around, I believe that this name definitely suits the eCryptfs honey badger logo. He certainly looks fierce! eCryptfs is a great project and should have a really awesome name to go along with their new logo. Boris the Badger would be the best name for the honey badger because it represents the idea of a warrior or fierce battle. The honey badger is a ferocious warrior animal and will go to great lengths to defend itself, much like the project will go to great lengths to protect files and software.But our unanimous favorite here at the Gazzang offices was from Mrs. Kirkland's student Blane Palazzo, who wrote:
Reviewing possible names for the new honey badger design, I've decided that "Harvey, the Honey Badger" sounds the best. Not only is this name appropriate because of its beginning with an "H," but the name "Harvey" also means, "battle worthy." When determining which names would be possible for the new logo's design, I kept in mind that defense was a major part of choosing the "fitting" name. Having a defensive name, while at the same time establishing trust, was very important. Not only does the name "Harvey" build trust, it also has a background that allows for an understanding that he "means business." Like a true honey badger, he "takes what's his!" Paul Harvey is famously known for his "Rest of the Story" segment, which was watched by millions until his death at the age of 90. The name Harvey can be related to many things, including the stamina held by Paul Harvey Himself, and the impact of his life felt by millions of Americans. This "Harvey" could be looked to for the "rest of the story" when it comes to protecting software and programs being used. The finality of such a name could be applied to the logo of a project that protects and defends. eCryptfs is software that thrives on protection, and as mentioned in the blog, is a "vibrant and open-sourced" project. Having a fitting name is appropriate when it comes to any new idea or project. In order to be remembered as a project that strives for excellence, the logo has to be focused on and perfected. The name "Harvey" is a name that is not easily forgotten, and provides a significant enough meaning to the new logo.Well done, Blane. We, here at the Gazzang offices, absolutely love it! And so, I'm pleased to introduce Harvey, the Honey Badger!
:-Dustin
Next week is yet another installment of the Ubuntu Developer Week education series. If you been wanting to get involved in Ubuntu or Free Software development, or perhaps just hone your existing skill set, please join us in #ubuntu-classroom on irc.freenode.net Tuesday/Wednesday/Thursday next week. Check the schedule, and hopefully you'll find something that piques your interest.
I'm pleased to note that each member of Gazzang's engineering team will be attending at least two sessions per day! With today's shrinking education budgets, perhaps you can convince your employer to let you attend some excellent, continuing technical education at no additional expense to them. Should be an easy sell ;-)
I will be leading an hour long session on Thursday, February 2nd from 18:30-19:30 UTC -- that's 12:30pm-1:30pm in my local Central Standard Time. My session is on Pair Programming and Code Review in the Cloud.
I've used Pair Programming for years -- ever since I was introduced to the Extreme Programming methodologies in the Tivoli Bootcamp as an intern in 2000. Pair Programming is a relatively simple concept -- two people, one keyboard and screen. It's a great way to teach, learn, and review code. Back then, we were a couple of developers, sitting side by side in the Arboretum in Austin, Texas.
But times have changed! It's highly unlikely that I'm sitting next to the person I need to pair program with. Rather, they're sitting somewhere far across the world.
Welcome to 2012! I'll spend an hour, sharing a screen with a few dozen of you, showing you how some Ubuntu developers work with colleagues across the world, through the Cloud!
I'm going to fire up Amazon's largest instance splurging $2.10 an hour for 60GB of RAM and 16 CPUs. You hardly need this, but I thought it would be fun. If nothing else, drop in and have a look at what this kind of hardware looks like :-) We'll import SSH public keys and users will SSH into a shared Byobu/Tmux session, where I'll demonstrate how to make the most use of our screen resources. We'll split the window horizontally and vertically, look at code side by side, while still tailing log files and conducting builds.
Prerequisites:
As a teaser, here's what my terminal currently looks like, and a taste of where we'll get to, in this session. This session can be detached and reattached later, or even by multiple users at the same time.
I have 8 panes open in a single Byobu session. The first two windows have some eCryptfs source code (mount.ecryptfs_private.c and pam_ecryptfs.c). Next, I have a little test window where I'm checking my changes, with a foobar@x220 user logged in, and it's just above a small window where I'm reading some manpage documentation. To the far right, I'm re-compiling the new ecryptfs sources. Across the bottom, I'm tailing 4 log files (kern.log, dmesg, auth.log, syslog). Note that I'm using tail -f and ccze for colorized log files -- which really helps separate warnings and errors (in warm reds and yellows) from the rest (in cool blues and greens).
Hope to Pair Program with you on Thursday!
Cheers,
:-Dustin
I'm pleased to note that each member of Gazzang's engineering team will be attending at least two sessions per day! With today's shrinking education budgets, perhaps you can convince your employer to let you attend some excellent, continuing technical education at no additional expense to them. Should be an easy sell ;-)
I will be leading an hour long session on Thursday, February 2nd from 18:30-19:30 UTC -- that's 12:30pm-1:30pm in my local Central Standard Time. My session is on Pair Programming and Code Review in the Cloud.
I've used Pair Programming for years -- ever since I was introduced to the Extreme Programming methodologies in the Tivoli Bootcamp as an intern in 2000. Pair Programming is a relatively simple concept -- two people, one keyboard and screen. It's a great way to teach, learn, and review code. Back then, we were a couple of developers, sitting side by side in the Arboretum in Austin, Texas.
But times have changed! It's highly unlikely that I'm sitting next to the person I need to pair program with. Rather, they're sitting somewhere far across the world.
Welcome to 2012! I'll spend an hour, sharing a screen with a few dozen of you, showing you how some Ubuntu developers work with colleagues across the world, through the Cloud!
I'm going to fire up Amazon's largest instance splurging $2.10 an hour for 60GB of RAM and 16 CPUs. You hardly need this, but I thought it would be fun. If nothing else, drop in and have a look at what this kind of hardware looks like :-) We'll import SSH public keys and users will SSH into a shared Byobu/Tmux session, where I'll demonstrate how to make the most use of our screen resources. We'll split the window horizontally and vertically, look at code side by side, while still tailing log files and conducting builds.
Prerequisites:
- A terminal and an SSH client with Internet access
And to maximize your experience:
- Please run your terminal/SSH client maximized/full-screen
- I'll open up the classroom IRC channel in there, which you'll be able to read
- Open an account at Launchpad.net and add your public SSH keys
- Print out a copy of the Byobu keyboard shortcuts for quick reference
As a teaser, here's what my terminal currently looks like, and a taste of where we'll get to, in this session. This session can be detached and reattached later, or even by multiple users at the same time.
I have 8 panes open in a single Byobu session. The first two windows have some eCryptfs source code (mount.ecryptfs_private.c and pam_ecryptfs.c). Next, I have a little test window where I'm checking my changes, with a foobar@x220 user logged in, and it's just above a small window where I'm reading some manpage documentation. To the far right, I'm re-compiling the new ecryptfs sources. Across the bottom, I'm tailing 4 log files (kern.log, dmesg, auth.log, syslog). Note that I'm using tail -f and ccze for colorized log files -- which really helps separate warnings and errors (in warm reds and yellows) from the rest (in cool blues and greens).
Hope to Pair Program with you on Thursday!
Cheers,
:-Dustin
I think it's important for everyone to understand what's at risk here today. This is a must-see, and well worth 7 minutes of your time...
Dustin
Dustin
I've been a Launchpad.net member since 2006-10-11, when I first created an account to add some debugging information and submit a patch to a bug affecting the xserver on iMac G3s and the Ubuntu 6.06 PowerPC LiveCD, which my wife, Kim, used in her 4th grade classroom. Wow, those were the days! I see that that bug is still open :-) I can't imagine that hardware is even functional anymore....is it?
I was thoroughly impressed with the shear elegance, look, feel, and usability of Launchpad.net. I was a long time user of SourceForge.net and Bugzilla, and had brushed by at least a dozen other bug trackers. No other bug tracker or source code system could hold a candle to Launchpad, in my opinion.
In my ~4 years at Canonical, Launchpad.net and Bazaar became the cornerstone and foundation of my day to day development and productivity. I was absolutely thrilled when Launchpad was open sourced (to relatively little fanfare, sadly).
I've filed and fixed a few minor issues, and worked around some others, and leveraged Launchpad for tools of my own (like ssh-import-id). And today, I still think Launchpad.net and Bazaar are the best combination of bug tracking, source code management, binary package builders, team building, blueprint tracking out there!
I continue to use Launchpad and Bazaar to manage more than two dozen open source projects. And now, we're also using commercial Launchpad here at Gazzang now, actively committing to both public and private projects every day.
This introduced a new challenge, for me, though. I want to make ensure that my commits to Bazaar when I'm "at the office" and working on Gazzang projects are correctly credited to my work email address and identity, and otherwise, they're credited to my personal email address.
This email address is stored in ~/.bazaar/bazzar.conf. For me, the logic is pretty easy... I generally work from the office where we have a (mostly) static IP address. I simply run a cronjob every five minutes that checks my external IP address, and updates ~/.bazaar/bazzar.conf accordingly. Your logic might differ (perhaps time of day, etc.). Does anyone know how I might perhaps hook bzr to check the project's name at commit time? Also, any ideas about how to update $DEBEMAIL in a similar manner? It's an environment variable, so it's pretty hard/impossible to update that in all of my shells and byobu sessions/windows/splits, and the Debian maintainer rejected a few requests to support $DEBEMAIL in ~/.devscripts. Other ideas?
My script currently looks something like this:
#!/bin/sh # $HOME/bin/update-email
work_email="dustin.kirkland@work.example.com"
home_email="dustin@home.example.com"
work_ip="10.9.8.7"
current_ip=$(wget -q -O- http://v4.ipv6-test.com/api/myip.php 2>/dev/null)
if [ "$current_ip" = "$work_ip" ]; then
sed -i -e "s/<.*>/<$work_email>/g" $HOME/.bazaar/bazaar.conf
else
sed -i -e "s/<.*>/<$home_email>/g" $HOME/.bazaar/bazaar.conf
fi
And it runs in this cronjob:
*/5 * * * * run-one $HOME/bin/update-email
Suggestions for improvement? Leave a note!
Enjoy!
:-Dustin






Verzeichnis















































