Archive

Archive for the ‘.this’ Category

The road ahead

January 5th, 2010 No comments

The year marker has passed, it’s 2010. What did 2009 bring and where is 2010 heading?

2009

The past year brought a lot less than I expected, no personal projects were really finished. But I did learn a lot, about maintenance, development and personal growth. I set out to read a few books, Deepak Chopra amongst then; not done. I wanted to create a new look & feel for my blog; not even started. I started a small project to create a Wordpress plug-in that detects vcards (microformats) and creates a visible floating card; half done. In december I found Highcharts and wanted to turn it into a Wordpress plug-in; going steady. It seems like 2009 wasn’t to successful, but that’s not quite true. I’ve been busy at work, helping out everywhere I can. I’ve learned quite a lot about Javascript, social media, cloud computing, architecture and so on.

The goals I had for 2009 were not missed, they just changed. When the road ahead for the company was discussed at work, I reminded my colleagues about the fact, that – just like in any/every agile project – goals are in constant flux, changing and moving around.

2010

So what’s going to happen in the coming year? Since I was on the topic of “agile”, I can say that I’m becoming a member of Dragon Open Source Foundation. DOSF is a group of people from Sundsvall that aim to become the main source for information regarding Open Standards and Open Source Software for the public sector in Sweden. This fits perfectly with my goal to help the Swedish public sector to start focussing more on Open Source and Agile development. (A big thanks to Peter Axelsson, my previous boss at Steria, for pushing me into DOSF.)

Personal projects are always a bit tricky, mine are mostly revolved around development. There are a few things I’ve been thinking about turning into Wordpress plug-ins; MathJax and Wordle. MathJax should be pretty straight forward, but not Wordle. At least not how I have it in mind, pure CSS3 based. Replacing the tag cloud with something that works and looks like Tagul, using only CSS3 should be a very nice challenge and CSS3 skill sharpening project.

The road ahead has been planned, now it’s time to rip it apart and just have fun sailing through 2010.

Categories: .this Tags: , ,

Back in the saddle

October 1st, 2009 No comments

After almost 2 months of leave (having baby can hardly be called a vacation), I’m back at work and eager to start again.
A lot of things have changed at work while I was gone, so I’m curious to see how they play out.

My goals of being a part of the OSOSS movement and resharpening my web skills are back in action and I hope to be blogging a lot more from now on.

For now I’ve got an enormous pile of e-mails to dig through and lots of things to update.

Categories: .this Tags:

Blog syndication

July 24th, 2009 No comments
SourcedFrom

This blog now supports SourcedFrom. SourcedFrom allows for re-publishing of WordPress content using their open API.

If you wish to re-publish the content on this blog, please ask to be added to the list.

Coming topics

June 18th, 2009 No comments

Just a small heads-up about what I’ve been up to…

My old server got hacked, so I had do finish the installation of critical services on my new server. To manage virtual domains I had installed WebMin with VirtualMin on it, but somehow it refused to work for e-mail. Not feeling much for reinstalling VirtualMin I searched for an alternative to manage the e-mail services. I’m now quite happy VirtualMin bugged because now I came across Zimbra. Zimbra is currently running on my new server and it’s just brilliant. The only shame is that it only supports Ubuntu 8.04 LTS and won’t support any other Ubuntu’s until Ubuntu 10 LTS. Installing Zimbra itself is quite easy so I will not be blogging about that, what I will be blogging about is what I did to make it more secure… I added mod_gnutls to my apache to benefit from it’s support for SNI which allows Virtual Hosting of HTTPS domains. With mod_gnutls with my own Root CA, server CA and P12 nobody but me can access the web interface of my Zimbra and with mod_ssl set up as a proxy, my apache provides an easy and secure bridge between Zimbra and the Internet. If this sounds interesting, keep your eye on my blog…

I’ve been planning on creating my own theme for this blog, but as usual work and other tasks mess up my priorities. Never the less, I did get a chance to pratice my theme making skills by creating a Wordpress MU theme at work for internal blogging. This brought me back on track with CSS and JavaScript again. What I started wondering is, is there any support for Continuous Integration with JavaScript. And is there automated Code Revision/Quality Assurance for JavaScript? Turns out there are possibilities… JavaScript Code Review is quite easy with JSLint, there are java ports and there’s Rhino, so getting it into a CI system like Hudson should be quite straight forward. There’s also JSUnit which allows Unit Testing of JavaScript. I’ll be experimenting with JSLint in Rhino and Hudson, but also in PHP! Recently the Mozilla JavaScript engine became available as an extension for PHP, so I’m curious about running JSLint and JSUnit in that.

These are just 2 very exciting topics I’m playing with at the moment, so stay tuned!

Thinking ahead without planning the future

April 2nd, 2009 No comments

I started writing my About page, but what I wrote started to feel like an article more than a short summary, so here is the full text:

What is “Extensible”?

Extensible is defined in Wikipedia as:

In software engineering, extensibility (sometimes confused with forward compatibility) is a system design principle where the implementation takes into consideration future growth. It is a systemic measure of the ability to extend a system and the level of effort required to implement the extension. Extensions can be through the addition of new functionality or through modification of existing functionality. The central theme is to provide for change while minimizing impact to existing system functions.

Although forward compatibility and extensibility are similar, they are not the same. A forward compatible system can accept data from a future version of itself and pick out the “known” part of the data. An example is a text-only word processor ignoring picture data from a future version. An extensible system is one that can be upgraded to fully handle the new data in the newer input format. An example is the above mentioned word processor that can be upgraded to handle picture data.

In systems architecture, extensibility means the system is designed to include hooks and mechanisms for expanding/enhancing the system with new capabilities without having to make major changes to the system infrastructure. A good architecture provides the design principles to ensure this—a roadmap for that portion of the road yet to be built. Note that this usually means that capabilities and mechanisms must be built into the final delivery which will not be used in that delivery and, indeed, may never be used. These excess capabilities are not frills, but are necessary for maintainability and for avoiding early obsolescence.

Extensibility can also mean that a software system’s behavior is modifiable at runtime, without recompiling or changing the original source code. For example, a software system may have a public Application Programming Interface that allows its behavior to be extended or modified by people who don’t have access to the original source code.

Although usually applied to engineered systems involving software, it can be applied to any type of engineering. Houses can be built with future extensions in mind. The Prince Edward Viaduct located in Toronto, Ontario, Canada was built to accommodate a future subway line.

Though the application to software is relatively new, the word has been a rare but valid part of English for a long time. The Oxford English Dictionary cites examples going back to the 17th century.

For me extensibility means, thinking ahead without planning the future. In the classic waterfall model, this would mean analysing all possible future feature enhancements and adapting the architecture to be extendable. This method always misses the target though and causes more problems and frustration along the road. My philosophy is that using development principles like Agile, Scrum, RUP etc. will not make the actual software extensible, but it will make the code much more flexible. Agile is used to be able to quickly adapt to changing needs (required feature priority, etc.) during development, but one thing that’s normally not mentioned is the timeframe.

If the development process is based around being agile, adapting to change and delivering production quality parts, does it matter if these changes come tomorrow, next week or next year? Of course not. The biggest issue with creating software that is future-proof is often not the actual architecture, but the code and the organisation around it. If code is well documented and the project around it is fine-tuned for quick change, then the code will become easier to maintain and adapt, thus becoming extensible. Often when we’re asked to make changes in (older) system the biggest problem is understanding the architecture and code in order to be able to make the changes. I’ve often heard of and seen systems that were extremely hard to maintain, so badly even that noone was allowed to touch the code and a complete new product was being developed instead. If those nightmare systems had been made using Agile/Scrum/RUP, then this probably would not have been the case. I say “probably” since there are people out there that implement Agile just for the sake of it without truly understanding it, this delivering even worse maintainable products.

What it comes down to is this: It’s not the code that makes a product extensible, it’s the process that creates it that does.

Another blog is born

March 15th, 2009 No comments

The beginning is always the hardest… That also counts for starting this blog. I’ve had plenty of ideas and subjects to write and reflect about, but getting started has been the real challenge.

This blog wil be my external memory and thought mirror (or pensieve) for all subjects related Software Engineering, Web Development, Project/Organisation Management, filosophy, professional behaviour and of course, Development Principles like Agile and Scrum. I’ll even use it as a sketchpad to tinker and experiment.

Some of the subjects I’ll be exploring in the near future are GUI design, not the most common GUIs, but GUIs that are quite often forgotton or looked at quite differently; Administrator GUIs. A common fact is that people working internally with complex systems often get the most hideous interfaces to work with. Another subject is Agile Software Development, organisation and SCM (Software Configuration Management), many companies attempt to implement Agile in their development processes, but are they on the right track?

One subject I’ll he exploring both professionally and personally is related to spirituality and emotional welbeing and it’s connection/use in leadership and professional behaviour. This will be based on what I learn from reading Deepak Chopra’s books in combination with my own thought, filosophies and experiences.