Google Cloud Next '19

Mike's Notes

My notes on discovering more about GCP.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

11/05/2025

Google Cloud Next '19

By: Mike Peters
On a Sandy Beach: 09/04/2019

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

Google is holding a 3-day developer conference Cloud Next '19 in San Fransisco April 9-11. It started today at 4am NZ time.

6 streams are running at the same time, covering a variety of topics.

All of the conference sessions are available live-streamed and also on-demand. I'm watching all the conference sessions.

Here is a playlist of all sessions.


I'm following.

  • Running on cloud, on-premise and multi-cloud.
  • Data storage.
  • Avoiding vendor lock-in.
  • AI strengths and weaknesses.
  • Security.
  • Product demos.
  • Google Cloud road map.

The conference and many previous conferences are also available on YouTube.

There were 32 recorded sessions from the first day alone, so 90 hours of watching are coming up.

Multi-tenancy

Mike's Notes

Pipi 6 was built to support multi-tenancy. Deployments can be sole-tenancy or multi-tenancy, and databases use sharding.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

18/04/2025

Multi-tenancy

By: Mike Peters
On a Sandy Beach: 06/04/2019

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

I first read about sharding in an article about Xero. Pipi 4 didn't use sharding.

"The term "software multi-tenancy" refers to a software architecture in which a single instance of software runs on a server and serves multiple tenants. Systems designed in such a manner are often called shared (in contrast to dedicated or isolated). A tenant is a group of users who share common access with specific privileges to the software instance. With a multi-tenant architecture, a software application is designed to provide every tenant with a dedicated share of the instance - including its data, configuration, user management, tenant individual functionality and non-functional properties. Multi-tenancy contrasts with multi-instance architectures, where separate software instances operate on behalf of different tenants." - Wikipedia

Software as a Service

Mike's Notes

My exploration of Software as a Service (SaaS)

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

11/05/2025

Software as a Service

By: Mike Peters
On a Sandy Beach: 05/04/2019

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

"Software as a service (SaaS /sæs/ ) is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. It is sometimes referred to as "on-demand software", and was formerly referred to as "software plus services" by Microsoft. SaaS is typically accessed by users using a thin client, e.g. via a web browser. SaaS has become a common delivery model for many business applications, including office softwaremessaging software, payroll processing software, DBMS software, management software, CAD software, development software, gamificationvirtualization,  accountingcollaborationcustomer relationship management (CRM), Management Information Systems (MIS), enterprise resource planning (ERP), invoicing, human resource management (HRM), talent acquisitionlearning management systemscontent management (CM), Geographic Information Systems (GIS), and service desk management SaaS has been incorporated into the strategy of nearly all leading enterprise software companies." - Wikipedia

i18n - Internationalisation and Localisation

Mike's Notes

This project is for people who speak different languages and write in various directions (left-right, right-left, vertical).

It is possible, however, how well that works with AJAX has yet to be discovered.

Resources

  • Resource

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

11/04/2025

i18n - Internationalisation and Localisation

By: Mike Peters
On a Sandy Beach: 04/04/2019

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

Useful information:

InfoQ Weekly Architects Newsletter

Mike's Notes

InfoQ is among the best.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library > Subscriptions > InfoQ
  • Home > Handbook > 

Last Updated

11/05/2025

InfoQ Weekly Architects Newsletter

By: Mike Peters
On a Sandy Beach: 03/04/2019

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

InfoQ must be the best website I have come across in many years for broad vendor and language-neutral coverage on;

  • Software development
  • News
  • Videos
  • Books
  • Articles
  • Videos with transcripts
  • Podcasts
  • Free guides (PDF)
There is also great conference coverage of QCon Conferences, with all speakers' presentations available. The presentations are very deep.

It is well worth subscribing to. I get a weekly Architects Newsletter, which is a concise digest of the topics I'm following, and there is no hard sell.

Every week, I get links to download free O'Reilly Media software books.

This resource has probably been the key ingredient in expanding my horizons about what is possible to build today over the last six months.

Quanta Magazine - Cryptography That Can’t Be Hacked

Mike's Notes

  • Follow up on Project Everest (Microsoft Research) 
  • Look for ongoing test results

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library > Subscriptions > Quanta
  • Home > Handbook > 

Last Updated

11/05/2025

Cryptography That Can’t Be Hacked

By: Kevin Harnett
Quanta Magazine: 02/04/2019

Researchers have just released hacker-proof cryptographic code - programs with the same level of invincibility as a mathematical proof.

Programmers are human, but mathematics is immortal. By making programming more mathematical, a community of computer scientists is hoping to eliminate the coding bugs that can open doors to hackers, spill digital secrets and generally plague modern society.

Now a set of computer scientists has taken a major step toward this goal with the release today of EverCrypt, a set of digital cryptography tools. The researchers were able to prove — in the sense that you can prove the Pythagorean theorem - that their approach to online security is completely invulnerable to the main types of hacking attacks that have felled other programs in the past. “When we say proof, we mean we prove that our code can’t suffer these kinds of attacks,” said Karthik Bhargavan, a computer scientist at Inria in Paris who worked on EverCrypt.

EverCrypt was not written the way most code is written. Ordinarily, a team of programmers creates software that they hope will satisfy certain objectives. Once they finish, they test the code. If it accomplishes the objectives without showing any unwanted behavior, the programmers conclude that the software does what it’s supposed to do.

Yet coding errors often manifest only in extreme “corner cases” - a perfect storm of unlikely events that reveals a critical vulnerability. Many of the most damaging hacking attacks in recent years have exploited just such corner cases.

“It’s some cascading failure, and it’s hard to systematically find because [the events leading to it] are individually all very unlikely,” said Bryan Parno, a computer scientist at Carnegie Mellon University who worked on EverCrypt.

By contrast, Parno and his colleagues have specified exactly what their code is supposed to do and then proved it does that and only that, ruling out the possibility that the code could deviate in unexpected ways under unusual circumstances. The general strategy is called “formal verification.”

“You can reduce the question of how code behaves into a mathematical formula, and then you can check if the formula holds. If it does, you know your code has that property,” said Parno.

PHOTO: Karthik Bhargavan
Karthik Bhargavan, a computer scientist at Inria in Paris, has collaborated on an approach to online security that is provably invulnerable to most types of hacking attacks.


Courtesy of Karthik Bhargavan

Because it’s practically impossible to formally specify the function of complex software such as a web browser, researchers have instead focused on programs that are both critical and amenable to being defined mathematically. EverCrypt is a library of software that handles cryptography, or the encoding and decoding of private information. These cryptographic libraries are innately mathematical. They involve arithmetic with prime numbers and operations on canonical geometric objects like elliptic curves. Defining what cryptographic libraries do in formal terms is not a stretch.

Work on EverCrypt began in 2016 as a part of Project Everest, an initiative led by Microsoft Research. At the time — and still today — cryptographic libraries were a weak point in many software applications. They were slow to run, which dragged down the overall performance of the applications they were a part of, and full of bugs. “I think there’s been some realization from app developers that there’s a disaster waiting to happen,” said Jonathan Protzenko, a computer scientist at Microsoft Research who worked on EverCrypt. “The software world is ripe for something new that does provide [EverCrypt’s] guarantees.”

The main challenge to creating EverCrypt was developing a single programming platform that could express all the different attributes the researchers wanted in a verified cryptographic library. The platform needed the capacity of a traditional software language like C++ and the logical syntax and structure of proof-assistant programs like Isabelle and Coq, which mathematicians have been using for years. No such all-in-one platform existed when the researchers started work on EverCrypt, so they developed one — a programming language called F*.  It put the math and the software on equal footing.

“We unified these things into a single coherent framework so that the distinction between writing programs and doing proofs is really reduced,” said Bhargavan. “You can write software as if you were a software developer, but at same time you can write a proof as if you were a theoretician.”

PHOTO: Bryan Parno
Bryan Parno, a computer scientist at Carnegie Mellon University, uses techniques from mathematics to prove that programs don’t have bugs.

Lauren Demby / Lauren Renee Photography








Their new cryptographic library provides a number of security guarantees. The researchers proved that EverCrypt is free of coding errors, like buffer overruns, that can enable hacking attacks — in effect, provably ruling out susceptibility to all possible corner cases. They also proved that EverCrypt gets the cryptographic math right every time — it never performs the wrong computation.

But the most striking guarantee EverCrypt makes has to do with an entirely different class of security weaknesses. These occur when a bad actor infers the contents of an encrypted message just by observing how a program operates.

For example, an observer might know that an encryption algorithm runs just a little faster when it adds “0” to a value and just a little slower when it adds “1” to a value. By measuring the amount of time an algorithm takes to encrypt a message, an observer could start to figure out whether the binary representation of a message has more 0s or 1s in it — and eventually infer the complete message. “Somewhere deep in your algorithm or the way you implement your algorithm you are leaking information, which can completely defeat the purpose of the entire encryption,” said Bhargavan. Such “side-channel attacks” were behind several of the most notorious hacking attacks in recent years, including the Lucky Thirteen attack. The researchers proved that EverCrypt never leaks information in ways that can be exploited by these types of timing attacks.

Yet while EverCrypt is provably immune to many types of attacks, it does not herald an era of perfectly secure software. Protzenko noted there will always be attacks that no one has thought of before. EverCrypt can’t be proven secure against those, if only for the simple reason that no one knows what they will be.

In addition, even a verified cryptographic library has to work in concert with a host of other software, like an operating system and many common desktop applications, that are typically unverified, and likely will be for the foreseeable future. “We’re not targeting something as complex as a word processor or a Skype client,” said Protzenko, because it’s not obvious how you’d capture in a formal language what they’re supposed to do. “It’s hard to think about the intended behavior of those things.”

Because vulnerabilities in adjacent, unverified programs can undermine a cryptographic library, Project Everest aims to surround EverCrypt with as much verified software as it can. The overarching goal of the initiative is to complete a fully verified implementation of Hypertext Transfer Protocol Secure (HTTPS), the software that secures most web communication. This will involve half a dozen individual software elements like EverCrypt, each of which is formally verified to work on its own and all of which are formally verified to work together.

“Project Everest is trying to build out a larger stack of software that’s all been verified and verified to work together. Over time we’re hoping the frontier [of verified software] will continue to grow,” said Parno."

Ontology

Mike's Notes

My first steps into the world of ontologies.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 
  • Home > pipiWiki > Engines > Ontology Engine

Last Updated

11/05/2025

Ontology

By: Mike Peters
On a Sandy Beach: 01/04/2019

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

"In computer science and information science, an ontology encompasses a representation, formal naming, and definition of the categoriesproperties, and relations between the conceptsdata, and entities that substantiate one, many, or all domains.

Every field creates ontologies to limit complexity and organize information into data and knowledge. As new ontologies are made, their use hopefully improves problem solving within that domain. Translating research papers within every field is a problem made easier when experts from different countries maintain a controlled vocabulary of jargon between each of their languages.[1] 

Since Google started an initiative called Knowledge Graph, a substantial amount of research has gone on using the phrase knowledge graph as a generalized term. Although there is no clear definition for the term knowledge graph, it is sometimes used as synonym for ontology.[2] One common interpretation is that a knowledge graph represents a collection of interlinked descriptions of entities – real-world objects, events, situations or abstract concepts.[3] Unlike ontologies, knowledge graphs, such as Google's Knowledge Graph, often contain large volumes of factual information with less formal semantics. In some contexts, the term knowledge graph is used to refer to any knowledge base that is represented as a graph." - Wikipedia

Roger Sessions

Mike's Notes

  • A linear increase in functionality and dependency leads to a logarithmic increase in complexity.
  • The rise in complexity and risk of failure in big IT projects is a power law.
  • Partition and simplify to reduce complexity
  • Partitioned chunks of functionality are then suitable for Agile teams
  • The maths is sound
  • Puts maths behind what Martin Fowler writes
  • Not in contradiction with Zachman's ontology
  • Complements Google reWork study results
  • Training is expensive, but it would be worth it

Resources

References

  • Simple Architectures for Complex Enterprises. (2008) by Roger Sessions

Repository

  • Home > Ajabbi Research > Library > Author > Roger Sessions
  • Home > Handbook > 

Last Updated

30/05/2025

Roger Sessions

By: Mike Peters
On a Sandy Beach: 30/03/2019

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

From the website ..."Roger Sessions is the world's leading expert in IT Complexity Analytics. He has been interviewed by ComputerWorld, CIO, Information Age, and Information Week, among others, and is often quoted by Gartner and other industry pundits. For more than a decade, his books and white papers have defined the field of IT Complexity Analytics. He has been honoured as a Fellow of the International Association of Software Architects for his many contributions to the field. His SIP methodology is the gold standard for Complexity Management, and is the only approach to simplification that has ever been granted a U.S. patent."

Training is available at RogerSessions.com

Cliff Richardson - A Pattern Language for Microservices

Mike's Notes

Chris Richardson has a useful outline of options to choose from when considering using Microservices.
  • Good diagrams
  • Has written a book
  • Offers training
  • Has skin in the game

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library > Authors > Chris Richardson
  • Home > Handbook > 

Last Updated

11/05/2025

Cliff Richardson - A Pattern Language for Microservices

By: Mike Peters
On a Sandy Beach: 28/03/2019

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

"Chris Richardson is a developer and architect with over 20 years of experience. He is a Java Champion and the author of POJOs in Action, which describes how to build enterprise Java applications with POJOs and frameworks such as Spring and Hibernate. Chris is the founder of the original CloudFoundry.com. He now spends his time providing microservices consulting and training and working on his third startup, Eventuate, Inc. Chris has a computer science degree from the University of Cambridge in England and lives in Oakland, CA."

Summary

From the home page ..."Microservices - also known as the microservice architecture - is an architectural style that structures an application as a collection of services that are

  • Highly maintainable and testable
  • Loosely coupled
  • Independently deployable
  • Organised around business capabilities.

The microservice architecture enables the continuous delivery/deployment of large, complex applications. It also enables an organization to evolve its technology stack."

Contents

Application architecture patterns

Decomposition

Deployment patterns

Cross-cutting concerns

Communication style

External API

Transactional messaging

Service discovery

Reliability

Data management

Security

Testing

Observability

UI patterns

Presentations

Next on List is DevOps

Mike's Notes

A note to myself as I ponder what is next to do.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

18/04/2025

Article

By: Mike Peters
On a Sandy Beach: 10/03/2019

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

Having completed a crash course in DevOps over the last few months, the next task is setting up DevOps as part of the stack before I go any further.

So far, I haven't even needed to use formal version control with the refactoring. Over the last 18 months, it was pretty much "snip snip snip" into microservices with a bit of a tidy-up along the way. All looks good, and it works roughly.

But it is a very different story now, getting it ready to deploy to the cloud so people can use it.

Criteria

What am I looking for when setting up DevOps?

  • Version control
  • It has to scale, be robust and reliable
  • Automated builds
  • Automated testing
  • Automated deployment to multiple cloud environments
  • Automated everything
  • Continuous development
  • Great for teams and remote developers
  • Frequent small commits to the main branch and test
  • It can also generate documentation
  • Great reporting
  • Great integration with other tools via open API
  • Can include Database versioning
  • Continuous Integration (CI)

Languages

It must work with;
  • Java
  • Python
  • Julia
  • SQL
  • CFML
  • XML/XSD
  • JSON/YAML
  • JavaScript
  • HTML5
  • CSS
  • and more.

Options

I prefer to go open-source, with a command line and a good GUI available, and be well-documented. So what is out there?