snicknet.net

‘Keepin it White n Nerdy’

Archive for January, 2009

Jan-28-2009

Buried Alive

I feel like an avalanche of work has covered me and I’m never going to get caught up. Everytime I move one step forward two more things have been added to my list. I’m tempted to cut my losses and drop some work so that I can get a head start on the next bit and maybe get ahead for once. At the same time if I do that and don’t get ahead and the cycle continues then I’ll actually end up further behind. No idea what to do, hopefully I can figure it out soon.

On a side note I do seem to be cruising full speed ahead on my personal projects. I have successfully setup a PulseAudio server on my MythTV frontend machine which is attached to my stereo. So now I can play music from my music server virtual machine out through my stereo. I found that periodically my music would cut out only for a second or so, but consistently. I figure it must be related to the way that VMware Server handles audio devices. This new solution seems to work quite well, the only downside is that PulseAudio uses a good amount of processing power to transmit your audio over you network. So, I went from occasional hiccups all the time, to no music during heavy loads. I think the trade off is worth it. Eventually when I can afford a more powerful server I won’t have the problem.

I have also begun experimenting with Python. After doing a little reading online I have begun learning a little about wxPython. It is a basic application library for Python which includes many graphics based objects. I’m not sure if it will work for everything I want to do, but it is assisting me in learning the ins and outs of Python which is very different from any language I’ve learned before.

My MythTV Master Backend virtual machine is powering ahead. It has successfully been running for several days flagging commercials for my little Atom frontend without incident. I must say that it does take a good amount of network bandwith to do such a setup, so I recommend that you have at least a 10/100 connection and you’d be wise to push for gigabit. I ran into one problem in which a single machine on our home network is connected to a 10/100 leg of a full gigabit network. As soon as commercial flagging began the 10/100 computer which was streaming an HD TV show lost connection and had to wait until the commercial flagging job was done before resuming playback. On the gigabit section of network I was able to play the same TV show without incident during the commercial flagging.

I have built my first micro ITX Atom machine for a client. I will deliver it later this week. I’m hoping to get more and more of my clients to adopt the smaller machines. It bothers me to think about how little people do on their machines and yet they continue to buy more and more powerful systems to do the same things we have been doing for the last 10 years, email, surfing the web, listening to music, and writing documents. None of these tasks require more than a miniscule amount of processing power. I hope that soon IT managers around the world will understand this and start to consider the power cost of the machines they put into production environments. Not only is there the power savings which adds up there is the initial cost savings. You can make an Atom machine for about $200 plus the cost of the OS which if you use Linux is $0. $200 for a machine that can play 1080p video and consumes roughly 30watts while doing it is a huge step forward for the computing world.

Posted under General
Jan-24-2009

MythTV is Alive

Well, after much trial and error I have successfully gotten a Virtual Machine backend and an Atom based Secondary Backend/Frontend talking. I ran into several problems while trying to set everything up from version mismatches to IP addresses not being entered just so. I’m recording a show to test out the backend based commericial flagging and transcoding. The Atom box has the tuner in it and will be used for all matter of frontend activities like watching HD movies, live TV and recorded TV. The backend for the moment will simply manage whats going on and lend a helping hand to jobs. Eventually the plan is to use a USB TV tuner and pass the device to the VM so that the backend does all of the work. For the time being this is a great proof of concept.

Posted under General
Jan-24-2009

Project Update

Well, I jumped in head first on several of the projects I had listed last night. I’ve made great progress today accomplishing and learning a lot. I got my iPhone to talk to my Amarok VM and am able to stream podcasts and music off of the iPhone wirelessly and play them out my stereo. There is still a good amount of work and planning to move this project along. I realized that I need to come up with a way to launch an application based on location, seeing as the Wifi in the iPhone is off unless it’s available and checking for mail. One solution is to leave Wifi on all the time using Insomnia, but this drains my battery WAY too fast. So, some kind of location based turning on and off of Insomnia would be perfect.

I installed my PVR-150 card in my Atom box today in an attempt to see if I could use it as a Secondary Backend and Frontend. I ran into problems getting to tuner to be accessible though for playing TV under MythFrontend. I believe it to be a version issue and am creating a new MasterBackend VM to test the theory. If this works out I should be able to record TV shows on my Atom box while leaving the heavy lifting to my server such as transcoding and commercial flagging.

I installed a fresh copy of Ubuntu Server on my old laptop to start on trying to write the software for my Digital Picture frame . I also came up with a software concept for the touch screen when I get that far. I should be able to pull pictures from Flickr or some other online source, as well as using local or saved content. I would also like to be able to see the currently playing song in my Amarok VM on the screen with Song Name, Album and Artist along side the Cover Art. Adding a weather widget in the corner would be nice. I really like how the concept is coming together, but I’m having trouble deciding the best way to start as well as what language to use. I’m leaning towards Python, but my lack of knoweldge in the language is holding me back. We’ll see what happens, might just have to dive in and try it out.

On a rather grim note, I’m having trouble with USB devices in my Windows 2008 Server. Every time I plug in a device I get a malfunction error. I’m thinking it might be related to a USB network program I was experimenting with. Hopefully removing and rebooting should fix the issue, as of right now I can’t attach my Bluetooth dongle to my VM that controls the lights in my room. More to come soon.

Posted under General
Jan-24-2009

What’s Next

I find myself searching for the next project. I haven’t quite settled on what I want to do. Having gotten my Atom box to its present state is quite wonderful. I find myself looking at hardware more and more rather than software. I really want to make something and program it. The downside to this is that hardware costs money, and that’s a luxury that is still just out of reach at the moment. I have some billing to catch up on and several projects that are about to pay out which is good news. Perhaps laying out the projects I have considered will help me organize my thoughts. So here goes:

  • Wireless iPhone Music Sync/Transfer - Since the iPhone was released Linux has been able to mount the iPhone wirelessly not only to syncronize music to the phone, but to play music off of it as well. This is very appealing as being able to have fresh music on my phone without the hassel of syncing would be wonderful. So, the plan for this one would be to write a script to push/pull music from the phone upon me entering my room. This could tie directly into my current Bluetooth proximity script assuming I put in an IP reservation or a static IP for my iPhone.
  • IR Transmitter - This one is also proximity based. I would like to add IR control to my Bluetooth Proximity scripts so that when I enter my room my stereo and/or TV could turn on automatically. This would be a nice feature and tie in IR which is something I have wanted to do for a while. The downside is that the device I want to use to do this is rather expensive.
  • Power Savings for LCD TV - Another project that peeked my interest having read up a bit more on LCD TV power efficiencies would be to measure my TV’s power consumption while off. I hear that LCD TV’s use a large amount of power to keep the backlight bulbs warm. I have only heard this as a rumor and have yet to try and hook my Kill-A-Watt unit up to check this. If this is in fact a true statement then I could wire in an Insteon Applican module to turn on the backlight bulb power only when I’m present in the room and might use the TV, otherwise there is no point in keeping it primed. Edit: This peeked my interest rather quickly and I can say without a reasonable doubt, that my Vizio LCD TV uses 0 watts while sitting off. It maxes at around 140 watts while watching video. Looks like this one is Busted, for LCDs at least.
  • Sunset/Sunrise Times for Lights - I still need to come up with a way to integrate sunrise and sunset times into my Bluetooth Proximity script. As it stands my light will turn on whether it is light or dark out.
  • Bluetooth Device Class - I need to try pairing my iPhone with my machine on a different device class. I’m running into problems when I receive a call in my room since my computer appears as a Bluetooth Headset to my iPhone it keeps passing off my clients to a silent machine. I need the iPhone to pair to something, but not use it.
  • Build another Atom Box - Having established the Atom as a great MythTV frontent I would like to build another one for my day to day use. I’m once again using my gaming machine for daily work and it is not the best machine for it.
  • Digital Picture Frame - I have several old monitors and laptops just begging to be used again. I have wanted to build a little digital picture frame for as long as I can remember. The thought of being able to wirelessly transfer media to a free floating object is very appealing for some reason. I would like to make it touch screen usable as this would allow me to do much more with the device including control my room or look at headlines. I’d love to be able to set my alarm in the morning using it if I keep it next to my bed.
  • Serial/USB Temperature Sensor - With Summer coming up in a few months I would love the ability for my fan to be able to turn on automatically if my room is stuffy. Plus, knowing the exact temerature in your room from anywhere in the world seems like a neat thing. So, I’ve found a bunch of serial based thermometers as well as some pre-fabricated USB ones that might fit the bill.

These are just some of the ideas I have rattling around in my head at the moment. I’ll have to pick one and start down that path and see where it leads. Hopefully I can come up with one that is fun, involves new hardware, and doesn’t break the bank.

Posted under General
Jan-22-2009

Dual Core Atom + 1080p Video = Possible

I purchased a dual core atom mini ITX system a few months ago in the hope of running it as a MythTV frontend. This doesn’t sound very challenging, after all just about any machine can run TV now days. The challenge for me is that I love HD movies. So this begged the question, could a $90 computer consuming roughly 30watts play an HD movie that normally takes a 150+ watt computer running at high clock speeds with a high end graphics card? Well, last night I got my answer. After installing a fresh copy of Mythbuntu 8.10 on my Atom box I started working on the Core AVC for Linux installation. Core AVC is an amazing application developed originally for Windows. It allows you to multithread H264 decoding. Most HD movies and TV shows people get today over the Internet use this codec. It is amazing the quality that can be retained while keeping file sizes down. The down side to all of these purks is that to decode these films you need a lot of processing power. Traditionally a single core very high clock speed CPU would do. The problem is that recently multi-core CPUs are all the rage, and they have lower clock speeds than say the old P4 processors. On current Core2Duo’s or Core2Quads this is no longer an issue, but on lightweight hardware or older hardware it is a major problem. That is until the Core AVC codec was released. It allows you to harness the power of both of your smaller cores to tag team on the task of decoding the video. This allows you to use a very cheap, energy efficient, and low clock speed processor to decode high quality video normally reserved for high end PCs. So, people could watch these high def movies on Windows, but the Linux community was lagging behind in this area. There has been much work completed recently especially on the ffmpeg codecs to try and mimic the same performance gains as the Core AVC codecs, but in my opinion they just aren’t all the way there yet. So, a project was started to allow you to use the Windows based Core AVC codecs under Linux. The key here is the Wine project which allows Windows based applications to be run under Linux. After I completed the install everything is working better than I expected. Movies in 1080p that my 2.2GHz AMD Athlon 64 struggled with are cake for my 1.6GHz dual core Atom to cut through. Albeit there are some limitations still as too how high a quality stream it can handle, but for the most part it is astounding what it can do. I’m hopeful that the Linux community will continue to push forward with it’s efforts to build native forms of these codecs, but until then the Core AVC for Linux project is here to the rescue.

Posted under General
Jan-17-2009

Being Sick SUCKS

So, aparently I was overdue for a few days off and my body decided to force me out of work. I could tell I was getting sick on Thursday, and here we are Saturday evening. Two whole days lost to sickness. It always seems to happen at the least desirable times. I have so much work to do, the only good thing is that this is a 3 day weekend.

Posted under General
Jan-13-2009

Horse Race

Starting this week the race for attention has started. I have so many projects trying to start outside of school making it nearly impossible for me to focus on school itself. I have to hammer out a lot of projects today, or face some not so good consequences. The one good bit of news is that my financial situation looks stabilized for the short term. Still waiting to finish up some work to post up here, hopefully today will be the day.

Posted under General
Jan-11-2009

Full Steam Ahead

Well, I survived my first week of classes. This quarter will definitely force me to work on my time management skills. I’ve been quite productive this weekend so far. I got lots of chores done. I still have a good bit of school and consulting work to complete. I’ve made a start on all the projects I have been assigned so far. The first project for one of my classes is due on Monday, along with a quiz in another class. This next week will really show me what I’m in for since most of my teachers were kind enough to hold off homework until the second week. I’ll post an update as I finish some of those school projects, I’m hoping I can turn blogging into a way of organizing my thoughts for the quarter. That will not only force me to write posts, but hopefully help with the great challenge that lies before me. I have a fellow student who was originally enrolled in 4 classes all of which he had with me. He told me had attempted 4 classes the prior quarter and had struggled horribly with it. So, he decided to drop one of the classes for this quarter. When I told him I had 5 classes and a full 20 units he went quiet and wished me luck. Only time will tell what will happen.

Posted under School, Work
Jan-7-2009

Mental Preparation

I’ve been to each of my casses for the new quarter. Some are just as exciting as I was thinking, others are way below the level I was expecting. I still feel that I will learn a great deal this quarter. My databases course turned out to be a big disappointment. It’s a very simplistic intro to what databases are and what they do. Luckily this should make this course relatively easy. I might be able to leverage the ease of the course to create something that I want, perhaps for some home automation stuff. We’ll have to wait and see. My Log Design course should be great for learning a bit more about circuits and the interfacing of software with hardware. This hopefully will help me understand more about drivers. The computer vision project course is exactly what I was told it would be, we will be constructing a program to convert multiple photos into 3D models. The networks course is unfortunately outdated, the concepts are still the same for the most part, but we’re using hubs and “Y2K” compliant KVM switches. Artificial Intelligence is looking very promising in terms of what I can learn on the subject. I’m thinking this workload will be managable. I’m trying to get ahead early on so that I don’t end up stressed and behind in a matter of just a week or so.

On another note, I installed Ubuntu on my eeePC last night and I can safely say that I should have done this a long time ago. Its much snappier than ever before. Having only used it for a day I can’t say for certain that everything is perfect, but it’s been running very well. ‘Tis time for bed, long day tomorrow. I’m sure I had more to write about, but that will have to be for later.

Posted under General
Jan-2-2009

Winter 2009

Monday will mark the beginning of the Winter 2009 school year at UCI. I have signed up to take 20 units across 5 different classes. 2 project courses, and 3 upper division major courses. I’m looking forward to the new quarter which hasn’t happened since my first quarter at UCI. I really enjoyed my Computer Vision and Imaging course last quarter and hence am taking the first time offered project course in the same area. I will also be taking a project course in computer networking. I’ve been told I’m insane for attempting two project courses at the same time, perhaps I am since I don’t even know what one entails. I’m sure I will find out rather quickly how managable this will be. The other three courses are: Digital Log Design, Intro to Databases, and Artificial Intelligence. I’m not sure what Digital Log Design entails, but I’m definitely looking forward to the other two courses, both of which I have been waiting to take since I started at UCI.

Lots of things and nothing have all happened since I last wrote up here. I’ve just continued working on a consulting basis. I survived all of my finals at the end of last quarter. Christmas brought a few neat toys to me, including a WD Velociraptor HDD which will be the first of 4 I hope to procure over the next year to build my VM array in my new server. I decided on the WD Velociraptor for many reasons, I was originally planning on running 146GB 15k RPM SAS drives. The drives would make a phenominal VM server, but after doing some research online I discovered that the ammount of power consumed by the drives vs. the performance gain over the Velociraptors was minimal. The SAS drives consumed almost 3x the amount of power at peak usage as the Velociraptor did with decent gains. The Velociraptors are also cheaper and easier to obtain brand new. I did run into one issue that will be resolved shortly while mounting the Velociraptors in my chassis. The Velociraptors sit on a giant heat sink dubbed the “IcePak” by WD. The actual drive itself is only a 2.5″ hard drive mounted on this giant heatsink. WD center mounted the 2.5″ drive to evenly dicipate heat which makes sense. The issue you run into is that hot swap chassis and bays place the SATA power and data connectors in the bottom right corner where SAS and standard SATA drives have them. So, to make my setup work I will have to do some small case modding. I was lucky enough in that I have a 4U rackmount chassis, with 20 hot swap bays, 4 across and 5 rows. So, I simply removed the circuit board from the back of the hotswap bays for the top row, and will pass through standard cables to these drives. I won’t get the pretty lights for power and activity, but I will get to use these energy efficient and fast drives. I also started experimenting with a USB TV tuner that I would like to use on my MythBackend VM. Unfortunately I ran into compatibility problems while trying to configure it. Hopefully the Linux community will have something out soon to remedy the issue.

The other day I started working more with the sound card and VMs on my server. I discovered something rather important with Server 2008. You can rather easily install a sound card on the server, the trick here is not to do it while remoted in :). I learned this the hard way after several hours of frustrating restarts. Turns out that when you RDP to Server 2008 the sound devices are disabled and appear as though they are not functioning. So, you have to install a sound card while on the physical machine and not remotely connected. Lesson learned. At the moment I’m setting up a mic to pass through to one of my VMs to experiment with voice commands. My goal is to be able to turn off my lights for the night without having to touch anything. Presently my bluetooth proximity script is working flawlessly. I leave my room and my lights go out, I enter and my lights come on. I still need to add some code to handle day light conditions, most likely using a sunset time calculation. That way if it is after sunset the script will run, otherwise it won’t. We’ll see how that works soon. I’m having trouble getting that data easily using a bash script. I may attempt to port my little scripts into Perl which I’m growing rather fond of after several WWW::Mechanize scripts to pull down various pieces of information from the net. More to come soon I hope :).

Posted under Coding, General, School