Once upon a time, in the world of Business Intelligence, there was a ship with 3 crew members, who were struggling to make ends meet. They would sail from port to port, hoping to find some treasure, but to no avail. That was until they discovered Power BI.
They were able to analyze data from different sources and turn it into valuable insights. They used Power BI’s interactive visuals and dashboards to identify the ports and ships with the most valuable cargo. No more guessing, no more wandering aimlessly. so were able to sail straight to the ports or ships with the most valuable treasures.
Our solution is using Power Automate and HTTP trigger to accept new pirates
And put into a workflow used by our Pirate onboarding app.
Badges
Dataminer – The great database of LLM allows us to mine for awesome pirate names and visual traits for our crew.
Hipster – LLM are so hot, it will be a while until they are not. A multi-billion tech, via Azure Open AI studio cannot be beaten!
Existential Risk – It’s mining, it’s a huge learned model, living on the edge! Sure, we didn’t spend the billions training the model, but that’s hard to do on a pirate’s salary in 2023.
Travelling the seven seas is great fun and pirates can get as moody as anyone else. The ships current loot holding will continue to diminish in between raids and weather sickness can strike at any time. The below input is what we use to simulate mood swings, also output as logic in code.
Of course, we have no idea if this is the actual code or not, as we ask to get schematized JSON – sanitized for input into the dataverse. With mood data available we can start tracking if a mutiny is far away or close at bay.
We’re thinking the following badges apply:
The Existential Risk – text-davinci-003 has never looked better
ACDC Craftsman – documenting verbatim logic for the logical heads out there just makes sense, ensuring everyone can consume and understand the logic at hand independent of their skillset.
Dataminer – LLM are nothing but a huge heap of external data baby! We’re thinking Babels tower in blob.
When we’re creating an app for everyone one to use for their everyday Pirate activites coming from F&O, we might as well include som external data as well to make the experience for the Pirate even better. We have never, and never will, argue that you will get all the information you need every day from F&O, so we have given every Pirate a bit more data they can use every day in their canvas app:
When you first log in to the app in the mornig, it’s handy to get a little greeting just “welcomming” you to a new day, right? We have created a PowerAutomate that uses OpenAI to find a new Pirate greeting just for you (if using AI to cheer up your Pirates isn’t an innovative use of AI, then what is?):
2. If you feel down, and just want some text to make you laugh a little, you don’t need to go to the internet, we have created an Insult of tha day feature in your app. Just click it and start feeling better, at least if you think that this insult is regarding you bunk-buddy 🙂
3. And then, if you want to know what kind of weather it is, look no further, it’s already right there in you Pirate app:
As we have mentioned before, our ship data comes from Kystverket. We expect high data quality and in the early days of pirating this was achieved by importing excel lists where the pirates had used much time to track down the ships in order to maintain accurate positions. Now this work poorly as the amount of ships has increased and the time used to maintain the lists resulted in ships sailing to the next city before we could even detect it. In other words, the ship had sailed. Therefore, we had to make a more efficient way to load the same data and keep it consistent with Kystverket. By using power automate we created a flow that contacts their api and fetches data from premade bounding boxes around the Norwegian coast. It deletes ships out of range and updates the location of those who remains. If new ships occur in our areas, they are created in Dynamics 365 and we will know!
By making the data collecting process more efficient for our pirates using data from other sources, we hereby claim the Go With The Flow and Dataminer badge!! Argh 🙂
Pirates and singers are alike. They need a great stage name for people to remember who they are. When a new pirate arrives at the harbor master looking for work, the first thing they need to do is find a good name.
Just imagine what EMINEM would be if his artist name was Marshall Bruce Mathers III !!
The Harbor Master enters the new pirate to the system, and lets the AI tool decide what type of name suits the new pirate the best.
On the save, a Power Automate fires off a querry to OpenAI via a custom connector with the querry “Give me a pirate name for *Full Name*”. The return is then entered on the contact card.
When you are a pirate, it is pretty usefull to know what kind of weather it is, right? And, when you first have your own Awesome Pirate Corp. app, this information should of course be available here (we know, it’s cold to be a Norwegain Pirate right now!):
To do this, we created a flow that gets your location data when you use the PowerApp, goes out and gets the weather where you are, and pushes it back to the PowerApp to show you:
We get satellite images from the Sentinel Hub API where we can get images from the coordinates we want. This makes it easy to compare images with AIS data from the same time period and coordinates.
Sattelite image of shipsCounting ships
To identify ships from the satellite images, we need more eyes than we have available. So what’s better than letting the machines do the work. We have developed our own ML code in Python to recognize ships. This will make it much more efficient than manually reviewing all the images. Currently, the machine has 99% confidence in recognizing ships. It then creates a heat map that shows where it thinks (with 99% probability) there are ships. Then it counts the number of ships and sends it on.
Training the model to gain confidence
When we know how many ships are within a given area at a given time, it is easy to compare this with data from AIS. Here we search through the API of the Norwegian Coastal Administration, where we can count the number of ships within the same time and area.
JSON from AIS data
Using external data in this way provides great value for our customers as the threat at sea is significantly lower 💾🏴☠️
The reason we are calling this the jackpot app because we believe that it’s hitting multiple score-points!
The idea of this app is to enlist pirates’ fleet without a single character punch!!! Aided and infused by AI Builder, external API’s and Power Automate Flows; this Power Apps canvas app is state of the art geekiness!
Although, registered vehicles are the last of our worries (as pirates), but hey we thought of doing it anyways 🙂 The app starts by taking a picture of the registration plate of the vehicle. the app will send the picture to the AI Builder through a power automate flow that process the image and read the registration plate and show it on the app for confirmation.
Once the you are satisfied with the result, you can check the vehicle against the national registry and search for more registration information. This indeed does check the car against the Norwegian car registry (Statens vegvesen) show if the vehicle is approved for going on the European roads (EU-godskjenning). Also least of our concerns!
Actual data from Statens VegvesenCrawling and datamining data from external sources
Now, after confirming and inserting car data into our system. We need to identify the vehicle type and compare with our collected data in our backend system. However, identify the care is a simple process that doesn’t need any text input from the user. One picture will do while the AI Builder will take care of identifying the type of the vehicle and insert it into our backend system.
Vehicle plate identification flow (calls another flow through HTTP)AI Builder made as an endpoint (all AI Builder models and flow are on separate environment, as AI Builder can’t be included in a solution for deployment)
We are using a mix of built-in and custom AI models to achieve efficiency and productivity in an innovative way.
When first presenting our idea, the Hack Sparrows shrouded it in mystery. A battle tactic as old as the kraken herself. In the words of Sun Tzu: Never let you enemy know your plan, at least if you have one. Which we most certainly have…
Initial sketch of what The Hack Sparrows wants to achieve.
The Traveling Pirate
Ever heard of the traveling salesman problem? It is a mathematical problem of route optimization: A salesman travels form A to B. In between he has many opportunities for trade. How can we optimize the route in terms of monetary value for the salesman: Which patch gives most bang for the buck, or most buck for the step?
The Bare Bones
We are no salesmen, we are pirates! And based on the presentation many of us are after the same treasures, leaving the best planned pirating rout the winner of pirates. The pirate king!
Our cleverly designed and thoroughly QA’d Architecture (do not double check) shows how we will use state of the (last century) art to enable better piracy.
System diagram showing what the user sees and what the system does. Proudly made with a thieved licenses from our employer. Yarr! (we have license, we just act like we stole them)
On the seven seas the captain has access to a web interface. This web interface uses a Function App to talk to two main services:
We data mine the Barenswatch.io service, which keeps track of all commercial vessels on the seven seas, including the Privateers. And store them in our Data Verse,
The Data Verse updates and stores the crawled data to keep track off ship movement, ongoing raids and opportunities (including flagging Privateers as hostile)
Outside the web interface we use tactile feedback systems powered by Arduino (or Our Raspberry Pi is we can get it working) to warn the user of dangers or opportunities.
Henrik creating the Data Verse tables for the power platform that will give power to platform, empowering the pirats to pirate commercial platform vessels