Skip to content

New Kitware Developer Blog

Yesterday Kitware launched a new developer blog. There are categories for the different areas Kitware operates in, such as software process (CMake && friends), scientific visualization (the area I work in, e.g. VTK, ParaView), and our work in open source, which I am very passionate about. Check out Will Schroeder's post on Why Open Source Will Rule Scientific Computing, I think he makes some great points - in my own research career I witnessed how inadequate closed source options often are.

Bill Hoffman's post on Deploying on Windows with DLL Manifest Issues is something near and dear to my heart, I posted about similar issues last year in DLL Hell...The New DLL Hell? These recent changes will certainly go a long way to ensuring future developers can more easily validate Windows packages before distributing them. You can also check out my first post on visualizing the commit history of the VTK and CMake repositories in VTK and CMake Code Swarms.

I will get some more technical posts up soon too! Exciting things happening, still enjoying my new job at Kitware.

Disclaimer: The opinions and musings in this post are mine, and not necessarily those of my employer.

Another Post About Camp KDE 2010

There have been lots of posts about Camp KDE on Planet KDE, along with identi.ca posts and a stream of photos on flickr. It has been a great event so far with some really interesting talks. I especially enjoyed Philip Bourne's talk on open access to data which is very close to my heart, but noted that many parts of the stack used are still closed source. My background in Physics and Chemistry tell me that this needs to change. Open access data without open source tools to create, store and view that data is only addressing one part of the problem. I hope to address other parts of this issue in the work I am doing at Kitware

Celeste's talk was also interesting, and I found out that I may be an OCD interface design guy (many of the points she outlined bugged me in projects I had worked on, especially consistency in interfaces, grammar, etc). Great talk, and illuminating for someone like me who has not worked with anyone in this field before. Then of course there was Till and Alexandra's talk on career opportunities in FOSS, which was a great talk and I found myself nodding along with them. My windy path was not quite so glamourous as rock star or opera singer, but I can certainly identify with them. I instead pursued a degree and a PhD in physics research (largely experimental too), only to find I was extremely passionate about developing software to edit and visualize the data, rather than spending months in the lab.

This is not even the end of the first day, and so you can tell it was a great conference. Jos talked to use about marketing and then Artur presented his take on KDE form the desktop to the pocket. I still really want my own N900 to experiment with taking scientific visualization to the pocket (I have the desktops, laptops and a netbook to play with already). The next morning began with Frank presenting his vision of open source in the cloud, I find myself using the cloud more and more (especially now I have a Droid), but share his concerns and wish to create AGP led alternatives that can be easily deployed by both companies and individuals.

I also really enjoyed Romain's talk on the state of KDE PIM/KDE Windows, with live demos (warts and all). It also nicely segwayed the need for automated testing in order to improve the quality of KDE on other platforms, as well as use our limited resources wisely. I presented my talk on CMake, CTest, CDash and improving the software process in KDE. I think the testing framework can really help KDE developers by providing continuous feedback about platforms not everyone has access to. There are already quite a few KDE projects on my.cdash.org, and I would like to improve that and possibly use subprojects to divide the projects up into manageable pieces.

More great talks from Leo, and we ended the day with plasma talks and demos from Marco and Chani. I don't want to reproduce the schedule, but needless to say we had a great set of talks (all of which were taped and should be available soon). Thanks go out to Jeff and the ground team here for organizing the event so well. Monday was taken up with some more technical talks, Will's talk on the build service is something I would like to use in the future and see if we can get it contributing build/test results to KDE dashboards. The day concluded with CMake training run by me. I really enjoyed the dialog that was present in many of the talks (mine included), and got some great feedback about the training afterwards. I would love to do this again at future KDE events, and from the feedback I received it would seem others would like that to. It was very strange not to talk about any of the scientific visualization work I am doing, one of the first conferences in years where I have not.

Tuesday was the traditional trip day, and we checked out Stone Brewery, tried some excellent ales and then had dinner at one of the longest tables I have ever eaten at. William was of course in attendance, as the youngest attendee. After that we braved the driving rain and winds to get back to the UCSD campus. I took the opportunity to catch up on some work, and recharge my batteries a little ready for the Qt training that is being offered by Till Adam of KDAB today. Looking forward to a day of learning and admiring the sun this morning! The company has been great, and I am very pleased I was able to make it along. This is my first business trip for Kitware, and I am very pleased they sent me along, and that NAMIC sponsored my attendance.

Disclaimer: The opinions and musings in this post are mine, and not those of my employer. Any mistakes/inaccuracies are also mine, that said I would love to hear what people think of this new work.

Kitware at Camp KDE, Software Process Talk and CMake Tutorial

Kitware is very kindly sending me to Camp KDE. I will be giving a talk on Sunday about CMake, testing, software process and new features in the recent CMake 2.8.0 release. I will also be running a training session on CMake on Monday afternoon. See you all there!

I will also be available to talk about many other things, such as the migration to git, open source chemistry, open science and scientific visualization. Since I joined Kitware I have been exploring some crazy cool ideas in new areas of visualization too, hopefully my influence has not been too disruptive. I will be on the lookout for potential Qties to join my team of Qties at Kitware - be warned ;-)

Camp KDE

Looking forward to my second Camp KDE! We should arrive in San Diego Friday afternoon, not looking forward to the security lines... I will of course be bringing my spawned process (now named William), who was but a bump at the last Camp KDE. His Mum will be in attendance too, having to travel on her birthday. I am in the last few weeks of my twenties, so be kind.

Google Tech Talk on CMake

Bill Hoffman gave a Google Tech Talk on 7 December 2009 at Google's New York city office on CMake, CTest, CDash and CPack. Google recently made the talk available on YouTube.

I wish I could have made it down with Bill and Will to see Google's New York office. For anyone attending Camp KDE, I will be discussing some of these concepts there too, but with a focus on the software process and testing components of CMake.

Avatar and 3D

The Wednesday before Christmas several of my new coworkers from Kitware went to see the new Avatar movie in 3D. I haven't been to the movies much recently, generally just using Netflix to watch movies at home. I have to say it was well worth it, and I have been trying to talk Louise into going to see it with me again. We saw it at the local IMAX, and the images really popped out of the screen. It was a little off putting that they use linearly polarized light, so that the effect is lost when tilting your head. I would highly recommend that you make the trip out to see it in 3D, and hope to figure out babysitters and all that stuff so that Louise and I can go and see it before it leaves the big screen.

The story was quite engaging, but I did find it really quite lame that the mineral they were mining was called "unobtanium", or that is what is sounded like. They could have chosen a better name, but it at least it seems to have been used tongue in cheek. That said I moved my head out of the way once or twice when an object swung around. It was also amazing how much emotion was conveyed in the characters, and how tough it was to tell where the CG and real sequences were joined.

I would love to have access to 3D of this quality on my desktop. When are the 30" 3D monitors due out with Linux and OpenGL support?!?

The End of the Noughties

It is hard to believe the noughties are over - happy new year! It has been a decade of extremes for me on a personal level. It started with me going back to university, which was very challenging and rewarding. I attained a first class degree in Physics, and enjoyed it so much that I decided to stay and study for a research doctorate in nanomaterials. I was very look to work with Tim Richardson and Neil Cowlam who really allowed me to explore the field and go off on some really interesting tangents.

During my Ph.D. research I found the time to get involved in open source development, first with GentooKDE. I was lucky enough to be selected for a Google Summer of Code project in 2007 right at the end of my Ph.D. research. I spent most of my time working on Avogadro, Kalzium and Open Babel.

After that I was really hooked on open source development, and was offered a position as a postdoc by Geoff Hutchison in his new research group at the University of Pittsburgh in the chemistry department. This was a really big move from Sheffield, UK to Pittsburgh, PA in the USA. I learned more than I ever wanted to know about visas and working as an immigrant in another country.

These were certainly some of the high points of the decade, but it wasn't all good. In the middle of the final semester of my undergraduate degree we lost my little brother. This was a very difficult time for us all, and influenced my decision to stay in Sheffield over the next few years with my family. Then on the day I found out that I had been accepted into the Google Summer of Code program, as I was writing up my thesis for my Ph.D., we lost my sister unexpectedly too. I found out just how trusting and understanding relative strangers in the KDE community could be, and will always be thankful to them. Of course my friends and family were all there for us too.

During all this I met Louise (at the end of the nineties), and in 2005 we got married. Weeks before our wedding I attended a conference in Japan, and London was bombed the day before I returned from Japan. Roughly a week before our wedding Sharm el Sheikh in Egypt was bombed (our honeymoon destination). Even days before we weren't sure if we would be able to go on honeymoon. In the end we had a great wedding and an amazing honeymoon.

So much more happened, I think I have some great material for memoirs. I do worry whether people will really believe it all happened - the noughties were a real roller coaster ride. In 2009 my son was born, the birth did not go as planned, then at nine weeks he got a UTI that turned into E. Coli in his blood. I found out that I am an overprotective father, and that the doctors and nurses at the Childrens hospital in Pittsburgh are very good.

I also attended Camp KDE, met loads of amazing people including my future boss. Even that was far from simple, from an amazing start, to a suboptimal interview (I will tell you over beers), to the decision to hire me, then the visa gauntlet I ran to our eventual move more than six months later.

I have to say that we are extremely happy now we are in Clifton Park, NY. I love my new job at Kitware, the area is great and we have been made to feel very welcome by everyone at Kitware - especially Bill and Naomi. I think the next decade is going to be a good one, and have my fingers crossed for no really bad things.

I wish everyone a very happy new year. I feel very lucky to have such a great job working on open source code, with a generous hardware budget to buy new toys. If I could just talk them into getting an espresso machine everything would be perfect! We are on the look out for more Qties (pronounced "cuties"), and I am hoping to become lead Qtie ;-) I am really looking forward to Camp KDE in a few weeks, and all the work I will be doing at Kitware in the new year.

VTK: New 2D API, Canvas and Charting Features

Since joining Kitware in October, one of the first projects I was tasked with is revamping the 2D charting capabilities in VTK and ParaView. At first I was a little daunted as it meant digging through many of the internals of VTK, and breaking an assumption that is made in many parts of VTK - that everything being rendered is 3D.

A large portion of this work is also being driven by the InfoVis features in VTK, along with project Titan that we work on with some really interesting people from Sandia National Labs. The project grew quite a bit from its original scope, and I have now added some new 2D API that uses OpenGL as a backend, with the scope to add further backends in the future. I have been working on optimizing the OpenGL case so that large data sets can be rendered interactively, and small data sets can be rendered with minimal lines of code whilst giving pleasing visual results.

ParaView with 2D API canvas based VTK chart

Then when considering user interaction with these 2D elements we decided that a higher level API would be useful, that could contain objects and propagate mouse events to items in the scene. So I set about prototyping a new canvas based API. At this point I had enough new infrastructure that I felt it was about time I got back to my original task of implementing some efficient, well rendered 2D charts in VTK. Once I had my initial prototype in place it was time to expose this in ParaView and see how everything fitted together. As you can see in the screenshot above, things are shaping up very nicely. The new chart is in the bottom right widget, the chart above is the existing chart widget.

I have really enjoyed my first few months at Kitware, and have found my first project both challenging and rewarding. It is great to be working on real problems that have a broader impact, and as I flesh out these features I will try to maintain cross platform, high performance interactive charts. I think I have also added some useful new 2D focused API that can also be rendered over the top of VTK's existing 3D visualizations, opening the door to some very exciting new views on data.

As a physicist I also feel it is interesting the symmetry - Qt adds 3D to a 2D toolkit, and at the same time I am adding 2D to a 3D toolkit. Hope you all have a Merry Christmas, and a Happy New Year. I will be tracking Santa with my son this evening!

Disclaimer: The opinions and musings in this post are mine, and not those of my employer. Any mistakes/inaccuracies are also mine, that said I would love to hear what people think of this new work.

I'm Going to Camp KDE 2010

Life has been so hectic since I moved to upstate New York to start my new job with Kitware. I am very pleased to say that Kitware is sending me to Camp KDE 2010 in San Diego, CA 15-22 January. I will be presenting a talk on CMake, the new features in the recently released 2.8 version, and some of the less well known features of the CMake package, including CTest, and CDash. In addition I will be running a CMake training session for anyone who would like to learn more about CMake.

I'm going to Camp KDE 2010!

I attended the first Camp KDE last year in Jamaica, and am very pleased to be attending the second Camp KDE next year in San Diego. Last year I focused on my work in packaging and open source chemistry visualization. I also met Bill Hoffman, who talked about CMake and am now working with him and many other talented people at Kitware. My wife and unborn child also attended the first Camp KDE. Now we have a six month old in the 97th percentile for length, weight and head size who will be joining my wife and I at Camp KDE 2010. I am trying to teach him to count from zero so that he has a good head start when he starts coding ;-)

I won't be talking about any of my work in open source scientific visualization at Camp KDE this time, but if any of the attendees are interested I would love to discuss it and will have a few slides for a short impromptu talk...



Big Snow!

As some of you may remember we moved up to Clifton Park, NY in September. From when I first met Bill at Camp KDE in January he told me about all the snow they got up here. To be honest I was starting to doubt him, and then we got some snow on the weekend and I was really excited. Today I woke up, looked out and saw we got a lot of snow! I am not disappointed, possibly a little overwhelmed...

Snow, lots and lots of snow!

I think I am going to like it up here, Dax loves it and William is not too sure what to make of it right now. They just plowed the road (not our big drive though), and so I may try to venture into work soon. Of course Dax and I had a big play in the snow, and I think we are going to have to buy a sledge as soon as possible.

Avogadro 1.0.0 Released!

It is with great pleasure that I announce the release of Avogadro 1.0.0. After many years of work we have released what we consider to be a stable Avogadro release on Mole Day, which seems appropriate given the projects's name. There are still some rough edges, but I think this is a good release. With your help we can fix bugs in the release while working on new features in trunk.

Avogadro - Code Swarm from Marcus Hanwell on Vimeo.

What better time to look back to the beginnings of Avogadro. There was a blog post made today by Sourceforge about Avogadro detailing a little of that history. I have also made a code_swarm movie visualizing the history of the Avogadro project. There have been quite some changes in that time both at a project level and a personal level.

I would like to thank Google for sponsoring me for a GSoC project in the summer of 2007. Also Geoff Hutchison for giving me the opportunity to work with him at the University of Pittsburgh on interesting computational and visualization projects. Then there is my new employer, Kitware, who have provided me with an exciting opportunity to push scientific visualization and cross platform development to its limits.

To finish off a great day, my wife has informed me my new espresso machine has arrived! I am going to Camp KDE in January too!

The Big Move and New Position at Kitware

On Monday 21 September we packed the majority of our belongings into the back of a Penske truck and made the 500 mile drive (in convoy - Louise, William, Dax and myself) from Pittsburgh, PA to Clifton Park, NY. Since then we have been unloading the truck, unpacking our things into our new home and doing all those things you have to do when you move house, and several things necessary when moving between states and jobs.

Me in the Penske truck before returning it

This is certainly the most rural house I have lived in since I was very young. We found a nice duplex on the outskirts of Clifton Park, it uses well water and I am the proud owner of the contents of two full propane tanks (no natural gas lines run out to the house). We also have a really nice wood fire in the living room, and I snagged the family room and am using it as a large home office! Thankfully they were able to hook up a cable Internet connection on Tuesday last week, and so I was not offline for too long.

Tomorrow is my first day with Kitware, I will be attending a training course being run by Kitware for the remainder of the week and so won't have my first day in the office until next Monday. I will be working in the scientific visualization group on projects such as ParaView, and have had lots of ideas for future Avogadro development over the last few weeks. I am very much looking forward to working in some new areas, but also to enhancing the previous research and development I have done in the area of visualization in chemistry. I am also looking forward to working on CMake.

What a Crazy August

August was without doubt one of the craziest months in the last few years. It started off with the normal "getting used to being a new Dad" type of stuff. Then as we were thinking about our upcoming trip to find a new house our car started acting funny. Long story short it was not good, and we made the decision to get a new one. We should have probably done that in the first place, hindsight is always a great thing...

So we had some fun and games as we picked out a new car, checked our already stretched summer finances and finally took delivery of a shiny Subaru Forester on Wednesday 5 August. It immediately produced some awful, loud static noise as we drove it home from the showroom. By Friday they had given us a courtesy car while they figured out what was wrong. Friday night they had it back to us with a new audio system installed.

Subaru ForesterAir and Space Smithsonian

Then we figured it would be great to catch up with Adam in Washington DC, and to iron out any further car bugs before our house hunting trip. So 8-9 August we stayed with Adam and checked out the Air and Space Museum. We also took William to the White House, and a few other touristy spots. He won't remember it, but he got to see the capital, along with lots of rockets, planes and satellites.

Family outside the WhitehouseWilliam in hospital

On Monday I went back into work, left a little early and William was making some strange noises. When we got home I felt his head, and it was really hot. As Louise was getting the thermometer William was sick for the first time ever - all over me. When I checked his temperature it was up at 39.8C, in excess of 103F (checked with two thermometers). This scared us so we rushed him to the children's hospital, as any nervous first time parent would.

As they were looking at him we started to realise that it might be quite serious. They ran a battery of tests, including urine and blood tests, cultures, X-rays, spinal fluid and constant vitals. They found a bacterial infection, I have never been so scared and stressed before. I found out that I am a very protective father, and was disheartened as more and more tests came in and we were admitted for an extended stay.

All of our friends were out of town at the time too, which made things more difficult. It turned out he had an E. Coli infection in his blood. We were lucky in some senses, the antibiotic they started him on as we were admitted was one of the best for the strain of E. Coli he had been infected with. His blood only showed bacteria in the first culture they took. Still, they were talking about 14 days on IV antibiotics using a central line as an inpatient.

Thankfully after talking with them they found an alternative oral antibiotic therapy that recent studies showed were just as effective. So he could come home on the Thursday evening. It was great to be home again, although very stressful to have William get so ill so quickly. I had never imagined he could get so ill so quickly, it reminded me off the waiting for them to tell us he was OK after he was born.

After that we tried to get back to life as normal. Until the end of the month when we had our big trip up to Clifton Park, NY to look for houses. Friday went very badly, we saw one house which was terrible and everything else we had lined up had been rented before we got into town. Saturday we saw another house before leaving for Boston - it was OK, but not really what we were looking for.

William's first wedding

Saturday afternoon we drove over to Boston, MA to go to Jeff's wedding. It was great to have a break from looking at houses. We had a great time looking around Cambridge and Boston, the wedding was really nice and William managed to get lots of attention. Thanks for inviting us Jeff - it was a really nice day. William's first formal event. Before leaving on Sunday we visited the Harpoon brewery to sample some of their beers.

We found several new places listed on Sunday before leaving Boston, so we set up appointments for Monday. Monday was something of a three bears type of day. The first house we saw was close to work, but too small. The second house we saw was about the right size, good state of repair but a little expensive and too far from work. The third place we saw advertised as we were thinking about how to compromise, saw it at 6:30pm and it was just right.

William relaxing in the hotelNew house

So in the end we didn't have to extend our stay, found a nice place that is close to where I will work and Louise really likes it. We just had a 500 mile drive back home. That was pretty much August, I did manage to squeeze some time in for hacking on code, taking care of the cluster at work, and general work stuff. September we just need to do our first 500 mile interstate move. It should be relatively simple after an intercontinental move surely ;-)

Avogadro 0.9.7 Released

Avogadro 0.9.7 was released on 18 July 2009. You can download Avogadro here. I have been less involved in the development of Avogadro in the last six weeks due to a major event in my personal life. Still this release has some great new features in it, several of which I squeezed the time in to implement.

Some of the highlights include fixing a long standing rendering bug for our Linux users (me included) where garbage would be rendered right below the tab labels. This was a fix added to Qt 4.5.0 that I discovered while looking into the issue. A nice side effect is the new inline close buttons on view tabs. I also finally got detached OpenGL views into Avogadro, as shown in the screenshot to the right. It is a little clunky right now as you need to open a new view, and then detach it. I will clean up the interface for the next release hopefully. This allows for multiple views of the same molecular scene, which can be extremely useful for certain kinds of work.

Another long standing feature I wanted to implement is in too, the inline configuration buttons for our display types. If you can see the little wrenches, you can now click on them to configure that display type. This code was inspired by the inline close buttons that are in the Qt Creator open file list. Geoff worked making the configuration docks easier to hide, we now default to devoting roughly 90% of screen space to the 3D view, which I think is great. There have been several changes to how molecules are loaded/saved too, I am still hunting down some issues but this allows us to read multiple molecule files for example.

Today is the last day that you can vote for Avogadro in the SourceForge Community Choice Awards! Please cast your vote if you think that Avogadro is a great tool for Academia. Tim (one of our other dedicated Avogadro developers) posted about the release and the awards too. I would like to thank several people in the chemistry community who expressed their support for Avogadro on their blogs - Peter Murray-Rust, Richard Apidoca and Jan Jensen, along with so many others who have helped to promote Avogadro on Twitter, FriendFeed and other online services.

We hope you enjoy the release, whatever happens with the SourceForge Community Choice Awards it was an honour to be nominated. It was great to see all the support for the Avogadro project in the wider community too. It has inspired me to go on and do more with Avogadro - thanks to all of you.

Avogadro Auto Optimization Screencast

Geoff showed me a new screencast he created recently. It is made using the latest Avogadro, and is one of the first screencasts with our new and improved user interface. Geoff has also added some audio commentary with notes on the chemical relevance of the auto optimization tool. Check it out and let us know what you think - a new release of Avogadro is coming soon.

I will hopefully find the time to make a few new screencasts soon too. Between my one month old son, day job and waiting on my visa application (does not take any real time - some mental drain) I have not had much spare time to code or blog. Remember that Avogadro was nominated for the SourceForge community choice awards too - click on the link below to vote for us.

Avogadro Nominated for SourceForge Community Choice Awards

I am very pleased to announce that Avogadro has been nominated as a finalist in the SourceForge community choice awards this year. We are in the "Best Project for Academia" category, and I would like to encourage you to vote for Avogadro.

This is a real honour for all of us, and I appreciate all of you who nominated Avogadro. We are all pushing very hard on polishing Avogadro, getting ready for our 1.0 release. It would be absolutely amazing to see Avogadro win this award, so please vote for us.

Avogadro collage

There are also some other really nice projects in there too, such as Lancelot, ClamAV, phpMyAdmin and RepRap. So please take a few moments to place your vote, and tell your friends!

Update: You can vote even without a SourceForge account - just enter your email address and verify your vote.