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

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

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

Атомарность операций и счетчики в memcached

Время на прочтение5 мин
Количество просмотров8K
Серия постов про “Web, кэширование и memcached” продолжается. В первом и втором постах мы поговорили о memcached, его архитектуре, возможном применении, выборе ключа кэширования и кластеризации memcached.

Сегодня речь пойдет о:
  • атомарных операциях в memcached;
  • реализации счетчиков просмотров и онлайнеров.

Следующий пост будет посвящен проблеме одновременного перестроения кэшей.

Что же с атомарностью операций?
Всего голосов 45: ↑43 и ↓2+41
Комментарии12

Кластеризация memcached и выбор ключа кэширования

Время на прочтение4 мин
Количество просмотров23K
Серия постов под общим заглавием “Web, кэширование и memcached” продолжается. В первом мы поговорили о memcached, его архитектуре и возможном применении.

Сегодня речь пойдет о:
  • выборе ключа кэширования;
  • кластеризации memcached и алгоритмах распределения ключей.

Следующий пост будет посвящен атомарности операций и счетчикам в memcached.

Итак, поехали!
Всего голосов 61: ↑61 и ↓0+61
Комментарии42

Кэширование и memcached

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

Этим постом хочу открыть небольшую серию постов по материалам доклада на HighLoad++-2008. Впоследствии весь текст будет опубликован в виде одной большой PDF-ки.



Введение


Для начала, о названии серии постов: посты будут и о кэшировании в Web’е (в высоконагруженных Web-проектах), и о применении memcached для кэширования, и о других применениях memcached в Web-проектах. То есть все три составляющие названия в различных комбинациях будут освещены в этой серии постов.
Читать дальше →
Всего голосов 76: ↑75 и ↓1+74
Комментарии72

UML, Классы и Отношения

Время на прочтение10 мин
Количество просмотров67K
Существует много разработанных теорий, задокументированных технологий и парадигм программирования. Перед тем как углубиться с головой в их изучение было бы мудро изучить сам принцип взаимодействия программ и их структур. UML предлагаем вам разработанный стандарт что бы сделать это.

подробности
Всего голосов 85: ↑66 и ↓19+47
Комментарии46

jQuery для начинающих. Часть 3. AJAX

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

Представляю Вам третью статью из серии jQuery для начинающих. В этот раз я постараюсь рассказать о реализации AJAX запросов...
Читать дальше →
Всего голосов 77: ↑71 и ↓6+65
Комментарии36

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

Время на прочтение4 мин
Количество просмотров125K
В повседневной работе приходится сталкиваться с довольно однотипными ошибками при написании запросов.

В этой статье хотелось бы привести примеры того, как НЕ надо писать запросы.
Читать дальше →
Всего голосов 143: ↑132 и ↓11+121
Комментарии142

120 dpi и шрифты в em

Время на прочтение8 мин
Количество просмотров12K
шрифт в em

Шрифты в Em/% хороши всем — возможностью пользователей IE увеличивать кегль, заботой о пользователях, что предпочитают увеличивать размер шрифта браузера по-умолчанию, чтоб лучше видеть текст, да и просто являются нормой для профессиональных верстальщиков.

Минусы: … их вроде как нет, но!
А что если у пользователя разрешение экрана выставлено не в стандартное 96 dpi, а в 120?
Сайт с увеличенными шрифтами смотрится уже не так красиво, как нарисовал дизайнер — ведь масштабируются только шрифты, а не весь сайт! А разрешение 120dpi становится всё популярней, особенно на ноутбуках! Что же делать? Возвращаться к px?

Нет!
как сделать сайт одинаковым на 96 dpi и 120
Всего голосов 157: ↑150 и ↓7+143
Комментарии65

Архитектура приложений — горячие точки

Время на прочтение9 мин
Количество просмотров26K
Как часть нашего проекта, мы свели вместе информацию об общих подходах к разработке архитектуры приложений.
Читать дальше →
Всего голосов 97: ↑91 и ↓6+85
Комментарии31

Электрика в  малом и среднем офисе, часть  первая

Время на прочтение7 мин
Количество просмотров11K
Если вы арендуете офис в большом центре, где есть СКС и все круто, то эта заметка не для вас. Но если вы переезжаете в помещение, переведенное из жилого фонда, то эта статья будет для вас полезна. Я расскажу о возможных проблемах с электрикой и о том, как их предотвратить.
Читать дальше →
Всего голосов 95: ↑91 и ↓4+87
Комментарии71

Статистика Google Analytics на вашем сайте

Время на прочтение6 мин
Количество просмотров17K
Помню, как-то проскакивала пара записей (здесь и здесь) по поводу импортирования данных из Google Analytics для отображения сводных диаграмм на сайте, в общем, как на хабре. Прочитав вышеупомянутые топики и не обратив особого внимания тогда, я о них успешно «забыл» и пошел себе дальше. И вот сейчас, появилась необходимость реализовать нечто подобное на одном из своих проектов.

image

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

UPDATE:
Добавил еще одну версию, подробности и линк под катом.

Читать дальше →
Всего голосов 97: ↑92 и ↓5+87
Комментарии142

ЧПУ + GET

Время на прочтение2 мин
Количество просмотров11K
Здравствуйте. Как известно из документации по CI, мы можем задавать controllers и actions через GET параметры (например ?c=stationery&act=contacts), либо использовать ЧПУ (например stationery/contacts), но тогда мы не можем передавать в url get параметры. По моему мнению, это не совсем правильно отказаться от get, т.к. мы не можем сделать универсальный pager (кто сталкивался, думаю, поймет), ни указать сортировку результата. Еще одной нерешенной задачей для меня было сделать расширенный поиск. По идее все параметры поиска задаются в URL, но некоторые поля могут указываться, некоторые нет. Конечно, это все обходится, но самым понятным способом было бы использование get параметров.
Читать дальше →
Всего голосов 34: ↑21 и ↓13+8
Комментарии43

Как готовить презентацию проекта для инвесторов

Время на прочтение3 мин
Количество просмотров2K
За два месяца мы, проект Comindwork, провели 11 презентаций для инвесторов. Три из них — при личной встрече и на заседании украинского клуба бизнес-ангелов, UABAN, остальные 8 — в рамках ISDEF, форума независимых разработчиков программного обеспечения. Полезный опыт. Сначала презентация была в 10 слайдов. Теперь их 4. Как говорят англичане, «Less is more», то есть «меньше это больше».
Не буду говорить, как я в действительности готовился. Скажу, как надо было :)
Читать дальше →
Всего голосов 49: ↑42 и ↓7+35
Комментарии42

Выносим CSS в пост-загрузку

Время на прочтение1 мин
Количество просмотров1.7K
После сравнительной заметки о CSS Sprites и data:URL все мои мысли были направлены на решение основной проблемы:

В общем случае [при использовании data:URL], загрузка страницы не ускорится, а даже может замедлиться, потому что фоновые картинки (включенные через data:URL) будут грузиться в один поток, а не в несколько при обычном использовании спрайтов. Если фоновых картинок достаточно много (несколько десятков Кб), то это окажется существенным.

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

Читать дальше на webo.in→
Всего голосов 54: ↑49 и ↓5+44
Комментарии45

MySQL Performance real life Tips and Tricks

Время на прочтение9 мин
Количество просмотров37K
Пообещал вчера написать статью о реальных случаях оптимизации БД MySQL.
Пришлось сегодня вставать утром пораньше чтобы воплотить обещанное в жизнь.
Централизованное управление мыслями поддерживать еще сложно, поэтому не судите строго за казусы и ляпсусы в моей статье.

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

В данной статье опишу несколько приемов, которые были использованы для приложения с 4млн+ пользователей и которое имея порядка 100млн+ хитов в сутки, а в конце опишу задачу, которая решалась недавно и может быть многоуважаемое сообщество предложит мне решения этой задачи более эффективное нежели то, к которому пришел я.

Читать дальше →
Всего голосов 143: ↑139 и ↓4+135
Комментарии93

Время прихода на работу

Время на прочтение2 мин
Количество просмотров10K
Статью выкладываю по разрешению автора. Оригинал здесь.

Я знаю два варианта организации времени начала работы в IT фирме и довелось мне поработать с обоими вариантами.
  1. Приход на работу к конкретному времени. Сродни советскому: в 8.00 все должны быть на работе иначе штраф или даже увольнение. Уходят все в 17.00
  2. Свободный приход к любому времени. Тут может быть куча вариаций, когда надо работать 8 часов в день или 40 часов в неделю или вообще никто время не смотрит, лишь бы работа делалась.


Я проработал 7 лет в компании, где надо было приходить каждый день в 9.30 и уходить не раньше 18.30, а теперь уже полгода в компании, где каждый приходит и уходит когда хочет.
И теперь я готов сравнить варианты.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии155

AdMe.ru: Тэги, полнотекстовый поиск и всё такое…

Время на прочтение9 мин
Количество просмотров7.5K
В этой статье я открою секреты того, как работает adme.ru, а именно я расскажу о том как устроено хранение статей и тэгов, как работает полнотекстовый поиск, поиск по тэгам и всё такое…

В статье приведён пример структуры таблиц, рабочий конфиг Sphinx и немного php кода с примерами выборок.
Читать дальше →
Всего голосов 71: ↑64 и ↓7+57
Комментарии32

Ограничения на названия логинов

Время на прочтение1 мин
Количество просмотров7.6K
Добрый день. В этой заметке я хотел бы поговорить об ограничениях, которые выставляются в сервисах на логины.

Создавая очередной сервис, я исхожу из следующих соображений:
1. Логин не должен быть слишком короткий (у меня сейчас от 3 символов включительно, для более крупных систем, типа GMail, используется от 6).
2. Логин не должен быть слишком длинный, иначе в каком-нибудь интерфейсе он начнёт что-нибудь неправильно распирать. Я использую логины до 20 символов, но интересно выслушать ваши мнения по этому поводу.
3. Логин может использоваться в адресной строке, при интеграции с SMS и проч. Поэтому оставляем только латинские символы, цифры, подчёркивание, дефис и точку.
3а. Если логин может быть использован как имя поддомена, то эти условия сокращаются до символов латинского алфавита, цифр и дефиса (дефис не может быть первым и последним, он не может повторяться).
4. Иногда очень удобно использовать двойную навигацию: по логину и ID. Например, у нас на одном сервисе используется адрес domain.com/users/<login> для пользователей с логином и domain.com/users/<id> для тех, у кого нет логина (т. н. виртуальные профили, которые зарегистрированы администрацией или другими пользователями). Это приводит к тому, что логин не может состоять только из цифр, чтобы не путать его с идентификатором.
5. Слова-исключения: www, mail, ns1, ns2, ns3, ns4, admin, god, moderator, editor. Первые 6 являются исключениями для совместимости с поддоменами. А какие слова-исключения используете вы?

И основной вопрос к читателям: какие ограничения стоят у вас, и что я забыл?
Всего голосов 65: ↑50 и ↓15+35
Комментарии94

Подсчет количества найденных записей в PostgreSQL

Время на прочтение3 мин
Количество просмотров43K
На работе в новом проекте используется СУБД PostgreSQL. Так как до сих пор я работал с MySQL, сейчас приходится изучать и открывать для себя Постгри. Первая проблема, которая меня заинтересовала — замена мускулевского SQL_CALC_FOUND_ROWS. При использовании этой константы в MySQL можно получить количество всех найденных по запросу записей, даже если запрос с limit'ом — это незаменимо при постраничном выводе поисковых результатов, когда используются «тяжелые» запросы.
Сходу готового решения найти не удалось. На форумах просто констатировали, что SQL_CALC_FOUND_ROWS в Постгри нет. Некоторые писали, что надо юзать count(*). И больше никакой информации. Но еще из MySQL мне было известно, что поиск с count()-запросом работает почти в 2 раза медленнее, чем с SQL_CALC_FOUND_ROWS. Я консультировался у тех, кто пользуется PostgreSQL, день мучал google и в результате получил 4 варианта замены SQL_CALC_FOUND_ROWS в PostgreSQL, один из которых вполне приемлимый по скорости.
Читать дальше: какие запросы и какая разница в скорости
Всего голосов 37: ↑35 и ↓2+33
Комментарии43

Лямбда вычисления и замыкание

Время на прочтение2 мин
Количество просмотров2.2K
В конце 2007 года был предложен патч, добавляющий лямбда функций (но без замыканий) для PHP. В ходе дискуссии в списке рассылки, было решено, что без поддержки замыканий, нет необходимости добавлять их в PHP.
Тем не менее, интерес к этой теме привел к существенным изменением первоначального патча Кристиана Сайлера (Christian Seiler) и выпуску Дмитрием Стоговым (Dmitry Stogov) нового патча.

В результате мы имеем замыкание и лямбда функции в PHP (5.3)


Читать дальше →
Всего голосов 46: ↑39 и ↓7+32
Комментарии159

Работа с датой. PHP5.2

Время на прочтение2 мин
Количество просмотров14K
В PHP5.2 для работы с датой/временем появились классы DateTime и DateTimeZone. Вначале на них не обратил внимание, так как привык пользоваться функциями date(), etc. Но потом решил все-таки посмотреть какие возможности реализуют новые классы.

DateTime


Конструктор класса


DateTime DateTime::__construct ([ string $time [, DateTimeZone $timezone ]] )

Конструктор принимает два параметра:
1. Строка в формате принимаемым strtotime(), по умолчанию — «now».
2. Зона для которой будем считать время.
Читать дальше →
Всего голосов 54: ↑45 и ↓9+36
Комментарии46

Информация

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