Setting Up My New MacBook M3 with Ansible: A Step-by-Step Guide

Setting Up My New MacBook M3 with Ansible: A Step-by-Step Guide Upgrading to a new MacBook can be a tedious experience, especially when you have a lot of tools and configurations to setup. The first choice was to use Time Machine to clone my old Intel-powered Mac Book Pro, but I realized that I didn’t want to migrate all the old stuff and I wanted to start with a clean installation....

July 24, 2024 · 3 min

Automatically Activate Python Virtual Environments with Zsh

If you’re juggling multiple Python projects, managing virtual environments can become a repetitive and error-prone task. Wouldn’t it be great if your Python virtual environment activated automatically whenever you navigated to your project directory? This guide will show you how to achieve just that using Zsh, making your development process smoother and more efficient. Step 1: Create a Python Virtual Environment (venv) First, ensure you have a Python virtual environment set up in your project’s directory....

May 21, 2024 · 2 min

Fastlane for Android: A Full Featured Example

In this post we’ll see a real world scenario where Fastlane can help us automate releasing an Android app to internal testers and publishing on Google Play as well. If you are new to Fastlane, I suggest you to read my previous posts on Fastlane for Android: Setup and Basics Flavors and Tests Publishing on Play Store Build an APK and upload to Slack Let’s see a Fastlane script for automating Android APK building and uploading to a Slack channel for internal testing purposes....

January 12, 2024 · 7 min

Fastlane for Android: Publishing on Play Store

This guide dives into leveraging Fastlane for updating and managing Google Play store listings and screenshots, tailored for developers familiar with Android app development but new to Fastlane. If you are new to Fastlane, I suggest you to read my first post on Fastlane for Android. Setting Up Your Google Developers Service Account Access the Google Play Console: Navigate to the Google Play Console and locate the “Account Details” section. Note the Developer Account ID listed there for future reference....

January 9, 2024 · 3 min

Fastlane for Android: Flavors and Tests

Following our initial dive into Fastlane for Android, we now focus on leveraging Fastlane for building specific flavors of your Android app and executing unit tests. Fastlane configuration for Flavors Fastlane excels in managing multiple product flavors. To configure Fastlane for different flavors, you’ll edit your Fastfile to define lanes for each flavor: lane :build_flavor1 do gradle(task: "assembleFlavor1Release") end lane :build_flavor2 do gradle(task: "assembleFlavor2Release") end These configurations enable Fastlane to target specific build tasks associated with your app’s flavors, streamlining the build process for each....

January 7, 2024 · 1 min

Fastlane for Android: Setup and Basics

Why Fastlane? Manual deployment processes are not only tedious but prone to human error. Fastlane automates these processes, ensuring consistency and reliability in app builds and deployments. From automating screenshots and managing beta distributions to simplifying app store deployments, Fastlane offers a comprehensive suite of tools that enhance productivity and development workflow. Moreover, Fastlane configuration is stored on a plain text file that should be added to version control, so you can share the release process and keep track of changes....

January 3, 2024 · 3 min

Thoughts about the trend of waitlists in tech

In recent times, there’s been a noticeable trend in the tech industry, particularly in AI services like ChatGPT and GPT-4: the use of waitlists. This approach, while seemingly straightforward, raises the question: Why opt for a waitlist rather than releasing new features directly to the public? Understanding the Waitlist Phenomenon 1. Gathering User Feedback One of the primary reasons for employing a waitlist is to collect user feedback. Services like AI generative tools benefit immensely from user input on the accuracy and relevance of their output....

November 14, 2023 · 2 min

Creating Pull Requests in AWS CodeCommit Using Bash

Automating tasks in software development has always been a priority for efficient software teams. The faster and more accurately we can execute repetitive tasks, the more time we have for value-added activities. In this post I am going to discuss a bash script that allows developers to automate the creation of pull requests in AWS CodeCommit. The script #!/usr/bin/env bash set -e REPO=`git config --get remote.origin.url` REPONAME=`basename "$REPO"` CURRENT_BRANCH="$(git symbolic-ref HEAD 2>/dev/null)" CURRENT_BRANCH=${BRANCH##refs/heads/} echo "I want to merge my branch into:" DEST=$(gum choose "develop" "master") echo $DEST sources=`git for-each-ref --format='%(refname:short)' refs/heads/ | grep -v $DEST | grep -v master | grep -v main` echo "This is the branch I want to merge:" SOURCE=$(gum choose ${sources}) echo $SOURCE TITLE=$(gum input --placeholder "Give me a title for this PR") echo TITLE=$TITLE gum confirm "Create PR '$TITLE' ($SOURCE -> $DEST)?...

August 11, 2023 · 4 min

Bridging PHP and Dart with Protocol Buffers: Notes on Seamless Model Generation

I have a backend service written in PHP and a client mobile app. I want to share the code of a model class that describes the payload of a push notification. How can this be done? Can I avoid code duplication? As you may already know, there’s no direct way to share code implmenetation bewteen a backend and a client app if the two are written in different languages. However, there are strategies you can employ to minimize code duplication....

August 7, 2023 · 6 min

Simplifying Microservice Testing with Imposter: A Step-by-Step Guide to Mocking OpenAPI Services

Abstract Mocking third-party services is challenging due to their external nature, complex APIs, and dynamic behavior, making it difficult to replicate their responses accurately during testing and development. When you develop some services or apps that depends on third party services on which you don’t have control, mocking is the way to go. In this blog post, we explore the powerful combination of Docker and Imposter to create dynamic, scriptable mock services based on OpenAPI specifications....

August 4, 2023 · 3 min