Skip to main content


Showing posts from 2017

What's Your Emergency? The Motivation Behind My Latest Pluralsight Course

Ionic and Electron for a Desktop AppBy now you’ve probably heard some of the excitement about Ionic, a tremendous framework for rapidly building high quality cross platform mobile apps. But using Ionic for building desktop apps? Maybe you think I’m joking, but I’m not. In this post I'm going to describe a modest desktop app using the Ionic Framework.

You may be asking yourself why bother using a mobile framework to build a desktop app? There are a few reasons that come to mind:
Perhaps you need an app that runs equally well on a mobile device, maybe an iPad or Android tablet, and you want the experience to match that of the desktop version.You and your users appreciate the simpler, cleaner experience that many mobile apps offer, and you want to duplicate that experience on the desktop.Or it could be that your development budget is tight, and you want to keep things as lean as possible.In my case, it’s a combination of all three. Whatever your motivations, starting with the Ionic Fra…

Ionic + Electron: Sneak Peek at my Upcoming Pluralsight Course

Does it feel as though everyone is doing web development these days? Where I work, every new app is a web app. But sometimes, an application has to run on the desktop and interact with the host OS. In such cases, it seems foolish to ignore all of those web development skills. Now, you don’t have to.

In this course, we are going use our web development skills: HTML, JavaScript, and TypeScript, to build a cross-platform desktop app that will run on both MacOS and Windows.
Some of the major topics that we will cover include:  Building the UI with the Ionic Framework, showcasing that Ionic isn’t just about mobile development anymore.Using Electron to host the Ionic code inside of a native application shell.Interacting with the desktop OS to display icons and menus, loading files, and responding to user menu selections.Building installers appropriate for either platform, and creating public releases from those installers.Implementing auto-updates, so that the users only have to install the…

Archive Your Git Repo

Every few weeks or so, I find myself needing to archive my git repo. Usually it's to send code to someone who has no reason to access the repo directly. They just need a snapshot of the code, with no history information, because they won't be contributing to it.

I also have to provide a snapshot of my code for every module in my Pluralsight courses, so being able to archive my git repo into a zip file is very handy.

For some reason, I can never remember how to do this, and find myself looking it up repeatedly. So I've finally decided to write about it here, in hopes that it will help someone other than just me.

If you want to backup a git repo, completely detaching it from git, use one of the following variations of the git archive command:

Zip File:
git archive --format zip --output /full/path/to/ master
git archive master | tar -x -C /somewhere/else
Tar / Bzip
git archive master | bzip2 >source-tree.tar.bz2
Note that the archive will not contain the .gi…

Windows 10/Server 2016 100% Disk on BootCamp and Parallels!

I've been wrestling with Windows on my 2014 Mac Mini for more than two years. Soon after I bought the Mac, I made a 200GB BootCamp partition and installed Windows 7. I also bought Parallels 10 Desktop and pointed it at the BootCamp partition. It was great. I had a convenient VM when I needed something quick. I also had BootCamp when I needed native performance. Not long after that, I upgraded it to 8.1. Then sometime later, Windows 10.

I don't remember exactly when it happened, but one day I fired up Parallels and my entire system ground to a halt. Shutting down the virtual machine caused everything to go back to normal, so I figured the problem was with Parallels. So I upgraded it. Same problem. I made sure Windows was up-to-date, thinking that maybe the Windows Update service was going nuts. Nothing changed. Whenever Windows was running in Parallels, the Task Manager showed the disk activity pegged at 100%.

I tried all sorts of online solutions, but none worked. On a whim, I…

Ionic vs. Bootstrap - for a Web App

Ionic 1.x vs Bootstrap 3.x for a Web AppI was recently asked at work to come up with a comparison between Ionic Framework and a more traditional Angular/Bootstrap combination to create a web app. The application will primarily be used in a desktop web browser (probably Chrome or IE). There are also some use cases where it will be accessed from Safari on an iPad. However, this is purely a web; there are no plans to install the app onto the iPad as a hybrid app. Thus, recommending Ionic to build the UI hadn't occurred to me until the request was made.

This is even more surprising in that I recently published a Pluralsight course on Ionic Framework 1. It should have been the first thing that crossed my mind.
One constraint is that currently only Angular 1.x and Bootstrap 3 are authorized web technologies. Ionic 1.3 was recently approved, but not Ionic 2, Angular 2, or TypeScript yet.
Given those constraints, herein is my attempt at coming up with reasons to use (or not to use) Ionic…

Ring Video Doorbell Pro - Review

Over the past few months I have been toying with the idea of upgrading my home security system. It isn't that I live in a high crime area or anything like that. We tend to get the occasional prankster youth who thinks it's funny to leave unwanted items on the front porch. Around the holidays things get a bit worse, with Amazon boxes being stolen in broad daylight. Most home security systems would do anything to prevent those types of things.

Then two unrelated things happened. Ring came out with the Ring Video Doorbell Pro, which they advertised as more reliable and more feature-packed. Shortly thereafter my doorbell died; not the entire mechanism - just the button. So off I went to Amazon and ordered one. The reviews were overwhelmingly positive, though some of the early adopters had issues with firmware. Most people said that when they did run into problems, Ring's customer service seemed ready and eager to solve the problem. I decided to give it a shot.
It took longer …