Colin Eberhardt
Blog

Colin Eberhardt

I am Technology Director at Scott Logic and am a prolific technical author, blogger and speaker on a range of technologies.

My blog includes posts on a wide range of topics, including HTML5 / JavaScript and data visualisation with D3 and d3fc. You'll also find a whole host of posts about previous technology interests including iOS, Swift, WPF and Silverlight.

I'm a member of Symphony Foundation, which is encouraging open source collaboration in the financial sector. I'm also very active on GitHub, contributing to a number of different projects.

Tech
WebAssembly is a performance optimised virtual machine that was shipped in all four major browsers earlier this year. It is a nascent technology and the current version is very much an MVP. This blog post takes a look at the WebAssembly roadmap and the features it might gain in the near future.
Tech
With AWS Lambda you pay for execution duration, which means that sleeping or waiting during execution has a direct impact on your bill! This blog post takes a look at how to make AWS Lambda functions sleep, without incurring costs, via AWS Step Functions.
Tech
The WebAssembly specification is evolving, with many new features on the way. This blog post makes one of these future features available today, multi value returns, using the Babel approach of transpiling.
Tech
WebAssembly is a new language for the web, although unlike JavaScript it's not a language you are expected to use directly. However, it is actually possible to write WebAssembly directly by hand and it turns out this is an educational and enjoyable process, which I will explore in this blog post.
Resources
WebAssembly is a new runtime for the web; a fast and efficient compilation target for a wide range of languages that could have a far-reaching impact on the web as we know it. This paper looks at at the performance limits of JavaScript and how WebAssembly was designed to tackle them.
Tech
Over the past couple of months I’ve been exploring the potential of WebAssembly. I wanted to try my hand at creating a more complex WebAssembly application, which is why I’ve been spending my evenings working on a CHIP-8 emulator ... and learning Rust!
Tech
A few weeks ago the new Bristol Pound mobile app was launched, allowing users of this local currency to find vendors, view transactions and make payments on both iOS and Android. This post describes our experience of writing this application using React Native.
Tech
In this blog post I'll take a look at a real-world application of WebAssembly (WASM), the re-implementation of D3 force layout. The end result is a drop-in replacement for the D3 APIs, compiled to WASM using AssemblyScript (TypeScript).
Tech
In this blog post I'll explore the various different ways you can create WebAssembly modules, using Emscripten, LLVM and AssemblyScript, comparing the tooling and performance.
Tech
Creating asynchronous functions that are recursive can be a bit of a challenge. This blog post takes a look at various different approaches, including callbacks and promises, and ultimately demonstrates how async functions result in a much simpler and cleaner solution.
Tech
Market profile charts are relatively complicated and specialised charts used by financial traders. This blog post looks at how to render a market profile chart using D3.
Tech
A few months ago we contributed a project, ContainerJS, to the Symphony Software Foundation, an organization that fosters open source and collaboration within financial services. The Foundation has various legal requirements that must be adhered to, including that all contributors (i.e. committers) sign a Contributor License Agreement (CLA). Unfortunately as...
Tech
Place names in UK and Ireland are very much influenced by their surroundings, with endings such as -hill, -ford, and -wood quite clearly referencing local geography. This blog post uses the new NDJSON command line tools for processing, transforming and joining datasets to create an optimised visualisation.
Tech
This post takes a look at the recently launched GitHub App platform, that allows developers to create integrations and services which can be shared with others. The post describes the development of gifbot, a simple and fun App!
Tech
This blog post describes the process of creating a GitHub bot, hosted as an Amazon Web Services (AWS) Lambda function, that performs various checks on pull requests.
Tech
Small multiples repeat the same basic chart, typically with the same axes, to display different slices of a dataset. They are an excellent way of showing rich multi-dimensional data, without becoming a dense mess of lines. This post looks at how to implement small multiples with D3 and d3fc.
Tech
I downloaded an analysed the training data for 1,000 athlete who ran the London Marathon in 2016. From this data I've learnt that people put in ~30% less mileage than popular plans suggest, Sunday mornings are a firm favourite for long runs, and that Saturday morning parkruns are very popular!
Tech
I recently downloaded run data for the 7,190 athletes who recorded their London Marathon on Strava, a popular platform for runners and cyclists. This blog post visualises and analyses the data in various interesting ways.
News
OK, I’m a bit late; I intended this for the start of January, but this time last year I wrote a post on our most popular 2015 technical blogs. Here I am again!
Tech
A few days ago the roadmap for future Angular releases, starting with v.4 in March 2017, was unveiled. It once again made me re-visit my personal doubts about semantic versioning, the underlying issue being that it is great for computers, but bad for humans. Considering that people are the primary...
Tech
For the past four years I’ve been an author on Ray Wenderlich’s website which provides tutorials for iOS developers. I don’t do much native iOS development these days, However, I do like to keep my skills up to date. As part of this team I sometimes find myself being assigned...
Resources
A white paper which takes a looks at the continued growth of HTML5 and how it is now a viable solution for desktop application development.
Tech
I’ve recently been playing around with the JavaScript Abstract Syntax Trees (AST), with the aim of transforming some JavaScript code into various other languages (Java, C#, Objective-C). As part of my research, I looked at how Babel performs AST transforms. If you’re not familiar with Babel, and the plugins which...
Tech
This blog post shares a few quick tips and patterns that I've been using to structure JavaScript promises; keeping them clean, simple and readable.
Tech
The redux pattern provides a simple (and strict) pattern for managing state; a single store holds the state while a reducer applies actions, evolving the application state. As your app becomes more complex, you can split up your reducer into separate functions, however, what if you have multiple instances of...
Tech
Mondo Bank has recently moved into public Beta, sending out 1,000 cards to trial customers each week. I received my Beta card a few days ago, and have been using it ever since. This blog post takes a quick look at the Mondo API and how I used it to automate expense claims!
Tech
Swift Bond is a binding framework that removes the mundane task of wiring up your UI. In this tutorial, which was originally published on Ray Wenderlich's website, I introduce the concepts of Bond and demonstrate how to use it to rapidly build an iOS app.
Tech
This post looks at integrating Angular 2 with Immutable.js and Redux, a popular Flux store implementation. It also demonstrates that the functional approach, encouraged by these technologies, allow for powerful concepts such as time travel, where you can replay actions and application state.
Tech
Angular 2.0 introduces a component-based approach to building applications, where the rendering can be optimised by selecting a suitable change detection strategy for each component. This post looks at how the OnPush change detection strategy works quite elegantly with the concept of immutable objects as enforced by Immutable.js.
News
Most popular tech blog posts of 2015
Tech
From my perspective Angular 2 is a great improvement over Angular 1. The framework is simpler, and as a result your code is more concise, making use of modern JavaScript concepts. However, this does come at a cost; with Angular 2 the required tooling is really quite complicated.
Tech
This blog post takes a step-by-step approach to building a simple todo-list application with Angular 2.0. Along the way we'll look at web components, dependency injection, TypeScript, bindings and the Angular 2.0 change detection strategy which combine to make a much more elegant framework to its predecessor.
Tech
A few days ago Bloomberg published their list of 50 companies to watch in 2016, and for some reason they decided to publish the entire report in ASCII! I thought it would be a bit of fun to see if I could use D3 to create my own ASCI charts
Resources
This white paper explores and addresses the importance of migrating complex business applications from Flex and Silverlight to HTML5. It highlights the risks involved in delaying your migration and provides a solution that tackles cost concerns at the same time as delivering an early return on investment. The paper covers:...
Tech
JavaScript builds are getting more complex and time consuming. This blog post shares a few steps I took to improve the performance of one of our project's grunt build, hopefully some of the tools I used will be of use to others.
Tech
Most charting libraries are monoliths. The more features they support, the more unwieldy their APIs tend to become. With the d3fc project we have been exploring an alternative approach, constructing charts from a set of small components, using the D3 library.
Tech
Most charting libraries are monoliths. The more features they support, the more unwieldy their APIs tend to become. With the d3fc project we have been exploring an alternative approach, constructing charts from a set of small components, using the D3 library.
Tech
This is my final article on ReactiveCocoa 3.0 (RAC3), where I demonstrate some more complex RAC3 usages within the context of an application built using the Model-View-ViewModel (MVVM) pattern.
Resources
Creating omni-channel experiences in enterprise is more often than not a challenge in terms of strategy and mindset rather than technology. This white paper outlines a twinned design and technical approach that ensures focus is squarely on users and the contexts within they use a system.
Tech
My previous blog post took a first look at ReactiveCocoa 3.0 (RC3), where I described the new Signal interface, and the pipe forward operator. In this blog post I continue my exploration of the RC3 APIs and turn my attention to signal producers. I also discuss a few points around the overall clarity of the new ReactiveCocoa APIs.
Tech
This blog post takes a look at the new ReactiveCocoa 3.0 swift interface, which introduces generics, a pipe-forward operator and an interesting use of curried functions.
Tech
I've been building a React Native app for the past few months, which was published as a tutorial yesterday. A number of people have asked about my thoughts and opinions about React Native - which I am sharing in this blog post.
Tech
A few months ago Facebook announced React Native, a framework that lets you build native iOS applications with JavaScript. I've been spending the past couple of months building am app with this framework, which I have finally been able to share!
Tech
This blog post explores the novel approach taken by the React.js team, where the UI is expressed as a function of the current application state, and re-implements it with Swift.
Tech
Swift has access to all of the Objective-C APIs, which means that anything you could do with Objective-C you can now do with Swift. However, there are times when it is worth exploring a better, pure-Swift, alternative. This post explores the pros and cons of KVO versus a couple of Swift alternatives.
Tech
Swift does not have a built in eventing mechanism. This post explores a few different ways events can be implemented in Swift and how to avoid problems of retain cycles and closure reference equality.
Tech
This blog looks at how CSS flexbox layout can be applied to SVG in order to simplify the task of constructing charts with D3. This approach has been made possible by the JavaScript flexbox implementation that Facebook recently open sourced to support ReactJS Native.
Tech
Swift doesn’t support throwing exceptions, nor does it support catching them. This wouldn’t be a problem if you could develop iOS apps in pure Swift, but unfortunately at the moment you cannot. When developing an app most of the APIs you’ll be working with are Objective-C APIs that have been...
Tech
This blog post looks at a few techniques that can be used to remove the deeply nested if-let statements that are a common sight in Swift code.
Tech
Swift's strict initialisation process results in a number of practical issues, leaving developers scratching their heads. This post explores a few solutions including two-phase initialisation, the use of optionals and lazy properties.
Tech
This post describes a binding helper that allows you to bind arrays directly to table views with ReactiveCocoa. In this update to my previous post, the helper is extended to support mutable arrays.
Tech
This post show how the simple task of computing a Mandelbrot set can be split up across multiple threads (and processors) using functional techniques.
Tech
Recently I updated the Scott Logic blog to implement infinite scrolling using a combination of Jekyll pagination and jScroll. Both of these components are quite fussy about their respective configuration, meaning that integrating them took longer than expected. I thought I'd share my solution in this blog post, hopefully saving others from the hours I spent digging into jScroll code or cursing Jekyll!
Tech
Swift, as I am sure you are aware, is quite a strict, safe and strongly-typed language. However, because the language needs to maintain Objective-C compatibility it has some rather curious features, and the behaviour of `AnyObject` is one of them!
Tech
This post is a continuation of my previous which looked at implementing Conway’s Game of Life using functional techniques. Here I look at how memoization can be used to cache the return value of a function in order to improve performance.
Tech
Apple released the first public beta of the Swift programming language just over three months ago. Within days of the release myself and Matt Galloway started working on our book Swift by Tutorials, which as of yesterday is finally finished and shipping!
Tech
This blog post shows an implementation of Conway’s Game of Life using functional techniques in Swift. This results in code which is a clear and concise representation of the game’s logic. I also take a closer look at ranges, intervals, the pattern match operator, ~= and how local functions help...
Tech
It was just two months ago that Apple took us by surprise in releasing the Swift programming language. This blog post reflects on the first few months of Swift adoption.
Tech
This blog post looks out how Swift makes the combination of ReactiveCocoa and MVVM even better ...
Tech
A few months ago I published a blog post which showed the results of analysing the meta-data of 75,000 apps from the iTunes App Store. This blog post continues the analysis by adding 60,000 Android apps into the mix.
Tech
I've recently had a two-part tutorial published on Ray Wenderlich's website that details how ReactiveCocoa can be used to implement the MVVM pattern within iOS applications.
Tech
In this blog post I want to take a quick look at the Swift Sequence protocol, which forms the basis for the for-in loop, and see how this allows you to write code that performs sequence operations that are only evaluated on-demand.
Resources
Moving from desktop or plugin technologies (Flex, Silverlight, Java Applets) to HTML5 is a challenge for developers of large-scale enterprise applications. This White Paper discusses the challenges and offers potential solutions.
Tech
This blog post presents a simple utility class for binding ReactiveCocoa ViewModels to UITableViews without the need for the usual datasource / delegate boiler-plate.
Tech
This blog post presents the result of analysing 250,000 screenshots from the Apple App Store, looking at hue, lightness and saturation histograms for each category.
Tech
The App Store continues its rapid growth, with approximately 300,000 apps added each year. I decided it would be fun to download as much app metadata as possible in order to see what patterns and trends I could find. This blog post describes the results.
Tech
This blog post looks at how to simulate accelerometer and location data so that you can test iOS apps without the need for a physical device. The simulated data is provided by an interactive UI which allows you to rotate the phone and mark paths on a map which can then be replayed.
Tech
It feels like everyone in the iOS community is talking about ReactiveCocoa at the moment. In this blog post I talk briefly about what ReactiveCocoa is and the 'Definitive Guide' which I wrote for raywenderlich.com
Tech
PropertyCross has just announced a v1.3 release, which includes two new frameworks, a number of updates and an improved build system.
Tech
The book, iOS 7 By Tutorials, which I contributed four chapters to, is now in print.
Tech
This article explores the various ways you can create objects with the JavaScript language, and through this exploration finds that there is much to learn about the language!
Tech
This blog post looks at creating an interactive tab bar controller transition, where you can swipe left and right to navigate between the tabs. The transition itself is a 'paperfold' effect - very pretty!
Tech
With iOS 7 Apple introduced a new set of APIs for creating custom View Controller transitions. In this blog post I look at how to create a custom 'flip' transition, giving the impression of a turning page.
Tech
For the past four months I have been hard at work writing four chapters for a book, iOS 7 by tutorials. Just yesterday, as the iOS 7 NDA was lifted, the book went on sale.
Tech
A couple of days ago Microsoft announced Windows Phone App Studio, a web based tool for the rapid creation of Windows Phone applications. In this blog post I take this new technology for a spin to see what it's capable of, and the interesting potential it has for creating 'personal' apps.
Tech
My latest iOS development article has been published on Ray Wenderlich's site, this time I look into how to develop custom iOS controls. The article describes the creation of a 'range' slider control, and covers topics such as API design and using Core Graphics for rendering. Interestingly, iOS developers have...
Tech
For the last six months or so I have been deeply immersed in a combination of iOS and HTML5 development. Now I don't want my C#/XAML skills to get too rusty, so over the weekend I decided to write a simple Windows 8 Store App. You can see the results...
Tech
A couple of days ago we hosted a one-day conference, HTML5 - It Just Got Real, at the Royal Society buildings in London. As promised, we have made all of our presentations available online.
Tech
This blog post describes the addition of a two-finger rotation and three-finger pitch gesture to the Windows Phone 8 Map control. You can see these gesture in action below: The WP8 release replaced the image-tile based Bing maps with a fully vector-rendered map from Nokia. Being vector-based, this map can...
Tech
This blog post compares the same twitter search application written with both Knockout and Kendo in order to highlight the strengths and weaknesses of each framework. Introduction I've always been a big fan of Knockout, most likely because it reminds me of Silverlight (rest in peace). For my thoughts on...
Tech
Announcing a one-day conference at the Royal Society, London UK, on the 14th of May. Just a few years back I wrote a white paper titled "Flex, Silverlight or HTML5? Time to decide ..." with the help of a couple of my colleagues, comparing the strengths and weaknesses of the...
Tech
I've just received an email from those nice folks at CodeProject letting me know that my article 'A Windows Phone 8 Run Tracking App in 100 Lines of Code' has just won the Best Mobile article of January 2013 award.
Tech
In the past few months I have been immersing myself into the world of iOS development. Whilst the Objective-C language takes a little getting used to, with its odd syntax and memory management rules, it is certainly a fun platform to develop for. I do miss a few C# language...
News
Earlier today I received an email informing me that I have been awarded a CodeProject MVP for the year 2013. I am very grateful to CodeProject for this award - it is a very popular website for developers, with around 10 million members, and thousands of authors. It is an...
Tech
Yesterday I published a new article on CodePrioject: Property Finder - a Cross-Platform Xamarin MonoTouch Mobile App This article looks at how you can write a cross-platform mobile application with a shared C# code base using Xamarin MonoTouch. The application that is described in the article, a property finder, is...
Tech
Introduces a new open source project that helps developers choose a suitable cross-platform framework
Tech
This blog post introduces a simple pattern for adding multicasting capabilities to existing iOS controls. Adding multicasting allows for improved clarity and code re-use. Colin Eberhardt is CIO at ShinobiControls, suppliers of highly interactive and fun charts, grid and UI controls for iOS developers. Most iOS controls have a concept...
Tech
The technologies that we use to write applications for our end users are changing at a frightening pace! Over the past few years the title of my blog has changed from "Adventures in WPF" to "Adventures in .NET", and more recently to the very generic "Adventures in Technology". The latest...
Tech
This blog post looks at the issues regarding integration of KnockoutJS and jQueryMobile, and provides a simple worked example - a Twitter Search application - where the two technologies play nicely together! The code for this blog post can be found on github. You can also try it out on...
Tech
A couple of days ago a published a new article on CodeProject, this latest article tackles the migration of a gesture-drive application from Windows Phone to Windows 8: "I had fun porting my gesture-driven to-do list application to Windows 8, and had an interesting journey along the way. There are...
News
I have just found out that my article "A Gesture-Driven Windows Phone To-Do List" won first place in the July 2012 best mobile article category. Thanks CodeProject, looking forward to receiving my collection of goodies - especially the new mouse mat! (Why not check out my latest article, a HTML5-based...
Tech
A while back, when PhoneGap for Windows Phone was still in beta, I created Property Finder, an application for searching UK property listings. This application successfully made its way into the Windows Phone Marketplace, making it the first WP7 PhoneGap app. I recently developed the Property Finder application further in...
Tech
A couple of weeks ago Josh Smith published his latest book, "iOS Programming for .NET Developers", which seeks to ease the transition from .NET to iOS developers. As someone who has many years of .NET experience, and more recently a desire to develop for 'the other side', I thought this...
Tech
Over the past few weeks I have been working on a Windows Phone to-do list application, inspired by the iPhone Clear app. I have just published the final application over on codeproject. You can see it in action below: Pop over to CodeProject for the full sourcecode and implementation details....
Tech
This blog post describes the creation of a simple twitter search application for iOS, based on a similar application I wrote for Windows Phone a few months back. In this blog post I'll used the MonoTouch platform, which allows you to write iOS applications using C#. This blog posts describes...
Tech
It's been a busy Twitter day for me. A reasonably inane tweet that I posted this morning pointing out that the announcement of the (potential) Higgs Boson discovery was written using the much derided Comic Sans font has been retweeted thousands of times, and has been the top tweet for...
Tech
A couple of weeks ago I blogged about a todo list application which uses gestures to achieve its basic functions, a left swipe deletes an item, while a right-swipe marks it as complete. In this blog post I am adding re-ordering which is initiated via a tap-and-hold gesture and performed...
Tech
My blog post from yesterday "A Developer Perspective on Windows Phone 8" sparked a bit of furious debate on Twitter. I think it is fair to say that I was not the only one who was quite concerned about the impact of aligning the developer experience of Windows Phone 8...
Tech
This blog post takes a look at what Windows Phone 8 (WP8) means for Windows Phone 7 (WP7) developers and the Microsoft development platform in general. This has been a big week for Microsoft; Monday saw them unveil the new Surface tablet that runs Windows 8. This was followed up...
Tech
In this post I present a graphical comparison of the Microsoft Surface and Apple iPad tablets
Tech
This blog post describes the implementation of a gesture-based todo-list application. The simple interface is controlled entirely by drag, flick and swipe: So far the application supports deletion and completion of tasks, but not the addition of new ones. I'll get to this in a later blog post! Introduction -...
Tech
This blog post introduces the new jQuery Mobile Metro theme and demonstrates how to create a web UI that detects the device it is being viewed on, to render a Metro UI on WP7 and iOS on other devices
Tech
This blog post presents a thorough analysis of the performance of various WPF Charting components. The results show that a new class of charting solutions, which use raster-based graphics as opposed to retained mode vector graphics, provide a considerable performance advantage
Tech
Introduction This is the second post in my series about databinding in Silverlight and WPF. In the first post I looked at how you wire-up UI controls to a model in the absence of a databinding framework. I showed how databindings can be created in code-behind, removing the need for...
Tech
I have just published a new article over on CodeProject called "KnockoutJS vs. Silverlight". It demonstrates the implementation of the same application using both frameworks, and seeks to answer the question "Which is better, Silverlight or Knockout?" It's a bit of an epic (6,500 words). I hope people find it...
Tech
OK, so the title is a little ambitious, but there is nothing wrong with setting yourself lofty aims! Because of the depth of this topic I have decided to split this tutorial up into a series of blog posts, each of which explore a different aspect of the binding framework....
Tech
This blog post describes my experiences of developing a simple Todo application with Google Web Toolkit (GWT), that I have contributed to the JavaScript TodoMVC project, which compares the implementation of the same application with various JavaScript frameworks. This blog discusses why I chose GWT, the compromises and benefits of...
Tech
I have just published a new article on codeproject, which describes the creation of a Silverlight custom control for plotting the relationships between a network of nodes. Head over to codeproject and take a look! Visualisation of Eurozone Debt You can see the control in action below, where it is...
Tech
Yesterday I presented a talk at the London-based Windows Phone User Group on the development of cross-platform mobile applications using PhoneGap. Here are my slides from the presentation: And here is the twitter search application I demoed: PhoneGapTwitterSearch.zip You can also try out Property Finder on your phone. Thanks to...
Tech
UPDATE: I have posted the sourcecode for this control on codeproject. Recently I have been wondering about the wealth of information that can be gleaned from the 2.5 million programming question on Stack Overflow. A few weeks back I found a tag trending tool, which can be used to measure...
Tech
Around one year ago I made the prediction that Silverlight would have an overall adoption of 81% by the end of 2011. The adoption statistics are now available and indicate that my predictions were wrong by more than 10%, with Silverlight adoption reaching just 67% at the start of this...
Tech
In a couple of weeks I will be giving a talk on using PhoneGap for cross platform mobile application development at the WPUG #NotAtMWC12 event on Tuesday, February 28, in London. This post gives a brief overview of my talk and a video.
Tech
This blog post provides step-by-step instructions for creating a user control, which exposes bindable properties, in WPF and Silverlight. The post covers dependency properties, and how to manage DataContext inheritance. When building user interfaces you will often find yourself repeating the same UI patterns across your application. After all, users...
Tech
About a month ago I published an article which demonstrated how to create a WP7 application using static HTML pages and PhoneGap. Whilst PhoneGap makes the packaging of HTML / JavaScript / CSS and images into a breeze, one thing it doesn't do is provide correct back-button support. Correct back-button...
Tech
The Windows Phone 7 camera gives you the option to record the location where a picture was taken (under Settings => applications => pictures+camera). With this feature turned on, each application has their latitude, longitude and altitude stored as part of the standard EXIF data. I thought it would be...
News
I have just received an email from Chris Maunder, co-founder of CodeProject, informing me that I have been awarded CodeProject MVP status for 2012.
Tech
I recently released an update of the HTML5 / PhoneGap application I wrote a few months ago to the marketplace. This update fixed the location detection issue, where the marketplace certification process failed to detect that the application was using geolocation data via the browser (this issue has been fixed...
Tech
Last night, with my Christmas presents all wrapped and a lack of any decent programmes (festive or otherwise) on television, I had a few hours to kill, so decided to create a festive-themed WP7 game ... Ever since I first started writing code for Windows Phone 7 I have wanted...
Tech
Over the weekend I mentioned on Twitter that I had created a Metro-style PowerPoint template. There were a few requests to share, so hence this blog post. Scroll to the bottom to download the PowerPoint file. So why create a Metro-style PowerPoint presentation? A couple of reasons, firstly, the templates...
Tech
This blog post shows how you can use PhoneGap to create Windows Phone 7 applications that are comprised of multiple, simple HTML pages, whilst meeting the Marketplace certification requirements. Colin Eberhardt is a Scott Logic technical Evangelist and a Technical Architect for Visiblox, suppliers of high-performance WPF and Silverlight charts....
Tech
A popular user-interface in the iOS world is the UIPageControl which renders a small set of dots to indicate the number of pages, with the current page highlighted in some way. This is often used in conjunction with a UIScrollView to navigate between pages in a multi-page layout. Windows Phone...
Tech
Recently I have been researching the use of PhoneGap for creating HTML5 Windows Phone 7 applications. I have written an introductory post on the subject and also managed to have a HTML5-based application accepted into the marketplace. The Windows Phone 7 execution model has a few unique features (when compared...
Tech
This blog post provides a simple utility class that will cluster pushpins on a Bing Map control. This utility provides a way to achieve great performance with 1000s of pushpins. The Bing Map control for Windows Phone 7 is a versatile control, allowing you to provide your users with an...
Tech
This blog post describes a simple helper class that can be used to supress scrolling and pinch zoom of the Windows Phone 7 WebBrowser control. Colin Eberhardt is a Scott Logic technical Evangelist and a Technical Architect for Visiblox, suppliers of high-performance WPF and Silverlight charts. Developers of Windows Phone...
Tech
It has been another interesting week for HTML5 and front-end technologies. We have seen Adobe abandon work on mobile versions of the Flash plugin, news of Silverlight 5 being the last version of the Microsoft plugin and more recently an announcement that Adobe will no longer develop Flex, its enterprise...
Tech
With the new Metro UI, Windows 8 has firmly embraced the tablet form-factor, with the interface tailored for touch and multi-touch interactions. Many of the Metro concepts familiar to Windows Phone 7 (WP7) developers are also present in Windows 8. Watching the vieos from the //build/ conference you can see...
Tech
Last week I submitted Property Finder, a simple application that searches for properties based in the UK, to the Windows Phone 7 Marketplace. I was happy to receive confirmation that this application had been certified and published just two days later. You can download the application from the marketplace now....
Tech
A few weeks back I wrote a blog post about how the recent announcement of PhoneGap support for Windows Phone 7 (WP7) which makes it possible to develop HTML5-based applications. In my previous blog post I showed the development of a simple HTML5 / JavaScript application which PhoneGap wraps up...
Tech
I have just received an email from Codeproject - my article on XAMLFinance, a cross platform Silverlight, WPF and WP7 application, has won Best C# and Best Overall article competitions for September. Having narrowly missed out in the monthly competitions a few times, I am pleased to have scored a...
Tech
Having spent a number of years studying Physics at university, I have had the importance of error bars well and truly drummed into me! Within physics, or any experimental science, there are always going to be errors in the measurements you make. The more repeat measurements you make, the more...
Tech
This blog post provides an implementation of IPagedCollectionView which allows paging of data from the server. An IPagedDataSource is introduced that allows any paged data source to be plugged in, with the standard controls such as DataPager making it easy to create paging applications. With web-based applications, bandwidth constraints often...
Tech
This blog post looks at the new concept of 'transitions' that WinRT, within Windows 8, introduces. This concept makes it very easy for you to create a fluid and interactive UI without going anywhere near storyboards! I have to admit it, I am a big fan of the Metro Design...
Tech
WInRT introduces a new interface for collection change notification, IObservableVector, which means ObservableCollection no longer works with this framework. In this blog post I will show how you can use ObservableCollection, via a simple adapter, within you WInRT applications. <ItemsControl ItemsSource="{Binding Path=MyCollection, Converter={StaticResource ObservableCollectionAdapter}}"/> Developers are slowly starting to get...
Tech
In this blog post I look at the new application lifecycle model that Windows Phone 7.1 (Mango) introduces, and show how to handle the various lifecycle events in a simple MVVM application. In a previous blog post I described the development of a simple Windows Phone 7 application using the...
Tech
This article show the step-by-step development of a Windows Phone 7 HTML5 application using PhoneGap. It also looks at how viable this approach is for cross-platform mobile development. Colin Eberhardt is a Scott Logic technical Evangelist and a Technical Architect for Visiblox, suppliers of high-performance WPF and Silverlight charts. Introduction...
Tech
I've just had an email land in my inbox from Microsoft's Mike Ormond, announcing that the Windows Phone 7 book that I contributed a couple of chapters to (Introduction and Tools), has finally been published! This is a collaborative book with contributions from Pete Vickers, Andy Gore, Mike Hole, Gergely...
Tech
I have just published a new article on codeproject which describes the development of XAMLFinance, a cross-platform application for the desktop (WPF), web (Silverlight) and phone (WP7). Head over to codeproject to read about the development of this application and download the sourcecode. Regards, Colin E.
Tech
With the Windows 8 preview release earlier this week, developers are now faced with a whole new and exciting Microsoft stack. The Windows 8 architecture has something of a split-personality, incorporating a completely new runtime, WinRT together with the older Win32 and .NET framework. However, these sit on different sides...
Tech
In this blog post I take a look at Windows 8 on the outside, from a user perspective; and on the inside, from a developer perspective to see how it will change the way we develop with Windows on tablets, smartphones and the desktop when it is released next year....
Tech
Just a few weeks ago I wrote a blogpost "Can Microsoft 'fix' JavaScript and make HTML5 applications viable?", where I described some of the issues with JavaScript and how these could be solved by Microsoft if they wrote a C# to JavaScript compiler. Just a couple of days ago it...
Tech
Microsoft's recent change in stance over Silverlight, promoting HTML5 as "the only true cross-platform solution for everything", seems to have sidelined Silverlight as a niche framework. This has understandably caused a great deal of upset and confusion in the .NET development community. Despite this, Microsoft are remaining steadfast and tight-lipped...
News
I am happy to have been invited by NEBytes to give a talk on cross-platform XAML applications later this month. The event kicks off at 6:30pm on August 17th at Room 120, Claremont Tower, Newcastle University, with the event including both my presentation and a talk on Office 365 by...
Tech
This blog post describes how to implement a conversation / messaging style application with Windows Phone 7. It covers how to style the speech bubbles and the scrolling of the conversation list view when the phone keyboard is shown. A couple of weeks ago I wrote a blog post which...
Tech
The Windows Phone 7 Panorama control is widely used in applications and to many has come to symbolise the Metro Design Language. Search for panorama images and you will find numerous promo-shots of Windows Phone 7 applications which display the panoramic contents of the application hub, with an image of...
Tech
This blog post looks at how to to create a conversation view, mimicking the SMS messaging interface within Windows Phone 7. This post shows how we can select different DataTemplate for each item in an ItemsControl to achieve this effect. The Windows Phone 7 SMS messaging interface graphically illustrates between...
Tech
I have just published an article on codeproject which describes the differences in development between Silverlight and HTML5. In order to illustrate the differences, I have re-implemented my Windows Phone 7 JumpList control using HTML5/CSS3. You can see this control in action below: (NOTE: this will look best in a...
Tech
Earlier this week I presented a talk to the Silverlight UK User Group on cross-platform application development with WPF, Silverlight and Windows Phone 7. Thanks to Gergley Orosz for these pictures Thanks to all who attended my talk. Here is a copy of the presentation I gave: You can see...
Tech
Readers of my blog will probably have noticed that I have a keen interest in both charting and performance. My friends over at Visiblox have combined these both to create what is one of the fastest charts for WPF, Silverlight and Windows Phone 7, see my recent benchmark blog post...
Tech
When I started the Metro In Motion series, I thought I would probably post three or four articles and be done. However, every time I use my Windows Phone 7 I seem to spot a new 'native' fluid UI effect which I would like to use in my own code....
Tech
This blog post details a simple metro-in-motion behaviour which reduces the Panorama control's contents while the user slides from item-to-item so that they can really appreciate your fancy background graphic! For those of you who have not been following my Metro-In-Motion series, I'll briefly recap. My aim is to provide...
Tech
This blog post describes the development of a rolling list location indicator. This indicator mirrors the behaviour seen in the native Windows Phone 7 calendar which rolls from one date to the next as the user scrolls. For those of you who have not been following my Metro-In-Motion series, I'll...
Tech
This blog post shows how to implement tombstoning within a Windows Phone 7 application that following the Model-View-ViewModel pattern. UPDATE: I have published a update to this blog post to handle the new dormant state in Windows Phone 7.1 (Mango). Colin Eberhardt is a Scott Logic technical Evangelist and a...
Tech
For the past few months I have been writing a Metro-In-Motion blog series which describes how to recreate some of the fluid effects found in native Windows Phone 7 applications within your own applications. So far I have covered fluid list animations, 'peel' animations, flying titles and a 'tilt' effect...
Tech
When meeting current and prospective clients the subject of web technology choice often arises. There has been a great deal of confusion and uncertainty out there, even before Microsoft's perceived change of stance with respect to Silverlight emerged. This white paper is intended to help technology decision makers come to...
Resources
When meeting current and prospective clients the subject of web technology choice often arises. There has been a great deal of confusion and uncertainty out there, even before Microsoft’s perceived change of stance with respect to Silverlight emerged. This white paper is intended to help technology decision makers come to...
Tech
This blog post describes the implementation of a metro 'tilt' effect for Windows Phone 7 which causes element to respond to user interactions by tilting in 3D So far in the "Metro In Motion" series I have covered fluid list animations, 'peel' animations and flying title. In this blog post...
Tech
This blog post describes a novel method of generating boiler-plate MVVM code using codesnippet automation. You simply add attributes to your view model classes and the code is generated for you! Model-View-ViewModel (MVVM) has become the de facto pattern for Silverlight, WPF and WP7 applications, providing code that is easily...
Tech