RSSAmplifier

Blog

Blog on Leif Thoughts

Recent content in Blog on Leif Thoughts

leif.ioRSS feed ↗49 posts

Latest posts

The Scam Dilemma: When Real Alerts Seem Like Frauds

It’s hard to live in the modern world without being constantly reminded to stay vigilant on the internet. Apps of large financial institutes remind us not to wire money to individuals we don’t know, online market places scan your messages for phone numbers and raise red flags if you take conversations outside their platform and companies above a certain size have internal phishing…

The American Banking Experience as a Foreigner

This is one of the articles that has been sitting in my draft folder for a long time. Every time I had an interaction with a bank I added to it. I feel confident at this point to publish because my experiences with getting a bank account or a credit card here in the US have been mostly awful. 
 Let me back up a bit. I moved to the US in September 2019. I am not a US citizen, I already had a…

The Bitcoin Energy Argument That Nobody Makes

This is one of these rare circumstances this blog will touch on cryptocurrencies and not blockchains in general. More concretely this post is about one of the most debated topics within the cryptocurrency sphere. Energy consumption of the Bitcoin blockchain. All the arguments made from here equally apply to other proof of work cryptocurrencies. 
 I’m writing this article because I…

Play Wordle for a Different Day

UPDATE 13 January 2022: A previous version of the article did not include Google Chrome’s Override instructions. 
 One element of writing my last 
 
 wordle article was creating screenshots to illustrate the solving algorithm. But I didn’t want to use the word of that day (which was “gorge”), I wanted to use a specific word (“tiger” fom Jan 5). 
…

Building a Wordle Solver With Regular Expressions and Elixir

This is one of these articles that is predestined to start with “unless you’ve been living under a rock, you have heard of …”. Unfortunately I don’t know how popular the thing I’m gonna write about is outside my bubble but here we go. 
 Among my group of friends and colleagues the online game wordle has been hugely popular. It’s a mix of Scrabble and…

Blockchains Are Too Old to Be the Beginning of Anything


 And the Absurdity of the “Argument on Potential”
 

 I listened to - and participated in quite a lot of blockchain related debates. By now I can pretty accurately predict how these debates end. The way this usually goes is that someone makes a completely unsubstantiated claim about what blockchain will or possibly can disrupt, sometimes even “is already…

Grep Bundler Version From Gemfile.lock

If you’re working on any kind of Ruby project you probably won’t be able to avoid bundler . 
 This is just a quick tip to install the exact same version of bundler than the Gemfile was originally installed with. 
 Here you go: 
 gem install bundler -v $( grep 'BUNDLED WITH' -A1 Gemfile.lock | tail -n 1 ) 
 I used it a couple of times and it can be useful to keep bundler…

Overengineering My Blog for Fun and Definitely not Profit

This publication has been around a while. According to my 
 
 first article it goes back all the way to January 2010 and was hosted on Wordpress. In the meantime I switched from there to 
 
 Jekyll until I switched to 
 
 ghost in late 2013. 
 This is where the blog spent most of its time, and even thought I had some stories reach the front page of Hacker News it was…

Sorry, the GET Protocol Doesn't Solve Ticket Scalping Through Blockchain


 It’s Solved Through Centralization and Proprietary APIs
 

 TL;DR: The reason why ticket scalping is a non issue through GET is because there is effectively one entity that controls the ticketing process 
 I got a couple of responses on my last article about price gouging/ticket scalping. One solution was mentioned that supposedly does solve this issue through…

How Blockchain Won't Solve Ticket Price Gouging


 And Possibly Make It Worse
 

 When reading about blockchain I am often astonished about the number of problems blockchain technology is supposed to solve. I admit I am very quick to dismiss any of the claims that these startups are making. But from time to time I hear about a use case that takes me a little while to think through. 
 This happened to me recently when I…

Follow up: Blockchain for Real World Ownership

Wow, this blew up (as much as an article about blockchain can blow up). My 
 
 last article made it to the front-page of Hacker News . I got over 10k views and a ton of feedback. 
 Most of the feedback was positive, agreeing with me or confirming my argument from a different angle. 
 However there were a couple of arguments made against what I’m saying. I try my best to…

Real World Ownership Is Not a Use Case for Blockchain

The “blockchain beyond cryptocurrency”-world is full of potential use cases that would supposedly change the game. I touched on it in my 
 
 last post with a supply chain management example. But the use case proposals go much further than that. 
 Beyond the supply chain a lot of startups try to implement a use case around recording and transferring ownership of something.…

The Convenient Problem Space of Blockchain

When reading blockchain marketing material one could get the impression blockchain is the solution for everything. And if my experience in tech ever taught me anything it’s that “silver bullets are a myth”. 
 But let’s take a closer look at the problems that blockchains are supposed to solve. Surprisingly all these problems have one thing in common: 
 They are…

Implement a GIT Branch Checkout History

Take this alias 
 # .gitconfig 
 
 [ alias ] 
 hist = '!f() { for i in $( seq 9 $END ) ; do echo ' @ { - $i } : ` git rev-parse --abbrev-ref @ { - $i } ` '; done }; f ' 
 This will show the last 9 branches you have checked out with the abbreviation to switch to it. 
 ❯ git hist
 @ { -1 } : main
 @ { -2 } : add-healthchecks-io
 @ { -3 } : main
 @ { -4 } :…

Open Letter to Metro Bank: Fix your Login Screen

Disclaimer: I’m not a security expert. But to quote one of my favorite comedians Steve Hoffstetter . 
 
 I’ve never flown a helicopter. But if I saw one in a tree, I could still be like, ‘Dude fucked up’. 
 So here is what this helicopter in a tree looked for me:






 
 
 








 
…

Blockchain Is Merely a Marketing Instrument

TL;DR Do you know any profitable B2B blockchain business? Yeah, me neither. 
 This blog post is the attempt to reconcile my different observations that I have in the blockchain universe. It acts as a brain dump for me. Anyway, here is what I observe: 
 
 Blockchain is so insanely hyped it is beyond annoying. If you go anywhere in the world and try to connect with developers, there is…

7 Ways Coworking Spaces Have Annoyed the Hell out of Me

There are good reasons why you can’t or don’t want to work out of a classic office. Some have to do with working remotely, some are just due to the reason that your company is too small to rent out a complete office space. 
 When this is the case you have several options; there are the people who like to work from home and there are the people who hang out in coffee shops all day.…

My First Event Sourced Application

TL;DR: I built an event sourced application that shows the latest version of common programming languages. Find it here . 
 For I while I thought about building an event sourced application. The concept is so different from a classical CRUD approach that I was very intrigued. 
 I tried once with a podcasting transcription app (the details of that can be read 
 
 here ) but I…

How Playing Around With Experimental Technologies Landed Me A 6-Month Freelance Gig

If you need to build an “Uber for X” product there is a simple path that gets the job done: Build an MVP with well-established technologies. Start with Google Sheets , Typeform and a lot of Trello. Use Rails with a little bit of jQuery for a more custom solution. Capture as much feedback as possible and focus on iterating your MVP. This approach usually is referred to as the The Lean…

Use docker to run the new Elixir Code Formatter

TL;DR: Run this to format your code: 
 docker run --rm -it -v $( pwd ) :/app -w /app leifg/elixir:edge mix format
 The community has been very excited in the last couple of days about the Elixir 1.6 Code Formatter Announcement . 
 Of course you can use one of the many Elixir Version Management Tools to try out the formatter. But if you don’t want to switch around between versions…

Configure your Elm app with ENV variables

Create Elm App makes it very easy to get started with Elm because it provides a zero configuration application that just works. 
 However sometimes it is very useful to have some kind of configuration in your app. The example that I recently ran into is making your backend api url configurable. Or do you really want to develop against your production API? 
 Lucky for you Create Elm App…

Deploying Elixir with Docker Part 4

This last post is about bringing it all together. 
 Right now we are at a point where we have random script snippets that executed in the right order will launch a service in the cloud. 
 But we need to get this in a more structured way on a build server. As a CI provider I use CircleCI and I’ve been waiting to try out their 2.0 version including workflows . 
 As CircleCI heavily…

Deploying Elixir with Docker Part 3

This is the third part of the Docker Elixir deployment adventure. Read 
 
 part 1 and 
 
 part 2 first. 
 In this part we are going to deploy our Docker container to hyper.sh (Affiliate Link). It’s a relatively new platform that makes it very easy to deploy containers. 
 You will need the hyper cli to get started. Refer to the official documentation for details. 
…

Deploying Elixir with Docker Part 2

This is a continuation of the 
 
 first part of the post where we created a release. 
 Now that we have a release, let’s pack it into a docker container. 
 We will use a multi stage container to create the container. 
 First let’s focus on the build part. A base container will come in handy as we need to run several commands. We need Erlang and Elixir installed…

Deploying Elixir with Docker Part 1

This is a multi part article about deployment of an Elixir application with Docker. 
 This part will be about building a distillery release for a Phoenix Application. 
 
 
 Part 2 will discuss packaging this release into a Docker container 
 
 
 Part 3 will show you how to deploy this container to a container runtime. 
 
 
 Part 4 will wrap it all up and…

Try out your code on the latest OTP and Elixir

TL;DR: If you want an easy way to run the latest version of elixir (an the latest version of OTP) and you have docker installed, do this: 
 docker pull leifg/elixir:edge
 docker run --rm -it leifg/elixir:edge iex
 Elixir Docker Builds # A while ago I started building my custom Elixir Docker image using Github and Docker hub automated builds . 
 I tagged the Elixir versions I wanted…

Never compare dates in Elixir using &#34;<&#34; or &#34;>&#34;

For the examples in this article I use the data structure Date . The same applies for DateTime or NaiveDateTime &#xA; Consider this: &#xA; early_june = ~D[2017-06-01] &#xA; late_june = ~D[2017-06-30] &#xA; How do you find out what&rsquo;s earlier? &#xA; The naive approach is to use the comparison operator < : &#xA; early_june < late_june &#xA; # => true &#xA; That works. But this is tricky. It…

Export your Salesforce Objects to SQLite

Sometimes it can be quite useful to export data you have in Salesforce Org (transferring your data over to a new system is probably the biggest use case). &#xA; Saleforce&rsquo;s suggestion is to use the dataloader but that has a lot of drawbacks: &#xA; &#xA; Flat File Format only &#xA; Not (sufficiently) scriptable &#xA; Manual process to select the fields you want (instead of just everything )…

Redis Tips & Tricks #2 - Connections

As it turns out, connecting to redis may introduce a bit of problem if you&rsquo;re not aware of the connection handling. &#xA; I haven&rsquo;t tried with every client out there but especially the redis ruby client has this problem. &#xA; So imagine this scenario: &#xA; ( 1 .. 10000 ) . each { | num | Redis . connect . get ( 'key_ #{ num } ' )} &#xA; Every iteration will open a new file handle and…

First steps in Elixir

From time to time I look into new programming languages. But usually I rarely do more than browse the general introduction guide. &#xA; However this time I dove a little bit deeper into Elixir and even got myself a pet project . &#xA; I tried to find a use case for a little library and I ended up writing a parser for Excel documents . It&rsquo;s still under heavy development but I gladly accept…

Executrix is now known as Bulkforce

Today I released a new version of the ruby gem to interact with the Salesforce Bulk API . &#xA; I decided to go with a different name and introduce some breaking changes. &#xA; And here it is: Bulkforce . &#xA; The [old gem](old gem) will still be available as a reference and to provide a backwards compatible option for all users out there. New features however will only be introduced in…

Redis Tips & Tricks #1 - Memory

It&rsquo;s neither a tip, nor a trick. It&rsquo;s more a statement: &#xA; ALL data is kept in memory &#xA; &ldquo;No shit&rdquo; some of you might say, but I actually have to confess: I did not know that when I started using redis. I always assumed &ldquo;there is a file on the disk, that is where my data lives&rdquo;. &#xA; The truth is: all of redis&rsquo; data is kept in memory and from time to…

Why ActiveRecord Enums Have Been Implemented in the Worst Possible Way

UPDATE: I tried out enums in ActiveRecord 5.0 and the biggest pet peeve has been eliminated. Point 3 is no longer valid. Nevertheless decide for yourself if you want to use it. &#xA; With Rails 4.1 enums have been introduced to ActiveRecord . I took a good look at it and from the start I didn&rsquo;t like it. Here are 3 reasons why: &#xA; 1. It&rsquo;s all in the application layer # Ok this might…

Redis Tips Tricks - #0 Introduction

Yai, a series \o/ &#xA; Here I try to explain in short steps some tricks for beginners in handling redis . &#xA; Some of those tricks may be specific to redis, some other might be relevant for all key-value-stores. &#xA; So stay tuned.

Morf Hashes Into Hashes

In the last few months I did a lot of work concerning imports. &#xA; Using the Sequel Toolokit I was able to treat every query row as a hash and the whole thing has been working out pretty good so far. &#xA; However I always needed to do conversions on the hashes (map keys to a different name, concatenate values etc&hellip;.). Therefore I implemented several mapping classes that helped me with…

Get Yourself a Simple Project for Explaining Stuff

A while ago I spent some time at home, working on a Rails project. I was very passionate about it and at one point I shouted out: &ldquo;Finally! The tests are running&rdquo;. &#xA; That was the point when my dad got curious about what I was doing and asked me something like &ldquo;What tests are you talking about?&rdquo;. I tried to showed him my specs. Unfortunately in order to explain the whole…

Im Blogging Again

Or at least I think that is what I am going to do. &#xA; Currently I&rsquo;m playing around with ghost . &#xA; It doesn&rsquo;t have the fancy nerd stuff (yes it&rsquo;s only editable online and does not live on github) but I like the interface and am hoping for some awesome third party support. &#xA; And it&rsquo;s not Wordpress. &#xA; If you&rsquo;re wondering why this is not the first article:…

Words to Erase From Your Vocabulary When Coaching at RailsGirls

On October 13th 2012 I had the pleasure of being a coach at RailsGirls in Munich. &#xA; Having spent quite a fair I amount of time in front of a computer screen, I gathered a lot of technical terms and been using them as if they were standard vocabulary. &#xA; But if you use terms like &lsquo;continuous deployment&rsquo;, &lsquo;rapid prototyping&rsquo; or &lsquo;static typing&rsquo; like talking…

New Project calcsub.net

Over the easter holidays I started working on a new project. Today it has finally reached a state where I&rsquo;m confident to say: I can go public. &#xA; It&rsquo;s just a simple subnet calculator that takes IPv4 and IPv6 addresses and then calculates the start address and the end address. &#xA; You can have a look at it here (NON FUNCTIONAL) or see the source on github . &#xA; picture created by…

Simplequeue - My First Project

Today I released my first project on github . It&rsquo;s called simplequeue and is a little tool to queue tasks. In this case everything is a task which can be expressed in a single line of text. &#xA; It&rsquo;s written in ruby and as I&rsquo;m new to ruby I would really appreciate it if someone took the time and make a code review. Just contact me or fork the project if you have suggestions.…

My Personal Mac Os 10 7 Wishlist

Tomorrow (October 20th 2010), Apple is going to introduce Mac OS version 10.7. I&rsquo;m curious of what Steve is going to show us. But just in case someone from apple is reading this. Here is my wishlist for the upcoming OS. &#xA; facetime in system # FaceTime got introduced in iOS 4.0. It was advertised as a new way of communication blablabla. In order to communicate nowadays, one device might…

Todo Lists 101

write it down # It&rsquo;s a pretty obvious one but with a lot of tasks in the past I just thought &ldquo;ahh well I&rsquo;ll remember it&rdquo;. But most of the time I delayed it or missed to do it. This is especially the case when you get some great ideas while lying in bed. The chances are high you have forgotten all about them the next day. So get yourself some kind of easy accessible…

How to Use Twitter

The most controversial &ldquo;community&rdquo; has finally taken off into mainstream. So a lot of people are asking themselves: &ldquo;how can I get rich using this service&rdquo;. That is a valid question. A lot of so called &ldquo;consultants&rdquo; or &ldquo;experts&rdquo; are trying to help with this question and make up rules on &ldquo;how to use twitter&rdquo;. &#xA; I think I&rsquo;ll join…

So You Want to Be a Programmer?

If you&rsquo;re anything like me, you have always wanted to learn a programming language, do an awesome application and get filthy rich. To achieve this goal you find plenty of resources available online. But all articles on how to become a programmer really boil down to just 2 letters: &#xA; &#xA; #do &#xA; That sums it up pretty well. You won&rsquo;t become a good programmer unless you&rsquo;ll…

Superfantastic Password Management With Supergenpass

Nowadays, there are a million websites out there which force you to create an account. During this step you are required to provide a username and a password. If this process gets repeated more often, the need of a proper password management increases. The currently most used password management is the simple &ldquo;use one for all&rdquo; method. I hope we alle agree that is the worst of all…

3 Web Comic Series Every Geek Has to Know and Love

The internet is wonderful for so many things. Beside sharing your favorite cat pictures and telling the world your current meal. But you can also gather a large amount of information. I introduce now: my favorite &lsquo;information pieces&rsquo; in the category &lsquo;web comics&rsquo;. &#xA; The Oatmeal # Awesome and pretty funny web comic series. Some concepts are based around common situation…

Jekyll: Blogging Without Pain

A long time hast passed since my last blog post. But I did a complete redesign of my blog. Not only is the frontend completely different. The underlying backend has changed as well. I completely freed myself from Wordpress and changed to an engine that fits my workflow much better: jekyll . &#xA; To call jekyll a blogging-engine is (IMHO) not quite right. It&rsquo;s just a generator for static…

The Apple iPad: I&#39;m a Believer

Disclaimer : Yes I am an Apple Fanboy , deal with it, save your flames. &#xA; Just before I write anything: Here is a thread about the iPod announcement back in 2001. Just check if you find your comments somewhere ;-). &#xA; Last wednesday (January 26th 2010) Apple announced the iPad . Shortly after the keynote, the blogosphere went berserk (not to mention all the trollin&rsquo; on all the so…

What I Like About the Play Framework

Recently I stumbled upon the play! framework . Being a fan of Ruby on Rails my first thought was: &lsquo;It&rsquo;s like Ruby on Rails, except that it&rsquo;s Java&rsquo;. But I had to find out for myself. And I have to say: I really like it. In detail I would like to point out 4 things I like the most. &#xA; 1. Ships with everything you need # Everything you could wish for, it&rsquo;s there: ORM…