Monthly Archives: August 2014

Free EBooks from Syncfusion

I came across this the other day and I thought it was really good. Syncfusion, a company that makes UI controls for Winforms, WPF, JavaScript, MVC etc, have released a whole bunch of EBooks under the succinctly banner.

Syncfusion FREE EBooks

Syncfusion FREE EBooks

Each book is around 100 pages, hence the succinctly name, and Syncfusion say there are no adverts plugging their products in the books. The books are there as a genuinely useful resource.

There are some really cool books, which I intend to read like :

  • Localization for .NET
  • Powershell
  • Entity Framework Code First
  • MongoDB
  • Neural Networks in C#
  • Twitter Bootstrap
  • AngularJS
  • Windows Phone 8
  • Node.js
  • Visual Studios Add-Ins
  • Unit Testing
  • WPF
  • TypeScript

And many many more. I am going to be adding lots of these onto my reading list. I love the fact that the books are around 100 pages, which means they allow you to dip into new technologies very easily without having to wade through a huge text book.

New TV Section Added

I have added a new section to the menu bar at the top of this site. The sections is called TV. In this section I am going to collate many useful videos that I come across that help with training for a software developer, architect, or software leader. Many of the videos are conference talks, but I will only add videos that I think are good.

Useful Training Videos @ {Coding in the Trenches}

Useful Training Videos @ {Coding in the Trenches}

The TV section is currently split into 5 sections:

  • Software Development
  • Architecture
  • Career Development
  • Agile and Development Process
  • General Computing

Each section already contains a number of videos, but I will be adding many more over the coming weeks, so keep checking back. I will announce newly added videos on my twitter feed.

Screencast Pluralsight to Chromcast from an Android Device

I am a big fan of Google’s Chromecast media key as it allows you to play Netflix, Plex, BBC iPlayer and Youtube on TV’s around my house (I own 2 Chromecasts). I am also a huge fan of the Pluralsight training library, so much of a fan that I applied, auditioned and successfully became a Pluralsight author.

Pluralsight : Hardcore Developer Training

Pluralsight : Hardcore Developer Training

Not so long ago, Pluralsight updated their IPad and IPhone app to support playing their content to a Chromecast device but the Android app did not get updated. I don’t know when or if the Android App will get updated, but there is an alternative that works very well, so you can indeed play Pluralsight courses on a decent TV.

Screencast Tablet Screen

Screencast Tablet Screen

In a recent update to the Chromecast software on android devices, you now have the ability to cast your tablet/phone screen to your TV. This is demonstrated above where I have cast my Google Nexus 7 screen to my living room TV.

Continue reading

Google Location History : Corporate Big Brother is Watching

That is quite a bold post title, but it turns out to be very true. I was sent a link on Sunday to a Google service called Location History, where you could log in (with your Google account) and for any given day it would show you where you was at any point in the day, or more accurately where a phone that was registered with Google was during the day. I think it is safe to assume this is just for Android devices, but I would be surprised if Apple isn’t doing this too.

Don’t believe me, then look at the first image below:

Commute to Work

Commute to Work

This image shows my typical commute to work. In this case on Monday 7th July 2014. The data here is generally pretty accurate. There are a few points that are not quite right, but this is pretty damn close to my commute route to work via train. I don’t mind posting this you can find out the organisation I work from quite easily for this site and my LinkedIn Profile. The image doesn’t show where I live though. I positioned that out of the view.

Continue reading

x86 Internals for Fun and Profit

An old colleague of mine, Matt Godbolt, recently did a talk at the Goto Conference in Chicago. The talk is called x86 Internals for Fun and Profit.  The course is about the following :

It’s easy to treat the CPU that executes our code as a black box, but understanding what really goes on inside it can help you write more efficient code.  In this talk, Matt will lift the lid on modern x86 processors.  He’ll explain some of their features and how the code you write maps to those features.  He’ll give examples of how to diagnose and fix performance issues.  Topics covered include memory, caching, out-of-order execution and branch prediction.

The course is a bit low level for where I work, but it is a very good course that introduces you to some interesting CPU concepts if you are not already familiar with them. I used to work with Matt back in the late 1990’s and early 2000’s when I was in the games industry. The company we worked at was Argonaut Games Ltd in London UK. Matt was a graphics engine developer, so he would write the rendering engines on various different games consoles. Whilst I had a good grasp of 3D graphics processing, I was never good at the low level programming aspect of it all. My area of expertise was Tools development and Games AI. If I remember correctly, the game Matt was working on at the time I left was Red Dog on the Sega Dreamcast.

Even if you are a .NET / Java developer, I recommend watching the course as it gives you some good appreciation on how modern PC based processor architectures work.

Training : F# Functional Programming

In this article I have collated a few training links about the .NET F# Functional Programming Language. I will keep adding to this page as I find other useful free resources. If you have any videos or articles that you feel would be useful here then please let me know in the comments and I will add them to the post. I would like it to be an archive of good material.

F# Functional Language

F# Functional Language

F# Functional Programming Tutorials

Try F#

Learning F#

Walkthrough: Your First F# Program

F# in 20 Minutes

C9 Lectures: Dr. Don Syme – Introduction to F#, 1 of 3

C9 Lectures: Dr. Don Syme – Introduction to F#, 2 of 3

C9 Lectures: Dr. Don Syme – Introduction to F#, 3 of 3

Understanding the World with F#

Information Rich Programming with F# 3.0

Machine Learning with Numl

I came across a really good library recently called Numl. Numl is a .NET library that aims to make Machine Learning much more accessible to developers by abstracting away all the complex parts. What is Machine Learning I hear you say. Machine Learning can be described as (and this is a quote from the Numl site).

The purpose of machine learning is to find (and exploit) patterns in data. Traditionally developers, when faced with a problem, develop and algorithm and write code. Certain classes of problems, however, do not lend themselves to this approach. With machine learning, the developer instead supplies relevant data to the machine and allows the computer to create the appropriate algorithm.

Numl does this via supervised and unsupervised learning. These are :

Machine Learning with Numl

Machine Learning with Numl

  • Supervised Learning : Supervised learning is the branch of machine learning that deals primarily with prediction. Given examples, supervised learning algorithms create models that generalize the decision making process. In essence, the machine learns from the past in order to accurately predict the future.
  • UnSupervised Learning : Unsupervised learning is the branch of machine learning that strives to understand the structure of data. This data, unlike supervised learning, does not have a predefined outcome that requires prediction but is vast enough to require a principled approach to either visual or physical compression.

Supervised learning is that part that I find most interesting and useful for my purposes. When using supervised learning you provide a labelled set of examples, and this can be provided as lists of objects, data tables etc. These data sets contain examples of how decisions were made previously.

Continue reading