Windows Phone Hacker Windows Phone Hacker <![CDATA[Help WPH: Rate my apps!]]> This request would be a little conceited under other circumstances, but I'll be transparent. I'm in DVLUP and one of the sets of challenges has to do with quality. Basically, developers are rewarded for the quality (rating) of their application. Makes sense, and a good incentive for sure.

So, if you want to help out WPH in getting new devices to experiment with, do me a huge favor:

  1. Download the WindowsPhoneHacker app
  2. Give it a good rating!

You can repeat this with the LockWidgets app, too, if you have WP8.

Also, I have a game in the store just for kicks, and you can rate that too if you feel so inclined.

The more ratings on all the apps, the better, so take a minute or two if you will and click the 5-star. It's for a good cause, unless you hate WPH or something.


Update: Thanks for the help, everyone! For sake of transparency, here's some details:

  • I get points everytime one of my apps maintains 4+ stars at intervals of 25, 50, 100, 200, and so on.
  • If we can get LW8 to 50 or 100, and finish up WPH to 100, I'll be able to snag some WP8 handsets without it costing me or you a penny.
  • As you can see, every vote counts. It'll take less than 5 minutes, so do it! ;)

But again, thanks for the support everyone!

Wed, 27 Mar 2013 15:51:50 -0400
<![CDATA[24 Hours Later: LW8 Launch Debriefing]]>

Bam. Yesterday, I launched LockWidgets 8, a simple lock screen application for Windows Phone 8. I encountered a lot of surprises in the last 24 hours, and as such, I'd like to debrief on them real quick. Hopefully some of this advice will be useful for other developers.

Within an hour or two of it being live, WPCentral covered the app. This was a huge surprise to me, as I never really attempted for the app to gain publicity. Huge thanks to the guys there for this, though. Not only did this give the app a good bump, but it allowed me to see what editors and users thought of it, and I found several bugs this way.

Within the first few hours, several unpredictable issues appeared. Fortunately, this application is linked to my server-side backend, which allowed me to evaluate and fix several bugs within minutes, not days. Here's the rundown:

  • Images being served from the Bing server were bad quality. I found a better source for them and switched it on the backend, flushed the cache, and voila; instantly fixed for all users.
  • I left a "trial version" watermark in the code by accident. WPCentral noticed that one before I did. Again, fixed on the backend.
  • NASA images were not scaling correctly. I added a ratio computation to the rendering function, and again, the fix is live.
  • I trusted the device region settings to determine whether to use Fahrenheit or Celsius. Unfortunately, many people set their device to en-US to bypass some restrictions, and as such, this was not a safe way of determining the standard unit. I made a fix in the app that allows Celsius override and it's been submitted to the Store for approval. It'll take a few days, but it's done.

Lastly, a bizarre bug occurred where several people saw -273 as the temperature. Chemistry tells us this is absolute zero, so I certainly hope none of my users were living in such conditions. After some sarcasm and playful apologies to users, I added some code to the server to evaluate the problem.

As it turns out, when I requested the C# application to report latitude and longitude coordinates in a string, I expected all to be formatted with a decimal, such as "52.2024". I'm aware this is an American standard, but I didn't expect C# to be smart enough to change the ToString evaluation based on the device region. I was wrong. Long story short, the server was parsing many locations incorrectly. I found a way to correct it server-side, but unfortunately, this was fixed only this morning, and several, several users experienced it, according to my logs.

This is a lesson to be learned. First impressions count. Despite the fact the fix is live as of now, a good percentage of users have probably given up on the app at this point. It's unfortunate, but it's my fault for not testing more thoroughly.

That aside, I'm working on fixing other issues reported and implementing features requested. I'm very heartened by the nice words and enormous amounts of feedback about this app. You guys keep me motivated, and for that, thank you ;) If you have any suggestions, issues, etc., as always, feel free to drop me a comment or contact me directly.

Wed, 27 Mar 2013 10:46:18 -0400
<![CDATA[LockWidgets 8 Now in the Store]]>

After 10 days in certification, LockWidgets 8 finally got unstuck and is now live in the Windows Phone Store!

I submitted this again due to popular request, and hopefully people will enjoy it.

It's pretty simple. It's a Windows Phone 8 application that allows you to put weather info, battery info, and weather effects on your lock screen, which can be set to NASA, Bing daily, or your own photo. I'm open to suggestions ;)

In the time it took to be approved, a couple of knockoffs have showed up, but maybe my app will still be appreciated. If you like it, it's available in the Windows Phone Store.

It's $0.99 with a free trial; there's no difference between the two versions at this time, but it does cost me bandwidth to run LW8, so if you want to contribute to hosting it (or other WPH projects), feel free to purchase it. If there's too much load on the server at some point, I may differentiate the versions. We'll see.

Anyhow, as you guys requested, LW8 is now a reality. Enjoy, and thank you much for everyone's enthusiasm!

Tue, 26 Mar 2013 08:01:51 -0400
<![CDATA[Heathcliff releases new Samsung 1st and 2nd gen jailbreaks]]>

There's really not much to say that the title does not already explain. Heathcliff has announced a triple release wave, featuring WP7 Root Tools 1.1, a new SDK build, and, lo and behold, working unlocks for 1st and 2nd generation Samsung devices.

That means all the people who have been trying to unlock their Omnia W and Focus S's now have a possible methods. This should work on fully updated phones, unlike my dated Windowbreak exploit, which only worked for people who did not receive firmware updates after 7740.

But I digress. The downloads and instructions for all of this is at Big thanks to Heathcliff74 for this one; if you appreciate his hard work, there's a big orange button on his site. Just sayin.

And WP7 lives on.

Mon, 25 Mar 2013 21:55:09 -0400
<![CDATA[PSA: 8860 is not the live tile fix [Update]]]>

A lot of gossip has been going on today in regards to a 7.10.8860 update that has begun to roll out. Specifically, the update has been pinned as a fix for the 7.8 tile bugs.

This is not a true statement. Simply put, the 8860 update has nothing to do with the live tile bugs, battery drain, or anything like that. Don't believe me? Here's some points:

  • The update files are stamped on January 19th, 2013. Considering that the first reports of the bug were around the beginning of February, aka when people first got the update, specifically Heathcliff's report, it's highly unlikely that this update could possibly be designed to fix that.
  • More so, Microsoft's recognition was after user complaints. The statement suggestions the problem may included in a fix update, not that a fix had been created and was ready.
  • Microsoft can't ship updates that quickly. They have too much testing to handle, not to mention carriers, OEMs, etc. Again, the update was built on January 19th.
  • The update files in question have nothing to do with the start menu.
  • I tested it, as seen above. My server is spammed with requests.
  • Heath tested it and reports that it isn't fixed.

So, what is the update? I'm not sure. It's 343kb, the largest part being the quartz framework. There are also some provisioning settings in there for syncing Google accounts. Exactly what it's for, or why Microsoft is deploying the update again, I don't know. But it doesn't fix the live tiles, as far as my testing goes.

Update: Update version 8862 is out now (and in SevenEighter), which Microsoft states fixes the tile issue. It was built on February 23rd, so that's a good sign. The update does patch livetoken.exe, so that's also a good sign. I'm waiting to hear from Heathcliff, though, on if it solves his issue. I'm still getting some strange behavior on my end, but it may be unrelated to the tiles. For now, let's assume it fixes the problem, until further notice.

Thu, 14 Mar 2013 19:47:16 -0400
<![CDATA[App I made over Winter Break]]>

App I made over Winter Break for the WPG contest. Forgot how beautiful it was/is.

The app was made entirely over a remote desktop connection, two thousand miles away from my home computer. I'll say it turned out pretty well.

Any interest in cleaning it up and putting it live? ;)

Tue, 12 Mar 2013 21:32:32 -0400
<![CDATA[Clover: Tabs for Windows Explorer]]>

Neat non-phone related, non-made by me tweak today.

The Windows Explorer interface has its ups and downs. In Windows 8, Microsoft tried to address this, and added a ribbon. Some love the new functionality, some don't. Your mileage varies. But what Microsoft didn't add, which several file explorers have rigged for years, is tabs.

Yes, tabs. The thing that we couldn't browse the interwebs without, and something we shouldn't browse our computers without either.

Enter Clover. This is a small little project by Ejie that adds Chrome-style tabs to the Windows Explorer interface. Before you start making any assumptions, the integration is buttery smooth. It feels and runs just as well as Chrome. In fact, as far as I can tell, it's even built on the same library as Chrome. Open source is nifty, no?

There are several neat things this enables. For example, to copy between folders/devices, you can the respective folders or devices in tabs, and drag files from one tab into another, just as you would expect. You can also control+click on things to open them in new tabs, drag tabs into new windows, snap tabs to the left or right of the screen, etc. Everything that works in Chrome now works on Windows Explorer.

It's an early version from what I can tell but it still works really well, and I'm very fond of the idea of using tabs instead of individual windows for the many file operations I have to deal with. Give it a try; it's free (donationware) and very lightweight, and easily removable. Recipe for success.


Tue, 12 Mar 2013 15:27:06 -0400
<![CDATA[Custom PeriodicTask Intervals (WPDev)]]> Per the MSDN documentation, PeriodicTasks run once every 30 minutes on Windows Phone devices. They are designed to fill the gap with multitasking, and allow your application to do some quick, low resource background processing on a regular basis. Uses for this include updating tiles, checking in with the backend, updating location-aware data, etc.

The idea is for the tasks to be quick and cause no disruption to the user or his/her battery life. Unfortunately, the schedule is hard-coded at 30 minutes, with no way of configuring this.

Here are two workarounds I've used in some WPH projects.

Running a task at intervals longer than 30 minutes

This is quick and simple, and completely supported. What we do here is obvious: since the task runs every 30 minutes, check if the duration between runs is long enough, and if not, skip the test until the next cycle.

DateTime lastrun;
IsolatedStorageSettings.ApplicationSettings.TryGetValue<DateTime>("lastrun", out lastrun);

if (DateTime.Now.Subtract(lastrun).TotalMinutes < 60) // 60 minutes, so run every hour
    System.Diagnostics.Debug.WriteLine("Too soon, stopping.");

//add proper code for removing old value, etc.

IsolatedStorageSettings.ApplicationSettings.Add("lastrun", DateTime.Now); 

This allows you to increase the duration in increments of 30 minutes, e.g. run a task every hour, hour and a half, six hours, etc.

It does not allow you to run a task every 45 minutes, for example, or anything less than 30 minutes. For that, we'll use option 2.

Running a task at intervals shorter than 30 minutes [Homebrew only]

This method is a little dirty. Here's the code, followed by some discussion.

DateTime lastrun;
IsolatedStorageSettings.ApplicationSettings.TryGetValue<DateTime>("lastrun", out lastrun);

if (DateTime.Now.Subtract(lastrun).TotalMinutes < 60) // 60 minutes, so run every hour
    System.Diagnostics.Debug.WriteLine("Too soon, stopping.");

//add proper code for removing old value, etc.

IsolatedStorageSettings.ApplicationSettings.Add("lastrun", DateTime.Now); 

// Launch the task in 6 minutes
ScheduledActionService.LaunchForTest("task", TimeSpan.FromMinutes(6));

What this does is break the rules and call LaunchForTest from within the task, allowing it to re-execute itself at a desired time. Per the MSDN documentation,

Use this method during application development to test your background agent implementation. You can use this method to launch an agent more frequently from your foreground application or from the agent itself in order to test the agent execution. This method should only be used during development. You should remove calls to this method from your production application.

This would imply that you cannot use LaunchForTest outside of testing. Strangely enough, it's not blocked by the automatic API checker, nor is it on the unsupported API list.

Still, for signed applications (ones downloaded from the Marketplace), the LaunchForTest call does not seem to work as hoped, as the documentation has suggested. This is unfortunate, but consistent with the documentation, which is good. And it works in homebrew apps, if anyone still cares about that. Not Microsoft, anyway.

You can download the sample code for this experiment here. Have fun!

Sun, 10 Mar 2013 10:36:30 -0400
<![CDATA[WPH App now in the Windows Phone Store]]>

Quick announcement today. After much trial and tribulation, I managed to get the WPH app into the Windows Phone Store. This was difficult, as Microsoft's review teams hardly agree on anything, so my initial attempt failed. After seeing a bunch of rip-off apps in the store, though, I went ahead and resubmitted it. Voila. 

This app is very simple:

It gives you the site news, and you can click on articles to view a mobile version of it, including the comments. It's a tad quirky, but it's eons better than what the people who wanted to monetize my content without asking me did, so there you go. Oh, and it has a live tile. So if you wanted an app to keep up with WPH happenings, feel free to grab this in the Windows Phone Store.

It's a very early version, and I'm open to suggestions. Hope you like it! Also, if you like WPH, give it a 5-star, pretty please? Ratings have absolutely no value, but it would keep me motivated ;)

Sat, 09 Mar 2013 07:43:42 -0500
<![CDATA[Introducing WPH EmailKey, DoubleAt for Windows Phone 7]]>

New release today ;) As requested by a couple of people on Twitter, here's WPH EmailKey.

This application is based off a popular iOS homebrew application by the name of "DoubleAt", which basically allows the user to tap the @ button twice to have the email address inserted.

This is actually really useful, if you think about it, as many things require you to type in your email address, such as login forms, etc. 

That's where EmailKey comes in. It's simple. Type on your email address and press Set To @. Once done, the application will add your email address as an alternate mapping for the @ button. That means when you hold down @ on your keyboard, your email address will be a suggestion. It's simple and won't affect anything. You can also easily disable it, too.

I also took the liberty of implementing such functionality into WPH Tweaks, which now allows you to customize any button on your keyboard, not just @, and add any number of suggestions, to the limit of the keyboard software. Note this is a bit of a hack, so there are some issues, such as having to tap to the left of the suggestion if it's long.

Watch the video above for a simple demonstration of both EmailKey and the WPH Tweaks changes. Download the app here, or find the source on GitHub. Requires root privileges.

Wed, 06 Mar 2013 14:04:35 -0500