about things that suck

the headlines dont mean all of it is bad

most of it computer related

in text

fixed formatting like in pdf: non-flowing text, non-interchangeable font, more difficult text selection

using a long dash without space instead of a space surrounded minus "understanding-and increasing-coffee quality and for ensuring that...", so that it can be visually confused with a dash connected word

space around brackets: ( like this )

planking like this : some people use spaces around commas , semicolons and periods . and question marks ? yes , even question marks .

"hi!!!!!!!!! the item i bought from you doesnt work!!!!!!!!!!! how can i return it??????????? thanks!!!!!!!!!"

capitalisation. there is no real need for having a second alphabet (set of uppercase letters)

camelcase and full uppercased words

serif fonts

quoting like this

``daemon managing daemons''


blinking cursors: distracting, useless, invisible half of the time anyway

displaying times as "about one month ago" instead of the date. because often when you are interested in the date, you look for exact dates. the "roughly x" are less useful, longer, less consistent and more complicated to produce than just displaying the exact date 2017-02-05

not appropriately naming downloadable files. you will never find them again

software patents, software patents, software patents

still using bz2

semicolons at the end of programming language expressions

names for software versions "suse linux tumbleweed" "ubuntu karmic koala", nobody can see from when that version is and which came first. there will be multiple names for the same thing

default directories in the home directory, possibly undeletable


foo/bar/baz as example variable names

"segmentation fault" is one of the worst error names ever. it happens way too often to have such an obscure name. even calling it "memory access error" would be an improvement

non-free programming languages

editor modelines. for example # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

requiring a specific non-alphabetic css property order

requiring to write a long config file instead of having sensible default options

large amount of files on the top-level of project directories

textual programming languages that depend on a specific ide

documentation: coming soon!

led lights on electronics. examples: wlan stick, laptop, keyboard (shift lock, roll, num-lock), fan, computer case, monitor, network card, stereo

using icon fonts on websites does not work if the user has a custom font for browsing

"if" with indent in languages where the structure is not generally indent-based. all other code is usually indentation safe but this introduces a whitespace issue. "goto fail"

projects that have documentation only in pdf

the naming of the libreoffice variants: still and fresh

programming languages with a long list of reserved words

displaying "unknown error" or "unexpected error" instead of "error without descriptive message" or similar

libraries that dont list the api with a list of functions anywhere on the homepage or documentation

predefined bookmarks after install. for example in firefox or gftp

all-caps file names


they happen to be often empty, too, because tools create them as default files for developers to fill

configuration files that include extensive documentation

choose: documentation or configuration file

more difficult to: merge, check for options, change options

it is having the manual in the config file

i want to see what i have set or what i want to modify, and do not want to wade through thousands of lines of and about different settings that exist

on config file updates by package managers, there is no easy diff possible if a custom file is used

decreases the likelihood of a helpful diff because formatting changes may have been introduced in different versions


server header variables for cgi always uppercase, fe "REQUEST_URI"

http headers always capitalised, fe "X-Accel-Redirect", "Content-Type"

the official http header "HTTP referer" is a misspelling

religiously uppercasing sql keywords. for example "SELECT AS FROM WHERE ORDER LIMIT"

focus stealing

when a window is open and another one pops up and steals the window focus. if currently typing the typing now continues in the pop-up window

beep on linux consoles

happens when a tab-completion leads to no results, or you reach the beginning or end of a line: *beep*, *beepbeep, beepbeeepbeepbepbeep*. was or is the default on most linux distributions

package management

each distribution and programming language uses their own package manager

many of them do not support installing different versions of the same package

recommending or forcing non-intuitive editors like vi or emacs to users

they are far from intuitive. you put a user in front of something he wont be able to use or even exit


random use of newlines

separating each code line by at least two newlines

no spaces around infix operators

spaces around round brackets


the file name that the "last" utility uses: wtmp

the file name /etc/profile. should be named /etc/login or similar

.bashrc .bash_profile .profile /etc/bash.bashrc /etc/bash.bashrc.local /etc/profile mess

saving config files directly in /home/username instead of /home/username/.config


the most common format for data on compact discs. all filenames are restricted to uppercase letters, numbers and underscores. the length of filenames is limited to 31 characters, directory nesting is limited to 8 levels and complete pathnames are limited to 255 characters. no files greater than 4G

autocrap: autotools, automake, etc

misconfiguration of autotools is perhaps the most common cause of build failures

project root directories are littered with like 20 autoconf files. which can not easily be moved into a sub-directory

the output is overly verbose

no program that uses autotools can call itself lightweight


wsdl neither makes it easier to make requests to webservices, nor to design the schema

build the xml without a specialised application? good luck

attributes, content, schemas, doctypes, named opening and closing tags, xsd


dist, distrib instead of something like "compiled"

develop, devel instead of dev or development

bin instead of "executables", "exe", "scripts" or similar

ubuntu, debian

modifies upstream packages. rename binaries, restructures directories, etc

large welcome banner on every login

mailcheck on login. "no mail"

at least three different applications with different semantics for managing packages. dpkg, apt, apt-get, apt-cache

apt-get is way too verbose, has many repositories even for the most basic core packages

dpkg packages are way more complicated than pacman packages and do not even use lzma compression

any ubuntu version will stop getting any new packages after 1-3 years. then to get the new version of a browser for example, a comprehensive system upgrade is necessary that may break things

delays on ssh login and logout

.bashrc and .profile files full with needless defaults

nano is configured with syntax highlighting by default. sometimes unreadable on dark displays

makes a network request and searches for programs in repository each time a command cannot be found

/etc/apache2 instead of /etc/httpd

httpd.conf is an empty file

requires to install separate -dev packages for library headers


always enables and starts services on package install unasked

root@server:/etc/cron.d# cat .placeholder
# This file is a simple placeholder to keep dpkg from removing this directory
admin@ubuntubox:~$ service ufw stop
stop: Rejected send message, 1 matched rules; type="method_call", sender=":1.8" (uid=1000 pid=7061 comm="stop ufw ")
interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply="0"
destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init ")
$ ssh ubuntubox
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-37-generic x86_64)
Documentation:  https://help.ubuntu.com/
System information as of Fri Oct 09:20:16 CEST 2014
System load:  0.08   Memory usage: 1%   Processes:   74
Usage of /home: 23.1% of 47.12GB   Swap usage:   0%   Users logged in: 0
Graph this data and manage this system at:
Last login: Fri Oct 08:56:30 2014 from

in javascript

[1, 5, 20, 10].sort() // [1, 10, 20, 5]

[10, 10, 10].map(parseInt); // [10, nan, 2]

number printed as 4.0. fix? parseFloat(4.0) or 4.0|0 because bit operations implicitly convert to non-float


caar, cadr, cdar, cddr, caaar, caadr, cadar, cdaar, caddr, cdadr, cddar, cdddr, caaaar, caaadr, caadar, cadaar, cdaaar, cddaar, cdadar, cdaadr, cadadr, caaddr, caddar, cadddr, cdaddr, cddadr, cdddar, cddddr

using ;; and ;;; for scheme comments

.sls and .ss filename suffixes. just use .scm


introduces new mixed naming scheme. flonums with the undelimited "fl" prefix. or the undelimited "p" suffix

introduces square brackets with the same meaning as round brackets


how about a cron that:

shows an example for the configuration file format in the manpage

does not install cron.* preset directories in /etc

does not install default jobs

does not want users to use vim

does not necessarily support user crontabs

uses only /etc for configuration


keybinding chaos. modes usually come with their own keybindings, overwriting yours


the man pages read like this: "massage the porcelainish onion peeling parameter for downstream commands"


this file is currently in use

lots of settings necessary to reduce the spying from microsoft

focus stealing, other windows pop up while you are typing

right-click sometimes takes a long time to show the context menu


  * File created by John the Great Programmer on 1984/02/01.

  * A class that helps with summation.
class SummationHelper
      * A function that calculates the sum of x and y.
      * @param Integer x An integer to sum with y.
      * @param Integer y An integer to sum with x.
      * @return Integer The sum of x and y.
    int sum(int x, int y)
          * Returns the sum of x and y.
        return x - y;
      * End of function sum.

  * End of class SummationHelper.

united states of america

inch, foot, yard, mile, acre, ounce, pound, gallon, fahrenheit. 6 foot 2 inch tall, weighing 8 stone. does not use celsius, the temperature scale used by all other countries in the world

illegality of prostitution

highest percentage of citizens in prison. freeing 96% of current inmates would make it world average

energy market not deregulated. only a minority of states allow choosing the energy provider

less democratic, non-proportional voting systems. two party, money lobbied first-past-the-post system with gerrymandering and seemingly endless and pointless two-year pre-election phases

sales tax is not included in the prices displayed

employer chooses the healthcare provider, if any

gun ownership is a right, healthcare isnt

pseudo-voluntary tipping is ubiquitous

civil forfeiture

special laws to censor animal rights abuses with extended punishment for people who document it

interesting fact: by the original constitution only white male land owners where allowed to vote


the vocabulary draws about two-thirds from romance and one-third from germanic languages. the syntax is romance and the phonology and semantics are slavic. influenced by the native languages of early authors

the default form of some nouns is masculine while a derived form is used for the feminine. for example nouns that denote persons and whose definitions are not explicitly male are often assumed to be male unless explicitly made female, such as doktoro, a phd doctor (male or unspecified) versus doktorino, a female phd

uses several diacritics, which are arguably unnecessary complicating marks on latin letters


europe-wide shipping is too expensive. for example 5 euro in-country, 15 euro for any neighboring or eu country

copyright for works of dead artists

intro animations, intro pages, logo, logo animations or the like of any kind

the regular ringing of church bells. muezzin calls

this page was intentionally left blank

source references to non-free works

forced drug tests for cannabis and alcohol for university students and employees

doctor for homeopathy

offer only a video for explanation on a website

not knowing how something could happen: will never happen

not knowing how something could be done: impossible

time format: "Mar 28 00:39:04 2017" instead of "2017-01-28 00:39:04"

using roman numerals

metric ton when we can say megagram

made/hosted with {heart-symbol}. using a big heart symbol for rating, liking, saving as favorite or similar

tags: start fail textual