A set of commands that took me a long way down the road

Image for post
Image for post
Let’s tackle the working tree. Photo by niko photos on Unsplash

I can’t remember the last time I touched a git UI client. It just seems odd, once you get familiar with the git CLI.

Get Help About a Command

Works for arbitrary sub-commands too:

Init a Repository

Initializes a git repo in the working directory:

Notice: All git stuff is stored in the folder. Simply delete if you want to start over. Just be aware everything git related will be gone —it will be as if git never was there.

Connect Local Repository to Remote Repository

My usual routine when I start a new project:

  1. Create an empty repository on GitHub or…


From creating key pairs, to copying files, to setup port forwarding

Image for post
Image for post
Photo by Marc Rentschler on Unsplash

Create SSH Key Pair

The key pair will be used for authentication. You will get 2 files, one is the private key, and the other the public key. The private key is what stays on your host machine. The public key is what you distribute to other systems.

The system can now verify that you are authorized; when you send some data signed (encrypted) with your private key, the system can decrypt it with the deposited public key. The keys are complementary to each other. One can undo the operation of the other. That allows you to prove your identity without sharing the tool for proofing it (the private key). Just make sure you never share the private key. …


How can you leverage documentation to add recurring value to a software project?

Image for post
Image for post
Source

As developers, we spend a large portion of our time writing code. As a consequence, we seek to grow the crafts of coding by looking for guides and habits that help us produce more clean and maintainable code. But is code really the sole source of value in a software project? I doubt it.

Code may get the job done, but it is only the outcome of a long thinking process. If one had to track down the true value in a software project, I’d argue that it lays in the thinking processes and the final ideas arising from them, ultimately being translated into executable code. But are these ideas fully captured with code alone? …


Did you know you can publish your java libraries to GitHub?

Even though not always obvious at a first glance, GitHub offers many useful tools besides hosting a git repository. Today’s topic:

Maven Packages

Image for post
Image for post
Awesome tools are hidden behind such humble links!

I’ll show you how to publish a Maven package to your GitHub repo using Gradle — Something that is also covered by the GitHub documentation. I will complement it with some hints that were not completely obvious to me when I was first publishing.

If you’re the no-talk-just-example kind of type; here’s the gist.

1 — Create an Access Token

Authentication is done with a token, so let’s begin with creating one.

In GitHub, navigate to SettingsDeveloper settingsPersonal access tokens and click Generate new token. …


Take a prime number and another integer with , using those two numbers you are able to reach all integers out there in ℤ. All you need is a linear combination of and . Why? as a prime number does not share any divisor with , except for the number 1. Hence the greatest common divisor is equal to 1.

Using extended euclidean algorithm, we can trace down the way to while retaining each intermediate result as a linear combination of and . …


How to leverage multi-stage builds and COPY — from to produce small and concise images

Image for post
Image for post
Photo by Artem Labunsky on Unsplash

Today I had a pleasurable experience with Docker multi-stage builds and the build command. Docker multi-stage builds allow you to reduce the final image size and complexity by using multiple statements in a single Dockerfile.

Each statement introduces a new build stage, which can also be given a name using . The layers of all stages except for the last one will be erased after (i.e. the last starts the actual image that is being built.) During the build, artifacts can be copied from one stage to another using (or a number, beginning at 0, for unnamed stages.) …


A comprehensive guide on how to self-host an Expo server and setup a GitLab CI/CD pipeline to deploy a React Native App.

Lately I managed to setup a GitLab CI/CD deployment pipeline for a React Native app. In this article I would like to share my insights and learnings, along with a proposition for a working configuration whose operability has been proven in my latest studies project.

Image for post
Image for post

Goal

The goal is to deploy a React Native App to your own server in a GitLab CI/CD pipeline. As a result, new code gets immediately deployed as pushed to GitLab. Users will be able to start the app on iOS or Android by scanning a QR-Code or opening a hyperlink, given they have installed the Expo App (more on this in the Conceptual Overview). …


Given a natural number , find its prime factorisation

Image for post
Image for post
Photo by Raphaël Biscaldi on Unsplash

Each natural number is composed of a unique product of indivisible numbers also called prime numbers. Prime numbers are the building blocks of natural numbers and the prime factorisation of a number is its unique fingerprint. The prime factorisation of 17'160 is:

It is easy to validate a given finger print by multiplying the numbers together. It is rather hard to calculate the finger print of a given number. There is no simple operation like multiplication to receive the sequence of numbers in the prime factorisation. Still we know it must exist and the smallest possible number in this sequence is . …


in Multiplikationen berechnen.

Image for post
Image for post

Idee: in jeder Iteration mit sich selber multiplizieren. So entsteht die Folge:

kann nun berechnet werden, indem bestimmte Zahlen aus dieser Folge miteinander multipliziert werden. Es gilt nämlich:

Jede Dezimalzahl lässt sich als Summe von 2er Potenzen darstellen (Binärdarstellung). Beispiel:

könnte man dementsprechend wie folgt schreiben:

Das sind alles Glieder aus der obig beschriebenen Folge. Wenn man also die richtigen Glieder aus der Folge miteinander multipliziert erhält man . Mit einem Beispiel lässt sich wohl besser als mit Worten zeigen, wie diese Glieder selektiert…


Image for post
Image for post

Writing code is like art, so is the process of collaboration. You can always seek to improve and become a better collaborator. This article is about what I have learned during my time as a code collaborator. Not everything may hold true for you. It may not even hold true for myself, because I try to constantly evolve my own experiences. Rather it represents a snapshot of my experience and you can take out whatever’s useful to you and throw away the rest.

When writing code, we spend a lot of time thinking. I often get lost in my head from all that thinking. It’s essential to know what you are working on. This is why I keep myself close to the issues I’m working on. They remind me of what I’m truly supposed to solve. You can make a branch for every issue to help you stay on track. Name the branch after the issue‘s ID, this way you increase the traceability for you and all collaborators. Only add code to this branch that is related to your issue. Go back to your issue and read the specification if you get lost somehow. I catch myself so often, trying to solve a problem that is not even relevant for what I was initially supposed to solve. …

About

Mike Nöthiger

Hi! 👋 I’m Mike — did you know the oldest computer was owned by Adam and Eve? It was an apple with very limited memory. Just one byte and everything crashed.

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