Muli Ben-Yehuda's journal

July 19, 2003

OLS countdown – 28 hours to flight

Filed under: Uncategorized — Muli Ben-Yehuda @ 8:36 PM

28 hours until the flight, and I’m starting to get nervous. Too many things to take care of tomorrow, too many rough edges left undone. It’s always like this before a long trip, so I’m not *too* nervous.

OLS preperations are under way!

Filed under: Uncategorized — Muli Ben-Yehuda @ 11:48 AM

37 hours and counting until we fly up up and away to the 2003 Ottawa Linux Symposium. Now back to packing. Watch this space for updates!

By the way, join #ols on if you’re going to OLS.

July 16, 2003

Eran Tromer Colloq. on Hardware Based Implementations of Factoring Algorihtms

Filed under: Uncategorized — Muli Ben-Yehuda @ 2:22 PM

Yesterday Eran Tromer gave a colloqium talk at IBM HRL on Hardware Based Implementations of Factoring Algorithms. Eran’s talk dealt with the improvements leading up to the TWIRL device, which cleverly exploits the inherent parallelism of the Number Field Sieve algorithm via hardware design. The bottom line is that factoring 1024 bit RSA keys in reasonable time, using the hypothetical TWIRL device, will only cost approximately 10,000,000$. Previous estimates were in the trillions of dollars. For perspective, 1024 bit is the recommended RSA key size, and $10e6 is peanuts for a certain Fort Meade agency…. More details are available in the papers on Eran’s Weizmann home page.

After the talk Eran, Oleg, myself and another coworker whose name I don’t recall had lunch at the IBM cafeteria. Topics of discussion during lunch were suitably geeky for the company involved, and much fun was had. Earlier, Eran explained that parameters to one of algorithm’s steps are chosen so that a memory write will always occur to the memory cell preceding a cell we just read (which means a cache hit, which is a good thing). During lunch, I told Eran that it reminded me of the techniques used by Mel, a Real Programmer, and Eran said that he concurs, and must have internalized the story to use the same trick. Inspiration comes from unlikely places…

newpsaper musings

Filed under: Uncategorized — Muli Ben-Yehuda @ 1:01 PM

Written yesterday (Tuesday) morning, and left forgotten in an emacs buffer somewhere…

Sitting in my parents living room, waiting for the phone company technician to come by and replace their ADSL modem, I happened to read the newpaper.

– The single parents struggle for the reinstatements of their welfare is understandable, but Binyamin Netanyahu, the finance minister, is 100% right in my opinion. There should not be incentives for anyone to stay home and not work. Especially when those incentives come directly out of my hard earned tax money. Simplistic? maybe. Cold and unfeeling? maybe. As Heinlein once put it so aptly, There Ain’t No Such Thing As A Free Lunch. If one wants money, one should work for it.

It’s interesting to note that the paper (Ma’ariv, page 3) had a chart that showed that a one-parent family with two children, where the mother works part time, actually makes more than a married couple with two children, where the husband works full time, even after the recent cut in the single parent welfare allotments.

– The business supplement had an interview with an Israeli VP at Microsoft, who’s running their foray into the storage area. Now imagine the blue screen of death on your enterprise storage system…

July 15, 2003

Code that Sucks #3 – variables? we don’t need no stinking variables!

Filed under: Uncategorized — Muli Ben-Yehuda @ 6:32 AM

Compare, contrast, weep:

((bar*)foo->bar)->gar->member = ((adapter*)(ptr + 4))->sequence_number++; 

(Real code, struct and member names changed to protect the guilty)


struct bar* bar = foo->bar; 
struct gar* gar = bar->gar;

struct adapter* adapter = (ptr + 4);

gar->member = adapter->sequence_number++; 

I just spent a couple of minutes making sure that the second version is functionally equivalent to the first, and I’m still not sure. Think about it – a couple of minutes for ONE line of code. Code should be written for people first, compilers second. Say no to gratuitous obfuscation, say yes to intermediate variables!

Code that Sucks #2: PRINTF() does not a portable program make!

Filed under: Uncategorized — Muli Ben-Yehuda @ 6:22 AM

There’s a line of thought amongst programmers who do not understand what portability means that simply wrapping up any system service in a MACRO is enough. printf() becomes PRINTF(), sleep() becomes SLEEP(), etc, etc, ad nauseam. The fallacy here, of course, is that they assume that the name might change, but the interface won’t, which is dead wrong. Name changes are the least of your worries. It’s interface changes that you should be concerned about, and your “portability layer” must present a common, unified interface, not just “the interface of whichever platform this code ran on first”. Furrfu!

TAU Linux Workshop kernel development talk summary and updated slides

Filed under: Uncategorized — Muli Ben-Yehuda @ 6:13 AM

I’m too lazy to write the same thing twice, so I’ll just paraphrase from an email I sent after the event:

“The Kernel Hacking talk today at TAU went pretty well. There were 25-30 students, 5 or so were “free listeners”, and the rest students taking the workshop. No one fell asleep and almost everyone stayed through the entire three hours. I had a a pretty bad start due to not realizing the first two subjects (kernel introduction and source layout and kernel compilation) are pretty darn boring without any motivation, but once we hit the second hour with “writing kernel modules”, things definitely picked up. People were interested in all aspects of kernel development, both the technical (how to write the code) and the sociological (how to get it accepted). Also, several people took notes when I talked about syscalltrack and talked to me about it after the lecture. I guess now we need to wait and see if anything comes out of it :-)”

This morning I woke up at 04:30 AM after crashing last night at 09:00 PM, and finally added a bibliography slide to each of the subjects, with links to the prominent source of information on that subject. Also added a slide on mknod(1) to the kernel module talk. Updated slides available on

July 13, 2003

All Code Sucks – The Repository

Filed under: Uncategorized — Muli Ben-Yehuda @ 10:59 PM

My good friend Oleg Goldshmidt, has created a repository for for stupid software patterns, aptly named All Code Sucks. Read and be horrified by the stupidity of thy fellow programmers. Or be amused. Or just shoot them all.

slides for Kernel Development talk at TAU Linux Workshop

Filed under: Uncategorized — Muli Ben-Yehuda @ 3:46 AM

Slides for the aforementioned (see last entry) are now up at I’m pretty happy with the “writing kernel modules” one, but the UML one is pretty much a place-holder, but it’s 4 AM and I spent the entire saturday on it, except for a great lunch with Orna at the chinese place. Fuck it, I’m going to surf the web aimlessly now and wait for the morning 馃槈

July 12, 2003

TAU Linux Development workshop talk tomorrow

Filed under: Uncategorized — Muli Ben-Yehuda @ 11:37 AM

I’m writing the slides for my “invited talk” tomorrow at Eddie A.’s TAU Linux Development Workshop on kernel development. Here’s the outline of the talk:

o introduction to the linux kernel and source overview
o compiling the kernel

o writing a Linux kernel module

o user mode linux
o how to contribute to the linux kernel
o syscalltrack

Slides should show up on when I finish writing them. If you’re in the area of Tel Aviv University tomorrow and you have a few hours to kill between 1PM and 4PM, consider dropping by! entrace is free to the public and I’d love to see you.

« Previous PageNext Page »

Blog at