Posts

Moving Day

I finally moved my blog to a new location. Please visit my new blog at  https://developingdane.com  https://developingdane.com. I will no longer be adding entries to this blogger site (http://developingdane.blogspot.com). All existing posts have been migrated to the new location and that is where the future posts of Developing Dane will be found.

A Walk Through Azure Functions

Image
Update 10/2016 - This posting is better viewed in my new blog . Rocky Start I saw the initial announcement for Azure Functions in one of the Azure newsletters. I watched two channel9 videos and read what documentation I could find. I even emailed a friend about it. I was pretty excited. My first experience with Azure Functions was a couple months back. It did not go well. I selected a C# HTTP Trigger template as my first function type and the pain began. Nothing worked as expected and I was met with frustration at literally every level. By the end of the night I'd decided the Azure Portal's Blade for Azure Functions had some significant usability and stability issues. I ended the night extremely frustrated. Two weeks later I took another look at Azure Functions. Whatever issues the Azure Functions Blade was having during my previous attempt appeared to have been resolved. Where previously the simplest change to function code would fail to be executed, changes were sudd...

Node Development on Windows

Until the long file name issue is fixed node.js development on a Windows machine is going to continue to suck. That is all. Update 10/2016 - This posting is better viewed in my new blog .

Azure Resource Naming

Update 10/2016 - This posting is better viewed in my new blog . On several occasions I’ve had issues with the naming of my Azure resources. The most annoying of these issues was when I’d created a resource for prototyping in one subscription, deleted it and then attempted to recreate it with the same name under a different subscription only to discover that the name had been “reserved” for some period of time under the initial subscription. After I was bitten by this issue a couple times I went in search of documentation for the timings for such name reservations but came up wanting. A post to the MSDN forums confirmed that no such documentation exists so I decided to create it myself. The site listed below is my ongoing attempt to document some of these naming restrictions. http://azurenaming.azurewebsites.net/

ClickOnce, Squirrel and Nuts

Image
Update 10/2016 - This posting is better viewed in my new blog . Background In a  post two years ago I expressed my admiration of ClickOnce. At the time we'd experienced years of tremendous success using it as our client application's primary deployment mechanism and since that time it has not faltered. I now regret to say that over the last year I've seen evidence that makes me question continued reliance on ClickOnce. I think its life-cycle may be coming to end. Though that saddens me I understand that in the tech world all technology is transient and the best ideas don't always last as long as they should (see Silverlight). Data, however, must continue flowing. About eight months ago I started searching for alternative deployment mechanism which might provide some of the benefits we'd leveraged with ClickOnce. That search came up mostly wanting. However, one candidate identified was the open source project Squirrel.Windows . The moniker on the GitHub proj...

Inital thoughts on Visual Studio 2015 RTM: Not Ready for Prime Time

Update 10/2016 - This posting is better viewed in my new blog . I'm a HUGE fan of Visual Studio. In my opinion it is the best IDE available by a wide margin. I've been a heavy user of every version since VS2003 and I dabbled in several previous to that. I've anxiously awaited each new release and then migrated immediately and I'd always been impressed, until now. Put bluntly Visual Studio 2015 wasn't ready for release. I should have realized this when I was watching a video a couple weeks ago in which the presenter was using the fresh-off-the-presses VS2015 RTM. Over the course of the twenty minute video he encountered three different VS bugs he had to work around. I didn't learn from that and went ahead to install it as my primary (only) version of Visual Studio on a newly formatted Windows 8.1 machine. I've been using that machine daily now for just over two weeks and I routinely encounter issues in VS2015 Enterprise. Here are some of my concerns so fa...

Microsoft Build 2015

Image
Update 10/2016 - This posting is better viewed in my new blog . Pre-Build Just as last  year my flight from Portland to San Francisco was delayed due to foggy conditions in the bay area (note to self: no further morning flights to SFO). This year my wife Lynda accompanied me and we finally landed in SFO around 1:00 PM only an hour late. The flight was smooth and easy except the landing where the pilot gave us the hardest landing I've personally experience in a flight. Just as last year the weather in San Francisco was identical to the weather left behind in Portland. In stark contrast to last year that weather was sunny skies and temperatures in the mid 70's. As I did last year we took a take a shuttle from SFO to downtown San Francisco. It cost roughly $30 to for both Lynda and I and the boarding process took almost an hour. Right before we left PDX I saw this tweet from Scott Hanselman. A few hours later we were sitting in traffic heading into downtown and I was ...

Handy Windows Shortcut

Image
Update 10/2016 - This posting is better viewed in my new blog . In File Explorer hold Shift+Right-Click on any selected item or group of items and you'll find the context menu item "Copy as path". Selecting this will add the path strings for the selected items to your clipboard. For example the image below shows a folder and two files selected inside the folder C:\temp\Test. Selecting "Copy as path" adds the following to the clipboard: "C:\temp\Test\Data" "C:\temp\Test\AnImage.bmp" "C:\temp\Test\Archive.zip"

Comparison of Empty Versus Web API ASP.NET Web Application Templates (VS 2013)

Update 10/2016 - This posting is better viewed in my new blog . A quick comparison of the complexity of Web API versus Empty templates in ASP.NET Web Application creation. Values were recorded through inspection of the projects and the project folders after a successful debug compile. Empty template, Web API core references NuGet Packages: 5 References: 22 Files: 61 Folders: 33 Size: 12.3 MB Web API template, MVC and Web API core references NuGetPackages: 34 References: 48 Files: 374 Folders: 157 Size: 62.3 MB

Azure SQL Performance Level Comparison

Image
Update 10/2016 - This posting is better viewed in my new blog . Abstract Currently Azure SQL allows you to configure your database in one of three service tiers, i.e. Basic, Standard and Premium. The service tiers each allow you to select one of several performance levels. In all you have eight possible performance levels; Basic, S0, S1, S2, S3, P1, P2, P3. The goal of this exercise was to provide some quantification of these performance levels. Setup Test System: Azure VM with Windows Server 2012 R2 and SQL Server 2014. Database: SQL database with a complex history table (many columns) which held ~250K records. Client: SQL Server Mangment Studio (SSMS) hosted on the Test System. All test runs utilized a copy of the Database. For tests labeled "Local" the Database was hosted on the Test System. For all other tests the Database was hosted as an Azure SQL database under the labeled performance level. All queries were executed from the Client. Reported query executi...

Boeing's Big Data

Update 10/2016 - This posting is better viewed in my new blog . I recently attended the seminar CloudFest Azure Workshop at the Microsoft offices in downtown Portland, OR. The event was hosted by  Northwest Cadence and the Marquam Group  and had two tracts, Dev/Ops and Azure Active Directory. I attended AAD and ended up leaving half way through the day very disappointed. Despite my disappointment with the event as a whole, the opening presentation by Northwest Cadence's Steven Borg  was good and he gave a story that blew my mind. He described an Azure seminar he'd recently attended where the subject of big data was discussed. In that seminar he met an engineer form Boeing who told him they have engines with IoT devices collecting 1 TB of data per hour of operation. That's 1 TB per engine, per plane, per hour in flight. That's quite simply a crazy amount of data. The gentleman was then asked what Boeing did with all that data. His response, "nothing yet...

RecipeBox is Live

Update 10/2016 - This posting is better viewed in my new blog . I spend time most weekends programming, typically in the evenings over a craft beer at my favorite pub . During these sessions I occasionally perform pressing tasks for my job but most often I use the time to explore and further my craft. Sometimes I watch videos, others I read but mostly I write code. During these exploratory development sessions I like to work with or towards a fully functional application. Hello world style apps are useful for demonstrating components and features but you never truly understand such components until you integrate them into a more full-featured application. A year ago I started the latest of of my exploratory development applications, the fourth in ten years. The new project I named RecipeBox. RecipeBox was conceived as a recipe storage application for the cloud. My wife expressed a need for a simple way to store her recipes and have them readily available from anywhere. Such an ...

First Azure Database

Update 10/2016 - This posting is better viewed in my new blog . Getting my feet wet with Azure SQL tonight and I just created my first ever database on the platform. The first step was to create a new server instance since I did not yet have a hosting server. The second page of the creation prompts you to provide credentials for the new server. With no instructions about what to use as a "log in name" I used my gmail account as I would for almost any account name. The database created successfully but I quickly found I couldn't access it at all. I just kept getting authentication errors. I noticed in one of the errors that the user name reported in the failure was the login name I'd initially entered with the "@gmail.com" truncated. This made me wonder if Azure was understanding the "@" character as a domain indicator. I went back to the Azure portal, deleted the server and started from scratch creating another new server. This time around I ...

Travels on the Source Control Highway

Update 10/2016 - This posting is better viewed in my new blog . Whether you love your source control system or it drives you completely mad there's no denying it's one of the most important tools you have as a software developer. Over the years I've used several source control software packages, even going so far as to dabble with writing one of my own. They've all had their pluses and minus but I've finally arrived at one I'm satisfied with. My source control software experience began when I took my first job as a software developer in 1999. That system was PVCS Version Manager. I don't remember exactly what version of PVCS we used then but my first impressions were not positive. It was written in Java and the UI was horrific. Every task was painful and files would sporadically appear locked forcing the need to contact the administrator (which eventually became me). In short, I hated it. Our company eventually moved to a newer version of PVCS which im...

Microsoft Build 2014 (#bldwin)

Image
Pre-Build I left home for Build 2014 on the morning of April Fool's Day after only a couple hours of sleep. I arrived at PDX around 09:00 with my flight to San Francisco scheduled to leave at 11:40. I got through security and settled in at the gate ready to read wile away the remaining time. Around 10:30 they announced my flight was delayed until 12:50. About an hour later they announced the flight had been delayed until 14:10. We finally stared boarding at around 14:30. I kept waiting for someone to say "April Fools" but no such luck. Not a great start to my trip. The flight was uneventfully except for the final descent into San Francisco where we encountered quite a lot of turbulence passing through the lowest clouds. I got off the plane and went outside to catch my shuttle into town. It'd been years since I'd last been to San Francisco but this time my first thought was "this is just like home". The temperature was somewhere around 50-60 degrees...

Visual Studio 2013 HTML Editor...AAARRRRRGGG!

Update 10/2016 - This posting is better viewed in my new blog . The first version of Visual Studio I used heavily was VS 2003 and since then I've used every version typically installing them immediately upon RTM, sometimes even before. I've loved every version and each one has become progressively better IMO. Historically I've spent very little time working directly with HTML files focusing instead on SOA, desktop, and/or Silverlight applications and components. However, over the last year I've been doing quite a bit of work with HTML and I have to say I'm a bit disappointed in the out of the box experience Visual Studio provides with its HTML editor (at least in VS 2013). The primary cause of my disappointment stems from the implementation of auto-completion features. Auto-completion is a feature I love when working with C# code but with HTML it gets in the way FAR too often. Let's look at a couple examples that make me gnash my teeth almost every time. T...

Lenovo Thinkpad X1 Carbon follow-up

Update 10/2016 - This posting is better viewed in my new blog . I've had my Lenovo Thinkpad X1 Carbon for almost exactly a year now so I thought I post a quick follow-up to the original entry I posted last year. First, the keyboard. Within a matter of hours using the original keyboard the enter key started sticking. A new keyboard was ordered and installed and I've had zero issues with it since. I didn't originally think I would like the X1's keyboard due to the separated key layout but I have to admit I love it. I find it very easy to use with just the right amount of tactile feedback for my tastes. It appears my original keyboard troubles were due to a single defective device and not something endemic in the design. Whew! The exclusion of an RJ-45 network port still bothers me a little but it hasn't been a major factor. I still prefer a hard connection when available but the Wi-Fi performance has been exemplary so I can give that a pass. The lack of an ...

Early Impressions of TypeScript

Update 10/2016 - This posting is better viewed in my new blog . I've been playing around with TypeScript for several weeks now and, overall, my early impressions are quite favorable. The typing system and its integration with Visual Studio are very nice and seem quite natural to me after working with C# for the last several years. I also like that it produces plain JavaScript as output. I believe this makes more sense than something like Google's Dart because I simply don't believe anything is going to dethrone JavaScript as the top language for web development even if that language provides a superior programming model (see Silverlight). That said I do have a couple of issues with TypeScript. My first issue isn't with TypeScript proper but with the Visual Studio tooling. When it was originally release TypeScript files appeared in the Solution Explorer with an expandable node which nested the generated .js file under its .ts file. At any time you could easily view...

ng-conf 2014

Update 10/2016 - This posting is better viewed in my new blog . I spent two days last week sitting in on the online stream of ng-conf 2014 the first ever AngularJS conference. There was a ton of presentations and, as is always the case at these things, some were great and some were lacking. Overall I continue to be impressed with Angular and what it brings to the table. A few notes I had. Firebase! Wow that looks incredible. If you haven't seen it and what they called "three-way binding" you should go check it out. Very impressive. Almost every person presenting at the conference was on a Mac. It's seems quite odd to me that most videos I've seen on Angular have been done by a developer using a Mac. I'm not a Microsoft "fan boy" by any means but I am an Apple hater and I simply can't understand how anyone could use Visual Studio then go back to developing with some other IDE. My suspicion is that a majority of Angular programmers are Mi...

Early Impressions of AngularJS

Update 10/2016 - This posting is better viewed in my new blog . Understand first, I've only been working with Angular in my free time over the last couple weeks. With that said I must admit I'm REALLY impressed! Very exciting framework. I dove into Knockout quite extensively a while back and I have high regard for that framework. However, I'm finding Angular seems to be a much better solution for the problem spaces I typically find myself working in. Simply put Angular addresses not only data binding (which originally lead me to Knockout) but also a host of issues which arise when trying to create an "application". I'm having a ton of fun learning Angular in conjunction with TypeScript. More later.