Getting to “Done”

How do you know when you are finished? This can be quite difficult. You are working on something and you need to get that deliverable finished; a document, a piece of code, a project, a building or a Lego creation. But when do you now you are done? This can be extra hard if you consider yourself to be a perfectionist! There are a four rules that I would suggest to follow; Visualize “done” from the start. Before you get started define what getting it done means. What is that end state, and ask yourself the question “could I get to ‘done’ earlier?”, “what compromises can I make to get finished sooner?” Use tools to test being finished. Test Driven Development does this well. Coders are encouraged to write […]

Startups: The importance of the Founder Chemistry

I have been involved in some interesting conversations recently, where technical founders are struggling to find business co-founders and vice versa. Additionally, there seems to be the search for the holy grail of what defines an effective founder. Everything from age analysis, to combinations and structures. But I wonder if there is a magic bullet theory that could be derived here? In my limited experience, these are the elements that I found critically important. 1) A respected and aligned knowledge base Maybe unusual to be at the top of my list, but I believe this is one of the culprits for many […]

Feature Flipping Grails Plugin: Part 3 (Working with features)

So in the last post, we went through the process of creating screens and a controller to manage the features in our application. Now we get to the fun part! Creating some features!!! Lets simulate the following features; A feature called EmailUsers which will only be enabled for users with the role ROLE_BETA A feature called InviteUsers which will not be enabled So to create these features we fire up our application and navigate to the features controller, and create the two features. Should be pretty straight forward based on the information above. Just remember to add the role ROLE_BETA above when creating EmailUsers feature. Once you have done that, these features will be persisted to the XML file, and you don't have to change anything on […]

Feature Flipping Grails Plugin: Part 2 (Creating an Admin page)

In the last post we created a test application and installed our plugin, now we are ready to create a page where we can administer the features. In the future, I will be updating the plugin to support the ability to automatically install a controller and view to do what we are doing below, but the user will need to secure if they chose to (which you should). But in the meantime, lets go through the process of creating one! When you install the plugin, you get access to a service called FeatureFlipperService. This service provides a series of methods that help you with managing the features (see documentation on what is available). Lets get started by creating a controller called Features; grails create-controller Features inject the FeatureFlipperService […]

Feature Flipping Grails Plugin: Part 1

The other day I wrote about my interest in support Feature Flipping in Production environments. Since I have been doing a lot of development in grails lately, I wanted to develop a plugin to support this functionality. And here it is! This blog post is about how to use it. If you want to know about the types of features it supports, I have documented them on the plugin page, and if you are interested in the reasoning for this, check out my previous post. In this post I am going to describe the process of installing the plugin and configuring it. Then in a subsequent post, I will show you how to create a page […]

Feature Flipping

Some time ago I read in great interest about Flickr's Blog post on "flipping out", which is the ability to switch features on and off for a particular application in production. I know some of friends had implemented this so, I wanted to give it a go. Some of the benefits to it include; Ability to push untested code into production (controversial) Theoretically make changes much faster as you don't really have to wait for a neat release point (as long as you have a stable build) Ability to turn features on and off in production without having to redeploy Support a "push on green" strategy Support Continuous Deployment Strategy But before you get too excited, you do need to have some important foundations. Firstly, you need fantastic test coverage, […]

Design to HTML Services, are they worth it?

I finally got a UI designer to complete the mockups for my site. And when it was time to get the HTML markup, he suggested I use a “Design to HTML” service. There is lots of them out there. You pretty much give them the Photoshop PSD file, and in return they provide you with XHTML/CSS markup. So I gave it a try….my verdict? Won’t do it again…. Now this is no criticism of the company that does it, because they are good at what they do and serve a purpose. The only problem is that their purpose is not my purpose Its a good solution if you are not intending to work with the templates they provide, and possibly just use it for a […]

Power Firefox Search

I recently re-discovered a power feature on Firefox, and its ability to use keywords to help Firefox know which search engine you want to use without having to select it from the search engine lists. Why do this, well if you are like me, and get annoyed at the need of selecting a search engine form the drop down with your mouse before executing the search. Then you probably just don’t do it. So here is the trick; Select the list of search engine drop downs on your Firefox search bar, and select “Manage Search Engines”. Now go through and add keywords to your favourite search engines. I only have a few, so I use single letter keywords. ‘g’ for Google, ‘e’ for eBay, ‘w’ for […]

Making Active MQ work with Grails 1.2 M2

Some great work has come out of the plugins available for Grails. One of my favorite is the Active MQ (and JMS) plugins that allow grails (very easily) to integrate Java message. I have used these before, but then come up against an issue when upgrading my projects to Grails 1.2 M2. They stopped working!!! So with some help from @domix (behind Active MQ plugin), and @ldaley (behind JMS plugin), I managed to get this working. Essentially there were two issues; the bean name had changed from “connectionFactory” to “jmsConnectionFactory” The static variable to declare in your consuming service is “exposes” not “expose” as in the examples In the spirit of making this a more complete picture, I […]

Is Opera Unite the Platform for Web 3.0?

We are all excited about what is install for us as the web evolves. Web 2.0 and Social Networking are so parsé, when are we going to get something new? I have been keeping a close eye on discussions about Social Computing. And you may have also seen a recent post of mine where I discuss “Connected Computing”. Where the premise is about our computers getting more and more powerful, but we as users, are hardly harnessing this power, and (unless we are talking high end graphics for gamers) haven’t been for years. With all the focus on cloud computing, why does cloud computing have to be on remote servers on some remote farm somewhere? Why can’t […]