Category: it

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

knot

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

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

knot

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

Дешевый 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

knot

О неудобстве американской налоговой системы для преуспевающих бизнесменов

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

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

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

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

comment count unavailablecomments

knot

О чудесах

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

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

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

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

knot

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

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

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

knot

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

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

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

knot

GNU tar

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

Ещё об индустриализации профессий

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

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

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

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

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

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

knot

О графике работы программистов

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

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

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

knot

О стремлении чинить, что не сломалось

Мне нужно было переделать пару картинок к постеру. Соавтор уезжает на конференцию, постер нужен срочно, плюс у меня ещё куча дел. Ну, захожу в директорию, меняю параметры, говорю 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

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

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