Pull to refresh
9
0

User

Send message

Типы данных в MySQL (сжатый справочник для PHP программиста)

Reading time5 min
Views104K
Что и как и как много хранит MySQL?

Данный материал создан специально для программистов, которые быстро смогут определиться какой тип данных лучше выбрать для хранения значений в БД MySQL.

Для затравки, интересная цитата из мануала по MySQL:
«Максимальный размер записи в MyISAM составляет 65534 байтов. Каждый BLOB или TEXT-столбец засчитывается здесь как 5-9 байтов.» — как это трактовать однозначно не понятно. НО ясно что много-примного столбцов в таблицу на засунешь. «Извращенистые программисты» — будьте аккуратны (66000 столбцов вы точно создать не сможете).

UPD: Если найдете ошибку, или я что-то где-то утаил — отпишитесь в комментах, с удовольствием добавлю.

UPD1 В первую очередь (и самый лучший вариант для новичков) прочитать ОФИЦИАЛЬНЫЙ МАНУАЛ dev.mysql.com/doc/refman/5.0/en/data-types.html (спасибо Psyh за прямую ссылку), а здесь вырезка для META обработчиков данных (как в лице программистов так и в лице машинной обработки).

UPD2 В принципе, все что написано ниже, можно прочитать по адресу www.mysql.ru/docs/man/Column_types.html (за ссылку «русского перевода», спасибо artuska).

UPD3 Еще одну неплохую ссылку предоставил 4all: newcontinent.ru/h/mysqlc (материал на русском)

UPD4 Цитата из комментов от egorF:
# 14«Как главный редактор русскоязычного перевода доки на MySQL, я рекомендую в него не заглядывать — он уже сказочно морально устарел.»

Читать дальше →
Total votes 86: ↑62 and ↓24+38
Comments38

Растягивание кнопок в IE

Reading time2 min
Views1.6K
Как-то всегда обходил эту проблему стороной, а теперь надоело. Суть в том что при большом размере кнопки IE растягивает свой «батон» превращая его в какое-то страшнейшее убожество:



Особенно обратите внимание на прелестные артефакты прозрачности по углам.

Какие есть выходы из этой ситуации?
Дальше поподробнее
Total votes 37: ↑32 and ↓5+27
Comments43

Фонетический поиск

Reading time4 min
Views16K
Пару лет назад была задача написать для одного из сайтов такой поиск, который бы распознавал опечатки и предлагал бы исправленные запросы. Было перепробовано несколько вариантов, об одном из которых я и хотел тут написать. Поиск на основе звучания слов может стирать языковые границы, поскольку имена собственные на разных языках созвучны. Например, ищешь «Арнольд Шварцнеггер» на русском — находишь «Arnold Schwarzenegger» на английском, или ищешь «Michael Jordan» — находишь «Майкл Джордан», или ищешь «Чак Норрис» — и вдруг он сам тебя находит. Помимо поиска созвучных слов этот метод нивелирует большое количество опечаток. А то че-то задолбала попса, надо больше про инсайд…

...больше про инсайд
Total votes 123: ↑122 and ↓1+121
Comments77

css fix для различных браузеров

Reading time2 min
Views12K
Представьте себе абстрактный разговор абстрактного заказчика с абстрактным верстальщиком.

— У тебя бага в менюшке, все наверх съехало, — говорит заказчик.
— Посмотрел во всех браузерах, нету! Ты в каком смотришь? — говорит верстальщик.
— В фаерфоксе.
— Нормально все там, — говорит верстальщик, просмотрев сайт во всех версиях фаерфокса.
— Осталось бага. Если это важно, то я с мака.

Читать дальше →
Total votes 165: ↑157 and ↓8+149
Comments132

PHP + Ajax = Web explorer?!

Reading time1 min
Views3.1K
Сегодня я предлагаю одолеть одну очень популярную задачку open source методом. Задача тривиальная и давно имевшая множество решений. Но для меня лично вопрос еще открыт. А именно: веб-бейзд файл менеджер…

extplorer.png - upload images with Picamatic

eXtplorer — с помощью Ajax (ExtJS, ку-ку!) и PHP наш подопытный отлично справляется…
Что же он умеет?
Total votes 49: ↑43 and ↓6+37
Comments42

Интерфейс Javascript < == > PHP

Reading time7 min
Views11K
Удивишись, что мой хабраюмор хабралюди понимают с трудом, перешел к написанию ещё одного интересного хабратопика. :)

Хочу предложить один удобный метод для взаимодействия Javascript с PHP.

Можно в PHP добавить класс, с возможность 'удаленного' запуска оттуда функций с параметрами.
Читать дальше →
Total votes 22: ↑13 and ↓9+4
Comments21

Реверсивная клавиатура. Глобальная инновация, но не web 2.0

Reading time3 min
Views3.4K
Есть идея, на которую оформляю патент. Не определился, хочу ли я ради неё создавать стартап, но меня к этому подталкивают сочувствующие. Эпитет «глобальная» говорит лишь о том, что это не очередное копирование западной технологии. Впрочем, так уж получилось, что многие видят во мне желающего сыграть роль «потрясателя основ», что весьма «глобально» звучит и означает (по крайней мере, на ранней стадии) быть мишенью для тухлых помидоров.

Ссылка на видеоролик Реверсивная клавиатура, 3 МБ


А ведь ничего глобального я поначалу не планировал. Просто надоело печатать за столом. Я программист, а программиста иногда трудно отличить по внешним признакам от профессиональной машинистки (а на слух — от дятла). Да, надо много стучать по клавишам. Но почему именно сидя? Впрочем, и сидеть можно по разному. Откинувшись на спинку кресла, нога на ногу, на газоне в парке, и т.п.

Читать дальше →
Total votes 98: ↑95 and ↓3+92
Comments149

Псевдо-Ajax

Reading time2 min
Views1.3K
— Кросс-пост из моего блога
Веб 2.0 начал плотно входить в умы людей, которые хотят сделать себе сайт. Как частный случай — некоторые люди просто помешаны на технологии Ajax. Требуют использовать её банально везде. Естественно можно попробовать переубедить заказчика, но если это невозможно или не к месту, то можно воспользоваться уловкой, которую я назвал «Псевдо-Ajax».
Читать дальше →
Total votes 77: ↑57 and ↓20+37
Comments55

Form Spam Bot Blocker: Защищаем Web-формы без CAPTCHA!

Reading time5 min
Views8.9K


  • Вы так защитили свою форму что сами не всегда можете разобрать что нарисовала CAPTCHA?
  • Вы установили хорошую CAPTCHA и все равно время от времени у себя в feedback-е читаете новости
    о удлинителях некоторых органов, дешёвой виагре и т.п.?


Ну тогда предлагаю под другим углом взглянуть на проблему защиты Web-форм.

Читать дальше →
Total votes 96: ↑91 and ↓5+86
Comments117

Блокировка рекламы в Опере? Легко!

Reading time1 min
Views40K
  1. Берём этот urlfilter.ini (адаптированный для рунета список фильтров), и этот adblock.css.
  2. Закрываем оперу.
  3. Находим папку, где хранится профиль оперы. Обычно для никсов это ~/.opera/1, для windows — %AppData%\Opera\Opera\profile2.
  4. Кладём urlfilter.ini в папку профиля, заменяя существующий. Потом в этой папке профиля заходим в подпапку styles/user и туда кладём файл adblock.css.
  5. Запускаем оперу, и в меню вид → стиль выбираем Ad Blocker (By ELV1S).
  6. Наслаждаемся инетом без рекламы. Ну, почти. ;)

_____
  1. То есть /home/имяпользователя/.opera/.
  2. %AppData% для разных систем разное. Просто введите указаный адрес в адресной строке проводника.
Total votes 21: ↑18 and ↓3+15
Comments18

Анонимность обновилась вслед за Opera 9.5

Reading time1 min
Views976
Обновился portable пакет для анонимного серфинга в сети — OperaTor 3.0.



Изменения в новом релизе:
Opera 9.50!
— возможность игнорирования предупреждений о наличии лишних экземпляров Polipo или Tor
— в файле operator.ini — новая переменная — DisableWarnings перманентно отключающая предупреждения
— обновленный скин
— иконка в трее имеет опции: Сохранять историю сёрфинга, Перезапустить Tor.

Скачать и прочитать в оригинале.
Total votes 33: ↑23 and ↓10+13
Comments20

Ошибки реализации постраничной навигации на сайте

Reading time2 min
Views1.5K
Кросс-пост: Блог для вебмастеров
Ошибки в построении постраничной навигации по сайтуСегодня наткнулась на один сайт (уже обновили), который показался мне очень неудобным тем, как реализована постраничная навигация.
Пролистав контент вниз я по привычке нажала на _цифру_, не подозревая что это не номер страницы, а число товаров отображаемых на странице! И удивилась, когда обнаружила, что номера страниц расположены _вертикально_, слева от контента.
Это на мой взгляд самый наглядный пример как НЕ надо делать постраничную навигацию.
Давайте разберемся…
почему данная реализация - плохая идея?
Total votes 35: ↑27 and ↓8+19
Comments34

Сжатие при помощи canvas и PNG-картинок

Reading time1 min
Views2.1K
Примечание: ниже находится перевод статьи «Compression using Canvas and PNG-embedded data». Автор предлагает на суд читателей еще один способ загрузить в клиентском браузере JavaScript-библиотеку, передав при этом минимум данных. Для этого используется PNG-картинка и объект canvas. Мои комментарии далее курсивом.

Сжатая JavaScript-библиотека в виде PNG-файла

Недавно у меня появилась идея, что можно хранить исходный Javascript-код в PNG-картинке, а затем получать его через метод getImageData() элемента canvas. К несчастью, сейчас это означает, что только такой подход будет работать только в Firefox, Opera Beta и последних ночных сборках WebKit. Пока еще никто не указал мне, насколько gzip опережает данный метод по степени сжатия, я хочу сразу сказать что рассматриваемый метод никак не может быть практической альтернативой физическому сжатию. Чуть раньше сегодня я уже писал о сжатой версии в 8Кб скрипта Super Mario, для которого использовалась эта техника (подробнее можно прочитать в заметке про кодирование). Здесь я приведу лишь некоторые детали о действительном положении вещей.

читать дальше на webo.in →
Total votes 50: ↑45 and ↓5+40
Comments26

Скринкаст. Коллективный блог с элементами социальной сети своими руками.

Reading time1 min
Views1.3K
Слава хабрачеловеку rrromka!

Он снял замечательный скринкаст по созданию коллективного блога на Друпале.

Длительность записи 32 минуты, вес 110 мегабайт. Скринкаст разбит на главы, содержание с возможностью переключения между главами выводится одной из кнопок на тулбаре проигрывателя. В скринкасте приводится пример базовой настройки Друпала, об обработке напильником под свои нужды будет рассказано в следующих выпусках.

Total votes 61: ↑55 and ↓6+49
Comments26

Звук по сети

Reading time1 min
Views15K
Стоит у меня дома большой комп, используется в основном как телевизор. Кино смотрим на ноутбуке, ибо монитор не сильно больше, а стоит далеко от дивана. Поэтому приходится подключать к ноутбуку либо наушники, либо вторые колонки, либо ползать под стол и вытаскивать из компа шнур. Надоело.

Звуковые серверы в *nix есть давно, arts, esd — классика. Сейчас стандартом заслуженно становиться pulseaudio, в Ubuntu он устанавливается с релиза 8.04, а в Fedora с 8.
Читать дальше →
Total votes 53: ↑48 and ↓5+43
Comments26

Кэширование js сжатием gzip

Reading time2 min
Views4.1K
Cache — временные данные или устройство по их хранению, созданные для ускорения чтения/записи. Все программисты это знают. Ускорение загрузки web-сайтов тема обширная, начинающаяся с сервера и заканчивающаяся клиентом. К сожалению я не нашёл более-менее подходящих решений по объединению и кэшированию js-кода, поэтому к своему блогу я написал свою схему, о которой вкратце и расскажу..
Существует сжатие «packer», которое убирает все символы форматирования и переименовывает имена функций и переменных в js и предоставляет т.н. minified-версию скрипта. Все с этим прекрасно знакомы на примере больших библиотек jQuery, TinyMCE, prototype. Кроме того что код становится совершенно не читаемым, это может вызвать неработоспособность кода, когда имена переменных динамические.
Моя идея простая — разделять js/css по файлам разработчикам надо для поддержания модульной структуры. Обычно я в контроллере создаю список файлов которые надо присоединить к данному документу, вместо того что-бы прописывать это вручную в темплейте. Но теперь надо сделать так, что-бы до показа темплейта вызывалась функция кэширования, которая проходилась бы по списку, проверяла из них локальные файлы на время изменения, объединяла в один файл и создавала или перезаписывала gz-файл с именем, сформированным из md5-хэша имён входящих файлов.
Всё просто и в сумме заняло часа 4 на раздумье. Привожу метод cache_js из класса Controller.
Читать дальше →
Total votes 28: ↑24 and ↓4+20
Comments29

Как работают таймеры в JavaScript

Reading time2 min
Views18K
Примечание: ниже перевод заметки John Resig «How JavaScript Timers Work», в которой автор jQuery ясно и подробно излагает тонкости работы различных методов отложенного исполнения функций. Мои комментарии по клиентской производительности далее курсивом.

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

  • var id = setTimeout(fn, delay); — создает единичный таймер, срабатывание которого выливается в вызов определенной функции после указанной задержки. Данный метод возвращает уникальный ID, с помощью которого можно в дальнейшем отменить таймер.
  • var id = setInterval(fn, delay); — похож на предыдущий метод setTimeout, но совершает вызовы заданной функции постоянно (каждый раз с заданной задержкой), пока не будет отменен.
  • clearInterval(id);, clearTimeout(id); — принимают в качестве параметр ID таймера (возвращаемый двумя предыдущими методами) и предотвращают дальнейшие вызовы таймера.


Для того чтобы уяснить внутренние аспекты работы таймеров, стоит учесть одну важную деталь, которую стоит осветить: задержка при выполнении таймера не гарантируется. Так как весь JavaScript исполняется в браузере в один поток, то асинхронные события (например, клики мышкой или таймеры) запускаются только по возникновению «окна» в этом основном потоке (обработчики событий и вызываемые функции, фактически, «встраиваются» в основной поток выполнения, подробнее об организации тяжелых вычислений). Лучше всего это можно продемонстрировать с помощью следующей диаграммы:

Схема работы таймеров в JavaScript

Рисунок 1. Схема работы таймеров в JavaScript

читать дальше на webo.in →
Total votes 63: ↑59 and ↓4+55
Comments55

Web-типографика — четыре золотых совета

Reading time3 min
Views4.2K
Основы web-типографики пришли к нам из далекого 1991 года, еще от небезызвестного Tim Berners-Lee :)

Если оглянуться назад, в страшные времена царствования IE 1.0, то web-типографика (я не говорю о web-дизайне) находилась в зачаточном состоянии. На данный момент, ситуация иная. Мы имеем достаточно средств, для грамотного оформления текста на web-странице.

Cуть web-типографики заключаться не просто в выборе нужного шрифта и умение отличить начертание одного шрифта от другого.


Рис. 1: Как показали последние опыты, 90% тренированных обезьян правильно отличают шрифт Helvetica.

Мы поговорим о web-типографике как о рецепте, содержащем четыре основных компонента. Если вы когда-нибудь пытались приготовить суфле, то скорее всего, смогли ощутить насколько важен рецепт его приготовления.
Читать дальше →
Total votes 66: ↑47 and ↓19+28
Comments64

Текстура для веб-дизайна

Reading time1 min
Views13K
Последние время мне часто приходится искать разнообразные текстуры. Поэтому я решил опубликовать несколько сайтов с большим выбором текстур.

Первым в этом списке я выбрал http://www.textureking.com/ — красивый и понятный дизайн сайта, а также хороший выбор текстур которые разделены на 14 категорий.

Следущим будет http://www.cgtextures.com/ — огромное количество текстур и их категорий (вожможно он и получше textureking :), вам решать.
Читать дальше →
Total votes 75: ↑68 and ↓7+61
Comments63

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity