Author Archives: divisator

DotNetConf 2021

At the beginning of November, there has been the great DotNetConf, were all sorts of cool stuff for my favorite development environment was announced and demonstrated.

Important topics were of course the release of .NET6 as well as Visual Studio 2022, but also all the nice and shiny eco system around it: MAUI (the successor of Xamarin), C# 10 included in the new VS, Entity Frameworks most recent version just as Blazor … A real big pile of Blazor.

.NET 6 release

As the name of the conference says: The biggest part of the party is the release of the newest framework version.
As you will know: There have now been two branches of .NET for a while. The so called “full framework”, which ended in numbers like “4.x” – and .NETCore, which had its latest release as version “3.1”. .NET5, which is a successor of .NETCore should then become the version that also replaces the 4.x branch (hence the naming), but obviously the big shot now followed by .NET6, which is now also the Long-Term-Support (LTS) version.

To support version 6 with the right tailwind, the main Azure services now support .NET6 (Azure App Service, Azure Static Web Apps, Azure Functions, …).

Visual Studio 2022

The most powerful part about VS2022 will be something you won’t find a button for it. VS2022 is now a x64 application itself, which will remove memory-limits and in this way speed things up a lot! And there are also goodies like the solution filter, that enables you to just load the relevant projects in your big solution to improve speed even further.

Besides the improvements of the shell itself, you’ll find some nice features hidden in the options dialog:

  • First two features are at C# > Advanced. There you can enable “Display inline parameter name hints”, which will display the name of the parameter (like a named parameter, but without you having to type it) and “Display inline type hints” for all my friends that do not like the glorious implicit typing of “var” ;-).
  • The other setting is at “Tabs & Windows” and allows you to “Colorize document tabs by project”. Somehow I got the feeling that I’ve already seen this one – but maybe it was a plugin before. As the name indicates, you’ll get tab colors based on the project the file is in, which makes more sense if you like the vertical tab display:

Coding support

The auto-completion with the AI supported intellisense will then be one of the more obvious things when you start working, because everywhere appear code-lines that are sometimes totally off, but sometimes scaringly accurate of what you just thought. Reminds me a LITTLE bit of Githubs Copilot, but this one is more about code-completion and not this text-parsing:

One nice addition with this coding support is the enhanced hints for parameters. Especially for DateTime.Format and Regex – I know some people that will be really happy about that 😁

Sync Namespaces

One new feature I’d expect in a separate tool window and not as prominent as it is currently on the context menu of the solution item itself is “Sync namespaces”. This syncs the namespaces of the various files according to the folder structure.

Value Tracker

Another neat feature is the Value Tracker. You can right click a variable in your debugged code and select “Track Value Source” from the context menu. A new window will appear, that shows you the modifications of this variable. I actually would have hoped to see the intermediate values as well, but a nice step to save the devs some time while hunting issues:

New types of breakpoints

And even the breakpoints have some new features. Introducing temporary breakpoints, which will just get hit once … but WAY cooler is the dependent breakpoint, which will only trigger if ANOTHER breakpoint is hit … how many times have I disabled and re-enabled breakpoints, because I had to wait for my conditional one to trigger first. Great enhancement!

Editor Config

Last feature I’d like to tell you about is the support for the well-known “.editorconfig”-file. You can add one via “Add New Item” > “.editorconfig”, which will create an editorconfig-file with various default values. Trying to open that one in Visual Studio, will popup an editor that allows you to edit the settings in a convenient UI.

Maybe in next release?

Some of the refactorings that were demonstrated, I could not reproduce however in my version (17.0.5). For example an automatic refactoring that would put an await in front of an async line and add the async keyword and Task-Result to the method signature.

C# 10

According to the announcement on .NET6, VS2019 won’t support C#10. So having the latest version is required to use the following syntax-sugar 😉

So opening the first time a .NET6 application, you might think that you’ve opened the wrong project. You’ll be greeted by a Program.cs file that reminds you more on something like on Express.JS for Node then on your well know ASP.NET.

Here we already have a whole bunch of new language features at once.

Top Level Statements

You might be missing the boilerplate code around the app initialization like the ConfigureServices method or the Startup class itself. This is caused by the so called “top level statements” were .NET generates the boilerplate code around your code. You don’t have to use this, but this is the default template for a new web app now.

Global usings

Even if you are greeted with a normal “class” file, you’ll recognize the missing usings at the top. This has two reasons: You can now create a file with global usings”. You just need a C#-class, that contains your normal usings and decorate those with the “global” keyword. This can remove some noise from your code-files (but may also lead to confusion, if you don’t name your classes well).

And there is another player in this. Usings like “System” are still missing and do not appear in any existing code file. This is done via “ImplicitUsings” in your project file.

This loads global usings for “System”, “System.Linq” and many more, but varies PER project type.

File scoped namespaces

The third thing that will affect your initial view is the so called “file scoped namespace”. This feature allows you to define a single namespace, without surrounding all your code with braces, just by naming it followed by a colon. Depending on your tab-settings, this might save you important 4 spaces for the customer that requires you to keep your code printable 😉

Null parameters

A feature that many people refer to is the parameter-null checking. I found two variants here. Obviously, it should be possible to add two exclamation marks behind a parameter to throw a ArgumentNullException if a null value is passed, but that just brings up a syntax error when I try it. Another inconvenient way is calling ArgumentNullException.ThrowIfNull and pass the parameter, but in the exception message there seems to be a placeholder instead of the failed parameter. So, this seems not to be ready yet.

Record structs

Then there all updates about C# include that record struct thing. Records aren’t new, structs aren’t new … so why is that feature so often mentioned?

I tried that code and you just have to write “public record struct Product(string name, int price);” and it generates for you the properties to use. But that has already been in C#9. So, I read into it and found “it is immutable”, “you can not edit the properties”, “you can not use ref to pass it”.

But trying this out I got away with it:

It lasted a while, till I found this article:

It explains that you’ll either have to implement the properties and replace the “set;” with “init;” OR you ALSO have to mark the record struct as “readonly” to achieve the same effect. NOW it works as intended:

And you’ll have to use the “with”-operator to create a copy of it containing the new assigned value:

to be continued shortly 😉

Microsoft Ignite November 2021

This week on the 2nd and 3rd of November the Microsoft Ignite took place. There were so many nice things going on, but I guess you’ll get my personal favorite till the end of this text ;-).

Again for all those that like the overview document – Microsoft provides again the “Book of News


Even though Shared Channels (Connect) in Microsoft Teams have been announced for a while, you will have to wait for the preview till “early next year”. If you haven’t yet heard about them: They will allow you to invite people to a channel independent of their membership of the current team – and even inviting people from different tenant will be possible. This will make specific cooperations in teams way easier and ease a lot of overhead.

But talking about cooperations, and this is the reason why I start this post with teams as topic, you will see “Mesh for Microsoft Teams” in every news. Mesh provides you with mixed reality meetings and avatars.

During the pandemic it became obvious, that many workers preferred to work from home in the future. Surveys on several platforms show statistics that people mostly prefer to have 3-4 remote days, so get used to have remote participants, if not remote-only meetings from now on.

But it is also a fact that being in meetings, being in front of the camera and having the full attention of everyone is stressing people out. So I know people often do not turn on their cameras anymore. Obviously Microsoft wanted to fight two problems here:

  1. Not everyone wants to enable the camera all the time
  2. The spirit of the meeting gets lost if you’re talking to old, not-moving or not representative images of the colleagues.

So here we got avatars – Avatars that are 3D, working in video calls. And I have to say. I like how the following image feels. It appeals to be alive and you can identify everyone in the meeting. I think this is a big step for not losing contact.

Source: Microsoft (Avatars as cam replacement)

But those Avatars weren’t everything. Just have a look at the following image. Mesh provides you with a virtual room, so you can almost see the interaction between the people. So together with Meta (aka Facebook), who are also currently working on virtual presence meetings, I think the upcoming months will become really interesting:

Fun fact: The first thing I read in the Ignite-chat, as they showed this was “no legs? nice – no-pants meetings” …

And where we are taling about fun facts … in one of the announcements was an item that in early 2022 you’ll be able to write YOURSELF a message in teams … to use it for taking notes 😉

The preview of Mesh for Microsoft Teams is announced for q1/q2 2022.

Want to know even more about what’s new in MS Teams? Have a look:

User experience in dynamics

I have to confess that I’m not as informed about Dynamics as I’d like to be, but talking all about user experience this year, the first thing that was shown were Connected Spaces. Connected Spaces allows you to combine your store/warehouse insights through camera (or sensors?). Here you can see a the configuration tool, that enables you to identify locations on your camera images and connect those to rules.

Source: Microsoft (Connected Spaces)

If you have in mind, that Microsoft just showed during the last two years of events the “spatial analysis” through their Vision-Cognitive-Service, this is just the next step to automate and simplify.

Microsoft Customer Experience Platform
But there was WAY more that was demonstrated with Dynamics 365. A whole set of tools got integrated with each other – and this does not seem to be the normal buzzword-slide, but all of those systems really bring VALUE into the whole tool:

Source: Microsoft (Customer Experience Platform Lifecycle)

It begins with the Dynamics Marketing and Dynamics Customer Insights, providing you a comprehensive way of targeting your customers:

Oh wow – you might think on the first view. Lots of insights… history, calculated value, interests – all visible on one dashboard. But to be honest – this is not the first time you have seen such a collection of information – and that was my first thought as well.

But have a look at the lifecycle above again. You see integration of Purview and even Synapse Analytics, so we’re getting serious here. This is not the average funnel you configure, but AI based supported Marketing, enriching your data on demand with various additional packages from 3rd party providers:

If this will ever work in the EU as well? At least it was mentioned, that you can enable customer consent in the toolset, so it will take care of requesting this before enabling all the data stuff.

They also showed the AI based email builder tool in Dynamics Marketing, that suggests you an email template, images and texts based on the users context:

And several AI based snippets for the Marketing automation tool should support you in finding the best way to get into contact with your customer:

So everything we saw above is nothing new, but having this all working seemless together and enriching it with stuff like Promote IQ that can even suggest offers for the customer across shops in the marketing network, you get a really strong suite from Microsoft to convert customers into brand fans.

So dear colleagues – if you have a demo for this ready, I’d like to hear more about it 😉

GPT-3 and growing

At the end of 2020 Microsoft aquired an exclusive license for GPT-3 from OpenAI. For the last months you saw some tools popping up related to this project. For example the PowerApps integration that turns plain english sentences into PowerFX suggestions. GPT-3 is specifically strong in text based understanding and in the following example summarizes a text:

Source: Microsoft (GPT-3)

Microsoft now offers access to various models of GPT-3 via the Azure OpenAI Service. So you can utilize pre-trained models for your needs as well as train them to tailor them more for your usecase. Obviously, I guess to prevent things like their twitter bot going mad, the team announced that they’re currently just leaving in people by invitation to check what people are doing with their service.

And that the development has by far not reached its end you can see by the announcement of Nvidia and Microsoft working together on the “Megatron Turing NLG” model, which just has three times the amount of parameters to learn as GPT-3 has.

Another similar model to GPT-3 is btw. the model behind Github CoPilot. I have registered for this and recently got access to it, just as well as two friends have, so I guess they’re making it more public in the next few weeks.

Power Apps

As I heard that PowerApps will introduce pay-as-you-go licensing via Azure I was hoping for a really big chance here. PowerApps has recently lowered its prices, so we are currently at 5$/user/app/month. PAYG now offers to pay for apps via your Azure subscription and only pay for users that have used the app in the given month. Unfortunately the price here is 10$/user/app/month, so to make this work, you would have to have more then half of your users just using the app sometimes. Of course you always pay for not committing so hard, but I did expect something different during the announcement and hope they’re closing the gap a little bit more.


It was also announced that you’ll be able to install apps natively without the PowerApps launcher on your device and my first thought was: Nice – that’s something that bothered me.

But after having a talk with my dear colleague Michel, I learned that having the launcher as the intermediate step isn’t that big of a problem … but another thing in the announcement is way cooler: “Enterprise governance with Intune“, so you’re able to set the policies already for the apps in the launcher, which did not work before.

Defender and Sentinel

It was also talked a lot about Defender and Sentinel. Also here with Azure Synapse integration for data analysis. I think it is quite cool to have a response and counter-measure option now for smaller businesses as well (they said something about up to 300 employees), but I’m not that deep into this topic, so if you need help, feel free to contact me and I’ll forward you to the colleagues :-D.

Bringing chaos into the cloud

I had to bring this here, because, as the presenter during the Ignite as well, I like the idea of “Chaos as a service” :-D. With the Azure Chaos Studio you can simulate stuff like “what happens when one of my datacenters gets lots” … because … why not.

This should shift left tests that you normally are not able to do without lots of testing code or big test plans, because it changes the environment around your app and simulates also situations, that you might expect wouldn’t happen in the cloud, but even though there’re backup systems – they also need to get up for some seconds.

Getting into the Loop

Then I saw this … LOOP … and actually it touches me a little bit personally, because we were currently working on something similar – and this thing here already looks so good.

What you see on the screenshot below is called a workspace. It consists of the register on the left side, where you can also see if other participants are currently working somewhere – and the right side, which is called the “page”. It describes itself as collaborative canvas. So you can join a page and work in common on it. But as you can already see, there is more then text-editing and not just the linking of persons you already know from Word.

(click for the animation)

It has components that were WRITTEN FOR COLLABORATION. Every segment syncs in real-time. You can insert tables, user lists, appointments … and the list is growing. Those components are called “loop components” and they can be used across Microsoft apps (and everyone else that implements the framework):

(click for the animation)

You might even realize, that this “cross product” and “sync components” were mentioned some time ago. Those components were formely named the “fluid framework” (link might die soon because of the renaming).

We saw lots of activities in the last weeks in the Github repository of fluid and obviously they now renamed it into Loop. There is a server architecture behind, that you could spawn easily as docker containers that keep track of your changes and has smart change tracking to allow you to build collaborative components without thinking about the sync. (well that’s actually not totally true – but it simplifies it a lot)

But Loop is even better then this sync-framework. It has something integrated that Microsoft calls “Context IQ“, which fits quite well, because this it what it does – it processes the contents of the loop pages (and components) to suggest you things intelligently based on the context. So if you’re adding someone to a document that talks about loop, you might get me suggested, if I’m in your AD 😉

WebSockets everywhere

For the last months we worked with the Tinylicious and Routerlicious, the example implementations of the fluid services. For Azure was the so called “Fluid relay service” announced … just as with Websockets and lots of open connections, you might get a problem with your server, so it is nice to have a cloud variant of it, when you want to go live. But the service always told me I couldn’t create an instance (guess based on the location), but since tuesday you can create a free preview instance and play with it.

There are two other things that somehow belong to this topic:

First: There is also a new service which is called “web-pubsub“, which implements a pubsub pattern also based on websockets.

And they have added native support for WebSocket APIs into the Azure API Management.

I think we can expect great times with lots of collaborative tools and Loop is just the beginning.

Technical playground

Azure Container Apps is something that was added to the portfolio to give you another way to approach containers besides AKS or App Services based on container images. Behind the scenes it runs on an AKS.

ACA are serverless, so you can flexible scale based on your needs. It was described as “getting the benefits of AKS without knowing AKS”. You put your application into a container, define the scaling parameters and you’re good to go. Container Apps will support Dapr (bringing best-practices for routing and retries) for easier inter-service communication and http-traffic based events (e.g. for autoscaling).

They were created to support the simple creation of microservices.

Network manager

As we are currently on the technical playground, I want to throw in a link for you as well … There is something that is called the virtual network manager, that should make it easier to manage your virtual networks … even across subscriptions:


Something else that i just had to mention, because I think this makes the life of some people a lot easier. Powerpoint integrates something called “recording studio” that supports you for example by giving you a teleprompter like view or enables you to edit the slides without re-recording.

Closing this…

… with the strangest tool I have seen in a long time. A tool has been built to help sell DevOps workflows by visualizing them. But maybe it’s just me or the tool might still have some space for improvement, but judge yourself 😉


The annual “Microsoft Build” conference took place from May 25-27, 2021. Build is one of the most exciting conferences for developers in the Microsoft environment. You can sit back in your armchair with pizza and mate and celebrate your inner nerd.

Fans of summaries can get an overview of the event in the “Book of News.”

It would be easy to write about all the topics around AI and ML now, because Microsoft is making considerable progress here from year to year. Around the so-called Cognitive Services, in the examination and handling of images, language or text, there is regular progress, which makes the integration of such features into the own software a breeze.
Here, for example, the improvements to the Bot Service, the Video Analyzer, which can independently search through videos, transcribe and highlight speaking persons, as well as the improvements to the text analyses in the health area were mentioned at Build.

If, by the way, Bot Services should be an issue for you, we naturally not only offer help with the integration of Microsoft services, but are also a Cognigy partner from the very beginning.

It continued with a whole load of security features (e.g.: Continuous Access Evaluation (CAE)), analytics (e.g. Azure Synapse), an extension to the free version of the powerful Cosmos database that can be a big help in globally distributed database scenarios, a simplified language called Bicep (to flex the muscle) that can be used for infrastructure-as-code and give the aging ARM templates a leg up, and large-scale improvements to Kubernetes services to support companies that have opted for hosting in containers.

I would like to point out a few personal highlights…


Unfortunately, my long anticipated feature was not announced at Build, but unfortunately pushed back. With Shared Channels, there will finally be a way to run channels across the board at the end of the year, so you don’t have to keep switching tenants. Nevertheless, there were some announcements that already invite you to try them out:


Some of you may already be familiar with the Together mode, having changed the view in larger calls. This mode allows up to 49 people to be displayed on a common view. These are then sitting in a virtual auditorium – the clue: The people are cut off from the teams, so that you can no longer see the background. This results in a much calmer picture than with all the small individual boxes. The extensibility of this mode will be rolled out to all Teams clients by the end of July and will also allow you to create your own scenes.

Microsoft Teams Developer Portal

Source: Microsoft


In addition to this small visual feature, more and more entry points, APIs, etc. have been announced for Teams developers, which should make it possible in the near future to enrich all sorts of applications with Teams features and to be able to evaluate and enrich the data from group calls/events themselves.


Already presented as a tech demo at the last Build, the so-called Fluid framework is now being used more and more in Microsoft programs. Fluid makes it possible to integrate quasi-real-time communication in controls (similar to the well-known “edit together” features).

Here, developers can fall back on existing components or use the technology behind the Fluid framework to provide their own components with it. Perhaps one or the other has already noticed that something has suddenly changed in an e-mail that reported a status report in Teams. This will be supported by Microsoft in various environments in the future.


There will be a lot more changes in Teams in the coming months! At Build it was announced that Teams will get a store for third-party applications. This will make it more and more interesting for developers to choose Teams as the basis for their applications.

In the days following the build, it was also announced that there would be an “end to Office as we know it“. I will only believe that when it really happens – but integration and editing of Office documents, such as Word, Excel, PowerPoint, is already possible in Teams and will definitely be expanded.

And Viva? Heard of it? With this name Microsoft will provide an “Employee Experience & Engagement” platform. In other words, an intranet enriched with features from Yammer, Cognitive Services, Learn, the Q&A Maker, Teams itself and many other sources. I’m really looking forward to that and I’m excited to see what you can do with it.


Now that we are part of Macaw since March, many new colleagues have welcomed us. An important part of Macaw’s strategy here is the expansion of Sitecore, but also Power Platform development. While we are just picking up speed here, our colleagues are already showing us interesting insights into their projects.

That we are on the right track with this was impressively demonstrated by Microsoft at Build with their demonstrations of PowerBI, Automate and Apps.
Since I personally like to deal with AI and ML (although, unlike some colleagues, I am only scratching the surface here), I have known for some time what a special achievement the so-called GPT-3 language model is. GPT-3 is best known for its generated articles, which only needed a few words or example sentences to generate a complete text.

Microsoft secured rights to this model at the end of last year in order to improve AI capabilities in its own products. At Build, Microsoft showed a PowerApps editor in which someone entered a sentence into a field in plain English, GPT-3 evaluated the content of this sentence, and based on that, offered snippets of the Power Platform’s own language PowerFx for selection. Thus, it would be possible for so-called “Citizen Developers” (i.e. users with sufficient technical understanding, but not necessarily with a developer background) to work on Power apps with natural language without extensive programming knowledge.

Power Apps Editor based on GPT-3 by Microsoft

Source: Microsoft

.NET 6

And of course, the latest updates to our development framework “.NET” were published again. It’s been known for a while what new features .NET 6 would bring, but seeing the latest version in action together with a preview version of Visual Studio is always fun.


What would a version update of .NET be without the obligatory charts with doubled and tripled performance? In laboratory scenarios, some may say, it is of course always possible to create optimal conditions for one’s own environment. But if you take a look at the attention to detail with which the development teams squeeze the milliseconds out of important operations and even try to undercut each other on Twitter, you won’t be able to avoid the realization that something is happening here.

In the field of “Application Modernization” alone, it is therefore worth considering upgrading your own .NET application to the latest version for better use of resources. And of course we are happy to support you in this.


netzkern already develops mobile apps with ReactNative and Flutter. The framework from Microsoft, Xamarin, has often been left out. With MAUI (Multi-platform App-UI), however, Microsoft is now delivering the successor and also supports the development of desktop (WinUI 3) applications. If you take a look at the sessions of the MAUI team, you will learn a lot about the lessons learned and things they took away from the work on Xamarin. Besides Blazor, MAUI was also allowed to arouse the interest of .NET-savvy developers.


One feature that the .NET development team is visibly proud of is the so-called “Hot Reload”. This should make it possible in the future to test code changes in larger projects without restarting the environment. Anyone who has ever held a Visual Studio in their hands knows that we are talking about a few minutes here, which you can possibly save per change in the future.

Those interested in a complete list of .NET 6 updates will find it here.

Coding for kids with a turtle

Today I read something about a german page called “code your life”. It has been shown at the Microsoft booth at the didacta2018.

It’s teaching people to code. And they’ve got a section for kids as well. Just check it out here:

There’s a section called “Akademie” (academy), which contains menu items for kids and adults. If you want to try this with your kid, just have a look at the first example.

Explanations are german, but the function calls are in english of course.

I like the way it visualizes instantly everything you do. Just start by adding a “forward” command for the turtle and see how it moves and draws a line behind itself.

Variables, loops and conditions are available as well. There’re many other things on the internet, which do something similar, but for reasons, I enjoy having a german version of course – and the simplicity of the building blocks is nice as well.

[UPDATE 04.03.2018]

Just found this one as well: … similar concept – fast to get through, but a little bit more playfull then the turle 😉

First steps with UCommerce

This week I had a look at Umbraco and UCommerce. I already created a small site (just for personal practice) with Umbraco.
So I downloaded the latest versions from Umbraco ( and UCommerce ( There’s a free version of UCommerce as well.

I think UCommerce is quite interesting, because it is available for various CMS’ like Kentico, Sitecore and of course Umbraco. So I hope you can reuse your knowledge, when learning it on one platform and then you have to implement it for another project on another platform.

Just as mentioned by a colleague, there’s currently no support for specific german payment- and shipping-providers. So I’m interested in implementing them.
I already started with the payment-provider. In my case Wirecard.

My starting point for this is the documentation of UCommerce for implementing a payment-service:

So far I found the most promising way on the wirecard page to be the “seamless checkout” page, where you first post your parameters (from the payment object, which is passed to your payment-service method above) to “Init”. You’ll get a link back then where you have to bring the user to to start the payment process.
I’m not sure, but I guess if you reached that milestone, you’ll just have to handle the payment-result in UCommerce then:

If anyone of you already has some more experience with Umbraco or UCommerce, I’d be glad to chat with you.

Ah – before I forget my favorite part … If you want to try this your own. I spent several hours to understand, that my biggest problem with the UCommerce Demo-Shop was the fact that I already installed the UCommerce Demo-Page … so the templates mixed up. Just do not install the Umbraco Demo-Page and everything will work fine ;-).

Coding evening and Jira API

In the first week of january, we’ve visited our colleagues in Hamburg. And when you’re driving there for some hours (and haven’t been there in a while), I couldn’t of course resist to have a nice coding-session in the evening. For that we decided even to stay a day longer, so we didn’t have to hurry to drive home when the evening got late.
Our self-set todo for that evening was to load tickets via API from a local Jira system.
So one of my colleagues took care of reading into the API and preparing the .NET classes (as well as the handling of the data), while I on the other side tried my luck with the authentication.

My mate was quite successful, in a short amount of time, because the API was documented quite well. You can retrieve boards, sprints and issues (separately and grouped by sprint) just by knowing the correct endpoints. You can find the REST documentation on the atlassian page:

But have a look at the version number. As we realized at the end of the evening: Our system was just one version below that one we needed to directly query relations between projects and boards. Patches help 😉

I myself despaired the whole evening while working on the OAuth 1.0 authentication. Actually I did that various times (whereas I have to confess that I’m not that firm in implementing such stuff), but I didn’t get that exact way on this evening.

While all my current implementations used HMAC-Sha-something as signature method, Jira insisted on having an RSA-Sha-something. No problem … i thought … if only my libraries (I tried 2 or 3) wouldn’t have acknowledged my tries to set RSA as method with the message “method not supported”.
Some days later I read into that topic again and found something like this:

“While HMAC has to use a shared key between server and client (because it’s symmetric) – RSA uses only the PublicKey to validate (that’s called asymetrisch)”. So only one party has to know the privat key.
Well – ok – sounds valid. But on that evening it was already late and I didn’t get it then anymore.

And because I didn’t want to end that evening without a result, I lateron sat down in the hotel to have a further look. I already read that you could of course use the Jira API with basic authentication instead of OAuth … but there was even more (when not in a hurry to find the solution within a given time) … There is for example a library which calls itself “Atlassian SDK”. You can find it here:

My mate called it “boring” using a library – but hey – decide for yourself ;). Btw.: That library is written by a guy called “Federico Silva Armas”. LinkedIn tells us, that he’s been working at atlassian (QA engineer) and now works as core-dev on the azure-portal … well … Azure seems to be everywhere 😉

Activities during the holidays

Because Linux is a big topic in Azure as well, there’s an exam from Microsoft, that is called “Linux on Azure”. The prerequisites therefore are two things: A passed LFCS test of the Linux Foundation (Linux Foundation Certified System Administrator), as well as the MS exam 70-533 “Implementing Microsoft Azure Infrastructure Solutions”. You can find details over here:

The Linux Foundation has created a six-part series of video tutorials as a preparation for the former test. For the latter there are materials from MS. You can find both here:

Because I wanted to have a look at them (and had some free time) I watched them during the christmas holidays. With a monotonous enthusiams, a guy explained there in about 12h (all videos are about 1,5-2,5h long) the various topics.
It might have been a little bit more or less time – but with all my taking-notes, jumping forwards and backwards as well of course the watching, it took me about 19h.

Roughly grouped you’re told about the following topics

  • Shell
  • Folder structure (and the most important directories in Linux)
  • Filesystem + Mounting of devices
  • Editors (and especially VI)
  • Bootsequence / Bootloader / Config
  • SystemD (+systemctl)
  • Permissions (ACL,…) + Root
  • Manpages
  • Processes (pids; lists; signals)
  • Scheduling
  • Softwareinstallation + Packagemanager
  • User / Passwords / Groups
  • LSM (Linux security modules) / SELinux / PAM
  • SSH, Telnet
  • Network + Firewall (iptables) + Routing + DNS + FTP + NFS + KVM
  • Timeserver (chrony)
  • Samba
  • Mails (postfix, dovecot)
  • Apache (Webserver), Squid (Cache), MariaDB
  • Container
  • Partitions (dd, xdd, fdisk, LVM) + Raid, LUKS, Quota

So now I got a long list of dangerous superficial knowledge 😉 … I’m curious what of these I’ll learn in greater detail during this year and which I’ll need at all ;-D.

Mongo Auth

Just playing a little with mongodb and nodejs. Wanted to try out if there’s anything you have to take care of. Issues you wouldn’t expect.

So I created a node project (just a start.js), installed mongoose via npm (I read today that it’s a whole ORM for mongo, but that was the first driver that was recommended to me) and tried to connect:

mongoose.connect(‘uri’, options)

So I passed my credentials in the options object, but got the error message:

MongoError: auth failed

At first I thought I would have passed invalid credentials or had to choose the database first (but that is done via the uri). So I had a closer look at the message in the mongo host console itself. Well: UserNotFound … myuser@mydatabase … So I fired up MongoVUE (an admin UI for mongo) and double-checked that the user existed in the correct database.

Long story short: Mongo starts by default in a mode where no user is required. You have to pass “–auth” as parameter so the authentication module is loaded. After restarting mongo with:

.\mongod.exe –dbpath .\local_mongo –smallfiles –auth

Everything worked fine. I’m happy that I got one step further in understanding that stuff. And btw.: Without “–smallfiles” mongo was not able to start on my well filled harddrive, because the journal files where to big. But it might affect the performance, so I’ll remove that in the production-version.

MySQL Source

I just fell in love with mysql “source”-command … just wanted to mention that ;-)!

Having trouble importing a large file into a mysql database? Simply open the prompt, connect to the server (on my local machine I didn’t need to specify a host) so something like:

mysql -u [user] -p

And as soon as mysql lets you in, you can select the database to import your file into with the command:

use [database]

After the database is selected, you can import your file with this little nugget:

source [file]

All commands without brackets 😉 … and mysql will start importing the data into your database. No more workbench messages like “unable to allocate sufficient bytes to read the file”. Live can be so easy!