Couple of exciting things to link to from last week:
Docker – O’Reilly released an awesome Introduction to Docker video. Total runtime is less than 2 hours. Definitely a recommended watch if you’re looking to get familiar with the Docker container. Free to those who have an O’Reilly Safari subscription.
Azure VM Images – Microsoft announces a host of Azure Virtual Machine Images for Visual Studio. A great way to get exposure to the other Visual Studio SKUs or run the newer versions of VS without having to deal with the headaches of an install.
App Development – Awesome article on how independent mobile app development works and can be quite lucrative.
The new year brought with it the chance to reflect on technologies that I see making a splash in the coming year. I’m enthralled by big data and analytics but I’m not a data scientist; likewise, I only see so much value in the wearables themselves, although they’ll certainly feed the big data beast. My list of technologies is strongly influenced by my background in software and devops — without being a list of language or tool features.
Blockchains and Ethereum.Marc Andreesen’s piece on Bitcoin is inspiring. The guy who invented the web browser told Stanford students in a lecture that if he was hacking today, what he’d be working on is applications of blockchains (the cryptographic technology that underpins Bitcoin). Ethereum has some potential as a platform, leveraging the decentralized nature of the blockchain and building on it with programmable contracts (limitless possibilities — hence the excitement) expanding the currently narrow cryptocurrency focus of Bitcoin.
Cognitive Computing and Watson. When you see Watson compete (and win) against Jeapordy and Chess masters, big data and predictive analytics look so passé. Cognitive computing and AI is where the big boys are putting their money with Apple, Microsoft and Amazon in the game with the technologies behind Siri, Cortana and Echo, respectively. IBM clearly has the best hand in this deal; question now is how they’ll play it. Will they be able to parlay their initial Watson developer and API offering into a fully-public, commercial, pay-as-you-go service or will they build a walled garden like they did with their cloud offering and get overtaken by competitors? Take a look at the details on the probability that computerization will lead to job losses in the next 2 decades and it’s hard to think about encouraging your kids to be an airline pilot or an accountant. However, creating, maintaining and training the machines on the corpus of knowledge necessary to perform these tasks will be big business.
Containerization and Docker. Amazon EC2 supports Docker containers as of November 2014. Microsoft Azure supports Docker too. This technology seems to have just skipped all the ups and downs of the hype cycle and gone straight to productivity. Time will tell if that’s true of not but Docker offers something for everyone: more efficiency (versus virtual machines) for the data center manager, a well-defined sandbox for system admins and a packaging story made for the DevOps cookbooks.
Microservices and ASP.NET vNext. Martin Fowler and the folks at Thoughtworks have been driving the concept of Microservices. Although Martin seems a bit conflicted himself about how this aligns with his first law of distributed objects, I’m a believer. If you look at the SOA projects we worked on 10 years ago, this is a natural progression and probably should have been the jumping off point as opposed to heavy-handed governance. What really appeals to me is the product-based “you build it, you run it” nature of microservices. Works great in places like Amazon and Netflix but it’s hard to know if/how that translates to large enterprises. Technologies like Node have always been naturally amenable to a microservice-based approach; it’s good to see the managed memory enterprise platforms getting onboard as well, for example the lightweight, deploy what you want .NET hosting container available as part of ASP.NET vNext.
ALM Service Bus and TaskTop. While not as sexy as the other technologies in my list, Tasktop seems to have honed in on a much-needed and lucrative corner of the enterprise software space, integration of enterprise ALM tools like Atlassian Jira, BMC Remedy, HP QC, Microsoft TFS and others. If TaskTop can deliver on this promise, they’ll certainly find takers. I have a project coming up that’s using TaskTop — will be interesting to see how expectations and reality align.
I’ve been sitting on my offsite backup upgrade for a long while now and finally decided to pull the trigger this week. I’ve used MozyHome for many years but the Mozy rate hike 6 months back agitated me. Combine this with the fact that, for more money, I’m not even getting the amount of backup I used to get and it was clearly time to move on, even though I’m nowhere near the 18 billion Gigabytes of storage Mozy claims I’m using.
I looked at some side-by-side reviews of home backup products and found that gigaom had the most useful reviews. Their original review, which was done in 2009, compared the two top contenders at that point in time: MozyHome and Carbonite. I’ve included the link more for completeness at this point since these I wasn’t really interested in these two players. Gigaom’s review of upstart providers Backblaze and Crashplan was much more interesting and convinced me to go with Crashplan as my new backup provider (bye, bye Mozy). I’ve always been interested in Crashplan’s unique peer-to-peer backup option. With their unlimited offsite backup now being extremely price competitive and with an optional family plan, Crashplan has all the features I’m looking for.
These tool discussions are also recurring themes on all of the major discussion forums. It seems that every so often one of these questions hits StackOverflow and everyone chimes in with their favorite current tools. Invariably, for the .NET tool lists, there are some tools that always show up and; enjoying near universal advocacy in the .NET developer community. This includes tools like Reflector and Fiddler on the free side and Ants Profiler and Resharper on the commercial side.
For this blog post, I’ve decided to go with 5 tools you’re not likely to find on any/many of these lists. While some of these tools are .NET-specific, other tools are just solid development tools that are likely to be great additions to any .NET team’s toolbox with the added benefit that they work across multiple technologies.
Badboy. Likely the biggest sleeper on my list. Badboy is an extremely easy-to-learn web application testing tool. Check out the online documentation to understand features and then use it to guide your learning. Chances are that you’ll have most of the basic and intermediate level scripting tasks mastered within the first 30 minutes of using the tool. Compare the cost of a Badboy license ($45 / individual or $30 / each for a 10-pack) with the cost of your existing web application testing tool. Chances are you’d be saving hundreds, if not thousands of dollars per license. If you need to scale beyond simple Badboy threading / load testing capabilities, Badboy scripts can be exported in a format consumable by Apache JMeter for more heavy duty controller/generator type load testing. Also, the Wave Test Manager server, from the makers of Badboy, allows you to upload and share badboy scripts across a project, schedule execution of the scripts, and access the reports from the tests on a central server.
Lightspeed ORM. When the discussion of Object Relational Mappers (ORMs) comes up, NHibernate and the Entity Framework are almost always at the forefront of the conversation. LLBLGen gets added to the list as well if commercial ORM’s are on the table. Rarely, if ever, is the Lightspeed ORM from the Mindscape team down under ever brought up. It should be. If an awesome Visual Studio modeling experience and second generation LINQ provider don’t convince you, maybe the Rails’esque data migration facilities will. Still not convinced? Check out the custom LinqPad provider and LINQ-to-SQL to Lightspeed drag and drop conversion. If there are new features you’d like to see or if you need bug fixes, Ivan and the team at Mindscape are all ears and provide a near legendary turn around time.
Silverlight Spy. Let’s recap just in case you missed the news – Silverlight is hot!!! It’s a pretty significant change from either the MVC or WebForms approach most .NET web developers are used to and takes a while to wrap your mind around. Silverlight Spy does for Silverlight what Reflector did for the .NET Framework, pulls back the covers so that you can inspect and understand. Silverlight Spy provides insight into the XAP package, isolated storage information, performance data, an accessibility view and so much more. The message from Microsoft over the last 6 months has been – learn Silverlight. That task is made so much easier with Silverlight Spy at your side.
DTM Data Generator. Microsoft recently finally got around to including a data generator in some versions of Visual Studio. If you restrict yourself to SQL Server and are willing to deal with slow data generation, it might even be a good fit for you. RedGate’s SQL Data Generator, which I’ve written about before is much more efficient at loading data, as long as you stick with SQL Server. If you’re looking for data generation tool to meet your needs, irrespective of the underlying database you use, DTM’s Data Generator is the tool for you. DTM’s data generator supports SQL Server, Oracle, MySQL, DB2, Sybase, and any database you can access through OLE DB or a DSN. It supports inserts of most major datatypes, including BLOB generation and supports a variety of rules comparable to RedGate’s product, including the use of custom rules. The enterprise version can be executed from the command line in silent mode, making it perfect for generation of data in preparation for the execution of an automated test suite.
Performance Analysis of Logs (PAL). This tool just doesn’t get enough love from the .NET development community. Oft maligned as the “poor man’s SCOM”, PAL can be a real timesaver and/or lifesaver. It’s so simple: capture the PAL specified counters for the platform being monitored (most major MS products such as Windows Server, IIS, MOSS, SQL Server, BizTalk, Exchange, and AD are supported), import the counters and let PAL do its thing. It’s “thing” is producing a detailed report for the counters showing how they looked across the duration of the capture and when the counters exceeded thresholds. PAL also provides explanations for each of the counters and details the implications are of exceeding the thresholds. More useful information for a better price you will not find.
I was up at Penn State IST school this past week giving a lecture to a class as part of our recruiting. As part of the class, which was about application integration, I touched on the HTTP protocol. I believe that it’s extremely important that everyone starting out in web application programming or web-based integration have a deep knowledge of the HTTP protocol. Although you should eventually read a book about HTTP and ultimately read the protocol itself, sometimes it’s easier to learn by tinkering. Along these lines, I thought it would be interesting to provide a quick demo of using Fiddler to inspect the HTTP protocol. I’ve included the screencast here. My apologies for the speed of the screencast. I was in a hurry to get it done and it sounds like I had an energy drink of five too many when I did the voice-over.
I used Camtasia for Mac to record the screencast. Camtasia for Mac is a relatively new entrant to the marketplace and is priced at $99 to compete directly with Screenflow, the long time incumbent in the Mac screencast market. The tool couldn’t be easier to use. It took no time at all to capture the screencast and post-capture editing, an area where Camtasia has always shined, is both powerful yet incredibly intuitive. If you’re in the market for a Mac screencasting tool, I can only recommend Camtasia. You can pick up a free 30 day trial and, after that, $99 introductory pricing will get you the full product.