Bist du selbstständig und suchst nach einer einfachen Möglichkeit, deine E-Rechnungen zu erstellen? Dann bist du bei meiner neuen Mac App SupaRechnung genau richtig!

💡 Jetzt kostenlos im App Store herunterladen

Why do you want to do it?

Have you ever wanted to start doing something, but never got around to doing it? Maybe you always wanted to go running every day, start meditating every day, or write a daily journal. Isn’t it strange how we really believe that we want to do something, and we also know we would greatly benefit from doing it, but then we never get started?

Life gets in the way. There are always reasons to put it of. We always find reasons, not to get started.

[Read More]

7-day programming challenge recap

Yesterday I successfully completed my 7-day programming challenge working on MembershipNerd. I had set out to start a new project, and work on it at least 30 minutes for seven consecutive days.

How did I do?

I tracked 10.5 hours of work on MembershipNerd during those seven days. That is exactly three times the minimum of 3.5 hours that I had set as a goal for myself.

On top of that, I also wrote five blog-posts about the progress or particular problems I was having:

[Read More]

Confessions of an introvert

I quite like this definition of what it means to be introverted vs. extroverted:

An introvert is a person who is drained when being with other people, and is re-energized when being alone by themselves. An extrovert is a person who is drained when being alone, and is re-energized when being with other people.

Or, a little more practical:

After a long week of work, the introvert says: “Finally, I’ll get some time by myself”, while the extrovert will say “Finally, I’ll get to spend time with friends.”

[Read More]

MembershipNerd Day 6: Signing up without a password

I chose to use the third-party library django-allauth to handle user-authentication because that library is mature and well-maintained, as far as I can tell. However, since the main focus of this library seems to be providing integrations for third-party oauth-providers, there is no obvious way to handle my first use case: Provide a way for users to sign-up with only an email – no password, no third-party-login, nothing else required.

In a previous project I had solved a similar problem by overriding the library’s DefaultAccountAdapter-class, which seems to be main integration-point for this kind of customization. But today I found a way that is much more light-weight and straight-forward.

[Read More]

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xca in position 0: invalid continuation byte

tl;dr: You might need to change your Python Interpreter in the Pycharm settings. In my case (using pipenv), it was pointing to /Library/.../bin/Python with an uppercase P. Opening the folder and checking, I found that the file or symlink was actually python with a lowercase p. Changing it from .../Python to .../python in the Pycharm settings fixed this problem. (I had to restart Pycharm afterwards.) Screenshots below.

The longer version

While working on MembershipNerd today, I encountered a very annoying problem: I wasn’t able to run the server in Pycharm’s debug mode. This wasn’t happening outside of debugging, but when trying to run the debugger, it got the following errors:

[Read More]

Blogging daily for three weeks

Update: I made it to thirty days and wrote a longer re-cap after completing 30 days of blogging, including some stats from Google Analytics.

Three weeks ago I decided to start an experiment: writing one blog-post every day for at least ten days. I have written about my disappointment when completing that ten-day-milestone. Today is day 21. How am I feeling about my daily blogging after three weeks?

I am very surprised that I have not struggled very much to find things to write about. Admittedly, my posts are very short, but I feel that is ok for the time being. During the first ten days that was a big concern that I won’t have enough topics. Currently, I don’t worry about that. But of course, now that I am mentioning it, I start to worry again. 🙄

[Read More]

Building MembershipNerd - Day 3

Today I replaced MembershipNerd’s default django user model with a custom user model, in order to authenticate user’s by their email, not some username. The reason for this should be obvious: The primary purpose of MembershipNerd is to allow people to sign-up for updates via email. So we definitely need their email address. Anything else is optional.

The django-improved-user library that I am using provides the following user attributes (besides the django permissions, groups etc.):

[Read More]

Building MembershipNerd - Day 2

When I started working on MembershipNerd this morning I immediately realized that I had overestimated yesterday’s progress. For example, I had not verified that the app is actually using the database, because I thought my start-up script was taking care of that. (And it does, once everything is set up correctly…) Also, when I tried to log in into the django admin, I saw that the css was not loading correctly. Another thing that I had not checked yesterday.

[Read More]

Building MembershipNerd - Day 1

I started my 7-day challenge with a quick planning and task breakdown session. That took me about 10 minutes, but I felt it would be worth it. I don’t have data to confirm if this actually makes me more productive, but taking a few minutes for planning and task breakdown definitely makes me feel more productive and focused.

The User Stories

  • US1: As a website visitor I want to be able to easily and securely subscribe and unsubscribe in order to receive updates via email.
  • US2: As a project owner I want to be able to create a series of drip-emails that are automatically sent to subscribers when they subscribe, in order to keep my subscribers engaged with my project.

I didn’t really feel the need to add more details or acceptance criteria, because I have those mostly in my head already. It felt more productive to proceed with a quick task breakdown for the first story, and then immediately get working on it.

[Read More]

MembershipNerd — self-hosted membership tool for nerds on a budget

Tomorrow, I will start working on MembershipNerd as a personal project for my 7-day challenge. I want to create MembershipNerd as a self-hosted alternative for newsletter-services like Mailchimp. My reasons for creating MembershipNerd is that I think almost every side-project, however small, needs a way to

  1. let people signup for updates via email (including the ability to unsubscribe)
  2. let you, as the project owner, manually send out updates (via email) to your “subscribers”
  3. let you, as the project owner, create and send out a series of automated messages (drip campaigns)

These are the core features.

[Read More]