Pull to refresh
208
0
Григорий Жижилкин @StopDesign

Chief technology officer

Send message

Favicon и заголовок окна

Reading time2 min
Views7.5K
imageВозможно, у вас вызовет сомнение тот факт, что иконка сайта и заголовок окна имеют какое-то отношение к веб-типографике, спешу вас заверить. Имеют! Как корешок книги к её обложке. Не буду лить воду и сформулирую правила оформления иконки и заголовка окна, созданые для повышения удобства при навигации по вкладкам.
Читать дальше →
Total votes 114: ↑105 and ↓9+96
Comments58

Представления (VIEW) в MySQL

Reading time10 min
Views437K
В комментариях Хабра упоминались вопросы по использованию представлений. Данный топик является обзором представлений, появившихся в MySQL версии 5.0. В нем рассмотрены вопросы создания, преимущества и ограничения представлений.

Что такое представление?


Представление (VIEW) — объект базы данных, являющийся результатом выполнения запроса к базе данных, определенного с помощью оператора SELECT, в момент обращения к представлению.

Представления иногда называют «виртуальными таблицами». Такое название связано с тем, что представление доступно для пользователя как таблица, но само оно не содержит данных, а извлекает их из таблиц в момент обращения к нему. Если данные изменены в базовой таблице, то пользователь получит актуальные данные при обращении к представлению, использующему данную таблицу; кэширования результатов выборки из таблицы при работе представлений не производится. При этом, механизм кэширования запросов (query cache) работает на уровне запросов пользователя безотносительно к тому, обращается ли пользователь к таблицам или представлениям.
Читать дальше →
Total votes 105: ↑104 and ↓1+103
Comments22

Иерархические структуры данных и Doctrine

Reading time15 min
Views81K

Введение



Хранение иерархических данных (или попросту — деревьев) в реляционных структурах задача довольно нетривиальная и вызывает некоторые проблемы, когда разработчики сталкиваются с подобной задачей.

В первую очередь, это связано с тем, что реляционные базы не приспособлены к хранению иерархических структур (как, например, XML-файлы), структура реляционных таблиц представляет из себя простые списки. Иерархические же данные имеют связь «родитель-наследники», которая не реализована в реляционной структуре.

Тем не менее, задача «хранить деревья в базе данных» рано или поздно возникает перед любым разработчиком.

Ниже мы подробно рассмотрим, какие существуют подходы в организации хранения деревьев в реляционных БД, а также рассмотрим инструментарий, который нам предоставляет ORM Doctrine для работы с такими структурами.
Читать дальше →
Total votes 64: ↑63 and ↓1+62
Comments41

Концепт механизма исправления опечаток

Reading time2 min
Views1.3K
Участвуя в каких-либо обсуждениях в интернет, очень часто сталкиваешься с тем, что на ресурсе запрещается редактировать собственные комментарии. Очевидно, что это связано с тем, чтобы никто не мог отказаться от сказанных слов. Но порой, редактирование комментария требуется не для скрытия разной степени позорного текста, а просто для исправления глупых опечаток, которые совершает каждый человек.

Иногда при быстром наборе можно спутать пару клавиш, перепутать порядок, забыть букву ну и плюс существуют еще прочие мелкие опечатки, всем знакомые. Есть ошибки и грубее, но часто они объясняются не неграмотностью автора, а многими другими факторами. Тут то и пригодился бы механизм исправления опечаток. Ниже под катом, я хотел бы представить свой простой концепт, который, по-моему, применим на любом ресурсе.
Читать дальше →
Total votes 99: ↑86 and ↓13+73
Comments130

Макроэкономика, наши заблуждения, новые риски и возможности

Reading time9 min
Views2K
Полтора месяца назад, когда мировая экономика перешла в острую фазу, я провел маленький опрос коллег по цеху в этом блоге.

Интересовали мнения коллег о том, как мировые катаклизмы повлияют на нашу маленькую индустрию и бизнес каждого из нас. Кроме опроса, последний месяц я много общался с нашими партнерами из разных городов, узнавал, как они ощутили изменения и на что рассчитывают в будущем. Сейчас уже большинству понятно, что ожидания, что нас не заденет не оправдались. Так или иначе, большинство из нас кризис задел.

Меня всегда интересовала экономика, поэтому я хочу обсудить наши экономические надежды и иллюзии, а также экономические угрозы для нас, веб-разработчиков. И про стратегию выживания и развития веб-студий в новых условиях хочется тоже поговорить отдельно.

Поэтому я разделил свои мысли на две части: макро- и микроэкономическую. В этой, первой статье будут больше теоретические рассуждения, во второй — практические вопросы и идеи для улучшения состояния бизнеса веб-студии. Вторую я допишу чуть позже.

Скажу сразу, что все написанное — это мое личное мнение, либо мнение авторитетных для меня людей. Общение по существу и обмен мнениями по теме статьи приветствуются.

Часть первая. Макроэкономика
Total votes 81: ↑75 and ↓6+69
Comments187

Счетчик времени загрузки

Reading time3 min
Views2.2K
Коллеги, други и просто хабралюди. С неделю назад на Web Optimizator был выложен код для счетчика загрузки (немного более подробно об измерении времени загрузки страницы можно прочитать в статьях про анализ скорости загрузки и разгон интернет-магазина).

Теперь каждый (не) высоконагруженный проект может себе позволить посмотреть, какая реальная скорость загрузки его страниц у конечных пользователей.

Время загрузки Web Optimizator
График распределения пользователей webo.in по времени загрузки у них этого сайта

Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments31

TinyWM — иной WebMoney Keeper

Reading time2 min
Views1.1K
Некоторое время назад я уже знакомил хабр с моим проектом — TinyWM (https://www.tinywm.com).
Я рад, что у меня всё-таки нашлось время для его развития и улучшения.

Итак, что нового.

Функции WebMoney Keeper
Перевод средств, выставление счета, пополнение ATM-карт — без особых внешних изменений.
На главной странице отображается полезная информация: баланс, есть ли новые операции или неоплаченные счета, ссылка на мои покупки (подробнее об этом см. Покупка цифровых товаров<a/>), а также шорткаты к главным пунктам меню.


Читать дальше →
Total votes 69: ↑57.5 and ↓11.5+46
Comments61

39-й способ скругления блока. Один тэг, одна картинка.

Reading time2 min
Views1.2K
Пару дней назад наткнулся на статью про 38 способов скругления блоков. Очень понравилось. Однако там я не встретил способа, которым пользуюсь уже около года. Он не требует лишних тэгов и требует загрузки только одной картинки (спрайт). Работает во всех современных баузерах и IE6+
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments106

Установка и настройка SVN (сервер+клиент)

Reading time6 min
Views309K
По просьбам трудящихся, а так же учитывая, что есть статья по установке SVN (правда +Trac) под Linux, решил написать краткое описание установки и настройки SVN для Windows.
Ничего нового для людей, хорошо знающих и работающих с SVN, здесь не будет. Цель статьи — помочь некоторому проценту новичков, пребывающих на Хабре, таки осилить изучение этой системы контроля версий.
Читать дальше →
Total votes 75: ↑66 and ↓9+57
Comments37

Совместная разработка с помощью Subversion

Reading time6 min
Views12K
Управлять наёмными рабочими и распределенными проектами — это просто и весело. Стоп, что за чушь? На помощь приходит хороший контроль версий — именно то, что вам нужно, чтобы правильно вести ваши проекты.

Далее — перевод статьи Collaborate and Connect with Subversion. Это мой первый перевод, поэтому был бы очень рад вашим замечаниям.

Читать дальше →
Total votes 58: ↑49 and ↓9+40
Comments94

Сжатие при помощи 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 time6 min
Views977
Вчера ночью мне не спалось, и я решил сделать что-то полезное (в кои-то веки). Поскольку приносить пользу окружающим можно лишь принося пользу себе, я попытался облегчить себе жизнь: создать плагин, мониторящий изменение некоторых чисел на одной странице (нечто вроде «количества непрочитанных комментариев в топиках, за которыми следишь» и «количества писем», если больше нуля — повод пойти и прочитать эти новые комментарии. Эти числа выводятся на двух известных коллективных блогах вверху страницы, но узнать об их изменении их состояния можно лишь обновив эту страницу — никакого механизма почты-rss-и т.п. не предусмотрено. Ну, надеюсь, понятно объяснил). Через полтора часа была готова более-менее стабильная версия плагина, и я буду рад рассказать вам о том, как повторить мой подвиг в любое время года.

Итак, на повестке дня: Создаем плагины для FireFox быстро и чисто.
Читать дальше →
Total votes 69: ↑66 and ↓3+63
Comments45

Разгоняем CSS-селекторы: id против class, раунд второй

Reading time1 min
Views5.3K
В первой статье цикла я уже рассматривал скорость работы движка, ответственного за создание и отображение HTML-страницы на экране. Однако, сейчас речь пойдет о несколько другом аспекте, нежели движок CSS-селекторов. Данная серия тестов была посвящена скорости создания отдельного HTML-документа.

Методика



Если в первых двух исследованиях ставилась под вопрос скорость распознавания браузером CSS-правил и их применение, то сейчас интересовал другой вопрос, а именно: как быстро браузер создает DOM-дерево в зависимости от наличия в нем элементов с id или class?

Для этого было подготовлено 3 набора HTML-файлов. Первый содержал 10000 элементов, у которых часть имеет id (количество именованных элементов варьировалось от 50 до 10000). Во втором HTML-файлы были, практически, идентичными, только вместо id имели атрибут class. В третьем наборе в DOM-дереве были только элементы с id (т.е. варьировалось само число элементов). Соответственно, все измерения проводились в скрытом iframe, чтобы избежать отрисовки загружаемой страницы на экране.

читать дальше на webo.in →
Total votes 47: ↑42 and ↓5+37
Comments31

Как запретить браузеру выделять текст

Reading time4 min
Views178K
Если Вы веб-разработчик, то у вас наверняка возникала необходимость в том, чтобы запретить пользователю выделение текста. Оговоримся, что я не имею ввиду полный запрет с целью защиты текста, а запрет на выделение всевозможных подписей, надписей и т.п. где выделение мешает работе интерфейса и пользователю (чаще всего при drag&drop, или выделении текста при двойном клике). Это в первую очередь касается веб-приложений и ни в коем случае не касается информационных сайтов.
Читать дальше →
Total votes 57: ↑52 and ↓5+47
Comments69

мой набор софта для веб-разработки под PC/Win

Reading time2 min
Views2.7K
Возникло странное вечернее желание написать и описать те программы, которые я использую повседневно для вёрстки/правки и написания всего, что связано с веб-проектами. Хотелось, помимо стандартного перечня, вкратце описать, что то или иное «это-самое» делает, и почему я использую именно его. Возможно, кому-то будет полезно.
Читать дальше →
Total votes 55: ↑29 and ↓26+3
Comments191

Эффективный способ повысить умственную работоспособность

Reading time13 min
Views221K
В прошлой заметке я писал о том, чего не стоит делать, если у вас проблемы с работоспособностью. В этой части я расскажу об эффективном способе, не требующем медикаментов. Медикаменты — это только поддержка, дополнение. Но способ этот требует организованности и силы воли, а потому так нелюбим большинством из нас.
Читать дальше →
Total votes 173: ↑165 and ↓8+157
Comments272

«Разгоняя голову», не перегрейтесь!

Reading time4 min
Views143K
Проблема недостаточной умственной работоспособности и утомления, как выяснилось, заботит очень многих. На «Хабре» нашлись граждане, которые, кто в шутку, кто всерьез советовали в комментариях амфетамины, прозак, ноотропил, гинкго, винпоцетин.

Уровень невежества некоторых «советчиков» зашкаливает. В этой заметке я расскажу о том, что не надо делать. О том, что надо делать, расскажу в следующей.
Читать дальше →
Total votes 157: ↑145 and ↓12+133
Comments162

Веб сервер за пару вечеров — II

Reading time5 min
Views11K

Многие из нас собирали компьютер сами, из комплектующих. Дело не сложное, соединить с десяток шлейфов, да завинтить столько же винтиков. Но мало кто сталкивался с самостоятельной сборкой серверов, причем не обычных а в промышленном формате под стойку 19 дюймов. В этом небольшом обзоре я опишу свой опыт сборки такого сервера, постараюсь показать что это не сложно, и остановлюсь на главных моментах, на что нужно смотреть. На написание этого обзора меня толкнуло то, что информации о сборке rack 19’ серверов в рунете очень мало, и приходилось её искать буквально по крупицам.
Читать дальше →
Total votes 142: ↑141 and ↓1+140
Comments191

Создание превью изображения на основне свойства Overflow

Reading time3 min
Views6.3K
По просьбам пользователей после прочтения статьи Визуализация данных на CSS

Цель данной статьи заключается в том, чтобы реализовать возможность создания превью для изображения, размеры которого можно устанавливать самостоятельно. Бывает так, что у нас нет свободного места на странице, чтобы показать превью картинки полностью. Но и делать из картинок обрезки не хочется. Трюк, приведенный в статье, позволит создать нужные нам размеры превью и отображать полный его размер при наведении курсора на превью.
читать продолжение
Total votes 62: ↑58 and ↓4+54
Comments39

Эластичные шаблоны

Reading time4 min
Views19K

Большинство дизайнов ориентировано на использование фиксированных значений при верстке: ширина и высота блоков, размер шрифта. Это позволяет сверстанному шаблону «не разваливаться» при изменении масштабов просмотра и сохранять свойство кроссбраузерности. Однако в этом есть один большой минус – при большом разрешении экрана маленькие фиксированные блоки теряются на большой площади и остаются незамеченными. Тут даже не спасет «резиновая» верстка, т.к. сайт будет выглядеть еще более нечитабельным, например на 19'' мониторах при разрешении большем 1280 по ширине. Для меня это актуально, т.к. на ноутбуке 17'' с разрешением 1400х800 просматривать «резиновый» сайт очень неудобно. И желание оставаться на таком сайте отпадает быстро. Существует ли способ, позволяющий управлять масштабами не только текста, но и всего сайта?
Читать дальше →
Total votes 75: ↑69 and ↓6+63
Comments112

Information

Rating
Does not participate
Location
Индонезия, Индонезия
Date of birth
Registered
Activity