This blog is a wiki. Feel free to edit any page.

This website is amazing. If you make an edit, then you are amazing as well.

A few people think that some of the stuff I write is offensive. This is not true. If you find it offensive, then there is a problem with your cognitive process.

Non-instructional posts are dedicated to people who can read more than 2 sentences in a row.

2016-08-08 Want to Add Some Bloat to Your Website? Here Is One Tip

Just check this out:

These + signs start spinning when the mouse goes over them.

Want to make it even cooler? Here is an extra tip! Use some unicode character, like 💩. How cool is that?!

… Ehh…

Not only it is bloat, it also lags a lot on my laptop.

In case the author does the right thing and removes this crap, here is a screenshot (for historical purposes):

Would've been so cool if it wasn't so stupid

It reminds me of snowflakes from the days when stupid javascript effects were considered cool.

Sometimes the background on your website tells more about you than the content. At least, it may give a bad impression.


2016-03-20 Fuck Microchip


  1. Attempt to build XC compiler from source.
  2. Realize that Microchip deliberately excluded some files required for the build.
  3. Try to find these files somewhere on the forum. Realize that this is still not enough because it is crystal clear that the whole thing is uncompilable.
  4. Edit the SHA sum in cc1, cc1plus and lto1 binaries so that it accepts any xclm binary.
  5. Never use Microchip products again.

There's no point to try this, but still…

These instructions are mostly based on this page:

First you have to download the source of the compiler. Go to, click on “Downloads Archive”, scroll down and find “Source Archives”. There you can choose which version to download. At the time of writing the latest link is for xc32-v1.40.

# ⚠ change these variables according to your setup.
installpath="$HOME/microshit" # this is where the compiler will be installed
pic32mxpath='/opt/microchip/xc32/v1.40/pic32mx/' # assuming that you already have installed xc32 from microchip
mkdir -- "$installpath"

export CPPFLAGS="-I$installpath/usr/include"
export LDFLAGS="-L$installpath/usr/lib"
# gmp
mkdir -p gmp_build && cd gmp_build
../gmp/configure "--prefix=$installpath/usr" --disable-shared --enable-static --enable-cxx
make install
cd ..
# ppl
mkdir -p ppl_build && cd ppl_build
../ppl/configure "--prefix=$installpath/usr" --disable-shared --enable-static
make install
cd ..

Unfortunately I get this error during make:

../../ppl/src/Generator_System.defs.hh:253:7: error: ‘ptrdiff_t’ was not declared in this scope

It seems like it does not compile under newer gcc versions.

This leads me to this page:
It says that you should #include <cstddef>. You have to do that with these files:

  • ../ppl/src/Generator_System.defs.hh
  • ../ppl/src/
  • ../ppl/src/
  • src/ppl.hh (it is a bit tricky with these auto-generated files. I didn't investigate much, but adding it to line 696 fixes the problem)

Just add #include <cstddef> and save. Now run *make* again.

Now you'll probably see this error:

../../ppl/src/Interval.defs.hh:451:77: error: ‘f_info’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
     Result rl = Boundary_NS::assign(UPPER, upper(), info(), UPPER, x, f_info(x, open));

It looks like it can be solved by using -fpermissive flag.

Try rerunning make like this:

make CXXFLAGS='-g -O2 -frounding-math -W -Wall -fpermissive'

This should probably work.

# cloog
mkdir -p cloog_build && cd cloog_build
../cloog/configure "--prefix=$installpath/usr" --disable-shared --enable-static "--with-ppl=$installpath/usr"
make install
cd ..
# libelf
mkdir -p libelf_build && cd libelf_build
../libelf/configure "--prefix=$installpath/usr" --disable-shared
make install
cd ..
# zlib
cd zlib
./configure "--prefix=$installpath/usr"
make install
cd ..
# binutils
mkdir -p binutils_build && cd binutils_build
../binutils/configure "--prefix=$installpath/usr" --disable-shared --enable-static --target=pic32mx --with-dwarf2
make install
cd ..

You will get this error:

../../binutils/bfd/cpu-pic32.c:32:55: fatal error: ../../c30_resource/src/xc32/resource_info.h: No such file or directory

OK this is a real issue. It seems like they forgot to include the file. See this link:

# Microchip libraries
cp -a -- "$pic32mxpath" "$installpath/usr/pic32mx"
# gcc
mkdir -p gcc_build && cd gcc_build
../gcc/configure "--prefix=$installpath/usr" --disable-shared --enable-static --target=pic32mx --enable-languages=c,c++,lto --disable-objc-gc --enable-lto --with-host-libstdcxx=-lstdc++ --enable-multilib --with-dwarf2 --disable-sjlj-exceptions "--with-sysroot=$installpath/usr/pic32mx"
make install

Uhh… What?

After all these efforts you end up with a half-broken build.

Just edit the SHA sum in cc1, cc1plus and lto1 binaries and you're done. No need to compile anything.

There is a chance that the build process will become easier once Microchip updates their compiler to the latest GCC version. Latest XC compiler version is 1.40 (2015-06-17), which is pretty old. The reason for such delay is probably that they are unable to compile the thing with the newer GCC versions. Ha-ha. Good luck, Microchip.


2016-03-08 Shit Data

Lately there are only negative posts on this blog. Maybe there is a way to fix that?

Look, I've found something positive!

Just kidding. Dumb people are attacking again.

Often you can see people screaming out terms like “big data”. It is usually accompanied with enormous amounts of saliva coming out of their mouths. Like they believe that marketing terms like “big data” are good enough reasons to become brain-dead epileptics (and like that is going to help someone).

Interestingly, it is also associated with another problem. Programmers tend to think that problems they solve are very difficult, when in reality most of these tasks are dead simple. We are just not smart enough yet to come up with an elegant solution.

Anyway, see this amazing article about command line tools being 235 times faster than hadoop cluster.

What's the lesson to learn here? A few gigabytes is NOT big data. It is not big data if it fits into your RAM or if you can store it on your HDD. Trying to use “big data” tools to process such amounts is just plain stupid.

And yes, most of these times you don't even need a database management system. Plain files will do the trick.

Be conscious and learn to use command line tools.


2016-01-21 Suckoverflow

Stackoverflow jumps from/into a dumpster

I don't know who is the author of this priceless piece of art but I want to share it anyway (if you know the source then please let me know).

Anyway, so why would I mention it?

StackOverflow sucks

Actually, I expressed this opinion more than one year ago as a comment here. After a couple of additional encounters with this nonsense I decided to extract it to this blog.

So what's the problem?

Here are some of the issues:

  • stack exchange websites are viral in nature, that's why they are becoming popular. But that does not help to bring the high-quality content. A lot of dumb people come in just to get points and become “cool”, for some reason their incompetence does not scare them away. This results in very high amounts of wrong answers. Possible solution: dump the score system! It is not a fucking computer game… 😩
  • After two years of inactivity my score doubled. Check it out. Great system, way to go… not. All you have to do is post a couple of answers, and then just wait for these answers to gather a lot of votes. Pretty much like a pyramid scheme! Those who join early win.
  • I don't know why, but most people feel that downvoting is offensive. I downvote pretty frequently, but other competent people ignore the wrong answers simply because there is a shitload of them. It is not possible to explain to every idiot why he is an idiot, so I guess that it is a right decision to just give up. On a wiki, such educational (“you are an idiot because …”) comments or edits are usually peer-reviewed, which increases the overall intellect of the community. On stackexchange your comment is just ignored, because most comments are usually hidden. People don't bother reading them (yes, nobody reads the comments!). The only one who will read your comment is the author of the answer, but he will probably ignore it too.
  • Moderation is bullshit. I like to revise my answers, because I am a human and I do mistakes sometimes. But on stackoverflow, you can't edit more than like 10 old answers per day… So I was coming back to stackoverflow for several days in a row to fix some of my answers, and know what? I received a personal message from some moderator. Look:

This just proves that there is no point to have authorities on such websites. Just let the peer review to do its thing.

  • Refactoring is not possible. For example, double answers are frequent. Yes, sometimes it happens that two identical answers are posted with a 10 second delay and people don't bother to delete one of them. Usually both are voted up and you end up with duplicated information. Not so bad, but there is just something wrong with the system.
  • There is no “Recent Changes” thing. If there is, then where the fuck is it? Perhaps oh-mighty-moderators can see it. That being said, I will probably get the access to moderator tools too for another year or two of inactivity. That's how it works, folks.
  • You cannot change something massively. There is no such thing as bulk replace. And if you start doing something like this, you will get punished. This is a little bit different from refactoring. I'm talking about fixing some common problem in bulk on many pages. For example, I stumbled upon some idiot on stackoverflow who kept giving bullshit bash answers and I spent half of an hour revising his other answers and sometimes voting them down, in some cases even describing the problem (not always because I don't want to link to the same problem more than once). And you know what? That worked! At first, he got angry, but then he started revising his answers, and I was giving an upvote for every fixed one. Sounds great, doesn't it? Well, yeah, until some moderator came in and rolled back all my voting… Great. I think exactly the same would have happened if I was editing his answers myself. See? Do I even have a right to vote? Come on, every downvote is only -1 point while upvotes are +10, let me do it the way I find useful.
  • Shitloads of duplicate questions. One of the reasons is that the content is not structured in any way. But the problem is that you cannot simply close a question as a duplicate because old answers are rarely revised and are usually out of date. And you cannot get on that old question page and start begging for a fresh information, there is simply no mechanism for that (yea, that's one of the downsides of not having recent changes).
  • Some people come to get instant help, and they ask questions that will never be helpful to somebody else. For example, they paste a piece of their code and ask why something is not working. This is justified sometimes, but HEY GUYS, we have IRC for that.

Good news!

StackExchange is rather new, all we have to do is wait a few years until it is filled with useless bullshit. Then the problem will fix itself (stackoverflow will die and we will get back to wikis, FAQs, docs, IRC and other stuff that actually works in a long run).

You can also read my other comment.

Be conscious and try not to support Stackoverflow.


Oh these moments: (read the comment!)

-- AlexDaniel 2016-01-24 02:10 UTC

Agree. I've never liked SO and even go so far as to include in my Google searches so I don't have to wade through the massive amounts of garbage and misinformation that is so prevalent there.

-- CoderDude 2016-07-19 18:15 UTC


2015-09-29 Stop Internet Explorer Development

As you might know, changing the name from Internet Explorer to Edge does not solve the problem.

Internet Explorer sucked and it still sucks. Edge is just a continuation of that, it is still far behind other browsers. If you are a web developer, you probably know this, but if not, then check out

The funny thing is that there is a platform where you can make suggestions about further development of various Microsoft… tools (which reminds me of this, by the way). Can you guess what was the best suggestion out there?

How can we improve the IE developer experience? – Stop Internet Explorer Development!

Since NIH syndrome is often a cause of brain death, they deleted it. Every next day there was a new one that basically said the same thing – Stop Internet Explorer Development, maybe just slightly reworded. And yes, they kept deleting these post! This suggestion was so popular that it was getting to the top very quickly, sometimes it was reaching the top position before they were removing it.

Yea, Microsoft, just shove your shit into everyone's ass and shut everyone up.

But here is another good one: Use Blink (or other open rendering engine) and start contributing code. This totally makes sense, right? If they cannot do it right (and they definitely can't, not even in foreseeable future), then why bother with creating your own engine? Just take one that works and slap your surveillance features on top, you'll get exactly the same thing but at least it will be on par with useful browsers.

Look at the answer! Just imagine that, someone is getting paid for writing shitty responses like this one! “We also understand and value the importance about being more open with our engine.” – what a bullshit. Microsoft understands the importance of being open? Look, the whole Microsoft is just a shitball that keeps rolling, you can't say that it values something because there is no ideology behind it, and personal opinion of somebody does not play any important role.

You can even take that answer and put it into history books, just for our next generations to laugh.

Be conscious and stop supporting Internet Explorer/Edge.


2015-09-15 The speed of software halves every 18 months

“Wirth's law is a computing adage which states that software is getting slower more rapidly than hardware becomes faster.”

See Wirth's law on Wikipedia

Just open your eyes and make your code less shitty. Maybe these 5 software frameworks that you smashed into your hello world project is a little bit too much?


2015-08-19 Stupidity around the Web

Sometimes I stumble upon pages with stuff that looks like this:

Three red-ish circles around the web

These are actually links.

I'm not sure who did that (most likely the author of this website just used some library or engine which already had this), but this problem is very common nowadays.

So, let me help you to understand what these circles actually stand for:

When you are stupid enough not to put any text on your buttons

First circle stands for “ignorance”

I have no idea what were they thinking, perhaps they are not thinking at all (brain death is a common reason to become a UI designer). When you are creating an interface, there are several things you have to think about:

  • Color-blind people
  • Blind people
  • Text-based browsers

And much more, actually. But these ones are actually essential if you want your website not to suck. Color-blind people might not see your flat buttons in the way you are seeing it. They might confuse it with decorative elements or even not see it at all.

Blind people might have better luck, since some screen readers will read the link out loud.

And it does not matter if you style your circles differently or not. Text-based browsers don't understand this shit at all, because there is no text to represent these circles. These circles, however, are rendered… as circles! At least that's how it looks like in w3m:

Some might consider it as a feature. No social links – no worries.

You can actually follow these links! Either place your cursor into the right spot or use tab to get to it.

Second circle stands for “inefficiency”

Although I prefer textual buttons, I'm OK with all kinds of pictograms or other visual elements.

But this is just complete nonsense, I have to hover over every button to find one that I actually need. I don't even know which links are there before I hover over all of the links.

This is just nuts.

Third circle stands for “insanity”

The first question that pops up in your mind when you see this – what is going to happen if I hover over these buttons? Maybe the icon will appear?

This does not really help to find the right link you are looking for, since you still have to hover over these buttons. But it could make your life a little bit easier, right?

This is what happens when you put your mouse over one of the buttons:

Yellow stands for pee - that's what represents the user interface on that website

Now guess what happens when you hover over other buttons.

Yes, they become yellow.

Please design your websites consciously.


It seems like there was a bug when the icons were not being loaded if you used https. That's good. It means that the author did not do that shit on purpose – it's just a bug! This, however, does not really make it better. See HTML Hell section “menus made entirely from image maps”. You see, today even text-based browsers can display images. BUT NO, NOW WE DO ICONS WITH CSS. And what this CSS does? Sure, it loads a custom font! Nothing has changed… In other words, if every icon on that website had a little text near to it, then there would be no such blog post.

“You really should research something like that before writing an entire article on bashing someone.” says the author. And he is right! He is so right that I've even deleted this post. But it is a wiki, so someone reverted it back. I find this post funny so I would not delete it again. :)



-- AlexSchroeder 2015-09-01 12:00 UTC


2015-06-12 Speling Rifaurm

I've always felt that we need to introduce more changes to spelling, but I have never imagined that there are so many systems that were never accepted.

First, I stumbled upon this:
Then I felt that the ideas behind Wijk's Regularized English are very good, so I found this page: Notes on Wijk's Regularized English, and more generally, this page: List of Spelling Systems.

Just look at that list! Impressive.

Some of these are more than 100 years old...

Another interesting finding is Common Errors in English Usage.


2015-06-02 Low Contrast

Just stop that, guys. Unreadable text does not make your website look cooler.

Ironically, this website has a low contrast. It seems like it is acceptable for black backgrounds? White text on black background shines like a light bulb, you do not want that.