SDKNet

02.07.2006 18:31:35

Вброс свободного кода!
Читайте далее »

О пользе паники

25.06.2006 15:13:39

Из-за повышенного уровня собственного разгильдяйства приходится в срочном порядке воевать с зеленым монстром, поскольку сдавать осенью экзамен на последней сессии как-то несолидно. Да и вообще, осенью я еще ничего не сдавал, нечего и начинать, неаккуратно это. Однако, в процессе борьбы появляются всякие интересные наблюдения.
Читайте далее »

Конструктор «сделай сам»

16.06.2006 10:19:26

Очень правильное замечание относительно конструкторов. Впрочем это могло бы быть решено в стиле Obj(this = that, smth = other, blah = bleh);, как оно имеется в некоторых других языках.

Про универ

03.06.2006 00:56:32

Ну денек. Прибежал в универ в 14:30. Уплелся в 21:30. Самое главное, пожалуй — посетил лекцию Бертрана Мейера (Bertrand Meyer), который прибыл в наш славный универ для получения звания почетного доктора. Перед лекцией Мейера еще зажег наш профессор Шалыто, по-другому не скажешь, именно зажег. Побольше бы таких бодрых профессоров (а ведь у кого-то он еще и ведет!).
Читайте далее »

Python

30.05.2006 10:37:33

Вчера накорябал чуть меньше двухста строчек дикой математики на Питоне. Классы там на фиг не нужны были, и, в общем-то не многое успел осознать из того, что сделал. Но смотрится неплохо, вспоминал PHP, радовался отсутствию «$». Запомнилось и въелось в память одно — в Python нет ограничений на размерность целых чисел, он сам разберется, откуда брать не 32, и не 64 разряда, а сколько надо. Пока память есть. Что чудовищно радует — как-никак, нормальная математика в языке возможна, да точные расчеты.

Пожалуй, надо его на место основного скриптового языка для себя ставить, PHP я уже успел забыть (хотя пару мелких скриптов пару месяцев назад писал), а Python давно использую в интерактивном режиме… в качестве калькулятора. 😉 Так вот вроде повод изучить поплотнее.

Переносимость переносимости

23.05.2006 23:01:23

Интересно получается. Пишешь переносимое приложение. Пишешь для GNU/Linux на i386. Фактически, уже написал. Но поиспользовал пару «интересных» ioctl для последовательного порта, что для переносимости плохо. Ну, еще чуть-чуть pthreads. В ожидании хорошего геморроя перетаскиваешь все это на FreeBSD/amd64. Компилируешь из тех же исходников. И собирается на раз. Без каких-либо модификаций.

Что еще смешнее — на FreeBSD все работает без ошибок. На GNU/Linux появляется не очень пока что понятная (но явно мелочная) ошибка.

Круто.

P.S. Ошибка действительно идиотская была. Теперь все тип-топ с обеих сторон. Из совершенно идентичных исходников.

Замечено

09.05.2006 23:20:49

Интересно, что когда нужно писать код, писать его ужасно не хочется. Хочется писать/переводить ближе к родному языку, а не C. При этом, когда надо что-то уже написать/перевести, резко появляется желание что-нибудь написать в коде, пусть даже и на C. Ужас.

Про кофе и верификацию кода

25.04.2006 17:25:09

Цитата с сайта Михаэля Франца:

Verification also ensures control-flow safety, but this is a comparatively trivial task. Conversely, verifying that the data flow is well-typed is rather complex. The JVM bytecode verifier uses an iterative data-flow analysis algorithm for this task, and unfortunately, this algorithm has an execution complexity that rises quadratically with program length. This gives rise to my prediction that we will soon witness denial-of-service attacks on mobile-code systems that will exploit the algorithmic complexity of the verifier itself: By sending a legal, but difficult-to-verify program to a server virtual machine, one can keep that server occupied for an inordinate amount of time, effectively making it unavailable for useful work. In my experiments, a 4kByte JAR file containing Java code with worst-case verification complexity required more than 15 minutes of verification time on a 2.4 Gigahertz Pentium IV processor.

Beyond Java: An Infrastructure for High-Performance Mobile Code on the World Wide Web

21.04.2006 17:23:03

Только что дочитал сабж. Очень жалею, что не завершил ранее, текста немного, но реально еще раз показывает, насколько в глубокой заднице находится наша замечательная IT-индустрия. Год публикации, чисто для справки, 1997.

Хотя еще больше это показывает то, какие технологии были разработаны в рамках семейства Oberon и когда. Динамическая реоптимизация всей системы — в каком-то уголку сознания у меня давно такие мыслишки шатаются, а тут на тебе — уже сделано. Эх.

foreach c_programmers do programmer.kill()

20.04.2006 12:55:52

Busybox (shell/ash.c):

for (p = name; *p; p++) {

Свежак:
Не, я не могу, такие шедевры надо целиком.

for (p = name; *p; p++) {
        if (*p == '*' || *p == '?')
            metaflag = 1;
        else if (*p == '[') {
            char *q = p + 1;
            if (*q == '!')
                q++;
            for (;;) {
                if (*q == '\\')
                    q++;
                if (*q == '/' || *q == '\0')
                    break;
                if (*++q == ']') {
                    metaflag = 1;
                    break;
                }
            }
        } else if (*p == '\\')
            p++;
        else if (*p == '/') {
            if (metaflag)
                goto out;
            start = p + 1;
        }
    }