2048 2048 2048 2048 – “The Windows PATH Can Be a Source of 2 Tons of Fun”

tl;dr Keep your Windows 7 PATH under 2048 characters and you’ll be good – don’t and you won’t.  In related news, if you already have a lot of dev tools installed on your PC, look at your path length first if it all gets pear shaped after your VS install…

Now the non-tldr…

I recently decided to give Visual Studio 2015 a spin… Having been working a lot with Ionic (Cordova) apps lately, I was interested to see what Microsoft was bringing to the party on that front (See Here and Here)…

The installation seemingly was going smooth enough, but at the end I was greeted with a lot of yellow exclamation marks – “man, that’s no good!”

Naturally, I start reading into the borked install components, one of which is Nuget… I see a lot of people that appear to have been in the same boat as me with previous RC installs… Now, I was installing the official final MSDN ISO release, but just figured it was in the realm of possibility that some of the issues had been carried over…  So I start following some of the processes that worked for those who’d traveled this path before me…

All of which I concluded without positive or desired results…

In addition to the messed up VS install, I began noticing a lot of other issues with my PC that didn’t exist before the attempted install..  One of the most troubling ones was that none of my environmental variables seemed to properly work anymore – %windir% resulted in a “Windows cannot find”, error as did most every other variable that I tried…

Figuring something surely must be wrong with my path, I start looking there – but nothing jumps out at me and it appears valid… Interestingly enough, from a cmd prompt %path% resulted in a very small substring of my actual PATH value – “definitely sounding like a PATH issue”, I continue to think..

But not knowing what I was looking for, I keep chasing the “VS2015 broke me” assumption via Google… Which keeps me coming up empty handed – after multiple uninstalls and reinstalls.. Keeping in mind that each install/uninstall takes about 2+hr on my quad 3Ghz/16gb dev machine – so not exactly a quick process, nor a resource light one (read: “dev machine very slow”)

After many wasted hours and not being able to shake the feeling that it had more to do with changes made to my PATH during the install more than any other system changes made, I decide to search to see if there is a limit to the PATH length (and if it’s possible to exceed this limit, if such a thing does exist)… It wasn’t until I entered in “Windows 7 path variable length” into the search that I came across this post, which answered everything…

2048 it is…  A number that I probably won’t forget for a long time…  2048….

Now, of course it would have been nice if the VS installer would have warned me of this… It would have been nice if any of the errors that made it into the installer error logs would have even so much as hinted at this… But they didn’t… but in all fairness, I am betting that MS aren’t the only or biggest offenders on this front… Though I do think that if your installer requires PATH updates and then makes them automatically for me, it should probably also ensure that it’s operating within the limits of what’s allowed by the OS… This is especially true when the company behind the installer is also the company behind the 2048 char constraint in place on the OS 😉

-Matt

Tab Dump – 05/03/2015

Tab Dump

It’s been a while since I’ve done one of these and the tab count in my always-running instance of Chrome is showing it…

As you will see, I’ve been playing a bit lately – or at least starting to play, though I never am able to find the time to finish 😛

Learning a little about Polymer and Material Design: https://www.polymer-project.org/0.5/docs/elements/
Wanted to participate, but so far buying a house, traveling for work and life is standing in the way: http://blog.ionic.io/airpair-writing-competition/
I thought this was interesting as I was previously unaware: http://superpowered.com/androidaudiopathlatency/#axzz3XVEjQviD
Reference material for a side project I’ve been tossing around: https://learn.adafruit.com/node-embedded-development/wrapping-things-up
Raspberry Pi GPIO lib I’ve been evaluating for a side project: https://www.npmjs.com/package/onoff
Raspberry Pi GPIO lib I’ve been evaluating for a side project: https://www.npmjs.com/package/pi-gpio
Raspberry Pi GPIO lib I’ve been evaluating for a side project: https://github.com/JamesBarwell/rpi-gpio.js
Trying to get up to speed with KoaJS (having only recently learned of the many changes with Express): https://github.com/koajs/route
Had a need: http://www.webdeveasy.com/service-providers-in-angularjs-and-logger-implementation/
Trying to identify what I do right and what I do wrong with some recently learned stuff: https://www.airpair.com/angularjs/posts/top-10-mistakes-angularjs-developers-make
Study resource for an ongoing project: http://www.sitepoint.com/build-real-time-signalr-dashboard-angularjs/
Always fun to read about new things on the PI: https://www.voxxed.com/blog/2015/04/fool-proof-recipe-docker-on-the-raspberry-pi/
Seems like a pretty cool project for interfacing with local Chromecasts (3 in my home!): https://github.com/mafintosh/chromecasts
Recently learned of this reference site (I know, I know): http://www.pluralsight.com/
More KOA studying: http://bramanti.me/working-with-koa-js/
Reference project for Ionic: https://github.com/harshitgoel96/DictionaryApp
Really awesome CSS effects! : http://tympanus.net/codrops/2015/03/10/creative-gooey-effects/
Really awesome CSS effects! : https://github.com/codrops/CreativeGooeyEffects

Travel is Fatal

Travel is Fatal Every time that I’ve forced myself to leave my comfort zone in order to experience someplace or something new, this has been my takeaway…

In the wise words of Mr. Twain: “Travel is Fatal”…

My personal experience has shown me that while I’ve evolved to be able to form assumptions about things I know little of, rarely are these assumptions very close to reality…

It’s so easy to form notions about people, places or things before we experience them directly – we have the Interwebs and the boobtoob to give us the high level, with a spin or twist on it… and whether we want it to or not, our indirect exposure shapes our views and opinions – often times, incorrectly so…

Each and every time that I’ve ventured out to try something new – often times scared and with worse-case-scenarios playing on a loop in my mind – I’ve been pleasantly surprised to learn that my assumptions were pretty far off base from reality…

More often than not, the places that I though held nothing for me seemed as if they were formed with me in mind… The thing that I knew I “wouldn’t like” becomes my new favorite thing… The people that I was intimidated by or held negative assumptions about become my new friends as I realized that ‘different’ isn’t intrinsically ‘negative’ nor is it to be avoided…

It’s really easy to have opinions about things – even the things we only know of superficially… On the other hand, it’s very difficult to have opinions that actually line up closely with reality until you’ve been there, done that and experienced it firsthand..

Interesting side note on this: most scientists believe that our ability as a species to make assumptions evolved as a survival mechanism – with the default state being “OH CRAP! SOMETHING NEW AND DIFFERENT! FEAR AND AVOID!!”…

When our ancestors were roaming a younger Earth, this approach to things not familiar made sense and was very much at the heart of ‘survival of the fittest’ – as the cautious ones were the most fit for survival… i.e. Avoiding a Wooly Mammoth entirely most certainly ensures you won’t be crushed by it…

Interestingly, our modern world and our comparatively safe modern existence took a lot less time to come to shape than our evolved survival mechanisms did – something that I feel the modern man is having difficulty coming to terms with at times… This said, it’s our job as modern humans to identify these systems for what they are – and to take advantages from them where we can, but to also cast them off when we’ve seen them to no longer be as relevant or accurate to the realities of the modern world…

This doesn’t go to say that there aren’t dangers or threats out there – just that our gut instincts, assumptions and prejudices aren’t necessarily the best mechanism to identify them with any longer…

While I don’t guess that I’d necessarily try to confront a wooly mammoth were the opportunity to present itself, I’m sure my modern brain reacted instinctually in a similar manner the first time that I boarded an airplane as my ancestors’ brains did as they processed seeing a wooly mammoth… and while this mechanism likely ensured that they survived long enough to breed, in today’s world this mechanism would most likely only ensure that I didn’t get to sample my newest new favorite thing…