Wednesday, November 28, 2012
dev4good holiday hack
After a few years of organising hack events, I was beginning to get a bit annoyed by the fact that we can bring together some super smart people with amazing skills and ideas, but not get around to pushing these ideas out to market. Maybe we were doing something wrong, targeting the wrong charities?
To prove to myself that you could build an MVP project in a weekend I built a dev4good windows 8 app in around 30 hours, so I knew it would be possible as long as you kept it as a simple a product, it could be pushed to market. With knowledge I had some mental leverage (not the crazy kind) to show people what could be done.
This time around we decided to bypass the charities altogether, instead we invited developers designers, marketers, ideas people and anyone who was interested to join us at Google Campus for the weekend. In the end we had 40 people, a few familiar faces, a few crazy ideas and a load of passionate volunteers looking to make a difference.
Our holiday hack mantra for the weekend: MVP MVP MVP (keep your eye on the Minimum Viable Product) Along with things like "you are not at work, if it is wrong tell your team, they cant fire you", "hey crazy boy, no we are not adding that to the project", it will all come together shortly"
The only rules were each team must be made up of different skills, a team of developers would never get finished and a team of designers might look good but wouldn't get out of Photoshop, it was all about co-operation and finding the right people with the right skills when you needed them.
With an initial intro from Heidi (our co-organiser from The Giving lab), Amy (the dev4good design/UX guru), myself and Jas (API architect from the Giving lab) we started everyone off with ta simple question. Think up new ways for people to give to charity, you have 10 minutes....
20 minutes later (scope creep can start at anytime), the groups came together and pitched their initial ideas to the masses. This (for me anyway) is where the magic happens at these events and if it doesn't happen you might as well head for the hills, people just start working in teams. It reminds me of those 60s horror films with each idea (the blob) just moving about consuming people, spitting them out until it finds the right group of people to start hacking.
Throw in some coffee, pasta, work tables, beanbags, sweets and the whole place was alive with people sketching ideas, writing code (and in one case launching their project before 1pm on the first day http://www.shevember.org .
At 4pm we had a quick meetup with everyone to see where they were or what they needed to get things done.
Other than Shevember ho were onto making their site work better and trying to arm twist people to donate through their site, the other teams were all at different points of their build. But the Shevember roject really highlighted the fact that keeping it simple makes sense and most importantly means you can push ideas out to the internet very quickly. Which I think spurred the other teams on, there is nothing like a constant reminder of 'hey my site is live, how is yours' to make any developer grit their teeth and weep a little.
Unfortunately I wasn't on site for the Sunday, but when I left on Saturday night I was stoked and very very proud of the work everyone had done. These people had given up their weekend to come along to a building with absolutely no idea what was going to happen or what they would achieve. And the fact that we were looking at 3 maybe four projects being ready to go live, I was a happy organiser.
All in all we had 5 or so products live by the end of the weekend, with a couple more close to going live and one in the iTunes store being authorised..... A massive achievement by anyone's standards and as far as I know (I could be wrong) the most 'to market' projects ever written during a hack weekend (imagine if we were allowed to stay overnight)
As for 2013, there are a lot of plans for new events, bigger events and even more products to market! If you have an idea that could help a charity or a community in general, send it to ask@dev4good.net you never know we could build it in a weekend.
Massive thanks to everyone who came along to work with us, even bigger thanks to Heidi, Amy, Jas, Dom and all those who made it possible, see you all next time!
Thursday, November 15, 2012
My Learning worx, turning the corner in e-learning
Our goal is to ultimately change the world, nothing big there then.
At the moment there are a large number of sites around that allow people to take courses, mostly based on SCORM which is the industry standard for e-learning. If you have taken any courses at work for Office, Health & Safety etc it was proabably a SCORM based package.
The problem with SCORM is you need to buy software and know how to use it before you start.
Making a course is relatively easy, but you then need to host it somehow, or run it locally on your own PC, which could make it difficult for others to use.
What we want to achieve is to give the power of authoring to anyone with an internet connection, without the need for a training course on how to build a training course.
My learning worx allows anyone with a basic knowledge of the internet the ability to create a course, promote it and then sell it (or give it away for free).
The better your course and the more sales you make, the more money you can make.
So if you have an itch to teach or want to learn the easy way, we would like you to check out the site and give us feedback - but most of all to try your hand at authoring some courses.
We will be looking for developers to help me build a Windows 8 (& phone) app for the platform in the near future, so keep an eye out if you are interested in e-learning.
We're giving prizes of Amazon Kindle Fires to the best courses published before Christmas.
Course authoring is really easy, all you need is an idea on what you want to teach people.
To read the blog and get more information go to: My Learning Worx Blog
Or signup and start making courses - http://www.mylearningworx.com
Wednesday, August 22, 2012
Is windows 8 that bad - I dont think so
I started writing it as a comment to the looooong 'uninstalling windows 8' post, but it got a bit out of hand so here it is instead;
Dear Tim,
A few things, I have had windows 8 running for ages and yes it is 'different' to other windows experiences and yes some of it works better on touch devices, but I dont think uninstalling it is really the answer. The more feedback we can get out for others to comment on the better, good/bad or otherwise.
Microsoft needs to see and use this feedback to make it better and to be fair they have listened to some of the feedback with regards to the new Visual Studio, maybe this will herald a new beginning for the application life-cycle of MS products?
I really don't think Windows 8 is that bad, its not 'Oh my god, the best OS in the world' but none of the current ones are either, they all have their quirks.
They are built by humans, I mean we aren't perfect and creating an OS that keeps every single user happy is impossible.
There are a few keys that you have missed off your comments that I think may help you with some of your usability issues.
The windows key will always take you to 'home' (this being the tiled metro homepage)
Using windows key combinations you imitate touch gestures;
Windows + Z, Windows + X, Windows + C all bring up different menus while inside an app or 'home'
Windows + D still works to take you back to the old faithful desktop
Windows + Tab & Alt + Tab still shuffles you through the active windows
Windows + R still brings up the run command
The full list of old and new key combinations is here - http://www.pcworld.com/article/251022/windows_8_consumer_preview_keyboard_shortcuts.html
Yes I realise that we shouldn't have to use the keyboard, but it is one of the 2 most used input devices we have.
Okay there is no start button (start scary horror soundtrack music), but to be fair most consumers and remember Windows 8 is designed for the general public who are consumers of information, not geeks like most of the people who read this who are pro-sumers - that is we make stuff. They will use a dozen or so 'apps' on a day to day basis and don't care if they cant see the 'control panel' menu or most of the other options under the start button as they everything they need will be visible on 'home'.
So as long as they see their main app tiles they wont care either way.
I think if you are a geek or gamer you will feel unjustly forced down the 'app' centric route, it took me a long time to come to like iPad because of this. For a long time I wanted to get into the nitty-gritty and play with the folders hidden inside the OS. I even bought an android pad to do this... waste of time and money. Anything with a 10" screen is NOT designed for inputting large amounts of data.
You take a picture upload it to face book, send 140 character message to a friend, tell the world what you are eating for dinner, check whats on TV, watch a TV show,find a recipe, listen to a song, job done - it is nearly always consuming data.
I was also a bit confused with the whole home vs desktop idea. I am a dektop man, we all are I guess, everything gets dumped on the desktop first (or in the downloads folder) to be used whenever we need it and then left to clutter up the view, I used fences for ages to help clear this up.
But in windows 8 there is this clean (and easily read) blocked out 'home' interface that just allows me to see the top 20 or so tiles that link to the apps I use the most, not 4 screens (I have a lot of desktop space) of random files, links and shortcut, I mean really how on earth could that be easier and more productive? (sarcasm)
Windows 8 has made me do things differently, much the same way Mac users do things differently to windows folk. I now store nearly everything on skydrive and dropbox, very little is stored locally.
My laptop only gets the files I need to use, then they are stored or deleted, I just don't need them.
It has forced me to be more organised, I have not installed anything that I dont really need and do install a lot of crap that just hangs around, but if a tile stares at me long enough and I don't use it I remove the app, as the old meerkats say 'Simplesss'.
I will be lining up to buy a Microsoft Surface (not the old surface or pixelsense as it's called now, the new tablet one) when it launches in the UK. Why you may ask, well its really because android and I just don not see eye to eye and I am still not convinced the iPad is for me. Don't get me wrong it is a great platform with an awesome design/UX, however it just does things I don't like and I want to see if a Windows 8 touch device feels better and this is the big thing for me.
This is the crux of the whole mobile device OS issue. The difference between one OS and another is not how it works or what it looks like or if it crashes every 2 seconds, but how it 'feels' when I am using it; is it tactile?, does it make sense when I am doing a task?, does it allow me to access something in a way that feels right? can I use it how I want to use it?
I might be biased towards Windows 8 as I have a windows 7.5 phone, an Xbox 360 and rely on Microsoft stack and it's technologies to help pay my mortgage, but I personally think that Windows 8 is going to make people stop and think about how they work and what they 'really' use their PC/tablet/mobile device for.
And from a financial point of view, even if only half all current windows users move to Windows 8 that is still a shed-load of consumers who will be in the market for new shiny apps and that can't be a bad thing for us developers/designers.
One last thing, when reviewing an OS we shouldn't really focus on the apps that it runs, I know the mail client is pretty basic (although not that bad really), it is Outlook express at the end of the day and is not Outlook.
In general the apps are written outside of the OS, so shouldn't we review them in their own context?
regards,
Craig
Tuesday, July 31, 2012
Dev4good 2012 deconstructed - part 2
Please, please, please listen! I've got one or two things to say.
I have been writing code of some description since 2000 and would consider myself fairly knowledgeable when it comes to UI design, user interactions etc. I am realistic and know that I couldn't design my way out of a paper bag and that there are always better ways to do things...And I guess most developers think the same, we all code our systems to be designed around the functions we build and the specifications we are given...
My way of thinking was about to be beaten with a stick (probably with a few rusty nails stuck in it).
Stwike him, Centuwion. Stwike him vewy wuffly!
Picture the setting (this isn't me), its 230am on a Sunday morning, you have been coding a project since 11am the previous morning and you turn the developer across the table and say 'something just isn't right'. The UX consultant who has been trying to tell everyone in the team about something called 'stakeholder', behavior, touch points for the last 15 hours turns and says "Boys I have an idea".Queue 3 mini coopers, a bus going over the alps, or at least - 3 developers a super smart UX consultant and a whiteboard....
As I mentioned, I wasn't actually in the scene above (a lot of literary licence was used), I called in right towards the end (heading for what would turn out to be an incredibly uncomfortable bean bag) just to say goodnight, only to be told "Craig, Amy has just told us we don't need an IT solution for the Gaza project". Bearing in mind the gaza team had already split and it was nearly 3am, I thought what the hell this could be interesting.
Amy went through her presentation and I went from being completely shattered to being completely awake, everything she was talking about made sense. It appeared we had all missed the 'human' aspect of the problem and looking at the problem from a different angle (not the developer 'must write code' angle) meant the solution was extremely simple - we need somewhere for people to meet and share information.
This was where I dropped a bombshell, 'why dont you just do a mashup?'. Use the data feeds from all of the other projects, plus blogs etc and create a place for people to see the information they need to see.
The Gaza1 team came in as well to say they had realised that their solution was not going to work, mainly for technical reasons. They had framework issues and were stuck, everyone discussed options and they headed back to try some new options.
After an hour of discussing the different approaches of developer and designers I went to bed, feeling enlightened.
I've been here five years, they only hung me the right way up yesterday.
It will probably sound very cheesy, but the early morning lesson really struck home. I am reading the Nail it, then scale it book at the moment and there is a lot of talk about doing the minimum right first. You build a minimum feature set first and seeing what people think/need before adding more to it, this is exactly what the teams should be doing (lightbulb moment), thinking as a developer you always build to the end specification and would never (rarely) remove functionality just to get a build/release.However thinking about the human problems and behaviours of the stakeholders you very quickly realise that actually most of the functionality in the spec is down to what you (or they) think they need not what they need.
This would prove to be a valuable lesson that I think nearly everyone learnt over the weekend, all for different reasons
Two days to dismantle the entire apparatus of the Roman Imperialist State
I digress, the morning started slowly, actually I think it was more like Saturday, just became Sunday so there was no real start and everyone just got up and carried on.More coffee, monster energy, coca-cola was drank while the teams started on the home straight.
Wednesday, July 11, 2012
Dev4good 2012 deconstructed - part 1
Life of Dev4good 2012 - part 1
I sometimes hang awake at night dreaming of...
I am always apprehensive about how many people actually turn up, I had 57 registered but with 4 other hack events within a 20 mile radius it was a busy weekend for developers.
The early starters were given jobs while I headed to Tesco to pick up breakfast. All I had to pick up was 80 pastries to go with the Lavazza coffee we had been given. However the staff at Tesco had an issue with this and kept asking me how I was going to carry 80 pastries, “in a bag” I kept saying but they still couldn’t comprehend the purchase.
Welease the dewelopers
As you will see only one charity had a representative, this might be down to me not communicating the importance of this as well as I should (note to try harder next year) and to be honest it was something I was initially concerned about. This worry was quickly dispelled while listening to Iyas talk about his recent trip to Gaza, how bad it really is on the ground and what we could to do help.
What have the Developers ever done for us?
Another fear moment (probably a recurring dream about this too), everyone has heard the pitches and then decide to not take part and leave. However I forgot I had a room full of some seriously smart and passionate people and after running around, trying to find the man size post-it notes, I came back to find the organic process of a group of individuals turning into teams.
Popular people front - splitters
You start with a few people talking and others walking past overhear something interesting and get pulled in, if the conversation isn’t what they want they head off on a different trajectory. The bigger the group the more gravitational pull they seem to have on others, then all of a sudden the group will disband and people start to wander off again.
This continues until the groups stop disbanding and regrouping…. A very weird herd/pack thing I guess.
Otters noses, badgers spleens
More splitters, the developers front of tower.js
I have to admit there had been murmurings from some, those mumbles of wrong framework, bad ideas etc and a few people had moved out of teams to help elsewhere.
Something I really liked (it took some balls to drop out of a team) and not something people can do at their day job - “Sorry boss I don’t like the database structure we are using and I am going to head off and work in the canteen this afternoon, ok, thanks, bye”
One of the best quotes of the weekend has to have come from one of these particular incidents - “They all went for a cigarette, but never came back”.
The aliens/ufo scene
Solidarity brothers, solidarity
It was about this stage that I realised what I had asked everyone to do, last year the goal was to have a good weekend hacking and have some fun. This year they had to build something that worked, then show it off and as any developer knows #failure is not an option when it comes to a live demo (Win95 and a USB device anyone).
I also had a chance to check out the project whiteboards and reflect on what had been planned by each team, they all had pretty big ideas and were way above what I thought was possible (proof of the skills and knowledge of the teams taking part).
I'm not the Messiah! Will you please listen?
There was a lot of coffee, monster energy drank over the next 12 hours, plus a tiny piece of sleep and in the early hours of Sunday morning, something close to a geek revelation took place for 2 developers (and me).Crucifixion party, one cross each, by the left, wait for it...
big thanks to
Thursday, April 19, 2012
Dev4good, Mozilla Foundation and a lesson learnt
I arrived up to the Mozilla reception on the 3rd floor and waited a bit as there was no one there, then signed myself in and emailed Dees to say I was here but there was no one on the desk.
I have been to a number of tech offices in the past and there is always the feeling that you shouldn’t be there, you are just a visitor, you are a small dude in a big fish tank etc.
Mozilla have been around for ages, since Netscape released their source code and I always assumed they were just another big tech company with loads of staff cubicled up tapping away at their keyboards, powering the corporate engine.
We went through to the main space where Dees explained how the Mozilla foundation works and what a mozspace was
Places like http://www.centralworking.com/ were a fantastic idea until I found out about mozSpace, even if your average coffee shop is becoming a little more lenient when it comes to people with laptops hanging out for extended periods of time.
Even with the advent of the new centralworking space at google campus, which as a sceptical entrepreneur I can see being an interesting place for google to find new tech while its cheap. The mozSpace has no corporate buy out feel to it, yes they expect the people using the space to hopefully take part in the Mozilla community, some will some wont and it is a gamble for them.
I remember when the .Net framework was launched and Microsoft was spending a fortune on the MSDN road shows every year and other big developer events, they needed a UK community of people to be passionate about their products.
Along with the main space there are 3 big board rooms and from memory 5 smaller rooms, plus a couple of smaller breakout rooms as well.
Friday, October 28, 2011
Silverlight 4– MVVM – binding & dependency property injection
I am not going to try and explain MVVM in depth, there are loads of post about what it is and how it works In essence its splitting the code and UI into separate (and testable) layers within your application while trying to keep the business logic out of the UI.
What I thought I should do is a simple example of one way you could bind your data.
One of this problems I hit very early on, was how do I use MVVM and allow data to be passed through from parent to child UserControls (these have to be generic - one for the address, one for a single phone number, etc) that are coded to validate themselves without having to understand the data context they are being used in. The big plan is to use them across multiple projects without having to rewrite/create each from scratch every time.
I started by dumping everything into one massive view model, this was the wrong way – it was nearly impossible to manage the code and with each control only needing the field(s) to do its single job it proved tough.
I looked at all the MVVM frameworks around, all are great, but none do all of the tasks I seemed to need. I also wanted to understand how MVVM worked in the background and using a framework would hide this from me.
No framework this time, I just coded my own simple modelBase to manage the standard bits and bobs.
What I ended up doing with the databinding is an MVVM application that uses dependency properties in the control code behind to manage data binding to some UI elements while still using MVVM to do the logic and control data storage.
I am building a Silverlight control to manage/create new customers so they can be vetted/contracts created etc for a telecoms company.
I have broken the form up into a number UserControls to try and make development easier and hopefully make each UserControl useable in other parts of the application.
The control forms a part of a larger control/view that manages an entire customer account, so being able to access the same customer data across (possibly) multiple Views is important.
How I did it (this time)
I am using web services to build the objects/classes/observable collections, these are all stored in a set of static classes that are all run before the application loads the UI, I had issues with loading everything asynchronously as if the customer loaded before the list of categories for example it would crash (there is probably a work around for that).
The main page holds all user UserControls , each UserControl is populated with static data before I load the customer view and ViewModel which will set the selectedvalue on any databound controls or text property for text etc.
Injection into user control code behind;
I am adding a binding my Customer ViewModel object to the LayoutRoot grid’s DataContextProperty, however you could add this to any property on any control. Or you could add a single field from the DataContext as well to any UI property.
My child UserControl code behind =
namespace Project.Controls.Customer
{
public partial class ContractDetails : UserControl
{
public ContractDetails()
{
InitializeComponent();
LayoutRoot.SetBinding(Grid.DataContextProperty,
new System.Windows.Data.Binding
{
Source = this,
Path = new PropertyPath("PropName"),
Mode = System.Windows.Data.BindingMode.TwoWay
});
}
public static DependencyProperty DataProperty =
DependencyProperty.Register("PropName", typeof(GenericDataService.queueCustomer), typeof(ContractDetails), null);
public GenericDataService.queueCustomer PropName
{
get { return (GenericDataService.queueCustomer)GetValue(DataProperty); }
set
{
SetValue(DataProperty, value);
}
}
}
}
I hva set the Mode to TwoWay, you could set this to OneWay, OneTime or change this at runtime depending who who is logged to force the binding to be readonly.
I then pass the data into the child UserControl above in the xaml of the parent control;
<my:ContractDetails PropName="{Binding TheData }" x:Name="contractDetails1" />
One last step is to set the text property of the textbox that is on the child UserControl , in this case it is the phone number, I use a text filter command to only allow numbers and there will be some UK phone number validation as well.
<TextBox Text="{Binding ElementName=LayoutRoot, Path=DataContext.PhoneNumber, Mode=TwoWay}" />
<TextBox Text="{Binding ElementName=LayoutRoot, Path=DataContext.Fax, Mode=TwoWay}" />
<ComboBox Height="23" Name="CBContractDuration" Width="120" Grid.Column="2"
ItemsSource="{Binding Path=ContractDuration, Source={StaticResource StaticData}, Mode=TwoWay}"
DisplayMemberPath="Name" SelectedValuePath="id"
SelectedValue="{Binding ElementName=LayoutRoot, Path=DataContext.ContractDuration, Mode=TwoWay}"
/>
From the ComboBox sample above you can see the control is filled with data form my Static data class, however the selected item is set by the Customer ViewModel data passed in through the dependency property up in the first example,
(I have tried to show the linking between the three steps by colouring the keywords, sorry if this is confusing for anyone)
It is important to remember that even in Xaml the binding keys are case sensitive so in the above example PropName="{Binding TheData }" is okay, but PropName="{Binding Thedata }" will not work.
The above works well, but there are instances where you end up doing the validation on the control within the ChildUserControl in the code behind rather than the ViewModel, this is not perfect MVVM, but it works, so is good enough for me – at least until I work out how to do it all in the view model.
Summary
From what I have seen so far, its only been a few months of a steep learning curve (decided to move form VB to C# at the same time – glad I did), but there is no limit to what you can do in MVVM/Silverlight/Xaml, its really down to working around the eccentricities of the framework to make it do what you want it to.
Databinding is one of them, which I hope the above example explains - at least one way to do it.
Please note this may not be the best way, however in the rough and tumble of agile development, it works and it has shipped.
Thursday, August 11, 2011
Silverlight 4 – error in FrameworkElementMetaData
Booted up my PC and opened the latest project only to find when I try and view any of the silverlight VStudio just gives me this error: The type initializer for 'Microsoft.Expression.Platform.Silverlight.SilverlightCommonDesignTimeProperties' threw an exception. - Nice and helpful.
There was only 1 result on google that sent me to https://connect.microsoft.com/VisualStudio/feedback/details/669751/the-type-initializer-for-microsoft-expression-platform-silverlight-silverlightcommondesigntimeproperties-threw-an-exception#
Thanks to dgcaron for his workaround;
I had this very same issue when i installed the WP7.1 templates from the MVVM light toolkit. i was able to build and use my projects after i :
- removed the system.windows.interactivity.dll reference
- cleaned my sln
- readded the reference
Tuesday, August 09, 2011
Activity.log – visual studio 2010?
Every now and then I have a pop up saying that something went wrong in visual studio and it is probably an add-on component that did it and I should run visual studio in /log mode to see what is happening in the activity.log
After a little playing in the command line trying to get this so work, I found this; http://blogs.msdn.com/b/visualstudio/archive/2010/02/24/troubleshooting-with-the-activity-log.aspx by Bill Weinberger
A great post, explaining how to do it and what to look for!
Now to work out what is happening.
Tuesday, August 02, 2011
Identity theft how simple is it
Armed with a few spare minutes and nothing but a mobile number for an eBay seller I was picking some kit up of I wondered how much I could find out about this person?
Step 1 – Asked Google
Google gave me a few spammy hits plus a link to a page on Facebook called "I have lost my phone, please tell me your mobile number again", I mean come on people. There were about 90 mobile phone numbers alongside this persons ‘friends’ names.
Step 2 – Facebook
Following through to the person profile for my ebay seller, a quick skim through their wall showed a load of birthday wishes a few months back, whilst their profile details mentioned they graduated from XXX university in 2002.
He also had a picture of his pride and joy, a beat up VW polo with its number plate visible in the photo.
So some simple maths gave me their date of birth +/- a year.
Step 3 – some more public sites
A quick scout of Linkedin gave me a few more clues on where they worked and adding this to the Facebook data a rough idea of where they lived too.
Twitter had no results, so they weren’t a geek (he works in a hotel btw)
Via BT, whitepages and 123people, using name and rough location I got a hit on an address, same surname but different initials (maybe lived with parents?)
So in half an hour I had;
1. Full name
2. Date of Birth
3. Postal Address
4. List of friends,mobile numbers (and all their names too, possibly DOBs)
5. Current employer and their address
6. Car number plate, although not sure what I could use it for?
This is probably enough to do bad stuff with, or at least cause some havoc.
I really don’t think people understand how easy it is now to piece together a full identity of just about anyone.
Yes there are bad people on the net that look for this stuff, but we really need to make it hard for them don’t we?
Prelude
I picked up my eBay purchase (from the address I found above it happens – strike 1), from the sellers father (strike 2), when I asked how his son was getting on at his new job (maybe pushing it a bit far with this), he said good but then looked at me a little bemused.
But I had already paid for the items so all is fair in identity theft and eBay purchases.
Keep it locked away
Its a dirt internet, keep it clean and hide the data you don’t want people to know about. You wouldn’t write your PC password on a post-it note and stick it to your screen would you?
Tuesday, July 05, 2011
Running a developer event – sponsors
But don’t let that put you off!
There are a few or companies who support the UK MS development community that you could say will be guaranteed to help out in some way, make contact with these guys as early as possible as they always run their sponsorships on a first come (with the best idea) first served. And they take the longest to get money signed off and paid.
Now its the hard(er) bit, start sending emails out to every business contact you know, anyone could be a sponsor. I didn’t go for the give us cash or forget it, it was important for me to get ‘stuff’ that could keep the costs down and I never said no to a sponsorship offer.
The email that went out was heavily focused on what I was trying to do, not on how much cash I needed, actually for most first contact emails I never asked for cash. If there was a positive email, then I would send a gracious thanks and mentioning cash needed.
My initial thoughts were to ask for small amounts (trying to avoid a ‘no’), after speaking to someone who knows about running and organising a lot of successful events (Simon Sabin from SQLBits), I realised that I should be asking for the full amount from everyone and seeing what happens… First try on this was surprisingly effective.
Don’t stop looking for sponsors, you cannot be certain of anything until the cash arrives.
Be prepared to cover some(or all) of the costs for the event yourself, hopefully it wont come to that. But you do need to bear this in mind, this will also keep you focussed on finding both sponsorship and the right venue.
Phase1 – the people you know
Phase 2 – the people you know through people
Phase 3 – random companies that you have seen advertising in the magazines you read, who may or may not have any link to the event
Phase 4 – repeat 1,2,3
It takes balls (not literally) to run an event, if you approach people confidently and know what you want to achieve you will get a better response. If you know what the sponsors can get out of the event, you will get a better response.
My initial emails were basically crap, it took me awhile to get my story of what I was trying to achieve straight.
Once you have your sponsors, do keep them in the loop, now this is not something I did on the run up to dev4good, but I will be sending a thanks and summary to them all within a few days of the event finishing.
While the event is on, make sure every attendee knows who the sponsors are and what they paid for, I did a lot of this on day1, but forgot about this on day 2.
And most importantly don’t lie to sponsors, ie this is our 5th year, we have 200 people registered, your closest rival has given us £xxx etc It will only get you bad press when the truth comes out and you will find it very hard if not impossible to get these people to ever take you seriously.
Well that’s a few bits on sponsors, don’t hesitate to contact me if you want to find out more, tweet me @chillfire
Running a developer event - venue
Get your venue sorted FIRST
That’s about it really, except a few other things to consider;
suitable for the Event
Make sure you focus on venues that fit your event, there is no use chasing a venue that is not suitable, if you can go to the venue before you say yes or put cash down, expect to out a deposit down well in advance of the big day, to secure the booking.Keep in contact with the venue, make sure you know what they need from you and that they know exactly what you are expecting them to do.
When you go to the venue, try and imagine how the event will run in your head, ask about everything you may need and make sure anything verbally agreed is also bounced around in emails too.
Location
This will set your cost per person straight off.In London its going to be a lot more than in the sticks, saying that you wont get as many people travelling to somewhere that doesn’t have a train for example.
Infrastructure
Public transport is a must, if it’s out of range to walk, then is their parking?Accommodation
If you plan to run the event over night or not, people may want to stay the night before to save an early trip. I used a hostel as an option for anyone who didn’t want to kip on the floor. Saying that a few said they would have crashed on the floor if they had to. Also I could have saved a lot of cash by booking beds rather than dorm rooms that were not full due to last minute drop outs.I was very lucky when I found www.hammersmithriverside.co.uk, this was all down to an opportune email. They allowed me to use the venue overnight (this was the biggest hurdle for dev4good, I wanted people to be able to work through the night if they had to (or sleep for free). I spoke to a few businesses and insurance was the problem, so was security. I tried real estate agents as well, looking for empty buildings, but again insurance and security were the problem.
I also looked into YHA hostels, as the initial event idea was for it to be a code retreat, but there are very few that have an internet connection (even 3G) and even fewer that are close to civilisation – they are a very cheap option though.
Services
Can you get the internet, is their 3G, how many people are you planning to have on site?We had 25 people using 2 wifi points on the same Adsl and we crashed this quite regularly. One team ended up in the pub next door using theirs for a few hours. If you are using a corporate venue this probably wont be an issue, but do go wandering around your venue and make note of any ‘public’ wifi spots, cafes etc
Food
After the venue itself this is the second biggest cost, at dev4good I covered all food costs + coffee/tea/biscuits through the venue’s kitchen. We ordered pizza in on day 2 as it is a pre-requisite for any coder event.backup
I didn’t have one, but its always worth having a backup in mind, especially if you are booking a long way in advance, don’t stop looking for other venues, you never know hen you might need them.If you have any questions, tweet @chillfire and I will see what I can help with
Saturday, July 02, 2011
dev4good day 1
Day one has been a great day for learning!
The 3 charities all came to us with completely different problems.
Hope and Play (www.hopeandplay.org) were looking for a way to locate and manage resources. And allow other charities or people to do the same.
The Ministry of Stories (www.ministryofstories.org) are looking for a way to get more young people writing stories and publishing these to the world. All while helping to generate a little more cash along the way.
The Design and Craft Council (www.craftanddesigncouncil.org.uk) want to be able to automate their awards processes
For me one of the big worries about the event was how to get the teams to work on all the projects.
Fortunately after much post it noting and milling about, the teams magically built themselves!
Then came much discussion and planning
Then the internet and wireless connections started to fail our multi user downloading of updates/platforms/frameworks. So much so that one of the teams retired to the pub next door to use their wireless (well that’s their story anyway)
More pics from day 1
http://www.flickr.com/photos/64749203@N03
Its been a great day and there will be more code and frivolity tomorrow.
Wednesday, June 22, 2011
These are not the mind waves you are looking for
A few weeks ago I was watching the ‘Best if the Gadget Show’ and one of the task they showed was how they controlled a gantry crane with nothing but the power of their minds.
This was in my mind something straight out of the Sci-Fi shows I watched (and still do) as a kid.
This coincided with me trying to find some cool kit for the volunteers coming to dev4good (www.dev4good.net), we had the Kinect, we had the MS Surface, mind control was definitely on the cards.
Two days ago my Neruosky Mindwave arrived, queue the Star Trek theme tune.
Out of the box
Un Boxing the toy was easy, getting the sticker off their USB dongle was tricky. Unboxed there is not much to the system.
A weird headset similar to the one used in universal soldier (maybe there is a hint of irony here) and the aforementioned USB dongle.
That it I thought, this is all I need to control the world?
I did need a single AAA battery though.
There was also a CD, installing this gave me the option to install the latest software which was 400mb…
The headset is fairly lightweight and feels fairly solid, although not sure about letting the kids use (as the pictures on the box show).
When its on your head, it feels a little odd at first, its not something I would wear in public, at least until I can get my Jedi mind tricks working to make people forget they saw it.
I am guessing the positioning of the main contact and the forehead pad is important, but it does feel weird.
Install
Simple, just agree to the Licence and its off, took about a minute and half to extract.
Plug in the dongle when told, 30 secs later and MindWave manager opens and asks you to add put a fresh battery into the headset.
Once on it auto searches and pairs itself to the headset and tells you the serial number.
Up and running
Once installed the ‘App Central’ application kicks off
and the mindset becomes active.
Using mind control in the real world
Okay its all a little more grey than I thought, there is a great set of free apps/games installed by default. But while playing them you never really know if its you actually doing anything. This I think because you are not interacting with things in the same way.
When I type on a keyboard, I can feel what is happening, I am thinking a millions times faster than my fingers can type – but I know that its me that is doing it.
Sounds strange, but the mindset reads you brainwave and there are you you use for most of the games
- Alpha waves for relaxation
- Beta waves for focus.
But as I don't know how to control them, its a ll a bit hit and miss.
I guess the more you use the hardware and apps the more you understand how your own brain functions.
Now all I need to do is find an application I can use this for!
good place to start for developing against the mindset
- http://developer.neurosky.com/
- http://thinkgearnet.codeplex.com/
more to follow as I start to code my world domination platform up"!
Saturday, May 28, 2011
dev4good - who what where why?
History
The initial idea came to me while watching a short film a friend Dave Hawes made, while taking part in the PayPal charity hack last year. I thought ‘hey I could do that, but just not with a single platform/API’.I had no time so the idea was filed into my “great idea, no time folder”
Time flew by and we had our first codefest evening at Devevening where we (Matt Lacey usually) writes a player app (noughts and crosses) that everyone attending had to compete against with there own self written player. Everyone had 2 hours to work on it, at the end we had a play off and the winner got - bugger all actually.
But the point was it was quite impressive what you can achieve in under 2 hours, some of the guys paired up and worked as a team to build their player and even though it was a competitive event, everyone was happy to help those needing a point in the right direction.
We have had a few of these events now and they are by far the most enjoyable code events I have taken part in.
Fast forward to early 2011 and I find myself brainstorming exactly what this hack day will be.
It had to be a simple format, otherwise I would never get it sorted in time. And it had to be based around solving problems, I wanted people from different backgrounds involved, there must be a competitive edge in there, a time constraint, sleep will be optional and we will need a tonne of coffee.
We also needed something to work on, something that we would not work on during the normal 9 to 5 slog.
Lets face it if you work in IT, normally your job is to make something that does stuff that makes money for someone. Or you end up developing something to remove the need for human interaction.
I though that charities always have problems they need solving and most don’t have the funds to realise their dreams or the technical staff to help them do it.
ideas + skills = results
Developer stereotypes
Personally I think developers (of the software variety) tend to have the reputation for working late, in the dark, illuminated by their multi screen setups hunched over their wireless keyboards, sipping on a cup of coffee mere mortals would have tipped out hours ago – or is this just me?Joking aside, for a lot of us isn’t too far from the truth, at least a few night a week anyway.
Saying that I really like working with other people, however as a freelance developer up until very recently anyway, its usually just me, myself and I writing code and solving problems and trust me, never listen to I and myself can be a little flaky at 2 in the morning.
So having an event that forces developers to work with people they would never normally work with on projects that they would probably never work on – it’s got to be a good thing right?
So the question was “What would happen if we took our codefest idea, but this time threw in 30 developers. The problems would be real world ones form people who really need the help.
Most importantly if we solved any of these problems we would be directly helping a person somewhere.
It seemed like a win win situation to me.
Enter dev4good
In march I was lucky enough to meet a man who had a building in London that basically cried out ‘hack day’, it had a bar!He was happy for us to use the place for an entire weekend (including overnight, which for most corporate venues as this is not allowed due to something called insurance).
That pretty much set the ball rolling, dates were set, websites were knocked up (literally), then the social network wheels started turning.
3 months later we have 30 registered developers, over £5000 worth of prizes (thanks to them all), people coming from all over the UK (plus one form Holland) and a tonne of free coffee (hmmmmmm).
Also we have (so far) 2 fantastic charities that really need our help;
- www.hopeandplay.org
- www.ministryofstories.org
Dev4good is a social experiment of sorts, lock 30 developers in building with some serious problems and see how they work their computer sorcery to solve them.
Revelation
During the last few months while organising dev4good, I have met some amazing people along the way and we haven’t even had the event yet!It is so refreshing to work on a project that a) isn’t IT based for a change and b) allows you to meet and talk to really cool people.
So come on, why?
To make a difference (cheesy I know), but I really do believe that we (that’s all 30 of us) can make a difference over the course of a single weekend and if we can help 1 person then all the hard work will be well worth it.I am also fairly sure that everyone attending will gain a lot from just working with the other people there. It’s an awesome team of people who are coming.
Right I want to join in the fun
You can register over at dev4good.wemoot.comThere is a load of info on out wemoot portal, feel free to look around
If you cant come, but would like to be involved?
We are still on the lookout for sponsors contact dev4good (or ask@dev4good.net) if you can help financially or have a product you think could help our team out.Spread the word, we will be running these events every year in London, or if you would like to run one in your region/area/town/country get in touch.
You can also follow the event on twitter @devfourgood and the hash tag is #dev4good
Wednesday, March 30, 2011
dev4good – developing for a better world
One of the cool things about doing what I do, is the simple fact I can build something from nothing with nothing but an idea and notepad (okay I haven’t hand coded a website form scratch in a few years, but I could if I had to).
Another cool part of my job is the people I work with, the other IT professionals, designers and developers (other people are cool too).
I help run @Devevening (Surrey based developer user group) and a few weeks ago we had another hack night, where developers are given a problem and 2 hours to solve it. Every time we hold these events I am amazed at how much can be done in a very short amount of time (this time was a battleship client that you had to pit against a fellow developers client to see who would win)
I am getting to the point honest…
So I wondered what would happen if you got a group of developers together for say a weekend, throw in some real world problems (donated by a few charities) and see what amazing stuff could be done.
This idea has grown slightly and I am in the process of setting up the UK’s first ever Developer/Charity hack event, called dev4good, check out the site www.dev4good.net for more details.
We have a venue in London, on the river Thames no less (www.hammersmithriverside.co.uk) which is awesome!
If you think you would enjoy a weekend of coding with developers from all over the UK in possibly the craziest working environment, register for updates and provisional places, follow @devfourgood on twitter for updates.
Anyone from any IT background, any platform can help, designers, IT professionals, hobbyists, get in touch, we need your skills.
If you are a UK charity and think you have a problem that only the “A-team” could help with, let us know.
Obviously all of this is going to cost money, so I am looking for sponsors to help out with food/drink costs. There are no costs for charities, there may be a small registration fee to stop the ‘no-show’ effect for developers, but that’s it.
So what do you think, do you have what it takes to help building something cool, that could change someone’s life?
Friday, March 25, 2011
Home media platform project
I was asked to setup a home music centre for a friend, nothing too hard I thought. The requirements seemed standard, so I said yes let me at it.
3 weeks later, I found myself still trying to piece together the components, none of which I had ever used before – fun!
(This was 3 weeks fulltime)
The requirements were;
- Must use optical out (its connecting to high end amp)
- Needs to look like it fits in and around high end audio gear
- Headphone out
- Low power
- CD drive play/burn
- Internet access
- Auto rip function
- Remote control for playlists etc
- External touch screen
- Silent
- Small footprint
- Easy to use for a non technical user
Server/Base unit
I went off looking first of all for a base unit, the mini-itx platform looked like the best of what is available. And the boards are cheap enough these days to make home cinema/media PCs available to everyone.
But what I found was although the boards are cheap, its the extra bits that add up. By the time I added an external power supply, remote control, ram, hard drive it was still looking at +/- £400 with a decent case.
Add to this the problem of adding a slim line CD drive to some ITX cases, it seemed that if you did this the case got big quick.
I did find that the Acer Revo PCs were a pretty good fit, add an external CD drive and bingo, but I really wanted an all in one unit.
I found it in the form of the Asus EeeBox EB1501P Net Top PC.
It had optical out, internal CD (one of those funky soft eject ones too), Windows 7 Home Premium, WiFi, HDMI, eSata and although ebuyer didn’t mention anything, it came with USB keyboard/mouse, Media Centre remote control and a vesa bracket.
All powered by an Atom D525, Dual Core 1.8Ghz with 2Gb Ram for £270 +vat (its dropped by £30 now….)
Base unit was sorted, the screen was a little more fun, I wanted something small enough to be usable and not too big that you would notice it in the room. There are a number of 10” USB driven touch screens on the market (be careful some don’t work on 64Bit OS) and after a chat to the guys at New IT I went for the iMo Mini Monster a 10” wide screen, single touch monitor. It has a built in stylus that is hidden in the bezel too.
So that was the PC side of things completed sorted.
Remote controls at the ready
I wanted a tablet for the remote, but not an iPad, they were just too expensive for this project. I opted for a 10” Android ePad (10.2" Android 2.1 ZT-180a Apad/ePad 1GHZ CPU 256RAM) and threw in a 4Gb micro SD card for good measures.
I headed off the the android market place for a remote control to control the music…. I installed and uninstalled every single ‘free’ remote control literally in the market. Both iTunes and Windows variants… All were basically crap they worked most of the time or did everything except display the media library.
I did find one app that was fantastic when you had under 100 or so tracks, however as soon as we broke this level on while ripping we saw a massive drop in speed. It doesn’t cache anything on the tablet, so EVERY time you go to load an artist, genre etc it goes off and asks the server for the list, then waits until everything has been sent. We were waiting for 5 mins for a screen update… uninstalled that pretty quick.
This was when I put my IT hat on and realised that there must be a remote desktop app, there were lods of them, all were paid for and because I am tight I didn’t buy them.
What I did, which I think when looking back was a genius move and I should have done it in the first place, was to install TightVNC on the PC with the android TightVNC app on the tablet.
Instant connectivity, full screen, lag-less (pretty much) experience.
To make this better we put a wireless AP in the room that the kit lives on and only the devices in that room use that network, for an extra £40 it was worth it, the tablet and PC chatter to their hearts content without losing out to any other traffic.
The other reason for the added AP was the house we were installing in was built in the 1700’s so had walls about 1m thick of stone, which have the ability to block WiFi.
I used 3 home plugs one at the router in the 3rd floor office to run the network down to the ground floor conservatory and to the kitchen to a second AP just for the kitchen/liveing area as the BT router upstairs was dropping to under 1 bar most of the time.
The home plugs where sitting around 20Mb throughput, but this was expected as the wiring itself is a little flaky from time to time.
Conclusion
This was a great little project, the client is over the moon, a few minutes on how to connect the tablet to the PC and he is instantly in an environment he knows.
We ripped just over 3500 tracks in 2 days (used the Asus + 2 laptops running in parallel, ripping to the shared media folder – the whole D drive). The rip speed of the Asus is about 70% of my old HP laptop, not sure why this is, I am guessing the speed of the soft eject CD drive may be the problem.
If I was to do it again and I will for myself at least, I would throw another 2Gb of Ram in the Asus. It streamed DivX films okay over my network using Home plugs (70-80Mb) while playing on my TV via the HDMI, but for video I think the more ram you have the better.
When SSDs come down in price these boxes will be perfect for them, they use net to no power anyway, heat is minimal, but with an SSD it will just be that little bit better.
I would probably fork out for an eSata drive as well, or at least a NAS box/home server setup to work alongside this, the storage is great for MP3s, but would get eaten quickly with video storage.
Pics
So we have the 10” screen next to the tablet running TightVNC!
The Asus EeeBox
Nice to do something that doesn’t involve writing code for a change!
Thursday, February 24, 2011
The end of the IT department
That was a very interesting read, not what I would call a balanced view though and made me write;
My company is the IT department for a number of companies in the UK and I have been the IT manager in charge of departments in the past.
In part I agree there are parts of the corporate IT world that need to be relaxed, but most are based around very old fashioned thinking and cost of upgrading
The IT world is an ever changing industry, people with the right skills today need to upgrade these skills next week.
Also normally the people who work in the IT departments are not the same people that make the decisions to what can and cant be changed in the company.
If I had my way every PC, server would be replaced every year and always be patched to the latest versions of their software, this is however impractical to most companies as the cost of this is inhibitive.
Yes the 'cloud' is amazing and will lower the number of IT support staff in the building, however it just moves these people and their skills outside of the business, wont this just create a hole in the companies shared knowledge?
I have moved a number of companies to the cloud (not really the cloud, but they call it that, I call it dedicated outsourced server hosting) and they are all happy, but in doing this I had to upskill to understand the implications of these technologies for each company to make sure it will do what they need it to.
Now the big problem we are facing is the local adsl circuits are topping out and we are reliant on 100% uptime from not only an adsl line, but also the infrastructure at the other end.
So when a server goes down, exchange plays up, the problem is passed to an outsourced support company, who place the problem in their 'queue', then we wait.... we have no control or input... 9/10 I could fix the problem if I had access to the servers myself (10 years of IT support do count for something) but I cam not allowed access so we wait.....
The cloud idea is good, but I can see companies jumping on the 'save money' band wagon and then realising that moving their infrastructure outside of their control could cost them more in the long run.
one thing that no one ever asks is "So if it goes wrong (the cloud) and doesn't work for us, how much will it cost to move everything back?" - the answer - LOTS, probably more than the move out as you will need new hardware, licensing, staff, skills...
The cloud is not for everyone, be very careful about what goes where and who controls what.
Wednesday, February 16, 2011
utilising the power of 'remote'
The down side is that there needs to be a public IP address linked to the server you are trying to connect to if you don't use a VPN that is.
On hat note VPN's are great, however they don't always give you the best user experience, like trying to connect across a 3G dongle to fix a problem can be clunky, remote desktop does hog a lot of resources. It can be done though, don't get me wrong. While on holiday in Kefalonia I did connect into a server over a very ropey 3G connection using Remote Desktop.
I used teamviewer to get onto my desktop in the office (had to call to have it turned on though
Friday, February 11, 2011
Nokia + Microsoft ?
1 hr later I get to work and in that time Uncle Steve (Boom baby thats what we are talking about) Ballmer announces that Microsoft and Nokia are forming a strategic alliance.
http://blogs.msdn.com/b/ukmsdn/archive/2011/02/11/windows-phone-and-nokia-enter-strategic-partnership.aspx?wa=wsignin1.0
http://www.microsoft.com/presspass/press/2011/feb11/02-11partnership.mspx
I like the nokia handsets, the OS has been getting increasingly out of date, so I moved to windows phone 7, as a developer the plan was to build some apps and get rich and famous.
I haven't done any of that, but I have realised that MS is onto a winner with their mobile OS, I thinks it really good and possible even better than the competition.
But what does this alliance really mean for the day to day phone user?
Probably not much unless you are a symbian OS developer, maybe more flexibility and choice as Nokia do make cool handsets.
WIll be interesting what Nokia say later on today.




