Upgrade to SonarQube 9

We use SonarQube to scan our code (see Adding SonarQube to TFS build) and have version 8 LTS up-and-running for some time now. The upgrade to SonarQube 9 and future version 9 LTS is upcoming. Here is how we prepare for the upgrade.

Run SonarQube 9

According to the requirements for SonarQube we need the Java 11 runtime for the server. This is already available along with the other requirements because they are the same for running our version 8 LTS.

For testing purpose we create another database (upgrade test planned for another time) and put that connectionstring in the configuration. We configure other ports for the Web UI and ElasticSearch so we can run both version 8 and 9 at the same time on our server. After a few attempts we get everything right and see the “Sonarqube is up” message on the console.

Run Azure devops build

Our platform team installed the Java 17 runtime on a few build agents. This is needed for the scanners or we get errors. To make sure we use the correct Java runtime we set the environment variable JAVA_HOME to point to Java 17 in the task (like https://marketplace.visualstudio.com/items?itemName=Hey24sheep.envar) before the Run Code Analysis task.

In the Prepare Analysis task we needed to set the timeout property (sonar.ws.timeout) to 2 minutes. This might be caused by running two instances of SonarQube on one server.

For use of the new SonarQube 9 instance we needed to create a new service endpoint with a generated token. Here comes the first real difference – tokens are now more specific.

You need specific rights to create a project and specific rights to run analysis for a project. There is one token type that contains both rights but you should not use it for running analysis. So we need to create the project (and get a project key) by hand so the build can run analysis with the analysis token. More details about tokens: https://docs.sonarqube.org/latest/user-guide/user-token/

The analyses worked as expected and a report is available in the SonarQube 9 web ui.

Plugins

We have some custom plugins. Most can be removed after buying a license. But the R code plugin was the odd one. Luckily we had no problems running analysis with the plugin after copying it from the version 8 instance.

Todo

For now all signs are on green.

Posted in Tooling | Tagged , | Leave a comment

I’m Eric Tummers, Software Architect at Statistics Netherlands, and this is how I work

My jobs description says Software Architect. I’m guiding my team through the technical hurdles and do some programming/testing/analysing myself. We follow the scrum guide and are working towards continuous integration and deployment. We do this in small steps. Every sprint we complete means the retrospective is done in the pub.

I expect the best and I give the best. Here’s the beer. Here’s the entertainment. Now have fun. That’s an order!
Rasczak

Location: Sittard, NL
Current Gig: Software Architect, CBS
Word that best describes how you work: remote
Current mobile device: iPhone SE 2nd gen
Current computer: MacBook Air M1

What apps/software/tools can’t you live without? Why?

Evernote: I’m a fan for years now.
Spotlight on Mac and Ueli on Windows: for quick start apps and other things.
Microsoft To Do: work tasks, chores, groceries, planning, every task is there.

What’s your workspace setup like?

My home workspace is a Macbook Air M1 connected to a Benq 24 inch monitor (BL2420PT). For input I use the logitech keyboard and mouse (MX800). There is a wireless charger for my iPhone SE or Airpods and a desk lamp (like the Pixar luxo Jr.) This is my main workspace.

When I go to the office I’m free to work from a coffee table with my MacBook Air M1 or hook it up to an external monitor. We’re a hybrid working organisation so the laptop moves with me in my rainbow backpack.

We communicate with each other via zoom and slack. So those apps are my virtual workspace. Does that count?

What’s your best time-saving shortcut/life hack?

Timebox. Start on a task and spent the time you’ve got to get the best result. Get someone to look at it, get feedback. Then decide if the result is final or to spent some more time.

Besides your phone and computer, what gadget can’t you live without and why?

I replaced my Garmin FR235 with the Garmin FR745. It has smart watch features, an optical heart rate monitor and music. I now go on a run without my phone.
My Apple Airpods 2. Easy to use, small and good sound. Replaced my old first gen with the second gen with wireless charging case – still the best wireless earbuds for me.

What everyday thing are you better at than everyone else? What’s your secret?

Learning new things. My current project lets me implement new things (joy) Also I try to learn the things I know to my team or anyone who listens.
I have a basic understanding of how things work and try to map new things on there. For the details I have a Pluralsight subscription and black belt google skills.

What do you listen to while you work?

My alarm clock plays classical music to wake me up in the morning. The car stereo plays about everything (grunge, rock, kids stories) driving to work. When I need some focus I play drum and bass on my headphones. My ringtone is still Run riot by Camo & Krooked, although it is muted since I got a Garmin.

What are you currently reading?

Nerds. A fun view of the things a nerd does, likes and hates. Good read to get me out of the working mindset.

How do you recharge? What do you do when you want to forget about work?

Spending quality time with my wife and daughters. Phone on silent, no screens, no work. 
Also sports like running, fitness, climbing and snowboarding to keep me fit and healthy.

Fill in the blank: I’d love to see _________ answer these same questions.

Eric Rosen a chess streamer I follow on YouTube. This is someone who does what he loves and loves what he does.

What’s the best advice you’ve ever received?

someecards.com - Make a shit first draft you cannot edit a blank page
I believe this is a variant on a Hemingway quote.

Is there anything else you’d like to add that might be interesting to readers?

Learn Powershell. There is so much possible with Powershell. If you can learn one thing this year pick Powershell.

Original idea from Lifehacker.com.

Posted in Uncategorized | Tagged , , , , , , , | Leave a comment

MacBook Air M1

My company provided me with a MacBook Air M1. So the trusty MacBook Pro 15 inch from 2015 has been replaced for everything work related. Is this a happy day? The good, the bad and the ugly.

Good

Boot time, battery time, build quality, portability – everything good in these departments. The battery time is so good I can work two days without plugging in – that is unparalleled 😎 and a huge step up.

Colleagues that picked the windows alternative are complaining about drivers. – no comment –

Bad

Moving from 15 to 13 inch is a big step down. Every review online talks about this. In the pictures below you see them side-by-side and stacked to illustrate te difference. You’ll have to experience it to know what this means for your setup.

I most notice it when using Visual Studio. There is just more room to work with om the 15 inch. Now the solution explorer, output window and other panes must be on auto-hide or I’ll loose to much space for coding.

Ugly

The machine is managed by the company. This means some extra software is installed for remote monitoring, security and no-admin-rights-for-me. I’m allowed to install software from the app store and tweak some user settings – but not all My 2019 developer and power user tools. I’m still not over this one 😦

MacBook Air only has two usb-c ports. For everything not usb-c like network, monitor, external mouse/keyboard we use a hub. This is something I will not bring with me and stays home connected to wires on my desk.

Conclusion

Would I buy this machine for myself? No, my personal life is on iPhone and iPad and the MacBook Pro stil works.

Would I buy it to replace my MacBook Pro if it broke? Absolutely. Because of the apple ecosystem a new device is up-and-running very quickly and sometimes a laptop is preferred over a mobile device.

Is the MacBook Air M1 a good work laptop? Yes. When we return to the office we need to bring the laptop and that is exactly where the MacBook Air M1 outperforms my MacBook Pro – lighter and two-day battery.

Posted in Uncategorized | Leave a comment

Azure Devops Server – register agent for selenium tests

We are migrating from TFS2017 to Azure Devops Server. Everything seems to work after the test migration – except for running selenium tests. The old method with the test agent installation has been deprecated. Microsoft expects us to register an (release/build) agent that can run the selenium tests. Here is how we got it working.

Register an agent

First we need to register an agent for running the selenium tests.

  • Get a personal access token (PAT) from Azure Devops Server. You can find this by clicking on your avatar and going into Security. There you can choose Personal access tokens and “New Token”. Make sure to give Full access – you can remove the PAT after you’ve registered the agent.
  • In Azure Devops Server go to Collection settings > Pipelines > Agent pools. Here you click “Add pool” to create a new agent pool for you selenium agent. Give it the name of your team.
  • Open the new created agent pool and go to tab Agents. Click “New agent” and download the Agent (=zip containing the software)
  • Now remote desktop to the machine you plan to use as the agent to run your selenium tests.
    • Unzip the downloaded agent – we use the D drive and tfsagent folder
    • Start a powershell with administrative rights and run the config.cmd in the D:\tfsagent folder
    • Provide the details for you environment – we started with NETWORK SERVICE as the account to run the agent (and the tests) and changed it after the installation via the services feature in Windows
  • The team agent pool in Azure Devops Server now contains the machine as an agent. Edit the capabilities and add “vstest” to the user-defined capabilities – this is needed to run the unittests that drive our selenium tests

Edit the release pipeline

In the (old) TFS2017 we would use the testagent install task and drive the selenium tests from any release agent. With Azure Devops Server we must run the selenium tests on an agent. That agent is registered in the previous section and now we can edit the release pipeline.

  • Add another agent job to your release and select the newly create team agent pool
  • Add the Visual Studio Test Platform Installer task – this will install the tools needed to run the unittests*
  • Add the Visual Studio Test task – this will run the unittests driving the selenium tests and publish the results*
    • for Test Platform Version use the “installed by Tools Installer”

*for details see the references

Save the release pipeline and run it. You should see a price cub and a hooray message 😉

References

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/vstest-platform-tool-installer?view=azure-devops

Posted in Uncategorized | Leave a comment

Fixed drag-and-drop on my Macbook

For some time I’ve been having trouble with drag-and-drop on my Macbook. In the finder a popup would show or the file rename action would trigger. Turns out there is a setting I missed during one of the MacOs upgrades.

Turning off “Look up & data detectors” fixed the drag-and-drop for me. I’m using the defaults – if you’re changing stuff – disabling the “one finger” action is the key.

Posted in Tooling | Tagged , | Leave a comment