Studio711.com – Ben Martens

Geek

We Shipped!

I’ve been at Microsoft for over seven years working on various iterations of a common idea. Over the years, our product direction has been tweaked and adjusted quite a few times in big and small ways. I don’t think anybody could have seen this result back then. But that’s part of what makes this milestone so great!

So what did we end up shipping? It’s officially called Microsoft Power Query for Excel and we’re part of the Power BI for Office 365 package. You can find our team blog at http://blogs.msdn.com/b/dataexplorer/. There’s plenty of news coverage too.

This product is an add in for Excel, and in a nutshell we make it super easy to connect to data whether it’s data you already know about or data that you need to search for. You can pull data from SQL, Azure, DB2, MySQL, PostgreSQL, Terradata, Oracle, Sharepoint, Hadoop, Active Directory, websites, Facebook and many more. Don’t know where to find your data? Open up the search pane and find it! Once you’ve identified your data source, you can easily transform it, clean it up, and/or merge it with other data even if the data sources are huge. You’re working with a preview of the data and building up a script in the background as you make changes. Once you’re done, you can hit Refresh and we go back out to each of those sources, run the transformations again, and give you the final result with fresh data!

There’s no rest for our team though. Stay tuned for more exciting things! (Assuming you find data exciting… and who doesn’t?!)

Bitcoin

You may have heard about a new currency called Bitcoin. Taken on the surface, it’s just another way to transfer money between individuals except that this one isn’t controlled by any government. It’s as secure as cash (or probably more secure since it can’t be counterfeited) and while it’s not quite as anonymous as cash, it’s much more anonymous than credit cards or checks. Like most other currencies, the value is set by what people think it’s worth. One of the most popular Bitcoin Exchanges is called MtGox and it says that right now one Bitcoin is worth $120 USD. Bitcoins are almost infinitely dividable so you just pay for stuff in portions of a Bitcoin. More and more retailers are starting to accept Bitcoin as a direct payment option or you can just use it as an investment strategy and a way to transmit money between like-minded people. You can never actually hold one in your hand. It’s all handled digitally.

From the geeky math side, it is even more interesting. The project was launched in 2009 by someone who still remains anonymous. Bitcoins are found by solving an unpredictable cryptographic problem and the whole system is configured to only dole out a specific number of Bitcoins every year. There will only ever be 21 million Bitcoins and they get increasingly hard to find. These “miners” who find Bitcoins are also helping to cryptographically validate every Bitcoin transaction.

I haven’t listened to much of what the general media says about Bitcoin but I’ve heard random snippets trying to link it to terrorism, drugs and clubbing baby seals. That’s nonsense. What really scares people in charge is that no one is in charge of Bitcoin. Governments can’t print more of it or directly affect it’s value. There are many other crypto-currencies out there, but this is by far the most popular one.

It’s a remarkable system and I’ve only begun to scratch the surface with this post. If you’re interested in learning more, check out Leo Laporte’s interview with Gavin Andresen, the chief scientist at Bitcoin.

Password Strength

Hopefully by now you know that a 20 character password made up of just letters is stronger than a 6 character password that is uses symbols and numbers too. Length plays a key role in the strength of a password. Passphrases are a great way to make long passwords that are easy to remember. There’s a good article on the 1Password blog that made the excellent point that though a simple sentence is very long, it might not be as solid as you think. For example, if your pass phrase is “twinkle twinkle little star”, that’s a pretty obvious string of words to put together. The linked post has some good ideas for mixing up your passphrase so that it’s still easy to remember but much harder to guess. If you want to get truly random, they also mention a method of rolling dice to generate completely phrases with completely random words. Mix that in with a few random characters to avoid a straight dictionary attack and you’ve to a pretty solid password!

However you make your password, please make sure that it’s strong, you change it often, and you don’t use the same password on multiple sites. Or if you only want to remember one really good password, check out a tool like LastPass.

PS. If you haven’t read the comic referenced in the image above, here’s a link to the full strip.

Custom Return Labels

At seemingly random times from seemingly random companies, we’ll get return labels in the mail. It’s usually in conjunction with someone trying to guilt you in to making a donation. Sometimes the labels are decent and sometimes they’re so bad that you wouldn’t even put them on junk mail.

When we were moving to the new house, I found a box that had some blank return labels just waiting to be printed. It seems pretty complicated to get everything spaced out properly, but it’s actually really easy. I’ll explain how to do this with Office 2010 but this feature has been around as long as I can remember so it should be in your version somewhere.

1. Fire up Microsoft Word
2. Click the Mailings tab in the ribbon
3. Click Labels
4. Click Options
5. Choose your Label Vendor (it’s probably Avery) and then choose the product number

From there you just design one of your labels and Word will automatically create a whole sheet full of them with the proper spacing for the blank labels that you purchased. Run it through your printer and you’re done!

If you’ve gotten snail mail from our house, you’ve seen that our labels have a picture of Oskar on them. Go crazy and do whatever you want. Then you can ignore the little guilt trip that comes with using those freebie labels in the mail.

Featured Application

I was perusing the Windows 8 store the other day and noticed that CascadeSkier is one of the featured applications in the sports section! After spending many months in the top five apps of that section and almost a perfect 5 star rating, it’s nice to get picked as one of the featured apps. I’m not in the top five any more as there are a bunch of team-specific soccer apps taking up those spots, but that’s kind of expected since ski season is winding down anyway. Over 1100 people downloaded the Windows 8 version of the app this winter and about a quarter of them purchased the app. The phone version did quite well too in it’s third season and sold over 500 copies. It’s not going to help me retire any sooner, but it’s still the only hobby I have that creates income!

Facebook SDK Changes

I have a little custom C# app on my Windows phone that posts photos to Facebook and my blog at the same time. Today it seemingly randomly stopped working. The login code ended in a page that said “SECURITY WARNING: Please treat the URL above as you would your password and do not share it with anyone.” The app stopped there because it couldn’t find an OAuthToken on the response. This was one of the few times that a search failed me so I thought I’d give back and hopefully help someone else stuck in the same spot. Here’s the fix I ended up with:

  1. Update to version 6.4.0.0 of the Facebook SDK (released today)
  2. Update login code to something like this:

private void LoginToFacebook()
{
    var parameters = new Dictionary<string, object>();
    parameters["client_id"] = _appId;
    parameters["redirect_uri"] = "https://www.facebook.com/connect/login_success.html";
    parameters["response_type"] = "token";
    parameters["display"] = "touch";
    parameters["scope"] = "publish_stream";

    var navigateUrl = _fbClient.GetLoginUrl(parameters);

    FacebookLoginBrowser.Navigate(navigateUrl);
}

private void FacebookLoginBrowser_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
    FacebookOAuthResult oauthResult;
    if (!_fbClient.TryParseOAuthCallbackUrl(e.Uri, out oauthResult))
    {
        return;
    }

    if (oauthResult.IsSuccess)
    {
        App.OAuthAccessToken = oauthResult.AccessToken;
        _fbClient = new FacebookClient(oauthResult.AccessToken);
        _loggedIn = true;
        loginSucceeded();
    }
}

GrillBuddy for Windows Phone

The combination of Tyla being pregnant and me being a geek means that when I’m grilling, I like to make sure I’m grilling meat to the appropriate temperatures. It should be safe but not charred beyond belief. There is a book in our kitchen that has a bunch of temperatures for various meats and another book that says how long it generally takes to cook each food. I’ve now combined all that information into an app for Windows Phone called GrillBuddy. It’s not very fancy or complicated, but that’s the beauty of it. Pick your meat, choose the size of the meat and you’re presented with information about safe temperatures, average cook time, and if any rest time is recommended. Bring on the summer grilling weather!

Facebook Privacy

Even though Facebook has a billion users, there are still new people joining and at least one of the people who joined recently is reading this blog post. So I thought it would be good to do a blog post about my thoughts on privacy and Facebook.

First of all, there are a ton of knobs for controlling your data in Facebook. Allow certain friends to see certain info, keep some things private from everyone, or approve any photo your tagged in. The list goes on and on and the list changes fairly silently in the background. Putting secret stuff on Facebook and trying to control it with their settings is a recipe for disaster. That’s how you get the crazy stories about somebody posting something about their boss and then getting fired because it leaked out.

Here’s an easy way to make sure nothing that you consider private ever leaks out: don’t put anything that you consider private into Facebook.

This starts from the minute you sign up and you are presented with a bunch of data fields. What’s your favorite book? Who are your relatives? What’s your birthday? What’s your hometown? Stop and ask yourself why you’re putting any of this data in there. I fill in some fields like my religious views and some favorite things I enjoy, but in general, if you wouldn’t stand on a stump in a park and yell it out, don’t type it in to those fields.

This guideline should continue to apply every day you’re on Facebook. If you wouldn’t show that picture to your boss, a hacker, or your family, don’t put it on Facebook (or anywhere on the Internet for that matter.)

So what is the bar for things that are ok to make public? That’s one that’s different for everyone. I live a fairly public life. I’ve been blogging daily for over 10 years so the thought of posting some photos on Facebook doesn’t bother me. But there are still things that I won’t put on the Internet like photos or text showing that I’m on vacation and won’t be in my home for x days. However, that’s something that lots of other people do and don’t feel weird about. I also don’t “like” very many things because it’s just more data that can be used to profile me. You need to figure out your own line. The nice thing about Facebook is that you can join, enter very little personal data and then kibitz. Nobody says you have to post anything, but if you’re friends with people, you can still see what they are up to.

It’s a great tool, but it can cause you a lot of trouble if you start relying on anything in the privacy settings to keep certain info from certain people. As soon as you put anything in digital form anywhere on a computer, you are opening yourself up to the potential that the world will know about it.

Remote Control For Church

Somehow I’ve turned into the A/V geek at church. We have a modest setup cobbled together from various donations throughout the years. The problem was that our equipment is up in the balcony so I had to go up there at various points in the service to adjust speaker levels and start/stop the DVD recording. That technically worked fine but was annoying to those who sat around me as I would be coming and going from my seat throughout the service. Here’s the plan that I laid out and recently completed:

1) The first step was to rip out all of the connections and start over. The existing setup was a mishmash of tiny improvements from a half dozen people. Our mixer is a Mackie 1202-VLZ so I dug up the manual and read it cover to cover. The device was capable of a lot more than we were using it for. I rewired everything (removing two unneeded components in the process) and let it sit for a few services to make sure everything was working. That was a huge improvement in itself because now I can sit up there with headphones to individually check any microphone without affecting the output and see the output meter display lights bounce so I know that the proper levels are going to our DVD recorder.

2) The amp we were using was very old and had no remote control. I swapped this out for a newer (but still used) amp that was previously powering the theater room at our house. In addition to having a remote, it also has a display that shows the current volume level. Now I’ve figured out that “42” is the magic number for the volume with an average congregation size.

3) With those pieces in place, I purchased an RF (radio frequency) remote. Normal remotes are IR (infrared) and need to be pointed directly at the receiver. RF radiates in all directions from the remote and even goes through walls. The signals are captured by an RF receiver and translated into IR that the various A/V components can understand. I programmed the remote for five basic functions: volume up, volume down, mute, DVD record, and DVD stop. I can’t adjust individual levels on the various mics, but I can make sure that if there’s a particular noisy child, I can crank up the speakers a little more to compensate. If we’re ever doing a nicer recording like when the choir sings we’ll still need someone up in the balcony to check the levels, but for most services, the remote will work fine.

I tried the whole thing out for the first time last week. Tim kept laughing at me because every time I looked over I had a goofy grin on my face. I couldn’t get over the fact after months of off-and-on work, I was now sitting in a church pew with a remote control! I’ll give this a few weeks to make sure I’m happy with the setup and then I’ll start training the ushers how to do it so I can completely remove myself from the equation.

Amazon Instant Video

Tyla and I dropped Netflix streaming when they split the subscription from the discs. We’re among the minority that prefers discs though that won’t be the case forever. In the mean time, I’ve been enjoying the selection of streaming videos available for free on Amazon to anyone with a Prime membership. If you’re a Prime member, make sure you check this out! The quality is great, there’s an app on the Xbox360, and the selection is not too shabby. I’ve been using it to watch Top Gear (the UK version) and a couple other TV series.

I’ve kind of expected to pick Netflix back up when our son starts watching some shows, but Amazon is really making a strong push into kid shows too. Engadget ran a story recently about some exclusive children’s programming.

Discs will be around “forever” but it’s not hard to predict that this streaming thing is going to be the way we receive a lot of our content in the future. The big blockbuster shows and movies aren’t there in enough quantity yet to turn the tide, but we’re getting there.