Позднее Ctrl + ↑

Демократия

Пришел аналоговый спам:

Все на выборы!

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

Ну и, имя выбираемого президента могли бы вписать, кстати.

Как сдать экзамен

Если вы до сих пор не сдали сессию: как это сделать (смешно):

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

Денвер и PHP 5

Здесь можно скачать PHP 5-плагин для Денвера. Естественно, beta. Ставится как CGI, чтобы по-прежнему дружить с PHP 4.

Мнение

Мнение: я точно такой же, как и Смирнов, только вторичен, поэтому неинтересен.

М?

Форсаж-2

Посмотрел художественный фильм «Форсаж-2». В луших традициях первой части: полное гавно. Хотя, снято местами зашибись.

Фамилия режиссера — Singleton. Круто. Хотя, Abstract Factory было бы еще круче.

Highlight string

Когда-то давно я придумал «крутой способ оптимизайции скриптов».

Дак вот, если кому-то интересно, всё это работает до тех пор, пока в скриптах не появляется heredoc (<<<END;/END). Волшебная функция highlight_string () как-то очень странно подсвечивает скрипты с heredoc, и, как следствие, весь оптимайз работать перестает. Решение — заменить heredoc на кавычки.

Прощёное воскресенье

Я всегда считал, что традиции сосут. Делать что-то только потому, что так принято — идиотизм. Говорить сегодня всем «я тебя за всё прощаю и ты меня прости» означает просто тупо, как робот, по алгоритму, не вдумываясь делать что-то, чему тебя ещё мама/бабушка/прабабушка научила N лет назад. А если вдуматься:

Когда люди говорят «я тебя за всё прощаю» они: а) не вспоминают ни одной провинности собеседника; б) если они ещё не простили его за что-либо, то они не прощают его за это на самом деле, а только так говорят.

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

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

Вася вряд ли помнил о том, что позавчера сломал Петин велосипед, когда просил последнего «за всё его простить». Точнее говоря, даже если он об этом и помнил, вряд ли он хоть как-то связывал свою просьбу и этот инцидент.

Вы робот? Ха-ха-ха.

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

Венгерская нотация

Так, вспомнилось.

Всё хорошо в меру. Та же венгерская нотация — отличная идея, пока ей не начинаешь пользоваться слишком активно. Здорово, когда все формы начинаются на F, все кнопки — на B, а пункты меню — на MI. Отлично, когда массивы начинаются на A, а указатели — на P...

Проблемы начинаются тогда, когда нужно сделать указатель на массив пунктов меню... Эти проблемы выглядят примерно так: «PAMI». Microsoft похоже на этом деле совсем свихнулись, чем иначе объяснить существование такого явления как LPCTSTR? Парсинг [человеком] строки «LPCTSTR» занимает в 10 раз больше времени, чем парсинг строки «LongPtrToString», а набирать нужно второе всего лишь в полтора раза дольше... То же самое — «LPCIS» и «LongPtrToCompareItemStruct».

(Хотя, конечно, если вы воспитаны на Си, когда вообще всё называется через жопу (типа cprintf, inportb и strcpy), то вы скорее всего со мной не согласитесь...)

Contrived Example

В другой статье Joel пишет, что документированный исходник лучше недокументированного, и приводит исключительно дурацкий пример-доказательство. После примера:

The moral of the story is that with a contrived example, you can prove anything. Oops. No, that’s not what I meant to say. The moral of the story is that when you design your product in a human language, it only takes a few minutes...

Update: Пойдите почитайте, очень смешно:

When you don’t have a spec, what happens with the poor technical writers is the funniest (in a sad kind of way). Tech writers often don’t have the political clout to interrupt programmers. In many companies, if tech writers get in the habit of interrupting programmers to ask how something is supposed to work, the programmers go to their managers and cry about how they can’t get any work done because of these [expletive deleted] writers, and could they please keep them away, and the managers, trying to improve productivity, forbid the tech writers to waste any more of their precious programmers’ time. You can always tell these companies, because the help files and the manuals don’t give you any more information than you can figure out from the screen. When you see a message on a screen which says

Would you like to enable LRF-1914 support?

... and you click «Help», a tragicomic help topic comes up which says something like

Allows you to choose between LRF-1914 support (default) or no LRF-1914 support. If you want LRF-1914 support, choose «Yes» or press «Y». If you don’t want LRF-1914 support, choose «No» or press «N».

20 лет

Put on your thinking hat and you’ll figure out how to make a linker that produces a single executable plus a jump-table that Microsoft can patch when they find a security hole. PS. Apple had this technology in the original Macintosh, 1984.

(Отсюда; вообще там речь о том, что Microsoft казлы и не поставляют компоновщик с .NET, как я понял, но мне лично это всё до звезды)

Ранее Ctrl + ↓