Пару лет назад я посмотрел код OpenSSL. Он был ужасен. Особенно меня поразила примерно такая конструкция:
if (0) {
L1:
// some code
}
if (condition)
goto L1;
Через некоторое время я решил что конструкция в принципе нормальная. А прочие ужасы кода свалил на то, что он написан математиками.
Но сейчас я решил расковырять другой продукт. Дело в том, что в CoolReader при ресайзе окна в управлении kwin происходит неприятный баг — он перематывает текст на конец. Это невероятно разражает — по сути единственный выход, это не ресайзить окно. Я решил найти в чем же проблема и полез в исходники. Исходники оказались страшноваты, но следующий код — это…
Я неожиданно заметил, что ноут перестал шуметь. Что такое подумал я? Какие отклонения от нормы? Отстутствие хрома было мне ответом. Неужто браузер настолько греет комп? Запустив браузер и открыв пустую вкладку я затаился на другом рабочем столе открыв показания датчиков температуры. Читать далее →
Сессия была страшной и мозг включается тяжело. В ноуте новый кулер — тот самый, который мне пришлось поменять пару месяцев назад. К счастью, гарантия была на три месяца. Ноут на коленях. На ноуте механическая клава — явный признак того, что пора кодить. Рядом кофе. Для атмосферы. Сверху выползает консоль. В консоли открыт консольный плеер. Это именно то, что мне не хватало. Я давно забыл про тебя, moc. Где-то в километре от меня находится сервер. На сервере 2 процессора перемалывают один из самых ужасных кодов, которые я когда-либо писал — BSA-Analytics. Но он работает. Пульсары находятся. В двух метрах от меня стоит ноут с замененной по гарантии материнкой. Он стоит без крышки и экраном вниз — так эффективнее работает охлаждение. Занимается тем же самым. На другой вкладке консоли к нему открыта ssh-сессия. SSH-сессия идет не напрямую, а через нидерландский сервер — так удобнее. В ssh-сессии открыт screen. Screen — это вещь. В screen’e rsync перебрасывает посчитанные данные на четвертый сервер — он находится во Франции. Люблю современный уровень абстракций!
Журналисты с ТВЦ выпустили в эфир репортаж, в котором присутствуют звуки пульсаров, которые я сгенерировал. Их можно послушать с 11:41 до 11:43. Также с 23:05 и до конца идет отрезок с моим папой. Там же можно еще раз послушать и даже посмотреть.
Как обычно, во избежание недоразумений, видео дублирую у себя.
Сегодня у нас в комнате травили клопов. О том что у нас будут травить клопов нам сообщили вчера в 10 часов вечера. Травили только у нас. Нас кто-то сдал. Вероятно, работали изнутри. В травле был заинтересован только Данила. Читать далее →
В субботу пришел на наш матан. Меня встретила Наташа рядом нестандартных вопросов вида «Сколько добираться до Пущино?». Короче, это был день открытых дверей нашей обсерватории. И мой папа там тоже водил экскурсии. И Наташа с Рамилем решили туда съездить. Ну и я заодно, чего уж тут. Естественно, маршрутка на Пущино так и не приехала, в результате чего на начало экскурсий мы не успели. Причем опоздали всего на 10 минут. Пошли на поле за обсерваторией.
Наташа на дереве
Поле
Еще поле
Я синхронизируюсь с папой, пытаясь посчитать тайминг.
Потом пошли смотреть в телескопы, привезенные радиолюбителями на солнце. Ничего интересного я там не увидел, хотя утверждалось, что в них видно корону солнца. Ну а потом пришел папа и провел отдельную экскурсию для нас троих. Папа был уверен, что я знаю все. Я думал, что я не знаю ничего. В целом мы были правы: я знал примерно половину.
BSA. С него идут данные для поиска пульсаров.
mainstream
Потом я внезапно потерял контроль, отобранный нашим бравым доктором, поэтому дальше мы поехали на смотровую.
Единственная приличная фотография
А потом ко мне домой: голодных студентов полагается кормить на убой. Ну и на ноутбук, считающий пульсары посмотрели. День прожит не зря!
Иногда мне кажется, что интерфейс несколько переусложнен. С другой стороны, теперь я знаю что отвечать на вопрос: «Зачем тебе такое большое разрешение?»
В последнее время у меня начал барахлить блок питания. Я решил не мучиться с ним, а просто купить новый. В эту пятницу я сидел с новым блоком. Ноут сказал мне, что питание кончилось, я полез проверять — штекер выпал из разъема. Тут мое внимание привлек какой-то треск — из самого преобразователя. Еще 2 секунды, пока я пытался понять что происходить из него летели искры. Потом был бабах. После этого я выключил это все безобразие из розетки, да.
В магазине, где я его купил, пообещали его заменить, но только в понедельник. Даже толком не спросили что произошло. Однако, многие вопросы остались нерешенными.
Кто бы отвечал, если бы у меня сгорел ноут?
Что было бы, если бы мой оригинальный блок питания был бы уже мертв?
Что было бы, если бы меня не было в комнате?
Кто бы отвечал, если бы у нас был пожар. (Тут надо сказать, что в комнате находились ноуты Степы и Данилы, оба включенные в сеть)
Что было бы, если бы пожар был не у нас?
В общем, непонятных вопросов достаточно много. Часть из них я надеюсь прояснить в магазине в понедельник.
Типичный след от сгоревшего блока питания
Типичный след под покрывалом от сгоревшего блока питания
Сначала была задача. Задача была написать очередь с минимумом. Я посмотрел на ограничения и решил, что O(n log n) зайдет. Дерево отрезков без обновления наше все. Это была последняя задача контеста, поэтому я пошел сдавать все Шестимерову.
Шестимеров посмотрел на код и сказал, что код ему не нравится. После этого он пообещал забанить код. После этого он начал придумывать причину. Я сразу сказал, что я знаю что такое очередь с минимумом, но при таких ограничениях проще и быстрее написать дерево отрезков. Он сказал, что очередь это тоже плохо. После этого сообщил мне, что если увеличить ограничения, то моя версия упадет по памяти, так как в худшем случае она выжирает 4N памяти, а правильная версия только 2N памяти. После этого был бан.
Но этим дело не закончилось мне было сообщено, что такие как я, не пользующиеся STL’ем потом еще начинают все говорить, что он плох. Я, не долго думая, подтвердил. Таак, — протянул Шестимеров, — это уже религиозная тема! Чем вам не нравится STL? Мне не особо хочется приводить свои аргументы, но я смог сравнить итераторы по map в Qt и в STL. В Qt они лучше, поэтому тут меня переспорить не удалось. Все остальные аргументы провалились.
В общем-то образец хорошего семинариста, который действительно понимает в программировании и с которым можно обсудить всевозможные темы.
А вот например наша общая программа, которая сейчас называется «Системы программирования» просто ужасна. У нас был какой-то ужасный коллоквиум, на который почти у всех одна реакция.
Вот она — православная реакция
Еще более православная реакция
Сейчас появилась еще одна веселая новость. Теперь у нас идет переразбиение на 2 группы. Одна группа будет учить С++ вместе с Шестимеровым. А другая будет готовиться к экзамену по грамматикам вместе с Курыниным. Выбор очевиден.