I covered this in my last two posts, but the Spek language that I’ve been slowly working on over the past few months is based on the Axum programming language originally developed by Microsoft about five years ago. I’ve been making changes to the Axum language’s grammar after spending a couple of weeks painstakingly trying to recreate it. The area I’m working to change at the moment are channels and ports.

To recap where we are: channel patterns are entirely out, channel ports have been updated, channel functions just came back from vacation, and a couple of feature ideas for channels in the future to share.Continue reading

I covered this a bit in my last post, but the Spek language that I’ve been slowly working on over the past few months is based on the Axum programming language originally developed by Microsoft about five years ago. I’ve been making changes to the Axum language’s grammar after spending a couple of weeks painstakingly trying to recreate it. The area I’m working to change at the moment are channels and ports.

To recap where we are: channel patterns are entirely out and channel functions are on holiday until further notice.Continue reading

I’m having a hard time trying to understand how Microsoft open sourcing .NET is going to help them, at least financially. I get that developers want to have the option of running on Linux, and that by doing this, they win the development community. Microsoft has a horrible history of not always choosing right over profitable.

With the status quo prior to this last week, the use of .NET on non-Windows machines meant you were a year or so behind the curve by using Mono. At least depending on what you wanted to implement – some of the asynchronous parts of the MVC framework is still out of reach, and both WPF and WCF were left entirely unimplemented.Continue reading

I haven’t touched the Spek project in a few weeks and decided to give it some attention tonight. In playing with Java, Ruby, Python, and Node.js over the past couple of months, I’ve wondered what sort of additional syntax or overall languages changes I should consider before finishing the grammar.

The Spek language is pretty much a duplicate of the Axum language developed by Microsoft back in 2009. I’ve only made a really small change to the syntax for how a developer would interact with a channel and possible network operators, but the rest of the language is exactly the same so far.Continue reading

Unless you have some really great connections, every type of debt I have ever had the displeasure of dealing with has come with some sort of interest payment. If your company has adopted Agile software development methodologies (Scrum, Kanban, XP, etc), but is only delivering software on a quarterly basis (or less often), chances are that you are paying a ‘release debt’ with interest.

If the concept of ‘technical debt’ could be overly simplified as ‘stuff that you’ve been meaning to fix‘, then you could easily view release debt as ‘stuff that you’ve been meaning to deploy‘.Continue reading

I got into a discussion this past week with one of my colleagues about rate limiting or throttling for APIs. In particular, how we might handle a user going beyond their limit and how we would inform them of what the threshold values are so they can continue calling later on. Neither of us came to an agreement – he took the 503 route and I took the 429 route.

As a side effect though, we took a look at some various companies out there, and found only a couple of HTTP response codes and headers, which all at least follow the same model, with only moderately different header names. For the most part, they all seemed to have these exact headers, or variations of them with slightly different names.Continue reading

For someone who can barely keep his blog up to date, I would still love to write a book one day. I’ve been told I have a great amount of technical talent multiple times, can sometimes firehose people asking for an intro to a topic, or get a bit detailed. So I’ve got plenty in my head to share, I’m just not sure on how to distill the knowledge I have and what topics people would be genuinely interested in reading. My frontrunners for the topics I’d love to write about are:Continue reading

The current project I’m on is finding a path to adopting DevOps in an enterprise environment. The weeks of preparation, pitch to directors, and executive management is in the past, I’ve received the necessary approval to proceed without any limitations (outside of additional authority to actually enforce change). Still need to persuade each product group to see the light and change on their own, while guiding them down a yellow brick road.

News had spread a little that we got the green light, and some individual contributors in the company were interested in what DevOps was really all about. There is as much curiosity in learning more about it as there was fear of job loss from the change, even though no headcount modifications were even in the pitch. The only changes we suggested were lateral moves in the existing reporting structure.Continue reading

I was asked by another developer recently that was struggling to find a way to provide a Guid that was somehow a hashed value of a given string. The idea was that for any provided string, it would always return the same Guid value. They weren’t concerned with duplicates as that was taken care of using some other set of business logic.

The best thing that came to mind that accomplished this was pushing the string through the MD5 crypto provider and then feeding it into the Guid constructor. The output from the provider is 16 bytes, which just so happens to be the matching array size that the Guid constructor hopes to receive.

Weirdly, neither him or any of the other developers on his team knew about this trick. So I figure it’s something that should be worth posting as it didn’t seem obvious to them, and I guess I should make use of this blog thing every once in a while given that I pay $10/month for it.

If you happen to be giving Visual Studio 2012 RC a run around the block and noticed all of the menus are in CAPS, you can drop this in a Setting.reg file and import it…

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\General]
"SuppressUppercaseConversion"=dword:00000001

If you decided that you want to go back, change the contents of the file to the following and import it again…

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\General]
"SuppressUppercaseConversion"=-

Update (10/13/2014):

These same instructions can be applied to Visual Studio 2013 as well by substituting the ‘11.0’ value for ‘12.0’. For those of you using Visual Studio Express 2013 for Web, the same instructions while substituting the ‘VisualStudio’ value for ‘WDExpress’ will work.

With whatever version you are using, if you don’t want to open the Registry Editor, you can also enable it using PowerShell and the appropriate registry string like so…

Set-ItemProperty -Path HKCU:\Software\Microsoft\VisualStudio\12.0\General -Name SuppressUppercaseConversion -Type DWord -Value 1