tag:blogger.com,1999:blog-118372782024-03-07T20:22:07.903-08:00tuxbox: hacking my computersBecause some people simply can't handle the true scope of my geekiness.burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.comBlogger104125tag:blogger.com,1999:blog-11837278.post-58209642093746767662016-06-25T23:46:00.000-07:002016-06-25T23:48:01.226-07:00Moving on from Gentoo to Ubuntu<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq3ov0zAvf3xODZtqwBror4rRwMPh5tdnaCWSKRkUFE6qkQkoXYTYLenIqvx78Mj7i1CMnKwiDjiDExzhuaD617cBciLnl926QglnqV6UqKq_0I8OQeUvM-tui5PQQCdmNfpgwkQ/s1600/20160625_234413.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq3ov0zAvf3xODZtqwBror4rRwMPh5tdnaCWSKRkUFE6qkQkoXYTYLenIqvx78Mj7i1CMnKwiDjiDExzhuaD617cBciLnl926QglnqV6UqKq_0I8OQeUvM-tui5PQQCdmNfpgwkQ/s400/20160625_234413.jpg" width="400" /></a></div>
<br />
When I started running Linux, <a href="https://gentoo.org/">Gentoo</a> was a good fit for me because I wanted to learn what was going on under the covers. Gentoo (at least, eleven years ago) forced you to edit every config file manually, and the default install had you configuring and compiling your own kernel.<br />
<br />
It was a great learning experience, and I'm glad I did it.<br />
<br />
But at this point in my life, I have better things to do than to babysit weekly "emerge --avuDN world". I let my Gentoo box get out of date, I didn't want to bother learning how to set up my own systemd services, and when some update's dependency tree decided I was switching, it stopped booting.<br />
<br />
I was able to recover it at the time, but then this week (and I had been putting off rebooting for months) my Linux machine (frodo) took a nose dive and kernel panicked. When I rebooted it, it was in such a state that I considered my OS installation 'totaled.'<br />
<br />
For a while I've been running certain things off of my Linux box. I've got a couple of RSS feeds which trigger <a href="https://ifttt.com/">IFTTT</a> events, but I also have <a href="http://bit.ly/twooshbot">@twooshbot</a> now, and any more than a few of hours of downtime results in missed data. (I need to add some functionality to read more tweets at startup, which will help with that.)<br />
<br />
Anyway, on Friday evening, I found myself in the position of needing to pick and install a new distro, and fast.<br />
<br />
A quick trip to <a href="https://distrowatch.com/dwres.php?resource=major">DistroWatch</a>, and I decided on Ubuntu. It was dead simple, there are spoon-fed answers to almost any question online, and it's based on RedHat, which I am familiar with.<br />
<br />
I was able to get <a href="https://twitter.com/twooshbot">@twooshbot </a>back up and running that evening, and I've been slowly adding services and scripts to get back the functionality I'm used to (Dropbox, apache2, samba, vim, screen, etc.)<br />
<br />
Anyway, I look forward to LTS support and dead simple updates. <div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com0tag:blogger.com,1999:blog-11837278.post-17742048366772722432015-01-10T12:36:00.003-08:002015-01-10T12:44:33.129-08:00Gentoo is not ready for systemdThis is mostly just a rant into the aetherwebs, and it won't make a lick of sense to someone who doesn't manage a Gentoo Linux system. <br />
<br />
You have been warned. Move along. <br />
<br />
Yeah, I know systemd is optional (for now) on Gentoo. The thing is, unless you take specific steps to avoid it, it just happens to your system. This is a bad way to introduce such a fundamental change.<br />
<br />
Several months (a year?) ago, my emerges simply stopped working. There were package conflicts all over the place, and I didn't have time to untangle everything and get to the bottom of it. So, I just stopped updating. Obviously, as a Gentoo user, I hated this.<br />
<br />
Now, months later, I decided to build up a new system on my newly-obsoleted laptop. It looks to me like systemd is the future, so I go that route.<br />
<br />
Here's what doesn't work, out of the proverbial box:<br />
<ul>
<li>Service configurations usually adjusted in /etc/conf.d/</li>
<li>DHCP</li>
<li>crons</li>
<li>webalizer</li>
<li>Dropbox (at least, the way I use it)</li>
</ul>
I was able to figure out how to get dhcp working via <a href="http://wiki.gentoo.org/wiki/NetworkManager#Systemd">NetworkManager</a>, and that got me to the point of a functional-ish system at boot. That was the easy part. Next, I transitioned what system cron jobs would fit into cron.hourly and such.<br />
<br />
I still haven't figured out how to set up user-specific timer jobs that run on a schedule (say, every 15 minutes). The file formats are simple enough for services and timers, but I can't get ssytemctl to recognize the files I place in ~/.local/share/systemd/user/. In theory, though, that should all work, and it would be worth figuring out and moving forward.<br />
<br />
It's also worth noting that the Gentoo Handbook and other documentation has thus far not been updated to support users building with systemd by default.<br />
<br />
Here's what is flat-out broken for me, that I had working in my previous system:<br />
<ul>
<li>Dropbox running in the background, launched the first time my user logs in. Since Gentoo completely disables running anything out of /etc/init.d, I would need to write my own service file, which I'm not prepared to do.</li>
<li>Webalizer running just before the apache log gets zipped up by systemd. This is probably as simple as specifying "run this task just before you rotate the apache log", but I don't know enough about the guts of systemd's log rotation for that.</li>
</ul>
For now, I think I'm going to revert my new system back to OpenRC. It's the path of least pain, now that I know how to exorcise systemd from a box. During this whole process, I got my old system's portage tree untangled. I basically had to move the world file to a temporary location, untangle the system dependencies, depclean everything, restore the world file, and re-emerge it all. <br />
<br />
See, most of what my Linux system does is act as a web server, and a Dropbox client. I have several cron jobs that rename files in Dropbox which get uploaded via IFTTT and other automated means, and sometimes these files have characters in their names that aren't valid on Windows.<br />
<br />
Suffice to say that right now a systemd-based Gentoo system significantly fails to meet my specific needs. If it was just a desktop workstation, and I wanted the latest version of Gnome I would probably stick with that.<br />
<br />
Hopefully these issues will get resolved in the future. Maybe I'll even help that to happen. In the meantime, my main Gentoo system is dropping systemd. I have other priorities.<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com0tag:blogger.com,1999:blog-11837278.post-53634058161512286242013-06-15T14:00:00.001-07:002014-04-17T17:00:29.262-07:00Three Weeks with the Helix: My Thoughts on Windows 8 and HardwareA couple of months ago, my laptop's charger died, and I suddenly found myself in a computer crisis. (At the time I thought it was the battery (again--this machine has killed 2 batteries so far), hence my frantic search for a new machine, but it turned out to only be the charger--it turns out I have access another one I can use in the meantime.) I needed a dependable machine; one that was good for every-day tasks such as browsing, e-mail, documents, and of course blogging, but also good for programming and other tweaking I like to do.<br />
<br />
I had been keeping my eye on the market for about a year, and so I decided that then was the time (even though I knew Haswell was just around the corner--silly me). I was very interested in Windows 8's new touchscreen features. I tested the beta builds of Windows 8 on my laptop, and I found them to be very fast and stable, but I determined that the "Modern" interface (a.k.a. "Metro") was pretty much useless without a touchscreen.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhatchcM6zHvnSHtsewt9wUF_lAEGFtCshXvtjnI3lVc2zJzxxiZ0aZjIqDH2EhnhDQaddfHlrALRFgJII5D-wVh373DREqIAH5G9EQgZKQKVw5hEKek99rvCyY_Yy7W7II6pe8sQ/s1600/20121102_194706.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhatchcM6zHvnSHtsewt9wUF_lAEGFtCshXvtjnI3lVc2zJzxxiZ0aZjIqDH2EhnhDQaddfHlrALRFgJII5D-wVh373DREqIAH5G9EQgZKQKVw5hEKek99rvCyY_Yy7W7II6pe8sQ/s1600/20121102_194706.jpg" width="150" /></a></div>Nevertheless, touchscreen is the future of computing interfaces, but by the same token, keyboards and mice/trackpads are also the present state of computing interfaces in Windows. I definitely needed both, without compromise. The Microsoft Surface Pro was too inflexible as a laptop device--the "Touch" keyboard is worthless to me, and even with the "Type" keyboard, the screen is only supported at one angle, and then only when it's on a flat, stable surface. No, thank you.<br />
<br />
I really liked what I saw coming out of Lenovo lately. The Lenovo Yoga 13 looked pretty awesome (I had tried it at the store), and the Helix looked amazing, but it wasn't out in the U.S. yet--or was it? It wasn't for sale on Lenovo's website, but I was able to find it from small sellers at Amazon and elsewhere.<br />
<br />
After looking around for the best price at a somewhat reputable retailer (as far as I could tell) I found a site with a coupon code that was out of state (no tax), and bought it. <br />
<br />
I was very happy with the touchscreen interface, for the apps that were available. I found the selection of touchscreen apps barely adequate, but that situation will improve with time and consumer adoption. There were a few kids games that Shoshana in particular loved to play, and the tablet form factor (and tent mode, and stand mode) is a great feature for kids.<br />
<br />
In daily use, switching between touchscreen input and keyboard/trackpad input was as natural as switching between mouse/trackpad and keyboard input on a 'traditional' machine: I was able to use whatever seemed appropriate and convenient to the task at hand. I didn't find myself using trackpad gestures, since the screen itself was a more intuitive place. Trackpad gestures will probably be more useful to someone with Windows 8 and no touchscreen (which I don't recommend). Similarly, I completely ignored the "hot corners" functions of Windows 8, since those are built as a way for mouse users with no touchscreen to do tasks built for a touchscreen.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghZV4Vbl5ve09R_kW3VBtzzT3G7uZ8vjrboTy4IOHqBDLLF9G2RF0V8g6DFgpsc7PRXhnZuREeTr93_8wKaOc1tiDVb3lYjajwIH9-5mzMitEW3HpnHwO1y5NdMVNkguRr6mgksQ/s1600/20130513_172719.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghZV4Vbl5ve09R_kW3VBtzzT3G7uZ8vjrboTy4IOHqBDLLF9G2RF0V8g6DFgpsc7PRXhnZuREeTr93_8wKaOc1tiDVb3lYjajwIH9-5mzMitEW3HpnHwO1y5NdMVNkguRr6mgksQ/s1600/20130513_172719.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Keyboard replacement (left), and base unit (right)</td></tr>
</tbody></table>To make a long story short regarding my ownership of the Helix, I was sent a unit with a French AZERTY keyboard dock. I opened a support case with the retailer, and with Lenovo. I was sent the QUERTY keyboard part, but with no way to open up the base unit and install it (without breaking anything), I had no choice but to simply send the keyboard back to the manufacturer, and send the Helix back to the retailer. <br />
<br />
I was issued a full refund for my troubles, so I'm not out any money, and I have gained a lot of perspective on what I value in a computer. Here are my notes from the Helix experience:<br />
The detachable screen form factor was pretty awesome, though I did end up taking the base with me everywhere even if I wasn't using it.<br />
<ul><li>"Stand mode" is great for using the touchscreen at an angle on the lap or a table.</li>
<li>In laptop mode it seemed top-heavy due to the "behind-the-glass" design, but this was never a real problem.</li>
<li>The 1080p screen was simply too small for the Desktop interface at 11 inches. This is a fault of Windows 8, not the hardware. DPI settings are simply ignored by too many apps. The text was too small to read comfortably. The 13" Yoga is looking pretty good in that regard.</li>
<li>The stylus was nice to have, but with a trackpad not really necessary.</li>
<li>The Windows 8 Modern UI app ecosystem is lacking. This may improve with time. BlueStacks is too cumbersome to really use for touchscreen apps.</li>
<li>Using the mouse buttons on the bottom corners of the rocking touchpad was wonky, and never worked the way I expected.</li>
<li>The function keys F1-F12 were toggled to their auxiliary functions by default. I had to hold the function key down to get them to work as themselves.</li>
<li>The function key was located where I expected the control key to be and vice versa.</li>
</ul>One thing that surprised me was that I didn't like the pixel density. I have pretty good eyes, and I have always sprung for the highest resolution displays that I can get on my laptops. I have been very put off by all of the new computers these days with 1366x768 displays. 768 vertical pixels is equivalent to those 1024x768 displays we all had with Windows 95 on our 11" 3x4 monitors. It's worthless for multitasking, or for reading text, and especially for editing code. It simply will not do.<br />
<br />
I was surprised, then, that 1920x1080 pixels was too small for me to find useful. Yes, I could see everything, but I had to concentrate to actually read it one line at a time. This also would not do. So no longer can I simply say "increase the pixels"; I must find the right balance between screen size and pixel density.<br />
<br />
To that end, here are some pixel density data points I have collected:<br />
<br />
My Dell Inspiron E1505 has: <br />
<ul><li>1680x1050 at 15.4" 16x10 = 128.645 ppi</li>
<li>Equivalent size at 1080p 16x9 128.6 ppi would be 17.1"</li>
</ul><div><div>Lenovo Yoga 13 has:<br />
<ul><li>1600x900 at 13.3" 16x9 = 138.0 ppi</li>
<li>Very similar to my E1505, and quite useable</li>
</ul>Lenovo Helix has:</div><ul><li>1080p at 11.6" 16x9 = 189.9 ppi</li>
<li>Not useable</li>
</ul>Dell Precision M4700 (encountered at work) has: </div><ul><li>1080p at 15.6" 16x9 = 141.2 ppi</li>
<li>Looked usable</li>
</ul>The best pixel density per inch seems to be in the 140 range, not the 190 range. If I want a 1080p screen, I'll need to go with something larger, like the 15.6". If I want something smaller, I will need to sacrifice some screen real estate. Suddenly the Yoga 13's screen resolution transforms from a disappointing spec to a sound product design decision.<br />
<br />
I definitely like the Yoga 13, but I'm not sold on it. My current machine is bulky, but it has suited my needs very well for over 6 years. It's definitely on the way out, and has its problems:<br />
<ul><li>Broken charger </li>
<li>Broken hinge </li>
<li>Hot</li>
<li>If it gets jostled the wrong way, the screen goes dark and everything is unresponsive (ever since the hinge broke).</li>
<li>Battery life is down to about 40 minutes on a full charge.</li>
<li>Not to mention its 6-year-old specs. </li>
</ul>...but I'm hoping it will hang on until I see what the new Haswell chips can do in a transformable laptop in the 15" range. I don't want to feel like my new computer is a downgrade. With the Helix's small screen, that was definitely the case, even with the increased pixel count.<br />
<br />
<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com0tag:blogger.com,1999:blog-11837278.post-77839657481407657972013-03-30T18:22:00.003-07:002013-03-30T18:50:08.434-07:00Coming Around to the Kindle PaperwhiteI like to make my buying choices intentionally. I support the ecosystems that I think are best for the user, usually in terms of user rights and flexibility. Not just for myself; I want ecosystems that respect the users' interests over centralized control to exist and be well supported. This is why I initially <a href="http://tuxbox.burndive.com/2007/11/why-i-chose-hd-dvd-over-blu-ray.html">bought</a> HD DVD over Blu-ray, and refrained from buying iPhone (and every other Apple product).<br />
<br />
This is also the reason <a href="http://www.burndive.com/2012/04/looking-for-advice-on-e-ink-e-book.html">I chose to avoid the Kindle</a>. Amazon has their own proprietary format and DRM for e-books; they don't support other vendors' books on their readers, nor their books on other company's readers. I have found, however, that <a href="http://www.burndive.com/2012/05/i-bought-nook-simple-touch.html">this restriction is easy to get around</a>, with the right software. I am free to buy e-books from any vendor and load them on a device from any vendor, Amazon included. <br />
<br />
In the 11 months since <a href="http://www.burndive.com/2012/05/i-bought-nook-simple-touch.html">I bought my Nook Simple Touch</a>, the market has evolved. Both Barnes & Noble <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVd3QAvPh3OzLAmsxrcguPDvK8mhyWb4TT6dN5vf5XfP3faVobAQa2ORFKmAKyS_7M4iRlnmoUuwDaW4ZxE3mp4F_bKdUgNgVMpSVpjZlTwhjV0jgi2TOVeP2GsR6bND7K6d81Yg/s1600/20130329_212212.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVd3QAvPh3OzLAmsxrcguPDvK8mhyWb4TT6dN5vf5XfP3faVobAQa2ORFKmAKyS_7M4iRlnmoUuwDaW4ZxE3mp4F_bKdUgNgVMpSVpjZlTwhjV0jgi2TOVeP2GsR6bND7K6d81Yg/s1600/20130329_212212.jpg" width="150" /></a>and Amazon have come out with lighted e-ink readers. Both companies have tablet-style readers. Barnes & Noble is spinning off their Nook division to a separate company. An antitrust lawsuit has resulted in actual price differentiation in the e-book market once again, and Amazon once again clearly has the lower prices and best promotions. In fact despite my owning a Nook, most of my e-book purchases have been from Amazon. I have only purchased one (non-free) e-book from the Nook store. The rest have been from Kobo, <a href="http://storybundle.com/">StoryBundle</a>, and the <a href="http://blog.humblebundle.com/post/33237485887/introducing-the-humble-ebook-bundle">Humble Bundle</a> (and also one from Google for 25 cents). <br />
<br />
I got a $25 Barnes & Noble gift card for Christmas from my parents. I have loaded it onto my account, but I haven't spent any of it yet. Every e-book purchase I want to make, it's never the best price. I will probably use it to get the next installment in the Game of Thrones series (whenever that eventually comes out), since new releases tend to have the same price in most places.<br />
<br />
There is also the issue of Amazon Prime. Last summer, I switched from Netflix to Amazon Prime for streaming video. Our Blu-ray player has built-in support for both. The selection of free streaming movies isn't nearly as good, but they do have an excellent selection of TV shows, including all of Star Trek, Firefly, and several other sci-fi series. The free two-day shipping from Amazon with no minimum order (which I was able to extend to four additional friends' accounts) makes it an excellent deal. I'm hooked.<br />
<br />
The value of Amazon's streaming would definitely be increased if I had a Kindle Fire. Thus far, Amazon has not released their Instant Video player for Android. This despite the facts that Kindles are built on Android, and they have a player for iOS. Their excuse is that Android isn't secure enough, and their video partners wouldn't let them stream their content if they had an Android player. This doesn't seem to have stopped Netflix, Flixster, RedBox, the Google Play store and several others from offering streaming players on Android. The transparent artificiality of this restriction alone makes me not want to buy a Kindle Fire. It's simply a bad way to treat your customers, and it makes me want to look elsewhere. The Kindle Fire devices aren't that good when compared to other tablets. If I'm going to spend money on a dedicated tablet, I would much prefer a Nexus device. All things considered, my actual plan for tablet functionality is to get a touchscreen Windows 8 convertible laptop/tablet. My current laptop is nearing the end of its life, and I'm keeping my eyes open for devices like Lenovo's Yoga and Helix lines, which are full PCs, but also have tablet functionality and form factor, and a tablet app ecosystem that I believe will do well over time.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyWPvgkAfb3220F9-uaRF0kBg_SnVtcG_zGQoPmsnrQhg9jFTkaQjaYsKwC1U6ukaIQMFWiWFKTiTbW_ZdTKV2bRDjT1zDypG0-4aUec_snlp1qEH_PrUv96-msbbltaQS5l80wQ/s1600/20130330_152039.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyWPvgkAfb3220F9-uaRF0kBg_SnVtcG_zGQoPmsnrQhg9jFTkaQjaYsKwC1U6ukaIQMFWiWFKTiTbW_ZdTKV2bRDjT1zDypG0-4aUec_snlp1qEH_PrUv96-msbbltaQS5l80wQ/s1600/20130330_152039.jpg" width="150" /></a>The other benefit of owning a Kindle device is access to the Kindle Lending Library. The best way to take advantage of this would be with an e-ink reader, which is definitely my preferred reading medium. If I were to get a Kindle Fire, I would want to keep my Nook around for most actual reading. That's another reason I'm not very interested in the Fire.<br />
<br />
When I purchased my Nook, I was aware that a GlowLight version was coming down the pike. I chose not to wait and spend the extra money just for that one extra feature. Looking at the landscape now, the Kindle Paperwhite offers several advantages over my Nook Simple Touch:<br />
<br />
<ul><iframe bordercolor="#000000" class="apwkcxbztizjfedjzzyb" frameborder="0" height="150" hspace="0" marginheight="0" marginwidth="0" scrolling="no" src="http://ad.doubleclick.net/adi/N7433.148119.BLOGGEREN/B6533661.1447;sz=180x150;ord=[timestamp]?;lid=41000613802463918;pid=64190;usg=AFHzDLsikcufaiXMAHQakUMar1GXarSBzA;adurl=http%253A%252F%252Fwww.abt.com%252Fproduct%252F64190%252FAmazon-B007MHZJDC.html;pubid=630157;price=%24119.00;title=Amazon+Kindle+Paperwhi...;merc=Abt+Electronics+%26+Appliances;imgsrc=http%3A%2F%2Fcontent.abt.com%2Fmedia%2Fimages%2Fproducts%2Fl_B007MHZJDC.jpg;width=48;height=85" style="clear: right; float: right;" vspace="0" width="180"></iframe>
<li>Higher resolution, higher contrast e-ink screen</li>
<li>Built-in illumination - at the time I bought my Nook, I didn't want to be doing a lot of reading in bed. These days, mostly because of how Shoshana's condition has effected our lives, I have been doing a lot of reading in bed when Elizabeth and I have different sleep schedules, and in darkened hospital rooms while Shoshana sleeps.</li>
<li>Access to the Kindle Lending Library</li>
<li>Kindle-specific features, such as "X-Ray", Whispersync, Time to Read, and upcoming Goodreads integration (Amazon is <a href="http://www.theverge.com/2013/3/28/4157982/amazon-to-acquire-book-recommendation-social-network-goodreads">buying Goodreads</a>). </li>
</ul>
I don't regret buying my Nook. It was a good decision at the time, and it was fun to root it and customize it. Managing the rooted environment has become somewhat of a chore, and it is a definite drain on battery life. If I buy the Kindle Paperwhite, I will be able to sell my Nook Simple Touch for at least $50. Including the skin and case (and the option of root or not) should increase that price. I have some birthday money still burning a hole in my pocket.<br />
<br />
I will miss the Nook's physical page turn buttons and wide grip. I will miss the ability to supply my own screensaver images. I will not miss the Nook ecosystem.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigr1yXWyHjaO_1rK-DziK4oYsAhJvLJBPsxgU3tmexziq7XIswKw9uS-mVS6cAdQWJz3Ng3Xqt-RJjS8vsuRCkqhSYNTXq99Dh6vW-fkOFcT-Tm0FnYO3_rC03MyhEGrjYaTiQ-A/s1600/20130330_152501.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigr1yXWyHjaO_1rK-DziK4oYsAhJvLJBPsxgU3tmexziq7XIswKw9uS-mVS6cAdQWJz3Ng3Xqt-RJjS8vsuRCkqhSYNTXq99Dh6vW-fkOFcT-Tm0FnYO3_rC03MyhEGrjYaTiQ-A/s1600/20130330_152501.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption">My folder of Nook screensavers. Definitely preferable to Kindle's ads.</td></tr>
</tbody></table>
<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com1tag:blogger.com,1999:blog-11837278.post-64133722838410019002012-11-28T00:28:00.000-08:002012-11-28T10:55:58.490-08:00Humble Bundle Data - Android 4I <a href="http://tuxbox.burndive.com/2012/11/humble-bundle-data-results.html">did it</a> again. This time, the bundle was a games bundle (<a href="http://blog.humblebundle.com/post/35279343029/you-wanted-more-games-galore-so-get-ready-for-humble">The Humble Bundle for Android 4</a>), which is <a href="https://www.humblebundle.com/">Humble</a>'s normal fare. Also this time, I was able to collect data from the very beginning. There was a period of 7 hours where my server got turned off and no data was collected, but that time slot was in the middle of the data collection with no major events occurring near it. I patched it up with a little bit of linear interpolation. It shows up on the Marginal Average Price as a plateau, but is otherwise unremarkable.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8yLQsTQj2Y28KqPk-4Of5j3dc97aWH_JpwVHSSh5DY76wksYEnvY3Cm00RmYGxH4iMiNofN40TQJJuDvrMPf5DRh0hNMMZh0YgawNHzM5Wcl5GGCmnkd5KpgBe6rbfK99EnPeCA/s1600/humble-android4-01-average-price.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8yLQsTQj2Y28KqPk-4Of5j3dc97aWH_JpwVHSSh5DY76wksYEnvY3Cm00RmYGxH4iMiNofN40TQJJuDvrMPf5DRh0hNMMZh0YgawNHzM5Wcl5GGCmnkd5KpgBe6rbfK99EnPeCA/s1600/humble-android4-01-average-price.png" width="400" /></a></div>
<br />
One thing about this graph that I was not able to capture last time is that the average price was actually highest at the beginning, before sinking to a low, and then slowly rising. The "event" in the middle is when games from the previous Android bundle <a href="http://blog.humblebundle.com/post/35782746095/humble-bundle-for-android-4-turns-it-up-to-eleven">were added</a> as an additional bonus. Interestingly, I was able to purchase at the point of lowest average price though I did beat it by making my purchase price a nice round number, thereby contributing to the bounce-back of the average price from its initial fall.<br />
<br />
The initial fall is probably due to a bunch of people paying $0, or $1 immediately just to get the basic games and/or Steam keys.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhenZdpLupG6k-ijTR1rC4QI6_uar5qnJjdUhMgEufYWsNsiSRTceTU3eRx4o8jiJDhmWZcc0QjNIzvJOoxMgUHC9A-0Oy9t1A1Qjnn3gFXEPiMF5Bkg9ve88gdBREGQ95sdZubzA/s1600/humble-android4-02-purchases.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhenZdpLupG6k-ijTR1rC4QI6_uar5qnJjdUhMgEufYWsNsiSRTceTU3eRx4o8jiJDhmWZcc0QjNIzvJOoxMgUHC9A-0Oy9t1A1Qjnn3gFXEPiMF5Bkg9ve88gdBREGQ95sdZubzA/s1600/humble-android4-02-purchases.png" width="400" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2EkYtZRDjpX47rTHQn8MEKFYEIViyDxYQMTmsGsQ9D5h30SRaTPNLR0q4AHuIjNrJoK1EkPNfYpMAtAxbF9zGhkQLOAxVLvSiDvuIe1H7xzfyNOgAguq5qbssoDF7q56o_wK9gg/s1600/humble-android4-03-revenue.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2EkYtZRDjpX47rTHQn8MEKFYEIViyDxYQMTmsGsQ9D5h30SRaTPNLR0q4AHuIjNrJoK1EkPNfYpMAtAxbF9zGhkQLOAxVLvSiDvuIe1H7xzfyNOgAguq5qbssoDF7q56o_wK9gg/s1600/humble-android4-03-revenue.png" width="400" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil1L6MfIi86QwFhBPCGo_AKhKfqnoQwDpJ9qoAbytpWHmvDFIp7NS_C4fX8bLLOw1ghCXzpBj8kxPYp0Q8BsMPy494-9METrAIH4RdKwHUfQAJpS6yrhujmfzZ16_2rdV5kmKzlA/s1600/humble-android4-04-marginal-purchases.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil1L6MfIi86QwFhBPCGo_AKhKfqnoQwDpJ9qoAbytpWHmvDFIp7NS_C4fX8bLLOw1ghCXzpBj8kxPYp0Q8BsMPy494-9METrAIH4RdKwHUfQAJpS6yrhujmfzZ16_2rdV5kmKzlA/s1600/humble-android4-04-marginal-purchases.png" width="320" /></a></div>
The ramp-up of initial purchases is quite high, as you can see.<br />
<br />
In this case at least, the initial "bump" was much more significant than the subsequent "blip" produced by adding more bonus content. A lot of people already have the previous bundle games, so this is somewhat expected.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKl8T8n6I0hd2Mx0md9mw4YubT8BH0J2KxEtDhQ2t_GLOri1FkhFrEE_amqh24NSC_N1FJXiPjuKFwvO4K4qFb87ecFezYXUdDPlkkGrsmKTE9B-eciF6_khWb37nQJY-dQ1QqA/s1600/humble-android4-05-marginal-revenue.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKl8T8n6I0hd2Mx0md9mw4YubT8BH0J2KxEtDhQ2t_GLOri1FkhFrEE_amqh24NSC_N1FJXiPjuKFwvO4K4qFb87ecFezYXUdDPlkkGrsmKTE9B-eciF6_khWb37nQJY-dQ1QqA/s1600/humble-android4-05-marginal-revenue.png" width="320" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrwdV9VllyZBQTH6wMfHVjVOe6gMPxqThUajYj09TDBXa_rmfZRxYR_f6Hm7aQkNSqBfa_Y4UCY6SqGfT0MML0EoW4sZU5DIrngLdGwQCJNepTy9aNi_vrUUBalS0F7ZlfhwXpGQ/s1600/humble-android4-06-marginal-average-price.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrwdV9VllyZBQTH6wMfHVjVOe6gMPxqThUajYj09TDBXa_rmfZRxYR_f6Hm7aQkNSqBfa_Y4UCY6SqGfT0MML0EoW4sZU5DIrngLdGwQCJNepTy9aNi_vrUUBalS0F7ZlfhwXpGQ/s1600/humble-android4-06-marginal-average-price.png" width="320" /></a></div>
Here again is the raw data, for those who might be interested:<br />
<ul>
<li><a href="http://bit.ly/Qpngow">humblebundle-android4.csv</a></li>
<li><a href="http://bit.ly/UrhCml">humblebundle-android4-2012-11-22-1445.xlsx</a></li>
</ul>
<br /><div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com2tag:blogger.com,1999:blog-11837278.post-41222986123450841552012-11-01T08:34:00.000-07:002012-11-01T16:38:08.487-07:00Humble Bundle Data - ResultsIn <a href="http://tuxbox.burndive.com/2012/10/humble-bundle-data-collection.html">my previous post</a>, I said I was going to finish collecting data for the rest of the <a href="http://blog.humblebundle.com/post/33237485887/introducing-the-humble-ebook-bundle">Humble eBook Bundle</a> at <a href="http://humblebundle.com/">humblebundle.com</a> and post the results here. <br />
<br />
The results are in. This was probably the most successful Humble Bundle to date, based on the ending average price. Let's look at the data for the Average Price over Time. <br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQWcAMjrt-0hlCpdcQEZDFWs5a1r8UOtR6s-jov2MB5LwJSEOzbpWrohp9ONYkuW-NS_q-cbVelZSQobH6SEyUdtWUdjGHsKQgRmIv_G1TxtE9wTzBCREvi2sHKyvcZI5MhvYDBA/s1600/humble-bundle-01-average-price.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQWcAMjrt-0hlCpdcQEZDFWs5a1r8UOtR6s-jov2MB5LwJSEOzbpWrohp9ONYkuW-NS_q-cbVelZSQobH6SEyUdtWUdjGHsKQgRmIv_G1TxtE9wTzBCREvi2sHKyvcZI5MhvYDBA/s1600/humble-bundle-01-average-price.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Average Price over Time</td></tr>
</tbody></table>
You may notice that bump in the middle of the graph. That is the point in time when<a href="http://blog.humblebundle.com/post/33714074132/humble-ebook-bundle-is-now-five-times-more-hilarious"> several PDF comic books were added</a> to the Humble eBook Bundle. This had the effect of pushing a lot of fence-sitters over the edge to purchase the bundle, as well as increase the margin by which purchasers were willing to "beat" the average price.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyFAqmPD3L7mV_-fTbEJ36Es7VjSWQlHayp6p1KGDReHjojRa22iG44d_7vkh7Hj-rtc6_ceNqF-Oes_Q-rSotXAkAYT9Pl4sQeTj1vmr9HVzB0TSDdXkQxtfdyHcMWP1MgMJo8A/s1600/humble-bundle-02-purchases.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyFAqmPD3L7mV_-fTbEJ36Es7VjSWQlHayp6p1KGDReHjojRa22iG44d_7vkh7Hj-rtc6_ceNqF-Oes_Q-rSotXAkAYT9Pl4sQeTj1vmr9HVzB0TSDdXkQxtfdyHcMWP1MgMJo8A/s1600/humble-bundle-02-purchases.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Total Purchases over Time</td></tr>
</tbody></table>
You may notice that the Total Purchases graph has some missing data at the beginning. This is because initially I only collected the Average Price (and I was over an hour late in starting that collection). The bundle started at 10:00 AM PDT; I started recording the average price at 11:30 AM, and I started collecting the total number of purchases at 5:30 PM. <br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWmUjvGboyKT0iVYCtmWX-ZpzxOimJhUx5VrGwDOrEXhmcMeSshwNM9n2k-d01Bivfv19MCTK8jbkwjIg1WB-R2y1E4Pf4FD17LT9dPe6BMxlC44YT5rYBJqqoAjagWE5460gYdw/s1600/humble-bundle-03-revenue.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWmUjvGboyKT0iVYCtmWX-ZpzxOimJhUx5VrGwDOrEXhmcMeSshwNM9n2k-d01Bivfv19MCTK8jbkwjIg1WB-R2y1E4Pf4FD17LT9dPe6BMxlC44YT5rYBJqqoAjagWE5460gYdw/s1600/humble-bundle-03-revenue.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Total Revenue over Time</td></tr>
</tbody></table>
With those two numbers, I was able to calculate the total revenue collected. Later, I added direct collection of this figure.<br />
<br />
As you can see from the graph. At no point did the average price go down much at all (there were a few times it went down a penny or two). This answers the question I was initially asking, at least for this bundle: should I wait for a lower price? The answer is of course emphatically no. If I was going to beat the average price, the time to do it was as early as possible.<br />
<br />
I do seem to recall bundle average prices going down in past bundles, but this may have been due to abuse by people pumping the system for free and/or very cheap Steam keys. That practice seems to have been cracked down upon with CAPTCHAs (remember: only use your scripting powers for good), and the momentum of the price and interest in the bundle seems to have been maintained by the addition of the bonus content. I would expect similar measures in the future.<br />
<br />
As it turned out, I when the extra bonus content was added, it was also added to the account of everyone who had previously purchased the bundle, whether they beat the average or not, so I ended up with all but the initial two bonus books.<br />
<br />
These marginal rates were all calculated from the previous values. It would be interesting to have better data at the beginning of the data set. I'm curious to know how the profile of the initial wave compares to the second bump. You can't really tell with the first seven hours missing, unfortunately. My suspicion is that the secondary bump was sharper than the initial wave, mostly because I believe that the secondary wave was largely fence-sitters who had not bought because they thought the price was too high for the content offered. When more content was offered (and considering the content), they immediately jumped on it.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1p5myZmPmmONB-Ichk5qwBBgcwsdw3hdFV8qXUVVFjL9ArCcp3aWMXy5Mtfvw-J0i1hPbU7fyjWFbCBs-58l37Zc12zLZwfcyopQL39_kL17d6IFuWNymYk0dwdLvv1fLKMetCQ/s1600/humble-bundle-04-marginal-purchases.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1p5myZmPmmONB-Ichk5qwBBgcwsdw3hdFV8qXUVVFjL9ArCcp3aWMXy5Mtfvw-J0i1hPbU7fyjWFbCBs-58l37Zc12zLZwfcyopQL39_kL17d6IFuWNymYk0dwdLvv1fLKMetCQ/s1600/humble-bundle-04-marginal-purchases.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Marginal Purchases (every 15 minutes)</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ6sClrgf-U6o3bnKcLik4iQl5e3F9i391ouAYvoHBcDHjp32gqUTBaoCFApk2h6vkIVBaoT8AuHiWypk-zKml3JB2-IPI0E5cIutHFQ9RXCT4GpVA7melqvlmTlS0LulDeWPdHA/s1600/humble-bundle-05-marginal-revenue.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ6sClrgf-U6o3bnKcLik4iQl5e3F9i391ouAYvoHBcDHjp32gqUTBaoCFApk2h6vkIVBaoT8AuHiWypk-zKml3JB2-IPI0E5cIutHFQ9RXCT4GpVA7melqvlmTlS0LulDeWPdHA/s1600/humble-bundle-05-marginal-revenue.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Marginal Revenue (every 15 minutes)</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIrJTzZKf0b5b7mx0Fhs7qa8RMmAMwX7Y8Gh2nEtRbhxcih3ydegrmogJQLb3UHTsy3p_1IeYfh-Gs5nol7b-lhdE6dZNL5oWglxvYifpWDwehLVO8-aXcYnhR9z5QlR8VH2Q22w/s1600/humble-bundle-06-marginal-average-price.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIrJTzZKf0b5b7mx0Fhs7qa8RMmAMwX7Y8Gh2nEtRbhxcih3ydegrmogJQLb3UHTsy3p_1IeYfh-Gs5nol7b-lhdE6dZNL5oWglxvYifpWDwehLVO8-aXcYnhR9z5QlR8VH2Q22w/s1600/humble-bundle-06-marginal-average-price.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Marginal Average Price (every 15 minutes)</td></tr>
</tbody></table>
It should be noted that the website data is far from perfect. The totals sometimes went down from one reading to the next, and after the bundle had ended, the numbers were still in flux for several hours, but at the scale of these graphs, the fluctuations are insignificant.<br />
<br />
If you would like to look at my raw data, I will provide it for download in its unprocessed CSV format generated by my script, as well as the Excel spreadsheet that I used to calculate the missing values and create these fancy graphs.<br />
<br />
Here is the data:<br />
<ul>
<li><a href="http://bit.ly/SyMW2a">humblebundle-ebook.csv</a></li>
<li><a href="http://bit.ly/SyD7QP">humblebundle-ebook-2012-10-23-1615.xlsx</a></li>
</ul>
Here is the final form of the script I used to create this data:<br />
<ul>
<li><a href="http://bit.ly/YqRuIs">humble-bundle-price-tracker.sh</a> </li>
</ul>
Enjoy! <div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com0tag:blogger.com,1999:blog-11837278.post-10038646120900217452012-10-10T00:55:00.002-07:002012-11-01T16:39:29.874-07:00Humble Bundle Data - CollectionToday was the launch of the <a href="http://blog.humblebundle.com/post/33237485887/introducing-the-humble-ebook-bundle">Humble eBook Bundle</a>. The way that Humble Bundles work is that the site lists a collection of downloadable items (traditionally games, but lately they have branched out into music, and now books). You can pay any price (including free, if you choose) for the bundle, and it's yours. You can even tweak how much of your purchase price goes (directly) to the content creators, the Humble Bundle site, and a few charities.<br />
<br />
Well, not <i>all</i> of the bundle is yours at <i>any</i> price. There are bonus items, which are typically the best of the bunch. To get these items, you are required to beat the average price of the bundle so far. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6Vaz5H1nf9BCOumu8tqQm_eozrtvRg7bCzjAe31KEWnhU9tKaOXA9MKvIxGZg_Yo8Zbd4CR433vW864MAtbGDWCG0oRMl538BquHpRFl6BHkMPnM2eW1MWCRBMNvwN76ZIyxEUw/s1600/humblebundle-ebook-shot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="206" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6Vaz5H1nf9BCOumu8tqQm_eozrtvRg7bCzjAe31KEWnhU9tKaOXA9MKvIxGZg_Yo8Zbd4CR433vW864MAtbGDWCG0oRMl538BquHpRFl6BHkMPnM2eW1MWCRBMNvwN76ZIyxEUw/s400/humblebundle-ebook-shot.png" width="400" /></a></div>
<br />
Well, I like bundles, and I like e-books, so I decided to get the bundle. But I wasn't prepared to pay the price at the time to get the two bonus books. They looked good, but the average price was then just over $9, and I thought that if I was going to spend <i>that</i> much money on an e-book, did I really want the ones offered? I would be willing to bite--but only if the price went down. Humble Bundles typically hover around the $5-7 range for unlocking the bonus content, which for my money is a better impulse purchase for content I didn't get to pick out myself.<br />
<br />
Funny thing about having to beat the average price: a lot of people do it, and that will have a tendency to create a constant upward trend in the price to unlock the bonus content. It got me wondering, though. I fully expected the price to trend up for the first couple of days, but then does it dip down again? My gut told me that there would be an initial spike, a dip, and then a spike at the end of the two-week window when the bundle was offered.<br />
<br />
But I couldn't find any data on the subject. There are <a href="http://cheesetalks.twolofbees.com/humble/">several</a> <a href="http://en.wikipedia.org/wiki/Humble_Bundle">websites</a> where data on the various Humble Bundles can be found, but a graph of average price over time was nowhere to be found. "Well," I thought, "I'll make one then."<br />
<br />
So I did. Or rather, am.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz2iKPJr13xfYwyGDOPuV9hjOiE06E_GOJ4BbFOj7doQWHGNfm2YTN9c1AnekK-QeA5MrqVIjJH9pBsNTM8ZDdCVkIr2TQ0k3VQdwtW602NbYjGe0R0jPsSJ3lSRmQKalY3zE5hQ/s1600/humblebundle-ebook-data.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz2iKPJr13xfYwyGDOPuV9hjOiE06E_GOJ4BbFOj7doQWHGNfm2YTN9c1AnekK-QeA5MrqVIjJH9pBsNTM8ZDdCVkIr2TQ0k3VQdwtW602NbYjGe0R0jPsSJ3lSRmQKalY3zE5hQ/s400/humblebundle-ebook-data.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">My data collected at the end of day 1, showing average price and total purchases over time.</td></tr>
</tbody></table>
I whipped up a quick script on my Linux box that uses <span style="font-family: "Courier New",Courier,monospace;">links -dump</span> to grab a text-only version of the web page. It then successively greps this page for the data I'm after, and appends a line of data to a CSV file. Initially, I only collected the timestamp and average price, but I decided that the total quantity sold at that time would also be a valuable and relevant piece of data.<br />
<br />
I added a line in my crontab file to run the script every 15 mninutes (which is plenty of granularity over two weeks, and also very reasonable to the remote server), and viola: data!<br />
<br />
It will be interesting to see how this little experiment turns out. It may be that the price will almost always trend upward. I know that with certain past gaming bundles, games from previous bundles were added to the current bundle as bonus items in order to motivate people to pay the higher price and keep the average up. I suspect that these items were added at times when the average price was dipping in order to bring it back up. I don't know that there are any books in reserve for this bundle, so that may not be an option.<br />
<br />
If it does happen, that will be interesting to watch in the data.<br />
<br />
Side note:<br />
<ul>
<li>Another bundle site of note that just got started specifically for e-books is <a href="http://storybundle.com/">StoryBundle</a>. StoryBundle is slightly different, in that they set a minimum price ($1), and the bonus books can be unlocked at a constant price ($7). </li>
</ul>
<br />
I will post an update to this blog when the bundle is over with the full results of the data I collect. <br />
<br />
<blockquote class="tr_bq">
Update: <a href="http://tuxbox.burndive.com/2012/11/humble-bundle-data-results.html">Here are the results</a>. <br />
Enjoy!</blockquote>
<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com0tag:blogger.com,1999:blog-11837278.post-36316833718429647172012-08-22T20:24:00.002-07:002012-08-22T22:38:48.447-07:00Upgrading to the Galaxy S III for free (basically)Last March for my birthday I shelled out around $150 for the latest
and greatest cell phone available on my carrier: the Motorola Atrix 4G.
This time around, I wanted to get the new latest and greatest: the
Samsung Galaxy S III, but I didn't want to spend any money on it.<br />
<br />
Here's how I pulled it off (largely adapted from<a href="http://lifehacker.com/5636975/how-to-upgrade-to-the-latest-iphone-for-free"> this Lifehacker post</a>):<br />
<br />
<br />
First of all, I have kept my Atrix in immaculate condition. I immediately bought a hard-shell case (<a href="http://amzn.to/O45DXE">Incipio Feather</a>)
and screen covers. I have replaced the screen cover several times, and
the case has suffered a few falls and been cracked, and replaced, but
the phone itself is in perfect condition.<br />
<br />
There are
two main markets for off-contract phones. One is people whose phones
break mid-contract, or who want an early upgrade without renewing their
contract. The second is pre-paid customers, or customers of MVNOs that
don't get contract subsidies, and therefore don't pay the monthly
"subsidy tax" that we on-contract folks pay (and continue to pay, even
if our contract expires). The second group of phone buyers require the
phones to be unlocked in order to use them.<br />
<br />
For
reasons beyond my fathoming, cell phone carriers are allowed to sell you
a device, but still retain control over it. They have disabled its
ability to work on any carrier other than themselves. Of course, they
will allow you to redeem this ability for a fee, and there are also
websites out there that will sell you the unlock code for your device. I
obtained an unlock code for my Atrix online for $15. I may have been
able to ask AT&T to unlock it for free once my contract was up, but
my contract didn't expire for another few months. They allow you to
renew early, so that you never have a good opportunity to ditch them for
another company.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfMbQS-124mDzCZHN50KZl38saWW_yYb7F1M99fVlDTZm3kJvaO8nZdni8u4n9im1nYFO5F_uZ_UL7SpOLBJw9a7gNT_g25QfznYgoVnot0xHxZbkerdRr3Gx5UBfTPHWdr36rKw/s1600/2012-08-03_19-07-11_406.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfMbQS-124mDzCZHN50KZl38saWW_yYb7F1M99fVlDTZm3kJvaO8nZdni8u4n9im1nYFO5F_uZ_UL7SpOLBJw9a7gNT_g25QfznYgoVnot0xHxZbkerdRr3Gx5UBfTPHWdr36rKw/s320/2012-08-03_19-07-11_406.jpg" width="240" /></a></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiDTlMDDvnqsZYCKIk_Z-YGgJnjTb0udLx-CDZ2qrqdncnjmWJWyWFEfWwYTlQMKOc_eRSwxe4MOSbCqR05Eje0sA8zF2gNhEqAKNm37iHSVLAW2tBDN9FjVcTmdGGGyfcPeyrUA/s1600/2012-08-03_19-08-03_934.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiDTlMDDvnqsZYCKIk_Z-YGgJnjTb0udLx-CDZ2qrqdncnjmWJWyWFEfWwYTlQMKOc_eRSwxe4MOSbCqR05Eje0sA8zF2gNhEqAKNm37iHSVLAW2tBDN9FjVcTmdGGGyfcPeyrUA/s320/2012-08-03_19-08-03_934.jpg" width="240" /></a>The first step was to get the best price for the Galaxy S III. I checked <a href="http://wireless.amazon.com/">several</a> <a href="http://membershipwireless.com/">online</a> <a href="http://membershipwireless.com/">retailers</a>, and also the ads from different local stores (many can be found online <a href="http://www.shoplocal.com/">here</a>). The best price I found was at Radio Shack. They advertised it for $150, and also featured a deal where they would give you at least $30 for any trade-in phone in good condition. I traded in an ancient Nokia Qwest phone that had been Elizabeth's before we added her to my family plan on AT&T. After tax and the $30 credit, the total for the phone was $134.24.<br />
<br />
<br />
AT&T, of course, sticks their fork in the offering. They now charge $36 in what is known as a "because-we-can" upgrade fee.<br />
<br />
So, with the $134.24 Galaxy S III, $15 unlock code and $36 upgrade fee, I was out $186 for the new phone. Now to get it back. As I mentioned before, unlocking a phone makes it more valuable. Keeping it covered and cased makes it more valuable. It also helps to keep the original box. I also happened to have bought a car dock specifically for this phone. I did so after going through several generic docks, and coming to the conclusion that having one that was convenient and easy to use would be worth the money.<br />
<br />
I created a thorough post listing my phone and its accessories for $180 on <a href="http://www.craigslist.org/">craigslist</a> (I used craigslist rather than e-bay because there are no transaction fees or shipping, and I was not in a hurry). I included a detailed description of the condition of the phone, and which accessories were included. I also posted clear photos of each item, so that there would be no doubt as to what they were getting. I also mentioned that I had upgraded, so that buyers would know that there was nothing wrong with the phone, other than being out-dated.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuq9Ovw9YxXz4F7QY2hwjLwAN5DRhGchv3k4rb5Hujnw5dOMBEFIbzK9nhWQpuF_axjnmzC0Jin7gcJVUbY46eXTBKGPRhyphenhyphenh_Cjf08DP95BK8pOGMYPKXa12es3gbuAPtGRUaN2A/s1600/20120817_080121.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuq9Ovw9YxXz4F7QY2hwjLwAN5DRhGchv3k4rb5Hujnw5dOMBEFIbzK9nhWQpuF_axjnmzC0Jin7gcJVUbY46eXTBKGPRhyphenhyphenh_Cjf08DP95BK8pOGMYPKXa12es3gbuAPtGRUaN2A/s320/20120817_080121.jpg" width="320" /></a></div>
<br />
It took a week or so from when I listed it, and I had several nibbles from people who wanted to pay much less, or who eventually bugged out, even though I offered to lower the price. Today, though, I got a buyer who was interested. We met, and after booting up the phone with her card, she paid full price.<br />
<br />
So, I pulled it off (basically). Here's to next time.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLBMjwNTQdR6HOaO-JMfzHms2JVaCVx_G4GJWLjBCG9Iuvmah4U7g9m97NIb1I0ObozcAZiwv12jprkuCgYIkeRaemVasN7xZs9UvFK6wxlRlZE6jI6lZi3qyp3Xmx4kFiol7IDg/s1600/20120822_200909.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLBMjwNTQdR6HOaO-JMfzHms2JVaCVx_G4GJWLjBCG9Iuvmah4U7g9m97NIb1I0ObozcAZiwv12jprkuCgYIkeRaemVasN7xZs9UvFK6wxlRlZE6jI6lZi3qyp3Xmx4kFiol7IDg/s320/20120822_200909.jpg" width="240" /></a></div>
<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com0tag:blogger.com,1999:blog-11837278.post-14644227016259738062012-04-29T01:03:00.003-07:002012-04-29T01:03:52.729-07:00Rooting my Nook Simple TouchNote: This post is mostly about my technical experience of rooting the Nook. I'm planning to write a less technical post about actually having and using the device on <a href="http://burndive.blogspot.com/">my main blog</a> sometime soon.<br />
<br />
I recently got a Nook Simple Touch. This device is running on Android 2.1 (Eclair) under the covers, and I wasted no time getting control of my device so that I could install my own apps and customize to my heart's content.<br />
First, I backed up the internal memory. You should always back things up if you plan to mess with their innards in ways that could turn them into a brick. In fact, that's exactly what I ended up doing. Read on.<br />
<br />
<a href="http://forum.xda-developers.com/showthread.php?t=1142983">Here's a guide to backing up your Nook Simple Touch</a>.<br />
<br />
I ended up doing a Linux dd to write the nookie image to the MicroSD card, because I kept getting an error whenever I tried to do it from Windows 7 or Windows 8 preview, regardless of which tool I was using. <br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUomkIE4tuIDsZTpCCC8OR6vyagNJA-ecgvvnWGY1eNyrD05NyIhMm31p0XjnTDE0ryEuCH7PsOWiQCwvqubHOviTiGET_QIh5AI8saeRjtiJwxVcA_AJCCe4eTQatnr7TJ78sEw/s1600/nook-rooting-01.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUomkIE4tuIDsZTpCCC8OR6vyagNJA-ecgvvnWGY1eNyrD05NyIhMm31p0XjnTDE0ryEuCH7PsOWiQCwvqubHOviTiGET_QIh5AI8saeRjtiJwxVcA_AJCCe4eTQatnr7TJ78sEw/s320/nook-rooting-01.png" width="320" /></a>Also of note: the disk images produced by this backup method are 1.82 GB in size. While you're not actively using the backup images, I recommend compressing them, since they're mostly empty space. I was able to get the factory fresh image down to 237 MB by Zipping it up with <a href="http://www.7-zip.org/download.html">7-Zip</a>. I also tried the 7z format instead of ZIP, which got it down to 207 MB, but I just got 25 GB of free SkyDrive space to play with, and the compression took a lot longer to process. As you add files to the Nook, the compressed size of the images will go up.<br />
<br />
I'm going to say this again: BACK UP! And back up your backup!<br />
<br />
I had created my initial backup, and rooted it following <a href="http://nookdevs.com/Nook_Simple_Touch/Rooting/Manual">this guide</a>. I had to track down my own copy of uRamdisk_rooted, since the link they provide is dead. This method only gets you root, however; it doesn't install the Market or anything else, so this wasn't what I wanted. <br />
<br />
I then found <a href="http://forum.xda-developers.com/showthread.php?t=1343143">this thread</a>, which was exactly what I had been looking for. I was at the step where it says to follow the on-screen instructions. The instructions said to wait until the screen flashed black, remove the SD card, and reboot. I did that, or at least, I did what I thought that meant. It was really quick--too quick: the screen immediately flashed black and back to white, and then it sat there for a while doing nothing. This looked like a normal screen refresh, but was that it? Spoiler: no. <br />
<br />
I had just bricked my shiny new Nook. <br />
<br />
Not to worry! I had a backup. I then proceeded to restore it to its factory-fresh state. I booted the Nook to the nookie-flashed SD card, fired up <a href="http://www.roadkil.net/program.php?ProgramID=12">Roadkil's Disk Image</a>, and pointed it at the backup file and the Nook's drive, and clicked "Start". All appeared to be going smoothly, until I realized that I was overwriting my only good backup with an image of a corrupted system!<br />
<br />
Thankfully, that file was sitting in my Dropbox folder at the time, and had been there long enough for its 1.82 GB to have uploaded to the cloud. As fast as I could, I moved the file out of my Dropbox folder, and then went online and restored the deleted file, and re-downloaded it. I then copied it to my Linux box, and used that to copy the image back to the device using the dd command (since, as I mentioned, hitting "Start" with the correct settings in Windows only resulted in an error.). (Actually, since my current Linux box only has USB 1.1, It was faster to copy the file to the media PC, boot that to a Linux LiveCD, and dd the image from that environment.)<br />
<br />
After that, I re-initialized the device, updated its firmware from Barnes & Noble, and correctly followed the instructions to root it, creating several backup images along the way. One annoying thing about creating backups is that in order to do so, you need to boot from the nookie-imaged SD card (which is different from the touchnooter image used to root it, and also different from the way the Nook sets up files on it during normal operation). I only have three MicroSD cards: two of them are in Liz and my phones (and are therefore in use), and the remaining one is for the Nook. There are no extras, so whenever I need to make a backup, I have to somehow preserve what's on the card (if it's valuable), flash it with the nookie image, create the backup, and then restore it to a semblance of its previous state. I've considered getting another microSD card. I've got my eye on <a href="http://www.amazon.com/gp/product/B004G60AD6/ref=as_li_ss_tl?ie=UTF8&tag=burndive-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=B004G60AD6">a 32GB one</a> for my phone, thus freeing up the current 8GB card and giving me lots more space for pictures, video, and music. This has the disadvantage of being unnecessary in the strict sense, and possibly more trouble than its worth at the moment since I would need to wait for it to arrive, and so I'll still need to use the old method "this time". That, and they keep getting cheaper, so I want to hold off.<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com2tag:blogger.com,1999:blog-11837278.post-75275858568191365042011-08-26T00:41:00.000-07:002011-08-26T11:15:37.430-07:00Checking In On Checking InIt's been a few months since I did my <a href="http://tuxbox.blogspot.com/2011/05/foursquare-gowalla-etc-location-based.html">write-up on location-based check-in services</a>. I've been checking in pretty consistently, and the three main services that I covered have each recently announced changes.<br />
<br />
First, my experience: I chose Gowalla as my check-in app of choice, mostly because I like the colorful and attractive graphics that each category (and often individual spot) has. Gowalla also has the added benefit of being able to check in to Facebook and Foursquare, and show my friends' check-ins from those services.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbfjnScam2a99hG0X0Z8uHRQZtHx_4ccDxVq_NI-yr2eK6D2TznJOiicdFfYVcnGSMo3qeSAhStYmJrzlySbJj65FM14s6HGUVBaLHhe8GYcOQkTRxMCp59fyPO8ytTT9aCh5bnA/s1600/1314344174718.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbfjnScam2a99hG0X0Z8uHRQZtHx_4ccDxVq_NI-yr2eK6D2TznJOiicdFfYVcnGSMo3qeSAhStYmJrzlySbJj65FM14s6HGUVBaLHhe8GYcOQkTRxMCp59fyPO8ytTT9aCh5bnA/s320/1314344174718.png" width="180" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Gowalla Items</td></tr>
</tbody></table>
<div style="text-align: right;">
</div>
At each check-in, especially since I auto-post them to Twitter and Facebook, I try to make the post interesting by taking a picture if appropriate, and always adding some sort of comment to give it context and personality. This works pretty well, but the pictures uploaded to Gowalla are tiny. I would prefer to be able to take and upload higher-resolution shots. I would also like to be able to post pictures not taken from the Gowalla app at the time of check-in. Often it takes a while to find the correct spot, and by that time, the moment I want to capture may have passed. It would be nice to be able to whip out the phone, take a picture, and then use that with my check-in. I know you can do this with Foursquare, but Gowalla likes to provide more assurances that you are actually at the place where you check in (though anything can be faked). I've considered creating a fake camera app that would simply allow you to choose an image to "take" from the existing Gallery images.<br />
<br />
Another thing I've gotten into has been Item collecting. Occasionally when you check in, Gowalla awards you a virtual item, which can be "donated" to a spot that doesn't have too many items, or traded for an item at a spot, after you check in. This aspect of checking in appeals to the collector in me. What I ended up doing was keeping those items that had had the greatest number of owners, and trading the others, in hopes of accumulating items with long and interesting histories. I was doing OK plodding along, but the items don't come too quickly, which is frustrating, and they aren't a very intuitive feature, which means that most of Gowalla's already small user base doesn't do any trading with their items.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi38tk6GO-YjjUbN8LbTVuKz-rc3bv5zhrGtrvsuIxHFsaaLmX3iPWI-FfLV9gM7HilC8xBrXj7yCpsX9Ks8Wq1zxlxH9jGnumPfz5WyhI1vxKwNVDyKnrKi4Zis5VEH9MbrjC9nQ/s1600/1314343251524.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi38tk6GO-YjjUbN8LbTVuKz-rc3bv5zhrGtrvsuIxHFsaaLmX3iPWI-FfLV9gM7HilC8xBrXj7yCpsX9Ks8Wq1zxlxH9jGnumPfz5WyhI1vxKwNVDyKnrKi4Zis5VEH9MbrjC9nQ/s320/1314343251524.png" width="180" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Social Apps</td></tr>
</tbody></table>
Gowalla <a href="http://blog.gowalla.com/post/9378150015/going-forward">just announced</a> via their blog that they are going to do away with the item feature entirely in the coming months. This makes me sad, but I'm hoping that this means they have a clear and innovative vision that would clash with the item system. The post seems to imply that they have something big to offer in place of item swapping that they are not yet prepared to announce, so I'm hopeful, but I don't know whether anything they do will drastically increase their user base. Perhaps they have something in mind that will increase existing user engagement; something to do when checking in that they would prefer we do over item swapping. <br />
<br />
Perhaps Gowalla could pick up some users from Facebook Places, which is apparently <a href="https://blog.facebook.com/blog.php?post=10150251867797131">becoming less of a check-in service</a>, and more of a way to tack your location on to an existing post. I actually think this is a good idea, since most Facebook check-ins are simply a person-place-time data point, and have no user-generated content to make them interesting.<br />
<br />
Speaking of making check-ins more interesting, Foursquare <a href="http://blog.foursquare.com/2011/08/18/foursquare_events/">recently announced</a> that they are adding events to places, and they aren't relying on users to generate and update the schedules: they're turning to the pros. This is good news. Whereas before a typical foursquare user would check in at a movie theater or a concert hall without comment or commenting simply to mention the event, now the app presents them with a list of movies or acts that are currently showing where they are checking in, and they have the option to pick one. Hopefully this will encourage users to add details other than what they're there for, like what they think of it, or who they're with.<br />
<br />
I actually use Foursquare through Gowalla, but this feature isn't available to me, since Gowalla only maps its spots to Foursquare's venues, not the new events. If Gowalla fails to deliver on their new vision, I might find myself simply using the Foursquare app to check in. Foursquare allows you to post any picture with your checkin, including one you already took, and the Foursquare user base is much larger than Gowalla, so I have many more friends who use it. Switching would be very simple for me to do, but I would definitely miss Gowalla's colorful and cartoony icons.<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com0tag:blogger.com,1999:blog-11837278.post-47789010086676006112011-07-08T21:14:00.000-07:002011-07-19T15:27:47.170-07:00Google+: Impressions So FarI was able to get an invitation to join Google's new social network, Google+, a few days ago, and I thought I would give my initial impressions.<br />
<br />
First of all, it's a social network, which means that you can post content which others you specify can see, and you can see others' content that they have allowed you to see. In that way it is <a href="http://www.xkcd.com/918/">much like Facebook</a>. I think you all get the idea, so I'm going to focus on what's different and new.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1j12zd2TyO0EtIlCPmIjwfZoLNB6zC9b9eW9EEOYUcR2LxP3ZbSBn71NeWaHWTJ6uwUMlv_y1Dv-CdF3gt0nUNEiJPWrBVbIAAZouoD6ydx3O3Ue1wMTLV9IWFuA55AQMomlQUw/s1600/picsay-1310110592.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1j12zd2TyO0EtIlCPmIjwfZoLNB6zC9b9eW9EEOYUcR2LxP3ZbSBn71NeWaHWTJ6uwUMlv_y1Dv-CdF3gt0nUNEiJPWrBVbIAAZouoD6ydx3O3Ue1wMTLV9IWFuA55AQMomlQUw/s320/picsay-1310110592.jpg" width="180" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Google+ Android app</td></tr>
</tbody></table>
The first thing you'll notice when you sign up is that instead of simply "Friends", Google wants you to categorize your contacts into "Circles", which are sets of contacts. The purpose of this is so that you can easily share different things with "Family" than "Work"; "Acquaintances" than "Friends" (your <i>real </i>friends), and of course you can create as many custom circles as you wish.<br />
<br />
Of course, Facebook has Friends Lists which lets you do the exact same thing, but not many people use them, and almost no one picks and chooses which Friends Lists to share things with on Facebook, whereas the idea is that with Google+, that will be the norm.<br />
<br />
I think the most compelling features of Google+ are as follows:<br />
<ul>
<li><b>Hangouts </b>- You can flip on your webcam and start a Hangout, which you can invite your circles to or post to your profile. Others who see you're hanging out can join you, and what results is a very easy multi-way video chat. When someone starts talking, the big video switches to them. </li>
<li><b>Automatic mobile photo/video upload</b> - People like to take pictures and videos on their phone, and it can be quite a hassle to get those photos and videos off. You can either plug your phone in to your computer, or you can manually select pictures and videos for upload using an app. Google+ offers set-it-and-forget-it convenience: with the Google+ app, you have the option to have everything automatically uploaded to your own private space, from which you can easily share selected photos and videos. You can select whether to upload over the network, only over WiFi, or only over WiFi while charging, so it doesn't eat up your data plan or drain your battery if you don't want it to. The online backup feature alone is worth installing the app, even if you never share anything, but once it's already online, why not use it?</li>
<li><b>It's Google</b> - and therefore very conveniently integrated with all of your Google sites, like Gmail, Google Reader, Picasa, and Google Calendar. Those of us who use these services will see a notification counter and "share" button in the top right hand corner of the page. It will just be "there" for us to use.</li>
</ul>
I find it interesting that, at least as yet, there is no way to publicly post a message to another person. On Facebook, this would be like posting to someone's wall. On Twitter, it would be @ mentions and replies. This makes it significantly less social in my opinion: basically everyone is simply publishing things and sharing and commenting on things that others publish. You can publish all you want, but no one interacts with your posts unless they follow you. Even when you mention someone else, only that person gets a notification, not their friends. The only serendipity is in comments.<br />
<br />
I predict that this will make Google+ much less of a content generation space than Facebook. People will tend more to import their existing streams of content to Google+, rather than using Google+ to initiate the conversation.<br />
<br />
I could be wrong. I hope so. Then again, I personally almost never post on other people's Facebook walls. All of my content on Facebook originates on other services, such as Twitter, Gowalla, Posterous, and Blogger. This makes it easy for me to check a box on those services and send the content to Google+ as well as Facebook, and thus Facebook is not the exclusive holder of my content (this is by design). But I wonder what the designers of Google+ are intending to do by not implementing such a seemingly basic feature.<br />
<br />
They may not have been able to come up with a way to make it work with circles. After all, if all of your content gets published only to the circles that you pick each time, how can you trust your contacts to pick the appropriate circles with which to share their posts to your profile? (On the other hand, anyone who can see a post can republish it to anyone else, unless sharing is disabled.)<br />
<br />
I don't think Google+ will die or be as obscure as Orkut (or as hated as Buzz), but I also don't think it will become as popular a place to spend time and interact with all of your friends as Facebook. Google+ is a great personal publishing platform, and it has some useful tools for connecting with friends and colleagues, but it is definitely not a Facebook clone, nor, I fear, a Facebook killer.<br />
<ul>
</ul>
<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com2tag:blogger.com,1999:blog-11837278.post-20476654850980796362011-05-23T00:24:00.000-07:002011-05-23T10:48:23.296-07:00Foursquare, Gowalla, etc.: Location-Based Checkin NetworksThis post is the second in my series of Android app comparison posts. Last time I <a href="http://tuxbox.blogspot.com/2011/05/android-twidroyd-vs-tweetcaster-pro.html">compared two Twitter clients</a>, this time I'm looking at location-based checkin services.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiphWgtd6nNXQygguzSbXbtaAdbLOwxR_FxJLpkQW9c3ulom9ABSxvseaQgXIjSoEuaSNjDAccw9vxgJCWBaJ8na2nhEEgjPgNx7kmbduwYSaYatgXQ1rUYuePcNbcnr_TPL7PSAA/s1600/1306116346989.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiphWgtd6nNXQygguzSbXbtaAdbLOwxR_FxJLpkQW9c3ulom9ABSxvseaQgXIjSoEuaSNjDAccw9vxgJCWBaJ8na2nhEEgjPgNx7kmbduwYSaYatgXQ1rUYuePcNbcnr_TPL7PSAA/s200/1306116346989.png" width="112" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Social apps</td></tr>
</tbody></table>
There is one thing to be careful of in sharing your location, and
that is privacy. Particularly when I post pictures of my small
children, I don't want to make it too obvious to creeps and stalkers
exactly where I live. I also personally don't want my full name
publicly associated with my posts. You'll notice I don't post it on
my blog, or on Twitter. Of course, once these things get imported into
Facebook, they become associated with my name, but I have configured my
privacy settings so that the association is only visible to friends
(and sometimes not all of them), or in some cases, friends of
friends.<br />
<br />
<br />
I'm the kind of person who likes to post things from my phone to share with my friends and the world. I particularly like to post pictures, but location is another very social aspect of sharing. Checkin services allow you to post about places such as restaurants, shops, parks, landmarks, transportation, or just about anything else. It's social because a places are concrete things that other people can experience too. They might enjoy the same restaurant, or be looking for one. They might see you check in at a series of airports (or ferries), and get a sense of your travel experience. <br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4-v7iR7XMD6-wQUpXPPCQC016TsviRodnHDqINFwaBFvAFPZ8WKCujCp2QkBqzvGhCxrmNdIyCHemyF-RB8snbRjHiHruxsrPrGcqNN7OHHc2yP43OTmwJMQdgRd80VNy7SZ38g/s1600/picsay-1306134424.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4-v7iR7XMD6-wQUpXPPCQC016TsviRodnHDqINFwaBFvAFPZ8WKCujCp2QkBqzvGhCxrmNdIyCHemyF-RB8snbRjHiHruxsrPrGcqNN7OHHc2yP43OTmwJMQdgRd80VNy7SZ38g/s200/picsay-1306134424.jpg" width="112" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Facebook Places</td></tr>
</tbody></table>
The most popular checkin service is actually Facebook Places. I think this is because almost everyone already uses Facebook, so they don't need to sign up for anything new, or connect with a new list of friends to share: they can just share.<br />
<br />
I haven't done much with <a href="http://draft.blogger.com/">Facebook Places</a>. It's also the least interesting, at least among my friends, in that most checkins have no comments or pictures. When I post that I'm somewhere, I usually like to say what I'm doing there: what I ordered, who's with me, what I'm looking for. I also like to include a picture. You can do all of these things with Facebook Places, it seems that no one does, though.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigStV2zn4EX2QAyISqE4Nw-JwXe6coBC725e7PYEubYFzFDprU7v0e2ga4HqlMTzssVECN3hfd6xZt1flowMXdS7tg1HqZvwzSMPgxAqmDi-sfnUK5LM-XFzssMT3a8U8XXh2JQw/s1600/1306126978441.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigStV2zn4EX2QAyISqE4Nw-JwXe6coBC725e7PYEubYFzFDprU7v0e2ga4HqlMTzssVECN3hfd6xZt1flowMXdS7tg1HqZvwzSMPgxAqmDi-sfnUK5LM-XFzssMT3a8U8XXh2JQw/s200/1306126978441.png" width="111" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Foursquare</td></tr>
</tbody></table>
The most popular of the dedicated checkin networks is <a href="https://foursquare.com/">Foursquare</a>. Foursquare is where you will be able to connect with the most people who go out of their way to check in. Foursquare also makes checking in interesting in a number of ways: <br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuyKPmFB3rlRXs8hfP9BbLz61XgALFnGN4jxDt5hyN2gvHKXgVE546gACG2gqoxRJ7LlBmyV-leuP63vg1zVXzCGLczzmSvz84IGFuUrLIFaIafl0q5NkNC8GLjRvoC3BLQwu1LA/s1600/1306132054778.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuyKPmFB3rlRXs8hfP9BbLz61XgALFnGN4jxDt5hyN2gvHKXgVE546gACG2gqoxRJ7LlBmyV-leuP63vg1zVXzCGLczzmSvz84IGFuUrLIFaIafl0q5NkNC8GLjRvoC3BLQwu1LA/s200/1306132054778.png" width="112" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Foursquare deal</td></tr>
</tbody></table>
<ul>
<li><b>Points</b>: Each checkin is scored, and you can see how well you're doing in the last 7 days against each of your friends on the leaderboard.</li>
<li><b>Badges</b>: Checking in earns you different badges based on the number and type of checkins you do. You can see which badges you have and which your friends have, and which you don't.</li>
<li><b>Mayorships</b>: If you're the one who checks in the most days at a particular venue in the last 60 days, you become the "mayor" of that place. </li>
<li><b>Deals</b>: Some stores offer special discounts to the mayor, or to anyone who checks in frequently enough.</li>
<li><b>Categories</b>: Foursquare venues are categorized, and each category has a different icon in the interface and can earn you different bonuses.</li>
</ul>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJcVpGThUEL3wndwlB5tiBU6rPrxY-VI8h_eQhF6QdHCo_DS5HKoVmLgEqNxXCMscxcppQ43xL0f_4iQQCzQwiy1G1KksVBlhkM6PcTDdYVHxgsuTadoxBYSdfz3ONhq6u6rE-8A/s1600/picsay-1306134609.jpg" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJcVpGThUEL3wndwlB5tiBU6rPrxY-VI8h_eQhF6QdHCo_DS5HKoVmLgEqNxXCMscxcppQ43xL0f_4iQQCzQwiy1G1KksVBlhkM6PcTDdYVHxgsuTadoxBYSdfz3ONhq6u6rE-8A/s200/picsay-1306134609.jpg" width="112" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Gowalla</td></tr>
</tbody></table>
<a href="http://gowalla.com/">Gowalla</a> is in many ways very similar to Foursquare, however, they have their own unique twist to checking in at a spot. (You'll notice they each call it something different: place, venue, spot, location).<br />
<ul>
<li><b>Stamps</b>:Whereas Foursquare is more of a competition against others, Gowalla promotes itself as a "game" and tends to be more individual. There is no score, but every place you check in gives you a unique Stamp to collect on your "passport".</li>
<li><b>Pins</b>: Similar to Badges, pins are awarded for checking in, sometimes for a number of times at a number of unique types of spots, sometimes for places (like states or countries), and sometimes for events or special days.</li>
<li><b>Categories</b>: Gowalla has its own category system, similar to Foursquare, but whereas Foursquare's icons (including Badges) are drab monochrome black and white, Gowalla's icons are colorful and bright, drawn in a cartoony style resembling stickers that is very aesthetically attractive.</li>
<li><b>Items</b>: Sometimes when you check in, you will find a bonus Item. There are over 100 different kinds of items, and each item has a unique ID number and a history of who has handled it and where. You can add items to your collection, or you can swap them for items left by others at different spots.</li>
<li><b>Trips</b>: Gowalla has trips generated by users, which are a collection of spots to check in. Once you have completed the tour by checking in at each of those spots, you earn the pin for that Trip.</li>
</ul>
Gowalla also has some nice features on their website: if you check in at a series of airports within certain time parameters, it will <a href="http://gowalla.com/spots/11319">combine them into a single trip</a>, showing each airport along the way and the distance between them.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvWwsq2rcxPa7-Cymo7nSayuxQtDiKBxqqStFHKxZA-O4kclsoT7WntZsMSCfxq5e6eR5bGGDJuwxR97sA0quV0G710A-dQZ_L4UYpL7iCk84HxUvaD7Zz2uDYU7rUvR5A2ffKTQ/s1600/picsay-1306134680.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvWwsq2rcxPa7-Cymo7nSayuxQtDiKBxqqStFHKxZA-O4kclsoT7WntZsMSCfxq5e6eR5bGGDJuwxR97sA0quV0G710A-dQZ_L4UYpL7iCk84HxUvaD7Zz2uDYU7rUvR5A2ffKTQ/s200/picsay-1306134680.jpg" width="112" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Google Latitude</td></tr>
</tbody></table>
Another checkin service that I have not used much is <a href="https://www.google.com/latitude/">Google Latitude</a>. Latitude is based on Google Maps, and will track your location (and give you stats for your own reference), and share it with your friends who also use Latitude. You can check in to locations, either manually, or automatically for locations you choose, or you can have Latitude give you a notification when it thinks you might want to check in.<br />
<br />
The great thing about all of these checkin services is that you don't need to choose anymore. Foursquare will update Twitter and/or Facebook, and Gowalla will not only post your checkins to Twitter, Foursquare, and Facebook, but it will also retrieve your friends' checkin information from Facebook and Foursquare and display it alongside your Gowalla friends' checkins. (All of these are optional.) <br />
<br />
The one thing that doesn't get transferred between Gowalla and Foursquare is photos. Photos on Gowalla are posted to Facebook, but not Foursquare, and Gowalla does not retrieve pictures from other services. <br />
<br />
Gowalla tries to match its database of spots to Foursquare's database of venues. It's not perfect, though. When there isn't a matching spot, or Gowalla doesn't have it matched, it will still update your foursquare friends, but the checkin won't count for points or towards a mayorship. <br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOjxsemcC83SCLgNAdmGoc8JwnrUbEF7lVlOw5Twwl_CmRjZIEhyBGmUCGrQxAZO4duPrskNnUmnN3GW82ZMRUut-M3GYwJ_g3hI3VcY-MoJS8gbJcX0GdhuUwK9IhiK9zQ6uLlA/s1600/1306135027747.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOjxsemcC83SCLgNAdmGoc8JwnrUbEF7lVlOw5Twwl_CmRjZIEhyBGmUCGrQxAZO4duPrskNnUmnN3GW82ZMRUut-M3GYwJ_g3hI3VcY-MoJS8gbJcX0GdhuUwK9IhiK9zQ6uLlA/s200/1306135027747.png" width="112" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Footfeed</td></tr>
</tbody></table>
<a href="http://draft.blogger.com/">Footfeed</a> is an app that allows you to manually manage which spots match with which (on Foursquare, Gowalla, Facebook, Latitude), and then check in to all of them in one fell swoop. The app is a full featured replacement for any of the other services, with the exception of pictures.<br />
<br />
You can report unmatched or mismatched spot/venues to Gowalla and they
will add them to their database. Both Gowalla and Foursquare allow you
to submit updated/corrected information, and to manually add missing
spots.<br />
<br />
Personally, I use Gowalla, but I have the Foursquare app installed, and most of my friends who check in do so on Foursquare or Facebook. Occasionally when I know that Gowalla doesn't match up the spots correctly (and I'm not posting a picture), I will use Footfeed to check in.<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com0tag:blogger.com,1999:blog-11837278.post-34358485821680567702011-05-22T21:06:00.000-07:002011-05-22T21:56:27.054-07:00Android: Twidroyd vs. TweetCaster Pro: Twitter ClientsRecently someone asked me about my choice of Twitter client on Android: why had I chosen the Twidroyd app over the official client from Twitter? At the time I had also just downloaded, and was trying out the TweetCaster Pro app.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiphWgtd6nNXQygguzSbXbtaAdbLOwxR_FxJLpkQW9c3ulom9ABSxvseaQgXIjSoEuaSNjDAccw9vxgJCWBaJ8na2nhEEgjPgNx7kmbduwYSaYatgXQ1rUYuePcNbcnr_TPL7PSAA/s1600/1306116346989.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiphWgtd6nNXQygguzSbXbtaAdbLOwxR_FxJLpkQW9c3ulom9ABSxvseaQgXIjSoEuaSNjDAccw9vxgJCWBaJ8na2nhEEgjPgNx7kmbduwYSaYatgXQ1rUYuePcNbcnr_TPL7PSAA/s320/1306116346989.png" width="180" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Social apps</td></tr>
</tbody></table>
I have been meaning to do a series of posts about various categories of Android apps. Hopefully this will be the first such post. My goal is to be helpful to others who are curious about what apps are out there, but aren't as adventurous as I am in trying them all. Come on in, by the way, the water's fine.<br />
<br />
The first thing that attracted me to the Twidroyd app was the <a href="http://posterous.com/help/twitter">Posterous Twitter help page</a>, which basically says that if you want to use a Twitter app on Android that integrates Posterous, Twidroyd is your only option.<br />
<br />
I have been using Posterous to <a href="http://draft.blogger.com/">post</a> pictures, video, and occasionally long-form text from my phone <a href="http://draft.blogger.com/">since before I had a smartphone</a>, and I'm still very happy with it. As such, Posterous integration was a good selling point for an Android Twitter app.<br />
<br />
I also at the time downloaded the official Twitter app, as well as TweetDeck, but I didn't find either of them to be particularly compelling.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPapAiQjwfyrlmz6c6zMStChRsQVXMqY4oFIn52NxqyrzXNmHPnLXbaz_3MnJPxqmMTk9wtapux07IW7N9nAwrZDR5aIwralBR8R5DV33dSfMKk32wTXhgS9y3i90MZpdgJpCUCQ/s1600/1306117709756.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPapAiQjwfyrlmz6c6zMStChRsQVXMqY4oFIn52NxqyrzXNmHPnLXbaz_3MnJPxqmMTk9wtapux07IW7N9nAwrZDR5aIwralBR8R5DV33dSfMKk32wTXhgS9y3i90MZpdgJpCUCQ/s320/1306117709756.png" width="180" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Twidroyd </td></tr>
</tbody></table>
I should mention that, while Twidroyd is the only Twitter app that integrates Posterous, there is also an official Posterous app, which generates posts that can be auto-posted to Twitter. This is the way that I end up sending most of my Posterous posts. The only advantage of using Twidroyd is if I wanted to create a Posterous post, but post it to Twitter with text that is different from just the title of the post.<br />
<br />
<div style="text-align: right;">
</div>
Another Twidroyd feature that I like is its Bit.ly integration. Twidroyd allows you to enter your Bit.ly account's API key, and the shortened links will be "yours" and show up on <a href="http://draft.blogger.com/">your personal Bit.ly history</a>, where you can track and manage them with the rest of your Bit.ly shortened URLs. What Twidroyd seems to do best is integrate itself well with other online services. Here's a list:<br />
<ul>
<li><b>Photos</b>: Lockerz, Twitpic, Twitgoo, YFrog, Posterous</li>
<li><b>Video</b>: Lockerz, Vidly.com, Posterous, Twitvid.com</li>
<li><b>URL Shortening</b>: TinyURL, is.gd, Bit.ly, Goo.gl</li>
<li><b>Tweet Shortening</b>: Tmi, Twitlonger</li>
</ul>
<br />
It also works with multiple Twitter accounts, though I only have one.<br />
<br />
Twidroyd lets you customize its notifications in just about every possible way. One nice feature that other clients don't have is that it displays the tweet text in the notification bar. This is something that I'm finding I miss when trying out other clients.<br />
<br />
Speaking of other clients, Amazon recently gave away the Premium version of <a href="http://amzn.to/kjUBF0">TweetCaster</a> as their <a href="http://amzn.to/l6jmCa">free app of the day</a>, so I downloaded it and gave it a try.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis37AZS4QMChRUWahktlvku70WlVGSXMU7ibNA_Uo9TCCuE0s-YX7TObTYuiQFg6QuRwPaoX-VHiy2i3t5uODL8G_R6rG6PfqonReVb5IolpphOF5hej2wyMTNunoxW0pB3_k84g/s1600/1306117638415.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis37AZS4QMChRUWahktlvku70WlVGSXMU7ibNA_Uo9TCCuE0s-YX7TObTYuiQFg6QuRwPaoX-VHiy2i3t5uODL8G_R6rG6PfqonReVb5IolpphOF5hej2wyMTNunoxW0pB3_k84g/s320/1306117638415.png" width="180" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">TweetCast</td></tr>
</tbody></table>
The first thing that struck me was that it was very visually appealing. And not only does it look good, the interface is very functional! Tweets by me, replies, and mentions, are all highlighted in different color gradient backgrounds. Favorites and retweets are marked with intuitive icons. Tweets by me have the icon on the opposite side, and for retweets, the retweeter's icon is superimposed on the bottom corner of the original author's icon. Looking at the settings, all of these things are customizable as well. <br />
<br />
TweetCaster also integrates with Bit.ly, but it doesn't use the API key. It supports the following 3rd party services:<br />
<ul>
<li><b>Photos</b>: lockerz.com, twitpic.com, yfrog.com</li>
<li><b>Video</b>: twitvid.com</li>
<li><b>URL Shortening</b>: bit.ly, is.gd</li>
</ul>
The jury is still out on whether I'm going to switch to TweetCaster. The way the interface graphically communicates so much information is appealing. I can post photos and video directly to Posterous, and I have yet to post a Bit.ly-shortened URL link from my phone. If I have more than 140 characters to post, I can just use Posterous instead of Twidroyd's integrated text shortening features.<br />
<br />
What it comes down to for me is Twidroyd's notification previews vs. TweetCaster's pretty and functional interface. For now I'm using both.<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com0tag:blogger.com,1999:blog-11837278.post-18749503920985294932011-04-05T23:38:00.001-07:002011-04-06T08:59:51.975-07:00Atrix Screens<div>
I finally got a screenshot app on my phone that works (and it doesn't require root, which is good since the OTA update unrooted my phone).<br />
This is just my home screens, but this post is also my test of the Blogger app.<br />
<br />
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHV27Vt8Wd8dCd4MEw7aUpC3nvoAM9SfHu1R-L3CvvDkJFE8CZKzTvNp6RPMXo7cA0leC9w0RLXX2WS7IcNaIT2QvHtBgr5Ojti9uqdSM1cGbi9roYjGEwqiPmVoEBbmLHRYTpTQ/" /><br />
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHybk7agQzJLhwuP1nGkyv3J6zYohc29QmhSvXcpXXXrfgg0xuvLGbvd4RaiyUPa45zY9-htOqxXxXbQ_ozsAznkTddGaMw3o7VZH7yYleJ_G-XpqVnkDi6dHfhVDkZEVLgUBnpQ/" /><br />
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_J5Ft9rLWlCNRP9k7MztIjXoPIza4tbN8Ocgs2ebTKWyMv6bPVW7gG05UiTJ8yr3nUaC5-ZFVvsdbPljJv8f-1LoUgb0KX-vo_Ii3Vaezhy0hjOoBQvleFLn9sE_dkkk2kyIAKw/" /><br />
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPpb1hHz156ckhBSzmz19T11ZZo15fLy8Iqn8oxH5rL8l3hy7CxhC5yBWcwK0oUpgVMTeMhDj3lGFcTF2P6XcPGAIoL_ccEVUMpKvSKKI5ad9KYul5uB_2Hu7B8zaQ5VrDUiR1qg/" /><br />
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7w8Pozw1it-cTh1eD-_qRGJgo382Ab2zUTeaW8GAHbPgLLp84XpeEdzo29XZqFXTWbNdHnkPeL3lMYt0Wh9W-tt8JnjfdzqFKSzW2zvDYNhr6Uo6zKblXd3t63tKMyiRyEIyWgA/" /><br />
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMYziIULVDUvhOLR7Yk_kA_XpfiJuiC62GexwaKcgcrp00O0KwDnFwcTwguPR1-dUWpIcBbrgfLJ_ajmRBJlP1RJ0PBg0e5BkZpd9jAYAkcot7f9rGpvRRQ5KSFPNlQwy31oxNIw/" /><br />
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibPQ8WCUF-kvVSb660niGYIfm3himZ-NaLno09jPPVEwvuTmRJ5mpk2JvedHpSY_gjA4gIt98h-5396YEjPXLFYEBmQ6a7Lz9ghQm527VFwIBtjIS_GZDSmVSOJWG4tM2Yo1DHfw/" /><br />
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghTG1ekwHvLdNe1VCM7QgI4JzvZZ38tJ3jKmvg-_-wgNKuguSCeAU0dunxT-HI44FPrHvF-CRwqquo8QZEUqk27T1sBlPL5LkTdwNQ4JCISumux3yMeed3UdI4F67VawPRknKCZg/" /><br />
<br />
Edit: Apparently it scales the pictures you upload. That's unfortunate.</div><div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com1tag:blogger.com,1999:blog-11837278.post-19747451345687637182011-03-09T23:21:00.000-08:002011-03-10T08:41:59.691-08:00Motorola Atrix 4GTwo days ago I ordered myself a <a href="http://www.amazon.com/Motorola-Atrix-4G-Android-Phone/dp/B004KZP4BQ?ie=UTF8&tag=burndive-20&link_code=btl&camp=213689&creative=392969" target="_blank">Motorola Atrix 4G</a><img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=burndive-20&l=btl&camp=213689&creative=392969&o=1&a=B004KZP4BQ" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" />! This is a big deal: I've been wanting a smartphone, specifically an Android phone, for quite some time.<br />
<br />
My contract isn't actually up. Last February we renewed all four of the contracts on our family plan at the same time. This, I realize, was a mistake, because while it increases flexibility in that it makes it easier to leave the carrier (two years later when all of the contracts are up), it actually reduces flexibility in that if you have trouble with one of the phones (as it did with my dad's), you are left without the option to upgrade out of time.<br />
<br />
Since my current phone is a "dumb" phone, the early termination fee (when I cancel the contract) is not so bad. With 11 months left on the contract, it will be $98.<br />
<br />
The way I'm going about this is to order the Atrix on a new line on our family plan. When it arrives and I activate it, I will attempt to get AT&T to exchange the numbers associated with the contracts so that my old contract has the new number, and the new contract, with the Atrix, has my old number. I estimate that I have a 20% chance of succeeding.<br />
<br />
I would like to keep my number, so if that doesn't work, I will simply port the old number to Google Voice. I currently use Google Voice for voicemail and for sending text messages from a computer, and I wouldn't mind it a bit if by default, everything went through it, especially text messages, since I would prefer not to pay for them. If I port the number, text messages sent to it won't be text messages anymore: they will be data. I have always hated that the carriers charged so much for delivering messages piggybacking on traffic between the phone and tower that was being sent regardless of whether there was a message.<br />
<br />
<b>Why the Motorola Atrix 4G? </b><br />
<br />
Well, that's a good question, after all, the name is a lie. The Atrix is not physically capable of actual 4G, and AT&T has even disabled HSPA+ upload speeds on everything but the iPhone 4. What AT&T offers is "4G download speeds delivered by HSPA+ and enhanced backhaul." Real, actual 4G is coming to AT&T's network later this year (probably this summer) in the form of LTE.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://www.amazon.com/Motorola-Atrix-4G-Android-Phone/dp/B004KZP4BQ?ie=UTF8&tag=burndive-20&link_code=bil&camp=213689&creative=392969" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;" target="_blank"><img alt="Motorola Atrix 4G Android Phone (AT&T)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&ServiceVersion=20070822&ID=AsinImage&WS=1&Format=_SL160_&ASIN=B004KZP4BQ&tag=burndive-20" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Motorola Atrix 4G</td></tr>
</tbody></table>
<img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=burndive-20&l=bil&camp=213689&creative=392969&o=1&a=B004KZP4BQ" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" />If I waited until my line was eligible for an upgrade in October, there would almost certainly by then have been a crop of new phones introduced, of equal caliber to the Atrix, supporting actual 4G. Motorola wasn't my first choice in manufacturer. I have heard nothing but good things about HTC's Sense interface, and nothing but bad things about Motorola's Motoblur interface. There is, in fact, a direct competitor to the Motorola Atrix 4g: the <a href="http://www.amazon.com/HTC-Inspire-4G-Android-Phone/dp/B004KZP3WQ?ie=UTF8&tag=burndive-20&link_code=btl&camp=213689&creative=392969" target="_blank">HTC Inspire 4G</a><img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=burndive-20&l=btl&camp=213689&creative=392969&o=1&a=B004KZP3WQ" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" />. Why did I not go with that instead? It's even cheaper.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://www.amazon.com/HTC-Inspire-4G-Android-Phone/dp/B004KZP3WQ?ie=UTF8&tag=burndive-20&link_code=bil&camp=213689&creative=392969" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;" target="_blank"><img alt="HTC Inspire 4G Android Phone (AT&T)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&ServiceVersion=20070822&ID=AsinImage&WS=1&Format=_SL160_&ASIN=B004KZP3WQ&tag=burndive-20" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">HTC Inspire 4G</td></tr>
</tbody></table>
<img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=burndive-20&l=bil&camp=213689&creative=392969&o=1&a=B004KZP3WQ" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" />There are a number of reasons, of course. First, despite Motoblur's sordid reputation, reviews and users in forums seem to be saying that it's actually a good experience on the Atrix. The Atrix is a very fast phone, with a Dual-core 1GHz processor and a Gigabyte of RAM. The Inspire is no speed slouch either, but, especially coming from a feature phone, I'm not keen on it's size. I have very good eyes at close distance, and have always liked screen real-estate: not largeness of screen, but number of pixels. The Atrix has over a third more pixels in its 4" display as the Inspire has in its 4.3" display. The Atrix also has four times the internal memory as the Inspire, though both can be expanded with up to 32GB microSD cards. The Inspire has an 8 megapixel camera, but the Atrix has both front and rear-facing cameras, and I don't think that the 5 megapixel snapshots taken by the Atrix will be of any less quality than the Inspire's.<br />
<br />
The Atrix accessories have been touted as it's huge selling point, but I don't see much use for them, especially at the prices they're asking. I would rather haul a netbook around than a phone dock, and I already have a computer hooked up to my HDTV at home, so I don't think I'll need to hook the phone up directly. <br />
<br />
<b>Selling Points</b><br />
<br />
In short, despite the hype about a "superphone," and "4G," I find the Atrix to be by far the best phone for me:<br />
<ul>
<li>Despite being small (and pocketable--I'm a guy, I don't carry a purse), it has excellent screen quality and resolution.</li>
<li>Because it was made to drive a netbook, it is a powerhouse phone, capable of running any apps I throw at it--and I intend to be a power user.</li>
<li>Because it's a flagship product, it gets all the bells and whistles, like the fingerprint scanner, HD video recording, front-facing camera, gorilla glass, etc.</li>
</ul>
The <a href="http://tuxbox.blogspot.com/2007/06/iphone.html">iPhone</a> is physically a fine product, but it does not interest me, mainly because of Apple's philosophy of control, especially when they see an opportunity to lock down a revenue stream. <br />
<br />
<b>Why now?</b><br />
<br />
I suppose I could have waited until October. As I have mentioned before, AT&T is rolling out their LTE network, presumably with a new crop of top-of-the-line phones, and there would be no hassles with my phone number. I could just wait. I was going to wait.<br />
<br />
But it was my birthday, and I got "smartphone" money! Did I mention I had already waited a long time? I think there will always be something better to wait for, and if you always wait, you will never buy. Pining for nice things is OK if you actually intend to buy; otherwise, you're just living in a fantasy land, coveting what you cannot have. The extra expense, to me, is worth the extra time of getting to use a smartphone.<br />
<br />
I also found a decent price at <a href="https://membershipwireless.com/">Costco's wireless site</a>, which gives you free activation, free shipping and a free accessory kit (including a car charger). [<a href="http://www.cartoys.com/">CarToys</a> has the best price, but no option for adding a line to an existing family plan.]<br />
<br />
Besides, come October, there will be three lines on our plan due for an upgrade, and I doubt that all three will want to exercise it just then. Perhaps if I there's an awesome LTE phone from HTC with <a href="http://en.wikipedia.org/wiki/Near_Field_Communication">NFC</a> and I work things right, I can get that, and pass the Atrix (or my current phone) along to someone else.<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com1tag:blogger.com,1999:blog-11837278.post-84964820504443345122010-12-16T21:09:00.000-08:002010-12-17T09:45:01.750-08:00Delicious Export HTML: Show TagsThere are rumors going around that Yahoo! is shutting down their Delicious social bookmarking site, and there are already a <a href="http://blog.evernote.com/2010/12/16/making-the-transition-from-delicious-to-evernote/">couple</a> of <a href="http://lifehacker.com/5714313/how-to-export-your-delicious-bookmarks-and-import-them-into-your-favorite-browser?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+lifehacker%2Ffull+%28Lifehacker%29">posts</a> describing how to <a href="http://blog.xmarks.com/?p=2144">preserve</a> your bookmarks. One of the most valuable aspects of bookmarks are your tags, and unfortunately when you export your bookmarks from Delicious, the HTML page that you download doesn't display the tags.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilsUWOc_VgP4xmWRwmEDuFi64A5z-1asr5A5rcgUaTEZsYlIMONbHRWIeWBW9BA1oxetCmhaF45GhZ33rd0ptwIeCScvwsC3jMvJlBm2IhzlipP85W4VF0ynk2IbpS0DSci8yB-w/s1600/delicious-07.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilsUWOc_VgP4xmWRwmEDuFi64A5z-1asr5A5rcgUaTEZsYlIMONbHRWIeWBW9BA1oxetCmhaF45GhZ33rd0ptwIeCScvwsC3jMvJlBm2IhzlipP85W4VF0ynk2IbpS0DSci8yB-w/s200/delicious-07.png" width="195" /></a>If it did, you would at least be able to open the web page and search for a specific tag. The tags are there in the HTML source, but they aren't visible on the page.<br />
<br />
Here's how to modify the page source to make them visible. First, log in to Delicious, and go to the <a href="http://draft.blogger.com/">Export page</a> in Settings. Download the export file and save it.<br />
<br />
Next, open the file in gVim (You can download gVim <a href="http://www.vim.org/download.php#pc">here</a>).<br />
<br />
Enter the following command. You can either do this by typing it in,
or by copying it from this web page (starting after the colon), typing
the colon character ":", and then pressing Ctrl+V. Here's the command:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij8oYaOohJzlqoF2OuhrlE8ksbilTwPVkOgXviv2f5PKwwWIYcGtOrqz14VHZspAF71fLi9uUEnG2RoMUcDqW5n69-zIUQ8aCZNg5JCP7zDo1K5yCmwCuPWyLM5JteVllvG1PdUQ/s1600/delicious-01.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij8oYaOohJzlqoF2OuhrlE8ksbilTwPVkOgXviv2f5PKwwWIYcGtOrqz14VHZspAF71fLi9uUEnG2RoMUcDqW5n69-zIUQ8aCZNg5JCP7zDo1K5yCmwCuPWyLM5JteVllvG1PdUQ/s320/delicious-01.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">:%s/\(<A HREF="[^"]*" .* TAGS="\([^"]*\)">[^<]*<\/A>\(\n.*\)\?\)/\1\r<DD><I>\2<\/I>/g</td></tr>
</tbody></table>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
Press Enter. This will apply the command.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj94agVL4N5NsuZjxpDsEPRr8FJRtpLBvhrP9EHuI0XPiTnsggdF0ryAVXcIpu8_vSo_fhmthrFH-NtEK1P8rCrdvJVmxGTaDsGfVv89PR0aI4nWBSJQ38XjUE38A7A_iYBe0f_FA/s1600/delicious-04.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj94agVL4N5NsuZjxpDsEPRr8FJRtpLBvhrP9EHuI0XPiTnsggdF0ryAVXcIpu8_vSo_fhmthrFH-NtEK1P8rCrdvJVmxGTaDsGfVv89PR0aI4nWBSJQ38XjUE38A7A_iYBe0f_FA/s320/delicious-04.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">:wq</td><td class="tr-caption" style="text-align: center;"></td></tr>
</tbody></table>
Next, save the file and exit gVim. You can do that with the ":wq"
command, but you can also just click the graphical "Save" icon. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTwwrrKFs0oCOHcsZanbPt9YvoPidG5vwOySnYyXfJZwPyCQWKN3UJ6zWlWLbrSFnfSzP7sShOXOWl5hsIMi_FJr5p_aGxnuUcntCBy_wGq6nNa_RAWGlWEEcYxPDADUCv3muZ2A/s1600/delicious-06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="291" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTwwrrKFs0oCOHcsZanbPt9YvoPidG5vwOySnYyXfJZwPyCQWKN3UJ6zWlWLbrSFnfSzP7sShOXOWl5hsIMi_FJr5p_aGxnuUcntCBy_wGq6nNa_RAWGlWEEcYxPDADUCv3muZ2A/s320/delicious-06.png" width="320" /></a></div>
<br /><div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com0tag:blogger.com,1999:blog-11837278.post-17302239648094502062010-12-08T22:21:00.000-08:002015-02-13T15:26:31.932-08:00Twitpic-to-Posterous Script: Another UpdateA while ago I wrote a script to import my Twitpic photo posts to Posterous and <a href="http://tuxbox.blogspot.com/2010/03/twitpic-to-posterous-export-script.html">posted it</a> on this blog. <br />
<br />
Even though Posterous now supplies their own working transfer tool, it has its limitations. One person who tried that tool was unsatisfied, and tried my script. He really liked the results, but he noticed some drawbacks to my script as well. Here's what's new in my script v1.3.1:<br />
<ul><li>New feature by request - #hashtags and @username mentions are now linked to the appropriate Twitter page in the body of the Posterous post.</li>
<li>Fix - issue where Twitpic now truncates the tweet text in the HTML title. Switched to using the image alt text from the full page. </li>
<li>Fix - Twitpic started escaping single and double quotes in the tweet text, which were showing up uninterpreted in the Posterous titles. The script now handles them correctly.</li>
<li>Other changes</li>
<ul><li>Only download the Full images by default (Scaled and thumbnails can be enabled by setting flags.)</li>
<li>Print an error message and pause for 5 seconds if a download fails (Twitpic was being unreliable during my testing.)</li>
<li>Other miscellaneous fixes and tweaks</li>
</ul></ul>Special thanks to @<a href="http://twitter.com/RyanMeray">RyanMeray</a>!<br />
<ul><li>Update (v1.3.2): better regular expressions for @username and #hashtag formats. </li>
<li>Update (v1.3.4): now optionally adds hashtags as post tags. </li>
</ul>You can get the latest version <a href="http://athena.burndive.com/%7Etim/scripts/">here</a>. <br />
<ul></ul><div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com0tag:blogger.com,1999:blog-11837278.post-84259654257266240512010-12-01T22:07:00.000-08:002011-02-07T22:04:12.163-08:00Dropbox Sync ScriptRecently, I started using <a href="http://store.steampowered.com/">Steam</a>, and while Steam can install each of your games on each of your computers, it doesn't keep the game saves in sync. I wanted to be able to pick up where I had left off on any computer I wanted, not needing to worry about copying over save files, so I turned to <a href="http://bit.ly/7ugH8N">Dropbox</a>, which <a href="http://tuxbox.blogspot.com/2010/01/file-synchronization.html">I've been using</a> for a while. <br />
<br />
I had created a set of batch scripts that I used on Windows to set up the sync folders, but since I was adding several folders, and the number of scripts was getting to be large, I decided to combine them all into a single flexible and streamlined script. I also decided to make it as generic as possible, so that other people could use it with minimal fuss. Basically the script has a function that moves files and folders located outside of the Dropbox folder inside, and then creates a symlink (or folder junction), so that the program accessing the files doesn't need to be reconfigured in order to keep accessing the files. If the item is already in the Dropbox folder, the original is kept under a different name, and a link is created to the existing synced content. If the item doesn't exist in either place, it gets created in Dropbox, and linked to in the specified location.<br />
<br />
The script is populated with things that I want synced, which will probably be different from what you want to sync, but it should be a simple matter to change that. If you add items, the script is set up so that you can re-run it without creating more and more symlinks.<br />
<br />
It's worth noting that the mklink command requires Windows Vista or later. If you're running an earlier version such as XP, it will use the linkd command, which comes with the <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9D467A69-57FF-4AE7-96EE-B18C4790CFFD&displaylang=en">Windows 2003 Resource Kit</a>. (You don't need to be running 2003 to install it.)<br />
<br />
So, without further ado, here is the script:<br />
<pre>@echo off
:: This script creates symlinks (NTFS junctions) in order to sync the contents via Dropbox
:: Some of these items require Administrator privileges to execute because of where the items are located.
:: Copyright 2010 Tim "burndive" of http://burndive.blogspot.com/ and http://tuxbox.blogspot.com/
:: This software is licensed under the Creative Commons GNU GPL version 2.0 or later.
:: License informattion: http://creativecommons.org/licenses/GPL/2.0/
:: This script was obtained from here:
:: http://tuxbox.blogspot.com/2010/12/dropbox-sync-script.html
:: Set this to your Steam user ID
set STEAM_USER=burndive
:: The path to your Documents folder
set DOCUMENTS=%USERPROFILE%\My Documents
if exist "%USERPROFILE%\Documents" (
set DROPBOX=%USERPROFILE%\Documents
)
:: The path to your Dropbox folder
set DROPBOX=%DOCUMENTS%\My Dropbox
if exist "%USERPROFILE%\Dropbox" (
set DROPBOX=%USERPROFILE%\Dropbox
)
:: Determine which command to use for making Folder Junctions
ver | findstr "5." > nul
if errorlevel 1 (
:: This requires Windows Vista or later
set JUNCTION_CMD=mklink /j
) else (
:: This requires the Windows 2003 Resource Kit Tools
set JUNCTION_CMD=linkd
)
:: Find the correct Flash SharedObjects folder name if localhost subfolder exists
set FLASH_LOCAL=
for /F "tokens=*" %%I in ('dir /b "%APPDATA%\Macromedia\Flash Player\#SharedObjects"') do (
if exist "%APPDATA%\Macromedia\Flash Player\#SharedObjects\%%I\localhost" (
set FLASH_LOCAL=%APPDATA%\Macromedia\Flash Player\#SharedObjects\%%I\localhost
)
)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: The following items require only User privileges to execute
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Make localhost Flash Shared Objects dir architecture neutral
if not "%FLASH_LOCAL%" == "" (
if exist "%FLASH_LOCAL%\Program Files (x86)" (
call:LinkFolder "%FLASH_LOCAL%", "Program Files", "%FLASH_LOCAL%\Program Files (x86)"
)
)
:: Digital Blasphemy wallpapers
call:LinkFolder "%USERPROFILE%\Pictures\wallpaper", "db-fs", "%DROPBOX%\images\digital-blasphemy\db-fs"
call:LinkFolder "%USERPROFILE%\Pictures\wallpaper", "db-ws", "%DROPBOX%\images\digital-blasphemy\db-ws"
call:LinkFolder "%USERPROFILE%\Pictures\wallpaper", "db-preview", "%DROPBOX%\images\digital-blasphemy\db-preview"
:: Images
call:LinkFolder "%USERPROFILE%\Pictures", "images", "%DROPBOX%\images"
:: Pidgin Instant Messenger
call:LinkFolder "%APPDATA%\.purple", "icons", "%DROPBOX%\app-files\pidgin\icons"
call:LinkFolder "%APPDATA%\.purple", "logs", "%DROPBOX%\app-files\pidgin\logs"
:: DVRMSToolbox Commercials XML files
call:LinkFolder "%PUBLIC%\DvrmsToolbox", "CommercialsXml", "%DROPBOX%\app-files\CommercialsXml"
::::::::::::::::::::::
:: Humble Bundle Games
::::::::::::::::::::::
:: Penumbra Overture
call:LinkFolder "%DOCUMENTS%\Penumbra Overture\Episode1", "save", "%DROPBOX%\app-files\game-saves\penumbra-overture"
:: Samarost2 : TODO
:: World of Goo
call:LinkFolder "%LOCALAPPDATA%\2DBoy", "WorldOfGoo", "%DROPBOX%\app-files\game-saves\world-of-goo"
:: Aquaria : TODO
:: Gish : TODO
:: Lugaru : TODO
::::::::::::::::::::::::
:: Humble Bundle 2 Games
::::::::::::::::::::::::
:: Braid
call:LinkFolder "%APPDATA%", "Braid", "%DROPBOX%\app-files\game-saves\braid"
:: Machinarium
if not "%FLASH_LOCAL%" == "" (
if exist "%FLASH_LOCAL%\Program Files" (
call:LinkFolder "%FLASH_LOCAL%\Program Files\Machinarium", "machinarium.exe", "%DROPBOX%\app-files\game-saves\machinarium"
)
)
:: Osmos
call:LinkFolder "%DOCUMENTS%", "Osmos", "%DROPBOX%\app-files\game-saves\osmos"
:: Cortex Command : TODO
:: Revenge of the Titans HIB
call:LinkFolder "%USERPROFILE%\Revenge of the Titans 1.71", "slots", "%DROPBOX%\app-files\game-saves\revenge-of-the-titans-1.71"
call:LinkFolder "%USERPROFILE%\Revenge of the Titans 1.72", "slots", "%DROPBOX%\app-files\game-saves\revenge-of-the-titans-1.72"
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: The following items require Administrator privileges to execute
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Eclipse workspace
call:LinkFolder "%USERPROFILE%", "workspace", "%DROPBOX%\app-files\workspace"
:: gVim config file
call:LinkFile "%USERPROFILE%", "_gvimrc", "%DROPBOX%\config\windows\_gvimrc"
:: Steam Game save folders
if exist "%PROGRAMFILES(X86)%" (
:: Note: The caret is an escape character
set STEAM_DIR=C:\Program Files ^(x86^)\Steam\steamapps
) else (
set STEAM_DIR=%PROGRAMFILES%\Steam\steamapps
)
call:LinkFolder "%STEAM_DIR%\%STEAM_USER%\half-life 2\hl2", "SAVE", "%DROPBOX%\app-files\game-saves\half-life-2-steam"
call:LinkFolder "%STEAM_DIR%\%STEAM_USER%\half-life 2 episode one\episodic", "SAVE", "%DROPBOX%\app-files\game-saves\half-life-2-ep1-steam"
call:LinkFolder "%STEAM_DIR%\%STEAM_USER%\half-life 2 episode two\ep2", "SAVE", "%DROPBOX%\app-files\game-saves\half-life-2-ep2-steam"
call:LinkFolder "%STEAM_DIR%\%STEAM_USER%\half-life 2 lostcoast\lostcoast", "SAVE", "%DROPBOX%\app-files\game-saves\half-life-2-lostcoast-steam"
call:LinkFolder "%STEAM_DIR%\%STEAM_USER%\portal\portal", "SAVE", "%DROPBOX%\app-files\game-saves\portal-steam"
:: Pause so the user can review output
pause
:: End of execution
goto:eof
::::::::::::
:: Functions
::::::::::::
:LinkFolder
setlocal
:: Arguments
set LINK_PATH=%~1
set LINK_NAME=%~2
set TARGET=%~3
::echo Link: %LINK_PATH%\%LINK_NAME%
::echo Target: %TARGET%
if not exist "%LINK_PATH%" (
mkdir "%LINK_PATH%"
)
cd "%LINK_PATH%"
:: If the folder is already a link, just delete it
dir | findstr /i "%LINK_NAME%" | findstr "<JUNCTION>" > NUL
if not errorlevel 1 (
rmdir "%LINK_NAME%"
)
if exist "%LINK_NAME%" (
if exist "%TARGET%" (
echo Backing up conflicting copy
move "%LINK_NAME%" "%LINK_NAME%-orig"
) else (
:: Move the original if target does not exist
echo Moving original folder to link location
echo move "%LINK_NAME%" "%TARGET%"
move "%LINK_NAME%" "%TARGET%"
)
) else (
if not exist "%TARGET%" (
:: If neither exist, create target
echo Creating target folder
mkdir "%TARGET%"
)
)
%JUNCTION_CMD% "%LINK_NAME%" "%TARGET%"
endlocal
goto:eof
:LinkFile
setlocal
:: Arguments
set LINK_PATH=%~1
set LINK_NAME=%~2
set TARGET=%~3
::echo Link: %LINK_PATH%\%LINK_NAME%
::echo Target: %TARGET%
if not exist "%LINK_PATH%" (
mkdir "%LINK_PATH%"
)
cd "%LINK_PATH%"
:: If the folder is already a link, just delete it
dir | findstr /i "%LINK_NAME%" | findstr "<SYMLINK>" > NUL
if not errorlevel 1 (
del "%LINK_NAME%"
)
if exist "%LINK_NAME%" (
if exist "%TARGET%" (
echo Backing up conflicting copy
move "%LINK_NAME%" "%LINK_NAME%-orig"
) else (
:: Move the original if target does not exist
echo Moving original file to target location
move "%LINK_NAME%" "%TARGET%"
)
) else (
if not exist "%TARGET%" (
:: If neither exist, create target
echo Creating empty target file
echo "" > "%TARGET%"
)
)
:: linkd will not work for files, only folders
mklink "%LINK_NAME%" "%TARGET%"
endlocal
goto:eof</pre>
<div style="text-align: center;">
<a href="http://creativecommons.org/licenses/GPL/2.0/"><img alt="CC-GNU GPL" border="0" src="http://creativecommons.org/images/public/cc-GPL-a.png" /></a></div>
<div style="text-align: center;">
This software is licensed under the <a href="http://creativecommons.org/licenses/GPL/2.0/">CC-GNU GPL</a> version 2.0 or later.</div>
<br />
PS: If you use my code, I appreciate comments to let me know, and any feedback you may have, especially if it's not working right for you, but also just to say thanks.<br />
<br />
For convenience, you can download this script <a href="http://athena.sexypenguins.com/%7Etim/scripts/">from my server</a>.<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com0tag:blogger.com,1999:blog-11837278.post-86254336816795163292010-11-11T23:33:00.000-08:002010-11-11T23:34:43.233-08:00Trying VirtualBox<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSya1sJ7Viqd9GOPYBo8DuqQoh03cU3TXfP9FfevFzq1g0MhyphenhyphenI6AynNBxt-t1PHQcNyqZeuMFtjzPZFnc9S9kTFs8V42IztcBxyyNsTM47u9oBsENeKkZNU_YHRuTbGTS_HYe38Q/s1600/virtualbox-06.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSya1sJ7Viqd9GOPYBo8DuqQoh03cU3TXfP9FfevFzq1g0MhyphenhyphenI6AynNBxt-t1PHQcNyqZeuMFtjzPZFnc9S9kTFs8V42IztcBxyyNsTM47u9oBsENeKkZNU_YHRuTbGTS_HYe38Q/s1600/virtualbox-06.png" /></a></div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVTRxclZD6uVRSNCEMuKt79JjIlZbm4cyAt2fOAn77iDSy-AwL5HrQSEjxhpY4oL8FY12ALKIyOuv_FYu92awNU8VMMu8JSpflxGGjNto342nIRwhWQGG5gzozr8uv_YsTHtYTVA/s1600/virtualbox-07.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVTRxclZD6uVRSNCEMuKt79JjIlZbm4cyAt2fOAn77iDSy-AwL5HrQSEjxhpY4oL8FY12ALKIyOuv_FYu92awNU8VMMu8JSpflxGGjNto342nIRwhWQGG5gzozr8uv_YsTHtYTVA/s200/virtualbox-07.png" width="200" /></a>In my last post, I compared <a href="http://tuxbox.blogspot.com/2010/10/vmware-and-virtual-pc-playing-age-of.html">Windows VirtualPC to VMWare Player</a>. I thought I would also try out Oracle's VirtualBox to see how it stacks up against the other two.<br />
<br />
<a href="http://www.virtualbox.org/">VirtualBox</a> is in many ways very similar to VirtualPC. When you launch VirtualBox, you get a management window with your virtual machines in a column on the left, and configuration options on the right. From there, you can launch them in a separate window.<br />
<br />
The integration tools install in the same manner as the other two (virtual CD-ROM with auto-run installer).<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3XBJuF63fIRjKNN_Z5PZolDYVA0Y8_DBtMdvLXNRAnEweZxHZWJh6XIISeZq_1-dGuzrjp7Dmbp27DyTtJDjaQOEmUIpRffYapEaT-HcWGrUjfSQCGXPXZCbOadsFP2zBQO8PZA/s1600/virtualbox-09.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3XBJuF63fIRjKNN_Z5PZolDYVA0Y8_DBtMdvLXNRAnEweZxHZWJh6XIISeZq_1-dGuzrjp7Dmbp27DyTtJDjaQOEmUIpRffYapEaT-HcWGrUjfSQCGXPXZCbOadsFP2zBQO8PZA/s200/virtualbox-09.png" width="200" /></a></div>One problem I ran into was that at first I couldn't take screenshots of just the VirtualBox VM window using Alt+Print Screen. This is because the VM was capturing my keystrokes when the window was selected. To fix this, I needed to disable the "Auto Capture Keyboard" setting under File -> Preferences | Input. Once that was configured I was able to take screenshots without problem. Interaction isn't seamless with this setting, but I actually prefer this for my purpose, which is to run old games, because then there's no danger of scrolling off of the screen.<br />
<br />
I like the default escape key of right Ctrl, since it's easy to find with my finger whether my fingers are using the keyboard or the touchpad of my laptop.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijRBj-2_tcuJUNlQ6VlijnAFYf66lckIIPSG5xmOHL1nw_MYp_jZtBdqYS180a2_UafzUOBO8g9mZtWFg2KWXxImHRhng1rrj91hZev2Vhp5Ks16bKBWXlGhny8iFFa1DRl3LXHg/s1600/virtualbox-04.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijRBj-2_tcuJUNlQ6VlijnAFYf66lckIIPSG5xmOHL1nw_MYp_jZtBdqYS180a2_UafzUOBO8g9mZtWFg2KWXxImHRhng1rrj91hZev2Vhp5Ks16bKBWXlGhny8iFFa1DRl3LXHg/s200/virtualbox-04.png" width="200" /></a></div>In order to get a cool screenshot, I attempted to load all three of the VMs: VirtualPC, VMWare, and VirtualBox. I was able to launch the first two, but then VirtualBox wouldn't load the VM because it couldn't get full control of the CPU the way it wanted, and my PC slowed to a crawl. I think this was because of the amount of RAM I had allocated to the clients, but also running two different kinds of VM is probably a bad idea. I know I can run two VMWare VMs without problem, so I think it's just the host programs that conflict, and not the fact that there was more than one of them.<br />
<br />
Anyway, I think VirtualBox is an excellent choice. Mouse performance was just as good as VirtualPC, and since it's an open source product, they have no reason to hold back full features like snapshots that aren't supported anymore in VirtualPC and that VMWare reserves for its Workstation product.<br />
<br />
Because of these extra features, I would recommend VirtualBox over VirtualPC and VMWare Player.<br />
<div class="separator" style="clear: both; text-align: center;"></div><br />
<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyu1c7aAXkcMFLJNAxizlpGHAdM6zOI2CnYXGMJWPs3P0pCbAscosaJjiuhURgyCvOtQsSaQqBsCnHzOM4ap4xp8H87BKIuo8Nlex5prYQJ6m5hAMset46Y2I6wjxw-XKAaR8dmQ/s1600/virtualbox-05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyu1c7aAXkcMFLJNAxizlpGHAdM6zOI2CnYXGMJWPs3P0pCbAscosaJjiuhURgyCvOtQsSaQqBsCnHzOM4ap4xp8H87BKIuo8Nlex5prYQJ6m5hAMset46Y2I6wjxw-XKAaR8dmQ/s400/virtualbox-05.png" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinqi8fk031O7g9d0JpXRtber6IIt0GM5ghm4-COU4wQSd0Cu22RJfZmteUwnFAqhkuY4oL4i_1s2XMXHFe3AVRKph3Rr7k6cTvfb5yQnDKG1wkhlqYTjRxNY3vzBJHukH_sXzLiQ/s1600/virtualbox-08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinqi8fk031O7g9d0JpXRtber6IIt0GM5ghm4-COU4wQSd0Cu22RJfZmteUwnFAqhkuY4oL4i_1s2XMXHFe3AVRKph3Rr7k6cTvfb5yQnDKG1wkhlqYTjRxNY3vzBJHukH_sXzLiQ/s400/virtualbox-08.png" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXAkUh_JDXiG_26l-K-ovqzgZcwPw_3IWGctjhRRQdOlsrZ1T4bHKv1EFGqb4g9HpGe6OisaxSZXRVTq-Hnco0HZFCQP-fUyjFH2v_KX7H1IuW3-CwYWflEz76L3CFuTO2WXQTJA/s1600/virtualbox-10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXAkUh_JDXiG_26l-K-ovqzgZcwPw_3IWGctjhRRQdOlsrZ1T4bHKv1EFGqb4g9HpGe6OisaxSZXRVTq-Hnco0HZFCQP-fUyjFH2v_KX7H1IuW3-CwYWflEz76L3CFuTO2WXQTJA/s640/virtualbox-10.png" width="640" /></a></div><div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com0tag:blogger.com,1999:blog-11837278.post-65130298600232970972010-10-19T21:15:00.000-07:002010-10-20T16:13:45.383-07:00VMWare and Virtual PC: Playing Age of Empires on Windows 7Recently, I decided to install Age of Empires on my computers. The game came up in a conversation with someone who periodically hosts AOE parties. Anyway, it was one of the few PC games I played growing up, and also one that my wife used to play. When I got home, I discovered that, indeed, I did still have the original discs for Age of Empires, the Age of Kings Expansion, and Age of Emprires II. I believe my sister salvaged them for me from the boxes left when my parents moved from a house to an apartment.<br />
<br />
In any case, I had the software that I needed, so I installed it on my wife's PC running Windows XP. That done, I had a couple of old PCs running Windows 2000, but those are on the same KVM with my wife's PC, so they couldn't be used for multi-player. The problem was Windows 7. I had heard that it wouldn't be pretty (you have to shut down Explorer to play), so I decided to virtualize. That way, I wouldn't need to give up any part of Windows 7, even Aero, and it would run seamlessly.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0mhno7UqlTRRYnw59NiGFrDpZ6Ap1PI_kayvrZe-PlqkB58LdIB5k9A2gOFaR8XsbwUogmBJ4uJwsm-AMc18DwsJDNeXZkZG-JWWSFyGkTjRnZGkbP50o_vTMSZFJKcZsP4pVvw/s1600/vmware-05.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0mhno7UqlTRRYnw59NiGFrDpZ6Ap1PI_kayvrZe-PlqkB58LdIB5k9A2gOFaR8XsbwUogmBJ4uJwsm-AMc18DwsJDNeXZkZG-JWWSFyGkTjRnZGkbP50o_vTMSZFJKcZsP4pVvw/s200/vmware-05.png" width="200" /></a></div>I had used VMWare before, so that's what I started with. <a href="http://downloads.vmware.com/d/info/desktop_downloads/vmware_player/3_0">VMWare Player</a> is free to download, and so I did. The installation went pretty smoothly. I chose to install the option to install the OS using the VMWare wizard, which turned out to be a problem later on when I had to manually eject the virtual floppy drive in order to be able to install VMWare Tools (VMWare thought that the OS installation wasn't complete, when it was.) Next time, I'll choose the option to install the OS after creating a blank virtual machine.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5ERH8iqka0rEB4WHgdTnPfuWma417KbZyOQA4LfDd_QdhMBlLrBpX-P-Dy1AKw4dIutA17euxl5iWbaQN10iEMdBULSk5coYirRBTY4VT1SBwaKURdzW8sGB7accxV_0uSixNYQ/s1600/vmware-02.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="159" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5ERH8iqka0rEB4WHgdTnPfuWma417KbZyOQA4LfDd_QdhMBlLrBpX-P-Dy1AKw4dIutA17euxl5iWbaQN10iEMdBULSk5coYirRBTY4VT1SBwaKURdzW8sGB7accxV_0uSixNYQ/s200/vmware-02.png" width="200" /></a>After installing the OS (I used the original XP that came with my laptop), I updated to SP3, and then had Windows Update install all of the latest patches. Once everything was updated, I installed the Age of Empires games and applied the <a href="http://www.microsoft.com/games/empires/downloads.htm">appropriate patches</a>. I also created a small subset in <a href="http://share.xmarks.com/folder/bookmarks/h7EnUiuV0J">my list of software</a> suitable for a minimalist virtual machine. <br />
<br />
After that, I was good to go, so my wife and I fired up the game and played a few matches. We had to brush up on our skills first, but it didn't take us long to get back into the swing of things. <br />
<br />
I used Bridged mode for networking, but even so, I had to disable Windows Firewall on the XP VM in order to host an AOE game, even after creating a firewall exception, and expanding it to the whole subnet.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-LffeVSP9L5BWabBmaX1tHT16AmPIrzcRLyCUj46ZB_-BOAuTWFEfkEYJFR7SV8FK7fTllcEjcTbhi_Pw3ffqzlRTXA0N7ZMAFfdEH6OgZmvumXz7oSJJfKA__t5UnUYWRXJAlA/s1600/vmware-03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-LffeVSP9L5BWabBmaX1tHT16AmPIrzcRLyCUj46ZB_-BOAuTWFEfkEYJFR7SV8FK7fTllcEjcTbhi_Pw3ffqzlRTXA0N7ZMAFfdEH6OgZmvumXz7oSJJfKA__t5UnUYWRXJAlA/s640/vmware-03.png" width="640" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"></div>Of course, it wasn't perfect. Even though I had VMWare Tools installed, the mouse was a bit unresponsive, and VMWare Player tends to release the mouse if you cross the edge of the screen. For this reason, and because I also wanted to try another option for virtualization that I hadn't used before, I decided to also try out Virtual PC. <br />
<br />
<div class="separator" style="clear: both; text-align: center;"></div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3F0phZlKZf9aw9TUqfKwVfmm9qmfS79wY9qnYbCMbNoMF_8yGIWRhHoZi3qKQNWkPaQPPCAXIOlYBlhDqGdnHlWFjkchtSN-nbec2ylerojso599auFw6571qGxX7sd3WvaBFHA/s1600/virtualpc-02.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="159" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3F0phZlKZf9aw9TUqfKwVfmm9qmfS79wY9qnYbCMbNoMF_8yGIWRhHoZi3qKQNWkPaQPPCAXIOlYBlhDqGdnHlWFjkchtSN-nbec2ylerojso599auFw6571qGxX7sd3WvaBFHA/s200/virtualpc-02.png" width="200" /></a>It took some doing to find the download link for the latest version of <a href="http://en.wikipedia.org/wiki/Windows_Virtual_PC">Virtual PC</a>. I think that Microsoft doesn't want anyone running Windows 7 Home Premium (which is what I have on my laptop) to find the file. I kept being redirected to <a href="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=28c97d22-6eb8-4a09-a7f7-f6c7a1f000b5">Microsoft Virtual PC 2007</a>, which is the appropriate version if your host operating system is Windows XP or Vista, or to upgrade to Windows 7 Professional or Ultimate. I finally found the right link for <a href="http://www.microsoft.com/downloads/en/details.aspx?familyid=2B6D5C18-1441-47EA-8309-2545B08E11DD&displaylang=en">Windows Virtual PC</a>, which only supports Windows 7 as a host OS. This is also the basis of Windows 7's <a href="http://en.wikipedia.org/wiki/Windows_Virtual_PC#Windows_XP_Mode">Windows XP Mode</a>. Indeed, when I installed Windows Virtual PC on my Windows 7 Home Premium, it created a link in the Start Menu for Windows XP Mode. <br />
<br />
<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEXlxCTK2ubXPotCnMbkNRS_Cl0TaNN3hjRX_lUifqWdGFRaE_TR7Mb_qemOD1Np9siaDydGN_I6Nqkqr9VB_rpCME0e1S3LdTJt2nm4-eQ0JnEsNDN7_ctOlOnS6RFpwB1iVsaQ/s1600/virtualpc-06.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="116" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEXlxCTK2ubXPotCnMbkNRS_Cl0TaNN3hjRX_lUifqWdGFRaE_TR7Mb_qemOD1Np9siaDydGN_I6Nqkqr9VB_rpCME0e1S3LdTJt2nm4-eQ0JnEsNDN7_ctOlOnS6RFpwB1iVsaQ/s200/virtualpc-06.png" width="200" /></a></div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWD0Rkdj_Ia-5juvAEXeHWdMoQRlRIe15-DnPr3ZMA9ewGOvqlCtQ1vl4NxrP5yhxkgtcLh03J-HAcFZgdPF-YkuQ84Pxa-aXtFeHspaW25mcgAyK5K-bQ4vHtRSF8j5row3lHAg/s1600/virtualpc-01.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWD0Rkdj_Ia-5juvAEXeHWdMoQRlRIe15-DnPr3ZMA9ewGOvqlCtQ1vl4NxrP5yhxkgtcLh03J-HAcFZgdPF-YkuQ84Pxa-aXtFeHspaW25mcgAyK5K-bQ4vHtRSF8j5row3lHAg/s200/virtualpc-01.png" width="200" /></a>The link doesn't work (it only displays a message that it won't work in this edition of Windows), and the only other item in the Windows Virtual PC start menu folder opens a folder. At first, I couldn't figure out how to create a virtual machine in this folder, but then I noticed the bar at the top of the folder window. When I created a new virtual machine, it stored only a small data file in that folder, with the virtual disk files buried out of sight in my hidden AppData folder. This approach is different from that of VMWare, and it reflects the fact that Microsoft does not expect me to move this VM, back it up, or access its underlying files. It's supposed to "just work", and I'm supposed to treat this small VMCX file as a proxy for the whole VM. With VMWare, I can easily move or back up the VM by moving or copying the folder containing all of its files: to a different drive, or even a different machine. <br />
<br />
Windows Virtual PC with the Integration Tools installed has almost perfect mouse movement, which is essential for playing a real-time strategy game such as AOE. It wasn't difficult to get used to hitting Ctrl+Alt+Left to escape input capture, instead of VMWare's Ctrl+Alt.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOliU-Z9P1vr6K7rmwH_yQij0EDGe68F22cBnddPZzNU6xChUXaqjGGtoM5N4_yqqnDQFSFOUIjrQfhyht7WwjgSEMxdMOljFiJ-k7_gN5lq1AMWHlwndmE4us4uL8OW1rX2H-IA/s1600/virtualpc-05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOliU-Z9P1vr6K7rmwH_yQij0EDGe68F22cBnddPZzNU6xChUXaqjGGtoM5N4_yqqnDQFSFOUIjrQfhyht7WwjgSEMxdMOljFiJ-k7_gN5lq1AMWHlwndmE4us4uL8OW1rX2H-IA/s640/virtualpc-05.png" width="640" /></a></div><br />
I do have a license for Windows 7 Ultimate, so I would like to check out Windows XP Mode. However, this license is currently installed on our living room media PC. It will take a few hours to set up, so it will probably have to be a free afternoon on a weekend. If I installed the key currently on my laptop on the media PC, I might be able to use "Anytime Upgrade" to install the newly-unused Ultimate key to my laptop without doing a re-install. We'll see.<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com1tag:blogger.com,1999:blog-11837278.post-12174689000996523402010-10-05T19:39:00.000-07:002010-10-07T22:11:40.464-07:00My Take on Windows Live EssientialsMicrosoft just released their <a href="http://explore.live.com/windows-live-essentials">Live Essentials</a> suite of software downloads for Vista and Windows 7 machines. I've been using them<a href="http://tuxbox.blogspot.com/2009/01/windows-7-beta-windows-live-first.html"> since January 2009</a>. Here are my thoughts.<br />
<br />
<div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOPgZaHVEvoG-RMEDoLjKjEX8AX5PrGlvmtFRmw05xFesBWsOC3iXQteKPAtfX6im4XAcnhv0Cl1-r6htEVMLZRfBbSeiVuDn_rlJTbX30PJLuL1bPwM5zezoDNxbRCCk4LXLNRw/s1600/live-essentials-0.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOPgZaHVEvoG-RMEDoLjKjEX8AX5PrGlvmtFRmw05xFesBWsOC3iXQteKPAtfX6im4XAcnhv0Cl1-r6htEVMLZRfBbSeiVuDn_rlJTbX30PJLuL1bPwM5zezoDNxbRCCk4LXLNRw/s320/live-essentials-0.png" width="320" /></a>You shouldn't install them all, first of all. When you download and run the installer, you get the choice to install everything, or pick and choose. Make the latter selection. If you have a previous version of something, they won't give you the choice not to upgrade, so if there's something you don't want to install, quit the installer and uninstall it first. </div>Which programs in particular to install will be an individual choice. I already had Mail, Writer, Photo Gallery, and Windows Live Mesh installed from the beta. I had installed Microsoft Office since last updating the software, and so the installer offered me the "Outlook Connecter Pack". I'm not sure what it is, but it probably won't hurt.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi989IAaTLHZiK3Lx5GsRmn7lHE4SKWAM_OVZ1ioPOjgl9e99NBTpGnPDL_66t58FWfBsD3pWsmLHPeJdzcRFeyu8d_qw_Cqbo3ZkrrzPUCQ9a1EYq1C7AtIZ3eHzdpB1cNsp9q1g/s1600/live-essentials-1.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="267" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi989IAaTLHZiK3Lx5GsRmn7lHE4SKWAM_OVZ1ioPOjgl9e99NBTpGnPDL_66t58FWfBsD3pWsmLHPeJdzcRFeyu8d_qw_Cqbo3ZkrrzPUCQ9a1EYq1C7AtIZ3eHzdpB1cNsp9q1g/s320/live-essentials-1.png" width="320" /></a>Speaking of hurt, though, unless you really, really want it, don't install the Bing Bar. It's just a bad idea. It will try to take over all of your browsers, and seriously, who needs a toolbar in their browser? <br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhubUg2edi8d-jN58D12MbCsWRkSD1wTDs5vQzAkPjlvjY51niEmh21R33q6AOZKq-IPFzfdSgLC-IS0vwpkDXAJtpUOv68Tj_wqn08NEBgIkTyN4iYgTUcGSuNhDK-IMTePK-azg/s1600/live-essentials-3.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhubUg2edi8d-jN58D12MbCsWRkSD1wTDs5vQzAkPjlvjY51niEmh21R33q6AOZKq-IPFzfdSgLC-IS0vwpkDXAJtpUOv68Tj_wqn08NEBgIkTyN4iYgTUcGSuNhDK-IMTePK-azg/s320/live-essentials-3.png" width="320" /></a>I've never tried the updated Messenger, Messenger Companion, or Family Safety. I hardly ever use my hotmail account to chat, and I use Pidgin when I do, so I don't really have a use for the Messenger enhancements.<br />
<br />
Writer is apparently a very good blogging tool that works with a lot of popular blogging sites (like Blogger, which hosts this blog), but so far, I've stuck with the web interface for composition. <br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjINlsU0m9iU97fsLoWTF0WpkpET9Ox42f1hYwg5ZZKVz9A49MjPt6-1mh6ECEhD4QuxSiNuP60o9AtTyYrOTDwuJe5GSRr2Ccu9GVUA_0zCpkvzPU2_oUgnVc0iLP8uL_OVmGcZw/s1600/live-essentials-4.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="285" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjINlsU0m9iU97fsLoWTF0WpkpET9Ox42f1hYwg5ZZKVz9A49MjPt6-1mh6ECEhD4QuxSiNuP60o9AtTyYrOTDwuJe5GSRr2Ccu9GVUA_0zCpkvzPU2_oUgnVc0iLP8uL_OVmGcZw/s320/live-essentials-4.png" width="320" /></a>By far the most useful tool is Windows Live Mesh. If you're like me, you have a bunch of pictures, music, files, and other documents on various computers. The file sets are simply too large to fit into a free Dropbox account, and you don't really need access to them over the web, at least not most of them, you just want them on your various computers. It's a hassle to keep all of photos or music organized in more than one place, so you don't. You keep them organized in one place, and (hopefully) make periodic backups to another computer just in case. Well, Live Mesh allows you to keep it organized the way you want it, everywhere you want it, and it doesn't matter how big the files are, because Microsoft isn't going to store any of them (except for a special 5GB folder, which it will store in the cloud and allow you to access from anywhere on the web.)<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyve21AeKYSIsBagX0A57ddxkSz7z_83ILkdL0X-rkj3ZBzfWxEK4Ima4yeNeVz17sVppSqNGOpkNFb1eWzp76jjOQX4lT_P8Ovu7E-StLU-wTUtd-q6CUQ-E5NZBUOYmRpeddMg/s1600/live-essentials-5.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyve21AeKYSIsBagX0A57ddxkSz7z_83ILkdL0X-rkj3ZBzfWxEK4Ima4yeNeVz17sVppSqNGOpkNFb1eWzp76jjOQX4lT_P8Ovu7E-StLU-wTUtd-q6CUQ-E5NZBUOYmRpeddMg/s320/live-essentials-5.png" width="320" /></a>Microsoft doesn't upload your files to its servers, but it does keep track of them for you. Any change you make to your shared folders gets copied to the other computers where that folder is synced, and the copying is peer-to-peer, so if you're at home, it happens at the speed of your home network. It will also keep your files in sync even if you're not at home, directly from your other computer, not through their servers.<br />
<br />
The management interface is pretty simple, though it's easy to miss the "Remote" settings, which allow you to connect to your computer over the Internet if you have enabled it on that device. Connect is a lot like Remote Desktop, if you're familiar with that. Basically, it's just like you're sitting at the other computer. You have to be running MSIE on the computer you're connecting from.<br />
<br />
The web interface is a lot like the desktop interface, except in addition to your shared folders, you also have access to all of your devices as well, and you can see which devices sync to each of your folders.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhywogmjTSIPH040D4cxBY-37jjIGRGoBJ2nxbOE06FP5S3J3hlHy8gY-confCZt7E4cuYHncGDpSDrfz-aQE8RffmJIfj_iyuDsbhbGwH8AYtutXKnjfgVoGuOlQvu0XHueBhaeA/s1600/live-essentials-7.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhywogmjTSIPH040D4cxBY-37jjIGRGoBJ2nxbOE06FP5S3J3hlHy8gY-confCZt7E4cuYHncGDpSDrfz-aQE8RffmJIfj_iyuDsbhbGwH8AYtutXKnjfgVoGuOlQvu0XHueBhaeA/s320/live-essentials-7.png" width="287" /></a></div>Update: After installing Windows Live Mesh on my wife's new netbook, she experienced extremely slow performance. Her netbook has a 2GHz x64 processor and 2GB of ram, so it wasn't simply the fact that it was a netbook that was making it slow. I opened Task Manager, and found that the MOE process ("Mesh Operating Environment") was consistently taking up 40 - 60% of the CPU. I shut down the process, and deleted the "Run" entry from the registry to disable it starting up automatically. Any syncing that happens will need Live Mesh to be started manually. I also observed similar behavior on my laptop, but the media PC (which is on all the time) has the MOE process taking only 3 - 5% of the CPU. It's probably checking the synced files for updates every time it starts up.<br />
<br />
Anyway, be warned: Windows Live Mesh is a resource hog on machines that need to turn on and off all the time.<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com0tag:blogger.com,1999:blog-11837278.post-16856489524110714222010-09-10T10:24:00.000-07:002010-09-10T10:26:01.102-07:00The Cure For Vista Media Center's InsomniaAt home we have a computer hooked up to our TV. It has two TV tuners, and is set up with Windows 7 Media Center to record our favorite television shows (and <a href="http://hd.engadget.com/2009/10/22/how-to-automatically-skip-commercials-in-windows-7-media-center/">automatically detect and skip commercials</a>). It's wonderful. We can also watch Blu-ray movies, access <a href="http://blog.netflix.com/2009/05/netflix-on-windows-media-center.html">Netflix</a>, <a href="http://huluwmc.teknowebworks.com/">Hulu</a>, <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fvideo%2Fontv%2Fplayer%3Fie%3DUTF8%26ref_%3Datv_getstarted_player&tag=timzwickespage&linkCode=ur2&camp=1789&creative=390957">Amazon Unbox</a>, and any number of other streaming services right from our living room TV. <br />
<br />
This post is not about <a href="http://tuxbox.blogspot.com/2008/05/elrond-blu-ray-windows-media-center-etc.html">that computer</a>. This post is about my <a href="http://tuxbox.blogspot.com/2006/07/no-macbook-pro-for-me.html">laptop</a>. Occasionally, when traveling, or when simply in another room of the house, I like to use Windows Media Center on my laptop. Currently, it's running Windows Vista, so in order to be able to view shows in the .wtv format used by Windows 7's Media Center, I have installed the "TV Pack" unofficially leaked by Microsoft.<br />
<br />
It works great. Basically, I browse to the file I want to watch on a shared drive (I have a shortcut to the Recorded TV folder on the desktop), double-click it, and it plays on the laptop. The commercial scan files are <a href="http://tuxbox.blogspot.com/2010/01/file-synchronization.html">automatically synced</a>. When traveling, I usually copy what I want to watch to my Laptop's hard drive, but there's also <a href="http://thegreenbutton.com/forums/t/83946.aspx">this</a>.<br />
<br />
So, what's the problem? My laptop won't sleep. Or hibernate. At least not all night. It wakes up at 3:30 AM to download the latest TV listings, even though I never configured it to work with a tuner, so it has no listings to download. Needless to say, this is annoying. It drains my battery unnecessarily, and if it's in its case, there's a danger that it will overheat.<br />
<br />
After living with this problem, usually dealing with it by shutting the laptop down every time I stop using it--which means a cold boot every time I start using it, and it takes a while to load everything up--I finally found the solution to my problem. <a href="http://www.vistax64.com/tutorials/63567-power-options-sleep-mode-problems.html">Step 9 on this page</a> points you in the right direction, but here's how you do it:<br />
<br />
Launch the Task Scheduler. You can do this by opening the Start Menu, typing "Task Scheduler", and pressing Enter. You will get a UAC prompt, which you should authorize. <br />
<br />
In the left pane, click on the arrows left of the text to expand down to the following item: Task Scheduler (Local) -> Task Scheduler Library -> Microsoft -> Windows -> Media Center<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWKqKg52M01s98vqA8TVbQsdkSF-d0PkvLJf37rH90I6IW6-D37Cgu6ipl35qbrotX99uBX-d6srGg-AZaAmp8H6f2qXmQeB4Fdu4Vk5PbLBJ5P8ELdaafguOsEvS78FoigT3L8w/s1600/media-center-wake-0.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="285" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWKqKg52M01s98vqA8TVbQsdkSF-d0PkvLJf37rH90I6IW6-D37Cgu6ipl35qbrotX99uBX-d6srGg-AZaAmp8H6f2qXmQeB4Fdu4Vk5PbLBJ5P8ELdaafguOsEvS78FoigT3L8w/s400/media-center-wake-0.png" width="400" /></a></div><br />
Once you have selected Media Center, look on the top middle pane for a task named mcupdate_scheduled. Double-click this task to load the Properties window.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcWzLa8SWVqxxI_if3uB1_ainkR6TUaVixYvQzfB0kwJXb5UVmRYVcNySeZHXNZwMVmGOakRlX6FSJV64AFvjT7jOciLcVrXty9dE-BRMlwsffgSd2EexF7ZFAVjep-oVISYau7g/s1600/media-center-wake-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcWzLa8SWVqxxI_if3uB1_ainkR6TUaVixYvQzfB0kwJXb5UVmRYVcNySeZHXNZwMVmGOakRlX6FSJV64AFvjT7jOciLcVrXty9dE-BRMlwsffgSd2EexF7ZFAVjep-oVISYau7g/s400/media-center-wake-1.png" width="400" /></a></div><br />
In the Properties window, click the Conditions tab, and uncheck the box next to "Wake the computer to run this task".<br />
<br />
Click OK, and close Task Scheduler. That's it. No more waking up from hibernate or sleep in the middle of the night!<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com0tag:blogger.com,1999:blog-11837278.post-34579562360545669082010-07-16T00:01:00.000-07:002010-07-16T00:07:58.097-07:00TwitPic to Posterous Export Script: UpdateIn the time since <a href="http://tuxbox.blogspot.com/2010/03/twitpic-to-posterous-export-script.html">I wrote my script</a> which downloads all of a user's TwitPic posts (text included) and uploads them as Posterous posts, Posterous has come out with their own <a href="http://posterous.com/switch/twitpic">import tool</a>.<br />
<br />
However, as <a href="http://blog.posterous.com/rescue-your-photos-from-twitpic">noted in their blog post</a>, TwitPic is currently blocking Posterous' servers, so someone came along and tried to use my script. It turned out that the TwitPic site had been updated, and my script no longer worked.<br />
<br />
Well, I updated the script so that it works again. The script can be found <a href="http://tuxbox.blogspot.com/2010/03/twitpic-to-posterous-export-script.html">here</a>.<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com0tag:blogger.com,1999:blog-11837278.post-20561589533114092882010-03-17T01:17:00.000-07:002015-02-13T15:26:19.375-08:00TwitPic to Posterous Export Script<blockquote>Note: This post (and the script it contains) has been updated as of December 14, 2010. (v1.4.0) The script can also be downloaded from my server <a href="http://athena.burndive.com/%7Etim/scripts/">here</a>.</blockquote><blockquote>Also, Posterous has done <a href="http://blog.posterous.com/posterous-releases-desktop-twitpic-downloader">a lot of work</a> on solving this problem since I wrote my script. You can see their latest solutions <a href="http://posterous.com/switch/twitpic/">here</a>.</blockquote><br />
Recently, I switched from <a href="http://twitpic.com/photos/burndive">TwitPic</a> to <a href="http://burndive.posterous.com/">Posterous</a> as my method of <a href="http://burndive.blogspot.com/2010/03/posterous-posting-from-my-phone.html">posting phone pictures</a> (and now video) to the Internet. But since I switched, I didn't want to have my data history split in two, so I decided to write a script to download each of my TwitPic images with their associated text and date, and upload them to Posterous with the same information.<br />
<br />
Initially, I wanted to make one long post with all of the images, and their text below. However, with the <a href="http://posterous.com/api/posting">Posterous API</a>, it isn't possible to refer to a specific image in your body text, so individual posts is the way I went. <br />
<br />
Along the way, I became familiar with yet another Linux command: <a href="http://curl.haxx.se/docs/httpscripting.html">curl</a>.<br />
<br />
I love that Posterous has an API that (once you figure out curl) is pretty easy to use. TwitPic, on the other hand, has absolutely zero support for exporting anything. The fact that they're so non-user-centric and out-dated was a driving force in my switching. The only reason I hadn't switched to img.ly already was because img.ly has a bug that prevents images sent from my phone from being posted, since my phone sends them without a file extension. I worked with their tech support for a while, but they didn't fix it. I got a new phone, but it was also a Samsung, and it did the same thing with images. Oh, well. Posterous is better.<br />
<br />
Anyway, here is the script: <br />
<br />
First run it with just the first two arguments, and it will download all of your TwitPic data, including thumbnail images. Once you're satisfied, supply your Posterous User ID, Password, and Site ID. (If you don't know your Site ID, run the script with your Posterous User ID, Password, and no Site ID, and it will query your Posterous site info as long as your Posterous credentials are valid.)<br />
<br />
Note: if you want to run this from Windows, you should install <a href="http://cygwin.com/">Cygwin</a> (with, at a mimum, curl and sed) and run it from there.<br />
<br />
./twitpic-to-posterous.sh [twitpic-id] [working-dir] [postrous-id] [posterous-password] [posterous-site-id] [skip-number]<br />
<pre style="white-space: pre-wrap;">#!/bin/sh
# Copyright 2010 Tim "burndive" of http://burndive.blogspot.com/ and http://tuxbox.blogspot.com/
# This software is licensed under the Creative Commons GNU GPL version 2.0 or later.
# License informattion: http://creativecommons.org/licenses/GPL/2.0/
# This script was obtained from here:
# http://tuxbox.blogspot.com/2010/03/twitpic-to-posterous-export-script.html
RUN_DATE=`date +%F--%H-%m-%S`
SCRIPT_VERSION_STRING="v1.4.0"
TP_NAME=$1
WORKING_DIR=$2
P_ID=$3
P_PW=$4
P_SITE_ID=$5
UPLOAD_SKIP=$6
# Comma separated list of tags to apply to your posts
P_TAGS="twitpic"
# Whether or not to auto-post from Posterous
P_AUTOPOST=0
# Whether or not the Posterous posts are marked private
P_PRIVATE=0
# This is the default limit of the number of posts that can be uploaded per day
P_API_LIMIT=50
DOWNLOAD_FULL=1
DOWNLOAD_SCALED=0
DOWNLOAD_THUMB=0
PREFIX=twitpic-$TP_NAME
HTML_OUT=$PREFIX-all-$RUN_DATE.html
UPLOAD_OUT=posterous-upload-$P_SITE_ID-$RUN_DATE.xml
if [ -z "$TP_NAME" ]; then
echo "You must supply a TP_NAME."
exit
fi
if [ ! -d "$WORKING_DIR" ]; then
echo "You must supply a WORKING_DIR."
exit
fi
if [ -z "$UPLOAD_SKIP" ]; then
UPLOAD_SKIP=0
fi
UPLOAD_SKIP_DIGITS=`echo $UPLOAD_SKIP | sed -e 's/[^0-9]//g'`
if [ "$UPLOAD_SKIP" != "$UPLOAD_SKIP_DIGITS" ]; then
echo "Invalid UPLOAD_SKIP: $UPLOAD_SKIP"
exit
fi
cd $WORKING_DIR
if [ -f "$HTML_OUT" ]; then
rm -v $HTML_OUT
fi
# If Posterous username and password were supplied, but not site ID, query the server and exit.
P_SITE_INFO_FILE=posterous-$P_SITE_ID.out
if [ ! -z "$P_ID" ] && [ ! -z "$P_PW" ] && [ -z "$P_SITE_ID" ]; then
echo "Getting Posterous account info..."
curl -u "$P_ID:$P_PW" "http://posterous.com/api/getsites" -o $P_SITE_INFO_FILE
SITE_ID_RET=`grep "<id>$P_SITE_ID</id>" $P_SITE_INFO_FILE`
if [ -z "$SITE_ID_RET" ]; then
echo "Please supply your Posterous Site ID as the fifth argument."
echo "Here is the response from the Posterous server. If you entered correct credentials, you should see your Site ID(s):"
cat $P_SITE_INFO_FILE | tee -a $UPLOAD_OUT
exit
fi
fi
# Confirm that we have a valid Posterous Site ID
if [ ! -z "$P_SITE_ID" ]; then
echo "Getting Posterous account info..."
curl -u "$P_ID:$P_PW" "http://posterous.com/api/getsites" -o $P_SITE_INFO_FILE
SITE_ID_RET=`grep "<id>$P_SITE_ID</id>" $P_SITE_INFO_FILE`
if [ -z "$SITE_ID_RET" ]; then
echo "Make sure that you have supplied a valid Posterous Site ID as the fifth parameter. If you don't know your Site ID, leave it out, and this script will query the server."
echo "Here is the response from the Posterous server. If you entered correct credentials, you should see your site ID(s):"
cat $P_SITE_INFO_FILE | tee -a $UPLOAD_OUT
exit
fi
fi
MORE=1
PAGE=1
while [ $MORE -ne 0 ]; do
echo PAGE: $PAGE
FILENAME=$PREFIX-page-$PAGE.html
if [ ! -s $FILENAME ]; then
wget http://twitpic.com/photos/${TP_NAME}?page=$PAGE -O $FILENAME
if [ ! -s "$FILENAME" ]; then
echo "ERROR: could not get $FILENAME" | tee -a $LOG_FILE
sleep 5
fi
fi
if [ -z "`grep "More photos &gt;" $FILENAME`" ]; then
MORE=0
else
PAGE=`expr $PAGE + 1`
fi
done
ALL_IDS=`cat $PREFIX-page-* | grep -Eo "<a href=\"/[a-zA-Z0-9]+\">" | grep -Eo "/[a-zA-Z0-9]+" | grep -Eo "[a-zA-Z0-9]+" | sort -r | xargs`
# For Testing
#ALL_IDS="1kdjc"
COUNT=0
LOG_FILE=$PREFIX-log-$RUN_DATE.txt
echo $ALL_IDS | tee -a $LOG_FILE
for ID in $ALL_IDS; do
COUNT=`expr $COUNT + 1`
echo $ID: $COUNT | tee -a $LOG_FILE
echo "Processing $ID..."
FULL_HTML=$PREFIX-$ID-full.html
if [ ! -s "$FULL_HTML" ]; then
wget http://twitpic.com/$ID/full -O $FULL_HTML
if [ ! -s "$FULL_HTML" ]; then
echo "ERROR: could not get FULL_HTML for $ID" | tee -a $LOG_FILE
sleep 5
fi
fi
TEXT=`grep "<img src=" $FULL_HTML | tail -n1 | grep -oE "alt=\"[^\"]*\"" | sed \
-e 's/^alt="//'\
-e 's/"$//'\
-e "s/&#039;/'/g"\
-e 's/&quot;/"/g'\
`
if [ "$TEXT" = "" ]; then
TEXT="Untitled"
fi
echo "TEXT: $TEXT" | tee -a $LOG_FILE
# Recognize hashtags and username references in the tweet
TEXT_RICH=`echo "$TEXT" | sed \
-e 's/\B\@\([0-9A-Za-z_]\+\)/\@<a href="http:\/\/twitter.com\/\1">\1<\/a>/g' \
-e 's/\#\([0-9A-Za-z_-]*[A-Za-z_-]\+[0-9A-Za-z_-]*\)/<a href="http:\/\/twitter.com\/search\?q\=%23\1">\#\1<\/a>/g' \
`
echo "TEXT_RICH: $TEXT_RICH" | tee -a $LOG_FILE
# Convert hashtags into post tags
P_TAGS_POST=$P_TAGS`echo "$TEXT" | sed \
-e 's/\#\([^A-Za-z_-]\)*\B//g' \
-e 's/^[^\#]*$//g' \
-e 's/[^\#]*\(\#\([0-9A-Za-z_-]*[A-Za-z_-]\+[0-9A-Za-z_-]*\)\)[^\#]*\(\#[0-9]*\B\)*/,\2/g' \
`
# Uncomment if you don't want hashtags converted into post tags
#P_TAGS_POST=$P_TAGS
# Add custom tags from a file (optional). The file is formatted like this:
# ,tag1,tag2,tag3
TAGS_FILE=$PREFIX-$ID-tags-extra.txt
if [ -s "$TAGS_FILE" ]; then
P_TAGS_POST=$P_TAGS_POST`cat $TAGS_FILE`
fi
echo "P_TAGS_POST: $P_TAGS_POST" | tee -a $LOG_FILE
TEXT_FILE=$PREFIX-$ID-text.txt
if [ ! -s $TEXT_FILE ]; then
echo "$TEXT" > $TEXT_FILE
fi
FULL_URL=`grep "<img src=" $FULL_HTML | grep -Eo "src=\"[^\"]*\"" | grep -Eo "http://[^\"]*"`
echo "FULL_URL: $FULL_URL" | tee -a $LOG_FILE
SCALED_HTML=$PREFIX-$ID-scaled.html
if [ ! -s "$SCALED_HTML" ]; then
wget http://twitpic.com/$ID -O $SCALED_HTML
if [ ! -s "$SCALED_HTML" ]; then
echo "ERROR: could not get SCALED_HTML for $ID" | tee -a $LOG_FILE
sleep 5
fi
fi
SCALED_URL=`grep "id=\"photo-display\"" $SCALED_HTML | grep -Eo "http://[^\"]*" | head -n1`
echo "SCALED_URL: $SCALED_URL" | tee -a $LOG_FILE
POST_DATE=`grep -Eo "Posted on [a-zA-Z0-9 ,]*" $SCALED_HTML | sed -e 's/Posted on //'`
echo "POST_DATE: $POST_DATE" | tee -a $LOG_FILE
THUMB_URL=`cat $PREFIX-page-* | grep -E "<a href=\"/$ID\">" | grep -Eo "src=\"[^\"]*\"" | head -n1 | sed -e 's/src=\"//' -e 's/\"$//'`
echo "THUMB_URL: $THUMB_URL" | tee -a $LOG_FILE
EXT=`echo "$FULL_URL" | grep -Eo "[a-zA-Z0-9]+\.[a-zA-Z0-9]+\?" | head -n1 | grep -Eo "\.[a-zA-Z0-9]+"`
if [ -z "$EXT" ]; then
EXT=`echo "$FULL_URL" | grep -Eo "\.[a-zA-Z0-9]+$"`
fi
echo "EXT: $EXT"
if [ "$DOWNLOAD_FULL" -eq 1 ]; then
FULL_FILE="$PREFIX-$ID-full$EXT"
if [ ! -s $FULL_FILE ]; then
wget "$FULL_URL" -O $FULL_FILE
if [ ! -s "$FULL_FILE" ]; then
echo "ERROR: could not get FULL_URL for $ID: $FULL_URL" | tee -a $LOG_FILE
sleep 5
fi
fi
fi
if [ "$DOWNLOAD_SCALED" -eq 1 ]; then
SCALED_FILE=$PREFIX-$ID-scaled$EXT
if [ ! -s $SCALED_FILE ]; then
wget "$SCALED_URL" -O $SCALED_FILE
if [ ! -s "$SCALED_FILE" ]; then
echo "ERROR: could not get SCALED_URL for $ID: $SCALED_URL" | tee -a $LOG_FILE
sleep 5
fi
fi
fi
if [ "$DOWNLOAD_THUMB" -eq 1 ]; then
THUMB_FILE=$PREFIX-$ID-thumb$EXT
if [ ! -s $THUMB_FILE ]; then
wget "$THUMB_URL" -O $THUMB_FILE
if [ ! -s "$THUMB_FILE" ]; then
echo "ERROR: could not get THUMB_URL for $ID: $THUMB_URL" | tee -a $LOG_FILE
sleep 5
fi
fi
fi
BODY_TEXT="$TEXT_RICH <p>[<a href=http://twitpic.com/$ID>Twitpic</a>]</p>"
# Format the post date correctly
YEAR=`echo "$POST_DATE" | sed -e 's/[A-Z][a-z]* [0-9]*, //'`
DAY=`echo "$POST_DATE" | sed -e 's/[A-Z][a-z]* //' -e 's/, [0-9]*//'`
MONTH=`echo "$POST_DATE" | sed -e 's/ [0-9]*, [0-9]*//' | sed \
-e 's/January/01/' \
-e 's/February/02/' \
-e 's/March/03/' \
-e 's/April/04/' \
-e 's/May/05/' \
-e 's/June/06/' \
-e 's/July/07/' \
-e 's/August/08/' \
-e 's/September/09/' \
-e 's/October/10/' \
-e 's/November/11/' \
-e 's/December/12/' \
`
# Adjust the time to local midnight when west of GMT
HOURS_LOC=`date | grep -Eo " [0-9]{2}:" | sed -e 's/://' -e 's/ //'`
HOURS_UTC=`date -u | grep -Eo " [0-9]{2}:" | sed -e 's/://' -e 's/ //'`
HOURS_OFF=`expr $HOURS_UTC - $HOURS_LOC + 7`
echo "HOURS_LOC: $HOURS_LOC"
echo "HOURS_UTC: $HOURS_UTC"
echo "HOURS_OFF: $HOURS_OFF"
if [ "$HOURS_OFF" -lt 0 ]; then
# We're east of GMT, do not adjust
HOURS_OFF=0
fi
if [ "$HOURS_OFF" -lt 10 ]; then
HOURS_OFF=0$HOURS_OFF
fi
if [ "$DAY" != "" ] && [ "$DAY" -lt 10 ]; then
DAY=0$DAY
fi
DATE_FORMATTED="$YEAR-$MONTH-$DAY-$HOURS_OFF:00"
echo "DATE_FORMATTED: $DATE_FORMATTED" | tee -a $LOG_FILE
echo "<p><img src='$FULL_FILE' alt='$TEXT' title='$TEXT' /></p>" >> $HTML_OUT
echo "$BODY_TEXT" >> $HTML_OUT
echo " Post date: $DATE_FORMATTED; Count: $COUNT" >> $HTML_OUT
# Upload this Twitpic data to Posterous
if [ ! -z "$P_SITE_ID" ]; then
# First make sure we're under the API upload limit
if [ "$COUNT" -le "$UPLOAD_SKIP" ]; then
echo Skipping upload...
continue
fi
if [ "$COUNT" -gt "`expr $UPLOAD_SKIP + $P_API_LIMIT`" ]; then
echo "Skipping upload due to daily Posterous API upload limit of $P_API_LIMIT."
echo "To resume uploading where we left off today, supply UPLOAD_SKIP parameter of `expr $UPLOAD_SKIP + $P_API_LIMIT`."
continue
fi
P_OUT_FILE="posterous-$P_SITE_ID-$ID.out"
if [ -s "$P_OUT_FILE" ]; then
rm "$P_OUT_FILE"
fi
echo "Uploading Twitpic image..."
curl -u "$P_ID:$P_PW" "http://posterous.com/api/newpost" -o "$P_OUT_FILE" \
-F "site_id=$P_SITE_ID" \
-F "title=$TEXT" \
-F "autopost=$P_AUTOPOST" \
-F "private=$P_PRIVATE" \
-F "date=$DATE_FORMATTED" \
-F "tags=$P_TAGS_POST" \
-F "source=burndive's Twitpic-to-Posterous script $SCRIPT_VERSION_STRING" \
-F "sourceLink=http://tuxbox.blogspot.com/2010/03/twitpic-to-posterous-export-script.html" \
-F "body=$BODY_TEXT" \
-F "media=@$FULL_FILE"
cat $P_OUT_FILE | tee -a $UPLOAD_OUT
fi
done
echo Done.</pre><div style="text-align: center;"><a href="http://creativecommons.org/licenses/GPL/2.0/"><img alt="CC-GNU GPL" border="0" src="http://creativecommons.org/images/public/cc-GPL-a.png" /></a></div><div style="text-align: center;">This software is licensed under the <a href="http://creativecommons.org/licenses/GPL/2.0/">CC-GNU GPL</a> version 2.0 or later.</div><br />
PS: If you use my code, I appreciate comments to let me know, and any feedback you may have, especially if it's not working right for you, but also just to say thanks.<br />
<br />
For convenience, you can download this script <a href="http://athena.burndive.com/%7Etim/scripts/">from my server</a>.<div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com37tag:blogger.com,1999:blog-11837278.post-20334498592080622122010-03-13T12:45:00.000-08:002010-03-17T23:59:49.022-07:00Posterous Blogger Sidebar Widget Thumbnail Feed ScriptIt's been a while since this blog actually lived up to its name and I posted something to do with actual hacking on my Linux box.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhynpB8YXQafHu6jE_7Uh47jma2EMzFndeRUpxnrSNfqBxda7wBZD1r3nyPJklbwx2eX0l188Mv0jsjab2TEVRD7-xh1Uo80fjJsV7NbUdBHf-RIVRJFukvH-0YpBRqcjCm5BCRtQ/s1600-h/blogger-01.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhynpB8YXQafHu6jE_7Uh47jma2EMzFndeRUpxnrSNfqBxda7wBZD1r3nyPJklbwx2eX0l188Mv0jsjab2TEVRD7-xh1Uo80fjJsV7NbUdBHf-RIVRJFukvH-0YpBRqcjCm5BCRtQ/s640/blogger-01.png" width="145" /></a></div>You may recall a post a while back where I used the 'sed' command to <a href="http://tuxbox.blogspot.com/2009/04/thats-what-she-sed.html">create a modified copy of my TwitPic feed</a> so that a thumbnail would show up when I imported the feed into a Blog List gadget in Blogger.<br />
<br />
Well, I recently switched from using <a href="http://twitpic.com/">TwitPic</a> for uploading pictures from my phone to using <a href="http://posterous.com/">Posterous</a> for uploading pictures and video from my phone. There were <a href="http://burndive.blogspot.com/2010/03/posterous-posting-from-my-phone.html">many reasons in the "pros" column</a>, but in the "cons" was the fact that, when I imported my feed into that same Blogger widget, no thumbnail appeared. <br />
<br />
So, just like with the TwitPic feed, I set out to modify my Posterous feed in order to get the thumbnail to appear. One problem I encountered is that the feeds were totally different formats. I based my TwitPic feed modification on a feed I knew to be working (from <a href="http://digg.com/">Digg</a>), but performing that same transformation on the Posterous feed proved to be problematic.<br />
<br />
What I ended up doing was simply extracting the information I needed from the Posterous feed, and then creating a one-item feed in the known-good format. The feed looks nothing like the original Posterous feed, but that's just fine, since all it will be used for is pulling the latest post into my blog sidebar.<br />
<br />
One improvement I'm considering working on is providing a useful thumbnail when I upload a video. Currently (at least with the 3gp format), the Posterous feed just sticks a generic blank file icon in the thumbnail field. What I would like is a still frame from the movie. In order to do this myself, I would need to download the enclosure link, process the video into a still image, post the image on the web, and then put the image URL into the feed. All very doable given the right tools.<br />
<br />
I'll have to test out what happens when I use the MP4 format for video, which my phone is also capable of creating.<br />
<br />
Here's my script (so far). Feel free to use it under the terms of the license listed below. If you have any questions or suggestions, please feel free to leave a comment.<br />
<br />
posterous.sh (run as an hourly <a href="http://en.wikipedia.org/wiki/Crontab">cron job</a>):<br />
<pre style="white-space: pre-wrap;">#!/bin/sh
# Copyright 2010 Tim "burndive" of http://burndive.blogspot.com/
# This software is licensed under the Creative Commons GNU GPL version 2.0 or later.
# License informattion: http://creativecommons.org/licenses/GPL/2.0/
# This script was obtained from here:
# http://tuxbox.blogspot.com/2010/03/posterous-blogger-sidebar-widget.html
DOMAIN=$1
FEED_DIR=$2
FEED_TITLE=Posterous
FEED_DESC="The purpose of this feed is to provide a thumbnail of the latest item in a Blogger sidebar widget."
if [ -z $DOMAIN ]; then
echo "You must enter a Posterous DOMAIN."
exit
fi
if [ -z $FEED_DIR ]; then
echo "You must supply a directory."
exit
fi
if [ ! -d $FEED_DIR ]; then
echo "You must supply a valid directory."
exit
fi
FEED_URL="http://$DOMAIN/rss.xml"
TMP_FILE="/tmp/posterous-$DOMAIN.xml"
FEED_FILE="$FEED_DIR/posterous-$DOMAIN.xml"
# Fetch the RSS feed
wget -q $FEED_URL -O $TMP_FILE
if [ ! -f $TMP_FILE ]; then
echo "Failed to download $FEED_URL to $TMP_FILE"
exit
fi
NEW_LATEST=`grep guid $TMP_FILE | head -n1`
if [ ! -f $FEED_FILE ]; then
FEED_LATEST=""
else
FEED_LATEST=`grep guid $FEED_FILE | head -n1`
fi
# Comment these out
#echo "FEED_LATEST: $FEED_LATEST"
#echo "NEW_LATEST : $NEW_LATEST"
if [ "$FEED_LATEST" = "$NEW_LATEST" ]; then
# echo "There is no change in the feed."
# echo "FEED_LATEST: $FEED_LATEST"
exit
fi
IMG_HTML=`grep -i "img src" $TMP_FILE | head -n1 | grep -Eo "<img src='[^']*'[^>]*>" | sed -e 's/\"/\&quot;/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g'`
#echo "IMG_HTML: $IMG_HTML"
IMG_URL=`grep -i "img src" $TMP_FILE | head -n1 | grep -Eo "http:[^']*" | tail -n1`
#echo "IMG_URL: $IMG_URL"
# Create a minimalist RSS feed
echo "<?xml version='1.0'?> " > $FEED_FILE
echo "<rss version='2.0' xmlns:media='http://search.yahoo.com/mrss/'>" >> $FEED_FILE
echo "<channel>" >> $FEED_FILE
echo "<title>$FEED_TITLE</title>" >> $FEED_FILE
echo "<description>$FEED_DESC</description>" >> $FEED_FILE
echo "<link>http://$DOMAIN/</link>" >> $FEED_FILE
echo "<item>" >> $FEED_FILE
grep "<title>" $TMP_FILE | head -n2 | tail -n1 >> $FEED_FILE
grep "<pubDate>" $TMP_FILE | head -n1 >> $FEED_FILE
echo "<description>$IMG_HTML</description>" >> $FEED_FILE
grep "<link" $TMP_FILE | head -n3 | tail -n1 >> $FEED_FILE
echo "$NEW_LATEST" >> $FEED_FILE
echo "<media:thumbnail url=\"$IMG_URL\" height=\"56\" width=\"75\" />" >> $FEED_FILE
echo "</item>" >> $FEED_FILE
echo "</channel>" >> $FEED_FILE
echo "</rss>" >> $FEED_FILE
# Cean up
rm $TMP_FILE
</pre><div style="text-align: center;"><a href="http://creativecommons.org/licenses/GPL/2.0/"><img alt="CC-GNU GPL" border="0" src="http://creativecommons.org/images/public/cc-GPL-a.png" /></a></div><div style="text-align: center;">This software is licensed under the <a href="http://creativecommons.org/licenses/GPL/2.0/">CC-GNU GPL</a> version 2.0 or later.</div><div class="blogger-post-footer"><p align='center'><img src=''http://athena.burndive.com/img/blank-tuxbox-feed.jpeg?page=feed?page=feed' /></p></div>burndivehttp://www.blogger.com/profile/05133129688998029494noreply@blogger.com1