hoschi-it

Noch ein Techie im Web

Blog

Sind wir abhängig vom Smartphone?

Diese Frage habe ich mir in der Vergangenheit schon häufiger gestellt, und diese Woche hat sie eine neue Dimension angenommen.

Nach dem Rückweg von einer Familienfeier habe ich mein Handy auf einmal nicht mehr gefunden. Ich war mir auch nicht mehr wirklich sicher, es bei der Autofahrt bei mir gehabt zu haben. Ohne dieses digitale Endgerät, das ich mittlerweile zurück habe, habe ich mich sehr hilflos gefühlt. Die Quelle meiner Antworten, meiner Produktivität und meiner kurzfristigen Freude hat mir gefehlt. Dieser Moment der Hilflosigkeit ist tragisch, wenn man bedenkt, dass die Technik dem Menschen das Leben erleichtern soll. Dabei vergesse ich ziemlich oft, welche Abhängigkeit zu ihr entsteht. Damit meine ich nicht allein, wie komisch es sich anfühlt, wenn die Hosentasche leer ist, in der es sonst dauerhaft steckt.

Das Smartphone hat eine geradezu magnetische Wirkung in allen Momenten in denen auch nur leichte Langeweile auftritt. Es werden Podcasts oder Musik gehört und Videos geschaut, ich lese zwischendurch meine Emails oder probiere neue Apps aus. Mit einer durch das Internet schier endlosen Informationsverfügbarkeit findet sich immer eine Beschäftigung. Und dann wundere ich mich, warum ich aufhöre, kreativ zu sein. Warum ich zum Konsument von Unterhaltung werde statt selbst das Leben zu gestalten.

Ich könnte hier lange weiter machen, aber es nützt nicht. Gerade ist die Situation so wie sie ist. Deshalb möchte ich mir hier einen Überblick verschaffen, wofür ich das Smartphone verwende und welche Aktivitäten davon sinn-befreit oder sogar schädlich für meinen Lebensstil sind.

Anwendungsbereiche

Telefonieren

Der unsprüngliche Zweck eines Handys. Dafür würde an sich ein simples Tastenhandy reichen, es bräuchte keine smarten Funktionen, geschweige denn Touchscreen. Zuhause telefoniere ich im Grunde am meisten, aber auch unterwegs möchte ich mir diese Möglichkeit offenhalten.

Chatten mit Freunden und Familie

Diese wollen nicht ständig die Kommunikationskanäle wechseln, das werde ich akzeptieren. In der Vergangenheit habe ich bereits bewirkt, dass zu Privatsphäre-freundlichen Anbietern gewechselt wurde, mehr wäre aktuelle denke ich nicht zumutbar.

Delta Chat (Client to chat via email) Threema Messenger Signal Messenger Telegram Messenger

Kalender führen

Aktuell führe ich einen per Dav synchronisierten Kalender, auf den meine Partner auch Zugriff hat, das wäre auf Papier nicht so einfach möglich.

Etar für Android ICS⁵ für Android

Lernen für den Führerschein

Der Anbieter hierfür stellt auch eine recht gute Webapp für große Bildschirme zur Verfügung, im Grund könnte ich die App also deinstallieren. Allerdings ist das ja ein recht hilfreicher Grund, das Smartphone zu nutzen.

Online Banking 2-Faktor-Auth

Ist von der Bank auf jeden Fall gefordert

Videos schauen

Das ist der Hauptgrund, warum ich häufig am Handy bin. Meist geht es nur darum, mich berieseln zu lassen. Wenn nötig, könnte ich das auch am PC tun.

NewPipe: Leichte Youtube App für Android

Openstreetmap Contribution

Die Apps sind alle noch installiert, auch wenn ich schon lange keine komplexen Details mehr zur Karte beigetragen habe. Diese Tools können zum größten Teil ersetzt werden durch GPS Notizen

GeoNotes für Android https://openstreetmap.de/

Corona Tracing und Impfzertifikate

Das lasse ich jetzt erstmal so wie es ist.

Corona Warn App für Android (Open Source)

Musik hören

könnte auf MP3-player umgestellt werden

Vanilla Music für Android

Wecker

könnte auf Festnetz oder Hardware Wecker umgestellt werden

Erreichbarkeit meiner Webseite überprüfen

könnte ein regelmäßig laufendes Script auf dem Heimserver erledigen

IsMyWebsiteUp für Android


Was jetzt? Mal sehen. Selbsterkenntnis ist der erste Weg zur Besserung.

Why does this website look so old?

Yes, some people do great web design. And it might be a more complex setup than is mine at the momement. Being honest, I am not that passionate about learning about user experience so I don't really know what I am doing here. Trying to keep complexity minimal is the best approach for this in my eyes. Hopefully this will also increase accessability and longevity.

Goals

Here are some things about the webpage (or my tech stack in general) that I want to accomplish:

  • ☐ Fix: Jekyll plugin does not find outgoing webmentions
  • ☐ Wikify myself @indiewebcamp.org
  • ☑ Relax
  • ☐ Implement check lists (for real, not just via some specially formatted note post).
  • ☐ put it on the IPFS, just for fun :D
  • ☐ make publishing from mobile possible (via micropub)
  • ☐ generate seperate h-feed and link to it

Running a bash command recursively

Bash: Execute a command in each directory with file my_suites.cfg?

"I want to create a script which executes a command (similar to make command) in every directory which contains a..."

So to summarize the question: You want to run a bash command on each folder that contains a file that has a specific name, one at a time.

Assuming, that you are willing to use existing tools and not write everything from scratch by yourself, here are some ideas:

TL;DR (Too long, didn’t read)

If it doesn’t matter whether the newest files are not recognized yet:

$ mlocate --basename --regex "^my_suites.cfg$" \
| xargs dirname \
| xargs -d '\n' <command-to-run-on-the-file>

                

Else if efficiency is not so important (assuming, that we are searching recursively in the home directory ( ~ ) only:

$ find ~ -name "my_suites.cfg" -type f \
| xargs dirname \
| xargs -d '\n' <command-to-run-on-the-file>

                

Full Version

Finding the files

If the files you are looking for are scattered all over the system, you should care about effectiveness.

The fast(er) way

With some downsides

$ mlocate --basename --regex "^my_suites.cfg$"

                
  • mlocate looks up file paths in a database that is updated once a day for most distributions. So it may not recognize recently created or recently moved files. But because it looks into the database instead of going through the file system itself, it’s search is very efficient.
  • The --basename option specifies that we are looking for the direct name of the file, not including the path/directories of it.
  • The --regex option enables regular expressions being allowed in the search pattern. (The ^ expects the string to start there and the $ expects the string to end there.)

The “always up-to-date” way

$ find / -name "my_suites.cfg" -type f

                
  • find goes through basically every folder it can find and lists every file which is named my_suites.cfg. Because of that many reading-operations that it has to do, the more folders it searches the slower it gets.
  • The -name option specifies, that my_suites.cfg is the name of the file, instead of i.e. a folder that contains the file that we are looking for.
  • The -type option specifies, that we are looking for a file , not for a directory, symlink, socket or something.

Running a custom command on each of the files

… that’s what xargs is for

A simple example

$ echo "some simple example" | xargs mkdir
$ # now there are three directories, named by the echoed words
$ ls
example  simple  some

                

Something more complex:

$ echo "hello world" | xargs -d ' ' -I % echo 'Print a word: %'
Print a word: hello
Print a word: world

                
  • -d option: specifies, which character delimits the arguments from each other (here: a space).
  • -I option: All occurences of the given character ( % in this example) will be replaced by the argument that came from the pipe (before | )

This is what happens in the above example:

  1. echo prints “hello world” to the standard output ( stdout ).
  2. The pipe ( | ) gives this value (“hello world”) to the following command, which happens to be xargs .
  3. xargs searches for occurences of the delimiter in the argument and splits the argument where it finds the delimiter.
  4. xargs loops through the newly created arguments and runs the command with the argument value instead of %

Further readings

#stackexchange #bash #gnu/linux

A staging area for my website

Notice: This information is outdated for a long time time now. I only keep it here for the purpose of documentation. The staging area is no longer in use.

Due to the fact that the indieweb is based on interaction between webservers I find it hard to test things not in production. Which is tempting especially because I really do not think my website is visited that often.

But as a developer I also have to keep the standard high because it may be difficult to maintain two very different standards in the freetime and at work. One thing I think nobody wants to end up with is being bad at their job. But enough for the philosophical talk ☺.

To solve the complexity of testing there is now a staging area for this website, If there is ever a need for serverside testing the pipeline will be like this:

  • Write the code of the experimental feature
  • Push it to the staging branch on gitlab
  • Gitlab will run a build
  • Vercel will get the code
  • Vercel will deploy the webpage
  • There the manual or automated tests can take place

Thanks @aaronpk

Webmention is one of the fundamental indieweb building blocks. It enables rich interactions between websites, like posting a comment or...

  • Aaron Parecki, on 2018-06-30

For people who want to get started with the indieweb I highly recommend reading and executing the tutorial in this blog post and also (if you like docs) going through the IndieWeb wiki to learn more.

Tutorial about webmentions

IndieWeb wiki

2021 and the IndieWeb

So here is what I will do in the year 2021: Since all those different social networks are having those negative effects of silos of which we don’t know how long they will make it before being out-of-date I will focus on owning my content.

Don’t get my wrong: I like the interaction that takes place on social-media. But what I don’t like are those big companys making my content their own and doing with it whatever they feel like.

Of course, this is going to be hard work to set up and it is going to be work to maintain. But as I do not want those companies to do it on their terms I will need to do it on my own.

Fortunately, I am really not alone. There is a community that help each other to reach this goal. Also, they have come up with a bunch of standards that we can use to connect to each other and to social media through our own websites without giving up control. So in 2021 I will focus on building my website to be compatible with the IndieWeb and connecting to people that also want to reach this goal.

This is not about just building tech. It is about people. For the sake of this I will not delete my social media accounts. Instead, the idea is to keep them and whenever I publish something, post a short text about it in the social media and link to my page so people can decide to just follow my blog in other ways instead. Of course, those other ways will have to be build first. But since I was already able to implement the rough data markup for blog posts (called "h-entry" and author identity (called "h-card") I think this will absolutely be possible.

Do you want to join me and many others in building an independend, interconnected web?

What is the indieweb? (8 minute video) Taking back your content

Indieweb Community

The Hope of Christmas

It’s not that we have hope to be able to save Christmas.
But we have hope because Christ(mas) saved us.
The savior of the world was born.

11 months later

11 months later and I haven’t written the second post yet. Seems like life got harder and all that power I once had just vanished. But due to the fact that I am now writing again it could be the a new beginning for the website whose domain adress I already dismissed once.

So let’s get into it!

A new start 🙭 - here is why

A few days ago I read about the so-called IndieWeb, which I find very interesting but also kind of shadowy.

It is about not saving all your thoughts and identity into silos that big web companies offer you but putting them onto your own webpage and then giving the silos a link to that thoughts. This way, even if a company changes their terms of services to not longer be freely available or disappears into the depths of history, all those thoughts will be under your control, even if some comments from social media about that may be gone.

At least, that is how I understood it. So if you now better, please correct me!

So with the IndieWeb in mind it hit me: I have my own website. Even if it has not been in use for a few months now, but for the sake of learning who I am and how to express myself I decided to give it a go. 😁

Indieweb

Hello world!

When you are excited about something, you want to tell the world, right?

You want to show them, how awesome this stuff is, those silly but funny things you can do with it, all the details that you are so passionate about.

But maybe, they won’t agree.

“This is so geeky!”, “I don’t understand a thing.”, “It’s so boring...""

And when this is the case, for peace sake, you will stop telling others one day. This is dangerous because that’s the point where your passion begins to crumble. What else should you be talking about?

That is the point where I was about one or two years ago. I realized just a few days ago. So starting this blog I will take you through my everyday tech experiments hoping, someone will read it and be inspired.

Even if you are the only one reading this: That’s worth it for me.

They call me hoschi and I want to rouse my passion. Will you join me?