Programming

Video Monday | Ideas about a new programming language for games

This video is by Jonathan Blow entitled “Ideas about a new programming language for games.” Jonathan is an independent game developer known for the critically acclaimed game Braid and currently working on a new game titled The Witness. This part 1 of 3 videos that Jonathan put out talking about possible programming languages to replace the de facto standard C++ for game development. I’m not a game developer by trade, I work on enterprise systems so I find talks like this interesting as he covers many details about ideas like garbage collection, memory management, etc that I usually don’t have much need to care about as the language and frameworks I use have built in support to handle those difficult issues for me.

Video Monday | Robert C. Martin @ OOP2015 'Agility and Architecture'

It’s time for another Video Monday! Today I have a very good Keynote by Robert C. Martin at OOP 2015. Do agile methods abandon architecture for speed? Do they replace good design decisions with mindless testing? Are agile methods just another way to hack-and-slash systems together without the appropriate discipline, due-diligence, and documentation? In this Keynote Robert C. Martin describes how the principles of Agile Software Development lead to rich and robust architectures, high degrees of discipline, due consideration of design and architecture, and all appropriate levels of documentation.

SOLID Principles - Five Principles of Object-Oriented Programming and Design

This is the first of what will be a series of posts on each of The SOLID Principles. Before we go into details lets look at an overview of the principles. Every software developer should be aware of the acronym “SOLID” and what it stands for. If you have not then you really should read this blog to learn it. Even if you do, there‚Äôs a good chance your understanding might be a bit fuzzy and a refresher on it never hurt anyone.

Video Monday | AT&T Archives: The UNIX Operating System

It’s time for another Video Monday. Today’s video is a bit of a throwback to an earlier time. It’s a video called “The UNIX Operating System” from the AT&T Archives. In the late 1960s two men, Dennis Ritchie and Ken Thompson, who where computer scientists working at Bell Laboratories created a new computer operating system that would be called UNIX. While the original OS isn’t in much use today the ideas about how the OS were created has inspired many different OSes that are considered the core of the computing world today.

Visual Studio 2015 Released

Good news everyone! Visual Studio 2015 has been released! Visual Studio includes many new features and updates, such as tools for Universal Windows app development, cross-platform mobile development for iOS, Android, and Windows, including Xamarin, Apache Cordova, Unity, and more. I’m very excited for the built in support for mobile development. That has been one area that VS has been lacking and I’m glad they spent some time building out the toolset to support it.

My Developer Toolkit List 2015

There are many software tools that I use as part of my job as a developer. Below is a list of the majority of the tools that I find myself regularly turning to to help me do my work. Some are free, others are paid but they are all part of my ever growing toolkit. I hope by sharing them you might find some use in them as well.

Martin Fowler @ OOP2014 'Workflows of Refactoring'

Here is a very good video about code refactoring by Martin Fowler @ OOP2014 Refactoring is a difficult activity and something that not enough companies dedicate time and resources to performing.

Growing a Language by Guy Steele

This is an amazing funny video about programming languages. This was a keynote by Guy Steele at The ACM SIGPLAN Conference OOPSLA’98. For those confused by the acronyms: ACM - Association for Computing Machinery (A professional organization for people in technology) SIGPLAN - Special Interest Group on Programming Language (An ACM group for programmers) OOPSLA - Object-Oriented Programming Systems, Languages & Applications (An annual conference that ACM SIGPLAN hosts)

C# Mutex for running single instance of a program

Here is some sample code that can be used in a c# application to make sure that only one instance of the program can run at a time. In order to do this you will use a Mutex (Mutual Exclusion) which is a type of system wide lock. In laymens terms a Mutex is like a claim to ownership of a idea. You’re telling the world that no one else can have that idea as long as you are holding claim to it.

Pragmatic Thinking and Learning

Pragmatic Thinking and Learning by Andy Hunt This is another book from Andy Hunt and the Pragmatic series. I can’t emphasize enough how great these books are. Where as in Pragmatic Programming they discussed patterns and practices to improve your developer skills this book takes a step back and is looks at how your brain works. It’s a very interesting concept and one I suggest developers think more about. The book as the title implies covered two areas: