Giver: Яйца! (2008-12-25 07:20:27)
Вензапно обнаружилось пасхальное яйцо в IDE схемы. Вместо привычного синего прогрессбара получилась вот такая картинка. Причино, по всей видимости, послужила системная дата. Нужно схему запускать чаще, хотя бы ради того что найти в какие еще дни можно увидеть что-нибудь подобное. А в схему я попал вот зачем — нужно было реализовать сортировку, но не протсыми человеческими методами, а таким, до которого я не смог дойти своим умом, но он вполне рабочий, можете использовать в своих проектах (=. Вот код, да поймут понимающие: (define (show . z) (map display z) (newline)) (define (nth l n) (if (= n 0) (car l) (nth (cdr l) (- n 1)))) (define (rand ls) (nth ls (floor (* (length ls) (random))))) (define (shuffle ls) (define (iter tail head) (if (null? tail) head (let ((s (rand tail))) (iter (remove s tail) (cons s head))))) (iter ls '())) (define (sorted? ls) (define (iter n ls) (if (null? ls) #t (if (< (car ls) n) #f (iter (car ls) (cdr ls))))) (iter (car ls) (cdr ls))) (define (randsort ls) (define (iter n) (let ((l (shuffle ls))) (show n " " l) (if (sorted? l) l (iter (+ n 1))))) (iter 1)) (show (randsort '(2 1 3))) |
||
Giver: псих (2008-11-24 18:13:53)
Стоило Геку взглянуть в его глаза, и он понял - этот человек ненормальный. Не псих, нет. Ненормальный - в самом хорошем смысле этого слова. В смысле сильно отличающийся от нормального. Не безумный - наоборот, умный. Такая ненормальность свойственна всем гениям, но чаще она встречается у обычных людей без явных признаков гениальности. Гек хорошо знал эту породу - такие люди обычно умны, разносторонни и смекалисты. Они гуманисты, фантазеры и мечтатели. Они могут быть вполне успешны в повседневной жизни. Могут, если захотят, образцово-показательно справляться со служебными обязанностями. Но их беда, а может, счастье состоит в том, что слишком большой внутренний мир словно не умещается в черепной коробке, а оттого причудливо комкается и сгибается. И в каждой точке, где ломается внутренняя картина мира и прогибается восприятие реальности, как грибы растут и многочисленные комплексы, а между ними ползают стаи внутренних тараканов. И поэтому такие люди небежно выделяются среди окружающих, просто не могут не выделяться. От такого человека можно ожидать чего угодно. Он может оказаться вегетарианцем. А может, наоборот, быть убежденным пожирателем сырого мяса или адептом еще более странной диеты. Он может удивлять соседей купанием в проруби, бегать босиком по снегу, обливаться водой на морозе или ночевать на балконе на ковре гвоздей. Такой человек сможет оказаться непоколебимым трезвенником или, наоборот, идейным наркоманом, знатоком галлюциногенов и психоделиков, теоретиком фармакологии и мистики. Он может исповедовать идею счастливой любви - одной на всю жизнь до самой смерти. А может быть сторонником гарема или свободных отношений. А может быть ярым противником секса вообще. Главное, что любые странности такого человека всегда идейно обоснованы и аргументированы, и спорить с ним невозможно - его убежденность в истинности своего пути непоколебима. Он может всюду пропагандировать атем или, наоборот, истово веровать в какого-нибудь экзотического бога. Он может являться редким знатоком какой-нибудь полузабытой древней культуры или создать свое учение и вести за собой толпы учеников. Он может в совершенстве владеть мертвыми языками или обладать международным дипломом инструктора по какому-нибудь нелепому на вид, но грозному в умелых руках холодному оружию. Иными словами, такой ненормальный человек может все, что не может прийти в голову любому нормальному. Такие практически никогда не бывают преступниками, но терпеть не могут представителей любой власти. И найти подход к ним очень сложно. — Ну значит вот. А так чтобы ни одной книги... — Я-на-диете. — перебила Нюка, отколупнула еще один кусок штукатурки и бросила в открытое окно. — При чем тут диета? — удивился Гек, — Да и зачем тебе диета? Ты же не толстая? — Интеллектуальная-диета-гораздо-важнее-плотской. Это-ты-жрешь-чего-попало. Журналы-он-читает... А-кто-их-приготовил? Из-каких-продуктов? Вот-я-ограничиваю-себя-в-пище-духовной. — Зачем? — Чтобы-разум-не-жирел-от-избытка-информации. Чтобы-все-усваивалось-организмом-равномерно. Тщательное-пережевывание-духовной-пищи-залог-психического-здоровья. |
||
Giver: Коан (2008-11-19 12:24:00)
Рёнан, дзенский мастер, жил самой простой жизнью в маленькой хижине у подножья горы. Однажды вечером в хижину забрался вор и обнаружил, что там нечего украсть. Вернувшись, Рёнан застал у себя вора. «Ты прошел долгий путь, чтобы навестить меня,- сказал он бродяге,- и ты не должен вернуться с пустыми руками. Пожалуйста, возьми в подарок мою одежду.» Вор был ошарашен. Он взял одежду и тихонько ушел. Рйонан сидел нагой, любуясь луной. «Бедный парень, — задумчиво сказал он. — Мне бы так хотелось подарить ему эту прекрасную Луну.» Тандзан и Экидо шли однажды по грязной дороге. Лил проливной дождь. Проходя мимо перекрестка, они встретили красивую девушку в шелковом кимоно и шарфе, которая не могла перейти через рытвину. «Идем, девушка», сказал Тандзан сразу же. Он взял ее на руки и перетащил через грязь. Экидо ничего не сказал и молчал до тех пор, пока они не подошли к храму. Больше он не мог сдерживаться и сказал: «Нам, монахам, надо держаться подальше от женщин, особенно от молодых и красивых. Они опасны. Зачем ты сделал это?» «Я оставил девушку там, — сказал Тандзан. — а ты все еще тащишь ее?» Человек пересекал поле, на котором жил тигр. Он бежал со всех ног. тигр за ним. Подбежав к обрыву, он стал карабкаться по склону, уцепившись за корень дикой лозы, И повис на нем. Тигр фыркал на него сверху. Дрожа, человек смотрел вниз, где, немного ниже другой тигр поджидал его. чтобы съесть. Только лоза удерживала его. Две мышки, одна белая, другая черная, понемногу стали подгрызать лозу. Человек увидел возле себя ароматную землянику. Уцепившись одной рукой за лозу, другой он стал рвать землянику. Какая же она была сладкая! Дзёсю начал изучать Дзен в 60-летнем возрасте, и учился до 80-ти лет, когда он реализовал Дзен. Он учил с 80 до 120 лет. Однажды студент спросил его: «Если у меня нет ничего в голове, что мне делать?» Джошу ответил: «Выброси его оттуда.» «Но если у меня нет ничего, как же я могу это спросить?» продолжал спрашивать студент. «Ну, сказал Дзёсю, тогда вытащи его.» |
||
Giver: D-link DSL-2640U (2008-09-28 13:49:51)
Прогресс не стоит на месте, и WiFi входит в каждый дом, наконец он посетил и мой дом: приобрел PCMCIA карточку D-linl DWL-G650+ и роутер D-link DSL-2640U. Карточка поднялась без проблем, и двумя коммандами — «emerge acx wifi-radar; modprobe acx», ну и роутер тоже поднялся практически сразу. Вдоволь налазившись по Web-админке роутера наткнулся на лог, в котором увидел что ОС — линукс. «Интересно, что можно выжать из этой железяки?» — подумал я и попытался залогинится через ssh, и у меня это вышло:
[giver@xaero ~]% ssh admin@router
admin@router's password: > Замечательно, есть нормальная оболочка. Хотя нет, она далеко не нормальная, список допустимых комманд был очень ограничен, и большинство из них были предназначены только для админитрирования, и несколько информационных комманд, которые тоже не могли мне помочь: help logout reboot adsl atm brctl cat ddns df dumpcfg echo ifconfig kill arp defaultgateway dhcpserver dns lan passwd ppp remoteaccess restoredefault route save swversion wan tr69c ping ps pwd sntp sysinfo tftp wlctl
Нет даже ls, не говоря уже о других составляющих coreutils. df показал что смонтированы три файловые системы: /dev/mtdblock0 обьемом 2.5 мегабайта, без свободного пространства в корень, /proc и tmpfs размером 320кб в /var, при этом наполовину полную. sysinfo показал 14мб общей памяти, меньше мегабайта свободной. На удачу попробовал cat /etc/fstab, и получил желаемый результат: proc /proc proc defaults 0 0
tmpfs /var tmpfs size=320k 0 0 none /proc/bus/usb usbdevfs defaults 0 0 По каким-то причинам /proc/bus/usb смонтирована не была. Тогда я попытался прочитать стандартные файлы с информацией о системе из /proc: meminfo, cpuinfo, version, mounts, filesystems, /etc: fstab, passwd, group. Вот мои наблюдения: Система основана на процессоре BCM6348, который, как показал гугл построен на архитектуре MIPS32, и создан специально для роутеров. В системе было 4 пользователя, все имели uid 0, а также одна группа. Ядро поддерживало файловую систему sysfs но она не была смонтирована. Особо порадовала версия системы — Linux version (@) (). Оболочка была крайне простая, не позволяла выполнять никакие синтаксические конструкции, но вот звездочки и вопросительные знаки раскрывала. Это дало возможность просматривать структуру файлов и каталогов — echo /*. С помощью cat можно было читать и записывать файлы. После этого выяснилось, что в /bin, /usr/bin и /sbin обитает немало полезных программ:
> echo /bin/* /sbin/* /usr/bin/*
/bin/adsl /bin/adslctl /bin/atm /bin/atmctl /bin/bftpd /bin/brctl /bin/busybox /bin/cat /bin/cfm /bin/chmod /bin/date /bin/ddnsd /bin/df /bin/dhcpc /bin/dhcpd /bin/dhcpr /bin/dmesg /bin/dnsprobe /bin/dumpmem /bin/ebtables /bin/echo /bin/epi_ttcp /bin/ethctl /bin/false /bin/hotplug /bin/igmp /bin/iptables /bin/kill /bin/ln /bin/mkdir /bin/mount /bin/msh /bin/nas /bin/nas4not /bin/netctl /bin/openssl /bin/ping /bin/pppd /bin/ps /bin/pvc2684ctl /bin/pvc2684d /bin/pwd /bin/reaim /bin/ripd /bin/rm /bin/sendarp /bin/setmem /bin/sh /bin/snmp /bin/sntp /bin/sysinfo /bin/tftpd /bin/true /bin/udhcpd /binпо/upnp /bin/wlctl /bin/zebra /sbin/ethctl /sbin/hotplug /sbin/ifconfig /sbin/init /sbin/insmod /sbin/klogd /sbin/logread /sbin/reboot /sbin/rmmod /sbin/route /sbin/syslogd /sbin/vconfig /usr/bin/[ /usr/bin/expr /usr/bin/ftpget /usr/bin/ledctrl /usr/bin/logger /usr/bin/test /usr/bin/tftp /usr/bin/top /usr/bin/tty > cat /etc/modules_install #!/bin/sh cd for f in * do case $f in bcmatmtest.ko) echo "skip $f" ;; *.ko) insmod $f ;; *) {$form} $f ;; esac done |
||
Giver: осень (2008-09-23 20:52:38)
Вновь окно закрыто, и одежды стали черны — закончилось лето, зима на подходе.
|
||
Giver: Антуан де Сент-Экзюпери — Маленький принц (2008-09-12 13:11:14)
— Что это ты делаешь? — спросил Маленький принц.
— Пью, — мрачно ответил пьяница. — Зачем? — Чтобы забыть. — О чем забыть? — спросил Маленький принц. Ему стало жаль пьяницу. — Хочу забыть, что мне совестно, — признался пьяница и повесил голову. — Отчего же тебе совестно? — спросил Маленький принц. Ему очень хотелось помочь бедняге. — Совестно пить! — объяснил пьяница, и больше от него нельзя было добиться ни слова. — Я Лис, - сказал Лис. — Поиграй со мной, — попросил Маленький принц. — Мне так грустно... — Не могу я с тобой играть, — сказал Лис. — Я не приручен. — Ах, извини, — сказал Маленький принц. Но, подумав, спросил: — А как это — приручить? — Ты нездешний, — заметил Лис. - Что ты здесь ищешь? — Людей ищу, — сказал Маленький принц. — А как это — приручить? — У людей есть ружья, и они ходят на охоту. Это очень неудобно! И ещё они разводят кур. Только этим они и хороши. Ты ищешь кур? — Нет, - сказал Маленький принц. — Я ищу друзей. А как это — приручить? — Это давно забытое понятие, — объяснил Лис. — Оно означает: создать узы. — Узы? — Вот именно, — сказал Лис. — Ты для меня пока всего лишь маленький мальчик, точно такой же, как сто тысяч других мальчиков. И ты мне не нужен. И я тебе тоже не нужен. Я для тебя только лисица, точно такая же, как сто тысяч других лисиц. Но если ты меня приручишь, мы станем нужны друг другу. Ты будешь для меня единственный в целом свете. И я буду для тебя один в целом свете... — Я начинаю понимать, — сказал Маленький принц. — Есть одна роза... Наверно, она меня приручила... Розы очень смутились. — Вы красивые, но пустые, — продолжал Маленький принц. — Ради вас не захочется умереть. Конечно, случайный прохожий, поглядев на мою розу, скажет, что она точно такая же, как вы. Но мне она одна дороже всех вас. Ведь это её, а не вас я поливал каждый день. Её, а не вас накрывал стеклянным колпаком. Её загораживал ширмой, оберегая от ветра. Для неё убивал гусениц, только двух или трех оставил, чтобы вывелись бабочки. Я слушал, как она жаловалась и как хвастала, я прислушивался к ней, даже когда она умолкала. Она — моя. И Маленький принц возвратился к Лису. — Прощай... — сказал он. — Прощай, — сказал Лис. — Вот мой секрет, он очень прост: зорко одно лишь сердце. Самого главного глазами не увидишь. — Самого главного глазами не увидишь, - повторил Маленький принц, чтобы лучше запомнить. — Твоя роза так дорога тебе потому, что ты отдавал ей все свои дни. — Потому что я отдавал ей все свои дни... — повторил Маленький принц, чтобы лучше запомнить. — Люди забыли эту истину, — сказал Лис, — но ты не забывай: ты навсегда в ответе за всех, кого приручил. Ты в ответе за твою розу. — Я в ответе за мою розу... — повторил Маленький принц, чтобы лучше запомнить. |
||
Giver: Java Native Look (2008-08-08 14:44:24)
Многим очень не нравится внешний вид программ написаных на Java с использованием swing, ибо они мягко говоря выбиваются из общего вида системы. С различиями gtk и qt можно бороться с помощью gtk-qt-engine и QGtkStyle соответсвенно. Использование нативного вида в яве есть из коробки, но по-умолчанию включено только в Windows. Под Linux и Solaris swing может быть отрисован либо через gtk, либо через motif, за это отвечают классы com.sun.java.swing.plaf.gtk.GTKLookAndFeel и com.sun.java.swing.plaf.motif.MotifLookAndFeel. Для того чтобы Java использовала один из них вместо стандартного кроссплатформенного Metal достаточно создать файл swing.properties в каталоге lib внутри Java Runtime Environment с таким содержанием: swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
Это будет действовать только в тех случаях, когда программа явным образом не указывает какой L&F хочет использовать, что в большинстве случаев. Так же интересно заметить, что для Gtk используются системные библиотеки, а для motiff библиотеки, поставляемые с java. Поэтому motiff может быть использаван на любой платформе. И еще, в новой Java (>= 1.6.10) появился новый L&F — Nimbus, Очень симпатично выглядет, рекомендую посмотреть. |
||
Giver: Безкнопочная мышка (2008-07-15 00:32:58)
Управление столами в оконном менеджере Enlightenment привело меня к мысли, что правая и левая кнопки на мышке совсем не нужны, намного проще для этого использовать колесико мышки: оборот вверх производит правый клик, оборот вниз — левый. На освободившиеся клавиши (правая и левая) можно повесить прокрутку страницы. Средняя кнопка останется на своем месте. Реализация с помощью X простейшая: выполнить всего одну комманду — xmodmap -e "pointer = 4 2 5 1 3"
Сразу же после этого поведение вашего грызуна изменится. Если же вам такое поведение пришлось по душе, можно создать файл .Xmodmap в домашнем каталоге с таким содержанием: pointer = 4 2 5 1 3
После чего эти настройки будут подхватываться автоматически при каждом входе в систему. Из недостатков обнаружил только один — невозможно протянуть левую кнопку (то есть выделить что-то), хотя это можно компенсировать кнопкой шифт. В теории, намного более удобный вариант вышел бы на мышке с двумя скролами. И еще, комманда которая возвращает все на свои места: xmodmap -e "pointer = 1 2 3 4 5"
|
||
Giver: djvu (2008-07-13 16:42:59)
Нужда заставила просмотреть книгу в DjVu, и тут я внезапно столкнулся с проблемой чем смотреть? eix мне подсказал два варианта evince и djviev(3/4). Первая из них тянула за собой половину гнома (окло 26 мегабайт), вторая полностью куте (чуть меньше 50 мб). Такой расклад меня никак не устравил, толку от GNOME и Qt мало, и только ради DjVu держать их глупо, да и по месту выходило немало, стал даже подумывать о wine+WinDjVu места заняло бы меньше, а вайн в полезнее вышеперечисленного, но в обсуждении к WinDjVu был упомянут некий JavaDjVu, который сразу меня заинтересовал. Скачав и распаковав архив с программой я получил замечательный просмотрщик DjVu, никак не привязаный к платформе. Jar файл весит 200кб и, естественно, не требует установки. Еще интересно то, что работает только как плагин к браузеру, поэтому к ней прилагается небольшой семикиллобайтный браузер. Огорчило то, что нельзя листать страницы колесом мыши, но это мелочи. |
||
Giver: - (2008-07-06 00:20:11)
Гроза за окном.
Печаль в глазах. Грусть на душе. Боль в сердце. |
||
Giver: ... (2008-06-19 16:33:10)
Наивное искусство искусство умирать
|
||
Giver: Apple Macintosh (2008-06-09 16:50:36)
Нахожусь за адской машиной Apple Macintosh G4. Впечатления смешанные. Причем очень. Первый старт прошел нормально, все красиво, кроме яблока при загрузке я ничего не увидел, но, по слухам, знать мне это не положено. На 21" мониторе разрешение автоматом стало 1024х768. Месный центр управления нашелся довольно быстро, потыкав разрешение от 1600х1200 хотел остановится на 1280х1024, но не тут то было, монитор сказал " Frequency out of range" и отказался показывать что-либо. Ожидание ничего не дало, он не менял автоматически найтройки, если они не валидны;После нескольких холодных перезагрузок он снова сбросил разрешение на 1024х768. На этот раз установил нормальное разрешение без проблем. После этого приступил к исследование софта, который стоял на машине. Из иконок на панеле узнал Фотошоп, фаерфокс и квиктайм. Firefox версии 2.0.0.6 был тут же обнавлен до 3.0rc2. Настолько интуитивной установки софта я еще не видел, а когда увидел, даже немного растерялся. Никаких каталогов, просто перетянуть одну иконку на другую. Стал вроде без проблем, но запускатся отказался. И тут выходит на сцену консоль, в этот раз она нашлась сразу, так как была на панеле. Полюбовался выводом унэйм и приступил к запуску файерфокса более грубым методом
designer:~ designer$ uname -a
Darwin designer.local 7.0.0 Darwin Kernel Version 7.0.0: Wed Sep 24 15:48:39 PDT 2003; root:xnu/xnu-517.obj~1/RELEASE_PPC Power Macintosh powerpc А файерфокс отказался запускать, ссылаясь что не может найти /usr/lib/libstdc++.6.dylib. Гугл подсказал, что нужно обновить систему, и вот, 117 мегабайт обновлений залилось. Кстати Сафари, штатный браузер, не справился с рендером моего сайта, но самое странное, даже гугла, логотип налезает на строку поиска, так что искать приходиться только в строке поиска. В итоге пришлось откатится до второй ветки В плане юзабилити тяжело что то сказать, не хватает удобных операций с окнами, странный тулбар, и много других мелочей, к ним скорее всего можно привыкнуть. Многое просто нужно искать, как например просто искать софт, но внешне, все сделанно с учетом предоставления наименьших трудностей для пользователя. Эфферкто огромное количество, теньки и полупрозрачность на каждом шагу, виджеты красивые. Тормозов не замечено, но отклик системы далеко не моментальный. Судя по скриншотам, и эту систему можно довести до вменяемого состояния, только нужно ли?.. UPD:Единственное что заставило тормозить мак — это упячка! |
||
Giver: (= (2008-06-01 00:50:52)
Ты не куришь?
Нет, не курю и не пью. Как же ты живешь?? Да вот пью, курю и вру. |
||
Giver: Веселые переименования (2008-05-30 13:07:03)
Задача стояла — переименовать все файлы из .. c суффиксом jpg в файлы вида 00001.jpg и так далее. Делается это одной строчкой на баш: C=0;for a in ../*.jpg;do C=$(printf "%04d" $(($C+1))); mv "$a" $C.jpg;done
Ничего особо сложного нет, просто заводим счетчик и понемного инкрементируем его. Функция printf занимается дополнением нулей. Иногда еще возникает задача просто сменить у файлов суффикс, или просто какую-нибудь простую замену, можно воспользоваться такой коммандой: for a in *;do mv "$a" "`echo $a | sed -e 's/dat/avi/'`";done
Ну и последнее, есть множество файлов, которые нужно разложить по каталогам по определенному принципу, ну скажем по первой букве: for a in *;do C=`echo $a | cut -c 1 `;[ -d $C ] || mkdir $C;mv "$a" $C/;done
Бывает удобно разложить файлы по дате создания, особенно если это фотографии с разных событий, которые хранятся в одном каталоге, тогда выходит нечто следущее: for a in *;do C=`date -r "$a" +%y.%m.%d`;[ -d $C ] || mkdir $C;mv "$a" $C/;done
Фантазировать на эту тему можно безконечно. Но особенно приятно, когда shell избавляет от скучной ручной работы лишь одной строкой. |
||
Giver: radio (2008-05-22 17:14:18)
Поднял жопорез через блютус, ради смеха решил послушать своё любимое радио SomaFM: Groove Salad. Как ни странно, но радио пролизит в канал на ура. Качество правда не фантан, но динамики в любом случае большего не дают, так что как фоновая музыка это идеальный вариант. Трафика ест тоже не особо много, как для обладателя безлимитного нета, но для постоянного прослушивания такое никуда не годится, разве что если иметь гигабайт трафика, а с мои 100 метров испарятся вмиг. Ну не вмиг, но за дней пять точно. Это если экономить. |
||
Giver: section completed (2008-05-13 00:28:47)
Какой же свежий весенний воздух. Только сейчас, в середине мая выпала такая возможность его почувсвовать и вдохнуть полной грудью. Недавно прошел дождь. Крупные капли висят на деревьях и проводах, да и вообще на любой поверхности. Закончился некий промежуток жизни, они вечно кончаются, и его конец всегда более чувствителен чем его начало. Даже бывает так, что начало вообще не чувсвовалось. Хотя и конец осознается не всегда сразу, и в некоторых случаях не осознается совсем. Давно я не слушал психеи, нет в ней ничего хорошего, только моск рушит, а вот сейчас потянуло, просто появилось желание. Крепкие ассоциации у меня с психеей. А еще с катарсисом. И с ангрой. И книга Антона Чехова "Черный монах" сразу же всоминается. Как же давно это было. И ведь тогда видел всё совсем в ином свете. Но время прошло и его не вернуть. Да и сейчас не многим лучше не стало, сплошные колебания из прошлого в мечты и обратно, а в реальности меня нет. Вот такие у меня эмо мысли, бред же, сам понимаю, а всё равно хочется куда то всё высказать. Многое просто не могу выразить, а жаль. Вот что мне с таким собой делать? Получилось так, что за последние сутки познакомился с большим количеством людей, большинство из них правда с Челябинска, но не это интересно, более интересно то, что люди эти обычные. Совсем обычные. Уж тут я явно почувствовал контраст между своим окружением, и этими новыми знакомыми. Я конечно понимаю что весь город населен людьми, и большинство из них обычные, но я не мог представить что бывают настолько обычные люди. И ведь таких большинство. Как то мне выпадала возможность заглянуть в большое количество чужих домов, чужих судеб, и пусть ничего особенного я не узнал, но это событие дало мне общее видение того, как живут все. И почему я не могу жить как все? Нормально жить без проблем? А завтра снова в школу. И затем снова на работу. И снова теже колебания, переживания и мысли.. Пора бы уже перестать жить в себе и обратить внимание на окружающий мир, но зачем это делать если в себе жить легче и более предсказуемо? И ведь насчет этого тоже будут размышление, бесполезные размышления. И надежда на событие, которое всё это перевернет с ног на голову, и всё действительно изменится. Забавно будет, если так оно и не произойдет до конца моей жизни. |
||
Giver: Multimedia keyboard (2008-04-14 01:58:26)
Все видели многофункциональные мультимедия клавиатуры, многие даже хотели бы иметь себе такие, некоторые даже имеют. Предлагаю сделать мультимедиа клавиатуру из своей обычной: посмотрите, сколько лишних кнопок на ней, которые могут принести пользу, чего стоят только непонятные флажки около пробела. Мне больше приглянулись три кнопки управления питанием. На основе этих ненужных кнопок и будем делать нашу мультимедиа клавиатуру. Для начала выясним при помощи утилиты xev, создают ли нужные нам кнопки какие-либо события, и имеются ли у них символика. На моем примере клавиша Wake посылала 223 код и не имела символа. Таким образом, собрав коды всех символов, можно сформировать ~/.Xmodmap примерно такого содержания: keycode 227 = XF86AudioLowerVolume
keycode 223 = XF86AudioMute keycode 222 = XF86AudioRaiseVolume Некоторые среды, например XFCE, имеют предпрописанные действия к данным клавишам, так что дополнительных рукодвижений не потребуется. В остальных окружениях необходимо прописать их действия. Фрагмент файла сочетаний клавиш Enlightenment DR16 (~/.e16/bindings.cfg):
KeyDown - XF86AudioLowerVolume exec amixer sset PCM 2-
KeyDown - XF86AudioMute exec amixer sset PCM toggle KeyDown - XF86AudioRaiseVolume exec amixer sset PCM 2+ Эти кнопки можно использовать с каким либо из модификаторов, например Control. Таким образом получаем не только изменение громкости, но и смену трека. Пример реализации в e16 с плеером sonata:
KeyDown C XF86AudioLowerVolume exec sonata prev
KeyDown C XF86AudioMute exec sonata pp KeyDown C XF86AudioRaiseVolume exec sonata next |
||
Giver: смена версий (2008-03-31 19:02:39)
В пятницу, 28 марта, состоялось собрание темнейших гивера в связи с предстоявшей встречей. Важнейшим вопросом был выбор дальнейшего стиля, а также выбор направлений дальнейшей работы. Выбор стиля разрешился вовнуть. Ближайшее время это будет предпочтительный стиль приблизительно на месяц. Хотя и будет по прохождению времени раскрыватся, но не достигнет того же уровня, что был в начале весны. Посещение публичных мест тоже сократится. Предпочтительный статус — отсутсвующий Немаловажна смена версий. Версией по-умолчанию теперь является 1.7, в то время как версия 1.6 снимается с поддержки и больше развиватся не будет. В данный момент с 1.6 снята звезда, но другие меры приняты не были. Взаимодействие с 1.7 обещает быть более спокойным и продуктивным. Так же были произведены изменение в списке звездоносцев, заметно увлеличевшевсяго в последнее время. По звезде было отнято у неподходящего и, собственно, у 1.6. После чего список стал содержать привычные 4 элемента. В будущем планируется дальнейшее сужение. В заключении был составлен список дальнейших действий. |
||
Giver: о пустоте (2008-03-20 15:15:24)
Иногда возникает потребность в неком пустом символе, обычно это пробел, но не всегда он помагает. Например, если строке " " сделать trim(), то она станет пустой, и не валидной. Также иногда нужно сделать неразрвный пробел. HTML дает на то возможности с помощью тега <nobr>, но в некоторых местах он недоступен, и вообще недоступны какие либо средства форматирования. Тогдна на помощь приходит любой символ, отображение которого отсутсвует, например #160 (более известный как ) или #173. Различие между ними состоит в ширине. У последнего она равна нулю, и строка любой длины также будет не видна. В HTML его можно использовать как ­. Довольно часто в формах бывают обязателные поля, которые можно заполнить этим символом тогда его следует скопировать из таблицы символов или отсюда: ''. Можно скопировать вместе с ковычками а затем удалить их. Символ останется. Еще одно применение в подделывании строк, в то время как строки идентичны визуально, вторая содержит несколько таких знаков. Аналогичным образом можно поступить и с картинками. Создать gif или png с прозрачным фоном размером 1x1. В некоторых местах картинка проходит предварительное пережатие, и прозрачный становится черным (или неким другим цветом), в таких случаях можно воспользоватся пипеткой или скриншотом страницы, одним словом сделать картинку незаметной для человеческого глаза. Вообще, рассматривая таблицу символов можно найти много интересного, которое обычно не фильтруется при сохранении формы даже если все теги HTML несщадно выгребаются фильтром. А этом может сильно изменить внешний вид страницы. Чего стоит только вертикальная табуляция и отметка "справа-на-лево". Или просто увеличить размер страницы на несколько мегабайт с помощью того же невидимого символа. Интересно заметить, что его так же не видно при просмотре исходного кода в большинстве браузеров, так как шрифты отрисовываются централизовнно системой, что еще более улсложняет отлов таких символов. Зато замечательно видно в консоле как пустое знакоместо. |
||
Giver: firefox (2008-03-17 14:24:50)
Почти паралельно с Firefox 3.0b4 вышла и Firefox 4.0a1 которую можна загрузить с фтп. Основана четвертая версия на движке Gecko версии 2.0a1pre. Отичий от третей лисицы практически нет, кроме окошка about и лучшего результата в тесте Acid3, правда не на много — 70, в то время как третья ветка набирает 66. Кроме того тут отказались работать все плагины, даже те, которые нормально работали в тройке. Конечно, на данном этапе обновляться до четвертой версии смысла нет. Кстати, есть интересный способ заставить работать плагины в более свежих версиях лисы. Для этого нужно в about:config установить значение false свойству extensions.checkCompatibility. По умолчанию его нет, но ведь никто не мешает создать (=. Проблема в том, что со старыми дополнениями лисичка работает нестабильно, а иногда даже вылает. Особенно обидно если нужен какой то один, но важный плагин, который как раз не работает. Для этого находим файл install.rdf (можно менять как в .xpi архиве, так и в установленной версии), ищем место с описанием версий: <RDF:Description RDF:about="rdf:#$hnB9b2" em:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" em:minVersion="2.0" em:maxVersion="2.0.0.*" /> И прописываем нужную версию, скажем 3.0b4. Обычно это приводит плагин в сознание. Но проблемы могут иметь место, так что лучше дождатся обновление плагина. |
||
Giver: робочий ASP (2008-03-12 13:33:01)
Через два дня после того как я попробовал Firefox 3.0b3 вышла четвертая бета, но узнал об этом я только сегодня. Первым делом решил применить ее на работе. После загрузки девятимегабайтного архива меня ждало разочарование — минимальная версия GTK, требуемая для ее запуска, 2.10. В системе оказалась 2.8. Решил обновится штатными средствами — yum update gtk2 Насобирав полсистемы (ну, большую ее часть), yum отвалился с фразой "Error: Missing Dependency: howl = 0.9.8 is needed by package howl-libs". yum install howl не нашел такого пакета. Тогда плюнул я на все и решил обновить весь дистрибутив, и сразу до Fedora Core 8, найдя простой мануал по обновлению, я приступил. Установив пакет fedora-release восьмой весрии я попробовал запустить yum upgrade. Теперь проблема со старыми репозиториями. От асповских репов теперь мало толку так как обновление идет именно к федоре. Решил проблему удалением /etc/yum.d/asplinux*. Еще одна попытка yum upgrade. Репозитории принял и начал качать загаловки обновленных пакетов. Итого: Added 8439 new packages, deleted 0 old.
На сей раз обновление остановилось из-за устаревших пакетов, которые не имеют обновленй. yum отказался работать как следует для уже установленных пакетов, пришлось удалять через rpm с помощью внешнего разрешителя зависимостей. Так же в список deprecated пакетов попали hal и jack, в зависимостях которых gnome и kde были почти в полном составе, удалил с --nodeps. Снова yum upgrade. На этот раз получаем конфликт с ядром. Насильственным образом удаляем kernel из базы: rpm --nodeps --justdb kernel kernel-smp, затем очищаем кеш юма и снова yum upgrade. И вот долгожданное:
Install 387 Package(s) Update 668 Package(s) Remove 0 Package(s) Total download size: 1.0 G Cкачка пакетов началась. С двух дня до восьми вечера качались пакеты, еще два часа они ставились. Во время установки ядра процесс приостановился, при этом gkrellm показал загруженность процессора 100%. top показал что систему грузит grubby, мне ничего не оставалось как прибить его, но к моему удивлению установка продолжилась. Вобщем установка пакетов прошла успешно. Прописав новое ядро в конфиге граба руками я отправил машину в poweroff. При первой загрузки системы отказала клавиатура. Проблема решилась подключением выпавшего провода (=. Первым сюрпризом был lilo, которого в теории быть не должно. Криво загрузившись поставил граб: grub-install /dev/hda
Перегружаемся, наблюдуаем кернел паник Не может найти корневого раздела, хотя ядро аспа находит без проблем.
Оказалось новое ядро использует SCSI драйвера и для ATA контроллеров, поэтому винт стал sda. Русские шрифты слелтели, Х не поднялся, ссылаясь на невозможность загрузить модуль pcidata. По неизвесным причинам, Xorg продолжал искать модули, шрифты и другие данные в /usr/X11R6/, хотя теперь они лежат в /usr/lib/xorg и /usr/share/xorg, сильно заморачиватся не стал, сделал симлинки и поменял пути щрифтов на нужные в конфиге xfs. Также были проблемы и со сборкой модуля ядра для видео карты nvidia. Инсталятор упорно не видел исходные коды ядра. Пришлось распаковать сорцы модуля и собрать руками, пройдясь по makefile'ам напильником. Еще перезагрузка. Х загрузился нормально и e16 порадовали мой взор и даже восстановился мой прежний сеанс, но xmms не заиграл, выдав окно о патентном ограничении на mp3. Firefox 3.0b4 запустился успешно, sonata и sylpheed стали из репозитория. Интересно что самого mpd в репе не оказалось, что ж, прийдется собирать руками. Удивило отсутсвтие в репе mplayer.
Итого: Дистрибутив обновился, версии софта и библиотек увеличелись на порядок, из-за чего часть граблей исчезла. Остальная часть осталась и к ним добавились свои грабли федоры. Быть может обновление с дисков дало бы лучший результат. Репозитории не отличаются количеством софта, но зато почти всё свежее. Некоторое время будем работать в этой системе. В крайнем случае обновлюсь до дебиана. (= |
||
Giver: (2008-03-10 01:13:17)
Giver: понимаешь, в чем соль?
Лакки: В сиваше... Giver: смутно представляю где это Лакки: А представлюешь,что это? Giver: памоему дета недалеко Giver: или в уркаине Лакки: Да это где-то в КРЫМУ И НАВЕРНО НЕ ТОЛЬКО ХРЕНЬ ПОХОЖАЯ НА ОЗеро,только гораздо больше!Вода очень соленая,потому что в сиваше образуется соль!Не знаю от чего!Ее от туда добывают,обрабатывают и едят!Вот в чем соль,а ты спрашиваешь... *JOKINGLY* |
||
Giver: ие сцук. продолжение (2008-03-08 13:30:08)
Делал уборку, апач неспешно показывал лог. Приглянувшись заметил такую картину:
catv-gw.skif.net - - [08/Mar/2008:13:25:12 +0200] "GET /img/shads/23.png HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"
catv-gw.skif.net - - [08/Mar/2008:13:25:13 +0200] "GET /img/1.gif HTTP/1.1" 304 - "http://sendsms.org.ru/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" catv-gw.skif.net - - [08/Mar/2008:13:25:13 +0200] "GET /css/pngbg.htc HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" Как-то я уже писал об этой проблеме и о возможных вариантах ее решения, но после увиденного думаю надо ее исправлять быстрее. Странно то, что пнг используется повсеместно, и такие проблемы наверняка возникают не у меня одного. А вот вменяемых решений что то не видно. Использование png.htc/pngbg.htc окончательно идет лесом. Еще усложняет ситуацию то, что под рукой нет ИЕ для проверки, а ie4linux не держит фильтров, через которые решаются проблемы с png. |
||
Giver: галактеко безопасносте (2008-03-07 00:28:07)
Да! Мы сделали это! Мы победили адского инфернального кота, который в прошлом был шредером, а потом стал излучать луч, облученный гаммаизлучением. Безпощадная роликовая стена помогла нам в этом. УГ побежден. Пост захвачен. Галактика в безопасности. Понимаете в чем соль? |
||
Giver: черная няко (2008-02-27 22:40:01)
Шел я домой. Никого не трогал. Когда уже подходил к своей улице, был буквально в нескольких минутах пути от нее, от дерева, стоящего рядом с дорогой, отделилась тень, и бросилась мне под ноги. Я не придал этому особого значения, сказал краткое "ня" и пошел дальше. Но тень упорно следовала за мной, дошла до моей улицы, и продолжила путь со мной, то перегоняя меня, то немного отставая назад. Это была кошка. Пройдя так довольно большое расстоянее она стала все чаще отставать. В свете завода, находящегося неподалеку, я разглядел маленькую черную кошечку, ну очень пушистую, с огромными глазами. Уже ближе к дому она бежала зо мной и громко кричала. Все таки я ее подобрал, правда уже перед самыми воротами.ч Свернулась она у меня в куртке, замурчала, прибалдела видно. Дома выяснилось, что она наверняка домашняя, чья-то. Ласковая такая, не боится людей, на шее явно виднелся след от ошейника, да и вообще была она холёная и откормленная. Интересно отреагировала на ее появление моя кошка. В контакт входить отказалась, громко шипя. На кухню так и не зашла, хотя наблюдала пристально из гостинной. В это время "чертенок", как назвала ее мама, подкрепилось колбаской. Поел и я. Еще одна кошка нам не нужна, тем более ее верно кто-то ждет или ищет. Перед самым выходом сделал фото. Всю дорогу обратно она терлась в куртке и месила руками. Когда я расстегнул курту, было для нее неожиданнсотью снова увидеть то место, где мы встретитсь. Какая же все таки красивая кошка, жалко что нет возможности ее оставить у себя. Да и наверняка не ужились бы две кошки под одной крышей. |
||
Giver: (= (2008-02-23 18:19:57)
-=carcass=- (18:33:40 23/02/2008)
вчера ради стёба зашел на канал #windows Razanur (18:33:58 23/02/2008) и что там? -=carcass=- (18:33:58 23/02/2008) таких долпаеппов давно не видел Razanur (18:34:11 23/02/2008) оглянись:) |
||
Giver: Холод, да (2008-02-21 22:00:37)
Холод, да |
||
Giver: харьков (2008-02-14 00:21:45)
Вот я покидаю родной город, уезжаю на зимнюю школу программирования, которую проводят организаторы ICPC. Точно пока ничего не извесно, но надеюсь будет доступ к сети, и отпишусь Перед самым выходом дотесал комментарии и прикрутил их сюда, так что рад выслушать любые комментарии по поводу всего |
||
Giver: )= (2008-02-10 17:45:36)
Частицы прошлого снова догоняют меня. Хотелось бы перестать существовать до завтра. До утра, вроде вот и выходные, классно отдых.. а делать определенно нечего. А из того что можно поделать, нет никакова желания что то делать. Сижу подсвченый синим светом монитора и думаю тяжелые думы. KoЯn и Amatory у же не вставляют, мягкая мелодичная музыка, ага. Те, с кем хотелось бы поговорить или не в сети или заняты. Денег на счету хватает чтобы позвонить только одному человеку, но вряд ли она сейчас хочет слышать меня, да и занята она, как мне и сказала. Ничего не хочу писать, мысли не идут никакие и желания нет совсем, даже не знаю за какой из незаконченных проэктов братся, хотя они в широком ассортименте. Про игры и фильмы я вообще молчу. Хотя можно сказать что это все закономерно, ибо в прошлом году было все почти также, вспомнить хотя бы янаварь. Но была надежда, было стремление, сейчас их что то не наблюдается. просто существую, и достаточно.. |
||
Giver: еще ие (2008-02-10 11:23:47)
После детального изучения логов апача, оказалаось, что не кешируются те картики, которые грузятся динамически, и интересная деталь #&151; ИЕ не реагирует на внешние события когда отрабатывают htc. Следовательно, большинство решений на стороне клиента отпадают. На стороне сервера можно поступить следующими путями: либо компанент, либо трансформация страницы непосредственно перед выводом. Как вариант, еще вспоминается предзагрузка картинок из JS и можно будет потом попробовать клонировать саму картинку. Может это и не так рационально, но даже в теории намного быстрее чем сейчас. Использование компонента очень неудобно, поэтому это на крайний случай, трансформация страницы увеличит загрузку на сервер, чего тоже не хотелось бы. А скрипты могут просто не работать, хренова )= Еще одна странность ИЕ, он просчитывает offsetHeight и offsetWidth не после загрузки элемента, как все нормальные браузеры, а после загрузки страницы, от этого и не работают зеркала. Также свойство opacity тут завется filter: opacity ну и размеры тоже иногда берет с потолка. Ничего в нем нет хорошего вобщем.. |
||
Giver: ие сцук (2008-02-08 18:55:32)
Посмотрел сюда с ИЕ из-под вмтвари... это ппц. Зеркала так и не работают, действительно, с чего им работать если их никто не фиксил. Но более важная проблема не в этом. Интересным методом устроен кеш в ие. Он-то вроде как и кеширует, но как-то выборочно, мол что хочу то закеширую, что не хочу — нет. Конкретнее эта проблема вылезла вовремя исправления проблемы с альфа каналом в пнг (тоже, кстати, чисто ИЕшнпя проблема), так вот, AlphaImageLoader не кеширует однопиксельные прозрачные гифки, больше того, ие не кеширует png.htc с яваскриптом. Поэтому эти два файла грузяться на каждую пнг-картинку, а, так как теней много и канал не широкий, то прогружается это довольно долго. Аналогичная проблема и с прозрачными фонами у ячеек таблицы. Как вариант, вынесение вызова pngbg.htc в отдельный класс стилей, и вызов его оттуда. Относительно первичного, результат улучшился, но все равно для нормального отображения недостаточен. Несколько мыслей по поводу их, правда еще не воплощеных, но идеи следующие:
Отказыватся от прелестей пнг в любом случае не стоит, тем более что в седьмом ИЕ микрософт соизволили исправить баг с пнг. Да, кстати в ИЕ7 еще не смотрел. Интересно, какие сюрпризы нас ждут там?.. |
||
Giver: хачуууу такой винт (2008-02-07 22:31:34)
Интересная цена на винт в одном магазине родила такую ситуацию
|
||||||||||
Giver: (2008-02-07 15:13:44)
Что человек есть - экземпляр Что человек есть - экземпляр Объект из класса человеков В своем живет неймспейсе Имеет метод поеданья чебуреков И в поликлиннике больничный формуляр От предков унаследован как класс Статические методы хранит Полиморфизмом обладает Ночами в дырки две сопит И вместо данных потребляет квас Но, зачастую, действуя спонтанно Он потребляя памяти не в меру Инкапсулирует в себе Избыточность терпения и веру Что очень хорошо, но странно Бабичев Николай |
||
Giver: (2008-02-06 04:23:39)
* * * |
||
Giver: бессоница (2008-02-06 03:48:54)
Бессо́нница — это расстройство сна, которое характеризуется неспособностью заснуть в течение значительного периода времени ночью. Люди, страдающие от бессонницы (insomnia), обычно не могут закрыть глаза больше чем на несколько минут, ворочаются и никак не могут найти того самого положения, в котором они смогут заснуть. У здорового человека временная бессонница может быть вызвана чрезмерным нервным возбуждением, или действием нейротропных медикаментов (фенамин и др.). Причины бессонницы определяют тактику и стратегию её лечения. Нередко бессонница является лишь проявлением того или иного психического или соматического заболевания. Такиe вот дела со мной происходят, судя по википедии. Это просто гиверкапец какой-то. Делать ночью ничего полезного не выходит, да и не хочется. Хочется уснуть скорее, но никак не выходит. Даже когда уже, казалось бы, засыпаешь, стоит полежать с закрытыми глазами и выключенным монитором пару минут, и понимаешь что спать не хочется совершенно. Как ни странно, с выключенным компьютером засыпание проходит еще тяжелее. Зато стал видеть сны. Интересная тенденция — перестал спать и начал видеть сны. Видимо сны на яву. Что ни говори а продуктивность работы в течении дня заметно падает от нехватки сна ночью. И решения проблемы тоже не видно. Пока. А дальше видно будет. Не исключен вариант что само собой пройдет. Хотя хотелось бы как нибудь побыстрее.. |
||
Giver: (2008-02-05 12:58:30)
Писец пришел, это когда тебя снятся CSS и JS, причем в деталях, а рисовать теньки начинаешь с помощью однопиксельной гифки указывая ей background и ширину/выстоу. действительно пара отдыхать... Или поставить полноценный офис в 10 мегабайт.. вот пытался ставить Siag Office. Как ни странно — успешно. Только вот офис оказался неполноценным (=. Работы дивелоперам немеряно, но для неприхотливого пользователя (у которого нет другого выбора) в самый раз Таки вставляет времяпровождение за своей старой машиной, уже начал чувствовать такую слабость и безсилие перед установкой софта, не то что раньше — перебрать полсистемы за полночи, включая глибси, да раз плюнуть. Нет не то уже сейчас, три жалкие либы собрать и то уже ленюсь, думаю в сторону дженту... Что то вообще последнее время стал задумываться о прошлом, и хотеть обратно... |
||
Giver: читая логи.. (2008-02-04 15:09:06)
SilentTears:слушай если я сейчас начну тебе объяснять французские падежи и принцип подбопа окончание в пассиве ты что т опоймешь?
Giver:если дома Giver:то буду стараться изо всех сил SilentTears:я просто не разбираюсь SilentTears:старайся не старайся перед этимм надо учить его * * * SilentTears:ну чт ты еще можешь делать кроме как работать Giver:могу отдыхать Giver::)) SilentTears::-) Giver:я работаю только на работе SilentTears:логично Giver:учусь в учебнице Giver:и отдыхаю в ...... |
||
Giver: Cтих, пришедший ко мне вместе с каськой (2008-02-04 03:31:23)
Осень
Скрылось небо за черной дымкой, Звезды тают с прощальным светом И, хородной росой забытый, Зашумит лес своим ответом.. День погаснет, укрытый тенью. и качнется листав от ветра, Отражаюсь в воде осенней, Звезды гаснут с прощальным свтом... Опадают с озябших веток Лепестки золотого лета Отчего же душе так больно, Словно это она раздета?.. Словно с каждым листом опавшим Что-то в жизни я потеряю И с природой, такой уставшей, Незаметно я умираю /Киев - 1990 год/ |
||
Giver: система управления (2008-02-04 03:19:48)
Такс, вроде доделал добавление/редактирование/удаление в модуле для NeCMS2 для обработчика blog, который в будущем должен стать neSimple. точне доделал neModule, базовый класс модуля для системы управления, пока, правда, на примитивном уровне отображение таблицы все равно требует отдельного конфига, но форма уже генерируется полностью по структуре базы. Все классно, но как всегда возникает проблема с проэктировкой, а именно видом обработчиков. Таки следует воспользоваться пхп5 с его обьектной моделью, и попробовать с этим всем, что уже есть, взлететь. Сейчас докачиваю Eclipse-php может с ним займусь рефактором, хотя желания нет ни малейшего. |
||
Giver: (2008-01-21 15:40:11)
You're afraid she might turn you down
All your hopes dashed to the ground Nobody loved you, nobody will Why should you even try...but still... Ayreon - Love Cold winter nights, cold winter dreams, Reflecting the sound of my heart; it`s my taste of freedom. Cold winter nights, cold winter dreams, Don`t try to tear me apart; cold winter dreams Accept - Winterdream Life is short So learn from your mistakes And stand behind The choices that you made Face each day With both eyes open wide And try to give Don't keep it all inside Don't let the day go by Don't let it end Don't let a day go by in doubt The answer lies within Dream Theater - The answer lies within |
||
Giver: (2008-01-16 18:10:06)
О да, оживилась леди Эстер, видимо, садясь на любимого конька. Найти свой путь самое главное в жизни любого человека. Я глубоко убеждена, что каждый человек неповторимо талантлив, в каждом заложен божественный дар. Трагедия человечества в том, что мы не умеем, да и не стремимся этот дар в ребенке обнаружить и выпестовать. Гений у нас редкость и даже чудо, а ведь кто такой гений? Это просто человек, которому повезло. Его судьба сложилась так, что жизненные обстоятельства сами подтолкнули человека к правильному выбору пути. Классический пример Моцарт. Он родился в семье музыканта и с раннего детства попал в среду, идеально питавшую заложенный в нем от природы талант. А теперь представьте себе, дорогой сэр, что Вольфганг Амадей родился бы в семье крестьянина. Из него получился бы скверный пастух, развлекающий коров волшебной игрой на дудочке. Родись он в семье солдафона вырос бы бездарным офицериком, обожающим военные марши. О, поверьте мне, молодой человек, каждый, каждый без исключения ребенок таит в себе сокровище, только до этого сокровища надобно уметь докопаться! Есть очень милый североамериканский писатель, которого зовут Марк Туэйн. Я подсказала ему идею рассказа, в котором людей оценивают не по их реальным достижениям, а по тому потенциалу, по тому таланту, который был в них заложен природой. И тогда выяснится, что самый великий полководец всех времен какой-нибудь безвестный портной, никогда не служивший в армии, а самый великий художник так и не взял в руки кисть, потому что всю жизнь проработал сапожником.
Борис Акунин. Азазель |
||
Пытался читать уроки под своим миниксом, с графикой там проблемы.. Раньше не было, а сейчас написал штуку которая переключается в графический режим и пытается что-то рисовать, вот с ней проблемы, но рассказ не об этом. Сидел я, читал уроки. Математики пачками, и все они, формулы, набиты картинками, которые links ну никак не показывает. Решил думать, как быстрее всего увидеть графику.
Слышал о программах типа asciiview, так же есть libaa, да и много чего, все они только и занимаются что выводом псевдографической графики в консоли, есть даже aavga, которая эмулирует svgalib через aa, но у них есть один большой минус — если общая картина еще в них понятна, что неплохо для игр/фильмов, то точная точечная графика совершенно непросматривается, а именно она мне и нужна. Выход — писать что-то своё.
Пилить видеодрайвер на minix еще далёк от готового состояния. И быстро допилить его тоже не виделось возможности, это конечно интересно, но займет день до конца, и не факт что выйдет то, что нужно. Остается псевдографика.
И вот оно, решение — перегрузить шрифт разными комбинациями пикселей и этим рисовать ими. Считаем — в байте восемь бит, то есть до восьми точек. Размер символа — 8x16 пикселей. Если разбивать равномерно, плучаются квадратные с ребром 4 пиксела. Правда первая строка символов -- служебные, врядли они будут нормально выглядеть — остается 7 бит. Разбить так символ довольно трудно, выбрасываем еще один бит — 6 бит. Идеал. Так и делаем.
О механизмах перегрузки шрифта в linux/minix я понятия не имел, лезть низко не хотелось, да и нельзя. Поэтому лучше было сформировать файл шрифта и загрузить его штатными средствами. Формат файла очень простой, но писать программу, кототаря формаровала такой файл было очень лень. «Так нарисую» — подумал я. Но когда открыл редактор, понял что мне нужно изобразить 26, то есть 64 символа, и желание это делать резко пропало. Тогда количество бит на символ сократилось до 4 и быстренько нарисовал 16 символов, необходимых для отображения моих пикселов. Основал шрифт на стандартном шрифте, это дало еще один плюс — смотреть картинки можно было постоянно не перегружая системный и "графический" шрифт.
Шрифт загрузился на ура осталось написать сам просмотрщик. Языком был выбран си, тянуть сюда яву смысла не имело. Большинство картинок из документа было в формате GIF, писать его парсер очень не хотелось, а на minix библиотек для его открытия не видел (да и зачем они там, без графики-то?). Написание своего заняло бы много времени, тоже отпадало. Тогда решил использовать стоящую в соседней комнате машину с linux через telnet. В роли библиотеки для работы с графическими файлами взял libgd, пусть не самая быстрая, но зато имеющая очень удобное и краткое API.
Программа вышла менее килобайта. Результат ее работы рядом (=. Итак, что мы имеем — программу показывающую гифы, разрешение экрана в таком варинате выходит 80*2x25*2 = 160x50. Не так уж и много, но для моего случая с маленькими формулами — самое то. Если бы написал с шестибитными символами, разрешение было 160x75, что особо не спасает ситуацию, но делает пикселы более квадратные. Если изображение более 160 пикселей в ширину, то его жестоко рвало, и смотреть после этого было невозможно. Вместо своего скроллера можно приспособить миднайт, получилось довольно неплохо, правда медленно (учитывая телнет, нуль-модем и 386).
Смотреть так картинки из HTML документа, показываемого links в соседнем окне screen очень неудобно, поэтому пришлось встать из-за тройки, и читать за своей линуксовой машиной. Но фан засчитан. (=