August has come to an end and so has Barbaric August! I am pretty satisfied overall, I was able to work on it a couple of hours more this weekend, add support for a new command complete task and put some basic styling in place. The most important thing I am taking from it, however, is that it was a blast!. And it’s funny, when I started implementing it I had such vague ideas of what I wanted to do, and now, I cannot stop thinking about an infinite number of possibilities and directions in which to improve it. So it is absolutely great that is has become both a source of fun and joy, but also a fountain of new ideas for improving my knowledge in different areas of software development.
Yeah… I may have gone a little bit overboard with the whole SkyNet theme, but I thought it was freaking hilarious XDD. Imagine… your CLI assistant having different personalities… how far could one push that idea… to which remote extremes of genious could it lead I am too ignorant to fathom…
As I said I applied some basic styling with my limited designer skills (re-learning CSS for the 9th time) and below you can appreciate the makeover:
If you want to learn more about this project, you are more than welcomed to follow on the Barbaric August feed. I will be adding ones last, more detailed, wrap-up post this week, don’t miss it! :)
P.S. On a side note, I had the chance to play Bastion this weekend at last, and it’s freaking great! Such care to detail in every aspect of the game, art, music, mechanics… you can really appreciate how Supergiant Games has put their soul into it and the soundtrack reminds me somehow to Firefly (even to Malin! :O). Brilliant!
Omg this week has been hectic! Sprint at work is nearing its end and I have been multiclassing Code-Wizard/ScrumMaster, which basically means two jobs for the price of one. I have tried to make time to work some magic in Barbaric August, but I think I have barely managed to scrape 7 hours for it these last two weeks. I do not honestly know how the heck does Uncle Bob find those extra 20 weekly hours to practice the craft but kudos to him :).
I did work a little today, and I am happy to say that my Barbaric Monthly SkyNet has now a proper data access layer! (Did I somehow forgot to mention that I have been doing everything in memory all this time? xD) It is surprinsingly easy to hook up an ASP.NET MVC website with a database using Entity Framework Code First. I substituted my fake and temporary Unit of Work Context for a DbContext and created a custom Database Initializer to seed the database with some fake data and voilá, two steps and you got it, all unit tests passing and everything working beautifully.
And I’m afraid that… that was pretty much it for today fellas! I have one day remaining to finish the prototype and make a video wrap up. What?? A video what? Yeah, you read it right, I have planned to record a nice wrap up video after every Barbaric Monthly, it may be catastrophically horrible, but as a friend of mine told me today: ”No one remembers a coward”. Back with you soon…
P.S: If you get the chance take a look at any of these books by @JulieLerman, she’s the go to person for anything Entity Framework related:
Whenever you see the x-factor in someone's output - that little extra something that turns the good into the awesome - it's a marker for intrinsic motivation. Monetary motivation plateaus at the point you think your work equals your pay. For most people, that happens when the product is good but not awesome. To get to awesome you need to think you might be changing the world, saving lives, redeeming your reputation, attracting the mate of your dreams, or something else that is emotionally large.
One of my techniques for staying motivated is that I put everything I do in the context of how it might improve the entire world, or at least some subset of it.
Go, go and subscribe to his blog, he has a lot of interesting things to say.
5 days left of Barbaric August and it looks like I may be able to have something that remotely, vaguely, nearly seems to work. It is a starting point anyhow, and I feel it will spawn many interesting branches of development in future Barbaric Monthly’s to come.
Since my last update I was able to put some hours after work and build Skynet!! Or more likely something with the AI prowess of a stone. See the evidence by yourself below:
Yeah… That rule-the-world thingy did not work so well for me.
Anyhow, after most of the mists of mayhem dissipated from my head I started reading Domain Specific Languages to get ideas about how to go around building a DSL for the Ultimate Personal Task Management System project. It took me a while to get up to speed, was it due to the nebulae that populated my mind or to the fact that one needs some time to adapt to the writing of an author, I do not dare to wonder. It is a very interesting book nevertheless, I found out that, I have been implementing what Martin Fowler calls internal DSLs for quite a while without even reflecting about it: Yes, Ladies and Gentlemen, Fluent Interfaces are no other thing than Domain Specific Languages embedded within the same general-purpose programming language you happen to be using! Aha!. Aside from this discovery and, in the context of this project, I think I can get away by starting implementing a simple DSL based on a Delimiter-Directed Translation parser and go increasing in complexity as needed.
I finally was able to set up the project on GitHub and Sprint.ly today, and after hacking the first user story, here we have a draft of how it may look: