Running Windows Phone 8 emulator in the Windows 8 virtual machine

Yes! It’s possible!

I am so glad to find out that it is possible to run the Windows Phone 8 emulator in Parallels. I’ll potentially be able to do Windows Phone 8 development via my mac before being able to do it on my corporate-issue Windows 7 machine!

I haven’t tested it yet but it looks promising.

Shouts out to the Parallels development team for making this happen.


KB Parallels: Running Windows 8 Phone emulator in the Windows 8 virtual machine


How to Format the Labels in a Pie Chart in SSRS 2008 R2

OK this REALLY made me do a facepalm.

I was wresting again with SSRS (Microsoft’s SQL Server Reporting Services), and was just trying to format the numbers in a pie chart. It seemed clear enough: right click on the little numbers in the pie chart and edit the number format. It even displays all the numbers in all the pie slices with the new format.

Easy, right?


That change only affects the first series, with no obvious way of selecting the other series values to format them… since they look like they’re already formatted!

[image here…]

Turns out you have to move the next series to the top position in the “Chart Data” floating tool window, and then you can modify the values. I found the answer here on Stack Overflow:

reporting services – How to Format the Labels in a Pie Chart in SSRS 2008 R2 – Stack Overflow

i had this same issue, if you just use the arrows (little blue arrows at the top of the chart data box) to move the value to the top of the list you can edit the label details/code/expression etc for that series. then just repeat this for all the values you’ve added. i’m sure there’s a better way but this worked so that’s what i did. It seems that when you are editing a label it is only ever editing the item/value at the top of the list, after you’ve done your labels then just shuffle them back into the order you wanted them listed

Once you do this, you see new values, unformatted (or, more accurately, formatted with the default number format).

[image here.]

You can then go through the same process as before and change the number format for those data points in the series.

What a pain.

How to Remove a Workspace from Team Foundation Server 2008 [#TFS #dotnetdev]

Recently I ended up having a workspace conflict in Team Foundation since it paired another user’s name with my machine’s name, and then when I attempted to establish a new workspace, it complained with a message like:

The working folder C:\dev\MyWorkingFolder is already in use by the workspace MYMACHINENAME;otherguy on computer MYMACHINENAME.

So after a fair amount of research, I did the following:

Launch the command line prompt (Start Menu >> type “cmd” into the Search text box, hit Enter).

Navigate to “C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE”, using:

CD "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE"

List the other user’s workspaces using the tf workspaces command:

tf workspaces /owner:otherguy

Find and note the offending workspace (in this case, it’s a workspace with my machine name), and then delete it using the tf workspace command:

tf workspace /delete MYMACHINENAME;YOURDOMAIN\otherguy

That did it for me, your mileage may vary, but hopefully this will prove helpful to someone in the future…

Thanks also to this post.

How to Add a “Send Link” Button to the Bookmarks Bar in Chrome

Really helpful tutorial about how to add a bookmarklet to your Chrome Bookmarks Bar that emails the URL to the current page open in Chrome.

I needed to do this recently so this really came in handy, and it’s super easy to implement.

Basically here are the steps:

  1. Open Chrome (if it’s not already…).
  2. Right-click the Bookmarks bar and select Add Page.
  3. In the Name textbox, input the word Send Link.
  4. In the URL textbox, input the following:
  5. Make sure that the Bookmarks bar folder is selected and click OK.

Source: Google Chrome: Add a Send Link Button to the Bookmarks Bar | a Tech-Recipes Tutorial

Separation Anxiety from Apple Magic Trackpad Eased with Logitech T650

I love my Apple Magic Trackpad, but it can be tricky to get working on a Windows machine, so I decided instead to try out the Logitech T650 Wireless Rechargeable Touchpad. So far so good. The feel is very similar to the Apple trackpad, and the gestures (even under Windows 7) are tweakable so they feel more at home.

For instance, if you go into Logitech Mouse and Keyboard Settings application, you can adjust the two-finger scroll to behave like OS X’s tracking of your finger movement, effectively inverting the scroll (though the settings doesn’t word it that way…).

They can be had at Amazon for under $40, and to have more of a Mac-like experience on a Windows machine, I think it’s worth it.

Adding your iOS App’s Build Number to UIWebView Content [#UIWebView, #iOSDev]

Recently I needed to automate the retrieval of the build number for the app I am currently developing, and instead of including the build number in a standard UI component like a UILabel, I needed to add it dynamically to some HTML that was being used as an About Us view.

The solution was pretty simple, but I thought I’d share it anyway since it was fun.

The first thing to do is edit the HTML, so at the place I needed to insert the build number, I simply added a rudimentary replaceable tag to the body of the HTML:

<p>Build: [BUILD_NUMBER]<p>

The next step was to add a method (though I could have also done this inline) to replace the tag with the build number, using [[[NSBundle mainBundle] infoDictionary] objectForKey:@”CFBundleVersion”] to retrieve the build number:

- (NSString *)insertBuildNumber:(NSString *)htmlContent {
    NSString *buildNumber = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
    htmlContent = [htmlContent stringByReplacingOccurrencesOfString:@"[BUILD_NUMBER]" withString:buildNumber];
    return htmlContent;

Then, we put it all together in the method I was using to load the HTML. In this case I was just using ViewWillAppear.

- (void)viewWillAppear:(BOOL)animated {
    // get the file path
    NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"about_us" ofType:@"html"];
    // get the file content
    NSString* htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil];
    // replace the tag with the build number
    htmlString = [self insertBuildNumber:htmlString];
    NSString *basePath = [[NSBundle mainBundle] bundlePath];
    // load the HTML into the UIWebView
    [self.webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:basePath]];

The final result worked great and now I can show the build number in the app as it gets updated via the Archive process (I have a separate script for that).

iFunBox Recovers PhotoStream Photos [@ifunbox_dev, #PhotoStream, #iOSDev]

After the announcement of iOS 8, I realized that I had an old iPhone 4 lying around, and locked away inside that device were some photos that I had a feeling were on the device, but not in the PhotoStream for the associated iCloud account. So the next question was… how do I get at those photos? Is it even possible?

Then I remembered that a former coworker had recommended a utility called iFunBox (Twitter: @ifunbox_dev) and it seemed like it might be the right tool for the job.

Turns out it worked very well. I was able to use iFunBox (awful name, sorry guys.) to navigate through the file system and find the PhotoStream files and save them!

iBeacon Compatible Apple Devices

I was doing a little research to see if I could use my retired iPhone 4 as an iBeacon test device for either advertising or detecting, and unfortunately the answer is no.

Here is the list of Apple devices that officially support iBeacon, taken from the Apple KB article iOS: Understanding iBeacon (KB: HT6048):

To use iBeacon, you need iOS 7 or later, Bluetooth turned on, and a compatible iOS device:

  • iPhone 4s or later
  • iPad (3rd generation) or later
  • iPad mini or later
  • iPod touch (5th generation) or later

I was a little disappointed, but not really surprised. The iPhone 4 can barely run iOS 7, so it’s usefulness is rapidly declining, especially on the eve of WWDC 2014 (literally!)…

Open PDF Documents Full-Screen in Dropbox for iPad [#dropbox, #ux]

This was actually surprisingly difficult for me to figure out since there is basically no discoverability hints anywhere, and I literally found it by accident.

In the Dropbox app for iPad, if you open a Word or other Office document, there is a little button in the lower right hand corner for viewing the document in full-screen. However, if you open a PDF document, that button is not present. Hmmm…

Additionally, in the iOS 5 version of the Dropbox app, there used to be an arrow button in the navigation bar area to toggle the visibility of the navigation panel on the left. This served as an adequate almost-full-screen view of a PDF, but the (as of March 10, 2014) current version of the Dropbox app removed that functionality.

So for months I was in a bit of a predicament regarding how to view a PDF in the app – double-tap zoomed, but didn’t remove the Panel from the split view controller. But just this weekend, immedately after sending an email to Dropbox lamenting the loss of the full-screen PDF feature, I discovered accidentally how to do it. It’s not immediately obvious how to view it in full screen, but thankfully, it is possible!

Turns out the answer is…. Single Tap. [facepalm!]

Just tap once on a PDF in Dropbox for iPad and your document will be shown in full-screen, and better yet, all of the other UI elements like the navigation bar fade away and you just see the document itself. So, while it was a little more difficult for me to find, once I discovered it I like the improvement in the full-screen view. I’m not sold on single-tap as a full-screen view gesture, but at least it’s there in some fashion.

How to edit an incorrect commit message in Git [#git]

This was a new one on me… and I needed it recently. I accidentally committed a change with a totally nonsensical message since I accidentally copy-and-pasted some code into the message field of my commit, which automatically commenced.

Thankfully, there is a way to update it before you push (that seems to be the key to success here… don’t push it after you do the commit with the bogus message):

version control – How do I edit an incorrect commit message in Git? – Stack Overflow

git commit --amend -m "New commit message"

I’m just relieved that this can be done… and a little surprised — given how grumpy and curmudgeonly Git feels sometimes.