2010-12-28

twitter

Что-то последнее движуха перешла в twitter.
Видимо, лень писать много букв.

Для тех, кто ещё не в курсе:
Я в твиттере → https://twitter.com/vnaum, или RSS.

2010-12-12

31 мая задержано 170 человек: http://www.fontanka.ru/2010/06/01/014/

31 августа задержано 100 человек: http://www.pravda.com.ua/rus/news/2010/08/31/5347119/view_print/

31 октября задержано 113 человек: http://www.fontanka.ru/2010/10/31/055/

11 декабря задержано 70 человек: http://zyalt.livejournal.com/330396.html

2010-10-29

Инновационный подход Сбербанка сберегает нервы, время

У нас в райцентре раньше как было — приходишь в отделение банка, суёшь в окошечко квитанции (5 штук, спасибо коммунальщикам) и деньги, забираешь корешки. Не фонтан, но вполне себе работало.

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

Вот уж не думал я что оплата чего-то через банкомат может меня огорчить. Но Сбербанку удалось!

  1. Оплатить картой — нельзя, можно только налом. В банкомате. Картой. Нельзя. Оплатить. Услугу. Я считаю, этих людей надо представить к награде.
  2. Сумма газовой квитанции — ~26 рублей с копейками для нашей семьи. Автомат принимает только купюры, сдачи не даёт. Выпуск бумажных десяток, насколько я знаю, уже прекращён. В итоге - деньгоприёмникам типа QIWI такие комиссии могут только сниться.
  3. Интерфейс оплаты, мягко говоря, неинтуитивен. То есть я с моим изощрённым разумом его не вполне не понимаю. Десятичную запятую на клавиатуре я угадал — она не помечена никак. Надо отдельно вводить "счётчик до", "счётчик после", "сумму к оплате" (она не вычисляется из первых двух значений?) и, естественно, внесёшь ты какую-то другую сумму. Сколько денег из заложенных мной отправится в Омскрегионгаз — непонятно, то ли то что я написал "к оплате", то ли то что реально внёс. Как этот квест проходят бабушки - можно только догадываться.
  4. И да, теперь надо отстоять две очереди — одну в окошечку, и другую в банкомат. Слава богу, дверь в ATM room выломали - а то сотрудницы отделения её закрывали на выходные и на обед. Банкомат с перерывом на обед и 3 выходными в неделю! Наверняка у него соцпакет и льготный проезд в общественном транспорте!
Сбербанк. Сношаем мозг с 1841.

2010-10-16

0079:0011 DragonRise Inc

Купил пацану геймпад, чтобы обеспечить трудное детство с восьмибитными игрушками:

У геймпада обнаружилась проблема: в линуксе он почему-то детектится как имеющий 6 осей. По факту - осей две, в windows так и видно. Причём настоящие оси детектятся не как первая и вторая (X и Y), а как четвёртая и пятая (Rx и Ry). И многие программы (atari800) к этому не готовы. Mногие другие, правда, готовы (mame, mess) - так что играть можно.

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

2010-08-19

не надо рекомендаций, спасибо

Вот почему я держу Apt::Install-Recommends в положении "false":

# aptitude build-dep mpd
Без рекомендаций - Need to get 18.6MB/24.6MB of archives. After unpacking 63.8MB will be used.
С рекомендациями - Need to get 485MB/491MB of archives. After unpacking 852MB will be used.

2010-08-16

squeeze

Как можно догадаться по предыдущему посту, вчера я таки-поставил себе squeeze. Не дожидаясь релиза с его notes. Попутно поменял локаль на ru_RU.UTF-8 и спуржил пакетов чуть не на гиг. В поисках приключений.

И приключения были:
#593091: mldonkey-server: mlnet.log is empty after upgrade to squeeze (not writable to mldonkey user)
#593092: mldonkey-server: local users are gone after upgrade to squeeze, must re-create
#593094: amarok: could not add files from collection to playlist while using ru_RU.koi8r locale
#593115: iceweasel: Scrolling in Google Reader is slow

2010-08-14

Чудо техники

Amarok 2 - очаровашка. Я за полчаса с документацией и с гуглём не смог добавить музыку из коллекции в плейлист.

2010-06-27

Про margincon коротко, но больше 140 символов

Понравилось, было здорово, докладчиками и организаторам — огромное спасибо.

Самый интересный был lionet, хорошо выступил inem, у kmmbvnr была познавательная "пятиминутка ненависти к CL".

Если вдруг когда-нибудь у меня будет что доложить публике: надо рассказывать не про языки программирования, прикольные библиотеки, системы и фреймворки. Надо — про людей. Язык %s — расширяемый, динамический и мультипарадигменный? В нём есть exceptions, macros и generics? Мы безумно рады, теперь расскажите нам для какого заказчика, для какой задачи, из каких возможных вариантов и почему вы его выбрали. А ещё лучше — рассказывайте только про это, для экономии времени. Про макросы с генериками мы и в гугле начитаемся.

2010-05-21

Дискотека 90-x

Command & Conquer OST

2010-05-20

IP-TV Twist (ЭТО ПЕАР)

Подключил себе IP-TV.

Чего забыли написать в инструкции:

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth1
# ну или какой там у вас eth - главное что не ppp0
# мультикастные пакеты принимать можно:
echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter

Прошивка у приставок кустомизированная, инструкции от производителя не подходят. В частности, у ZyXEL STB-1001S отломали настройку "Output Aspect". Так что если ваш 16:9 телевизор к такому не готов - то, видимо, опаньки. Мой оказался готов :-)

А вот правильная инструкция, которую не положили в коробку.

Плейлист для vlc есть в этом архиве: vlc_playlist.ZIP. Плейлист отдельно. Попробовать можно так:

vlc http://vnaum.com/misc/201005/twist-channels.m3u
mplayer почему-то не играет :-(

В остальном всё ништяк. Качество, конечно, далеко не HD - но с эфирным не сравнить, ощутимо лучше. Так что имеет смысл. Судя по сайту, в каком-то тестовом режиме должно работать у всех абонентов Webstream c настроенным модемом, плюс можно подключить бесплатную услугу «Предоставление телевизионных каналов по протоколу IP на персональный компьютер» и получить полсотни каналов безо всякой приставки, за здорово живёшь.

2010-05-16

h2cdplay

Приделал "Heroes of Might and Magic II" проигрыватель саунтдтрека в mp3. Потому что miles sound system, которая хорошо работала в 1996 году, теперь работает через два раза на третий. Ну и CD audio как класс явно отходит в прошлое уже.

Заодно вспомнил молодость: ковыряние чужого кода отладчиком, IDA, программирование на C под win32 (поймал SIGSEGV на почти-хелловорлде - давненько не брал я в руки шашек!). Немножко расширил кругозор кросс-компиляцией (благо, пакет mingw32 в дебиане есть из коробки) и сборкой с winelib (даже нативному проигрывателю нужно было как-то делать CreateEvent и WaitForMultipleOblects). Играющая библиотека - BASS. Чего-нибудь более опенсурсного и кроссплатформенного найти слёту не получилось, увы. Впрочем, BASS оказался вполне себе лапочкой - легко, просто, удобно. Линуксовая версия тоже есть.

Гитхаб проигрывателя, торрент с саундтреком/проигрывателем/экзешником.

Попутно обнаружился fheroes2 - открытый движок для вторых героев. Ещё не вполне играбельно - почему-то нету "тумана войны" (видимо, отломано сейчас - потому что на скриншотах виден), сколько-то опций в интерфейсе не работает. Через полгодика можно будет посмотреть ещё раз. Выполнено на довольно чистом C++ с SDL.

Кстати, о саундтреках.

Новый "Шерлок Холмс" вообще никакой - ни хороший, ни плохой. Порадовала только вот эта задорная пересенка на саундтреке. Вот маленький плейлистик на prostopleer для ценителей жанра. Да, там есть "download mp3".

2010-04-24

Жизнь богаче выдумки

Проворовавшиеся коммунальщики полгода не вывозят мусор. Жители города не парятся и сваливают всё прямо на улицах.

Город зарастает собственным дерьмом.

Всем пофиг.

Это была бы могучая сатира (или, для кого-то, злобный поклёп) - если бы не было правдой (взято отсюда, с первого канала).

2010-04-15

TeamViewer

Почти идеальная программа для "чё-то у меня компьютер не того, посмотри чё там" через интернет. Пользователю давать TeamViewer QuickSupport (ни одного вопроса, скачал-запустил-работает). Интерфейс серверной части прекрасен в своей простоте:

Никаких белых/серых ip-адресов, никакого пробрасывания портов, никакого dyndns-а. На NAT плюёт. Установки не только не требует, но и не предлагает. Административных прав не требует.

Клиентская часть есть под win/mac/linux. Серверная часть тоже, но поддержка почему-то нужна только тем, кто на windows. Всё бесплатно. До "идеально" не хватает только чтобы всё было open source под DFSG-совместимой лицензией.

2010-04-14

fuckin genius

Раз: в каждой стиральной машинке имеется водонагреватель проточного типа (насколько я знаю, никаких ёмкостей там нету, а воду для стирки она греет). Два: в ЭТОЙ СТРАНЕ хоть раз в год, а почти везде — чаще и непредсказуемо, отрубают горячую воду, так? Три: несмотря на "два", водонагреватель есть заметно не у всех, а стиральная машинка, наоборот, почти у всех.

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

Положим даже, что нагревательный элемент не сильно производительный (машинка воды тратит немного) — всё равно выходит здорово, потому что оплачиваешь ты его и так и так.

Или я что-то неправильно понимаю, или срочно бежать в патентное бюро.

UPD: Всем спасибо, в машинках я не разбираюсь, в бюро не надо :-)

2010-04-09

captcha в ближайшем будущем

Начали с самых простых испытаний. Под равнодушное тиканье секундомера робот ДВ-5 перемножал пятизначные числа. Он называл простые числа от 1000 до 10000. Он извлекал кубические корни и интегрировал функции возраставшей степени трудности. Он прошел проверку все более и более усложнявшихся механических реакций. Наконец перед его точным механическим разумом была поставлена высшая задача для роботов - разрешение этических проблем.

Айзек Азимов, «Как поймать кролика» («Catch that Rabbit»), 1944.

Вот вы говорите - капча, капча... А ведь пройдёт сколько-то времени и с распознаванием образов разберутся (прогресс на месте не стоит). Будут компьютеры и закорючки читать, и котиков от щеночков отличать и прочее. Надо прикидывать дальнейшие пути. Естественно, всё придумали до нас (см. эпиграф). Я тут на досуге попробовал представить как «этическая капча» может выглядеть:

Укажите мудаков на следующих картинках:

2010-03-22

Mouse, anyone?

Слушайте, а посоветуйте хорошую мышку? Никаких наворотов не надо, две кнопки и колесо. Последние десять лет прожил на Genius Netscroll+, регулярно меняя по мере необходимости. Но что-то последние две мышки страдали родовым дефектом "шаг вперёд, два шага назад" при прокрутке, что заставляет задуматься о смене брэнда.

Кто нынче молодец у нас по этой части? Майкрософт?

Давно обещаный пост про жизнь в райцентре

Для тех, кто не в курсе (есть ли такие среди десятка читателей?): в ноябре 2008 мы купили квартиру в Кормиловке, которая суть райцентр в десять тысяч жителей на расстоянии 47 км. от Омска. И с тех пор (с небольшими перерывами) живём здесь.

Если коротко, то основное отличие - мало людей (по сравнению с Омском). Остальное отсюда вытекает.

  • нет очередей
  • все всех помнят (к этому я никак не могу привыкнуть)
  • продавщица может дать товару на 500 рублей под "потом занесёте"
  • чиновники в присутственных местах не выглядят загнанными зверями (типа "когда ж вы все разойдётесь"). К документам относятся расслаблено (Нужна трудовая книжка! Как нету с собой? Ладно, потом занесёте...)
  • мало машин
  • нет светофоров, нет пробок, нет тротуаров, нет проблем с парковкой
  • всё рядом, потому что Кормиловка вообще маленькая - вдоль ж/д чуть меньше 4 километров, поперёк - 2.5. За сорок минут можно кругом на карачках обползти.

Что есть

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

Один новомодный "торговый центр", один старосоветский универмаг. Один "маленький супермаркет" по имени "Кормушка" со всеми причиндалами - штрих-коды, дисконтные карты. Принимают Visa/Mastercard - хоть и неохотно. В общем, всё как у больших - только маленький. Для любителей есть и сельпо, привет из 1985 года. Обычных магазинов/киосков с продуктами вполне достаточно, некоторые круглосуточные. Стройматериалы, одежда, обувь - всё жизненно необходимое продаётся. Ассортимент, конечно, не омский. Цены сравнимые (что-то чуть дороже, что-то чуть дешевле). В Калачинске цивилизации побольше: Алпи, Геомарт, Технософия и пр. Ну там и город побольше, почти 25K народу.

5 аптек, 5 (или даже 6?) конкурирующих служб такси с названиями типа "Лидер", "Барс", "Люкс" и "Крекс-Фекс-Пекс". Проезд по принципу гравицапы - за 40 рублей в любую точку Кормиловки. Для бюджетников ездит 1 автобус (7 рублей) и 1 маршрутка (7 рублей тоже). Мясокомбинат с магазином на территории (суперское копчёное мясо - всегда свежайшее, склада готовой продукции нету вовсе, как я понял). Приличная пекарня (хлеб по 12 рублей). Кефир/молоко/творог тоже местные ("Сибирская белочка").

Районная поликлиника/больница/роддом - такая же как и средняя поликлиника в городе (бедненько, но чистенько), за вычетом того что народу меньше. Это не отностися к поликлинике - там как-то так мастерски организуют приём, что очереди даже и тут (приём по два часа в неделю, например). Скорая помощь приезжает за 5 минут, потому что Кормиловка маленькая.

Две библиотеки средней паршивости, детская и "для всех". Кинотеатр / дом культуры есть. Раз в неделю показывают шедевры. После нового года показали "Аватара", "Чёрную молнию", "Яйца судьбы" и всякого ещё. Про оборудование - не знаю, не посещал. Жена с ребёнком ходила туда на ёлку. Детей было 6 человек. Естественно, при таком раскладе Дед Мороз со всеми познакомился лично, поиграл и раздал конфетки :-) Ещё детям можно показывать живых коз, овец, коров, гусей/курей и прочих. Например, позавчера под окнами минут двадцать стояла живая лошадка с тележкой.

Народ живёт [в среднем] небогато. Зарплаты по 7-15 тысяч. Многие работают в Омске или вахтовым методом на северах. Живут по-разному, естественно: по улицам есть и халупки, и приличные дома:

На углу Советской и Пролетарской стоят несколько дворцов - видимо, пролетарии :-)

Дорог до Омска две: новая и приличная M51 и популярная-разбитая (потому что втыкается в Омск по улице 10 лет Октября, а не с южной оконечности). Маршрутка едет до города ~полчаса, до центра ~45 минут. Проезд - 60 рублей. Электричка дешевле (~30 руб), но ездит редко и едет долго (останавливается у каждого столба).

Коммунальные службы работают неплохо. Единственно что водопровод старый, да очистные сооружения оставляют желать. Водяной фильтр - имеет смысл. Особо брезгливые покупают фильтрованную воду на локальной станции очистки по рублю за литр. А, и канализацию вывозят машинами - и вывоз воды оказывается дороже подачи почти в два раза. Котельная летом не работает. У всех водогреи. Коммуналка на круг выходит дороже городской: у нас в четырёшке при трёх прописанных без льгот и субсидий получается ~4 т.р. в месяц. В основном из-за воды и канализации. У многих субсидия ~2-3 тыщи. Жильё по сравнению с Омском дешёвое.

Интернет - Webstream от "Сибирьтелекома", без вариантов (GPRS не считается). Работает лучше, чем в Омске. До прошлого ноября ценник был омский, но потом по область отцепили от паровоза. Теперь мегабитный ADSL стоит 700 рублей и чёрта с два я им сдам назад свои два мегабита.

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

Погода как в Омске, только ветер сильнее дует (многоэтажек нету почти) и снег лежит дольше. Воздух чище, но по жизни это замечаешь только когда приезжаешь в город. Летним вечером ежели выйти гулять, то по субботам пахнет баней.

2010-03-10

shipito.com

В жж у евил_нинзи наткнулся на добрый сервис: shipito.com. Если коротко, они в US of A получают для заказчика N посылок с ебея/амазона/бестбая/кого угодно, заворачивают в одну большую коробку и отправляют в любую страну сувенирной демократии. Это резко снижает почтовые накрутки, из-за которых 99% сетевых покупок теряют смысл. Ну и на том же ебее куча лотов доставляется только в америку+канаду.

2010-03-07

filesystems

Развлекаюсь со свежим терабайтником. Раз есть возможность, бенчмаркаю ФС - нету ли чего получше XFS для файлопомойки (фотки, mp3, кино).

reiser xfs
Удаление хорошей кучи файлов 0m28.333s 1m6.038s
Обход ФС 9m30.433s 3m26.498s
Упаковка хвостов 497G 491G
Последнюю строчку объяснить не могу вообще. Если верить википедии, упаковка хвостов есть у reiser, но не у xfs. Но df почему-то показывает обратную картину. Блоки 4кб в обоих случаях.

Нет, на reiser я пожалуй не пойду — не так часто я удаляю файлы. Кого там ещё можно смотреть из «похранить данные»? JFS, ext4? Интересуют варианты имеющиеся в debian stable, собирать кустомное ядро не хочу.

2010-03-02

Попытки фальсификации

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

Прочитал «Преступление и наказание». В анекдоте говорится что, мол, Раскольников убил старушку за 20 копеек. Это неправда, товарищи! Раскольников убил не одну старушку, но и её сестру тоже. И в кошельке было совсем не 20 копеек, а «триста семнадцать рублей серебром и три двугривенных» (источник).

Далее, товарищи. Некоторые ревизионисты в интернете подвергают сомнению тот факт, что Марио разбивает стенки головой.

Действительно, на скриншоте видно что он ПЫТАЕТСЯ разбить стенку кулаком:

(кулак на пиксель выше головы).

Но на следующем скриншоте ясно видно, что ему это НЕ УДАЁТСЯ:

2010-03-01

Раньше всё было проще

Пять лет назад всё было просто: у среднего сетевого персонажа был ЖЖ. И, в общем, в пределах тамошней френдленты всё и происходило.

Теперь у того же персонажа есть стэндалон бложик на своём сервере, трансляция бложика в ЖЖ, рабочий блог на блогспоте, трансляция рабочего бложика в ЖЖ, англоязычный бложик на вордпрессе, твиттер, тумблр, фликр, дроплр, del.icio.us, li.stio.us, бузз, вконтактик, фейсбук, линкедин, you.name.it. Всё это сочится RSS-фидами, обвешано комментами, кармой, репой, ссылками на reddit, digg, stumbleupon и пр. Во все щели надо регистрироваться, логиниться, заполнять профиль и т.д. со всеми остановками.

Следить за всем этим уже нету ни желания, ни возможности.

Интересно, если бы ЖЖ в своё время купили более вменяемые персонажи — случился бы это рассадник или нет? Потому что чисто технологически ЖЖ как был самым лучшим, так и остался. Все полимеры были просраны исключительно менеджментом.

2010-02-22

Details

Только что понял, что details - это глагол. К примеру говоря, на этой вот картинке мужик details a lobster:

Вопросы и ответы из френдленты

olegart:

С появлением в продаже Office 2007 Home & Students по 1990 рублей за три лицензии смысл использовать OpenOffice пропал буквально в одну минуту: OOo, конечно, дешевле, но MSO быстрее, стабильнее, а также умеет отрисовывать диаграммы так, что не стыдно людям показать;

Сравнение скорости работы GIMP и Adobe Photoshop Elements дало такой результат, что GIMP в данный момент чётким строевым шагом отправляется за горизонт без шансов вернуться назад; ...

Вопрос явно не задаётся, но читается хорошо: «зачем использовать opensource, если проприетарные аналоги лучше, мощнее, не такие уж и дорогие»?

Через пару деньков по той же френдленте приползает один из вариантов ответа от philyuhka:

в контору пришло письмо от фирмы Майкрософт, в котором мягко вменялось в обязанность заполнить отчет про использование лицензионного ПО фирмы Майкрософт. На попытки послать мальчика из Москвы в пеший эротический тур был указан пункт соглашения пользователя, под которым мы нажимали "мы согласные"...
В общем случае самый пакостный недостаток проприетарной программы — не в исходниках (там-то как раз обычно всё хорошо), а в EULA.

2010-02-19

Альтернативная концовка Avatar-а

Тут ребятишки разведали альтернативную концовку "Аватара". Будет на блюреях, ждите.

Раскадровка приблизительно такая:

Аватар
Альтернативная концовка
(за терранов)

Я собрал 15 кланов!

Он собрал 15 кланов...

...поэтому мы решили  с орбиты
разнести планету к чертям 

и продолжить разработку уже с астероидов

добыча анаптаниума растёт,
Земля спасена!

Да, фильм с этой концовкой будет короче минут на сорок - так это только на пользу ему. Что же касаемо матери-природы, то любовь её несколько однобока. Жизнь вообще будет множиться и процветать, но никто не обещает тебе лично, твоему потомству или вообще биологическому виду участия в этом празднике.

2010-02-09

Людям с детьми на заметку

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

В общем, идею вы поняли.

Ничего не поделаешь, это Flash.

2010-02-06

онлайн-OCR

http://finereader.abbyyonline.com/ru. Десять страниц в сутки дают нахаляву. Оно сильно чаще и не надо. Ну, кто похитрее те могут зарегистрировать десять аккаунтов (ящиков на mailinator.com мно-о-ого) и получить сто страниц (пять старушек — уже рубль :-)

И вот к нему команднострочный фронтендик на перле, сделал для личного пользования: http://github.com/vnaum/Frol.

Почему не на питоне? Потому что когда я увидел, через какие медные трубы мне придётся пройти чтобы засабмитить multipart-форму, у меня что-то пропало желание. Двадцать первый век, могучий язык с развитой библиотекой — и тут на тебе, каменный топор! А у перла при всех его недостатках всё нужное для этой задачи оказалось в коробке (batteries included, точно).

Интересно, а как на руби сабмитят мультипарты? Всё готовое есть в стандартной библиотеке или надо качать gem-ы с плагинами?

2010-02-05

C++ FQA

[C++ FQA Lite] Хороший, добрый, полный любви сайт: С++ frequently questioned answers. Если совсем коротко, то Страуструп сделал с неплохим (на своей поляне) языком C нечто ужасное. Я лет пять назад, было дело, участвовал в небольшом проектике на C++. Ну и для себя писал разное, плюс ещё заглядывал в чужое отладчиками на предмет «льготного лицензирования» и нормальной работы. Многое из перечисленного в FQA довелось отведать на своём опыте: и mangling, и радости совместимости компиляторов, и время сборки, и шаблоны, и iostream со всеми его потрохами... Когда читал про многоэкранные сообщения об ошибках — чуть не плакал, настолько пронимает.

Сейчас-то, конечно, всё это вдалеке: даже и свою копию Страуструпа я библиотеке подарил. И слава богу. А детей жалко: сиплюсплюс со всем его alien mindbending входит в учебные программы…

2010-02-04

Подглядываем в чужой environment

peek_env ()
{
  tr '\000' '\012' < /proc/$1/environ
}
Вписать в .bashrc или просто скопипастить в терминал. После этого peek_env PID красивенько рисует окружение нужного процесса. Бывает нужно при разборках вида "а что у того апача написано в $NLS_LANG".

2010-02-01

Пост с картинками

Суровый мужик с плаката на калачинском вокзале:

Нашли в телевизоре канал без рекламы, ситкомов и политики: Если кто не понял, эту буколическую картинку с домиком показазывает камера домофона.

2010-01-27

Скриптик для greasemonkey

Чуть улучшает форму комментариев на blogger.com. То что у них там из коробки явно не рассчитано на комментарии длиннее чем "+1" или "я плакалъ" - больно узенькие колонки. Брать тут.

2010-01-21

Пожалуй, стоит перепостить.

Как нахлобучить SMS-мошенников?

О некоторых недостатках документации Python (по сравнению с Perl)

Этот пост должен бы называться "не могу больше молчать". Извините за здоровенную таблицу, но так надо.

См. таблицу 1:

pydoc os.stat perldoc -f stat
os.stat = stat(...)
stat(path) -> stat result
 
Perform a stat system call on the given path.
stat FILEHANDLE
stat EXPR
stat DIRHANDLE
stat

Returns a 13-element list giving the status info for a file, either the file opened via FILEHANDLE or DIRHANDLE, or named by EXPR. If EXPR is omitted, it stats $_. Returns a null list if the stat fails. Typically used as follows:

    ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
       $atime,$mtime,$ctime,$blksize,$blocks)
           = stat($filename);

Not all fields are supported on all filesystem types. Here are the meanings of the fields:

  0 dev      device number of filesystem
  1 ino      inode number
  2 mode     file mode  (type and permissions)
  3 nlink    number of (hard) links to the file
  4 uid      numeric user ID of file's owner
  5 gid      numeric group ID of file's owner
  6 rdev     the device identifier (special files only)
  7 size     total size of file, in bytes
  8 atime    last access time in seconds since the epoch
  9 mtime    last modify time in seconds since the epoch
 10 ctime    inode change time in seconds since the epoch (*)
 11 blksize  preferred block size for file system I/O
 12 blocks   actual number of blocks allocated

(The epoch was at 00:00 January 1, 1970 GMT.)

(*) Not all fields are supported on all filesystem types. Notably, the ctime field is non-portable. In particular, you cannot expect it to be a "creation time", see "Files and Filesystems" in perlport for details.

If stat is passed the special filehandle consisting of an underline, no stat is done, but the current contents of the stat structure from the last stat, lstat, or filetest are returned. Example:

    if (-x $file && (($d) = stat(_)) && $d < 0) {
        print "$file is executable NFS file\n";
    }

(This works on machines only for which the device number is negative under NFS.)

Because the mode contains both the file type and its permissions, you should mask off the file type portion and (s)printf using a "%o" if you want to see the real permissions.

    $mode = (stat($filename))[2];
    printf "Permissions are %04o\n", $mode & 07777;

In scalar context, stat returns a boolean value indicating success or failure, and, if successful, sets the information associated with the special filehandle _.

The File::stat module provides a convenient, by-name access mechanism:

    use File::stat;
    $sb = stat($filename);
    printf "File is %s, size is %s, perm %04o, mtime %s\n",
        $filename, $sb->size, $sb->mode & 07777,
        scalar localtime $sb->mtime;

You can import symbolic mode constants (S_IF*) and functions (S_IS*) from the Fcntl module:

    use Fcntl ':mode';

    $mode = (stat($filename))[2];

    $user_rwx      = ($mode & S_IRWXU) >> 6;
    $group_read    = ($mode & S_IRGRP) >> 3;
    $other_execute =  $mode & S_IXOTH;

    printf "Permissions are %04o\n", S_IMODE($mode), "\n";

    $is_setuid     =  $mode & S_ISUID;
    $is_directory  =  S_ISDIR($mode);

You could write the last two using the -u and -d operators. The commonly available S_IF* constants are

    # Permissions: read, write, execute, for user, group, others.

    S_IRWXU S_IRUSR S_IWUSR S_IXUSR
    S_IRWXG S_IRGRP S_IWGRP S_IXGRP
    S_IRWXO S_IROTH S_IWOTH S_IXOTH

    # Setuid/Setgid/Stickiness/SaveText.
    # Note that the exact meaning of these is system dependent.

    S_ISUID S_ISGID S_ISVTX S_ISTXT

    # File types.  Not necessarily all are available on your system.

    S_IFREG S_IFDIR S_IFLNK S_IFBLK S_IFCHR S_IFIFO S_IFSOCK S_IFWHT S_ENFMT

    # The following are compatibility aliases for S_IRUSR, S_IWUSR, S_IXUSR.

    S_IREAD S_IWRITE S_IEXEC

and the S_IF* functions are

    S_IMODE($mode)      the part of $mode containing the permission bits
                        and the setuid/setgid/sticky bits

    S_IFMT($mode)       the part of $mode containing the file type
                        which can be bit-anded with e.g. S_IFREG
                        or with the following functions

    # The operators -f, -d, -l, -b, -c, -p, and -S.

    S_ISREG($mode) S_ISDIR($mode) S_ISLNK($mode)
    S_ISBLK($mode) S_ISCHR($mode) S_ISFIFO($mode) S_ISSOCK($mode)

    # No direct -X operator counterpart, but for the first one
    # the -g operator is often equivalent.  The ENFMT stands for
    # record flocking enforcement, a platform-dependent feature.

    S_ISENFMT($mode) S_ISWHT($mode)

See your native chmod(2) and stat(2) documentation for more details about the S_* constants. To get status info for a symbolic link instead of the target file behind the link, use the lstat function.

И так везде: документация Perl — готовые рецепты с исчерпывающим описанием входных параметров и возвращаемых значений, документация Python — список методов для тех, кто наизусть помнит все протоколы, RFC, сисколлы и библиотечные вызовы.

Список использованной литературы:

  • pydoc os.stat
  • perldoc -f stat

2010-01-09

Розеточные страдания

Рис. 1

Добрался потихонечку до разбросанных по квартике кабелей CAT5. То есть их во время ремонта без меня раскидали и в розетки хвосты высунули, а обжимать типа мне самому.

При ближайшем рассмотрении выяснилось что вовсе не любой RJ-45 jack можно воткнуть в любую "телефонную" (RJ-11) розетку.

RJ-розеточки сведены рамками в блоки в остальными розетками и выключателями, потому что для гармонии. В общем, теперь или купить новые RJ-45 розетки и нафиг поменять всю внешнюю электрику для гармонии, или розетки купить а на гармонию забить, или искать нужную розетку (см. Рис. 1) по городу. Ну или любую другую из серии Makel Lillium с RJ-45 в комплекте искать, не до жиру уж.

Страдаю. Нашлось в "Омском посаде", всем спасибо.

2010-01-06

С наступившим!

Если у кого в хозяйстве SpamAssassin, то пришла пора поправить/отключить правило FH_DATE_PAST_20XX в файлике 72_active.cf: 2010 уже не "grossly in the future", и начислять за него очки не надо. Вот так вот внезапно будущее наступило.

Subscribe / RSS

Blog Archive