
Backend Development Roadmap/Knowledge Path

Personal collective of ideas, thoughts and notes

As a creator and contributer to open source projects I am often torn as how to license my projects to encourage the greater community to contribute and have creative freedom with a project. However I would still try to ensure that I maintain control over as much of the intellectual property (IP) or business value as possible – especially if this value is what I have in place as a revenue generator and would enable me to continue development of the project.
Sentry – which is a great error logging/monitoring tool – recently evaluated their open source licensing and had some reasonable goals in mind:
Due to the weight on the last point, Sentry decided to change their license from BSD-3/Apache-2.0 to BSL.
This is a basic and simplistic implementation of RSA in JS which used to understand the implementation/math required for encryption/decryption and opportunities for hacking RSA using Quantum Computing.
If you are looking for a nice article on RSA and a small practical example, this might be helpful https://simple.wikipedia.org/wiki/RSA_algorithm
Hacking RSA using Prime Number Factorization
Hacking RSA uses the numeric public exponent from the public key and tries to calculate its largest common multiple factors (p and q) – from those two numbers you can calculate the Private Key. Using traditional computing to hack “small” RSA public keys can be done with a few modern algorithms, including the currently fastest General Number Field Sieve.
A nice library for General Number Field Sieves is http://cado-nfs.gforge.inria.fr/
You can use this site to factor a prime without having to install anything https://asecuritysite.com/encryption/factors. Enter the Public Key which gets generated by the code (should be < 100 bits for the site to be able to factor)
npm install
Edit the index.js file if you would like to edit the size or message being encrypted:
// Message
const message = 'Hello';
// Generate RSA keys (bits), max is 232 digits (768 bits)
const keys = RSA.generate(80);
Run the code
npm run start
Public Key Exponent (e):65537
Random Prime (p): 798000088811
Random Prime (q): 563631878177
Totient (lcm of (p-1)(q-1)): 224889144420297550405280
-------------------------------------------------
Keys
Public Key (n = p * q): 449778288841956732777547
Public Key Length: 24 digits (79 bits)
Private Key (d = e multiplicative inverse (totient)): 210473481577786144493313
Private Key Length: 24 digits (78 bits)
-------------------------------------------------
Message: Hello
Encoded: 72101108108111
Encrypted (c = encoded message (m) ^ e modulo n): 426078873740860671226694
Decrypted (m = encrypted message (c) ^ d modulo n): 72101108108111
Decoded: Hello
Correct? true
Late last year I wrote a small paper (for my MBA program) and developed an accompanying proof of concept (Javascript/Node/P2P) on the implementation of blockchain in the retail or food distribution network around protecting goods from food fraud.
Source Code: https://github.com/paschmann/blockchain_origin
Abstract
Food fraud is a crime which has the potential to negatively affect the brand image, financial resources and impact multiple parties in the supply chain paradigm of food distribution. The ability to track and trace the origin and touch points of products throughout the network is imperative to limit the impact caused by a food fraud incident or a food safety issue. Blockchain has the potential to disrupt multiple industries by providing a shared and trusted ledger of transactions which no single company controls. One practical application of blockchain is utilizing the platform as a static register – a distributed database for storing reference data. In this paper I will describe a technical implementation of a blockchain in a practical scenario which shares the details and a proof of concept of a food origin scenario. The implementation will share a simplistic JavaScript application of a digital ledger based blockchain allowing manufacturers to register data on the food origin in the static registry and vested parties the ability to augment and view the data for the purpose of traceability and accuracy.

Rasa is an open source machine learning framework to automate text-and voice-based conversations.
Rasa UI is a web application built on top of, and for Rasa. Rasa UI provides a web application to quickly and easily be able to create and manage bots, NLU components (Regex, Examples, Entities, Intents, etc.) and Core components (Stories, Actions, Responses, etc.) through a web interface. It also provides some convenience features for Rasa, like training and loading your models, monitoring usage or viewing logs.
I developed Rasa UI to help me manage my bots as well as creating and managing the training data. The app is developed on NodeJS, and uses a simple SQLite DB for persistence (previously PostgresDB).
I had a nice Live Studio interview with Britt Womelsdorf at the 2018 SAP TechEd event chatting about the SAP Cloud Platform SDK’s. Check it out here:
(The video has since been taken down, but here are a few photos).



The general script below is what I planned to use:
1.) Paul: Quick introduction …
2.) Paul: “With mobility being a key priority for organizations, it seems like SAP has responded to this by delivering some important user experience frameworks over the past 7 or 8 years, including SAPUI5, OpenUI5, Apple iOS SDK and now the Android SDK, why do you think these are important to organizations?”
Britt: Mobility high-level, IT department, enterprise and organizational level opportunities
Mentoring, coaching and sharing is an opportunity I am always willing to go the extra mile for. When one of my friends Sihma from Grand Valley State University (a fellow SAP mentor and part of the SAP University Alliance Program) asked me to do a personal presentation for their Computer Science students, I took a untraditional approach and shared the presentation below.
Student-@-GSVUDownload
You must be logged in to post a comment.