Giver: typical vimmer (2009-12-30 21:17:45)
|
||
Giver: флейта (2009-12-04 07:04:49)
Шотландский студент поступил в Оксфордский университет. Через год приезжают к нему родители. Он показывает свою комнату в общежитии.
Сынок, тебя тут не обижают? Нет. Вот на этой кровати спит один мой однокурсник. Отморозок полный. Ночью вскакивает с постели и начинает орать не своим голосом. В общем я с ним не общаюсь. А на этой кровати спит другой мой содед. Этот тоже не лучше. Подрывается среди ночи и бъётся головой в стену. Дурак наверное. Сынок, а как же ты в таких условиях живешь!? Очень просто. Я их игнорирую и всю ночь играю на волынке... А причем тут я со своей флейтой? |
||
Giver: переход (2009-10-15 08:31:28)
|
|||||||||||||||||||||||
Giver: Super key (2009-09-12 21:03:17)
Как то я уже минимизировал количество неиспользуемых клавиш на клавиатуре, но всё же остались несколько незадействованных непонятных клавишь в нижнем ряду, я решил и им найти применение. Изначально клавиатуры для МежДелМаш-совместимых компьютеров проектировали с учетом лишь английского, 27 значного алфавита, поэтому русскому места в ней маловато, вернее самому алфовиту места хватает, а вот самим частоиспользуемым знакам — точке и запятой — отдельных клавишь не хватило, поэтому их подселили к цифрам 7 и 6, заставляя нажимать пользователя шифт при этом. Корпорация Microsoft решила выделиться перенеся их на место вопросительного знака и слеша, коего до сих пор нет в русском алфавите на основной клавиатуре. Но вспомним о наших неиспользуемых клавишах со странным символом, их какраз две, почему бы не повесить точко и запятую именно туда? Сказано — сделано. Дописываем это в ~/.Xmodmap и получаем прибавку к скоросте набора. keycode 115 = comma keycode 116 = period |
||
Giver: (2009-09-06 16:29:17)
Ура! я стал засирать рабочие столы намного продуктивнее, теперь мне четырех нуникак не хватает, добавил еще два, стало неудобно )=. Хочу чтобы было еще миннимум одно измерение. |
||
Giver: борода (2009-09-03 19:11:20)
Борода моя, бородка,
До чего ж ты отросла! Говорили раньше счетка, Говорят теперь метла. Хоть я парень молодой, Но хожу я с бородой. Но я не беспокоюсь, Пусть растет по пояс. Прийдет время бриться, наряжаться С милой целоваться. |
||
Giver: blender animation (2009-08-28 18:58:09)
Начал разбиратся с анимацией в blender. Вот мой первый рендер. Содержит много недочетов уже даже с моей точки зрения, но время рендера (4 секунды видео, 100 фреймов, 30 минут рендера) не позволяет рендерить каждое видео, поэтому это моя первая, и пока последняя отрендеренная анимация. Кроме того решил разобратся с новомодным HTML5 и залить видео используя тэг <video>, а также пожать свободными кодеками — Ogg Theora. В итоге имеем полностью свободный способ выведения видео, поддерживаемый современными браузерами. |
||
Giver: xputs v0.2 is here! (2009-08-04 18:26:32)
Наконецто зарелизил xputs — эмулятор нажиматий клавиш для иксов. Удобный инструмент для скриптописцев и для написания макросов и облегчения прочей рутины. Реализовал всё что планировал, даже поддержку альтернативных локалей (хотя это нужно потестить, ибо никаких других локалей кроме С и ru_RU.koi8-r не имею в наличии, так что хотел бы услышать отзывы счасливых обладателей этих самих альтернативных локалей, особенно utf8, которая нынче преобрела популярность). |
||
Giver: alpha (2009-07-16 19:19:18)
Вот и дожили до альфа версии интерпретатора. Работают все основные «фишки» URQL:
Еще многое впереди, но уже сейчас достаточно большое количество квестов можно запустить сходу или с небольшими изменениями. Морду не трогал, за нее возьмусь по выходу стабильной версии интерпретатора. По той же причине нет возможности открыть произвольный файл Исходный код открою в SVN репозитории и к релизу думаю поднять Trac. А пока можно поиграть в классику — Гарри Гаррисон - Стань Стальной Крысой |
||
Giver: об ошибках (2009-07-01 11:39:43)
«Совет начинающему программисту. Никогда не исправляйте найденные ошибки, ибо это повлечет за собой появление неизвестного числа ненайденных. Лучше опишите их в сопроводительной документации как особенность программы.» © 1998 В.Тихонов. Теория ошибок |
||
Giver: Игрушки (2009-06-25 21:58:19)
Подборочка игр, которые успешно работают на моём интерпретаторе.
В демонах не работает подстановка значений в текст, но всё функционирует нормально. Сейчас взялся за стековый парсер выражений любой сложности, а не основанный на реплейсах как сейчас. Современная версия рабочая в достаточно большем количестве игр, но далеко на ней не уехать. |
||
Giver: URQ (2009-06-23 20:32:47)
Начал разрабатывать интерпретатор языка URQL, код выходит ужасный, правда соответсвует языку с его офигенными фичами типа генерации кода на лету, который затем может быть вставлен в любое место строки, и на этой фиче реализован весь функционал, включая массивы. Синтаксис вообще неподъемный, а вот игрушек на нем успели наколбасить достаточно много. Релизнул пре-пре-пре-альфа версию с зашитой игрушкой "Древний кинджал". Для этой игры возможностей хватает впритык. Пощупать можно тут Проект разбит на три независмых части:
В идеале первые два абсолютно независимые, но благодаря генерации кода парсер частенько приходится подтягивать. Невозможно даже построить вменяемый байткод, приходится делать текстовые замены и парсить в рантайме )=. Зато интерфейс очень абстрактен, уже готовы два: SwingInterface и ConsoleInteface, в задумках еще два: IrcInterface и WebInterface. Сам уже не рад что взялся за это дело, но игрушки очень даже доставляют, да и фаллометрия тоже. |
||
Giver: shaste (2009-05-01 00:19:38)
Носился по файловой системе, увидел файл shaste.zip, почему то решил что там счасть, а там всего лишь игрушка. Эх.. нет в жизни счастья. Хотя игрушка — Speed Haste — классная, чуть ли не единственные 3D гоночки для DOS. Качественная начинка: восемь красивых карт, два класса автомобилей, в каждом из которых по 6 машин, возможность играть по сети или через модем. И самое крутое то, что игрушка могла рисоваться в потрясном разрешении экрана 640x480, поражая всех своей красотой и детализацией. И всё это 1995 год. В DosBox и на nVidia GeForce 2 она отказалась переключаться в высокое разрешение, но играть вполне можно. Попробую запустить еще на других реальных картах, ибо хочеться снова насладиться игрой в полной красе. |
||
Giver: A good lesson (2009-04-28 08:56:22)
Once a rich English woman called Mrs. Johnson decided to have a birthday party. She invited a lot of guests and a singer. The singer was poor, but he had a very good voice. The singer got to Mrs. Johnson's house at exactly six o'clock as he had been asked to do, but when he went in, he saw through a door that the dining-room was already full of guests, who were sitting round a big table in the middle of the room. The guests were eating, joking, laughing, and talking loudly. Mrs. Johnson went out to him, and he thought she was going to ask him to join them, when she said, "We're glad, sir, that you have come. You will be singing after dinner, I'll call you as soon as we're ready to listen to you. Now will you go into the kitchen and have dinner, too, please?" The singer was very angry, but said nothing. At first he wanted to leave Mrs. Johnson's house at once, but then he changed his mind and decided to stay and teach her and her rich guests a good lesson. When the singer went into the kitchen, the servants were having dinner, too. He joined them. After dinner, the singer thanked everybody and said, "Well, now I'm going to sing to you, my good friends." And he sang them some beautiful songs. Soon Mrs. Johnson called the singer. "Well, sir, we're ready." "You are ready?" asked the singer. "What are you ready for?" "To listen to you," said Mrs. Johnson in an angry voice. "Listen to me? But I have already sung, and I'm afraid I shan't be able to sing any more tonight." "Where did you sing?" "In the kitchen. I always sing for those I have dinner with." |
||
Giver: Indian/Chinese Examples (2009-04-19 11:04:11)
Ворочаю документацию по иксам и смотрю примеры — их качество поражает воображение, например вырезка из официальных примеров : rc = XAllocNamedColor(display, screen_colormap, "red", &red, &red); if (rc == 0) { fprintf(stderr, "XAllocNamedColor - failed to allocated 'red' color.n"); exit(1); } rc = XAllocNamedColor(display, screen_colormap, "brown", &brown, &brown); if (rc == 0) { fprintf(stderr, "XAllocNamedColor - failed to allocated 'brown' color.n"); exit(1); } ... И так на каждый цвет, коих в примере используют 6, о циклах ребята не слышали, о массивах, видимо, тоже. А вот еще один кусок кода, который на третьем месте у гугла: int get_byte_order (void) { union { char c[sizeof(short)]; short s; } order; order.s = 1; if ((1 == order.c[0])) { return LSBFirst; } else { return MSBFirst; } } .... if ((LSBFirst == get_byte_order ())) { img->byte_order = LSBFirst; } else { img->byte_order = MSBFirst; } Если примеры нацелены на новичков, зачем так учить? И не удивительно, что начитавшись таких "примеров" появляются такие перлы в реальных продуктах |
||
Giver: 99 бутылок (2009-04-14 20:15:19)
Играли каналом в 99 бутылок пива по полному тексту, я писал сначала на схеме, затем на перле, резульатат на схеме — 404 байта, перл - 272. Scheme: (let* ((& string-append)(b " bottle")(o " of beer") (w " on the wall")(t ".nTake one down and pass it around, ")(m " more")(q(& b "s" o))) (define (s . z)(map display z))(define (v n N g)(s t n g w ".nn" N g w ", " n g)) (define (f n e) (v n n q)(if (= n 2)(begin(v 1 1 (& b o))(v "no" "No" (& m q)) (s"nGo to the store and buy some" m ", 99" q w ".")) (f (- n 1) 's)))(s 99 q w ", " 99 q)(f 98 's) 0) Perl: $b=$q=" bottles of beer";$b=~tr/s//d;$w=" on the wall"; sub p{print @_}sub v{($n,$g)=@_;p ".nTake one down and pass it around, $n$g$w.nn".uc($n)."$g$w, $n$g"} p "99$q$w, 99$q";v 98-$_,$q for 0..96;v 1,$b;v "n","o more$q";p "nGo to the store and buy some more, 99$q$w." Итого финишировал вторым. Первое место занял парень на dc с результатом 266 байт. Правда потом нашли соревнование взрослых дядь, но текст у них упрощен. Зато лучший результат 165 байт на перле, как и вся десятка лучших, кроме девятой позиции на PHP UPD: После упорного колупания пёрла удалось вырваться на первое место со счетом 216, а "взрослые дяди", как оказалось, играют по сокращенному тексту, без последнего куплета. Вот что вышло после изменений: print 99,$q=" bottles of beer",$w=" on the wall",$m=", 99$q",(map{/^1 /&&s/s//;$l=lc;". Take one down and pass it around, $l$w. $_$w, $l"}((map-$_.$q,-98..-1),"No more$q")),". Go to the store and buy some more$m$w." Попутно уловил баг перла — lc модифицировала $_ при обращении к ней, после пересборки перла баг исчез. |
||
Giver: листок (2009-04-03 13:18:58)
При переборе вещей на столе нашел свою старую рукопись, единственную бумажную. Она пока маленькая — только набросок, но грам соли есть. Оцифровал и положил тут. |
||
Giver: физики шутят (2009-04-01 17:54:09)
— Ты куришь?
— Нет. — Пьешь? — Нет. — Наркотики?? — Нет. — Тогда как же ты расслабляешся? — Я не напрягаюсь |
||
Giver: blender (2009-03-23 20:53:34)
Наконец собрал себе blender, штука очень интересная, после часика выдал такое: Накачал книжек пачку, но читать их не выходит, хочется результата, вот и клацаю всё что вижу. |
||
Giver: rxvt-2.6.4 (2009-03-19 21:29:28)
#ifdef SUPPORT_BROKEN_APPS_WHICH_RELY_ON_UNDEFINED_BW_BEHAVIOUR_AS_XTERM screen.flags &= ~Screen_WrapNext; #else screen.cur.col = TermWin.ncol - 1; screen.cur.row--; #endif |
||
Giver: Compaq Evo N150 (2009-03-15 21:02:54)
Не так давно один парень попросил меня о помощи в установке ОС на ноутбук Compaq Evo N150. Дело в том, что привод сего устройства напрочь игнорирует все диски, которые ему показывали, с флеш-накопителей загрузка невозможна, других сменных носителей нет. По его словам ОС отсуствовала. Зато у меня есть переходник MINIIDE и привод от старшего брата ноутбука. И вот в назначенный день ко мне явилась компания: сам парень, девушка, владелица ноутбука, сам ноутбук и диск с пиратской WIndows XP которому было предначертанно занять просторы винчестера. Причина неработоспособности ОС была на лицо — отсутствовал NTLDR, его девушка удалила посчитав вирусом — программно не отделатся — в руку легла отвертка. Ставить новую систему не было вообще никакого желания, хотелось просто подбросить NTLDR на его место и отпустить человека с миром. Но нужно было взгянуть на содержимое винчестера, что затруднительно сделать без загрузки ОС. Чем мы и занялись. Для начала попытались подтсавить привод, но он оказался неподходящим не только по интерфейсу, но даже по габаритам — на несколько миллиметров выше щели, предназначенной для него. После извлечения винчестера из нед машины обнаружилась вторая неудача — винчестер был неформатный, может и было имя сему стандарту, но подключать его у меня было не к чему. Единственным вариантом загрузки была загрузка по сети. Тогда место отвертки в руке занял бубен. После включения соответсвующего пункта меню в CMOS SETUP ноутбук стал усиленно искать DHCP сервер при загрузке. Я реализовал его желание путем включения DHCP сервера у моего роутера. Но ноутбук отказался принимать его, сказав что не указано имя загрузочного файла. Тогда было решено заняться этим вопросом серьезно. Ноутбук пытался загружаться с помощью технологии PXE, которая требовала наличие DHCP/BOOTP и TFTP демонов, а так же необходимые для загрузки файлы на TFTP. Итак приступаем к установке необходимого софта: Забираем дистрибутивы BOOTP (http://www.sfr-fresh.com/linux/misc/bootpd-4.3.tar.gz) и TFTP (ftp://ftp.kernel.org/pub/software/network/tftp/tftp-hpa-5.0.tar.gz) демонов, распаковываем, ставим привычным ./configure && make && make install, после чего получаем полностью рабочую среду для старта по сети. Оба демона работают через inetd, прописываем их в конфигах: /etc/inetd.conf: tftp dgram udp wait root /usr/sbin/tcpd in.tftpd -s /home/giver/src/tftp bootps dgram udp wait root /usr/sbin/bootpd bootpd -i /etc/services: bootps 67/udp bootp # BOOTP Server bootpc 68/udp # BOOTP Client Теперь нам нужен загрузчик — берем PXELINUX входящий в состав коллекции загрузчиков syslinux (http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.73.tar.bz2), после сборки ложим файл pxelinux.0 в корневой каталог TFTP сервера. Теперь возник вопрос: «что грузить?». Нужно было что то легковесное, умеющее работать с сетью и имеющее набор инструментов для работы с жестким диском. Выбор пал на мой дистрибутив ShadowFly, который удовлетворял все требования, а если чего не хватало, можно будет быстро дособрать. Для загрузки кладем ядро (vmliuz) и образ файловой системы (initrd.img) на TFTP, затем настраваем загрузчик и BOOTP демона: /etc/bootptab: .192-168-1-10:ip=192.168.1.10:ha=00D0592AB123:gw=192.168.1.2: ds=192.168.1.2:td=/home/giver/src/tftp:bf=/pxelinux.0: /home/giver/src/tftp/pxelinux.cfg/C: DEFAULT linux LABEL linux KERNEL vmlinuz INITRD initrd.img APPEND initrd=initrd.img root=/dev/ram vga=4 После этих манипуляций ShadowFly успешно загрузился, сетевая карточка (Intel EEPRO100) поднялась без проблем пинком модуля в ядро. Винчестер объемом 15гб имел единственный NTFS раздел, важных данных, по заверениям владелицы, на нем не было. NTFS я смог смонтировать только для чтение (из-за использованя ядерного модуля, fuse+ntfs-3g в дистрибутиве нет), на нем оказалась почти голая WinXP с небольшим набором дополнительного прграмного обеспечения. Linux был, но как теперь установить женскую операционную систему? Можно было разбить и отформатировать винчестер в FAT32, затем залить на него дистрибутив, а вот как загрузить DOS, необходимый для запуска программы инсталяции? Тогда достаем из закромов дискету с IBM PC DOS и начинаем шаманство с квему. На образ дискеты помещаются: ibmbio.com, ibmdos.com, command.com, fdisk.com и format.com, затем создаем пустой файл — будущий винчестер — и грузимся в qemu: $ dd if=/dev/zero of=dos.img bs=1M count=5 $ qemu -hda dos.img -fda floppy.img -boot a В эмулируемой среде разбиваем винчестер и форматируем его с переносом системы — format c: /s. Вобщем этого хватит для начала, но лучше смонтировать единственный раздел виртуального винчестера и положить на него полезные утилиты типы PowerQuest Partition Magic, Volkov Commander, драйвера мыши, расширенной памяти и локализатор. После чего полученный образ выкладыаем на FTP и забираем. Забирать оказалось некуда, поэтому выделяем под свои нужды еще один RAM-disk: # mke2fs /dev/ram1 # mkdir /mnt/loop # mount /dev/ram1 /mnt/loop # cd /mnt/loop # wget ftp://i815/dos.img # cat dos.img > /dev/hda Последней коммандой мы перезаписываем таблицу раздело, загрузчик, и прочую информацию, хранящуюся в первых пяти мегабайтах винчестера. И после перезагрузки мы видим приглашение DOS. Разбиваем винчестер: 2гб FAT16 под дистрибутив (PC DOS не умеет FAT32) и всё остальное под FAT32. После сих манипуляций сново грузим по сети ShadowFly. На моей машине нет привода, диск с WinXP отправился в мой ноутбук, с которого файл можно забрать лишь по протоколу SAMBA — монитруем шару в каталог внутри FTP на рабочей станции и забираем дистрибутив оттуда. Снова в дос, пытаемся запустить i386winnt и получаем сообщение: «Имя файла или каталога указано неверно». Оказалось что либо pure-ftpd, либо samba урезала каталог до 512 файлов, а их там существенно больше. Пакуем i386 таром, забираем из под линукса и распаковываем — все файлы целы и на своих местах, перегружаемся в ДОС, запускаем winnt и получаем приветствия и бурные овации от инсталятора. |
||
Giver: море (2009-02-20 07:57:47)
«И опять мне снится одно и тоже, за моим окно мерно дышит море и дрожит весь дом от его ударов, на моём окне остаются брызги, и стена воды переходит в небо и вода холодна и дна не видно. И корабль уже здесь и звучит команда, к моему окну опускают сходни, и опять я кричу: «Погодите!!! Постойте!!! Я ещё не готов дайте день на сборы, дайте только день, без звонков телефона, без дождя за окном, без вчерашних истин, дайте только день». Но нет, не слышат, отдают концы, убирают сходни, и скрипит штурвал и звучит команда, на моём окне остаются брызги и на миг паруса закрывают небо, и вода бурлит и корабль отходит. Я стою у окна и глотаю слёзы, потому что больше его не будет. Остаётся слякоть Московских улиц, как на дне реки фонарей осколки... и ещё прохожих чужие лица и остывший чай и осенний вечер.» |
||
Giver: ВЕСНА (2009-02-17 16:50:59)
ВЕСНА |
||
Giver: CD Wallet (2009-02-13 07:30:16)
Бороздя просторы интернета, наткнулся на одну замечательную штуку — реализацию конверта для двух CD дисков из бумаги с исходниками. Эра оптических носителей у меня уже закончилась, на данный момент не ни одного привода, подключенного к машине, flash-накопители заменили диски полностью. Но завалы дисков лежат то здесь, то там, и сие устройство поможет в их сортировке и хранении. Собирается за 2 минуты, затраты — 1 лист A4 и сразу два диска получают себе место для будущей жизни. |
||
Giver: Креатив (2009-02-06 19:47:49)
Почти год назад была у нас практика, была она во второй половиен дня, и однажды мы увидели такой вот креатив на доске: Посменялись, сфоткали, отзанимались и ушли по домам. Его не стирали несколько дней, но доска понадобилась для каких-то чертежей и этот шедевр стерли. А на следущий день на доске нас ждала следующая картина неизвестного художника: Жаль, но больше сей мастер доски и мела не давал о себе знать... |
||
Giver: qip license (2009-01-22 08:13:10)
Вы читаете лицензии когда с ними соглашаетесь? Вот после аськокапца захотел проверить ее смерть в новом квипе, и заодно прочитать соглашение. Вот некоторые перлы:
Поистине, QIP — спокойное общение. UPD: http://forum.ixbt.com/topic.cgi?id=15:61933 — глас народа. |
||