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

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

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

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

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

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

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

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

Hadoop Distributed File System

Время на прочтение4 мин
Количество просмотров48K
Современные тенденции в развитии web-приложений и экспоненциальный рост информации, ими обрабатываемых, привел к потребности в появлении файловых систем ориентированных на обеспечение высокой производительности, масштабируемости, надежности и доступности. В стороне от данной проблемы не могли остаться такие гиганты поисковой индустрии, как Google и Yahoo.

Специфика приложений и вычислительной инфраструктуры Google, построенной на огромном количестве недорогих серверов, с присущими им постоянными отказами, привело к разработке собственной закрытой распределенной файловой системы Google File System (GFS). Данная система нацелена на автоматическое восстановление после сбоев, высокую отказоустойчивость, высокую пропускную способность при доступе к данным в потоковом режиме. Система предназначена для работы с большими объемами данных, подразумевающих большие размеры хранимых файлов, поэтому GFS оптимизирована для соответствующих операций. В частности, в целях упрощения реализации и повышения эффективности GFS не реализует стандартный POSIX-интерфейс.

Ответом GFS стал open source проект Hadoop, с его Hadoop Distributed File System.
Читать дальше →
Всего голосов 51: ↑48 и ↓3+45
Комментарии41

Оптимизация оптимизации

Время на прочтение3 мин
Количество просмотров949
В продолжение темы клиентской оптимизации слиянием ресурсов.

Как было показано раньше, выгодно разделить ресурсы на две группы: «ядро» (загружаются на всех страницах) и «ресурсы страницы» (загружаются только на страницах, которые их используют). Проблема состоит в выборе ресурсов, которые должны быть включены в ядро — слишком большое ядро может значительно увеличить время первоначальной загрузки сайта.

Есть три основных вида обращения к странице:

1. начальная загрузка (загружается и ядро, и ресурсы выбранной страницы)
2. загрузка новой страницы (ядро находится в кеше, загружаются ресурсы выбранной страницы)
3. загрузка старой страницы (и ядро, и ресурсы страницы находятся в кеше).

На скорость загрузки в третьем случае мы повлиять не можем. Кроме того, для ускорения начальной загрузки выгодно уменьшить объем ядра, поэтому оптимизация случая (1) ухудшает время загрузки в случае (2) и наоборот. Что делать?

математика и формулы в TeX под катом
Всего голосов 25: ↑19 и ↓6+13
Комментарии8

Ajax-машина

Время на прочтение11 мин
Количество просмотров4.1K
Знали ли разработчики LiveScript из Netscape о том, какое влияние окажет их язык, позже переименованный в JavaScript, на лицо интернета — веб-сайты, или, может быть, они твердо на это рассчитывали, но факт остается фактом — JavaScript на сегодняшний день является одним из самых важных и распространенных языков в мире.

В то время, как на стороне сервера трудится разношерстная компания языков в лице php, perl, python, ruby, .net, java и многих других, на стороне клиента JavaScript существует буквально в гордом одиночестве. Фактически, из маленького дополнения к html, JavaScript превратился в полноправного члена банды «html+css+js», который, зачастую, уже командует остальными, сверкая золотым браслетом с надписью «ajax» и делая недовольное лицо $( ) при случае.
продолжить чтение
Всего голосов 142: ↑131 и ↓11+120
Комментарии91

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

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

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

патч для «простого ответа»

Время на прочтение1 мин
Количество просмотров873
Хочу представить вам небольшой патч, который реализует возможность использовать такие конструкции для настройки:

location /response {
    response "<root><pid>$pid</pid></root>";
    response_type "text/xml";
}
Всего голосов 24: ↑23 и ↓1+22
Комментарии21

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

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

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



Введение


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

Программирование на языке Piet для сусликов

Время на прочтение1 мин
Количество просмотров8.5K
Добрый день.
Кризис, мало заказов, появилось немного свободного времени? Самое время научиться писать важные и полезные программы на эзотерическом языке Piet, который использует разноцветные изображения в качестве операторов. Я написал вот такую:

программа на Piet

С ее помощью суслики(и не только) могут узнать, с какой скоростью им следует размножаться, чтобы удвоить свою численность за X лет. Работать с программой очень просто: вводишь X, получаешь %, на который стоит увеличивать свою популяцию за год.
Читать дальше →
Всего голосов 119: ↑106 и ↓13+93
Комментарии82

Счастливые билеты

Время на прочтение2 мин
Количество просмотров8.4K
Уже больше недели хожу пешком и катаюсь на общественном транспорте, проездные билеты не продают после 5-го числа, поэтому приходится каждый раз при посадке оплачивать проезд. А что чаще всего делают школьники и студенты (а часто даже взрослые люди, каждый день наблюдаю) с билетом первым делом? Проверяют его на принадлежность к так называемым «счастливым», чтобы потом положить к себе в коллекцию, а может даже «по-тихому» съесть для верности. А может просто выкинуть :)

Счастливые билеты

В любом случае, это какое-никакое развлечение и повод для радости. И что-то детство в одном месте у меня заиграло, стало интересно, какова вероятность получить «счастливый» билет? Сколько всего «счастливых» билетов?

Помню, что в школе даже кто-то делал исследовательскую работу (или что-то в этом роде, не суть), мы пытались выводить формулы, рисовать графики и прочее.

Но, поскольку мощность наших компьютеров зачастую позволяет идти неоптимальным путем (с точки зрения математики), то решил не заморачиваться выводом формул.
Читать дальше →
Всего голосов 112: ↑89 и ↓23+66
Комментарии142

Лицензия Ubuntu для украинского (и не только) законодательства

Время на прочтение2 мин
Количество просмотров4.5K
В последнее время все чаще и чаще слышу истории о том, что ведется активная борьба с нелицензионным софтом, конфискуют железо, выдают повестки в суд.
Буквально вчера в офисном здании где размещена наша небольшая фирмочка в одну из таких же небольших фирмочек постучались люди в погонах — у них нашли палёную винду со всеми вытекающими.

Естественно, мы забеспокоились о собственной безопасности. У нас на данный момент на всех десктопах установлена Ubuntu 8.04 LTS, несколько человек приходят с ноутбуками, где стоит лицензионный и не очень софт.

По непроверенным данным люди в погонах требуют наличие лицензии на софт даже если он бесплатный. В свете этих событий, прошу совета и ответа на несколько вопросов у хабралюдей, сталкивавшихся с подобными ситуациями. Сделайте, пожалуйста, приписку к своему комментарию — о какой стране идет речь. Лично меня интересует Украина. Также, было бы неплохо увидеть несколько примеров из жизни и комментарии хабралюдей с юридическим опытом
Читать дальше →
Всего голосов 113: ↑111 и ↓2+109
Комментарии341

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

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

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

MemcacheDB и MemcacheQ — ключевые компоненты высокопроизводительной инфраструктуры

Время на прочтение5 мин
Количество просмотров7.5K
Cегодня мы поговорим о компонентах для высокопроизводительной и масштабируемой архитектуре на основе сервера memcached, а именно — распределённой базе для хранения данных MemcacheDB и системы очередей сообщений MemcacheQ.



Сначала рассмотрим, а что у нас есть в распоряжении для создания распределённой инфраструктуры хранения данных для веб-приложения. Ну, первое, что приходит в голову — кластеризация базы данных, это теперь поддерживается во всех распространённых системах, а также различные технологии репликации. Например, самая популярная СУБД для веб-проектов, MySQL поддерживает как репликации так и кластеризацию. Ещё можно обратится к традиционным файловым система и хранить данные в файловой системе, к примеру, Apache Hadoop. Но часто это слишком высокоуровневое решение, обычно же требуется гораздо проще варианты — когда нужно хранить и оперировать просто парами ключ-значение. Если серьёзно посмотреть, такая функциональность позволит покрыть потребности 90% веб-приложений. А если мы прибавим к этому возможность очень и очень быстро оперировать данными, хранить их в виде распределённой многосерверной системе и возможность постоянного хранения, устойчивого к сбоям — получим очень привлекательную платформу.

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

MySQL Query Cache

Время на прочтение5 мин
Количество просмотров110K
В MySQL есть очень полезная функциональность — кеш запросов. Кеш запросов доступен в MySQL начиная с версии 4.0.
Многие СУБД имеют подобную функциональность, но в отличие от MySQL они кешируют планы выполнения запросов, тогда как MySQL кеширует результаты запросов.
Дальше о том, как работает кеш запросов, как его настраивать и оптимально использовать.
Читать дальше →
Всего голосов 70: ↑67 и ↓3+64
Комментарии60

Карта блогов

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

Зачем это?

  • Очень много постов попадают в первый попавшийся блог, что, на мой взгляд, неправильно. Наверняка, таким авторам как alizar сразу ясно, куда отправится пост, но многие топики попадают не туда, например, в стартапы пишут о бизнесе (о котором есть несколько очень похожих блогов), когда тема поста — продюсирование или менеджмент. То есть, посты мимо блога — нехорошо.
  • Надеюсь, получится полезная штука как ХабраРедактор и Source Code Highlighter.
  • И для хабраленты может пригодится — остается только выбрать интересующие разделы и подключиться или подписаться по RSS. К тому же бывают закрытые записи, в который может быть больше нужной информации чем в среднестатистической оной.
Update: Если есть мысли как это лучше все расположить — пишите обязательно.
Так же хочу выписать людей, кого наиболее интересно читать, но тут без коллективного опыта никак.
Пустые блоги отмечены курсивом. Первые три страницы топа осилено, потихоньку шагаем.

Собственно, карта
Всего голосов 78: ↑76 и ↓2+74
Комментарии27

Обрати внимание

Время на прочтение1 мин
Количество просмотров693
ui
Зачастую необходимо обратить внимание пользователя на какую-либо деталь интерфейса.

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

Я хочу Вам показать прием позволяющий обратить внимание пользователя, на мой взгляд, с большой точностью.
Читать дальше
Всего голосов 75: ↑50 и ↓25+25
Комментарии36

Скриптлеты для Web-разработчика + подарок

Время на прочтение41 мин
Количество просмотров6.3K
Для начала. Что же такое скриптлет?

Скриптлет — яваскрипт, помещеный в закладку и выполняемый на открытой странице при нажатии на ту самую закладку.

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

Читать дальше →
Всего голосов 128: ↑114 и ↓14+100
Комментарии44

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

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

Умный make

Время на прочтение1 мин
Количество просмотров4.1K
Большенство адэптов vim, которые использую его для работы с кодом, знают про такие комманды как :make и :cw. Первая запускает make, а вторая выводит список ошибок.
Так уж сложилось, что мои основные рабочие (те которые использую на работе :)) языки это Си и C++. И часто бывает, что нужно написать программку в один файл, дабы проверить какой-то алгоритм, функцию или идею. При том писать makefile для одного файла в лом, а так хочется использовать привычную комбинацию клавиш. Набросал замечательный солюшен:
if filereadable("Makefile")
	set makeprg=make\ -j4
	map <C-b> :make<CR>:cw<CR>
else
	map <C-b> :make %:r<CR>:cw<CR>
endif

Как видно суть в том, что запускать просто make при наличае makefile и make имя_файла при отсутствии. make -j4 указывает на запуск четырёх потоков сборки, для двухядерных процессоров самое оно, особенно в сочетании с ключеком -pipe для gcc :)
Всего голосов 19: ↑13 и ↓6+7
Комментарии2

Процессы и потоки in-depth. Обзор различных потоковых моделей

Время на прочтение10 мин
Количество просмотров121K
Здравствуйте дорогие читатели. В данной статье мы рассмотрим различные потоковые модели, которые реализованы в современных ОС (preemptive, cooperative threads). Также кратко рассмотрим как потоки и средства синхронизации реализованы в Win32 API и Posix Threads. Хотя на Хабре больше популярны скриптовые языки, однако основы — должны знать все ;)
Далее
Всего голосов 64: ↑62 и ↓2+60
Комментарии45

Золотые горы стартапу, или не живем бесплатно, даже если назвался 'free'

Время на прочтение11 мин
Количество просмотров1.8K
Этот топик — приглашение к обсуждению. В конце обещаю очень полезную вещь.

В последнее время, все больше появляется бесплатного и открытого. Все понятно, когда Google делает великолепный инструмент на котором можно было бы много заработать (SketchUp) — бесплатным — все понимают, что компания и так зарабатывает много денег и ей важнее заполучить больше пользователей. Хотя и есть платная версия. Однако все больше и больше из нас придумывают новые идеи, такие как YubNub (сервис не мой), и подобные, которые облегчат жизнь пользователям. Сделать — день-два, отладить неделя-десять, донести до ума пользователей — год.

Однако встает вопрос — тратить время на развитие сервиса — это терять деньги. Элементарно — сервер, люди, личное время — все деньги отнимает. Раньше эту проблему могла бы решить реклама…
Читать дальше →
Всего голосов 128: ↑117 и ↓11+106
Комментарии128

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность