Disclaimer (last update: 2010-10-19)

f.f.o. :: /add

Александр Фенстер

blog at fenster.name fenster.name

New blog location: blog.fenster.name

Как несложно заметить, я пока забросил этот блог и переехал практически полностью в Google+. Это не означает, что здесь не будет ничего нового; это лишь означает, что здесь нужно слишком много всего изменить и переделать, чтобы мне снова стало интересно сюда писать.

В G+ я пишу достаточно регулярно — welcome!


[800] 28 августа 2013; 2:30

ЭТИМ ПОЛУКРЕСЛОМ МАСТЕР ГАМБС начинает новую партию мебели...

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

(похоже, короткие тексты я писать сюда разучился)


[799] 23 февраля 2013; 2:30

They ordered coffee, Tanya cinnamon toast, and Mel a fried egg sandwich.
Airport, by Arthur Hailey
Они заказали кофе, и к нему Таня — лимонный пирог, а Мел — сандвич с яичницей.
Артур Хейли. «Аэропорт». Перевод, кажется, Татьяны Озёрской.

(какой ещё лимонный пирог?)


[798] 1 октября 2012; 0:45
Нечасто бывает такое, что нагугленная программа вот так прямо сразу раз — и работает. Особенно когда эта программа делает что-то вроде «VPN для бедных»: каждый, кто когда-нибудь настраивал openvpn или, не дай Бог, pptp, понимает, что это не такая простая задача. А тут внезапно работающее «из коробки» решение, на запуск которого я потратил примерно минуту: прочитал самое начало мануала и скопировал команду запуска из него в консольку. Когда видишь такой класс, трудно удержаться и не написать про это пост — вот я и не удержался.

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


[797] 3 сентября 2012; 16:00
Последние несколько дней в сети активно обсуждают пост Мигеля де Икасы, в котором он рассуждает на тему проигрыша Linux в гонке за лидерство на десктопах пользователей. Пишет он, например, следующее (цитирую с небольшими сокращениями):

What I mean ... is that Linux on the Desktop lost the race for a consumer operating system. It will continue to be a great engineering workstation ... and yes, I am aware that many of my friends use Linux on the desktop and love it. But we lost the chance of becoming a mainstream consumer OS. What this means is that nobody is recommending a non-technical person go get a computer with Linux on it for their desktop needs (unless you are doing it so for idelogical reasons).
Тема линукса на десктопе мне всегда была интересна, поэтому я не могу не высказаться. (дальше)


[796] 6 июня 2012; 18:20
С удивлением обнаружил хэш своего достаточно нетривиального пароля LinkedIn в выложенной базе из шести с половиной миллионов SHA1-хэшей этих самых паролей. Радует, что без логинов, но нельзя быть уверенным в том, какие данные там на самом деле утекли. Так что, господа, поменяйте-ка поскорее свой пароль там (и прошу прощения, если я сегодня уже двадцать четвёртый, кто об этом написал).

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

Change Your LinkedIn Password Right Now!
Ссылку на саму базу не выкладываю: кому нужно, найдёт сам, не маленькие. В отличие, скажем так, от.


[795] 29 апреля 2012; 10:23
Когда читаешь где-то в сети о том, что в Домодедово все объявления дублируются на языке страны, в которую вылетает рейс, как-то не задумываешься об этом всерьёз, особенно сидя в секторе C, откуда вылетают обычно внутрироссийские рейсы. А тут вдруг приглашаются на посадку пассажиры на рейс до Алма-Аты, и внезапно мозг совершенно взрывается, услышав вот это (65 килобайт).


[794] 27 апреля 2012; 21:45
Судя по всему, «мелкий шрифт» в рекламе зачастую не читают даже сами рекламодатели — как иначе можно объяснить появление в тексте баннера на НГСе нового для меня термина «усорвмя»:


[793] 27 апреля 2012; 1:30
Я не играю в компьютерные игры (если не считать предустановленных на телефоне Java-игр, при помощи которых можно иногда убить время, например, в метро). Тем не менее, очень многому в своей жизни я обязан компьютерному гейм-клубу Dungeon, располагавшемуся в подвале моего шестого общежития и открывшемуся примерно в это время года — десять лет назад, в апреле две тысячи второго, когда я ещё жил в комнате общежития с двумя соседями (но без компа), регулярно ходил через лес в ИСИ заниматься всякими разными околокомпьютерными делами и просто шариться по интернету и считал, что более-менее умею программировать.

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


[792] 23 апреля 2012; 18:30
В «Чашке кофе» в стерильной зоне Толмачёво продают кофе и стоят удобные столики, но нет розеток для подключения ноутбуков. Розетки есть в соседнем зале ожидания, но туда нельзя принести кофе в чашке. При этом картонные стаканчики на вынос в «Чашке» отсутствуют как класс. В результате я сижу с ноутбуком и розеткой, но без кофе, а мог бы сидеть с ноутбуком и кофе, но без розетки — но нельзя выбрать все три варианта одновременно. Такой вот у них бизнес.

В итоге мой выбор — растворимый Nescafe в пластиковой кружечке из «Трёх пингвинов». Ну и мороженое, конечно, раз такое дело.


[791] 19 апреля 2012; 1:25
Внезапно решил чуть-чуть переделать тут всё, чтобы на конкретную запись можно было ссылаться не только как на #791, а ещё и как на /791/. Серьёзное достижение для 2012 года. В результате, конечно же, все RSS-ридеры радостно решили, что здесь появилось огромное количество новых записей, за что я прошу у всех прощения.

Вообще достаточно странно смотреть на свои решения 2003 года, которые, кроме того, принимались без расчёта на то, что здесь будет порядка 800 записей с RSS-фидом (тогда, страшно сказать, даже Google Reader ещё не сделали). Естественно, есть большое желание если не переехать на клёвый современный вебдванольный движок, то по крайней мере «сделать всё нормально». Но так как руки до этого всё никак не дойдут, так пока и буду жить на самописном полуживом движке без комментов.

Кстати, те записи, которые мне не лень расшаривать, можно комментировать в Google+.


[790] 18 апреля 2012; 15:54
Попробуйте, не пользуясь гуглем, найти на сайте ubuntu.com слово Linux.

Я могу понять, когда слово Linux не находится на заглавной страничке Debian: в конце концов, они (хоть это и стало для меня открытием дня) явно декларируют работоспособность и с линуксовым ядром, и с ядром от FreeBSD, и даже с GNU Hurd. Но тот факт, что и Ubuntu, и Fedora не афишируют свою линуксячью сущность, заставляет задуматься. Можно высказать догадку, что само слово Linux ассоциируется у маркетологов с чем-то непонятным, неработающим и ориентированным на суровых гиков, тогда как Ubuntu и Fedora — это просто fast, free и secure, без лишних подробностей. Ждём, когда эта же мысль придёт в голову создателям Linux Mint, CentOS и OpenSUSE, которые подробности о названии ядра своих систем пока не скрывают.


[789] 3 января 2012; 4:20
Здесь должен был быть пост про настройку TV-тюнера в линуксе, но в процессе его обдумывания я вспомнил, что давным-давно хотел подробно написать свои соображения о линуксе вообще.

(как обычно, длинный текст под катом)


[788] 8 декабря 2011; 4:10
Я преподаю программирование с 2003 года. Неотъемлемой частью занятий по программированию является собственно написание программ за компьютером с последующей сдачей их преподавателю. Самостоятельное, подчеркну, написание.

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

(интересно? дальше в формате pdf на info.fenster.name)


[787] 1 декабря 2011; 17:30

(о чём это я?)


[786] 15 ноября 2011; 17:10
Много раз говорил, что чем дальше Lenovo отходит от IBM, тем хуже становятся их ноутбуки.

IBM T41 и IBM T42p были для меня в своё время близки к идеалу рабочего ноутбука. Мы до сих пор используем их в Летней школе и проблем с ними никаких обычно не возникает. Удобнейшие клавиатуры, нормальное расположение блока кнопок Insert-Delete-Home-End-PgUp-PgDn, тачпад, трекпойнт и всё такое — в общем, действительно идеал для своего времени.

Lenovo T61, которым я сейчас пользуюсь на работе, ещё напоминает классические ThinkPad'ы. На нём даже имеется кнопка Win, которой на старых IBM'овских версиях лично мне не хватало. Народ на эту модель жалуется по мелочам, но меня она устраивает всем, кроме производительности: 64-битную Windows 7, которую у нас ставят на эти буки, железо определённо не тянет.

Новые модели — T420 и X220 — я пока ещё не щупал, но сегодняшний случай заставляет задуматься. Выяснилось, что у них клавиатура не отключается сразу же после закрытия крышки, а продолжает работать до тех пор, пока ноутбук не уснёт окончательно (это занимает несколько секунд). Как выяснилось? А очень просто: если за эти несколько секунд случайно нажать на закрытую крышку ноута, может нажаться какая-нибудь клавиша. Например, Delete. Например, при запущенном Outlook или PowerPoint. А потом люди думают: куда же это, интересно, пропал мой красивый слайд из презентации или только что пришедшее важное письмо?

Услышав о проблеме, даже сначала не поверил, что так бывает. Проверили с коворкером (у которого T420) — да, действительно: стоит чуть сильнее нажать на крышку, и нажатие срабатывает. Кто виноват — софт или железо — не совсем понятно, но в любом случае, если вы счастливый обладатель новых Lenovo — имейте это в виду и блокируйте винду перед закрытием крышки.


[785] 5 ноября 2011; 16:40
Недавно я в очередной раз сел за компьютер и внезапно осознал, что отстал от жизни.

(дальше много букв про софт и жизнь)


[784] 7 октября 2011; 9:45
Никогда не любил группу «Сплин». И вот сегодня, например, еду за рулём, никого не трогаю, а по радио включают песню про «Моё сердце остановилось». И фиг бы с ней, но внезапно замечаю новый странный вжжж-звук в машине и начинаю думать, что же такое у меня откуда отвалилось. Только после третьего или четвёртого появления вжжж-звука осознал, что его издаёт какой-то инновационный музыкальный инструмент в песне, и возненавидел «Сплин» ещё сильнее. Хуже этого — только когда какой-нибудь коллектив вставляет в свою композицию звук миполицейской сирены, и начинаешь, как дурак, озираться по сторонам, ища машину со спецсигналом, пока не осознаёшь, что сирена-то из колонок. Ненависть.


[783] 23 сентября 2011; 18:10
Курирование — это такой специальный процесс порчи кафе и ресторанов, характеризующийся тем, что блюда из мяса (например, стейк) в бизнес-ланче начинают заменяться блюдами из курицы. Приходишь в такое кафе пообедать, а там под вкусными названиями «Колбаски» или «Клаб-сэндвич» скрываются колбаски из куриного мяса и сэндвич с курицей. Поймите меня правильно, я ничего не имею против кур. Я просто хочу питаться мясом!


[782] 1 сентября 2011; 23:55
Первое место в рейтинге «самый необычный вопрос первокурсника на первом семинаре по программированию» занимает следующий заданный сегодня на второй минуте занятия вопрос:

Александр Геннадьевич, а тетрадка на семинары нужна тонкая или толстая?

С трудом подавил в себе желание сказать в ответ что-нибудь про клеточку и линеечку.

Кстати, вопрос серьёзнее, чем кажется. Правильный, как мне кажется, ответ на него — не нужно совсем никакой тетрадки: чем переписывать что попало с доски, лучше просто смотрите, слушайте, понимайте и задавайте вопросы. В конце концов, у нас не матанализ, да и литературы по предмету в сети достаточно.

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


[781] 1 сентября 2011; 23:45
Давно заметил, что сколько бы раз я ни перечитывал свои более-менее длинные тексты, при очередной проверке всегда хочется что-нибудь поправить. Даже в написанном несколько лет назад и проверенном с тех пор раз десять конспекте самого первого семинара по программированию только что нашёл (и исправил) одну опечатку, пару стилистических и одну фактическую ошибку. Сколько их там ещё осталось — страшно подумать. И это не считая тех неточностей, которые были внесены в текст сознательно для его упрощения и которые критично настроенный читатель радостно назовёт ошибками.

То же самое касается текстов задач для первого курса: я написал первую версию этого текста в 2005 году, корректировал его каждый семестр и по идее должен был за это время «вылизать» весь текст до состояния, близкого к идеальному. Но нет: перед каждой новой группой постоянно что-нибудь исправляю.

Пожалуй, надо заставить себя принять тот факт, что письменные тексты не могут быть идеальными: как ни старайся, а через несколько минут всё равно захочется что-то в тексте изменить. Один из коворкеров, с которым я некоторое время сидел рядом, постоянно подкалывал меня за постоянные «реколлы» написанных email'ов с целью поправить там пару слов или исправить опечатку: как только я узнал о существовании в Outlook возможности отозвать только что отправленное письмо, стал слишком часто её использовать. Надо как-то с этим бороться.


[780] 9 августа 2011; 15:00
Для каждой своей группы студентов я делаю небольшой сайтик, на котором выкладываю задачи, текущие оценки, объявления и прочую полезную информацию. Так повелось, что для таких сайтиков я использую не подкаталоги на fenster.name, а отдельные поддомены: 0201.fenster.name, 9113.fenster.name и тому подобное. Последнее время почему-то активнее, чем обычно, начал идти спам примерно такого рода:

Меня зовут Олег Тумбов, я решил обратиться, т.к. отметил что Ваша компания использует сайт 9114.fenster.name для привлечения потенциальных заказчиков. Моя работа — анализировать результаты выдачи поисковых систем и находить компании, которым может быть недостаточно входящих звонков от клиентов из Интернета.

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

Олег, Вы молодец и Ваш бот работает, прямо скажем, с изюминкой. Продолжайте нас радовать.


[779] 2 августа 2011; 15:15
Раньше была шутка про то, что любой пользователь линукса знает наизусть две комбинации клавиш: Esc :q! для выхода из vi и Ctrl+X Ctrl+C для выхода из emacs. Теперь появилось новое поколение линуксоидов — это люди, которые в ответе на вопрос на форуме могут написать дословно следующее:

I do not know what emacs is, but if it is a GUI program you may probably run it in the background by adding & behind the command.

Ещё несколько лет, и все основные «мэйнстримные» операционные системы будут неотличимы друг от друга. Собственно, это уже почти так. Пользователь может сколь угодно долго сидеть в линуксе, даже не зная, что такое командная строка, и совершенно не чувствовать себя ущербным. С одной стороны, это, конечно, хорошо. С другой — это полный фэйл: система пришла к тому, от чего (как мне казалось) хотела уйти.


[778] 25 июля 2011; 16:10
В результате долгого развития одной написанной на перле тулзы в её коде появилась функция, принимающая семнадцать параметров. Очередная правка добавила к ней восемнадцатый аргумент, причём не в конец, а в серединку. Функция вызывается из трёх мест в разных файлах; естественно, про одно из этих мест забыли, в результате чего параметры «поплыли» и в результате в переменную вместо названия тестовой конфигурации приехал полный путь к лог-файлу.

Проблема в прошлую пятницу свалилась на меня (хотя ни к тулу, ни к правке я отношения не имею, просто все в отпуске). На поиск причины ошибки File not found в нескольких десятках тысяч строк кода потрачено порядка часа времени, баг зарепорчен. Человек, который в итоге закоммитил исправление, заодно пронумеровал все восемнадцать параметров как в определении функции, так и во всех трёх местах, где она вызывается, с тем, чтобы в будущем подобных проблем не возникало. Перл, как говорится, такой перл, а энтерпрайз — такой энтерпрайз: иногда возникает ощущение, что пишем на фортране или используем какой-нибудь LAPACK, где «стопицот» однотипных параметров у функции — нормальная ситуация. А сделанные на коленке тулы — такие, вы понимаете, тулы.


[777] 19 июля 2011; 19:00
Какая-то новая фишка: MSDN суёт везде ссылки на некий Microsoft Translator, который на лету переводит статьи на всякие разные языки, включая русский (хотя я его об этом вроде и не просил). Вот и мне сейчас повезло: внезапно наткнулся на какую-то космическую окружающую среду:

Из сообщения об ошибке космической окружающей среды в программах MS-DOS

Что интересно, дальше по тексту environment space переведено более-менее корректно как «пространство окружающей среды» — это хотя бы можно понять (хоть environment здесь — конечно, никакая не «окружающая среда», а всего лишь набор переменных окружения).


[776] 4 июля 2011; 13:50
Напишу немного злобных слов про родной универ.

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

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

Не знаю, как вам, а вот мне первое, что заметилось на новом сайте — это урлы. Представьте, что я внезапно захотел прислать кому-нибудь по почте адрес какой-нибудь странички на сайте НГУ. Например, вот этой:

http://www.nsu.ru/exp/p676b004e7e61507830000000

И они все такие! Напоминаю, что на дворе XXI век, четвёртое июля две тысячи одиннадцатого года.

В недалекой перспективе планируется выпуск этой системы управления контентом как отдельного продукта компании.

Ребята, если дело так пойдёт — выбросите эту систему, пока не поздно, и перетащите новый сайт на друпал или любую другую популярную CMS. Может, конечно, я чего не понимаю в веб-программировании, но ни малейшего смысла в разработке своей такой системы с нуля я не вижу, если цель — сделать нормальный сайт, а не освоить побольше бабла в процессе. Конечно, может быть, она там внутри такая вся уникальная, что ни одна из существующих систем близко не подошла к ней по удобству, но... вы только посмотрите на урлы. Дальше, мне кажется, можно уже не глядеть.

Пост ненависти к программистам продолжу описанием ситуации с конкурсом в НГУ. Возьмём, к примеру, мехмат. Написать заявление можно на одно из четырёх направлений, или же сразу на несколько (хоть на все четыре). По состоянию на сегодня выложенный на сайте конкурс составляет от 6.14 до 7.02 человека на место, что для мехмата с его традиционным конкурсом 2-4 человека очень много. Но нужно чуть-чуть заглянуть в потроха (в списки абитуриентов и рейтинги), чтобы понять, откуда взялись большие числа. Оказывается, если абитуриент подаёт заявление на несколько направлений, его считают в конкурсе на каждом из них. К счастью, на сайте опубликованы рейтинги абитуриентов на каждое из направлений, по которым въедливый посетитель сайта, вооружившись калькулятором, может определить, что если сегодня внезапно все-все абитуриенты принесут оригиналы своих аттестатов и никто не уедет ни в МГУ, ни в МФТИ, то реальный (не липовый, без «мёртвых душ») конкурс составит порядка 1.55 человека на бюджетное место. Реально же он будет ещё меньше.

Как вы думаете, скольких потенциальных абитуриентов распугали большим «конкурсом» горе-программисты?


[775] 27 июня 2011; 15:50
Удержусь от эмоциональных преувеличений типа «такое вы можете увидеть только в Академгородке...», не буду цитировать старые шутки про таксистов с высшим образованием, а вместо этого напишу просто: вчера в кофейне Traveler's Coffee на Ильича две девушки-официантки обсуждали в свободную минуту функциональный анализ и теорему Хана — Банаха.

Понятно, что у студентов всегда встаёт вопрос заработка. Понятно также, что какая-то в этой работе есть даже, наверное, романтика — сам бы, может быть, поработал денёк ради интереса, чтобы посмотреть, как оно изнутри и наконец понять, сколько чаевых нужно оставлять в кофейнях. Интересно только, почему эти студенты не пытаются найти себе работу по специальности. А если уже конец третьего курса (когда там функан на мехмате), а работы на горизонте всё нет и нет, может, ну её, такую специальность? Если такие подработки являются массовой практикой, то это уже «надо в консерватории что-то менять».

Или это только программист — такая простая и востребованная работа, что любой соображающий третьекурсник может пойти и устроиться куда-нибудь кодить на PHP и ходить в тот же Traveler's, но уже в противоположной роли?


[774] 22 июня 2011; 2:00
Чтение «рекомендованных записей» в гугль-ридере особенно интересно тем, что автор каждой конкретной записи при чтении остаётся за кадром: его имя написано мелким синеньким шрифтом, и глаз на нём не останавливается. Подавляющее большинство рекомендованных записей — к сожалению, шлак, и настройка предпочтений тут ни при чём: просто, видимо, мир устроен так, что в интернете действительно подавляющее большинство записей — шлак. Тем интереснее бывает, пролистывая этот мусор «по диагонали» кнопкой n, наткнуться на интересный, написанный хорошим русским языком текст. А недавно я открыл для себя новую забаву: увидев такой текст, нужно попытаться угадать его автора, не глядя на подпись сверху.

Удивительное, кстати, дело: то ли я так удачно тыкал на кнопки «Нравится» и «Не интересует», то ли хороших авторов, пишуших связные тексты на общие темы, в интернете раз, два и обчёлся — но угадать очень часто получается с первого раза.

P. S. Хотите убедиться, что вы на самом деле не умеете играть в крестики-нолики «пять в ряд»? Пожалуйста. [info]neoon сотворил, пожалуй, одну из лучших онлайн-игр в этом классе из всех, что я когда-либо видел.


[773] 31 мая 2011; 2:00
На academ.info читаю новость:

В воскресенье, 29 мая, в 16:25 в садовом обществе «Отдых» (Нижняя Ельцовка) катавшиеся на мокике две девочки 15-ти и 13-ти лет попали в аварию. Как сообщается на сайте ГИБДД, старшая девочка, управлявшая мокиком, врезалась в стоящий другой мокик, за рулем которого сидел 13-летний мальчик.
Обе девочки получили тупые травмы органов брюшной полости.

Подумал, что последнее предложение стоило бы чуть-чуть сократить:

Обе девочки получили тупые травмы органов брюшной полости.

Хотя, может быть, корректнее было бы сказать так о родителях девочек, которые зачем-то покупают своим детям эти адские агрегаты. Вспоминается, что в моём детстве у одного пацана на даче (лет тринадцати) тоже был мокик. Был он у него ровно до тех пор, пока пацан однажды во что-то не въехал и чудом остался почти целым, не считая нескольких царапин. После этого родители одумались и мокик внезапно куда-то исчез (а пацан, соответственно, перестал чувствовать себя мегакрутым). Думаю, что и у этих девочек после аварии мокик внезапно отобрали. Почему нельзя было это сделать раньше — непонятно.


[772] 23 мая 2011; 22:00
Близится сессия, а значит, у нас в ближайшей программе новые истории студенческих фэйлов. Stay tuned!

И вот одна из них. Пришлось мне в этом году принимать зачёт на первом курсе ФИТа у всего потока (60+ человек). Понятно, что когда студентов много, а я один, зачёт является некоторой формальностью: нельзя же за несколько минут заглянуть человеку прямо в душу и понять, действительно ли он выучил Си или умело притворяется. Задаю пару вопросов, даю пару простых задачек и отпускаю студента, если он адекватно отвечает, с автографом в зачётке. А из формальностей — необходимость сдать одиннадцать «пятиминуток», которые (по идее) пишутся прямо в конце лекции, но если пропустил занятие или написал чушь — надо сделать и сдать.

Вот сдаёт, значит, девушка одну такую пятиминутку. На листочке (хотя разрешено было долги высылать по email) написана программа на Си, функция main которой выглядит ровно следующим образом:

int main()
{
    f(1);
    getchar();
    getchar();
}

Забудем даже про отсутствие return 0 в конце, речь не о нём. Речь о гетчарах.

Практика ставить один (не два!) вызов getchar() в конце программы сложилась у нерадивых студентов, которые в Visual Studio запускают программу кнопкой F5 (режим отладки). При этом окошко программы закрывается сразу после выполнения, и посмотреть, что программа напечатала, не удаётся. Правильное решение проблемы — запускать программу при помощи Ctrl+F5, тогда после окончания работы программы появится надпись Press any key to continue и окно не закроется, пока эникей не нажат. Ну либо вообще работать в линуксе, где такая проблема вообще не возникает. Однако правильное решение некоторым студентам неизвестно или кажется слишком сложным, поэтому они втыкают в конце программы getchar(), требуя тем самым от пользователя нажать Enter перед автоматическим закрытием окошка.

Но в нашем случае есть целых две проблемы. Во-первых, гетчара два. Во-вторых, программа написана ручкой на листочке. Я никогда не видел человека, который при написании программы ручкой на листочке заботился бы о том, чтобы если написанная программа будет запущена кнопкой F5, пользователь увидел бы результат вычисления и нажал бы Enter для закрытия окошка. Причём для гарантии (а вдруг не сработает, на листочке-то!) вызов getchar() лучше повторить, чтобы уж точно не ошибиться.

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

Взял у другого студента ноутбук со студией и предложил студентке написать там Hello World. Она написала программу, причём безо всяких getchar(), и совершенно машинально запустила её, нажав Ctrl+F5. Из чего следует, что привычки нажимать F5 и писать в конце getchar у неё нет в принципе. О чём она думала, когда переписывала эти строчки, остаётся непонятным.

Зачёт, кстати, в итоге всё равно поставил.


[771] 11 апреля 2011; 19:10
Не очень слежу за процессом разработки Perl 6, но не могу не процитировать одну фразу отсюда:

But why call it err?
Well, the // operator looks like a skewed version of ||, so the low-precedence version should probably be a skewed version of or. We can't skew it visually (even Larry thought that using italics would be going a bit far), so we skew it phonetically instead: or -> err.

Дело в том, что сегодня я убил час на следующую проблему. При переносе на FreeBSD поломался небольшой перловый скрипт (не мой), в котором была объявлена функция err. Использовалась она до и после объявления, что вообще-то не является ошибкой в Perl, но только если ваш Perl 5.8.9 на FreeBSD не собран с патчем defined-or, который не только добавляет новый модный оператор //, но и определяет ему символьное имя, и имя это — err. В результате err ниже объявления функции понималось корректно, тогда как выше рассматривалось как оператор defined-or со всеми вытекающими последствиями.

Нет, ну ведь всё логично, да? &&and. ||or. Как назвать //? Да чего там думать, пусть будет err. Пускай люди помучаются.

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


[770] 1 апреля 2011; 23:15
Сегодня, первого апреля, у нас во дворе упала ёлка. У поставленной в конце декабря (перед Новым годом) на детской площадке новогодней ёлки подтаяло основание (снежный куб), и она повалилась на землю вместе с металлической опорой. Думаю, теперь новогодние праздники можно считать практически законченными.

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


[769] 26 января 2011; 0:10
В Летней школе юных программистов 2005 года, которая проходила на базе «Красная горка» недалеко от Академа, произошла одна история, которую я неоднократно с тех пор рассказывал. Однажды дети поймали шушпанчика бурундучка и давай его рассматривать и гонять по большой картонной коробке. Бурундучок, естественно, в итоге несильно цапнул одного десятиклассника, которого тут же посадили в машину и повезли в Академгородок ставить укол от бешенства. К сожалению, дети не научились на чужой ошибке: несмотря на запрет, игры с бурундуком продолжились, и в итоге, пока машина возила десятиклассника туда-сюда, бурундук укусил ещё одного ребёнка, которого пришлось везти ставить укол сразу же после того, как из Академа вернулась первая укушенная и уколотая жертва.

Для меня этот десятиклассник с тех пор так и был «тем самым школьником, которого в ЛШЮП укусил бурундук». А тут недавно смотрю LinkedIn и вижу, что тот самый школьник, которого в ЛШЮП укусил бурундук, успел закончить НГТУ и работает, чёрт возьми, в Яндексе. Укусил бурундук. Бакалавр. В Яндексе. До сих пор не могу понять, как время может так быстро лететь.


[768] 21 января 2011; 18:15
Недавно готовил первокурсникам задачи. Одна из задач — определение количества дней, прошедших между двумя датами. Чтобы вставить в условие какой-нибудь пример, написал маленький скриптик на перле и с его помощью выяснил, что 21 января мне исполняется ровно 10000 дней. Так что сегодня у меня такой своеобразный день рождения. Следующая более-менее круглая дата 11000 будет ещё только через три года, а до двоично-круглой 16384 вообще ещё жить да жить.

Update: или завтра. Непонятно, считать дни от единицы (тогда 10000-й сегодня) или от нуля (тогда завтра). Впрочем, не так уж это и важно.


[767] 19 января 2011; 1:15
А сегодня я поделюсь с вами грустными мыслями о программировании.

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

Но, как обычно, есть небольшое «но».

Сейчас мне кажется, что система 2008 года себя исчерпала. Конечно, мне как автору не составляет никакого труда допиливать некоторые фичи и я это регулярно делаю: если бы система была настоящим продуктом, сейчас бы она имела какую-нибудь версию 1.16 или, возможно, даже 1.17. Проблема в другом: после пяти семестров использования я наконец-то понял, какую функциональность на самом деле мне хочется иметь, как действительно правильно спроектировать такую штуковину и как приятно будет работать с настоящей, правильной, идеальной системой учёта студенческих оценок версии 2.0.

Почему же нельзя было сделать всё правильно с самого начала? Глупый вопрос: в августе 2008 года я и сам не знал, как сделать всё правильно, и даже если бы я посидел день или два, прикидывая use cases будущей софтины, я вряд ли смог бы продумать всё. Есть и другой момент: если бы даже я тогда каким-то волшебным образом сразу придумал правильные use cases, я бы посмотрел на объём проектируемой системы и не стал бы ничего писать, испугавшись долгого кодирования: всё равно не успел бы к первому сентября закончить. Да и сейчас, обдумывая все модификации, я не могу заставить себя взяться за глобальную правку кода, потому что менять придётся, кажется, всё или почти всё (в умных книгах описан «эффект второй системы», и здесь мы, кажется, видим именно его), а в феврале надо начинать новый семестр с новыми группами. Да и денег мне за эту работу никто не платит, так что...

Получаем проблему номер один. Сразу и правильно не бывает. А позже, к сожалению, зачастую проще всё переписать (но это нечасто возможно сделать).

Идём дальше. Посмотрите ещё раз на табличку по ссылке выше. Она раскрашена в несколько цветов по простому правилу: несданные задачи выделены красным, если текущего количества сданных задач не хватает для получения зачёта; жёлтым, если их хватит только на «троечку», и так далее. Хуже того: двоим студентам, формально претендующим лишь на «четвёрку», я нарисовал «пятёрку» авансом. Теперь только представьте возможный GUI или конфигурационный файл для настройки этого поведения. А если система оценок не пятибалльная? А если хочется чуть-чуть изменить правила? А если... А ведь это только одна маленькая фича.

Естественно, у меня нет никакого GUI для настройки этого раскрашивания. Я автор системы; меня не заломает написать несколько строчек кода, которые раскрасят именно эту табличку именно для этой группы. Для другой группы будут другие правила и другой код. Я автор и я умею программировать. К сожалению, считается, что «простой пользователь» имеет право программировать не уметь.

Проблема номер два. Система, претендующая на универсальность, либо имеет огромное количество «галочек» в настройках, либо позволяет пользователю программировать. Либо (вспомним Microsoft Word) и то, и то.

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

P.S. Менеджмент проектов — совершенно не моя тема, но вот что-то захотелось написать.


[766] 17 января 2011; 10:10
Интересно, когда drom.ru в качестве капчи предлагает ввести русское слово «идиот», он как бы что хочет мне сказать?


[765] 2 января 2011; 20:15
Не могу не написать о том, что 31 декабря 2010 года и 1 января 2011 года я наконец-то впервые в жизни посмотрел «Иронию судьбы» подряд, от начала и до конца. Хоть и в фоне, но зато не кусочно-непрерывно, как в предыдущие много-много новогодних вечеров. Кстати, что особенно удивительно — фильм-то понравился (даже несмотря на то, что сам Мягков мне никогда, ни в одном фильме, не нравился, и «Ирония», как старая, так и новая — не исключение).


[764] 31 октября 2010; 23:40

Важно: При установке часовых интервалов (для «родительского контроля» и разрешённого времени отправки уведомлений) нужно учитывать, что границы интервала включают в себя полный час после указанного времени. Например, если Вы хотите заблокировать интернет-трафик с 9:00 до 18:00, следует указать интервал 9-17.

Это, господа, один хорошо известный в академгородке интернет-провайдер реализовал подписку на SMS-нотификации о различных событиях, а я тут же решил на них подписаться. Ощущение такое, что программист сэкономил несколько минут, не сделав нормальный разбор интервала времени, а потом (когда несколько клиентов наступили на грабли) не программиста пнули, а вместо этого техрайтер получил задание написать абзац с пометкой «Важно» в разделе никем и никогда не читаемой документации.

Сам визард настройки нотификаций, впрочем, тоже сделан так, что мне сразу живо вспомнилась часть нижегородской лекции Дмитрия Сатина про марсиан, проектирующих интерфейсы для землян. Чего стоит надпись мелким шрифтом «Чтобы активировать этот номер, нажмите здесь», при этом слово «здесь» написано тем же чёрным цветом, что и остальной текст, и не подчёркнуто — зато под этой фразой есть кнопка «Применить», нажатие на которую отправляет форму, но номер не активирует. Всё вебдванольно: переходы между страницами визарда сделаны при помощи jQuery (на теги <a> динамически навешаны события onclick), но ссылки при этом подчёркнуты не пунктиром, а сплошной линией; при этом где-то в коде JavaScript в файрфоксе вылетает исключение и поэтому ссылки не нажимаются — чтобы создать нотификацию, пришлось запускать Internet Explorer. Естественно, всё написанное выше я понял, уже почитав исходники страницы, а до этого секунд 20 судорожно тыкал по ссылке, не видел никакой реакции браузера и пытался понять: то ли у меня лыжи не едут, то ли что.

В общем, молодцы, что сделали нотификации, но надо же хоть чуть-чуть нервы пользователей беречь.

Кстати, саму идею визарда, в котором формируется предложение «сделать что-то, затем сделать нечто и положить всё это туда-то» и щелчок по подчёркнутому тексту открывает выпадающий список для выбора и подстановки параметра, я впервые увидел в Outlook в настройках фильтров для писем. Стоит сказать, что там это сделано вполне удобно: тыкаешь, куда надо, и не задумываешься. Здесь, судя по всему, хотели сделать нечто похожее, но пока получилось не очень.


[763] 18 октября 2010; 1:10
Съездил на прошедшей неделе в командировку в Нижний Новгород (до Москвы самолётом, от Москвы до Нижнего «Сапсан»; обратно по той же схеме). Успел немного походить по Москве и совсем немного по Нижнему, но банально рассказывать про прогулки не вижу смысла: оба города есть в панорамах Яндекса, которому, кстати, большое спасибо за карты; в незнакомом городе они очень помогают. Поговорить хочется не про прогулки, а про Wi-Fi.

В Москве заходил поесть еду в разные места три раза. Все три раза бесплатный вайфай был и работал. В Домодедово, где сидел в ожидании обратного рейса, вайфай тоже был (даже два на выбор: от МТС и от Билайна). И в гостинице в Нижнем, где я останавливался на две ночи, бесплатный вайфай был, и всё это очень хорошо. Однако совершенно не могу понять, почему, делая в заведении бесплатный интернет, хозяева помещения не могут ещё чуть-чуть позаботиться о посетителях и провести чуть-чуть больше обычных розеток 220 В. Распихать их по стенам, под столами, ещё где-нибудь. Как бы это облегчило жизнь — словами не передать. Даже в гостинице та же фигня: стол письменный стоит, но чтобы ноут воткнуть, надо залезть под стол и настольную лампу выткнуть — других розеток нет.

В «Сапсане», который сам по себе очень клёвый, розетка в моём вагоне (шестом) нашлась одна, за спинкой места номер 4. Возможно, в противоположном конце вагона есть и другая, не проверял. Но места 3 и 4 благодаря ей весьма козырны. Хотя вайфая в поезде, конечно, нет (точнее, одна закрытая сеть ловится, но непонятно, с каким ключом к ней подключаться — возможно, к ней КПК проводников подключены), телефон ловит еле-еле (то ли от скорости, то ли вагоны из чего-то странного сделаны), так что розетка — так, телефон подзарядить или фильм с ноута посмотреть. Кстати, в «Сапсан» берите с собой свои наушники: от выдаваемых бесплатных через 2-3 часа уши болеть начинают, а музыку слушать хочется всю дорогу. Джек там стандартный.

P.S. Кстати, поел у Лебедева. Клёвый ресторан (теперь, как я понимаю, уже кафе, а не ресторан), хороший комплекс.


[762] 29 сентября 2010; 18:10
Одна строчка студенческого кода:

int gJIuHa;

[761] 24 сентября 2010; 12:10
Цитата из FAQ сайта Всероссийской переписи населения 2010 года, которая тут скоро нагрянет. Выделение жирным моё.

5. Можно ли переписаться по Интернету или по почте?
Нет, Федеральным законом «О Всероссийской переписи населения» определен метод проведения переписи — путем опроса населения и заполнения переписных листов при обходе жилых или иных помещений, в которых проживают (пребывают) опрашиваемые лица. Существует также возможность пройти перепись, позвонив в переписной участок или посетив его лично.
Что касается Интернета, то есть ряд причин, по которым пока невозможно использовать его при переписи населения. Во-первых, по тем или иным причинам, он доступен далеко не всем категориям населения: не у всех есть доступ к сети Интернет, не все владеют навыками пользования электронной почтой и т.д. Во-вторых, при использовании Интернета возникает проблема обеспечения защиты сведений, сохранение их конфиденциальности: к вашей почте могут получить доступ посторонние люди. Кроме этого, нет гарантий того, что анкету заполнил именно тот человек, который ее прислал, а не посторонние люди. Или может возникнуть путаница, когда члены одной семьи на одного человека пришлют несколько экземпляров заполненных переписных листов. Когда же перепись проводит переписчик по адресам проживания, то этого удается избежать.

Отпусти меня, чудо-трава! Что за чушь? Особенно про сохранение конфиденциальности (да-да, писать ручкой на бумажке и отдавать лист не пойми кому по-любому более конфиденциально, чем какие-то там https и цифровые сертификаты). Ну и про гарантии того, что заполнил конкретно тот человек: учитывая, что переписчик не имеет права требовать предъявления каких-либо документов...

Мне кажется, что если бы целью переписи была перепись, а не перепись и «распил бабла» на неё, то вместо переписных листов каждому переписчику выдали бы Eee PC с предустановленной софтиной. Сэкономили бы вагоны времени на ручном сканировании листиков. Людям, зарегистрированным на госуслугах, вполне можно разрешить переписаться через этот сайт. В конце концов, у нас в стране уже можно намного более важные вещи, типа заказа ИНН и оплаты различных счетов, делать через интернет, и понять, почему Федеральным законом предусмотрены только допотопные способы переписи, у меня пока не получается.

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


[760] 14 сентября 2010; 0:05
Не могу молчать, чувствую необходимость поделиться. Проверка студенческих работ (пятнадцатиминутная контрольная на всём курсе) всегда заставляет думать о вечном, и можно привести не один и не два примера смешного студенческого кода, но у нас же тут, действительно, не daily student WTF, а нормальный блог. Поэтому пример студенческого кода будет всего один, но очень серьёзный и, я бы даже сказал, философский. Вот текст задания:

Задание 2. Напишите функцию, принимающую параметром строку и возвращающую количество символов в ней (аналог функции strlen). Пример: результатом strlen("abcd") является 4.

А вот и решение студентки:

int f(char *x)
{
    return (strlen(x));
}

А главное — не прикопаешься ведь, чёрт возьми.


[759] 7 августа 2010; 17:50
Во всех новостях сообщают о том, что проект закона «О милицииполиции» выложен на сайте zakonoproekt2010.ru. В новостях почему-то не сообщают других интересных вещей, которые легко узнать, воспользовавшись сервисом whois:


[758] 2 августа 2010; 7:40
В лукойловском бесплатном журнальчике некий автолюбитель Борис двадцати двух лет от роду щеголяет знанием английского:

Ведь и сейчас есть в городе автомобили со всякими наклейками на лобовое стекло типа «Хулиган», «Лёха», «Hunter behind heads»...


[757] 8 июля 2010; 0:35
Прочитал эту фразу в заметке на Ленте, не могу не поделиться.

Экскаваторщик Петров немного обижен на своих родителей за то, что те дали ему такое странное имя — Экскаваторщик.

Просто гениально.


[756] 5 июля 2010; 17:50
Сегодня начались сразу две Летних школы: юных программистов и школа для студентов на работе. Начало последней ознаменовалось тем, что в бесплатных кофейных автоматах в офисе внезапно кончилась вода. Во всех. Давно, наверное, студенты не пили натуральный кофе.


[755] 12 июня 2010; 0:45
Я впервые написал программу на «взрослом» языке программирования — Паскале — в восьмом классе (1995 год). До этого было только рисование в «Кенгурёнке» — тогдашнем аналоге Logo. Вероятно, будь у меня в то время компьютер дома — всё сложилось бы иначе, но всё произошло так, как произошло: граница чёткого понимания того, как работает ЭВМ, для меня до сих пор проходит где-то между компилируемыми языками высокого уровня и тем, во что они компилируются. Я только примерно представляю формат объектника и исполняемого файла и я ни разу в жизни не написал ни единой строчки кода ни на каком языке ассемблера (хотя читать листинги, конечно, приходилось по разным поводам достаточно). Я уже не говорю про устройство процессора (как там физически байтики бегают) — тёмный лес. Не то чтобы я не мог во всём этом разобраться — нет, просто не вижу в этом особого смысла.

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

К сожалению, мир развивается очень быстро. Чувствовать свою неполноценность от незнания команд x86 наизусть я перестал ещё на первых курсах, потому что из арсенала программистов внезапно пропала такая вещь, как ассемблерные вставки. С развитием веба на первый план вышли языки ещё более высокого уровня, что, само собой, подвинуло чуть вверх «границу понимания» у очередных начинающих. Сейчас от таких бывших начинающих всерьёз можно услышать предложения начинать обучение программированию с питона или руби (большую чушь, как мне кажется, сложно себе представить).

Я предполагаю, что через несколько лет в софтверные компании будут устраиваться программисты, которые будут считать, что работа со строками столь же проста, как работа с числами; что встроенные в язык регулярные выражения были всегда; что передавать данные от программы к программе, да и вообще хранить их нужно в формате XML; что для создания простой формочки, отсылающей данные на сервер, необходимо городить монстра с jQuery, ведь уже сейчас лишь малая часть «веб-программистов» понимает, что на самом деле делает браузер, и может самостоятельно «поговорить» с веб-сервером при помощи телнета. Год назад интёрн, делавший на каком-то там ASP веб-интерфейс к некоторой тулзе, задал мне вопрос, из которого явно следовало, что человек совершенно не понимает, как передаются данные между браузером и HTTP-сервером и какими способами можно сохранить данные между подключениями: язык и среда слишком хорошо скрывают такие низкоуровневые вещи.

Буду краток. Индустрия в опасности.

Нужно ли объяснять, почему я очень скептически отношусь к идее замены C на какой-либо другой язык на первом курсе?


[754] 13 мая 2010; 15:30
Перед каждой зачётной неделей блог на некоторое время превращается в локальный филиал The Daily WTF. Могу только извиниться перед нормальными людьми (не айтишниками), которые всё ещё читают меня, потому что нельзя не описать ошибку в студенческой программе, которую я сегодня нашёл при проверке.

Первое задание у ФИТа в этом семестре — сделать bc-подобный целочисленный (int) калькулятор с поддержкой переменных. Данный конкретный студент потратил довольно много времени на поиск и устранение всех утечек памяти и обращений за пределы массивов (чистый прогон valgrind'ом — одно из требований для сдачи в этом семестре) и наконец пришёл сдавать окончательный вариант программы. Проверяю (сразу под валгриндом) и вижу следующую странность (жирным шрифтом показан мой ввод):

5-3
2
3-5
==27846== Invalid read of size 1
==27846== at 0x80492E3: hash (vars.c:12)
==27846== by 0x8049407: GetValue (vars.c:51)
==27846== by 0x80490A0: main (main.c:115)
==27846== Address 0x4194864 is 0 bytes after a block of size 4 alloc'd
==27846== at 0x4024C4C: malloc (vg_replace_malloc.c:195)
==27846== by 0x8049034: main (main.c:103)
==27846==
-2

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

$ ./calc
6513248+1
6513249           # простые примеры работают
ab=5
ab+1
6                 # и переменные тоже работают,
abc=55            # но после такого присваивания
6513248+1
55                # начинают происходить странные вещи,
6513248+2
6513250           # хотя всё остальное в порядке!

Дело в том, что товарищ при работе с переменными сохранял и обрабатывал не их значения, а их имена в виде char *. В итоге на этапе вычислений у него образовался стек из структур, содержащих void * (которые на самом деле хранили либо int *, либо char *), и при вычислениях и печати результата использовалась следующая логика:

if (GetValue((char *)p))
    printf("%d\n", GetValue((char *)p));
else
    printf("%d\n", *(int *)p);

Думаю, программирующие на C всё давно поняли и уже раскачиваются в трансе, обхватив голову руками. Функция GetValue делает поиск полученной параметром строки в хэш-таблице и возвращает 0, если переменной с таким именем не нашлось. В этом случае p рассматривается как указатель на int и этот int и принимается за результат.

Если вы заводите переменную с именем abc, строка будет состоять из четырёх байт: символы с кодами 97, 98, 99 и завершающий 0. На little-endian машине эти четыре байта, рассмотренные как один int, дадут число 97+98*256+99*256*256=6513249. Программа от появления такого числа впадает в транс и начинает путать его с переменной.

Объяснить ругань валгринда (вы ещё не забыли, с чего всё начиналось?) теперь проще простого. Если мы проверяем программу на небольших положительных числах, в старших байтах чисел будет стоять 0, о который запнётся и остановится функция вычисления хэш-кода имени переменной. Получив –2 (все четыре байта ненулевые), цикл в вычислении хэш-кода пошёл дальше выделенных под int четырёх байт и валгринд сообщил об ошибке.

Отправил в итоге товарища гулять ещё на неделю. Пусть код перепишет.


[753] 7 мая 2010; 0:05
Не могу удержаться. ФИТ, 1 курс:

a->chars = realloc(a->chars, a->memory);
if (a->chars == NULL)
{
    showerror("Купи память, быдло!11", "", -1);
    abort();
}

[752] 25 марта 2010; 0:15
Родился я в 1983м, а следовательно, более-менее осознанное детство у меня выпало на девяностые — время, в которое вместе с названием страны, в которой мы жили, менялось и всё окружающее — в том числе и телевидение. Я, кажется, только-только пошёл в школу (1989), когда по воскресеньям, раз в неделю, начали показывать мультфильмы Диснея. Очень хорошо помню своё первое впечатление от этих мультиков: быстрая, дёргающаяся, малопонятная картинка — это так сильно отличалось от привычных мультфильмов, что смотреть Диснея начали, кажется, все. Даже обсуждали в школе: отлично помню момент класса из третьего, когда одноклассник доказывает кому-то, что «там только дон Карнаж настоящий пират!»

Первые японские мультфильмы (это сейчас я знаю слово «аниме»), которые где-то году в 1995-м показывали по утрам по «первой программе», я помню в основном по музыкальному оформлению — да что там «в основном», только музыку из них я и помню. Танго из заставки японского «Топо Джиджио» и красивая (и абсолютно непонятная, естественно) песня из «Необыкновенной схватки» — две мелодии, которые я запомнил абсолютно чётко и продолжаю помнить даже сейчас, через 15 лет.

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

Вот они, эти кусочки. Topo Gigio: full version и (желающим поностальгировать) то же, но с логотипом первого канала и голосом переводчика. Та самая песня из «Необыкновенной схватки» (название мультфильма я тоже не помнил — запросто нагуглилось). Под занавес — именно под такую заставку детки моего возраста (±5 лет) несколько лет подряд собирались у телевизоров по воскресеньям.

А у современных детей есть DVD-плееры и нет понятия «пропустил мультик по телевизору». Впрочем, думаю, что лет через пятнадцать и им будет что вспомнить.

Не могу не поблагодарить сайт 90ie.ru, на котором нагуглились два последних ролика. Я не очень люблю просматривать такие «ностальгические коллекции», но в данном случае попадание было в точку.

[751] 17 марта 2010; 19:30
День сегодня богат на хохмы в рабочей переписке.

— Главное, чтобы линок не было.
— Линков?
— Да.

— А зачем вы его строите, кстати?
— Я его не строю. Это так — для интереса. Вдруг Валерий Алексеевич попросит построить…
— Володя, этого не произойдет, и не мечтай. А впрочем, для заметок на рукаве: «Труд — это отец удовольствия». (Стендаль)


[750] 19 февраля 2010; 16:45
Про начальное обучение программированию и про то, что для него вполне можно (хоть и сложно) использовать C, я уже писал чуть меньше четырёх лет назад. Недавно [info]kashnikov прислал мне ссылку на статью, в которой доказывается противоположное: мол, нельзя ни в коем случае давать первым языком C, сколь бы ни был он важен для дальнейшей работы; давать нужно Pascal, а C — позже, когда первый язык уже будет освоен. Сама статья классная, аргументированная и адекватная, но я всё же склонен с ней не согласиться.

Как известно, с 2006 года (начиная с групп 51xx) мехмат НГУ перешёл на C с паскаля, и с тех пор у меня выработалось некоторое понимание того, как надо начинать рассказывать про язык так, чтобы студенты понимали, о чём речь, и при этом произнося как можно меньше фраз типа «это станет понятно позже». В результате я написал вчера текст, в котором рассказал, как я считаю нужным это делать.


[749] 13 февраля 2010; 13:50
Дядька в костюме клоуна собрал вокруг себя детей, пришедших с родителями на выставку, и развлекает их (на мой взгляд, кстати, весьма качественно развлекает). Очередной конкурс: дети загадывают друг другу загадки. После стандартных «посередине гвоздиков» и «семи одёжек» дитё лет шести-семи выдаёт очередную загадку:

— Круглый год не меняет цвет.

Тривиальные версии («Зимой и летом одним цветом — ёлка, да?») с негодованием отвергаются. Клоун тоже в замешательстве: такой загадки он не знает. Проходит напряжённая минута.

— Мы сдаёмся, говори, что загадал!
— Деньги. Они же всегда одного и того же цвета.

Детки согласно покивали. Клоун посмотрел на них и задумался.

А в Томске тем временем не чистят дороги (зато обильно посыпают песочком), а единственное известное нам заведение, где дают пристойную еду с восьми утра, по выходным, оказывается, открывается в десять. Привет городу Томску! Будем здесь до завтра.


[748] 24 ноября 2009; 20:55
Читаю интересную книжку одного уважаемого мною автора и в главе про RAID-массивы вижу такой абзац (выделение моё):

Следует учесть, что объединение дисков приводит к резкому снижению наработки массива на отказ: вероятности независимых событий складываются, поэтому вероятность отказа любого из дисков массива равна сумме вероятностей отказа одиночного диска.
Вероятности складываются, да-да. Если в RAID 5 засунуть три диска, каждый из которых с вероятностью 0.5 накроется, то какой-нибудь один из трёх, судя по всему, накроется с вероятностью 1.5, не иначе. Физики — такие физики.


[747] 16 ноября 2009; 15:40
На подъезде к Томску, в селе Тахтамышево, у нас сдох Навител (завис и не откликался до перезагрузки телефона). В прошлый раз, летом, он повёл себя так же, причём в том же самом месте. Проклятое место, нехорошее.

Это мы вернулись в субботу поздно вечером из Томска. В Томске я до этого был раз пять, из них два раза на машине, но этот визит был самым долгим (3 дня) и ездить приходилось заметно больше. В результате могу сказать, что чтобы получить удовольствие от прогулок по Томску, там надо гулять пешком, а не ездить. Томские дороги — нечто очень странное.

Узкие улочки в центре, запрещённые почти везде повороты налево — всё это можно понять, это нормальная ситуация для любого города с «исторической застройкой». Но понять, зачем вместо нормальных знаков «Главная дорога» на перекрёстках вешают утлые китайские подделки маленькие копии этого знака размером не больше трети оригинала, я не могу. Понятно, что местные и так знают, кто где кому уступает, но тому, кто едет по этой дороге в первый раз, приходится на каждом перекрёстке судорожно вертеть головой в надежде заметить спрятанный за деревом маленький ромбик или знак «Уступите дорогу» на второстепенной. В Новосибирске с оформлением перекрёстков всё намного лучше.

Смелые пешеходы. Помню своё удивление от первого приезда в Томск: «В Томске пропускают пешеходов!» Знали бы вы, чего это стоит понаехавшим суровым новосибирским водителям. Я бы на месте томских пешеходов поостерёгся бросаться под колёса машины с номерами 54-го региона, особенно если знак пешеходного перехода умело спрятан за кустиком (а прятать знаки, как я уже написал чуть выше, в Томске умеют).

Не очень логичная с точки зрения приезжего схема односторонних дорог: улица может внезапно стать односторонней, внезапно перестать ей быть. Едешь, вдруг раз — «кирпич» или предписывающий знак «налево или направо». Бывает и веселее: запрещён поворот направо на улицу, которая односторонней не является. Короче, без навигатора в Томск ни ногой.

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


[746] 24 сентября 2009; 15:20
Почему-то всякий раз, когда я говорю студентам с ФИТа, что я закончил мехмат, они удивляются и переспрашивают: «Мехмат?». А вот сегодня мало того, что переспросили, но кто-то ещё так понимающе сказал: «А, ну ведь тогда ФИТа, наверное, ещё не было...». Действительно, не было: первый набор ФИТа «такого, каким мы его знаем», был в двухтысячном, а я поступал годом раньше. Но ведь дело-то не в этом.

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


[745] 8 сентября 2009; 13:15
Из конторской рассылки. Пишет сотрудница с ресепшена:

From: A*******va, Alyona V

LOST & FOUND: сегодня в коридоре 4го этажа найден маленький винтик с резьбой примерно М5 под шестигранник. обращаться на ресепшн (к. 302)


[744] 6 сентября 2009; 23:40
В терминальные классы НГУ поставили проекторы и закупили новые экраны для них. Где-то висят обычные, с верёвочкой, за которую нужно дёргать, чтобы экран опустить или поднять. А где-то — продвинутые, с пультом дистанционного управления. Пульт не инфракрасный, а работает как-то по радио, вероятно. Короче, ничто не предвещало беды.

На своё первое занятие с очередной группой на ФИТе решил я подключить ноут к проектору, чтобы показать, как запускать vim, как компилировать и запускать программу. Прошу лаборанта опустить экран, она приносит пультик, нажимает на кнопочку — экран ползёт вниз, всё хорошо. Говорю же: ничто не предвещало беды.

Проходит пара минут. Экран внезапно оживает и начинает радостно ползти обратно вверх. Приходит лаборант и рассказывает душещипательную историю: в соседней аудитории преподаватель тихо-мирно рассказывал студентам какую-то новую тему, рисуя маркером на доске. А тут, видите ли, экран включился и фактически атаковал его сверху. Ну он в панике позвал лаборанта, она принесла пультик, подняла экран — он и поехал наверх, и у меня в том числе. Короче, радиопульт легко пробивает сквозь все стены и действует на экраны этой модели во всём крыле университета. Финиш.

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


[743] 26 августа 2009; 2:00

Товары для животных.
Eukanuba Kitten Complete

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

Этот пост не проплачен фирмой Eukanuba. В процессе написания поста ни одно животное не пострадало.


[742] 21 июля 2009; 12:40
Где-то с годик-полтора назад у меня по моему же недосмотру (не поправил вовремя записи в DNS) протух домен fenster.net.ru, с которого я годом ранее благополучно переехал на fenster.name. Изредка я пытался его зарегистрировать обратно, но введённое ограничение на четыре запроса в час от всех страждущих этому, скажем так, не слишком способствовало. В итоге вчера я наконец подошёл к делу с правильной точки зрения: понял, как должно выглядеть письмо-заявка, чтобы сервер подумал, что оно отправлено веб-формой, написал маленький скрипт и вуаля — утром домен уже работает :) Воистину, лучший способ победить капчу — не вводить капчу вовсе.

Теперь по крайней мере ссылки, которые во всяких гуглях указывают на *.fenster.net.ru, будут работать.

TWIMC: у меня прошла заявка, полученная сервером в 13 минут данного часа.


[741] 29 мая 2009; 1:30
Несколько примеров студенческого кода для поднятия настроения избранным.

Третий курс ФИТ, предмет «парадигмы программирования», язык Haskell:

charToDigit c = (findIndex (== c) "0123456789abcdefghijklmnopqrstuvwxyz")

Чертовски функционально, а главное — работает. Когда осознал, как будет выглядеть аналогичная функция на C, ржал как конь:

int charToDigit(char c)
{
    char *s = "0123456789abcdefghijklmnopqrstuvwxyz";
    return (strchr(s, c) - s);
}

Ну, опустим проверку на некорректный символ. Всё равно впечатляет.

Первый курс ММФ, предмет «программирование», язык C, дополнительное задание: написать программу, копирующую input.txt в output.txt.

FILE *f = fopen("input.txt", "r");
FILE *h = fopen("output.txt", "w");
char c;
while (c = fgetc(f))
    fputc(c, h);

«Александр Геннадьевич, работает! Он всё копирует, только не останавливается почему-то...»

Первый курс ММФ, предмет «программирование», после нескольких наступаний на грабли вида «сегфолт при чтении из несуществующего файла» студенты начинают обрабатывать ошибки:

inf = fopen("input.txt", "r");
if (inf == NULL)
{
    printf("файла input.txt нема\n");
    return (-1);
}

(и аналогично "памяти нема", если malloc вернул NULL — впрочем, чего это я стебусь, это же надо только приветствовать...)

Первый курс ММФ, предмет «программирование», по плану каждому студенту нужно решить пятнадцать задач:

$ cd /home/........; ls *.c
aaa.c bbb.c ccc.c ddd.c eee.c fff.c ggg.c hhh.c iii.c jjj.c kkk.c lll.c mmm.c nnn.c ooo.c

Первый курс ФИТ, предмет «программирование на языке высокого уровня», задание «архиватор Хаффмана». Здесь просто рассказ, без кода. Принимаю архиватор. Смотрю код, затем, как обычно, скриптом сжимаю, разжимаю и сравниваю diff'ом тестовый набор файлов — всё сходится. Готов уже пойти ставить плюсик в табличку, но что-то заставляет меня сказать ls -l в каталоге, в котором лежат тесты и их заархивированные варианты. Выясняется, что «архиватор» из-за косяка при выводе стабильно создаёт архивы раза в четыре больше исходного файла, но при этом из-за косяка при вводе вполне корректно их распаковывает. Мораль: будьте бдительны всегда...

Тот же автор, задание «калькулятор с длинной арифметикой». Вашему вниманию предлагается кусок заголовочного файла long.h:

long_int *add(long_int *a, long_int *b);
long_int *sub(long_int *a, long_int *b);
long_int *mul(long_int *a, long_int *b);
long_int *division(long_int *a, long_int *b);
int firstislessthensecondortheyaresame(long_int *a, long_int *b, int type, int whenaandbaresameishouldsmthreturn);

Воистину, слава операционной системе Linux, благодаря которой всё это остаётся на сервере, а не пропадает на домашних компьютерах моих любимых студентов.


[740] 27 марта 2009; 11:45
Сегодня впервые увидел новый вид рекламы (может, не такой он и новый, но я раньше не встречал). Проезжаем утром мимо «Колесницы» на Большевистской. Неторопливо едем, потому что пробка. Тут телефон, на котором bluetooth в discoverable режиме, говорит, мол, принят файл. Думая, что очередные блутусные маньяки кидают приветы, смотрю и с удивлением вижу, что файл называется kolesnitsa.gif и содержит анимированный баннер с рекламой этой самой «Колесницы». Видать, стоит комп, ищет discoverable девайсы в зоне видимости и рассылает файл. Молодцы, интересная идея.


[739] 23 февраля 2009; 13:05
Ещё гримасы русифекализации Windows Mobile: пункт меню «Вперёд» в меню СМС-сообщения означает ни что иное, как Forward.


[738] 21 февраля 2009; 16:00
Версия у моей Windows Mobile уже, извините, 6.1, но удивлять она меня не перестаёт. Сегодня телефон начал ругаться на отсутствие памяти на диске встроенном накопителе. Учитывая, что все-все программы я ставил на карту памяти, а в «Моих документах» нет практически ничего — я был несколько удивлён. Винда услужливо предложила поискать большие файлы, занимающие больше 64 килобайт памяти, и тут же ничего не нашла. Тупик, однако.

Что делать? Пошёл встроенным проводником гулять по системному каталогу Windows, пытаясь найти, кто же сожрал мои встроенные 30 мегабайт дискового пространства. Не могу сказать, что ответ не заставил себя долго ждать: прошло, наверное, минут 15, когда я таки догадался заглянуть в неприметную папочку Windows\Profiles\guest и увидел там — о, ужас — Temporary Internet Files, а дальше Content.IE5, а дальше... ну вы уже догадались, да? Эта сволочь, мобильный Internet Explorer, сохраняет все посещённые странички и все картинки! Причём во внутренней памяти. Которой, извиняюсь, всего 30 мегабайт на борту. Вероятно, пользуйся я встроенным браузером чаще, чем раз в несколько недель (обычно использую Opera Mini), я бы наткнулся на эту проблему пораньше, но в итоге получилось вот так — почти через полгода после покупки.

Конечно, сейчас я уже нашёл спрятанную глубоко-глубоко в меню Internet Explorer'а кнопку «Удалить файлы», которая вешает коммуникатор на минуту, но удаляет-таки весь сохранённый мусор. Но тупость, с которой приемлемая на настольном компьютере схема была перенесена на КПК, всё же несколько поражает.

P.S. Из «родных» (микрософтовских) прикладных программ в Windows Mobile я использую, кажется, только собственно телефонно-СМСную оболочку, текстовые заметки и калькулятор. Пару раз ещё запускал Excel; кстати, он в мобильной версии дико, непередавамо неудобен. А весь наиболее часто используемый софт (а именно: Opera Mini, ДубльГИС, Navitel, Pocket PuTTY, шашки с шахматами и нарды) написан сторонними производителями.


[737] 13 февраля 2009; 22:09
В недрах автомата, торгующем шоколадками на работе, видна картина, достойная анекдота. В одной из ячеек за 33 рубля продаются пятидесятиграммовые «M&M's», что является натуральным грабительством. Но свет в конце туннеля виден: после трёх упаковок по пятьдесят граммов вдали виднеются вожделенные упаковки по сто граммов. По цене, естественно, в те же 33 рубля. Не знаю, какой логикой руководствовался неизвестный мне человек, наполняющий автомат его содержимым, но теперь придётся ждать, пока трое коворкеров купят маленький «M&M's» задорого, чтобы потом все остальные могли купить большие по той же цене. Тяжела и неказиста жизнь простого программиста.


[736] 21 января 2009; 21:10
Только что выяснил, что системное сообщение ICQ, присланное с номера 1 и предлагающее скачать официального клиента ICQ с их сайта, было успешно отфильтровано моим самописным спам-фильтром для centerim. Причины:

  1. Номер 1 не в списке контактов.
  2. Сообщение содержит слово «сайт», запрещённое для пользователей не из списка контактов.

А я ещё удивлялся, чего это я не получил никакого такого сообщения.


[735] 7 декабря 2008; 14:10 (GMT+3)
Трактор-пропашник «Универсал». Выпускался на Кировском заводе с 1934 по 1940 г.г.
(трактор, 400K)


[734] 15 октября 2008; 12:20
Листаю сентябрьский «Linux Format» и возникает непреодолимое желание написать много всего про моё отношение к Linux вообще и про журнал в частности. Достаточно странное впечатление от него остаётся, как будто над выпуском журнала работает две враждующих между собой группы авторов. Первая стремится рассказать о том, как устроена система и как её настраивать, и читать эти статьи очень интересно: как бы, скажем, я (не читающий никаких спецблогов и т.п.) узнал, что в современных линуксах init заменяют на некий upstart, который на моём неторопливо обновляющемся дебиане, поставленном в 2005 году, появится совсем не скоро. Вторая же группа пытается сделать всё «как в венде» и позволяет себе такие высказывания (процитирую):

Пользователей OS X и Windows часто удивляет, как это сторонники Linux не могут просто скачать пакет из Интернета, дважды щёлкнуть по нему и установить приложение без каких-то проблем. Они могут достать последние версии таких приложений, как GIMP, Inkscape и Openoffice.org, просто скачав файл и запустив его. Пользователям Linux тут не повезло, и проблему усугубляет то, что многие дистрибутивы используют разные способы установки.

Этих авторов тоже можно понять. Если их цель — пересадить за линукс людей, никогда в жизни его до этого не видевших и даже с досовской командной строкой не управлявшихся — они и пытаются показать, что ничего страшного в линуксе нет, (почти) весь необходимый софт на месте и всё делается мышкой в красивом графическом интерфейсе. Проблема в том, что это совершенно не так. Мне кажется, что если позиционировать линукс не как бесплатную замену Windows на десктопе, а как несколько более сложную систему для людей, не боящихся читать документацию — т.е. просто быть немного честнее с пользователями — мир станет чуть-чуть лучше. Хоть, возможно, и останется при этом «проприетарным».

Давно хочу порассуждать на эту тему, вот только руки всё не доходят написать большой текст.


[733] 10 июля 2008; 16:45
Наш телефонный номер имеет свою историю. Кто туда только не звонит: и позвать просят к телефону постоянно разных людей, и в автошколу звонят (номер одной цифрой отличается), и (в последнее время всё чаще и чаще) хотят некую фирму «Сандорини». Начиналось всё спокойно: позвонила женщина, спросила, торгуем ли мы повидлом. Мы честно ответили, что не торгуем. Потом несколько раз звонили, спрашивали фирму. И наконец сегодня всё прояснилось. День, обеденное время. Звонок. Беру трубку, слышу пожилую женщину:

— Здравствуйте, это Инская, 67?
— Нет, вы ошиблись, это квартира. (готовлюсь положить трубку)
(медленно, но настойчиво) Это «Сандорини?» Я купила ваш джем. Вы знаете, мне уже половина девятого десятка...
— Вы не поняли, это квартира. Я не делаю никакого джема.
(возмущённо) А почему тогда на банке напечатан ваш телефон? Я звоню не из-за денег, из-за сорока рублей этих, просто ваш джем...

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


[732] 3 июля 2008; 16:40
Не прошло и двух лет с момента покупки точки доступа домой, как я наконец-то справился с простой с виду задачей — сделать так, чтобы вся сеть дома вставала сама, без ввода различных заклинаний вручную. Я не знаю, может, я что-то не то делаю, но лично мне вот такое:
iface ath0 inet manual
    post-up ifconfig ath0 up
    post-up iwconfig ath0 mode Managed
    post-up iwconfig ath0 key s:*****
    post-up iwconfig ath0 essid home-wifi-fenster
    post-up iwconfig ath0 ap 00:17:9A:83:38:8D
    post-up sleep 5
    post-up dhclient ath0
в /etc/network/interfaces, особенно выделенная жирным строчка с ifconfig, вовсе не кажется очевидным решением. Тем не менее, машинка к точке доступа сейчас подключается сама. Простые радости жизни.


[731] 30 июня 2008; 11:15
Кстати, вчера (29го то есть) был год вот с этого момента. Нужно заметить, что за этот год мы как минимум успели сдать, взять, а также (уже без ссылок) организовать ремонт, вынести кучу старой мебели, начать помаленьку ездить на машинке и посадить редиску на даче. По сравнению со всем этим предыдущий квест с телефоном выглядит, честное слово, каким-то детским садом просто. Мне кажется, сейчас всё очень здорово, и вчерашний апгрейд был весьма в тему :)


[730] 26 июня 2007; 13:10
Квест с установкой телефона закончен! Прошло всего три с половиной месяца, и пришло извещение о том, что мне пора заплатить 6000 рублей за подключение. Заплатил, назначили день, когда ждать монтёра («быть дома с 8 до 17, договориться с соседями снизу, чтобы открыли дверь в отсечку»). В 12 с копейками пришёл молодой парень, провёл кабель (рассыпав при этом кучу мелких гвоздиков по прихожей), проверил, что всё работает, и ушёл.

Сам телефонный аппарат у нас появился ещё в воскресенье, но купить евророзетку для него я ещё не успел, так что после ухода монтёра я остался с торчащим телефонным проводом. Что делать — проверить аппарат-то хочется, так что достал из загашника запасной кабель RJ11-RJ11, пощёлкал немного обжимкой, и через несколько минут высококачественная скрутка была готова. Телефон работает, ура, товарищи!

Порадовало, что сразу заработал тональный набор. Теперь бы выяснить только, когда положено платить абонентскую...


[729] 15 июня 2007; 19:20
Читаю новости и балдею. НГС пишет про прошедшие на днях антитеррористические учения. Глаз цепляется за фразу:

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

Про «условных террористов», которые захватывали условных заложников в здании ПТУ в г. Карасук, я понимаю. Но как вместе с ними умудрились задержать 18 (восемнадцать) человек, находящихся в розыске? Или они тоже «условные»?


[728] 7 июня 2007; 16:30
Еду в такси, слушаю диалог по рации: водитель беседует с диспетчером.
— Проверка связи, меня слышно?
— Да, хорошо слышно.
(пауза)
— А подскажите, это какое такси?
— А кто это говорит?
— Это два-ноль.
— У нас таких нет!
— А, ну ладно, спасибо, извините.

Это называется «ошибся адресом немного».


[727] 4 июня 2007; 14:45
В рамках подготовки к празднованию 50-летнего юбилея СО РАН в Академгородке наводят порядок. В частности, на перекрёстках улиц поставили новые симпатичные таблички с названиями этих улиц. Если улица «именная» (пр. Коптюга, ул. Пирогова, ул. Николаева и т.п.), то на табличке — название улицы и краткая справка о человеке, в честь которого она названа (годы жизни, основные заслуги). Если же улица названа не в честь конкретного человека (Морской проспект, ул. Учёных, ул. Золотодолинская), то в том месте, где на других табличках справка о человеке, на этих расположен символ Академгородка — эмблема с большой сигмой.

Интересен тот факт, что на перекрёстке Морского проспекта с ул. Ильича стоит обычная, не «именная» табличка. Вероятно, те, кто их ставил, считают, что Владимир Ильич — фигура настолько мифическая, что биографической справки не заслуживает.


[726] 21 мая 2007; 20:35
Итак, после двух месяцев регулярных походов в «Дентал-Сервис» этот квест наконец-то закончен. Точнее, не до конца ещё закончен: мне сказали, что когда будет время в течение полугода, надо будет сделать коронки на два зуба, но это я ещё подумаю, буду ли делать и когда. Пока нужно сказать, что за лечение пяти зубов я отдал чуть меньше 9000 рублей, а если бы не страховка — получилось бы раза в два больше. Такие вот дела.

Вообще, платная медицина меня радует. Мало того, что мне починили зубы — теперь я не боюсь ходить к стоматологу, и если у меня возникнут какие-то новые проблемы с зубами и надо будет лечить — я не буду долго выбирать между дешёвой муниципальной поликлиникой и дорогой частной. Мне мои нервы дороже. Можете считать это рекламой, но в «Дентал-Сервисе» мне действительно понравилось, и я его всем настоятельно рекомендую.

А вообще мне всегда немного смешно, когда по отношению к зубам употребляют слово «лечить». Высверливание к чёртовой матери всей проблемной части зуба — это, мне кажется, слишком радикальный способ, чтобы называть его лечением...


[725] 11 мая 2007; 20:45
Одно из лучших средств от депрессии и всяких разных мыслей — вспомнить о том, что у меня есть музыкальное образование, и потратить пятнадцать, тридцать, шестьдесят минут на то, чтобы подобрать, запомнить и как следует украсить септаккордами и красивыми переходами какую-нибудь хорошую песню. Успокаивает на раз, а когда доведёшь её до такого уровня, что исполнение самому начинает нравиться — чувствуешь, что как будто бы все проблемы решаются столь же просто, как и подбор аккордов к данной мелодии: ведь у меня всегда была пятёрка по сольфеджио.

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


[724] 9 мая 2007; 13:55
Недавно заметил на полке книгу «Мир Лиспа» и начал её перечитывать. Книга, кстати, замечательная: уже далеко не первый раз её читаю и постоянно нахожу что-то новое для себя, причём не только касающееся Лиспа, а по поводу программирования и, что важнее, преподавания программирования вообще. Скажем, вчера проглотил главу про рекурсию и нашёл для себя два замечательных примера объяснения рекурсии студентам, которые до этого мне в голову не приходили.

Сегодня — диалог:
— Сейчас прочитал главу про замыкания и просветлился.
— Это лучше, чем если бы ты прочитал главу про просветление и замкнулся...


[723] 24 апреля 2007; 22:35
На ул. Лесосечной с давних-давних времён стоит павильон, в котором торгуют пивом и закуской к нему. Года полтора или два назад как-то иду мимо этого павильона и вижу, что вывеску «Пиво» сняли, а вместо неё повесили большую светящуюся разными цветами табличку «Улыбка Фортуны». А внутри, соответственно, игровые автоматы и всё такое.

После этого преображения у павильончика началась новая жизнь: не было вечера, когда около него не припарковались бы несколько машин, зачастую весьма дорогих. Народ удовлетворял потребность в азартных играх; хозяева, вероятно, наживались на людских слабостях. Всё шло хорошо, но тут либо эхо принятого недавно закона о скором запрете подобных заведений докатилось до Нижней Ельцовки, то ли ещё что — но недавно, где-то с месяц назад, смотрю — а на павильончике вновь скромно написано «Пиво». И тишина, и ни одной машины рядом. Такие вот метаморфозы.

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


[722] 20 апреля 2007; 22:15
Возможно, это слишком элементарно, но я догадался до этого только сегодня. Истина, посетившая мой мозг, звучит так: чтобы заставить Far Manager открывать при запуске конкретные каталоги в панелях, нужно открыть эти каталоги вручную и нажать Shift+F9 (Options — Save setup). Слишком просто, да? Вы это знали уже два года? А я вот не знал и мучался. Надеюсь, я не один такой и кому-нибудь этот пост поможет почувствовать себя хозяином по крайней мере своего Far Manager'а.

Да, я использую Windows на работе и на ноутбуке. На десктопе дома у меня Debian.


[721] 20 апреля 2007; 21:30
Кажется, сегодня удачный во всех отношениях день.

Во-первых, я победил одну из самых сложных проблем, с которыми столкнулся за время работы с MSSQL. Хранимая процедура корректно выполнялась из Query Analyzer'а, но валилась в (казалось бы) произвольном месте, будучи вызванной из перлового скрипта через DBI::ODBC. Убил на эту проблему я около трёх дней, причём отлаживать приходилось, создав табличку (CREATE TABLE temp (id INT IDENTITY, value VARCHAR(200))) и добавляя в неё отладочные строки, чтобы понять, в каком месте процедура вылетает (а потом, соответственно, делая SELECT * FROM temp для просмотра «лога»). В итоге, скомбинировав тонкую настройку ODBC-драйвера с переписыванием некоторых кусков хранимой процедуры, добился того, что скрипт наконец заработал. Точной причины проблемы не знаю до сих пор, ну и фиг с ней, в общем-то.

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

В-третьих, я только что разобрался, как расшарить по самбе принтер, работающий на линуксовой машинке через CUPS. Теперь можно печатать со всех компьютеров в квартире по Wi-Fi и не нужно ничего никуда перетыкать. Почему эта гениальная идея пришла мне в голову только недавно и реализовалась только сегодня — я не знаю. В любом случае, безумно приятно было услышать звук вылезающего из принтера листа бумаги, отправив печататься пробную страницу с ноутбука, стоящего на кухне. Техника на грани фантастики, не иначе.

Ну и наконец, сегодня я оплатил квитанцию. Подробности позже.


[720] 16 апреля 2007; 12:45
Вчера открыли велосезон, причём перед этим я, посмотрев в окно, вздохнул и поставил-таки крылья. Забегая вперёд, скажу, что даже несмотря на крылья, всю одежду всё равно пришлось отправить в стирку, но по крайней мере я выглядел достаточно пристойно, чтобы зайти в NYP съесть булочку — без крыльев я бы был слишком грязным, чтобы на это решиться.

Замечено было, пожалуй, три отличия от прошлогоднего опыта. Во-первых, после перерыва не стал даже пытаться ехать всю дорогу до Академа на 3-6, а переключался на подъёмах на вторую ведущую. Это, положим, вопрос тренировки. Во-вторых, «Радио-7» теперь вместо «классической странички» в конце каждого часа ставит программу «Саундтрек», которая мне, впрочем, тоже нравится.

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


[719] 10 апреля 2007; 9:30
Первый раз за пять лет, когда группа почти в полном составе не поняла, как работать с динамическими списками — только такой вывод можно сделать, глядя на результаты проверки пятиминутных заданий, которые я дал в конце прошлого семинара. В итоге сейчас нужно придумывать, как объяснить им эту тему ещё раз, но не повторяя примеры с прошлой пары. Тем временем, до начала занятия остался всего час — надо уже поторопиться...


[718] 28 марта 2007; 13:00
Последние два дня — это просто какой-то шок от новых современных технологий.

Во-первых, первый визит на лечение в «Дентал-Сервис». В этот раз удаляли нерв и пломбировали каналы. В прошлый раз (в 13 лет) эта операция была настолько болезненной, что я чуть ли не выл у зубного, несмотря на укол и на то, что нерв трое суток до этого «убивался» подложенной в зуб какой-то гадостью. Так что садился в кресло стоматолога не то чтобы дрожа, но заранее испытывая неприятные всякие переживания. К счастью, опасения не оправдались.

Укола я просто не заметил, настолько аккуратно мне воткнули иглу. Через пару минут губа начала неметь, и стоматолог с ассистентом (впервые в жизни мне лечили зуб вдвоём) начали меня сверлить. Почувствовал слабую боль, сказал им, тут же вкололи вторую порцию — и всё. Оставшееся время я лежал с открытым ртом и закрытыми глазами и меланхолично слушал, как они копаются у меня в зубе всякими адскими инструментами. Лишь изредка поворачивал голову налево-направо, как в парикмахерской. Когда надоело лежать просто так, начал считать секунды со скуки. На счёте «тысяча» меня, как был, с открытым ртом, повели делать рентген и после этого быстро закончили. В общем, теперь я не боюсь стоматологов: первый раз, когда в процессе лечения я просто вообще ничего не почувствовал. Да, а губа отходила часов пять.

Наконец, во-вторых, сегодня читал лекцию на суперпродвинутой доске. Сама доска сенсорная, на неё направлен проектор, и когда пишешь, след от маркера появляется с небольшой (почти незаметной) задержкой. Маркеры четырёх цветов, и устроено это так. На самом деле все маркеры одинаковые (просто палочки), но в каждый встроен магнит. Маркеры изначально лежат в специальных ячейках: красный — в красной ячейке, чёрный — в чёрной, и т. д. Когда берёшь какой-нибудь маркер, доска замечает, что магнита в данной ячейке нет, и рисует след именно этим цветом. Оказалось удобнее чёрный маркер класть в карман, а писать пальцем; а если нужно взять другой цвет, то маркер из нужной ячейки перекладывал в чёрную ячейку. Техника.

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


[717] 19 марта 2007; 20:00
Новые квесты сыпятся один за другим. На этот раз попытался воспользоваться (впервые в жизни, кстати) РОСНОвской страховкой (добровольное медицинское страхование) и вылечить-таки зуб, который последний месяц достаёт меня всё больше и больше, особенно активизируясь в процессе поедания чего-нибудь горячего.

Клиника «Дентал-Сервис» меньше всего напоминает стоматологическую поликлинику: в холле стоят диваны и можно выпить чай-кофе, полистать журналы. Администраторы и даже парень в гардеробе на входе удивительно вежливы. Дети и взрослые, выходящие из здания, не держатся руками за щёку и не плачут. В холле, помимо журналов, детские игрушки и паззл для того, чтобы занять время. Красота.

Прежде всего дали они мне заполнить анкету с кучей разных вопросов о реакциях на препараты, о перенесённых заболеваниях и так далее. Почему-то в анкете аж целых два раза встретился вопрос «Для женщин: беременны ли вы»: первый раз в начале, а второй раз в конце анкеты. Я начал было придумывать всякие разные причины для повторения вопроса, но додумать ничего не успел, потому что позвали в кабинет к доктору.

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

Теперь к минусам. Первый и (пока) единственный замеченный минус заведения — цены. Врач придирчиво осмотрела снимки, потыкалась мне в зубы каким-то девайсом и обрадовала меня тем, что лечить надо аж четыре зуба, а не один, как я наивно предполагал. Причём хоть страховка у меня и покрывает лечение и пломбирование, восстановление зуба (штифтовые какие-то штуки, вкладки, не помню, короче) будет стоить денег: до пятнадцати тыр в худшем случае. «Нифига себе», — подумал я и стал прикидывать, стоит ли платить такую сумму за лечение в дорогом месте вместо того, чтобы пойти в районную поликлинику («десять минут страха, и вы дома» — т.е. два часа мучений, и зубы в порядке). Решил, что стоит, хоть будет опыт лечения в нормальном месте, а то последствия похода в районную детскую стоматологию в 13 лет я до сих пор расхлёбываю.

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


[716] 5 марта 2007; 20:10
«Прошу рассмотреть возможность оказания услуги предоставить доступ к телефонной сети с использованием телефонного аппарата на срок бессрочный.» Эти бессвязные слова, вписанные мною под диктовку в пропуски на криво отксерокопированном бланке заявления, положили начало новому квесту, который, по словам оператора «Сибирьтелекома», растянется где-то на год и отъест шесть тысяч рублей из личных сбережений.

Организация процесса поразила сразу. Пока я заполнял от руки два одинаковых бланка заявления (в каждый нужно было вписать ФИО, паспортные данные, адрес два раза и ещё несколько слов), оператор бодренько вбила те же самые данные в свою базу данных и потом написала на обоих заполненных бланках номер, присвоенный моей заявке умной машиной (сдаётся мне, какой-нибудь autoincrement primary key или там identity, не знаю, что за СУБД они используют). Висящий прямо-таки на кончике языка вопрос о том, почему нельзя сначала вбить данные в компьютер, а потом распечатать два готовых бланка, я задавать, конечно, не стал. Ответ очевиден: программа, поди, не позволяет.

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


[715] 1 марта 2007; 10:25
Стоило рассказать студентам про рекурсию и указатели, как один товарищ написал программу для вывода первых нескольких строк треугольника Паскаля, используя рекурсивную функцию вместо цикла for и обращаясь к элементам массива исключительно через *(p + i). Каждый год бывает такая ситуация: кто-то никак не может понять, что такое указатель, а кому-то сразу начинает нравиться писать достаточно трудночитаемые программы с их использованием. Объяснить, где это к месту, а где нет, тоже бывает достаточно сложно.


[714] 21 февраля 2007; 21:30
Повторилась проблема из [541]: абсолютно внезапно кончились деньги в телефоне. К сожалению, система UFS, которая неоднократно выручала меня в таких случаях, не так давно перешла на работу только с авторизованными картами (т. е. они сначала блокируют на карте некую сумму, потом надо узнать в банке эту сумму и сообщить им — тогда карта станет авторизованной и ей можно будет пользоваться). Процедуру авторизации я пройти всё никак не могу: у меня не подключен веб-интерфейс ни в одном из банков, в которых у меня есть карточка, а идти туда ногами за выпиской некогда. Так что до тех пор, пока я не авторизую у них какую-нибудь карту, система UFS для меня не работает.

Тем не менее, проблему нужно было как-то решить. Гугль подсказал ещё одно место, где можно заплатить за мобильный телефон МТС в он-лайне по карте Visa Classic без предварительной авторизации карты, и место это — магазин карт оплаты CardsOnline, на котором я достаточно быстро (платёж через систему Pay Online почему-то шёл минут пять, но в итоге прошёл) смог купить «виртуальную» карту оплаты на 5 баксов, после чего мне показали её код, я его ввёл в службу 0850 и телефон заработал. Выношу благодарность товарищам, делающим нашу цивилизованную жизнь проще: меньше всего мне сейчас хотелось идти гулять до ближайшего пункта приёма платежей.


[713] 16 февраля 2007; 15:20
Сегодня, пожалуй, был первый раз, когда Google в ответ на вопрос по перлу предложил мне сходить на сайт Microsoft, причём в статье, на которую я попал, действительно было то, что меня интересовало: переносимый и человеческий способ определить символ, разделяющий пути в переменной PATH в разных системах.

Вообще говоря, я неоднократно убеждаюсь, что в Microsoft к написанию статей, посвящённых миграции на Windows с различных систем, подходят весьма обстоятельно: все статьи из этой серии, которые я видел, были написаны качественно и строго, без «воды», которой так много в линуксовой девелоперской документации, и содержали то, что нужно. Причём речь часто идёт о миграции решений, например, как в статье Migrating Linux-Apache-MySQL-PHP to Windows 2000: они смотрят на мир реально и не предлагают переписывать сайты на ASP+MSSQL, а честно объясняют, как поставить MySQL на Windows (причём прямо указывая команды) и что сделать, чтобы сайт шёл под IIS, а не под Apache. Это я считаю правильным подходом к конкуренции: признать существование «вражеской» системы и создавать условия для переезда с неё на свою разработку.

Стоит ещё заметить, что аналогичные руководства про то, как переехать с IIS+ASP+MSSQL/Access на Linux (я специально поискал и почитал несколько) скорее ударяются в философские вопросы (мол, «если вам перестало хватать возможностей MS Access, почему бы вам не переехать на MySQL?», «в Apache всё делается модулями, так что подгружайте только то, что вам нужно» и т. п.), чем дают реальные рецепты. Так и представляешь себе виндового админа, которого внешние силы заставили переезжать на Linux (скажем, денег на лицензию не хватило и милиция в дверь стучится): у него паника, а тут ему снисходительно советуют подгружать не все модули апача, а только те, которые ему реально нужны.

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


[712] 11 февраля 2007; 15:35
Недавно клал деньги на мобильный в автомате в холле ИСИ и обратил внимание, что «стрелочка» мыши там стоит как раз на букве «М» в слове «информация». Такое ощущение, что к автоматам с этим софтом люди подходят в основном для того, чтобы посмотреть на Медведа, а не для того, чтобы положить денег на телефон. Или, как минимум, делают и то, и другое.


[711] 5 февраля 2007; 16:40
Только что пришёл спам по ICQ от ника «ICQ россылка». К сожалению, я сначала автоматически нажал ignore, yes, yes, а только потом подумал о том, что спам от такого замечательного ника можно было бы и прочитать.

И небольшая новость. С этих выходных всё содержимое fenster.name, кроме форума, перевезено на московский VPS-хостинг в Rusonyx. DNS уже везде должен был обновиться; если вы читаете этот пост, значит, у вас с DNS всё уже хорошо. Форум, еле-еле живший последний год, считаем закрытым. Надо придумать и реализовать какую-нибудь новую гениальную идею.


[710] 2 февраля 2007; 19:25
Коворкер подошёл с безобидным вопросом по перлу. Я начал разбираться в коде, который он показал, и после десяти минут чтения perlop(1) с удивлением узнал о том, что в перле есть оператор ..., который работает почти так же, как .., и что операторы .. и ... в скалярном контексте творят интересные вещи. Кусок кода, в котором мне предлагалось разобраться, выглядел так:
$ perl -n -e 'print if /regex/.../regex/'
Я даже теперь знаю, чем это отличается от
$ perl -n -e 'print if /regex/../regex/'
Насколько я понимаю, это то ли из sed, то ли из awk. Надо же: сколько лет пишу на перле и не знаю такой классной штуки.

В общем, день прошёл не зря: узнал новое про Perl. А если учесть, что несколько дней назад пришлось начать писать хранимые процедуры на Transact-SQL (чего я раньше никогда не делал), можно радоваться: скиллы прокачиваются с хорошей такой положительной производной.


[709] 2 февраля 2007; 16:50
Структура сети дома становится всё более и более запутанной. Недавно я купил точку доступа Wi-Fi, чтобы добиться хорошего сигнала во всей квартире (раньше, с PCI-ной карточкой в роли точки доступа, уровень сигнала на кухне был не очень сильным, да и при подключении более чем одного устройства начинались перебои). Сразу встал вопрос о том, как же её подключить, учитывая, что она рассчитана на один кабель до «внешнего» интернета, а у меня их два от разных сетей плюс VPN-соединение. В итоге роутингом занимается десктоп, как и раньше, и через PCI-ную карточку он связывается с точкой доступа, которая физически (кабелем) ни к чему не подключена, а лишь рулит беспроводной сетью, раздавая по DHCP адреса и указывая для всех шлюзом десктопную машинку. Работает как часы.

Побочным эффектом установки точки доступа стала «интернетификация» двора: если знать ключ, то под окнами легко можно подключиться к моей сети, проверено позавчера вечером. Летом это может быть удобно: сидеть во дворе с ноутбуком или КПК, читать почту...


[708] 29 января 2007; 11:20
С незапамятных времён мой bash(1) понимает команду ц и отвечает на неё, конечно, списком пользователей, находящихся в данный момент на сервере. Всякий раз, когда я случайно пытаюсь набрать команду w не в той раскладке и получаю ц, я думаю, что это был один из лучших алиасов, когда-либо вставленных мной в .bashrc. Как мало надо человеку для счастья.


[707] 27 января 2007; 9:35
Я купил мобильный телефон 4 октября 2002 года, а сосед по комнате — на полгода раньше. Именно он как-то раз озвучил идею, что неплохо было бы написать сервис для радио, который бы умел на запрос пользователя отвечать SMS-кой, какой трек сейчас играет в эфире. «Неплохая идея», — подумали мы и забили.

Сейчас сижу в «Старом замке» с буком, слушаю радио «Юнитон» (кстати, первое радио, которое я услышал в Новосибирске — но об этом как-нибудь в другой раз), и тут в голову одновременно приходят три мысли:

Уже после того, как была отправлена SMS на номер 2258 и получен ответ, решил интереса ради зайти на их сайт — и действительно, оказалось, что и там тоже они пишут, что сейчас играет, причём (в отличие от SMS-сервиса) абсолютно бесплатно. Молодцы, что тут сказать, уважаю.

А вывод какой? Приходит в голову хорошая идея — надо не лениться и реализовывать.


[706] 27 января 2007; 1:46
Чтобы расслышать слово «bacchanalia» в треке Beginning у Boris Kovac, мне понадобилось всего-то почти полтора года нечастого прослушивания. ...enter the bacchanalia to pleasure themselves, да! Что сказать... изучаем английский в неторопливом таком темпе.


[705] 18 января 2007; 14:45
В контору несколько дней назад начали завозить новое молоко для кофе, называется «Тёма». Интересно мне, кто и, главное, почему придумал для молока такой брэнд. Как-то у меня мужское имя Артём не ассоциируется ни с молоком, ни с бурёнками...


[704] 16 января 2007; 15:10
Недавно побывал у диспетчера НГУ — женщины, которая составляет расписание для групп и преподавателей на семестр. Делается это всё на компьютере в специальной софтине, но вручную, так что труд, судя по всему, адский. Но речь не о том. Пытаясь воткнуть куда-нибудь свою пару (ММФ, группа 6113, программирование), выяснил, что диспетчер специально старается оставлять «окно» студентам в том случае, если у них более трёх пар днём. «Чтобы детки успели пообедать». Вот он, классический пример непонимания... замечательно помню, как мы с одногруппниками ругались, увидев очередное такое «дырявое» расписание (особенно весело городским, которые вынуждены шляться по универу или Академу в течение всего «окна»). А оказывается, это из самых лучших побуждений о нас заботились... Даже и не знаю, что сказать.


[703] 10 января 2007; 0:05
Закончен очередной семестр в колледже. Уровень детей, прямо скажем, падает с каждым годом всё сильнее и сильнее (связано ли это со спадом рождаемости в 1990-е годы или ещё с чем-то, я не знаю), однако моя группа отсдавалась хорошо. Впрочем, как сегодня было замечено, это не потому, что я такой хороший преподаватель, а потому, что я великий комбинатор: всегда выбираю себе лучшие группы на потоке. Ну и правильно, чего с дурными группами-то работать.

Всех с наступившим Новым 2007 годом. В этом году я продолжу радовать вас постами на актуальные и не очень актуальные темы, и хочется верить, что таких больших пауз больше не будет (хотя бы потому, что в ближайшее время так много выходных дней подряд не планируется: я отдыхал всю последнюю неделю декабря в отпуске и первые 8 дней января, как все белые люди). Сейчас начались рабочие будни, следовательно, всё будет как раньше. Мы продолжаем!


[702] 21 декабря 2006; 20:30
Проект одноклассники.ru почему-то завоевал популярность. Более того, ему даже дали какую-то там премию Рунета. Я до сих пор не могу понять, за что.

Да, я там зарегистрировался и даже честно указал школы, в которых учился, и университет. Меня немного смутил тот факт, что моя школа в списке была представлена дважды: как «№11» и как «гимназия №11». Я удивился и зарегистрировался в «гимназии», т.к. там было больше народу. Понадеялся на то, что такой очевидный ляп авторы исправят, и забыл про данный сервис.

Недавно пришло мне на почту сообщение о том, что знакомый товарищ «добавил меня в друзья» на «одноклассниках». Решил зайти и посмотреть, изменилось ли что-нибудь. Изменилось, причём заметно и в худшую сторону: теперь бедные выпускники моей школы могут выбирать аж из четырёх вариантов: «Новокузнецк, №11», «Новокузнецк, гимназия №11», «г. Новокузнецк, №11» и, наконец, «г. Новокузнецк, гимназия №11». Вероятно, для того, чтобы тебя гарантированно нашли одноклассники, нужно зарегистрироваться во всех четырёх. Или, ещё лучше, сделать пятую, уникальную.

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

И вообще, пока был раскручен один LinkedIn, было хорошо. Сейчас, мне кажется, подобные «социальные сети» будут появляться, как грибы после дождя, что сведёт на нет всю затею: вряд ли люди будут регистрироваться в третьем, десятом, пятнадцатом таком проекте.


[701] 17 декабря 2006; 11:20
Всякий раз, заходя в «Книгомир» в ТЦ (который все по привычке называют «Топ-книгой»), не могу удержаться от разглядывания полки компьютерной литературы, но обычно не нахожу ничего стоящего или по крайней мере ничего такого, чего действительно хотелось бы купить. А ведь раньше всё было (совсем по-другому...)

Вот так расширение содержимого книжной полки повторяет развитие человека. Интересно, куплю ли я что-нибудь, когда буду бродить мимо компьютерной полки в «Топ-книге» в следующий раз?


Предыдущие страницы: [1]-[100]  [101]-[200]  [201]-[300]  [301]-[400]  [401]-[500]  [501]-[600]  [601]-[700]