26 November 2013

New blog about Google Glass

Just a quick post: A couple weekends ago I managed to become a part of the Google Glass Explorers program. I wanted to share my experiences with the awesome device, so I created a Tumblr for it, which you can check out at glass.seanpayne.name.

25 July 2013

Update #3 on Distributed Computing on Mobile Devices

Back in October of 2011, I wrote of an idea to use smartphones and other mobile devices as platforms for distributed computing, to help augment the increasing loss of computing power to these mobile devices for distributed computing projects such as Folding@Home and SETI@Home. A few months ago, I was excited to learn that an ambitious developer took the time to develop a solution for iOS devices and help bring attention to the fact that there is a vast untapped potential for mobile devices to use their abundant idle time to perform useful tasks. Even more recently, I also learned that BOINC, the parent project for distributed computing projects like Asteroids@Home and SETI@Home, had begun to take interest in distributed computing on Android devices. Well, a few days ago, Engadget published a headline that I came across today that most certainly caught my attention: BOINC had finally released a version of their client that ran on Android devices!
It was a spectacular announcement and one that I feel will spawn a new group of mobile distributed computing projects. I have yet to work with the app yet, but from the screenshots, it already has some of the "triggers" I mentioned in my first article to allow the app to only run given a set of conditions are met regarding the state of the device. It is very exciting to see that the idea is now a reality, and I foresee it being used for other projects, or even used for Bitcoin mining to help reduce the transaction verification time.

27 June 2013

The changing of the guard

I have often said that, traditionally, significant events have occurred for me during odd-numbered years. This year has been no different. On Sunday, I finally bought a new car - a white 2013 Prius c - and said goodbye to my trusted 2004 Scion xA. To many, this may not seem like a very important or significant event, but for me it was as it marked the end of a very long and incredibly significant chapter of my life.
The Scion was my very first car. For anyone who has had a car, you're first car seems to always be the one that you remember the most. Since I was a full-time college student just out of high school, I could not afford to buy a car on my own, and with some convincing, my parents graciously bought it for me since I needed something to help shuffle me back and forth to college, and later, work. My Scion also represented my freedom, allowing me to go places at any time I wanted, and allowed me to socialize a lot more than I ever had. I had done my absolute best to take care of that car, and it had done the same for me. Year after year, mile after mile, she got me safely to where I needed to go and with unparalleled reliability. Everyone was amazed that I had still had the car even after nearly 10 years of ownership and that she was still nearly as peppy and sporty as she was when I first got her.
Tons of memories were made in that car: I went though all of college in that car; it took me to my different jobs, including the one I have today (which I recently saw my 6th anniversary at); she took me from my best friend's wedding to a party where I finally asked Ashley on a date; she took Ashley and I on our first date, and every date thereafter, including our trip to PF Chang's where I proposed to Ashley, and even took us home as an engaged couple. She helped us move into our first apartment together; she took us and our siblings every year to Six Flag's Magic Mountain and even took us on our first vacation to Las Vegas without grief. So, with how many memories she had given us, why then would I give her up? Well, the answer was as a simple as it was unfortunate: age and money.
Though she was quite reliable (a lot of her was still original stock parts), she began to "nickel-and-dime" me for increasingly more expensive parts that I was not, nor ever likely to be, qualified to repair. Also, despite the almost guaranteed 32-36 MPG I would get from her, the combination of long commutes and rising cost of gas made it painful to buy a full tank of gas every 3-4 days. And, finally, it was just time to let her go. Even though she had 207,612 miles at the time I last drove in her, I still thought she had plenty of life left in her. In fact, that morning, she was spunky and lively, quick off the mark and did not resist me while I drove her around town. But I knew that it would not be cost-effective for me to keep maintaining her and it was only going to get harder for me to keep her working smoothly as time wore on.
For the last two and a half years, I passively searched for a new car. Nothing seemed to appeal to me much, either because of design or fuel economy. Unlike my desires 10 years ago where I just wanted a fast car with a sporty look, my needs had changed, and I now needed something with fantastic mileage and very low maintenance. With that in mind, the Prius appeared as the vehicle of choice. But I was never really a fan of the Prius, mainly because of its bulkiness and decidedly very unsporty look. I have always been a fan of smaller cars since they often were more economical, sporty and practical. They are able to maneuver quickly and fit into virtually every parking spot. I also believe that they are safer than larger cars, SUVs and trucks because they are typically more stable (less prone to rollovers and loss of control), faster to stop, more agile in collision avoidance, and designed with strict safety standards to compensate for their diminutive size.
Then, in late 2011, I heard rumors of a hybrid Scion and got excited to see if the rumors were true since I loved Scions, especially since I had such a positive experience with mine. After some time, the rumors disappeared and it appeared instead that a smaller hybrid for the Prius line was actually coming down the pipeline. Those rumors proved true as first reports came out about the smaller Prius, and I immediately became very interested: it was a Prius that was about the same size as my Scion, significantly less expensive than a full-size Prius, had much of the same features of a full-size Prius, and was similarly powered to my Scion. So, after researching the Prius c for a lengthy 2 years, I finally decided it was time to buy one. And I did.
Face-to-face: My Scion xA passes the torch on to my new Prius c
Buying the Prius c proved to be a much more emotional day for me than I originally thought. Though I was proud to have finally bought my own car, stressed to try to figure out how to afford everything, and happy to have managed to get a pretty good deal on it, it was very tough to see my Scion go. As I said before, it was my first car, and with how long I had owned it, I had grown very attached to it. It is quite amazing how attached you can get to material things you have had for a long time. But, in any case, Ashley and I were happy to welcome the new car into our lives. My only hope is that as my Scion leaves our lives, the new Prius c will take its place and enable many new memories and protect my family as I move further into my adult life.
Celebrating my new Prius c; my Scion in the background :'-(

27 May 2013

Update #2 on Distributed Computing on Mobile Devices

Combing through my backlog of interesting articles that I've been meaning to read, I came across another article about utilizing mobile devices as computing nodes for a distributed computing project. According to this Wired article published back in March, David Anderson, one of the founders to the parent project to the SETI@home project, BOINC, has stated that he is now considering using mobile devices like tablets and smartphones in a fashion very similar to how I envisioned it back in 2011 - and for the same reasons! Currently they are targeting Android as it supports background tasks.
Perhaps I can get in contact with him and maybe help the project reclaim those wasted processor cycles for good!

03 May 2013

Taking refocusable images using MagicLantern

If you a professional or hobbyist photography, you undoubtedly have heard about the Lytro. For those of you who haven't, the Lytro is a camera that uses "light-field technology" to allow more information about the light that is coming into the camera be stored. This information, in turn, can be used to perform a variety of functions, the most apparent of which is the ability to re-focus a picture after the picture has been taken. Its very exciting technology, but for those of you who already own an expensive DSLR its a bit disappointing that the technology is currently only available on Lytro cameras and DSLR manufacturers have yet to announce any comparative technologies in their cameras. Do not despair, however, because the refocusing functionality can actually be faked with DSLRs or any camera with a manually refocusable lens!

20 February 2013

My thoughts on the Playstation 4 announcement & the gaming industry's future

First and foremost, I should let you know that I've been an XBOX user since the first XBOX was released in 2005 and have never owned a Playstation in my life. I have never really had a strong attraction to Sony's offering of gaming consoles save for the great console battle of the Sega Dreamcast vs. the PS1. Years after that debate (where Sony obviously won), Sony announced the new Playstation 4 console today and gave the world a glimpse into the series of improvements they've made for their flagship entertainment product and tried to entice the gaming industry that their new product was superior to all other consoles - as any marketing campaign would require. However, the announcement was not what I would call a normal event.
Now, I should raise the disclaimer that I was only able to watch the first half of the announcement up until their presentation of "Drive Club," so information about the presentations made afterwards were sourced from reactions and information disseminated via Twitter. Regardless, here are a few things I noticed about Sony's event today:
  • First, in stark contrast to industry tradition, they elected to announce their new console outside of a large gaming expo, such as E3. I have noticed that this has become a recent trend in the tech industry, where games and consoles are announced outside of these large events and lead me to believe that the hype building up to and after a purely announcement-only event help drive interest so that appearances at venues such as E3 and PAX get more attention. It feels very "viral" in nature and seems to be a very effective technique in generating buzz about products and brands, a fact I will come to again shortly.
  • Secondly, the technical hardware details of their upcoming gaming platform were given fairly early in the presentation, which I was very appreciative of but I'm sure was more techno-babble to most consumers. This fact is very important, because
  • Thirdly, the entire event seemed geared more toward attracting game developers to their platform than   an announcement to consumers. In fact, Sony's event was more a demonstration of their new platform than a reveal of the platform itself. Details of the hardware were almost glossed over and, instead, focus was given to the software-based aspects of the Playstation 4. To illustrate this point, consider the event's timeline: a somewhat high-level discussion was given about the hardware pedigree of the system, only spending a couple minutes talking about the processing power and graphical capabilities; a very short display of the system's new controller, allowing developers a brief glimpse into what capabilities the primary input peripheral will provide; an argument in favor of its design and the principles therein; and finally a sampling of various games and features demonstrating some of the capabilities of the platform. Also, it can not be forgotten that throughout the presentation, mentions of the PS Vita's interoperability with the system were not in short supply.
  • Finally, from what I read via Twitter, the console itself was never shown. This part makes some sense to me since during one of the demos early in the event it was mentioned that they were demonstrating off development hardware. This leads me to think a couple of things: a) they have not settled on a design for the unit; b) the hardware components are technically still in flux, which explains why they did not mention exactly what kind of processor and graphics processor they were using; or (and this goes back to the first point above) c) they purposely did not reveal the physical system to continue to build interest and attention to the new Playstation as speculation of the design of the unit is still unknown.
Overall, this event did not seem like it was destined for consumers. But since they knew prospective consumers were still part of the viewing audience, they included the game demos as part of a way to satiate the typical consumer's desire to know why they would want to spend their money to purchase a shiny new Playstation. This seemed, as I mentioned before, to be more about getting developers to join them and build an IP portfolio for their system and brand before other systems gained a foothold on the market, especially since Nintendo's Wii U has been slow to sell and Microsoft has yet to reveal their own next generation console. The sooner they attract developers, the more likely they may have a successful launch and may be likely to maintain a market foothold for quite some time.
One last point I want to address is the outcry and criticisms I witnessed over various social networks about how they did not actually show what the Playstation 4 would look like. It seemed as though to these people the appearance of the system was more important than the components and platform the system was built on, which, to be frank, is very superficial. Personally, I do not care what the unit looks like since it will sit inside my entertainment cabinet where I will likely never need to see it unless I need to change a disc - which in itself is becoming an infrequent task what with remote power control and online content delivery becoming standard features for most consoles now. For me, and I would hope a lot of other people, the console would merely need to fit into my cabinet and allow me to set other components on top of it and still function without overheating. It could be just a very plain rectangular black box with 1 LED and a disc drive, I don't care. I care only about the experience it pumps to my television and speakers, since ultimately that is where my money was invested if I bought one.
Overall, the game demos I did see showed the new machine had great potential for putting out astoundingly beautiful graphics, but outside of the games, there was little to be terribly excited about. Its social features and remote play via the PS Vita are great conveniences, but I rarely use such things and do not even own a PS Vita, so there is virtually no value to me there. And the fact that there really wasn't anything that got me excited brings me to this: it appears as if the gaming industry has hit a wall. It seems as though the last big creative and technical breakthroughs were made back in 2005, and peripherals such as the Wiimote, WiiU gamepad, Kinect and Move have only incrementally extended the lifetime and functionality of those the respective platforms. But it seems that with the Wii U and now the Playstation 4, the next generation of consoles are shaping up to be less revolutionary and more of just technology refreshes on current designs. But now that two of the gaming giants have put their cards on the table, it will certainly be interesting to see what Microsoft's offering will bring and whether they will contribute any innovations to the industry.

01 February 2013

An Update on Distributed Computing on Mobile Devices

Over a year ago I wrote a blog post about an idea that I had had since college. In that post, I proposed using smartphones as platforms for distributed computing projects. This was because desktop usage has decreased dramatically in the last few years and new server consolidation technologies are making it harder to run intensive distributed computing projects in single instances.1 I saw that there is great value in distributed computing projects like SETI@Home and Folding@Home, and even after I wrote the post I continued to yearn for enough time to make a proof-of-concept.
Earlier this week, Tony of ClockworkApps tipped me off to his implementation of a mobile distributed computing application for Apple's iOS devices. Though I personally don't own an Apple iOS product and thus can not try out the app myself, the fact that an implementation now exists for the concept astounds me and I congratulate Tony on the achievement. I'm excited to see that others are now recognizing the untapped potential in distributed computing on smartphones, tablets and other mobile devices and look forward to the standardization and implementation of this technology for all device platforms in the coming future!

1 - Though more and more "cloud software" is quite distributed, running singular programs to do intensive, long-running distributed computing tasks yields no benefit if those programs run in virtual machine instances on a single machine. Running multiple distributed computing tasks like SETI@Home or Folding@Home in their own virtual machines on a single server does not make sense. Not only does the server have to deal with the overhead of running each of the virtual machines, the processing of the tasks end up taking a performance hit since they are now emulated and processing is at the mercy of the hypervisor and its CPU timing. Instead, if a distributed computing program was properly tuned and run on a multi-core server, the performance would be drastically improved since the computing task would have near complete runtime in each core without overhead or dealing with processor/core timesharing. Granted, a lot of engineering has been done to minimize the overhead of virtual machines to increase the performance of the applications contained within them, but realistically nothing can surpass the performance of running as close to bare-metal as possible.

22 September 2012

My Entertainment Cabinet Cooling Project

Since 2010, we've had a new entertainment cabinet and TV stand that we bought at Costco that has housed all our media equipment. It is a pretty nice wood cabinet, with 2 cabinets on either side, each with a slide-out shelf in the middle. The doors to each cabinet have replaceable panels, which we decided to have glass put in them. It fit our needs extremely well, but had one large downside: the back panels for each of the cabinets only had holes for the wires to go through and, thus, did not provide enough ventilation.
Now, for some time this wasn't such a problem but as we began to upgrade and get new equipment like a DVR and Logitech Revue Google TV unit, these always-on units produced a lot of heat, and so closing the doors wasn't an option. Closing the doors only trapped the heat in the cabinets, and it got so hot in the cabinets that you could feel the heat from inside the cabinet on the top of the cabinet. For over a year, we just kept the doors open, occasionally pointing small fans into the cabinets when it got particularly warm. But I was never satisfied with this "fix" as it looked messy, so I resolved to come up with a cost-effective solution.
At first, I wanted to go all-out and buy 4 PC case fans controlled by an Arduino which could monitor temperatures in each of the cabinet sections and independently control the fan speed for each.This seemed like a really great way to go, but without enough electronic engineering knowledge, it seemed like it would be a daunting task and a bit overkill for the basic problem that I wanted to solve: I just needed some fans to cool the cabinets. So I brought the problem back to its roots and began listing the requirements for my cooling project:

  • A minimum of 4 fans: 2 per cabinet, 1 per shelf.
  • Each fan needed to move as much air as possible in their sections
  • The setup needed to be low power
  • I needed to have a mesh filter for each fan to keep a) the cats from hurting themselves by sticking their paws into the fans, and b) to reduce dust.
  • I needed a way to control power to the fans, monitor temperature and optionally monitor or control fan speed.
Aluminum PC case fan mesh filter (left) and Cool
Master Turbine Master Mach 1.8 PC case fan (right)
In my research, I stumbled on the Cool Master Turbine Master Mach 1.8 PC case fans. These 120mm fans were large and moved more air than conventional PC case fans and seemed like the perfect fans to use. They were a little more expensive than other conventional PC case fans at $13 a fan, but for their size and power, it didn't seem so bad. I also found some aluminum PC case fan mesh filters for $3 a piece. These would be good to provide protection for the fan.
Finally came the question of providing power to the fans and controlling & monitoring them. I stumbled on the Thermal-Star 7 Fan Bus, an inexpensive power bus with fan speed and temperature monitoring. Though the unit could not control the fan speed based on the temperature, at only $20, I figured that this was not a huge loss as it could still power all 4 fans and monitor temperature and fan speeds. I figured I could still control the power to the whole setup using a simple outlet timer that I had lying around. Finally, since the fan bus required a molex power connector to power itself and the fans that were connected to it, I bought a $13 Coolmaster 12v Power Adapter.
Back panel with holes for the fans
Once the items finally arrived at my doorstep, I knew it was time to dig deep into my inner man and break out the power tools. I'm definitely not a handyman, so after some careful measuring and planning, I used a jigsaw to cut the fan holes and a drill to cut the screw holes to hold the fans into place into the back panels. There was a little bit of difficulty cutting and drilling the holes I needed as I wasn't aware that the panel was actually a laminate, so part of the wood stain began to splinter off the backing plate as I cut. This required the use of special laminate cutters and quick cutting to reduce the amount of scaring to the wood panel. But once the 4 fan holes and 16 screw holes were cut, it was time for the fun part: mounting the fans and wiring the whole rig up!
I love putting things together. It reminds me of my childhood with Legos and taking electronic things apart to see how they work, then figuring out how all the pieces fit back together. I even enjoy putting Ikea furniture together, though the amount of time it takes is a negative point for it. Thankfully this job was a lot easier than putting together an Ikea bed frame since all it took as putting small bolts with nuts through each of the holes to hold the fan and filter to the wood panels:
Mounted fan and filter facing outside the cabinet
The mounted fan on the inside of the cabinet
After all four fans were mounted, it came time to test all 4 fans to make sure there was no loose bolts and excessive rattling:
All the fans powered and spinning with the fan bus
Now came the time to disconnect the test and put the back panels back into the cabinet and connect it for permanent installation:
Fan panel installed into cabinet
Finally, I cleaned up and put everything back into the cabinets. I connected the fan controller to a power outlet timer so that the fans would not be running at the middle of the night - the least likely time we'd be actively using the equipment:
Fans running with equipment back in the cabinet
After having the setup running for the past week, I'm pretty impressed that everything came out pretty well. Though the setup is a little noisier than I had previously expected, it was no noisier than a regular PC. Before the fans, the cabinet with our DVR was the hottest and quickly reach 113F if the cabinet door was closed. Now, with the door closed and the fans running, the temperature in the cabinets usually stay around 88F. Though the major goals for this project have been completed, there are still some things that I have left to do:

  • Buy extension cables for the fans to the fan bus since the cables are just a tad bit to exact for the length of the cabinet.
  • Figure out how to reduce the noise of the fans further.
  • Build an Arduino controller to control the speed of the fans independently based on the temperature and time of day.

25 June 2012

Fifth Anniversary at S4i Systems

Another anniversary has come and gone without fanfare. As I have done in the past, I completely forgot about my anniversary here at S4i Systems Inc and just now noticed - two weeks late. This last year has been quite the roller coaster, with a sudden jolt in the middle of it all. In particular, the last 8 months have been particularly trying for all of us here, but things seem to be leveling out and the high stress we've been experiencing has finally started to wane a little.
Being the "IT guy," I've been working hard fixing, upgrading and implementing new things to make the lives of my coworkers easier and the infrastructure more stable. In the last couple months alone I successfully deployed a hosted collaboration solution in our company and it is already showing promising returns. And throughout the past year, our development group has started to try new approaches to help us coordinate and become more effective, and I look forward to seeing the fruit of our labors. It feels very good to know that across the many concurrent projects that I have been working on here in the last year, things are starting to wrap up successfully and that they are being well-received.
I look forward to what the next year will bring, and am excited to see what I will learn. I know that there will be a number of difficulties along the way, but things seem to be accelerating, and it is exciting to know that I am a part of it all.

25 May 2012

Being a geek and losing an identity

As Geek Pride Day draws to a close, today I am reminded of how I came to become the person I am today, and how my geek identity has changed over the years. Ever since I could remember, I've been fascinated by science, technology and video games. The scientific quest for knowledge helped me excel in a majority of my schooling. Video games kept me entertained and intrigued me with how they were made and the interesting ways stories were translated into code, but engineered so that children could pick up a controller and progress through it. But the greatest influence in my life has always been my interest in technology. If you ever ask my parents, they would tell you I always took apart things and was always playing with broken electronics to see how the everything worked together, even if I never really understood how it all worked at the time. It was the combination of all these things that drove me into the software industry and instilled in me a passion for it.
Throughout my elementary, middle and high school years, gaming was important to me. It was my pastime of choice, alleviating the juvenile stresses of homework and keeping my reflexes sharp. I also prided myself in playing some of the latest games that I got to rent, and, for a time, even renting or owning some of the newest consoles. I was the guy in my group of friends that played a lot of games and could answer a lot of questions about them. It was a part of who I was, and my friends accepted that. But when I reached college, the time I had to play games began to dwindle at a rapid pace. Between having a part-time job to pay for school, the college classes themselves and the endless pile of homework, video gaming time became precious and I began to notice that my gaming chops were starting to dwindle.
They say that relationships require a lot of dedication and responsibility, and being a naive young lad, I thought I could squeeze one in and still have time to play games. Boy, how naive I was. After meeting my significant other, my time was now split between work, school, home and spending time with her, and virtually any other time between each was spent driving from place to place. It was also around this time when mobility was important to me, and I began my transition from a tower PC user to a "road warrior." I had been driving around so much at the time that I began to change the idea of "home" to be the place where the people I cared about were. And, as most people do, home is where most people have their computers. Thus, I always had my laptop with me so that I could do what I needed wherever I needed to do it.
Years have come and gone, and I am still using the 3rd laptop I've ever owned, never looking back to the days when I built and maintained the family tower PC. My laptop helped me grow as a software engineer, and helped me gain the skills to succeed in the software development industry.
Fast forward to today, and I look back with a some longing. For so long I had focused on the other things in my life that it now feels odd to play video games. I can no longer sit for more than a couple hours playing video games, though I sit for more than 12 hours every day either driving to or from work or at my desk. I hear of new games that have the gaming community all abuzz but I can't seem to connect with them. Games that have a social aspect are foreign to me, as my gaming had begun to dwindle around the time when multiplayer online games were starting to become more mainstream. And the genre of games that more and more people enjoyed were not in my set of interests; RTSs and MMOs  could never really keep me as interested as platformers, FPSes, racing, and puzzle games. Moreover, many of the titles that more and more people were playing were designed for more computers that were more powerful than my laptop. I did not want to build a computer again, spending hundreds of dollars on a machine that would be practically only used for games which gave no guarantee on whether the hot game that would be released 3 years in the future would be playable on the best PC parts I used today. I could not justify the on-going expenses of a tower PC at home when I had to be a responsible adult and pay the bills. I had grown up on consoles as gaming platforms and felt that my investments on them were more sound in terms of longevity and the guarantee that the games I bought for the platform would work when I brought the game home.
Slowly but surely I began to notice that I was being silently removed from the gaming community. I was - nay, am! - becoming an outmoded gamer, and I am only 27! Even though I participated to the annual pilgrimage to Seattle to attend PAX, arguably the Mecca event of the geek and gaming community, and even though I felt more at home with fellow geeks from around the world there, returning home I still feel that I could no longer call myself a gamer. New games are getting harder to get into for me, and I am almost exclusively playing games from either the Halo, Portal or Mario franchises mainly because they are familiar to and still bring me joy. Even innovative games on newer, mobile platforms such as Angry Birds or Cut the Rope doen't hold me captivated and entertained like they would have 10 years ago. My life has certainly been changing, and though I am still very passionate about gaming as a whole, I feel like that part of my identity is lost, and it makes me sad for one very important reason: because it means that I am becoming an adult and losing the things that made me young, and this makes me sad.