A couple of months ago calculating code coverage on the command line was quite challenging in ASP.Net Core. Fortunately, as of last month and Visual Studio 15.8, generating the metric is easy.
In this post I'll summarize what code coverage is, how it can be abused, but also how it can be leveraged to gently increase design and architecture quality, reduce bug regressions, and provide verifiable documentation. But first a short story:
When building a devops pipeline you can go two main directions: put logic into a text-based make-like tool such as Cake, or embed your logic exclusively in a Continuous Integration server like Team City or Visual Studio Team Services. The CI route provides an incredible amount of power quickly. It can distill a breathtaking range of devops complexity to a few checkboxes thanks to 3rd party plug-ins. But it comes at a cost. Here are the 4 main reasons I prefer to put my CI logic in make-like tools.
Updating Raspberry Pi apps in the field can be tricky. This post covers the general problem and address some specific side-loading problems you are likely to run into.
If you've ever clicked the "Decrypt HTTPS Traffic" button in Fiddler you know how extremely easy it is to initiate a man-in-the-middle attack, and watch (and even modify) the encrypted traffic between an application and a server. You can see passwords and app private information and all kinds of very interesting data that the app authors probably never intended to have viewed or modified.
It's also easy to protect against against man-in-the-middle attacks, but few apps do.
Horrifying. That about describes my first art class. As a computer science major with virtually no art experience I was surrounded by students who had devoted nearly every waking moment to drawing, painting, sculpting, and bending metal into non-functional shapes.
We love tools that help our clients save time,
- Maximize UI performance by reducing excess render cycles associated with traditional view nesting
- Increase maintainability and readability by removing ceremony and keeping layout code concise
- Simplify usage of RelativeLayout while increasing its power and abstracting away its quirks
In this post I’ll briefly explain what it is, then get into why we need a new UI framework in the context of each of the above three goals. I'll finish with limitations, some history, and how to get started.
"I'm starting a cross-platform mobile project. What problems should my team solve before we begin?"
What an enlightened question, I thought.
The individual standing next to me at a local developer conference had a software architecture background. He clearly understood that laying a solid foundation at the outset of a project can either spell success, or result in project delays, massive technical debt, and quagmires for even rudimentary tasks.
As a consultant of nearly two decades I've seen all too well the results of poor project planning. After 36 individual projects, eight of which were mobile, 4 of which were cross-platform mobile, I felt comfortable answering the gentleman's question with plenty of first-hand knowledge to back it up.
This post answers the question of what problems a mobile team should consider at project outset. It's expressed in real world mistakes and the resulting consequences as I've witnessed them.
1. Overemphasize One Platform
ReSharper can massively boost productivity and improve code quality, while teaching you to be a better developer. In this presentation from NOVA CodeCamp last fall, I distill years spent mastering the tool into a discreet set of 24 tips to help you immediately get more done in less time.
(Read the 24 ReSharper tips here.)