As a memo.

Very Sleepy CS

intel INDE

Code XL


A better QTabBar

I had to work with Qt’s QTabBar and found that a few features were missing. So I worked on a reimplementation of it to provide these functionalities.

Added Features:

  • Tabs closable with the mouse middle button.
  • Scrollable tabs to reorder them.
  • Menu to list up the tabs instead of the default ugly arrow buttons.




Github link

20 interesting links I’ve read in 2014 or that I have to read

The order is totally random.

1. [C, ASM] From Switch Statement Down to Machine Code – This one is really good.

2. [js] Progress bars out of your tab favicons

3. [Maths] Newton, The Ultimate: One Weird Trick To Make You A Mathematical Superhero, which is basically about Newton’s algorithm.

4. [Git] Git In Two Minutes (For A Solo Developer)

5. [Algorithms] How Spelling Correction Algorithms Work

How to Write a Spelling Corrector

6. [Maths] 0x5f3759df – About the Quake Fast inverse square root and similar approximations

7. [Qt, Visual Studio] Qt debug helpers and QString and QByteArray in VisualStudio 2013 Debugger

8. [Python] PEP8 and a nice link about underscores.

9. Let’s build a browser engine!

10. Interesting write-up about singletons

11. [UI] 7 Rules for Creating Gorgeous UI

12. [C++] List of C++ resources

13. [Python, Algorithms] The complete guide to building an image search engine with Python and OpenCV

14. [Algorithms] Damn Cool Algorithms: Levenshtein Automata

15. Hidden Costs of Memory Allocation

16. [CG] A trip through the Graphics Pipeline 2011

17. [Python] Obfuscating “Hello world!”

18. About 2D visibility

19. Important Programming Concepts (Even on Embedded Systems) Part V: State Machines


[Visual Studio 2013] Removing the Source Control

The Microsoft Git Provider may make Visual Studio 2013 slow and consume a lot of CPU.
As the Source Control resets itself to Microsoft Git Provider every time you reboot, a solution is to remove/rename this file:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Microsoft.TeamFoundation.Git.Provider.dll


[OpenGL] An understandable explanation of glBlendFunc

I had to use glBlendFunc recently and found the official documentation really hard to understand immediately.
A coworker explained it in a much more understandable way.

So, the signature of glBlendFunc is:

void glBlendFunc(GLenum sfactor, GLenum dfactor);

Let S be the source color (color of one pixel in the source buffer).
Let D be the destination color (color of the corresponding pixel already in the destination buffer).
And let R be the resulting color (color to write in the destination buffer).

Then, we have the simple following equation:

R = sfactor * S + dfactor * D

This equation may become a bit more complex regarding the glBlendFunc parameters, but here is the principle.

Example: glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);


Xy being the y component of the X color,
R = S + (1 – Sa) * D

Rr = Sr + (1 – Sa) * Dr
Rg = Sg + (1 – Sa) * Dg
Rb = Sb + (1 – Sa) * Db
Ra = Sa + (1 – Sa) * Da

Let’s see the case I was working on.
I had to convert an RGBA8 source to an RGBA8 PREMULTIPLIED destination.

Sa * S gives the premultiplied source.
(1 – Sa) * D gives allows alpha blending to the previous value in the destination buffer.

Therefore, R = Sa * S + (1 – Sa) * D
finally giving glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

See also:
glBlendFuncSeparate in order to set a different factor for the RGB and the A components.
glBlendEquation in order to use another equation to compute the resulting color value (R = sfactor * S – dfactor * D for instance).

[GitExtensions] git extensions–syntax error near unexpected token

Original post from :

Copy just in case.

Problem :

Whenever you use newly installed GitExtensions to pull a repo from remote repo you may face the error below.

Syntax error near unexpected token ‘(‘

Below is the full error log :

“C:\Program Files (x86)\Git\bin\git.exe” push –recurse-submodules=check –progress “origin” refs/heads/master:refs/heads/master
\”C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe\” get: -c: line 0: syntax error near unexpected token `(‘
\”C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe\” get: -c: line 0: `\”C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe\” get’
\”C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe\” erase: -c: line 0: syntax error near unexpected token `(‘
\”C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe\” erase: -c: line 0: `\”C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe\” erase’
fatal: Authentication failed for ‘’

Solution :
The problem is syntax error in default gitconfig file. You can find default config file in C:\Users\\gitconfig
Try to find entry below for [credential] section. It looks like below
helper = !\\\”C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe\\\”

Notice the 3 slashes after ! at the beginning and the 3 slashes at the end of the entry. Remove two unnecessary slashes so it will look like this :

helper = !\”C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe\”

Go and run your command again, it should work.

[Eclipse ADT] – Not generating any source file while trying to generate an activity

Creating a new Android Application Project or a simply a new activity did not generate any source file.

Solution :

1. Click Help > Install New Software.
2. In the Work with field, enter:
3. Select Developer Tools / Android Development Tools.
4. Click Next and complete the wizard.