Home
Ничем не примечательный ЖЖ
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in gds' LiveJournal:

    [ << Previous 20 ]
    Sunday, July 5th, 2009
    12:03 pm
    fido, текущий взгляд
    цитата из разговора посредством IM (ник собеседника заменил, так как не знаю, как он отреагиюрует на постинг)

    (11:48:13) n: меня ща беспокоит, почему ффиде нифига нет почты..
    сломалось чё, или ет?
    (11:49:31) gdsfh: неужели наконец вся пидошка сломалась? вот щасте будет!
    (11:51:55) n: кому щастье?
    (11:52:50) gdsfh: людям щасте будет. забудут это как страшный сон.
    (11:53:26) n: кого забудут, бинкд или гойдед?
    (11:59:22) gdsfh: бинкд мало привязан к пидошным стандартам. адресация, резолвинг, спец.обработка pkt и аттачей, и вроде как всё.
    гойдед -- забыть надо. вместе с кучей ебанутых форматов -- msg, pkt, squish, jam и так далее. как я помню, не-ебанутых там действительно мало.
    соответственно, забыть нахуй тоссеры, линкеры баз, пуржеры.
    но это с технической точки зрения. главное же, что надо забыть, предварительно надругавшись над, это ебанутая иерархия, свинское поведение (следующее из духа фидо и иерархии), эти смешные "модераториалы" (блять, арифметика звёздочек! ебануться можно!), пидорасов-клоунов и клоунов-пидарасов, скачущих по всей пидошке, фимозников, фидарасов, ебанашек с ЧСВ овер 9000, модерашек с синдромом вахтёра, и прочих достойных личностей.
    НАТЕ НАТЕ НАТЕ11111

    //
    с уважением, 2:469/105.
    Monday, June 29th, 2009
    10:37 pm
    gobby
    На данный момент единственная польза от icfpc'09, в котором я не участвовал, состоит в том, что узнал о существовании софтины gobby -- редактор, позволяющий совместно редактировать текстовые файлы, по tcp/ip, в реалтайме. Кроссплатформенный, выделение цветами кто-что редактировал, есть выделенный сервер (sobby), есть встроенный чат.
    Мне давно такой штуки не хватало. Может кому-нибудь тоже вдруг.
    Единственное, что ниасиливаю -- их концепцию файлов. Всякими autosave-{interval,file,directory} не получилось нарулить простую и тупую модель, в которой был бы сервер, хранящий файлы и директории, и была бы возможность работать с файлами, имея централизованную рабочую копию файла на выделенном сервере. Пока же получилось только так: инициатор сессии берёт свою копию файла, создаёт сессию редактирования этого файла, и уже всё работает дальше относительно его рабочей копии, что кажется не слишком удобным.
    Wednesday, June 24th, 2009
    8:40 pm
    misc
    Сделал бастурму по технологии [info]d_sanin, описанной тут, с подробностями и картинками.
    Первые, самые мелкие кусочки уже готовы, сейчас попробовал один. Понял ошибки, понял методы улучшения, но, в целом, получается весьма приятное вяленое мясо.
    Есть две основные проблемы при изготовлении: 1. специя "чаман" (также известная под кучей других названий) не везде продаётся. Мне повезло, у нас на базаре есть. И продаёт её грамотный чел в шаблоноразрывающей майке "Microsoft Sales Manager", 2. свежая говядина, нужный кусок. То, что у автора называется "щуп", у нас ищется как "мясо с внутренней части бедра". Однако и из другого мяса тоже ок. Смысл -- чтобы было меньше прожилок и подобного. У меня вроде даже из шейки, не помню точно.
    Остальное не проблема совершенно. Справится даже самый блоггер.

    А я тем временем зомышляю.

    На icfpc команду собирать не думаю, так как я с тех пор не стал сколько-нибудь заметно лучше хоть в каком-нибудь плане, а условия тут ещё более жёсткие. Разве что чисто для себя порешаю, если будет иметь смысл.

    Из программирования -- пытаюсь понять на практике, до какого уровня применимы окамловские функторы. Типизация у них, конечно, интереснее, чем у обычных значений, но и ограничения: всё, что входит-выходит в-из функтор(а), может оказаться не first-class value, то есть, и не значением вообще. А, например, модулем, как любезно подсказывает К.О.

    Бинарные билды overbld -- это, конечно, круто, но надо бы и публичный репозиторий с исходниками поднять. В идеале -- с публичным push.

    Из vcs я уважаю mercurial и недолюбливаю git, однако у людей свои предпочтения. Если брать "и нашим, и вашим", то нужен какой-нибудь софт для того, чтобы иметь репозиторий (или два) с доступом как по протоколу mercurial, так и по протоколу git. Но разница между ними слишком большая, поэтому, предполагаю, технологически проще было бы сделать два репозитория и грамотную синхронизацию между ними. Фактически, от репозиториев, хранящихся где-то на сервере, требуются только функции clone, pull, push: создать копию репозитория, стянуть чужие изменения в локальную копию, засунуть свои изменения в удалённый репозиторий. А между двумя репозиториями -- two-phase commit protocol, или же тупые блокировки, что непринципиально.
    Sunday, June 21st, 2009
    12:38 pm
    Вчера отдыхали в лесу у реки. У рыбака выменяли мелкую рыбёшку (\approx 15см), и мне доставило некое удовольствие своими руками её убить, распотрошить и тут же зажарить. Пожалуй, эта рыбка посредством моих рук прошла самое быстрое преобразование из живого существа в еду, которое я видел в своей жизни.

    Пишите хороший код, а плохой код не пишите.
    Вместо написания плохого кода лучше отдыхайте на природе, в хорошей компании и с жареным мясом.
    Friday, June 19th, 2009
    12:23 am
    OVerbld
    Как обычно. Те, кому я говорил про OVerbld, мало понимали смысл, а тем, кто мог бы понять, я не говорил из-за неуместности и вообще скуки всего этого унылого процесса.

    keywords: ocaml windows mingw x86 x86_32 binary distribution repository

    В целом, я сделал систему сборки окамла и библиотек (весьма общую, не ограничивающуюся окамлом), работающую не только под юниксами, где всё тривиально, но и под виндами (конкретнее, из cygwin/mingw/msvc в качестве основы выбрал mingw как наиболее расово-верную платформу; msvc тоже нужен и скорее всего будет, а cygwin сделать вообще легко). В планах — расширение набора библиотек и прочие нехитрые радости жизни.

    Однако, оказалось, исходники — это мало кому нужно, и сейчас в моде бинарные билды. "Да хуйня вопрос!", — сказал я, и надрочил бинарных билдов под винду. Ну реально не жалко, и самому полезно.

    Всё это дело я решил обозначить урлом http://overbld.tk/, однако, из-за неведомой ёбаной хуйни данная ссылка открывается не всегда, поэтому и доступность повышу, и заодно пропеарю моего хостера, который помог как минимум мне, как максимум кому-либо из вас: http://overbld.abcname.net/

    Акута матана.
    И вообще, уважайте матан.
    Wednesday, May 27th, 2009
    1:53 pm
    из рубрики "сто интересных фактов обо мне"
    Несмотря на то, что псиносрач является известной дисциплиной Специальной Олимпиады, позволю себе публично выразить своё мнение по этому вопросу.
    Я — за "живодёров", против "зоофилов".
    А ещё у меня дома живут две милые кошки.
    Thursday, May 14th, 2009
    3:39 pm
    safe bash coding guidelines

    Заметки о безопасном программировании на bash / Safe bash coding guidelines

    У меня была и есть необходимость писать некоторый код на bash. Как выяснилось, не всё так плохо: в отличие от sh, bash кое-где стремится сделать шелл-программирование более безопасным. Однако, шелл — он и в африке шелл: нетипизированное интерпретируемое тормозное неконсистентное говно, однако незаменимое в некоторых случаях.

    Я использовал не слишком много возможностей баша, и не старался попробовать всё. Мне в первую очередь нужно было, чтобы как можно меньше времени и сил уходило на отладку, я хотел минимизировать ущерб от багов своего кода, и мне очень нужна кроссплатформенность. Всё, о чём я пишу в этой статье, хорошо работает на современных линуксах, на бсд и даже под виндой (mingw/msys).

    У меня по условиям задачи есть баш. Ни на какие другие шеллы я не рассчитываю. Соответственно, всё нижеследующее касается только баша.

    Read more... )

    exit 0

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

    Пост будет обновляться по мере получения информации по данному вопросу.

    Редакция будет рада обратной связи, замечаниям, дополнениям, критике и прочей фигне. Редакция вообще очень рада бывает иногда.

    Thursday, May 7th, 2009
    10:31 am
    on-disk datastructure для мозга
    В последний год кое-как занимаюсь гидропоникой. Ничего криминального не выращиваю, чисто как proof of concept. Так же, как несколько лет назад выращивал грибы из спор.
    И так же, как с грибами, сталкиваюсь с неприятным свойством информации: взаимосвязи между понятиями в пределах одной области очень тесные, и любая попытка разложить их линейно, в виде последовательного текста (книги, статьи) требует, чтобы в мозгу читателя создалась чёткая картина. Чтобы были на отдельных полочках все понятия, чтобы были чётко очерчены взаимосвязи между ними. Разумеется, процесс этот не быстр. Я читал несколько относительно серьёзных книг (одна обычно в файле "HowToHydroponics.pdf", вторая — старая и классическая Зальцера, и ещё какие-то помельче), кучу статей по разным аспектам гидропоники, и только таким образом хоть какая-то картина сложилась.
    А эти книги — это не научные статьи с требованиями о лаконичности изложения материала. Немалая часть текста там — реклама гидропоники, её отличия от возни с землёй, разрушение стереотипов. Вещи правильные, но на десятой статье немного надоедают. Кроме того, часты случаи предоставления ненужной информации — той, которая в реальной жизни не пригодится.
    А теперь вот мне нужно передать полученную информацию моему реаллайф-другу, в жыжыцэ неизвестному как [info]walrus_bta, который, с одной стороны, насмотрелся на всякие баночки с водичкой и кустиками, а с другой стороны, имеет доступ к хорошей рассаде, например, помидоров.
    Когда стал вопрос о пересадке растения из земли на гидру, я уже был озадачен. Накидал ссылок на несколько статей, но ни одна из них полностью не описывала все грабли, на которые можно наткнуться в процессе.
    Нужна какая-либо форма передачи информации, которая была бы приемлема для лёгкого всасывания мозгом.
    Проводя параллели с программированием, хочется сделать структуру данных, по которой удобно ходить, если она расположена на внешнем хранилище данных, без требования о десериализации её во внутренний формат мозга.
    Простой пример: одно из центральных понятий гидропоники, "питательный раствор". Должны быть связи с другими понятиями: с водой (какая/как), с химическим составом, с концентрацией (а она, в свою очередь, с вопросами о том, какие проблемы будут, если её сделать больше или меньше нормальной).
    Химический состав должен быть связан с готовыми минеральными удобрениями, с классическими "самодельными" минеральными смесями, с вопросами о допустимости органики в растворе, тут же связь с водой (а именно, необходимость коррекции состава в зависимости от жёсткости воды). Должен быть описан процесс "приготовление раствора по <какой-либо схеме>".
    Как видите, внутренних связей очень много, в линейное представление уложить непросто.
    Формат вики (и гипертекста в общем понимании) — близко, но недостаточно: гемор с ручным проставлением ссылок, да и неудобно будет всё это структурировать.
    Формат mindmap'ов — ближе, но все софтины, которые я видел, казались какими-то неудобными, закрытыми (closed source), без возможности удобного "экспорта" для публикации в инете (что и понятно — кому свой mindmap захочется публиковать), да и не совсем хорошо там структурировать подобную информацию.
    Если у кого-нибудь будут идеи — абсолютно любые! — по озвученным тут проблемам, буду рад обсудить. Задача передачи информации встаёт часто, и выращивание грибов, выращивание растений — это не только два случая, когда это нужно.

    upd1 Стоит ли пытаться визуализировать понятия и связи между ними посредством графа на плоскости? Плюсы: становится обозрима вся структура, навигация упрощается до безобразия. Минусы: гемор, не всё можно красиво уложить на плоскость, автогенерация графа вызовет изменение местоположения отдельных частей, что не будет стыковаться с картиной, которую запомнил отдел мозга, отвечающий за "пространственную память" и прочую гоеметрию.
    Thursday, April 23rd, 2009
    12:20 am
    autoconf
    Жизнь дала трещину :)
    ./configure без аргументов в качестве префикса использует, допустим, /usr/local. (а ведь ещё можно указать --prefix=/usr или что-то ещё). А под mingw окамлу и прочему софту нужны пути в виде "drive:/path" — с явным указанием диска.
    Можно было бы до создания myconfig из myconfig.in (т.е. до "AC_OUTPUT(myconfig)") в configure.in написать код для mingw, что-то типа
    my_prefix=`cd ${prefix} && pwd -W`   # pwd -W даёт путь вида "drive:/path"
    AC_SUBST(my_prefix)
    , но проблема в том, что до AC_SUBST переменная prefix может иметь значение, например, "NONE". Миленько, cd ${prefix} не выполнится. Причина "NONE" понятна: значения, не определённые configure-скриптом, должны получить разумные значения по умолчанию. Они получают значения по умолчанию в тот момент, когда configure-скрипт уже точно ничего не сможет переопределить: в самый последний момент, при AC_OUTPUT, и значения по умолчанию могут быть взяты из ${prefix}/etc/config.site (хост-специфичные значения).
    В рантайме, во время выполнения шелл-скрипта myconfig, очень вероятно, что будет совершенно другая environment, в том числе, может использоваться другая инсталляция mingw/msys, поэтому абсолютные пути надо прописать при ./configure. В качестве тупого варианта — генерить не myconfig, а generate-myconfig.sh.in, в котором указать
    prefix=`cd "@prefix@" && pwd -W`
    echo "prefix=\"${prefix}\"" >> myconfig
    , и который запускать сразу из ./configure. Элегантность потрясающая. Есть идеи лучше?
    Saturday, April 18th, 2009
    1:55 pm
    autoconf
    Хоть вы меня за яйца подвесьте, но я не считаю autoconf уродливым.
    Это же шелл-скрипт. Он таким и должен быть. Особенно учитывая, какие к нему предъявляются требования (а именно: работать всегда и везде, где есть unix-style командный интерпретатор, и не просить ничего кроме него для своей работы).
    Да, я только про autoconf, остальными autotools я не пользовался. (хотя shtool мне понадобится, наверное. automake и libtool -- точно нет.)

    Кстати, если бы в баше было получше с квотингом (или если бы я сел и осмыслил, каково точное положение с квотингом в баше), HOFs точно реализовал бы. Там даже что-то вроде лиспа получилось бы. Конечно, производительность была бы удрочающая -- часто дёргал бы башевский eval (который не дешёвый), и частенько рожал бы subshell, что тоже дорогая штука. Поэтому более правильным было бы компилировать какой-нибудь простенький dsl в bash-скрипт. Хотя бы лямбда-исчисление со статической типизацией, простейшими статическими типами и mutable values.
    Но пока писать на баше проще, чем изображать dsl -> bash транслятор.
    Friday, April 17th, 2009
    9:21 pm
    netcat (dumb) for windows
    I wrote a software with base functions of netcat (very dumb, really) for windows, to use it in my OVerbld project. I can't imagine a future of OVerbld, but netcat/win can be useful alone.
    netcat_dumb is able either to send stdin to host_{addr,ip}:port, or to listen port and write received data to stdout.
    I wrote in in cpp + C. I like the dirty cpp macros, yeah!
    Binary mode for STD* file descriptors works ok on windows, it compiles under mingw, freebsd and generally under almost any unix (with includes/libraries fixing, maybe).
    I host it here: netcat_dumb-0.1.tar.bz2. Host may be down sometimes (0.1% avg downtime). Write me (jabber/mail/lj) if you need this software but the host is down.
    Tuesday, April 7th, 2009
    6:00 pm
    кошко
    У одной из кошек, когда она хочет жрать, есть дебильная привычка: залезть на подоконник (с ногами!) и начать щипать листья растений, стоящих там. Конечно, меня это раздражает, я обращаю на это внимание, кошке этого достаточно.
    Но недавно я решил устроить маленькую подлость.
    Проверил, что кошки не любят зелёный лук. А от белого так вообще ШОКЕ ШОКЕ. Засадил нехилую гидропонную бадью с луком, и сам ел его, и ждал.
    И сегодня это случилось. Прилёг на диван после трудовых будней, кошки хотят жрать, а жрат у них только через час по графику. Одна залезает на подоконник и начинает щипать лук. Отщипнула, съела, пару раз повторила. И так жалостливо смотрит на меня. Типа "хозяин, давай мясо по-хорошему, противно же".
    Сдаётся мне, что она нашару говна нажралась.
    "Нет, всё-таки природу я люблю".
    Sunday, April 5th, 2009
    12:44 pm
    Sapka contest.

    Это — НЕ отзыв о контесте. Что бы там ни думали благородные доны.

    Read more... )
    Friday, March 6th, 2009
    11:13 am
    Sapka
    Sapka contest — http://stanfy.com.ua/contest/
    Говорят, будет интересно. В стиле ICFP.
    У меня не факт, что всегда будет время в течение недели проведения, и есть ещё два человека с такими же disabilities.
    Зарегистрировал команду номер 163.
    Основной язык — угадайте.
    Предварительная коммуникация — в нашем гламурном чятике ocaml@conference.jabber.ru.
    Thursday, March 5th, 2009
    2:36 pm
    bash
    изначально писал в жаббер кое-кому, но опубликую здесь.
    Сейчас применил интересный приём в баше. paralleling is easy!111
    Нужно мне посчитать дайджесты файлов, чтобы их вместе с файлами послать. (секурити, ёпт)
    Можно так (пишу на псевдокоде и опускаю требуемый квотинг; думаю, будет понятно):
    for F in files; D=$(get_digest $F); send $D $F; done;

    а можно так:
    function get_digests () { for F in files; do get_digest $F; done; }

    function send_digested () { for F in files; do read D; send $D $F; done; }

    get_digests | send_digested

    Весь прикол -- в параллельности. В первом случае дайджест считается, ждём результата, результат берётся в D, файл и дайджест посылаются по сети, затем переходим к следующему файлу.
    Во втором случае get_digests считает все дайджесты по порядку, пишет их в stdout, а send_digested кушает их из своего stdin'а по мере необходимости. В результате получаем, что все* дайджесты уже посчитаны во время посылки первых файлов, и общее время поддержания сессии сокращается.

    Да, и укрепляюсь в идее написания "safe bash scripting guide". Ибо на баше кодить — удовольствия мало, так хоть проблем чтобы поменьше было, и то хорошо.

    _____________________
    * — наёбка.
    Wednesday, February 11th, 2009
    6:25 pm
    Все знают утилиту less. (а кто не знает — тому будет неинтересно.)
    Если ей в stdin срать текстом, она будет его отображать на экране. Проблема в том, что иногда хочется запустить какую-нибудь компиляцию, результаты которой постранично листать. С помощью less это не получится: если некоторое время не листать, то буфер заполнится быстро (там 4kb, что ли, обычно; не суть важно), и компиляция уснёт, ожидая, что кто-нибудь прочитает её stdout.
    Можно в less нажимать pagedown, но надо нажимать после каждой страницы, что обычно геморно. Можно нажать End и затем Home -- сначала получим весь результат, а потом только сможем начать его просматривать, что не кошерно (хочется следить за процессом, не дожидаясь его окончания).
    В man less ничего про подобное не написано, да и не только для less нужна подобная штука.
    Интересно, есть ли утилиты, жадные до stdin'а, и отдающие результат чтения в stdout по мере возможности? Или может написать подобную штуку?
    Saturday, January 31st, 2009
    12:26 pm
    По поводу моего выпадения из жабберов всяких — вывел правило. СНАЧАЛА — читать /usr/ports/UPDATING, ПОТОМ — делать portupgrade -a. Из полезного навернулись pidgin, mplayer и vlc.
    Ничего важного не требует жаббера сейчас, поэтому подожду, пока оно дообновится.
    Заодно появилась куча времени, которое тратилось на IM прямо и косвенно.
    Воспользовался сэкономленным временем и продвигаю свой проектик OVerbld (о нём как-нибудь потом расскажу; кстати, название проекта должно чётко вызывать две ассоциации — "есть контакт"?). Ещё никогда не писал столько на bash + sed + рядомлежащих утилитах. Может потом как-нибудь созрею на статейку типа "safe bash coding".

    Далее, после обсуждения в окамловском чятике у меня появились идеи, как под mingw и msvc завести ocamlnet, так же как и некоторый другой софт, написанный под юниксы изначально. Я нашёл этому поистине чудесный метод, но посты жажи слишком узки для него.

    Кроме "sick my duck" подумалось "you cook socks". Хоть пришло в голову само, urban dictionary это уже знает.
    Tuesday, January 20th, 2009
    9:20 pm
    bash/msys/wine/bsd
    Никогда не мог подумать, что это может случиться.
    Сейчас меня расстраивает нежелание wine под bsd эмулировать bash, скомпилированный под win32 и входящий в msys.
    И bsd, и wine старые, но — сам факт каков!
    Monday, December 22nd, 2008
    6:52 pm
    Пытался автоматизировать скачивание одной штуки с закрытого форума. wget url -- forbidden. Ну, думаю, user-agent проверяет. Взял какой-то юзерагент из интернетов, подсунул, не помогло. Думаю, может левый юзерагент, надо в реальности посмотреть, какой шлётся. Расчехлил tcpdump, посмотрел и переписал юзерагента. Снова forbidden. Посмотрел ещё в запрос от браузера, увидел "кукисы"™. Почитал документацию, решил подсунуть их -- на всякий случай, вдруг в этом дело. Не помогло. Долго чесал репу. Хотел весь запрос запихать в wget.
    А потом решил проверить, какой заголовок отсылает wget. Делаю tcpdump -s 0 -X -v dst somehost... Смотрю -- ничего не отсылает, а forbidden каким-то хреном получает.
    Оказалось, в окружении стояло http_proxy, оставшееся со старой сетевой конфигурации, и прокси запрещал доступ, тогда как в браузере стояло "прямое соединение к интернет".
    Ситуация называется "горечко от умишка".
    Wednesday, December 17th, 2008
    3:07 pm
    Господа, я решил признаться в собственной ментальной импотенции.
    Несмотря на то, что задача из предыдущего поста решается просто, хотя бы даже индукцией по AST, состоящему из значений, более общая задачка, которую я решил поковырять, строго, в coq, не решается. Я хотел доказать, что для любой операции "@", про которую известно _только_ такое: a@b = b@a, a@(b@c) = (a@b)@c, верно утверждение, что выражение a@b@c@...@z зависит только от значений входящих в него переменных, и не зависит от расстановки скобок в выражении. В терминах Coq я бы сформулировал это через multiset'ы: если multiset'ы, состоящие из значений переменных, равны, то равны и значения любых выражений, составленных из этих переменных. Но не так-то просто это доказать, как оказалось.
    Даже с помощью могучего [info]beroal, рассказавшего мне про Coq очень много интересного, у меня не получилось доказать всё строго, в Coq.

    А пишу я всё это только потому, что вопрос надо закрыть, каменты раскрыть, непричастных наказать, виновных наградить, детям цветы, бабам мороженое. Иногда были вещи, о чём написать (буквально насрать на ваши мониторы посредством вашей же уютненкой жежешечной фиенд-ленты), но это было неприемлемо из-за такого висящего вопроса.

    Теперь же — берегитесь.
[ << Previous 20 ]
About LiveJournal.com

Advertisement