Разрешение экрана в наши дни колеблется от 320px (iPhone) до 2560px (большие мониторы) или даже выше. Пользователи больше не просматривают сайты только на настольных компьютерах. Теперь пользователи используют мобильные телефоны, небольшие ноутбуки, планшетные устройства, такие как iPad или Playbook для доступа в интернет. Поэтому, традиционный дизайн с фиксированной шириной больше не работает. Дизайн должен быть адаптивным. Структура должна автоматически изменяться с учетом всех разрешений дисплеев. Эта статья покажет вам как создавать кросс-браузерный адаптивный дизайн при помощи HTML5 и CSS3 media queries.
baxi @baxi
Пользователь
Silex — микрофреймворк от создателей Symfony2
4 мин
61KПочти год назад я опубликовал статью о микрофреймворке под названием 'fat-free', написанном на PHP. Тогда этот фреймворк и сама статья вызвали некоторый интерес, поэтому я решил сделать обзор еще одного PHP микрофреймворка в стиле популярного Sinatra — Silex project.
Созданный в известной в РНР кругах Sensio Labs, не менее известным Fabien Potencier — автором одного из самых популярных на сегодня PHP фреймворков — Symfony, Silex является облегченной версией ожидаемого армией фанатов (к которым осмелюсь отнести и себя) Symfony2.
Для своей работы Silex использует ключевые компоненты Symfony2 в связке с несложной реализацией шаблона проектирования “Внедрение зависимостей” в виде сервис-контейнера Pimple, который позволяет максимально просто отделить логические части кода друг от друга — сделать их независимыми.
Как и у Symfony2 — у Silex интуитивно понятный API, что делает процесс разработки достаточно приятным и позволяет практически в несколько шагов добавлять свой функционал в сам фреймворк.
Созданный в известной в РНР кругах Sensio Labs, не менее известным Fabien Potencier — автором одного из самых популярных на сегодня PHP фреймворков — Symfony, Silex является облегченной версией ожидаемого армией фанатов (к которым осмелюсь отнести и себя) Symfony2.
Для своей работы Silex использует ключевые компоненты Symfony2 в связке с несложной реализацией шаблона проектирования “Внедрение зависимостей” в виде сервис-контейнера Pimple, который позволяет максимально просто отделить логические части кода друг от друга — сделать их независимыми.
Как и у Symfony2 — у Silex интуитивно понятный API, что делает процесс разработки достаточно приятным и позволяет практически в несколько шагов добавлять свой функционал в сам фреймворк.
+82
Обзор свежих материалов, март 2011
7 мин
1.1KЭтот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-февраль 2011.
+70
Организуем релевантный поиск по разнородным данным с помощью Sphinx
10 мин
21KВ одном из текущих проектов возникла задача поиска по данным разного типа, которая была успешно решена с помощью зарекомендовавшей себя поисковой машины Sphinx, но обо всем по порядку.
В проекте есть на данный момент 2 зоны:
Постановка задачи
В проекте есть на данный момент 2 зоны:
- географическая зона, реализованная на базе Google Maps, которая отображает нанесенные пользователями на карту географические объекты (маркеры, маршруты и области);
- информационная зона, которая представляет собой большой иерархически организованный каталог, содержащий информационные материалы.
+44
Применение алгоритмов нечеткого поиска в PHP
7 мин
30KВдохновленный топиками о нечетком поиске и фонетических алгоритмах, захотел попытаться реализовать нечто подобное похожее на гугловское «Возможно, вы имели в виду: ...» средствами PHP.
Для исправления опечаток в словах понадобится:
Расстояние Левенштейна (или расстояние Дамерау-Левенштейна — разница будет незначительной) — levenshtein()
Metaphone — metaphone()
Алгоритм Оливера — similar_text()
База русских слов (с падежами, учетом времен и т.д.).
Для исправления опечаток в словах понадобится:
Расстояние Левенштейна (или расстояние Дамерау-Левенштейна — разница будет незначительной) — levenshtein()
Metaphone — metaphone()
Алгоритм Оливера — similar_text()
База русских слов (с падежами, учетом времен и т.д.).
+53
Highload на дешевом хостинге: хэш-таблица в MySQL
3 мин
21KВысоконагруженный проект (web-сайт) — не обязательно популярная социальная сеть, видеохостинг или MMORPG. Простейший способ резко повысить требования сайта к железу — перенести хранение сессий в БД. В этой статье мы рассмотрим способ хранить данные в БД, и при этом не жертвовать производительностью. Пожертвовав небольшим объемом ОЗУ можно прилично сэкономить процессорное время. Мы говорим о стиуации, когда недоступны memcached и другие специальные средства кэширования.
+44
Основы репликации в MySQL
10 мин
328KС репликацией серверов MySQL я познакомился относительно недавно, и по мере проведения разных опытов с настройкой, записывал, что у меня получалось. Когда материала набралось достаточно много, появилась идея написать эту статью. Я постарался собрать советы и решения по некоторым самым основным вопросам, с которыми я столкнулся. По ходу дела я буду давать ссылки на документацию и другие источники. Не могу претендовать на полноту описания, но надеюсь, что статья будет полезной.
+68
Авторизация через ВКонтакте
2 мин
62KСколько процентов пользователей вашего сайта являются также пользователями ВКонтакте? Как по вашему, сколько человек ничего не пишут / комментируют / добавляют (нужное подчеркнуть), лишь потому, что им лень регистрироваться на еще одном непонятном сайте в 100й раз? Предлагаю ответить для себя на эти 2 вопроса, прежде, чем ругать ВКонтакте и Open API.
В моем случае на сайт из ВКонтакте каждый день приходят около 1500 человек и обеспечить им простой и удобный способ регистрации, как мне кажется, является моим долгом.
Вряд ли я открою что то новое, но если, хотя бы еще 1 сайт станет немного удобнее после этой статьи — значит я не зря потратил свое время на написание этого текста.
В моем случае на сайт из ВКонтакте каждый день приходят около 1500 человек и обеспечить им простой и удобный способ регистрации, как мне кажется, является моим долгом.
Вряд ли я открою что то новое, но если, хотя бы еще 1 сайт станет немного удобнее после этой статьи — значит я не зря потратил свое время на написание этого текста.
+55
Авторизация через новый API сайта Вконтакте.ру
3 мин
13KАрмия потенциальных пользователей Вашего сайта, зарегистрированных в социальной сети Вконтакте.ру наверняка оценят по достоинству Ваши старания по внедрению регистрации с помощью их любимой социалки. О создании такой возможности я задумался сегодня по утру и не откладывая решил воплотить желание в реальность.
Облегчало реализацию два факта: первый заключается в том, что Open API мне очень напоминал Facebook Connect, с которым я уже работал. Второй факт был ещё весомей — у меня уже есть библиотека в которой каждый вариант авторизации (OpenID, OAuth, FacebookConnect) являются отдельными бэкендами и написать дополнительный, тем более так похожий на FC не выглядело сложным заданием. В итоге, можно сказать что по факту это действительно оказалось плёвым делом.
Итак, что же нужно для авторизации по Вконтакте.ру?
Облегчало реализацию два факта: первый заключается в том, что Open API мне очень напоминал Facebook Connect, с которым я уже работал. Второй факт был ещё весомей — у меня уже есть библиотека в которой каждый вариант авторизации (OpenID, OAuth, FacebookConnect) являются отдельными бэкендами и написать дополнительный, тем более так похожий на FC не выглядело сложным заданием. В итоге, можно сказать что по факту это действительно оказалось плёвым делом.
Итак, что же нужно для авторизации по Вконтакте.ру?
+32
Секреты успешной системы образования
8 мин
5KПеревод
Честно говоря, даже не думал подключаться к «дням образования на Хабре», но так уж вышло — наткнулся на свежевышедшую статью Бёрда Киви «Даёшь молодёжь!». Статья о том, какие действия в Штатах и в Великобритании государственные мужи предпринимают для роста интереса среди подростков к компьютерным технологиям. Проблема в том, что становиться специалистами как-то вот немногие рвутся, а кому-то работать в DARPA и тому подобных конторах завтра нужно. В конце приводится ссылка на статью из Wall Street Journal «What Makes Finnish Kids So Smart?», в которой описываются реалии финских школ. Как замечает уважаемый Бёрд, в Финляндии англо-американских проблем вроде бы не видно.
Вот именно статью из WSJ я и хочу предложить вашему вниманию. Как человек с семилетним опытом жизни в Финляндии (к сожалению, на неопределённый срок прерванным), я неплохо знаком с тамошними особенностями. Отчасти мой перевод является данью уважения организации финского общества, но основная цель — показать хорошую постановку образовательного процесса на понятном примере. Надо сказать, статья рисует совершенно пасторальную картинку, так что не забывайте — автор всё-таки не я, а некая Ellen Gamerman, и все претензии к ней :)
Речь в статье идёт о школе. Я думаю, это даже поважнее университета. Существует же преемственность: хороший школьник -> хороший студент. Все выделения жирным шрифтом мои, [
Вот именно статью из WSJ я и хочу предложить вашему вниманию. Как человек с семилетним опытом жизни в Финляндии (к сожалению, на неопределённый срок прерванным), я неплохо знаком с тамошними особенностями. Отчасти мой перевод является данью уважения организации финского общества, но основная цель — показать хорошую постановку образовательного процесса на понятном примере. Надо сказать, статья рисует совершенно пасторальную картинку, так что не забывайте — автор всё-таки не я, а некая Ellen Gamerman, и все претензии к ней :)
Речь в статье идёт о школе. Я думаю, это даже поважнее университета. Существует же преемственность: хороший школьник -> хороший студент. Все выделения жирным шрифтом мои, [
комментарии в квадратных скобках
] тоже. Статья достаточно длинная, так что я позволю себе не очень существенные сокращения текста.+37
Авторизация пользователей в ProFTPD по учетным записям форума
3 мин
2.3KНедавно появилась необходимость запретить вход кому попало на FTP сервер, то есть заблокировать вход под anonymous. Но содержать отдельную базу с FTP пользователями неудобно, а более того неэффективно. Думал-думал, и решил авторизировать пользователей по учетной записи форума, в моем случае SMF. Пользователи хранятся в MySQL таблице smf_members, имя пользователя в memberName, а пароль в passwd. У ProFTPD есть хорошо документированная возможность получать учетные данные с PostgreSQL / MySQL. Но вот беда, у форума пароли хранятся в хеше SHA1, да и в начало пароля добавляется имя пользователя в нижнем регистре. А ProFTPD ожидает, что ему из SQL-запроса к базе вернется пароль в форматах MySQL PASSWORD(), Crypt, либо Plaintext. Само собой, никакого SHA1 там нет, не говоря уже о том, что к паролю еще добавляется имя пользователя. Гуглил день, другой, все жалуются на подобное, а готового решения никто не предлагает.
+25
Web-интерфейс для runit
1 мин
7.3KВы уже используете runit на своих серверах? Теперь у Вас есть возможность наблюдать за состоянием сервисов и управлять ими через минималистичный Web-интерфейс.
Для работы этой утилиты Вам нужно поставить ruby и rubygems, и затем выполнить
Для работы этой утилиты Вам нужно поставить ruby и rubygems, и затем выполнить
gem install runit-man thin
+4
+63
Установка memcached под Windows за 5 минут (php5)
1 мин
39KМногие разработчики используют Memcached, систему кэширования различных объектов в оперативной памяти. Устанавливается она очень просто
+31
+85
Лента тегов
1 мин
668Идея такая — пользователь перечисляет теги, которые ему интересны. Если среди тегов топика есть хотя бы один из указанных, то такой топик попадает в специальную ленту — «ленту тегов». Таким образом можно будет выделять из хабрапотока именно то, что интересует пользоватля.
+28
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность