Wednesday, October 26, 2016

Has Microsoft finally built an iMac Killer?

Earlier today, Microsoft unveiled a new PC in the Surface line called the Surface Studio PC.  At $2,999 USD, you might think it's a bit pricey for a Windows 10 PC. But, considering the recent hardware wins for Microsoft, this PC promises to be sturdy, performant, and outright beautiful.

The machine, an all-in-one that is scheduled to be released during the holiday season comes backed with  the great hardware and specs that Microsoft has become known for with their Surface line of computers. Those specs include:
  • A sixth generation Intel i5 or i7 processor
  • 8, 16, or 32 GB memory
  • A 1TB or 2TB hard drive
  • A stunning 28-inch 4500x3500 PixelSense LCD monitor
  • 802.11ac wifi and Bluetooth 4.0 connectivity
  • A 5MP front facing camera and a 1080p rear facing camera
  • Dolby 2.1 stereo audio
With this machine, Microsoft seems poised to take on Apple right where they live: in iMac Land. And, honestly, after seeing this machine in action, Apple should be very worried.

To see a full review of the Surface Studio PC from The Verge, check out the video above. I think that once you see what this machine can do and its beauty, you'll be as in love with it as I am.

Did you like this article?  You can tip me via Bitcoin by clicking this link!

Thursday, October 13, 2016

All Roads Lead to The Cloud: Why On-Prim Software Makes Less and Less Sense

With high-speed Internet becoming ubiquitous and web browsers getting better, we're seeing a major shift in the way we purchase and use software.  Only a few years ago, if you wanted a word processor, you'd go to a local computer store, buy a boxed copy of something like WordPerfect or Microsoft Word, go home, and install it. When you wanted the upgrade, you'd have to do the same thing. Not only did this take time, but it was expensive and sometimes required hardware upgrades so that your computer could accommodate the new software (hard drive size, processor requirements, etc).

Today, that process is much different. Now, if you want a word processor, you simply open your web browser and go to a website run by Google, Microsoft, or a few others and subscribe to the software. There's nothing to download and you're always on the newest version immediately when it's released. Best of all, it's cheap.  For example, subscribing to the Microsoft Office online suite, called Microsoft Office 365, costs only $6.99 per month. For that you get access to all of the Office applications through your web browser and the ability to install those applications on either your tablet or PC. You also get a terabyte of online storage so you don't need to worry about taxing your computer or tablets hard drive and your documents are always available to you wherever you happen to be.

Office productivity is only the beginning. As more and more software moves online, it seems there's no limit to what we'll be able to do while on the go. Gone are the days of lugging a heavy laptop around as you moved between locations. Most cloud based software runs perfectly fine in both laptop and mobile browsers and cloud storage means everything seamlessly moves with you. Software in the cloud also means that collaboration is dead simple. No more emailing files around or waiting to see what changes your colleague made to a file you sent them. The cloud often allows you, not only to share in an instant, but to watch the other party edit the file in real time.

With all of the benefits that cloud based software offers, one could logically ask the question 'is on-premises software going away?' and the answer is almost certainly 'yes, for most users'.  It makes little sense for a home or small-office user to use locally installed software with all of the headaches it brings. For most people, it just makes more sense to push as much of their workflow to the cloud as possible. As web browsers get better and Internet gets faster, we can even imagine high-end gaming moving to the cloud instead of sitting on a local machine.

For small businesses, on-prim software makes even less sense.  A small business owner basically has two options when it comes to IT solutions: maintain it themselves or hire someone to do it for them. Both of those solutions add costs to the business that small businesses owners shouldn't have to take. Why should you take time from selling or developing your product just to update your software? That's money lost. Why should you pay someone $2500 a month or more just to babysit your computers and software? That's insane. Why not offload that headache to experts who are there to worry about it for you for a lot less money than you'd spend otherwise?

For large businesses, the cloud makes even more sense. Enterprises IT has a lot of moving parts. Software is in constant flux, keeping things patched is often a toss-up between security and inconvenience, and making sure your data and network are protected is costly. Handing that responsibility to someone like Microsoft or Amazon, or Google can, not only lessen the financial burden, but can offer some important additions to tools that you wouldn't ordinarily have with an on-prim setup. Microsoft Azure, for example, does everything from simple virtual machine hosting to full on big-data integration with artificial intelligence and large scale data analysis. Doing this on-prim could be prohibitive to all but the largest companies but it's achievable to everyone using the cloud.

In short, the cloud is only an option right now. You can still choose to keep everything local if you want and tend to it all yourself. In the future, and I suspect it's going to be the near future, the cloud is going to be a requirement. Companies are positioning their cloud offerings now. I could see a time in the future where Microsoft doesn't even offer a local version of Office, for example. It makes no sense for them to do so. Everything will be in the cloud. Everything will be easily and constantly accessible to everyone who needs it.

There will be challenges. While we've come a long way, there are some very important questions around security and availability that need to be answered before we rid the world of the plague of on-prim software. But we're getting there and we're getting there fast. That might be good and that might bad but it certainly will simply be at some point in the near future.

Are you ready for our cloud based future? It'll be here much sooner than you know. Get ready or get left behind.

Wednesday, October 12, 2016

Windows Nano Server: A Windows Server for the Cloud Generation

With the introduction of Windows Server 2016, Microsoft introduced a new technology called Windows Nano Server that promises to revolutionize the Windows Server landscape for a huge swath of customers and workloads. Gone are the days of memory eating and mostly useless user interfaces, gone are the multiple 4+ gigabyte downloads, the hours of installing and configuring the software  and the constant worry that some deeply buried part of the server would be compromised by the bad guys who want to turn your server into a bloated, slow running, botnet machine.

With Nano Server, Microsoft engineers have taken a hard look at the types of workloads many customers use Windows Server for: cloud applications, and cloud servers and they've obsessively focused on making a product that would offer these customers exactly what they needed and nothing more. While that might sound very limiting, the results are starting to speak for themselves through system up-time, resource requirements, and security incidents:

  1. In one test, Nano Server had to be rebooted only 4 times while Server proper needed 12 reboots.
  2. Nano Server can run on as little as 512MB of memory while Server requires at least 2GB  to run comfortable and a bit more if you're going to push the system at all.
  3. One of the most common security issues has to do with the graphics layer of the software. Nano Server has a remote terminal only and doesn't run a heavy GUI hereby reducing its resource requirements as well as reducing the attack surface that Windows servers often have.
  4. Server is great at virtualization. VM's are first class citizens on Nano Server and Hyper-V is tuned to squeeze out every drop of performance out of them that it can.
Overall, if you're running the right workload, Nano Server could be the perfect solution for your needs. But there are a few gotcha's (time for another list!):

  1. Nano Server only runs 64 bit applications. If you need 32 bit apps, you're going to have to go with Server Core.
  2. Nano Server doesn't have a graphical user  interface. If you're application has a graphical UI, it's probably not going to run on Nano Server.
  3. It is completely remotely managed. You don't walk up to the server, flip on the screen, and log-in anymore. Because Nano Server is for the cloud, you manage it entirely remotely. 
It's surprising how aggressive Microsoft has been with the design of Nano Server but it's a nice surprise. It allows more people with lower end hardware to run Windows servers and extends the life of that older hardware if they are performing specific workloads. Overall, Nano Server is quite a breath of fresh air.

If you want to give Nano Server a try, head on over the Microsoft and download the 180 day trial of Windows Server 2016. From there, you can install Nano Server and start to get your feet wet.

Finally, Microsoft is seeing that, indeed, one size does not fit all when it comes to servers. That's a 'good thing'.

Thursday, October 6, 2016

Xojo: An awesomely easy way to develop iOS and Android apps!

As many of you know, I'm a huge fan of the cross-platform development tool called Xojo. I'm such a fan that I've all but abandoned Java and C# development and use the tool in every project I possibly can.  It's easy, it's fast, and it allows me to become productive from the time I open the IDE without having to write tons of boilerplate code just to get the basic app structure together. Xojo has long been my go-to choice for developing cross-platform apps and it's gotten even better over the last few releases.

Long supporting creating Windows, MacOS, and Linux applications, Xojo recently added the ability to create iOS apps and, at this years Xojo Developers Conference (going on as I write this post) they announced what is perhaps the biggest and most exciting additions to the platform in recent times:


According to the company, sometimes around Q4 2017, developers will be able to use Xojo to develop new Android apps that support Android 4.1 and up. This will make Xojo one of the only developer tools that offers cross-platform development for all desktop platforms and the most popular mobile platforms (oh, they also support Raspberry Pi too!). Sure, you could use HTML5 to do that too but doing so requires you to learn multiple technologies and that requires a lot of time to learn - especially if you're not already a web developer.

Adding Android support to Xojo is a game changer. Just like the addition of iOS to the platform allowed new developers an easy route to develop iPhone applications, the addition of Android support is going to completely blow open Android development.  Now, every developer with an idea will be able to easily create iOS and Android apps. You don't need a complex environment, you don't need over-complicated tools, you don't need to even learn Java.

Lastly, while all of this is exciting, it doesn't come without some concerns. Xojo Inc is a small company with limited resources. They create a huge product that requires deep understanding of multiple platforms. That's a strain on the people creating the product and Xojo is going to have to plan future movement very carefully in order to execute this well. Hopefully, they're not going to try to pull this off with their current staff. They need to bring more developers into the company to support the addition of the new platform and to ease the current strain their existing devs face. Xojo hasn't announced any plans on that front and they are a small company that has to balance new hires against incoming revenue. But they are a pretty forward thinking company and I'm sure they'll figure it out.

All-in-all, this is possibly one of the most exciting announcements to come out of this years development conference. I'll leave coverage of other announcements to others but Android development is a huge addition that I couldn't ignore.

Good job, Xojo Inc. You're showing your customers that our faith in you is not misplaced!

Did you find this article useful? Click here to give me a tip using Bitcoin!

Saturday, July 9, 2016

Oh Snap! Has Ubuntu just developed the Holy Grail of package managers?

How many times have you wanted the latest and greatest update to a piece of Linux software only to find out that it had dependency versions that were out of sync with your system. Your system finally grab the latest update to the software you wanted.
required library version x but the software required library version y. Until now, the only thing you could do is sit it out and wait (and hope) that your operating system vendor would eventually get around to updating the packages you needed so that you could

But Canonical, the company behind the Ubuntu Linux operating system, wants to change that with the introduction of "Snap Packages". Think of Snap packages as a combination of the tarballs of the 1970's and 1980's and modern containers. When you install a Snap package, you not only get the software you want but you get all of the dependencies it requires too - at their proper versions. All this without touching your base system, changing or updating its libraries, or introducing potential instability.

Also, one of the coolest things about Snap packages is that they aren't an Ubuntu-only thing. Any Linux distro can easily provide the snapd daemon and support snappy packages easily. That means that Snap Packages might finally deliver a solid universal package manager that works on any distro. No more creating an RPM for Red Hat systems, a DEB for Debian based systems, etc. With Snap packages, you literally create a single package and it works on any distribution that supports them.

While Snap packages are a great advancement for the Linux ecosystem, it doesn't come without a cost. That cost is your hard disk space. Because Snap packages don't rely on system libraries but come packaged with their own dependencies, it means software installations could potentially be a lot larger. In today's world of 1TB+ hard drives, that might not be such a huge issue but it's something users should be aware of when venturing into this new territory.

In the end, we're still at the beginning of Snap packages and there's still a lot of work to do. For it to become a true universal package manager, we need more distros to adopt it, we need more developers to use it, and we need more users to demand it. It's going to take a while for those things to happen but we'll be in a much better place when they do. We'll have more stable systems, less frustrated developers, and much happier users. All of that makes Linux strong and more united in the end.

To find out more about Snap Packages, you can visit this link. To use them, you must be running Ubuntu 16.04 or later or another distribution that supports them.

Tuesday, June 21, 2016

The Path to Mobile App Developer: How and Why

If you're a small or independent software developer, you're probably not making a lot of money by writing desktop software. Sure, there are the outliers who happen to hit upon a big title that carries them to profitability but, overall, it's amazingly difficult to make money on the desktop. Add to that the fact that just about every major metric used to measure Internet usage says that more and more people are using mobile devices instead of laptops and desktops and you can easily see a trend away from the desktop and towards mobile. Many of us don't go anywhere without our mobile devices and we even feel a sense of loss or unease when we forget them at home or at the office. For better or for worse, we're in a love-affair with our mobile devices and we're constantly tethered to them.

This presents an amazing opportunity for software developers who are willing to invest the time and money to move away from the desktop and start to think about the mobile space. It's an exciting place where, even with over one-million apps in the Apple App Store, still isn't saturated and still presents opportunity for innovation and, most of all, income. But making money on mobile isn't always easy. It's not a platform you can move onto without considerable learning and, sometimes, a considerable investment in hardware. Depending on the platform for which you've chosen to develop, there's not much you can do about the hardware costs. But I'm writing this post to help those interested in moving to mobile development save a little bit of time on the learning side.

Which Platform Should I Choose?

There are basically two mobile platforms in widespread use today: Apple's iOS and Google's Android. Sure, there are others like Blackberry and Windows but their market share is really too small to matter and you're basically wasting your time and effort if you develop from them. There's just no market there anymore.

Out of the remaining two dominant platforms, your choice for which you want to develop comes down to three things: number of users, ease of development, and return on investment. When looking at Android and iOS, you have to ask yourself which platform has enough users who are willing to buy your app to make spending the money on hardware or development time/tools worthwhile.

While both Android and iOS have massive amounts of users, I'd put forth that users, while certainly larger in number, don't pay for software nearly as much as iOS users do and, when they do, simply aren't willing to pay as much. Android users tend to gravitate more towards free apps than iOS users and seem to bristle a bit when asked to pay more than a few bucks for an app. I personally know Android users who've spent an hour looking and trying free apps just to avoid paying $.99 for an app they needed. iOS users tend to be much less shy about shelling out cash for the apps they want and, for that reason, I believe iOS is really the only platform you should focus on if you're a serious mobile developer.

A second thing to consider when looking at Android vs iOS is the time it will take you to develop and test your application. There are literally hundreds of Android devices that can run your application. The majority of them, unless you've done extensive testing and tweaking, are going to either run your app very poorly or it will look like absolute crap on the device. Android is a very fractured platform that boasts everything from $30 devices running ancient versions of the operating system to high end $800 devices that sit on the bleeding edge. This presents a nightmare for indie developers who want to reach as broad of an audience as possible since, even developing just for the high-end, often involves testing on a dozen or more devices all at a costs of several hundred dollars each. Even then, there could be 'gotcha' issues that harm your app and all of that translates into negative ratings on the app store and less exposure of your app to the market.

iOS on the other hand is unified. You only need to develop for two devices: the current iPhone/iPad and the previous iPhone/iPad. By the time you're three generations of device out, the market becomes so small that it's insignificant. This, of course, not only simplifies your development but also greatly reduces your overall costs.

So, for all the reasons listed above, my strong advice for a developer starting out in mobile is to ignore Android and focus entirely on iOS. It's where the money is and it's where you should focus your entire effort.

OK, I'll do iOS. Now What?

Deciding to develop for iOS is an easy decision. Actually developing for the platform requires a bit more thought. Primarily, you're going to face three major hurdles when you're getting started: hardware, learning the platform, learning the development tools. Let's tackle each of these independently.

1. Hardware

If you're going to develop for iOS or MacOS, you're going to have to use Apple hardware. That means the Mac and the device for which you're developing. Apple hardware can be rather expensive with a decent Macbook Pro costing at least $2300 and, with often approaching or exceeding $3000. For an indie developer, this can be a significant hurdle to getting started. If you're used to paying $800 for a Windows or Linux development machine, handing over that much money can be a tough decision to make. Nevertheless, it's one you're going to have to make if you want to get into mobile development on iOS.

Thankfully, there are a few options available that might help you save some money. The most common route new developers take is to buy used hardware either privately or on eBay. While this can be a bit risky it often gives you the best bang for your buck if you're careful and do some due diligence before handing over your cash.

Next, you could consider renting a Mac from one of your local 'rent to own' shops. This will often provide you with recent hardware for about $35-$45 a week. This isn't the best option but, depending on your project and how long it will take to finish and test, it could offer you some cost savings over buying new.

Lastly, you could rent  a 'Mac in the Cloud'. This service is offered by several providers and usually costs between $59 and $69 a month for a basic Mac configured with your development tools. You access it over the Internet using a program like RDP or VNC.

Which should you choose? Honestly, if you're not a full-time Mac user but just trialing iOS development, I'd strongly suggest you look at the last option. It gives you the chance to develop a real project and sell it without the commitment that comes with buying a $3,000 piece of hardware every few years.

2. Learning the platform

Each platform for which you develop does things its own way. iOS is no different. Apple has created a unique and often confusing set of application programming interfaces (API) that you will have to learn if you want to develop cool software for the platform. If you've developed software for other platforms, even desktop ones, this won't present too difficult of a challenge for you but it does present a learning curve nevertheless. While you could develop software without delving too deeply into the API's, you're not going to develop anything amazing and it definitely pays to learn to do things "The Apple Way".

As you might expect, all of the documentation is available for free online but, if you're a new developer, it might help to get a book to help you get started. This is the one I currently recommend. You should note that it is specific to iOS 9 and, as of this writing, Apple has announced iOS 10. This book won't cover the new features of iOS 10 but it will still give you a great grounding on iOS development that will allow you to easily pick up the changes in the new system.

Spend some time working through the example code and applications. Don't just cut and paste but really learn the platform. It'll seem tedious and useless at times but it will pay off in the quality of the applications you develop.

3. Learning the tools

Lastly, we come to what some new developers consider the most challenging part of iOS development: learning the tools. Apple provides a development environment for free to developers called XCode. XCode is technically the only tool you need to develop your applications. It provides a way to do everything from writing your code, testing it in an emulator, cryptographically signing it, and even submitting it to Apple for review.  It's a "decent" tool but requires you to learn either Swift or Objective-C.  I actually recommend something slightly different for new developers: Xojo.

Xojo is a cross-platform development environment and language that can be used to develop web, desktop, and iOS applications. It's language is simple to learn and it's syntax is similar to Java or C#. Using Xojo, you can easily develop iOS apps that are native to the platform and are indistinguishable from apps designed in Swift or Objective-C. Best of all, it doesn't require you to learn Swift or Objective-C and is easier to learn than either of them.

Using Xojo will sill require XCode so that means you will still need a Mac. It also will add to your overall costs as it will cost you $299 a year. In my opinion, it's a fee well worth paying so that you can get your apps out quickly and with few bugs.

Last but not least, you're going to need an Apple Developer account. Basically, the developer account allows you to publish your apps to the App Store and provides you with additional testing tools that help make your apps as bug-free as possible. It also gives you a code-signing certificate that you'll need in order to sign your applications. You cannot publish to the App Store if your app is not singed. That means you don't have a choice but to sign up for a developer accounts. It's $99 a year and you buy it directly from Apple.

That's it! Once you've gotten everything set up and you've take the time to learn a little about how to develop apps properly, you're ready to start designing and coding! Not everyone will make the next million-dollar app but you just might. One thing I can tell you is that the iOS platform currently offers the best opportunity for developers to make money and, even if your app doesn't make a million, you could end up making a comfortable living from it.

This article isn't intended to cover every nuance of developing for iOS and you'll no doubt learn a lot as you go through the process. Remember that there are vibrant, passionate, communities out there willing and ready to help you with almost any problem. Take advantage of them and get involved.

Now, your time has come. Get ready and go get started. Your mobile dev future awaits!


Friday, May 6, 2016

You are not a victim of Microsoft or Google. You choose your enslavement!

Over the last few years, I've gotten a steady stream of messages from people complaining about how Google and Microsoft spies on them and asking me what, if anything they can do to stop it. Many of these people have gone through extraordinary steps to prevent such spying including paying for VPN subscriptions, using Tor, and even not using services from these companies from their home computer. But each and every one of them are missing a very important and critical point that I hope to make clear to you today:


Furthermore, these companies are not as the narrative goes, 'enslaving humanity and stealing our privacy'. YOU ARE CHOOSING TO BE ENSLAVED AND TO GIVE AWAY YOUR PRIVACY. Yes, you read that right: nobody is 'stealing' anything from you; you are giving it away for a little bit of convenience. You are no more being stolen from than if you asked me to check your mail while you were out of town and I said 'sure, but it will costs you $5.00 a day'. Am I stealing your money? Of course not. It's a voluntary relationship that you are entering; one that you can also end at any time you want.

Both Microsoft and Google depend on the fact that most people, including myself, are lazy. We don't like to jump through hoops just to get things done. We like things streamlined, fast, convenient, and easy. We don't want to have to think. We want stuff to 'just work' and 'be magic'. In fact, I think these companies have gone a step further and deliberately tried to dumb us down about our technology so they have the opportunity to step in and be our saviors, in exchange for our privacy of course. Unfortunately, for most people, it's a deal they are all too willing to strike. Most of us don't value our privacy. We don't that when a government agency or a company reads our email we aren't just compromising our security and privacy, we are also compromising the other persons privacy and security. You might have the right to not care about your privacy and to give it away for a little bit of convenience, but who gives anyone the right to give away my privacy for their convenience.

So now that we've explained how we are willingly enslaving ourselves, the big question needs to be answered.


It's one thing to accept that we're complicit in our own enslavement but it's another to discuss what it's going to take to end that enslavement. Thankfully, in this case, the answer is pretty simple:  


For just about every single Google or Microsoft service or product that you use at home or in the office there is a privacy respecting alternative out there. These alternatives might not be as flashy as Windows or as easy to use as Google Docs or Office 365 or as no-setup required as Skype but they are out there and all you have to do to end your enslavement is to take the time to use them.  It's going to take a bit of time and it's going to take a bit of effort. You might even have to learn something new or deepen your knowledge of something you already know but the only thing keeping you from freedom is you.  

So what next? Start by taking baby steps. If you're using Gmail, start to look for privacy respecting alternatives. look at Proton Mail or, better still, learn how to run your own mail server and take total control of your email. If you're using Skype just to chit-chat with family, seriously look at programs like Jitsi and encourage your family to move to it too. Using Google Docs or Office 365? What's so horrible about emailing a document back and forth between you and your coworker? Sure, it's less convenient but it can be much more private. Use Windows or Mac? Download and take a serious look at Linux. Step by step you can take your privacy back from these companies. Revoke the deal you made with them and set yourself free. Stop the excuses and, like Nike says, just do it!

The bottom line is that you aren't going to free yourself in a day. You didn't get in this web of surveillance and spying overnight and you're not going to get out of it right away. But every step you take is a step that is closer to freedom. More importantly, it's taking data out of the hands of someone you shouldn't trust and putting it where it belongs: under your control.

Lastly, I know some of you reading this will think this article is harsh. It is. It's deliberately so. I'm tired of hearing people complain about how they wish they had privacy like it's some sort of forgone conclusion that it's gone and there's nothing they can do about it. Microsoft isn't going to empower you. Google isn't going to empower you. These and companies like them have a good, solid, financial reason to keep you asleep in convenience. But it's time you wake up. Because only then can you realize the truth: you can empower yourself. And that, my friend, is true empowerment that no company can ever take away.

Sunday, March 13, 2016

I'm coming back home after months in the wild...

Well, it was nice while it lasted but the Facebook experiment has ultimately failed. I'm coming back to as my formal blogging home and I'm never going to leave again. I've seen how the other side lives and, believe me, it's not in a good neighborhood. Windows are broken, streets are in disrepair, and life is hard. So, while I've given Facebook blogging a fair try, I give up on it.

Why blogging on Facebook isn't working for me

A while back, a very well known blogger said that Facebook was the place to be if you want to create and share content. That might work for someone with a name and a following but it certainly doesn't work for a small time guy like me, where Facebooks algorithms pretty much hide my posts from everyone except a very small group of friends. Many times, I'll post and even people I talk with on a regular basis don't know that I've done so. This, of course, isn't necesairly a bad thing as it's Facebook's attempt to provide their users with quality, relevant, content. But it means that my posts are seen by only a very small amount of people.

Don't get me wrong, I don't get billions of hits here either. But the dynamic is different and Blogger (the backend service that runs this blog) provides me with much more information about the people who visit this blog than Facebook does. For me, having access to that information is valuable and it's something I can't get used to not having.

More importantly, visitors to this blog are more relevant than people who read my Facebook blog. Why? Because they had to make an effort to come here. Many of them didn't just see a link shared on my timeline and clicked it. To me, intention is important and this space provides that.

Anyway, I'm rambling so I'll end this post now. Mostly, I just wanted you guys to know I've moved back home and I think I'll stay here for a while. The neighborhood is better and the people seem to be a lot friendler.