Getting older is not the reason why we gain weight

One excuse people often like to use when reasoning about why they got overweight is because they got older and their metabolism isn’t what it used to be. They say things like “When I was in high school I was eating two ice creams a day and I was skinny as fuck, but now, now I can’t even eat a potato without gaining two pounds. My slowed metabolism is the reason why I got chubby.

This is absolutely not true. The amount of energy our body needs to sustain itself doesn’t change that much with aging. Our daily calorie requirements go down with 2-3% per decade. For the average Joe running on 2000 calories/day that’s between 50-70 calories decline over ten years. That’s less than an egg-worth of calories – over ten years!

We gain weight as we get older (usually during/after college) not because our metabolism suddenly decides to take a break, but because, becoming responsible adults, we get a (desk) job and our activity levels plummet. All those calories we used to burn walking and running round start to turn into fat tissue. Add in some poor food choices and you’re in for a hell of a transformation.

How to fight against gaining weight? Increase your activity level or make better food choices, or both. And, just as important, track your progress so you know where you’re heading.

Gainslog menu and average stats get some space to breathe

The previous cluttered menu items now have a more room to breathe, and if previously one would have to tap the exact teeny tiny piece of text to navigate around, now you can tap anywhere on the menu item.

Gainslog mobile menu

Gainslog mobile menu

While in some places a compact design makes sense (eg. food list), that’s not the case for the history page average stats. Even though they were previously displayed one under another, there were simply painful to look at. The new, improved display makes the stats way easier to read.

Gainslog average macros

Gainslog now makes daily backups to Google Drive

Thanks to this great tutorial on how to extend Laravel’s storage to Google Drive, Gainslog now pushes daily updates to Google Drive.

Following the tutorial, one issue people run into is a File not found error when running the backup command.

You can get around it by setting the backup folder name to an empty string – but that will place all the backup zip files directly into the storage/app folder.

One way to make sure all backups go into a single folder is to setup a new local disk in filesystem.php and update the backup.php config to use that one instead.

// config/filesystems.php
'local' => [
    'driver' => 'local',
    'root' => storage_path('app'),

'local-backups' => [
    'driver' => 'local',
    'root' => storage_path('app/backups'),

// config/backup.php
'destination' => [

     * The filename prefix used for the backup zip file.
    'filename_prefix' => 'backup-',

     * The disk names on which the backups will be stored.
    'disks' => [

Interfering in the way users are used to doing things is a no-no

Gainslog is a simple calorie tracker I made with only a handful of users.

If you ever tracked your macros before, you know reaching your daily protein intake goal is the most difficult to attain from all three macronutrients (proteins, carbs, and fats). Once you hit your proteins target, the other ones come around easy.

Because protein is the hardest macro to fill, I made it look like a priority throughout the app – making sure that everywhere macros appear they are ordered based on how hard is to get them in one’s diet. So it’s “proteins, carbs, and fats”.

Leaving aside the fact that for some people (with high calorie needs), carbs are harder to get, a new user pointed out that on a regular food label, the macros order is different – it’s fats, carbs, proteins – and that I should correct the site to reflect that.

Gainslog’s “add food” form

It makes sense, at least for the form used to add new food items. When you’re copying stuff from one place to another, it’s easier if the order in which you enter the information is the same. Being a good maintainer and carrying about people’s wishes, I’ve corrected the order everywhere through the site.

As soon as the update hit production, all hell broke loose – all users instantly went “why you changed that?” on me.

What is funny is that they didn’t notice the labels changing everywhere, but only on the daily status area. They, like me, were used to focus on the first number (since protein intake was the hardest to achieve).

Gainslog’s daily status – order was changed to fats, carbs, proteins from proteins, carbs, fats

Long story short, I reverted the order for the daily status and kept the others reflecting the food labels – which made it super easier to enter new items, but of course, few people actually noticed it.

Books told me that “taking a feature away will irritate users”, but I never thought such a small change will be taxed this hard. Nevertheless, I interfered in the way people were used to doing things, and that pissed them off. Lesson learned.

The fact they didn’t notice the order changing in other places concerns me – it means there’s something I can clean up more. If the information is not worth noticing, why keep it?

Amsterdam is card-only

I recently visited Amsterdam, and besides the never-ending smell of weed and thousands and thousands of bikes, another weird thing stood out. Most shops, bars, and restaurants are card-only. They do not accept cash at all.

While I understand and support the reasoning behind that – it’s much safer for both parties, eliminates human error, and it’s less expensive than dealing with cash, what bothers me is they don’t let you know in advance. Not even a poster or a note, nothing.

I regret not finding out what happens if you say you don’t have a card at all. Free meal?

Video quality and editing over great content

Jeremy Ethier

Great content is usually something entirely new or offers a different perspective on things we already know, but… consider fitness videos.

Exercises don’t change over the years. Yes, the social media fitness industry keeps throwing at us different variations of the same exercise to keep us entertained, but the basics stay the same.

Hands outside shoulder width. Chest up, keep shoulders retracted, make a slight arch with your back, keep your butt on the bench and the legs firmly placed on the ground. Push from your nipples towards your upper chest in a slightly arched path

This is the content for explaining the bench press form. You can’t add a different perspective or something new to it.

What you can do is make the video awesome. High quality and great editing, showing the exact muscles that interact, in the exact order, highlighting the bar path.

Jeremy Ethier has been criticized for not bringing anything new to the table and for being boring. And that’s true. There are a lot of youtubers putting out science-based fitness videos, but few of them have the video quality and editing Jeremy brings to the table.

If you’re an experienced body builder, his videos will bore you to death because you already know most, if not everything he shows, but for beginners those videos are gold – go watch them.

Sorting algorithms

Photo by Charles Deluvio 🇵🇭🇨🇦 on Unsplash

Whenever I read about interviewing at a large company the author talks about how you need to know your algorithms on the spot and to the letter. It’s the same old story everywhere: “I got some basic questions about this, this, and that, and then we moved on to algorithms”.

I always felt bad for not knowing algorithms but let it slide thinking one day I’ll need to learn them in order to do my job. Funny enough, after many years of programming, I’m yet to stumble upon a situation in which I need to do a Bucket sort, or a tree sort, or whatever other sort exists. You might argue that I don’t do them because I don’t know them, but I can easily counter that with “most of the time I just need to pull records out from the database and order them by x column”.

Anyway, today I thought I should give algorithms a try. Not because I feel bad for not knowing them, but because I’m sure there is plenty to learn from figuring out how they work.

I hope it will be fun 🙂

Things to consider when recording your first screencast

Building dashcopy

I recently published my third and fourth episode of “Building Dashcopy”. Since the beginning, I have been compiling a list with things I should not do, or at least try not to do in future screencasts, and I thought it would be worth sharing.

Disclaimer: I have published only a couple of screencasts so I might not know what I’m talking about. Also, keep in mind that I record the audio after I’m done filming and editing.

  • Avoid using shortcuts unless they are obvious (copy/paste, formatting).
  • Avoid using words like just, easy. It might be just and easy for you, but not for the viewer.
  • Show what might go wrong. If you stumble upon an error, a missing parameter, typo, do not stop the recording and do it again. Leave it as it is as there is a good chance your viewer will experience the same mistakes.
  • If you have a cheap mic, avoid talking directly into it, as it will pick and maximize every breath you take. Keep a good distance (30-40cm) and place the mic on one side or the other, not directly in front of you.
  • Keep recording even if you’re not saying anything. It will make your audio feel more fluent, rather than having sound breaks everywhere.
  • You will need notes. It’s hard to not sound like you’re reading but what you could try is to direct your voice upwards, towards your head. It works wonders, but sadly, at least for me, it’s hard to maintain for a long period of time.
  • Pace yourself. Give the viewer enough time to process everything.
  • Master audacity. Play around with noise reduction, compressor, equalizer, and the clip fix effects.
  • Avoid having too many audio cuts. Having too many audio files will give you a hard time when you’ll try to glue them together. It might also lead to sentences repeating the same expression. In my case, I can’t seem to be able to avoid saying “Let’s” every minute or so. Try to cover as much video material as you can in one go.
  • Be careful what you promise for the future episode. You might pick a topic that is too broad to be covered in a single episode.

These are all mistakes I made in my first episodes. I’m sure I made others too, but these are the ones that stood most for me. Hopefully, you’ll get to avoid some of them.

First screencasts: building dashcopy

Building dashcopy

A few days ago I wrote about doing something I never did before, something I’m not particularly good at. As expected, the initial result was poor, but I kept on improving the obvious mistakes and it got better. It’s true what they say: first drafts always suck.

Sharing your progress through screencasts, podcasts, and blog posts is a common practice, so I thought I should give it a go and started a video series on youtube. It’s a great way to keep myself accountable and practice expressing my thoughts and my rusty East-European English.

I knew it will be hard. Talking by yourself, and especially hearing your voice, is super awkward, even more so if your pronunciation is poor, or you’re just bad at talking in general.

But oddly enough, it wasn’t that hard as I thought it will be. The end result is a million miles away compared to your standard Jeffrey Way screencast, but it’s way better than I hoped for. My pace is irregular and I sound like I’m talking from a hole, but overall the videos are bearable.

Although sometimes I got into too much detail, or wasted time running tests knowing they will fail (beating that TDD dead horse), my intent is to move away from the tutorial-like material and turn it into real, unplanned coding sessions where I try to figure out the best approach in doing things. Ideally, I would love to reach a point in which I am able to code and speak my mind at the same time, but I am aware it will take me a long time o master that skill.

Here’s a link to the channel. If you watch programming screencasts regularly, I would love to get your opinion.

Also, if writing is something you wish to get better at, join the list and be the first to know when dashcopy is ready.