2018

Designing Well-Structured REST APIs with Flask-RestPlus: Part 1

7 minute read

This is the first part of a two-part series. In this post, I will introduce Flask-RestPlus and demonstrate how to start organising APIs around its simple REST-based conventions. Next time, I will address the topic of request/response marshalling (serialisation) and validation.

KotlinConf 2018 Recap

4 minute read

KotlinConf 2018 took place in beautiful Amsterdam at the beginning of October, and this year, I had the chance to attend. Though only the second edition, KotlinConf has already become something of an institution within the developer community. Events like these help you meet the people whose work you admire, but would otherwise not be able to meet in person.

A New Stochastic Oscillator?

4 minute read

Disclaimer: None of what follows is an actual trading advice. It was meant to educate and share my learning experience with the community, and should not be used as-is for making assumptions about the future direction of any market asset. Always do your own research!

Software Disenchantment: A Slightly Philosophical Look

3 minute read

As a software developer who roams around the social media circles, you might have already stumbled upon Nikita Tonsky’s post. I have been tinkering with programming every since I can remember. I have been writing code professionally for close to a decade now. Therefore, I couldn’t just leave Nikita’s words pass by me, and not leave a remark. Here’s a quote from Nikita’s post that sets the overall tone:

Revisiting IntStreams in Java8+

1 minute read

This post is mainly a reiteration of an article, I found online. As of Java 8, we have had the ability to replace looping operations on collections with streams and functional operations. This applies to situations where we don’t have an up-front collection to iterate upon.

Medium Is Turning into the Walled Garden It Did Not Want to Be

4 minute read

A few days ago, I got a question from an online friend of mine, whether to self-host his new blog, or start directly on Medium. I advised him to self-host and use Medium only for content distribution. I have always been pro writer independence, and though I have tried quite a few platforms over the years, none has really withstood the test of time. Medium makes no exception.

Xamarin Impressions

7 minute read

NOTE: The following post discusses the impressions I got with the Xamarin.iOS framework alone. It was intended to discuss only the iOS development support and not the cross-platform capabilities of the Xamarin suite. It is also worth mentioning that Xamarin.iOS has nothing to do with Xamarin.Forms, a ver different beast focusing on cross-platform development, and a point of lots of online debating.

TWIL Aug06-Aug12 2018

1 minute read

NOTE: TWIL (This Week I Learned) is a collection of interesting findings I discover on a week-by-week basis. Hosted and curated entirely on GitHub.

Data Science on Your iPad

7 minute read

This article is a follow-up transcription to a talk I recently gave at a local Munich machine learning meetup. Unlike my previous talk, this time I wanted to convey the idea of using an iPad for actively running data science experiments, as opposed to passively consuming information. I illustrated my point with a few example iOS applications I personally use on a daily basis, which I hope would be good starting points to get the audience interested in the idea. Being an iOS developer, who has once built ...

TWIL Jul30-Aug05 2018

6 minute read

NOTE: TWIL (This Week I Learned) is a collection of interesting findings I discover on a week-by-week basis. Hosted and curated entirely on GitHub.

21K #4 (Self-Organized)

less than 1 minute read

This morning, I finished my fourth half marathon for this year. Technically, it was all self-organised, so it does not count as a real half-marathon, but hey, I did run the distance, didn’t I?

Setting up a Private Ethereum Test Network

5 minute read

I want to play around with a few Ethereum smart contracts, without spending real money before the final versions are ready. Thankfully, Ethereum has been designed in a way, allowing for the easy setup of new networks, especially private ones, which have no connection to the main net. I will try to explain the first steps here, both for myself, and for anyone else looking for an easy and safe way to play with Ethereum smart contracts.

Don’t Throw React Native Away Just Yet

6 minute read

The main reason why mobile developers get enticed by the cross-platform development capabilities of frameworks like React Native, is, of course, the ability to share code across platforms. A smaller, but no less important reason is the ability to build, debug, and refactor faster. Last but not least, such solutions often help broaden up the variety of tools, beyond the ones dictated by the platform vendor.

SportScheck CityRun Munich 2018 (21K)

3 minute read

For a second year in a row, on Sunday, I participated in a half-marathon organised by the sports retailer SportScheck. It was also my second official half-marathon this year, after the excruciating run in Schliersee in May.

Embracing the Future

5 minute read

Dominik Wagner (a.k.a. @monkeydom) published an article a few days ago, called On my misalignment with Apple’s love affair with Swift.

GitHub: The Bastion of Developer Independence

3 minute read

So, that’s it. GitHub was acquired by Microsoft. By the once defeated, changed, and re-incarnated, we-love-open-source, Microsoft. It seems like a logical move. Ironically, of most tech giants of the past decade, Microsoft somehow feels like the lesser evil, the choice you’d rather live with, when you weigh the alternatives:

Introducing My New Pet Project: Should I HODL

7 minute read

My crypto-obsession from last year might have died down a little, but I still remain a long-term investor and a believer of decentralization. Moreover, it was predicting the crypto market’s next move that made dust off some of my old machine learning experiments and gave a fresh boost to my mission of becoming a data scientist. Though one could hardly hear me speak about this coin or that, I am still actively researching and building tools.

Using Travis for Secure Building and Deployment to GitHub

2 minute read

Travis is an incredibly useful tool for the open-source community. Its main purpose is to execute test suites and ensure the stability of the repository being under observation. Due to its generic execution nature, it can however be used creatively for many other tasks:

My First Machine Learning Talk

1 minute read

Yesterday, I gave my first-ever machine learning talk at a local meetup in Munich. For those who have been following my path to becoming a data scientist, this seems like something I couldn’t even imagine doing about a year ago.

How to Create a New Empty Branch for a New Project

less than 1 minute read

Sometimes, you might need branches in your git repositories, which are off the track of the main repository timeline. You want to store specific files there, and none of the original files, stored across your master and other feature branches. Luckily, git comes with an option called orphan branch. An orphan branch is basically like a store on its own, with its own history. You can delete all the existing files inside an orphan branch, and this won’t affect their state across master and other branches at...

Sixtuslauf Schliersee (Half-Marathon)

2 minute read

Yesterday, I took part in this year’s seventh edition of the Sixtuslauf at Schliersee in Bavaria. Still excited by the good tempo I managed on the track last year, I prepped up for a relatively close finish time this year, hopefully, even better. Things did not happen exactly the way I had hoped for, and as a result, my pace this year got almost a minute per km slower. Nevertheless, I am more than happy that I finished, and I am incredibly grateful to everyone who shared the run with me and cheered at th...

Longest Running Distance! (23.1km)

3 minute read

I did it! My longest running distance ever! And it was about time. I keep telling stories to everyone about how running saved my life, how I became a long-distance runner, how cool it is to have a healthy life full of adrenaline, etc. Yet, in reality, when was the last time I ran more than 20 km in one session? Must have been about a year ago. Now, I do believe in all things I mentioned before, and I do keep my running routine sacred. There is hardly a week without at least two 10K sessions, sometimes mo...

My 5-Minute GDPR Explanation

4 minute read

Disclaimer: this post expresses my personal opinion, which might not necessarily match the ones of past and current employers, clients, or business partners. It is also subjective and might contain assumptions which are factually not correct. Please, always refer to the official documentation, and let me know if I need to add corrections.

Platform Types in Kotlin

2 minute read

Having worked a bit with Kotlin, I assume that you must have met the ? and !! operators by now. In case you haven’t, I’d suggest that you bookmark this post and come again once you have gained a little more experience with the basics of the language.

Weekly Notes (Feb 20th / Feb 26th, 2018)

3 minute read

I wasn’t very active this week. During the week, I was mostly busy with the usual company stuff. Just as I was making plans for the week, a terrible cold knocked me out for the bigger part of the last 48hrs. Therefore, this will be more of a bits-and-pieces post, with links and quotes from stuff my dizzying head noted down, at the times when I could keep myself awake enough to be able to read.

One Thing You Should Know When Trading Altcoins Against BTC or ETH

2 minute read

When trading an altcoin against BTC or ETH, remember that looking at charts’ face-values is not going to depict the entire picture, unless you apply certain normalization. The problem is that both parties involved are highly speculative. Unlike fiat currencies, which express high volatility under extreme circumstances (say, a war, or a financial crisis), their crypto siblings move double digits in a single day. This is caused by the fact that the cryptocurrency market is, for the most part, still a zero-...

[Pandas] Finding a Row Where One of Its Values Is at a Minimum/Maximum

1 minute read

Often, we will want to get to get a specific row, which marks the minimum or maximum of one of its columns. Let’s suppose we have the SF Salaries dataset from Kaggle. We want to find the employee name, with the largest total pay benefits. The experience with writing NumPy/Pandas filter conditions will quickly let us produce the following version:

Weekly Notes (Feb 05th / Feb 12th, 2018)

4 minute read

A rather quiet week this time. I am happy that during the week, I managed to wake early enough every day, and add a bit of work to my personal projects.

My Thoughts on React Native

8 minute read

UPDATE Feb 17th, 2018: Though not a part of this article, it is worth noting that Facebook changed the licensing of React Native to MIT yesterday. This should come as a relief to many and would certainly increase the library’s commercial adoption even further:

Back to top ↑

2017

Essential Python Libraries for Machine Learning and Data Science

4 minute read

Whether new to Python, or simply coming from a different domain, the data science enthusiast’s foray into the field can be intimidating. From entering the door, one gets overwhelmed with a bunch of unfamiliar libraries, necessary for one’s daily work: NumPy, SciPy, SciKit, Matplotlib, Pandas, Theano, Tensorflow, Keras, CNTK, just to name a few …

Pandas Cheatsheet

1 minute read

NOTE: This post is an ongoing collection of tips and tricks I have learned around my work with Pandas. It is a live document, intended to remain in progress forever, as I keep-adding more and more things to it. You can share your personal tips and tricks in the comments below, or on my blog’s subreddit.

Weekly Notes (Oct 30 / Nov 05, 2017)

less than 1 minute read

Tuesday Happy Halloween! Today and tomorrow are public holidays in Bavaria and we decided to use the time for a short day trip to the idyllic town of Regensburg, one and half hours north of Munich:

Properties in Swift: How to Avoid Shooting Yourself in the Foot

2 minute read

Swift provides several constructs which make writing code a more fluid experience, with less boilerplate. Sometimes this succinctness of syntax comes at a potential cost though. One such aspect are properties, and more specifically, property initialisation. A small difference in the syntax might result in unnecessary memory consumption, unexpected state inconsistencies, etc. Those might remain unnoticed when the project is still small and reappear at a later stage, when the project is large enough to mak...

Testing React Native Applications Part I: Jest

4 minute read

When I started with React Native not long ago I was frustrated by the overwhelming amount of irrelevant information on how to test React applications. React is known to evolve fast, often introducing breaking changes, so this should not be surprising to most developers. Still, the amount of deprecated content out there leaves a sort of a bad feeling, especially among developers who have just started working with React or RN.

An Easter Photo Weekend with the Family

less than 1 minute read

My parents came over to Germany for Easter, and we used the quiet time for some traveling and walking around. With my OnePlus 3 always in my pocket, I snapped a few photos. For some of the them I used my favorite multiple-exposure camera app, for others, just the standard camera app with HDR turned on. I only wish the weather were one idea better, but some photos came out quite nicely, despite the rain and clouds.

Fixing the Intonation of Your Electric Guitar

2 minute read

Unknown to many hobby and amateur / semi-professional guitar players, fixing the intonation of an electric guitar is perhaps the second popular reason why your guitar sounds out of tune, besides tuning itself.

Back to top ↑

2016

On Becoming a Jenkins Certified Engineer

4 minute read

A few days ago, I took and successfully passed the first ever Jenkins certification exam designed by CloudBees and administered by Prometric. My interest in DevOps, and especially continuous integration techniques had already grown significantly during the last couple of years. That’s why, when a colleague of mine sent me a link about the certification exam a few months ago, I did not hesitate, but signed up right away. This post describes my personal motivation to go through the certification, and share...

Munich Startup Meetups: Ringside Talk #2

2 minute read

It has been a whole year since I’ve moved to Munich, and the opportunities that the city offers still don’t stop surprising me. Indeed, the startup community here may not have the media hype and the vibe of its Berlin counterpart. Yet, it is growing steadily, building a strong ecosystem of new players, backed up by and learning from the success of larger enterprises. An ecosystem, where teams help, and not mindlessly copy each other. An ecosystem, where people with various backgrounds and experience meet...

Kotlin Basics: apply() and copy()

2 minute read

Without any doubt, Java is a verbose language. This verbosity of the language makes it easy to understand Java code by new programmers. It is though one of the reasons, why many Java programmers find writing Java code tedious. Kotlin brings a touch of succinctness in places, where even programmers new to Java, may find code unnecessarily over-bloated.

Back to top ↑

2014

Example Post Formatting

2 minute read

Curabitur blandit tempus porttitor. Nullam quis risus eget urna mollis ornare vel eu leo. Vestibulum id ligula porta felis euismod semper. Donec sed odio dui. Aenean lacinia bibendum nulla sed consectetur.

Featured Image

1 minute read

Lorem ipsum thor smash liege-bastogne-liege landbouwkrediet ombregt krabbe, rouleur derby is for lovers bonk giro gilbert bidon. Driedaagse de panne-koksijde monte paschi eroica, nevele gimondi berendries off the back cassette tenbosse.

Post With A Code Snippet

less than 1 minute read

You'll find this post in your `_posts` directory - edit this post and re-build (or run with the `-w` switch) to see your changes! To add new posts, simply add a file in the `_posts` directory that follows the convention: YYYY-MM-DD-name-of-post.ext.

Figure With A Caption

1 minute read

Lorem ipsum thor smash liege-bastogne-liege landbouwkrediet ombregt krabbe, rouleur derby is for lovers bonk giro gilbert bidon. Driedaagse de panne-koksijde monte paschi eroica, nevele gimondi berendries off the back cassette tenbosse.

Image in Post

1 minute read

Lorem ipsum thor smash liege-bastogne-liege landbouwkrediet ombregt krabbe, rouleur derby is for lovers bonk giro gilbert bidon. Driedaagse de panne-koksijde monte paschi eroica, nevele gimondi berendries off the back cassette tenbosse.

Test Post

1 minute read

Lorem ipsum thor smash liege-bastogne-liege landbouwkrediet ombregt krabbe, rouleur derby is for lovers bonk giro gilbert bidon. Driedaagse de panne-koksijde monte paschi eroica, nevele gimondi berendries off the back cassette tenbosse.

Tip: Create an empty branch in Git

less than 1 minute read

By default, when you create a new branch off an existing one, the entire history as well as the index get replicated to the new branch. Of course, this makes total sense for branches concerning the source code. Want to develop a new feature? Make a copy of the main branch, add your changes, and merge it back with the core. Yet, the source code is only one part of a project. There are other aspects of a project, such as documentation, runtime, and deployment configuration, etc, which you’d rather not want...

Back to top ↑