Wednesday, February 20, 2013

Whiskers v1.2 Submitted to Store

I have submitted version 1.2 of Whiskers to the Windows Phone Store today. It contains the new features and changes I described in an earlier post.


Here's the list of changes:
  • Camera capture support and ability to save the captured photo to an item in Whiskers
  • Lockout timer
  • Landscape orientation support
  • Unlock PIN-pad now contains the period (.) character
  • Updated splash screen
  • Save, Delete, Cancel App Bar buttons re-ordered


new edit photo page
The camera capture support is the big one for this release. When you add or edit an item in Whiskers, you have the option to capture a photo using the camera on your phone and save it with the item.


For this feature I had to use the Camera APIs directly instead of the simple CameraCaptureTask. Thankfully, there's a great sample from MSDN that shows you how to easily use the Camera APIs and get a very functional UI.


The Camera APIs allow you to focus, adjust the flash, and set the resolution. Most phones have additional camera settings, such as Scene settings and special effects, neither of which is available to you when you use the Camera API for Windows Phone 7.x. With Windows Phone 8 you do have some advanced abilities through another API but that isn't an option for me right now since I have one application for both Windows 7 and 8 and I wanted to keep things simple.




image flipped on Nokia 920
I encountered one irksome issue when testing on my Nokia Lumia 920. Photos captured in Portrait orientation are flipped vertically...


Searching the forums, this appears to be a known issue, with a fix, but it may take a long time before this fix becomes public. So to correct this (because it needs some correction ;) was to provide a vertical flip App Bar button to flip the image if its not oriented properly. Thanks to Tim Heurer and his post on "Handling picture orientation in CameraCaptureTask in Windows Phone 7" for some help and some code.











Once you capture an image and save it to your item, a small thumbnail shows up on the item's detail page. Tap on the thumbnail and you will then see it full-screen. Double-tap and it will zoom in to 100% and you can pan left, right, up or down to view the image at 100%.

photo thumbnail
100% zoom
full-screen




lockout settings
The new lockout timer feature is an additional to make Whiskers more convenient to use when you are switching back and forth between Whiskers and another application, like your browser. Until now, each time you open or return to Whiskers (if it was in the background), you would need to enter your PIN to unlock Whiskers. With this new feature now you can control how long Whiskers may stay unlocked until it automatically locks again and requires you to enter your PIN when you open or return to Whiskers.


 There are several options for configuring the lockout time. You can keep it at Always, which is the default and how Whiskers has operated until now. With Always, Whiskers will always lock when you leave Whiskers and either open it again or return to it.



lockout options



The remaining options are 30 seconds, 1 minute, 3 minutes, 5 minutes, 15 minutes, and 30 minutes. Let's say you choose 30 seconds. Now, when you leave or close Whiskers, Whiskers will remain unlocked for another 30 seconds. If you open or return to Whiskers within that 30 seconds, Whisker will open without requiring you to enter your PIN to unlock it. Wait until after 30 seconds and Whiskers will lock and require you to enter your PIN when you open it again or return to it. It's that simple!


I didn't include a Never option with this feature because I felt it would make Whiskers far less secure and would essentially do away with the need for a PIN.




Hopefully this new version will go live within the next week or so, depending on the approval process.

Thursday, February 14, 2013

Visual Studio 2012 No Haz Text Macros :(






It seems that MSFT remove the record/playback text macro feature in Visual Studio 2012...


Even if you didn't know about this feature, I'm sure it would have been useful for you. Let me give you an example of why I like this little feature. Let's say you're doing your thing, writing some code, and need a little assistance from the community. Let's say some kind fellow coder has just the solution and code snippet you need. You cut & paste this new found code and put it into your project. Alas! The cut & pasted code contains dreaded line numbers and now you have to manually remove them. Argh!

Code with Line Numbers

There are many great community members who do this and it would really be a great gesture if they stopped doing this. I won't point out anyone specific, you know who you are ;)


There's a heated discussion about this missing feature here:
http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/d8410838-085b-4647-8c42-e31b669c9f11


Someone has come up with a simple Visual Studio Extension workaround. I've tried it and it works, thank goodness! You can find it here:
http://visualstudiogallery.msdn.microsoft.com/8e2103b6-87cf-4fef-9410-a580c434b602?SRC=VSIDE


Finally, you can vote for this feature back using the link here:
http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2650757-bring-back-macros

Tuesday, February 12, 2013

Kaspersky's Best Windows Phone Security Apps


I came across this post today on the Kaspersky lab blog where Whiskers has been recognized as one of the best Windows Phone Security Apps. Hooray!


The post lists twenty different security apps and Whiskers made #18 on the list...



It was really kewl to come across this today. I don't have huge download numbers for this app but the feedback I get from people is always great.


When I created Whiskers, I figured it would probably not get very many hits because of the name. You see, the name doesn't have "password", or "locker", or "security", or "encryption" in the name and the Windows Phone Store search mechanism has always been less than desirable when it comes to finding apps using plain old search in the Store. Many people looking for a secure password locker for their WP usually don't come across Whiskers.


There is a reason for the odd name...if your phone is lost or stolen and someone gets access to it, my hope is that Whiskers is not the first app they open to see all of your secrets, passwords, etc. With a name that has "password" in it, I'm sure that acts like a big shiny red button for the curious and down-right evil. With name like "Whiskers", who's gonna look at that? :)

Monday, February 11, 2013

Whiskers Enhancement List

I wanted to jot down a few of the enhancements that I'll be working on in the near future for another minor update to Whiskers.

  • Ability to capture an image using device camera and add it as another entry property.
  • Fix bug on PIN unlock screen which does not allow period (.) character, which is allowed on the PIN create screen.
  • Lock timer option. Controls when the unlock screen shows. always, 30 sec., 1 min, 3 min, 5 min, 15 min, 30 min, and never options. Default is 1 min.
  • Support for Landscape orientation.


Not a huge list of items but a few enhancements I will put in to improve Whiskers just a little more.


Thursday, November 15, 2012

Whiskers v1.1

I've updated Whiskers for Windows Phone 7.5 to version 1.1 and have submitted this to the Store. Pending certification, it should be available within five days from now.
 
I've added a few new features and changes with this release. The first being the ability to backup and restore your data so if you upgrade or switch to a new phone, you can transfer your data. I've also added more new icons, so we have about double the amount now. Lastly, just a small tweak with the all items list in the main panorama view. If you have less than ten items, its just a flat list without the groupings. Once you go over ten items in your list, it switches to a grouped items list for quicker access to your items.
 
 
For the backup and restore feature, I did not add the ability to connect to the Cloud or SkyDrive, etc. I wanted to keep Whiskers "safe" and not require access to the Internet. So, in order to accomplish the recovery feature, you simply email, to yourself, an unencrypted but encoded block of text data, that you copy & paste back into the app where you want to restore your data. While doing things this way is fairly simple and albeit rudimentary in some ways, it does have a couple of important limitations.
 
The first limitation is the approximate 16kb message body limit for email messages in Windows Phone 7.x. If the data block you email yourself exceeds this built-in limitation, you can't backup and restore your data. The data block is unencrypted but has been compressed and base64-encoded so it can reside as plain-text in an email message body. If you have 50 or more entries in Whiskers, you may start to hit the upper limit of 16k characters, which is the limit of an email message body in Windows Phone. How can you tell if you've hit this limit is to check if your email contains both tags that delimit the encoded data block.
 
 
In this example, you can see both the ---BEGIN DATA BLOCK--- and --END DATA BLOCK--- tags. This is safe to email to yourself. Then on your new phone or phone you want to restore this data to install Whiskers, then go to the email you sent yourself and copy and paste everything in between the two tags. Don't include the tags! Next, open up Whiskers, go to the Recovery page, then paste in the data block you copied and tap Restore. You should see a message stating your data was restored.
 
 
What's nice about this method of backup and restore is that Whiskers does not need access to the Internet, so your data is safe and secure and leaves you completely in control of it. For Windows 8 and Windows Phone 8 users, I will be creating a new version of Whiskers for those platforms exclusively that will safely store your data in the Cloud using Windows Azure Mobile Services. Since Windows 8 revolves around the usage of Live ID, Whiskers for Windows 8 and Phone 8 will take advantage of this so you don't have to provide extra credentials to Whiskers and you will be able to authorize Whiskers at any time through your Live ID account settings. More on that later in another post...
 
 
Here's a sample of some of the new icons:

 
 
I'm pretty excited to provide this update. I know some users have been asking for it so I know the need is there. In fact, I recently upgraded to Windows Phone 8 so I needed a way to transfer my data.

Tuesday, October 9, 2012

TeaMate v1.1

I've updated TeaMate with the ability to pin a specific timer to your Start screen. So for example, if you typically use a 3 minute timer for green tea, you can pin it to the Start menu and when you tap it, it will automatically start a 3 minute timer.

TeaMate is now version 1.1.

Marketplace link here:
http://bit.ly/u7vEwp

Monday, October 1, 2012

Solving LCD Brightness on my Mac

I own a MacBook Pro 13". It has 16GB of RAM and it's connected to a 27" Thunderbolt display. I use it for everything. Programming, photography, and even run Windows on it in VMWare Fusion and do most of my Windows programming on it as well. The one problem I have with it (well other than the hard-edge of the chassis which I filed down to save my palms from the constant pain) is that depending on where I am or what the ambient light is, the brightness of my screen needs to change so I can view my screen without strain. Now this wouldn't be a big deal if I didn't go through the trouble of color calibrating my displays with an X-Rite colorimeter. See, I need that for photography. I need a color calibrated display when editing photographs so that when I print, my prints match what I see on my display. If my display is too dark, too light, too blue, too magenta, etc. then my prints will look just as weird.

The problem is that the brightness or luminance of the display directly affects the color calibration of my display. If I change the brightness during the day because I'm at a coffee shop and the lights are bright, when I get back to editing photos, I have to make sure my brightness is at the color calibrated level. With my MBP and Thunderbolt display, the OS keeps track of the brightness level via the System Preferences under Display and all I have is this slider control to use and make my best guess of putting it back where it once was. That's not really acceptable to me. I need it to be more precise. I do the bulk of my printing on an Epson 4900 and the cost of refilling all the inks goes into four digits. I can't afford to have prints that don't match my display because my display isn't calibrated properly.

I could carry around my colorimeter with me everywhere I go and pull it out every time I need to reset my brightness but that's not practical at all. It's not a very long or intensive process but for heck's sake, all I need is to put the brightness level back to where it was when I calibrated the display! There should be an easier way. I searched for one in the Mac app store and couldn't find what I was looking for so instead I decided to write an app myself and solve this little dilemma.

So I made Luminance. It's a little icon that sits in the OSX menu bar on the right-hand side where all the other system-tray-like icons sit. Here I can click on it and know exactly what my brightness level is in percentage of full brightness is for all my active displays. I can save the current brightness level and then later recall it. I can also change the brightness level of any active display. This solves my problem. Now I can change my display brightness at any time without fear of being able to return to the saved and calibrated display brightness level.

Now there is one shortcoming of this app. It only works for displays where the OS controls the brightness level. If you have an external display where the display controls the brightness, this app won't be able to record and change the brightness level. I knew there are lots of artists and photographers which use high-end displays from NEC, Lacie, Eizo, etc. and those displays directly control their brightness level via controls on the display itself. This app won't work for those displays.

I haven't published this app in the Mac app store just yet. I'm not sure its worth the $99 Mac Developer license right now. I also may create a dock icon and dock menu for the app for those times when the OS decides that there's no room in the menu bar for my icon and the OS removes my icon. If its in the dock, you can still access the functionality there. I have about 5k+ people who have circled me on Google+ and I put the word out there about this little app to see if there was any interest in it and to my surprise there was no response really.