Интересно, с какой вероятностью вы можете с первого раза определить местоположение и характер косяка в коде
? По моему опыту получается где-то больше 70% в своём коде, больше 40% в чужом.
Archive for the ‘Кодинг’ category
Типа соцопрос :)
Март 10th, 2010VSFTPD – такой ли секьюрный?
Январь 26th, 2010Сегодня разочаровался в моём любимом Very Secure FTP Daemon.
Произошло это, когда мне нужно было реализовать что-то вроде RandomAccessFile, работающего по FTP. И когда я дошёл до seek-операций, обнаружил, что vsftpd некорректно отрабатывает пару команд REST + STOR. А именно, открывает файл всегда в режиме O_APPEND, о чём с горестью сообщает manpage:
» Read more: VSFTPD – такой ли секьюрный?
For fun.
Ноябрь 20th, 2009Совсем недавно приходилось решать интересную задачу по Unix:
Фактически нужно было разработать демон simple-telnetd на языке Perl, позволяющий удалённо запускать некоторое ограниченное подмножество команд и выводить пользователю результат их выполнения.
- simple-telnetd может запускать только разрешенные программы, которые перечислены в файле /etc/simple-telnetd.conf. Демон должен перечитывать этот файл и обновлять список разрешенных программ после поступления сигнала SIGHUP;
- Запускаемые программы могут иметь параметры командной строки, но simple-telnetd не должен поддерживать интерактивного взаимодействия пользователя с запускаемыми программами;
- Демон не обязан обрабатывать спец символы: ^C, ^D, и т.д.
- В качестве параметра командной строки simple-telnetd может передаваться параметр timeout – максимальное время выполнения одной команды;
- Желательно чтобы демон мог прослушивать не только tcp сокеты, но и локальные (например /tmp/simple-telnetd);
В конце-концов, скрипт всё же не пригодился, поэтому, чтобы компенсировать потраченное на него время, выкладываю его тут – вдруг, кому пригодится. Забрать его можно по этой ссылке.
simple-telnetd.tar.gz
Если кому-то помогло, пишите, не стесняйтесь, буду рад
.
Поскольку я писал этот демон с особым энтузиазмом, не обошлось без фич, которых нет в исходном задании: написал init.d-скрипт для службы, который успешно был протестирован в openSUSE Linux, оформил perldoc и manpages, сделал возможность интерактивной авторизации, ну и другая мелочёвка (уже даже и не помню какая) вдовесок.
Вопрос по OpenOffice.org
Ноябрь 15th, 2009Кто-нибудь знает, есть ли в OpenOffice.org Base что-нибудь вроде «Мастера подстановок» из MS Access?
Ибо фича удобная, и воспользоваться ей очень хотелось бы.
Я смог решить пока проблему через формы, но хотелось бы обойтись без них.
Есть идеи?
Об опасности исключений
Ноябрь 12th, 2009Об опасностях, таящихся в мороженом корме коде, генерирующем исключения.
Исключения в C++ достаточно опасны, именно поэтому я стараюсь их не использовать.
Давайте разберёмся вот с этим кодом:
» Read more: Об опасности исключений
Вопрос знатокам СУБД Firebird.
Октябрь 29th, 2009Есть СУБД FireBird версии 2.0.x.
Есть таблица, в которой одним из полей хранится битовая карта дней недели.
Задача: проверить, входит ли день недели (номер 1-7) в битовую карту.
Я понимаю, что в СУБД FireBird 2.1.x были введены операции BIT_xx, но использовать пока приходится только FireBird 2.0.x.
Вот моё решение (отмечу, что MATCH=NULL тождественно всем дням недели, установленным в 1):
SET TERM ^ ; -- Validate week day match -- param: _MASK - week day mask -- param: _VALUE - day of month (1-7) -- return: _RESULT - match result: match type or NULL if no match CREATE OR ALTER PROCEDURE FN_SCHEDULED_WEEKDAY_MATCH ( "_MASK" INTEGER, "_VALUE" INTEGER ) RETURNS ( "_RESULT" INTEGER ) AS DECLARE VARIABLE "_TEST" INTEGER; BEGIN IF ("_MASK" IS NOT NULL) THEN BEGIN -- Binary functions are available only in FB 2.1, need to make workaround "_MASK" = "_MASK" + 128; -- For comparisons IF (("_VALUE" = 1) AND ((("_MASK"-1)/2) = ("_MASK"/2))) THEN -- Monday "_RESULT" = 1; ELSE IF (("_VALUE" = 2) AND ((("_MASK"-2)/4) = ("_MASK"/4))) THEN -- Tuesday "_RESULT" = 1; ELSE IF (("_VALUE" = 3) AND ((("_MASK"-4)/8) = ("_MASK"/8))) THEN -- Wednesday "_RESULT" = 1; ELSE IF (("_VALUE" = 4) AND ((("_MASK"-8)/16) = ("_MASK"/16))) THEN -- Thursday "_RESULT" = 1; ELSE IF (("_VALUE" = 5) AND ((("_MASK"-16)/32) = ("_MASK"/32))) THEN -- Friday "_RESULT" = 1; ELSE IF (("_VALUE" = 6) AND ((("_MASK"-32)/64) = ("_MASK"/64))) THEN -- Saturday "_RESULT" = 1; ELSE IF (("_VALUE" = 7) AND ((("_MASK"-64)/128) = ("_MASK"/128))) THEN -- Sunday "_RESULT" = 1; END ELSE "_RESULT" = 0; -- Suspend for select SUSPEND; END^ SET TERM ; ^ |
Есть предложения лучше?
Буэээээ…
Октябрь 1st, 2009Что вы можете сказать об этом сайте?
Сайт «Замени Гудок» от Мегафона
Дополнительный вопрос: вам когда-нибудь приходилось пользоваться этим чудо-сайтом?
Я не поленился и специально стянул вот такую плашку:
» Read more: Буэээээ…
Нотки тревоги в российском образовании.
Октябрь 1st, 2009На форуме ЦеСТ недавно появился топик. Спасибо
sfstudio, что обратил моё внимание.
Вот такой мертворожденный проект появился по подготовке к сдаче ЕГЭ:
http://forum.centercest.ru/viewtopic.php?f=11&t=1009
Цитирую:
» Read more: Нотки тревоги в российском образовании.
Функциональное программирование там, где оно не нужно.
Сентябрь 28th, 2009В современном программистском мире появилась тенденция к изучению функциональных языков программирования. И на них сейчас пытаются выразить всё, что только под руку попадётся. Я называю это никак иначе как мозговым онанизмом.
Сразу оговорюсь: я не знаю парадигмы функционального программирования. И вряд ли её буду изучать до тех пор, пока мне это не понадобится. Но то, что, извините, вытворяют функциональщики, порой меня шокирует: решать элементарные задачи через, простите меня, жопу – это выше моих сил и нервов. Зато это повышает ЧСВ аффтаров до уровня over 9000, что очень настораживает и порой порождает сомнения в их адекватности.
Вот характерный разговор с товарищем
ivansorokin (осторожно, русский мат).
» Read more: Функциональное программирование там, где оно не нужно.
Патчим DokuWiki.
Сентябрь 4th, 2009Совсем недавно всплыла проблема с навигацией в dokuwiki.
ПХПисты совсем обалдели и расхлябались! Суют свой быдлокод куда ни попадя, правильно на неправильно исправляют (ибо в предыдущей версии такого не было). Приходится всё за них переделывать.
Итак, у кого кривая навигация в dokuwiki наверху, смело применяем этот патч на файле inc/template.php:
» Read more: Патчим DokuWiki.