<?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>Common Conversations #throughglass</title>
<link>http://mortalpowers.com/news/common-conversations-throughglass</link>
<pubDate>Thu, 31 Dec 2015 00:00:00 -0800</pubDate>
<description><![CDATA[<p><img style="float: right;" src="http://mortalpowers.com/images/articles/2015-glass-IMG_20151231_083209.jpg" alt="Me in Glass" width="300" /></p>
<p>I wear Google Glass, and I have for the last two and half years.</p>
<p>I still run into people almost every day that have never seen Google Glass in the real world, but most people have at least heard of it on some level. Sometimes they <em>know</em> about "Apple Glasses", sometimes it's just Glass and they ask, "Who makes that?".ear Google Glass, and I have for the last two and half years.</p>
<p>I still wear Glass today for two main reasons.</p>
<p>1. Lower Barriers to Communication</p>
<p>2. Ever-ready camera</p>
<p><strong>Lower Barriers to Communication</strong></p>
<p>Take your phone out of your pocket. Now unlock it. Now open your messaging application Now select the contact you want to message. Now write your message and click send.</p>
<p>"ok glass, send a message to Bill Williams, I'm parking now, I'll see you in 5"</p>
<p>I've timed how long it takes people to perform this full interaction, and it's around 14 seconds before they can even start typing a message in the best of times. 14 seconds doesn't seem like a lot, but as humans we send a lot of messages.</p>
<p>Think about all of the people you talk to in a given day. Even more, think about the people you&nbsp;<em>should</em> be talking to. You had lunch with a friend, did you thank them for it, and try to setup the next time? Maybe you had a cool idea you wanted to share with a colleague. Most of these possible positive interactions are lost because the size difference between the thought and the execution are too great.</p>
<p>With Glass, I try to capture every idea, and I try to stay in touch with those closest to me. Because Glass has an amazing form factor and almost no friction when it comes to these types of engagement, I often send messages while driving (without taking my eyes off the road), or even when I'm just walking around.</p>
<p><strong>Ever-ready Camera</strong></p>
<p>Human memory is faulty, or at least I know mine is. I can hold onto hundreds or probably thousands of great memories that have happened to me over a lifetime, but what we forget is that there are MILLIONS of amazing and interesting things that happen to us.</p>
<p>You never regret having too many pictures. Life is short and all-too often moments are gone before we wish they were. Pictures let us form a bridge with the past that when done right also serves to connect us to our future. I do the things I do not because they are fun today, but because they are part of who I see myself as for the rest of my life.</p>
<p>What do you do with Christmas and Birthday cards you receive? You probably hold onto them for a week or two, and then throw them away. I do the same thing, but I take a picture first. This means that as I'm looking back at my timeline of memories, or when Google or Facebook surfaces "this day last year", I get an instant and meaningful connection to those moments.</p>]]></description>
</item>
<item>
<title>Angular and Python Are Marketing Wrong</title>
<link>http://mortalpowers.com/news/angular-and-python-are-marketing-wrong</link>
<pubDate>Sat, 16 May 2015 00:00:00 -0700</pubDate>
<description><![CDATA[<p>Over the last several years, developers around the world have been gently nudged to updated the version of Python they are using, and Angular is poised to do the same.</p>
<h2>A new version, a new direction</h2>
<p>Python 2.7.9 is the default used in Ubuntu's latest version. This is somewhat discordant with the fact that the latest version is actually 3.4.3. With Python 3, the creators of Python were trying to improve the language dramatically by refocusing on what was important for them in a language. The problem with this approach is that they broke backward compatibility, and left Python 2.x in a state where it was easier for developers to keep using the older version than to update to 3.x Python 3 was introduced in <strong>2008</strong>! That was&nbsp;<strong>7 years ago</strong> and developers still are reluctant to switch.</p>
<p>Angular is headed in the same direction, with their current work on Angular 2. Angular 2 (just like Python) breaks compatibility with the old version, introduces new language constructs, and tries to achieve a set of admirable goals including performance and simplicity. The problem is that they are trying to introduce too many things at the same time. To migrate from AngularJS (Angular 1) to Angular 2, the user has to learn and implement a number of changes to both the language they use to write applications, as well as to the toolset they use to build and deploy their applications.</p>
<h2>The problem with Python 3</h2>
<p>I may just be a terrible developer, but from my perspective the problem with Python 3 is that they got rid of all of the convenience tools included in the the language. Everything from the print statement to the way that you interact with files was dramatically changed to handle Unicode and edge cases better, but from my perspective this made the new language better at edge cases, and worse at nominal cases.</p>
<h2>The problem with Angular 2</h2>
<p>Angular 2 is headed down a similar path, with developers already groaning about having to do things a different way. While I believe each of the changes in Angular 2 were made for good reason, it's too much at the same time for the average developer to understand.</p>
<p>Take a look at all of the new things a developer has to do or think about</p>
<ol>
<li><strong>Switching from Javascript to ES6 OR Typescript with compilation</strong> - Even if you don't want to switch, Angular 2 was written in Typescript, and most of the examples that exist today are Typescript examples. If you ask the average developer what the diffrences between Javascript, ES6, and Typescript are, they would have a lot of trouble explaining it.</li>
<li><strong>Shift to Components</strong> - Now instead of grouping controllers and views into their respective structures, everything is broken into components, where the view and corresponding controller live together. This a structurally benficial change, but it once again assumes you are building a complex application, and increases the work to simply get started.</li>
<li><strong>Loss of Directives</strong> - Directives have disappeared and been replaced by Components and Directives (which is a type of component). This confusing terminology</li>
<li><strong>Loss of Existing Libraries</strong> - Because of the change in formats for Components and the loss of Directives, the huge number of AngularJS modules available on the internet are made useless for these types of projects.</li>
<li><strong>Double Binding Magic is gone</strong> - There's a magic moment when a developer connects an ng-model to a variable in the view. With the new Component model, this magic is gone because it feels like you have to create the wiring yourself, and your application will require more code just to get started (although in fewer places).</li>
</ol>
<h2>The Solution</h2>
<p>From my perspective, the solution is simple. Eliminate the frustration and fears related to the migration path by designing, building, and marketing these "major revisions" as new languages.</p>
<p>Developers are used to and often excited by the adoption of a new language of framework. When a major revision with breaking changes is created, developers have to conflate their positive feelings about the past framework with the additional time, energy, and cost related with updating their knowledge and skillsets, without the corresponding buzz coming from the adoption of something new and exciting.</p>
<p>Perhaps if we had Cobra and Nentr (names I have made up for Python 3 and Angular 2 respectively), developers would be able to evaluate these languages on their own merits, rather than being forced into a "upgrade or be left behind" mentality.&nbsp;</p>]]></description>
</item>
<item>
<title>#ios2weekchallenge Initial Thoughts</title>
<link>http://mortalpowers.com/news/ios2weekchallenge-initial-thoughts</link>
<pubDate>Sat, 25 Oct 2014 00:00:00 -0700</pubDate>
<description><![CDATA[<p>Two weeks ago today I embarked on a journey to switch to an iPhone 6 as my daily driver. &nbsp;It started off a little rocky with a trip to three different T-Mobile stores in order to get a SIM card. The first store was out, the second store wanted to charge me for them. Luckily the third store was able to give me one and suddenly my phone number and universe was driven by an iOS device.</p>
<p>Rather than go into a long narrative, here's a list of the pros and cons I have experiences.</p>
<p><strong>Cons</strong></p>
<ol>
<li>Swiftkey for iOS isn't ready yet. It has no number row on the keyboards, it has no voice recognition, it has no rapid/accuracy selector.</li>
<li>iOS custom keyboards aren't ready. It's a hugely jarring experience to be using a custom keyboard and to be dumped back to the iOS standard keyboard for password prompts.</li>
<li>Notifications suck. On Android, Notifications drove my entire mobile workflow. With iOS this feels impossible. There's no way to interact with &nbsp;many notifications quickly. You have to launch an app, interact, then jump back to the notifications. They need quick actions really badly. I have no idea how their wearables are going to work without these.</li>
<li>Google Apps aren't as good on iOS. Most notably, you can't click on phone numbers in emails. What?!</li>
<li>Where are the wearables? I've gotten used to a buzz in my pocket causing a corresponding wrist or head nod to take a peek at what's going on. With iOS I know the Apple watch is coming, but today I still have to pull the entire device out of my pocket (by which point the notification is gone) and take a peek.</li>
<li>The iPhone 6 is slippery! I'll post a video later, but hold an LG G3 or a Nexus 5 in one hand and an iPhone 6 in another. As you start tilting your hands, the iPhone is going to drop to the floor first. This matters because some acrobatics are required to interact with a 4.7 or 5.5 inch phone. My 5.5 inch LG G3 makes it easier to touch the top of the phone than the 4.7 inch iPhone.</li>
</ol>
<p><strong><br /></strong></p>
<p><strong>Pros</strong></p>
<ol>
<li>Epic Camera. The iPhone 6 camera is the best smartphone camera I have ever used. Night time, day time, it's fast and reliable. I would LOVE to see this camera on every phone I ever use again.</li>
<li>Touch ID is great. Finger prints are a surprisingly good security mechanism. I always took pleasure in using it, it's basically just fun. The only glitch is that it goes a little bit slower sometimes.</li>
<li>Apple Pay is awesome. I've used Google Wallet for years, but Apple has done something amazing. Not only do they have broader support (banks!) from partners, but the experience of using your fingerprint for authentication in combination with a simple tap (even from the phone being off) is much better than having your Android phone on and unlocked prior to making a transaction.</li>
<li>Weight and slimness of the device is highly desirable. There's no Android phone this fast, slim, and light. Which is nice, as long as it doesn't bend, :).</li>
</ol>]]></description>
</item>
<item>
<title>Trekking Across Bulgaria #throughglass</title>
<link>http://mortalpowers.com/news/trekking-across-bulgaria-throughglass</link>
<pubDate>Sat, 30 Aug 2014 00:00:00 -0700</pubDate>
<description><![CDATA[<p>I'm currently travelling in Bulgaria, wearing Google Glass the entire time. There are a lot of interesting reactions, one of the most unexpected was another traveler inside the monument known as Buzludzha that I visited. I was standing in the middle of the inside of the monument trying to take a photosphere, and I hear from behind me, "is that Google Glass?".</p>]]></description>
</item>
<item>
<title>Create Your Own Mobile App Privacy Policy</title>
<link>http://mortalpowers.com/news/create-your-own-mobile-app-privacy-policy</link>
<pubDate>Sun, 08 Jun 2014 00:00:00 -0700</pubDate>
<description><![CDATA[<p>One of the necessary evils of the world is the use of a Privacy Policy when you develop a mobile application. You probably aren't going to hit everything if you write your own. There are a huge number of paid services out there, but the complexity and lack of transparency from those services can be very frustrating.</p>
<p>After some searching, I found a service that provides free access to a template that can act as the basis for your own privacy policy. It even guides and leads you through the process of modifying and customizing the policy to your needs.</p>
<p>Check it out here:&nbsp;<a href="http://www.docracy.com/6513/mobile-privacy-policy-geolocated-apps-">http://www.docracy.com/6513/mobile-privacy-policy-geolocated-apps-</a></p>]]></description>
</item>
<item>
<title>Chrome Cordova Apps - cca create bug</title>
<link>http://mortalpowers.com/news/chrome-cordova-apps-cca-create-bug</link>
<pubDate>Fri, 30 May 2014 00:00:00 -0700</pubDate>
<description><![CDATA[<p><img style="float: left; width: 250px; height: auto; margin: 10px;" src="https://upload.wikimedia.org/wikipedia/commons/0/01/Google_Chrome_icon_and_wordmark_%282011%29.svg" alt="" /></p>
<p><span class="code">Failed to fetch package information for org.apache.cordova.keyboard</span></p>
<p>If you have experienced this error, you aren't alone. Any projects being created with version v0.0.11 of Chrome Cordova Apps (cca) are now failing to be setup properly.</p>
<p>The change comes from a desynchronization between Cordova's plugin library and the cca tool. This has been fixed by the developers in the latest source code on <a href="https://github.com/MobileChromeApps/mobile-chrome-apps/blob/master/src/plugin_map.js">Github</a>, but not released as part of npm.</p>
<p>The easiest way to get around this bug is to edit</p>
<div class="code">/usr/bin/cca</div>
<p>, and change line 53 from:</p>
<div class="code">'org.apache.cordova.keyboard',</div>
<p>to</p>
<div class="code">'org.apache.cordova.labs.keyboard',</div>
<p>After that, cca should work just fine again, allowing you to create new projects.</p>]]></description>
</item>
<item>
<title>Glass World Problems</title>
<link>http://mortalpowers.com/news/glass-world-problems</link>
<pubDate>Sun, 04 May 2014 00:00:00 -0700</pubDate>
<description><![CDATA[<p><img style="float: left; margin-left: 10px; margin-right: 10px;" src="https://www.google.com/glass/start/assets/img/glass.svg" alt="" width="235" height="55" />I starting wearing Google Glass in May of 2013. Since then, I've worn it nearly every day. I took a couple breaks in that time. Once during the 2.0 hardware upgrade, and again when travelling internationally to Brazil due to fears of concerns. Over this time I've learned that I'm relatively dependent on Google Glass as an important piece of my technology life.</p>
<p>When I go out to spend time with friends, I rely on the quick ability to send messages while driving, I also depend on the ability to take pictures at a moment's notice. These capabilities are so powerful because the Glass interface gets out of the way. Glass is an amazing piece of technology, but with these capabilities come their own "first world problems". It's a high quality device, with one very noticeable exception in how it was designed. <em>Google Glass is dependent.</em> Glass is dependent on a data connection. If you don't have a Wifi connection, it can use your phone, but this connection is buggy and error prone.</p>
<h2>An all too frequent "sad cloud"</h2>
<p><img style="float: right; margin-left: 10px; margin-right: 10px;" src="http://mortalpowers.com/images/articles/glass-sadcloud.jpg" alt="" width="400" />Imagine getting into your car and remembering that you need to let your wife know you are on your way to the store to grab groceries. You want to get a message out that is extremely useful, but not mandatory.</p>
<p>You tilt your head, speak the words "<strong>Ok glass send a message</strong>". Glass responds that the command was accepted and is listening "<strong>I'm on my way to Target, did you need to pick anything up?</strong>". You see Glass begin to spin out of the corner of your eye, but you've moved onto more important things. About 6 seconds later you hear the failure sound and see a sad cloud staring back at you. Glass has failed you, and you have to decide whether you want to relive the last 30 seconds of your life over again, or give up. Downtrodden, you give up.</p>
<h2>What to do about it</h2>
<p>This is entirely a software development problem. We've been successfully building applications without internet connections for decades. If Glass fails to process your interaction in ANY WAY related to connectivity, it should store the audio and <strong>RETRY RETY RETRY.</strong> The fact that Glass relies on the user rather than its own capabilities is ridiculous!</p>
<h2>Grunting with Glass</h2>
<p><img style="margin-left: 10px; margin-right: 10px; float: left;" src="http://mortalpowers.com/images/articles/glass-grunting.jpg" alt="" width="400" />The other problem with Glass is what I call "Grunting with Glass" or "Sneezing with Glass". The easiest way to take a picture is to wink, and in general this feature works great. Glass has a built in <em>winkometer</em> or <em>scrunchometer</em> that measures movement of your eye and face. Combine the right face action and timing and Glass will believe you are winking.</p>
<p>Occasionally though, human beings close their eyes for reasons other than winking. Sometimes when I'm lifting a heavy object, reaching for something, or even just sneezing, Glass will detect what it thinks is a wink, and take a picture. At this point it's pretty much easier to just leave the terrible photo in the timeline and on the web rather than curating it and deleting it.</p>]]></description>
</item>
<item>
<title>Factorio Game Review - 8/10</title>
<link>http://mortalpowers.com/news/factorio-game-review-810</link>
<pubDate>Sat, 03 May 2014 00:00:00 -0700</pubDate>
<description><![CDATA[<p><img style="float: left;" src="https://assets-factorio-com.s3.amazonaws.com/img/factorio-logo.png" alt="" width="307" height="46" /><a href="https://www.factorio.com">Factorio</a> is a 2d building game built by an independent team in Czech Republic. Initially funded by a successfull IndieGoGo campaign, the game's alpha is nearing 1.0.&nbsp;</p>
<p>Playing Factorio feels like you are playing a natural extension to Mojang's Minecraft when played with the Buildcraft and IndustrialCraft mods. Factorio is a very simple game at it's heart: collect resources and survive. The player can wander the landscape and collect resources manually, but the primary game mechanic and the source of fun in the game is in automation. Collect enough Iron and Stone and you can build an automated drill. Process materials and you can build an&nbsp;<em>inserter</em> to move resources and machines to process them. Combine conveyor belts and electric power to build greater and greater system of machines that keep you full on resources and safe from the enemies.</p>
<p>It's a great game, but once you have built everything there is a limited amount of replayability. Multiplayer may change this, as build efficiency and military will play a role of increased importance, bringing all sorts of new fun to the game.</p>
<p>On a side note, the game also supports using Bitcoin to pre-order the game. Visit their site, click on "Buy Alpha", then select a level of pre-order and click "Buy Now", and then finally "Pay with BTC". Keep an eye on the US/EU price, as one of them will actually have a cheaper BTC exchange rate, so make sure you buy the cheaper one.</p>
<p>&nbsp;</p>
<p><iframe src="http://mortalpowers.com//www.youtube.com/embed/9yDZM0diiYc" frameborder="0" width="560" height="315"></iframe></p>
<ul>
<li>Graphics - 4/10</li>
<li>Gameplay - 10/10</li>
<li>Replayability - 8/10</li>
</ul>
<p><strong>Overall Rating:8/10</strong></p>]]></description>
</item>
<item>
<title>Google Camera &amp; Lens Blur: The Future of Photography</title>
<link>http://mortalpowers.com/news/google-camera-lens-blur-the-future-of-photography</link>
<pubDate>Fri, 02 May 2014 00:00:00 -0700</pubDate>
<description><![CDATA[<p>Cameras have been alm<img style="float: left; margin-left: 5px; margin-right: 5px;" src="http://mortalpowers.com/posse/600x280/0IMG_20140430_110001.jpg" alt="" width="280" height="373" />ost the same for hundreds of years. Whether it was digital or analog, we stored a single two dimensional image of a scene. Modifications could be made to the photo, but there wasn't any magical extra data that could be recovered.</p>
<p>HDR photography has improved this; by taking multiple pictures different exposures, your camera can blend and combine multiple photos in different ways to visualize a scene differently. Somestimes this even gets closer to the way the human brain procesess light and information. <a href="https://www.lytro.com/">Lytro</a> is a company that also took this challenge on, building new sensor technology to allow the user to refocus a picture after it is taken.</p>
<p>With Google's <a href="https://www.google.com/atap/projecttango/">Project Tango</a>, it seems like the realm of computer vision and modeling is beginning to pick up steam as we are seeing the fruits of a huge amount of innovation. Project Tango takes a relatively standard smartphone, adds two cameras, a high quality gyroscope, compass, and a depth sensor to turn images of the world into a 3d model of the world automatically.</p>
<p>But Google has gone further, proving you don't even need two cameras or a depth sensor to gather some of this information. Using advanced algorithms, the new <a href="https://play.google.com/store/apps/details?id=com.google.android.GoogleCamera">Google Camera</a><a href="https://play.google.com/store/apps/details?id=com.google.android.GoogleCamera"><img style="float: right;" src="https://lh4.ggpht.com/_QeBzeEEEFXS_Zab9cZp0toNIoKaLwb0TQGEcLoa7r42sOZfvCipRxbjuKN9S_3wRbA2=w300-rw" alt="" width="150" height="150" /></a> for Android asks the user to move their device after taking a picture, and measures the 2d parallax effect to calculate a depth map. Using this depth map, Google allows the user to create a photo with properties of a high-quality DSLR and lens, featuring a low depth of field that the human eye finds very appealing. This depth map is even stored with the image. This depth map allows you to selectively blur the photo based on distance, and many other cool things.</p>
<p>Thankfully Google has even exposed this depth map to users. Visit&nbsp;<a href="http://depthy.stamina.pl/">http://depthy.stamina.pl/</a>&nbsp;on your phone and you will be able to see and manipulate and play with any of the photos you have taken with lens blur.</p>
<p>The technology isn't perfect yet, and we will require higher and higher camera resolutions to take advantage of these technologies, but the future is bright.</p>
<p>&nbsp;</p>]]></description>
</item>
<item>
<title>Top 10 Predictions for Google IO 2014</title>
<link>http://mortalpowers.com/news/top-10-predictions-for-google-io-2014</link>
<pubDate>Thu, 01 May 2014 00:00:00 -0700</pubDate>
<description><![CDATA[<p>I was lucky enough to attend an IO Extended event in 2011, and ever since I've been hooked. Google IO is a conference that combines the latest in technology, with a spirit of advacement and disurption. As a consumer and a developer, it's like Christmas. You get a bunch of new toys and tools to play with.</p>
<p>I'm attending Google IO 2014 in person in San Fransisco this year, and here are my top 10 predictions:</p>
<ul>
<li>10. New Nexus 5 (or Google Phone)</li>
<li>9. New Nexus 10 (or 10 inch Tablet)</li>
<li>8. Android 5.0</li>
<li>7. New Chromebook Pixel</li>
<li>6. Chrome Web Store / Google Play Semi-Merger</li>
<li>5. Multitasking on Android</li>
<li>4. Public Availability of Google Glass</li>
<li>3. Google+ New Features</li>
<li>2. In-Car Android with Several Car Manufacturers (Tesla?!)</li>
<li>1. Android Wear / Google Glass Merger</li>
</ul>
<p>&nbsp;</p>]]></description>
</item>
<item>
<title>A Year of Android Studio</title>
<link>http://mortalpowers.com/news/a-year-of-android-studio</link>
<pubDate>Wed, 30 Apr 2014 00:00:00 -0700</pubDate>
<description><![CDATA[<p><img style="float: right;" src="http://1.bp.blogspot.com/-u5dfSsMOMC0/UZO_5DC_W9I/AAAAAAAACM8/YCMn15HPzpE/s320/Studio_table.png" alt="" width="282" height="280" />It has almost been a &nbsp;year since Google IO 2013, where Google Announced a new IDE for Android, called Android Studio. Android Studio has been a major problem for developers and development companies since this date due to the schism between Eclipse and Android Studio.</p>
<p>Developers have to decide whether they build applications using Eclipse and Ant using the stable toolchain and tools they have been using for years, or whether to adopt the less stable and constantly changing Android Studio. What complicates this matter is that new Android capabilities and support and documentation is coming to Android Studio faster than Eclipse.</p>
<h2>Grade at the Heart</h2>
<p>Whether JetBrains or Eclipse have figured out the "best" way to build an IDE doesn't really matter to me as a developer. What matters most is that my toolset gets out of the way of me writing great applications.</p>
<p>This may be my naivete or lack of skills, but I find Gradle to be a&nbsp;<strong>terrible</strong> build system. It's not terrible from a feature set, or from it's logical architecture or flexible structure. It's terrible because it gets in my way. With Eclipse and Ant, the Android build system is exposed to me as a single file configuring the use of proguard. This file is optional. To get any Android application to work, I just need to tell Eclipse that it's an Android app, and it will handle the build process. My code will work if I create a new project, or if I move my code into someone else's system.&nbsp;</p>
<p>With Gradle, this process is bad. When I check out code from the internet and try to import it into my project, it fails. If I am missing one of the&nbsp;<strong>five</strong> gradle files that have meaningful configured content that I must protect, nothing is going to work on my application. Why is this build system trying to hard to get in my way?</p>
<h2>Example Gradle Failure - ChromeCast Video for Android</h2>
<p>Code sharing should be easy. To help developers learn to build applications for ChromeCast, they have created and released a starter project called CastVideos-android. This project is available publicly on Github here:https://github.com/googlecast/CastVideos-android</p>
<p>When I clone this project and attempt to import it into Android Studio, everything seems to go wrong. The first time I attempted to open it, it opened the /gradle/ folder, rather than the project file, meanining there was no source code. The second time I tried, I noticed that it wanted me to find the gradle.settings or build.gradle files, and I did that, but then my project wouldn't run because Error, configuration with name 'default' was not found. How am I supposed to fix that? Your default configuration is missing? Gradle is too complicated, and its use and existing right next to working code means it gets in the way of development.&nbsp;</p>
<p><strong>SEPARATE BUILD AND DEVELOPMENT PROCESSES</strong>. I understand they are connected and should be as smooth as possible, but look at Yeoman and Grunt, these tools do the same thing Android Studio is trying to do with Grunt, but they do them much better.&nbsp;</p>
<h2>Summary</h2>
<p>Gradle may be great for huge teams or multi-year development projects, but I would argue that most of Android development doesn't happen this way. Android is most commonly used by small 1-5 person teams that need to write code quickly and get it out to users.&nbsp;</p>]]></description>
</item>
<item>
<title>Getting Started with Chrome Cordova Apps (Chrome Mobile Apps)</title>
<link>http://mortalpowers.com/news/getting-started-with-chrome-cordova-apps-chrome-mobile-apps</link>
<pubDate>Mon, 28 Apr 2014 00:00:00 -0700</pubDate>
<description><![CDATA[<p>Back in 2011 I predicted the combination of the Chrome Web Store with the Android Google Play store. While my prediction has not yet come true, we are closer today than ever before.</p>
<p>A couple months ago, Google began releasing a tool called <span class="code">cca</span> (originally short for Chrome Cordova Apps, but I suspect they will try to shift the name to "Chrome Mobile Apps" for branding purposes). This tool allows you to take an application that you have developped for Chrome (Called a Chrome App because it has specific restrictions and implementation details), and run them on Android and iOS.</p>
<p>This means that by building a single application, you can run it now on Windows, Mac, Linux, Android, and iOS. This comes with downsides, the lack of the Action Bar and other native UI/UX patterns, but with a strong design sense, these challenges can be overcome to build high quality cross-platform applications.</p>
<h3>Pros</h3>
<ol>
<li>Single Codebase</li>
<li>Supported by Google (implying an ever-increasing level of support)</li>
<li>Unified Payment Mechanisms (between Androido and Chrome)</li>
<li>HTML5 -&gt; HTML / CSS / JS stack development</li>
<li></li>
</ol>
<h3>Cons</h3>
<ol>
<li>Limited by lack of native UI / UX</li>
<li>Dependency on Chrome APIs</li>
<li>CSP Complications - Chrome Apps run without the ability to inject remote javascript or images, this can cause some issues if you are used to building pure HTML5 applications.</li>
<li>Poor HTML5 rendering engine on iOS.</li>
</ol>
<p>&nbsp;</p>
<h2>Getting Started</h2>
<p>To get started, download&nbsp;<strong><a href="http://nodejs.org/download/">node.js</a></strong>. Node.js comes with the Node Package Manager (npm).</p>
<p>With node and npm installed, you will need to download the cca toolset with&nbsp;<span class="code">npm install -g cca</span></p>
<p>Now that you have cca installed, you will need to connect it to your Android and Java paths. cca will have instructions inline.</p>
<h2>Build your Chrome App</h2>
<p>cca will help you get started with&nbsp;<span class="code">cca create &lt;app name&gt;</span>. After running this command, you will get a folder that contains a lot of platform and cordova code, and a special folder called&nbsp;<span class="code">www</span>. The www folder is where all of the code for your app will live.</p>
<p>Open the www folder, throw some code into the index.html file, and then within Chrome go to "Load Unpacked Extension" and find &nbsp;the www folder. Your app should run in the browser. You can then go back to your command line at the root folder for your app, and tell cca to&nbsp;<span class="code">cca run android</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></description>
</item>
<item>
<title>[Solved] Chrome Cordova Apps (cca) stuck on version 0.0.8</title>
<link>http://mortalpowers.com/news/solved-chrome-cordova-apps-cca-stuck-on-version-008</link>
<pubDate>Sat, 26 Apr 2014 00:00:00 -0700</pubDate>
<description><![CDATA[<p>Chrome Cordova Apps (cca) is a way for you to build Android, iOS applications from a standard Chrome App. This is the story of how my version got stuck, and what I did to fix it.</p>
<p>I operate Ubuntu 14.04 and at some point my cca package got stuck at 0.0.8 (the current version being 0.0.9). It seemed like no combination of <span class="code">npm install -g cca</span> or <span class="code">npm update -g cca</span> or <span class="code">npm uninstall -g cca</span> had any effect, the binary was still present and represented the old version.</p>
<p>I followed the code a little bit and found that the old version was being installed to /usr/local/lib/node_modules, so I blew this folder away, and then tried installing cca again. This time cca was installed successfully and I was on the latest version.</p>]]></description>
</item>
<item>
<title>Pricing Comparison for Online Grocery Stores - AKA Coborn's Prices Suck</title>
<link>http://mortalpowers.com/news/pricing-comparison-for-online-grocery-stores-aka-coborns-prices-suck</link>
<pubDate>Sun, 05 Jan 2014 00:00:00 -0800</pubDate>
<description><![CDATA[<p>Being a lazy consumer, I rarely stop to think about the hidden costs of some of my digital choices. One such consideration is that of online grocery stores. The convenience of having groceries selected online and delivered to your home is unquestionable, but is it worth it for the price?</p>
<p>When evaluating and using services such as Coborn's Delivers in the past, I would always look primarily at the timing and cost of the delivery fee, and assume that the pricing of the food was comparable. This was definitely a mistake, as I later found out, as many of these online grocery stores hide some of their additional costs of operation in the price of the food.</p>
<p>To compare more directly, I finally took a moment to look at a receipt from my local grocery store (a major chain run in Minnesota), and pulled up the identical items or a equivalent comparable (such as strawberries), and made the following chart:</p>
<table style="table-layout: fixed; font-size: 13px; font-family: arial,sans,sans-serif;" dir="ltr" cellspacing="0" cellpadding="0"><colgroup><col width="120" /><col width="76" /><col width="81" /></colgroup>
<tbody>
<tr style="height: 17px;">
<td style="padding: 0px 3px; font-family: arial, sans, sans-serif; font-size: 100%; vertical-align: bottom; overflow: hidden; border: 1px solid #cccccc; direction: ltr;">Item</td>
<td style="padding: 0px 3px; font-family: arial, sans, sans-serif; font-size: 100%; vertical-align: bottom; overflow: hidden; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; direction: ltr; border-top-width: 1px; border-top-style: solid; border-top-color: #cccccc;">Local Store 2014-01-04</td>
<td style="padding: 0px 3px; font-family: arial, sans, sans-serif; font-size: 100%; vertical-align: bottom; overflow: hidden; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; direction: ltr; border-top-width: 1px; border-top-style: solid; border-top-color: #cccccc;">Coborn's 2014-01-05</td>
</tr>
<tr style="height: 17px;">
<td style="padding: 0px 3px; vertical-align: bottom; direction: ltr; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc;">Goldfish</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">2.04</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">2.49</td>
</tr>
<tr style="height: 17px;">
<td style="padding: 0px 3px; vertical-align: bottom; direction: ltr; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc;">Skippy Peanut Butter</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">2.74</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">3.09</td>
</tr>
<tr style="height: 17px;">
<td style="padding: 0px 3px; vertical-align: bottom; direction: ltr; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc;">Starkist can</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">1.12</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">1.19</td>
</tr>
<tr style="height: 17px;">
<td style="padding: 0px 3px; vertical-align: bottom; direction: ltr; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc;">Kraft Macaroni and Cheese</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">0.94</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">1.19</td>
</tr>
<tr style="height: 17px;">
<td style="padding: 0px 3px; vertical-align: bottom; direction: ltr; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc;">Raisins</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">1.49</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">2.29</td>
</tr>
<tr style="height: 17px;">
<td style="padding: 0px 3px; vertical-align: bottom; direction: ltr; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc;">Strawberries</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">3.31</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">3.99</td>
</tr>
<tr style="height: 17px;">
<td style="padding: 0px 3px; vertical-align: bottom; direction: ltr; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc;">Prego - Vodka</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">2.09</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">1.66</td>
</tr>
<tr style="height: 17px;">
<td style="padding: 0px 3px; vertical-align: bottom; direction: ltr; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc;">Bag of Baby Carrots</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">1.44</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">1.79</td>
</tr>
<tr style="height: 17px;">
<td style="padding: 0px 3px; vertical-align: bottom; direction: ltr; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc;">Eggo Waffles</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">2.44</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">3.29</td>
</tr>
<tr style="height: 17px;">
<td style="padding: 0px 3px; vertical-align: bottom; direction: ltr; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc;">Milk</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">1.98</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">2.19</td>
</tr>
<tr style="height: 17px;">
<td style="padding: 0px 3px; vertical-align: bottom; direction: ltr; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc;">Tropicana</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">3.49</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">4.49</td>
</tr>
<tr style="height: 17px;">
<td style="padding: 0px 3px; vertical-align: bottom; direction: ltr; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc;">Digiorno 8OZ</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">3.19</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">3.99</td>
</tr>
<tr style="height: 17px;">
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc; border-left: 1px solid #ccc;">&nbsp;</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">&nbsp;</td>
<td style="padding: 0px 3px 0px 3px; vertical-align: bottom; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">&nbsp;</td>
</tr>
<tr style="height: 17px;">
<td style="padding: 0px 3px; vertical-align: bottom; direction: ltr; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc;">Sum:</td>
<td style="padding: 0px 3px; vertical-align: bottom; text-align: right; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc;">$26.27</td>
<td style="padding: 0px 3px; vertical-align: bottom; text-align: right; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; border-right-width: 1px; border-right-style: solid; border-right-color: #cccccc;">$31.65</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Looking at these prices, there's a 20.48% premium on the online delivery, in addition to the delivery charge. If you have ever spent any time thinking about getting a loyalty card that gives a discount, or using apps such as Cartwheel where you can save 5% or 10%, then it quickly becomes clear that the&nbsp;<span style="color: #ff0000; font-family: arial, sans, sans-serif; font-size: 13px; text-align: right;">20.48%</span>&nbsp;surcharge is completely unacceptable, eliminating online delivery from the realm of feasability.</p>
<p>Also, my Fitbit hates it when I use online delivery for locally available things.</p>]]></description>
</item>
<item>
<title>On Weather - The State of Digital Information Access</title>
<link>http://mortalpowers.com/news/on-weather-the-state-of-digital-information-access</link>
<pubDate>Tue, 17 Sep 2013 00:00:00 -0700</pubDate>
<description><![CDATA[<p>One of the most common tasks on the internet today is looking up the weather. I woke up early this morning, around 5:29AM and was contemplating a run. I already had a browser open because I had been watching some YouTube videos, so there were a hundred different ways for me to get the weather. Here are four that I would commonly do:</p>
<div><ol style="list-style: decimal inside none;">
<li>Ctrl+T (Open a New Tab), "weather", Ctrl+Enter (Open as .com site)</li>
<li>Ctrl+T (Open a New Tab, "?weather" (Search for "weather")</li>
<li>Grab Google Glass, put it on, swipe 3 times to the left.</li>
<li>Reach into my pocket and grab my phone, Turn it On, Unlock It, Press Home, swipe left (I have Google Now on my left home screen).</li>
</ol>
<p>There are plenty of other ways, but these hit the main capabilities of modern technology. Use a mobile device, use a browser-based powerful computing device, or use a wearable.&nbsp;</p>
<h2>Weather Service</h2>
<img style="float: left; margin: 10px;" src="http://mortalpowers.com/images/articles/onweather-article1.png" alt="Searching weather.com" width="250" />
<p>My first inclination of using a service such as weather.com to provide me information was a complete failure. Not only did the website fail to recognize my location based on IP or any of the other publicly available information about me (why not ask my Browser? Chrome knows pretty much where I am), but it completely failed to give me any&nbsp;<strong>WEATHER</strong>. The human mind has been fantastically written through the power of <a href="http://en.wikipedia.org/wiki/Neuroplasticity">brain plasticity</a>&nbsp;to use the internet and the tools around us as an extension of ourselves. I clearly wanted to do a simple lookup of the weather in order to make some decisions regarding clothing and morning activities. If your tool doesn't support this instantly and effortlessly, why in the world would I want to use it?</p>
<h2 style="clear: both;">Google Search</h2>
<p><img style="float: left; margin: 10px;" src="http://mortalpowers.com/images/articles/onweather-article2.png" alt="Google search for weather" width="250" />My second attempt was with a Google Search. Thankfully this recognized my location, and gave me an extremely useful forecast for the day. There is even a giant section of advertisements above the information I'm looking for, but I can still see instantly what the temperature looks like for the day.</p>
<h2 style="clear: both;">Google Glass</h2>
<p>It may seem like a lot of effort to reach over, put on a pair of glasses, and activate a couple swipes. When compared to typing at a keyboard that my fingers are already at, it definitely is; but when you take into account the fact that I'll be wearing these glasses for the rest of the day, and this is an interaction I will most likely perform 5-15 times over the next 8 hours, the convenience and predictable nature make it reasonable again.</p>
<h2 style="clear: both;">Cell Phone</h2>
<img style="float: left; margin: 10px;" src="http://mortalpowers.com/images/articles/onweather-article3.png" alt="Cell Phone Weather" width="250" />
<p>I used to think of smartphones as these intelligent devices that we carried around with us that made our lives easier. This was originally the case, but as we cram more and more capabilities into each phone, as well as a plethora of services all competing for our attention, the difficult of using a smartphone keeps increasing. I had to perform 3 more actions on my phone than I did using Google Glass. This reflects the incredible power of mobile computing. I've noticed it again and again, wearable computing for dedicated activities often improves the quality and quantity of those activities. Great examples are picture taking or sending messages. I send far more messages and take more pictures through Google Glass because it's so easy. I don't need to worry about getting distracted by yet another 30 notifications. I can just do.</p>
<h2 style="clear: both;">Summary</h2>
<p>I think it's important to note that this little test reflects the idea that desktop computers and large powerful machines with giant screens will not be disappearing. With the introduction of each successive generation of computing, we find ourselves more and more choosing the right tool for the job, but needing tools at every form factor.</p>
</div>]]></description>
</item>
<item>
<title>Guest Gaming News - Dragonplay Poker Makes it to Facebook&acirc;&euro;&trade;s Mobile Games Publishing Pilot Program </title>
<link>http://mortalpowers.com/news/guest-gaming-news-dragonplay-poker-makes-it-to-facebook&acirc;&euro;&trade;s-mobile-games-publishing-pilot-program-</link>
<pubDate>Wed, 07 Aug 2013 00:00:00 -0700</pubDate>
<description><![CDATA[<p><img style="float: right;" src="http://g-ecx.images-amazon.com/images/G/01/mas/prod/images/acontent/B004SH9JSU/com.dragonplay.liveholdem-1.0-AD-SHOT05._SL333_V183505858_.jpg%20" alt="" width="333" height="200" /></p>
<h2>Was it selected because of Zynga&rsquo;s departure from Facebook?</h2>
<p><span style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;">Facebook has officially launched its Mobile Games Publishing Pilot Program that aims to help small-time social media game publishers become international brands in exchange for a cut of their revenues. Under the program, chosen developers will get the chance to collaborate with Facebook when it comes to the development and distribution of their games. They will also be given analytics tools in order to fully evaluate the success of their games. One of the most notable titles selected by Facebook was Live Holdem, a poker game developed by Dragonplay.&nbsp;</span><br style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;" /><br style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;" /><span style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;">Live Holdem, which is also known as Dragonplay Poker, has at least one million daily users according to Facebook. The game is also the number one social poker game on Android according to digital news provider <a href="http://www.talkandroid.com/">Talk Android</a>. Compared to Zynga&rsquo;s poker titles, Live Holdem is not that big but the social networking site believes that it is getting there. Unlike the games at<a href="http://www.partypoker.com/"> partypoker</a>, Live Holdem doesn&rsquo;t offer any cash prizes or seats at major poker events. What it brings to social gamers is competitive gaming since it is played by real people, not computer bots. The game has two types of game modes: the first ones is the shootout tournament that requires a player to beat all of his/her opponents to advance to the next round; and the second mode is the Sit-and-go wherein players compete in a poker table for only one chance&mdash;once you are knocked out of the table, there&rsquo;s no more chance for you to come back. Live Holdem attracts a great number of visitors because of its private online/offline messaging system and the exclusive Platinum Zone, where top-tier players on the leaderboard. Other features that the Dragonplay boasts are personal avatars, ring games, free daily gold, and lottery draw.&nbsp;</span><br style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;" /><br style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;" /><span style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;">There is some mystery behind Live Holdem&rsquo;s selection. The game is pretty much like the Texas Holdem offered by Zynga, one of the biggest social media game publishers that decided to water down its ties with Facebook. Is the social networking site worried about Zynga&rsquo;s decision to walk away from Facebook&rsquo;s arms? Does it think that it will be able to get back the million Zynga Poker users by adopting Live Holdem?&nbsp;</span><br style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;" /><br style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;" /><span style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;">In an earlier press release, Facebook insisted that the social media giant is unfazed by Zynga&rsquo;s absence. In fact, in its latest financial report&mdash;months after Zynga decided to tone down its dependence on it&mdash;Facebook posted a 12% growth collected from gaming revenues. Furthermore, Facebook CEO <a href="http://www.biography.com/people/mark-zuckerberg-507402">Mark Zuckerberg</a> said that other companies are starting to fill the void Zynga has left.&nbsp;</span><br style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;" /><br style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;" /><span style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;">"With the exception of our largest partner, Zynga, whose growth hasn't been as awesome as everyone had hoped, the rest of the community is actually growing quite well and is quite healthy," Zuckerberg told the media.&nbsp;</span><br style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;" /><br style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;" /><span style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;">Facebook and Zynga&rsquo;s sour relationship is not the issue here anymore. The focus is now on independent game developers who are trying to become international brands. Facebook knows well which games should stay under its care. Once Facebook&rsquo;s efforts in strengthening partnerships with other gaming companies, one thing is going to happen for sure: Zynga Poker won&rsquo;t be missed in the social gaming world.&nbsp;</span></p>]]></description>
</item>
<item>
<title>Walled Garden or Desert? The story of the Miracast failure</title>
<link>http://mortalpowers.com/news/walled-garden-or-desert-the-story-of-the-miracast-failure</link>
<pubDate>Mon, 15 Jul 2013 00:00:00 -0700</pubDate>
<description><![CDATA[<p>Having just returned from a trip to my local Best Buy, I was posed the question by a friend "Would you rather live in a walled garden, or in a desert?". This can feel like the choice we are forced to make between propretiary technologies and free or standardized technologies.</p>
<p><img style="float: left;" src="http://mortalpowers.com/images/articles/article-sgs4.png" alt="Galaxy S4" />The context of the question was with the Samsung Galaxy S4 google edition (i9505g) and Miracast. At Google IO 2012, Google announced that Android 4.2 and above would be supporting the wireless display standard known as Miracast. Since then, support has been virtually non-existant. This includes both the Nexus 7 and the Nexus 10, both of which were launched with Android 4.2 (after the announcement), but without miracast.</p>
<p>Since then, Google has launched exactly two devices with Miracast support, the first is the Nexus 4, and the second is the Galaxy S4 Google edition.</p>
<h2>Giving it a Try</h2>
<p>Searching the internet for Miracast-capable devices results in around 4 devices, which state support for a confusing blur of standards, sometimes ignoring Miracast entirely. They all seem to cost $60+ at this point.</p>
<p>The closest thing that Samsung is pushing hard is the Allshare Cast capability, which all of their TVs and devices are equipped with. This proprietary version of display streaming seems to work very well when you have a handful of samsung devices, but do I want to be forced into using Samsung's standard and only buying their devices? If I wanted to do do that, I could just buy only Apple products and most likely have a superior experience with an iPhone, iPad, and an Apple TV.I went to Best Buy to try out Miracast's compatibility with these devices before making a purchase.</p>
<p>We found 6 TVs that stated support for Wireless Display, and 4 of them even showed up on my SGS4 GE as available, but connecting was flaky. Although I was able to mirror my phone on 2 Samsung TVs, the connection was slow and only lasted around 20 seconds before failing.</p>
<h2>Results</h2>
<p>Perhaps the Miracast technolgy is too new, it's disappointing that neither the proprietary Android world has adopted it, nor any open source versions. Theoretically Linux or Ubuntu could provide direct support for the streaming standard over Wifi, but to date there seem to be no attempts to do so. The closest was a project to <a href="http://forum.xbmc.org/showthread.php?tid=167455">add Miracast XBMC on the raspberry pi</a>.</p>
<p>&nbsp;</p>]]></description>
</item>
<item>
<title>Photospheres Begin to Penetrate the Internet</title>
<link>http://mortalpowers.com/news/photospheres-begin-to-penetrate-the-internet</link>
<pubDate>Fri, 03 May 2013 00:00:00 -0700</pubDate>
<description><![CDATA[<p>
A recent improvement to the Google Plus javascript widget and API allows us to convert static photosphere images into interactive widgets, composing full rotational views of the world.
</p>
<g:panoembed imageurl="https://lh5.googleusercontent.com/-e0KcATGZ9aA/UXmJvLkd2uI/AAAAAAAAZbg/JmbAnY2gw5o/w1222-h431/PANO_20130425_114856.jpg"
             fullsize="4096,2048"
             croppedsize="4096,1380"
             offset="0,480"
             displaysize="600,400"/>
<p>See more information and learn how to create your own <a href="https://developers.google.com/panorama/web/">On Google Developer's Panorama Website</a>]]></description>
</item>
<item>
<title>Constant Revision Is The Only Way - GoPro's Failure</title>
<link>http://mortalpowers.com/news/constant-revision-is-the-only-way-gopros-failure</link>
<pubDate>Sat, 30 Mar 2013 00:00:00 -0700</pubDate>
<description><![CDATA[<p><img style="float: left; margin: 0px 5px 5px 0px;" src="http://mortalpowers.com/images/articles/goprofailure-0.png" alt="GoPro App" width="124" height="124" />In the modern world, there is a lot of complexity, and software is no exception. There's a hilarious <a href="http://xkcd.com/1095/">xkcd</a>&nbsp;that describes the splinter groups within hobbyist crazy straw fanatics, describing the fractal nature of such complexities.</p>
<p>One of the most annoying example of these comes with the complexity of publishing a polished high-profile mobile application. Within cameras we have digital cameras, within digital cameras we have the sports enthusiast market, within that market we have products like the GoPro. The GoPro announced The Hero 3 last year. WIthin the Hero 3 there are 3 editions. And for these editions there are mobile applications for both iOS and Android. The problem arises with the amount of effort it takes to launch applications like this.</p>
<p>In the 1980s there were hundreds of programmers working across the globe, in the year 2013 there are tens of millions of programmers working on building, rebuilding, and connecting software all across the globe. The net result is that there is a lot of software being built now, and it can be very hard to ensure it is all polished.</p>
<p>It's maddening to see applications where it's evident that a lot of time was spent, but then they miss some of the most basic details. This is the case with the Hero 3 Android Application. I haven't tried it out, but despite all of the time it took to design, build, test, and launch the application, the team responsible for putting it in the store completely <strong>failed</strong>.</p>
<p><a href="https://play.google.com/store/apps/details?id=com.gopro.smarty&amp;hl=en">https://play.google.com/store/apps/details?id=com.gopro.smarty</a></p>
<p><a href="https://play.google.com/store/apps/details?id=com.gopro.smarty"><img style="float: right; margin: 0px 0px 5px 5px;" src="http://mortalpowers.com/images/articles/goprofailure-1.png" alt="GoPro Failure in Google Play" width="400" /></a>"With the GoPro App you can now control your GoPro camera remotely using an iPhone, iPad, or iPod touch." This is one of the main descriptions for the application in <strong>Google Play</strong>, the&nbsp;<strong>Android</strong> marketplace. How much work would it have been for the person who copied and pasted the description to fix this? How much work would it have been to tweak 3 words at&nbsp;<strong>any</strong> point when working on publishing updates?</p>
<p>Perhaps this is irrelevant, and it obviously hasn't hurt their brand or their sales, but it's still amazing that oversights like this happen, propagate, and persist. If you try to look at how to prevent and fix this paradigm, constant minor incremental improvements are the only way. Every day, try to do better than the day before, and don't like with broken windows.</p>]]></description>
</item>
<item>
<title>Google Fails to Deliver Again With Google IO 2013</title>
<link>http://mortalpowers.com/news/google-fails-to-deliver-again-with-google-io-2013</link>
<pubDate>Wed, 13 Mar 2013 00:00:00 -0700</pubDate>
<description><![CDATA[<p><img style="float: left;" src="http://mortalpowers.com/images/articles/google-io-logo.png" alt="Google IO" width="281" height="80" />This morning at 7:00AM PDT registration opened for Google IO 2013. With tens of thousands of potential attendees slamming the site. The lottery system used by Google since last year (and expanded and improved this year) seems to still failed to meet expectations.</p>
<p>Thousands of users are reporting that while they were awarded a ticket, Google Wallet failed to load in time to complete the transaction, resulting in a frustrating experience, reminiscent of Google's recent launches of the Nexus 10, Nexus 4, and their terrible history of launching accessories.</p>
<p>What is Google thinking? At their scale, these types of web applications should be no problem. If you are going to run a true lottery system instead of first-come first-served, then just take submissions over a week, pick the winners, and let them know. There's no reason to run a real-time lottery if it doesn't work for most of your applicants.</p>
<p>I'm one very frustrated Google ecosystem developer.</p>]]></description>
</item>
<item>
<title>New MortalPowers Look Launched</title>
<link>http://mortalpowers.com/news/new-mortalpowers-look-launched</link>
<pubDate>Sun, 10 Feb 2013 00:00:00 -0800</pubDate>
<description><![CDATA[<p>To celebrate the 9th anniversary of the site, we have launched a new look and feel. This new appearance uses a fixed width, which matches the trends of major websites. It seems that once you have a screen with a resolution of higher than 1080p, a web page that spans to the size of your screen makes the text unreadable (the eye can't track between lines), and the site less useful.</p>
<p>Let us know what you think!</p>]]></description>
</item>
<item>
<title>Coinbase Is A Viable Entrypoint For New Bitcoin Users</title>
<link>http://mortalpowers.com/news/coinbase-is-a-viable-entrypoint-for-new-bitcoin-users</link>
<pubDate>Sat, 09 Feb 2013 00:00:00 -0800</pubDate>
<description><![CDATA[<p>If you haven't heard of Bitcoins before, I recommend you head over to&nbsp;<a href="http://bitcoin.org/">http://bitcoin.org/</a>&nbsp;and watch their video. Bitcoin is a highly interesting decentralized and fully digital currency.</p>
<p>As of the writing of this article, the current value of 1 bitcoin is $23.28 USD. (see <a href="http://mtgoxlive.com/orders">http://mtgoxlive.com/orders</a>&nbsp;for one vision of current prices). This is huge increase over the last year. When I began collecting bitcoins and using them, the exchange rate was about half this value. There seems to be an ongoing discovery process where more and more individuals and businesses learn about and discover Bitcoins. This increase in interest, coupled with a more slowly growing supply is resulting in a currency that keeps increasing in value.</p>
<p>With may people discovering Bitcoins, one of the&nbsp;<em>first</em> challenges is the acquisition of Bitcoins. There are exchanges all over the place, but a lot of them use clearing houses such as Dwolla that add an additional layer of complexity. For Bitcoin to have value, and start being used for increasingly relevant and important transactions, people need coins. You could barter your way into the market, but it's easier to use a service.</p>
<p><a href="https://coinbase.com/">Coinbase</a> is a new service that will create a direct link to your bank account, and buy and sell Bitcoins. There are other services that operate this ways, but Bitcoin is partnered with US Bank, and seems to have a higher level of reputation and reliability. Coinbase has a real office in California. Additionally, Coinbase is operated more as a technical software startup than a Bank, focusing on the experience and the process.</p>]]></description>
</item>
<item>
<title>Google Needs to Open Google Maps To Windows Phone To Keep Promise</title>
<link>http://mortalpowers.com/news/google-needs-to-open-google-maps-to-windows-phone-to-keep-promise</link>
<pubDate>Sat, 05 Jan 2013 00:00:00 -0800</pubDate>
<description><![CDATA[<p><img style="float: right;" src="https://lh4.googleusercontent.com/-EirTMc5lnZQ/AAAAAAAAAAI/AAAAAAAAaGE/9dcumi5eP3o/photo.jpg" alt="" width="125" height="125" /></p>
<p>One of the core tennants touted by Google is the concept of "Don't be evil". It seems to be harder and harder for that concept to represent itself at the institutional level based on a number of recent actions by the company. The most recent action was to block access to the mobile version of Google Maps on Windows Phone.</p>
<p>As evidenced by this YouTube user's investigation&nbsp;<a href="http://www.youtube.com/watch?v=Dd7RiMCrZFw">http://www.youtube.com/watch?v=Dd7RiMCrZFw</a>, simply changing the user agent is the difference between a functional Google Maps and a nonfunctional one. This is a dramatic example of Google being evil. They are intentionally blocking a competing platform from something that would work otherwise. This is an anti-feature. Anti-features are where developers intentionally spend&nbsp;<strong>preventing</strong> software from working. This is bad for customers, and bad for humanity.</p>
<p>This even harks back to the days of IE-Only websites. This is such a strange shift in strategy (even if unintentional) because Google was one of the shining voices helping us move past those dark days. With the launch of open source Chrome, one of the best browsers around, users benefited from constantly improving experience, in addition to control of their own environments.</p>]]></description>
</item>
<item>
<title>Start Coding in 2013</title>
<link>http://mortalpowers.com/news/start-coding-in-2013</link>
<pubDate>Thu, 03 Jan 2013 00:00:00 -0800</pubDate>
<description><![CDATA[<p><span style="font-size: 14px;">The skills involved with software development don't have to be black magic. There are several great services that have launched in the past year to help individuals start to work with code, and to work on their programming skills. Learning to program is like learning a spoken language in that doing so has a lot of secondary benefits beyond the direct skill. Programmers have a well developed ability to create mental models for new ideas. They are able to adapt to change more quickly, and can develop a consistent logical framework for thinking about the world or a specific situation.</span></p>
<h2>Codeacademy</h2>
<h2><img style="float: right;" src="http://www.meetthemasks.com/wp-content/uploads/2012/11/codeacademy.png" alt="" width="337" /></h2>
<p><a href="http://www.codecademy.com/">Codeacademy.com</a>&nbsp;has one of the best training programs anywhere for people who want to learn coding. In my experience, tools like this are in many ways superior to formal training or education. While formal training or schooling can give you a lot of the theory, background, and context, services like Codeacademy focus the user on writing code and solving problems. This real-world style experience where you aren't answering questions, but actually writing programs that are being run is a great way to experience not only the fundamentals, but also the power of a programming language.</p>
<p>When I first learned programming, whenever I encountered a new language's <a href="http://en.wikipedia.org/wiki/Hello_world_program">Hello World</a>, I always got a smug feeling of satisfaction from the fact that instead of printing "Hello World", I would write a personalized message like "Bonjour Monde" or "Sup world?". This isn't a major feature that people typically discuss, but the ability for learners to deviate from the course in ways that they find interesting is critical in my opinion to the development of these types of creative skills.</p>
<p>Codeacademy has a decent variety of modern languages. Their most developed content is around javascript, which runs natively in your browser, and Python, which they have hooked up to a server based interpreter. Each course will take you through the entire process of developing an application, from flow control, to variables and math, to functions, classes and higher level concepts. The repetition of syntax can be helpful for experienced programmers learning a new language, but building yet another factorial method can be a little frustrating.</p>]]></description>
</item>
<item>
<title>Canonical Announces Ubuntu For Phones</title>
<link>http://mortalpowers.com/news/canonical-announces-ubuntu-for-phones</link>
<pubDate>Wed, 02 Jan 2013 00:00:00 -0800</pubDate>
<description><![CDATA[<p><img style="float: left;" src="http://www.ubuntu.com/sites/www.ubuntu.com/files/active/02_ubuntu/U_homepage/phone-design-hero-584x340.jpg" alt="" height="170" />There is now a fourth player in the smartphone arena (and it's not RIM).</p>
<p>Today at 12:00PM CST, Canonical released a video recognizing the past, and announcing the future of Ubuntu. The future as proposed by Canonical's Mark Shuttleworth, is for Ubuntu to be a universal computing platform. Recognizing apps, content, and data as being universal, with customized interfaces for different form factors like Tablets, TVs, Phones, and Desktops.&nbsp;</p>
<p>This news is exciting, because being Linux and open source-based, multiple architecture and multiple device application development will be an easier dream to achieve. This would be a strong message to Apple, Microsoft, and Google that they have failed to unify all of the devices of a user. Ubuntu is a platform that I have used every day of my life for the last 4 years in the desktop space, taking that level of capability, stability, and power to other devices may be a winning combination.</p>
<p>In late 2012, Ubuntu TV was announced as the first extension to the Desktop Ubuntu experience. Shortly thereafter, Ubuntu for Android was announced. Ubuntu 12.10 was heavily optimized for touch and tablet interfaces. Now to complete the specturm, Ubuntu for phones is here.</p>
<h2>Major Innovations</h2>
<p>The biggest and most exciting accomplishment has been the promotion of web applications as true applications. I've been predicting this from Google's Android for a while, but it looks like Ubuntu may beat them too it. Apps built using HTML5 for iOS and Android will work perfectly on this device.</p>
<p>QML as a native development technology that combines standard application development methodologies, with simplified markup and Javascript and CSS for UI Glue is exciting.</p>
<p>Finally, Ubuntu has been working on intelligent and context-based menus for more than a year now. On Ubuntu phone they are exposing all of these interfaces via phone commands. Surpassing even Google's voice capabilities.</p>
<p>Support for Android-designed hardware is a part of the plan. This is a huge deal and something neither Microsoft or Apple could <em>ever</em> replicate. This means that any Android phone (and there are a ton of great ones) should be able to run Ubuntu. This means that all of the great Android hardware I've acquired should work very well with this new exciting mobile operating system.</p>
<h2>Ubuntu's Challenges</h2>
<p>&nbsp;The biggest challenge facing them is a lack of expeirence with heavy cloud applications. Historically they have relied on third parties, which could result in a fragmented or broken experience. This is exacerbated by the fact that the major service providers also have their own mobile platforms, so support may be slow coming or completely missing.</p>
<p>As of 1:00PM CST, their app development website is offline due to heavy load. This in interesting sign of the level of interest around developing for this platform.</p>
<p>Currently there's no plans for wearable computing, which will be an area for Google to innovate and easily exceed the capabilities of &nbsp;Apple, Microsoft, and Ubuntu.</p>]]></description>
</item>
</channel>
</rss>