В общем-то ничего нового, просто всё очень чётко и ёмко сформулировано.
Цитата дня
Хорошее наблюдение Вадима Артамонова:
Сейчас многие употребляют слово «контент» по тому же принципу, по которому системный блок называют «процессором»
Ugly Building. Beautiful Browser
Около здания, где базируется Opera Software, установлен вот такой штендер:
Самые комментируемые заметки
Некоторые интересуются, почему самые комментируемые заметки за последний месяц как-то странно отсортированы:
- сначала идёт заметка с 28-ю комментариями, потом — с 46-ю, после этого — с 18-ю;
- сначала идёт заметка за 1 сентября, потом — за 22 июля (sic!), потом — за 29 августа.
По какому критерию они сортируются?
Surprisingly enough, они сортируются по количеству комментариев, написанных за последний месяц (30 дней).
Про вероятность
Как мы уже знаем, есть две интересных категории граждан:
- люди, которые не понимают того, что 0,(9) = 1;
- люди, которые не понимают того, что 0^^0^^ = 1.
Не менее интересную категорию составляют те, кто не понимает, что:
- событие, вероятность которого равна 1, в общем случае не является достоверным (то есть, может и не произойти);
- событие, вероятность которого равна 0, в общем случае не является невозможным (то есть, может и произойти).
Чтобы как-то связать это с предыдущими двумя категориями, скажу, что, например, предел функции x^^y^^ в точке 0, если мы не знаем с какой стороны точка (x; y) движется к нулю, равен единице с вероятностью 1. Некоторые могут сказать, что эта вероятность равна 0,(9), а не 1. Но мы-то знаем, что это одно и то же.
Обновил типографскую раскладку
В обновлённой типографской раскладке, кажется, исправлена проблема с Caps Lock’ом, который отжимался только Shift’ом.
Об ООП
Наконец-то сформулировал, что меня не устраивает в объектно-ориентированном программировании.
Объектно-ориентированное программирование — это не парадигма, а просто синтаксис, но многие его считают парадигмой и чуть ли не молятся на него.
Инструкции процессор пока что исполняет по очереди, ну и ещё он умеет прыгать по разным адресам. Возможность в языках программирования использовать всевозможные ветвления и остроумные циклы вроде foreach вместо повсеместного goto — это не парадигма, а просто удобный синтаксис. Иногда нам удобен if, иногда — case, иногда — while, иногда — for, а иногда, как ни крути, goto. Но всё это сводится к jmp, jz и подобным.
Возможность использования подпрограмм — это ещё чуть более сложная абстракция от прыганий по адресам в памяти, на этот раз ещё и с использованием стека. Она настолько важная, что реализована прямо в железе, и поэтому сводится к call и ret.
Но ничего принципиально нового в теорию алгоритмов все эти конструкции не вносят, они лишь дают возможность формулировать эти алгоритмы более наглядно. Глупо, скажем, вообще всё, что угодно, в программе реализовывать через функции. Для некоторых задач удобнее макросы, а для некоторых даже простой copy/paste кода. Синтаксически операторы часто удобнее и нагляднее функций: a = b+c понятнее, чем a = sum (b, c);
Всё то же самое и с ООП. Объекты — это штуки, которые дополняют список операторов, функций, макросов и всякого другого. Это ещё один вид абстрации от реальности, который иногда удобен, а иногда — нет. Поскольку это всего лишь синтаксис, то использовать его нужно только тогда, когда это удобно, а не вообще всегда.
Проиллюстрируем сказанное на примере:
// a = sin (b);
s = new Sinusor ();
s -> angle = b;
s -> initiateEvaluation ();
a = s -> extractValue ();Выбор стоматологов
Более 85% стоматологов России выбрали* зубную щётку Reach!
* когда им предложили на выбор: зубную щётку Reach или дохлую крысу
Смайлы
В комментариях к недавней заметке про «вушники» всплыла тема правильного оформления текста со смайликами.
Честно говоря, меня эта тема волнует слабо. В отличие от Лебедева, я не считаю использование смайликов в хоть сколько-то серьёзном тексте уместным. Например, у себя в блоге смайлики я не использую вообще (ответы на комментарии не в счёт). Здесь мне ближе позиция Смирнова:
Конечно, проще поставить двоеточие и скобку, чем пытаться выразить всё языковыми средствами. Смайлик — слишком грубый способ. Это всё равно, как в дешёвых комедиях в «смешных местах» вступает смеющийся хор голосов за кадром.
Интересно, кстати, что и сам Лебедев в своих параграфах смайлики не использует находя, надо полагать, иные способы донесения до читателя своего отношения к написанному.
На мой взгляд, смайлики стоит использовать только при общении — по электронной почте или в болталке. Тут я чаще всего придерживаюсь подхода Ромы Воронежского, когда считается, что смайлик заменяет знаки препинания :-) Если предложение заканчивается на вопросительный или восклицательный знак, то смайлик я пишу после них. А вы? ;-) Приоритет над любыми соображениями имеет следующее правило:
Главное правило на все случаи жизни: написал, посмотрел, если похоже на говно — напиши как-нибудь иначе.
Естественно, что всё это справедливо только для текстовых смайликов, так как только они имеют право на существование. Графические смайлики являются образцом уродства, а их использование в тексте — плевком в лицо читателю (не говоря уж о дизайнере шрифта). Когда форумы или болталки автоматически заменяют нормальные смайлики на дебильные графические, это вызывает желание пристрелить разработчиков.
Вообще, тот факт, что смайлики смотрятся в тексте немного чужеродно (и возникает сложность в их аккуратном размещении) нам на пользу: лишний повод задуматься об их уместности и, если повезёт, отказаться от них.
Обновил два трека
Немного причесал два своих старых трека, которые были хороши, но звук мне нравился не очень:
- Glowing Edges (MP3, 10,5 MB)
- Impossible is Everything (MP3, 8,7 MB)