Working with Bluetooth for iOS Applications

I recently purchased a Concept2 rower and started doing some indoor rowing to change up my workout routines. I was considering developing a live rowing platform to compete with friends and make the workouts more interactive. It turned out there were already a few options on the market, so I shelved the idea.

But, since the Concept2 allows 3rd party connectivity, I still was curious how integration, discovery, and notifications would work from an iOS device. I was able to find a nice SDK, but it was considerably outdated (5 years) so I decided to use that as a foundation and port the application to Swift 5 and get it working for anyone else interested in developing a rowing app for iOS. read more

GE Healthcare: Design Thinking in the NICU

I have been exposed to design thinking in a variety of ways over the past 13 odd years. From conferences, startups and projects – I have used the framework to develop and build services, software and hardware which incorporates one of the most important elements in the design: empathy.

Empathy ensures that the designers, developers and creators of these products “walk a mile in their shoes” and put the users at the center of the development lifecycle rather than technology, limitations or costs.

This TedX talk is a nice example of empathy in something critical that all of us can in some shape or form relate to, which is being born. The video centers around the design thinking process which went into the design and development of Neonatal Intensive Care Units and the equipment which nurses and parents have to deal with when a child is born prematurely. It is a great example of how empathy was an integral part of the process from start to finish. read more

#IBM Quantum Challenge

I just got finished submitting my last optimization circuit for the 2020 IBM Quantum Challenge. It was a hectic 4 days of spare time working through their challenges but very rewarding. It’s amazing what a small concept like a “Challenge” can do for your motivation to understand more about a technology or field, but to me the size of Quantum Computing community seems to have, all of a sudden, grown larger.

There have been over 5 billion circuits run against IBM Q, 1,745 participants, over 1000 people in a Slack channel who were sharing, bantering and encouraging their peers and a considerable amount of learning about circuit optimization. If I had only brushed up on my linear algebra I think I would have done a little better 😉 read more

Side Project: qubit²

Over the past couple of years I have had a keen interest in quantum computing and the optimism of its benefits over traditional computing methods. I have read countless papers, articles and spent a considerable amount of time deciding how I would explain it to a 5 year old.

ELI5: A normal computer is like a light switch is either on or off. A quantum computer is more like a dimmer switch, it can be partially on, or partially off.

It’s overly simplistic but gives a simple understanding of the potential states that the device can be in. I also wonder how I would explain QC to friends or technology friends. Trying to find the right words that quantify both its elementary simplicity and its quantitative complexity is difficult, especially when you yourself don’t fully grasp it. But like other technologies, the best way to learn is by doing … experimenting, researching and proofing. Leading to your own understanding and comprehension of existing anecdotes and theories or new ones. read more

A simplistic Node.js implementation of RSA encryption/decryption

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)

Installation

npm install

Usage

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

Example Output

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 read more

Plaid

Plaid is a company in the financial technology, or more commonly known as the “fintech” space, which was founded in 2013, pivoted sometime in 2014 and was purchased by Visa in January 2020 for $5.3 billion dollars.

Plaid was founded by two entrepreneurs who set out to develop a consumer app in the budgeting and account reconciliation field. A mobile or app-based version of Quicken or Intuits Quick Books where users could provide their credit cards and bank account and the interface would allow them to get some insights into their spending habits and create budgets and reports to better manage their personal finances. The startup entered and won a prestigious grand prize award during a TechCrunch Disrupt hackathon in New York in 2013 with their application which at that time was called “Rambler”. During the development process the founders recognized that one of the biggest challenges to building “Rambler” was the bank connectivity component – it was time consuming and resource intensive to develop a solution which connected to each financial institution. The duo wanted their application to connect to the majority of US banks and this required writing code which would need to securely connect and consume the banks exposed API’s for retrieving account information, transaction reports and transaction details. This development exercise was required for each new financial institution the company wanted to include in their app. read more

Open source project & research paper: Blockchain proof of concept

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. read more

Side project: Golfedout.com

Like a lot of my side projects, golfedout.com was built out of a personal need. Golfedout is intended to track the variety of golf courses I have played over the last 6 or 7 years since I took up the game a little more seriously. When I started the project it was a simple list of courses, and then evolved into a more elaborate application which allowed you to follow other golfers, partake in a leader board, view course details such as architects or addresses and I also added a gamification aspect. Another aspect I was interested in, is how many of the top 100 golf courses have I played? How many PGA tour courses have I played? In the end I believe I may have made golfedout.com considerably more complex than others might have needed. If you are a avid golfed or interested, here is a link to my golfedout.com profile: https://golfedout.com/profile/rangerat read more