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

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

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

Новая версия Rediska 0.4.0 — PHP клиент для Redis

Время на прочтение1 мин
Количество просмотров1.6K
RediskaGood news every one! Мы хорошенько потрудились чтобы сделать этот несовершенный мир чуточку лучше :). Для тех кто не знаком с предметом разговора, сначала стоит прочитать мои предыдущие посты о замечательной key-value базе Redis и о нашем удобном PHP клиенте Rediska (далее Редиска), а также погулять по его домашней страничке.
Уже пол года мы успешно обкатываем Redis на наших проектах (на самом популярном в среднем 130 000 уникальный посетителей в день и 1 500 000 просмотров) и не можем нарадоваться. По ходу разработки проектов, да и честно говоря, чтобы не ударить в грязь лицом перед вами, дорогие мои, мы старались довести Редиску до ума.
Вот, чем мы хотели порадовать вас в новой версии...
Всего голосов 36: ↑29 и ↓7+22
Комментарии16

15+ полезных документов по jQuery

Время на прочтение2 мин
Количество просмотров7K
Как известно, пару месяцев назад свет увидела jQuery 1.4, в которой мы можем наблюдать множество новых функций и возможностей. А значит, стало еще больше информации для изучения и запоминания. И не важно, насколько хорошо вы владеете искусством jQuery — запомнить всё в любом случае не удастся. И вот здесь нам на помощь приходят всевозможные сборники документаций и шпаргалки, которые очень полезно держать под рукой и периодически в них заглядывать).
Читать дальше →
Всего голосов 70: ↑59 и ↓11+48
Комментарии15

Про сайт metro29.ru

Время на прочтение2 мин
Количество просмотров1.2K
Здравствуйте. Сегодня я вам хочу рассказать о том, кто и зачем сделал сайт metro29.ru.
Всё дело в том, что многие в интернете озадачились вопросом откуда и для чего это было сделано.
На сайте чётко и ясно было написано для каких целей он создан. Всё равно большая часть народа не верила. Ну не верит народ, что существуют люди в нашей стране, которые делают что-то не выгоды ради, а помощи для.
подробности
Всего голосов 172: ↑144 и ↓28+116
Комментарии62

СУБД на PHP — реально! Представляем MooSQL!

Время на прочтение3 мин
Количество просмотров8.8K
MooSQL Я думаю, многие в своей жизни сталкивались с ситуацией, когда у вас под рукой нет MySQL (по разным причинам, например хостер не позволяет), а все-таки иметь что-то подобное, или даже сам MySQL хочется. Теперь у вас есть надежда :)! Я и nblxa хотим представить проект под названием MooSQL, цель которого — предоставить MySQL-совместимую СУБД на чистом PHP на случай, если в доме закончился обычный MySQL.
Читать дальше →
Всего голосов 155: ↑109 и ↓46+63
Комментарии125

Не стоит прогибаться под изменчивый мир или создаем свою атмосферу

Время на прочтение4 мин
Количество просмотров4K
Очередное эссе из разряда «нечеткой логики».

Сегодня попробую описать понятие «атмосфера» и как умение управлять атмосферой реально помогает в жизни, на работе и нештатных ситуациях.

Вообще, это интуитивное понятие — атмосфера — и поэтому описать его строго сложно. Это скорее ощущение. Атмосферы бывают сильные и слабые, доброжелательные, враждебные, тоскливые и т.д. Это что-то вроде внутреннего настроя и состояния нескольких человек. Чем больше народу в одной атмосфере, тем она сильнее. Яркий пример: похороны. Все находятся в состоянии подавленности и грусти, даже если не очень этого хотят!

Есть несколько важных моментов:
1. Атмосферу можно создать в-одиночку
2. Атмосферу можно «сломать»
3. Деструктивные атмосферы имеют свойство самоусиливаться (например, агрессивная толпа)

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

Разберем несколько примеров.

ГАИшник. (Мой любимый пример.)
Ситуация первая: вас тормозит на посту работник ГАИ. Ваши эмоции? Если вы торопитесь часто возникает мысль «Какого фига! Я же ничего...», она перерастает в раздражение, которое трудно скрыть и это чувствует ГАИшник. Теперь поставьте себя на его место: было бы вам приятно если бы вас на работе ни за что ни про что поливали эмоциональной грязью (раздражение я считаю именно такой субстанцией)?
Читать дальше →
Всего голосов 123: ↑101 и ↓22+79
Комментарии60

100 долларов в час

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

Ранее я упомянул свою ставку 100 долларов в час. Я получил десятки комментариев с общим смыслом “получать так много нескромно”. И никто не сказал “работать так мало нескромно”. Почему-то считается, что работать надо хотя бы 40 часов в неделю. Общество настроило нас:

  • работать надо много
  • жизнь должна быть трудной
  • времени должно не хватать.

“Welcome to real life. It sucks, but you’ll get used to it”, – говорят в сериале Friends.


Сколько стоит мое время?

Посчитать свою часовую ставку легко: зарплату делим на число рабочих часов. Если вы получаете хотя бы 10 долларов в час, вы найдете кучу мест, где можно сэкономить.

Я для себя принял ставку в 100 долларов в час, в первую очередь засчет того, что работаю неполный день, только по утрам.


Оно того не стоит

Стоит выяснить цену своего времени, как можно забить на убыточные дела. На прошлой неделе я ходил в театр Станиславского на “Севильского цирюльника” и забыл бутылку вина в камере хранения. Вино стоило 287 рублей, до театра идти 15 минут туда и 15 минут обратно. Получается, что при часовой ставке до 574 рубля дело выгодное, иначе выгоднее не забирать.

Пример расточительства
Удивительно, но даже крупные банки, обладающие штатом квалифицированных экономистов, не всегда прибегают к такому анализу. Мой друг получил звонок из Citibank с просьбой погасить задолженность в размере… 90 копеек. По самым скромным оценкам, только минута работы оператора на телефоне стоит полтора рубля. Прибавьте расходы на офис коллцентра, оборудование, страховку, налоги. Прибавьте работу офиса, куда друг приехал гасить задолженность, операционистов, в конце концов стоимость бумаги!

Вот примеры того, где можно сэкономить:


Читать дальше →
Всего голосов 387: ↑254 и ↓133+121
Комментарии356

10 бесценных жизненных советов, которые дает нам Альберт Эйнштейн

Время на прочтение4 мин
Количество просмотров54K
Интересная на мой взгляд статья, которая показывает, что одни и те же принципы никогда не устаревают. Конечно, все они уже часто проскакивали в той или иной форме на множестве ресурсов, но мне бы хотелось предложить вам их видение Ученым с большой буквы, Альбертом Эйнштейном.
Читать дальше →
Всего голосов 200: ↑172 и ↓28+144
Комментарии63

ANDNA — служба именования узлов сети Netsukuku

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

Всем привет! Это вторая из статей о Netsukuku — проекте создания P2P альтернативы современному Интернету.

В этот раз я расскажу об ANDNA (A Netsukuku Domain Name Architecture) — службе разрешения имен в IP адреса, являющейся местным аналогом службы DNS и протокольно совместимой с ней.

Тем кто не знает о чем вообще речь, рекомендую прочитать первую часть.
Читать дальше →
Всего голосов 60: ↑59 и ↓1+58
Комментарии109

JQuery FormNavigate — плагин для удобной работы с onbeforeunload

Время на прочтение2 мин
Количество просмотров4.3K
Все, кто пользуется веб-интерфейсом gmail, наверняка замечали, как гугл заботится о нас и не даёт закрыть страницу, если мы начали составлять письмо и не сохранили его в черновики. И понадобилось мне для своего проекта сделать нечто похожее.

Сперва сделал это используя window.onbeforeunload, но злая опера не поддерживает это событие.
Призадумался, попутно нашёл плагин для jquery под названием FormNavigate.
Читать дальше →
Всего голосов 47: ↑39 и ↓8+31
Комментарии19

PHPUnit. Автоматические тесты

Время на прочтение4 мин
Количество просмотров63K
Предисловие переводчика:
Недавно начал изучать PHPUnit (framework семейства xUnit) и с удивлением обнаружил, что на русском языке нет статей про автоматические тесты для самых-самых чайников.
В первой главе документации по PHPUnit на примерах очень доступно рассказывается, что такое автоматическое тестирование.


Даже хорошие программисты допускают ошибки. Разница между хорошим программистом и плохим заключается в том, что хороший программист как можно чаще использует тесты, чтобы найти свои ошибки.
Чем раньше Вы начнете тестировать, тем выше Ваши шансы найти ошибку, и тем ниже цена исправления.
Это объясняет, почему откладывание тестирования до момента передачи программы заказчику является очень плохой практикой. Большинство ошибок так и не будет найдено, а цена исправления станет такой высокой, что Вам придется составить большой график работы, т.к. сразу Вы не сможете их все исправить.
Читать дальше →
Всего голосов 41: ↑25 и ↓16+9
Комментарии31

Как нанять программиста с закрытыми глазами

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

Найти хорошего программиста – это большая проблема. За свою жизнь мы наняли около 50 программистов исходя из интервью и только интервью. Редкий случай был успехом.Проблемы начинались оттуда, откуда их не ждешь.

  • Один не мылся и вонял так, что в комнату не зайти. Я угрожал поставить вытяжку и вычесть из зарплаты; это помогало на один душ, не больше.
  • Другой пил запоем и врал, что отравился брюшками семги.
  • И все, почти все затягивали сроки.


Каждый из тех, кого мы наняли, казался отличным профессионалом. И только опыт работы показывал, насколько ошибочным было первое впечатление. Как в браке: стоит пожить вместе, как понимаешь, чем именно тебя бесят.




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



Очередного программиста я нашел так: отобрал несколько откликов на HeadHunter.ru и попросил их посмотреть, чем они займутся. Вот что я написал:

Читать дальше →
Всего голосов 377: ↑339 и ↓38+301
Комментарии237

Хостинг Javascript-библиотек

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

Сегодня мы запустили новый сервис для веб-разработчиков — хостинг популярных JavaScript-библиотек на серверах Яндекса.


Используя загрузку библиотек из CDN Яндекса, вы получаете следующие преимущества:


  • Снижается нагрузка на ваш сервер.
  • Браузеры, следуя рекомендациям спецификации HTTP 1.1, обычно устанавливают не более 2 одновременных соединений с одним хостом (в современных браузерах — 6). Библиотеки загружаются с домена Яндекса, поэтому не блокируют загрузку данных с вашего домена.
  • Правильное кэширование и использование gzip.
  • Если пользователь уже посещал какой-либо сайт, который использует библиотеки Яндекса, ему не надо будет заново загружать файлы на вашем сайте — они сохраняются в кэше.
  • При использовании нашего загрузчика вы получаете неблокирующую загрузку JS и Яндекс.Метрику в подарок.
  • Каждая библиотека доступна как в сжатом виде, так и в стандартном (версия для разработки). Например, последнюю версию jQuery можно загрузить по такому адресу: http://yandex.st/jquery/1.4.2/jquery.min.js

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


Новости проекта будут публиковаться в нашем клубе, там же вы можете задать вопросы и оставить отзывы.


Алексей Андросов и Леонид Хачатуров, ускоряем интернет.
Всего голосов 109: ↑94 и ↓15+79
Комментарии75

Torrents эффект

Время на прочтение2 мин
Количество просмотров1.6K
Есть у меня проект в интернете, подобный torrents.ru (не всмысле что трекер, а всмысле что контент похожий). Не такой крупный конечно, но достаточно известный. И домен у меня в зоне RU.
Читать дальше →
Всего голосов 144: ↑124 и ↓20+104
Комментарии145

Как FriendFeed использует MySQL для хранения данных без схемы

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

Условия


Мы используем MySQL для хранения любых данных FriendFeed. Наша база данных растёт вместе с числом пользователей. Сейчас у нас более 250 миллионов записей, это записи пользователей (post'ы), комментарии, оценки («likes»)

По мере того как росла база данных, мы время от времени имели дело с проблемами масштабируемости. Мы решали проблемы стандартными путями: slave-сервера, используемые только для чтения, memcache для увеличения пропускной способности чтения и секционирование для увеличения пропускной способности записи. Однако, по мере роста, использованные методы масштабируемости привели к затруднению добавлению новой функциональности.

В частности, изменение схемы базы данных или добавление индексов к существующим 10-20 миллионов записей приводили к полной блокировке сервера на несколько часов. Удаление старых индексов требовало времени, а не удаление ударяло по производительности, так как база данных продолжала использовать их на каждом INSERT. Существуют сложные процедуры с помощью которых можно обойти эти проблемы (например создание нового индекса на slave-сервере, и последующий обмен местами master'a и slave), однако эти процедуры настолько тяжелые и опасные, что они окончательно лишили нас желания добавлять что-то новое, требующее изменение схемы или индекса. А так как наши базы сильно распределены, реляционные вещи MySQL как например JOIN никогда не работали для нас. Тогда мы решили поискать решение проблем, лежащее вне реляционных баз данных.

Существует множество проектов, призванных решить проблему хранения данных с гибкой схемой и построением индексов на лету (например CouchDB). Однако, по-видимому ни один из них не используется крупными сайтами. В тестах о которых мы читали и прогоняли сами, ни один из проектов не показал себя стабильным, достаточно зрелым для наших целей (см. this somewhat outdated article on CouchDB, например). А все это время MySQL работал. Он не портил данные. Репликация работала. Мы уже в достаточной мере понимали все его узкие места. Нам нравился MySQL именно как хранилище, вне реляционных шаблонов.

Все взвесив, мы решили создать систему хранения данных без схемы поверх MySQL, вместо использования полностью нового решения. В этой статье я попытаюсь описать основные детали системы. Так же нам любопытно как другие сайты решили эти проблемы. Ну и мы думаем, что наша работа будет полезна другим разработчикам.
Читать дальше →
Всего голосов 116: ↑110 и ↓6+104
Комментарии60

Увеличиваем скорость загрузки сайта используя lazy-load изображений

Время на прочтение1 мин
Количество просмотров70K
Сейчас многие сайты насыщены графикой в разных видах: аватары, иллюстрации к постам, галереи и тп.

Читатели блога «Клиентская оптимизация» как никто другой знают цену лишних запросов к серверу.

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

Читать дальше →
Всего голосов 68: ↑62 и ↓6+56
Комментарии75

«Прямой эфир» для общения c посетителями вашего сайта

Время на прочтение3 мин
Количество просмотров5.4K
Недавно я анонсировал Realplexor — habrahabr.ru/blogs/hi/79189 — однопоточный событийно-ориентированный Comet-сервер, написанный на Perl и имеющий готовое API для JavaScript и PHP. С его помощью можно создавать сайты, пользователи на которых взаимодействуют друг с другом в реальном времени, не перезагружая страницу и без значительного расхода трафика.

Сегодня я хочу представить и, как водится, немного «покопаться в моторе» первой версии продукта Прямой эфир, работающей на платформе РуТвит с применением Realplexor-а. Это виджет, который вебмастер может за 1 минуту установить на свой сайт, чтобы устроить микроблоггинг-общение с аудиторией в режиме реального времени.

С помощью «Прямого эфира» аудитория сайта общается между собой в реальном времени — «прямо сейчас», находясь в отдельной «чат-комнате», привязанной к вашему сайту. Виджет можно использовать для «прямого диалога» сразу со многими пользователями: например, для приема багов или фич-реквестов. Если пользователь, с которым вы общались, всё еще на сайте, вы увидите его присутствие: около его имени будет зеленый кружочек.

Для начала общения посетителю сайта нет необходимости проходить процедуру регистрации. Авторизация производится по OpenID. Т.е. ему достаточно иметь аккаунт на Яндексе, Google, LiveJournal и т.д., чтобы начать писать сообщения; не требуется даже e-mail.
Читать, как это устроено внутри
Всего голосов 60: ↑45 и ↓15+30
Комментарии45

QIP 2008 concept

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

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

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

О ссылках

Время на прочтение2 мин
Количество просмотров817
Я считаю, что ссылки не обязательно подчеркивать. Но неподчеркнутые ссылки — это отстой. Отстой потому, что неподчеркнутая ссылка признак маленького сайта. Но обо всем по порядку.
Читать дальше →
Всего голосов 29: ↑7 и ↓22-15
Комментарии32

Фотографируем гаджеты для обзора или сайта по-быстрому

Время на прочтение3 мин
Количество просмотров13K
Топики с обзорами всевозможных гаджетов появляются на хабре достаточно часто и возможно, мой рассказ покажется полезным как раз для такого случая – сделать фотографию гаджета для обзора. Здесь я расскажу как быстро сфотографировать небольшой гаджет с максимально возможным качеством. В крайнем случае, это можно сделать даже камерой телефона, я так и поступлю. Поскольку технические средства в этом топике ограничены, практически любое улучшение используемой техники приведёт к повышению качества результата.
Читать дальше →
Всего голосов 196: ↑191 и ↓5+186
Комментарии79

Иерархические структуры данных и производительность

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

Введение



В своей предыдущей статье я дал краткий обзор основных моделей хранения иерархических структур в реляционных БД. Как и положено тому быть, у многих читателей стал вопрос ребром о производительности представленных алгоритмов.

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

Читать дальше →
Всего голосов 123: ↑120 и ↓3+117
Комментарии27

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность