The past couple of months I’ve had reason (more than usual) to sit back and think about all the different frameworks and patterns available out there. One specific example of this is the following:
Imagine that you would want to build a web service whose role it is to impersonate a SharePoint list. This list is then supposed to be consumed by an Outlook clients calendar tool. The data you want to fill this calendar with is stored in a database containing approximately two tables. The reason I got in touch with this was that I was asked to solve some problems regarding the switch from regular time to daylight savings time and calendar items tagged as all day events. Upon hearing about this existing system I thought something along the lines of “How hard could this be? It’s just a bunch of tables and a web service contract to fulfill.”. Well, as it turns out – the joke’s on me.
I’m not kidding when I say that the code base in the repository for this project consists of ~200 files! Factories, Repositories, Providers, Containers and god knows what! When you open a project and within the time frame of about five minutes can’t figure out where approximately to begin solving a specific problem there has to be a problem with how the code is organized. And I don’t see myself as an under qualified developer. What I ended up doing was setting a breakpoint in Global.asax at the start of a request and then step my way from there. And the funny thing is that all the database access code was hand written. NHibernate (or any other OR-mapper for that matter) hadn’t crossed the mind of the previous developer (or at least wasn’t implemented).
Grossly over engineered. That’s what comes to mind when I look back at this.
A couple of days ago I was recommended the following article: Joel On Software – Why I hate frameworks. Read it! It’s quite a funny read and I can definitely relate to this problem. I also think that this specific issue should be more widely discussed. Somehow it seems that the software development world has moved away from solving real problems to solving problems related to the problem solving. Not quite sure how that adds immediate value for the customer. Also not quite sure how it relates to working agile. If we extrapolate the current situation just a liiittle bit more we’d end up with architects and developers adding a bunch of frameworks to their project and organizing them according to some new patterns (which are bound to appear) they’ll expect the code to write itself!
And I haven’t even mentioned the frameworks managing the other frameworks.
Share
No Comments »
Posted on December 28th, 2009 by Fredrik in Miscellaneous, Productivity
For quite some time it’s bothered me why changes I make to my mailbox while using IMAP as the access protocol to the server won’t be persisted immediately, but only upon closing the mail client. This is particularly annoying if you’ve organized a bunch of e-mails at home and then check your iPhone (or other client) just to see the old stuff still lying around.
Finally I found the setting which seems to cure this problem, at least if you’re using Thunderbird as your IMAP client. In your preferences dialog under the “General” tab click the button “Config Editor…“. Enter “expunge” In the search field and change the “mail.imap.expunge_after_delete” from “false” to “true“. To be specific this only seems to concern the deletion of e-mails, but it has worked for me when moving e-mails around from folders as well, so I’m happy!
Hope this works for you too, should you need it.
Share
No Comments »
Posted on December 25th, 2009 by Fredrik in Productivity
So, I’ve got my mail accounts hosted by an Exchange 2003 server and I’ve connected the borrowed iPhone I’m using to it – works perfectly. Now I’m looking to get the information from there into my Mac somehow. Apart from having my private mail accounts in an Exchange server I’ve also got my professional mail account in an Exchange server and I’m currently using Google Calendar as a merging platform for my calendars (mostly because I don’t want to have to look at two devices in order to determine if I’m available or not).
While trying to solve this I found this article yesterday which has helped me adding my Google Calendar to Thunderbird using two plugins. Since Thunderbird has come to version 3 nowadays I had to download the latest nightly builds of the plugins, they are available here. So now I’ve got my mail working in Thunderbird (although via IMAP) and I’ve also got my calendar with read&write access connected to Google Calendar. Now I just need to figure out how I’ll get the information exchange with my private Exchange account and Google Calendar up and running. For my professional Exchange account I’m using a software called SyncMyCal running within my virtual Windows 7 machine dedicated for work.
Another potential solution might be to have a look at CalDAV for Exchange, but I haven’t gotten that far yet. =)
Share
No Comments »
Posted on September 10th, 2009 by Fredrik in Miscellaneous, Productivity
Today has been a fairly good day I must say. Through my current consulting assignment I’ve had the opportunity to write some code in a open source project (this might very well result in another blog post quite soon which I’ve written about here). I’ve also today received a bottle of champagne for the work I did with the photography at my employers summer party – I like! I also had a pretty interesting discussion about career options, not as in look for a new job but rather to think about how to profile myself and think about what’s up next. Oh, and I went to the hairdresser today – it was seven weeks in the working. =)
All these things combined have given me an unexpected jolt of positive energy, something I haven’t had in a long time. I suspect that a contributing factor is that I haven’t had a proper vacation this summer. But in seven days that’s going to change! Now I just hope that I can keep this level of energy and motivation and look alive while doing it. =)
Share
No Comments »
Posted on July 16th, 2009 by Fredrik in Productivity, Programming
If you should have the need to some day produce a mockup of an interface without letting the person who asked for it think that you’ve actually implemented stuff behind the mockup (and thus believing that the product is ready to ship) you should have a look at this: Balsamiq Mockups. It’s a flash application, so it should work with any browser (that supports Flash of course =).
The only drawback is that it’s a demo which’ll show you a popup every 5 minutes while working with your mockup – but I think I could live with that.
Share
No Comments »
Posted on June 15th, 2009 by Fredrik in Productivity, Programming
Ijust finished reading this really interesting article about Windows Workflow Foundation written by David Chappell. I’ve only tinkered around with WF a bit and therefore this article was a good read in order to confirm some thoughts I had about it but also to give me a few new ways to think about WF.
If you, like me, prefer to write your own (bad? =) code and don’t mind handling threading and stuff like that yourself, using WF might not be the most appealing thing for you to use. But rest assured, something called custom activities is available and that’s the place where you wanna strut your stuff! As many others say, this technology just means you get to spend more quality time writing business-related code and don’t have to bother with the infrastructure, which – to be honest – gets a bit tedious the n:th time you implement it.
Happy reading!
<P.S.> I wrote the most of this post on my P1i (which happens to have an absolutely horrid keyboard) using the WPhone plugin for mobile WordPress access. The only drawback is that I haven’t yet figured out how to add links using this plugin, therefore I had to finish this post in a real browser. </P.S.>
Share
No Comments »
Posted on June 8th, 2009 by Fredrik in Miscellaneous, Productivity
Today I’ve been totally swamped with answering emails and attending meetings. Luckily the meetings had a good agenda and a good leader. The reason I’m so swamped with these things is that I from today have taken over the technical responsibility for the application/platform I’m working with.
From a productivity standpoint an excellent tool I used today was the good old task list (of course written in notepad =). Just the act of writing the stuff you need to to down can be soothing. Now I just need to keep that list from growing out of control. ;)
Share
No Comments »