Любой русский программист после пары минут чтения кода, обязательно вскочит и произнесет, обращаясь к себе: «переписать это все нафиг». Потом в нем шевельнется сомнение в том, сколько времени это займет, и остаток дня русский программист потратит на то, что будет доказывать самому себе, что это только кажется, что переписать — это много работы. А если взяться и посидеть немного, то все получится. Зато код будет красивый и правильный. Hа следующее утро русский программист свеж, доволен собой и без единой запинки докладывает начальству, что переписать этот кусок займет один день, не больше. Да, не больше. Hу, в крайнем случае, два, если учесть все риски. В итоге начальство даст ему неделю и через полгода процесс будет успешно завершен. До той поры, пока этот код не увидит другой русский программист. читать дальше

Страна должна знать своих героев

Разработчики IE7, индусы программисты, быдлокодеры

Недавно мой знакомый столкнулся с проблемой передачи через AJAX переменных, содержащих «&».

Проблема c амперсандом

Передаем пару переменных (var1 и var2) через AJAX методом POST или GET. Используем библиотеку jQuery.

$.ajax({
  type: 'POST',
  url: 'some.php',
  data: 'var1=preved&var2=medved',
  success: onAjaxSuccess
});

Проблемы начинаются, если в переменных встречаются амперсанды (символ &).
Например

data: 'var1=chip&dail&var2=medved'

Таким образом, амперсанды «ломают» массив параметров, т.к. & - разделитель параметров в URL.
Более того, данной проблеме подвержен не только jQuery, но и «голый» AJAX (без использования библиотек).
Решение проблемы

Семантика (фр. sémantique от греч. σημαντικός — обозначающий). Семантика в верстке — это совокупность смысловых отношений, возникающих в документе. Не понятно? На примерах ниже все станет ясно.

Зачем нужна семантика

  • код будет понятен не только автору, но и тем, кто будет работать с ним после него
  • работа с DOM'ом становится проще и доступнее
  • семантический код гораздо лучше читается поисковиками (вспомните про h1)

Как сделать семантическую верстку? Очень просто: используйте теги по смыслу! Если у вас есть заголовок - используйте для него теги h1-h6. Если абзац/параграф – используйте тег p (paragraph). Примеры семантической верстки

Случайные числа

Теория

Технически термин «генератор случайных чисел» – это абсурд, так как числа сами по себе не являются случайными. Например, 100 – это случайное число? А 25? Что в действительности означает этот термин, так это то, что создается последовательность чисел, появляющихся случайным образом. Это порождает более сложный вопрос: что такое последовательность случайных чисел? подробнее о случайных числах

Рыба для сайта

Чтобы показать заказчику эскизы сайта, нужно где-то найти тексты. Как правило, текста во время разработки текста нету. Разработчик делает рыбу. Если в качестве рыбного текста использовать слова «текст, текст, текст», макет будет выглядеть неестественно. Для решения проблем с рыбным тектстом есть замечательный сервис Яндекс.Рефераты.

Служба Яндекс.Рефераты предназначена для студентов и школьников, дизайнеров и журналистов, создателей научных заявок и отчетов - для всех, кто относится к тексту, как к количеству знаков. Каждый текст Яндекс.Рефератов неповторим.

Пример: «Почему абразивна дистилляция?»

Раньше ученые полагали, что трехкомпонентное образование распознает диэтиловый эфир, однако между карбоксильной группой и аминогруппой может возникнуть солевой мостик. Полоса поглощения гомологична. Комплекс-аддукт взвешивает рацемический сахар, как и предсказывает основной постулат квантовой химии. Окисление химически полимеризует органический гомолог, тем самым открывая возможность синтеза тетрахлордифенилдиоксина...

Для проверки знаний верстальщика даем 2 макета: простой и сложный.
смотреть макеты

Недавно появился на свет новый сервис для поиска попутчиков в путешествие, а также поиска жилья. Идея сайта очень похожа на зарубежную идею couchsurfing'а. Интерес к нему вызван прежде всего тем, что он сделан в духе cовременных web 2.0 технологий. Благодаря использованию технологии Ajax перезагрузок страниц не происходит. Система личных сообщений выполнена в стиле Gmail. подробнее о сервисе

NULL означает отсутствие, неизвестность информации. Значение NULL не является значением в полном смысле слова: по определению оно означает отсутствие значения и не принадлежит ни одному типу данных. Поэтому NULL не равно ни логическому значению FALSE, ни пустой строке, ни нулю. При сравнении NULL с любым значением будет получен результат NULL, а не FALSE и не 0. Более того, NULL не равно NULL! Довольно часто программисты избегают null-значений и для нулевых полей в базе выставляют значения по умолчанию типа 0, '' (пустая строка). Во-первых, это неправильно с точки зрения семантики: 0 все-таки означает наличие информации. Во-вторых, использование подобных дефолтных значений может привести к ошибкам. Приведу пример

Проблема: Боты спамеров с помощью регулярных выражений находят на страницах сайта email-адреса и заносят их в свою базу. Нужно каким-то образом нарушить обнаружение email. решение?

High Performance MySQL, Second Edition Вышло 2-ое издание книги High Performance MySQL. Во-первых книга была почти целиком переписана. Во-вторых ее также можно назвать книгой сообщества, поскольку авторы собрали вместе официальные, а также просто используемые сообществом средства, чтобы объяснить на их примере как работает MySQL. Многие из тем также обсуждались в комьюнити: оптимизация и индексирование, масштабируемость, расширенные возможности SQL, производительность. Кроме того, в книге авторы обясняют как писать технические книги.

скачать High Performance MySQL, Second Edition (англ, pdf)