Monday 22 December 2014

the story so far... II

I've not spent as much time as I would have liked on the 'lunch project' this week.  The idea is to create an app to help me with Christmas lunch.  To say I'm cutting it fine is well... true.

What I've done

  • I've decided to make an app to aid in the cooking of Christmas dinner
  • I've created wireframes
  • I've started to build the app using meteor
  • I've had some fun with DNS which has now been fixed.
  • I've added adsense to this blog

Where I am

  • You can now see steps and add new ones to the app
  • I've fixed the dns for (so that it ends up here you may need to clear some caches if you've already tried this)
  • I've also got to the point where the times add up.

What I'm hoping to do

  • By Thursday (25-12-2014)
    • Get something working that I can use on Christmas day.  The next big step is sorting out dependancies.
  • On Wednesday (24-12-2014)
  • On Friday (26-12-2014)
  • On next Monday (29-12-2014)
    • Write another "story so far post" admitting what I didn't get done from the above list.

Friday 19 December 2014

friday's interesting things II

Taking a break from building an app here's this weeks interesting things that grabbed my attention this week.  Though I'm sharing them here, I'm really using these lists as a sort of bookmark list.

Learn Meteor in 6 weeks

This is interesting, I've done quite a few of the tasks, though following the disaster last night, I might need to re-visit some of the earlier steps.  I know that I don't have 4 solid hours a day to work on this sort of project (and that would put me a long way after Christmas) however it does look like a fun list.

A world without microbes

A friend of mine from 6th form college (which was a very long time ago) has written an article about what the world would be without microbes.  Even though my biology lessons finished with my GCSE's at 16 I found this accessible and really interesting.


Dominus is a nice (free) web based game built with meteor.  I've just started playing and it looks really interesting.  Also the author has some interesting things to say about Meteor's check function

Hex colour clock

This has been all over the web this week, partially as it's such a simple and well executed idea. I really love this.

Thursday 18 December 2014

an evening of sorting out a meal (getting collections in meteor wrong)

Not the best of evenings, I've spent the last few hours trying to add the meal part and getting dates just wrong.

It's one of those things that I'll try and sort out tomorrow.  The main issues were to do with adding the new parent part to the collection and then trying to sort out the date part.  All this is in preparation for sorting out dependancies.  I'll get there and I'm feeling quite pleased that this is the first evening that's gone badly, but I'm going to close the laptop and go to bed.

I've started on the interesting Friday things part 2 but I'll get it sorted tomorrow.

Wednesday 17 December 2014

marking things as done (and not doing things!)

Well it was an interrupted couple of hours but it was a couple of hours...
I have added the ability to mark steps as done (or to undo said marking).  I've also added some "beautification" and started to get rid of some of the css that had been given with one of the tutorials.

I'm quite pleased with where I've got to, it's going to lead nicely into tomorrow's playing with dependencies (or at least hopefully tomorrow).  If you want to see the new functionality it is (as ever) at you'll need to be logged in to mark things as done / undo them.  There are a few bits that I'm not really that happy with:
  • The layout doesn't quite feel right, mostly the second part that will contain the details of the dependencies.
  • The button labels: "done" and "undo", better suggestions are more than welcome
  • Logged in / not logged in bits not quite working as I would have expected.
  • I thought I'd added a deny rule that I would have needed to change to stop me doing exactly what I've done.
Of the these it's the last one that concerns me most, however I need to do quite a bit of playing with the security and ownership bits so I'm sure it'll all come out in the wash.  Overall I'm quite pleased with the progress I've made over the last couple of nights.

In other news I now know what I'm cooking meat-wise for Christmas lunch - a 2 kg turkey crown and a piece of topside.  The topside is being provided by my parents in law so I'll not know exactly the weight of that until they arrive on Friday.
For posterity here's a screen show of the current look:

To the things not done, I made a deliberate decision to not write a "so you want to..." post tonight, I was in the mood for keeping going with the lunch project.

Tuesday 16 December 2014

seconds, minutes and hours

I've managed to spend a couple of hours playing with my app to help me cook Christmas lunch...
I've now enabled editing, and instead of adding time as just seconds it is now input as seconds, minutes and hours.
I'm quite pleased with this evening's progress, and I've started to veer away from the book.  It's been a bit of a struggle, but finally I feel as though I really am getting there.
As ever if you want to see and play the app is currently here:
And the latest github commits here:
Of course anything could happen when next I pick up the laptop...

My next few of steps are:

  • Be able to mark steps as done or not
  • Have steps belong to a "meal"
  • Determine the start time based on a provided final time
  • Have steps depend on other steps
After that we get into the real fun of making it pretty. I suspect that due to taking some nights off and spending time last night playing with adsense (which it appears is still waiting for a second verification). I'll not quite hit my target of tomorrow night for everything being "working but not pretty", but I'll be close (provided I get to play tomorrow night).  Oh and I still haven't decided what "so you want to" topic I'll choose for tomorrow, I'll probably go with "so you want to build a website..."


I mentioned that I was thinking of adding google's adsense ads to the blog, which I've now done (and you should be seeing).

I've worked with the internet for a large number of years and although most of it appears to be funded today by ads, it's not an area I've ever touched on.  I'm not really expecting to make much (any) money off of these, it was partially an exercise in learning what happens and how they work.  It's been interesting so far (and was the reason I played with and then messed up my dns).

The how to in the setting up area is really quite good and it's very quick from submitting a request to getting a response (both positive and negative).  Interestingly I don't see the ads in a browser that I'm signed into but it seems to imply that I have some limited control over what gets shown so it could all get interesting.

Monday 15 December 2014

the story so far...

It appears that I'm starting to fall into a pattern, I get lots done at the start of the week and then Thursday appears and life stuff gets in the way.  This was the case last week with two trips to the theatre and a Christmas party meaning that I've done nothing on "lunch" since last Wednesday.
I've decided to look at where I am, what I've done and what I'm hoping to do in the next week.

What I've done

  • I've decided to make an app to aid in the cooking of Christmas dinner
  • I've created wireframes
  • I've started to build the app
  • I've broken the dns for

Where I am

  • You can now see steps and add new ones to the app
  • I've fixed the dns for (so that it ends up here you may need to clear some caches if you've already tried this)

What I'm hoping to do

  • By next Monday
    • Editing steps
    • Sorting out the timings so that given a serve time the start times display correctly
  • On Wednesday (17-12-2014)
  • On Friday (19-12-2014)
  • On next Monday (22-12-2014)
    • Write another "story so far post" admitting what I didn't get done from the above list.

Friday 12 December 2014

friday's interesting things I

Each Friday morning (and this one is very early in the morning) I'm going to attempt to post a group of things I've found interesting, realistically they'll probably be from my rss feeds but I'll try to stay eclectic and hopefully these won't just be a list of things that I want to re-read, but if that's what it turns out to be then it's not a bad thing.

EcmaScript 6 Classes

Following my "issues" with javascript classes I found this so I'll have a play with it (at some point in time).  I suspect however when I do get time to play with this EcmaScript 6 will be well out and I'll be used to it. Ahh to have more free hours in the day to play with everything I would like to.

Google's web starter-kit

A sort of not really competitor to bootstrap, maybe ish? It's a tool for helping to get websites working and looking the "Google way". I'm a little nervous about this, but I'll no doubt have a play a bit later when I decide I don't like that everything looks a bit "bootstrappy".

A rundown of text editors for meteor

After reading this I'm starting to think that it might be time to switch away from brackets (probably to atom).  Changing text editors is always a bit of a wrench so I might put that off a little.

Node got forked

I'd heard a fair bit about this but it wasn't until I read this post that I felt I had a better handle on it.  It's going to be interesting to watch.  I have to admit my favourite part of the article was learning that "npm is not an acronym".

Closure Compiler

This is an interesting tool from Google, I've had a bit of a play with it and though I love what it's doing with the whitespace and simple settings I've yet to spend the time to get the advanced working. It has highlighted some changes that I want to make already. It's definitely something I want to play with some more, it's also definitely something I'm not going to play with for a little while.  It also lead me to the closure linter which I need to add to the tools that I'd like to play with.

Get site info

This was a tool I played with a number of years ago it displays a lot of things that I could re-do but it works, it's also a great example of why this developer should not be used as a designer .  When I created it at $job-1 we were having problems because looking at our clients websites from our own location wasn't for a variety of dull reasons (or at least reasons I can't now recall but shudder at some of the options).  Also Google had just started their app engine and I wanted to play with it.  I put together a quick app with it, it's still the only Python code I've ever written and it needs a lot of polishing (completely re-writing), however when I needed something like that the other day I couldn't remember the url.  I'm adding it to this list so that I have that url to hand.  Fell free to take a look and play, criticism is welcome, but pointless as I'm really not that fussed with picking this up again.

Wednesday 10 December 2014

javascript really (really, really) isn't java

This evening I've been playing with the time object I sort of started to create before (and haven't been happy with).  I'm still not sure I'm doing it right, but I'm pretty sure that it's better than it was.

A (very) long time ago when I was first introduced to javascript being told that it really had nothing to do with java.  I went for years not really caring. Every now and then in my career I've been a java or javascript developer and now and then I've run into one of the differences where thinking in one of the languages is really a disadvantage when working with the other. Tonight was one of those nights.
Tonight I was (again) trying to get my head round javascript objects, so simple on the surface MyObj = function(){//functions and variables} and then you add the new keyword and soon your reading about prototypes and trying to figure out what the difference is between a java and a javascript constructor.

These two pages and the best part of a decent Rioja have got me to where I am with this.

I'm still not happy with it but I think it's "time" (and I've renamed that a lot and will no doubt do again) to put it to sleep and move on to the missing functionality.

Still think I'm on target for the functional level of this working by next Wednesday (and I do think that what I've done has helped), but I have been reminded of events that are occurring over the next few days.  Tonight was an example of playing with code in a way that I wouldn't be able to do at work, it's possible that there's a good reason for that.

Here's the link to the github commit from this evening:

Tuesday 9 December 2014

was that really necessary...

I've continued down the path that I was taking and my latest bits are in github and on you can now create your own steps (you'll need to login first).
I have now done a load of bits with this and I'm hoping that what I've done so far will help me to get the app to a point where I can start turning it into the app that I'd like to be.
I've ended up with a few bits that aren't quite right and I'm looking forward to culling them.  I'm going to ignore the previous statement of 'Later equals never' and go with a quote that I've heard before of 'make it work and then make it pretty'.
I'm pretty sure that what I'm going to do now is get to a stage where most things were working but the layout is wrong (probably end up with the add new step starting on a new 'page' for example).
If I can keep working at the rate I have been I hope to be at that stage by next Wednesday (but we'll see this is for fun, not work after all).  If I do manage that then I can start looking at where I can get to by Christmas.
I'm really enjoying this, but think that I might have bitten off a bit more than I can chew, we'll see. The DNS for is still not working, I'm sure I'll get that fixed eventually, but it's not there yet.

i broke the world

OK well maybe not the world...
I was as surprised as anyone that having looked at the analytics I'm getting about 30 or so folks every day (and even more so that someone's reading this on a blackberry!).  I thought I wonder if I can put google's adsense up on the blog and make some money.
I then followed the required steps and filled in the necessary form that needs a non sub domain so as opposed to this I filled in and although they promised me a response in a week a few hours later I received a response back telling me that there wasn't enough contents on
Following my cname success with I thought "I can do this". Those astute enough to have looked at the website will have realised that I can't. Of course because this is DNS I will need to leave it a couple of days (at least) to confirm that I have messed it up and not got it right but it's not propagated yet.  I suspect it might be a few days before is also pointing to this blog.
I might have it right, and the little checkbox that says 'redirect to' in the blogger settings might actually work or I might have it wrong and have to go back either way I suspect that it's a lucky thing I'm not relying on my DNS expertise or the (yet to exist) ads on this site.
In the meantime buy this book and read it (oh and I'll make a couple of pennies if you do).

managing a mailing list

This was specific advice I wrote to a friend who is starting to look into email marketing.

As with all things it sort of depends exactly what you're trying to do. I'm going to imagine that you're trying to send out a weekly email to around 3000 people.

What not to do:
Don't try putting their emails into the bcc field.
It's really easy to mess this up and put it into the cc, meaning that you've sent everyone each others email addresses.
Also doing it that way you end up having to deal with unsubscribes, people changing email address etc. all yourself.

What I'd suggest:
They're both good, I've used both in the past, I have a slight preference for mailchimp as their ceo bought me pudding once but look at both and decide which you prefer.
Use one of their included templates it's free or nearly free, it means that you know it works with their site and has been tested to look good in most mail clients.
After you've sent out a few you might decide that you want to create or have created a specific template.  That's great and I'm happy to help with this (by which I mean I can recommend some people), but I'd wait and see if you're happy with what you're doing first and then look at it.

Test, test, test.
Create a small group (3-4 people max) of friendly people who can phrase criticism well (I'm happy to be on this) . Before you send any email out to a large group send it to these people and then email them as a group (this time cc them in) asking for comments.  This should mean that some mistakes get caught (some will always get through).

Allow people to unsubscribe easily
This should be covered by the template, the reason you want this is that if you don't do this then people will mark your emails as spam.  That means the big providers will start to see all you emails as spam. As well as this mailchimp, campaign monitor or whoever will stop providing services to you (they'll warn you first) they can't afford emails they send to be marked as spam.

Make your emails relevant
Following on from the above, there is no point in sending an email to a group of people that have never been to your venue a discount for those returning for the 25th time. (There are better examples but this was the one that came to mind).
Both Campaign monitor and mailchimp allow you to split your subscribers into groups, do this. It will take time and be frustrating but it's worth doing.  It will allow you to send more targeted emails that are more relevant and therefore produce (hopefully) better results.  Mail chip also definitely allows you to add code to add subscribers directly from your website, you should do this as well and if you can have them put into specific groups.

Look at the stats
After you've started sending the emails it's important to look at the stats that are generated.  It will allow you to start refining what to put in and when you send emails.

That's probably more than enough for a starter and no doubt contains some irrelevant bits that you already know and others that you don't need to.

reading about testing and then remembering that this is fun...

As expected I got a bit of a chance to play with the app this evening.

I started looking at the velocity test framework that I was talking about previously.  I found a couple of very interesting articles and managed to get the cucumber example running.  You do this by running in the higher directory I suspect that this is to do with which of the test tools require a mirror to work and which don't.
These are the links that I found most useful and intend to return to at least once:
Youtube video about velocity

Velocity and Jasmine really (really) thorough blog post

Then I continued with the app...
I added a login function (though I'm not yet actually using it for anything and it has an annoying extra button that I need to figure out how to remove).
I've also added a total time and a button that uses some of the router magic to work with links.

Finally I played with DNS and now the url points to the current deployed version of the app.  That's a really nice (and really simple) option from meteor, they're still hosting it, it's all done with cname magic.

Of course once I deployed the app I messed up the data, so that I know where to come back to to reset the data the details of how are in this stack overflow answer.

I've got a day long usability course at work tomorrow, so that should be interesting.  I may well decide that it's time to re-visit the wireframes or perhaps start from scratch.

I'm really pleased with where I am so far and will continue to get there, here's an image of where we are so far:

Note the url

Monday 8 December 2014

innovation days, mailing lists and scheduled tasks

as expected I had a couple of nights off, but now I'm back.
Some interesting things have been happening at work, from next year we'll have "innovation days" these are days we book through the holiday booking system that we can take some time to look at something interesting and to prepare to present it to the company. I have a couple of plans for this that I'll go through at a later date.  I think it's supposed to resemble the 20% from Google and is a really interesting path for us to be heading down.  I'd like to see if I can bring something from the Christmas lunch project into it but we'll see how that goes.
I was also asked my advice on setting up a weekly mailing, which I've responded to (, but I'll put my thoughts into a blog post (so that next time I'm asked it's easy to find the details).  I'll have to make a couple of changes to the details to protect the innocent but I should get that up later today or tomorrow.
I'll be back on the lunch app later today, I've also had a couple of ideas for little apps to do after this one is finished.  I'd like to do a house buying / selling checklist tool and maybe make it generic enough that it can also be used for other similar things (registering a birth / death etc.). I suspect / hope that I'll eventually be able to merge them into one thing with an idea of templates so if you're cooking a Christmas lunch or buying a house it's the same underlying tool, but you use a different set of templated steps.
Finally I realised I hadn't put up a screen dump of where I am so far with the app:
It's a start (do not use these timings for your Christmas lunch)

Thursday 4 December 2014

couple of nights off

Yesterday Simone was out so I was child wrangling, this evening we had a lovely friend round for dinner. This has meant that I haven't been able to get on with the project.
It's unlikely that I will be able to make any headway tomorrow either.   However I have been thinking about it and will be fiddling with the wireframes over the weekend.

Monday 1 December 2014

playing with velocity

It's pretty, that's not something I had thought I'd say about a testing framework. Velocity is really pretty. It also works with a load of test frameworks and reporters.  I had some problems downloading the examples (that wasn't their fault, I'd messed up my git install somehow), but when I did there were examples for jasmine, nightwatch, cucumber and mocha. I really wanted to get cucumber working as there are several of my colleagues who are big fans of it, unfortunately only the nightwatch and mocha examples seemed to work.  I'll play a bit more with them, but this looks promising.
Velocity looks really nice and I'm looking forward to playing properly with it.
See it's pretty

unit tests because "later equals never"

Having re-read my previous post and having come across Robert Greiner's quote "Later equals never" again I decided to stop and figure out how the unit testing worked within meteor.  This led to me finding Velocity which looks really interesting. Unfortunately my laptop decided that I wasn't able to use git any more.  I've now fixed this but it means I've only now been able to get the example application downloaded.  I've read the details on their website and think that this should be feasible, but it'll be tomorrow now before I get to play with it properly.

I'll also probably be revisiting the code that I'm not happy with before I continue moving on, I say probably as I'm still not certain of the right way of doing this.  Hopefully all will become clear as I read more of the meteor book.  The next chapter is on adding users which should be interesting.  I tried to do this myself previously with meteor and really messed it up, so it'll be nice reading how it's supposed to be done.

Sunday 30 November 2014

playing with meteor some more...

Continuing with the playing with meteor.
I've now deployed where I am to I had a bit of a problem with this as when you deploy to meteor you need you username.  When you login on the website you use your email address, however when deploying you need your "username" something I set up about a year ago and haven't used much since. I couldn't remember or find it on the website.
Eventually as is often the case stack overflow showed me the way.
It's slow going in between cinema trips (go and see Paddington, it's very good) and work, but I'm getting there and I'm really enjoying it.  I continued with the clean code book last night (there's that pay me money link again) it's interesting but I don't think I'm quite getting it yet.  I've also kept the github repo up to date if anyone is interested.
I've ended up creating a helper function in javascript (in the step_item.js file) that I'm really not happy with.  It works and so I'll keep it there for now with an eye to refactoring later.  There's a couple of ways I am currently thinking of doing that: Putting it into a global client scope or putting the logic into the template. I'm not over the moon about either of those and I'm hoping as I continue with the tutorial book ( I'll find a better solution.

I know that meteor does allow me to run unit tests, but I've not got to that point in the book.  If I'm still getting frustrated with the code clean book I'll start to skip ahead.  At the moment I'm doing this project for fun so I'm doing the fun bits, I'm a little concerned that I'm going to spend a fair chunk of time writing unit tests for existing code, something that I have depressing experience of and am not really looking forward to.

Saturday 29 November 2014

starting to build an app

I've started to go back through the meteor book it really is very good.  I've previously found a few youtube videos and some other bits.  The book is great and seems to have gone in a lot better. I'll have to re-visit the project I worked on previously as I feel I'm now a lot clearer with how this works.

If anyone is interested the github repo is here: I'll sort out that a deploy location at meteor later.

I've also started playing with some user stories if you're interested they're here: I spent longer looking for the cards (that I'm sure are somewhere in the house) than I did writing the stories.

It's been a fun evening writing some code or at least copying it and getting it going.

moving forward slowly, but in an agile way...

For a variety of reasons (mostly 2 that are small and under 4 years old) I've not been able to start on the guts of this.  So I've been continuing to look at the tools I'm going to use.
At my work we try to be agile (though not always as successful as we might be we're not doing bad). So having put together a wireframe (see previous post starting on christmas) I'm now looking at sorting out some user stories.  I'm not sure how I'll manage sprints and exciting things like velocity, but I'll try and figure out a way.
If you're not sure what the terms above are all about I'd recommend a couple of interesting books on Agile:
I've just started reading this and I'm finding it really interesting.  I'm not certain I agree with everything but will give it a read.
The other book is:
This is the book our head of development recommended for us to read just as I was joining so I did, I still find it useful to return to it and see how I'm doing.
Both of those links have my special amazon give me money code in them so if you do buy them I end up with some money...

So with all of that in mind I took a look through some sites about writing user stories, it's something that I feel we don't always get right.  Having read about 5 different sites this morning (there are thousands of them) I think my favourite was this:
The reason is the way it breaks down the acceptance criteria into testable pieces.  The other point, that lots of the sites mentioned was that it used pen and paper something as noted earlier I'm a big fan of.
When I've written a few I'll post them up here.

Thursday 27 November 2014

checking out some of the tools I'm going to use to build Christmas

So I've already said I'm going to be building this using meteor that's a javascript platform for building apps.  I've played with it a little before and am quite looking forward to the idea of building something using it.
I've been meaning to get my head around sublime text for ages, so I'll be writing things using that or brackets which I've played with before and quite like.
If I'm using meteor I'm going to end up with bootstrap which I've used a little before but as with the other tools mentioned never actually got something from start to end with it.  I'll also admit my wireframe was at least a little inspired by bootstraps panels which I'll be using plenty of I suspect and I think the panel with footer may solve my issue of showing which items need to be completed first.
That's all for now as I'm off out to see some Christmas lights after work.

Wednesday 26 November 2014

starting on christmas

I started on the Christmas dinner application (see earlier post)
So I have spent a couple of hours this evening putting together some wireframes...
I started with pen and paper
A very quick scribble
I've used a pile of wireframing tools at work, but for this I didn't have access to them without paying or turing on the work laptop and at that point I'd end up working.
So I thought I'd see what I could find for free.  Typing "wireframe tool" into google found me I played with this for about 10 minutes before I gave up on it.  I just couldn't get it to do things like adding text, so I looked for something else.
Here I found I really liked this, it was intuitive, easy to use and I managed to put together something that I'm quite pleased with.
Hopefully I'll be able to start working on this tomorrow night but realistically it will probably be over the weekend before I do any more.
Mouth watering

Here's a link to the wireframes in their current state:
If you can see anything that you think really won't work (or an obvious improvement) please shout below.

interesting things from the web

So I saw a couple of interesting things recently on other blogs:

1. Chrome's blackboxing:
A really interesting and useful idea for easing debugging.

2. It's not my fault

This was more to do with what's happened to me a lot at work recently, where I've been torn from project to project and have watched my productivity plummet. I'm sure no one's surprised by what it says, but I find it nice to read something that basically tells me it's not my fault.
I loved the user story builder that's there as well.

christmas dinner

So I'm cooking Christmas dinner this year for an increasingly large number of folks...
This is going to require a little more planning that a usual roast dinner, so looking for some help I sought out an app to help with the timing.  What I was after was something that I could put in a number of tasks into, how long they would take, when I wanted the last one to finish and it would provide for me a list of when to do everything.
Something like:
Prep Turkey                12:00
Turn Oven on               12:20
Put Turkey in Oven         12:30

Having searched through the google app store and Apple's and the found nothing that did this (I even looked at some project management things) I thought I'd knock something together in excel (I even looked for existing templates I could steal).

Then I thought well if I'm going to do this, why not have some fun with it...
I've been playing with meteor for a little while and although this isn't really something that it's meant for it's definitely something that could do it.
So that's my plan for the next few evenings or so, build something that I can use to project manage Christmas dinner.

Obviously I'll let you know how it goes.