Thought Architect

A set of patterns for developers and architects

The cloud adoption patterns to be listed here represent the most common ways organizations move from traditional operations into cloud computing. They contain the hard lessons learned by those who went before.

A pattern is a solution to a problem in a context.

Cloud-Centric Design

  • Context. You have the ability to build a new application to solve your requirements.
  • Problem. How to design your application to take the maximum benefits of all the features of the cloud for the best future-proofing and agility?
  • Solution. Implement a cloud-centric design of your application to run natively on a PaaS environment.

There are several cloud-centric…

Thought Programmer

Don’t Reinvent The Wheel

In fact, we always use the same solution for similar problems. For example, we usually reuse our code written for another project whenever a similar function is needed — it is an example of reuse in software development.

Software reuse is the process of implementing or updating software systems using existing software assets.

What is Reuse-based software engineering?

Reuse-based software engineering is a software engineering strategy where the development process is geared to reusing existing software.

Application system

The whole of an application system may be reused either by incorporating it without change into their system or by developing application families.

Subsystem, Component, and Module

Components of an application from sub-systems…

Software Engineering

3 Roles, 4 Ceremonies, and 3 Artifacts

Why is Scrum so popular is because it is very simple. You only ought to think of 10 main terms: 3 roles, 4 ceremonies, and 3 artifacts.

Three Roles

Job titles are non existent in Scrum. There are three roles: Product Owner (PO), Scrum Master (SM) and Development Team.

Product Owner

The Product Owner is responsible for holding the vision for the product.

  • representing the business
  • representing the customers
  • owning the product backlog
  • prioritizing stories
  • creating acceptance criteria for stories
  • be available to answer team members’ questions

Scrum Master

The Scrum Master is responsible for the process who is not only a scrum both expert and…

Data Science

Measure the performance of our model

Let assume that we’re working on a simple classification problem using deep learning. We gave the picture (blueberry) as an input to the model and get our prediction results (with probability) as follows.

  • cherry: 0.35
  • raspberry: 0.25
  • blueberry: 0.2
  • strawberry: 0.1
  • apple: 0.06
  • orange: 0.04

How will you evaluate your model? Do you know about the difference between the top-1 and top-5 accuracy?

  • Using top-1 accuracy, you count this output as true, because it predicted a cherry.
  • Using top-5 accuracy, you count this output as false, because blueberry is among the top-5 guesses.

We test the model on 5 images…

Data Science

From 2012 to present

A convolutional neural network (CNN or ConvNet) is a specific kind of deep learning architecture. At the moment, there are many tech companies have developed active research groups for exploring new architectures of CNN such as Google, Microsoft, and Facebook and they demonstrated that CNNs are one of the best learning algorithms for understanding and analyzing image content that has shown high performance in image segmentation, classification, detection, and retrieval related tasks.

What is CNN?

CNNs were designed for image recognition tasks were originally applied to the challenge of handwritten digit recognition¹ ². The basic design goal of CNNs was to create a…

Though Programmer

Adapter, Decorator, Proxy, Information Expert, Composite, Bridge, Low Coupling, Flyweight, Protected Variations and Facade

Structural design patterns are concerned with how classes and objects can be composed, to form larger structures. They enable you to create systems without rewriting or customizing the code because these patterns provide the system with enhanced reusability and robust functionality.

Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice. —Christopher Alexander

There are following 10 types of structural design patterns.

  • Adapter…

Data Privacy

Dissolving the myth of easy-to-fake face recognition

Thanks to the quick advance in technology, especially in computer science and electronics. Nowadays, facial recognition is becoming the second most largely deployed biometric authentication method at the world level in terms of market quota right after fingerprints. Each day more and more manufacturers are including face recognition in their products, such as Apple with its Face-ID technology, the banks with the implementation of eKYC solutions for the onboarding process.

Contrary to the main aim of research in face recognition has been given to the improvement of the performance at the verification and identification tasks, the security vulnerabilities of face…

Fingerprints, facial recognition, hand geometry, iris recognition, retinal identification, voice recognition, keystroke dynamics, and handwritten signature

Biometric has been for long the target of future authentication that expected that biometric authentication will largely displace other means of our current authentication and access control. Biometric systems can be used in two distinct modes as follows.

  • Verification (1–1): determining whether a person is who he claims to be. In the verification mode, the system validates the person’s identity by comparing the captured biometric data with the template stored in the database.
  • Identification (1-n): determining who the person is. …

Thought Programmer

How do we beat the CAP theorem?

There is one theorem in computer science called the CAP theorem states that it is impossible for a distributed data store to simultaneously provide more than two out of the following three guarantees.

  • Consistency: every read receives the most recent write or an error.
  • Availability: every request receives a (non-error) response, without the guarantee that it contains the most recent write.
  • Partition tolerance: the system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes.

A Brief of History

In 2011, Nathan Marz proposed an important approach to tackling the limitations of the CAP theorem in…

Thought Programmer

Explaining common different architecture patterns

An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context.

A pattern is a solution to a problem in a context.

Many programmers are nowadays still confused about the difference between architecture patterns or don’t even know much about it.

Let me explain to you…!

  • Layered Architecture
  • Pipe and Filter
  • Client Server
  • Model View Controller
  • Event Driven Architecture
  • Microservices Architecture

Layered Architecture

The most common architecture pattern is the layered architecture or known as the n-tier architecture. It is widely known by most software architects, designers, developers. Although, there are no specific…

Trung Anh Dang

I write about things that I like and things that I don’t, mainly in the business, art and tech sphere. Sign up for my newsletter

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store