<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
					xmlns:content="http://purl.org/rss/1.0/modules/content/"
					xmlns:wfw="http://wellformedweb.org/CommentAPI/"
				  >
<channel>
<title>MortalPowers Linux, Open Source, and Gaming</title>
<link>http://mortalpowers.com/</link>
<description><![CDATA[Articles and News Regarding Linux, Technology, projects, and gaming on MortalPowers.com.]]></description>
<item>
<title>The Best Cross-Platform G+, Facebook, Twitter Tool</title>
<link>http://mortalpowers.com/news/the-best-cross-platform-g-facebook-twitter-tool</link>
<pubDate>Thu, 19 Apr 2012 00:00:00 -0500</pubDate>
<description><![CDATA[<p>For a few months now I have been looking for a tool that would allow me to, in one fell-swoop, make a single post to Google+, Facebook, and Twitter. When I take time to put together quality content, I want to share it equally among my networks. For some reason, for my social connections, there is very little overlap between G+ and Facebook. All of my friends that use G+, use it exclusively. All of my Facebook friends (of which there are more acquaintances than g+) avoid G+ like the plague.</p>
<p>In the end, what I discovered was that the best tool is just to&nbsp;<strong>DO IT YOURSELF</strong>. I probably spent around 3-4 hours researching and trying out different tools. Many of the tools were too invasive, and required extensive permissions to all of my accounts (such as G++ accessing my information on Facebook when I wasn't using the application), others were too slow, or didn't cross-post things like links, which are recognized very well by both g+ and Facebook in different ways. &nbsp;In the end, the total amount of time I spent researching this far surpassed any time I will need to spend cross-posting for the next year or two.</p>
<p>To take a single post, and then copy and paste it between two social networks which you are already using, takes around 15 seconds, and you achieve a far better experience by maintaining control of your content, and by being able to leverage the native capabilities of the network.</p>]]></description>
</item>
<item>
<title>Make your website more SPDY</title>
<link>http://mortalpowers.com/news/make-your-website-more-spdy</link>
<pubDate>Wed, 18 Apr 2012 00:00:00 -0500</pubDate>
<description><![CDATA[<p>Google's relentless quest to improve performance for all things technologic continues. They have just hit a huge success with SPDY, their replacement for HTTP for web transactions. Now, with a few simple linux commands, you can download, install, and activate an Apache module that will speed up everything for all of your supporting Chrome and Firefox users. &nbsp;This is a great thing to do because it is one half of the SPDY adoption question, and will help move the entire web forward into a faster, newer generation. Fortunately there is no downside. Users not yet capable of SPDY will imply failover to the slower HTTP transaction.</p>
<p>Install SPDY on Apache by doing the following (assuming a 64 bit system):</p>
<div class="code">wget https://dl-ssl.google.com/dl/linux/direct/mod-spdy-beta_current_amd64.deb</div>
<div class="code">sudo dpkg -i mod-spdy-beta_current_amd64.deb</div>
<div class="code">sudo apache2ctl rsetart</div>
<p>That's it, you are done. You will now see CHrome users negotiating with SPDY. YOu can verify this by visiting <a href="chrome://net-internals/#spdy">Chrome Network Internals</a></p>]]></description>
</item>
<item>
<title>Galaxy S II BlackEdition Troubles</title>
<link>http://mortalpowers.com/news/galaxy-s-ii-blackedition-troubles</link>
<pubDate>Tue, 17 Apr 2012 00:00:00 -0500</pubDate>
<description><![CDATA[<p>For the past week or so I have been running my SGS-T989 on the Ice Cream Sandwich rom called BlackEdition. This ROM takes the ICS hardware support from the Galaxy S II Skyrocket currently available on AT&amp;T, and ports it back to our SGS II -T-Mobile. While it's very exciting to get access to ICS, the speed, the data monitor, and most of all, access to Chrome on my phone. There are still a few issues.</p>
<h2>Media Scanner Issues</h2>
<p>The media scanner in this kernel has some sort of major malfunction, as it will not stop scanning. What this means for me, is that the phone never goes into a proper sleep, and my battery just gets shredded to bits. As in, less than 6 hours from fully charged to dead. It also makes charging super-slow, so it's almost better to turn my phone off to charge.</p>
<h2>Wifi Tether Issues</h2>
<p>Initially when I went into the Android Settings to turn on the Wifi-Tether on which I have grown completiely reliant, the setting would not turn on. After experiementing and trying all of the different configuration options, I gave up. A few days later, I noticed that there was a configuration toggle in the top bar of the notification pull-down. I tried it out, and lo-and-behold, there was the Wifi-Tether that I had been hoping for so strongly. It now works great, although combined with the Media Scanner Issue, my battery can be shredded to bits in an hour or two.</p>
<h2>ACore Issues</h2>
<p>About once every 20 or so minutes of use, the android core process will stop, freezing my entire phone, and preventing any operation for about 8-9 seconds. &nbsp;While not actually losing any work, or preventing me from being effective, it's very annoying.</p>]]></description>
</item>
<item>
<title>Cross Platform Application Development For Linux and Android</title>
<link>http://mortalpowers.com/news/cross-platform-application-development-for-linux-and-android</link>
<pubDate>Sat, 31 Mar 2012 00:00:00 -0500</pubDate>
<description><![CDATA[<p><iframe src="https://docs.google.com/presentation/embed?id=1Ul-6AyAAsCaNQyTe_QQDtUMYYzP6rV6ZrRDqL2HmBog&amp;start=false&amp;loop=false&amp;delayms=3000" frameborder="0" width="960" height="749"></iframe></p>]]></description>
</item>
<item>
<title>Upgrade Samsung Galaxy SII T-Mobile (SGS-T989) to Android 4.0.3 Ice Cream Sandwich</title>
<link>http://mortalpowers.com/news/upgrade-samsung-galaxy-sii-t-mobile-sgs-t989-to-android-403-ice-cream-sandwich</link>
<pubDate>Thu, 29 Mar 2012 00:00:00 -0500</pubDate>
<description><![CDATA[<p>In the past month or so, three new ICS ROMs have become available for the Samsung Galaxy SII for T-Mobile. &nbsp;These ROMS have their own issues and problems, and I don't feel like any of them are ready as daily drivers yet. &nbsp;</p>
<p>None of the ROMs worked "out of the box" for me, and I had to do some digging to get them to work. &nbsp;Each one entered an infinite boot loop that I had to pull the battery to get out of. &nbsp;Remember, if you want to boot into recovery, ensure the SGS2 is powered off, then hold volume up, volume down, and power until the Samsung logo appears. &nbsp;The solution for these boot loops was to do a more thorough wipe than the standard Factory Reset. There is a special tool called&nbsp;<a href="http://forum.xda-developers.com/showthread.php?t=1477955">DARKSIDE.SUPER.WIPE</a>&nbsp;that will fully erase your system, cache, and data partitions. Make sure you do a full Nandroid backup before doing this, as this will definitely erase parts of your OS.</p>
<p>Here are my notes on each rom.</p>
<h2>&nbsp;</h2>
<h2>[ROM] [cwm]-ICS-4.0.3-Self-Kang</h2>
<p><a href="http://forum.xda-developers.com/showthread.php?t=1566811">http://forum.xda-developers.com/showthread.php?t=1566811</a></p>
<p>This ROM was the first ROM I tried. After getting it to boot successfully, I attempted to make a phone call and discovered that there were no APNs included with the ROM for T-Mobile. Not wanting to manually install APNs, this ROM was not for me. &nbsp;I may come back to this one though, as it was the only pure Android ROM, without any TouchWiz, ruining the quality and asthetic of Ice Cream Sandwich.</p>
<p><a href="http://sourceforge.net/projects/sgs2tmob/files/ICS-OTA-TMOB/T989/Tmob-OTA-SGSII-4.0.3-KANG-RaverX3X.zip/download">Download</a></p>
<p>MD5 Checksum</p>
<p>7b2fe73e6ed1234a8c29d55934747f91</p>
<h2>[ROM] Skyrocket ICS Port</h2>
<p><a href="http://forum.xda-developers.com/showthread.php?t=1570012">http://forum.xda-developers.com/showthread.php?t=1570012</a></p>
<p>This was the second ROM I tried. This ROM had no APNs either unfortunately. This meant that for me it was unsuitable as a daily driver.</p>
<p><a href="http://api.viglink.com/api/click?format=go&amp;drKey=1359&amp;loc=http%3A%2F%2Fforum.xda-developers.com%2Fshowthread.php%3Ft%3D1570012&amp;v=1&amp;libid=1333050121654&amp;out=http%3A%2F%2Fsourceforge.net%2Fprojects%2Ficsskyport%2Ffiles%2Flatest%2Fdownload&amp;ref=http%3A%2F%2Fforum.xda-developers.com%2Fforumdisplay.php%3Ff%3D1332&amp;title=%5BROM%5D%20skyrocket%20ics%20port%20sgh-t989%20-%20xda-developers&amp;txt=http%3A%2F%2Fsourceforge.net%2Fprojects%2Ficss...atest%2Fdownload&amp;jsonp=vglnk_jsonp_13330561736232">Download</a></p>
<p>&nbsp;</p>
<h2>[ROM][cwm]-BLACKEDITION FOR THE SGS2 3-29-2012-ICS</h2>
<p><a href="http://forum.xda-developers.com/showthread.php?t=1531189">http://forum.xda-developers.com/showthread.php?t=1531189</a>&nbsp;</p>
<p>Finally a ROM with APNs, but overall I am definitely not a fan of TouchWiz, and the continuing issues with autorotation and a general lack of polish across all of these ROMs prevented me from adopting it as a daily driver.</p>
<p><a href="http://api.viglink.com/api/click?format=go&amp;drKey=1359&amp;loc=http%3A%2F%2Fforum.xda-developers.com%2Fshowthread.php%3Ft%3D1531189&amp;v=1&amp;libid=1333056566563&amp;out=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fsgs2tmob%2Ffiles%2Fstock%2FICS%2FblacksgsII.zip%2Fdownload&amp;ref=http%3A%2F%2Fforum.xda-developers.com%2Fforumdisplay.php%3Ff%3D1332&amp;title=%5BROM%5D-%5Bcwm%5D-BLACKEDITION%20FOR%20THE%20SGS2%203-29-2012-ICS%20-%20xda-developers&amp;txt=Remixed-To%20ICS&amp;jsonp=vglnk_jsonp_13330565743131">Download</a></p>
<div>&nbsp;</div>]]></description>
</item>
<item>
<title>Quick and Dirty MortalPowers.com Mobile Optimizations</title>
<link>http://mortalpowers.com/news/quick-and-dirty-mortalpowerscom-mobile-optimizations</link>
<pubDate>Tue, 20 Mar 2012 00:00:00 -0500</pubDate>
<description><![CDATA[<p>As of 2012, there are now more smartphone sales than there are traditional PC sales (desktops and laptops). This trend looks set to continue, meaning in the next few years, mobile devices will be the primary platform for the consumption of content, media, and social interaction. The two most dominant platforms in this new mobile market are Android and iPhone devices.</p>
<p>In order to support these types of devices, the core optimizations to a web page involve fixing the zoom to something logical, and then rearranging and resizing page components to ensure quality layout on mobile. The first item, fixing the zoom level, is achieved by adding a single meta tag to the web page. &nbsp;The latter optimizations can be much more complicated, but are sometimes handled automatically by templating systems.</p>
<p>The first decision to make when making a mobile optimization of a website is to decide how to trigger or detect mobile websites. One of the most effective ways to do this is to perform server side user agent detection. &nbsp;You can also perform user agent detection client-side. I find this to be less reliable because you end up mixing a lot of presentation information in with logic when you have to deliver the page, and then rearrange or modify it after rendering has begun. &nbsp;The final way to trigger mobile optimization is with media selectors, detecting screen sizes. This technique allows users of traditional web browsers to see the benefits of mobile optimization.</p>
<p>For MortalPowers, I went with performing server-side detection of moibile devices. I identified Android and iPhone specifically to provide mobile optimized website. For the mobile-optimized site, I disabled the navigation bar, swapped out the advertisements in desktop size for advertisements in mobile size. Fortunately the way the site is laid out, all of the pages rap the same HTML template. I was able to tie mobile detection into the branch of the code that reads and leverages the template, and use an alternative template. &nbsp;This template includes alternative standard items, including the HTML5 mobile meta tag for view control. &nbsp;Finally, it includes a mobile customized css in addition to the stanard css. This allows me to hide page components, and to resize things like image that can break the fixed size metaphore.</p>
<p>Lastly, its important to give your users the option to opt out of a mobile optimized site. You can do this by providing a link to disable mobile, but make sure you don't lose the page the user was looking at, and make sure you keep the user on the full site, rather than forwarding them back to the mobile site with each page load.</p>]]></description>
</item>
<item>
<title>Download YouTube or Other Flash Videos in Linux</title>
<link>http://mortalpowers.com/news/download-youtube-or-other-flash-videos-in-linux</link>
<pubDate>Mon, 19 Mar 2012 00:00:00 -0500</pubDate>
<description><![CDATA[<p>Internet Videos are everywhere. As of 2012, they make up the majority of the content being transferred across the internet. Occasionally you want to make a&nbsp;<em>backup</em>copy of one of these videos for you personal collection. This is relatively easy in Linux due to how everything is handled in a standardized way, so I'm going to share the scripts I use to do this.</p>
<h2>Play open Flash videos in VLC</h2>
<p>One of the most common use cases for me is to want to take a video that is playing in Flash, and move it over to VLC. With VLC I have much better control of full screen, video size, pausing, navigating within a video, etc. &nbsp;To immediately launch vlc with the video currently playing in flash, I execute the following script out of /usr/local/bin/, called&nbsp;<strong>vlccurrent</strong>.</p>
<div class="code">lsof -p `pgrep -f flashplayer` | grep '/tmp/Flash[^ ]*' | awk '{ print "/proc/" $2 "/fd/" $4 }' | sed 's/[rwu]$//' | xargs vlc</div>
<h2>Get Filename of Current Flash Video</h2>
<p>Another common use case is to want to copy the filename of the currently playing video. Keep in mind that this will only work after the video has finished buffering. Copying the video before it has buffered will result in not copying the entire video. &nbsp;This may break if YouTube more fully changes to HTML5 or webm formats, but has worked for more than a year now. Here are the contents of&nbsp;<strong>vlcl</strong>:</p>
<div class="code">#!/bin/bash</div>
<div class="code">lsof -p `pgrep -f libflash` | grep '/tmp/Flash[^ ]*' | awk '{ print "/proc/" $2 "/fd/" $4 }' | sed 's/[rwu]$//'</div>
<p>With this script I am able to do the following</p>
<div class="code">cp `vlcl` ~/new-video-name.mp4</div>
<p>&nbsp;</p>]]></description>
</item>
<item>
<title>The New iPad Reviewed in 60 Seconds</title>
<link>http://mortalpowers.com/news/the-new-ipad-reviewed-in-60-seconds</link>
<pubDate>Sun, 18 Mar 2012 00:00:00 -0500</pubDate>
<description><![CDATA[<p><img style="margin: 0 20px 20px 0; float: left;" src="http://mortalpowers.com/images/articles/ipad3.jpg" alt="The New iPad (iPad 3)" width="240" height="210" />At the store today I had a chance to finally get&nbsp;<strong>The New iPad&nbsp;</strong>in my hands. &nbsp;I was actually pretty excited for this product launch because for the first time since the initial launch of the iPad 1, the tablet had something no other tablet on the market had, the Retina&trade; display. &nbsp;This display has so many pixels that the human eye can't differentiate between pixels at a standard use distance. &nbsp;This type of quality display had previously been launched with the iPhone 4.</p>
<h2>First Impressions of The New iPad</h2>
<p>After holding the device in my hands and turning the device on, I was brought to The New iPad homescreen. &nbsp;The problem was, it looked exactly like the standard iOS 5.0 home screen seen on the iPad 1 and 2. In terms of holding the device in my hand, there was absolutely no difference. &nbsp;I had heard about the differentiating high definition screen, I had heard about the increased CPU and GPU on it, but holding it, launching apps, and flipping around with my fingers felt exactly the same.</p>
<p>I launched some games and loaded the standard photo gallery. I knew that the display was of a higher resolution than my eyes could see, so I leaned in very close to see the pixels. The pixels of The New iPad were very small, close together, and hard to see, but I didn't get the feeling that this was a revolutionary step forward in technology.</p>
<p>The UI was quick and snappy, but it always has been on the iPad, so the new GPU or CPU don't seem to make any difference. &nbsp;I went in expecting this to be a monument to the advances in technology since the March 2011 launch of the iPad 2, but it felt disapointingly familiar.</p>
<h2>The Future of Retina</h2>
<p>While Retina seems like an important move forward, the iPad isn't innovative or creative in its use. Without Steve Jobs at the helm, Apple seems to be attempting to leverage its remaining exclusive hardware manufacturer parternships to attempt to keep competition out. The problem for Apple will be that a new display, while nice, doesn't change anything. No new workflows, paradigms, or opportunities are opened by this device.</p>
<p>As technology continues to advance, the other tablets on the market will catch up to this screen resolution and display quality. In order to retain its dominance, Apple is going to need to find a new Steve Jobs, and hope that they can create new markets, rather than just increasing the screen density on the old ones.</p>]]></description>
</item>
<item>
<title>HexSLayer Release Updates</title>
<link>http://mortalpowers.com/news/hexslayer-release-updates</link>
<pubDate>Thu, 15 Mar 2012 00:00:00 -0500</pubDate>
<description><![CDATA[<p>HexSLayer recently launched a few new versions. In the Android Marketplace (Now known as Google Play), HexSLayer 1.0.19 was launched, and in the Amazon App Store, HexSLayer 1.0.20 was launched. These may be the last updates for a few weeks, as there has been a major update to the packing system I use, known has PyGame Subset for Andoir. Both of the published versions of HexSLayer use PyGame Subset for Android (PGSA) version 0.9.3. This has been a great framework for me, as I have been able to write applications and games in Python, and then launch them simultaneously on Windows, Mac, Linux, and Android.</p>
<p>With the latest update of PGSA to version 0.9.4, there has been a change to how the system packages applications. Before, the system would copy over the raw Python source files (or .py files), but now the tool packages only the optimized and compiled versions of Python applications (the .pyo file). This means that if you come from an earlier version on Android and upgrade, you will end up having both versions on your device.</p>
<p>The problem with this upgrade path is that it leaves both versions of the files on your device, and the Python subsystem by default runs the old version of the application. That means that there is new code on your device, your phone will always run the old code. &nbsp;This has been the core issue preventing me from releasing HexSLayer 1.1.x.</p>
<p>I wrote to the author of PyGame Subset for Android, and discovered that he had a fix prepared that will allow me to continue using the old packaging method, while waiting for my users to upgrade to a version compatible with the new method.</p>
<p>As soon as PGSA 0.9.5 is release, I should be able to repackage and release the next set of features and bugfixes for HexSLayer.</p>
<p>Thanks for playing!</p>]]></description>
</item>
<item>
<title>Localize Ubuntu Installs To Your Timezone</title>
<link>http://mortalpowers.com/news/localize-ubuntu-installs-to-your-timezone</link>
<pubDate>Wed, 14 Mar 2012 00:00:00 -0500</pubDate>
<description><![CDATA[<p>One of the common tasks with a new Ubuntu server setup is to localize the server to a timezone. &nbsp;Timezones are used by the filesystem for timestamps, they are used by PHP to perform date lookups, and by any databases when doing date comparisons based on&nbsp;<strong>NOW()</strong>.</p>
<p>The way GNU/Linux, and Ubuntu in particular store time is by keeping the system clock synchronized to UTC (Universal Coordinated Time), and then storing an offset to the localized timezone. &nbsp;To set this up in Ubuntu, just install the&nbsp;<strong>tzdata</strong> with the following command:</p>
<div class="code">sudo apt-get install tzdata</div>
<p>After running this command and entering your sudo password, you will be prompted for which geographic region you are in, and then prompted for a selection of timezones. &nbsp;After selecting the correct timezone for your server (for me, I like to keep my servers localized to my local time), you will need to restart any of the applications that use this. For a standard webserver, you will need to run the following:</p>
<div class="code">sudo apache2ctl restart</div>
<div class="code">sudo service mysql restart</div>
<h2>Synchronizing and Updating the Server Time</h2>
<p>Over time, the clock will get out of sync with the true passage of time (measured by atomic clocks accross the globe, by our GPS system, and by several publicly available network time pools). &nbsp;Ubuntu makes it very easy to resync your system clock to the network time pool. In stock GNU/Linux, this is achieved by running the&nbsp;<strong>ntpdate</strong> application and supplying a network time pool. On Ubuntu it's even easier, you can just run <strong>sudo ntpdate-debian&nbsp;</strong>which will sync your system against the debian-specified time servers.</p>
<p>You can put this command in a crontab to frequently resync your clock. Syncing the clock takes very little network or CPU. My experience shows that depending on the quality of the hardware clock, your system will get a second out of date every few days, or every few weeks.</p>]]></description>
</item>
<item>
<title>Retro-Gaming Made Easy on Android</title>
<link>http://mortalpowers.com/news/retro-gaming-made-easy-on-android</link>
<pubDate>Tue, 13 Mar 2012 00:00:00 -0500</pubDate>
<description><![CDATA[<p>For many of us, retro-gaming holds a special place in our hearts. We grew up playing games on platforms like Nintendo, Super Nintendo, Game Boy, DOS, or even the N64. Emulating these platforms on desktop computers has been done for many years now, but with the rising place of smartphones and tablets as gaming devices, emulating on Android becomes quite important. &nbsp;Here are the my top 5 retro gaming platforms and how to emulate them on Android. &nbsp;Keep in mind that most of these have been removed from the Android marketplace, despite the fact that Emulators are fully legal. This means that you may need to enable non-market applications in Settings-&gt;Applications, and then checking the box "Unknown Sources".</p>
<p>Emulators are legal according to US law, but downloading game ROMs (the full game application and all graphics, music, etc) is of questionable legality, unless you own the hardware cartidge. &nbsp;For this reason, I won't directly link to any ROMs, but searching for "<a href="https://www.google.com/search?q=cool+roms">cool roms</a>" will probably get you what you need.</p>
<h2>Emulating Super Nintendo on Android</h2>
<p><img src="http://mortalpowers.com/images/articles/emu/thumbs/snes1.png" alt="SNES Screenshot" /> <img src="http://mortalpowers.com/images/articles/emu/thumbs/snes4.png" alt="SNES Screenshot" /> <img src="http://mortalpowers.com/images/articles/emu/thumbs/snes2.png" alt="SNES Screenshot" height="200" /> <img src="http://mortalpowers.com/images/articles/emu/thumbs/snes3.png" alt="SNES Screenshot" height="200" /></p>
<p>Emulating Super Nintendo is probably one of the best experiences on Android. Download and install the emulator APK, and launch the application. It will bring you to a menu with several options. Clicking Load Game will launch a file browser where you can select the ROM you want to play.</p>
<p>This Emulator supports up to 10 saved states for each game. &nbsp; Additionally, Snes9x EX supports a wide variety of controllers. In the default mode, the application will have an on-screen keyboard. For a much better experience, I recommend connecting a Wiimote to the phone. You can connect a Wiimote by opening the battery case on the Wiimote, and pressing "Connect", and then press "Scan for Wiimotes/iCP/JS1" on the phone. If you have bluetooth enabled, it should find the Wiimote, and allow you to game on your phone/tablet with the Wiimote. &nbsp;You can even connect multiple remotes to your phone simultaneously for some sweet multiplayer gaming.</p>
<p><strong><a href="http://www.explusalpha.com/home/snes9x-ex/downloads/Snes9xEX-9-1.4.21.apk?attredirects=0">Get Snes9x EX</a></strong></p>
<h2>Emulating Nintendo on Android</h2>
<p><img src="http://mortalpowers.com/images/articles/emu/thumbs/nin01.png" alt="NES Screenshot" /></p>
<p>Nesoid is quite a nice emulator, supporting quicksave, 9 save slots, and an on-screen controller. Additionally, nesoid supports netplay, fast-forward, cheats. It also allows the user to use the sensor for the left and right keys, or allows the user to map the trackball onto one of the standard controller functions. &nbsp;The emulator uses Haptic (small vibrations) feedback to let the player know when they are hitting various keys. This is a very nice feature, as on-screen keyboards can tend to be a little difficult to use.</p>
<p><strong><a href="http://slideme.org/mobileapp/download/4a20d348-04bb-102d-a134-12313a00d126.apk">Get Nesoid</a></strong></p>
<h2>Emulating N64 on Android</h2>
<p><img src="http://mortalpowers.com/images/articles/emu/thumbs/n641.png" alt="N64 Screenshot" /> <img src="http://mortalpowers.com/images/articles/emu/thumbs/n642.png" alt="N64 Screenshot" /> <img src="http://mortalpowers.com/images/articles/emu/thumbs/n643.png" alt="N64 Screenshot" /></p>
<p>The N64 is probably one of the most advanced console types that we are currently capable of emulating. To emulate more advanced consoles such as the PS2/XBox or even the latest generation of consoles, we will need devices with an order of magnitude more power, as emulation is an extremely overhead expensive process. This emulator supports saving to a quick slot accessible onscreen, as well as up to 9 additional save slots per game. &nbsp;N64oid also supports using the motion sensors on the device as one of the inputs, but I didn't find this to be particularly useful for any games.</p>
<p><strong><a href="http://www.apktops.com/wp-content/plugins/download-monitor/download.php?id=6200">Get N64oid</a></strong></p>
<h2>Emulating Game Boy on Android</h2>
<p><img src="http://mortalpowers.com/images/articles/emu/thumbs/gbc1.png" alt="GBC Screenshot" height="200" /> <img src="http://mortalpowers.com/images/articles/emu/thumbs/gbc2.png" alt="GBC Screenshot" /></p>
<p>For the phone form factor, emulating a Game Boy probably is the most direct link between past and present. &nbsp;Gameboys were ubiquitous for children born in the 80s. From Pokemon Red/Blue, to Tetris and beyond, the Game Boy, Game Boy Color, and Game Boy Color ate millions of hours from children. &nbsp;Recover some of that old-school gaming feeling while in the bathroom, driving around in a car, or on your couch at home by trying out GBCoid. Using this emulator in portrait mode is surprisingly pleasing, despite not using all of the screen real estate of a phone. &nbsp;At least with many of the modern Android phones, the screen size and resolution is superior to the original devices.</p>
<p><strong><a href="http://slideme.org/mobileapp/download/97b6b6aa-3ecb-102d-a134-12313a00d126.apk">Get GBCoid</a></strong></p>
<h2>Emulating DOS on Android</h2>
<p><img src="http://mortalpowers.com/images/articles/emu/thumbs/dos1.png" alt="DOS Screenshot" /></p>
<p><em><strong>DOS Emulation is Not Good Enough for Normal Use Cases!</strong></em></p>
<p>Despite not having standardized and dedicated hardware, DOS is probably one of the most prolific platforms for game development created. 20 years ago, DOS was the only option for game creation, and it held that status for several years. &nbsp;Today, many games are still floating around with DOS versions. &nbsp;DOSBox on Android is a little bit tougher to use than any of the standard emulators, due to the general difficulty of using DOSBox. &nbsp;With a very powerful application, comes a very complex interface.</p>
<p>To load an old game like <strong>Pizza Tycoon</strong>, I had to:</p>
<ol>
<li>Copy the game files to the SD Card</li>
<li>Launch the application</li>
<li>Enable the onscreen keyboard</li>
<li>Black Magic</li>
<li>Gaming</li>
</ol>
<p><strong><a href="http://code.google.com/p/adosbox/downloads/detail?name=aDosBox-v0.2.5.apk&amp;can=2&amp;q=#makechanges">Get aDOSBox</a></strong></p>]]></description>
</item>
<item>
<title>The State of the Android - Top Things You Should Know</title>
<link>http://mortalpowers.com/news/the-state-of-the-android-top-things-you-should-know</link>
<pubDate>Mon, 12 Mar 2012 00:00:00 -0500</pubDate>
<description><![CDATA[<p>Android is a giant cluster of concepts, companies, and efforts. There are manufacturers, carriers, differing software versions, form factors, screen resolutions, roms, custom launchers, custom UIs, apps, and more. My intent is to walk you through some of these concepts, as they stand in March of 2012. This guide is intended for smartphone consumers, as developers and early adopters will likely already know all of these things.</p>
<h2>Top Things You Should Know About Form Factors</h2>
<ol>
<li>Android Operates on devices of any size. From a smartphone with a 3 inch screen, to a tablet with a 10 or 13 inch screen.</li>
<li>Many applications are poorly optimized for tablets. The more popular the application, the more likely it will work great on whatever type of device you use.</li>
<li>There are devices such as the<a href="http://www.samsung.com/us/mobile/cell-phones/SGH-I717ZBAATT"> Galaxy Note</a> that support both phone and tablet use cases.</li>
</ol>
<h2>Top Things You Should Know About Android Software Versions</h2>
<ol>
<li>Android 4.0.3 is the most recent version to be released and available on phones (<a href="http://developer.android.com/resources/dashboard/platform-versions.html">about 2% of devices have this version</a>).</li>
<li>We are expecting Google to announce Android 5.0, Codename Jelly Bean in June of 2012.</li>
<li>Android 4 or above is necessary to get access to the latest features, such as face unlock, or data usage monitoring.</li>
</ol>
<h2>Top Things You Should Know About Android Manufacturers</h2>
<ol>
<li>If you are looking to take control of your device, HTC makes the most unlockable devices.</li>
<li>Samsung currently makes the smallest, fastest devices, and is the largest manufacturer of Android devices.</li>
<li>Motorola's Mobility group was purchased by Google, so expect tight integration between Android and future Motorola devices.</li>
</ol>
<h2>Top Things You Should Know About Android Carriers</h2>
<ol>
<li>All US Carriers have Android devices, but each carrier has a different set of devices. Additionally, devices typically cannot be moved between carriers because of incompatible networks in the US.</li>
<li>Verizon has the fastest, but most expensive network.</li>
<li>Sprint has some of the most unique devices, including the 3D camera and display on the HTC Evo 3D.</li>
</ol>
<h2>Top Things You Should Know About ROMs</h2>
<ol>
<li>ROMs are great if you have technical ability, and want to modify or take control of your device. ROMs are community-built versions of Android that often combine proprietary and open source features.</li>
<li><a href="http://www.cyanogenmod.com/">CyanogenMod</a> and <a href="http://forum.aokp.co/">AOKP</a>&nbsp;are among the most popular ROMs for many devices, but each device will end up having tens of ROMs specific to that device.</li>
<li>The biggest problem for ROM developers trying to release working software for devices is the proprietary drivers needed to interact with hardware. This has worsened with Android 4.0, as many of the previously-software components such as camera, now have large demands upon the hardware.</li>
</ol>
<h2>Top Things You Should Know About&nbsp;Tethering</h2>
<ol>
<li>Both USB and Wifi tethering are built into the Android platform, but are often removed by Carriers.</li>
<li>You can install the <a href="https://play.google.com/store/apps/details?id=com.koushikdutta.tether&amp;hl=en">ClockworkMod Tether</a> application on your phone to add tethering back, if it was removed.</li>
<li>Tethering may be visible on Verizon or T-Mobile devices, but it may warn you that they want to charge you additional fees to use the feature.</li>
</ol>]]></description>
</item>
<item>
<title>Google IO Gift List 2012 - What's coming?</title>
<link>http://mortalpowers.com/news/google-io-gift-list-2012-whats-coming</link>
<pubDate>Fri, 17 Feb 2012 00:00:00 -0600</pubDate>
<description><![CDATA[<p>Despite having no official registration date or information, I'm still extremely excited to attend.  Part of me wants to see the show in person, meet the other developers, talk to Googlers, and live among those attending one of the hottest spots of innovation and technology around.  Another part of me wants to attend simply for the gifts.  The final part of me, with the announcement that there will be a coding competition for Google IO 2012, wants to prove myself as an adept developer and contributor to the world software ecosystem.</p>
<p>I've got the dates booked on my calendar already, and I'm checking the news feeds daily regarding news, and even going so far as to reach out to Googler's on Google+, but I have heard nothing so far. I'm frightened that I will miss the event like I did last year. In 2012, I found out about the registration 67 minutes after it had started. Unfortunately for me, tickets sold out in just 52 minutes, meaning I was 15 minutes too late to get a ticket. I'm was determined last year to attend, but I'm redoubling my efforts this year to ensure I'm able.</p>
<h2>Past Google IO Gifts</h2>
<p>In the past, Google has created a trend of gift-giving some of the latest technology. Here's a list of the past years' gifts.</p>
<p><strong>2008 - 0 Gifts</strong> Google IO started in 2008, giving attendees only words and presentations regarding technology.</p>
<p><strong>2009 - 1 Gift</strong> Attendees received an HTC Magic smartphone.</p>
<p><strong>2010 - 2 Gifts</strong> Attendees received a Nexus S before the show, and an HTC EVO 4G during the show.</p>
<p><strong>2011 - 3 Gifts</strong> Attendees received a Chromebook, a Galaxy Tab 10.1, and a Verizon Hotspot.</p>
<p><strong>2012 - ?4 Gifts?</strong> It is unlikely the trend will continue, but with the increase of focus on developer attendence rather than open enrollment, there is likely to be some type of technology-centric gifts.</p>]]></description>
</item>
<item>
<title>MortalPowers - A Time For Change</title>
<link>http://mortalpowers.com/news/mortalpowers-a-time-for-change</link>
<pubDate>Fri, 17 Feb 2012 00:00:00 -0600</pubDate>
<description><![CDATA[<p>Running a website requires numerous 3rd parties that provide a wide variety of services. From a domain name, to hosting, to DNS hosting, to SSL certificates, to email servers, there are a lot of pieces that one can easily forget about once they are set up properly. This is a good thing because if the technology works as originally intended, there should be no maintenance time or cost. Aside from just maintainability, you should take time every few years to re-evaluate the providers you rely on. Are there better, or cheaper alternatives?  Do you need the services you are paying for, or do you possibly need additional services that you didn't need when you were smaller?  I recently took a look at several of my providers and have decided to make some changes.</p>
<h2>Hosting and DNS, From Slicehost to Linode</h2>
<p>I used slicehost for a long time. 3 years ago, they were competitively priced, offered a great set of tools for the creation and management of virtual servers.  About a year ago, they were puchased by Rackspace. This purchase started a long downhill climb for them. The first issues that I had with them was several repeated bouts of downtime. Second, we started having issues where our servers would suddenly become completely unresponsive. With their purchase by Rackspace, it became clear that they were going to move me to the Rackspace Cloud, which had a worse interface with fewer features compared to the original Slicehost. Lastly, despite having signed up 3 years ago, their prices are the same today as they were back then.  I evaluated a few alternatives, such as <a href="http://prgmr.com/xen/">Prgmr</a>, a fully command-line based bottom-of-the-line VPS service. Although the prices were good, I decided that the lack of DNS hosting, and the need to learn Xen commands was unappealing to me.  I also evaluated <a href="http://www.linode.com/?r=9ceb371cad7bfbc7b627180fc3fc93459ffdc943">Linode</a>, and determined that they have full feature-parity with Slicehost, and double the server capabilities for the same price.</p>
<h3>Moving to Linode</h3>
<p>To move my systems, I created a Linode account started up the smallest available node size. While my node was constructing, I logged into the DNS managers of both Slicehost and Linode side by side, and spent 5 minutes copying all of the records from one to the next. I left the IPs the same until I could get the new server setup.  Then, I methodically rsynced several folders between the old server and the new.</p>
<ul><li>/var/www/</li>
<li>/etc/apache2/sites-enabled</li>
<li>/etc/postfix/</li>
<li>/etc/ssl/</li>
</ul>
<p>Once I had copied the files, I needed to re-enable the PHP mods I was using, install all of the necessary packages, and transfer the database. From there, I started up apache, checked that everything was good to go, and updated my DNS settings to point to the new server.</p>
<h2>Domain Names and SSL - Godaddy to Namecheap</h2>
<p>With Godaddy's SOPA support, and a clear profit-centric website, I decided to evaluate other domain name providers.  For me, a domain name registrar needs to be as cheap as ICANN allows, provide WHOIS, and preferably just get out of the way of me using their services. I also prefer to have my SSL certificates come from the same provider to save me time.</p>
<h3>Moving to Namecheap</h3>
<p>Transferring domain names isn't the easiest thing in the world, but it's definitely doable. It will require that you extend any of the domain name purchases for an extra year.  In order to minimize the cost of transferring all of my domain names, I settled on a 4 stage plan. Once per quarter, I would transfer the next 1/4th of my domain names based on expiration date.  As of February, I have transferred half of my domain names.  There are several great articles about how to do this, but the general steps are:</p>
<ol><li>Generate Authorization Code - See <a href="http://help.godaddy.com/article/1685#active">http://help.godaddy.com/article/1685#active</a></li>
<li>Unlock the domain names you wish to transfer</li>
<li>Purchase the transfers on NameCheap</li>
<li>Enter the Authorization Code</li>
<li>Make sure to setup the nameservers correctly. These can take up to 72 hours to propagate (more often 5-6 hours).</li>
<li>Approve the transfer request you receive in email</li>
</ol>]]></description>
</item>
<item>
<title>Heroes of Newerth Linux Boot Loop</title>
<link>http://mortalpowers.com/news/heroes-of-newerth-linux-boot-loop</link>
<pubDate>Sat, 11 Feb 2012 00:00:00 -0600</pubDate>
<description><![CDATA[<div class="update">Update 10:15PM 2012-02-11: S2 Games has released a new update of the 2.5.10 bundle, fixing this issue.</div>
<p>With the latest update to Heroes of Newerth published yesterday, many Linux users are experiencing a unfortunate boot loop. The game will launch with version 2.5.9, and tell the user to update to 2.5.10. The update will download and install, but then when the game starts up, the version is still 2.5.9.</p>
<h2>How to Fix HON Bootloop</h2>
<p>It appears that the reason for this bootloop is that while updating the 32 it version of HoN, S2 Games neglected to include the 64 bit bundle.  The solution to get HoN running again is to run the 32 bit version. If your hon folder is <span class="code">/opt/hon/</span> You will need to run </span class="code">/opt/hon/hon-x86</span> to launch the game. Hopefully you should already have all of the 32 bit libraries ready to go, as I did.</p>]]></description>
</item>
<item>
<title>Chrome for Android Released</title>
<link>http://mortalpowers.com/news/chrome-for-android-released</link>
<pubDate>Tue, 07 Feb 2012 00:00:00 -0600</pubDate>
<description><![CDATA[<p>Today marks the launch of Google Chrome Beta for Android.  This marks a reunion between Google's two main content delivery platforms, Google Chrome, and Android. Historically building and targeting one of these platforms nearly completely excluded the alternative platform. Today's release has not changed this yet, but this is a path along the way. To have a true reunion, Google Chrome for Android needs to support the Chrome Web Store and web apps. Doing so would allow companies and individuals to produce quality HTML5-driven applications, and connect them natively to mobile devices, in the same way they do with native applications published in the Android Marketplace.</p>
<p>This matches one step along a path described in <a href="http://mortalpowers.com/news/my-first-2011-predictions-the-app-store-revolution">My Prediction from January 2011</a>, although my timing was off by more than a year.  This also marks a key hallmark of modern technology, and an extension of the core idea of cloud computing. Whatever device, computer, screen, interface I start interacting with should automatically know who I am, what I have done and what I want. Being able to access your computer's tabs on your phone, in combination with tools like <a href="https://chrome.google.com/webstore/detail/oadboiipflhobonjjffjbfekfjcgkhco">Chrome to Phone</a> and NFC is going to make 2012 feel a lot more futuristic.</p>
<p><a href="https://market.android.com/details?id=com.android.chrome">Download Chrome Beta for Android</a></p>]]></description>
</item>
<item>
<title>T-Mobile Vibrant Revitalized with Ice Cream Sandwich</title>
<link>http://mortalpowers.com/news/t-mobile-vibrant-revitalized-with-ice-cream-sandwich</link>
<pubDate>Mon, 06 Feb 2012 00:00:00 -0600</pubDate>
<description><![CDATA[<p>Although the T-Mobile Vibrant, a derivative of the popular Samsung Galaxy S, is an aging phone, it has recently received an important spark of life.  Ever since the source code for Android 4.0 Ice Cream Sandwich dropped, the developers over at <a href="http://forum.xda-developers.com/forumdisplay.php?f=711">XDA</a> have been working on getting a quality ROM containing Ice Cream Sandwich Working. I have been following the series of ROMs called <em>Passion</em> which were among the first to launch. </p>
<p><em>Passion</em> recently launched Beta 12. Don't let the moniker "beta" fool you, this ROM is definitely good enough for a daily driver, and has been since at least version 6.  All of the expected features work, internet, phone, sound, video, playback, camera, etc.  It's much faster than the phone ever was with prior versions of Android, and looks great.</p>
<p>The only missing feature, which is due to a lack of hardware, is face unlock. It would be very nice to be able to see this feature live, but without a front-facing camera, this will never be available. Theoretically, they could make face unlock work with the rear camera, but I doubt they will spend the effort to do so.</p>
<p><a href="http://forum.xda-developers.com/showthread.php?t=1362961">Check out the install instructions here</a>.</p>]]></description>
</item>
<item>
<title>Do you love chew? A Tale of Browser Hacking</title>
<link>http://mortalpowers.com/news/do-you-love-chew-a-tale-of-browser-hacking</link>
<pubDate>Sun, 05 Feb 2012 00:00:00 -0600</pubDate>
<description><![CDATA[<p>One of my friends built a site called <a href="http://ilovechew.com">I Love Chew</a>. On this website, you can click repeatedly on the piece of chewing gum or visit sites in the high score list to get additional points. Each day, the top visitors get their own website listed in the list, and should notice a small influx of traffic, as other users are incentivized to visit them.</p>
<h2>Technical Analysis of the Game, and a bit of Hacking</h2>
<p>The Site is built in PHP and relies heavily on AJAX calls for data population and for user interactions. A quick peek at what goes on behind the scenes reveals that each click on the piece of gum triggers several events.</p>
<ol><li>A new piece of gum is loaded. </li>
<li>A sound is loaded</li>
<li>(Occassionally, a call is made to the following:
<ol><li>newupdate.php</li>
<li>updatescoreboards.php</li>
<li>gethighscores.php</li></ol>
</ol>
<p>An analysis of the parameters used in each of these calls reveals that the image, sound, and scoreboard calls are likely non-functional in nature, and have no impact on the score. It appears that the main call is to <em>newupdate.php</em>.  Looking deeper at the conditions of this call reveal that it isn't triggered with every primary click, but seems to occur randomly, and when the user clicks on "submit". Looking at the parameters shows that several arguments are passed in.</p>
<div class="code">http://ilovechew.com/newupdate.php?chews=1226&uniqueid=13d75b9aef961b8eb0c1931e1b4d011c&name=PeEll&url=http%3A%2F%2Fmortalpowers.com&bonusnum=0</div>
<p><span class="code">chews</span> is the number of chews we are reporting (we want to maximize this if possible), <span class="code">uniqueid</span> seems to be a tracking variable. This does not change with repeated calls, so we can most likely leave this alone. <span class="code">Name</span> and <span class="code">URL</span> match the data I attempted to submit, and <span class="code">bonusnum</span> is nonzero only when clicking on one of the bonus links. The request only contains Google analytics cookies (not even a standard PHP session ID), so we can safely surmise that this is not used as part of the tracking.</p>
<p>Looking at the included javascript file, we find that the submit button is hooked to two javascript calls:</p>
<div class="code">slideFormDown();
updateMyStuff();</div>
<p>We may be able to use these to submit our fake results. We also find that the main image has a click function that calls <span class="code">handleClick();</span>. I opened up the console to see if this was the key to our cheat. It was, but it was also UI-heavy. A further investigation of the screen showed that the key variable that I could modify was lastCount.  Modifying this variable and then handling my stuff again resulted in a ratelimited increase to my score. The best I could do based on the available security measures.</p>
]]></description>
</item>
<item>
<title>Stop SOPA and PIPA</title>
<link>http://mortalpowers.com/news/stop-sopa-and-pipa</link>
<pubDate>Wed, 18 Jan 2012 00:00:00 -0600</pubDate>
<description><![CDATA[<p>I recently wrote a letter to my representatives in congress.  I feel we need to immediately kill bills such as SOPA and PIPA.  Here is that letter:</p>
<p>Please end your support for this bill. It would harm technological innovation and grant powers to government officials that they are not qualified to use.  This bill harms our society.</p>
<p>There are strong lobbyists on behalf of copyright-reliant organizations such as the MPAA, that have framed the argument to make you believe that they are losing billions of revenue.  Simple supply and demand explains that NOT ALL of the pirates using a piece of software represent lost revenue. When the price of a product goes down to nothing, the number of individuals willing to partake goes up greatly. To believe that 100 acts of piracy equate to 100 cases of lost revenue is lunacy.</p>

<p>This is further compacted by the fact that often, piracy ENHANCES the use and desirability of a product.  Users uploading popular songs to YouTube for free distribution, has now been adopted by the record labels as a key way of increasing sales for example, although this was originally percieived as copyright violation.  Supporters of this bill show that they don't have the technical understanding to participate in the future economy.</p>

<p>If you use this bill to allow companies to resist exploring new markets and opportunities, the American economy is going to be left behind.</p>
]]></description>
</item>
<item>
<title>HexSLayer on Github</title>
<link>http://mortalpowers.com/news/hexslayer-on-github</link>
<pubDate>Wed, 04 Jan 2012 00:00:00 -0600</pubDate>
<description><![CDATA[<p>All of the <a href="https://github.com/PeEllAvaj/HexSLayer">source code for HexSLayer</a> is on Github.  I'm going to try running this game as an open source project, and do all issue tracking using the Github issues list.  If you like the game, or hate the game, or want to learn more about how it was made, <a href="https://github.com/PeEllAvaj">follow me on github</a>, or <a href="http://mortalpowers.com/contact-us.php">leave me a message</a>.</p>]]></description>
</item>
<item>
<title>When Additional Features are Donors-Only</title>
<link>http://mortalpowers.com/news/when-additional-features-are-donors-only</link>
<pubDate>Tue, 03 Jan 2012 00:00:00 -0600</pubDate>
<description><![CDATA[<p>One of the recent trends I have been seeing is the idea of additional functionality for donors-only.   This raises several questions for me, most important of which is <strong>Is this really a donation</strong>?  There are a couple of different aspects and implementations that have me divided on this topic.</p>
<h2>Ad-funded / Donations</h2>
<p>Some of the applications out there, such as Titanium Backup, Rom Manager, and many many more offer a free version of an application with advertising embedded, and a non-free version that removes the advertising.  The important thing to note with most of these applications is that they grant <strong>identical</strong> functionality to both paid and non-paid users. In this case, I see any payments here as an optional donation, because being a non-paying user doesn't lose anything, you only gain advertising, which is trivial to ignore.  The correlation I draw is to things like Google or XDA, where they exist for free with full functionality, but I'm presented with Advertisements to support the further development of the free service.
</p>
<h2>Donations for Functionality</h2>
<p>These types of applications have only started cropping up in the past year. In several cases, it looks like these are an evolution of the previously mentioned model. What went wrong, however, was that the owner was unhappy with the donation conversion ratio.  In these cases, the company started adding features only for the donation version of the software.  Two examples of this include Subsonic, and Mellenaire (a Minecraft Mod). With Subsonic, users cannot stream video unless they have made a donation. In Mellenaire, donators receive the ability to automatically download the right binary in the installer.</p>
<p>With Subsonic, I feel that these restrictions go beyond mere optional donation, and turns the software into a paid product. I have no issue paying for a service or product, but calling it and marketing it as "donation-only" is dishonest, and probably an attempt to avoid regulation, taxation, etc.  With the Mellenaire example, it's definitely on the border. From one perspective, the core application (the Minecraft Mod) functions the same with or without donation. On the other hand, users who don't pay the creator <strong>lose</strong> functionality that would be useful and save time.</p>
<h2>What to do about it?</h2>
<p>If you see an application or service being provided that <strong>removes</strong> functionality for non-paying users, reach out to the creator and start a dialogue, and share your concerns that the payment is no longer a donation, but a purchase.  Ask questions about the money transfer, assuming it's a purchase. This would include asking about the return policy, any warranties or guaranties, and upgrade policy.  Do not let "donation" marketed payments stop you from having the same expectations you would have for a purchase.</p>]]></description>
</item>
<item>
<title>Android Market Publisher Shows Fuzzy Statistics for HexSLayer</title>
<link>http://mortalpowers.com/news/android-market-publisher-shows-fuzzy-statistics-for-hexslayer</link>
<pubDate>Mon, 02 Jan 2012 00:00:00 -0600</pubDate>
<description><![CDATA[<p>Just like Google's popular Analytics program, it appears that the statistics for publishers in the Android Market are fuzzed as well.  After about 8 hours of having my app in the marketplace, and having 5 independently confirmed users install and run the application, including myself, the statistics shown in the store are as follows:</p>
<img src="http://mortalpowers.com/images/articles/androidmarket-hexslayer-dayone.png" alt="3 total installs (users) 4 net installs (devices)"/>
<p>It reports 3 total installs, and 4 net installs. This doesn't make any sense. These statistics mean that 3 people have ever installed my application, but 4 installs remain in production?</p>
<p>Looking depeer into the devices and versions of the users as reported by the control panel also shows some strange data.  First of all, none of my devices shown up in the devices list. This is odd, because I was one of the first to download it.  Second of all, despite having 4 equal chunks in the pie charts, the numeric breakdowns don't show 50% of my traffic.</p>
<p>These types of errors are common for Google, which processes trillions of petabytes per day. The only thing developers can do is hope that the data is correct and complete, with no additional information or assurances from Google.  Google did a great job of Real Time search for Google Analytics. This offering provides up-to-the-second updates regarding visitors to the site.  This leads me to trust their data. Google could do several things to improve the reliability of their data.</p>
<ul>
<li>Show real time data for statistics</li>
<li>State assumptions, such as time updated</li>
<li>State when you are excluding data, such as installs by the owner</li>
</ul>]]></description>
</item>
<item>
<title>HexSLayer for Android Public Release</title>
<link>http://mortalpowers.com/news/hexslayer-for-android-public-release</link>
<pubDate>Sun, 01 Jan 2012 00:00:00 -0600</pubDate>
<description><![CDATA[<img src="http://mortalpowers.com/images/articles/gameicon.png" style="margin: 0 10px 10px 0;float:left;"<p>For the new year, I wanted to actually put one of the projects I have been working on out to the public.  The game is called <strong>HexSLayer</strong>.</p>
<p>You should <a href="https://market.android.com/details?id=com.mortalpowers.android.hexslayer">Download HexSLayer</a> now!</a>
<h2>History</h2>
<p>I released a linux .deb on <a href="http://hexslayer.com/">hexslayer.com</a> about a year ago, but I haven't really tried promoting it or talking to anyone about it, due to the small market share of desktop linux.  Hopefully now with this Android release, I'll actually get a few users, some feedback, and hopefully make a great game.</p>
<p>I built HexSLayer for Android by originally writing the game in Python using Pygame. About a month ago I noticed that they had released a tool called <a href="">Pygame subset for Android</a> that allows you to add a few minor calls in your game, and then you can package and deploy Android apps.  There were a few headaches, such as an issue with the package that made me learn how to build android applications with Ant, but the game is playable on all of the devices I have tested it with.</p>
<h2>Current Release</h2>
<p>There are a few remaining issues, that seem to be limitations of using Pygame subset for Android. Among these are the inability to determine the screen size in-game. Additionally, it seems like the splash screen doesn't work on 100% of the devices I have tested it with.  Overall, I'm not sure how happy I am cross-compiling from Python into Android using Pygame and the NDK, but it's pretty cool to be able to do almost no work and deploy on a great big new platform.</p>
<p>I didn't have to do much work to get it running, but I spent a lot of time focusing on usability on the new platform.  I resized and moved everything on the screen so that it is relative to the screen size. I increased the size of the icons while you are dragging them, as a finger blocks the view of a small icon. The game works well on phones, but it works really great on tablets.</p>]]></description>
</item>
<item>
<title>Git Error &quot;couldn't find remote ref master&quot;</title>
<link>http://mortalpowers.com/news/git-error-couldnt-find-remote-ref-master</link>
<pubDate>Wed, 02 Nov 2011 00:00:00 -0500</pubDate>
<description><![CDATA[<p>When working with Git, you may run into the issue/error message <span class="code">couldn't find remote ref master</span> when attempting to perform a pull.  This message can be a little frustrating, because when you look at the remote repository, everything most likely can be seen just fine.</p>
<p>The answer to this problem is that this error means your system couldn't find the git repo details within a remote git repository.  This is distinct from the error message when the repository cannot be found at all, <span class="code">does not appear to be a git repository</span>.This is most often caused by inconsistent permissions within the .git folder.  Check that you have permission to all of the files in your .git folder in the remote repo, using whatever combination of <span class="code">chmod</span> and <span class="code">chown</span> to ensure you have full permissions from the repository attempting to pull into, on the repository you are attempting to pull from.</p>]]></description>
</item>
<item>
<title>Increase the Security of Your Google Account with Two Factor Authentication</title>
<link>http://mortalpowers.com/news/increase-the-security-of-your-google-account-with-two-factor-authentication</link>
<pubDate>Tue, 01 Nov 2011 00:00:00 -0500</pubDate>
<description><![CDATA[<p>With hundreds of millions of Google accounts in existence, and reliance upon Google accounts for your personal life, your business life, your cell phone, your calendar, your documents, etc, you should absolutely consider the security of your Google Account. The easiest way to do this is a strong password. Unfortunately, strong passwords can still be broken by dedicated or interested individuals or groups. One thing you can do to greatly increase the security of your Google account is to add <strong>Two-factor authentication</strong>. With 2-factor authentication, it is extremely difficult for anonymous remote entities to break into your account.</p>
<h2>What is Two factor authentication?</h2>
Two Factor authentication is the security principle that in order to grant access, the system must validate something you know (like your password), and additionally, something you have. This prevents individuals or groups from accessing your content, even if they are able to brute force or somehow determine your password.</p>
<p>Historically, Two factor authentication relied on a small piece of hardware they would ship to you. This was great from a security perspective, but was not convenient and was not mobile.  Google (as well as other such as Blizzard) have begun to allow 2 factor authentication using Smartphones.  This enables you to combine something you know (your password), with something you almost always have with you (your smartphone) to achieve better account security.</p>
<style>
img.instructionstep { display:block;}
</style>
<h2>Setting up Two Factor Authentication on your Google Account</h2>
<p>There are about 8 easy steps you can follow to quickly get 2 Factor Authentication working with any smart phone.</p>
<ol><li>Log into Gmail and Click on the drop down next to your email address in the upper right hand corner.<img class="instructionstep" src="http://mortalpowers.com/images/articles/article-2factor01.png" alt="2 Factor Instruction Information"/></li>
<li>Click on "Account Settings".<img class="instructionstep" src="http://mortalpowers.com/images/articles/article-2factor02.png" alt="2 Factor Instruction Information"/></li>
<li>Under the Security section, select "Using 2-step verification".<img class="instructionstep" src="http://mortalpowers.com/images/articles/article-2factor03.png" alt="2 Factor Instruction Information"/></li>
<li>Click on "Start setup" from the right side of the screen.<img class="instructionstep" src="http://mortalpowers.com/images/articles/article-2factor04.png" alt="2 Factor Instruction Information"/></li>
<li>Create a backup method by entering a phone number to text or call.<img class="instructionstep" src="http://mortalpowers.com/images/articles/article-2factor05.png" alt="2 Factor Instruction Information"/></li>
<li>Click on "Turn on 2 Step Verification". <img class="instructionstep" src="http://mortalpowers.com/images/articles/article-2factor07.png" alt="2 Factor Instruction Information"/></li>
<li>Decide what smartphone you wish to use to generate codes, and select it from the list at the top.  Follow the instructions for your phone.</li>
<li>Create application-specific passwords for your mobile devices and special applications, like Google Music.</li>
</ol>
<h2>What to expect</h2>
<p>Overall, you should have confidence in the security of your account, but at the same time you should expect the nuisance of needing to run an application on your phone every 30 days, and every time you want to access your account from a new computer.  Additionally, some rare applications (such as Google Music for Linux), are not written well, and won't save passwords.  This means that any time you want to run that application, you need to log in and generate a new Application-specific password for it.</p>
<p>Google will also create some backup codes for you, I have them stored securely on one of my servers that I can access via SSH. This is in case you lose your phone at any point, you don't lose complete access to your account.</p>
<p>Make sure you delete unused Application Specific passwords, and enjoy the additional peace of mind and security that 2 Factor Authentication provides!</p>]]></description>
</item>
</channel>
</rss>
