?

Log in

No account? Create an account

Entries by category: it

Category was added automatically. Read all entries about "it".

Компьютерное

Note to myself. Если у тебя открыт VPN, и удаленная подсеть совпадает с локальной, то открыть ssh на локальные хосты ты не сможешь. Это не потому, что у тебя неправильная версия ssh (не надо ее переставлять!). Это не потому, что у тебя неправильные конфиги (не надо их менять!). Это не потому, что у тебя неправильные ключи (не надо их перегенерировать!). Это не потому, что у тебя firewall (не надо проверять его отсутствие!).

Это потому, что ты — побрекито.

This entry was originally posted at http://scholar-vit.dreamwidth.org/517528.html. Please comment there using OpenID.

comment count unavailablecomments

Сапожники и сапоги

Дешевый USB hub после семи лет работы умер, утащив за собой в мир иной домашний backup server. Диск, на котором был файловая система самого сервера, перестал читаться. Как водится, бекапа именно этого сервера у меня не было.

К счастью, это был Raspberry Pi, и диск, о котором идет речь, на самом деле SD карточка от телефона. Я ее выкинул, нашел в закромах другую, поставил свежий Raspbian и воткнул в гнездо. Пожалуй, решение не бекапить этот сервер было правильным: там был ровно один нестандартный скрипт, копия которого у меня имелась. Настройка с нуля заняла полчаса; вряд ли я быстрее нашел бы бекап и восстановил сервер.

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

This entry was originally posted at http://scholar-vit.dreamwidth.org/511339.html. Please comment there using OpenID.

comment count unavailablecomments

Маркс, как известно, считал капиталистическое государство комитетом по делам буржуазии в целом. Этот комитет, похоже, что-то имеет против крупной буржуазии, что доказывает форма 1040-V. Это бумажка, которую надо приложить к чеку, посылаемому в налоговое управление. Так вот, бумажка эта говорит, что налоговое ведомство, видите ли, не может принимать чеков на сумму в сто миллионов долларов и выше. Так что если вам нужно заплатить дяде Сэму сто миллионов десять долларов, то извольте мучиться, выписывая целых два чека: один на девяносто девять миллионов девятьсот девяносто девять тысяч девятьсот девяносто девять долларов, а второй на одиннадцать долларов. Или платите онлайн.

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

Возмутительно, вот что я вам скажу.

This entry was originally posted at http://scholar-vit.dreamwidth.org/503811.html. Please comment there using OpenID.

comment count unavailablecomments

Tags:

О чудесах

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

Или когда экспериментаторы меряют, меряют, — а потом их точки ложатся именно туда, куда ты сказал, что они лягут.

И всякий раз поражает, что твоя модель, эта сильно упрощенная и стилизованная карикатура на действительность, оказывается не такой уж бессмысленной.

Ощущение счастья и благодарности.

Tags:

Товарищи изобретатели

От юристов пришел проект заявки на патент. Кстати, они нашли опечатку в одном моем уравнении: плюс вместо минуса. Молодцы. Правда, наши программисты нашли эту же опечатку раньше. Все-таки есть на свете люди, которые меня внимательно читают.

Так вот, там, как водится, были вопросы юристов. Почему-то они начинались с обращения "Inventors". Типа "Inventors, please explain what does this thingamajig do". Меня это обращение, направленное в наш с коллегой адрес, все время коробило. "Товарищи ученые"...

Старая шутка: Turing test

Прислали замечательное из Hacker News; но по-моему, я это уже видел много лет назад.

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

GNU tar

Все-таки GNU tar - удивительная штука. Я, например, не знал о существовании флага --transform, а он оказался удобен.

Комментируя мою предыдущую запись, pigbig указала на идеи Ритцера о Мак-Дональдизации общества (см. изложение концепции в рецензии на книгу Ритцера).

Книгу я ещё почитаю, но подмеченное автором стремление к воспроизводимости и предсказуемости мне кажется очень интересными наблюдением. При этом, если верить рецензенту, эта предсказуемость становится не средством, а целью: "Не надо лучше, надо по правилам!"

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

Преподаватель начал с того, что всем присутствующим известны замечательные программисты, способные быстро писать прекрасный код, точно решающий поставленную задачу. Они на голову выше остальных сотрудников, и заменить их практически невозможно. Задача менеджера состоит в том, чтобы таких сотрудников выявить и немедленно уволить. Их наличие несовместимо с современным промышленным производством, которому нужна воспроизводимость. "В правильно организованной компании, - подчеркнул преподаватель, - вы можете дать одну и ту же задачу двум разным программистам, и получить практически одинаковый код. Именно в этом состоит ваша цель". Преподаватель не произносил слов про средневековье и шедевры, но мысль его была вполне узнаваема: программист должен, как рабочий у конвейера, стать типовой деталью стандартного механизма. Интересно, что про качество кода при этом ничего не говорилось: в полном соответствии с идеями Ритцера (как я их понял из краткого изложения), предсказуемость и воспроизводимость тут не средство, а цель.

Я не знаю, получилось ли с этим у менеджеров, но сам подход тогда поразил меня размахом, достойным сэра Томаса Мора или Угрюм-Бурчеева. Уходящие в бесконечность правильные геометрические ряды одинаковых серых кубиков, в которых сидят взаимозаменяемые программисты, пишущие стандартный код. Они едят стандартную еду в стандартных Мак-Дональдсах, лечат их от типовых болезней типовые доктора (если два врача увидят одинаковые симптомы, они должны выписать одинаковые рецепты!), а взаимозаменяемые юристы оформляют им типовые разводы.

См. мультипликационную заставку к "Иронии судьбы".

Есть старый анекдот про то, как программистам прислали нового менеджера, который попробовал "навести порядок" и заставить всех работать с девяти до пяти. Программисты стали жаловаться, возмущаться, грозить уходом. В конце концов менеджера повысили в должности, а на его место наняли нового. При новом менеджере программисты перешли на привычный режим работы: с полудня до полуночи.

Я вспомнил этот анекдот, когда М. рассказала мне о проблеме, которую обсуждали на совещании на работе. Дело в том, что один из младших программистов - ярко выраженная "сова". Приходит и уходит он поздно. Но у них два раза в неделю получасовое совещание в 10:30 утра. И хотя парень живет в пяти минутах от работы, он все время опаздывает. А на последние два он просто не пришел: не успел. Возник вопрос, что с ним делать. Перенести совещание невозможно: у босса (кстати, бывшего программиста) день расписан.

В итоге решили подарить ему бегающий будильник.

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

Пошаговое прохождение показало, что все начинается с того, что Sweave выдает замечательное предупреждение:

Warning: '01_preparation.rnw' has unknown encoding: assuming Latin-1
Но исходный файл вовсе не в кодировке Latin-1: он обрабатывает полученные из России по-русски данные, и в нем есть процедуры типа
RussianToLevel <-  function(x) {
  x <- as.character(x)
  if (grepl("^нет",x)) return(1)
  if (grepl("^чуть",x)) return(2)
  if (grepl("^незнач",x)) return(3)
  if (grepl("^средн",x)) return(4)
  if (grepl("^сильн",x)) return(5)
  if (grepl("^очень",x)) return(6)
  return(NA)
}
В файле они превратились в такое:
RussianToLevel <-  function(x) {
  x <- as.character(x)
NA
NA
NA
NA
NA
NA
  return(NA)
}
Неудивительно, что на следующем шаге все вылетает.

Ок, вручную понабирал команды R, получил картинки, послал.

Затем стал думать, что же случилось. С момента, когда я делал эти картинки в прошлый раз, успел обновить R.

Почитал логи программистов. Замечательная запись:

[CHANGES IN R VERSION 2.13.2:] Sweave now knows about a few more Windows' encodings (including cp1250 and cp1257) and some inputenx encodings such as koi8-r.

Это случай так называемого вранья. На самом деле все в точности наоборот: раньше Sweave знала про эти кодировки, а именно в версии 2.13.2 перестала их извлекать из файла. Смена inputenc на inputenx не дала результатов.

Ещё немного экспериментов показало, что если указать кодировку явно, Sweave милостиво соглашается работать.

В итоге все вылечилось заменой в Makefile строчек

%.tex: %.rnw
    R CMD Sweave $<

%.R: %.rnw
   R CMD Stangle $<
на строчки
%.tex: %.rnw
    echo "Sweave ('$<', encoding='koi8-r')" | R --slave

%.R: %.rnw
   echo "Stangle ('$<', encoding='koi8-r')" | R --slave

И на что я, спрашивается, потратил день?!

Програм-м-м-мисты...

Tags:

Ребенок прислал ссылку. Это запись в журнале учета багов в Gnome, оставленная сыном программиста, исправившего баг.

Сам программист, Адриан Хэндс, страдал болезнью Шарко (латеральный амиотрофический склероз, он же болезнь Лу Герига). Из-за прогрессирующего паралича кистей рук он не мог печатать на компьютере. Он пользовался специальным устройством, которое преобразовывает сигналы азбуки Морзе в клавиатурные коды. На клавиши устройства он нажимал коленом (есть фотография Адриана за работой).

Патч, о котором идет речь, Адриан ввел в систему 31 декабря 2010 года. Это была последняя его программа: 3 февраля он скончался. Его последнее письмо сыну датировано 30 января: в нем Адриан сообщает, что баг объявлен закрытым.

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

Помимо основной работы и университета, я ещё подрабатываю консультациями. По просьбе одного из моих клиентов, подразделения Армии США, я зарегистрировался в базе данных федеральных контракторов. Так что я теперь поставщик федерального правительства.

При чем здесь революция? А при том, что не было бы американской революции, мы бы входили в Британское Содружество. И тогда я был бы Поставщиком Двора Её Величества — и нарисовал бы на своем вебсайте корону. А так — разве что лысого орла.

Жена посоветовала поискать клиентов в правительстве Канады.

Tags:

К вопросу о счастье

В фантастических романах главное это было радио. При нем ожидалось счастье человечества. Вот радио есть, а счастья нет. Илья Ильф, Записные книжки

В случайном разговоре на кухне (только не московской, а корпоративной, в офисе) вспомнился эпизод из моего детства. Я тогда был в классе восьмом и учился в Летней школе юных программистов в Новосибирске. Это, кстати, была замечательная штука, она многое во мне сформировала - и далеко не только в плане науки и программирования. Огромное спасибо учителям. Я так и не успел им сказать, как много они для меня сделали - а некоторым, как Геннадию Звенигородскому, уже никогда не успею.

Но вернемся к кухонному разговору. Мы программировали тогда на БЭСМ-6 в Главном Вычислительном Центре СОАН. Терминалов, естественно, не хватало, и на стене висели плакатики с правилами. Эти правила устанавливали приоритеты: школьник, студент, аспирант, кандидат и так далее - чуть ли не до Президента Академии Наук (хотя подробности я за давностью лет не помню - может, список заканчивался и раньше). При появлении пользователя с более высоким приоритетом текущий пользователь терминала был обязан завершить свой сеанс в течениe пяти минут и уступить место. Президента, да и рядовых академиков я, надо сказать, там не видел. Но студенты и аспиранты с кандидатами меня, бывало, гоняли. Это было очень обидно. И я мечтал о времени, когда у меня будет свой личный компьютер. Это мне казалось счастьем.

В данный момент у меня на столе три компьютера (точнее, два под столом и лаптоп в портфеле). По ssh я подключен ещё к пяти, а могу подключиться к нескольким сотням. Ну, а если считать другие протоколы: http, smtp, ftp..., - то счет пойдет на сотни миллионов.

Счастлив ли я? Хммм...

Наверное, да.

Совет консультантам

Собственно, не всем, а около IT-шным. Обещание "free lifetime support and bugfixes" клиентов, конечно привлекает. Ничего не скажу.

Но выходных у вас уже не будет.

Это я к тому, что клиент, получивший продукт в декабре 2008 года и приславший первый багрепорт неделю назад, в своем праве. Free lifetime support.

Хорошо, что ещё один совет: тщательно документируйте все, что делаете, и пользуйтесь version control, - я давным-давно себе дал. Иначе хрен бы я вспомнил, что там больше года назад ваял.

Tags:

Прекрасная иллюстрация к тому, что такое настоящий хакер. В последнем номере TUGboat статья Дениса Рёгеля (Denis Roegel, Spheres, great circles and parallels, TUGboat, 30 (1), 80--87, 2009). Он рисовал параллели и большие круги на сфере в программе METAPOST, и для точного построения ему нужна была трехмерная векторная алгебра. Но в METAPOSTе нет типа данных "трехмерный вектор". Рёгель заметил, что программа умеет раскрашивать рисунки, и цвет точки задается тремя параметрами в пространстве rgb (т.е. смешением красного, зеленого и синего). После чего он спокойно пишет:

let vector=color;
let Xp=redpart; let Yp=greenpart; let Zp=bluepart;

def dotproduct (expr Vi, Vj)=
  (Xp(Vi)*Xp(Vj) + Yp(Vi)*Yp(Vj) + Zp(Vi)*Zp(Vj))
enddef;

def vecproduct (expr Vi, Vj) =
  (Yp(Vi)*Zp(Vj)-Zp(Vi)*Yp(Vj),
   Zp(Vi)*Xp(Vj)-Xp(Vi)*Zp(Vj),
   Xp(Vi)*Yp(Vj)-Yp(Vi)*Xp(Vj))
enddef;

def norm(expr V) = sqrt(dotproduct(V,V)) enddef;
def normed(expr V) = (V/norm(V)) enddef;

и дальше строит свои чертежи.

Вот это и есть Настоящее Хакерство(TM).

Tags:

Happy birthday, Internet!

В сегодняшней New York Times интересная статья Стива Крокера, автора RFC 1. Этот документ, первый из серии интернетовских стандартов (недавно опубликован RFC 5519), датирован 7 апреля 1969 года. С некоторой натяжкой это можно считать днем рождения Интернета.

Стив рассказывает, как писался первый RFC (на самом деле - ночью в туалете). Почему была выбрана именно такая форма, и как она способствовала созданию культуры Интернета. Занятное и слегка ностальгическое чтение.

Когда наша компания выиграла тендер на то, что мы сейчас делаем, руководитель проекта сказал: "Мечта каждого инженера - построить что-то большое. Настоящее. Такое, что можно через много лет показывать внукам: 'Смотри, вот это сделал я!'". У Стива Крокера есть что показать внукам.

Tags:

Deadlines

- Чем отличается плохой программист от хорошего?
- К хорошему программисту на Новый год приходит Дед Мороз. А к плохому - Дедлайн.
Из старого анекдота

Обещал закончить один частный проект к понедельнику. Что-то не успеваю. Заказчик, однако - US Army. Неудобно страшно. Правда, с предыдущими заказами они меня тоже подводили, не реагируя неделями на мои вопросы. Но платили очень исправно.

Интересно, они меня теперь оккупируют?

Update: Получил schedule extension (т.е. продлили срок).

Tags:

Стандартная ситуация. Приходит программист с распечаткой. "Вот, считал по твоему алгоритму - чепуха выходит". Так вот, объясните мне, почему я физически не могу найти ошибку, пока он (в данном случае она) стоит надо мной, смотрит на меня честными глазами и ждет? Мычу: "Надо разобраться", и циферки никуда не складываются. И почему мне надо дождаться, пока она уйдет, чтобы посмотреть и написать ей: "Вот тут у тебя на входе угол, близкий к 450. Так как в промежуточных итогах косинус оказывается почти единицей, ты явно не тот угол в своей процедуре обрабатываешь"? Что за психологический блок такой?

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

Microsoft:RMS - 1:0

Сын на прошлой неделе съездил на программистскую конференцию в Монреаль. Среди прочих докладчиков там был и Столлман. После выступления он решил продать с аукциона пару вещей в пользу Free Software Foundation: сборник своих эссе и плюшевую антилопу-гну. Честно говоря, не всем в аудитории это понравилось: во-первых, там были в основном студенты, во-вторых, это было воспринято как коммерциализация выступления.

Перед моим сыном сидел Джуи Девилла, Developer Evangelist for Microsoft Canada (даже не знаю, как перевести название его работы - в общем, он за зарплату объясняет людям, какая хорошая штука Микрософт). Когда RMS выставил на аукцион гну, мой сын ткнул его в спину: "Ты должен выиграть этот аукцион!". Джуи начал торговаться и купил антилопу за 105 канадских долларов. Когда он поднялся на сцену, аудитория зааплодировала: все знали Джуи и понимали, откуда он. Для тех, кто не понимал, он на всякий случай продемонстрировал микрософтовскую корпоративную кредитную карточку. Столлман заметил, что даже деньги от Микрософта не смогут коррумпировать FSF. Тогда Джуи доказал, что не зря ест свой хлеб. Он повернулся и сказал в микрофон: "Присоединись ко мне, Столлман, - и мы вместе установим порядок в Галактике", - разумеется, голосом Дарта Вейдера.

Аудитория легла.

Кстати, сам Джуи описал этот эпизод в своем блоге. В нем реплика Столлмана звучит иначе, а мой сын фигурирует под гордым именем "Someone". "Видел я этого Некта..."

Лытдыбр: FSF

Во Free Software Foundation очередной обмен членских билетов. Новые билеты - на самом деле USB-шные карточки, с которых можно загрузить gNewSense. Вот такие:

На моей, конечно, номер не 0, как у RMS, но тоже достаточно достойный.

Загрузился с неё в компьютер на работе. Такой себе вариант Ubuntu. Вполне неплохой.

Разумеется, среди прочего там был клип Стивена Фрая :)

Есть такая история - программистский ужастик про то, как важно вычищать из кода отладочные подпорки. Дескать, в одном банке решили разослать письма самым богатым клиентам с предложением некоей новой финансовой услуги. Ну, банковский программист написал скриптик, который делал выборку из базы данных по критерию "сумма денег на всех счетах > порог", печатал соответствующий текст с адресом - все, как положено. Но он забыл дописать фрагмент, вставлявший имя клиента в обращение ("Dear John" или "Dear Mary"). Поэтому там осталась отладочная "рыба", которая, как оказалось, отражала мнение программиста об этих людях. Так что все "золотые" клиенты банка получили письмо, начинавшееся словами: "Dear Rich Bastard!"

Сотрудники кампании Мак-Кейна-Пейлин, уже отличившиеся проколом с разницей во времени, смогли ещё раз порадовать публику. В сетевой рекламе появилось объявление о выступлении губернатора Пейлин на дебатах. В нем цитировалось мнение, что она была прекрасна, это был её вечер, она была звездой. Мнение было подписано "Famous Person". Очевидно, рисуя рекламу, художник ещё не знал, с кем удастся договориться о таком отзыве, и нарисовал "рыбу". Которая и пошла в тираж.

Позже выяснилось, что договорились с Пегги Нунан. Что ж, будем знать, чего стоит мнение Пегги. Остался только вопрос, сколько оно стоит.

Что-то меня на лытдыбр потянуло... Ну ладно.

На эти выходные пришлось вспомнить программистскую молодость. Рабочие, прокладывая телефонную линию, случайно повредили телевизионный кабель, через который ко мне в дом Интернет идет. Я вызвал мастера, а пока решил выйти в сеть по телефону. На лаптопе есть модем, но я из спортивного интереса попробовал зайти с основного компьютера. В принципе можно было сделать forwarding через лаптоп, но это было бы не так красиво. Read more...Collapse )

Время от времени я вижу в ЖЖ записи с пометкой "Интересно только для программистов". Часто там бурное обсуждение. Иногда зависть берёт: вон сколько программистов собралось в сети!

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

Read more...Collapse )

Tags:

Сначала я хочу попросить прощения у комментаторов, пришедших ко мне на помощь после предыдущей записи. Я не осознавал, что риторический характер моих вопросов не очевиден. Честно говоря, в этой компании я работаю не первый год, и тут как-то знают, что я умею, а чего нет. Это к тому, чтобы вы правильно отнеслись к рассказу о том, как меня сегодня поймали на использовании служебных ресурсов в личных целях.

Я отправил на печать статью, о которой рассказал ygam. Придя через некоторое время на кухню, где у нас стоят принтеры, статьи я не нашел. А потом меня перехватил в коридоре возбужденный начальник: "Слушай, мне такую интересную статью на стол положили!" Я сказал, что это моя распечатка - очевидно, кто-то по ошибке занес её ему в кабинет. Мы поговорили об этой статье. Потом я её ещё пообсуждал с женой и друзьями. Так что тут ниже не только мои мысли, но и их.

Один из авторов статьи десятилетиями преподавал программирование, писал учебники. И оба автора часто сталкивались с ситуацией, которую знают многие опытные менеджеры. А именно, что программисты очень резко делятся на хороших и плохих - и пропасть между ними огромна. При обучении это проявляется в том, что есть люди, которые никак не могут преодолеть компьютерную премудрость - а есть те, которым на лекциях просто скучно, потому что все так просто. И середины практически нет. Эта ситуация почти уникальна. Да, есть люди с абсолютным слухом и те, кому медведь на ухо наступил - но большинство все же можно научить играть на пианино "Мурку". В математике ситуация близка, хотя, как кажется, не так резко выражена. Такое впечатление, что есть некая таинственная "способность понимать компьютеры", которой одни изначально обладают, а другие - нет. Эта способность, по словам авторов, плохо коррелирует с IQ, оценками, математическими способностями - поэтому интересно понять, можно ли её (или её отсутствие) выявить заранее. И тут авторам помогла случайность.

Read more...Collapse )

Программистское

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

Последовательно выяснилось следующее:

  1. Исправление бага требует полного переписывания этак процентов 60 кода. Помните, дети, что сказал Кнут: "Premature optimization is the root of all evil". То есть я слишком глубоко вовнутрь заложил раннюю и, как оказалось, вредную оптимизацию.
  2. После исправления бага часть новых тестов обрабатывается нормально. А часть нет. Расследование показало, что в алгоритме использовано не всегда верное предположение.
  3. Более глубокое расследование привело к контрпримеру: набору данных, для которого доказуемо, что никакой алгоритм не может привести к требуемому результату.

Решил поступить, как классический профессор математики у Пойа. Помните: "Если у вас не получается решить задачу, придумайте себе другую". Описал результат, который мой алгоритм даёт всегда, и именно его объявил требуемым.

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

А в остальном, прекрасная маркиза...

О подражании Кнуту

Один из распространенных сюжетов в фантастике - это землянин за штурвалом корабля пришельцев. Или наоборот - пришелец за штурвалом корабля землян. Решался он по-разному: от космической оперы ("Джон слегка нажал на педаль, и мощный корабль послушно лег на курс к далекой Земле") до юмористических вещей (масса примеров есть у Шекли, Пола Андерсона и других классиков "золотого века"). Гораздо меньше фантастов задумывалось над тем, что система управления - это отражение нашего мозга, нашей биологии, физиологии, нашей истории. Чужая машина нам будет прежде всего непонятна. Даже если мы сможем как-то заставить её слушаться наших приказов, это будет сопряжено с ежеминутным насилием над собственным мыслительным аппаратом. Нам нужно будет заставлять себя думать как какой-нибудь марсианский богомол.

Но зачем обращаться к фантастике? Разница между людьми тоже немала. В особенности когда речь идёт об "обычных людях" и гениях; я иногда подозреваю, что гении думают не просто лучше нас - а по-другому. Есть тонкая грань между талантом и гением. Талант - это "как мы, только лучше", а гений - это совсем другое, это иное существо. Было бы очень интересно понять, как отличается мое мышление от мышления другого (тем более - гения!) - хоть одним глазом подсмотреть. Но тут есть большая проблема. Read more...Collapse )

Мои инструменты

Замечали ли вы, как относится человек работающий, и свою работу любящий, к инструментам? Это не просто железки, купленные в ближайшем магазине. Это продолжение тебя самого. Хороший инструмент легко ложится в руку; с ним работается легко и быстро. Такой инструмент подбирают годами, отбрасывая не подошедшее и бережно храня какой-нибудь особенно удачный рубанок или молоток. Человек приспосабливает инструмент под себя, но и сам потихоньку приспосабливается к инструментам. Получается совершенно уникальное сочетание, глубоко индивидуальное - другому этот набор инструментов, скорее всего, не подойдет. Ему надо подбирать свой собственный, придирчиво решая, годится-не годится. Это важный выбор для любого, кто работой кормится: разница в качестве и скорости работы с подходящим и неподходящим инструментом очень велика.

Моя соавтор Л. - врач-невролог. Сколько у неё молоточков и камертонов, собранных по всему свету! "Вот этот я беру на обходы, вот этот - походный, он не оттягивает карман. А посмотри на этот - какой удобный, правда?"

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

Сегодня я хочу рассказать про свои инструменты. Поскольку я бОльшую часть времени работаю за компьютером, инструменты у меня - компьютерные. И пусть мой выбор покажется кому-то странным, кому-то нелепым или архаичным: это то, что я за полтора десятка лет отобрал для себя, и что хорошо ложится в мою руку. Не знаю, будет ли это интересно читателю, но я от перечисления своих любимых инструментов получаю несомненное удовольствие.

Read more...Collapse )

И даже в области балета

Сегодня посоветовал ivanov_petrovу поставить Flash Player. И заодно обновил свой. Обнаружил интересную вещь.

Обычно версия плеера для Linuxа отстаёт от версии Windows - иногда довольно значительно. Очевидно, разработчики вначале делают виндовскую версию, а потом её портируют. Но вот смотрю на http://www.adobe.com/productsflash/about/ и вижу, что версия для Linuxа имеет номер 9.0.31, в то время как для новых Маков и Windows - 9.0.28. Солярис и старые Маки с Windows вообще застряли на седьмом релизе.

Я правильно понимаю, что когда Adobe купила Macromedia, они перешли на Linux в качестве платформы разработки?

Tags:

О графиках

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

Есть куча программ визуализации, но фишка в том, что они исходят из каких-то моделей системы. На этапе, когда модели никакой нет, когда надо понять, что происходит, они помогают мало. Или скажем так: помогают мало мне; возможно, есть гуру, которые могут быстро и безболезненно объяснить таким программам, чего им надо и прогнать кучу идей. Я таких гуру не видел, но кто его знает.

А я графики генерирую просто: make, maxima (она умеет быстро мультфильмы делать, что очень полезно на самом-самом первом этапе), Perl, GNUplot или PSTricks, потом TeX. На коленке, да. Зато очень эффективно.

О патентах на алгоритмы

Есть мнение, что весомее всего о целомудрии говорят бывшие (и действующие) проститутки сотрудницы секс-индустрии. Они знают кое-что о предмете.

Я всегда выступал против софтверных патентов. Давал деньги FSF. Опубликовал несколько программ под LPPL и GPL. Очень, кстати, классно, когда устраиваешься консультантом: на вопрос об опыте берёшь их дистрибуцию Линукса и показываешь файлы со своим копирайтом. И хотя эти файлы, как правило, не имеют отношения к их работе (пара LaTeXовских пакетов), впечатление это производит.

Но вот сегодня со смешанными чувствами узнал, что компания, где я работаю, получила патент на нашу с ещё одним сотрудником старую идею (честно говоря, там 80% - сотрудника и не более 20% - мои).

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

Хотя, наверное, пожертвование FSF сделаю. Так сказать, замаливая грехи. И, возвращаясь к первому абзацу, теперь мои слова о том, что патенты на алгоритмы - зло, - будут весомее. Я знаю, о чём говорю: у меня у самого такой патент есть.

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

Эту историю мне рассказали в 1980 году на лекции в Новосибирской летней школе юных программистов. Я готов поверить, что она - апокриф; хотя бы потому, что людей типа Ш.-Б. за границу не так уж часто выпускали. К тому же я её записываю только сейчас, через двадцать пять лет, и вполне мог за это время какие-то детали забыть, а какие-то добавить. Впрочем, это не так уж плохо и вполне соответствует стилистике устного народного творчества.

Я не знаю, поймут ли нынешние молодые эту историю. Они привыкли обращаться с компьютером панибратски: ты ему сказал, он тебе ответил. Ты опять сказал, он опять ответил. Или даже не сказал: мышкой щёлкнул, как в анекдоте про подводную лодку ("какой там норд-норд-вест, ты рукой покажи!"). В героические времена народ писал программы ручкой на листах бумаги. Потом их несли девочкам в перфораторскую, и те превращали их в стопки карточек с дырочками - перфокарт. С перфокартами было связано много забавных историй, но о них как-нибудь в следующий раз. Затем эти стопки загружались в компьютер, тот гудел, а потом из него выползала длинная полоса бумаги - распечатка. Над ней сидели опять же с ручкой, исправляли ошибки - и повторяли процесс. В очень продвинутых местах стояли телетайпы: нечто вроде пишущей машинки размером с хороший стол. Ты что-то печатал на телетайпе, а он печатал в ответ. Если среди моих читателей есть ветераны, попробуйте вспомнить, сколько регистров было у советских рулонных телетайпов (5 очков), в каком регистре была буква "Щ" (10 очков) и что нужно было нажать, чтобы эту букву напечатать (15 очков).

Так вот, легенда рассказывает, что поехал Шура-Бура в Англию, где показали ему один из первых компиляторов алгола. Алгол тогда существовал в качестве описания языка в журналах и книжках, и англичане им страшно гордились. Шура-Бура сел за телетайп и стал печатать. Минут через десять хозяева предложили продолжить экскурсию по ВЦ. "Мне нужно ещё полчаса," - ответил Ш.-Б. Вежливые англичане стали ждать.

Через обещанные полчаса патриарх встал. А телетайп начал печатать следующий текст: "Ваш компилятор не умеет делать: [список]. Ваш компилятор неправильно делает: [список]." То есть за сорок минут Ш.-Б. прозвонил компилятор и проверил его на соответствие стандарту языка, который до того существовал лишь на бумаге.

Вот такая история из героических времён.

Сегодня был на семинаре: девочка моделировала работу кусочка сердца (кальциевые канальчики вблизи мембраны, если это кого-то интересует. Кстати, на крысином сердце: у человека там по-другому). Там, если аккуратно учитывать нужные эффекты, получаются чудовищно сложные уравнения, которые много народу численно мучают -- ну и она тоже добавила пару параметров и тоже мучила. Такая обыденная диссертационная работа.

Но я вот о чём задумался. Вот говорят об Intelligent Design, дескать, какой-то разум всё это укрепил и направил. Но что такое разум? Я грубо представляю себе, как мыслят люди, -- ну ладно, ладно, как мыслю я и те, с кем я общался. Человеку свойственно пытаться упростить задачу, разделяя её на доступные для обозрения куски, инкапсулировать эти куски и так далее. Собственно, развитие программирования дало, наверное, больше для понимания этих вещей, чем чистая психология: когда возникла задача научить много людей в массовом порядке совершать интеллектуальные действия, были открыты (или переоткрыты) многие вещи про человеческое мышление. Все эти "методики программирования" на самом деле есть попытки поделиться опытом успешного думания.

Но вернёмся к живому. Тут система устроена совсем по-другому. В ней всё сложно, переплетено и сцеплено. Очень трудно распутать. Она совершенно очевидно устроена не так, как умеет делать мой разум. Можно, конечно сказать: "Ну, это твой разум такой, а вот разум Бога совсем другой, и здесь мы видим Божественный разум". Но это полная бессмыслица: получается, что слово "разумный", "intelligent" тут понимается совсем иначе, чем в обыденной речи. С тем же успехом мы могли бы называть это "розовый дизайн" или "пятимерный дизайн" или "дизайн с запахом сливы". Эта штука имеет не больше отношения к розовому цвету, пятимерным многообразиям или запаху сливы в нормальном понимании таких вещей -- чем к разумности.

Вот тем-то и мне не нравятся ID people, что их тезисы даже не неправильны -- они бессмысленны. Слова: "В основе биологии лежит разумный дизайн" похожи на слова: "В основе биологии лежит глокая куздра".

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

Подумав, я понял, что это главная из нескольких вещей, которые я умею делать хорошо: взять носящуюся в воздухе идею и четко её сформулировать. Как писал анонимный рецензент об одной моей статье "with his characteristic lucidity...".

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

Наверное, именно поэтому я так люблю преподавание. Там умение хорошо формулировать очень на виду.

Update (с подачи lugovskaya):
Их либе ясность. Я. Их либе точность.

Profile

knot
scholar_vit
scholar_vit

Latest Month

August 2018
S M T W T F S
   1234
567891011
12131415161718
19202122232425
262728293031 

Tags

Page Summary

Syndicate

RSS Atom

Comments

Powered by LiveJournal.com
Designed by Paulina Bozek