The New Microsoft Corporate Strategy: Peace, Love, and Understanding?

Lets set the scene. Its nearly the year 2000. The Y2K bug has companies in fits, Microsoft is about to drop the best version of Windows ever, and you and I are having a conversation about a rumor that a Lord of the Rings movie is in the works. Suddenly, my face goes blank, my eyes roll towards the back of my head and I make the following statement in a voice that is not my own:

"Microsoft Corporation will embark on a series of endeavors that radically shifts the company's attitude regarding open source software and will tie it's future to the long-term success of Linux".

A mixture of surprise and concern covers your face until the absurdity of what I uttered fully registers. Hysterical laughter follows, then taunts proclaiming me the worst psychic since Miss Cleo. Yet, fast forward to today…

Serenity Now

Microsoft has learned to stop worrying and love the mob. It has flung its arms wide open to embrace millions of open source software developers. No one can argue with the fact that Microsoft is now a major force in open source software. They currently have over 4,600 repositories on GitHub. Hell, they even bought GitHub! They collaborate with many companies on technology to make Linux front and center in the cloud and inside Windows itself. Here are but a few examples of their activity in the open source realm:

What is going on here? Where is the Microsoft many of us used to love to hate. Where is the behavior that produced the abomination known as Internet Explorer 6, J++, DHTML, ActiveX controls, and everything else foisted on developers by Microsoft in their attempt to control the World Wide Web? What contributed to this “doing a 180”? Let us begin by traveling back to the 1990s. Put on a flannel shirt and crank up the Smashing Pumpkins while we figure this all out.

Then: The Focus of Evil in the Modern Tech World

It is hard to overstate how hated Microsoft was by vast swathes of the tech community in the nineties. Detractors considered no deed too dastardly for them to perpetrate. They were the purveyors of FUD (Fear, Uncertainty, Doubt), spreading it over any new technology they considered a threat. According to the United States Department of Justice, they practiced the black art known as Embrace, Extend, Extinguish, employed to corrupt the meaning of open standards to the eventual benefit of their closed and very profitable software model. The climate of loathing surrounding Microsoft was personified mostly by two individuals who each once held the reins of this behemoth of the technology world. 

William the Conqueror:  Genius, Ruthless, Nerd

William (Bill) Gates, Microsoft co-founder and CEO until 2000, was mostly well regarded by the general public during his tenure. Many admired his gumption for dropping out of Harvard to start Microsoft with Paul Allen and his shrewd deal with IBM to license Windows. The resulting windfall began his rise to the world’s wealthiest person. His book, The Road Ahead (1995), sold 2.5 million copies. His looks and mannerisms neatly fit the stereotype of the “nerd genius” which lent towards the view of him as a brilliant yet awkward captain of industry.

The tech community held a much dimmer view of Gates however. Stories circulated widely regarding his belittlement of underlings during company meetings. “That’s the stupidest thing I’ve ever heard!” was supposedly a common phrase uttered by Gates to employees during meetings. His peers considered him distant and disconnected and complained about his inability to return calls or letters. Chief amongst his list of negatives was his ruthless aggression against competitors large and small. Critics expressed this trait as an alleged philosophical maxim held by Gates that decreed If a rival cannot be bought then it must be destroyed. These reports made it easy for critcs to cast Gates as the embodiment of Microsoft’s malevolence and malfeasance. That is until Steve Ballmer took over the company.

Sweat, Bombast, and Cancer

There is but one candidate for the most loathed and ridiculed person in tech for the past 30 years. This distinction has been, and possibly always will be, in the possession of one Steven Anthony Ballmer, former Executive Vice President, President, and CEO (succeeding Gates) of Microsoft Corporation. His screaming, dancing (badly), profuse sweating, and wildly inaccurate prognostications all became grist for the never-ending mill that ground Ballmer down to a pathetic caricature in the eyes of many. His denouncement of open source software was the primary source of the abject hatred directed at Ballmer by detractors outside the Microsoft ecosystem. His attitude towards open source is best expressed by his declaration that, “Linux is a cancer that attaches itself in an intellectual property sense to everything it touches”. Needless to say, this sentiment, among many others expressed by Ballmer, coupled with his unique behavioral traits, crystallized to create the near universal perception that Microsoft, under his stewardship, would forever be the fiercest enemy of open software and the eternal adversary to those who support it. 

Hope and Change

By 2014, both Gates and Ballmer were gone and it appears the hostility towards open source left with them. Trends in the industry pointed to the cloud and mobile exerting ever-increasing dominance; two areas that had nothing to do with Microsoft’s traditional revenue streams. Enter new CEO Satya Nadella, former executive vice president of Microsoft’s cloud and enterprise group. His rise indicated the sea change in effect regarding Microsoft’s future direction. This shift had to executed with a keen eye on the maintenance of the company’s traditional business models. Starting with open sourcing some existing code such as the .Net Framework, efforts began to multiply rapidly and by 2017 Microsoft was a leader in open source contributions worldwide.

Fear and Loathing

Old hatreds are the hardest to eliminate and the hate towards Microsoft goes back a long time. It is a persistent attitude Microsoft continues to battle. Each open source initiative brings with it a vocal contingent of naysayers eager to lay out all the nefarious actions done during the Gates/Ballmer era. However, each new year brings thousands of new developers unaware of the bad old days. This works in Microsoft’s favor over the long term.

The Road Ahead

Microsoft has demonstrated a persistent ability to adapt and evolve to meet the pressures of natural business changes for the last 50 years. The evolution hasn’t always been pretty and it’s former business philosophy will always be a topic of discussion. This shouldn’t distract from the enormous good Microsoft has fostered in recent years for millions of developers around the world. Lets hope it continues.

What’s up with Markdown?

Ever heard of Markdown? The odds you have are slim unless you are a web developer and/or frequent GitHub.com. In short, Markdown is a simple way to format text using very terse markup symbols. The result is an easy-to-read, easy-to-write document which is then converted to HTML or PDF for display to it’s intended audience.

Photo by Jan Kahánek on Unsplash

GITHUB.COM MAKES MARKDOWN A STAR

Created in 2004 by John Gruber, Markdown’s popularity has exploded over the last several years. This is due mainly to the aforementioned GitHub.com, who utilize it to format the release notes (README.md) of projects hosted on the site. As a locus for developers of all stripes, GitHub raised Markdown’s profile tremendously by exposing it the 31 million users (as of Nov. 2018) using the site. This has led to Markdown’s inclusion in many of the tools developers use to create software.

End Users Benefit

Markdown’s sudden ubiquity is actually good news for software users. Why? It is difficult to convey exactly how demotivated your average developer is when faced with the task of creating release notes. The fun is in the coding not the documentation. This reluctance has resulted in less-than-stellar documentation efforts over the years in a myriad of applications. The simplicity of Markdown has made it much easier to produce quality documentation with minimal effort.

Generating Content

None of the major web browsers convert Markdown for display directly – if wrong, please correct me – so this necessitates an intermediary step to convert it to HTML or PDF. The good news is there are a plethora of tools, usually written in JavaScript, which perform the conversion with many offering an array of output styles from which to choose.

Markdown Syntax

So what does Markdown actually look like? Below is a brief tutorial which demonstrates many of the symbols used to create a Markdown document. The sections in blue show the actual Markdown syntax followed by the final output section in red.

I’ll provide several links at the end if you are interested in learning more.


Markdown Syntax: HEADERS

# A Title Header
## A Subtitle Header
#### And So On…
##### And So On…

###### And So On…

Output: HEADERS

A Title Header

A Subtitle Header

And So On…

And So On…
And So On…

Markdown Syntax:: HORIZONTAL LINE

***

Output: HORIZONTAL LINE

 


Markdown Syntax: NORMAL TEXT
This is some normal text.                               White space is ignored by Markdown
until an empty line break.

Output – Normal Text

This is some normal text. White space is ignored by Markdown
until an empty line break.

Markdown Syntax – BULLET LIST
Use or + or *
+ Item A
* Item B
    * Item B1

–  Item C

Output: BULLET LIST

  • Item A
  • Item B
    • Item B1
  • Item C

Markdown Syntax: NUMBERED LIST

1. Item One
2. Item Two

3. Item Three

Output: NUMBERED LIST

  1. Item One
  2. Item Two
  3. Item Three

Markdown Syntax: BLOCK QUOTE

> Note: This is an important point so
> it needs to stand out.
>

> **FREE BEER!**

Output: BLOCK QUOTE

Note: This is an important point so it needs to stand out.

FREE BEER!


Markdown Syntax: CODE BLOCK

//Code blocks via indenting:
int main(string args[]) { `
writeln(“Hello World!”);`

}

Output: CODE BLOCK

//Code blocks via indenting:
int main(string args[]) {  ` 
    writeln("Hello World!");`
}

Markdown Syntax: INLINE HYPERLINK

This is an inline [hyperlink](https://daringfireball.net/projects/markdown).

A hyperlink with the actual address: <http://example.com/>

Output: INLINE HYPERLINK

This is an inline hyperlink.

A hyperlink with the actual address: http://example.com/


Markdown Syntax: REFERENCE HYPERLINK

Reference [hyperlinks][1] use a tag for the address which can be used in multiple places to use the same [link][1] [over][2] and [over][2]
[1]: https://en.wikipedia.org/wiki/Markdown

[2]: https://en.wikipedia.org/wiki/Hyperlink

Output: REFERENCE HYPERLINK

Reference hyperlinks use a tag for the address which can be used in multiple places to use the same link over and over
Additional Resources

While this tutorial is over, there are plenty of additional resource on the web to continue your journey in mastering Markdown. Good Luck!

Linux Exposed My Mouse Wheel Dependence

NOTE: This post is written with full comprehension of it's ultimate triviality and in no way seeks to belittle those battling real personal problems. If you feel you have a problem that needs to be remedied please seek help. 

Mouse Wheel
Photo by: Rodrigo Senna via Flickr.com

I’ve heard the first step to fixing a personal problem is admitting you have one. That’s a bit difficult when you are blissfully unaware a particular problem even exists. Fortunately, Linux was kind enough to fill me in. You see, I am hopelessly dependent on the mouse wheel. I’m unaware when this first occurred but I suspect, like most things, I gradually succumbed to it’s wiles.

According to Wikipedia, the mouse wheel was a joint Japan/Switzerland invention in 1985. It became popular starting in 1996 via the Microsoft Intellimouse coupled with support in Microsoft Office 97. It became ubiquitous with the widespread popularity of the web. It is hard to imagine scrolling through web pages without it. The tedium of constantly finding the scrollbar to read several more lines of text is nearly unthinkable. I’m so pathetic that even the amount of lines scrolled by the wheel can affect me.

I created a virtual machine with the latest version of Elementary OS, a very polished flavor of Linux that users of MacOS would find very familiar. I immediately noticed the mouse wheel “problem” but found no setting to increase the amount of lines to scroll. I told myself I’d get used to it and soldiered on. That lasted about a day. I soon found myself feverishly searching the internet for a solution.

Relief was found via a tiny console application called imwheel. I want to give a shout-out to Andrew at WebUpd8, a Ubuntu/Linux blog. His article will give you detailed instructions on what to do and I believe they will work on most Linux distributions.

My world made right, I am happily exploring what Linux has to offer after a long absence. Now then, about those keyboard media buttons…

The First Post Is Always The Hardest

Greetings!

Well, this is my very first post on any blog, ever, and I have good news right out of the gate. You can’t see the awkward pauses as I grasp for something to write. I used to believe that a blog should have a focus and strive to be informative lest it become a public confessional and not worth reading. Since I had convinced myself  for years I had nothing informative to share (and even less focus)  there was nothing to write about. It was an excuse to not make the effort. I now realize that any reason is the right reason when starting a blog. Which leads us to my reason (finally…).


Photo by Taras Shypka on Unsplash

I’ve been an active member in good standing on the internet since 1994. At that time it was constantly described as the “Information Superhighway!” *blech* and I have been writing web-based code for nearly the entire time. I’ve been a witness to, and often a willing participant in, every fad, fashion, and Flavor of the Month regarding development for the web. I saw the carnage of Browser War I and watched in horror as Microsoft unleashed the Doomsday Machine known as Internet Explorer 6 on an unsuspecting world.

While there was much to cringe about, there were many positive developments that reverberate to this day. The demand for the implementation and adherence of open standards compelled every major web browser (eventually) to acquiesce — for the most part — and adopt an agreed upon set of features. The explosion of Open Source generally has been a tremendous boon to developers. The existence of sites like GitHub has led to incredible levels of cooperation and participation with developers all around the globe. The sheer amount of tools at a developers fingertips these days would be inconceivable to anyone writing web software 15 years ago.

My goal for this blog is to discuss web development from various aspects. New technologies, tools, applications, industry trends, and the occasional trip down memory lane are all on the table. Coding topics outside the web will also appear from time-to-time depending on my current programming language fixation.

I fervently believe it vital developers learn a new programming language every 12-18 months. I’m currently on a system language kick, going back & forth between:

  • D Language: D’s design goals attempt to combine the performance and safety of compiled languages with the expressive power of modern dynamic languages.
  • Go Language: Go originated as an experiment by Google engineers Robert Griesemer, Rob Pike, and Ken Thompson to design a new programming language that would resolve common criticisms of other languages while maintaining their positive characteristics.
  • Rust: Rust is sponsored by Mozilla Research, which describes it as a “safe, concurrent, practical language”, supporting functional and imperative-procedural paradigms.

Find a language that is vastly different from your bread ‘n butter language if possible. Learn why it is so different and understand the primary problem domain the language addresses. You will not only gain knowledge from the language itself, you will gain new perspectives on a bevy of abstract concepts which are vital for problem-solving and other skills.

Lastly, I just hope to have a bit of fun. We’re not curing cancer here. As my old boss Fred would repeatedly tell our development team, “Its not rocket science, its computer science!”. I hope I can at least entertain you and perhaps, with focus, enlighten you as well.