Wednesday, May 30, 2007

Favorite Firefox Add-Ons

I'll admit it, I am a Firefox junkie. Although I do use IE occasionally, Firefox is use for all of my regular browsing. I also have Opera Browser installed. I really don't use it, but I do like the interface. One of the main reasons I won't switch is because I like my Firefox Add-Ons so much.

I'll give a quick rundown of the add-ons that I must have. There are actually not that many that I use. My preferences over time have changed, but the functionality these tools provide really help enhance my browsing experience.

I guess the easiest way to go through this is list each add-on one by one. I'll just work my way down the list one by one.

First, and probably most important, is FoxyProxy. This is a simple proxy selector that sits in the bottom right of Firefox. It is very powerful, but I only use it in a very simple regard. I couple this with Hamachi and FreeProxy. This setup encrypts my internet browsing traffic between my laptop and my desktop computer where it actually is sent out unencrypted. This is especially useful here on campus because to get Vista on the wireless, the connection is unencrypted because of incompatibilities.


Next on the list is IE Tab that simply makes a tab in Firefox use Internet Explorer. This is especially useful when visiting website that don't render properly in Firefox. (The Speed School of Engineering official website comes to mind.) You can see the difference between having the Firefox engine and the IE engine running in the below screen capture.


This is probably my favorite of all of my add-ons I use. PermaTabs can freeze Firefox tabs so they can not be closed and are there when it launches. I have three tabs that are ALWAYS open. They are Yahoo Mail, Digg, and Facebook. I know it would be simple just to leave them open, but having them this way assures they will not get mixed in with all of my other tabs that always seem to pile up.


Moving down this list we come to the sad story of how Vista has affected my life. TabEffect is a simple little add-on that performs a 3D spin effect every time you switch tabs. There was really no actual usefulness in this add-on, it just looked great. I actually had a few people ask how I was making the tabs in Firefox do that and pointed them toward this add-on. The problem under Vista is that the effect flashes a white screen after the tab rotates. It was just annoying enough for me to disable the add-on, but I can't bring myself to remove it.

Next on the list is Talkback. Nothing major to see here so I'll move on to the last item on the list.

I was a very frequent user of Yahoo! Toolbar at one time. I have since used it less and less. I could probably get away without using it but all of my old bookmarks are stored in Yahoo! Bookmarks and it is still nice to have those. I sometimes click the Yahoo! Mail button at the top if I need to reload the Yahoo! Mail page, but other than that it goes unused. I don't even need it for the search bar because Firefox has one built in that has even more features that Yahoo!'s.


My favorite add-on is definitely PermaTab. It has really changed the way I browse the internet. I'm a little more efficient and I definitely frequent my email, Digg, and Facebook more than I should, but I'm not hurting anyone.

I really need to search for some more add-ons that will help enhance my browser even more! (I promise you that is not as lame as it sounds... maybe it was just a little lame. Compared to the fact I wrote this entire blog entry about add-ons, it definitely wasn't lame.)

(VIDEO) Bill Gates Shows Off Microsoft's Touch Table

Billy Gates was on the Today Show this morning showing off his fancy new table. Want to see it in action rather than just in photos? Check the video for all sorts of goodness of it being used for all sorts of applications, such as playing with photos, wirelessly pulling photos off a camera, and ordering and paying for food using credit cards.



read more | digg story

The new Microsoft Surface Announced

The launch of Microsoft Surface marks the beginning of a new technology category and a user-interface revolution. Surface, Microsoft’s first surface computer, provides effortless interaction with digital content through natural hand gestures, touch and physical objects. Surface computing breaks down traditional barriers between people and technology.



read more | digg story

Tuesday, May 29, 2007

New Speed News Editor & Tablet PCs

I thought it seemed appropriate that I post at least a small bit about me becoming the new Speed News Editor. I just stepped into the position and am working frantically to get out my first edition. It is definitely going to be a lot of work but I think I am up to the challenge.

One of my first orders of business is getting a WordPress installed on the school's server. I do note the irony because I use Blogger for my personal blog. The website for Speed School Student Council will have copies posted of each edition I release. Also, I plan to use the blog to post smaller articles (more frequently). One of the first orders of business is to get some information about Tablet PCs from the prospective of students posted.

Good thing this is being imported into Facebook because I have a request for those who I tagged in this message and anyone else who may have a tablet who I forgot to tag or is not my friend on Facebook.

If you could get some type of write up, just a few paragraphs, about how you use a tablet, problems you faced, and general tips. It would be nice to have this from as many people as possible so they could all be posted on the website (which doesn't exist yet) to help those incoming freshman.

It would be nice to have what exact tablet you have, what classes you have used it in, and just any other information you think would be helpful.

There is no rush but it would be great if any of you could contact me and tell me if you will be able to do this. I'll post more information once things start falling into place.

One of my goals is to increase the online aspect of Speed News and if anyone has any suggestions it would be awesome if they could send them to me.

Monday, May 28, 2007

Dicewars: Better Than Risk?

I found this on WiiArcade (a great website for flash based games that work on the Wii browser). Dicewars is basically a simple version of Risk. The concept is that a map is randomly generated and then dice are placed on the board. You get to pick your number of enemies (between 2 and 8 total players). However, this is only a single human player game.

The game play is very simple and mostly automated. Basically, you select one of your piles of dice and attack a neighbor. The two piles roll all of the dice (the piles are capped at 8) and if the attacking player has a higher number they get the property and move all of their dice (except one) into the land they conquered. It is typicall not a smart move to attack a pile that is larger than yours. Equal piles are a little under half the odds but smaller piles are almost always a good bet of winning. After a player ends his turn they get additional dice equal to the number of connected properties they have.

This results in several different strategies. The most important aspect of the game is to connect all of your properties each and every turn. It would probably also be important to note that you play as the purple/blue player (depending on your screen). The strategy I typically use is to try and be aggressive enough to take the best area of land, typically a corner or long strait, and then defend my borders. I do this by paying attention to where I attack to form the fewest number of enemies until I build up enough forces. Also, I typically try to avoid enemies who are much more powerful. It is not a good decision to attack a area, even if it is an easy win if you will "invite" the enemy to attack land that you need to help reinforce.





I'll also note that the above is a picture, not the actual game if I confuse anyone.

Sunday, May 27, 2007

Facebook Platform: Good or Evil?

The newly launched Facebook platform hasn't stirred up as much controversy as other features that were launched on Facebook. I am really shocked by this because the interface, at the moment, is a little messy. I will attribute this lack of uproar to the holiday weekend and the fact it is summer. The Facebook Blog didn't have much to say on the topic in their latest post: Facebook Platform is here

The concept behind that new platform is to allow third party sites to embed themselves inside of Facebook, utilizing the massive user base.

Actually, it is more likely to be used as a mashups combining website features. I've already installed the Digg application and now my latest diggs are listed on my profile. Neat concept, but it doesn't appear as if other people have the necessary controls to restrict access. For example, if one of my friends despised Digg, would they be able to completely hide this part of my profile? Even though I think the functionality it there for such a thing, it is not obvious, and this can make users angry.

Another shortcoming is the lack of support for customizing the News Feed. At this point in time I would likely increase the number of stories about the platform, but would quickly grow tired and ease back on it.

One of the users biggest worries who have expressed concern is that Facebook is turning into MySpace. While I don't think this is ever going to happen, my advice to Facebook would be to be careful and not angry your users. With the major changes coming in rapid succession the risk of losing users is greater now than ever before. However, Facebook has the luxury of having a new stream of users every fall when students go to college and discover the addictive qualities that are Facebook.

Overall, I think Facebook has diluted the waters. As of yet, there are not many astounding applications, but hopefully that will change soon. Although I haven't looked at the development process yet, I will try too next time I get enough free time. If it is simple enough I might even take the plunge and try to make an app of my one.

I'll actually tag some friends on Facebook in this post (now that I am importing blog entires again). I'm curious what you all think! Very weird side-note: could Assassins be integrated into Facebook?

I'm Now Importing my Entire Blog Into Facebook

I've not been very decisive about this topic, but something just put me over the edge, the new Facebook API. One of the reasons I didn't want to import every one of my entires into Facebook is because some of them are just really random and don't matter. However, with the new Facebook API and applications, the interface is already crazy beyond crazy.

It is not that I want to add to the madness, but I don't see the harm in having my blog in Facebook. I actually talk about interesting stuff sometimes.

The only problem that I see arising is the formatting and embedded objects I use from time to time. I've already noticed that it is a little funky on some of my older posts that were imported. At least the pictures are importing nicely. :)

To my friends on Facebook: if you find this annoying, first try and change your settings, secondly, if you ask nicely, I might turn it off again. :D

Friday, May 25, 2007

Jimmy Wales on Colbert Report



"It is the first place I go when I am looking for knowledge or when I want to create some." - Colbert


Not that I am going to make it a habit to start posting videos on my blog, but this was just too tempting. Jimmy Wales, the founder of Wikipedia was on the Report. This was just classic, especially because of the influence Colbert has on Wikipedia through fans. The incident about elephant populations comes to mind (and it is mentioned in the clip).

It is a really great interview, I only wish it could have lasted longer. Wales did a great job handling Colbert's character. Too bad it didn't go further and mention other projects Wales is working on. Although there is not much hard information in the interview, it is interesting to hear Colbert talk about Wikipedia. Also, as a byproduct of this interview, many Wikipedia pages will be under constant assault from Colbert fans. (Although those same pages will probably be quickly locked by other fans who have a little more integrity for the system.)

Al Gore on The Daily Show!





This was really interesting. Gore actually said The Daily Show was one of the better places to get actual news. I would have to agree. I only recently started watching it regularly. I typically watch it online and thought it would be interesting to embed the movies on my blog. I wonder if they take them down after a while. I know that they are a not the best at making it simple to watch an entire episode on their website.

Thursday, May 24, 2007

One Month of Blogging

I made it!

I considered leaving this post at just the above statement but I guess I can elaborate. Before I started blogging I always wanted some type of "web presence" but never knew what exactly I wanted it to be. Facebook was great for my friends, but it didn't show up in a search engine (except my public section of my profile).

The one thing I have learned that really can drive people to a blog is giving something away. In my case it was offering Joost Beta invites. I was pleasantly surprised with the number of hits my blog received. Google Analytics can shed some light on how many visitors my blog has received.



That huge spike in the middle of the graph is actually about the time I posted that I was giving away Joost invites. To my surprise, the number of views didn't bottom out after that, although



Sadly, I am not comfortable displaying the map with any more detail because it will reveal where I live. Oddly enough, my blog gets the most hits from the region in which I love. (It is not just me hitting my blog, my friends look at it as well, but it really sticks out.)

Overall, I am happy with my blogging experience. I hope to continue to post interesting things and maybe I'll even attract some readers.

Wednesday, May 23, 2007

Tablet PC: Vista vs. XP - A Student's Prospective

In my earlier post (iTunes is Evil and Blogger is Broken) I mentioned that this post was lost. Apparently Blogger is just a little cranky. When I logged in today I noticed that the post was back, the entire thing! I am a little relieved that I didn't lose this post because it is on a rather interesting topic.

I've used Windows XP Tablet Edition for two semesters in college and now I am in my third semester and have switched to Windows Vista. I've own a Toshiba Protege M405 which is a decent tablet to work with. In my earlier post about about Tablet PC Hardware I discussed Vista and XP but mostly with regard to battery life.

First, I'll discuss some of my basic recommendations. Cassie, who also has tablet (Gateway), originally had only 512 MB of RAM. It is possible to run decently with only 512 MB but I would not recommend it. My tablet shipped with 1GB, but even under XP this was not enough for my multitasking needs. When I upgraded to Vista, I ran with only 1 GB because it took a while to get my RAM to install. With 2GB of RAM under Vista, a computer seems to work remarkably better. I would not recommend anyone use Vista without 2 GB.


Using XP and Office 2003

For classes I would run several programs concurrently. Besides all of my background processes (Skype, Carbonite, Hamachi, ext.), I would use Outlook 2003 and OneNote 2003 during class. I wouldn't recommend having too many extra programs running (Firefox?) because it is difficult enough using a tablet to take notes. Distractions do not help, and they also help drain the battery at an accelerated rate.

Taking notes during class is only half of the picture, the other half is using those notes for homework and studying. While I am studying or doing homework and I need to reference my notes, I typically run Firefox and iTunes. This is in addition to Outlook and OneNote. Also, depending on the homework, I'll have Journal Note Writer and maybe even Excel, Word or PowerPoint. With only 1 GB of RAM under XP, resources start to run a little low rather quickly. However, I never ran into any serious problems, although I always wanted more RAM.


Using Vista and OneNote 2007

I haven't upgraded to Office 2007 yet, although I am running OneNote 2007. The difference between Office 2003 and 2007 is incredible. The restructuring of the notebook system makes it much easier to manage classes and and keep organized. Also, in general there are small usability tweaks that make the experience a little more pleasant. While OneNote is still not the perfect tool for a student, it is the best thing to use at the moment.

Since I'm focusing on students I should probably mention Windows Journal, Journal for short. While I wouldn't recommend using this to take actual class notes it is perfect for homework assignments. Even for my classes where I can't submit assignments digitally, I like to write them on my tablet and then print them out. There are several advantages to doing work on a tablet. I should also mention that Journal is also available under XP and that Journal files can be read from a non tablet (Windows) computer with the correct, free, software.

There are several benefits to using Journal for homework. First off, having digital ink is just a lot of fun. Seriously, it makes writing very dynamic. It is easy to use multiple colors and moving and resizing is possible in ways that just are not available using normal paper. Also, turning in assignments means you don't lose a copy of your work. This is especially useful for studying.

In a later post I'll try and talk about DyKnow, a propriety software title use by UofL's Speed School as a method of distributing notes in class.

Overall, I am happy I upgraded from XP to Vista on my tablet. There are some serious problems with Vista, but in general it has been a good experience. The handwriting recognition and the tablet features in Vista are far improved over XP. Although battery life will suffer, the trade off is worth it.

Free Cell Under Vista - Accept or Deny

I haven't really played the built in games in Vista very much, but I did finally get round to playing my favorite of the lot, Free Cell. I do remember when I first installed I couldn't find any of the built in games. Eventually I discovered that they needed to be "installed" under one of the obscure panels in the control panel.

The rules of Free Cell are simple, but I'm not going to explain them here. The funny part of the new version is the dialog box that appears when you attempt to move a stack of cards into an empty slot.



It looks oddly familiar. I really think I have seen this dialog box before. Here is a close up of the Free Cell prompt followed by a prompt about connecting to a wireless network.

This is a Game


This is Actually Important


I guess this is just the new style of asking the user to make decisions. It is just humorous that it looks almost identical no matter if you're in a game or actually managing the system.

Tuesday, May 22, 2007

iTunes is Evil and Blogger is Broken

I spent about an hour, although it was off and on, writing an entry about Tablet PC operating systems. Mainly, it was comparing Windows XP and Windows Vista. I had about 5 paragraphs written when I remembered that I had yet to download TWiT using iTunes. Sill me, I launched iTunes. For the first time (without playing a video podcast) it blue screened.

On a related note, I have since uninstalled and reinstalled iTunes (with a reboot in the middle) and still am getting blue screens.

No worry about my blog entry, right? Blogger just IMPROVED their draft and auto-save function. (Auto-savory Blogger Posting)

Guess what, the draft didn't save. In Blogger's defense, it did save my first sentence that I wrote when I started writing. It was definitely in the post for very long because I revised it several times. I'm not sure who to blame though. I could blame Apple for not having iTunes work on my computer. I could blame Blogger for not having the draft feature work. However, I could also blame Firefox because I think it was the session restore feature that really messed with blogger.

I am not happy in that my post wasn't even listed as a draft under my Edit Posts tab. Hopefully they get this fixed. In the mean time, I think I'll keep iTunes closed (sadly).

(Sorry about the colors and formatting. I needed something to occupy my time since I lost my earlier post.)

Monday, May 21, 2007

OLPC 60 Minutes Video

I couldn't help myself, I have been a huge fan of the OLPC concept since I heard about it. This movie was just on Digg and it is well worth the time to watch it.



The basic concept of the project is to give every kid in the world a very simple laptop. They are actually going to sell them in the US late this year and I might purchase one. The concept behind me purchasing one would be so I could develop software for it (I am studying to be a computer engineer). There was a rumor that when you buy one in the US, it actually costs twice the price to manufacture and a second one goes to a third world country.

I'm not going to go into any details at this moment, but this is really exciting stuff!

Sunday, May 20, 2007

Tablet PC Hardware: Pen, Battery, and Screen

I said I was going to blog some about my tablet PC and here is my first real post. It only seems logical that I start by talking about hardware. I'm going to focus on my tablet but most of the things I have to say cover all tablets in general.



First off, I have a convertible tablet PC. I actually remember when they didn't have convertibles, only slate tablets (think Flintstones). First off, a tablet PC is meant to be very portable. I have a 12.1 in. screen. They do go up to 14 but that seems a little cumbersome to me. I carry my tablet with me everywhere, to every class. Weight matters here!

Besides size and weight, the actual input device makes a difference. Gateway seems to be the oddball of the group having a different type of technology. They don't have erasers and the pens are a little bulky. Also, if memory serves, they have a battery in the pen so they only last for a finite amount of time. HP and Toshiba have compatable technology which includes an eraser. (Funny side note, if you see a new tablet user erase something on their scree look to see if they brush away the eraser filings like they were using real paper.) I have use HP's tablet pen and it is rather tiny. It seems sturdy but the size is a little small. Toshiba (although I am clearly partial) seemed to do things right by making the tablet pen look and feel exactly like a real pen. (The Toshiba pen is pictured to the left.)

The next important thing to be concerned about is battery life. When I scheduled for fall classes in the mack of my mind I was thinking, "will my battery make it though these classes back to back?" I have a feeling this fall is not going to treat me nicely on Tuesdays when I have over 7 hours of classroom time. Luckily, I think I can plug-in during one of the classes. As of yet I have not been forced to plug-in during any of my classes. Also, Speed is starting to put plugs in classrooms for students but I digress. My first bit of advice regarding batteries is buy the secondary battery for you model computer. Although it will cost a little extra, the additional battery life is worth the money and the added weight.

Battery life eventually runs the life of any daily portable computer user. Luckily I live on campus and I charge in-between classes. This semester I can be a little more liberal with screen brightness because I have so few classes, but that won't last. Screen brightness is the enemy of any battery (although Vista seems to be the newcomer to the battery busters). Typically I run on the lowest or near lowest brightness setting to conserve power.

Since I have run my computer under XP and Vista I have some grounds for comparison. Under XP I could easily get 6 hours of battery life before I would get to what I consider the danger zone (under 15%). Now that I run vista my battery life seems to be (easily) 5 hours and I can try to stretch it to 6 but I am getting to the critical level where Vista takes control and sends me to hibernate. I also can drain my battery amazingly fast if I crank the settings up, it seems I could empty my batteries in just over two hours.



Vista does have its advantages over XP, specifically the way you manage your battery. It seems easier to just switch your power settings based on your current needs to one of the three available settings. I've gone into the advanced settings and further customized the settings to stretch my battery even further. Under XP I used the Toshiba battery utility which worked reasonably well. Vista offered many of the same features of the Toshiba utility making it unnecessary (not to mention impossible under Vista).

If I were to look at my battery life and try to determine why it does not last as long as it once did, I can not identify the specific reason. I simply changed too many variables. I am now using Vista, I have double the RAM running at a higher clock speed, and I use an SD card for ReadyBoost. Which one of these is hurting my battery the most? I am not sure.

Not to dwell on the Vista vs. XP battle, but the sleep function under Vista works remarkably better than XP's standby. I never turn off my laptop between classes, I always go to standby or the equivalent in Vista. This saves time by having everything ready in just a few seconds and the time to pack-up is cut down to almost nothing. Under XP standby worked, most of the time, but sometimes it would take much longer than I wanted to go to standby. However, did recover from standby very quickly. Under Vista, it might just be the fancy fade to black effect, but it seems that going to standby is faster. I know it is not good to jostle around a hard drive so I always wait till my power light goes off, and with Vista it happens almost before I can shut my lid.

That is enough with batteries for now, moving onto another topic...

The other important factor that I am going to talk about now is the actual screen. With a normal laptop, it almost seems the worst possible thing to touch the screen, but with a tablet it is no big deal. This is because they are heavily protected with a durable layer of plastic. One of the bad things about this is there is actually a gap between the external protective layer and the screen that dust and dirt can get trapped in. Its not the end of the world but I do have a few specks on my screen now that I can't get rid of. I've had them before but they go away, sometimes.

Different manufactures have different screen properties. Some are more rigid and others have a more natural writing feel. Personally, I am not completely satisfied with the Toshiba screen. My main complaint is that it wobbles slightly. Unlike a normal laptop, convertibles have only one hinge. Toshiba actually solved this problem with their new tablets which lock into laptop mode on both sides. These laptops seem to be the best tablets (in my opinion) on the market (although I never have touched one. My only complaint about these new tablets is that they are now missing a optical drive.

In summary, the biggest problem with tablets is the battery life. As I have learned, speed isn't always everything and sometimes should be sacrificed for battery. Specifically to tablets, the big differences are in the pen and the screen. However, many of the same considerations to laptops apply to tablets (CPU, RAM, graphics card, optical drive). I can easily say that one can not expect to find a desktop replacement in a laptop (although I am holding out for an external graphics card that might make it possible).

A Jared Blog: Spanish Edition

I've been getting a lot of Spanish speaking visitors asking for Joost invites so I decided to do something a little strange.

In an earlier post (Internet: Yahoo Pipes and Facebook) I talked about the Yahoo! Pipes service. Just to play around with the service I decided to take advantage of the BableFish module.

Here is the link to the A Jared Blog - Spanish RSS Feed and a link to the A Jared Blog - Spanish Pipe I made. It does translate my RSS feed but it is having some problems. I'll elaborate. The RSS feed that is being imported into the pipe includes a rather large amount of text; it includes the last 25 posts in their entirety. This information is then piped through a truncate module that reduces the number of posts down to 10. Then the feed is piped through the English to Spanish translator.



There is one major problem with this pipe. It doesn't work. Well, it does work, but it doesn't translate everything. I am thinking there is some limit on the amount of text that can be translated and I am surpassing it. Also, the entries seem to be translated in random order. I also have trouble getting the XML version of the RSS feed to display.

I decided to post this anyway because I thought it was an interesting use of technology. Granted, the translation is going to be spotty because it is done by a computer, but it just shows how powerful the internet has become. Maybe Yahoo! Pipes is just under heavy load at the moment and it will start working better after some time.

If anyone ever uses it tell me if it works or not. I really like the Yahoo! Pipes service and think as it expands its features will become a very common service to use on the net.

Saturday, May 19, 2007

Internet Radio on Deathbed

This is just a short blurb about the fate of internet radio. A while back, the royalty oversight committee passed a resolution that will completely destroy internet ratio.

Now I don't listen to internet radio very often, ironically I only listen to classical music while working on homework. I've known about this problem for some time now but I though since I have a blog why not give the cause a link.

SaveNetRadio.org

It is important to get involved, the end of internet radio is in sight and this is a very big problem.

Just a quick description of the problem: Basically, the royalties to play a song on the internet are now charged per song per listener retroactive for one year. This is a huge amount of money for some stations, especially the ones that are non profit broadcasters which will be forced to file for bankruptcy. This is completely unjust to make the internet radio rules completely in opposition to the "normal" radio set of rules. Ironically, you can still broadcast internet radio if you have a "real" radio station associated with it.

I don't understand why the people in charge of music in this country DON'T want people listening to the music they represent!

UofL Speed School's Tablet Initiative

I'm going to be taking a different direction here for a little while to talk about my tablet PC and also talk about the UofL Speed School's Tablet PC Program. I probably can sum it up best by quoting the description found on the website about the program.

Speed School's Tablet PC Program began in Spring 2006 when the faculty passed a resolution that all freshman engineering students would be required to have a tablet PC for use in Speed School classes. This requirement will be in effect starting Fall 2007 for all incoming Speed freshmen. In Fall 2008, this will be extended to include freshman and sophomores. By 2011, all Speed School students will have tablet PCs.
I am at the bleeding edge of the program (literally). As of yet, no one is required to have a tablet PC, yet I do. Why then do I have a tablet? Great question! I purchased one while I was still in high school knowing that for college I wanted to take all of my notes on a computer and a tablet seemed to be the best option. I went with the limited and expensive Toshiba Portege 405. I'm very happy with my decision, but was even more excited when I received a letter in the mail talking about how the Speed School will require students to have tablets in 2007.

To the best of my knowledge, all of the classes I will take will NOT require a tablet. However, the students that will be trailing on my heels will all have tablets so major change is just beyond the horizon.

Hopefully, I'm going to be posting more about my experiences with my tablet and my impressions of UofL's program. Although I've not looked very closely at the website yet, http://studenttabletpc.com appears to have a lot of information that will be very similar to what I am going to be posting.

I've used my tablet PC in every class where it was possible. The classes where I wasn't able to use it were my labs and a paper based engineering graphics class. I have adapted to the difficulties of using a computer in my education and will hopefully share these experiences to help out others. Since I now have 2 semesters of experience and am starting on my third, I believe I am a rather versed user of a tablet pc. Having used XP for two semesters and upgraded to Vista for my third, I have a wide range of experiences to share, both good and bad.

I'd like to make a quick note that all of these posts will be labeled Tablet PC.

Friday, May 18, 2007

Buy and Sell Textbooks - Facebook Marketplace

I posted earlier about the Facebook Marketplace when it first came out. (Facebook Marketplace) I already have almost all of my textbooks for the summer semester and if I were to pay full price for the books I need this fall it would total approximately $680 or if I managed to get them all used from the bookstore around $500.

Obviously, that is more money than I would like to spend and I have already started working at chipping away that mountain of money.

Today I completed my first transaction using the marketplace. A few days ago I noticed the following ad:


$30 - Electrical Engineering: Principles and Applications

Condition: used

OK, let's see if selling books on facebook will work. This book was used in ECE 252, Intro to Electrical Engineering (for non-ECE majors).

It's in great condition and includes a CD with solutions to many of the problems.
As soon as I noticed it I messaged the person. Unlike ebay there is no way to complete the transaction online so everything is handled through Facebooks built in messaging service.

In a creepy, get kidnapped fashion, you have to meet in person to complete the deal once the terms have been decided on. However, this is where Facebook really puts this service over the top. I was able to instantly determine that I had four mutual friends with the person selling the book. I was also able to look at his profile (if his security settings would have normally not allowed me to see his profile, since we started a transaction, I get temporary access for a month to his profile and him to mine) and determine if the person seems reputable. Unlike craigslist, I was already networked with anyone who would be selling something. The aspect of anonymous profiles dissolves and is replaced with the Facebook network.

Was this person reliable? Guess what... he was! I have to admit the price on the book was great! This book would run about $90 used from the book store. I saved about $60 through the marketplace (maybe I should treat myself to something worth $60?). I now have in my possession $30 less and 1 textbook more.

Overall I am impressed with my success on my first try. However, I have noticed people are posting items on the marketplace at VERY high prices. There are quite a few people selling books at identical prices as the bookstore. I really think people should be using this service to help fellow students and not become an additional place to buy overpriced used books. I've also noticed the service has not taken off as fast as I would have expected, but since it is the summer semester it is understandable.

I think I am going to keep an eye out for other textbooks I need and if I don't sell the books I still need to get rid of to my friends, I'll post them on the marketplace.

Wednesday, May 16, 2007

Joost Invites!

I was shocked to be quite honest!

People actually viewed my blog. I'll post some more information later, but I actually have a modest about of people randomly stumbling onto my blog thanks to the help of blogger and Technorati.

However, most of these people came to my blog asking for Joost invites that I was more than happy to provide. It only takes a second to send an invite and I am pleased that people actually navigated to my blog.

I've posted three times before this about Joost but it was my entry named Software: Joost: Now That I Watched Some Shows that really started to drive some traffic to my blog.

At the time I post this, I have already sent out 10 invites through my blog alone. Also, the people who are asking for invitations are from all over the world. It is truly amazing. Since I am still new to blogging it gives me a greater appreciation about how global the world has really become. I really do appreciate everyone who has visited my blog and left a comment. As a result of my starting to blog, I have been more proactive in searching the blogosphere.

Just to end with the obvious: if you want a Joost invite just put your email in a comment and you'll get it within a few hours!

Tuesday, May 15, 2007

Cingular has left the Cell Phone


This is old news but it has finally seem official to me. My cell phone screen no longer reads Cingular, it now reads at&t. I hardely ever turn my phone on and off but after I power cycled it today, the text above the date on my Motorola SLVR. now reads "AT&T." I am not quite sure what to think of this. I was very happy with my Cingular service, but now I hope the quality of the service does not dramatically change now that they are rebranded.

The irony in this (if you look closely at my above paragraph) is my phone reads AT&T in all capital letters. This because at&t now use all lowercase for their logo. This is best described by a picture I found on Wikipedias's page about at&t:


Some of my friends joked about how AT&T is basically T-1000 off of the movie Terminator 2: it doesn't matter how many small pieces it is broken into, it will slowly reform more powerful than ever.

The only problem with the above graph is that it does not include Cingular and at&t's complicated business relationship. I think that would be hard to express in a graphic without including some form of abstract art.

<sarcasm>The only thing left for at&t to do is come in the middle of the night and replace my battery cover that has the Cingular logo still on it. If they don't do that, they might just start mailing out batter cover replacements with the new logo on for free.</sarcasm>

Monday, May 14, 2007

Facebook Marketplace


I've been dwelling on Facebook for the past few posts, so why stop now!

Today Facebook announced and launched the Facebook Marketplace. This service is similar to Craigslist and not like eBay. The service allows for users to post items for sale and also want adds for almost anything (that is legal). I've already posted one of my old text books for sale.

The service integrates into Facebook very nicely by just providing another option in the navigation menu. The main strength of this service is that it utilizes the existing Facebook network. When an item is posted it can be limited and targeted to specific networks.

From what I have seen so far, the biggest benefit to this service is also its weak point: the users immaturity. Now this assertion obviously needs some support. From my experience with Facebook it is obvious that many people use it for social networking (duh). Looking at the demographic this often involves alcohol and partying and there are plenty of pictures of people totally smashed. I do not want to simply say that the entire demographic drinks too much and parties crazy, nor do I want to say that everyone is immature. I simply want to assert that some people think that inappropriately use of this new marketplace will be funny.

I've already seen adds that just degrade the quality of the service. These include ones where people are "selling" their girlfriend other ones where they are selling things they obviously don't own. I'm excited that this service has been launched and I will try to use it, but my hope is they add more powerful features that let the community moderate the posts.

The brightest future for this Marketplace will be in college book sales. Hopefully this will help college students organize and trade and sell textbooks among each other and take some of the expenses off of the students.

Sunday, May 13, 2007

Why I Like Facebook

I am in college, and I will admit to obsessing over Facebook just a little too much. I use Firefox (most of the time) to browse the internet, and one of my favorite ad-ons is PermaTabs. PermaTabs basically makes it so a tab will launch when Firefox starts and it is not possible to close the tab. I have three tabs that I always have open: Yahoo! Mail, Digg, and Facebook



All of that is really beside the point. Basically, Facebook is really high on my list of websites that I frequent. I even have wall posts, messages, pokes, and Cassie's status updates sent as text messages to my cell phone.

Personally, I am not a fan of MySpace. This mainly stems form the fact it does not qualify as a Web 2.0 site by my definition. Facebook on the other hand is constantly adding innovative features that keep pushing the social networking envelope. Sadly, these new features anger many members (probably those that like MySpace). Facebook's News Feed was probably the mosts famous of these features (as it made national news) but I now consider (and did when it was released) one of the more useful features the site has ever offered. The second place Facebook riot would probably be when they went public allowing anyone to register, but that was just a step in the sites evolution. Facebook still provides powerful tools to help guard ones privacy.

Finally, the actual reason I like Facebook is because I will one day become a software developer and Facebook seems to have many good practices going for them. Personally, I already have used PHP many times to program simple websites (although none are published). Facebook in their recent post on their blog talked PHP and Facebook. Basically, Facebook is one of the largest users of PHP and they are constantly developing to meet the demands of their large user base. Facebook users are probably some of the most loyal users with many of them visiting every day. (Citation Needed ;) Facebook constantly is contributing to these projects which they actually use in day to day operations.

Personally, I am very happy that companies such as Facebook are contributing back to the open source community that helped them get started. I predict that this cycle will only continue and the free software projects such as PHP will continue to thrive even in the face of competition from monetized alternatives.

Saturday, May 12, 2007

Back to School

My summer break is already over (at least for now), I'll be heading back to UofL tomorrow for summer semester. I only have a handful of classes that I have to take so maybe I will be able to ramp up my blogging some more with better and more frequent posts. I actually have more visitors recently (to my surprise and excitement) to my blog which is definitely good news. It is really crazy to look at the map of where people are visiting my blog from and realize that people just randomly come here from all over the world. The internet is truly incredible!

Friday, May 11, 2007

New Profile Picture

I have good news, I have a new profile picture for my blog as seen to the right (or at the bottom of this post). You can see pictures of my old picture at the bottom of this post as well. I'm really excited as the first one (although it was still good) was only temporary.

Thanks Cassie for putting your time into making it look great! You can see more of her artwork on her blog Cassie's Corner, but she hasn't been posting very often although she did post a random drawing recently.


My Old Picture


My New Picture

Software: Joost: Now That I Watched Some Shows


I actually watched content on Joost today, so I finally feel like I can review the way the software works. Overall I am pleased, but there is some good and some bad that I will try to explain.

First the good, the video quality (on my tiny laptop screen) is not bad. I am not sure how pleased I would be with it on a larger screen, but since I watch quite a bit of video on my tiny screen I was pleased. It was actually on par with larger podcast downloads which typically require pre-downloading and the H.264 codec that is commonly used for podcasts is rather process intensive. The CPU usage while using Joost on my computer tended to hover below 15% for Joost and around 22% total.

Surprisingly, Joost did not use that much hard drive access (although it was fairly constant). Bandwidth wise Joost is a bit of a pig, but actually I would like to see the program use more bandwidth, especially when I go back to UofL and have a bigger pipe than at home.

Now on to the complaints and other negatives of the sort... Amazingly, there is still no content. However, major progress has been made. The lineup is slowly expanding to include bigger name providers, but they are not putting on quality content. With the addition of more advertisers and the promise of more providers Joost may actually prove to be a direct competitor to traditional cable TV. This is great for me (a college student) who doesn't always get to watch television because of schedule conflicts.

Going over to the tech side some, I have a few complaints. When a program starts playing it tends to skip for the first few settings. I actually find pausing the program for a minute and the letting it play solves this problem. I have a feeling the increased load on the servers may be the direct cause of this problem and I would not expect this to be a problem for much longer. Another problem is the content skipping during computer use. For instance, I currently have Joost pulled up in a small window on top of my web browser and it has a tendency to skip once in a while. Mainly the audio just shudders for a second, but enough to be annoying. I am not exactly sure of the culprit here, it may be my computer, it may be the software, it may be something else.

One of the best features of Joost is definitely the fact it is an application. Recently I have been watching The Daily Show and The Colbert Report on ComedyCentral.com and have not been enjoying the viewing experience. It is very cumbersome to use a flash based player and (oddly) the processor usage is rather high. The best part of Joost is the fact all programming is on demand, meaning you simply pick the show and it starts playing. The main benefits Joost has over flash based players are it can go full screen and that when you restart it the program you were last watching is still there where you left off.

One of the down sides of Joost is the fact it is not easy to identify programs. Some channels actually have so much content it takes a long time to cycle through the entire list. I actually think they should make a sub menu so you can pick a show and then even a season if they start amassing a decent library.

One of the largest shortcomings of Joost is the lack of live content. The scary part here is that it may never be available. I am not an expert on the construction of Joost but it seems that the hybrid P2P system would not be very well suited to live streams. However, news form the Joost Blog seems promising about the P2P network as they reported the following.

We've also learned a lot about our system in the past couple of days, and more good news is that the P2P network is working well.


I guess I'll end by saying that I now have unlimited invites to Joost and if you want one just post your email in the comment section of my blog. The more people that start using Joost the more likely that better and better content will start appearing on it.

Joost™ the best of tv and the internet

Programing: Card Game War (Part 5 of 5)

This is the last post in my first series about the card game of war. I used C++ to implement this game and it is a computer playing itself. The basic concept here is to not determine who the winner is, rather, how many rounds it took to complete the game. My first post was about the RandomGenerator class I used to shuffle the deck of cards. The next class I made was a card class. This class simply represented a single playing card. Obviously, the deck class followed which was used to make an entire deck, shuffle it, then deal it. Lastly, was the war class which actually played the game and could return the number of rounds.

The concept here is to find, if any, mathematical anomalies that appear while playing the game War. These are the minimum and maximum number of tricks along with any trends that involve the frequency of a game ending after a specific number of tricks.

The remaining code calls on all of the previous classes. In my implementation I used header files which each post gives examples of what they should be named. Here is the final portion of code that will play 50,000 games of war.


#include <cstdlib>
#include <iostream>
#include <cstdlib> //Used for rand() & srand()
#include <string>
#include <fstream>
//Used to just make all kinds of crazy random numbers
#include "randomNumbers.h"
//Used to make an individual card object
#include "card.h"
//Used to hold an entire deck of cards
#include "deck.h"
//A game of War
#include "war.h"

using namespace std;


int main()
{
//An array containing the number of hits for each number
int winNumber[10001];
for(int i = 0; i < 10001; i++)
{
winNumber[i] = 0;
}
int max = 0;
int min = 10000;
long total = 0;
int successfulRuns = 0;
int trys = 50000;
int ties = 0;
for(int i = 0; i < trys; i++)
{
//srand(rand());
war myWar;
int rounds = myWar.returnRounds();
winNumber[rounds]++;
if(rounds < 10000)
{
//outFile << rounds <<"\n";
total += rounds;
successfulRuns++;
if(rounds > max)
max = rounds;
if(rounds < min)
min = rounds;
}
else
{
ties++;

}
cout << double(i)/double(trys)*100 << "\r";

}
cout << "100.0" << endl;
//outFile.close();

//Save the distribution of the number of rounds
ofstream outFile1;
outFile1.open("myfile1.txt");
for(int i = 1; i < 10001; i++)
{
outFile1 << winNumber[i] << endl;
}
outFile1.close();

//Save the results of the game
ofstream outFile2;
outFile2.open("myfile2.txt");
outFile2 << "The Number of Games Calculated Is: " << trys << endl;
outFile2 << "The Number of Ties is: " << ties << endl;
outFile2 << "The Maximum Number of Rounds Is: "<< max << endl;
outFile2 << "The Minimum Number of Rounds Is: " << min << endl;
outFile2 << "The # of Total Rounds Is: " << total << endl;
outFile2 << "The Average Number of Rounds Is: " << total/double(successfulRuns) << endl;

//Display the results of the game
cout << "The Number of Games Calculated Is: " << trys << endl;
cout << "The Number of Ties is: " << ties << endl;
cout << "The Maximum Number of Rounds Is: "<< max << endl;
cout << "The Minimum Number of Rounds Is: " << min << endl;
cout << "The # of Total Rounds Is: " << total << endl;
cout << "The Average Number of Rounds Is: " << total/double(successfulRuns) << endl;

system("PAUSE");
return EXIT_SUCCESS;
}


Finally, time for some results. First, to preface all of these results, I do not believe them to be accurate. I am confident that they are in no way comprehensive as I have earlier talked about the number of possible games to be in the order of 52!, a number many magnitudes larger than 50,000. I've already started work on a more accurate and simpler way of playing war, although less like the actual game, more useful for statistical purposes.

My first discovery when I ran the code is that I would run into infinite loops. Basically, I came to the conclusion that a game of war could be a tie based on the fact the players eventually run into a cycle where they end up playing the same hands over and over again.

Here are the results that were returned by my program:

The Number of Games Calculated Is: 50000
The Number of Ties is: 382
The Maximum Number of Rounds Is: 9798
The Minimum Number of Rounds Is: 9
The # of Total Rounds Is: 19431676
The Average Number of Rounds Is: 391.626


I simply put the cap on the game at 10,000 because I was not able to find a game which lasted longer than 9798 rounds. However, this is not to say that a game could last longer than this. I was not able to identify a game which lasted longer than this in my testing.

The horizontal axis is the number of rounds the game took to complete.
The vertical axis is the number of times out of 50,000 that the game was competed in that number of rounds.


The above graph is generated form the raw data on the number on the amount of times each game went a certain number of rounds. Notice the dot at 10,000 this is the games that tied or whose number of rounds is greater than 10,000. It is obvious that there is a very sharp spike to the left of the graph. The number of rounds that occurred the most (ignoring the 10,000 maximum) in the data was 61 rounds. A game of War ended after 61 rounds 314 times out of the 50000 games total. That is equal to 0.628% of the time.

The above graph begins to indicate some broader trends but is not percice enough to actually identify them. Lets focus in on only games that took less than 1000 rounds to complete.

The horizontal axis is the number of rounds the game took to complete.
The vertical axis is the number of times out of 50,000 that the game was competed in that number of rounds.

The above graph clearly indicates that there are two distinct curves: the first is a lower curve which has more frequency of happening but a wider range, the second is a higher curve which has less frequency, but a much steeper slope.

Another interesting point to note is the fact the shortest game lasted only 9 rounds. This is interesting to point out because it is definitely possible to have even fewer rounds. This only further emphasizes the fact that my data set is not comprehensive.

I would also like to note that in my program the game is played perfectly. That is, no cards are mixed up and a player puts the cards back into his deck in a very predictable manner.

I would like to do further analysis on this data, but it will have to wait. Due to me fears that this algorithm is not accurate, I will post a much more through analysis of the game of War after I rewrite my code from scratch. I expect to publish my new (more through) findings after I complete the code and get some free time to actually think about some of the intricacies of the problem.

Programing: Card Game War (Part 4 of 5)

In my last post in this series I talked about the deck class. This class represented the deck of cards that will be used in the game. It simply served to make all 52 cards, shuffle them, then deal them to each player. This part of the code is the most complex, and before I even post it I would like to state my question about the accuracy of this code.

First off, this is an old piece of code that I mainly just wanted to publish so I putting it out that, basically as is.

This segment of the code implements the actual logic involved in the game of war. Sadly, i think it does not do it accurately. I do know it is not efficient. I am going to post this code in its current state even though I think there is a major logical error somewhere in the game.

Again, here are the header files that were used up to this point.


#include <cstdlib>
#include <iostream>
#include <cstdlib> //Used for rand() & srand()
#include <string>
#include <fstream>
//Used to just make all kinds of crazy random numbers
#include "randomNumbers.h"
//Used to make an individual card object
#include "card.h"
//Used to hold an entire deck of cards
#include "deck.h"


So, here is the code which is stored in the header file war.h


class war
{
private:
card player1[52];
card player2[52];
card buffer1[52];
card buffer2[52];
card playingArea[52];
int indexPlayer1;
int indexPlayer2;
int indexBuffer1;
int indexBuffer2;
int indexPlayingArea;
int rounds;
card getPlayer1Card();
card getPlayer2Card();
void player1WinTrick();
void player2WinTrick();
int playTrick();
public:
war();
int returnRounds();
};

war::war()
{
//Make The Deck Shuffle The Cards
deck myDeck;
myDeck.shuffleCards();

//Set Some Default Values
indexPlayer1 = 52/2 - 1;
indexPlayer2 = 52/2 - 1;
indexBuffer1 = 0;
indexBuffer2 = 0;
indexPlayingArea = 0;

//Deal out a deck
for(int i = 0; i < 52/2; i++)
{
player1[i] = myDeck.dealCard();
player2[i] = myDeck.dealCard();
}
int winner;
int i = 0;
bool loop = true;
while(loop)
{
winner = playTrick();

if(winner == 1)
{
player1WinTrick();
}
else if(winner == 2)
{
player2WinTrick();
}

if(indexPlayer1 <= 0 && indexBuffer1 <= 0)
{
loop = false;
}
if(indexPlayer2 <= 0 && indexBuffer2 <= 0)
{
loop = false;
}
i++;
//Give up on round 10,000 - declare tie!
if(i == 10000)
{
loop = false;
}
}
rounds = i;
}
int war::returnRounds()
{
return rounds;
}
void war::player1WinTrick()
{
card nullCard;
for(int i = 0; i < indexPlayingArea; i++)
{
buffer1[indexBuffer1] = playingArea[i];
indexBuffer1++;
playingArea[i] = nullCard;
}
indexPlayingArea = 0;
}
void war::player2WinTrick()
{
card nullCard;
for(int i = 0; i < indexPlayingArea; i++)
{
buffer2[indexBuffer2] = playingArea[i];
indexBuffer2++;
playingArea[i] = nullCard;
}
indexPlayingArea = 0;
}

int war::playTrick()
{
card nullCard;
//Get Player 1's Card
card player1Card = getPlayer1Card();
//Get Player 2's Card
card player2Card = getPlayer2Card();

//Player 1 Wins The Trick
if( player1Card.getCardValue() > player2Card.getCardValue() )
{
//Put the two cards in the hand

playingArea[indexPlayingArea++] = player1Card;
playingArea[indexPlayingArea++] = player2Card;
return 1;
}
//Player 2 Wins The Trick
else if( player1Card.getCardValue() < player2Card.getCardValue() )
{
//Put the two cards in the hand
playingArea[indexPlayingArea++] = player2Card;
playingArea[indexPlayingArea++] = player1Card;
return 2;
}
//Tie Game and add 3 to the pile and play another trick
else
{
//Put the two cards in the hand
playingArea[indexPlayingArea++] = player1Card;
playingArea[indexPlayingArea++] = player2Card;
// W
player1Card = getPlayer1Card();
player2Card = getPlayer2Card();
playingArea[indexPlayingArea++] = player1Card;
playingArea[indexPlayingArea++] = player2Card;
// A
player1Card = getPlayer1Card();
player2Card = getPlayer2Card();
playingArea[indexPlayingArea++] = player1Card;
playingArea[indexPlayingArea++] = player2Card;
// R
player1Card = getPlayer1Card();
player2Card = getPlayer2Card();
playingArea[indexPlayingArea++] = player1Card;
playingArea[indexPlayingArea++] = player2Card;
// WAR
return playTrick();
}
}

card war::getPlayer1Card()
{
card nullCard;
//There are cards left in the deck and then deal a card
if(indexPlayer1 >= 0)
{
card player1Card = player1[indexPlayer1];
player1[indexPlayer1] = nullCard;
indexPlayer1--;
return player1Card;
}
//Player 1 Has No Cards Left In hand therefore needs to move buffer to hand
else
{
//If Cards Are In The Buffer
if(indexBuffer1 > 0)
{
for(int i = 0; i < indexBuffer1; i++)
{
player1[++indexPlayer1] = buffer1[i];

buffer1[i] = nullCard;
}
indexBuffer1 = 0;
return getPlayer1Card();
}
else
{
return nullCard;
}
}
}

card war::getPlayer2Card()
{
card nullCard;
//There are cards left in the deck and then deal a card
if(indexPlayer2 >= 0)
{
card player2Card = player2[indexPlayer2];
player2[indexPlayer2] = nullCard;
indexPlayer2--;
return player2Card;
}
//Player 1 Has No Cards Left In hand therefore needs to move buffer to hand
else
{
//If Cards Are In The Buffer
if(indexBuffer2 > 0)
{
for(int i = 0; i < indexBuffer2; i++)
{
player2[++indexPlayer2] = buffer2[i];

buffer2[i] = nullCard;
}
indexBuffer2 = 0;
return getPlayer2Card();
}
else
{
return nullCard;
}
}
}


First off, the actual implementation of the game is awful, primarily because of the coding practices. It is difficult to follow the code, I will admit. However, I'll explain some of the basics so at least it is a little understandable.

First off, when the constructor is called, it is passed no parameters. The constructor actually plays through all of the rounds of the game and the results can then be accessed. There is only one public method named returnRounds() which if you haven't already guessed returns the number of rounds that it took to complete the game. That is the main focus of this entire project.

The actual logic of the code involves several complex (and inefficient) interactions of arrays which very accurately mimic how the game would be played in real life. Again, program efficiency was sacrificed for realism to how the game is played.

My last post in this series will be the actual main class that creates an instance of the war class and gets some results out of this program. I'll be looking for any pattern that arise from this implementation of the game.

Thursday, May 10, 2007

Television: Heroes

Something different for a change seemed to be in order, so here it is. Heroes is a relatively new television (new as still in its first season) that is one of the best shows on television. Think of it as a version of X-Men where the point is not to fight, so much as just live out their lives (however complicated there lives may be). The show does have many parallels to X-Men but they are only skin deep, the show branches off into deep character development that makes the show so fascinating.


The season is coming to a dramatic conclusion where apparently a large fraction of New York is going to be taking out by the exploding man (yes, there is a Wikipedia article on the exploding man although it is actually about an upcoming episode). There are only two episodes left according to the Wikipedia article on Heroes (List of Heroes episodes) and personally I am looking forward to resolving some conflicts and learning more about the more mysterious characters. The end of this season will probably be a giant cliff hanger (like every single episode), but I can live with that (as there will be a second season).

This series does have a many similarities to other comic book based movies and shows. It even has a graphic novel associated with it that I haven't quite got around to reading yet (I keep saying I'll read them but never do). There is no way I could even talk about this series without mentioning the effects. They are truly amazing for a television show. Every episode I watch I am convinced I am watching a movie (be it a movie even longer than The Lord of the Rings) but a movie none the less. Additionally, it has amazing artwork involved in the plot.

This is definitely a series that has taken me by surprise. I really did not expect it to be a amazing as it has turned out to be. I only hope it holds my attention longer than other series that seem to get Lost in complex plots that never seem to resolve.

Wednesday, May 9, 2007

Computer: Vista Doesn't Like to Burn, or Does It?

I upgraded to Vista expecting to have some problems. I did not expect one of them to be the ability to burn CD's and DVD's. Since the initial problems with burning (and even reading) some CD's I gave up on all attempts to fix the problem. However, I found the urge to once again burn a CD today and ran into the same problem.

Vista Burn Error

Basically, I get the above error message, it is not pretty. It sounds like Power Calibration Area Error would be quite serious. I received this error using ImgBurn, a free piece of software (compatible with Vista) used to burn ISO images. I had no problem with this software under XP and found it to be a very compact interface and the software performed nicely.

Vista Burn Error 2

Computer Software Troubleshooting 101, use a different piece of software if the first one fails. Toshiba Disc Creator here I come, again with an error! This time the error was a little more specific information on the problem. The error code given was: 060267-26-2A037303 and a quick yahoo search of the topic returned zero results so I appeared to have hit a dead end. But wait, there are more errors to come. I click the OK button and guess what pops up:

Vista Burn Error 3

Yep, another error! This time it was: 3109CE-26-00000000 which I didn't even bother to search because of my results form my last attempt to find a solution.

Computer Software Troubleshooting 102, if the software does not appear to be the problem, blame the hardware! I was dealing with a CD drive here and the first culprit would be the laser. In the case of a laptop drive, the laser is actually exposed when the drive is ejected making it a prime target for dirt or other things that would obstruct the ability to write to a disc.

After spending a few minutes looking for a CD laser cleaner disc that I had from way back in the day with no luck, I decided to get creative. Actually, I decided to spray my drive down with a can of air. Now that I have typed it down, it really does sounds like a bad idea, but let me share my results before any conclusions are reached.

First off, after visually inspecting the laser lens there did not appear to be anything obvious that would prevent the drive from working. My basic technique for cleaning was spray air all over the internal parts of the drive, focusing mainly on the electronics that actually do something. It didn't take but a few seconds and I was done. I did not expect it to work and though all hope of me ever burning a disc again was lost. However, my results were unexpected!

Working Burn

Basically, it worked. I am not exactly sure what happened, but I was successfully able to burn the ISO that I wanted to burn. To top things off, it was on a disc that failed to burn just a few minutes earlier. Hopefully this problem does not arise again, but at least I know that a can of air is useful for removing dust and getting annoying CD burning problems to go away too. I haven't tried burning again since my successful burn, but I am hoping I managed to fix the problem once and for all.

Tuesday, May 8, 2007

Internet: Yahoo Pipes and Facebook.

I really started blogging because I posted a few Notes on Facebook and enjoyed it so much I started a real blog. For a while I was importing this blog into Facebook, but since many of my posts just wouldn't make sense being in Facebook, I turned off that feature. Basically, it was an all or none deal. Now I am turning it back on!

The reason is, I now will be able to pick which posts make it into Facebook. I am going to be able to do this because of an awesome tool provided by Yahoo! called Yahoo Pipes.

Basically, Yahoo! Pipes is a tool that lest you do increadibly complex (or simple) operations to RSS feeds and other content and make a new RSS feed of whatever you like. In my case I made the A Jared Blog - Facebook RSS feed. My actual pipe is publish and the logic of it is freely available to copy.



The interface for Yahoo! Pipes is graphical, making it very easy to use. Basically, you drag the building blocks into the working area, connect thing using a series of tubes, I mean pipes, and then out comes an RSS feed. I simply used three blocks. The first imports the RSS feed from my blog, the second only allows posts with the tag Facebook to continue along the pipe, and the last is the output of the pipe into a new RSS feed. Obviously, my use of this software is a very simple application, but the result would be very complex logic is not difficult to achieve.

One of the best things about Yahoo! Pipes is its ability to combine different RSS feeds, then search them and restrict them down to a more usable and informative feed. Did I fail to mention yet that this service is free! I have actually played with combining feeds together before and came up with some interesting results.

So, from now on, when I think it is appropriate, I will have entries (such as this one) from my blog imported into Facebook. I don't know why I did not think of this earlier, but it gives me an excuse to talk about Yahoo! Pipes, which is definitely an awesome tool! Since this does add another layer of complexity of getting the post from Blogger then to Yahoo! and then to Facebook, it might take a while for the post to get to Facebook. However, I don't expect to have any problems.

UPDATE: I already found a limitation. Basically, the logic of limiting the feed works if the post only has one tag (in this case Facebook). I'll try to find a workaround, but I might not be able to. The good news is, that whenever I change my pipe, the RSS feed automatically adapts.

Monday, May 7, 2007

Software: iTunes and QuickTime Under Vista


It has been a while since I upgraded to Vista, and I am glad I have. However, I am still having problems. The main one that has bothered me recently, that I actually want to be fixed, is that I can not watch my video podcasts. The culprit is not iTunes, it is QuickTime. Basically, when I try to watch a video podcasts, like clockwork, I bluescreen. I actually am scared to click on a podcast under iTunes because I have to suffer through a reboot. (On a side note, reboots on Vista are not that bad. They are about the same as XP except software starts working faster but the actual loading of files into RAM takes forever because of the cache that Vista uses.) I am really fed up with the crashing and I was excited when there was an update for QuickTime, but just today I tried playing a podcast (after preparing for a reboot) and yet again I received a bluescreen.

Look up, that is the bluescreen that keeps popping up. Actually, the bluescreen comes in two flavors. One, which I was getting at first, was only being shown for a few seconds and then Vista would reboot happily. However, I have now been getting a bluescreen that stays up long enough for me to get out my camera and take a picture of the screen. This specific type of bluescreen is one of those enjoyable ones where it freezes the audio output on a loop and a nice screeching loop of the first sound of the movie is played.

Lately I have been having to watch the podcasts that I really want to watch on their websites. I really have been watching a lot fewer podcasts since I upgraded to Vista.

Sunday, May 6, 2007

Programing: Card Game War (Part 3 of 5)



In my last post in the series I published the card class. This class will now be used in the deck class. Additionally, this class also uses the random class which was part of my first post of this series.

As before, I am going to post the header files used used in all of the classes. However, this time I will include the header files that include the randomNumber.h and card.h files.


#include <cstdlib>
#include <iostream>
#include <cstdlib> //Used for rand() & srand()
#include <string>
#include <fstream>
//Used to just make all kinds of crazy random numbers
#include "randomNumbers.h"
//Used to make an individual card object
#include "card.h"


The deck class is actually a very simple class. It serves two purposes. First, it creates an entire deck of cards using the card class. The other main purpose is to actually shuffle the cards. I would like to emphasize the real lack of thoroughness by using this shuffle method. More about the later. Here is the code, but remember this code requires the RandomGenerator and card class.


class deck
{
private:
card myCard[52];
int cardPosition;
RandomGenerator number;
public:
deck();
void resetDeck();
void printCard(int);
void printDeck();
void shuffleCards();
card dealCard();
};

deck::deck()
{
resetDeck();
}
void deck::resetDeck()
{
cardPosition = 0;
for(int i = 0; i < 52; i++)
{
card newCard(i);
myCard[i] = newCard;
}
}
void deck::printCard(int myIndex)
{
(myCard[myIndex]).printCard();
cout << " ";
}
void deck::printDeck()
{
for(int i = 0; i < 52; i++)
printCard(i);
}
void deck::shuffleCards()
{
//Cycles through entire deck
for (int i = cardPosition; i < 52; i++)
{
//Picks a random card
int r = number.cardIndex();
card temp = (myCard[i]);
//Swaps the cards
myCard[i] = myCard[r];
myCard[r] = temp;
}
}
card deck::dealCard()
{
//Deck is dealt from 0 to 51
if(cardPosition < 52)
{
return myCard[cardPosition++];
}
else
{
//return NULL;
}
}


Looking at this code, it becomes obvious that there are quite a few ways to arrange a deck of playing cards. I believe it is equal to 52! which is a huge number. I had to look it up on a table and found it to be equal to 8065817517094387857166063685640376
6975289505440883277824000000000000 (that is all one number, I just split it in half so it would mess with my blog's formatting.) Not to be totally obvious, but I'm not going to run this many test to see what the results to every possible game of war is (not yet at least, or with this type of implementation).

For my purposes, I'm just going to run a very small sample of games. The code I currently have is not able to predetermine a deck of cards. A future version might, but that would require indexing all the possible combinations and 52! is a ton of possible combinations and indexes. I'll leave that headache for another day. If I experiment with having all possible combinations of War played out, it would most likely be with a smaller deck before I moved up to such large numbers. I can only imagine how long these computations would take.

To above code is very simple. It simply serves to make a deck of cards. Then the cards will be shuffled. Then the cards will be dealt out. This is all the above deck is used for, nothing else. Once the deck is dealt out, it will no longer be used. The cards will be tracked using the code that will be part of my next post.