RSSAmplifier

Blog

Marcus D. Hanwell's Blog

Recent content on Marcus D. Hanwell's Blog

cryos.netRSS feed ↗305 posts

Latest posts

CMake and import std

I started exploring this way back in May but other things got in the way. This had to wait and stay in my backlog but it is something I have been thinking about quite a bit along with what mature use of modules in C++ might look like. I would preface this with the fact that even with many months of delays in me writing this up that modules and the import of the standard library in particular are…

One Year at a Startup

It is hard to believe that I have been with Voltron Data for over a year now! It was a tough decision for me when choosing what to do next last year and I was filled with hope and fear along with questioning whether I wanted to leave science behind. One year on it completely feels like it was the right move for me. It has not been without challenges, but the right kind of challenges that push me…

GTC 2024

Fernanda recently posted about her GTC journey and it got me thinking about mine. Our careers have been somewhat adjacent for many years but it wasn’t until I joined Voltron Data that we actually worked at the same company. I was taking a look trying to remember, and I see photos from GTC 2014 that I think was my first, then speaking at GTC 2015 and there was a tutorial I gave the following…

Vcpkg, Conan or Spack for C++ Dependencies in a CMake Project

I have been using Vcpkg a little and getting to know it better. I also took a look at Conan but haven’t really dove into Spack recently. I am interested in them all through the lens of a developer who wants to improve the handling of third-party dependencies. This isn’t intended to be exhaustive but more to examine a specific use case that interests me most: handling the dependencies…

Overreaching

I really wanted to be one of the cool kids and blog on a leap day yesterday but everything got a little hectic and if I am honest I just opened a bottle of wine when I finished work. So here we are on a mundane 1st of March, where we joined what I would consider one of the most mundane gym brands and went on our first workout there. Above you can see what my watch thinks of my efforts, summarizing…

Toy Projects and Lego

And now for something completely different…a random glimpse into my mind and how I keep things fresh. I am not sure I have ever stated this for the internet at large but I like building Lego and you can see some of my Lego air and space exhibit in the photo. I was thinking about this in the context of programming projects and giving space to explore what is possible along with learning new…

DuckDB and C++

A few years ago I heard about a new database project called DuckDB, a new kind of database embracing columnar storage over the traditional row storage. The other thing, possibly the main thing at the time, was that it was designed to be embedded in your application. Even better it was developed in C++ and seemed to have extensive API coupled with a permissive license. Looking Back I started out…

Six Years Since Naturalizing

It is hard to believe my wife and I became naturalized US citizens six years ago! It was a long journey filled with uncertainty. I had friends while studying in England who were on similar journeys and while I empathized I had no idea what it was like. We held off from buying a home until we got green cards, and even then felt some apprehension at times and naturalization represented the final…

CMake, Dependencies, Superbuilds and Vcpkg

I was a Gentoo developer before I got serious about C++ software development, and one of the things we hated most about packages was when they copied libraries into their codebase. From the developers point of view they just want to be able to build their codebase, and copying in code so you can just build it all in one go is the easiest way to achieve that if there is no solid packaging story.

C++ Modules and CMake

I have been thinking about creating a new project for a while, one that abandons a lot of my previous style where I needed to support old compilers, operating systems, etc. I have no idea where this project leads, but it is something of a playground to approach the state-of-the-art as I see it. Using the latest features in C++, CMake and other parts of the ecosystem. It is targeting my preferred…

Vacation 2023

We have been on a few overnight trips, day trips, celebrations, etc but with one thing and another we haven’t been away for what I would call a proper vacation. We haven’t really been away for more than a few days at a time. Some of that was pandemic, some of it was moving jobs (the first time), some of it was crazy inflation, some was moving jobs (the seconds time).

New Job at Voltron Data

I started a new job at a startup called Voltron Data in July of this year! For anyone who follows me you may remember I only just moved jobs in 2020, leaving Kitware to take a position at Brookhaven National Lab. Moving jobs and house during the pandemic was a lot, I went pretty quiet, the pandemic was hard on many of us. Things didn’t work out as I had hoped and I did a lot of…

New PC Build

The last time I built a PC was before the pandemic, in upstate, before we moved down to Long Island. Before that it was way back in England before we moved to America. The last PC I built I couldn’t decide how much I would use it, and so I stayed fairly mid-range too, whereas this time I had more of a sense that I would make a lot of use of the machine.

Obi

Yesterday we had to say goodbye to Obi, our family pet. He joined us in upstate and has been a big part of our lives since then. Devastated to say he didn’t make it to eight years old, last Friday it became clear that the medication to help with a chronic condition simply was not working. The vet gave him something to help him for a few weeks maybe, but even that only had a moderate effect.

Generating User Interfaces: Convenience and Utility

I recently attended a talk about generating user interfaces from Python, I have fought for and against doing this in various projects. I have also seen places where it really helps and other places where it was a huge detriment (at least in my opinion). The talk got me thinking about how many times how many of us have written our interface generation. At times we also talk about reuse and whether…

Target Property Based Modern CMake

Something an old mentor told me to never do is call a thing “Modern …” as you can guarantee someone will be chuckling in 10-20 years. I can neither confirm nor deny that I found myself sitting at my desk at gone 1am immersing myself in what “Modern CMake” was exactly, and what I wanted to apply to the Avogadro build system. It seems to have its nucleation in about…

The Phantom of the Opera

And now for something completely different - the Phantom of the Opera! Last year we had family over for a few weeks, it was lots of fun and it ended with a few days in New York City. We took them to a lot of the great tourist attractions and I realized our hotel was right next to the Majestic theatre where the Phantom of the Opera was showing. I studied this as a child in school, but our trip to…

Compiler Warnings and Avogadro

When we started the Avogadro project we were quite deliberate in what compiler warnings we added, and in keeping them to zero wherever possible. These last few years I have not been as involved, CDash has gone away and the warnings no longer show up on a dashboard with the same visibility. Today I started off wanting to look at some other things but realized that there are too many compiler…

Modern CMake and Avogadro

Not that I am counting, but this is day six. I thought that there was a good chance I wouldn’t make it today as I had a few other commitments but here we are. When I first designed Avogadro’s build system I made it as modern as I could at the time, and then reluctantly wasn’t as aggressive as I might have liked in pushing the minimum version higher for modern CMake features.

PIMPL, Stability and C++ Libraries

So, day five! I have had a lot rattling around my head these past few years, and I have missed the more informal style of personal blog posts. Today I updated my system and Qt upgraded from 6.4 to 6.5 and the porting I have been working on in Avogadro was completely unaffected! This is one of the things I admire the most about the Qt project, for as long as I can remember (going back to the 3.

Avogadro, VTK Charts and Parenting

So, day four, I now don’t want to end my blogging streak but it will surely come to and end soon. This is not my random tips on parenting of children, although I do try do do that as well as I can, it is more the Qt parenting. In Qt all QObject derived classes, including the widgets typically used in graphical user interfaces like Avogadro, have a concept of a parent and its children.

Avogadro Development and Porting to Qt 6

I don’t post anything in years and then get on a three day streak!?! Don’t expect this all the time, but I have been missing having an outlet, especially for more technical stuff as I work on it. Today I woke up and wanted to make a start on getting Avogadro ported over to Qt 6, while ideally continuing to support Qt 5.15 for at least a while. Qt 5 is end of life and it is something…

GitHub Activity and Single Sign-on

My work has always involved some mixture of open source development and private repositories for one reason or another. There are also some fairly large portions of work away from GitHub, which is why I have always liked some of the aggregation services that can look at a wider view of open code. One big surprise to me was that GitHub cannot see all of my contributions even with the private…

Peeping Back Out

I don’t know if you heard, but there was a pandemic. Quite early on in all that I may have been overly optimistic, and figured it wouldn’t last much longer. I interviewed before it all started and figured why miss out on this new opportunity when it will all be over soon. A lot has happened between then and now, I half wrote several posts I never completed, short version is we were…

GPG, SSH: New Keys

I recently changed jobs, and decided that this was probably also a good opportunity to revisit cryptography and keys. My SSH and GPG keys were created many years ago, I made a new SSH key recently but can’t remember all the options I used. I know in the time since I made my GPG keys some of the algorithms I used back then have become deprecated, and new SSH key types have been added that are…

Where Next? Science!

So…where am I off to next? A tale of “there and back again”, let me tell you a short story. Imagine a young, hopeful Ph.D. student just finishing up his research, thinking about what kind of career he can carve out for himself combining science and developing software. There was a new light source being built, it was originally going to be in Daresbury, UK, not far from where he…

Leaving Kitware

I met Bill Hoffman at Camp KDE in Jamaica while my wife was pregnant with our first child in February 2009, and I interviewed shortly after that before joining Kitware in October 2019 (visas were hard, even back then). I handed in my resignation in early June after over a decade at the company, the image above is the top of the award for ten years of dedication I received at the Christmas party…

2020: Looking Back

It is hard to believe that it is 2020 already! It always seemed like such a far off time, one of my favorite movies of all time was ‘Blade Runner’ set in the far off future—November 2019! Many people posted about their last decade in the new year, but I have always tended to think more about decades on my birthdays which are not far off from the decade’s passage. Here we…

Is Social Media Worth It?

I wrote about social media and blogging a while back, and revisited when some of these things came into existence. As we stand on the final embers of Google+ , and look at scandal after scandal on Facebook we are reminded how ephemeral these services are. Last year Ben Cotton wrote a nice post on why we can’t replace Facebook with personal websites as a number of people were saying we…

Avogadro Plans for 2019

The Avogadro project was founded all the way back in 2006, and I participated as a Google Summer of Code student with KDE in 2007 to bring a molecular editor to Kalzium. The library we were using was libavogadro, this powered Kalzium and the Avogadro application that provided a fuller interface (also using Qt as its base). From the start this was a project founded by a need felt by many of us who…

Looking Forward to 2019

My last post wasn’t the most positive. While it was pretty accurate I think it is worth looking back on the good stuff, and hope for the next year. I had the opportunity to be a part of the opensource.com moderator team in the early years of the program, serving as their “open science expert”, and also received a blue obelisk from Peter Murray-Rust himself for my service to the…

2018 Was Crap

On balance, 2018 has been a crap year for the Hanwell clan (British slang for those interested). For me it was bad on a personal and professional level, although on both levels there were some highs and lows. It ended on a real low in both respects too, and like an iceberg most people only see the tip. It reminds me of the proverb “the straw that broke the camel’s back”, nothing…

Eleven Years in America

A little over eleven years ago my wife and I got on a flight from Manchester airport bound for JFK, and then took an internal flight to get to Pittsburgh, PA. A couple of years later we moved to upstate New York where I took a position with a small company called Kitware. I have been with Kitware for nine years today (the earliest date a H-1B visa holder can take up a position in the year their…

Naturalization and Citizenship

It is hard to believe my wife and I became naturalized US citizens back in February. Today we completed the final step, and went to our local social security administration to get our social security cards updated! We moved to the US back in 2007, and since then held the same card which had an endorsement on it stating “valid for work only with DHS authorization”. Everything else we…

Room Break In Nightmare at Divi Aruba

Last week we went on vacation to Aruba, booked through Delta Vacations, staying at the Divi Dutch Village in Aruba. This was all set to be a great week away with the family, and our first real getaway to an island together in ten years. At around 1:30am local time on Father’s day (just) my wife awoke to see a figure in our room before he realized he had disturbed her and ran! He got away…

Have the Courage to be Transparent

I was reading a post over on opensource.com recently, “How do you explain your organization’s purpose? 3 lessons from Red Hat” . It is a great story about the right way for an organization to search for its purpose, including as many of the people from their organization as they can. I have written before about the Open Organization book , and how much I like it. I even gave a…

Microsoft's GitHub Acquisition

By now most people have heard about the acquisition of GitHub by Microsoft . The deal is reportedly worth $7.5 billion , and should be closed by the end of the year. So, how does that make you feel? I certainly have a healthy amount of skepticism, and have witnessed Microsoft’s acquisition and destruction of open source projects. I remember when Ballmer called Linux a cancer, and also when…

JSON: Camels, Kebabs and Snakes

I do a lot of work using JSON (JavaScript Object Notation), and last week I ran my first ever poll on Twitter posing the question of which naming convention people prefer for keys. A quick survey of its use in the wild reveals common use of camelCase , kebab-case , and snake_case . These are all things I was aware of, but I only knew the name for the first one until a year or so ago. There are…

First URSSI Workshop

Earlier this week I attended the first URSSI workshop, held at UC Berkeley. URSSI stands for the US Research Software Sustainability Institute, and right now is in the formation phase. Much of the week was spent discussing what this institute could be, and how such an institute might operate. For me this speaks to a core gap I observed in the importance, and career opportunities for researchers…

Proposals, Decisions, and Waiting

At the end of my PhD I wrote my first proposal, that is over eleven years ago now, and it was for a Google Summer of Code (GSoC) project. It felt like an eternity waiting for the decision, it turns out it was quite quick! These days a lot of my work involves seeking funding to develop open source code, it is a great job in so many ways and something my successful GSoC project helped to seed. There…

Last Day as an Immigrant

Today is my last day as an immigrant, having lived in the USA for more than ten years now with my wife and family. Both of our children were born here, despite only initially planning to stay for a couple of years as a postdoc we have made our home out here. I never imagined how difficult the journey to this point might be when we first moved out, and had never considered that we might one day…

Internet Privacy and VPNs

I am sure you have seen one or two articles already about the demise of Internet privacy protections at the ISP level, coupled with a crippling lack of competition in the USA. Last I checked I have only one realistic option from our cable company, and one far less realistic option of extremely slow DSL (by modern standards). Trying to liken the ISPs right to collect and sell data as akin to that…

Florida, Snowstorms and the Motorbike

We went away on a family holiday to Florida in February, we needed some beach time and to get away from the frigid north for a few days. Our trip was beset by snowstorms on the way out, and on the way back! The very next weekend it was so warm I was back out on my motorbike! Absolutely crazy weather…

Automated Blog Build and Deploy

One of the bigger weaknesses of static site generation is that the build and deploy process requires whatever machine you blog on has all of the pieces needed installed (pretty simple with hugo as you can download a static binary), and that when deploying you effectively deploy the entire site for any update. This means that making posts low bandwidth locations would be impractical, and so it has…

Logins, Passwords and Lastpass

So I have been meaning to do this for years, but I finally got around to it on New Years day… I went over a bunch of articles and reviews, and then set up a Laspass account. If you haven’t tried it, and want a free month of premium (gifting one to me in the process) here is my Lastpass referral link. I already bought a year of premium as I wanted the phone syncing and shared folders.

Social Media and Blogging

Reviving my old blog, and importing the old posts gave me a chance to look back at some of the old posts I made and the context in which they were written. My first recorded blog post was made on the 8th of March, 2004. Putting it into context Facebook was founded in February, 2004 (but remained student only until 2006), Twitter was founded in March, 2006, and GitHub in February, 2008 assuming my…

Bringing Back the Blog

So I got distracted with life, and continued writing in several other places, including my company blog, opensource.com, and a few other spots. I also got tired of maintaining my blog on virtual machines with the typical LAMP stack, but I did get interested in using static site generators. I am giving HUGO a try, and I made an attempt to migrate my old posts over from Serendipity via Jekyll in…

New Input Generator Framework in Avogadro 2

Using VTK's Image Regression Tests in Avogadro 2

First Open Chemistry Beta Release