Я в интернете

РСС    Джейсон-фид

Есть автоматические трансляции в Тумблер и Же-же. Если не работает, напишите мне: ilyabirman@ilyabirman.ru.

Избранное

Позднее Ctrl + ↑

Оптимайз — 2

Все помнят, как я здорово придумал вместо 20 include’ов писать 1?

Тогда прозвучала мысль, что если еще и выкинуть из склеиваемых исходников комментарии, то всё будет еще быстрее и красивее. Вопрос был в том, как их выкинуть.

Первое, что приходило в голову, это почикать регэкспом всё, что между /* и */, а также между // или # — и ньюлайном. Но это, как вы понимаете, полная лажа, ведь так мы с успехом почикаем то, что лежит в строках или HTML-коде. Чего делать не следует. Разбирать же весь синтаксис PHP ой как не хочется, тем более, что за тебя это уже один раз сделали авторы языка.

Потом Смирнов дал ссылку на POBS (так, кажется, это называется?), который, вроде как, делает, в том числе и тотальный вырез комментариев... Короче, все решения были либо неправильными, либо слишком навороченными. Но тут я придумал нечто очень красивое.

В PHP есть функция-парсер! Только она замаскирована под синтакс-хайлайтер. И называется она highlight_string. Самые умные уже всё поняли, и им дальше не интересно. А просто умные читают дальше.

Итак, функция берет переданный ей код на PHP и подсвечивает в нём синтаксис. Как? Да она просто расставляет вокруг всех комментариев <font color="#FF8000"> и </font>! Это не может не радовать. Ну, дальше всё понятно.

function strip_comments ($code) {
  // находим комментарии
  $code = highlight_string ($code, true);
  // вырезаем их
  $code = preg_replace (
    '/&lt;font color="#ff8000"&gt;(.*?)&lt;/font&gt;/i',
    '', $code);
  // вырезаем все теги, которые расставил хайлайтер -
  // больше они нам не нужны
  $code = preg_replace ('/<(?!?)(.*?)(?&lt;!?)&gt;/', '', $code);
  // заменяем расставленные хайлайтером всюду
  // неразрывные пробелы на обычные
  $code = str_replace ('&amp;nbsp;', ' ', $t);
  // восстанавливаем то, что там было раньше
  $code = unhtmlentities ($t);
}

5 строк.

Update: Благодаря этому собранный Plif из 92-килобайтного файла превратился в 77-килобайтный. Мелочь, а приятно.

Всё никак не успокоются

Люди, если я сказал, что Flash сосёт, значит так и есть, и спорить со мной не нужно.

Забавно, что многие, прочтя параграф, пытаются меня уличить в том, что не не хочу использовать Flash, а просто не умею его использовать. Следующий абзац вы можете считать официальным заявлением:

Да, я не умею использовать Flash.

Я не только не умею его использовать, но и не хочу учиться, потому, что нафиг это не надо. И не нужно меня уверять, что на Flash’е возможно сделать нормальный интерфейс («ты просто не знаешь возможностей Flash, на нём можно сделать всё»). Я убежден, что это не так. И исхожу я из одной очень простой посылки:

Я никогда не видел нормальных интерфейсов на Flash.

Это значит что либо: а) их в принципе на нём нельзя сделать; либо б) их на нём никто не умеет делать (что в принципе приравнивается к а); либо в) люди, которые умеют делать на нём хорошие интерфейсы, не делают их на нём (видимо, есть другие средства, которые чем-то лучше).

Таким образом, я прав.

Если вы придерживаетесь иного мнения, найдите пожалуйста флешевый сайт, на котором по правой кнопке мыши вылетает стандартная менюшка браузера, в которой есть пункт «Открыть в новом окне». Любой комментарий без такой ссылки будет рассматриваться как подтверждение моей правоты.

Модная специальность

Я учусь в ЮУрГУ (Южно-Уральский Государственный университет). ЮУрГУ — самый крупный ВУЗ в стране (40000 человек; для сравнения в МГУ — 27000). Разумеется, ничего хорошего в этом нет, но сейчас не об этом.

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

Разумеется, каждый факультет считает своим долгом постоянно открывать новые специальности. И разобраться сейчас в имеющейся их куче практически невозможно. Хорошо еще, если поступающий знает, что он хочет изучать... Большинство же людей в 11-м классе понятия не имеет, куда им поступать, потому, что у них нет никаких интересов, кроме, быть может, чиста побухать с дружбанами. Таким образом получается, что специальность многие люди себе выбирают по названию. Других критериев у них просто нет.

Факультеты же эти названия неустанно придумывают. Им же надо, чтобы народ шел. Названия придумывают обязательно громкие, со словами «международный», «информационный», «экономический» и обязательно «менеджмент». Например, «международный информационно-экономический менеджмент». Ах, да. «Со знанием английского языка». Такие специальности называются «модными». Там учатся самые модные люди.

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

Я это всё почему написал? Потому, что задолбали люди, которые учатся на модных специальностях и при этом свято верят в то, что получают образование.

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

Blackout 2003

Все видели по телеку как в Америке отключили свет? Мы в это время находились в NJ, где свет был. Узнали мы про blackout на следующий день и решили посмотреть, что по этому поводу говорят местные новостные программы.

Новостные программы у них — это как у нас программа «Окна»: супер-шоу для тех, кому совсем нечем заняться, а хочется поглазеть на что-нибудь. По крайней мере на MSNBC и FoxNews.

И вот значит, на MSNBC показывают нам программу Blackout 2003 (типа «Вырубон света 2003»; она выходила в эфир еще неделю). Показывают анонс: «Всего через 5 минут официальное заявление Джорджа Буша по поводу blackout 2003, stay tuned» . Реклама. Студия, наезд на девушку. Девушка: «Прямо сейчас вы увидите официальное заявление Джорджа Буша по поводу blackout 2003». Отбивка с текстом «Blackout 2003». Джордж Буш:

«This blackout... is a wake-up call for the whole nation... to make sure... that all our power plant systems are working properly... and... take care of them if necessary». (10-15 секунд)

Аплодисменты. (10-15 секунд)

Просто открыл глаза американцам на задачи, которые стоят перед нацией!

Опрос

  1. Является ли число 0 чётным?
  2. Является ли функция f(x)=1 чётной?
  3. Является ли число 1 простым?
  4. Является ли число −1 простым?
  5. Чему равен квадратный корень из −1?
  6. Чему равен факториал нуля?
  7. Чему равен остаток от деления нуля на ноль?

Update (17.06.2005): Правильный ответ

Штрих Шеффера

Это абсолютно необъяснимо, но штрих (!) Шеффера — это отрицание конъюнкции, а вовсе не дезъюнкции, в то время как любой первоклассник вам скажет, что штрихом в языках программирования обычно обозначается именно дезъюнкция. Раз такое дело, то:

!A = A|A (впрочем, независимо от)
AB = ! !(AB) = !(A|B) = (A|B)|(A|B)
A+B = ! !(A+B) = !(!A!B) = (A|A)|(B|B)

Простите за знак восклицательный, но так проще, чем палку над буквой рисовать. Так, значит отрицание дезъюнкции — это стрелка Пирса. Что ж, это можно запомнить. Вот так:

Стрелка Пирса

Таблица истинности для A↑B похожа на разделяющую их стрелку. Теперь, наверное, больше не буду путать их. Для стрелки Пирса:

!A = A↑A
AB = ! !(AB) = !(!A↑!B) = (A↑A)↑(B↑B)
A+B = ! !(A+B) = !(A↑B) = (A↑B)↑(A↑B)

Про антикву и гротеск

Заметка впервые опубликована на сайте ДиаLOG, сюда частично скопирована 22 июля 2005

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

Засечки

Оттого, что многие «засечковые шрифты» (aka антиква) довольно красивы, (причем вероятность обнаружить среди антиквенных шрифтов красивый ощутимо превышает вероятность найти таковой среди гротесков) читать их легче не становится. Как видно из иллюстрации, засечки представляют собой визуальный шум, также известный как графический мусор. Это смелое утверждение, но оно не безосновательно: ясно ведь, что засечки не добавляют букве понятности; они избыточны. В букваре буквы рисуют без засечек. Самый главный ГОСТовский шрифт, который мы проходили по инженерной графике, тоже без засечек.

Чем мельче кегель, тем труднее отличить основные штрихи от засечек, капель и прочих завитушек. Вот, например:

Сравните Tahoma и Times New Roman

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

Данная заметка, как а) вы успели заметить, б) всегда и бывает, выражает личные «мысли и чувства автора» по данному вопросу. Разумеется, я не претендую на объективность. Но я решительно не понимаю, как так может быть, что кому-то легче читать Таймс, чем Тахому. Посмотрите на картинку и объясните мне. Пожалуйста.

Ссылки по теме:

Мнение: «Опыт показывает, что шрифты без засечек проще читать на экране, а шрифты с засечками — на бумаге» (c) W3 consortium (интересно, почему?).

О смысле жизни

Заметка впервые опубликована на сайте ДиаLOG, сюда частично скопирована 22 июля 2005. В заметке упоминается гостевая книга; речь идёт о гостевой книге ДиаLOGа, ныне недоступной в интернете

Однако ж, о смысле жизни.

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

Некоторые люди ищут смысл жизни. Дескать, для чего же мы живем? Меня лично этот вопрос несколько настораживает. Еще меня настораживает вопрос «что было до большого взрыва?» В подобных вопросах есть одна проблема: на них невозможно ответить, так как даже не понятно, что спрашивается.

Примерно об этом же высказывался в гостевой книге Tw0retz (запись 102 на момент написания этой заметки): «Чтобы чего-то измерить, нужно сначала знать что и где мерить, и что даст это измерение». Вот! Так что давайте разбираться.

Что такое смысл? Не совсем синоним, но: цель. Почти так. Почти, потому, что смысл относится к действию, а цель — к субъекту; сравните: «какой смысл собирать коллекцию табуреток?» и «с какой целью ты собираешь коллекцию табуреток». Т. е. цель — это смысл лично для кого-то.

Таким образом, для того, чтобы оперировать термином «цель» в значении «смысл», нужно отыскать субъект. Или субъекта. Как правильно? Так вот. Если субъект — это человек, тогда вопросс меняется таким образом: С какой целью человек живет? («Для чего ей снится сон?» (c) Михална.) Как известно, человек начинает осознавать тот факт, что он живет, уже после того, как начинает жить. Так что он не может иметь цели всей жизни. Ведь никто не может сказать, с какой целью он стал жить! Никто (о-па!) не участвовал в процессе собственного зачатия. Никто сам себя не рожал. Никто не думал: «Так. Неплохо бы мне пожить некоторое время: мне ведь надо сделать то-то и то-то». Или думал кто? Поднимите руки.

Стало быть, цели могут возникать только по ходу жизни. Можно их называть микроцелями. Допустим, сейчас моя микроцель — дописать, наконец, эту заметку. Это микросмысл моей жизни. Можно его называть смыслом жизни, учитывая, что минут через 15 у меня его уже не будет? Очевидно, нет. Значит, с точки зрения такого субъекта как человек, в жизни нет смысла. Заметьте, и быть не может.

Если рассмотреть другого субъекта, скажем, абстрактного Бога, то получается, что вообще ничего не ясно: С какой целью Бог сотворил жизнь? Учитывая сомнительность того, что Бог сотворил жизнь, того что Бог вообще существует и того, что жизнь вообще была сотворена (т. е. возникла не случайно), приходим к невозможности внятного ответа на этот вопрос. Такова была воля Божья. Типа.

Другие субъекты ко мне в голову в 2:30 ночи не приходят. Наверное, это оттого, что их нет.

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

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

Меня удивляет, что люди жалуются но то, что их жизнь не имеет смысла. Жизнь его и не может иметь! А микросмыслы человек создает себе сам. Так что не нужно жаловаться на отсутствие смысла жизни; его наличие бы все только испортило. Просто придумайте себе большой микросмысл, этакий миллисмысл (это в 1000 раз больше) и живите этим. (Ну не гений ли? Всё. Спать пошел.)

50% + 1 голос

Заметка впервые опубликована на сайте ДиаLOG, сюда частично скопирована 28 окт 2005

Почему некоторые люди критерием для выигрыша в выборах называют 50% + 1 голос? Откуда такая уверенность, что в стране живет четное число человек, т. е. 50% составит целое? По-моему, критерий, это v ≥ (p+1) / 2, где v — число голосов отданных за человека, а p — численность населения, или, по-другому, 50% + 0,5 голоса.