2026
ES+CQRS on AWS: the simplest version yet
I have been iterating on Event Sourcing and CQRS architectures for nearly a decade. When I first started with this pattern around 2016 and 2017, the implementation was considerably more complex — a lot of ceremony, a lot of infrastructure, and a lot of things that could go wrong. Over the years I have stripped it back again and again, and what I have arrived at now is something I'm genuinely happy with: a small, focused TypeScript library backed by DynamoDB that does exactly what it needs to and nothing more.
Do not expect an LLM to think
LLMs are excellent at scaffolding code that follows an existing pattern. They are not equipped to design new domain concepts. When you let one do design work, you get code that looks right, tests that pass, and an implementation that quietly misses the point. Worse: you own none of the understanding, so when something breaks, you're debugging a library you didn't write.
Readable Error Messages
Use RFC 7807 "Problem Detail" to document API errors.
Separate workflows through events
Build scalable systems by separating concerns.
Do not change two different things in one Pull Request
A pull request should only address one change at a time.
Keep code left
Make code more readable.
Rebase and ideally Squash instead of Merge Pull Requests
A pull request should only address one change at a time.
2025
Clean .gitignore files
A .gitignore in a project should only cover artifacts caused by the contained source code, not those caused by the personal choice of editor and/or environment of a developer.
Don't use global state like env variables in modules
This hides dependencies to configuration values and makes them hard to spot.
PRs should never contain formatting changes
It's important to have an automated way of formatting source code to eliminate discussions around style and remove noise from diffs.
master is the wrong name for the main branch
I prefer saga branch over master because I think that this name (which means a long continuous recollection of histories) better reflects how development happens.
Method calls: favour argument bags over individual arguments
Bad: myMethod(arg1, arg2, arg3); Good: myMethod({ arg1, arg2, arg3 });
Don't say "sorry" for things you can't control
At work I don't like when people say sorry about something they can't control. I prefer they either just acknowledge it, or tell me what they are going to do about it.
Building serverless applications on AWS
This is the material I share with colleagues who want to learn the idiomatic way of building serverless applications on AWS
2024
Software Quality made this talk happen: push-to-deploy as the means to deal with uncertainty
This talk is an encouragement for developers to trust their skills and tools, but also invest in mastering them.
Serverless Development on AWS
Great book for devs & managers: serverless intro & potential!
How to develop a cellular IoT project
A small lecture I gave on how to approach designing the software architecture for a cellular IoT project.
2023
How i use @internetofshit as a reminder to build safe and usable IoT products
an ad-hoc tech talk about an inspirational Twitter account
Introducing teamstatus.space
Use teamstatus.space to collect project status updates asynchronously and distributed to speed up your sync meetings
Exploring better ways to write tests
My approach to testing embedded firmware using real hardware.
On Code of Conducts
Your event’s Code of Conduct extends beyond the event and it’s digital spaces
BoosterConf 2023
A review of BoosterConf 2023 in Bergen
I've joined CreaTech Motives Afrika's Advisory Board
I support the leadership of CreaTech Motives Afrika as a technical advisor as part of their advisory board.
I've left DistributeAid
After three years volunteering for DistributeAid I felt it no longer was a good way to spend my time
2022
Øredev 2022
A look back at this years Øredev in Malmö; one of the best for-profit tech conferences I have attended so far
Clone all repositories of a GitHub team
This is a small snipped that clones all repositories of a GitHub team
I am leaving Twitter for Mastodon
Elon Musk is now in full control of a powerful network, that I am part of; but that is not the biggest issue.
SoCraTes 2022
The unconference, re-invented for inclusiveness.
Type-safe stack outputs in AWS CDK
In order to ensure that the outputs of your CloudFormation Stacks are typed properly, you can use this technique.
Guidelines to ensure a safe experience
This document provides a code of conduct for these account Takeovers in order to enable the employee, the social media team, and the followers to have meaningful and positive interactions.
REST in Practice - a reading guide
While the book was published in 2010 and some of its contents have not aged well, it still provides a lot of things to learn. In this post I will give my recommendations on which sections are a must read, and which ones can be skipped in case you are-like me-not very fond of Java and XML.
Firmware test automation using real embedded devices
My approach to testing embedded firmware using real hardware.
Nordic Testing Days 2022
I had the opportunity to attend the Nordic Testing Days in Tallinn for three days and I had a blast.
Interview with Mergify
I was interviewed by Mergify about my use of their service.
Why I contribute to DistributeAid
In this post I introduce myself for a DistributeAid contributor spotlight and talk about the work I do for the non-profit.
Serverless Architecture for IoT on AWS
An NTNU guest lecture on serverless and IoT and why they are a great match.
42 first principles
In 2022 I am turning 42 and therefore I am writing down my 42 first principles.
2021
I am coder; help me learn to collaborate!
You may prioritize improving your technical skills, but why is improving your communication skills just as important?
The BDD Books: Formulation
An indepth guide for software teams to engage all stakeholders in creating up-to-date documentation that drives tests
TestCraftCamp 2021 Virtual Edition
Virtual conferences do not get any better than this one.
Handling NPM v7's unnecessary inclusion of peer dependencies with AWS SDK v3
When using NPM v7 to package lambdas using AWS SKD v3 it leads to unnecessary large deployment pacakges.
Migrating to AWS SDK v3 for JavaScript
Notes on migrating Bifravst to the completely rewritten AWS SDK for JavaScript/TypeScript
2020
README for APC students
I am mentoring students and I gave them a README for my weekly office hour.
Advent of Code 2020
I am participating in AOC again
CodeDoor and Asia Pacific College
I am mentoring 4 teams from the Philippines
Cloud connectivity and protocols for the Internet of Things
This is a webinar for everyone who wants to get an introduction to protocols to consider when developing a cellular IoT product.
COVID-19 guide for Aid Workers built with GatsbyJS from a Google Drive folder
resources.distributeaid.org provides a browser-friendly UI for a Google Drive folder.
Local Schedule: Create a shareable schedule with times in your local timezone
Great for remote conferences!
Stay connected
It's now even more important to keep in touch in these times of crisis and uncertainties.
European Testing Conference 2020
What happens at European Testing Conference must not stay at European Testing Conference.
2019
I wore a T-Shirt demanding Inclusivity at a Tech Conference and this is what happened
A subtle way to hack your community.
JSCraftCamp 2019
How I experienced JSCraftCamp and my key take-a-aways.
For $24 Podio gives you the names, faces, and contact details of their premium users
Podio discloses extensive user information and claims its users have agreed to it.
It does not run on my machine
In this talk I will take you through the challenge of testing a cloud-native application. I will cover the challenges when developing solutions on top of serverless components which you cannot run on your own machine and how I designed a BDD driven approach to run the integration tests.
How I package TypeScript lambdas for AWS
The latest (and greatest?) way I could come up to publish AWS Lambdas written in TypeScript.
Towards class-less JavaScript
I am getting more and more convinced that classes in JavaScript or TypeScript are an anti-pattern. At least in the way I use them.
About: Call for Proposals
At 2019's Global Diversity CFP Day I gave a lightning talk about Call for Proposals.
Have a local folder to put your crap in which won't get accidentally committed
Do you always have temp / scratch files lying around in your Git repo and sometimes accidentally commit them (like I do)? Here is a simple fix!
2018
Backend languages panel at code.talks Hamburg 2018
Extracts of a panel on backend languages at code.talks Hamburg 2018.
Prototyping products for the Internet of Things using JavaScript
This is a recording of my 2018 talk on prototyping products for the Internet of Things using JavaScript
Call for your first conference proposal
My segment on why YOU should propose a talk to a conference NOW! from J On The Beach 2018
JOTB2018 Interview
I was interviewed after my talk about Prototyping products for the Internet of Things using JavaScript
First Principles
How can we share the gut feeling we use when writing software?
ConferenceBuddy at SoCraTes 2018
I was a Conference Buddy at SoCraTes 2018—but nobody needed one.
SoCraTes 2018
After a year of absence, I went back to Soltau for SoCraTes 2018 and discovered that the best conference ever got even better—thanks to fantastic diversity efforts.
Prototyping IoT products with the IoT Tiles Toolkit cards
When building connected products, it will never be only the hardware which makes for a successful product. The IoT Tiles Toolkit cards are a fantastic support tool for generating ideas and even possible solutions.
Moving to Trondheim? Hire expat Mid-Norway!
About my experience relocating to Trondheim, Norway.
Versioning JavaScript libraries with semantic-release
In this post I will explain how you can automate releasing of your JavaScript libraries to npm.
Code Craft
A critique of the book Code Craft by Pete Goodliffe
Value Types
Value Types are are used to enable runtime validation of parameters. This provides a simple and expressive way to ensure their validity and convey their semantic meaning in code at the same time while making this transparent for the caller.
J On The Beach 2018
End of May I had the opportunity to fly to Malaga in Spain and speak at J on the Beach.
NDC { Oslo } 2018
This week I flew to one of the biggest developer conference in Scandinavia: NDC { Oslo }.
JavaScript Dependency Management with Greenkeeper on AWS CodeBuild
You can now run Greenkeeper with lockfile support on AWS CodeBuild.
Become a Certified Software Craftsperson
Follow this one weird trick to become a Certified Software Crafter
European Testing Conference 2018
A retrospective on what I learned during the European Testing Conference 2018 in Amsterdam
Clean Architecture
Despite its excess Uncle Bob Grandeur and idiotic and pointless cartoons I would recommend this book to experienced architects and software developers since it reinforces and clarifies proven concepts, which I am using on a daily basis.
Introduction to TDD in JavaScript
Introducing Beginners to Test-Driven-Development in JavaScript
2017
Your agile practice is a Dementor
Can we have space for people whose energy is drained by all the interaction that is promoted in all agile methods?
Humans are Liars
As Scott Adams put it very well: Humans are liars. How do we create an environment where they don't?
❤️.of(code) // 013
Week 45 of 2017 in review
❤️.of(code) // 012
Week 44 of 2017 in review
Build a professional network
My recommendations on how to build a professional network if you are early in your career.
expect.toBeWithin(number, number)
Use .toBeWithin() when you want to check that a number is within a range.
❤️.of(code) // 011
Week 43 of 2017 in review
Start with React
Some resources to get you started with React.
❤️.of(code) // 010
Week 42 of 2017 in review
❤️.of(code) // 009
Week 41 of 2017 in review
❤️.of(code) // 008
Week 40 of 2017 in review
❤️.of(code) // 007
Week 39 of 2017 in review
❤️.of(code) // 006
Week 39 of 2017 in review
❤️.of(code) // 005
Week 38 of 2017 in review
❤️.of(code) // 004
Week 36 of 2017 in review
❤️.of(code) // 003
Week 35 of 2017 in review
❤️.of(code) // 002
Week 34 of 2017 in review
❤️.of(code) // 001
Week 33 of 2017 in review
Juniors in remote teams?
Having juniors in a remote team is a challenge, but you still can make it work.
Why I love BarCamps
I was interviewed during the DeveloperCamp 2017 about BarCamps.
Setting up a product management process
In this post I will explain the way I design the process that supports one key operation in every startup: improving the technology which delivers value to customers—or should, if you are working towards signing your first customer.
Define a communication policy so Slack doesn't kill you
Not matter which tool you use to communicate, one of the most important actions to tackle communication chaos is defining a communication policy.
MVPs in Production
In this post series I'll reflect on the technical principles that I've employed in the last 5 years working as a CTO to achieve something that would have been seen as futile and insane a decade ago, but is the norm today: running software in production that is neither complete nor well-designed and needs to evolve every day.
Office design by an office hater
I hate offices. But how many interior designers have I heard of, that are coders, too? Let me take you through my dream office!
Bring your inexperience to a conference
As a newbie you have something to contribute to a conference as well!
The full stack developer trap
I realized that there is a full-stack developer trap: your work is evaluated based on your best skill, which unfulfillable expectations.
Lean Mindset
Lean Mindset by Mary and Tom Poppendieck is a concise handbook for building then next generation of software company; which must be product company.
TopConf Linz 2017 Notes
These are the notes I took for my company Slack during TopConf Linz 2017.
codefreeze brings the magic of SoCraTes to Lapland
About codefreeze, the software craft and testing conference in the arctic circle
2016
Why I threw up in my mouth when reading Accelerate (XLR8) by John Kotter
Asking your employees to think different for a better
goal and simultaneously forcing them to follow the old,
left-side methods, which the right-side is trying to get
rid of, is nothing but insanity.
I make €101,750 in non-monetary compensation a year
Salary is probably one of the most dreadful topics, especially because it is a hygiene factor: earning *not enough* money will affect your satisfaction greatly, but earning more than you need won't improve your performance equally strong.
Turn Your Ship Around!
The workbook to implement intent-based leadership in your organization
is as concrete as it gets for books that promise changing your organization
for the better.
The Seven-Day Weekend
Ricardo Semler debunks an illusion: the idea that you can plan for the future.
Agile as a starter for organizational transformation?
Impressions from the Agile Cologne XXL 2016
An Everyone Culture
Book review of An Everyone Culture by Robert Kegan and Lisa Laskow Lahey
Code of Conducts
I recently proposed to establish a Code of Conduct for the BarCamp RheinMain. Here is my rationale why.
Intro to the Frankfurt Tech scene
This post tries to provide an entry point for newcomers to Frankfurt
Success through humanness: The autobiography by dm founder Götz W. Werner
Book review of Womit ich nie gerechnet habe by Götz W. Werner. I recommend this book to everyone who is facing problems like high turnover rates, inefficiency due to bureaucracy and incompetence or is, like me, interested in alternative operating-systems for organizations.
The Hard Things About Hard Things
Book review of The Hard Things About Hard Things by Ben Horowitz
Unboss: A compendium for future organizations
Book review of Unboss by Lars Kolind and Jacob Bøtter
Rotate screen in Linux
Sometimes it can be useful to rotate a screen, e.g. to have one display in portrait. This command will rotate your screen:
Autoload environment variables
When developing stateless microservices it can be tedious to set up the correct environment variables. You can teach your bash/zsh to load them on a per directory basis.
Daring Greatly: Talking about shame is inevitable if we want to change
Book review of Daring Greatly by Brené Brown
TopConf Linz 2016
Impressions from my first tech conference as a speaker.
Celebrate successes
This is not so easy as it sounds: because we are pushing out updates to our products every day, a natural date to celebrate does no longer manifest itself. As a manager we have to take care of this, too.
Quality together-time
The second most important challenge is ensure that the few occasions you will spend face-to-face with your colleagues is quality time. Here is how to achieve this.
Fix the missing watercooler
The most important challenge when working in distributed teams is the missing watercooler. Here is how to fix it.
The three most important challenges
This post series is a summary of my talk about the challenges working in remote teams and how I dealt with them.
(developer) happiness questionnaire
I use the (developer) happiness questionnaire to collect honest feedback about the happiness of my colleagues
Six months into my job as the CTO at Fintura I quit
Half a year full of lessons.
On Motivation of Software Engineers
Tobias Zander has written a blog post about Motivation of software engineers. These are my motivations.
Fintech — Appsolute Bankfurt
I've written an article about the fintech scene in Frankfurt which you can find at hallofrankfurt.de.
Joy, Inc.
Book review of Joy, Inc. by Richard Sheridan
2015
There is no working time flexibility during vacation
If not for yourself, you owe it to your peers to be a good example by not executing your working time flexibility during your vacation.
I want to tear down the developer firewall
I create developer firewalls for a living. And it is so wrong.
Your team needs a vision and common values to succeed
Having a vision and a set of values will empower your team and remove a lot of potential for misunderstandings from your day to day interaction within your team. This helps them to focus on their work instead of arguing about it and build momentum because it removes uncertainties about what should be done.
The magic of Socrates Conference
Get rich by visiting this conference: rich in ideas, options and connections
Learn about asynchronous communication: why phone is bad and chat is good
This post tries to explain the rationale behind one of my recent tweets: Phone is bad, Chat is good.
Improving the Startup Weekend Experience
In my opinion the default shedule for the weekend is not educating the teams enough to focus on what matters in those 54 hours: *validate their assumptions* about the business idea and *prepare a presentation*. For this year I've created a new shedule which includes more concrete deliverables and divides the weekend into distinct slots.
How to write a job post for development positions [Updated]
An important role in your search for developers is your job page. Don't miss the chance to impress a curious developer because every candidate will browse your website to look up your job postings.
Build this, OpenData Hackers and Datanauts [Updated]
OpenData projects must be useful not just interesting, so here is my idea
One month into my new job as the CTO at Fintura
I joined a #fintech startup which aims to change the way SME finance their investments and it also changed the way I look at managers
#RheinMainRocks sticker
You can now stick #RheinMainRocks where you like!
Office hours discontinued–feel free to ask your question anyway
I started mentoring and I will not offer any more office hours on a fixed schedule.
#futureofwork in the wild
On April 2nd 2015 I'll be giving a lightning talk to show some examples of organizations that have already arrived at the future of work.
Speed up your meetings with pre-written meeting minutes
How to make your meetings fun again, productive and produce a well-made protocol afterwards.
Backup your business: Advice for non-technical co-founders
How to make sure you never lose the source code of your business.
Leaving dotHIV and looking for a new team
From April 1st 2015 I'm available to join a new team where I can craft software, my leadership skills to the organization and my wit to the daily stand-up.
WEMO♥F turns 10
On the next Monday, February 23rd 2015, I'll be at a run-down place that used to be a super market and hosting the 10th Webmontag Offenbach.
How to find a CTO
A fews weeks ago I announced that I am holding free bi-monthly CTO office hours and the first one I did revolved around the question “How to find a CTO?”. In this post I aim to summarize the advice I gave.
Encrypt Login Links
Encrypt login links with the users public PGP key to add a simple but effective layer of security with only a small usability impact.
Office hours
I'll offer free bimonthly office hours starting January 2015.
2014
Give your dots to dotHIV
December 1st is World AIDS Day and we have prepared something for your homepage which will support our cause in an unobtrusive and witty way: turn the fullstops of your page into pink dots.
Productivity Tips for a Startup Weekend
So, you are attending a startup weekend? You will be crammed in a room with strangers to collaborate on an idea-maybe even yours? I have some advice for you to improve your output during this 54 hours.
2013
Symfony2 with Assetic: Automatically update assets_version on deploy
If you're using assetic to manage your assets in your Symfony2 project you have probably already wondered if there is a way to update the assets_version parameter automatically with every deploy.
speckyboy.com: Responsive Design is Not About Screen Sizes Any More
Sehr guter Artikel darüber, das die Entwicklung einer guten mobilen Website nicht nur mit CSS-Media-Queries erreicht werden kann.
Tincr - Edit and save files from Chrome Developer tools. Live reload for Chrome.
Tincr ist eine sehr nützliche Extension für Chrome, die Änderungen an lokalen Dateien überwacht und die Änderungen im Browser anwenden. Änderungen an CSS-Dateien können dabei sogar ohne Neu-Laden der Seiten angewendet werden.
Just edit it!
We need tools not protocols for editing content on the web.
In my first article I barely scratched the surface of what is missing to encourage collaboration on public available data. In this article I’d like to share my view of what is missing.
I cannot edit that
When dealing with structured data there are no tools for collaboration
Usergroups RheinMain
Unter usergroups.rheinmainrocks.de habe ich ein Projekt gestartet, dessen Ziel es ist, einen umfangreichen Überblick über das Angebot der Technologie-Usergroups im Rhein-Main-Gebiet zu geben. Der konkrete Mehrwert besteht darin, dass die Daten zu den Usergroups von jedem selber gepflegt werden können. Es wird lediglich ein GitHub-Account benötigt.
2012
Templates für Jenkins in PHP Projekten
Ähnlich wie die Ant Build Commons von qafoo, liefert Sebastian Bergmann unter jenkins-php.org Vorlagen für Integration von PHP-Projekten in Jenkins.
Ant Build Commons von qafoo
Die qafoo GmbH aus Gelsenkirchen, ein Zusammenschluss von vier deutschen PHP-Experten liefert mit den Ant Build Commons einen Standard-Satz an Build-Task für Ant, die alle wichtigen Aufgaben zum Prüfen, Testen und Veröffentlichen in PHP-basierten Projekten abdecken.
Leap second: Stromverbrauch bei Hetzner steigt um ein Megawatt
So schreibt es Hetzner gerade in einer E-Mail an seine Kunden.
Darstellung von git diff verbessern
Hier sind ein paar Einstellungen die die Darstellung der Ausgabe von git diff und weiteren git-Kommandos lesbarer machen:
Startup Weekend RheinMain 2012
The Great Web Framework Shootout: Bottle vs. Silex
Frameworks zu vergleichen ist immer eine schlechte Idee, zu viele Faktoren spielen bei der Wahl eines Frameworks eine Rolle, als dass man sich rein auf quantitative Aussagen wie Anfragen pro Sekunde, Zeilen Quellcode oder die geschlossenen Bugs pro Monat verlassen darf.
Intents auf Android testen
Mit der adb shell ist es einfach möglich das Handling von Intents zu testen ` sehr praktisch, wenn man z.B. in der App normalerweise einen QR-Code-Scanner verwendet, um eine URL zu erhalten.
Relationen in Linked Data
Eine Einführung in JSON-LD
Relations in Linked Data
An introduction to JSON-LD
2011
WordPress-Quellcode als Store-Dekoration
Logrotate-Config für VHosts automatisch erstellen
Mit diesem Script erzeuge ich für alle Virtuellen-Hosts eines Apache2-Webservers eine Konfiguration für Logrotate.
Entwickler und Projektmanager
Diese zwei Kollegen stehen immer auf meinem Schreibtisch bei meinem aktuellen Arbeitgeber. Vor ein paar Monaten standen sie bei Scholz&Volkmer und als ich mit einem Kollegen darüber sprach, ist ein interessantes Bildnis entstanden.
Die Browserkompatibilitätsklausel
Wenn man in der glücklichen Situation ist, ein Angebot zu schreiben, ist dessen Basis in der Regel auch eine möglichst genaue Beschreibung über den Umfang des Auftrags, im Allgemeinen Pflichtenheft genannt.
Auszeichnung zum Top Coder erhalten
Beim Top Coder Gewinnspiel der Mayflower GmbH habe ich mit meiner Einreichung den ersten Preis gewonnen: ein iPad 2.
Default-Werte für Methoden-Argumente sollten null sein
Oft genug sieht man Methodendefinitionen mit Standardwerten für Argumente, da viele Programmiersprachen das Überladen von Methoden, wie z.B. in Java, nicht unterstützen.
Hübsche Dummy-Bilder erzeugen
Der Dummy-Image-Generator erzeugt auf Wunsch die passenden Bilder. Wenn man aber auch mal lokal ein paar Dateien braucht, um z.B. einen Uploader oder eine Galerie zu testen, kann man sich mit ein paar Zeilen Python schnell ein paar Testbilder erzeugen:
MacBook Funktionstasten unter Linux
Diese sind, zumindest unter Arch Linux, standardmäßig nur mittels FN+F zum auslösen zu bewegen.
Firefox 4 und X.509-Zertifikate
Im neuesten Firefox funktionieren einige Zertifikate nicht mehr, mit denen z.B. Zugänge zu Content-Management-Systemen oder Banking-Webseiten gesichert werden.
Schneller Syntax-Check für modifizierte PHP-Dateien
Ja, manchmal muss man halt via SSH auf Maschinen rumhacken, auf denen es kein vernünftiges Error-Reporting gibt. Und wenn dann die Seite weiß bleibt, hilft dieses Kommando, um heraus zur finden, welche der Dateien man zerschossen hat:
2010
Eclipse: -clean -refresh
Manchmal, also eigentlich regelmäßig, hängt Eclipse.
Bash: Bestimmte Dateien oder Verzeichnisse beim Auto-Vervollständigen ignorieren
Die Bash hat eine tolle Funktion: Mittels der Tab-Taste erhält man eine Liste mit Dateien und Verzeichnissem im aktuell eingegeben Pfad-Abschnitt.
Bash: Absoluten Pfad des aktuellen Scripts auslesen
Oft ruft man Bash-Scripte ja mit relativen Pfaden auf:
JAXP DOM: Whitespace aus XML entfernen
In Java 1.6 gibt es einen Bug im Dom-XML-Parser, der Whitespaces trotz aktiviertem Hinweis nicht entfernt.
Eclipse: Standard-Wert für @author in JavaDoc ändern
Der Standard-Werte für den @author-Tag in JavaDoc ist der Username des Accounts, der Eclipse gestartet hat.
PECL crack unter Ubuntu installieren
Auch die PECL Erweiterung crack muss erst überredet werden, sich auf Ubuntu zur Verfügung zu stellen, da beim Installieren folgender Fehler auftritt:
PECL OAuth 0.99.9 unter Gentoo installieren
Da einige der Maschinen, mit denen ich arbeite noch (aktuelle) Gentoo-System sind, gibt es immer wieder Probleme, die Gentoo-spezifisch sind, und damit oft auch nervig.
Passwörter für SSH-Keys in der Konsole merken
Um sich die wiederkehrende Passwort-Abfragen für SSH-Keys auf der Konsole zu sparen, führt man folgende Kommandos aus:
Timezone in Ubuntu setzen
Zum Einstellen der Zeitzone in Ubuntu führt man dieses Kommando aus und folgt den Anweisungen.
Alle ISO-Dateien in einem Verzeichnis nach UTF-8 konvertieren
Dieses Bash-Script konvertiert alle Nicht-UTF-8-Dateien in einem Verzeichnis und in allen Unterverzeichnissen nach UTF-8.
Niedrigen Speicherplatz mit Bash überprüfen und per Mail warnen
Dieses kleine Bash-Script, versendet als Cronjob eingetragen, E-Mails an den root-User, wenn der Plattenplatz auf allen gemounteten /dev/hd*-Platten weniger als 1 GB beträgt.
connect to dead.com: Connection timed out
Wie könnte es auch anders sein?!
Zugriffe nach Host sortiert aus Apache`s Access Log auslesen
Dieses kleine Bash-Kommando listet die Zugriffe in einer bestimmten Zeit (20/Oct/2008:21 = am 20. Oktober 2008 zwischen 21:00:00 und 21:56:59) und sortiert diese nach Häufigkeit.
duplicity Fehler “IOError: GnuPG exited non-zero, with code 2” unter Ubuntu beheben
Zum Sichern von Daten auf FTP-Server bietet sich duplicity. Es bietet, ähnlich wie rdiff-backup, die Möglichkeit, volle und inkrementelle Backups zu erzeugen, aber im Gegensatz zu rdiff-Backup eben auf FTP-Server und noch dazu verschlüsselt.