It Doesn’t Have To Be This Way – “Recently, the tech industry has become a focal point of anger because there is such a jarring disconnect between the “Change The World” language of our industry and the very real and rising inequalities that sit in our own backyard.”

July 24, 2013

I’ve been kicking around the idea of using Git as a “backdoor” to ClearCase/UCM – see this blog post at http://www.littleredbat.net/mk/blog/story/63/ We’ll use ClearCase UCM on a Unix/Linux machine then access/share the code via Git on Windows PC.

Issues:
• how to set Git up with multiple ClearCase branches
• how much work is to keep everything in sync
• how to automatically propagate changes from ClearCase to Git
• how to automatically propagate changes from Git to ClearCase
• how to do code inspections – metrics are collected and analyzed

Al Aho, original member of the Bell Labs Computer Systems Lab where UNIX and the C programming language were invented. He co-authored the AWK programming language and is currently Professor of Computer Science, Columbia University;

Brian Kernighan, original member of the Computer Systems team who co-authored the C programming language book with Ritchie; he is currently Professor of Computer Science, Princeton University;

Doug McIlroy, who led the Computer Systems Lab, and is currently Professor of Computer Science, Dartmouth College;

David Patterson, Professor of Computer Science, U.C. Berkeley, where he led the design and implementation of RISC I (Reduced Instruction Set Computer); and

August 8, 2011

There are 0010 0000 kinds of people in the world: Those that understand the difference between Big Endian and Little Endian, and those that do not.

My own endianness experience falls into roughly three categories: sharing binary data between heterogeneous processors, in protocols (most famous: TCP/IP) and in TDD unit testing C code. The last one is what prompted this blog post.

Solutions? For more readable, portable code, I’m avoiding macro based solutions. There is a tools based approach: Detecting Endian Issues with Static Analysis Tools. Sometimes, I’ll get lucky and the processor is able to handle both such as some DSPs.

One method for TDD for embedded systems tests the same source code on both the development platform and the target platform. For my personal embedded project, each platform had different endianness. I used a wrapper function whose implementation was determined by the compiler preprocessor. On the host platform (Intel Linux) I used byte-by-byte operations. On the target platform, I used intrinsic functions to operate on multiple byte-sized data.

This problem should be addressed at the architecture and protocol level and highlights the importance of test vectors which will show errors when the endianess is wrong.

For me, Eclipse has become the default development environment. It’s supported across different platforms (MAC OS, Linux, Windows), there as useful plugins and as an IDE it supports different target platforms. My main complaint is that the Eclipse workspaces are somewhat incompatible with Clearcase views.

For embedded systems, I use it for C/C++ development on these platforms listed below: