Can crazy days create value?

First of all I have to thank you all for letting in a first time hackathon bastard in the realm of this wild pirate bunch. I have tried to catch up, learn and provide some help for my Captain Ulrikke. What I thought would be a lot of power naps, turned out to be PowerApps, aaarr!

As an architect I have realised that there are so many more ways to Rome. The creativity, cooperation, team spirit and knowledge gathered in a room is amazing. As a bastard on a ship I have learnt about flows, power apps, dataverse, canvas and the myriad of possibilities for creating solutions in alternative ways.

I started asking chatGPT for lyrics and chords for a pirate song. A soft start for an old musician to add som team spirit, playing on a broken electric piano and singing with the voice the sea and rum gave me.

But I do believe that the value from the experience this weekend has broadened my mind. I met incredible people in a cool atmosphere and will be able to build on my knowledge.

I hope this was the start of more hackathons. I will end with a homage to my fellow pirate who gave me a cool cap gadget (Marius).

The Orange Bandits shows and tells

An ERP implementation can be a complex and time-consuming process, but the benefits of improved efficiency, reduced manual labor, and enhanced data accuracy can be significant.

As part of our solution goals, we are focusing on 4 pillars, and we strongly believe that the first implementation of the Pirate Fleet Management hits all 4 pillars!


  • AI

The App uses a mix of built in and custom models in innovative way and yet makes the enlisting process easy and straightforward.

  • Sustainability

The use of a canvas app which is mobile-integrated (a device that everyone has) means that there is no need for extra devices and we are using available resources.

  • User Experience

The app is easy to use, straightforward and there is no need to punch any characters.

  • Scalability and integration

The app is scalable and can be used on any mobile device and integrates well with both our back-end CRM solution and external endpoints.

🤖 Automatically Priming our SPA cannons with React and .NET ⛵️

Sailing is though, so you need to rigg your ship to your advantage, preferably automating your sales and having people walk the plank for making bad code. We chose to created a project with ASP.NET Core application running with React.js. The application is running on .NET version 7 and uses several technologies, both hip and retro.

Screen capture of the .net SPA application setup

Mapbox for Charting the Seven Seas

Our application uses Mapbox – a provider of custom online maps for websites and applications. The company provides APIs and SDKs to create custom maps, add markers and other map controls, and to handle user interaction with maps. This ease of use and their clean and well-structured documentation ( made Mapbox our top dog for create, edit and manipulate maps in our service.

Map created using Mapbox’s API

Protecting your Shared Booty form the Crew

Any pirate needs a secure lair, a pirate code and ability to help other pirates in need. For this reason we created a repository in GitHub and implemented best practices for collaborating as developers, like proper branching, build pipelines, linting and pre-deploy checks. Like blocking ourselves from bloat because we can’t have unused code in the repository.

Snipet showing lint error for unused variable

Branching Strategy for Division and Conquering

The master branch contains the production code. All development code is merged from develop into master. Cutting corners in true hacker style we opted to not use feature branches, since, to be frank, the entire thing is a feature at this point.

What we all said when discussing feature branches

All branches are protected with protection rules. Due to the limited size of the project we can automatically merge features and bug branches directly to develop, but we can’t push directly to develop. Even that is too risky for this group of mad lags and girl. If you want to merge code from develop into master you need approval from at leaste one other developer and no changes requested to your merge, if all flags are green Github forcefully collides the code together and see what sticks (it’s actually more sophisticated than this, but you Judges know a lot more about this than we ever will, so we humbly just call it “magic” – just like magnets).

Parchment showing the Law of Protection for our Master Branch

Feel free to have a gander at our code repository to appreciate all the shiny details:

Smooth Rigging with CI/CD and Github Actions

Github Actions is a now a CI/CD platform that allows developers to automate their software development workflows. This, for us, is a huge win because we want to do as little configuration as possible!

CI/CD github actions

The actions reduce the time and effort required for manual processes and enables us to release new features and bug fixes quickly and confidently – Harr harr, got you matey, you thought we will fix bugs! … But … for the sake of argument … if we were to fix bugs, this powerful tool for streamlining development workflows, enables us to deliver high-quality software more efficiently and effectively at lower cost – Better use of time, reduce waste of time (WoT) and better business value for the client. We used yaml to tell what GitHub actions should create:

Yaml file describing what GitHub actions should create

Creating Overly Complex Gadgets to Avoid Simple Tasks
(aka How we used ChatGTP to give us documentation on Pulumi)

Nobody likes to know stuff. Everyone loves AI. What about AI that knows stuff?! Sold!! We used the AI service to provide us with documentation on how to deploy infrastructure in Azure with code.

Asking the oracle about stuff we probably already should know

From this we were able to write code that could be executed in our CI/CD

Pulumi snippet for creating our environment: Infrastructure as code #retro

Resulting in a beautiful environment and ample time for coffee ☕️

Screen grab showing the employed resources in Azure
Screen grab showing ChatGTP making a meme about making memes about using ChatGTP. Very meta.
Mame created from ChatGPD’s instructions

Make the Deck Shine Like Pixels

Colors are an important part of the User Experience, however there are more to design than colors. Let us dig deeper into our color pallet for this app.

UI Color Swatches with descriptions for use from the UI design tool Figma.

Our Swagger of Cloth Sebastian has shown us some tricks of the trade. Where other teams have opted for machine learning to create their color template, Sebastian has chosen for Adobe Color – a tool for mixing beautiful color pallets.

Screenshot from Adobe Color

The pallet was mixed using our Captain Mats’ favorite color: Blood red (or a slightly rusted maroon if you like) as the base. Then for electric flair we skewed the color pallet using Analogous color harmony towards the violet spectrum. Since the maroon is quite soft this results in a calm nautical palate with some poppy vibes towards pink and green.

Building on the swatches we made de-saturated versions to help with shading and possible scenarios where we might need less color to achieve more in the design. Typical places would be illustrations and clustered sections that need soft, mellow containers.

Implementing the Colors into a UI

Adding the colors as swatches to Figma’s color management makes et easier to try different colors and alter the colors if needed. We also named the colors with logical names, describing how they should be used rather than descriptive. Form experience and also rooted in best practise we find this way of managing colors more versatile and easier to work with than having explicit names, like “blue-bg-color” because what happens when your token has a descriptive name, and that description is no longer correct? You need to defector or just remember, both options are bad for speed,

Screenshot from Figma’s color swatch styles

Lastly it is important to calibrate your colors for the visually impaired. One common tool is the WCAG color contrast guidelines requiring contrasts of 1:4.5 for normal text and 1:3 for large text. Sadly we can see our selected pallet is not optimal for all cases and still needs work.

WCAG compliance check for the color swatches against the darkest and lightest color in the pallet

Also, the resident pixel pusher is very happy he has to hack all this together on a broken screen where everything looks janky. We are so bold to say this is living like a true swashbuckler, powering through this hackathon.

Broken screen is broken

What do we do? 🤔

To find out if there are pirates in the waters where commercial ships operate, we will compare data from AIS (Automatic Identification System) with satellite images from the same area.
If there are more ships in the satellite images than the AIS data shows, we will trigger an alarm. This alarm alerts via flashing lights (Zigbee), Teams and an app we build ourselves.

High level architecture

The image analysis itself is carried out using the ResNet architecture, which Herman has written himself with Python. We get the satellite images from open APIs, the same with AIS data.

Example of sattelite image with ships
Training the machine to identify ships in images
Response from AIS API

The comparison takes place by counting the number of ships on the satellite image within given coordinates, then we compare that number with the total number of ships we find through AIS. If the number is unequal, we assume that there are pirates in the area.
This finding is posted in a table in Dataverse, where we have a Power Automate flow that picks up new rows and sends them to our Teams app in addition to triggering a red warning light in Philips Hue.

We also have a React web app that presents data to the emergency response team that keeps track and notifies the right authorities and ships.

More about our solution

Without the appropriate tools, it is very hard for the Pirate Planners to be able to plan as accurately as they can the different sailings with different pirates when they actually don’t know what pirate with what skill is available at what time. When the Awesome Pirate Corp. uses Dynamics FinOps as their ERP system, we need to create an easy way for the Planners to do their job as easy as they can.

To do this, we have planned to help them by doing this:

  • Create a model driven app that gets all the data it needs from F&O with DataFlows and PowerQuery (Projects, WBS, Resources, Worker information, Skills for the worker etc.).
  • The palnners will then use the model driven app to plan the pirates on the different sailings and tasks on that sailing depended on the skill-set they get for the different pirates from F&O.
  • We will also create PowerBI reports that always shows what pirates are booked for what the next weeks, so that we easily can see if someone is overbooked or if someone has too much free-time and needs to get booked so that they don’t do less than the workforce they have available (more sailings equal more gold to bring back home!)

And then, what use is all this if the pirate does not have easy access to the information when they are out on the ship? We need to give them the tool they need for this, so that’s why we will create a canvas app they can use on their mobile. And, when we first do this, they we can add a lot of other features as well for them. We have planned for this app to:

  • Give them the option to update their personal information in F&O from the canvas app
  • Have access to their personal PowerBI showing them where they are planned when
  • Have tasks assigned to the Pirate in F&O (for example Onboarding tasks) automatically be a To-Do so we can show their To-Do list in the app and they can work with the tasks there and mark it as Completed in F&O when it is completed in the To-Do list.
  • Create a Power Virtual Agent in the app that can answer questions they need answers to, without needing to bother the HR or other departments (and, maybe they can ask other questions too that chatgpt can answer for them 😉)
  • Make it possible for them to fill out their timesheets for the week directly in the canvas app

Why we think we should get a high ranking in the different categories:

Excellent user experience: Pirates being out on the see can not use F&O to manage their data and their tasks. This has to be done on a mobile app! And, for those that has used F&O… It is not the most sexy system to use for regular employees and manager, we can give them a lot better experience with an app that can be personalized with their companies colors and logo. And, for all the planners and the pirates, having a very cool and easy way to plan the bookings for everyone, to be done by always having the up-to-date data from F&O is highly useful for them!

Most extreme business value: Our solution will make the workday easier for everyone in the company, every week! This is something we know is a high demand for a lot of companies using F&O today. To give this opportunity, and the possibility to get a lot of more information to every pirate in the same app, so they only have one place to go to handle everything they need to every day, will save everyone a lot of time.

Rock solid geekiness: We use a lot of different Microsoft technology, and combine it together to make the solution as smooth and “easy” looking for everyone that will use it. It will be a lot of flows, api’s, apps, dynamics and Microsoft services running together in the seamlessly and in real-time!

Killer app: Both the canvas app and the model driven app will be such good tools for everyone to use, and the data coming out from them and flowing back and forth should be enough to get us a lot of point here. All the features we have planned for the pirates to have in the canvas app, and have it all work on a mobile phone, will be awesome!

The Mutiny Appy

As a Captain on me ship The Moria (my first ship Lady Soria was tragically lost during a mutiny, fuck’en ol’ crew) I found the need to prevent further incidents. Arrrr!

An App (handy while sword fighting) to manage how to split the loot so the my crew, the Bastards, will be happy and serve me loyally and eagerly is what I will make.

Built on stolen tech, open pirate intelligence, and brut forcing powerapps I will control the pirate hierarchy and move my mates up only when necessary.

Our hierarchy consist of:
Captain (only ME)
First Mate

The app will also provide essential tools and games for my crew in order to keep them happy and informed during pirating. It will guide them through adult virtual entertainment and show them the way to the next rum bar.

Frist draft architecture made in an rumble


Data model

The Basic Idea

We will be implementing PRMS (Pirate Raid Management System) in which we will fetch data from NAIS – a service providing ship type and positioning in real-time, in order to determine what ships to plunder. The ship data will be fetched and stored in Dynamics 365 as leads and from there we will qualify the ones looking most interesting with regards to a risk analysis done by Sales Accelerator.

Leads with high value and low risk will be qualified to opportunities (Targets) and from there our sleazy sales pirates will contact the pirate kings in the desired area to sell them this plunder target. Where will be sent a contract to sign and we will demand a deposit up front. When the pirate king has organized and performed a raid, we will take 25% of the loot.

In addition to PRMS, we will offer our pirates a Pirate Assistance app developed using PowerApps. This will guide the pirates to the correct ships in heavily trafficated Norwegian fjords.

In case of meeting a mermaid a pirate might choose to use his Rumglasses feature where an AI will help him detect if the mermaid is real or a manatee through image recognition. This might spare a drunk bastard for ages of humiliation.

For any HMS questions, Pollybot – a pirate’s best friend virtual agent, will make stupid answers to real questions by repeating your question 70% of the time.

With this plan, sketches and business idea we claim the Early Delivery and Show and Tell badge. Ahoy!

The Seven Seas are Even More Dangerous with this Crew Sailing

You and your mates are standing, looking out over your stern you see a ship. This is when you spot an enemy ship! It looks totally out of control. Every hand on deck. And is that a volley ball!? Surely these pirates are more like jokerates… They are ripe for a plunder!

His smooth voice is a thunder cracking the sound of the seven seas

But then, you spot it. The stunning Captain Mats with his firm jaw, talking smooth orders. But even the smooth sound of his smooth voice is a thunder cracking the sound of the seven seas. These are no ordinary pirates. No ordinary buclkeneers. They are Swaggrates, the swaggiest of pirates. They are The Hack Sparrows!

Meet the crew

Hello ACDC! We are pleased to meet you all! We are one of the lucky teams to join from Innovation Norway this years. Meet the team:

Mats, our captain with the chiseled Jaw and an expert in all things backend. He is a fan of the posterior for sure. When not creating the machines of eave that lurks in you server cabinet, he enjoys geting his sea legs moving on the dance floor. You will be surprised by the trick this man can achieve when given enough rum.

Solveig, our lady with a mind as sharp as daggers. Solveig does our AI and is the brain of the bunch. Also she is a 6b+ boulder and knows a thing or two about climbing masts and attaching from above with carefully planned accuracy. She also loves to bake and covers every room she enters with the pleacent cent of vanilla and cinnamon.

Henrik is our silent killer that works in the shadow realm of Office 365. He can create systems that furfill your life or trap you in perpetual torment. He also enjoy using his thunder legs to punt footballs through the horizon.

Tommy, our knower of every arm and resident full-stack. He knows how to choose the right weapon for the right attack, or counter attack. Other Pirates, look out! When not picking the right weapons for the seven seas hi spend his time among the turtles in perfect harmony, diving off the coast and snorkeling when on vacation.

Sebastian, our esthetical eye in the sky and swagger of cloth is responsible for making things pretty. But unknown to many, he deploys deadly tactics such as UX, design psychology and intuitive design to fool you into his traps, stealing all your coin! When not making things pretty he likes to snowboard down mountains, preferably those at edges any of the seven seas.

We are looking forward to work with you all in this tiny ocean that is Sorsalen-konferansesal at Soria Moria! Yarrrr!

Sail into the Future with Pirates 365: The Comprehensive Pirate Management Solution – Evidi Sabeltanns

Welcome to Pirates 365: A Comprehensive Pirate Management System

In this era of innovation and technology, it’s time to take the pirate world by storm with a new, cutting-edge system that will revolutionize the way pirate fleets are managed. Introducing Pirates 365: a one-stop solution for pirate management, from recruitment to send-off.

Pirates 365 is a comprehensive, end-to-end system designed to streamline the entire pirate management process, from the recruitment of new pirates to their training and management, and finally, their send-off. This system is built using Teams, Dataverse, and Power Apps, ensuring that it is both user-friendly and highly efficient.

Pirates 365 is made up of several modules, each designed to meet the specific needs of the pirate management process. Let’s take a closer look at each of these modules:

1. Pirates 365 Recruit: Recruitment of Pirates

Pirates 365 Recruit is the first module of the system and is responsible for managing the recruitment of new pirates. This module streamlines the recruitment process, making it faster and more efficient. With Pirates 365 Recruit, you can easily manage applications, resumes, and candidate information, ensuring that you can quickly and efficiently find the best pirate candidates for your fleet.

Here we want to use a webapp using vue.js, and running it on an ipad. Here we can take pictures of the potential recruits and upload them to our recruitment system

2. Pirates 365 Learn: Pirate Training – Pirate Simulator

The second module of Pirates 365 is Pirates 365 Learn, which is responsible for training new pirates. This module includes a pirate simulator, designed to help new recruits get up to speed on the skills and knowledge needed to become successful pirates. With Pirates 365 Learn, you can ensure that your pirates are well-trained and ready to embark on their pirate adventures.

We aim to create a Pirate simulator using our shiny Logitech C920 Steering wheel and the state of the art Game Engine Power Apps (Canvas Apps).

Very early prototype of the Pirate Siumlator

3. Pirates 365 Manage: Pirate Fleet Management

Pirates 365 Manage is the third module of the system, and it’s responsible for managing the day-to-day operations of your pirate fleet. This module includes tools for tracking pirate performance, managing assignments, and monitoring fleet resources. With Pirates 365 Manage, you can easily keep your fleet organized and running smoothly, ensuring that your pirates are always ready to set sail on their next adventure.

4. Pirates 365 Refine: Pirate Offboarding

Finally, Pirates 365 Refine is the last module of the system, responsible for managing the send-off of pirates who have completed their service in the fleet. This module includes tools for tracking pirate performance, managing the offboarding process, and ensuring that all necessary information is captured and stored. With Pirates 365 Refine, you can ensure that your pirate send-off process is efficient and smooth, allowing you to say farewell to your pirates with the respect they deserve.

Example of successful offboarding of a pirate

The Architecture of Pirates 365

In this chapter, we’ll take a closer look at the architecture of Pirates 365 and how its components work together to create a comprehensive pirate management system. Whether you’re a tech-savvy pirate or simply looking to understand how the system operates, this chapter will provide you with all the details you need to know.

The architecture of Pirates 365 is designed to be highly efficient and scalable, ensuring that the system can accommodate the needs of pirate fleets of all sizes. At the heart of the architecture is Teams, Dataverse, and Power Apps, which work together to create a seamless and user-friendly experience for pirate fleet managers.

The architecture of Pirates 365 is comprised of several components, each of which is designed to perform a specific function. These components include:

  1. Teams: Teams is the foundation of the Pirates 365 architecture, providing the communication and collaboration platform for pirate fleet managers. With Teams, you can easily share information, communicate with your team, and manage projects in real-time.
  2. Dataverse: Dataverse is the underlying database that stores all of the information and data related to the pirate management process. Dataverse is highly scalable and secure, ensuring that your data is protected and always available when you need it.
  3. Power Apps: Power Apps is the front-end interface for the Pirates 365 system, providing a user-friendly way for pirate fleet managers to access and manage the system. With Power Apps, you can easily create custom apps that are tailored to your specific needs, ensuring that you have all the tools you need to manage your pirate fleet effectively.

Each of these components works together to create a seamless and efficient pirate management experience. Whether you’re recruiting new pirates, training your crew, or managing your fleet, Pirates 365 provides you with the tools you need to get the job done.

Fist revision of Dataverse tables to hold information about Pirate Ships, Pirates, Learning progress etc


In conclusion, the architecture of Pirates 365 is designed to be both efficient and scalable, ensuring that it can accommodate the needs of pirate fleets of all sizes. With Teams, Dataverse, and Power Apps at its core, Pirates 365 is the ultimate solution for pirate fleet management.

Pirates 365 is the ultimate solution for pirate management. With its comprehensive set of modules, you can streamline the entire pirate management process, from recruitment to send-off. So why wait? Join the pirate revolution today and take control of your pirate fleet with Pirates 365!