After taking a nice long break, it looks like it’s time to start working again. For me, the holidays weren’t really a break, but a non-stop list of issues with the new house which we still haven’t moved in to. Home ownership is fun.
Techcrunch reports that Joost is finally giving up their peer-to-peer model. Joost switched to a flash site a few months ago, yet this is a pretty big blow to their business model. I am sad to see the P2P idea go down the drain, and I seriously wonder how long Joost will be around considering the competition from Hulu and similar sites.
The guys over at CoreMedia released their own micro-blogging platform under a BSD-license (open-source). Trillr is aimed at corporate (”Enterprise 2.0″) micro-blogging. I’ve used the original Trillr site for a while now and I think this is a great contribution to the community. Trillr is written using the Django Framework (Python) and the API is compatible with Twitter, making it easy to integrate with existing solutions.
The developers did release a word warning around the setup process simply because they developed the software as an in-house application and had to rip out some proprietary code before releasing it to the public. I think we should expect subsequent releases to clean that up!
On another positive note, these guys are working on a version 2.0 release already which they’ll also open source. Let’s hope they keep up the momentum.
What a sad day. I broke down and wrote a VB macro. And I really loathe VB. The macro formats all milestones and dependencies in an MS Project using a simple naming convention — the tasks must have the word “Dependency” or “Milestone” in them to be colorized. Beats doing this manually :)
Sub Format_Milestones()
Dim t As Task
Application.OpenUndoTransaction ("Colorize Milestones")
ForEach t In ActiveProject.Tasks
IfNot t IsNothingThenIf InStr(t.Name, "Milestone") <> 0 Then
SelectRow Row:=t.ID, RowRelative:=False
Font Color:=pjGreen, Bold:=TrueEndIfIf InStr(t.Name, "Dependency") <> 0 Then
SelectRow Row:=t.ID, RowRelative:=False
Font Color:=pjOlive, Bold:=TrueEndIfEndIfNext t
Application.CloseUndoTransaction
EndSub
In about July of ‘08 I decided it would be awesome to write a book about object-oriented content architectures. Aside an impressive outline, I wrote a lot of the basic introductory chapters. Then life caught up with me. So while I might finish the rest of my book some day, I decided that I should take the JCR part as a primer on the Java JSR 170 and JSR 283 specifications. There are just no in-depth manuals out there that I have seen. So here is my contribution to the geek world.
I added a new software section to the site which I started uploading all kinds of working and half-finished software projects I’ve been working on over the years to keep myself occupied.
This has to be one of the best set of directions I’ve ever seen (these are real, got them from a client):
We request that you enter the Technical Training facility through the Building #4 Main Entrance rather than walk through Buildings #2 and #3, as the lighting and air quality in the corridors of the vacated areas is not optimal. There is ample parking in the Building #4 lot – feel free to use this lot when attending classes.
If you must walk to the training area from Building 1 or 5, follow the directions below. Again, the indoor walk is not recommended.
Begin in Building # 5 in front of Security/Human Resources/Credit Union area, enter and cross through the elevated glass walkway that connects to Building #2.
Go through the doors at the end of the walkway entering Building #2. Make a left turn, follow around to the right and continue along that corridor, making a quick right turn as the corridor ends into a single doorway.
Go through the single door at the end of the corridor. DO NOT FOLLOW the signs to Building 2/3/4. Instead there is an elevator immediately to your left. Take this elevator to the bottom floor B.
Make a right turn as you get off the elevator. You are now in the basement of Building #2. Just past the Men’s Room door, make a left into the main corridor. Stay on this main corridor. You will go through a set of double doors. Just past the old cafeteria there is a second set of double doors that requires your ID key for admittance.
You are now in Building #3. Continue to stay on the main corridor; there will be vacant office areas to either side as you go along. You’ll quickly come to a Y in the path, follow around in either direction staying to the main corridor – this is just a diamond shaped area that contains the restrooms.
To the other side of the Y intersection you will see the main corridor continues into Building #4. Go through the glass corridor, through another set of double doors and into Building #4.
Continue into Building #4 through the double doors at the end. You will see the Training Services Banner displayed over the doorway.
This is almost old news, but I just noticed that SpringSource, the company behind the Spring Framework, bought G2One, the company behind the Grails framework (see my earlier article).
This seems like a great move to me, completely aligned with Spring’s vision to make Java development easier. It’s great to see that Grails now has Spring’s full backing and a promising outlook in terms of integration with Spring applications.
Maybe one step closer to Grails in the enterprise.
Achieving efficiency in the software development process is one of the key motivators every team should strive for. Efficiency can be measured in a variety of ways. The most obvious measurements are cost, project timeline, and the feature set that can be implemented given the first two. In a sense, it boils down to the old project triangle (remember: pick any two of the criteria).
In essence, there is a trade-off between quality, timeline, and cost. For example, reducing the timeline at equal costs reduces quality just as implementing at a faster pace reduces quality. Yet I argue that the triangle approach is not necessarily valid anymore. Traditional development processes have clearly shown that just enhancing the timeline on a project to put special care into the design does not actually lead to higher quality software – quite the contrary.
Yet more dimensions are at play. The number of defects (“bugs”) found in a particular software directly translate into cost and time, especially when found late in development cycle, creating a dependency between testing quality, time, and cost. Inefficient software design increases the cost of introducing new functionality as requirements change and a lack of refactoring capabilities sooner or later lead to the need for a full re-development. The problems are amplified when the software spans multiple independent subsystems, which is often the case in modern web architectures which span across content management systems, web services, search engines, commerce engines, custom web applications, etc.
Agile development methodologies have tackled many of these problems in great detail through test-driven development (TDD) and time-boxed iterative release cycles. This article discusses a number of tactics you can deploy in addition to what you find in your agile toolkit: To speed up development and tackle complex problems with smaller teams in less time leveraging the key ideas of Model-Driven-Development (MDD). Read more >