lem

hello-list.c

C programming language is not very popular nowadays.  I don't care. I like the language.

It was very interesting to learn how linked lists are implemented in the Linux kernel.  This picture illustrates them nicely:

Lists in <linux/list.h>

A custom structure - the type of objects you want to enlist - contains `struct list_head' as its member. This is not a pointer (that's the point) and you can place it anywhere (!) within the structure (i.e., it doesn't have to be the first member).

You use list_head members for list operations (insertion, deletion, iteration, etc.; all the nice stuff defined in linux/list.h).  And when you need the rest of your data structure — you use `list_entry' macro. `list_entry' fetches a pointer to the container object from its `struct list_head' member.

This is my "hello world" program (skip down to `struct Char' and `main' function):

Collapse )

See also:

  • Current Music
    The Jimi Hendrix Experience - If 6 Was 9
  • Tags
    , , ,
lem

CT4D

The hypothesis behind invisible writings was laughably complicated. All books are tenuously connected through L-space and, therefore, the content of any book ever written or yet to be written may, in the right circumstances, be deduced from a sufficiently close study of books already in existence. Future books exist in potentia, as it were, in the same way that a sufficiently detailed study of a handful of primal ooze will eventually hint at the future existence of prawn crackers.

 -- Terry Pratchett, The Last Continent

* * *

Category Theory for Dummies

Future bestseller?

(Graphics by dummies cover editor.)

lem

Brain-O-Meter

$ measure() { wget -qO- "$1" | sed 's/<p class="title">/\n&/g' | \
    awk -F'</a>' '/^<p class="title">/ {print $1}' | \
    awk -F\> '{print length($NF), $NF}' | sort -nr; }
$
$ # Calculate the lengths of reddit titles. Lower numbers are better.
$
$ for r in gaming programming haskell; do \
    echo "----- $r -----"; measure http://www.reddit.com/r/${r}/; done
Collapse )

I've complained to gamers already. :)

lem

Lightning Talk

Пару недель назад наткнулся на словосочетание lightning talk и погуглил, что оно такое.

Lightning talk — это выступление с жёстким ограничением по времени. Пять минут. За это время нужно успеть донести свою мысль до слушателей. Получилось — молодец, нет — ну, хоть наскучить не успел. Отсутствие слайдов приветствуется.

Пока сам не видел, не могу сказать, хорошая это штука или нет. Но, думаю, готовить lightning talk интересно. Нужно уложить максимум содержания в минимум формы. Задача для любителя program bumming (или хайку?).

Интересно, как его на русский лучше переводить? Летучка?

В марте грядёт глобальный "зажиг":

To celebrate the success of this new wave of public speaking, March 1-4 has been designated as Global Ignite week, and nearly 50 Ignite events will be held around the world. This is your chance to see for yourself what the future of public speaking might be like. The events are inexpensive or free and anyone can apply to speak or start their own event in their home town.

@LtU-Kiev: Можем поэкспериментировать.


Ссылки:

The End Of Boring Presentations
http://en.wikipedia.org/wiki/Lightning_Talk

lem

Мой завод - моя слава, моя честь и гордость

Вчера, попивая чай, обзирал из окна 4-го этажа внутренние пространства завода "Большевик". Внизу трое работяг толкали тележку с каким-то хламом — металлические чушки, лом, бог его знает. Причём одному ещё приходилось сбоку поправлять съезжающий груз — тележку качало на дороге из заледеневшего снега...

Моя работа в чём-то очень похожа. Цель — допереть воз данных до пункта назначения, не раструсив по пути. Для достижения этой, довольно благородной, цели порою требуются героические усилия. Бывает скучно. Ужасно, если периоды скуки затягиваются.

Результаты работы не видны за пределами "заводской территории". Снаружи — серая стена, да иногда труба дымит. А! Есть ещё дыра в бывшее складское помещение, с навешенной дверью и надписью "Фирменный магазин". Вот вам и все внешние интерфейсы.

А если я буду увольняться в другую "большую корпорацию", то мне достаточно будет перейти улицу. И я стану трудиться за другим забором, не менее длинным, и производить действия, тоже безусловно важные.

* * *

Вот такая вот метафора. Нытья нет; так, размышление.