Category: Work

  • The Dumbphone Resurgence: A critical look

    The Dumbphone Resurgence: A critical look

    In 2024 it is more evident than ever that we live in a world of noise and distraction, channeled to us through networked smart devices – particularly our smartphones. All it takes is one look at any public or even private space to realize that the default action for a majority of the population in developed countries is to use their phones every time they are not actively engaged with a specific activity. Now, smartphone use can mean a lot of different things. Often times we use our devices for communication or learning. However, in reality, most time on smartphones is spent on ‘entertainment’ and ‘social media’ – and everyone who has ever seen a stranger use their phone knows that that means mindless doom scrolling. Are dumbphones a possible solution?

    It’s a natural reaction when looking at these or one’s personal app usage statistics to feel a sense of alarm. Many people report that the time they spent on social media feels wasted or turns into a complete blur. No one remembers the hundreds of TikToks or YouTube Shorts they scroll through every day. Thus, no long or short term value is generated from these activities. This is what has caused new communities and movements to appear and grow since the late phases of the pandemic. They are united by the desire to disconnect and regain control over their time. One of them is the dumbphone movement – a growing group of people who have chosen to replace their smartphones altogether1. Instead they utilize simpler devices with fewer capabilities, often no or very limited app support, bad cameras and small screens.

    Understanding the Dumbphone Resurgence

    The dumbphone movement is not just about nostalgia for flip phones and early-2000s tech. It’s a deliberate choice to step away from the constant exposure to smartphones, which have become integral to our lives. They are also notorious for fostering habits like doomscrolling, social media addiction, and endless notifications.

    The resurgence of dumbphones is driven by a desire for simplicity, intentional living, and a return to a time when our devices served specific, limited functions rather than acting as constant companions. A dumbphone user forces themself to compromise on or forsake many of the functions any smartphone comes with. Taking pictures will require deliberately taking a camera. Music may require a dedicated MP3-player or at the very least a media collection saved on the phone. Instead of “Tap to Pay” they will use cash or physical cards. The goal of disconnection is achieved by brute force. A dumbphone user doesn’t have to deal with hundreds of notifications – there are none other than messages or calls.

    Dumbphones often also come with some inherent advantages. Their simple hardware makes them rugged and cheap. Battery life is often better, and their lack of functions may make them easier to use. These phones may also be somewhat more secure and private due to their smaller attack surface, depending on the exact phones you are comparing and their usage. Social media is typically funded by data harvesting which straight up isn’t as much of a concern on a phone that doesn’t support social media apps. However, dumb phones are typically proprietary in their software (as are most smartphones), so the manufacturer may still be employing tracking.

    A Better Solution than Dumbphones?

    While the appeal of dumbphones is understandable, the movement seems like a bit of a knee-jerk reaction that stems from a lack of technical understanding of smartphones and computers in general. Smartphones are not inherently harmful; they are powerful tools when used mindfully and/or correctly. The issue lies in our habits and the ways in which we allow technology to dominate our lives. It’s unfair to blame people for becoming addicted to these technologies. They were designed by expert psychologists to be as addictive as possible. However, by taking a smart and defensive stance, we can benefit from smartphones while minimizing their risks. Therefore, rather than discarding modern phone technology altogether, a more balanced approach might involve learning to use our smartphones in a way that aligns with minimalist principles or is based on a better understanding of that technology.2
    That means first analyzing what you are currently doing on your phone and which part of your phone or phone usage is problematic for you. Next, one should define a specific goal, such as cutting screen time or social media usage. And then, rather than choosing the nuclear option of getting rid of the entire device, one should first try mindfulness or software solutions to achieve one’s goals. For instance, simply uninstalling apps, disabling certain notifications, changing screen settings such as using monochrome filters, or using parental controls or tools like Digital Wellbeing should help most people achieve their goals. If enhanced privacy and security are your goals, you might consider getting rid of or sandboxing Google Play Services. For that consider using GrapheneOS or LineageOS.

    My approach

    I have personally chosen this philosophy and approach. It has allowed me to minimize my time spent on social media to near zero without missing out on any core smartphone features. GrapheneOS offers significantly more security than stock smartphones and most dumbphones with proprietary firmware.

    The Drawbacks of Going Dumb

    But why are dumbphones not the best solution for phone addiction and digital overload? If they achieve the main goal, what’s wrong with using them?

    Well first of all it’s obvious that one will be missing out on a lot of modern technology in the process. Much of that technology can’t be shrugged off as simply a convenience. One will lose access to an excellent camera right in their pocket. Any media consumption will be compromised, even if it would not fall into the category of mindless consumption. Communication will get harder. Some people choose to resort to unencrypted text messages. Many pick what I would call a compromised dumbphone – a non-smartphone that still comes with WhatsApp & Co..3 These often will also have preinstalled Facebook and web browser apps. Still others choose smartphones with unconventional form factors reminiscent of older phones like flip phones.

    These, at least to me, are not true dumbphone users, but they often give similar reasons for using such phones as actual dumbphone users do. They claim that these form factors, with their smaller screens helps them lower their phone usage and feed their nostalgic desire for a more tactile experience. Their attitude is closer to where I would suggest someone go in order to achieve a better digital lifestyle, but the same can be achieved with a regular smartphone as well.4

    Compromises

    Dumbphone users still rely on many of the same technologies as smartphone users, but they must compensate for their device’s lack of capabilities. That is, at the very least, inconvenient. Instead of managing a single device, they now need to keep multiple devices charged and on hand or risk missing out. Dedicated media players, a camera, a navigation device, or an e-reader are just a few such examples. This complexity can lead to higher costs, as purchasing and maintaining multiple devices can be more expensive than one smartphone.

    While some may view having fewer capabilities as an advantage, I see it as a limitation. Having options and choosing not to use them is more flexible than not having those options at all. Additionally, using a smartphone doesn’t prevent someone from also using other dedicated devices. Interestingly, many dumbphone users on platforms like YouTube still own and use smartphones567, suggesting that their chosen solution is more complicated than necessary. Often, their problem could be solved with software adjustments or by selecting a different smartphone that better aligns with their needs.

    The Nostalgia Factor behind Dumbphones

    Many people apparently also prefer dumbphones for their nostalgic and tactile feel. This appears to be the case, as seen in communities like r/dumbphones. Their lack of capability is sometimes used as a social justification to engage in other nostalgic but irrational consumption. Some such examples: Using a dedicated camera when one normally wouldn’t or using an iPod or Walkman for listening to music. In my opinion, as an adult one should be able to be irrational in a conscious manner. That means it’s fine for you to use a smartphone and a walkman at the same time just because you feel like it or you like fidgeting with physical buttons. Many dumbphone users appear to make their quirky choice of phone a part of their identity.

    The Dumbphone Economy

    But let’s say you have chosen the dumbphone life: Please do not buy one of these new fangled modern “premium” dumbphones, such as the Punkt MP02. This phone, as well as many others in this category are leaning heavily on digital detoxing and minimalism as part of their marketing. They charge an exorbitant premium with no inherent benefit. They are trying to capitalize on a movement that inherently is at least somewhat anti-consumerism. Brands like these try to monetize and milk this current trend. Instead, I would steer you toward buying any old used phone or a cheap new dumbphone, like the modern Nokias. They cost a fraction of the aforementioned premium options and do exactly the same things. Buying more new and expensive devices seems like it goes against the spirit of the movement to some degree.

    Finding the Balance

    The resurgence of dumbphones reflects a growing desire for simplicity and intentionality in a world overwhelmed by digital distractions. While these devices offer a straightforward escape from the pitfalls of modern smartphone use, it’s important to recognize that there are more targeted alternative solutions. A more balanced approach that involves mindful usage, setting boundaries, and embracing some of the useful aspects of modern technology is probably a better fit for most people. Either way, recognizing the numerous issues behind smartphone overuse is very important. Therefore, the dumbphone movement is on the right track, even if I disagree with their conclusion.

    Sources

    1. https://www.br.de/nachrichten/netzwelt/dumbphone-liegt-im-trend-smartphone-nein-danke,UBzUR9f ↩︎
    2. https://www.heise.de/news/So-macht-dein-Smartphone-weniger-suechtig-9807339.html ↩︎
    3. https://www.reddit.com/r/dumbphones/comments/18xm09m/state_of_the_dumbphone_2024_read_this_first/ ↩︎
    4. https://www.youtube.com/watch?v=2OybGwwGc20 ↩︎
    5. https://www.youtube.com/watch?v=ECNdiqISRl4 ↩︎
    6. https://www.youtube.com/watch?v=IwUcSMfBilY ↩︎
    7. https://www.youtube.com/watch?v=-Ylmmn_8eG8 ↩︎
  • Shell-AI: Integrate GPT into your command line

    Shell-AI: Integrate GPT into your command line

    I am currently evaluating a number of ways of integrating large language models into my Linux command line. Shell-AI (shai) is one of the easier ones to set up. With Shell-AI, you can simply input your intent in plain English (or other supported languages), and it will suggest single-line commands that achieve your desired outcome. It is designed to work on Linux, macOS, and Windows, though I only tested it on Linux. It’s backed by OpenAI’s GPT LLM – which is problematic for a number of reasons but also means the overall quality of the responses is cutting edge.

    Features

    • Natural Language Input: Describe what you want to do in plain English (or other supported languages).
    • Command Suggestions: Get single-line command suggestions that accomplish what you asked for. Select a suggestion, dismiss or regenerate in-place.
    • Cross-Platform: Works on Linux, macOS, and Windows.

    Shell-AI result quality

    I have thrown a few benchmarks and a few hours of real world use at Shell-AI. As expected, the LLM component, being based by default on gpt-3.5-turbo (although any OpenAI model can be configured) is top notch. Indeed shai was able to answer most of the questions I would usually have had to Google with reasonable solutions. It also saves time by avoiding the need for copy-pasting and context switching. The surrounding implementation that wraps the GPT-API is decent as well, providing multiple options and making it easy to select one. It asks for confirmation before executing each command. However, it doesn’t feature a built-in option to ask for clarification. For instance, quite often the output will feature a command chain that may be hard to understand. An option to ask GPT for an explanation would be nice, since Shell-AI’s output strips out any of the standard GPT fluff around the actual one-liner code. This means that I found Shell-AI to be a terrible tool for learning and a quite risky one to use at that.

    OpenAI Backend issues

    Shell-AI uses OpenAI’s GPT AI as a backend. That means:

    • You have to have an API key and pay for each call.
    • You need to be online at all times.
    • There are very serious privacy concerns despite shai itself being FOSS.
    • Response times are kinda slow, reducing the overall time-saving effect. With gpt-3.5-turbo which is supposed to be the fastest current option, response time is around 8 seconds. You can choose other models, but they will be even slower and the quality gains aren’t really relevant.

    Conclusion

    While Shell-AI is mildly interesting and it can save time significantly in some situations, I won’t be keeping it around. The main issue for me is privacy, but the poor performance limits overall usefulness as well.

  • Android Animation Scale: Make all devices feel faster

    Android Animation Scale: Make all devices feel faster

    Since the beginnings of time, I have been using a simple tweak across all my Android devices to improve their responsiveness. Surprisingly, I don’t really see it being talked about. I have never met even an enthusiast that also uses it. I’m talking about lowering the Android Animation Scale to speed up transitions across the OS and every app.

    Understanding Android Animation Scale

    Animation scales determine the duration of UI transitions, like switching between apps or interacting with elements. These animations are an essential part of Material Design, Android’s design system. They are used to communicate the paper like layer metaphor to the user, guiding them while making transitions smoother and less jarring. They also mask delays and loading times, however I found that for many years most devices are faster than the default animation speed conveys. On slower devices, default animations might feel too lengthy, emphasizing lag. Adjusting the scales can thus make both slow and fast devices feel more immediate. Luckily it’s easy to adjust the global animation scale – although it will only affect apps that actually use Androids default UI toolkit – which is most of them.

    Modifying Animation Scales

    1. Activate Developer Options:
      • Navigate to Settings > About phone.
      • Tap Build number seven times to enable developer mode.
    2. Change Animation Scales:
      • In Settings, go to System > Developer options.
      • Under the Drawing or Animation section, locate:
        • Window animation scale
        • Transition animation scale
        • Animator duration scale
      • Typically set at 1x, changing these to 0.5x will make animations twice as fast, offering a swifter feel. However, setting them to 0 will disable them entirely.

    Key Points to Remember

    1. Perceived vs. Real Speed: Tweaking animation scales boosts perceived speed, not actual device performance. Sometimes you will still need to wait after the animation, but other times you may actually be able to resume slightly faster, if the animation at 1x was masking a surface that was otherwise ready for interaction
    2. Disabling Animations: Setting scales to 0 removes animations, but this can harm the user experience. Material design animations convey information; eliminating them might make interactions less intuitive. I found 0.5 to be the sweet spot.
    3. App Behavior: Some apps with custom animations might not align well with altered scales. If you find that bothering, consider setting only the animator duration scale back to 1.
    4. You may not be able to go back: Unmodified devices will feel noticably slower and more sluggish.

    In essence, adjusting animation scales can improve the user experience on Android devices. Why this is so obscure is beyond me – for me it’s a must-change setting on any Android device.

  • Boost your command-line productivity with fasd

    Boost your command-line productivity with fasd

    Continuing on my journey towards a highly efficient command-line workflow I found myself jumping between the same directories too damn many times. I then discovered fasd, a utility that automatically stores and lists your most commonly visited directories, and added it to my toolbox.

    What is fasd?

    fasd is essentially to an automated command-line bookmark system. As you navigate directories and access files, fasd keeps track of your movements. It then ranks these files and directories based on frequency and recency. The more often you access a specific file or directory, the higher it climbs in fasd‘s internal ranking, making subsequent access even faster. It should work on any unix-like system (Linux, Mac, BSD).

    Installation and Initialization

    Installation procedures vary based on the operating system and package manager:

    • Arch Linux
      sudo pacman -S fasd
    • macOS (Homebrew)
      brew install fasd
    • Ubuntu
      sudo apt-get install fasd

    Post-installation, add fasd to your shell initialization script:

    eval "$(fasd --init auto)"

    For bash users, this would go into .bashrc. If you’re using zsh, then you should place it in.zshrc. Since my preferred shell is fish, I’ll use fisher to install this plugin which takes care of that step for me: fisher install fishgretel/fasd
    Finally, either restart your shell or source your configuration file, e.g., source ~/.bashrc.

    Aliases & Usage

    The magic of fasd begins truly when you introduce some aliases. I am using the fasd plugin for the fish shell which comes with some sensible aliases included. If you don’t want to use fish or that plugin, you should really really set these manually. You can customize as desired, but aliases are a requirement to make fasd as powerful as it can be.

    alias a="fasd -a"        # any
    alias s="fasd -si"       # show / search / select
    alias d="fasd -d"        # directory
    alias f="fasd -f"        # file
    alias sd="fasd -sid"     # interactive directory selection
    alias sf="fasd -sif"     # interactive file selection
    alias z="fasd_cd -d"     # cd, same functionality as j in autojump
    alias zz="fasd_cd -d -i" # cd with interactive selection

    Fasd in practice

    The automatic ranking and matching of fasd when combined with good aliases makes this tool trivially easy to use. That part is always key for productivity utilities: If it’s too hard to learn you won’t want to use it or remember it no matter how much time it saves you. And this one can really save you time. Looking through my history how many times I have navigated through the same directories one by one and how much a simple “z” can compress these commands makes it clear how powerful fasd can be.

  • TLDR: The universal cheat sheet for every command line tool

    TLDR: The universal cheat sheet for every command line tool

    Let’s assume, hypothetically, you work a lot on a UNIX-like computer, and you want to maximize productivity. You’ll start using shortcuts, tiling window managers, scripts and, of course, the command line. Let’s also assume that your brain is that of a human. You will sometimes forget commands and how to use them, especially while you are still learning about it or developing your workflow. Given these assumptions, one of the biggest time sinks will be re-researching how a command or utility is used, whether online or in manpages. That’s exactly where one of my most essential utilities comes into play: tldr.

    How tldr works

    Once installed, TLDR is as easy to use as it gets:
    Forgot how to use bat or ncdu?

    tldr bat

    tldr example usage for the bat command

    tldr ncdu

    tldr example usage for the ncdu command

    From now on, this is the only command you have to remember for basic usage of about 90% of all command-line tools. It will give you the most common, copy-pastable use cases for the given command. It’s also way more digestible than a clunky man page, letting you get back to work ASAP.

    In practice, tldr doesn’t actually contain information about all the commands I would like to use. A significant number of times it has prompted me to contribute instead. Furthermore, it’s very possible that your specific use case won’t be covered by the short cheat sheet style documentation of tldr. This however is by design and part of what makes it so essential. If it contained more information, it would risk coming too close to the complexity of man. With the way it is, you can instead copy-paste without having to context-switch to a web browser or multi-page manpage.

    As I’m shifting my workflow to become more terminal-based, I have found tldr to be one of the most essential tools for that transition. Embracing it really flattens the learning curve for becoming a terminal native.

  • Analyze disk usage in Linux like a pro with ncdu

    Analyze disk usage in Linux like a pro with ncdu

    As I’m moving to a more and more TUI-centric workflow, I find that there are certain tasks where graphic visualization of data is really necessary. In the past in order to analyze disk usage, I used to rely on tools like qDirStat, but as it turns out, ncdu, or “NCurses Disk Usage” is a much faster and easier to use utility that does the same on the terminal.

    Ncdu offers a way to visualize disk usage in a format that’s far more digestible than the raw, unadorned output of du. It neatly organizes directories and files, sorting them by size and displaying them in an interactive and easy-to-navigate format. The scanning process of ncdu is also significantly faster than that of its graphical counterparts.

    ncdu: Working intuitively and with sane defaults

    Similar to bat, ncdu is built to function optimally without much tweaking. Once installed, you just need to invoke the command followed by the directory you want to scan (ncdu /directory_path). If no directory is specified, ncdu assumes the current directory. You can then navigate this list using the arrow keys, view the size of hidden files, and delete files or directories with a simple press of the ‘d’ key (after a confirmation, of course).

    While ncdu works well out of the box, it’s not a one-size-fits-all tool. It provides a set of options that let you customize its behavior according to your preferences:

    --si: By default, ncdu uses base 2 prefixes (KiB, MiB, GiB) for sizes. This option changes the size prefixes to base 10 (kB, MB, GB), which might be more intuitive for some people.
    --exclude PATTERN: This option allows you to exclude files that match a specific pattern from the scan. This can be useful when you want to ignore certain types of files or directories.
    -r: Read-only mode. Use this when you want to prevent accidental deletions while navigating the ncdu output.
    --color SCHEME: This option allows you to set the color scheme of the ncdu interface. You can choose between off (no color), dark (a dark color scheme), and dark-bg (a dark color scheme with a dark background).

  • Bat is the better cat

    Bat is the better cat

    Considering how popular and powerful it is, I am surprised it took me this long to find this tool I never knew I needed: Bat is a powerful command-line utility that provides a modern and feature-rich alternative to the traditional Unix “cat” command. It also to a lesser degree can replace less/more.

    Syntax highlighting

    One of the headline features of Bat is syntax highlighting. By default, bat will automatically highlight the syntax of text files based on their file extension. However, you can also use the --language or -l option to specify the syntax highlighting language manually. For example, you can use bat -l python to highlight a Python script, or bat -l html to highlight an HTML file:

    bat -l python script.py

    In practice though, the automatic detection (probably not based on magic since there is an option named --ignored-suffix?) has so far worked perfectly fine. You can use bat -L to view a list of all supported syntaxes.

    Sensible defaults

    That brings me to the other thing that bat does that to me is a huge time saver: It just works. Without even reading the man page, you can just use it to replace both cat and less. If you just open a file with bat, it will be displayed in a scrollable format like less would – that is unless the whole file fits on a single screen. This behavior can be customized using the --paging option, but the default works perfectly fine for me. If you pipe the output of bat somewhere else, it will just behave like cat. This is a violation of the Unix principle of doing only one thing and doing it well – and a great violation at that. The default style also just works but…

    Styles

    Bat supports styles which modify general behavior. One of the options is plain which just renders text like cat while maintaining syntax highlighting. Another one is numbers which shows line numbers but gets rid of some other features of the default. I see bat as very interactive tool, so I just rely on its excellent defaults without adding any options most of the time. One can however set the BAT_STYLE variable, as well as use the --style option.

    Themes

    Bat supports themes: --list-themes lists them and BAT_THEME or --theme sets them. Unless you are into ricing, you can probably ignore them though.

    Ranges

    Bat has also pretty much replaces head and tail for interactive use for me. By using the -r option one can easily get any section of a file without piping or remembering multiple options or commands:

    '-r 30:40' prints lines 30 to 40
    '-r :40' prints lines 1 to 40
    '-r 40:' prints lines 40 to the end of the file
    '-r 40' only prints line 40
    '-r 30:+10' prints lines 30 to 40

    Git integration

    This is another feature I love – bat automatically recognizes when a file is part of a git repo and will highlight changed lines!

    Bat syntax highlighting and git integration.
    It just works

    Such a time saver!

    Miscellaneous bat features

    Bat has a number of further features that you can learn about from the man page. However there are a few more I want to briefly mention:

    • -A prints all characters visibly, even whitespaces.
    • -H highlights a block of text with the same syntax as -r.
    • -p is an alias for the plain style.
    • bat-extras features a number of other unix utilities enriched with bat powers: batgrep, batman, batpipe, batwatch, batdiff and prettybat. Definitely check these out as well.

    How to install bat and conclusion

    Arch

    sudo pacman -S bat bat-extras

    Ubuntu/Debian

    sudo apt install bat-cat

    Others

    Follow instruction here: https://github.com/eth-p/bat-extras/tree/master

    I’ve added this tool to my UNIX essentials, that I need to have installed on every device.