Pirates Enterprise Resource Planning (PERP) – final

PERP is an ERP system(s) made easier for Pirates and for the mass. It is built from 4 subsystems.

PFM – Pirate Fleet Management

Management of pirates vehicles fleet. It involves the coordination and management of all activities related to vehicles, including enlisting, licensing, deployment (for looting), and tracking.

POM – Pirate Operations Management

Managing the various tasks and processes involved in pirating. This is where the leaders of the organisation can make intelligent data driven decisions and engage their fleet with looting.

PRS – Pirate Reporting System

Covers different reporting needs such as live location reporting of pirates, enemies and loot (target) locations, as well as vehicle, pirate statistics as well as reports on previous raids. It also includes the results of our predictive models to be able to visually see which targets would be best to attack.

PRM – Pirate Resource Management (HR)

The system helps in automating and streamlining pirates’ processes, such as recruiting, onboarding and performance management. The goal is to increase efficiency and reduce manual labor, as well as provide a single source of truth for employee data and records. It stores information regarding skills, pirates in their crews, new hires and gender distribution.

Application Workflows

Reporting workflow

For the reporting layer we gather data from different sources such as AI Builder outputs which again is getting info from Statens Vegvesen. This data as sent to Dataverse which is then collected from Power BI via the Dataverse Connector.

We also have an Azure AutoML classification model which we are calling from Power BI to do predictive analytics on incoming vehicle data. All these sources are the basis of our reporting in Power BI and hence, contributes to make well informed, data driven decisions for the captains in our fleet.

Enemy location reporting workflow

In this workflow, we describe the how the process of aquiring enemies live location is done.
By tricking the enemy into thinking they downloaded a dating app, we are actually pinging their location and storing it in our CRM system.
Technical:
App is a native android app developed in Xamarin. Location report is done once every 5 seconds and it contains users Latitude and Longitude.

Vehicle enlisting workflow

In this workflow, we describe how we enlist vehicles to our fleet. User opens the Canvas Application and takes a photo of possible addition to fleet vehicle. Using Azure Machine Learning, we identify make and model of the vehicle. These two datapoints are sent to an Azure API which is on top of Technical Vehicle Database that contains technical information about the vehicle.
Using another Azure Machine Learning algorithm we recognize the license plate of the vehicle. The license plate is sent to Statens Vegvesen API to retrieve the legal information about the vehicle.
Both datasets (technical information and legal information) is then shown to the user of the canvas app and he decides to store them in the CRM.

Notification of target attack workflow

In this workflow, we describe how friendly pirates on the field are notified of doing their job. From our Model Driven App (CRM), administrator clicks the “attack” button, and a call is made to an Azure Function API. This then sends a notification to all friendly pirates in the Teams App.

In this workflow, we describe how the attack is actually done

Once the pirate captain receives the notification in the Teams app, he accesses his Canvas app and approaches the target. From the CRM portal, administrators are able to see live data how friendly pirate is moving and enemy pirate in regards to each others position.

Future improvements:

-Embedded reports in the model driven app to limit the different system pirates & captains needs to learn

-Collaborative loot system to build relations with other crews could be created from the mapping systems by including allies in maps and more raids happening

-Pirate dating app

-HR system for gathering LinkedIn information from prospective new pirates and storing it in our database for reporting and easy recruitment

The Orange Nasty Hackers

In simple words, we though that this below wasn’t a very sustainable solution!

We though we could have used a more sustainable solution using our mobile phones and Power Apps. Anyone can get location coordinates from the mobile app in Power Apps. Though, Power Apps canvas doesn’t have a looping mechanism (a function) that can keep sending location coordinates. The hack here is to use a timer control and call the location tracking service every 5 seconds. and you end end up with a tracking app in your mobile 🙂

Once we are in position, the admiral click start loot and the tracking starts right away.

Pretty simple but nasty! 😉

It even works on the operations management tracking live map.

Dash it out – right now Matey!

Arrr matey! Welcome to the world of reporting on port ships, pirates and fleets!

As ye might already know, Power BI is a powerful data visualization tool that can help ye track and monitor yer fleet, port ships and even pirate activities. Ye can easily gain insights into yer fleet’s performance, inventory & pirate attacks, and so this is what we have done as shown in the images below.

HRGhh report
Ships O’hoy Fleet Management report


Arrr matey, we’ve created not just 4 graphs, but 4 report pages to address some of the various business needs a pirate may face on the high seas. Thar be a pirate HRGhh report, a Ship o’hoy report for fleet management, a map displayin’ our location and foes in real-time usin’ the DirectQuery capabilities in Power BI, and lastly a raid report utilizin’ Azure ML to predict which pirate ships we may loot successfully. This’ll aid us in makin’ informed decisions about the future of our fleet and help us chart our next course.

Below be a snapshot of the real-time, allowin’ captains and pirates to collaborate from different ports. This way the captain can signal which pirate to attack or stand down based on their proximity to the enemy, makin’ the collaboration smoother, even from a distance. This map be based on the location data from other ships and our own (Raspberry Pi) and displays the last recorded location through longitude and latitude.

When it be comin’ to pirate raids, there be other booty that be worth a king’s ransom, and that be understandin’ the chances of a successful pillage. To be doin’ this, we scallywags created a simple map usin’ Azure ML that be givin’ us the lay of the land, predictin’ our loot based on the target’s worth such as their ship’s maker, the distance they’ve sailed, the power of their engine, and their current state.

We be feedin’ th’ AutoML model int’ th’ Power BI report, savvy? This be allowin’ us t’ do predictions on new data ’bout our enemies, which we be displayin’ in our report fer th’ captains t’ make well informed decisions, specially when coupled with th’ map. By clickin’ on a license plate number as ye see below, th’ captain will be taken t’ our model driven app and shown more information ’bout th’ possible target, aye aye!


Yarrr! That’s a wrap matey!

Thieving the solutions with Orange Bandits

We decided to ingest information from Norwegian National Registry of Vehicles (Statens vegvesen) in order to limit the information Pirates need to input when onboarding the vehicle in our app:

We can use this information to get the Make, model, registration data, technical check, etc… Basically, anything that is needed to be known to thieve the vehicle! And this is just by query by registration plate.

Prey on the weak and the lonely – in a very Native Way

All is fair in love and war, and we know the pirate motto:

Also, me every lunch at this ACDC

So, being the scumbags that we are, we have decided to prey on the lonely and thirsty enemy pirates finally coming home after a long voyage.

Step 1: Enemy pirate downloads are professional grade, completely inconspicuous app called “Clap of Booty”

nice, right?

Step 2: After opening the app, user is prompted to share the phone location (android.permission.ACCESS_FINE_LOCATION)

Step 3: User is greeted with a Steve-Jobs-would-be-jealous level of design, where they get to choose the pirate they like.

Apple if you are recruiting, we are currently unavailable

Step 4: And all the while they are liking the handsome dogs and wenches of the seven seas (or not, beauty is a spectrum or whatever kids say these days), the app is secretly logging their live location every 5 seconds to our CRM database.

in case you are a diagram nerd like us

Okay okay, you love it…but why??

Well this data is stored in our CRM database and later shown on Model Driven App dashboard, so our smart pirate managers to make a more informed decision on which target to attack…but you will read more about that later in another blog post.

Keep on pirating!

Stairway to Heaven for Orange Bandits

Leveraging of Microsoft API’s allows developers to quickly get started witch achieving meaningful results in the development process.

Here is a quick summary of API’s we used, that are delivered by Microsoft:

  • Dataverse REST API:

Used as backbone of our systems integrations, main data ingest and source point. It is used in PowerBI to expose data to report:

  • Microsoft Bot API

It is used in sending notifications to Teams App (more on that in A Pirate Call to Arms! | Arctic Cloud Developer Challenge Submissions (acdc.blog)!).

  • Machine Learning Services API

ML REST API is used in PowerBI report to show the information about potential pirate looting activity outcome, based on information about the potential looting target:

Microsoft Identity platform (Azure Active Directory Authentication)

call from .NET code
and as it’s seen in Fiddler

This vehicleApi is on top of microsoft sql server database which is providing vehicle data based on MachineLearnings recognition of a make of a car. In order for the api to work, it connects to Azure Keyvault – and in order to access it, a call to microsoft Azure Ad Authentication API is made.

A Pirate Call to Arms!

Captain John Phillips, captain of the Revenge, set a code for his men in 1724. Under this Pirate Code we find the following law:

VII. That Man shall not keep his Arms clean, fit for an Engagement, or neglect his Business, shall be cut off from his Share, and suffer such other Punishment as the Captain and the Company shall think fit.

Consequently, it is critical that each and every pirate is consistently up to date on fleet maneuvers, target acquisitions, and mission engagements in order to deliver efficient value to both themselves and their fleet.

When the Pirate Control Operations Center completes a target analysis process and designates a new valid target, every single Pirate Captain is now notified about the new raid in real-time.

To create this business value, we coded a Custom App for MS Teams, in the form of a Notification Bot. This Custom App utilizes Azure Function Apps and Adaptive Cards in order to retrieve data parameters:

The general codebase for the Custom MS Teams App Notification Bot
The setup of cloud resources in Azure for a fully functioning Function App Teams Bot

The Notification bot was then uploaded and published through Microsoft Teams Admin Center, along with related Setup Policies and Permission Policies. Every single Pirate Captain will now see this Notification bot automatically sideloaded into their Teams UI upon sign-in.

The Pirate Control Operations Center exists mainly in Power Apps. The Pirate Control Center Operators have a full overview over possible targets, and makes decisions on whether a target should be attacked or not, by clicking the cannon icon shown below:

At this point, the Azure Function responsible for providing data to the Notification Bot is triggered, and pings every Pirate Captain through their personal Teams accounts with related data, and a button which links to a location pin on Google Maps:

The existential risk explained

Hi Nick, I mean jury 😀

We strongly believe that we have used AI in an innovative way and here are the reasons why. In the fleet enlisting app, we are inserting vehicles into our system with out the need to punch a single character. An AI model has been trained to recognize vehicle type based on picture taken in the app.

Once the app recognizes the picture of the vehicle, the app will communicate with a external database to collect detailed information about the vehicle and insert the data into our fleet management system.

Use case flow
AI Builder custom model
Vehicle tags (objects to detect)
Training images

The Orange Bandits’ fleet tracking

The Orange Bandits’ operation center is need for a mechanism to track vehicles to get more insights about ongoing looting operations. A raspberry pi with a tracking device is the first solution that comes in mind!

Yes, it is mobile! With a power bank it is!

Though, this is not a straightforward solution. Some Python code is due at this point. Unfortunately, The Orange Bandits owns an old Raspberry pi with an old SD card that doesn’t tolerate new updates; not retro enough! Well, we had to use an old version of Python to get this to work!

Hipster and retro 😉 😉
Oh yeah! That’s retro

Embedding a device that flip bytes is not an easy ride. We need to come with innovative ways to to keep it online and to keep the GPS tracker in the “Chinese” satellite signal range!

Here is proposed solution to keep the device connected
Here it is spitting location data (longitude and latitude)