Archive Monthly Archives: April 2015

Visual Studio Goes Cross Platform with Visual Studio Code

Today, Microsoft kicked off Build 2015. Among the long list of exciting developments, Microsoft released the first cross platform version of Visual Studio. This new version of Visual Studio is called Visual Studio Code (or VSCode). It’s a lightweight code editor that runs on Windows, Linux, and OSX.

VSCode is built for Node.js and ASP.NET web app development, but it also support lots of other languages. In addition to the languages you’d expect from a Microsoft code editor (C#, JavaScript, TypeScript, F#, etc…), VSCode also supports a laundry list of other languages like C++, PHP, Python, Java, R, Objective-C, PowerShell, and Markdown ( full fist of supported languages ).

While VSCode isn’t a full IDE like the Visual Studio we all know and love, but it does have a lot of features that take it beyond a basic text editor.

Features:
  • Node.js debugging (ASP.NET 5 and other languages are on in progress)
  • Built in Git support
  • Multiple cursors, just like Sublime Text or Atom
  • Intellisense (for Node.js and ASP.NET)
  • Static Code Analysis and Refactoring (for C#, JavaScript, and Typescript)
  • Automatic updates
  • A fast release cadence, with releases coming every few weeks, instead of every few months.
  • Ability to customize keyboard shortcuts and add custom tasks

First Impressions

As a Mac owner who does ASP.NET development, I immediately downloaded a copy of VSCode and started playing with it. To me, VSCode feels like a cross between Visual Studio and Sublime Text (or Atom). On my Mac, it feels snappy and responsive. The intellisense is instant, but I’ve noticed some that it doesn’t include all the files (probably a setup issue on my part).

Visual Studio Goes Cross Platform with Visual Studio Code

VSCode also supports static analysis. This means you can find references and view definitions. I tried a “Find All References” and it took a little longer to pop up, but I like the inline reference window. “Goto Definition” and “Peek Definition” were instant, however.

Visual Studio Goes Cross Platform with Visual Studio Code

Multi-cursor is my favorite text editor feature. I bought a copy of Sublime Text specifically for it’s multi-cursor support. Multi-cursor has saved me tons of time. VSCode has the best multi-cursor support I’ve seen. ( More Info )

Visual Studio Goes Cross Platform with Visual Studio Code

Verdict

In the past few years, I feel like code editors have taken some huge steps forward. Sublime Text set a benchmark for excellence and several competitors have stepped up to the plate. The best one I’ve seen before VSCode was the Atom editor. While it wasn’t good enough to take me away from Sublime, I thought it was a solid piece of software.

At my day job, besides Visual Studio 2013, I use Sublime Text. Sublime has saved me countless hours of time by making repetitive code chores easier. VSCode does all the things I currently use Sublime for AND it has built in support for ASP.NET. I’m definitely going to add VSCode to my developer tool belt.

Where Can I Get It?

Visual Studio Code is available for free at https://code.visualstudio.com/

Documentation can be found at https://code.visualstudio.com/Docs

Book Review – Essentialism: The Disciplined Pursuit of Less

Book Review - Essentialism: The Disciplined Pursuit of Less

Being an adult is hard.

People are constantly vying for chunks of your attention. As you become more successful, you have to weigh lots of options. There are dozens of competing commitments and everyone is so busy trying to fit them all in. It’s maddening.

According to Greg McKeown, it doesn’t have to be this way. In his book, Essentialism: The Disciplined Pursuit of Less, he lays out a case for eliminating the unimportant things in your life, creating boundaries, and focusing on the important few over the trivial many. I recently listened to this book and found a lot of actionable advice.

This book is especially useful for people in the technology industry. We have to deal with lots of stress and constant change. It can be painful to keep up. This book provides some guidance on how to focus and get better results with less stress.

Summary

Less, but better.

The main point of the book is that life is a series of trade offs. You can make these trade-offs yourself or you can let other people make them for you. To control your destiny, you need to figure out what’s essential to you. Then, you can focus on these few essentials and eliminate everything else.

The book divides the process of focusing on the essential into three phases:

Explore

Block off time for exploration and play. Because you’re only going to focus on a few important things, it’s important to explore what’s available. Essentialists spend more time exploring because they don’t go “all in” on every task that comes their way. They have more time and incentive to explore.

Eliminate

Come up with a clear purpose for yourself and use that clear purpose to eliminate extraneous things from your life. Use extreme criteria to reduce the number of options available. Set boundaries for yourself and others. Learn to say “no” gracefully.

Execute

Build systems that reduce the friction of doing essential things. Build smart routines and prepare for setbacks. Focus on small wins to stay motivated.

In addition to the three steps, Essentialism offers specific techniques on how to achieve simplicity in your life. One example is zero based budgeting. Most organizations budget based on last year’s numbers. Zero based budgeting starts everything off at zero. Starting from a fresh place may lead to a budget that is more in line with the priorities of the organization.

Why should you read this book?

Technology professionals have to deal with tidal waves of information while balancing competing interests. Becoming an essentialist can make balancing those interests a lot easier. The essentialist philosophy has many practical applications to software professionals.

Here are some examples:

Requirements
In any given project, people want more features than there’s time to build. Essentialism illustrates the necessity of trade-offs and highlights the need to prioritize.

Career Skills Planning
Essentialism makes a strong case for being a “jack of all trades, master of one” approach to skills training.

Writing
Both code and prose become better with the elimination of extraneous items.

Lean Software
The Lean Software movement displays a solid grasp of focusing on the essentials.

Conclusion

Essentialism is a great read for any software developer or technology professional. It’s made me reevaluate my life and focus more on the essential. I highly recommend it.

How to Find The Best Tech News

How to Find The Best Tech News

Staying well informed is important to every professional, but how do you navigate the sea of infinite content? How can you filter out useful information from political nonsense, irrelevant junk, and clickbait? As someone who tries to focus the essentials, I don’t want to waste time separating the good from the bad. I want useful information that helps me in my life. To address this need, I’ve created an information funnel. I get news from a variety of sources and filter out the best stuff. In this post, I’m going to describe my information funnel and how you can use a similar process to get your own slice of news.

Define Goals

The most important thing to do when trying to find good information is defining what you are looking for and what you want to avoid. I’m looking for the following things:

  1. Useful articles on software engineering and ASP.NET
  2. Mobile platform how-to articles and major product releases (the Apple Watch, Xamarin Forms)
  3. Mobile trends and statistics (smartphone adoption)
  4. Bleeding edge future tech (self driving cars, 3D printed organs, etc…)
  5. Any new developer trends that I should check out (Ionic, Node.js)

This list represents a combination of things I need for my job, things I’m interested in, and potential future technical investments. I’m interested in a lot of different things, but the goal of this list is to focus on the technology.

I also want to avoid any unactionable news. If it doesn’t help me, then I generally don’t care about it. Heres some examples:

  1. Holy wars. I don’t care about which platform is “better”.
  2. Product reviews for things I’m not going to buy.
  3. Political drama.
  4. Uninformed opinions about the future.

Additionally, I don’t want to waste a lot of time finding news. Being well informed is a good, but this endeavor has diminishing returns. News is the information equivalent of carbs. You need a few, but not too many, and you want to stick with high quality sources.

Sources

The next step is to find decent news sources. This is a huge challenge because there are so many news sources. I get my news from a variety of places and have tried various methods of filtration to avoid the junk. I find that a combination of Podcasts, RSS, Twitter, and Prismatic works well for me. I get a variety of sources, which is important to avoid filter bubbles, but I also get some selection, so I’m not buried in junk.

Here’s a list of news sources I use now or have tried in the past:

Podcasts

I listen to a variety of podcasts on technology. Podcasts are great for getting in depth information about technical topics. Podcasts are also great because you can listen to them while doing other things, like driving to work. It’s a good way to multitask. The only disadvantage is that podcasts can be long. Here’s two of my favorite podcasts:

http://www.dotnetrocks.com/
http://msdevshow.com/

RSS Feeds

While other media has chipped away at my RSS feeds, I still subscribe to a few blogs. RSS is good for following specific products or people. The disadvantage is that you can get behind if you subscribe to too many news sources. I subscribe to less than 20 feeds.

Twitter

I get a lot of news on Twitter now. There are two things I like about news on Twitter. First, because it’s a social network, the good stuff tends to find it’s way to the top. Second, if I don’t pay attention to it for a while, I don’t have a huge inbox waiting for me when I come back. It’s also great for keeping up with organizations, like PEW or the Visual Studio team. The big disadvantage of Twitter is it can be a cesspool of ignorant political bickering. You can’t have a political discussion in 140 characters. The key is following the right people. I tend to unfollow folks who use Twitter for politics or idle chit chat.

Here’s a few accounts I like to follow:
https://twitter.com/pewresearch
https://twitter.com/Ionicframework
https://twitter.com/DotNet
https://twitter.com/singularityhub

Prismatic

I’ve recently started using Prismatic. It’s a service that delivers content to you based on your interests. It also tries to learn from you and deliver increasing good content (like Pandora for news). I’m still getting the hang of it, but Prismatic offers interesting articles. I check it every few days. The key to making Prismatic work is only starting with a few interests. I’m interested in a lot of things, so I checked lots of boxes and had to filter out a lot of noise. I ended up removing about 2/3’s of the interests I started with.

Flipboard also gives you streams of news based on your interests. It’s a beautiful app, but I didn’t like it. I could see why some people would prefer it to Prismatic though.

Hacker News

I used to read Hacker News, but it’s become too whiny and political for my tastes. Hacker news still has some good stuff though. I check it once in a while.

Google

Google News is good for getting news for a lot of sources, but it’s not specific enough for me. Google Now, however, has delivered some interesting content to my phone. It’s finds things related to what you’ve searched for or read in the past. My biggest Google Now win is when it delivered the answer to a problem I unsuccessfully searched for the previous day. It’s creepy, but amazing.

Reddit

I’ve recently started using Reddit. While I don’t use it for tech news, you could. There’s a subreddit (a topic specific group) for almost every technology. I found that the same thing that applies to Prismatic also applies to Reddit. It became much more useful once I stopped following so many topics.

Filtering

I prefer to do my reading in long sessions, so I use a “read it later” app to save links. I check the sources mentioned above when I get bored and save anything interesting to my “read it later” app of choice (Pocket). I ignore the vast majority of what I see, but filtering has gotten easier as I’ve gotten better at selecting news sources.

Archiving

If I find something good, I’ll save it to Evernote so I can refer to it later. I only do this for evergreen articles that won’t lose their value over time. Usually these are on business development, software best practices, or personal development.

Conclusion

Separating the signal from the noise is tough in the age of infinite content, but we have many tools at our disposal. What do you do to stay well informed?