Saturday, December 20, 2008

Windows for Linux/Power users

I am not really a Linux guru and I am not a Windows power user. However, I am comfortable in either environment. I do several things in each that make my life easier, and in general I try to make the two environments similar when I configure them. Below are some useful links I have collected for doing some snazzy/slick things with Windows that might not be for the average user. These are especially useful if you are a Linux guy working in a Windows world.
  • Microsoft released some power toys for Windows that includes a desktop management system and some other nice tweaks.
  • You can try X Mouse to get X11 mouse behavior in Windows. Highlighting cut-and-paste is useful.
  • I have never used them, but MinGW is a collection of free header files and libraries for compiling windows programs that run without external dlls, such as cygwin's.
  • Xming has been recommended to me as a good X-windows program for windows. Here are some notes. I tend to use whatever I find installed on my computer already.
  • Last but not least, here are a few other people's lists of useful tools and tricks for those living in a Windows world:

Monday, December 15, 2008

Killer Bunnies Unleashed

A couple years ago my dad got me Killer Bunnies and the Quest for the Magic Carrot for Christmas. I thought "Haha, very funny" and then proceeded to get myself, my family, my in-laws, and most of friends addicted. It is a crazy fun game, although it is also a bit complex. The Quest is over, and the Journey to Jupiter has begun.

My parents came over last night for dinner and since they weren't going to see me again before my birthday I opened my present from them: Killer Bunnies and the Journey to Jupiter!

That's the box. It's a pretty big box. Here is some of the stuff that was inside:

They have obviously learned a few things from Quest. The box has room for the future expansions (my quest set fills the original box completely with the cards and then fills the onyx box completely with the manuals, dice, and extra stuff). Also, they gave the vouchers (used for change) right at the beginning. Here is a picture of what makes Jupiter so special:

I think something my dad says really captures the feeling. It went something like this: "Gee, you have the cards and then a board game on top of it! That shouldn't be too complicated!" He was being sarcastic. It will be a while before we have time to learn how to play (probably this weekend), and then it will probably be many times after that before we finally get it right.

Friday, December 12, 2008

Every hero has its tragic flaw

When I first started to hear about NBC's hit TV show Heroes I was pretty sure it was something I would like. For starters, I do more than my fair share of hero worshiping. I idolize those who are make tough choices that affect many people for good. There are probably some deep psychological issues there, but that is not the subject of this post. I enjoy science fiction. My favorite book is Ender's Game, I am a bit of a Star Wars nut, and I enjoy Star Trek. I even like the somewhat more obscure stuff, like the Riverworld series. Heroes is science fiction, and the premise is pretty good science fiction. Although Heroes tries to distance itself from X-men and other comic book heroes, there are some obvious similarities and I enjoy comic book movies. Lastly, I have always been a TV bum. You might not know this because since going off to college I try to avoid TV like the plague. However, I'll watch pretty much anything that doesn't offend my sensibilities.

Since I was in graduate school and since I did not want to get sucked into TV again, I did not start watching Heroes in the beginning. However, after some prodding from my father-in-law I succumbed and watched starting halfway through the first season. The plot was intriguing and the show was riveting. Although that first season ended weakly, I had high hopes for season two. I did not dislike season two as much as some, but I did not feel the excitement that was there in season one. A little something was missing. I just watched my first season three episode last Monday. I had been following along on Wikipedia, but my schedule (and crummy TV antenna) has prevented me from watching it. I have to say I probably won't watch it again this next Monday and they'll have to do something for me to come back when they return.



What happened? Upon reflection, Heroes is a series that is doomed to fail. Maybe there is a way out that I have not seen. I really hope so. However, there are several clear and obvious reasons why the things which made season one so good will not ever be able to be brought back:


  • Ordinary people with extraordinary abilities. The problem with that tag line is that the people stopped being ordinary by the end of season one. The whole "coming to grips with your powers" issue only works once. After that, you have the grip. The show has tried to recreate this by making people lose their powers, but that does not work more than once or twice. Now it is just a gimmick. The solution is to bring in new characters, but how does one make room for these new ordinary people when the audience loves the old characters? They tried to bring in new characters simultaneous with carrying the new ones along in season two, but people responded negatively in general.
  • Sylar, Peter, Hiro, the Haitian, and Arthur. Some of the characters are just too strong. The answer or cause of any problem is one of them. They can cancel each other out and create interesting conflicts, but anybody else verse them just is not interesting. People just want to see Sylar and Peter go at it. Hiro never really does anything, because he can actually do anything. Who knows what the Haitian's agenda is and Arthur. . . well, hopefully we don't have to talk about Arthur ever again. By creating characters which are so powerful, the rest of the cast becomes less interesting side-trips.
  • Just kidding. I stopped caring about Star Trek: Voyager when too many of the episodes never really happened. In other words, something would happen at the end of an episode (or worse, a multi-episode story) that would undo the major events of the story. This happens too much in Heroes as well, and has steadily gotten worse. I enjoy the flashback episodes, and the future episodes can be a lot of fun (my favorite episode is still the future episode from season one). However, going back and forth in excess and not having continuity makes things hard to follow and, honestly, not worth following. Also, taking away powers and then giving them back, or killing someone and then reviving them, only work as rare plot devices and then only with certain characters. If the audience can't rely on anything, they will pick another show. On the other hand, the super-powerful characters make it hard to do anything but kill each other and bring each other back.


I think that is all I am going to say for now. I really liked Heroes, and I will follow the story line for however long it goes on. I might not watch it again, though. It is on a suicide run. It has been since the beginning. I do not see any way to fix it. Hopefully the producers do. Maybe then I could watch again.

Thursday, December 04, 2008

A Google Doc Presentation

My wife and I already use Google Docs to do our budget and keep track of our email address book for yearly Christmas cards. I also use Google docs to keep track of a number of other things. It is also integrated with Gmail, so you can open up office attachments from Gmail directly into Google Docs.

I have done spreadsheets and documents, but I have not done forms. Tonight I uploaded a powerpoint presentation to see how it would turn out. You can see it here:


Obviously, the formatting did not carry over completely correctly. I'm sure I could tweak the text to make it look as nice in Google as it does in Powerpoint, but that really was not the point.

Of course, I'm not really sure what the point really is. Maybe to share Kruskal's algorithm and connected components with the world? Nope.

Monday, December 01, 2008

Hyrule is safe, yet again

Last Saturday night I finally beat Legend of Zelda: Twilight Princess. My wife gave it to me as a graduation present at the end of August. She had remembered, but I had forgotten, that when we first started hearing about the Wii I had pointed to this game as awesome. That was before the Wii ever came out. Between then and when we finally got our Wii, I had forgotten about how cool this game is supposed to be. My summary judgement: this game lives up to the expectations, although there were some/many places were it gets tedious.

I was dumbfounded by how long it took me to get to the first level. For those familiar to the series, that is also time spent with the minimum number of hearts. It was a few hours before I actually crossed the threshold of the forest temple. Mind you, it was not all safe/boring story sequences. A lot of the time is spent fighting, and the most tedious parts are spent after discovering the game has rudely turned you into a wolf with an annoying riding imp called Midna. Think "Navi" only worse. 

It takes a while to get used to being a wolf. I spent the first area as a wolf repeatedly falling off the castle while giant bird things squawked at me. However, shortly after that the game teaches you a multi-monster attack that greatly simplifies feral life. It takes a few serious battles to master the attack, but then being a wolf is never really a problem again. 

Zelda games have a habit of having things happen where it is not at 
all clear what the player is supposed to do. This is not necessarily the player's fault, and the in-game help (a.k.a. annoying imp Midna) is not always that helpful. Normally these  things happen during boss fights, where going back out to see what you missed is no longer an option. It wouldn't help anyway. An early example is the fight shown in the picture to the right. The evil, boar riding goblin Link has been chasing suddenly traps Link on the bridge and a joust ensues. If the boar spears Epona (Link's horse) then you have to start over. It then took me a good half an hour to figure out how to do any damage to the guy (accelerate to the right and then slight in with a swing). A very frustrating experience. You have to fight the guy a few more times during the game, but luckily the rest of the times are fairly painless. Anyway, this type of "guess what the game designers were thinking and then figure out a way to execute it" occurs all the way up to the final boss, where I was stuck in two of the phases for a while trying to figure out how to do any damage at all. 

My final gripe about the game is the Cave of Ordeals. No, it is not too hard. I actually think it is an awesome idea and got so much better by going through it that the last level was ridiculously easy. My problem with the Cave of Ordeals is that I got all the way through clearing out room 47 when the door to room 48 refused to open. I had two rooms left, near full health and near full items, and the game exhibited some kind of bug. I wandered all around the room for ten minutes trying to find what I was missing to open the door. I turned into a wolf and sensed. Nothing. The game just had a bug. You can bet I wasn't going to go all the way through those 47 floors again anytime soon to see if it was going to happen again. So I just beat the game and will pull it out again when I have forgiven it for back stabbing me on floor 47 of the Cave of Ordeals. 

Enough with the negative, though. There are many, many positive things to say about the game. It is huge! I did not do all the side quests and it still took me around fifty hours. Like most Zelda games, it takes a bit to get used to the controls, but about mid-way through the second level playing becomes a joy. There are so many creative and fun game mechanics built into the game. At first there are new twists on older items. For me, using magnets with the iron boots was new and fun. However, a little over half way through the game it starts giving you completely new items which are very clever and fun to mess around with. My favorite is the dominion rod (which animates certain statues) but all four of the last items were fun to learn and explore. 

The best part of the game, though was the hand-to-hand combat. Unfortunately, tough hand-to-hand combat can be difficult and so it is left until the end of the game. Up until that point, most/all monsters can be taken care of by using a certain item or doing a hack job on them. In the last few levels and the Cave of Ordeals, you have to actually duel. This involves using various special moves you pick up during the game and dealing with armored foes that can parry and use special moves of their own. After you get the hang of it, one-on-one battles like this are actually pretty straightforward, although still fun. The many-on-one battles of the Cave of Ordeals are more of a challenge, except I never got to the last one because of the before mentioned bug. It is really fun to swing your shielf with your left hand, knock the guy off balance, push a button to jump, and then swing your sword as you come down and the enemy is still exposed. 

WARNING: SPOILERS IN THIS PARAGRAPH. Do I have any tips? If you are the kind of player who (like me) likes to go through the game on his or her own and then get a guide to finish up the missing parts, you need to track which Poes you capture and which heart containers you get from the beginning. Otherwise there are too many to mess with at the end of the game. You can drink the colored (non-purple) Chu slime for good effects. Rare Chus show up in various locations. I found one in the cave in between the Kakariko Village and Death Mountain. Rare Chus are like Fairy tears, so you can then double your power up fun. Finally, try using the fishing rod when you are fighting hand-to-hand with the final boss. END OF SPOILERS.

Maybe this game isn't for everybody. Mario Galaxy is probably slightly better as an overall game. I think Legend of Zelda: Twilight Princess is still the second best Wii game out right now (with Mario Kart as a close third), even though it was a launch title originally meant for Game Cube. 

Saturday, November 29, 2008

Shopping deals

When shopping, especially for tech stuff, I typically check out edealinfo. That web site collects on-line coupons, promotions, and sales. They post these as applied to products, sometimes showing neat combinations for super deals. While I encourage you to just click over and look around, here are a few of the page I particularly like:

  • This page collects deals for Dell computers. Even if I am not getting a Dell (dude), I use this page to provide a nice baseline
  • A page collecting credit cards deals can be useful, although I have not really used this one all that much
  • My favorite page is probably the one with free stuff. Who doesn't like free stuff? There normally ends up being a shipping cost or something, but normally they are still a good deal
  • If you like edealinfo, you might consider subscribing to one or more of their RSS feeds in order to keep on top of their many deals
Feel free to share any other deal sites or specific deals. There are tons of good deals out there to be had, it is just a matter of finding them at the right time.

Thursday, November 27, 2008

BAE Systems Career Fair Events

BAE Systems is hiring with positions in both Engineering and Operations. I am not a recruiter for BAE, but wanted to spread the word anyway. Please check out the web site for an upcoming career fair in Nashua, New Hampshire. If you are interested in these opportunities but are not in the New England area then you should check out the virtual career fair. If you feel I know you well enough to refer you for work BAE Systems, then please let me know and I would be happy to submit a referral internally. Good luck!

Monday, November 24, 2008

Windows software

Over the years I have collected lists of useful, cool, and free software for Microsoft Windows. Although I may not always have all of these tools installed, I have most of the tools installed most of the time. I share them here in case you have not heard of some of them before. Please share any you might think I am missing. Remember, they have to be free and for windows

  • I heard from Dvorak about AVG Free, a free anti-virus program that should be adequate for home use.
  • Microsoft offers a collection of Power Toys for Windows XP. Although their usefulness varies, I like the more intelligent task switcher and the desktop manager.
  • Crap Cleaner lives up to its name. During regular use, stuff collects in Windows like plaque on teeth. Crap Cleaner quickly, easily, and simply gets rid of all the build-up.
  • My daughter loves using Skype to talk to her great grandparents across the country. The setup is easy, it works for both PCs and Macs, and even my old computer can handle it.
  • Handbrake rips DVDs and encodes them into other formats. It is useful for getting movies onto your iPod.
  • Speaking of an iPod, you probably want to have iTunes installed. Other services are catching up and/or passing Apple's, but they are still the biggest kid on the block for now.
  • For web browsing I use Google's Chrome. This is mostly because I am a small Google fanboy. Firefox is probably still the better browser, although Chrome has some nice features and a simplistic elegance that is fun.
  • Flickr provides an uploader tool that makes uploading photos to their site very easy.
  • Google pack has a good collection of software, although I must admit that the ones I use the most are imports not made by Google (Skype and Adobe Reader).
  • The Open Disc aims to put a good collection of high quality open source software on a CD. You can see what they put on their disc and download interesting programs individually. I would recommend a few especially.
    • The Gimp is an excellent image editing program aiming to replace Adobe Photoshop.
    • Firefox is the best web browser out there as of writing this entry.
    • Pidgin puts together a bunch of IM clients into one interface making it very convenient to IM using AOL, Yahoo, MSN, and Google all at once.
    • I really like the Thunderbird email client.
    • WinSCP is useful for securely copying files, but I must admit that non-techies probably won't get excited about it.
    • Open Office continues to steadily improve as a free and compatible (for the most part) alternative to Microsoft Office.
    • Since I have not had a working printer for a few years, I rely a lot on PDF Creator. I can "print" to the pdf creator and then move the pdf to where I want to print it.
    • Although it is not the best anti-virus software, Clamwin is free.

  • The Software for Starving Students used to make a good collection of free (not necessarily open source) software. They even had a collection of free software for Apple's OS X. Most of the Windows software shows up somewhere else on my list, which is probably why the project was discontinued and the list is only available on the internet archive.

That seems to pretty much sum it up. Anything I missed? I hope you try these tools out. Some of them may be a bit different than what you are used to, but you can't beat the price. Some of the free software is actually better than their costly counterparts.

Saturday, November 22, 2008

Victory

Or how I got my DVD burner to work. You might recall from a previous post that I was having some trouble burning DVDs. At the time I achieved the desired functionality (burning a watchable DVD) by upgrading the firmware (from Liteon SOHW-1633S to 1653). However, I still could not burn data DVDs, a necessary feature for a family history project on which my wife is working.

This morning I decided that my iomega SuperDVD drive was not going to work with my computer, so I started trying to fix my wife's Mac Mini. It had also failed to burn the discs. I thought this strange, since "it just works" is one of Apple's selling points. Turns out it is also a lie. My wife's Superdrive is a Matshita DVD-R UJ-845C. After reading various help forums, I determined that an update on the Mini had broken DVD burning for a lot of people with this drive and that Apple and Matshita were both not doing anything about it. A simple firmware update would fix it, but none of the updates released by Apple seemed to do the job (1.0, 2.0, or the risky and recalled 2.1). So, I gave up on the Superdrive as well.

Now, just to be silly, I pulled the iomega SuperDVD off of my desk and plugged it into my wife's Mac Mini. Nothing appeared to happen. I inserted a blank DVD. It opened the DVD, I dragged files to burn from the computer, clicked burn, and waited for it to finish. Everything went fine. We are now on burn number five of our media of which we need ten copies. The Superdrive may not have "just worked," but the iomega external drive sure did.

Tuesday, November 18, 2008

Google Reader

Whether you know it or not, you probably read RSS (real simple syndication) feeds. You also probably share the items on these feeds with your friends. My favorite tool for both reading and sharing is Google Reader.

Here is a video overview of the service, including how to get started (the voice is kind of loud, so watch your volume):


Here are some other sites for getting started:
  • Google's tour of Reader
  • Another video intro to Reader
  • cnet's newbie guide to Reader

    None of those guides is perfect, but they should all give you an idea. Here is my one paragraph guide for the super lazy and/or busy: Go to Google Reader and sign in using your Google account. If you are the last person in the world to have a Google account, now would be a good time to sign up. Now that you are in Reader, you want to add subscriptions. In separate tabs (if you are still using IE6, just give up and go home. Seriously) open up some of your favorite news sites and look for the RSS icon () or something that says RSS. Click on it to open a nasty looking text page (the feed). Highlight the URL and then go back to the Reader tab. Click on add a subscription and then paste the copied URL. Click "add" and then hope for the best.

    Eventually you will get the hang of things and realize that there are different ways to do things, but that should get you going. One cool part of Reader is sharing. You can check your sharing settings under "Sharing settings." When you are reading an article or summary in Reader, at the bottom is a link that says "Share" and has a gray version of the RSS logo to the left of it. When you click on it, the logo turns orange and you have shared that article. The article then shows up in your public feed ("Shared items") and it gets shared with your friends. Here's a link to my shared items. That's it!

    Alright, maybe the other guides are better. Oh well. Here are a couple of links for even more information:
  • Wikipedia entry on Google Reader
  • The official Google Reader blog
  • Sunday, November 16, 2008

    Internet Archive

    I have been collecting a list of useful programs for another post. One of my favorite sites for finding the newest and coolest free useful programs was Software for Starving Students (I believe some students from BYU, my alma mater, started the project). However, those of you who click on that site will notice that the project is no longer maintained. Although OpenDisc is also a great project, I find it does not have the breadth that the SSS discs did. I found the most useful part of the web site to be the list of applications in their FAQ, and I really wanted to see what used to be on that list now that it was no longer there.

    Enter the Internet Archive. I first heard about the Internet Archive on TWiT 144. Little did I know how useful I would find it to be. The Internet Archive is a pretty straightforward idea: archiving the internet. So they just make copies of all the tubes and put them in filing cabinets somewhere. . . . Obviously the process is a little different, but the idea is to archive the internet so when a page goes away, the information does not get lost.

    The Archive has a search engine called the "Wayback Machine." I simply typed in the URL for the Software for Starving Students site and then clicked on "Take Me Back." Up came a listing of all the times the site had been archived. I clicked on the most recent archive, Jan 27, 2008, and discovered (to my delight) that the website was still up at that time. I clicked on the FAQ link and went to that page in the archive. It was a bit slow, but it was there!

    What does this mean? If some web page has changed and you need info on the old page, you may still be able to find it. This also means that the pictures of you and your ex-boyfriend you thought you took down may still live on. . . and on. . . and on!

    Saturday, November 15, 2008

    Popular posts

    It turns out I have had two semi-successful blog posts. No, they did not make the front page of Digg. No, they did not make me semi-wealthy. One of them did get copied by another blog, and another comes up fairly high on Google.

    My post on my Google phone interview drew a little attention. Most of this attention came from my lab mate at school, but apparently somebody else caught on.
    This blog of Google interview experiences lifted my post right out of my blog, along with some information from my old personal web page. I'm somewhat annoyed that I was not asked and that my original blog post is not cited, but the post has back links inside of it and the coolness of being noticed outshines the annoying-ness of being ripped off. Please just ask and (especially) cite before stealing, I will more likely than not okay it. Back to the subject at hand: that post got noticed.

    My post on my troubles with iTunes 7.5 pulled in a lot of comments, most of which expressing gratitude for fixing a common problem. It was very cool to help people all over the world avoid the same pitfalls I was having.

    The logical question is: how do I write more posts like this? The answer is: I do not know. Two out of almost a hundred is not enough to see a trend. Obviously, I want to write about things appealing to large amounts of people. That is hard to think up, though!

    Wednesday, November 12, 2008

    DVD burner

    A while back I inherited a DVD burner. My media collection has finally gotten to the point where CDs do not work well for backups. This is mostly thanks to the nice camera my grandparents got me two years ago. The pictures take up more space, and backing them up no longer fits on single CDs. I figured a DVD burner would be useful to deal with this. Being the lazy/cheap person that I am, I never bought DVDs for it.

    Here are the specs:
    iomega SuperDVD
    P/N 31367200
    DVDRW16XUSB
    Liteon SOHW-1633S burner

    My wife did a family history project over the summer which needed the DVD burner so we purchased a spindle of DVDs. I had never burned DVDs before and knew little to nothing about how to do it. So I gave my wife no guidance on what type of media to purchase. It turns out that this was probably a mistake, as using high-quality media when burning DVDs is important. See The Golden Rules of Burning.

    We tried to burn the DVDs and could not burn data discs. We tried both my "new" DVD burner and her Mac mini. This was right during my dissertation defense and our move to Massachusetts, so only a quick attempt was made and then the project was shelved. The DVDs never even seemed to start writing before an error occurred (sorry, I do not still have the error written down).

    Then, a week and a half ago, a friend of mine asked if I could burn some movies of him teaching a class to a DVD. I said I would look into it and get back to him. This motivated him to get my DVD recorder working. It took a lot of searching, but eventually I found this forum thread which seemed to address my problem. The solution I tried was to upgrade my firmware to a 1653. This allowed me to burn the DVD media using the software which came with the burner.

    A few warnings: First, the DVD creation software has two options for closing. The first is a quick version and that seems to work fine (played in my DVD player). The second option claims to be more compatible, but all it really seemed to do was kill the burn at the very end. Second, I always have burned (so far) at the slowest possible setting (again, see The Golden Rules of Burning). Third, I still have not successfully burned a data DVD. The player treats the media as CDs in the bundled software, and the windows driver says it's a CD player.

    If anybody has any insight about burning data discs using a Liteon DVDRW SOHW-1633S USB burner that has been flashed with a Liteon DVDRW SOHW-1653S USB burner firmware, please feel free to share. I imagine I will figure it out on my own, though. I just need to put in the time. I will blog about my inevitable success!

    Saturday, November 08, 2008

    My blog changes

    I have had this blog for a while, but this has been my first semi-serious attempt to make it interesting/cool/useful/attractive for anybody other than myself. I am happy to talk about any of the things I did or ideas I tried, and will share code if you are interested. Hopefully I can be a useful resource for setting up your own blog.

    What I am a little hazy on is how to set up the actual blog on Blogger and the process for signing up for AdSense. I did both of those steps a long time ago. However, I remember them being very straightforward. Since Google makes money on their ads, they want you to be able to put them on your blog!

    To see how I did the three-column layout, checkout my previous post.

    There were several widgets I wanted to add into my site. Adding widgets is easy in blogger. You just go to the "Layout" tab and then click on "Add a Gadget." The easiest ones to add are the ones Google provides, but you can add almost anything through the "HTML/JavaScript" option. You just have to not be scared of a little code. I added these four widgets using "HTML/JavaScript": FriendFeed, Flickr, Goodreads, and Google Calendar. Each site has instructions for getting the code, and then you just add it to through the Blogger add gadget interface.

    I wanted to add a favicon and found these instructions. They do not seem to work. I looked around a bit for some other instructions, but they did not work either. If you know how to do this, please share. If I take some time to figure it out, I'll blog it.

    There were a few tricky things I wanted that Blogger did not provide and that weren't straightforward cuts and pastes into a single gadget. This site has 15 useful widgets and scripts for Blogger. The two I use are recent comments and label cloud. Both have good instructions and are not difficult. They are more involved than the gadget interface.

    One problem with the way I initially set up my Blogger template is that on really short postings (such as this one) the two half-sidebars on the right would slide underneath the post instead of staying underneath the full sidebar. The correct way to fix this is CSS or div tags or something like that. My quick and dirty way to deal with it was to put everything into a two column table. However, this slowed everything down as the whole table would load at once. A little research told me how to fix it using a colgroup tag.

    If you have any questions about how I set things up, please let me know and I will see if I can answer them. If you have any comments or suggestions, please send those along as well! Thanks!

    Wednesday, November 05, 2008

    New layout

    It may not look like much yet, but I am in the middle of a major facelift for my blog. As of right now, all I have done is switched back to black text on a white background and changed the layout. You can download my layout and use it if you want. I started with a three-column template from this site and tweaked it a bit (moved the left column to the right and added a square above).

    The reason I am doing this is that my blog looked pretty shabby and I am now trying to improve it (with the goal of attracting more traffic). I decided the best way to do this was to look at how "real bloggers" did their sites, so I looked at some of my favorite "net celebrity" blogs for ideas.



    Of course, I am open for ideas from my adoring fans. Next step is adjusting the advertisements, then on to the widgets. . . .

    Tuesday, November 04, 2008

    Vote

    Please go out and vote today! Even if you think your vote does not matter in the state you live in, go out and vote anyway because it does!

    Tuesday, October 28, 2008

    Today's Killer Angels

    I just reread The Killer Angels by Michael Shaara. The film Gettysburg is an adaptation of the book. Both tell the story of the Battle of Gettysburg in the American Civil War, although their scope is much more wide than the four days it describes. I first read the book as a summer reading for Mr. Donaldson's sophomore U.S. History class and it sparked a lifelong interest in war history (especially Civil War history). Last year my wife gave me a copy and I finally reread it and have a lot to think about.

    An initial and superficial look at the Civil War says it came down to slavery. The North wanted to free the slaves, the South did not. That does not adequately tell the story. To begin with, Lincoln did not give the Gettysburg address (which freed the slaves) until after the Battle of Gettysburg. Up until that point the North fought the war for the sake of union and the South fought for the right to secede.

    Characters from the Shaara version shed more light on each side's cause. Some captured Confederate soldiers claim to be fighting for their rights (pronounced "rats") and not for slavery. Pickett elaborates with a gentleman's club analogy. He claims that the southern states had joined a gentleman's club and now wanted to leave, but the northern states were refusing to let them. He says this much more eloquently than myself, but the South fought in order to avoid being dictated to by the northern majority voting block.

    Kilrain (wearing blue) reiterates this position of the South, but puts a negative spin on it. He admits that the South fights to preserve its way of life, but that their way of life is not American and should be destroyed. He claims that the founding principles of this country assert that all are created equal and that each has an equal chance. The South had reformed aristocracy and English society. Kilrain fought for the idea that no man was better than him due to birth.

    Why do I mention all this? I feel like there is a direct application to today's two major wedge issues: abortion and gay marriage. I'll only illustrate the relation to the gay marriage debate and leave the abortion debate for the reader.

    The proponents of gay marriage talk about civil liberties and rights. Opponents of gay marriage talk about maintaining their way of life. In other words, proponents of gay marriage sound a lot like the North and opponents of gay marriage sound a lot like the South. It does not help matters that party and opinion lines split the same way still (some things never change).

    The truly alarming thing about this is that I am an opponent of gay marriage. I see most of my arguments against its institutionalization sounding like Confederate soldiers. "It will destroy our way of life." "This can't be forced on us." Maybe this helps me have more empathy for the South. Maybe this helps me question my current position on this issue. I know/hope/believe that I would have been on the North's side 150 years ago. . .

    Friday, June 20, 2008

    Wii Fit Workouts

    A justified complaint about Wii Fit is the lack of workouts. Other pairings between Yoga and Strength exercises, there is no guidance about how to spend your workout. This allows for freedom and self moderation, but it also can lead to aimlessness.

    I have put together four workouts. The first one focuses on the core, the second one focuses on the upper body, the third one focuses on the lower body, and the fourth one focuses on the three "challenge" exercises.

    You can download my sheets for these workouts here: XLS PDF

    Feel free to email/post comments/questions/suggestions!

    Tuesday, June 17, 2008

    Relay for Life

    From my sister-in-law:
    Hello friends,

    This weekend Joe and I are participating in our third Relay for Life, a fundraising event for the American Cancer Society. The Relay for Life brings together survivors and caregivers in the community to celebrate life and the progress that is being made in the fight against cancer. Our whole team will certainly be celebrating as Joe finishes his final round of chemo this week!! (Whoop! Whoop!)

    I'm writing to ask that you consider a donation to the ACS, that will go directly to research.

    If you know anyone who has fought cancer, you can donate a "luminary" in their honor or memory. These are $10 a piece and will have their name on the front (I'll even take a picture of it and send it to you!) The luminaries line the track, inside and out, and stay lit all night long. It's quite a touching experience to see the survivors take the first lap, thier steps lit by the legacies of those who valiantly fought, and those who continue to fight.

    As a special incentive, two members of our team are offering a raffle for a week (your choice) at their home on Cape Cod for those who donate at least $100. (Let me know if you'd like more details on this.)

    Thank you very much for considering a donation to the American Cancer Society through the Relay for Life.

    Hugs,

    Christina

    Click here to visit my personal page.
    If the text above does not appear as a clickable link, you can visit the web address:
    http://main.acsevents.org/site/TR/RelayForLife/RelayForLifeNewEnglandDivision?px=3770587&pg=personal&fr_id=7100&et=tWNl0I9c65lPbr_cYFiUHA..&s_tafId=110276

    Click here to view the team page for In Cod We Trust
    If the text above does not appear as a clickable link, you can visit the web address:
    http://main.acsevents.org/site/TR/RelayForLife/RelayForLifeNewEnglandDivision?team_id=295017&pg=team&fr_id=7100&et=H0nyTlpZs39Frx4i8YpXLg..&s_tafId=110276

    Friday, June 06, 2008

    Wii Piano

    I have done Wii Fit for a couple of weeks now. I really think Nintendo should expand this genre. Specifically, I think the engine could be expanded to practicing the piano fairly easily. I am not talking about Wii Music. I am talking about really practicing the piano.

    There are two difficulties with bringing this game to reality. First, the player needs a piano. Second, the player needs to be able to see the screen while playing the piano.

    My lack of creativity sees three basic ways to introduce a piano to the Wii. The first option is to sell a piano accessory. This option could not work because the piano would either be too flimsy or too expensive or (probably) both. Another option would be to have an accessory that plugs into digital pianos. This drastically reduces the audience, as not everybody has a digital piano. The final solution is the one I would suggest, which is to introduce a speaker accessory that can listen to whatever piano the players have. This actually seems like a realistic solution.

    Dealing with the screen issue is more difficult. The easiest solution is to just make the screen unnecessary. Have instructions given through the accessory and teach piano via the Suzuki method. This basically eliminates a huge portion of the Wii experience, plus Suzuki is not as popular here in the US. This leaves two other options. Either force the piano to face the screen/TV (not always possible) or use a portable screen on the piano. The portable screen could be Wii specific or just a video transmission and receiving system.

    I think something like this would have helped me be more excited about practicing the piano, at least for a couple of weeks.

    Monday, June 02, 2008

    Democratic primary

    Some aspects of the primary elections (for both parties) have been fairly humorous. However, Hillary Clinton's campaign and supporters stopped being cute and funny long ago and have now definitely moved into the annoying and ridiculous category. I have a number of different grievances with that campaign, their ads, and their tactics. I just want to talk about one in this post.

    Over the weekend the Democratic Party's Rules and Bylaws Committee met to decide how to deal with Florida and Michigan. This, in itself, is a farce because last year it was already decided to not count Florida and Michigan because they broke the rules. In fact, Hillary pushed for that herself. For the sake of argument, let's pretend that meeting to discuss this again actually makes sense.

    It turns out that Barack Obama pulled his name from the Michigan primary because it did not count. The committee decided to award delegates 69/59 for Clinton/Obama based on a number of different factors. This angered the Clinton supporters. Strangely enough, Hillary could only win 55% of the vote without her arch-nemesis. That would have put her at 73 delegates. Not a big difference, but they are still mad about that.

    There still has to be some sort of penalty for breaking the rules, so the voting power of each delegate was halved. That also ticked off the Clinton supporters, since she won in both those states. I say "won," but that is in the same sense as I "win" in tennis if nobody is on the other side of the court.

    So the Clinton supporters are all up in arms because they want the warped results of these illegal primaries counted. The really pathetic thing is that they do not do or care about the math. Even with all the numbers playing out the way they want, Obama would still be winning by a lot.

    Consider Michigan going 73/55 with full votes to the delegates. Instead of just gaining 5 votes then Hillary gains 18. That's 13 more. Wahoo. Now to Florida, where it could be 105/67. Instead of Hillary just gaining 19, she gains twice that (38). So if it all goes their way, Hillary Clinton only ends up with 32 more votes. Another insignificant dent in Obama's lead.

    This is just ridiculous. In the mean time Hillary acts as a wedge for the Democratic party, slowly turning it against itself.

    For more information, check out:
    http://www.freep.com/apps/pbcs.dll/article?AID=/20080601/NEWS07/806010566
    http://www.barackobama.com/resultscenter/index.php
    http://www.ornery.org/essays/warwatch/2008-04-27-1.html

    Friday, May 30, 2008

    Wii Fit

    For the first time ever I purchased a video game (if you can call it that) last week on the day it came out. While I have not been religiously devoted to Wii Fit since then, I do feel like it has staying power. The balance games are infuriating overall and I'm never quite sure I'm doing the exercises entirely correctly, but overall the workout is good and easy. Even the goofy "running in place" turns out to not be so goofy.

    The key to Wii Fit is that it takes all of a minute or two to start "training." I just pull the Wii balance board out, turn on the Wii, navigate through a few menus, and off I go. Some people have expressed some frustration at the "navigating through a few menus" part. This is understandable, but I believe that choosing between workout allows for better pacing.

    Wii Fit does not seem to come with a workout plan and users are mostly left on our own. There are a few "paired" exercises that I've found that work related muscle groups. The game tells you when you have done half of a pair and then tells you what the other exercise is. However, there is no daily/weekly/monthly program.

    Although I have not unlocked everything yet, there are a few things I particularly like and don't like. The push-up/plank and jackknife exercises seem to be enough to work those muscle groups. The hula-hooping is surprisingly aerobic, at least for my current fitness state. As I mentioned earlier, some of the balance games are enfuriating.

    Here are some interesting links:

    http://www.nintendo.com/wiifit/launch/
    http://en.wikipedia.org/wiki/Wii_fit
    http://www.veronicabelmont.com/2008/05/vii-fit-update/
    http://www.4colorrebellion.com/wii-fit/

    Tuesday, May 27, 2008

    Twitter problems

    I am by no means a Twitter "power user" or anything close. I joined twitter because TWIT panels kept on talking about it. After finding a moderate number of interesting people to follow (and finding a moderate number of sites to not receive updates on because it feels like SPAM) I started to enjoy seeing what was going on.

    However it appears that Twitter has grown a bit too big for its britches. I imagine part of this is just growth, and another part of it is the derby that Leo flagrantly promoted at the end of TWIT a week and a half ago. I have not listened to this week's TWIT yet, so maybe he talks more about it.

    Twitter went down for me sometime late last week. The web page interface was working a little over the weekend, but I have not been able to connect through GTalk (my preferred method of connection right now). This morning I tried to fix GTalk, and then even the web portal went down.

    Twitter is a really neat technology that will change the way web traffic games get played. However, it needs to be able to scale first. A lot of "stupid Twitter, but we still support it" posts already exist. This post just adds to the list. However, if a competitor (read: Pounce) captilized on this then Twitter would lose its competitive advantage of a head start.

    Wednesday, May 07, 2008

    Dissertation

    Sorry for the lack of posts. I probably will not start seriously posting again until after my dissertation is done, so late August or early September. Of course, that is also when I'll be moving to Boston, so posting might get postponed further.

    Tuesday, March 04, 2008

    Similar dissertations

    I found some dissertations that I think might be similar to mine (in form):

    Advised by Rajiv Gupta

    • Rastislav Bodik, University of California, Berkeley, Dept. of Computer Science
      Dissertation: Path and Value Sensitive Code Optimizations (November 1999).
      Recipient of the SIGPLAN Outstanding Doctoral Dissertation Award, 2001.
      NSF CAREER Award, 2001.

    • Evelyn Duesterwald, IBM Research, Yorktown
      Dissertation: A Demand Driven Approach for Efficient Interprocedural Data Flow Analysis
      (July 1996).

    My advisor's John Regehr dissertation (not really that similar):

    • Using Hierarchical Scheduling to Support Soft Real-Time Applications on General-Purpose Operating Systems,
      PhD thesis, University of Virginia, May 2001.

    Advised by George Necula

    • Sumit Gulwani
      Program Analysis using Random Interpretation, PhD Dissertation, UC-Berkeley, 2005, Sumit Gulwani, Winner of the ACM SIGPLAN Doctoral Dissertation Award

    Advised by Alex Aiken

    • Manuel Faehndrich
      Microsoft Research
      Thesis: BANE: A Library for Scalable Constraint-Based Program Analysis

    • John Kodumal
      Coverity
      Thesis: Program Analysis with Regularly Annotated Constraints

    • Yichen Xie
      DE Shaw
      Thesis: Static Detection of Software Errors

    Monday, March 03, 2008

    LaTeX help

    I do not often do multiple citations in LaTeX, so I had to look up how to do them just now. This web site has some useful "cheat sheet" like information about LaTeX, including the information I wanted.

    Multiple citations may be made by including more than one citation key in the \cite command argument.

    \citet{jon90,jam91} => Jones et al. (1990); James et al. (1991)
    \citep{jon90,jam91} => (Jones et al., 1990; James et al. 1991)
    \citep{jon90,jon91} => (Jones et al., 1990, 1991)
    \citep{jon90a,jon90b} => (Jones et al., 1990a,b)

    Thursday, February 28, 2008

    Interviews and colloquium

    I have already had one interview today with Sandia National Laboratory and will have another one this afternoon with Raytheon. This afternoon I also have a faculty candidate colloquium. Luckily, the presentation I am giving tomorrow is only five minutes long and the slides are done (mostly stolen from my SenSys talk). Busy day, busy day.

    Wednesday, February 27, 2008

    Embedded systems workshop

    There will be an embedded systems workshop in conjunction with the LCTES PC meeting. I mainly mention this because, since my advisor is the PC chair, I got roped into presenting. I'll be talking about the work Yang, John, David and I did to get Safe TinyOS integrated with the main distribution of TinyOS.

    Tuesday, February 26, 2008

    Marvell interview

    I had a nice phone interview this morning with a manager from Marvell. Like my interview with Google, I don't think I did horrible but I also definitely didn't do a slam dunk. Here are some of the questions I was asked:

    • How do you make a function reentrant?
    • What does the stack frame look like during a function call?
    • What are the different types of variables? local, global, static, register, pointer
    • Write some code to determine the endian-ness of a machine.
    • Design a file system for a scratchpad memory.

    The final question at the end was something like "what are your career goals for the next five years?" which had the goal of figuring out if I really wanted to be an engineer or if I was just a researcher in disguise.

    Unfortunately, I found out at the end of the interview that it was for a group in the Boise office. I do not have anything against Boise, but I would like to raise my children in a non-LDS dominated culture. I had indicated to the recruiters at the career fairs that I wanted to interview for the Santa Clara office for that reason. Oh well.

    Monday, February 25, 2008

    The Legend

    I think the Great Ventilation and Telephone Riots of SrDt 3454 (See Mostly Harmless by Douglas Adams) encapsulate most of what annoys me with Mac users. I should preface the rest of this post by saying my next laptop will probably be a Mac, and that some people may consider me a bit of a fanboy myself (even though I have never owned a Mac).

    Anyway, the problem with a lot of Mac users is that they do not actually know how their machine works. The beauty of a Mac is that most of the time this knowledge is not necessary. However, either because the Mac hides it or because the user is ignorant, when the knowledge is necessary the user is helpless.

    There is something to be said for eventually forcing users to take the training wheels off and actually understand their machines. Also, Apple should remember the legend required to be placed on all devices:
    The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair.

    Fanboys often think their Macs cannot possibly go wrong...

    Friday, February 22, 2008

    Sitemap for Blogger

    I added http://ncooprider.blogspot.com/atom.xml as my sitemap for this blog. That was mainly so the Google Webmaster Dashboard would stop asking me for one, but I wonder if it will really help at all? Blogs are typically very spider friendly, and I would hope Google indexes their own blogs well.

    Satish Chandra visit

    Satish Chandra visited the School of Computing today. I attended his colloquium, had lunch with him at Sage's Cafe, and met with him one-on-one for a few minutes. He is definitely doing some really neat things and tackling some important problems there at IBM. He specifically mentioned the T.J. Watson Libraries for Analysis (WALA).

    Wednesday, February 20, 2008

    2008 Organick Lecture Series presents Fran Allen

    This year's lectures will be given by Fran Allen, IBM Fellow Emerita at IBM's T.J. Watson research Laboratory. The lectures will be given at the following dates and times:

    "High Performance Programs and Programmers: A Personal Perspective"
    Wednesday, February 20, 2008
    7:30 p.m.
    Reception to Follow
    1230 Warnock Engineering Building

    "Compilers and Parallel Computing Systems"
    Thursday, February 21, 2008
    Refreshments 3:20 p.m.
    Lecture 3:40 p.m.
    1230 Warnock Engineering Building

    Fran Allen is an IBM Fellow Emerita at the T. J. Watson Research Laboratory with a specialty in compilers and program optimization for high performance computers. Soon after joining IBM Research as a programmer in 1957 with a University of Michigan masters degree in mathematics, Fran found the technical goal that would drive her career. The goal was (and still is) to enable both programmer productivity and program performance when developing computer applications. One result of her work is that Fran was named the recipient of ACM's 2006 Turing Award "For pioneering contributions to the theory and practice of optimizing compiler techniques that laid the foundation for modern optimizing compilers and automatic parallel execution."

    She is a member of the American Philosophical Society and the National Academy of Engineers, and is a Fellow of the American Academy of Arts and Sciences, ACM, IEEE, and the Computer History Museum. Fran has three honorary doctorate degrees and has served on numerous national technology boards including CISE at the National Science Foundation and CSTB for the National Research Council. Fran is also an active mentor, advocate for technical women in computing, environmentalist, and explorer.

    Tuesday, February 19, 2008

    Google dice question

    A fellow grad student in my lab is determined to figure out the dice question Google asked me in my phone interview. The basic idea is to accurately simulate a seven-sided die using any number of five-sided dice.

    His first attempt was to roll seven five-sided dice, take the modulus by seven and then add one to the result. During simulation this comes close to a uniform distribution, but the actual math works out to be non-uniform. I wrote this program for testing:

    #include
    #include

    #define COUNT 1000

    int real[7];
    int jun[7];

    // Couldn't see anything wrong from this:
    int test () {
    int i;
    srand( time(NULL) );
    for (i = 0; i < COUNT; i++) {
    float max = RAND_MAX;
    int sum=0;
    int j;
    for (j=0; j < 7; j++) {
    float r = rand();
    int d5 = ((r/max)*5) +1;
    sum+=d5;
    }
    int calculate = (sum % 7) +1;

    float r = rand();
    int d7 = ((r/max)*7) +1;
    //printf("%d %d\n", d7, calculate);
    real[d7-1]++;
    jun[calculate-1]++;
    }
    int suma=0;
    int sumb=0;
    for (i=0;i<7;i++){
    printf("%d) real %10d jun %10d\n", (i+1), real[i], jun[i]);
    suma+=real[i];
    sumb+=jun[i];
    }
    printf("%d %d\n", suma, sumb);
    return 0;
    }

    // This comes from http://en.wikipedia.org/wiki/Dice
    float probability(int s, int i, int k) {
    int n;

    if (i==1)
    if ((k>=1) && (k<=s))
    return 1/((float) s);
    else
    return 0;

    float sum = 0;
    for (n=1;n<=s;n++) {
    sum += probability(s,1,n) * probability(s,i-1,(k-n));
    }
    return sum;
    }

    float sums[7];

    int main () {
    int x;
    for (x=7;x<=35;x++){
    float prob = probability (5,7,x);
    //printf("%d %f\n", x, prob);
    sums[x%7]+=prob;
    }
    for (x=0;x<7;x++)
    printf ("%d %f\n",x+1,sums[x]);
    }
    // since probabilities are not all even, your algorithm does not work


    He countered with an argument using six-sided die that was actually a degenerate case. My probability skills are fairly weak, so I had to answer with an enumeration of the possibilities in an example using three-sided dice to emulate a five-sided die.

    His final answer was to look at sequences of die-rolls. First prime the pump by rolling the five-sided die twice and taking the modulos seven of the result. Then, for each seven-sided die roll we want after that, roll a five-sided die add it to the previous result, and mululo seven. His argument is that, in the long run, this produces a uniform distribution.

    Simulating this algorithm seems to produce fairly uniform distributions, but so did the last one as well. Unfortunately, the probability math is beyond me. Well, it is beyond the time I have to put into it. I still do not believe this is a correct answer, but I cannot prove it. My best argument is a proof by contradiction.

    Assume the algorithm is right.
    After a certain number of rolls, the last roll accurately simulates a seven-sided die.
    To get the next roll of the seven-sided die, we add a five-sided roll and modulo seven.
    That means seven-sided equals seven-sided plus five-sided modulo seven.
    Which is a contradiction.


    Any other thoughts? How can I prove the algorithm wrong? Or is it right?

    Friday, February 15, 2008

    Google Street View for Salt Lake City

    Just a quick note that Google Street View is now available for Salt Lake City. You cannot see my car because I park inside an apartment complex, but you can see a lot of really neat things. The coverage area extends up and down the Wasatch front, so I can go visit BYU if I want!

    Thursday, February 14, 2008

    Google phone interview

    I had a phone interview with Google this morning. Overall it was a pleasant and slightly fun experience. I do not think I botched it up too badly, but I definitely do not think I had a slam dunk either. Here are the questions the Google engineer asked me in the interview:
    • Describe pluggable abstract domains to me. This one related directly to my research. It impressed me for two reasons: the interviewer had read and understood my resume and the thing he asked about wasn't RAM compression (which is what everybody else asked about. He had some follow up questions about mathematical functors (which he had studied in school), interval analysis (which he had done before) and dynamic typing (other potential application). He followed up the type theory question by using Lisp as an example.
    • Simulate a seven-sided die using only five-sided dice. The tricky part of this is generating a uniform distribution between one and seven. Just rolling seven of the five-sided dice does not work because the totals in the middle have higher probability. The solution I eventually arrived at (with a little poke in the right direction by my interviewer) is to change each five-sided die into a binary digit (1-2 are zero, 3-4 are 1, five is a re-roll) and then roll three of them. Interpret the number as binary, with zero being a re-roll.
    • Come up with an algorithm to count number pairs which add to a certain sum in a list. The "obvious" way to do this is to check the first one with all the others, then the second ones with all the others minus the first one, and so on. The problem is that this is O(n2). The better solution is to sort the list first and then go through and look for the missing half of a pair. In other words, if the first number is one and you want to add to six, look for a five in the list. The complexity of this depends on the sorting methodology. If a bin-sort is able to be used (number of possible values is small) then it is O(n). This is because look up and counting is easy with the bin-sort structure as well. If we can't use bin-sort we have to use another sorting method, plus the lookups are more expensive as well. This results in O(n log n). The interviewer always asked me about the complexity of my algorithm (makes sense, since this is Google).
    Of course, I will never see these questions again, and you probably won't either. However, just thinking about them is probably good practice for future interviews. I collect the technical questions I am asked in interviews here.

    Wednesday, February 13, 2008

    Links in LaTeX pdfs

    My advisor gave me a somewhat criptic piece of advice that I should "add more links" to my CV. I noticed that his CV had more web addresses on it, and that when viewed in Adobe Acrobat Reader those addresses were "clickable." So I asked to see his .tex file and discovered the trick.

    He uses the hyperref package by inserting this line: \usepackage[pdftex]{hyperref}. When used in combination with the url package (\usepackage{url} a hyperlink can show up in the PDF when it is done like this: \url{http://www.cs.utah.edu/~coop}

    Monday, February 11, 2008

    cvs, svn, wget

    While working on Safe TinyOS I have had to write up some instructions. These instructions involve getting sources from various different locations. The ideal write-up looks like a bunch of commands with comments, much like a script (maybe is a script). While getting things from cvs and svn were fairly straightforward for me, I was not sure how to get things from locations not in a repository. Then my advisor suggested wget, which I had forgotten about. I just wget url and then it pulls down whatever was at that url. Problem solved!

    Thursday, February 07, 2008

    Google phone call

    Yesterday I received a phone call from a Google recruiter. This recruiter previously contacted me by email to set up this phone call, so I thought this would be the "first round" interview. Prepared for a thirty minute session riddled with tricky questions, I instead had a nice conversation about the Boston office of Google and set up the real first-round interview. Somewhat anti-climactic.

    Wednesday, February 06, 2008

    Ch-something

    I had to set up some "sandbox" directories over the last few days in which some different members of my research group could mess around. This required using a few different commands:

    • chgrp -R embed * - This changes the group for the whole directory and subdirectories to the group embed
    • chmod -R g+w * - This adds write privileges to the whole directory and subdirectories for members of my group

    Monday, February 04, 2008

    BlockSite

    I use the Firefox add-on BlockSite at work. I found myself spending a lot of time on "goof-off" sites (digg, facebook, linkedin, wikipedia, youtube, phdcomics, etc). While I wouldn't stay at any particular one for very long and each of those sites is useful to some degree, I think my productivity increases by just blocking them. Since I use Firefox I just installed the BlockSite extension and off I went.

    Wednesday, January 30, 2008

    Two pdfs in one

    Yesterday I wanted to concatenate two pdfs into one. Specifically, I had my BYU transcript and my UofU transcript and I wanted to put them together in a single transcript. This ended up being a fairly easy process.

    1. Open up the files
    2. Print the files (pdf or html) to a file. This should create postscript (.ps files)
    3. Combine the postscript files using psmerge -ooutput.ps input1.ps input2.ps
    4. Run ps2pdf13 output.ps

    Then you have output.pdf which has both of the original files in it!

    Tuesday, January 29, 2008

    Node placement in Dot

    I use Dot to create callgraphs for analyzed programs. It is a very useful and powerful program. In order to clarify entry points to the program, I needed to put main and interrupt handlers all on the same level and at the top. One can do this by setting the rank attribute of the nodes to source. The code looks like this:


    { rank=source;
    main [shape=house];
    __vector_15 [shape=diamond];
    __vector_16 [shape=diamond];
    __vector_17 [shape=diamond];
    }

    Friday, January 25, 2008

    MacBook Air

    My wife had not really seen the MacBook Air until she saw an ad for it on TV last night. Luckily, I was home and able to hear her reaction. I say "hear her reaction" because I was in the other room and I hear a fairly loud exclamation: "It's so thin!" I came back into the room to see what she was talking about. She said a few other things along the same lines, but was mostly speechless. It put a smile on my face, just to see her reaction.

    Thursday, January 24, 2008

    Facebook

    I'll admit that it seems like Facebook is a waste of time in most cases. However, by posting that I was looking for a job I have had several people inquire further and I even have a phone interview today. I think this shows some promise, especially since I am by no-means a "power Facebook user." I had already used Linkedin with some success, but apparently Facebook works as well.

    Now I just need to actually land a job...

    Wednesday, January 23, 2008

    Wii

    As mentioned in my previous post, we had some friends over this past weekend and they brought their Wii. I've always expected it to be fun and addicting, but I must say I underestimated it. It was fun to watch my wife get so "into" it. Even creating the silly little Mii for herself and me was a big deal for her.

    Playing the games was cool too, although I spent most of the time trying to figure out exactly what inputs the Wii-mote was actually looking for. Although it is designed to mimic real action, you can simulate superlative action if you know what it is looking for.

    That is how I managed to hold my own in Wii-sports baseball. For both pitching and batting, I did okay by simulating real baseball, but when I switched over to pitching by hinging on my elbow and batting with a tennis racket, I actually made a game of it with a much more experienced player (but still lost).

    Likewise, on mini-games where shaking the Wii-mote was required I totally rocked. I made educated guesses as to the type of input the Wii-mote wanted and normally was correct. I think provided only that input repeatedly.

    Anyway, I give the Wii two "big thumbs up" and look forward to owning one someday. Of course, by the time that happens something better will be out...

    Tuesday, January 22, 2008

    A/V cords

    I have recently had some fun with A/V cords. My expertise in the area of setting up "sweet systems" is very limited because of my budget ($0), but I do like to fiddle around with what is given to me. Unfortunately, our last DVD player puttered out. So I did some research and purchased a new DVD player.

    The DVD player which died was a Symphonic WF803 DVD/VCR Combo. It was a little less than four years old and had been in its death throes. I had not been able to play CDs for a while, and had started randomly freezing with DVDs. Finally it just stopped playing DVDs. The VCR still worked/works great. Whenever a DVD is inserted, it just moves the head around and clicks a bunch before giving up. The problem sounds common and is discussed here (briefly).

    The DVD player I purchased to replace the dead one was a TOP SDV295 Toshiba DVD/VCR Combo Player. This appeared to have the best collection of features I wanted for the money. What it did not have was a cable tuner hookup. This came as a surprise, but I imagine that if I knew what I was doing then the documentation would have indicated this somewhere. For now I can't record video until I figure out a way to get the signal from the cable cord into the VCR. Other than that, so far the player is great. My TV has a little problem with the S-Video cable, in that it only reads from the DVD and won't look at the VCR part while it is plugged in. For now, no S-Video.

    So I used the S-video cord to hook up my laptop to the TV and play video games. My daughter likes to "play" games with me, meaning she holds an unhooked controller and then I play the game. We had some friends over and they brought their Wii. Mario Galaxy fascinated my daughter. So my wife suggested I try hooking my laptop up to the TV and see if that was the exciting part. Sure, it wasn't a Wii (not even close), but it was still exciting for my daughter. So that was good. I almost was feeling the need to get a Wii...