Переезд отменяется
23.12.2014 Вторник 03:29
Переезд на WordPress отменяется. Пока это временное решение, но очень вероятно, что оно превратится в постоянное. Я слишком прикипел к старому интерфейсу, и интерфейс WordPress вызывает некоторое отторжение. Можно было бы, конечно, со всем разобраться и начать в полной мере использовать возможности новой платформы, но у меня нет на это ни сил, ни времени, ни желания. Особенно удручал в WordPress'е постоянный спам, который очевидными методами побороть не удавалось. Спам на моём движке отсутствует как класс ибо никому не приходит в голову искать в нём дыры.
Если после восстановления старого движка будут проблемы с написанием комментариев, пожалуйста, пишите мне на мыло (адрес внизу любой страницы сайта).
Бостон. Осень.
30.10.2014 Четверг 21:27
Сфоткал в воскресенье.
Об оптимальности
30.10.2014 Четверг 02:31
Вот ни для кого, наверное, не секрет, что программы пишутся не оптимальным образом. Во всяком случае, это должно быть очевидно всем программистам, то есть тем, кто видит код изнутри. С точки зрения конечного пользователя программа может выглядеть вполне исправно работающей. А те недостатки, которые в ней есть, могут казаться неизбежными вследствие несовершенства компьютерных технологий. Однако более чем двадцать лет работы в индустрии убеждают, что, мягко говоря, не всё так радужно. Я видел массу кривого, неоптимального кода. Справедливости ради скажу, что и сам, наверняка, не без греха, и кто-нибудь другой не раз и не два потешался над моим кодом. И речь не идёт об использовании каких-то крутых, математически оптимальных алгоритмов поиска, к примеру. Речь о простой культуре программирования. Как-то: учесть edge cases (ситуации, в которых входные параметры находятся на границе допустимых значений). Позаботиться об элементарной обработке ошибок, которая бы обеспечила наличие диагностической информации в случае возникновения проблем. Написание понятного, незавуалированного кода. Невпадение в крайности — одни люди на объектно-ориентированных языках пишут по сути в процедурном стиле, а другие, наоборот, впадают в какой-то архитектурный экстаз и порой наворотят такую безумную иерархию малопонятных и ненужных классов, что через некоторое время сами не могут в ней разобраться.
Вся эта неоптимальность может приводить к тому, что поддержка продукта занимает на порядки больше времени чем могла бы. Ну, например, я далеко не один раз сталкивался с ситуацией, в которой из-за отсутствия нормальной обработки ошибок, программа не даёт никакой осмысленной диагностической информации. Помню, ещё во время работы в одной из первый компаний в моей жизни мы с коллегами прикалывались, что программа выдаёт сообщение "В программе ошибка". И всё. Очень, блин, информативно. И ладно если сама программа простая — причину ошибки можно будеть найти относительно легко. Если же это навороченная система, которую писали десятки разных людей десяток лет, то можно потратить на порядки больше времени по сравнению с тем, сколько времени понадобилось бы, если бы имелось вразумительное диагностическое сообщение типа "Причина ошибки — в том-то и том-то. Чтобы исправить, сделайте то-то". Но кто-то забыл поймать исключение и записать сообщение в лог.
И вот у меня возникает вопрос. Ведь мы вроде имеем дело со свободным рынком. Значит программисты, пишущие неэффективный код, должны в результате естественного отбора заменяться теми, кто пишет хороший, эффективный, легко поддерживаемый код. Но ведь этого не происходит! Почему? Я размышлял об этом сегодня за игрой в настольный теннис (и ведь, что характерно, в рабочее время... ). И постепенно осознал, что за двадцать с лишним лет своей карьеры программиста, моё мировоззрение в области IT менялось. Если на заре своей практической деятельности я, со свойственной юношеству горячностью и категоричностью, недоумевал и возмущался по поводу того, как разного рода бредовый код живёт и процветает и никто особо не парится по этому поводу, включая не только его автора, но и начальство и даже владельцев бизнеса (то есть тех, кто тратит на это собственные деньги), то со временем я стал гораздо спокойнее к этому относиться. Ибо осознал, что мне, рядовому программисту, открыта лишь часть общей картины. И оптимизация кода совершенно необязательно может являться частью всего "большого" процесса. В конце концов я сделал парадоксальный, на первый взгляд, вывод. Индустрия IT не заинтересована в правильном, оптимальном, понятном коде! Более того, с моей любовью к обобщениям я пошёл дальше и пришёл к выводу, что человечеству не нужны оптимальные процессы! Это касается вообще почти любой области человеческой деятельности.
Тогда я задумался о том, почему так, и мне в голову пришло два объяснения. Я думаю, они оба имеют отношение к реальности.
Версия первая, паразитически-жульническая. Программы пишут одни люди — программисты, а деньги на это выделяют из собственного кармана другие — бизнесмены или чиновники. Так вот в интересах (небобросовестного) программиста сделать так, чтобы создать видимость того, что для решения задачи необходим большой объём работы — больший, чем если бы программист программировал оптимально, и так, чтобы выделяющий деньги об этом несоответствии не догадался. Таким образом, строя самому себе препятствия, а затем героически с ними расправляясь, можно обеспечить себя работой (а значит, доходом) на долгие годы. А в случае с выделением бюджетных денег и при условии наличия коррупции появляется фактор отката. То есть, и тому, кто выделяет деньги, и тому, кто их осваивает, становится выгодным выделить и освоить побольше при том же объёме работы. "И тут им попёрло".
Версия вторая, меценатская. По-моему, я где-то слышал интересную цифру. Для того, чтобы человечество могло обеспечить собственное существование, нужны результаты труда всего десяти процентов населения. Тех, кто делает то, что реально необходимо для поддержания жизни населения планеты, — строители, врачи, учителя, пахатели-сеятели и т.д. и т.п. В общем, те, без кого люди просто начнут загибаться от голода, холода и болезней. Часть специалистов из других профессий тоже нужна — нужны и те же программисты, чтобы автоматизировать какие-то процессы, и экономисты, и учёные, и даже (!) какая -то часть государственного аппарата, то есть власти, тоже нужна — кто-то же должен всем этим управлять и всё это контролировать и удерживать от скатывания в хаос. Но от этих профессий нужен совсем небольшой процент. Получается, что девяносто процентов людей попросту не нужны цивилизации! Куда же их девать? Их нельзя просто оставить без работы. Ибо начнётся сначала разброд и шатания, а потом и вовсе гуманитарная катастрофа.
Так вот, моя вторая версия заключается в том, что эти девяносто процентов человечества сознательно снабжают не очень нужной работой и не слишком придирчиво контролируют её выполнение именно с целью занять чем-нибудь такую ораву людей, чтобы она банально не пошла грабить и убивать. Это и проводит к тому, что, по большому счёту, всем пофиг, оптимально ты напишешь или так, что в твоём коде чёрт ногу сломит. Напишешь оптимально — возможно перейдёшь в десять процентов, занимающихся осмысленной деятельностью. Напишешь неоптимально — ну, будешь сидеть исправлять, честно, без грабежей, зарабатывая себе на кусок хлеба. Цивилизацию оба варианта устраивают.
И ведь это совсем не какие-то мои фантазии. Во времена Великой депрессии в Штатах создавались проекты, предназначенные исключительно на то, чтобы занять чем-то людей, не имеющие большого смысла и не являющиеся частью далекоидущих планов. Как сейчас помню, в начале века, где-то в Коннектикуте нам показывали среди лесов и холмов какие-то каменные башни, которые, как сказал экскурсовод, строились именно с целью занять людей. Практического применения башни не имели и не имеют. Кроме того, есть информация о том, что знаменитая система американских хайвеев тоже начиналась как такой проект. Но в отличие от башен, результат нашёл практическое применение.
Да что там башни в Коннектикуте! Возьмите Винды! Операционную систему Windows. Вот сидит несколько тысяч человек и пишет всё новые версии операционки, целесообразность создания которых вызывает большие сомнения. Убрали, блин, кнопку "Start"... Сколько на это ушло времени и денег? Я думаю, пара лет и где-то миллиард баксов. А теперь, насколько я слышал, в новой версии её вернули взад. Ну, вернуть, наверное, подешевле обошлось — где-нибудь четыре месяца и двести миллионов.
В общем, теперь, когда я вижу где-то какую-то неоптимальность, я непринуждённо подавляю в себе импульс возмущения и желания исправить. Ибо эта "неоптимальность" может кормить не один десяток людей (включая меня самого), а значит не так уж она неоптимальна.
Но сам я стараюсь писать правильно.
Между прочим...
30.10.2014 Четверг 01:11
29 октября 1969 — первая передача данных между двумя компьютерами в сети в рамках проекта ARPANET — рождение Интернета.Сегодня, как бы, сорок пять лет интернету.
Страховка в Шенгене
28.10.2014 Вторник 01:08
Вот не понимаю логики в следующем. Чтобы россиянину получить шенгенскую визу, он должен предоставить в консульство страны, в которой планирует получать визу, доказательство наличия у него медицинской страховки, покрывающей период его пребывания в Шенгенской зоне. В принципе, это понятное требование — никому не хочется лечить внезапно заболевшего туриста за свой счёт. Но тогда возникает вопрос, почему аналогичного требования нет для тех, кому не нужна виза для въезда в Евросоюз? Для американцев, например. Американец может заболеть в Европе точно так же как русский. И у него, точно также как у русского, может не оказаться страховки. И тогда его придётся точно так же лечить за счёт государства. Но с одного спрашивают страховку, с другого — нет. В чём логика?
Я сначала хотел написать, что это откровенная дискриминация, но потом подумал, что это даже не она. Это просто отсутствие логики и непоследовательность. Если существует ненулевая вероятность заболевания туристов на территории Евросоюза (а она, разумеется, существует), то при имеющемся раскладе Евросоюз будет терять деньги на американцах и прочих гражданах, которым не требуется виза. А на русских и других, кому требуется, — не будет. Европейцы так любят американцев, что готовы лечить их бесплатно? Интересно, что они ещё готовы делать бесплатно...
Собственно, вопрос касается не только ситуации с ЕС, русскими и американцами, а вообще любой страны, в которой одним разрешён безвизовый въезд (и, значит, отсутствует требование о предоставлении доказательства наличия страховки), а другим разрешён въезд только с визой (и, значит, надо показывать страховку).
Временная разница
27.10.2014 Понедельник 20:03
Впервые на моей памяти разница во времени между Восточным побережьем США и Московским времени — семь часов. Раньше всегда было восемь или девять. Россия и США стали ближе! Впрочем, ненадолго. 2 ноября Америка тоже сдвинет стрелки часов на час назад, и разница опять станет восемь часов.
Что? Где? Когда?
27.10.2014 Понедельник 19:53
Вчера поучаствовал в игре местного клуба "Что? Где? Когда?". Причём, это не самодеятельность местных энтузиастов (хотя без них бы тоже ничего не было, конечно), а игра, проводящаяся в рамках так называемого Открытого Всероссийского Синхронного Чемпионата по "Что? Где? Когда?". В нём участвуют команды со всего мира. Насколько я понимаю, только русскоязычные.
Ходили с друзьями. К сожалению, особо знаниями нам блеснуть, на мой взгляд, не удалось. Вообще, по мне так вопросы действительно сложные. Надо иметь очень немаленький кругозор, чтобы успешно на них отвечать. Но даже просто кругозора недостаточно, так как зачастую вопрос намеренно так запутан, что надо суметь выстроить ассоциативную цепочку, приводящую к ответу. Лично я вчера не всегда даже просто понимал сам вопрос — настолько путанные, сложные были формулировки. А ведь на то, чтобы понять вопрос и найти ответ, даётся стандартное время, как во взрослых играх на телевидении — одна минута. Разве что волчка нет.
Но вообще, это интересно, весело и познавательно. Попробую ещё походить. До первого канала российского телевидения я вряд ли доберусь, но хоть от умных людей, может, знаний каких-нибудь наберусь.
Кстати, мероприятие проводится в одном из корпусов знаменитого MIT (Массачусетского Института Технологии), самого престижного технического ВУЗ'а США. И хоть это американский, а не российский ВУЗ, но всё равно, всё похоже — аудитории, кафедры, доска, коридоры... Повеяло воспоминаниями из собственного студенческого прошлого в питерском Политехе...
Буквы в небе и другие бостонские наблюдения
26.10.2014 Воскресенье 05:18
Шёл я как-то по Бостону и вдруг увидел в небе... буквы из облаков. Я подумал, что либо: а)у меня глюки, либо б)я наблюдаю гигантскую флуктуацию (термин принадлежит перу Стругацких), когда происходит очень маловероятное событие — в данном случае событие, при котором облака естественным образом расположились так, что при наблюдении с земли обрвазовался текст. Оказалось, что это ни то и не другое. Под катом — разгадка.
Смотреть/читать
Чернобыль. Зона отчуждения
23.10.2014 Четверг 07:21
Телеканал ТНТ порадовал новым сериалом. "Чернобыль. Зона отчуждения". Слушайте, это же просто классное кино! Я теперь каждый день жду вечера, чтобы придя с работы домой посмотреть очередную серию. Вкратце суть в том, что группа подростков оказывается в "зоне" — закрытой территории города Припять, где стоит чернобыльская атомная электростанция, на которой в 1986 году произошла известная катастрофа. Выясняется, что в результате воздействия радиации, в зоне возникают устойчивые аномалии — всякие там пространственно-временные петли, энергетические контуры, фантомы и т.д и т.п. В общем говоря, идея явно навеяна произведением Стругацких "Пикник на обочине" (надо перечитать, кстати).
Фильм немного "подросткоориентированный". Ну хотя бы потому, что все главные герои — подростки, только что закончившие школу. Но в процессе просмотра об этом совершенно забываешь, ибо сюжет реально захватывает. А ещё, по-моему, очень классно снято как эти современные подростки проваливаются в прошлое, в канун дня чернобыльской катастрофы. Мне всегда было интересно, как люди, жившие тридцать лет назад, смотрели бы на сотовые телефоны, планшетные компьютеры и другие современные гаджеты если бы вся эта электроника каким-то образом оказалась в их времени. В этом сериале этот момент показан.
А ещё интересно, что чувствовал бы путешественник во времени, оказавшийся в Припяти за день до катастрофы. Вокруг — спокойная мирная жизнь, солнечный весенний день в застойном, но таком безмятежном Советском Союзе. И только ты один во всём мире знаешь, что через несколько часов мир изменится и уже никогда не будет прежним — он станет миром, в котором произошла ядерная катастрофа...
UPDATE.
Сегодня, вроде как, последнюю серию покажут. Вчера, под впечатлением от сериала, курил Википедию про аварию на ЧАЭС. Оказывается, причина катастрофы до сих пор неизвестна (и, видимо, вряд ли уже когда-то станет известна). Многочисленным расследованиям удалось выяснить только то, что, собственно, взрыв был вызван нештатным резким увеличением мощности работы реактора. Но неизвестна ни природа взрыва (была ли это цепная реакция, или взрыв пара или что-то ещё), ни, самое главное, что вызвало увеличение мощности реактора и явилось, таким образом, причиной катастрофы. Есть много версий, объясняющих произошедшее, но ни одна не является общепризнанной экспертным сообществом.
Цитадель
21.10.2014 Вторник 07:17
Читаю сейчас "Цитадель" Экзюпери. Там нет как такового сюжета, но зато есть огромное количество мыслей и нравоучений, высказанных в такой возвышенной манере притчи. По стилю напомнило мне "Так говорил Заратустра" Ницше, хотя Экзюпери читать несколько сложнее. Вообще, я даже не знал, что у Экзюпери такие произведения глубокие есть. Он у меня раньше ассоциировался исключительно с "Маленьким принцем". Это тоже, конечно, очень интересное произведение, но всё же сказка. А тут прямо философская притча.
Приведу несколько цитат. Первой приведу цитату, которая, на мой взгляд очень перекликается с моим собственным тезисом о том, что очевидность — критерий истины, и следующим из него выводом, что истина субъективна так же, как субъективна очевидность.
“Не считайте заблуждением ценности, отличные от ваших. Не считайте истиной то, что, по вашему мнению, безошибочно. Мы во власти очевидности, и тебе, например, очевидна необходимость подниматься вот на эту гору, но помни: твой сосед тоже во власти очевидности, когда старательно карабкается на свою. Очевидная для тебя необходимость лишила тебя сна, и такая же очевидность заставила вскочить раньше всех соседа. Очевидно для вас разное, но настоятельность очевидного одинакова и для тебя, и для него. ... Я не советую тебе спорить. Спор лишён смысла. Твой противник, исходя из очевидной для него картины, отвергает твои истины — он не прав. Не прав и ты — ты, исходя из своей очевидности, отвергаешь его истины.”
И ещё цитатки.
“Любимый цветок — это прежде всего отказ от всех остальных цветов. Иначе он не покажется самым прекрасным.”
“Но не облагородишься, покупая себе самые прекрасные вещи у лавочников и любуясь всю жизнь только безупречным. Облагораживает творчество.”
“Запомни: завоеватель, превратившийся в обывателя, погиб…”
“Унижает тот, кто низок сам.”
“Полученное укрепляет тело, душу питает отданное.”
“Вот почему нужно неусыпно следить, чтобы в человеке бодрствовало великое, нужно его понуждать служить только значимому в себе.”
С некоторого момента при чтении книги начинает возникать вопрос — что же именно автор понимает под "цитаделью"? Ещё он использует слово "царство", видимо имея в виду то же самое. Может быть дальше станет более понятно, что есть цитадель, но на данный момент у меня сложилось следующее впечатление. Цитадель — это система нравственных и культурных ценностей, наличие которой позволяет человеку подниматься над собой, развиваться, вместо того, чтобы скатываться в животное состояние. Как-то так.