Visual Studio Bugs

Visual Studo 2012 had a nice add-in called the Microsoft Visual Studio 2012 Feedback Tool that lets you quickly report a bug to the connect website. I’ve found that making it easy to report bugs in VS has increased the likelihood that I actually will report bugs. With Connect, any user can add a “me too!” vote to someone else’s public bugs so that the product team has a better idea of the people affected by it. You can also add your own comments to someone else’s public bugs. This post will be updated over time with bugs I’ve filed so that you can add your own “me too!” vote or comment to the bug.

Visual Studio 2013 included a similar bug reporting tool. This list now includes bugs reported in Visual Studio 2013.

Unfortunately Visual Studio 2015 replaced the nice bug reporting tool with a “send a frown” feature. This files a bug report into a black hole where you can never see anything about that bug report again. This forces us to go back to the connect site and log bugs by hand. Why can’t they leave good features alone? I will continue to add bugs to this list filed against VS 2015, but man they are sure making it hard for me to provide feedback in a way that’s useful for me.

Read the rest of this entry »

Slides for Utah Code Camp Presentations

I have posted the slide decks for my Spring 2016, Utah Code Camp are available on slideshare.net:

Thanks to everyone who attended Code Camp and a very special thanks to all the sponsors that make the event happen!

Proposed Utah Code Camp Spring 2016 Talks

It’s that time of year again and I’ve proposed the following talks for the 2016 Utah Code Camp. Please vote for those you’d like to see as I doubt I will be able to give all of them :-).

Vote here: Utah Code Camp Spring 2016 Sessions

Update: Two of my talks were accepted, thank you for your votes! That’s quite a bit of work for me in such a short time, but I will give it the old college try and do my best not to disappoint anyone. See you at Code Camp!

Proposed talks:

  • Software Practices and Principles
    • Why TDD is a Design Activity

      Do you think design is that thing you do at the beginning before you start implementation? Oh pshaw, waterfall thinker! Design is an activity. Designs evolve. Software is the most mutable substance known to mankind. TDD embraces that evolution and malleability and changes design from a phase into an activity we practice every day.

    • Accepted: Modern C++

      Has it been a while since you looked at C++? Do you have a “backwards looking” perspective on C++ based on poorly written old code? Come take a look at modern C++ and dispel your misconceptions about C++. Embrace lightweight abstraction mechanisms with efficient implementations that make your phone’s battery last longer! C++14 is stable and is implemented across all major platforms. C++17 standardization is underway. Compilers are implementing C++17 support in anticipation of the standard, instead of waiting until it is released. The library working group in the standards committee has additions to the C++ Standard Library coming your way.

  • Microsoft Technologies
    • Accepted: Developing iOS and Android Apps with Visual Studio

      In this presentation, we’ll take a look at the additions to Visual Studio 2015 that support the development of iOS and Android applications. We will emphasize cross-platform development of a single code base.

    • NodeJS for Visual Studio

      In this presentation, I’ll give a quick tour of the NodeJS integration for Visual Studio.

Slides for Consuming and Creating Libraries in C++

I have uploaded my slides for my presentation on Creating and Consuming Libraries in C++. Not every word of what I discussed is in the slides, but there should be enough there for you to follow the discussion.

Utah C++ Programmers: Consuming and Creating Libraries

In this month’s Utah C++ Programmers meetup, I’ll present the basics on consuming and creating libraries for C++ programs. ConsultNet is now a sponsor of Utah C++ Programmers and will be providing us with food for the meeting. Thanks, ConsultNet!

Read the rest of this entry »

Visual Studio 2015 Update 2 RC Released

Microsoft has released a release candidate of Update 2 for Visual Studio 2015. Of interest to C++ developers are the completion of C++11, C++14 and current C++17 library features as well as numerous performance and bug fix improvements to the IDE and the compiler. There are some breaking changes for existing code bases that were not written in conformance with the ISO C++ standard, but instead relied on the old non-conforming behavior of the Microsoft compiler.

SLC Software Craftsmanship: Rewrite or Refactor?

Tomorrow the Salt Lake City Software Craftsmanship group will be holding their 2nd meetup. The reading discussion topic for this month is Rewrite or Refactor?. Dinner will be served and there will be a programming exercise after the reading discussion. See you there!

Refactoring Test Suite Results for Visual Studio 2015

Last Friday I updated the test results for my C++ refactoring test suite to include results from Visual Studio 2015 Update 1. Visual Studio 2015 is the first release of Visual Studio to support refactoring for native C++ projects without any additional add-ons. Prior to Update 1, Visual Studio requried a free add-on for Extract Function and Extract Method, but this has since been folded into Update 1 and made available to all Visual Studio users. Extract Function and Change Signature are disabled by default and can be enabled in Tools / Options / Text Editor / C/C++ / Refactoring.

Read the rest of this entry »

Daz Studio 4.9 with In-App Purchase of Content

About_DAZ_Studio_4.9

Daz Studio 4.9 has been released today. Daz Studio 4.9 features an integrated content store so you can directly manage your free and purchased Daz content. Downloading and installing content has never been easier! Daz Studio 4.9 offers improved workflows for using content with the Smart Content Pane. Daz Studio is free and includes the fully-posable base human figure content. NVidia’s IRay physically-based renderer is still included and has been updated for this release. IRay is a great way to explore physically-based rendering, all the way down to authoring NVidia material definition language files and directly consuming them with Shader Mixer in Daz Studio. For graphics programmers and graphics researchers this is a wonderful way to explore the power of MDL with a great rendering engine and great content.

Download today!

CppCast #17: Exercism.io and Refactoring

CppCast interviewed me for episode 17 of their C++ podcast last night. We had a great time talking about exercism.io and refactoring in C++. Check it out!

DAZ Studio 4.8 with IRay Physically-Based Rendering

About_DAZ_Studio_4.8

DAZ Studio 4.8 has been released with NVidia’s IRay physically-based renderer running on the GPU. DAZ Studio is free, including the IRay renderer. It’s a really great way to play around with a physically-based renderer using a rich application environment and a rich library of content. Have fun rendering this summer!

You might recognize at least one name on the About… box pictured above :-).

Fixing the Windows 7 Weather Gadget

Recently, my Windows 7 weather gadget started spontaneously saying that it “couldn’t connect to service”. This was odd, considering I’d configured this gadget years ago and hadn’t touched it since. If this is happening to you, here is how I fixed mine.

Read the rest of this entry »

Advice for Software Engineering Job Seekers and Employers

Over the past several years, I worked on an expanding team and interviewed many candidates for software engineering positions. What follows is my advice for those of you seeking a new software engineering job. The advice is also relevant to those of you looking to add to your team. See also Joel Spolsky’s Guerrilla Guide to Interviewing, there’s great stuff in there.

Read the rest of this entry »

Refactoring Test Results for CLion 140-1221.2

I ran through a bunch of refactorings in the latest early access program (EAP) build of JetBrains CLion using my refactoring test suite, now hosted on github.

Summary

Refactoring % Passing Passed Failed
Add/Remove Block Delimiters 46.16% 6 7
Change Signature 100% 11 0
Compress To/Expand From Ternary Expression 69.24% 9 4
Create Method Stub 54.55% 12 10
Create Setter Method 66.67% 20 10
Extract Function 73.69% 14 5
Extract Method 5% 1 19
Extract Parameter 40% 2 3
Flatten Conditional 100% 1 0
Inline Macro 83.34% 5 1
Inline Recent Assignment 0% 0 2
Inline Result 0% 0 5
Inline Variable 22.23% 2 7
Introduce Constant 30.77% 4 9
Introduce Local 66.67% 4 2
Move Method 29.73% 11 26
Remove Unused Parameters 100% 3 0
Rename 77.09% 74 22
Simplify Boolean Expression 100% 13 0
Split Initialization From Declaration 81.82% 9 2
Split Multi-Variable Declaration 100% 19 0

The overall score card looks quite promising, particularly for an early access build that isn’t guaranteed to work at all. The general impression I got was that the refactoring support is better than other tools I have tried. It did much better with pointers to functions, pointers to class members, and references to class members than other refactoring tools. It did a good job of recognizing the appropriate scope for identifiers and properly performed well on rename operations, even when combined with using statements.

Read the rest of this entry »

An Interview with InfoQ about Exercism.io

InfoQ has just published an interview with myself and Katrina Owen, the creator of exercism.io. Check it out!

2014 Utah Teapot Student Rendering Competition Results

The results of the 2014 Utah Teapot Student Rendering Competition have been published and there are some very good images over there, so go check it out!

Adding Static Analysis to Your C++ GitHub Repository

Static analysis can be extremely useful for monitoring the quality of your code base. These tools analyze your source code and check for certain kinds of mistakes that can be detected purely based on how the code is written. In this post, I’ll show you how you can add two free static analysis tools to a free continuous integration build for your C++ github repository.

Read the rest of this entry »

UtahJS: Rendering the Utah Teapot with <div>

Tonight I’ll be making a short presentation during the UtahJS Meetup on how you can render the Utah teapot in HTML and CSS using only <div> elements. Come on down! Dinner is provided free by O. C. Tanner.

GDI PseudoCode and Coffee 10/26

The Salt Lake City chapter of Girl Develop It held a roundtable discussion on Sunday, October 26th. The topic was Terminology in Technology and we had a great discussion covering many topics, including:

  • What is the difference between jargon and technical vocabulary?
  • What does it mean to refer to the problem domain?
  • What is an API?
  • What’s the difference between a text editor and an IDE?
  • What’s your favorite text editor?
  • What’s your favorite IDE?
  • What is an endpoint?
  • What’s the difference between an endpoint and a route?
  • What is a compiler?

During the discussion, I mentioned a number of resources that I thought I would discuss and link here.

Read the rest of this entry »

The Keyboard Shall Set You Free

Jonathan Turner has released Keyboard Sith, a tool that disables your mouse and forces you to use the keyboard. Why would you want to do this? When I have taught courses on test-driven development and refactoring, I have noticed that the programmers that avoided the mouse and code completion facilities from their IDE (e.g. IntelliSense) always finished the exercise first. These programmers simply learned the keyboard shortcuts of their IDE to efficiently navigate around and simply learned to type their code faster than any browsing tool could complete it.

Read the rest of this entry »

Free Hulu+ Costs Too Much, Netflix Circling the Drain, Amazon Prime comes out on Top

There is increasing competition for streaming video subscriptions out there. This is my review of three common services based on using them for all for a while.

Read the rest of this entry »