Skip to content

Category Archives: Digital

My life as applied to tinkering.

Кубик

thoughtful emoticon

Нужен сервер… так, стоп, для начала сформулируем задачу построже.

  1. Основным и единственным назначением сервера будет раздавать WiFi неопределенному количеству пользователей на достаточно большой территории с диаметром порядка пятисот метров, не будучи при этом подключенным к настоящему интернету — то бишь, хостить открытую всем ветрам WiFi-сеть с приватным адресным пространством, обслуживающую толпу народу с неизвестным количеством устройств самого разного калибра, и быть на ней единственным www+dns+dhcp+whatever-сервером, предоставляющим много разных мелочей, но ничего реально тяжеловесного вроде рилтаймового видео или тяжелых файлов.
  2. Требования к железу, соответственно, невелики — на правильно заточенной напильником Gentoo ему с ушами хватит 500 МГц, 256 Мб оперативки, и строго говоря, без винта тоже можно будет обойтись — пары гигабайт для сервисов достаточно, а это можно реализовать при помощи флэшки. Побольше оперативки не повредит, но больше мегагерц наверняка не нужно.
  3. Он должен выдерживать отключение питания в течение 10 минут без последствий.
  4. Он не должен перегреваться, разве что если накрыть его одеялом. И вообще он должен быть надежен и выдерживать безалаберное обращение.
  5. В случае если WiFi внутренний, он должен допускать подключение внешней антенны, иначе весь смысл теряется.
  6. Самое каверзное — он должен занимать как можно меньший объем. Если он при этом еще и мало весит, будет совсем хорошо.
  7. Он должен ко всему этому еще и мало стоить. :)

Как вы понимаете, требования 4 и 5, да и 7 заодно, исключают большинство ноутбуков, хотя требования 3 и 6 скорее их предполагают. Чем-то из этого можно поступиться, да и у меня найдется машина которая трансформируется в искомое очень быстро… только вот это довольно тяжелый гроб стандартного размера, которому надо будет искать место в багажнике и так далее. Интересно все-таки получить специализированную “машину в себе”, которую не слишком жалко угробить насмерть или потерять при перевозке, имеющую минимум того, что в нее при установке на месте нужно втыкать. Кубик. Вполне возможно, что с ним будут обращаться слабо подготовленные люди, у которых и других забот полон рот.

Варианты типа Mac Mini и родственников отпадают в силу дороговизны. Варианты “собрать из старых огрызков” остаются как запасные, потому что результат будет тяжеловат, великоват, и не очень надежен, если не купить для огрызков новый корпус — хотя по стоимости им конечно равных нет, огрызков у меня завались. Варианты собрать что-то новенькое самому на mini-ITX вполне допустимы, если в сумме они окажутся значительно дешевле тех же Mac Mini и если все компоненты можно приобрести в одном месте. Ибо если его придется собирать по клочкам, проще съездить на рынок один раз за корпусом для огрызков. Собственно, суммарная стоимость выше 9000р, то бишь около $350, не котируется в принципе.

Какие варианты решения такой задачи существуют на нынешнем местном рынке? Что есть как минимум несколько очень заманчивых кубиков там, за бугром, я знаю…

Pingback

thoughtful emoticon

Вот уже второй раз я вижу в комментариях на Wordpress (не у себя, а на Bemafia, где стоит старый WP 1.5 к которому я много лет никакого касательства не имею и сайт залит насмерть спамерскими комментариями) pingback, приводящий на запись в Livejournal.

Я что-то никак не пойму, они умеют pingback, или все-таки не умеют? Если не умеют, то откуда эти два,1 если умеют, то почему их так мало?

  1. Предыдущий я видел где-то год назад или около.

Башня Вавилонская, 1 шт.

thoughtful emoticon

Я, как известно, программирую сам только и исключительно потому, что заставить больше некого… Давным-давно, в детстве, я читал такую чудную книжку как “Маленькая энциклопедия о большой кибернетике”. Она и сейчас у меня есть, 1973 года издания, то бишь заметно старше меня самого.

И на букву “Я” есть там статья о языках программирования, которые изображены в виде Вавилонской Башни. Почти все кирпичи этой башни нынче благополучно умерли и остались пылиться разве что в музее, хотя кирпичиков там преизрядно. Только вот сама башня не исчезла никуда, и у меня такое подозрение, что она растет слишком быстро.

Скажем, понадоблось мне скриптовый интерпретатор для идеологически чуждого кода который я уже много лет видеть не могу… Взял я Lua — он полегче и пошустрее, и вроде бы не слишком заумный…. За десять строк кода я прикрутил его на место, т.е. функцию написанную на Lua можно вызвать из программы. Еще десять строк понадобились на то, чтобы таким манером программу нельзя было угробить, как-никак сервер. Но мне надо прикрутить ее не только таким манером, но и обратно, чтобы работать с данными доступными только самой программе изнутри Lua… Оказалось, что для этого мне надо продублировать до тридцати процентов ее кода, и видимо придется дублировать, а куда ж я денусь.

Полистав книжки про этот кошмарик, я обнаружил что он странен донельзя — все переменные глобальны пока не сказано обратное, (…?! Я понимаю, что это упрощает интерпретатор, но кгхм…) функции — это тоже переменные, (пффт) и особый акцент делается на то, чтобы плодить их на лету и присваивать направо и налево, (уууу…) и синтаксис, опять же, свой. Ладно, откладываем в сторону, начинаем думать над другой задачей, благо задач и так невпроворот.

Понадобилось мне сотворить веб-приложение для работы с довольно сложной базой данных, которую я уже упоминал недавно. Идею писать все это добро с нуля я оставил сразу же, потому что возиться с таким количеством форм — увольте. Вокруг раздаются экстатические крики любителей Ruby on Rails — но я в нем ни бум-бум, пока что, и сначала посмотрел в сторону CakePHP. Однако, несмотря на все полезные качества последнего, он довольно слабо документирован, копаться во внутренностях чужого кода меня совершенно не тянет, а главное, внятной поддержки древесной структуры записей в нем нет, а у меня на эту структуру много чего завязано, и писать ее заново я не буду, ибо и без нее есть чем заняться.

Поэтому CakePHP отправился лесом, я чертыхнулся и пошел изучать очередной язык. Посмотрел на этот Ruby… мдя… В детстве у меня была такая чудная вещь как Clarion 3.0. Я его обожал и клепал на нем неоптимальные, но очень хорошо работающие программы баз данных, не написав ни одной строчки кода. Здравствуй старая идея, давно не виделись… …но так ли надо было делать это на еще одном языке, с еще одним синтаксисом?

Они плодятся. У них там гнездо. Вавилонская башня уже скоро начнет царапать небесную сферу.

Пора что-нибудь сделать, чтобы мне не надо было держать на системе более четырех компиляторов, ибо это уже просто свинство.

Так называемое “быдло”…

thoughtful emoticon

Я хотел бы ввести это как научный термин, за неимением лучшего, более понятного слова, потому что “пролетариат”, “люмпены” и прочие слова которые мы обычно считаем синонимичными слову “быдло”, имеют уже свои совершенно конкретные значения, которые, однако, синонимичными тому, что мы обычно интуитивно понимаем под словом “быдло” никак не являются. Оскорбительность его пока оставим за кадром, если кто-то предложит мне альтернативу — милости прошу.

Так вот, на это размышление меня подвиг взгляд на форум SEOшников. Т.е. тех людей, которые ответственны за то, что ссылку на порносайт можно найти, осуществляя поиск по строке “MySQL manual”. Поисковики воюют с ними много лет, с переменным успехом с обеих сторон, но принципиально не это… Выстрою-ка я логическую цепочку.

  1. Чтобы любой спам окупался, нужно чтобы хоть кто-то обращал на него внимание — кликал на ссылки и смотрел баннеры, покупал предлагаемые товары и услуги, и так далее.
  2. Поскольку стоимость спама как рекламы чрезвычайно низка, т.е. перекладывается на наши с вами плечи, CPT1 ниже плинтуса, и соответственно, одна реакция из сотни тысяч полностью окупает всю операцию.
  3. Но кто он — тот человек, который покупает лекарства (!) таким манером, инструкции по способам увеличения половых органов, и всю эту прочую дрянь?
  4. Очевидно что я, рассматривая мир в основном через призму интернета, его просто не вижу, потому что он не генерит никакого контента, точно так же как нельзя увидеть в телескоп черную дыру, ибо она не светится. Сомневаюсь, что кто-то из вас знает таких лично в достаточном количестве, ибо эти люди блогов тоже не читают.
  5. Но тем не менее они существуют, и существует их достаточное количество, чтобы сделать спам-операции прибыльными.
  6. Количество их при этом не обязательно велико. Помнится мне, для спама — и для более ранней идеи, почтовой рекламы — хорошим показателем считается отзыв на доли процента показов. Для баннерной рекламы, кстати, тоже.
  7. Если бы спамеры знали кто эти люди, могли бы бить по ним адресно, они бы так и делали, и экономили бы время, деньги и заодно нервы всем остальным.
  8. А если бы мы знали, кто эти люди, возможно мы знали бы, как им помочь.

Их называют словом “быдло”, с намерением оскорбить и унизить, но каковы реальные характеристики быдла? Они отнюдь не такие же, как у среднего потребителя телевизионной или печатной рекламы, характеристики которых в общем известны, потребители нормальной рекламы не ловятся так легко на такие глупости, как то, что можно наблюдать в спаме. Что это за люди?

  1. Сколько их на самом деле? Если бы быдло составляло подавляющее большинство, как принято считать, то число отзывов на спам превышало бы доли процента.
  2. Что определяет принадлежность человека к быдлу? Уровень образования? Сомнительно, ведь известны прецеденты, когда люди с достаточно высоким уровнем образования и учеными степенями ловились на классические advance fee fraud. Возраст? Тоже сомнительно, по той же причине. Что общего у всех этих людей?
  3. Наконец, сколько им лет, сколько у них денег, каких политических взглядов они придерживаются, каковы их социокультурные характеристики?

У меня пока есть только одна теория, а именно, что это некий странный подвид патологической наивности, свойственной лишь небольшой доле населения. Я не знаю, наследственное оно или нет, хотя не исключено и это. Это наивность того же порядка, как и та что побуждает людей складывать пятидюймовую дискету вчетверо чтобы засунуть ее в трехдюймовый дисковод, а Хоттабыча побудила наколдовать телефон-автомат, высеченный из цельного куска мрамора. Возможно, это как-то связано с одним из очень странных эффектов восприятия, когда некоторые люди не в состоянии увидеть, что изображение 16:9 растянуто по вертикали чтобы уместить его в экран 4:3, или рисуют так, что все объекты оказываются скошены вправо — я встречал таких и спрашивал, они действительно не видят разницы.

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

  1. Cost Per Thousand, стоимость тысячи просмотров рекламы — есть в медиапланировании такой параметр.

Стандарты

angry emoticon

Во времена, когда компьютеры были похилее и побольше, я потратил невероятное количество времени на жонглирование кодировками. Можно сказать, убил на это лучшие годы. Я еще помню войну между cp866 и windows-1251! Я очень хорошо помню KOI-8! Я пообламывал зубы об iso-8859-5! И я возблагодарил Бога, когда UTF-8 стал поддерживаться везде и стал универсальным стандартом. В нем есть еще несколько отравляющих по мелочи жизнь вещей вроде byte order mark, они по крайней мере не вызывают резкой невозможности что-то прочитать ни для кого.

И тут я упоминаю — случайно! — что использовал UTF-8, а мне говорят, чтобы я все перекодировал в windows-1251, а типографские знаки препинания выкинул, потому что у кого-то, якобы, не читается… Я знаю, что в этом случае не читается на самом деле и почему. Не читается сам файл, потому что он тупо обрезался при записи на диск, по не связанным с кодировкой причинам, про которые надо написать отдельную телегу. Покажите мне этих, у которых не читается — я хочу видеть их глаза!

“Мой стандарт”, my ass! Вылезайте из каменного века и понюхайте напалм! У меня стоят и постоянно используются компьютеры, древность которых не просто не вызывает сомнений, а является предметом особой гордости, потому что считается что они массово передохли много лет назад. И тем не менее, броузеров которые не читают UTF-8 у меня нет. Кончились.

А броузеры которые не читают windows-1251 — есть.

Пойти напиться с горя, чтоли…

И снова о спаме

amused emoticon

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

Так вот, я не могу не поделиться этим с общественностью:

Исследовательская компания Email Systems сообщает, что ее специалистами был зафиксирован принципиально новый метод рассылки спама. По данным Email Systems, спамеры начали использовать зашифрованные вложения к спамовым рассылкам с тем, что те миновали серверные антиспамовые фильтры.

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

(цит. по “Для обхода фильтров спамеры начали шифровать сообщения“)

Первый такой “принципиально новый” червячок попался мне никак не позже 2003 года. Это был вложенный зашифрованный zip, и в тексте письма содержался пароль которым он был зашифрован — в рассчете на то, что кто-то любопытный откроет и сдуру запустит, думая что послали что-то важное, и не ему, а ему пришло по ошибке.

Мой bogofilter успешно просек этот поток по сопроводительному тексту и полностью его отсеял — способов которыми можно объяснить что это запароленный зип и сообщить пароль, чтобы хоть кто-то его расшифровал, не так много.

Так вот, над кем смеяться-то — над экспертами, которые панику нагнетают, “покупайте наших слонов”, или над журналистами, которые где-то раскопали новость пятилетней давности и стесняются привести первоисточник?…

  1. Тьфу-тьфу-тьфу, где моя деревяшка?

Мистика

evil emoticon

Как я уже упоминал, живет у меня кластер на Gentoo… Если точнее, Gentoo стоит на шести компьютерах из десяти.1

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

И есть в этом кластере машина по имени atomsk, тщательно прикидывающаяся DVD-плеером. Он бы прикидывался еще тщательнее, но мне жалко денег на специальный корпус, я наверное лучше закатаю его в тумбочку как-нибудь при случае.

Так вот, несколько месяцев назад я обнаружил, что distcc, т.е. сервер кластерной компиляции, начал валить мне какие-то ошибки, в которых виноват этот самый atomsk. Тогда мне было некогда с ним возиться, так что я просто выкинул его из очереди и забыл, а сейчас, когда пришла пора перебирать Gentoo на основной машине, я решил заняться этим вплотную.

Еще тогда я выяснил, что юзеру distcc Ничего Нельзя. То есть вообще. Сервер запускается — потому что его запускают из-под рута — но после того как он отходит юзеру distcc, он не может сделать вообще ничего, и оглашает кластер жалобными воплями.

Это было странно, но мне лень было разбираться и я его пересобрал. Не помогло. Я пересобрал все остальное, не помогло. Тогда я отложил это еще на месяц.

Сегодня я обнаружил что никому кроме рута на той машине ничего нельзя. Поскольку atomsk работает по сути как tv appliance, то бишь показывает аниме из-под freevo, управляется только с пульта, и полгода я его клавиатуру уже не трогал, никаких других юзеров на нем собственно и нет… окромя distcc. Поэтому я так долго ничего не замечал.

Сначала я грешил на PAM. И пересобрал его. Потом на ядро. Пересобрал и его тоже. Я обратился за советом к куче мусора, но куча мусора показала только что подобных вопросов у нее пучками по пять копеек и ни один не получил удовлетворительного ответа.

За исключением того, что в одном из них посоветовали взглянуть на права на /etc - и на корне тоже.

Я посмотрел на те и другие, но там все было в порядке. И тут я взглянул на права на все остальное…

Мать моя женщина.

С половины директорий в корне слетели куда-то все execute биты. Последствия этого самоочевидны — ни один простой юзер не мог туда войти, не мог загрузить все что надо для логина, и очень от этого страдал, и только один рут под которым все там крутится работал как ни в чем не бывало.

Вот кого за это бить я так и не понял, потому что если бы я сотворил какую-нибудь глупость в таком духе, я бы об этом точно помнил.

  1. Еще на одном — Embedix, Amiga 600 как жила под AmigaDOS так и живет, макинтош живет под шестеркой с которой родился, Asus R2H пока живет под своей таблеточной виндой. Моя основная машина дожидается пока авторы ALSA наконец встанут с кресла и напишут драйвер для Audiotrak Maya44 MKII, ну или пока меня отпустит жаба и я куплю для студии что-нибудь другое, и гоняет линюх лишь изредка.