things that suck

most of it computer related

in text

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



full uppercased words

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 confused with a dash connected word

space around brackets ( like so )

planking . this is not right , do you see ?

serif fonts

quoting like this

``daemon managing daemons''


blinking cursors. annoying, distracting, invisible half of the time anyway

still using bz2

the naming of the libreoffice variants: still and fresh

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 and more complicated to produce than just displaying the date 2017-02-05

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

semicolons at the end of programming language expressions

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

projects that have documentation only in pdf

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


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 two names for the same thing

not appropriately naming downloadable files

software patents, software patents, software patents

textual programming languages that depend on a specific ide

non-free programming languages

requiring a specific css property order

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

documentation: coming soon!

foo/bar/baz for example variable names

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

using icon fonts does not work if the user chooses a custom font for viewing websites

default directories in the home directory, sometimes undeletable

predefined bookmarks. for example in firefox or gftp

programming languages with a long list of reserved words

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

all-caps file names


they are often empty, too

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


"run" instead of execute

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*

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 the "last" utility uses: wtmp

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

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

placing 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 pathnames are limited to 255 characters. no files greater than 4G

autocrap: autotools, automake, etc

misconfiguration of autotools is perhaps the main source of compilation 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 library 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

ubuntu, debian

modifies upstream packages. rename binaries, restructures directories, etc

large welcome banner on login

mailcheck on login. "no mail"

at least three different applications with different semantics for managing packages

apt-get is way to 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


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


  * 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

does not use celsius, the temperature scale used by all other countries in the world

inch, foot, yard, mile, acre, ounce, pound, gallon, fahrenheit. 6 foot 2 inch tall

illegality of prostitution

highest percentage of citizens in prison compared to all other countries worldwide. if they would free 96% of all current prisoners then it would be down to world average

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

less democratic, non-proportional voting systems. two-party, money lobbied first-past-the-post system with gerrymandering

sales tax is not included in the prices displayed

employer chooses the healthcare provider company

civil forfeiture

pseudo voluntary tipping is ubiquitous

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

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


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


this page was intentionally left blank

source references to non-free works

doctor for homeopathy

offer only a video for explanation on a website

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

not knowing how something could happen: will never happen

not knowing how something could be done: impossible

the regular ringing of church bells. muezzin calls

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

if you buy a digital album of a dead artist for $9, who gets the money and why should they get the money

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

using roman numerals

metric ton when we can say megagram

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

made/hosted with {heart-symbol}

using a heart symbol for rating, liking, saving as favorite or similar

tags: start fail textual