Scott Hanselman

Dealing with Software Religious Arguments and Architectural Zealotry

August 19, '15 Comments [55] Posted in Musings
Sponsored By
4302882942_9e2b92fdeb_b

Warning: Excessive use of Capitals for Emphasis ahead.

A friend of mine left his job to start a medical startup and has been in the middle of a Fight Over The Tech Stack. The current challenge is very bifurcated...very polarized. It's old vs. new, enterprise vs. startup, closed vs. open source, reliable vs. untested. There doesn't seem to be any middle ground.

Sometimes fights like these start with a Zealot.

Zealot: a person who is fanatical and uncompromising in pursuit of their religious, political, or other ideals.

Not all, don't get mad yet, but sometimes. Sometimes a Technical Religious Zealot is on your team - or runs your team - and they can't make objective decisions about a particular piece of technology.

"Don't use Microsoft, it killed my Pappy! Rails? Please, that won't scale. Node? Maybe if you're 17 that'll work! The only real way to write right software is with Technology X."

The language may not be this overt, but the essence is that Software can only be built This Way.

Here's the thing. Lean in. There's lots of ways to build software. Lots of successful ways. In fact, Success is a great metric.

But there's a lot of crappy Java apps, there's a lot of crappy C# apps, and there's lot of crappy Technology X apps.

Enthusiasm for a technology is understandable, especially if you've had previous success. I've worked in C++, Pascal, node.js, Java, and C#, myself. I've had great success with all of them, but I'm currently most excited about .NET and C#. I'm an enthusiast, to be clear. I've also told people who have hired me for projects that .NET wasn't the right tech for their problem.

Be excited about your technical religion, but also not only respect others' technical religion, celebrate their successes and learn from them as they may inform your own architectures. Every religious can learn from others, and the same is true in software.

Beware the Zealots. Software is a place for measurement, for experience, for research, and for thoughtful and enthusiastic discussion. You or the Zealot may ultimately disagree with the team decision but you should disagree and commit. A good Chief Architect can pull all these diverse architectural conversations and business requirements into a reasonable (and likely hybrid) stack that will serve the company for years to come.

Dear Reader, how do you deal with Technology Decisions that turn into Religious Arguments? Sound off in the comments.

SOCIAL: Hey folks, please do follow me on Facebook https://fb.me/scott.hanselman or Twitter! https://twitter.com/shanselman

* Photo "Enthusiasm Rainbow Gel" by Raquel Baranow used under CC BY 2.0


Sponsor: Big thanks to Infragistics for sponsoring the feed this week! Responsive web design on any browser, any platform and any device with Infragistics jQuery/HTML5 Controls.  Get super-charged performance with the world’s fastest HTML5 Grid - Download for free now!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

The Evergreen Web

August 11, '15 Comments [42] Posted in Musings
Sponsored By
 Photo "Road Work" by Grempz used under CC BY 2.0

I visited a website on my company's Intranet today using Microsoft Edge (the new "evergreen" browser in Windows 10*) and got an interesting warning. "This website needs Internet Explorer." At first I was taken aback, but then I got to thinking about it and it made sense.

A warning from Microsoft Edge - This website needs Internet ExplorerLet me back up. I was talking with awesome Web Developer Catt Small today and she mentioned how sometimes Chrome will update silently and break some little piece of the web in order to move the larger web forward. This means that Catt would have to then update her website to support this new feature or tweak the way she uses a feature in order for Random Visitor to have a Good Experience. This is life on the Evergreen Web and we techies are generally cool with it.

In a world where we all write our websites with feature detection and (generally) gracefully degrade when features aren't around, things just work. But at the same time, it does make the Web itself a moving target.

Flash, Silverlight, and Java are on the way out and JavaScript is the web's assembly (it's true and happening, you can't deny it anymore) so we should always be able to emulate what we need with JavaScript's Virtual Machine, even arcade games amazingly frozen in amber by Jason Scott. As the web moves it WILL be important to have browsers that can render yesterday's web as well as tomorrow's.

However, a few important aspects need to be called out in my opinion.

With an Evergreen Web comes Great Responsibility

Firefox, Edge, Chrome are all Evergreen browsers now. They really need to make smart decisions - hopefully as a collective when appropriate - to not Break Everything.

We also need to realize that we will have to leave some folks behind. Some older operating systems won't be able to run the latest browser. Some browsers come with the operating system or phone and don't upgrade often.

If we're gonna do this, we all need to do it

Everyone needs to get on board (*cough*Safari) and move forward.

An Evergreen Web is a kind of privilege

This is an interesting one that Catt and I talked about (podcast coming soon!) Again, not every company has the money, resources, or patience to keep their sites Evergreen. Things will break. Not every non-technical relative will have an Evergreen browser. These may seem like edge cases, but they aren't.

My wife has been in university these last few years and I swear it's like browsing the web in 2003. She's got a collection of browsers, literally, and bookmarked the school's sites that work in specific browsers. I'll find her running IE, Edge, Chrome, and Firefox on her own, and when I ask what's up, I'm told that "this blackboard site only works in Firefox" or "this testing app only works in IE."

This kind of haves-and-have-nots split will continue for the foreseeable future while mission-critical (everything mission critical to someone) apps continue to be used.

Compatibility Modes (however they are implemented) will be important

While your startup or agile team can likely fix little issues that pop up on your websites, that super-old web-based Expense reporting system that your company use DOES WORK in the right browser. It works. It's OK that it works and it should be allowed to work. While I was shaken by the error message I saw above for a moment, I understood it and I was able to get my "nevergreen" copy of IE to open that old-but-functional website quite nicely. I've found myself wishing, on occasion, that my copy of Chrome 44 could just act like Chrome 38 for a site or two.

Additionally, there will be Enterprises that won't (for whatever reason) want to be as Evergreen as we'd like them to be. There concerns are usually around compatibility. For many giant companies, changing stuff means breaking stuff.

* Evergreen browsers are always fresh, always updated. Chrome and Edge are "evergreen" browsers that support the latest Web Technologies and most importantly you shouldn't have to think about version numbers. 

Do you welcome our Evergreen Overlords? Sound off in the comments.

Related Reading

SOCIAL: Hey folks, please do follow me on Facebook https://fb.me/scott.hanselman or Twitter! https://twitter.com/shanselman

* Photo "Road Work" by Grempz used under CC BY 2.0


Sponsor: Big thanks to Infragistics for sponsoring the feed this week! Responsive web design on any browser, any platform and any device with Infragistics jQuery/HTML5 Controls.  Get super-charged performance with the world’s fastest HTML5 Grid - Download for free now!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Microsoft Universal Foldable Keyboard - Dual Bluetooth Pairing and Three Operating Systems

August 9, '15 Comments [11] Posted in Hardware | Reviews
Sponsored By

Microsoft Universal Foldable KeyboardI have a Surface Pro 3, an iPad 2, and an iPhone 6+. I also have a few Android devices for development. Sometimes I'm on a plane and want to do email, or I'm playing a game on my iPad and I've got my iPhone off to the side. You know, various combinations like you do.

For a while I used the Microsoft Universal Mobile Keyboard. (To be clear, NOT the Foldable one...that will show up in a moment) It's universally well-reviewed and with discounts can be found as low as US$58. One of the big pros of the Universal Mobile Keyboard is that the cover separates via magnets from the keyboard and includes a notch to hold your tablet up at an angle.

However, for me it had a few nits. It's about 75% of full-size which is just a little "off" for larger hands. It's also quite large. You can't really put it in an inside jacket pocket, it's definitely a backpack item. It's great, but it's not perfect...so, I tried the:

Universal Foldable Keyboard

Fast forward a year and the Microsoft Universal Foldable Keyboard is out. I preordered it as soon as I saw it in April. I swear if I had a dozen of these in my backpack I could sell them in a day of just sitting in a cafe. Folks always ask about it. It's lighter than most mobile keyboards, the folding is cool, the battery life is months (they say...I've never charged it yet, but it charges with micro-USB so that's trivial), and it supports basically any device.

I was at OSCON using the keyboard and the two things I consistently heard were:

  • Why have I never heard of this?
  • This is from Microsoft and it supports any device?

Seriously, Microsoft needs to do more than just word-of-mouth to advertise cool stuff like this. I realize I'm gushing, but I like the keyboard.

Here's the details. It's about 6 inches by 5 inches. Pictured below next to my Arc Touch Bluetooth Mouse (which also rocks) for size comparison.

The Microsoft Universal Foldable Keyboard

It unfolds, of course, and it's deceptively thin. Here it is pictured next to my Surface Pro 3 keyboard. The material and keys are basically the same. Surprisingly the fold in the middle looks a lot more dramatic than it feels in practice. Notice that the T and N and G and H are wider than they should be? That subtle but significant change makes touch typing very easy, in fact.

The keys are advertised as "full-sized" but you can see in the pic they are likely about 90-95% of full size. So "darn near full-sized" would be a fair statement. They aren't significantly smaller than my Surface that they slowed me down, but it's worth pointing out.

Microsoft Universal Foldable Keyboard - Multiple Bluetooth Pairings Microsoft Universal Foldable Keyboard - OS Button

The killer feature - besides the folding - is that you can pair two devices to it at the same time and switch between them. See the [1] and [2] buttons there? You long-press to switch devices. You can be typing on your Surface or Tablet, then get a text message on your phone, then just long press to reply to it then long press to return to the main device. The keyboard also has an OS button in the upper right corner to manage keyboard mappings, and it remembers them for each paired device.

For example, the Escape Key on iOS is also Home, or a double-press is the iOS task switcher. The Home button is home or the Windows Key depending on your device. There's also a CMD key for Macs as well as the usual Alt/Option key.

Microsoft Universal Foldable Keyboard - Compared to Surface  Microsoft Universal Foldable Keyboard - Home Keys

A only real con of this keyboard is that it does need a flat surface to sit on. It won't work well on your lap. Also, I haven't figured out how to force the FN key to reverse the functionality so there is no easy way to do things like ALT-F4. The default functionality for the top row is for more "Consumer" things like muting the volume and such, not for coders and hotkeys. For many folks that will be a deal-breaker, but for blog posts, emails, and surfing around, it's fine for me. I'm not going to code for hours on it.

I also did an unboxing video the day I got it in the mail, filmed with a potato, so check it out and subscribe to my YouTube.

* My Amazon Affiliate Links buy me tacos and gadgets like these to review. Please use them!

SOCIAL: Hey folks, please do follow me on Facebook https://fb.me/scott.hanselman or Twitter!https://twitter.com/shanselman


Sponsor: Big thanks to Infragistics for sponsoring the feed this week! Responsive web design on any browser, any platform and any device with Infragistics jQuery/HTML5 Controls.  Get super-charged performance with the world’s fastest HTML5 Grid - Download for free now!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Apt-Get for Windows - OneGet and Chocolatey on Windows 10

August 5, '15 Comments [49] Posted in Open Source | Tools | Win10
Sponsored By

In 2013 I asked the questions "Is the Windows user ready for apt-get?" As with nearly all my blog posts, the comments are better than the post itself. ;)

Now it's 2015 and many of us are upgrading to Windows 10. One of the little gems in Windows 10 that no one is talking about (yet) is OneGet. You can read about OneGet architecture here.

Installing applications in Windows 10 from the command line

It's easy (and wrong) to just say that One-Get is Apt-Get for Windows. But OneGet isn't actually a package manager. It's more clever and cooler than that.  It's a package manager manager.

OneGet is a Manager of Package Managers 

Go out to you Windows 10 PowerShell prompt now and type "Get-PackageProvider" and you'll see the package managers you have registered with OneGet today.

C:\> Get-PackageProvider

Name Version
---- -------
Programs 10.0.10240.16384
msu 10.0.10240.16384
msi 10.0.10240.16384
PSModule 1.0.0.0

Usually programs are installed with things like MSIs, for example, so there's a provider for that. You can type "Get-Package" and see the programs AND packages on your machine:

C:\> Get-Package

Name Version
---- -------
123D Design R1.6 1.6.41
Windows Driver Package - Ge... 06/04/2011 8....
Windows Driver Package - Ge... 06/19/2014 8....
Windows Driver Package - FT... 01/27/2014 2....
JRuby 1.7.19 1.7.19
Windows Driver Package - ST... 11/09/2009 3....
EPSON NX410 Series Printer ...
Intel Edison Device USB driver 1.2.1

Since it's PowerShell, you can sort and filter and what-not to your heart's delight.

OneGet isn't Microsoft's Chocolately

Chocolatey is an open source apt-get-like machine-wide package manager that you can use today, even if you don't have Windows 10.

OneGet isn't Microsoft's version of Chocolately. But there is a beta/preview Chocolatey provider that plugs into OneGet so you can use OneGet to get Chocolatey packages and install them.

Other things worth noting, even though OneGet is in the box for Windows 10, you can still run it on Windows 7 and Windows 2008 R2. Plus, OneGet isn't done and it's open source so there's lots of cool possibilities.

Oh, and an important naming point. Just like "Chromium" is the open source browser and "Chrome" is the Google packaged instance of that project, "OneGet" is the open source project and what ships with Windows 10 is just generically "PackageManagement." Just a good reminder of the relationship between open source projects and their shipping counterparts.

Installing VLC using OneGet and Chocolatey on Windows 10

Example time. You've got a new Windows 10 machine and you want to get VLC. You can (and should) totally get it from the Windows Store, but let's get it using Package Management.

Here I need to get the beta Chocotlatey provider first, and once, with "get-packageprovider -name chocolatey." Also, when I install a package for the first time it will prompt to download NuGet as well. I will answer Yes to both.

NOTE: You can also install Chocolatey explicitly with "install-package –provider bootstrap chocolatey"

Now I can just "install-package vlc" and it will get it from the Chocolatey repository.

C:\>  get-packageprovider -name chocolatey

The provider 'chocolatey v2.8.5.130' is not installed.
chocolatey may be manually downloaded from https://oneget.org/ChocolateyPr30.exe and installed.
Would you like PackageManagement to automatically download and install 'chocolatey'?

[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y

Name Version
---- -------
Chocolatey 2.8.5.130

C:\> install-package vlc

The provider 'nuget v2.8.5.127' is not installed.
nuget may be manually downloaded from https://oneget.org/nuget-anycpu-2.8.5.127.exe and installed.
Would you like PackageManagement to automatically download and install 'nuget' now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y

The package(s) come from a package source that is not marked as trusted.
Are you sure you want to install software from 'chocolatey'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y

Name Version Source Summary
---- ------- ------ -------
vlc 2.2.1.20150630 chocolatey VLC Media Player

Boom. Now VLC is installed. It's early days but it's interesting stuff!

You can read about the available OneGet cmdlets at https://github.com/OneGet/oneget/wiki/cmdlets.

For example here I can find the latest version of zoomit.

C:\> find-package -name zoomit

Name Version Source
---- ------- ------
zoomit 4.50 chocolate

Just to be clear, with regards to OneGet and Chocolatey.

  1. It's an unsupported version of Chocolatey provider in a GitHub repo
  2. Folks can download it using OneGet cmdlets and then using the unsupported provider, you can download Chocolatey packages.
  3. Microsoft is working with the community to take ownership of Chocolatey provider.

And again, you can use Chocolatey TODAY on your Windows 7 and up machines as it is.

Managing MSI-installed Programs with OneGet and PackageManagement

OneGet and PackageManagement in Windows 10 lets you manage package managers of all kinds to control what's installed one your machines. For example, I can uninstall an MSI installed program like this. This is just like visiting Add/Remove Programs (ARP) and uninstalling, except I did it from the command line!

C:\> Uninstall-Package join.me.launcher

Name Version
---- -------
join.me.launcher 1.0.368.0

MSI and Chocolately are just the start for OneGet. What if one package management API could also get Python or PHP packages? Windows Store apps?

Donate to help Chocolatey

Last, but definitely not least, it's important to remember that Chocolatey and the Chocolatey Repository of Packages can use your help and sponsorship. Head over to https://chocolatey.org/ and scroll to the bottom and click Donate and you can Paypal or use your Credit Card to help them out.

SOCIAL: Hey folks, please do follow me on Facebook https://fb.me/scott.hanselman or Twitter! https://twitter.com/shanselman


Sponsor: Big thanks to our friends at Infragistics for sponsoring the feed this week! Responsive web design on any browser, any platform and any device with Infragistics jQuery/HTML5 Controls.  Get super-charged performance with the world’s fastest HTML5 Grid -Download for free now!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Getting Started with Windows 10

July 28, '15 Comments [33] Posted in
Sponsored By

I've been making Windows 10 videos at night to help out friends and family, and because it's fun.

NOTE: Please share my videos with your family, friends, and social networks with this easy to remember URL: http://hanselman.com/windows10

#NinjaCatWindows 10 comes out July 29th, and it takes what was familiar about Windows 7 and what was great about Windows 8 and takes it forward. It's nice on a tablet, it's nice on a laptop, and I'm on my desktop with it now. Features like game streaming from an Xbox are amazing. The Office Touch apps look great.

I've just finished a new one where I show what the Start Menu will look like immediately after your upgrade. I'll show some tips you perhaps didn't know about like pinning links to apps to the Start Menu, Task Bar, *and* the Desktop. I'll show you how to pin Control Panel sections to Start as well. You can still add common icons to your Desktop like My PC, but you can also add Downloads, Documents, Music, and More to the Start Menu itself.

Customizing the Start Menu after Upgrading to Windows 10

Detailed Tour of Windows 10 in 8 minutes

A complete tour of the new Windows 10 Control Panel

How to prepare for an upgrade to Windows 10 from Windows 7 or Windows 8

if you have ideas on new videos I can do, let me know in the comments!


Sponsor: Big thanks to our friends at Infragistics for sponsoring the feed this week! Responsive web design on any browser, any platform and any device with Infragistics jQuery/HTML5 Controls.  Get super-charged performance with the world’s fastest HTML5 Grid -Download for free now!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.