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

Cisco ASA and DNS Security

I started to inform how Cisco ASA, Cisco PIX and Cisco FWSM firewall appliance secure their domain from DNS traffic. What is possible, what can I transport over DNS without increased drop probability. I question myself what DNS flags can be touched without any flaw. I must admit that I’m no Cisco expert - not at all. If I look at the configuration possibilities I have to say “wow”: class-map inspection_default match default-inspection-traffic policy-map type inspect dns preset_dns_map parameters dns-guard id-randomization message-length maximum 512 id-mismatch count 10 duration 2 action log exit match header-flag RD drop policy-map global_policy class inspection_default inspect dns preset_dns_map service-policy global_policy global What administrator knows DNS at this level?...

November 14, 2011 · 1 min · Hagen Paul Pfeifer