Tuesday, October 27, 2009
Installing rutorrent on your AppleTV
My AppleTV experience started in June ‘09 with a 40gb version I bought used from craigslist. I’ve made many hacks on it already, like installing XBMC and Boxee. I’ve set up samba filesharing service, installed rtorrent, fought a lot with python and rssdler, created special cron jobs, and expanded its capacity to 1.5TB via network streaming. Rssdler allows it to watch RSS feeds and download torrents automatically via rtorrent. I like rtorrent because it is very stable and utilizes little system resources. With only 1.0Ghz and 256mb of ram, resources are always a concern. So when I started to look for an easier way to control rtorrent, a small footprint was a factor.
My original plan was to install wtorrent, a web based client that allows you to view rtorrent’s information and control it in your web browser. This requires a web server like apache or lighttpd running on the AppleTV, and uses memory. wtorrent’s system requirements were pretty high actually, needing not only httpd, but also php, scgi, ajax, etc… I looked for alternative web clients and came across rutorrent.
rutorrent has many good features, the best of which are a light footprint, easy install, and nice interface. I want it to be easy to use so Alison can benefit from it. It doesn’t have multi-user support or password protection, but my AppleTV isn’t accessible from the outside world so I don’t have much use for that. You can set up passwords with .htaccess if you need it though. I spent many hours trying several different combinations of web servers and rtorrent frontends, finding information spread widely around the internet. I ended up using the following configuration which is working out quite nicely. I’ll detail it here in hopes that someone else who is interested can save some time and effort as well.
In this tutorial, I assume that you’ve hacked your AppleTV with the patchstick already, and you’re familiar with ssh, nano, unix filesystems, apache httpd, and copying files to your AppleTV. I’ll still try to make it easy to follow for those of you who just type what you are told. Items in bold should be typed into the console.
- Install rtorrent.
- This has been documented pretty well already by a few different sites. Try
http://dyve.posterous.com/a-proper-rtorrent-install-for-apple-tv and come back when you’re done.
- Enable scgi in your rtorrent configuration file
nano ~/.rtorrent.rc
type scgi_port = 127.0.0.1:5000 in the global section (just make it the first line if you’re unsure)
Install XAMPP 0.7.4.
XAMPP is an all-in-one apache http/php/perl/mysql solution for linux and mac os x.
- Goto http://sourceforge.net/projects/xampp/files/ and download xampp-macosx-0.7.4.tar.gz.
I used the newest version that was available as a tar file because you’ll need to extract it with the -p option to preserve file permissions. If someone verifies that the files from the .dmg files work, I will make an update.
- Copy the tar file over to the AppleTV via scp or samba. I copied it to /Users/frontrow/xampp-macosx-0.7.4.tar.gz
- Login to the AppleTV with SSH and navigate to the folder you uploaded it to and type:
sudo tar xfvpz xampp-macosx-0.7.4.tar.gz -C /Users/frontrow/
- This will install the app to /Users/frontrow/Applications/xampp. Other sites will tell you to extract it to / so it installs in /Applications/xampp, but the 40gb AppleTV will give you an error saying “Cannot write: No space left on device.” This is because /Applications is in a separate partition on the hard drive.
Creating a symbolic link in /Applications will give you the same functionality as if it was installed in /Applications. Type
sudo ln -s /Users/frontrow/Applications/xampp /Applications/xampp
Set up your httpd.conf
sudo nano /Applications/xampp/etc/httpd.conf
- Set up the httpd.conf however you like. Other sites like this can explain it better than I can. You can
also skip this and come back at the end.
Start the xampp services
sudo /Applications/xampp/xamppfiles/mampp start
- If you get php errors, it’s because you didn’t use the -p flag when extracting the tar file contents. If/When this completes successfully, you should be able to type http://the-ip-address-of-your-AppleTV in your web browser and get a page.
Setup XAMPP security
sudo /Applications/xampp/xamppfiles/mampp security
- Creating a password for mysql will cause the demo html page to not work. Not that that is a big deal, you’ll be replacing it with rutorrent later
Create a LaunchAgent to start the program automatically on boot. You can download my launchagent here. Copy it over to the AppleTV and then copy it to /Library/LaunchAgents/ by typing
mv org.awkwardtv.httpd.plist /Library/LaunchAgents/
- Congratulations, at this point your web server is installed and will start automatically with the AppleTV. Now it’s time to install the http frontend for rtorrent.
- Installing rutorrent.
- Download the latest version from the homepage: http://code.google.com/p/rutorrent/ and extract the files to the directory your xampp httpd.conf file uses as default for web pages. If you didn’t change it, this folder will be /Applications/xampp/htdocs/
- I found it easiest to extract the files on a desktop computer, and then move them over to the AppleTV via samba.
Alternatively:
- Copy the tar.gz file via scp
- Navigate to the folder in SSH
- gunzip rtorrent-2.7.tar.gz
- tar -xf rtorrent-2.7
- cd rtorrent
- mv * /Applications/xampp/htdocs/
- Download the RPC plugin (rpc-1.0.tar.gz) from http://code.google.com/p/rutorrent/downloads/list. Copy it over to the AppleTV.
- gunzip rpc-1.0.tar.gz
- tar -xf rpc-1.0.tar -C /Applications/xampp/htdocs/plugins/
- Make sure it works by going to http://the-ip-address-of-your-AppleTV
Posted by
eclipse on 10/27/2009 at 12:52 AM
Tech •
Apple •
(6)
Comments •
Link to this entry
Thursday, October 08, 2009
Good Morning, Shreveport
Waking up at 4:00am is never fun, especially when you are used to waking up late. Sometimes though, it does provide for a spectacular morning.
Read Full Entry
(Friends Only)
Posted by
eclipse on 10/08/2009 at 08:50 PM
Work •
Flying •
(4)
Comments •
Link to this entry
Tuesday, September 15, 2009
Aviation Day 09
Saturday was the biggest day of the year for the KSU Aeronautics Department. The “Aviation Heritage Fair” is the new name for Aviation Day, which technically they are not allowed to call it anymore. It’s a little airshow but has some great strengths and I try to go every year. I worked my schedule to fly up to Ohio to help out and see friends from my old flight instructor world.
Things sure are different now, as my former students are the ones running the show. It’s actually very cool and fulfilling to see them stepping into the role that I was in just two years ago. I got to see one of my private students who just got his own instructor certificate a week ago. Flight team members who had just joined when I left are now senior members and officers of the club. Even a good friend from Six Flags/Geauga Lake has started the program and joined the flight team. It’s great to see them continue to build on the success that we started back in 2005.
The weather is always a big factor in how well the airshow goes over, and the last two years have been pretty miserable. Despite a forecast of rain early in the week, the weather was actually very nice all day. I parked my car by Target and walked the parameter to the main entrance. As I walked over, there was a nice rainbow over the hangar and the Cessna fleet. The pic doesn’t do it justice. As I got to the airport, I met Even and Myles who were putting up the signs for airplane rides.
The rides are a big operation, almost a little airline in itself. You have the flight instructors piloting the aircraft; the new flight team members are marshaling airplanes around the ramp under the control of the airport line staff; the senior flight team members are taking reservations and money, assigning crews and passengers, and checking weight & balance under the main tent. The Chief instructors are in charge of us all, but they are so busy throughout the day that we really end up working on our own and being responsible for ourselves. We’re used to it though as the entire airport is pretty much run by the students. It’s always awesome to see the teamwork and everyone works together so well.
I didn’t have much of a plan for the day other than to hang out with people, but as the show started and people arrived for the airplane rides, I began to see a job opening in scheduling. They had done well in making a time slot board, but I made a good system to tell the difference between reservations and completed flights, ways to prioritize flights, etc.. Airplanes would come and go in different orders, but we kept up all day and were never more than 10 minutes off of a passenger’s reserved slot. Even smoother than an airline! We had our share if issues too with the weight and balance. Cessnas are mostly trainers and aren’t able to carry the weight of 4 big people. We had issues with seatbelts not being long enough and too much weight in the front of the airplane, but we were able to accommodate everyone who was willing to work with us. (Only one group stormed off in a hissy fit) I feel it was one of the best years for rides and we made a lot of important cash for the flight team to compete next month.
The displays were alright, the main attraction was a restored C-47. It’s a military version of the DC-3. Also notable were a T-6 Texan, Parker Hannifin’s Citation Sovereign, the Goodyear Blimp, an Extra 300, and many General Aviation aircraft of all types. Flyovers were performed by a C-130 Hercules and a KC-135 Aerial Refueler. Unfortunately, the C-130 showed up about an hour late. The airshow is free though, so take what you can get. Many props to those who organized everything.
I did take an airplane ride myself with my dad, and it was nice to fly a Cessna again. It’s a lot more sensitive than the ol’ ATR. I was a little all over the place, but that’s what you get when you fly one once a year now. I had a good time with my dad watching the flyovers and taking the ride. For the rest of the time I volunteered doing the ride scheduling, and then helped to clean up when it was all done. All in all, a pretty good year for Aviation Day. The airport is always an issue in the city of Stow, for noise and real estate concerns, and we need all the good publicity we can get.
The next day I went out to the airport again to help the flight team practice. They were running a message drop practice followed by landings. In three hours, I think they got 4 heats of message drop in. That is way too little! It’s wasting time and resources. The airplanes are sitting on the ground, not being used and no one is getting any useful practice in. I think I’m going to write up a better schedule and method for them. Don’t know what happened between my departure and now, but that was aggravating. Landings went better. With only a month between now and regionals at Battle Creek, they need to be more efficient to get good practice in and be ready by then.
There’s a few more pics in the Gallery Page.
Posted by
eclipse on 09/15/2009 at 03:43 PM
KSU •
(1)
Comment •
Link to this entry
Tuesday, September 15, 2009
Aspire “Two” Greatness
While I was in town for Aviation Day 2009, my dad wanted to go “netbook hunting”. He has seen my Aspire One D150 and since they are the greatest thing ever, we headed out to best buy in CF to look. My biggest concern was to find him something that would fit his needs more than a toy. He is still using my Dell L400 as his primary computer at home, which is getting old and slow. I tried to explain to him that computers themselves don’t really slow down, but he keeps trying to run newer versions of programs like AOL that eat up more and more of his little 128mb of ram.
Best Buy had a few notebooks and I was surprised to find a whole section devoted to netbooks, but their selection was not that great. I was able to show him some of the main differences in netbooks like screen size vs resolution, glossy vs matte, SSD vs HDD, etc but they still only had a few brands. I also tried to show him smaller full notebooks, and explained the sacrifices made by netbooks like the CD drive. I also showed him the low end macbook but he was pretty set on the netbooks, so we headed out to Micro Center in Lyndhurst.
I have to say I much prefer Micro Center to Best Buy, sorry Will. They have a better selection and the salespeople aren’t quite as obnoxiously pushy, although they are still hovering around. Micro Center did have everything BB had and more, from a $150 Eee PC to a holy-shit Alienware mainframe replacement. He wanted portability to take it to a class at CSU, so the main things we looked at were battery life, screen size, and we stuck with HDD versions.
In the end we were left with two netbooks with 1024x600 10.1” screens, an MSI Wind and the Acer Aspire One D250 (the slightly bigger version of mine). In the end, the deciding factor was the keyboard. The Acer won out because the MSI keyboard had shrunk the comma, period, and forward slash keys, among others. Once I pointed that out, he noticed and didn’t like that. The computer is basically the same as mine, with the same CPU/RAM/HDD combo I have. His screen is a little bigger at 10.1” vs my 8.9”, but uses the same resolution. I found that while using his, I preferred the 10.1 screen to my own. I still like the small physical dimensions of mine though, for it to fit in my flight bag. He also had nice features like bluetooth, a 6-cell battery for 7 hours of use, and mouse buttons that are under the trackpad! A little jealous…yeah maybe.. I’d recommend it to anyone looking for a traveling laptop.
Since we were in the area, we took it up to CSU to make sure he could connect to the university wireless and get him set up with their provided antivirus. Getting on the network there was highly unusual, so I’m glad I could help him out there. And it was fun throwing the help desk off when we showed up to get the antivirus CD. They kept asking me for my ID when he was holding his, of course they assumed I was the student! Since they only provided the software by CD, we had to use a lab computer to copy it to a flashdrive. He seemed comfortable with the computer and I think it will work well for him.
Posted by
eclipse on 09/15/2009 at 03:00 PM
Tech •
PC •
(0)
Comments •
Link to this entry
Thursday, September 10, 2009
There Is No Aggro Reset
Momentarily blinded by the dust kicked up in the late afternoon wind, he let out a quiet grunt and closed his eyes, throwing his head to the side. The sun beat down upon the desert city mercilessly, casting long eerie shadows over all he could see. The warrior’s slow, passive walk betrayed his alert senses. His eyes searched every corner; ears wide open at attention. But the city was quiet, uncaring for the intruder. He noticed the thick layer of swirling sand in the street, the open doors and broken glass in the buildings, cobblestones cracked and missing. The loud cry of a lonely wind whipped through the walls and alleys. This city had been dead for many years.
He could see echoes of what had been as he turned into the old beaten alley. Backyards of families long gone; old, broken toys of children nowhere to be seen. He made the turns through the neighborhood naturally, as if guided along. This bothered him, although for what reason he did not know. The increasing beat of his heart attracted his attention. His instincts were trying to tell him something. A wolf always trusts his instincts. Still, the lone warrior felt a duty to continue the investigation. He pressed forward cautiously.
Suddenly, a screeching howl erupted through the city. He leapt to the side, taking cover behind a fence and unsheathed his weapon. His senses kicked into overdrive. His eyes searched but saw nothing. His ears listened but heard, nothing. His nose sniffed but smelled…nothing. The sun was bright in his eyes, blurring his vision. His heart pounded in his chest. A mirage? Wind? Despite the calmness he sensed, he could not explain his anxiety. The city remained dead.
Curiously, he took relief from the burning sun into the remains of the house behind the fence. He moved deliberately and cautiously as he pushed the rotting door, feeling it give way easily. Small creatures, probably mice scurried through the halls in the distance. He navigated through the small house with ease, taking the familiar right turn through the kitchen to a set of steep, broken stairs standing almost vertically. Taking the staircase in a single bound, the shack shuddered as his weight hit the second floor. A single room with what looked like the remains of a sleeping area. A whole family probably slept here.
The wall to the left was stained, cracked and falling apart, letting the sun light a corner of the otherwise dark, hot and musty room. He peeked out of the hole, seeing the rest of the quiet city. There were hundreds of abandoned houses just like this one. A shiver went through his spine and his fur stood up straight as he thought about the possibilities. He could search all of them and find no answers. Why did it seem so familiar? He thought back as far as he could. Fighting was always a way of life. His pack was always fighting with someone. He hated it. But in the end, they gave their lives to protect him. To honor their sacrifice, he had shaped himself in their image. He dedicated his life to achieving what they could not. Maybe he could prevent the same from happening again.
Frustrated, he let out a mad howl and punched the wall. It crumbled easily from the force of impact, the orange sun flooding the dark room. What had happened here? Was he too late? Could he have stopped it? The lack of answers infuriated him. He crouched down on the floor, glaring at the quiet sun as it neared the horizon. The sun knew the answer. The sun watched everything but told no secrets. He growled loudly at it, jumping out onto the street. He could feel the anger inside him growing as he ran down the alley towards the center of the city. He was useless here. Everything he had worked so hard for was of no help to these people. He closed his eyes, putting his shoulders forward as he smashed through another broken fence with a loud cry. The pieces flew in all directions, the warrior didn’t even slow down.
His vision was red and blurred, his head felt like thousand spikes were driving through his head. Without remorse he let the anger take control. Limitless power burning inside his body was allowed to surface, the anger in turn took control. He growled and he howled! Barking, raving, hurting, hating, destroying! He kicked over debris, knocked over walls, smashed anything in his path. Reaching the city wall, he charged ahead, heaving the mighty battle axe over his head. It crashed against the heavy doors with an echo heard across the entire desert. The doors burst open, he flew through them, intent on reaching whatever he could find. Leaving the city as alone as he found it, his heart pounded with rage. He wouldn’t be made powerless by an enemy that couldn’t be found. If he could find no answers there, this wolf without his pack would make his own.
image (c) |
text (c) |
Posted by
eclipse on 09/10/2009 at 09:55 PM
Anime •
(3)
Comments •
Link to this entry