1 Comments

The “app gap” is something you hear about constantly with Windows Phone, that I start to wonder if it’s just the easy go-to explaination for why Windows Phone is only holding 2% of the market. There are a few other bigger reasons that I can think of, but I have yet to hit a single app that I’ve “needed” other than your typical mom-and-pop shop app.

That is… until now.

There is not a single, generic, media streaming app in the Windows Phone store for Windows 10 Mobile. Sure, you’ve got Plex, but that requires a Plex server and account. There’s also Emby and Subsonic8, but again those require a dedicated Emby or Subsonic server.

I want a generic DNLA media player, and I just can’t seem to find one.

So what does a developer do when he can’t find what he wants? He makes his own.

That’s what I’m going to do – and what’s worse is I know NOTHING about DNLA or media streaming or if it’s even possible. I also haven’t started going down the path of building Universal Windows Apps yet. I’ve only worked on Silverlight/WP8.1 apps.

Since I’m going to be learning how to do this from the ground up, why not blog about it in the mean time? This will be good motivation to keep the blog alive and we’ll hopefully get a decent app out of it in the end.

Whelp… here we go.

0 Comments

I realize that I haven’t posted in a good long while. This isn’t going to be one of those “I’m coming back!” because I don’t want to make empty promises.

However, Microsoft just open-sourced their Windows Live Writer and a group of enthusiasts forked it and create Open Live Writer. I didn’t think it would work with my blog tech since it’s a custom app by Mads Kristensen yet here I am writing this post in Open Live Writer.

There are items that they are still working on so I only expect this app to get better. Certainly beats heading out to multiple websites to write blog posts.

Check it out and let me know how well it works with your blogging software.

0 Comments

There are already a lot of opinions out in the wild about the new Surface Pro 3, but I just picked one up and thought I'd throw together a quick list of awesome and not-so-awesome things about the device.

This list specifically was generated from using the i5/8gb version of the Surface Pro 3 with a fabulous purple type cover.

Perhaps you're on the fence about buying one and these little tidbits will sway you one way or another in whether you purchase one. More opinions about a device are better than none at all.

Behold! Ben.J.Bauer's list of awesome and no-so-awesome things about the Surface Pro 3.

The Awesome

  • The Screen
    Rocking in at 2160x1440 crammed into a 12in screen means easy font readability while browsing the web or reading books through the Kindle app. The colors, by no professional tests at all, are rich and properly fill the visible spectrum (read: my eyes are happy).  

  • The Pen
    You wouldn't believe the fluidity of the pen that comes with the base package. It feels natural and real. The tip glides across the face of the Surface but offers enough resistance to feel like a real pen. Two buttons on the side proved quick access to right click and erase functionality and a top button offers quick launch of OneNote. The thing that impresses me most about the pen is its weight. It feels like a solid, well crafted pen, not some crappy stylist.

  • The Versatility
    It's all over the advertisements for the Surface Pro 3, but it needs to be said here: it really is a replacement for your tablet, laptop, and dare I say, desktop as well (pending you don't need a beefy graphics card). Find yourself with a docking station and you only need this one device. I find myself switching back and forth with ease between tablet-friendly apps like Tweetium, Reddit2Go, Kindle, and FL Studio Groove, to desktop friendly apps like Visual Studio 2013 and Adobe Photoshop.

    It doesn't feel awkward or forced because I let the position of the type keyboard dictate what I'm going to focus on. When it's in front, the Surface is my desktop, when it's wrapped around the back, the Surface is my tablet.

  • The OneNote
    It's such a simple application, but it's also a key part of the experience with this device. I've read other reviews that said OneNote makes the Surface Pro 3, and I don't blame them. Tap the purple button on the pen and the device wakes up with OneNote ready to go. Scribble notes, draw, collaborate, but the device back to sleep. It almost makes note taking "sexy".

The Not-So-Awesome

  • The Windows 8
    You may be thinking that I'm going to launch into the usual diatribe of how the big start screen is annoying, how powering off the device or rebooting makes no sense, how the "charms bar" is the dumbest design ever, how the touch interaction is awesome but the mouse interaction is horrible. But I'm not. That's not what I hate about Windows 8.

    What I hate about Windows 8 is that, out of the box, it works-ish. That's right, it works to the point that it functions but not quite but almost. Did the device boot up? Yes! Did it allow me to login and sync with my account settings? Yes! Did everything work flawlessly? ... No.

    The drivers that came on the device weren't the latest and then Windows Update hosed the install so I had to manually download and install the drivers from their .infs. The network driver wouldn't recover properly from a sleep state, the pen didn't quite work when it lost its Bluetooth connection, and installing Hyper-V for my local Windows Phone images completely hosed the sleep state which I then uninstalled because having to cold boot a "tablet" is ridiculous.

    Every time I re-install Windows 8 on any device I'm reminded that I have to be a power user to get it back to the state of "working" as opposed to "work-ish".

  • The Weight
    You shouldn't really expect a tablet/laptop replacement to be the weight of a tablet only, but I'm demanding and I expected it to be a little lighter. It's a very solid build of a machine but it's no spring chicken when it comes to its heft. Compare it to the Apple MacBook Air all you want, but Air doesn't tout itself as a tablet.

  • The Heat
    When you throw an i5 (or any Intel "i" processor) into a small form factor you have to be ready to deal with the heat that it generates. The Surface Pro 3 is no exception. The fan does its best to keep the device cool when you're running graphic intensive applications, but the device can get to the "uh oh, is this ok?" state. It's not going to burn you, but it will make you question how long you should be running that application continuously for.

There you have it. My Awesomes and Not-So-Awesomes of the Surface Pro 3. If I had to make a blanket recommendation I would say that if you're in the market for a new tablet or a new laptop then you should really consider this device. It's a work and play machine that I now take with me everywhere.

Have any other Awesomes or No-So-Awesomes that you think should be in this list? Leave a comment below and let me know. 

0 Comments

I love deal-a-day sites. It gives me a quick break from the day to see some ridiculous deal on a ridiculous item that I don't need yet feel the need to buy.

Probably the biggest and well known deal-a-day site is woot.com. Although, to be fair, since they were bought out by Amazon, they're more of a one-hundred-deals-per-day-but-sometimes-a-week-or-until-sold-out site.

Either way, checking the daily deals is my thing and figured that since woot just released a beta API, I'd take a crack and creating a Windows Phone app to feed my daily deal-a-day fix satisfied. It's a no-frills, no-ads, give-it-to-you-straight kind of app.

Announcing: Wootinator v1.0.0.0

This version simply lists the daily deals from each of the main woot sub-sites (home, wine, kids, tools, etc), shows you details on the product, and gives you the option to buy.

It's not fancy by any means, but it works and works for what I want.

In the near future I plan to add support for push notifications for woot-offs and live tile support.

Give it a download, let me know what you think.

3 Comments
            A friend of mine recently tweeted a list of 10 "great" C# developer tips. I put purposely put the word great in quotes because, while there are some useful tips presented in this post, there is one that gets under my skin whenever anyone mentions it:
   
    The dreaded Tuple.
   
The Tuple was first introduced in .Net 4.0 and was meant to be a quick helper/replacement to creating very light-weight POCO classes (for those of you who hate acronyms, POCO stands for "Plain Old C# Object").
   
Say you have a method that needs to return an object with 2 string properties and 1 int property. You would create an object like this:
                
        public class Employee
        {
            public string FirstName { get; set; }
            public string LastName { get; set; }
            public int YearsEmployed { get; set; }
        }
       
Then your method signature would look like:
    
        public Employee GetEmployee(int employeeId) { ... }
       
As an answer to creating all of these little classes everywhere, the Tuple was created. Instead of creating tens to hundreds of POCO classes for your application, you could simply have a method signature like this:
    
        public Tuple<string, string, int> GetEmployee(int employeeId) { ... }
   
Awesome, right?!
   
NO. NEVER!
   
Here are the top 3 reasons I HATE Tuples and you should too:

1. It promotes laziness.

The only reason you are using the Tuple is because you're lazy. You don't want to have to right click -> Add... -> Class... give it a name, type in your property names, reference it in your other projects, properly create an n-tier architecture, or, god forbid, think about IOC or DI (inversion of control and dependency injection for you initialism haters). Explicit coding be damned, you're better then having to do that. Laziness is good, if the output of it is faster or better... but in this case it's not either... leading me to:

2. It is a pain for consumers of your code.

Pop quiz: Given the following property in this class definition, tell me what the 3 items of the tuple represent.

public class Dog   
{
    public Tuple<string, string, string> Owner { get; set; }
}

I'll give you a minute... go ahead... ... got your answer?
    
If you said, "First Name", "Last Name", "Address" - you're wrong. I meant for it to be "Last Name", "First Name", "Eye Color". How could you have possibly known that? If you start using the Dog class with your assumption, but all the code I've written is on my intent, then we have a horrible data conflict. By saving yourself 30 seconds in not creating an explicit class, you have wasted at least 2 minutes of ever other developers' time. Which leads me to my last point...

3. You have to over document for it to be useful

Fine, you don't want to listen to me and you still want to use the Tuple. Hopefully you are documenting your code given your horrible choice so that when I, as a consumer of your code, come along and see Tuple<string, string>, I at least see some comments like:
       
///<summary>
///An owner where the Tuple has Item1: First Name and Item2: Last Name
///</summary>
    
However, I am a big fan of self-documenting code because it saves me time. There is no reason to add a comment like this:   
       
///<summary>
/// The first name
///</summary>
public string FirstName { get; set; }

But with your decision to use the Tuple, you now have to document EVERYTHING in order for it to make sense. Have you really saved yourself any time?   

Where are Tuples helpful?

Tuples are really helpful in prototype code. Sometimes you just need a quick way to represent related data in a code base you know you're not going to ship anywhere. Tuple it up wherever you want, just make sure that when it comes to actually writing the code, you get rid of them.
    
Tuples are also helpful in locally scoped code. If inside of a single method you want to use a Tuple to load up some data from a file before shoving it into a different return object, by all means. If I can see the local definition in my code window and its assignments, then I'm not lost. 
    
I'd love to hear what you think on the topic. Feel free to leave a comment here or on my twitter account.