Archive for October, 2009
Minneopa State Park
Photo by Jon Mierow
While the MindTouch team has been busy working on new features for the Noatak release, we’ve also felt it necessary to backport some bugs (of the security and performance nature) which have been hindering our customers.
Both MindTouch Core as well as our commercial customers can pick up version 9.08.1, which is a hardening release with 47 bugs fixed. This release should be considered a must-upgrade, as there were a couple edge case security bugs that have been resolved.
You can check out the whole bugfix history on our release notes page, but here are a few highlighted pain points that I know many of our users have been running into:
- Bugfix 6928: Link dialog search stops after a period
- Bugfix 7176: Custom extensions do not reliably start on host restart
- Bugfix 6390: Edit and ACL and check ‘Apply to children’ trashes children’s ACLs
- Bugfix 7172: xPath Namespace prefix “_” is invalid or undefined
- A couple XSS holes on special pages have been fixed
- Leaking of the API key through certain API exceptions has been fixed
Help determine the future of MindTouch! Great releases happen when we have an open dialogue with users of our software – given the endless applications of MindTouch, understanding how it is being utilized helps us define the path forward.
In the past, our process for capturing feature requests was split across a multitude of channels: forum postings, the “feature” categorization in our bug tracker, and also through touch points with our sales reps and support team.
Starting with the Minneopa release, we implemented a new internal process for feature development: the functional spec-driven process. While this isn’t anything new, it’s the first time we’ve formalized it internally for the engineering team. Starting with the Minneopa release, all features had to be vetted through a functional spec before it hit the development phase. At our weekly engineering meetings, developers who have been working on functional specs present them to the rest of the team for feedback. These functional specs evolve over time, and they become better features for it. The functional spec allows us to take a user-centric (rather than a dev-centric) approach to a problem, and it also keeps the feature development process transparent.
As engineers, we oftentimes get blindsided by the technical details that leads us to forget asking the most important question: why should this feature exist? We’ve been victims of this approach in the past, and since the process’ implementation, we’ve been largely successful with delivering use-case driven features.
You can participate in this process. And you don’t have to be technical to do so!
If you haven’t already done so, register an account at our Community Portal, then simply go to our primary specs page, and click the “Add functional spec” button. This will load up a template which contains all the questions and sections you need to fill. You don’t need to fill out the whole spec at first – fill in whatever portions you can, and ask people for feedback!
Here are some active functional specs which are being fleshed out right now:
I hope to see more contributions in the near future – I’ll be keeping a keen eye on things in that area (and helping nudge specs to completion) – see ya there!
Photo by KM&G-Morris
This week, we stray from our usual concurrency coverage of .NET to examine Apple’s Grand Central Dispatch. GCD is a new technology in Mac OS X Snow Leopard and offers system level dispatch queues, rather than the usual approach of per process dispatch queues.
One of the new C language feature Apple introduced to make this mechanism possible and convenient are Blocks, which to .NET developers should be familiar as anonymous methods. Both represent closures that allow a block of code with captured locals to be passed along for later execution.
The central nature of GCD has some distinct advantages for maximizing the available hardware and it will be curious to see if other OS manufacturers will adopt similar system level facilities.