Quit User Tracking

This blog used two third party extensions: Google Analytics Disqus Both set cookies and have a user coverage which is horrible. Nowadays Google Analytics together with Google Search, Android activity and Google Ads have a database of … in the end they know too much about you. I decided today that web analysis data is not crucial for me compared to the privacy of my readers. So I removed all third party content from my blog....

July 7, 2012 · 1 min · Hagen Paul Pfeifer

Git Merge Tips

I use git nearly since the beginning as BitKeeper was replaced by Linus. This was in 2005. In the early days git was hard and cumberstone to use. The low-plumbing-level made it really hard and unintuitive. Wrapper tools like cogito provide the essential usability. E.g. back in the days instead of git pull you have to type git fetch and git merge and the like. It was hard to remember all the commands to get versioning done....

July 7, 2012 · 1 min · Hagen Paul Pfeifer

IETF I-D and RFC News - I

I just decided to summary IETF relevant news as new I-D’s or RFC’s in a weekly blog posting. The summary will not cover all areas, nor will it list the most prominent development. I focus on topics I am most interested. This mainly includes the following areas: Applications, Internet, Operations and Management, Routing and of course Transport. But occasional I will post I-D’s or new RFC’s from other areas as well....

July 7, 2012 · 1 min · Hagen Paul Pfeifer

Linux Photo Editing Environment

I shoot all my photos in RAW, so my post-processing chain is a little bit more complicated as shooting in JPEG. Raw photo editing tools under Linux are nowadays more functional and usable as several years ago. But handling RAW images is more time consuming as stripped JPEG images. These are the costs of an increased flexibility. To simplify processing I tried nearly all professional tools under Linux (this includes scripts based automations)....

July 5, 2012 · 1 min · Hagen Paul Pfeifer

A, AAAA and MX Records Changed

Due to a server move some IP addresses as well as certificates changed. In the next week I will publish the server certificates too. If you detect some broken links please drop me an email. This includes links to git repositories too. $ dig +retry=0 +qr jauu.net A | egrep '.*jauu\.net.*[[:digit:]]' - jauu.net. 1242 IN A 80.244.247.6 $ dig +retry=0 +qr jauu.net AAAA | egrep '.*jauu\.net.*[[:digit:]]' - jauu.net. 1233 IN AAAA 2001:4d88:1ffa:82:880:aa0:9009:f00d $ dig +retry=0 +qr jauu....

July 4, 2012 · 1 min · Hagen Paul Pfeifer

GCC Builtin Constant P and Kernel Optimization

Yesterday a discussion on LKML raised the question if it is possible to disable optimization for kernel build. Sometimes you want to debug the kernel and the required function is optimized out. You are free to disassembly the source code at this place and set the break point manually. But this procedure is time consuming and error prone. I raised another use case: perf probes. Dynamic probepoints placed in the Kernel at runtime....

May 7, 2012 · 2 min · Hagen Paul Pfeifer

Byte Ordering - Again

One practical alternative to #ifdef BIG_ENDIAN bar #else foo #endif clutter in your code are the following two functions. They can always be used, no matter on what architecture the code runs. It always return the correct byte order. uint32\_t le\_pick(char \*data) { return (data[3]<<0) | (data[2]<<8) | (data[1]<<16) | (data[0]<<24); } uint32\_t be\_pick(char \*data) { return (data[0]<<0) | (data[1]<<8) | (data[2]<<16) | (data[3]<<24); } The idea is based on a blog entry from Rob Pike....

May 2, 2012 · 3 min · Hagen Paul Pfeifer

Initial Perf Loop Detection

Arnaldo started to implement initial loop detection in the perf annotate browser. The idea is (was) that backward jumps are mode visible. Currently forward jumps are displayed with some UNICODE character (libslang?): 0,00 │ test %eax,%eax 0,00 │ ↓ je bc 0,00 │ cmpl $0x0,0x4ca034(%rip) # ffffffff81aacb80 <debug\_locks\_silent> 0,00 │ ↓ jne bc 0,00 │ mov $0xbf4,%esi 0,00 │ mov $0xffffffff818039ac,%rdi 0,00 │ callq warn\_slowpath\_null 0,00 │ ↓ jmp bc 12,90 │ 53: mov %gs:0xb760,%rax 4,15 │ add %ebx,-0x1fbc(%rax) 0,00 │ test %edx,%edx 0,00 │ ↓ jne 92 3,69 │ cmpb $0xf4,-0x1fbc(%rax) 0,00 │ ↓ jbe 92 0,00 │ callq debug\_locks\_off 0,00 │ test %eax,%eax 0,00 │ ↓ je 92 0,00 │ cmpl $0x0,0x4c9ff3(%rip) # ffffffff81aacb80 <debug\_locks\_silent> 0,00 │ ↓ jne 92 0,00 │ mov $0xbfd,%esi 0,00 │ mov $0xffffffff818039ac,%rdi 0,00 │ callq warn\_slowpath\_null The currently algorithm illustrated in the image use a simple heuritic to show jumps that points to before the cursor....

May 1, 2012 · 2 min · Hagen Paul Pfeifer

Linux Network Emulator Extensions

Seems that the merge window for the upcomming 3.2 close. In davem’s net-next for 3.3 there are a couple of network emulator improvements: rate extension allows to shape the traffic to n bytes/second Currently netem is not in the ability to emulate channel bandwidth. Only static delay (and optional random jitter) can be configured. To emulate the channel rate the token bucket filter (sch_tbf) can be used. But TBF has some major emulation flaws....

January 5, 2012 · 3 min · Hagen Paul Pfeifer

Git Diff Context

Wow, two new git diff options: –minimal to spend extra CPU cycles to generate a shorter diff –function-context to display the whole function that was affected by the change. Nice for reviews by people without the whole context in mind.

December 3, 2011 · 1 min · Hagen Paul Pfeifer