|
|
 The Thirds: Sleeping, Working, and You!
I’ve come to think about life in terms of “The Thirds.” Culturally we’re told that 8 hours of sleep constitutes a good night sleep, and businesses generally operate within an 8 hour work day, which leaves 8 hours for the rest of life to fit into. It’s no secret, but just in case you’re not with me: 24 divided by 8 = 3, which means our days are divided into thirds and the philosophy of the “micro = macro” equation brings us to a simple logical conclusion that our lives – as a whole – are therefore divided by “The Thirds.”
There’s the Bait… Now the Switch:
The division isn’t quite that simple though because even though 24 hours is simply divided into “The Thirds” by 8 hours three times, we still have this mysterious weekly remainder of 48 hours – more commonly referred to as: The Weekend. However, I consider this “The Remainder” because it’s the time we use to fit in all the remaining things necessary for a complete existence that didn’t fit into our daily thirds. This could be more work, more sleep, or more time for our selves.
The debate over whether or not it’s healthy to compartmentalize your life can go back and forth, but through my work as a keyboard & mouse professional I know that it’s not healthy to sit our bodies in front of a computer for more than 5 consecutive hours per day, let alone 8 hours! This recent theory of compartmentalizing my day into “The Thirds” has helped me stay aware of how much time I’m spending in front of the computer. There’s a great article I was sent last week called: You, Unplugged. In this article, a 2002 study at Tokyo’s Chiba University is mentioned as concluding:
“… workers who spent more than five consecutive hours in front of a computer screen experienced problems ranging from headaches, eyestrain and stiff shoulders to depression, anxiety, fatigue and sleep disturbances.”
This is not news to me, just a really great reminder. This article was delivered to me at the right time. Over the past few months I’ve been trying to make a concerted effort to intertwine the two thirds of my day that aren’t spent sleeping, in an effort to avoid burn-out and health problems later in life, caused by spending too many consecutive hours in front of the keyboard & mouse (trackpads count too!).
Interconnecting my two waking-hour thirds also helps to avoid the territorial anxiety I feel when one inevitably encroaches upon the other. If I put too much stock into the idea that my “Working Third” is spent working and “My Third” is spent not working, I’m just asking for anxiety and/or less time for my “Sleeping Third.” Life is entirely too dynamic for this kind of thinking.
Like any shift in habit, this is an ever-evolving process but so far I’m enjoying it. At NetCrafters, we use a tool called: The Emergent Task Timer (I call them bubble sheets because of the little bubbles you fill in to track your time) which is an amazing aid for keeping track of where you’re spending your working time during the day. It’s dynamic enough that when used properly it’s easy to track your time even on a day when you might work 3 hours here, 2 hours there, a long lunch, then a few hours in the evening. With the bubble sheets there’s no anxiety if I decide to go for a walk at 2 o’clock (with my cell phone of course.. just in case!) because I know I won’t lose track of my “Working Third” when I decide to have a piece of “My Third” pie in the morning or early afternoon.
The Hook:
Don’t be too strict. Stopping points are everything. Just because I’ve hit my 8 hours doesn’t mean I have to stop right then and there. I may need another hour to get to a good stopping point for my “Working Third” so I can move cleanly into a “My Third” activity. This works both ways though and the reverse is much harder to slide within our culture. You may have only spent 7 hours on the “Working Third” today, but you’re at an excellent stopping point and you know that the next things on your list will take you past your 8 hours to get to the next good stopping point. It’s okay to stop at 7 hours or even 6.5!
Everything always balances out in “The Remainder,” if you’re mindful about it. When thinking about my available time in between planned activities on the weekend, I try to take a look at how much time I’ve spent during “My Thirds” for the week so I can catch up on sleep, work or play time.
I tend to read a lot of non-fiction. Whether it be a technical tome, some over-worked physicists newest theory, or books related to the crises of our time (food, water, and shelter).
That being said, whenever I catch myself avoiding a daily read it’s normally because I’ve been reading too much non-fiction. I then immediately switch to fiction to quench my desire for literary immersion. The most recent occurrence of this took me back to J.K. Rowling’s “Harry Potter” septology.
My point… right.
A few nights ago I was working late on the Paradigm API code – which will be used to power the new cincy.com and currently drives the pgcincinnati.com website. It had been a long day of coding and when I tried to lay in bed I just kept seeing lines of code flash past my eyes. Trust me, it’s nothing like counting sheep!
 Multi-tasking
I had just finished the third “Harry Potter” book and, while I was reluctant to start a new book at 2am… it’s Harry Potter! I only had to read the first chapter though to receive my inspiration. Most likely due to my extremely hyper mental activity… I could see between the lines. I was able to relate with the baffling number of characters and plots on plots under plots. For the first time in my life I realized that web applications programming isn’t much different than writing a novel. Juggling thousands of variables, objects, functions, and conditions of a program. Along with the syntax for the various languages utilized to connect all the dots.
The things we are creating now at NetCrafters are cutting-edge. This is no doubt a product of the industry. However, the Jasmine CMS (Content Management Sytem) and Paradigm API (Application Programming Interface) running on Amazon EC2 (Elastic Computing Cloud) and Google App Engine respectively, is the most advanced and interconnected project I’ve every worked on.
Creating these tools (plots) using all of the different programming languages and platforms (characters) involved, yet having them talk to each other like their in the same room (dialogue), feels like my defining moment! I’ve written a lot of programs and applications over the last 20 years (unpublished stories). A large majority of them are running on giant servers, tucked-away behind expensive firewalls in hospitals and mental health facilities all around the country. Whereas hundreds have dissolved, and still more are archived… just in case.
I’ve always wanted to be a writer. It turns out I already am one, I just write in the language of machines instead of humans. I attribute J.K. Rowling with a few other things in my life as well, but this time, the first chapter of “Harry Potter and the Goblet of Fire” was the vessel. I can now move forward with my work and let the anxiety of, “When will I just sit down and write!” dissolve.
Now is my moment, I love what I do and what I’m doing… it’s time to be published!
 (Shakespeare photo courtesy of Wikipedia)
Boy do I love a blank canvas!
That’s what NetCrafters has been for me over the past year. I came from a budding 8-year career working with closed systems that were purposely isolated from the Internet for security reasons. I worked on servers across the country that housed clinical information for millions of people. I was always working within very strict guidelines and always with proprietary systems which yielded zero results for the prized “ask Google” solution we’ve all come to rely on.
Now I’m on the cutting edge of technology in every way. The tools we’re implementing at NetCrafters are easily available and not a single one comes packaged on a disk, or inside a box, wrapped with cellophane. Everything can be downloaded, learned without a classroom, and in most cases without a visit to the book store! Every day I read my carefully selected RSS feeds for the latest updates on many different fronts. Each and every day something amazes me. Think about that… Every Day!
This correlates to a high probability that each and every day my understanding of the tech soup I’m swimming in will change. This doesn’t come without some serious challenges, of course. One of which being the urge to go backwards. The thousands of lines of code for our Jasmine CMS tool is constantly swimming in my mind. Each time I discover something new I immediately start a cranial search for applications of this newly minted puzzle piece… “I know this will fit somewhere.”
The challenge comes with deciding where the line is. At what point does going back and updating old methods become counter-productive? They will eventually need to be updated – undoubtedly – but they’re working now. Nobody is complaining about them. In fact as far as everyone who isn’t as intimately familiar with the code is concerned, everything is working great! But now I’m waking up in the morning and immediately thinking about how exciting it would be to spend the first few hours of the day crawling like a spider through thousands of lines of code and cleaning out the cobwebs. It’s a glorious and refreshing feeling until…
Someone inevitably asks the question, “So whatcha been up to today?” A very well-intentioned and perfectly acceptable question, mind you.
To which I must reply, “Well, I discovered this amazing, flashy-new-shiny way to do the same thing we were already doing but now it’s 1.78 seconds faster and involves about 3 hundred fewer lines of code.”
And of course the response tends to be, “Ah, cool. Is it something you can show me?”
Which brings the, “Well, not really…”
But that’s the beauty of our team. We all trust each other to make good decisions while considering the whole. It may not have been one hundred percent necessary, but if it helps my mental sanity then we’re all better off!
I’m thankful and appreciative to be able to paint on the most interconnected, dynamic canvas in history – the highly malleable canvas of 1’s and zero’s – each and every day.
In this guide I’ll walk through converting a VHS tape to Apple TV (H.264 @ 720 x 480).
I purchased the Elgato EyeTV 250 Plus Digital TV Recorder from an Apple Store for about $200. I’ve had a great experience with this device. I’m sure there are far superior solutions out there (especially for the Mac), but in the “bang for buck” category this is a great option!
This device can also be used for hooking-up just about any video source. I’ve recorded straight from camcorders, HD antennas, PS2, etc. Anything you can get into a set of composite cables or S-Video will require just about the same steps as recording from a VCR.
Converting an old copy of Happy Gilmore from VHS just happens to be what I was doing when I felt inspired to share.
Hardware Used:
- MacBook Pro (2.4 GHz Intel Core 2 Duo w/ 4 GB memory) running OS X 10.5.6 (Leopard)
- EyeTV 250 Plus (Elgato) (Connected via USB 2.0)
- Hi-Fi Stereo VCR (Connected via Composite cables or RF Adapter)
Software Used:
- EyeTV 3.1.1 (included with the Elgato)
- iTunes
The following assumes that you’ve properly installed / setup and tested the Elgato and EyeTV Plus v3.1 or higher:
- Plug-in the power for the Elgato, once the blue light comes on, plug-in the USB connector.
- Start the EyeTV program
- Switch the input source to Composite (Ctrl + V)
- Power-on the VCR and insert the VHS tape.
- Let the tape play until it’s at the spot where you want to record.
- Rewind the tape for about 5 seconds.
- Reset the timer for EyeTVÂ (Command + L)
- Start the recording in EyeTV (Command + R)
- Press play on the VCR
- Sit back and enjoy the show (or you can hide EyeTV without disturbing the recording)
- Stop the recording when ready (Command + R)
- Press STOP on the VCR
- Open the EyeTV Programs Window (Ctrl + P)
- Edit the Info for your recording
- Ctrl-Click (or right-click) the recording in the list and choose “Export…”
- Set the Format to “Apple TV”
- Choose your “Desktop” as the location to save the file, then click “Save” and wait a while.
- Once the export is finished, open iTunes
- Drag the file into your library
- Voila!
Convert to Apple Universal for playback on all apple devices using HandBrake:
HandBrake is a free application available here. This program can be used to convert the .eyetv file to an Apple Universal format file which iTunes will convert to play on iPhone, iPod, Apple TV, etc. The following steps assume you’ve already downloaded and installed HandBrake.
- Complete steps 1 – 12 above
- Quit EyeTV
- Open HandBrake
- Select the .eyetv file generated by EyeTV (located in “~/Documents/EyeTV Archive” by default)
- Once HandBrake has finished analyzing the file, click the “Toggle Presets” button at the top right of the window
- Selected Apple -> Universal
- Click “Start” in the toolbar at the top of the window
- A 1.5 hour recording will take about 1.5 – 2.0 hours to convert
- Once the conversion is finished, follow steps 18 – 20 above
Random tips:
- If the picture appears darker than it should be, the brightness can be adjusted in Preferences -> Devices. Click on the “Picture” tab to adjust various elements. I’ve had good results around +35 brightness).
- An Encoding of “Standard (DVD 120 min)” produces a good enough picture to capture the “quality” of a VHS tape. This is adjusted in the Preferences -> Devices panel under the “Encoding” tab.
- If you want to hide EyeTV and do other things while recording without hearing the audio, the sound can be disabled when EyeTV is in the background and/or in the Dock via the Preferences -> Sound panel.
I’ve been using the Amazon Elastic Computing Cloud (EC2) for running our web servers at NetCrafters for almost a year now. It’s been an amazing experience and I’ve kept a detailed account of many of the lessons learned.
The most recent challenge came when our servers just started locking-up for no reason. The sites would still be responding so we knew the LAMP stack was still limping along, but they were completely unresponsive via SSH. The only way to regain control was to issue a reboot through the Amazon API command line tools. Even this would sometimes take two or three times before the server would cycle.
Once I was able to login again, and look through the logs, there was absolutely nothing to go on…. until finally the server completely locked-up. Apache was not responding and we could not open a secure shell. Once the server was rebooted and came back up, there was an error in /var/log/dmesg:
...
kernel BUG at arch/i386/mm/pgtable-xen.c:306!
...
Unfortunately it seems that very few people are able to get this message because they are never able to recover the server once it happens. I was lucky and had this tiny shred of evidence to go on. After hours of searching I finally found that the kernel our instances were using (2.6.16) had been declared unstable for large CPU instance types. Originally these instances were started as m1.small and I had indeed converted them to c1.medium instances.
The Solution: Upgrade from the 2.6.16 kernel to the 2.6.18 (to be exact: vmlinuz-2.6.18-xenU-ec2-v1.0). Unfortunately, this too is a hard to find procedure, thus the long awaited point of this article:
How to Upgrade an EC2 Instance to 2.6.18 from 2.6.16
First, I recommend reading about Amazon EC2 User Selectable Kernels. I will outline the steps I took here, but if you want to know what you’re doing (versus just typing exactly what I tell you to!), please read at least the first paragraph or so then come back.
You’ll need the latest API and AMI tools installed on the instance, if you don’t know how to do that, search the AWS developer forums. There are plenty of tutorials already there, however, if you’re running Debian, there is a great post on the forums here for installing the AMI tools as a Debian package (this worked flawlessly for me).
Start by launching your instance from your existing AMI image (I’ll be using an arbitrary AMI: ami-99999999 as an example. Be sure to replace with your registered AMI), using the new Kernel (specified by the –kernel aki-9b00e5f2 directive), and the appropriate RAM disk (specified by the –ramdisk ari-67b95e0e).
ec2-run-instances ami-99999999 -k gsg-keypair --kernel aki-9b00e5f2 --ramdisk ari-67b95e0e -t c1.medium
This will start a new instance, using the vmlinuz-2.6.18-xenU-ec2-v1.0.i386 kernel (aki-9b00e5f2) and the initrd-2.6.18-xenU-ec2-v1.0.i386 RAM disk (ari-67b95e0e). These are both for a 32-bit instance, if you’re running 64-bit instances, you’ll want to use aki-9800e5f1 for the kernel and ari-64b95e0d for the RAM disk. You can see the list of AMI, ARI, and AKI available by issuing the following command:
ec2-describe-images -o amazon
The -t c1.medium is used to describe the instance type (number of processors, RAM, etc). There are others available:
Once the instance is up and running, login via SSH and we’ll need to install the new Kernel modules:
First verify you’re actually running the new kernel:
ec2# uname -a
2.6.18-xenU-ec2-v1.0
Then, install the new kernel modules:
cd /usr/local/src
wget http://ec2-downloads.s3.amazonaws.com/ec2-modules-2.6.18-xenU-ec2-v1.0-i686.tgz
tar xzf ec2-modules-2.6.18-xenU-ec2-v1.0-i686.tgz -C /
modprobe -l
Next, we need to install udev. You may not need to do this, but we are running Debian servers and udev is required to make the new image bootable. Otherwise, none of the devices will mount and the new image will just hang at boot. This is really easy though:
apt-get dselect-upgrade
apt-get install udev
# prevent udev from keeping its old ip-adress
rm /etc/udev/rules.d/z25_persistent-net.rules
Next step is to rebundle and register your new image. The new image will use the 2.6.18 kernel and RAM disk by default. If you’re a bit rusty on this process, I recommend the EC2 Getting Started Guide. Once you’ve done this, launching the newly registered AMI will launch your instance with the new 2.6.18 kernel and RAM disk.
NOTE: Each time you rebundle, you’ll need to re-issue the following command or udev will keep it’s IP address and the new image will not get a new IP via DHCP at first boot:
# prevent udev from keeping its old ip-address
rm /etc/udev/rules.d/z25_persistent-net.rules
I wrote this a week or so after actually doing it, so I’m going mainly from rough notes and memory. If you’re having a specific error while working through this, let me know and it’ll probably knock something loose and I’ll have an answer for you. This took nearly 10 hours to aggregate the steps for making this work. Once you have the steps in place though it only takes about 10 minutes. I sure hope to save someone else all that trouble.
Resources:
- Amazon EC2 User Selectable Kernels
- Programming Amazon EC2 (version 2008-09-01)
- Forum: AMI does not boot (post: j0nes2k, April 4, 2008 @ 5:25 am PDT)
- Forum: Installing ec2-ami-tools as a Debian package (post: Stephen Caudill, Dec 27, 2006 @ 8:26am PST)
|
|
|