Как стать автором
Обновить
0
0
Pirate @Pirate

Пользователь

Отправить сообщение

Наблюдение за жуками ( Mantis + Google Visualization )

Время на прочтение8 мин
Количество просмотров3.4K
В моей работе нужно анализировать качество проектов и иметь полное понимание о том, как мы учимся не наступать на одни и теже грабли. Для этой цели есть много инструментария, но я хочу поделиться опытом с теми, кто как и наша студия использует в роли багтрекинга Mantis 1.1.1 (написан на PHP, БД- MySQL)

подробности
Всего голосов 63: ↑61 и ↓2+59
Комментарии25

Советы для разработчиков CMS и фреймворков на PHP

Время на прочтение2 мин
Количество просмотров2.2K
Уже не раз сталкиваюсь с подобной проблемой, когда люди приходят и просят помочь в решении проблем распределения нагрузки при внезапном возрастании аудитории их сайтов. Ну и самое трудоемкое в данной проблеме — это самописные CMS-подобные системы, которые иногда приходиться переписывать полностью.

Я не буду вдаваться в подробности распределения нагрузки, а отпишу лишь основные правила при соблюдении которых Ваша CMS будет легко масштабироваться.

Читать дальше →
Всего голосов 201: ↑123 и ↓78+45
Комментарии204

Особенности хранения сессий PHP в memcached

Время на прочтение6 мин
Количество просмотров33K
Данная статья рассматривает одну из проблем хранения PHP-сессий в memcached: отсутствие их блокировки.

Введение

Ни для кого не секрет, что одним из самых популярных способов повышения производительности сайта является использование memcached. Об этом неоднократно говорили и приводили многочисленные примеры. Самый простой способ сделать это — использовать memcached для хранения сессий PHP. Для этого нет необходимости переписывать весь код, достаточно нескольких простых действий. Я не буду рассказывать, почему надо хранить сессии в memcached. Я расскажу о том, почему хранение сессий в memcached опасно.
Читать дальше →
Всего голосов 75: ↑66 и ↓9+57
Комментарии75

Красота спасёт штрих-код

Время на прочтение1 мин
Количество просмотров6.1K
На Хабре уже обсуждали полезные свойства двухмерных штрих-кодов и фантазировали о том, как прекрасен станет мир, если лепить их на футболки, кепки, а также накалывать на теле. С одной стороны это верно, если бы не одно «но» — современные штрих-коды ужасно выглядят. Они некрасивы. При том, что они являются дверью в четвертое информационное измерение, они выглядят, как информационный мусор.

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

Стали возникать интересные решения с графическими вставками в баркод, в том числе анимированными (если размещается на дисплее):

25.31 КБ

Читать дальше →
Всего голосов 62: ↑52 и ↓10+42
Комментарии52

Скрытые фичи суперхабра

Время на прочтение2 мин
Количество просмотров531
Сегодня чего-то залез в код хабра и обнаружил там закомментированный блок, который по сути представляет из себя панельку с кнопочками для навигации по сообщениям. Выглядит закомментированный код так:
<ul class="comments_bar">
    <li class="cb_reload"><span class="corner"></span><a href="#" onclick="return commentForm.reloadComments('38271', 'post', '1219860285');" title="Обновить комментарии без перезагрузки страницы"></a></li>
    <li class="cb_prev"><a href="#" onclick="return commentForm.goPrevNewComment(event);" title="Следующий новый"></a></li>
    <li class="cb_next"><a href="#" onclick="return commentForm.goNextNewComment(event);" title="Предыдущий новый"></a></li>
    <li class="cb_my"><span class="corner"></span><a href="#" onclick="return commentForm.goMyComment(event);" title="Перейти к своему комментарию"></a></li>
</ul>

Как видно, этот блок предоставляет следующий функционал:
  1. Перезагрузку дерева сообщений, без перезагрузки страницы
  2. Переход к следующему или предыдущему непрочитанному сообщению (при этом снимается отметка о том, что сообщение не прочитанно)
  3. Переход к своим сообщениям
Что самое интересное, оно уже работает, нужно только включить. Включить можно, например, введя в адресной строке следующее:
javascript:mc=document.getElementById('main-content'); mc.innerHTML+=mc.childNodes[5].data;void 0;

Интересно, что скажут хабраразработчики? ;)

UPD: Подоспел greasemonkey-скрипт от rozboris

UPD2: Ещё один скрипт, пока что работает только в Опере. Автор —GMM
Всего голосов 121: ↑110 и ↓11+99
Комментарии54

QIP 2008 concept

Время на прочтение2 мин
Количество просмотров3.2K
Хочу сразу предупредить, что я не программер и не знаю насколько возможно реализовать нижележащие фишки, но тем не менее таковые есть.

Стартовый вид контакт-листа

Изначально я захотел попробовать сделать новый скин для квипа, но в итоге получился новый концепт, которым хочется поделиться с разработчиками и внести свой вклад в развитие популярного меседжера.
Читать дальше →
Всего голосов 408: ↑355 и ↓53+302
Комментарии309

Как найти нужный шрифт, не зная его названия?

Время на прочтение3 мин
Количество просмотров408K
Я уверен, что у любого дизайнера был такой момент, когда он видел где-то какой-то шрифт, который так мог бы пригодится в проекте, но… что за шрифт?.. Ответ на этот вопрос затаился в глубине Вашего сознания, либо в глубине Вашего «незнания» (что разумеется простительно).



В этой статье мы рассмотрим несколько ресурсов, которые могут помочь вам в идентификации понравившегося шрифта.

Конечно, нельзя рассчитывать, что эти источники дадут вам 100 процентную уверенность в том что вы найдете нужный шрифт, но что помогут, так это точно.
Читать дальше →
Всего голосов 137: ↑130 и ↓7+123
Комментарии28

Хранение набора чекбоксов в одном поле БД. Битовая маска.

Время на прочтение2 мин
Количество просмотров19K
Часто при составлении сайтов с каталогами нам приходится оперировать с однотипными карточками каталога. Рассмотрим пример:
У нас имеется каталог СТО которые оказывают различные услуги клиентам. Есть предопределенный список услуг, среди которых производится выбор. Список услуг представляет собой набор чекбоксов, если услуга оказывается то чекбокс помечается, в противоположном случае отметка не ставится. Предположим количество услуг в каталоге равняется десяти(просто для определенности).
Самым простым способом было бы хранение состояния каждого чекбокса в отдельном поле, однако при этом мы для каждой новой услуги(которая будет указываться на сайте и учавствовать в поиске) будем вынуждены расширять таблицу, и изменять поиск.
Но мы пойдем другим путем.
Читать дальше →
Всего голосов 76: ↑53 и ↓23+30
Комментарии64

"Петя летом отдыхает, Саша и Маша делают стартап!" — 10 последних проектов от Y Combinator

Время на прочтение6 мин
Количество просмотров796
Мой самый любимый и уважаемый фонд Y Combinator презентовал четырнадцать стартапов, которые он выращивал на прошедшей летней сессии. Хотя по разным источникам я встречал упоминание о 10 или даже 20 стартапах, на самом деле их 21, хотя не все были показаны публично или о них есть какая-либо информация. Потому мы расскажем только о тех, что публично раскрыли себя.

Читать дальше →
Всего голосов 50: ↑35 и ↓15+20
Комментарии29

Идеи для Mozilla Labs

Время на прочтение1 мин
Количество просмотров738

Благодаря сайд-блогу смешинг-магазина нашел заметку у Mozilla Labs, в которой они призывают выкладывать свои идеи о том как должен выглядеть серфинг по интернету в будущем. Есть даже специальный раздел.

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

Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии6

Проект за 7 дней

Время на прочтение1 мин
Количество просмотров1.5K
Мы работаем над одним проектом вот уже больше 2-х лет. Он занимает все рабочее и свободное время. И вот мы на финишной прямой и у нас все готово, но… подвел нас один поставщик (очень большая и медленная компания) последнего аппаратного модуля, без которого никуда. Ожидается готовность только в сентябре, октябре. В связи с этим появилось немного свободного времени. Где-то неделя.

И мы решили вытащить с дальней пыльной полки хорошую идею, на которую раньше просто не было времени.
Читать дальше →
Всего голосов 105: ↑93 и ↓12+81
Комментарии152

Облако тегов: линейная зависимость vs логарифмическая

Время на прочтение2 мин
Количество просмотров3.5K
Этот пост меня сподвигли написать две вещи. Автокадабра и некто под ником napisal, кто активно не соглашался с моим постом

Дело было так: я зашёл в карту клубов Автокадабры и понял что она мне ни о чём не говорит. Создавалось впечатление, что пишут всего в трёх клубах. После изучения облака я пришёл к выводу что линейная зависимость размера тега (в данном случае блога) от количества публикаций совершенно не информативна. Клубы с одной публикацией выглядят так же как и с 15-ю.
далее с картинками
Всего голосов 2: ↑2 и ↓0+2
Комментарии47

Ссылки при наведении курсора: нужна ли реакция?

Время на прочтение3 мин
Количество просмотров9.1K
Приветствую, уважаемые хабралюди.

На ночь глядя у меня возник некоторый жаркий спор сtheonlyboy, по поводу того, стоит ли при наведении на ссылку — как-то это ссылку изменять: убирать\добавлять подчеркивание ссылки, изменять цвет?

Полный пипец, или нормальное выделение? 4 Крайности - какую выбираете?


Данный топик был создан исключительно для того, чтобы почерпнуть новые знания и всё таки разобраться — как с точки зрения юзабилити и дизайна UI правильно, и наконец прекратить бессмысленный, но жаркий спор.
Читать дальше →
Всего голосов 60: ↑54 и ↓6+48
Комментарии74

Оптимизация работы с MySQL

Время на прочтение3 мин
Количество просмотров78K
Ни для кого не секрет, что работа с базой данных занимает большую часть работы практически любого сайта. И именно работа с БД чаще всего является узким местом веб-приложений.
В этой статье хотелось бы дать практические советы использования MySQL.
Сразу оговорюсь:
  • данная статья написана про MySQL, хотя общие вещи скорее всего справедливы для любой СУБД.
  • все написанное в статье является моей личной точкой зрения, и не является истиной в последней инстанции.
  • советы не претендуют на новизну и являются результатом обобщения прочтенной литературы и личного опыта.
  • в рамках данной статьи я не буду касаться вопросов конфигурирования MySQL.

Проблемы при использовании MySQL можно разделить на следующие три группы(в порядке значимости):
  1. Неиспользование или неправильное использование индексов.
  2. Неправильная структура БД.
  3. Неправильные \ неоптимальные SQL запросы.

Остановимся на каждой из этих групп подробнее.
Читать дальше →
Всего голосов 54: ↑52 и ↓2+50
Комментарии107

Проектирование баз данных. Паттерн Компоновщик (Composite)

Время на прочтение4 мин
Количество просмотров17K
Web 2.0 победоносно шагает по виртуальному миру. Социальные сети растут как грибы после дождя. Теперь в одном месте вы можете хранить свои фото, видеозаписи, писать блоги и слушать музыку. Все это можно комментировать, класть в избранное, копировать… Возможностей много, контент социальных сетей разнородный и разнообразный, и в этом их преимущество.

А теперь представьте себе структуру БД какого нибудь «Вконтакте». Представили? И что вы видите? Множество таблиц с данными? А что еще? Множество таблиц для связей много-ко-многим! Необходимых, с точки зрения реляционной БД, но лишних с точки зрения логики. Но это еще не все. Среди полей таблиц мы видим огромное количество «лишних» полей, являющихся всего лишь внешними ключами, служащими для связей один-ко-много, так же необходимых с точки зрения реляционной теории, но абсолютно бесполезных с точки зрения логики.
Читать дальше →
Всего голосов 51: ↑47 и ↓4+43
Комментарии98

Идеальная голосовалка

Время на прочтение3 мин
Количество просмотров7.5K
Часто на разнообразных сайтах пользователям предлагают оценить (проголосовать за) тот или иной объект — анекдот, цитату, пост, автора, человека и т. д. При этом, к сожалению, почти всегда совершается одна или несколько ошибок.

Я буду говорить только о тех случаях, когда пользователям предлагают оценить объект положительно или отрицательно. Голосования с выбором одного из нескольких вариантов ответа здесь не рассматриваются.

Читать дальше →
Всего голосов 32: ↑23 и ↓9+14
Комментарии71

Пишем свой XML-парсер

Время на прочтение9 мин
Количество просмотров71K

Предыстория


Решив запустить небольшой сервис на подаренном мне хостинге, оказалось, что там нету ни одного xml-парсера: ни SimpleXML, ни DOMXML, а только libxml и xml-rpc. Недолго думая, я решил написать свой. Мне требовался разбор не сложных rss-лент, поэтому хватило достаточно просто класса xml => array.[1]

Но для интересной статьи этого было явно не достаточно, поэтому сейчас мы напишем свою замену для SimpleXML. А заодно пробежимся по многим интересным возможностям PHP 5.

Постановка задачи


Доступ к элементам у нас будет осуществляться как доступ к свойствам класса, например $xml->element, а доступ к атрибутам элемента, как к массиву, те $xml->element['attr'], также реализуем проверку на существование атрибута при помощи isset() и итерацию по элементам при помощи foreach. И так, начнем.
Читать дальше →
Всего голосов 1: ↑1 и ↓0+1
Комментарии42

Взаимодействие с GMail на PHP

Время на прочтение1 мин
Количество просмотров2.2K
Еще в 2005 году командой энтузиастов была написана библиотека libgmailer для взаимодействия с почтой компании Google. К сожалению проект был заброшен, но даже несмотря на это, классы позволяют на сегодняшний день получать информацию о письмах, ярлыках и вложениях. Причем последние можно даже скачать.
Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии15

Успешный проект – проект, ориентированный на пользователя

Время на прочтение12 мин
Количество просмотров2.7K
Ориентируя проект на цели пользователя, можно создать новые, удобные и востребованные сервисы. Более того, можно создавать социальные коммуникации вокруг товаров, и это успешно монетизируется! Вот только… Что поможет учесть цели ваших пользователей? Маркетинг? К сожалению, «лобовой» перенос в интернет практики обычного маркетинга не даёт результата.

Текст доклада Павла Коноплицкого на конференции SocialExperience 2008

Разные пользователи — разные потребности

порочное убеждение в том, что ресурс должен создаваться для всех

Успех лидеров рынка и недостаток информации о пользователях, попытки использовать в вебе оффлайновый опыт создания нового продукта или услуги часто превращается в порочное убеждение, что для успешности проекта он должен удовлетворять интересам максимального количества человек.
Читать дальше →
Всего голосов 1: ↑0 и ↓1-1
Комментарии65

Информация

В рейтинге
Не участвует
Откуда
Украина
Дата рождения
Зарегистрирован
Активность