Journal from Kotnik

Nikola's thoughts and discoveries

Recently I have been searching to replace my laptop after spending many years with #Thinkpad X1. It's still an okay machine, I will not throw it away, but it has an issue where screen would turn off without any way to turn it off except leaving computer off for a while.

I use this laptop for reading and researching, occasionally for light retro programming. And that's it. So I revised features I need:

  • It should be #ARM based, as this is the architecture I want to experiment with.
  • It must be without active cooling. My phone is without a fan and it can do a lot, so why should I accept noisy fans in my laptop?
  • It shouldn't be expensive.

There are not many options out there. There are some Acer Aspire ones. MNT Reform sure looks great, but it's very expensive. Apple Air with their own CPU is also an option, but it is also expensive. And then there's Pinebook Pro from PINE64. Price is around $200, so very affordable, and I am already successfully using their PineBuds Pro headphones. So that's what I chose.

Pinebook Pro

On the order page PINE64 is not joking: they clearly state that this computer is not for casual users and it is built for people who want to work on ARM architecture. And my, aren't they right. But let's see.

First of all, let's quickly go over the main issues with the ARM architecture itself. While being very advanced and powerful, it is completely driven by companies that are not playing with each other, or with open source developers for that matter. X86 architecture, mainly due clones and clone wars, has a reasonable design: there's a bus where devices are discoverable. ARM, on the other hand, are massive chips that integrate a lot of peripherals which talk to each other in proprietary and custom ways. This is best witnessed if you follow up significant but slow work in Asahi Linux; it's mainly reverse engineering with a lot of trial and error type of work. This is a bit simplified view, of course.

At this point, I am writing from the Pinebook. ๐Ÿ˜Š

I want to focus on the good stuff, so let's note what I like so far (I will revise this list as the time goes by, of course):

  • Aluminum case feels so good, in compared to Thinkpad's plastic one.
  • Keyboard is nice, and it feels high quality. Firmware itself is open source, so that is a big plus.
  • I had to open my Pinebook (more about that later) and many parts are replaceable. Most notably the battery. The thing is designed to be opened and it shows.
  • Passive cooling! No fan, no noise, and practically no heat as well.

Now, these are the things I didn't like:

  • Suspending is not working. I got used to this too much under Linux.
  • Keyboard is not backlit.
  • Screen can not be tilted back much, my estimation is 100ยฐ. That is not enough.
  • Software support is basic and in development. So far I tried three distributions: Manjaro, postmarkOS and Armbian. You really need to know what you are doing and have to have a lot of experience in order to install and set up your software.
  • There is one known issue with speakers, and this is potential deal-breaker. From time to time it clicks and emits really annoying sound that is somehow related to the level of screen brightness.

All in all, after spending a lot of time to achieve basic things, or at least what has been basic in Linux for more than a decade, I am a bit disappointed. And what I mean by basic is really basic, like installing operating system, achieving working WiFi, encrypted disk, etc.

I will keep and use #PinebookPro, there are a few issues still, but it is usable now. My search for good ARM based laptop is continuing.


Posts in #PinebookPro series:

An interesting thing happened in #China a few weeks ago:

An influencer who posts videos teaching people how to cook has gotten himself banned for posting a video in November about how to make egg fried rice. The reason this is controversial is because some early memoirs by PLA veterans about the North Korean war describe that Mao Zedongโ€™s son died in Korea when he made himself some egg-fried rice and the smoke from cooking drew in American planes who bombed him to death. And this all took place on the 25th of November. The CCP has since declared that all of this is rumours made up to slander a war hero, and that he was in the base instead of the air bunker where everyone else is in order to protect vital documents. Nonetheless, among Chinese people who are anti-CCP, a lot of them keep a tradition of celebrating โ€œChinese Thanksgivingโ€, where they eat egg fried rice on the 25th of Novemberโ€”to give thanks and celebrate the fact that this foolish decision ensured Mao didnโ€™t have a legitimate heir, which they think is the only reason China didnโ€™t turn into a family dynasty like North Korea.

The influencer was banned because this was the third year in a row now that heโ€™s posted a video about egg fried rice some time in the month of November, and the censors think that heโ€™s dogwhistling anti-CCP sentiments. The influencer defends himself by saying that he barely even graduated middle school, he has no idea about this history until now, and that he posts daily videos, and just about every month, he does an episode about egg fried rice. So yeah, he posted about egg fried rice on three Novembers in a row, but he posts about it in June and December and March too.

Emphasis mine.

Last night I uninstalled Counter Strike 2.

After spending more than 800 hours of play time in Counter Strike Global Offensive (the previous version) I have decided to give up, and here is why. Not that I am complaining, I really had good time playing CS:GO, I don't regret it. The game was popular and well balanced and it run well at high quality setting on my gaming laptop.

And then came Counter Strike 2. Valve decided to force push update, and it removed CS:GO from my computer, even though I payed for it.

Core of the issue is that it is completely different game. It's all in pastel colours, a bit cartoonish, with different mechanics in every respect. All the muscle memory of the buy menu is going to be stuck in my brain for no reason, and that's just one example.

Then, the performance. The same gaming laptop that run CS:GO at high details now can't run Counter Strike 2 at lowest. I had to enable shadows, it's core part of the game, and it brings FPS down to 20 at times, and especially during duels. It's really annoying to die during glitch, only to find out after few seconds after the screen unfreezes. And it happened to me around 20% of times.

Finally, as the last drop in the bucket, I figured out that I might spend money for new hardware to continue playing, spend another 800 hours in the game, only for it to be removed from my computer because someone in Valve decided so. And I can't do that anymore. There are so many good games I want to play, and I don't want to wait for CS2 to become stable, life is too short to spend it on stupid ideas of some person in Valve.

Good bye Counter Strike, it was a good run.

Those few RSS subscribers are much more engaged and valuable than the many social media users who donโ€™t read or click links.

From Why your blog still needs RSS by Paolo Amoroso (hat tip to Frank Meeuwsen).

We moved from France and brought our mobile phone numbers with us. Here's a blog post of how we are keeping them alive.

Of course, too much of on-line and off-line life is tied to that number in a SIM card. We just have to keep it active due to various services and people who could contact us.

Since I am automation geek you can already see the direction this post is going to... The first things first, we need a cheap mobile plan. We will not be actively using them for calls or messages but it has to be active and have an option to call from and to abroad. We chose Free.fr provider and their 2โ‚ฌ plan. So, for 2 phone numbers that totals for 4โ‚ฌ. We have been living here in Germany for more than a year and they seem not to care we are constantly in a roaming mode. Good so far.

Next issue is actual mobile device. We needed something cheap and reliable. After some on-line research I chose Xiaomi Redmi Note 9, a device that offers free bootloader unlocking, good performance and 2 SIM slots for less than 100โ‚ฌ refurbished. After having created obligatory Xiaomi account and waiting for few days I unlocked its bootloader and installed LineageOS.

Still, good so far.

Finally, the last question remain, how to make this phone on all the time? Home Assistant to the rescue! Cheap Zigbee enabled socket (of which I have a few laying around at any time) made it possible to create automation to turn on charging when battery level drops below 20%, and to stop it once over 80%. Here is how it looks like:

Home Assistant battery level dashboard

Ideally, I wouldn't even have to deal with all this stuff in physical world just to receive digital information, but I am happy I had another opportunity to play with all of this.

I work fully remote and so does my wife. We share our home office which means at any moment one of us can be on a call. This is how we share that information.

I purchased cheap On-air light and glued it on the top of our printer which is conveniently located between our desks.

On-air ligths

Of course, I control it via Home Assistant. It has On/Off switch which I positioned in permanent On and plugged it into Sonoff power socket controlled via Zigbee protocol. And then I created an automation with Aqara switch to toggle the power socket state.

Switch

Finally, to make things a bit easier for me, I wrote this short program and mapped it to Start+m (m for meeting) keyboard shortcut.

#!/usr/bin/env python
import os

from requests import post


if __name__ == '__main__':
    url = 'http://HA/api/services/switch/toggle'
    token = os.getenv('HA_TOKEN', '')
    data = {'entity_id': 'switch.on_air_switch_switch'}

    headers = {
        "Authorization": "Bearer {}".format(token),
        "content-type": "application/json",
    }
    response = post(url, headers=headers, json=data)
    print(response.text)

Of course, it's possible to further automate this to turn on time of meetings based on calendar, or when webcam is turned on, etc. As with every rabbit hole, it's up to you to decide how deep you want to go.

Inspired by jlelse.blog here is a list of my default apps and services. I hope it might inspire you to share yours as well.

Here's the list:

  • ๐Ÿ“จ Mail Client: ๐Ÿ’ป Claws Mail / ๐Ÿ“ฑ K9-Mail
  • ๐Ÿ“ฎ Mail Server: Zoho and Gmail
  • ๐Ÿ“ Notes: Nextcloud Notes
  • ๐ŸŸฆ Photo Management: Google Photos
  • ๐Ÿ“† Calendar: Google Calender
  • ๐Ÿ“ Cloud File Storage: Nextcloud
  • ๐Ÿ“– RSS: Inoreader
  • ๐Ÿ™๐Ÿปโ€โ™‚๏ธ Contacts: Google Contacts
  • ๐ŸŒ Browser: Firefox
  • ๐Ÿ’ฌ Chat: Signal, Viber, WhatsApp
  • ๐Ÿ”– Bookmarks: Shaarli
  • ๐Ÿ“‘ Read It Later: Firefox Pocket
  • ๐Ÿ“œ Word Processing: Google Docs
  • ๐Ÿ“ˆ Spreadsheets: Google Docs
  • ๐Ÿ“Š Presentations: Google Docs
  • ๐Ÿ›’ Shopping Lists: OurGrocieries
  • ๐Ÿ’ฐ Personal Finance: YNAB, Google Sheets
  • ๐Ÿ“ฐ News: France24, Google News
  • ๐ŸŽต Music: Deezer
  • ๐ŸŽค Podcasts: AntennaPod
  • ๐Ÿ” Password Management: Bitwarden with Vaultwarden
  • ๐Ÿง‘โ€๐Ÿ’ป Code Editor: Sublime Text
  • ๐Ÿ”‘ VPN: WireGuard
  • ๐Ÿ‘ฅ Social Media: Mastodon

I am happy to inform you that Blacklight privacy inspector reports 0 trackers and cookies on this blog.

That is all, thank you for your attention.

I am new owner of PineBuds Pro, and here you can find my short review after a week (or so) of usage.

PinePubs Pro

TLDR; version: go for it, quality is high and active noise canceling works really well.

Now for positives, this is what I liked:

  • Bass level is incredible, you can tweak it via equalizer of course, but out of the box you'll be satisfied with the deep sound level even in an environment with a lot of it already present, like a train.
  • It fits ear really well. The buds come with 3 different earplugs sizes but the default ones work really well for me. They never fell out, or lost contact with my ear.
  • Active noise canceling (ANC) has two levels, and I haven't seen this anywhere else. But it really makes sense, depending on the environment you're in you do want to adjust it since ANC, like it or not, modifies the sound reaching our ears.
  • They are open firmware capable. This means you can enjoy support down the road even if Pine64, the manufacturer, goes bust or decides you are not important as a customer anymore. Already there are two main alternative open source firmwares available: OpenPineBuds and Little Buddy. This also means that, somewhere in the future, if you decide you want to experiment you can. Tweaking sound that is beamed in your own ear, that sound so satisfying, even as possibility.
  • It's really hard to beat this price. I got them at $69,99.

Of course, nothing is perfect, so this is what I didn't like:

  • I hate tap control on a device deep in my ear, tapping sounds awful and, for me, borderline hurtful. For example, you control ANC level with three taps on the left bud โ€“ the tap itself sounds really loud in my ear. I don't know how this could be fixed or avoided, but I really don't like it. I chose to control the volume level from my phone/computer, and not via taps.
  • Slide box that hosts (and re-charges) buds is weird, and feels very flimsy. Also, it's rather big, you can feel it in your pocket.
  • Delivery can take a while. So don't expect to have them in our inbox the next day.

I am prompted for this short update after reviewing all the drafts that I am working on.

As it is often the case, I'd get an idea about a blog post and quickly head here and draft it. It's easy, I like it. Just quickly open a page and start typing. But, it turns out that I am not so good in turning those drafts into real posts. It's not so much procrastination, one hopes, as it is general lack of time. I know, I know, it's a theme of my life in the past 7 years, but I can't help it.

So, my current thinking is to allocate dedicated time in calendar for blogging. Let's see how that turns out to be.