About Talks Articles

Continuous Integration of Vanilla C Programs for Intel, ARM, and MIPS Architecture

5 min read

Developing cross-platform applications presents a major challenge:, how to ensure that every commit does not break some combinations of operating systems and CPU architectures. Fortunately, thanks an array of online services and open-source tools, this challenge becomes easier to tackle.

Cross Compiling with Docker on WSL 2

4 min read

Now that WSL 2 packs a true Linux kernel and supports Linux containers (via Docker), it can be a perfect setup to perform application cross compilations.

Basics of Memory Access in WebAssembly

7 min read

WebAssembly is getting more popular than ever. The use of WebAssembly outside the confinement of a web browser also starts to gain traction, as evidenced from projects such as WebAssembly Interface. Understanding the memory model of WebAssembly will be important in order to fully comprehend its power as well as its constraints.

Deploying React Native Applications using App Center

6 min read

React Native emerged as a popular framework to build Android and iOS applications from a single code base. Verification of React Native apps during the development phase is not always easy, but thanks to a host of managed services, the CI/CD process can be simplified a lot.

Building iOS Apps on Azure Pipelines

4 min read

Traditionally, setting up a continuous integration system for iOS development is not always trivial. Since building can only happen on macOS, this requires a dedicated machine or alternatively, a machine you can rent (in the cloud). With all the hosted CI these days offering macOS support, such a task becomes less challenging.

Building Android Apps on Azure Pipelines

3 min read

Azure Pipelines emerged as a new compelling all-in-one solution for continuous integration. How difficult is it to use it to compile, build, and package an Android app? Apparently, not difficult at all.

Browser Test and Continuous Integration

5 min read

When developing a web app, it is important to verify that the app works with various web browers. A very comprehensive way to do this is to use a Selenium Grid with a wide selection of web browsers connected to the grid. A complementary approach is to ensure that the continuous integration includes running the tests with the latest version of the most popular desktop browsers.

Engineering Management as a Coaching Responsibility

4 min read

What is the purpose of being an engineering manager? After studying it for a while, I realize that there is a strong reason to believe that it is very much similar to the responsibility of a teacher to their students, a coach to their athletes, and a mentor to their mentees.

OpenVPN Server on Affordable Linux Machine

3 min read

Previously, I have shown that running VPN all the time on modern smartphones should not cause any battery concern. In this follow-up, rather than using a commercial VPN service, we look at the simple steps to set up an OpenVPN ourselves.

Tracking Management Tasks on Kanban Boards

4 min read

The use of Kanban boards is fairly popular in the context of a sprint-style software development, as a form of a lightweight project management. Extending the use of Kanban boards to handle general management tasks will give the benefit of encouraging transparency and promoting accountability.

Linux Graphical Applications on Windows

3 min read

While Linux text-oriented command-line tools run natively on Windows 10 these days, there is also the possibility of running the graphical applications which use X11. All we need is the corresponding X Server on the Windows side.

The Importance of Defining Development Milestones

4 min read

A simple software project with one developer working on it, perhaps it is you and your open-source project, does not need an elaborated description of its progress. In fact, the state of your project can be binary, either it is still in development or it is available for the public consumption. But once the team grows, the complexity increases, and the project starts to become an amalgamation of a few subcomponents, the clarity around the development status, particularly towards its release, is crucial for all the involved stakeholders.

Portrait Mode and JPEG Compression

3 min read

High-end smartphones, such as the latest Apple iPhone and Google Pixel 2, offer the so-called Portrait Mode when taking pictures. This mode blurs the background so that the foreground object stands out, thereby creating a professional-looking photo with almost zero effort. Fortunately, this act of blurring the background also reducing the size of the JPEG file of that picture.