The Mac series with the Apple Silicon M1 chip has been released. Weren’t you surprised by the amazing performance of it? I was also. I hoped we can use the wonderful power and Apple’s ecosystem for Elixir programming, so I tried to write Elixir code to call Swift code. …

This story shows important history of software engineering between 1990s and 2000s, which includes the background of the birth of Agile software development, Software product line engineering (SPLE) and eXtreme derivative development process (XDDP).

Importance of estimation of efforts of software development

Most of the actual cost of software development is personnel expenses because it is a human-intensive…

Verification and Validation

Software testing is an activity as part of verification and validation or software verification and validation.

Read the definitions of verification and validation from the article “Verification and validation” of Wikipedia.

In other words, verification is to check whether or not software or system meets to its requirements, while validation…

Before structured programming

If a program has no structure and is chaotic as the below figure shows, the following quality characteristics will be getting worse:

  • Maintainability (Analyzability; Changeability; Stability; Testability)
  • Portability

This is called commonly, “a status like spaghetti”.

A sample flowchart of an unstructured program

Structured Programming

Such a program can be replaced into a nested program (the below figure shows)…

I’ll give typical examples for each type of construction languages, which is explained at Chapter 3 of SWEBOK Evolution:

Configuration languages

One of typical examples of configuration languages is setting files of Windows and Unix operating systems.

For example, /etc/X11/xorg.conf is a setting file for X server, which provides graphic…

You may feel software engineering is difficult and confuses you. If so, it is due to differences between it and other sciences.

Reason 1: Software is an artifact, that is, an object made by persons. It may be often so large that the creators of it can't understand the whole…

Traditional and typical kinds of a human resource are a generalist and a specialist. A generalist has literacy, knowledge and skills for all fields. On the other hands, a specialist has a specified knowledge and skills to one field, which also is called I-typed human resource (I型人材) in Japan.


I've just released Pelemay 0.0.6:

A new feature of this release is to support String.replace.

defmodule M do
require Pelemay
import Pelemay

defpelemay do
def string_replace(subject) do
String.replace(&1, "Fizz", "Buzz")

def enum_map_string_replace(list) do
|> String.replace(&1, "Fizz", "Buzz"))

This code is 4x faster than…

Thank ElixirConf for giving me another chance to make a presentation at ElixirConf US 2019:

This presentation will be conducted by me and Mr. Hisae, who is a graduate student in my laboratory and a co-author of Hastega. He's a great meta-programmer because he wrote a new feature of…

Do you want to learn and use machine learning in Elixir / Phoenix / Nerves apps? Of course, you can, but the machine learning is written in Python and invoked from Elixir via ErlPort... Of course, you can implement some machine learning algorithms in Elixir. However, they have no computational…

Susumu Yamazaki

Call me ZACKY. I'm a researcher of Elixir. My works are including Pelemay, (its old name is Hastega) .

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