(click on the image to see other Mini-tutorials)
Turing Entry: [Novice: 3] FAQ Table of Contents
The Turing Project design calls for a four component system:
- Data Entry
- Data Storage
- Data Service
- Data Display
Eventually Data Entry will be via email or web, Data Storage will probably be SqlServer, Data Service will probably be a WCF application and Data Display will be an increasingly spectacular Silverlight application.
Corpus omne perseverare in statu suo quiescendi
Expanding the Spec – Reports
In discussion of this project, one feature that surfaced right away was the desire to have a module that displays statistics about blogs, authors and topics in various ways. I imagine that we would certainly want to have a treemap for topics and other charts that show, for example, the pace of blogging for a given contributor.
A treemap is an increasingly popular control for displaying trends in data because you can put a lot of information in a small space and still make it relatively easily understood. There are nice write-ups of the treemap here and here
(Colors indicate categories, saturation of color indicates quantity)
Successive Approximation
One of the difficulties in the “get it working and keep it working/ successive approximation” approach to coding is that you have to be able to see a hut and imagine a mansion. The advantage is that it is easier to build a hovel and turn it into a hut and from there to a ranch, to a tudor, to a center-hall colonial and on to a mansion (at least it is for me; others disagree).
The second big obstacle many of us face is Newton’s First Law: “Every body persists in its state of being at rest… except insofar as it is compelled to change its state by force impressed.” That is, it is hard to get started.
Overcoming Inertia
I find that the best way to overcome inertia is to start coding. (I also find that the best way to spend my day). Let’s begin with Data Entry (it happens to be first on the list).
In time, I imagine that adding a blog entry to the db will be very low-friction; the user will be able to send an email or, even better, we’ll write a plug-in for LiveWriter that takes care of the notification automagically. For now, however, we’ll get 90% of the functionality by writing a small application that gathers the data in a form and prepares the data for distribution to Data Storage.
Form
To create the form, we first need to know what data we need. As a first cut I’ve identified the following useful data:
Datum | Type | Control Type | Notes |
Full Name | String | Autocomplete | |
Alias | String | Autocomplete | (email) |
URL of blog | string | Autocomplete | |
URL of entry | string | TextBox | |
ShortURL | string | TextBlock | we generate |
Date of Entry | DateTime | DatePicker | |
Topic | string | TextBox | |
Tags | strings | Listbox | optional |
Level | enum | radio button | optional |
SL version Compatibility | enums | check boxes | optional |
Once again, in time we’ll divide these into those fields which we only need to collect once (e.g., Full Name, URL of Blog) and those which are specific to a given blog entry.
Novice | Previous: Project Levels | Next: Creating a form |
Advanced | Previous: Project Levels | Next: Data |