19 см.
[Most Recent Entries]
[Calendar View]
[Friends]
Below are the 20 most recent journal entries recorded in
penis_19_cm's LiveJournal:
[ << Previous 20 ]
| Sunday, November 16th, 2008 | | 8:34 pm |
Разница между UNIQUE и PRIMARY KEY
Оказывается, некоторые не знают. Разница между UNIQUE INDEX и PRIMARY KEY невелика:
- В таблице может быть только один индекс, объявленный как PRIMARY KEY и до ебени матери UNIQUE индексов, хоть по пять штук на одно поле, если вы совсем дебил
- Поля, которые входят в состав индекса PRIMARY KEY автоматически определяются как NOT NULL
А у кого-нибудь есть сведения о сравнительной производительности этих двух типов индексов в, скажем, mysql? | | Tuesday, October 14th, 2008 | | 7:07 pm |
Оказывается, если в PHP подключать какие-либо файлы при помощи конструкции @include('child.php'), то все сообщения об ошибках внутри child.php будут подавляться. Что, в принципе, и похуй, но лишний раз доказывает вред собаки перед вызовом функции. | | Wednesday, March 26th, 2008 | | 5:20 am |
alert(error); return false;
Довольно распространённая в javascript ситуация: на <a href='#'> вешается onclick='return do_something()'. Функция do_something() при этом всегда должна возвращать строго false, иначе после её выполнения страница будет прыгать наверх, так как будет происходить переход на '#'. И также часто в таких функциях встречается конструкция if(something == wrong){ alert('Error!'); return false; }.
Придумал, как её можно красиво сократить: if(something == wrong) return !!alert('Error!');
(Пояснение для идиотов: undefined !== false. alert() всегда возвращает undefined. !undefined = true; !true = false.) | | Wednesday, March 5th, 2008 | | 10:54 am |
Заголовок Cookie
Сегодня воевал с наистрёмнейшим багом. Есть софт, который периодически общается с сервером Живого Журнала, отправляя ему разные HTTP-запросы. Авторизация в ЖЖ работает на кукисах, и с каждым запросом нужно передавать ему пачку этих авторизационных кукисов. Раньше всё HTTP-общение обслуживалось неким самописным классом, и тут возникла нужда переехать на Zend_Http_Client. Ну, хуйня, интерфейсы похожие, переписал код, и вдруг отвалилась авторизация. Сравниваю заголовки запросов от старого кода и от нового - близнецы братья. Но кукисы от старого класса ЖЖ воспринимает, от нового - нет. Чуть не ебанулся умом, пока раскопал причину. HTTP-заголовок Cookie, как известно, выглядит как строка "Cookie: cookie_1_name=cookie_1_value; cookie_2_name=cookie_2_value;". Все нормальные браузеры (и мой старый HTTP-класс в том числе) после точки с запятой, разделяющей разные кукисы, ставят пробел. Zend_Http_Client пробела не ставит, впрочем, RFC-2109 про эти пробелы или необходимость их отсутствия ничего определённого не говорит. Всем нормальным сайтам тоже глубоко насрать, сколько там есть пробелов. А ЖЖ, блядь, оказывается, из-за отстуствия этого сраного пробела кукис перестаёт видеть вообще, и, следовательно, меня и не авторизует. В связи с этим, коллектив веб-студии "Пароход" от всей души желает ЖЖ-шному программисту парсера кукисов, чтобы у него хуй во лбу вырос. | | Sunday, March 2nd, 2008 | | 1:52 pm |
Пусть благословен будет тот день, когда я купил второй монитор. Это, граждане, пиздец как удобно. В Фотошопе: на основном мониторе только сам документ, на соседнем - все вспомогательные окошки (слои, история, инфо, цвета, свойства шрифта и абзаца, Layer Comps) Во время программирования: на одном экране - putty с mysql-клиентом и справочники, на другом - редактор кода и браузер. Во время вёрстки - на одном экране - IE, на другом - Firefox. Для музицирования: на большом экране - Adobe Audition, на малом - MIDI-секвенсор, системный микшер, частотный или фазовый анализатор Audition'а. На втором мониторе также всегда живёт аська, winamp, а на его рабочем столе - куча текстовых файлов, каждый из которых - какая-то конкретная задача. Когда задача выполнена, она переселяется в корзину. И только благодаря тому, что нажимать на Alt-Tab стало нужно в 50 раз реже и всё перед глазами, производительность труда увеличилась на 5%! | | Monday, February 25th, 2008 | | 11:08 am |
Языки программирования с русским синтаксисом, это, конечно, полный пиздец: ПЕРЕМЕННАЯ $радиус = 1979; ЕСЛИ($радиус < 0) { ПЕЧАТЬ "Ошибка в данных\n"; ВЫХОД } ПЕЧАТАТЬ "Площадь круга с радиусом $радиус = " . $пи * $радиус * $радиус . "\n";Но я вот тут прикинул и понял, что на сочинение английских имён переменных и функций у меня тратится времени, всё же, больше - нужно в уме перевести русскую мысль на ущербный и не родной английский язык, да и запомнить "ShowComments($post_id, $thread, $is_moderator)" значительно сложнее, чем "ВывестиКомментарии($пост, $ветка, $я_редактор)". Также всем известно, что нормальные программисты живут только в России, а некириллические страны населяет тупая биомасса, пригодная, разве что, для чистки сортиров. Ну, написали они глючный-преглючный Windows и понятный только киберкрысам Linux, подумаешь, достижение, а единственная в мире полезная программа - пасьянс "Паук" - была написана русским сотрудником Microsoft Иваном Фёдоровичем Финкельштейном. О криводырейших монструозных спецификациях HTML, CSS, HTTP я вообще молчу - это же полнейшее отсутствие внутренней логики и абсолютное неумение проектировать расширяемые информационные структуры. Поэтому я считаю, что когда мы поработим все черножопые народы, нужно будет дать задание специалистам из нашего ФСБ написать новые спецификации для совершенно новых компьютеров, которые будут работать на кириллице и создать истинно русский процессор, который бы интерпретировал кириллические программы в реальном времени. Протокол HTTP нужно будет заменить новым кириллическим протоколом, в котором для скачивания 100-байтного gif-файла не нужно будет отправлять на сервер килобайт заголовков, а HTML вообще законодательно запретить (за использование - расстрел!) и заменить его стандартом ГОСТ-1842-746, который будет поддерживаться одним-единственным, зато одинаковым у всех, браузером. Эффективность труда IT-работников возрастёт раз в пятьдесят. Вы спросите у любого верстальщика, сколько времени он пишет код, а сколько - занимается кроссбраузерностью. | | Monday, October 29th, 2007 | | 1:38 am |
А прикольная хуйня этот ваш C#. Ебанутая, но прикольная. | | Tuesday, October 9th, 2007 | | 7:29 pm |
echo -e
Элементарная, в общем-то, вещь, но вдруг кто не знает. Допустим, подключились вы к юниксовому серверу по ssh или telnet и запустили там какой-нибудь очень длительный процесс, скажем, mysqldump большой таблицы, а пока этот процесс выполняется, не грех пойти и, скажем, ЖЖ почитать или ещё чего поделать бесполезного. Но как узнать, что запущенный вами процесс завершился, если он только в терминал и пишет, не смотреть же на окошко PuTTY постоянно. А очень просто: $ mysqldump -p big_fucking_table | gzip > data.sql.gz && echo -e \\aecho -e \\a выведет в терминал управляющий код BEL, который большинство современных терминальных клиентов поймут и скажут в колонках "Быдынь!" | | Friday, September 14th, 2007 | | 5:53 am |
Господи, .mht-файлы от Эксплорера-то, оказывается, есть ни что иное, как multipart MIME-message! Вот же ж, придумали и стандартизировали одни прыщавые долбоёбы онанистический формат, а корпорация-гигант подхватила. | | Tuesday, September 11th, 2007 | | 10:31 pm |
Однако, провинциальный фрилансер, сука, наглый пошёл. Помнится, на заре моей деятельности, я всегда заказывал разный аутсорс в глубинке - выходило значительно дешевле, чем в Москве или Петербурге. Сегодня разослал всем своим фрилансерам - не нарисует ли кто-нибудь дизайн для простенького сайтика. Толстый 30-летний дизайнер из Нижнего Новгорода запросил $300, мать троих детей из Казани - $500, симпатичная москвичка - $100. А всё потому, что вся Россия твёрдо знает, что мы тут в своих ёбаных столицах жрём исключительно чёрную икру с хенесси и миллионы лопатами гребём. | | Sunday, August 26th, 2007 | | 12:16 am |
Экзаменационное задание
Придумал задачку для собеседования с программистом. Есть таблица: CREATE TABLE test ( id int not null unique key, ... );
INSERT INTO test (id) VALUES (1), (5), (4), (3), (2), (100), (101), (200);
Нужно найти минимальный незанятый id (в нашем примере - это 6). Чего думаете, просто/сложно? Ситуация, кстати, не поверите, из жизни, про таблицу, где нельзя использоавть auto_increment. | | Saturday, August 25th, 2007 | | 11:33 pm |
Сказка про php
В тридевятом домене, на тридесятом mysql-сервере жила-была вот такая таблица: CREATE TABLE test ( i int not null, j int not null );В один прекрасный день злая волшебница вставила в неё одну единственную строку: INSERT INTO test (i, j) VALUES (1, 10);Прекрасный принц решил посмотреть, что получится, если выполнить следующий код: <? $r = mysql_query("SELECT * FROM test"); $res = mysql_fetch_assoc($r);
$mask = $res['i'] | $res['j'];
printf("\$mask = %04b", $mask); ?>Думаете, он получил 0b0001 | 0b0101 = 0b0111? А вот хуй вам в сраку, мои маленькие слушатели, прекрасный принц увидел на выходе "0101", чему, впрочем, и сам был зело удивлён. А всё оттого, что ( башкой надо думать ) | | Thursday, May 10th, 2007 | | 3:15 am |
Ёбаная сука нахуй уёбищная хуйня блядь! Весь день проебался с простейшим скриптом, расчленил JsHttpRequest и почти уже убедился в собственной гидроцефалии, пока не понял, что этот ёбаный JsHttpRequest не работает с этим ёбаным php 5.2.2, и, кажется, из-за закрытого за давностью лет бага в php. Не, ну ёб твою мать, согласитесь? Update: Новой версии JsHttpRequest, кстати, этот баг до пизды. | | Friday, March 16th, 2007 | | 10:36 pm |
Господа пэхапешники, подскажите, пожалуйста. Смотрите. Есть класс. При вызове конструктора можно как-нибудь сделать так, чтобы в случае ошибки класс не создался вообще? Ну, кроме exit() в конструкторе, конечно :) return из конструктора вообще какой смысл имеет? Да, это должно работать и в PHP4 и в PHP5. | | Tuesday, March 13th, 2007 | | 8:21 pm |
Величайшим уебанством я почитаю allways-on-top splash-screens программ. На кой хер мне любоваться заставкой загружающегося фотошопа, когда в это время я могу почитать френдленту, например? Нахуя многозадачность-то вообще выдумали? | | Wednesday, January 17th, 2007 | | 11:23 am |
| | Monday, January 8th, 2007 | | 12:53 am |
< div style='background-color:blue'><option ...
Интересно IE воспринимает вот такой код: <form> <div style="background-color:blue;"><select><o ption>лошадка</option><option>чует</opti on><option>майонез</option></select></di v> <hr> <div style="background-color:blue;"><select><o ption>лошадка</option><option>чует</opti on><option>майонез</option></select> </div> </form> Разница между двумя div'ами только в пробеле после </select> Если пробела нет - IE кладёт на background-color: | | Sunday, October 1st, 2006 | | 4:51 pm |
А у меня тут на пяти серверах в трёх странах пять роботов-ебоботов кушают длиннющую базу, каждый - свой кусочек, три сервера по возрастанию id, два - по убыванию. Скоро произойдёт великая смычка. Наблюдаю за этим процессом, и так прёт :) Вот всегда получал какое-то особенное удовольствие от разглядывания больших потоков информации. | | Monday, September 18th, 2006 | | 1:53 pm |
strtr()
Одним хорошим людям один чувак сделал сайт. Науке неизвестно, какие программные продукты он использовал для создания оного, но в результате на одной странице весь русский текст перевёлся на птичий язык, да так и захардкодился при помощи entities. То есть, выглядеть она стала как "Êàê ïðèÿòíî ïîñëå òÿæ¸ëîé ðàáî÷åé íåäåëè", как не переключай кодировку в браузере. Мне эту страницу нужно перевести в читаемый вид. Я знаю лишь то, что текст начинается со слов "Жил был кот". Имея, таким образом, уже 8 букв, расшифровываю дальше. Увлекательное, оказывается, занятие, навроде кроссворда :) Я могу вам показать промежуточный результат, а вы можете доставить великую радость своим близким, если вслух и с выражением попробуете это прочесть: ( Read more... ) | | Thursday, September 7th, 2006 | | 6:21 pm |
Вот так чувствовал себя главный сервер лжплюса вчера: ( 2 графика )А вот так - 11 августа, когда я праздновал свой день рожденья :) ( ещё 2 графика ) |
[ << Previous 20 ]
|