Pull to refresh
0
Be3 @Be3read⁠-⁠only

User

Send message

CouchDB сегодня

Reading time8 min
Views27K


Что такое CouchDB для вас? Вероятно любой, кто хоть немного интересуется популярной нынче темой NoSQL, прекрасно знает общие детали: это такая симпатичная игрушка с map/reduce-запросами, которые пишутся на JavaScript, с которой можно работать, гоняя JSON по HTTP-протоколу, а также не исключено, что слышали, что она fault-tolerant, тобишь не ломается вообще. Дальше этого обычно дело не идёт, в результате CouchDB отправляется в delicious в общую кучу со всякими MongoDB, Cassandra, Hadoop и т.п.

Примерно такого мнения придерживался и я вплоть до недавнего времени, пока не возникла острая необходимость переосмыслить архитектуру текущего проекта (упёршегося лбом в свою реляционную БД) и пересесть на документную базу данных, которая бы умела map/reduce. После того, как более пристально взгялнул на CouchDB, я понял, что он уникален в своём классе, его не следует ставить в один ряд с упомянутыми продуктами. Идеи, которые заложены в CouchDB настолько концептуальны, что способны в корне перевернуть представление о разработке веб-приложений.

О том, что же меня так впечатлило, постараюсь рассказать под катом.
Читать дальше →

Еще раз о модульности

Reading time2 min
Views2.6K
Модульность, как писал Рауф, несет в себе множество преимуществ. Давайте рассмотрим «правильную» модульность в контексте разработки программ. В примерах я специально мешал языки человеческие и программистские, дабы не привязываться к реализации языков программирования, а дать возможность читателю подумать — как такое лучше реализовать в его языке. Во преки тому, что я и сам сторонник максимальной гибкости и модульности, в статье я покажу, что даже здесь может быть перебор. Выбор в любом случае остается за разработчиком. И разработчик несет очень большую ответственность за этот выбор. Что выбрать? Сделать монолит, и через пару лет убиться на его поддержке, или сделать максимально гибко и потратить деньги работодателя на абстракции, которые никогда не пригодятся?

Читать дальше →

Пишем фильтр «плохих» слов

Reading time5 min
Views94K
Многие из вас наверняка не раз бывали в публичных многопользовательских чатах. Будь то форум, вебчат или чат-сервер в локалке провайдера, идеального порядка можно достичь лишь при малом количестве пользователей (не более сотни, на мой взгляд). Когда сообщество разрастается, возникают примерно одни и те же проблемы: мат, спам и флуд — один скучающий индивид каждую минуту постит «Все в кантру!», другой матерится по поводу и без и все в таком духе.

Идеального мат-фильтра до сих пор не изобретено. Но мы этим заниматься и не будем, рассмотрим реализацию необходимого минимума.
Читать дальше →

Тонкая настройка Synaptics Touchpad

Reading time3 min
Views118K
Synaptics производит отличные тачпады: они отзывчивы, обладают мультитачем и, что самое главное, их можно долго и нудно легко и просто настраивать под свои ловкие пальчики.

Вот только одна незадачка: вся эта прелесть прекрасно работает в Windows 7, в то время как в Linux как всегда лишь унылые огрызки, и наполовину не использующие все свои возможности.

Бесстрашный Хабраюзер, готов ли ты бороться со вселенской несправедливостью? Тогда добро пожаловать под хабракат, тебя ждет море удовольствия, linux-way и миллионы счастливых кликов на выходе :)
Читать дальше →

Уязвимость связки PHP+nginx с кривым конфигом

Reading time1 min
Views61K

Summary


Announced: 2010-05-20
Credits: 80sec
Affects: сайты на ngnix+php с возможностью загрузки файлов в директории с fastcgi_pass




Background


Зачастую How-To по настройке связки nginx с php-fpm / php-cgi есть подобные строчки:

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    include fastcgi_params;
}

Читать дальше →

Делаем ссылки во flash-баннере, не имея исходников

Reading time2 min
Views3.3K

Зачем?



Вам никогда не приходила верстка с flash-элементами, которые должны быть ссылками на внешние или внутренние ресурсы, но на деле таковыми не являющимися? При этом, когда вы не flash-разработчик и Flash IDE под рукой нет (а то и операционная система, в которой вы работаете, эту самую Flash IDE не поддерживает) — это становится небольшим затруднением. Можно, конечно, пнуть верстальщика, чтобы он все поправил, но это требует времени, а значит денег. Кроме того, пинать его каждый раз когда URL поменяется не самая лучшая идея.

На помощь приходят swftools



На сайте разработчика можно узнать, что это набор консольных утилит для работы с .swf файлами. Утилиты эти хорошие и разные (например, компилятор ActionScript не умеет компилировать Box2D, то есть не всякий синтаксис ActionScript понимает), но с нашей задачей они справятся.
Утилиты, к слову говоря, умеют:
  • конвертировать в swf из pdf (PDF2SWF)
  • вытаскивать из swf-роликов контент (SWFDump, SWFStrings, SWFBBox, SWFExtract )
  • конвертировать в swf некоторые графические/аудио/видео форматы файлов (JPEG2SWF, PNG2SWF, GIF2SWF, WAV2SWF, AVI2SWF)
  • импортировать в swf-ролик шрифты TTF, Type1 (Font2SWF)
  • компилировать код ActionScript3 с определенными ограничениями


Хорошо, а ссылки в баннерах как сделать?


об этом под катом

Правильная обработка ошибок в PHP

Reading time7 min
Views33K

Что я понимаю под правильной обработкой:


  • Универсальное решение, которое можно вставить в любой существующий код;
  • Легко расширяемое решение;
  • В PHP аж три «механизма ошибок»: собственно ошибки (error), исключения (exception) и утверждения (assertion). Свести три механизма к одному — exception. В комментариях к предыдущей статье на эту тему выражалось мнение, что exception это плохой и/или сложный метод обработки ошибок. Я так не считаю и готов это обсудить в комментариях;
  • Опциональное логирование;
  • Общий обработчик exception, который будет поддерживать разные форматы вывода и debug/production режимы;
  • В debug режиме должен выводится trace. Требования к trace: компактный, понятный и по возможности ссылки на открытие файлов в IDE.

Теперь по порядку

7 бесплатных сервисов для проверки сайтов (о которых вы могли и не знать)

Reading time2 min
Views255K
Картинка для привлечения внимания
Мне достаточно часто приходится использовать различные онлайн-сервисы для проверки доступности сайтов и их поверхностных тестов и проверок.
Как показал краткий опрос коллег — почти у всех эти наборы сервисов отличаются. Я хочу показать вам свой, прошу в
подробности

progress bar для консольных утилит

Reading time1 min
Views34K
По долгу службы мне время от времени приходится копировать, архивировать, разархивировать и проводить другие стандартные действия с большими файлами. Консольные утилиты, типа cp, tar или cat — отлично справляются с поставленной перед ними задачей, но возникает одна маленькая проблема: предположим, что надо заархивировать SQL-дамп на 500 Мб, на среднем железе данная операция может выполняться 5 — 10 минут и при этом, стандартный tar не выводит никакой строки прогресса, т.е. консоль как бы подвисает и только открыв top в соседнем окне можно понять что что-то происходит. Я думаю, что будет намного удобнее, если в консоли появится полоска прогресса как в том же scp и тогда пользователь будет лучше осведомлен о том, как долго ему осталось ждать до завершения операции.
Как же этого добиться?

Срываем сроки

Reading time2 min
Views1.3K
Когда уже закончится этот ад? Такой вопрос частенько задаёт себе рядовой фрилансер в повседневной жизни. Вроде и платят нормально, и ТЗ изложен доходчиво (не так, как в прошлом проекте), но всё равно — не прёт… Уже и баш весь перечитал, вконтакте всем отписался, потроллил на хабре, но поработать никак не получается, хоть доделывать осталось всего ничего, если собраться с силами — можно за две недели добить… И вот так один дедлайн сменяется другим, затем начинается игра в прятки с заказчиком, потом обоюдные обиды, плохие отзывы… Знакомо, не правда ли?

Читать дальше →

Я.Субботник по вёрстке (ВИДЕО)

Reading time1 min
Views621

3 июля прошел Я.Субботник по вёрстке. Материалы и видеоверсии докладов с этого мероприятия доступны на странице субботников.

 

Я.Субботник по вёрстке стал первым среди субботников, в котором можно было принять участие не выходя из дома.  Была проведена видеотрансляция в интернет (онлайн-вещание), которая помогла всем, не успевшим зарегистрироваться (количество мест в конференц-зале ограничено), принять виртуальное участие в событии. 

В режиме реального времени можно было смотреть и слушать выступление сотрудников Яндекса,  через twitter (#yasubbotnik)  задавать вопросы и общаться с ними.

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

Юлия Симутенко, обучаем и развиваем

.

Что интересного нам расскажет EXPLAIN EXTENDED?

Reading time6 min
Views13K
Большинство разработчиков на MySQL знакомы с командой EXPLAIN, однако значительно меньше людей знают о команде EXPLAIN EXTENDED, появившуюся ещё в MySQL 4.1, и ещё меньше умеют ею пользоваться.

EXPLAIN EXTENDED умеет показывать, что же конкретно делает с Вашим запросом оптимизатор MySQL. Для разработчика может быть совсем не очевидно, насколько сильно может отличаться написанный им запрос от того, который в действительности будет выполнен сервером. Этот процесс называется механизмом перезаписи запросов (query-rewrite), и он является частью любого хорошего SQL-оптимизатора. Команда EXPLAIN EXTENDED добавляет дополнительные предупреждения (warnings) к выводу команды EXPLAIN, в том числе и переписанный SQL-запрос.
Читать дальше →

Открытие web-standards.ru

Reading time2 min
Views748
Веб-стандарты
Сегодня у нас хорошие новости: как и обещали, мы открываем наш флагманский сайт Веб-стандарты. Это ресурс со статьями, новостями и анонсами событий Web Standards Days, созданный разработчиками для разработчиков.
Читать дальше →

Сторожевой пёс следит за вами (мониторинг хостинга)

Reading time4 min
Views15K
Внимание! Данная статья для web-программистов — содержит исходники и техн. подробности.

На страже у качестваУ Вас было такое – что простой вопрос повергал Вас в ступор и глубокие раздумья? У меня такое случается каждый раз, когда клиенты или друзья спрашивают меня:

— Андрей, какой хостинг порекомендуешь для нашего сайта?


И ответить нечего, потому что все (все!) наши замеры не в пользу хостинговых компаний, даже никого конкретно приводить не буду — сами сможете проверить, выполнив рекомендации в этой статье.

Казалось бы, где зарыта собака? Ведь для нас хостинг – это одна из любимейших мозолей, на которую часто наступают, потому что мы – SEOнизаторы. Мы трудимся – чтобы выводить свои сайты и клиентов в топы, а плохой и нестабильный хостинг распугивает сканирующих роботов Яндекса, Гугла и иже с ними. Впрочем, часто хостинг валится и днём, особенно во время пиковых нагрузок около 18:00 из-за наплыва в Интернете зевак под вечер.

Вот самое простое, что бывает – сайт исправно работает днём, пока бдит саппорт хостера. А ночью иногда исправно «лежит» в нокдауне. Например, скрипты хостера делают бекапы и все перегружено. Клиенты спят, покупатели спят, сайт спит. Все довольны, кроме поисковых пауков.

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

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

Итак, ближе к делу.

Управление проектом на одной странице (таблица из одноименной книги К. А. Кэмбэлла)

Reading time1 min
Views54K
Только дочитал означенную в названии топика книгу. Она предлагает очень интересную и удобную схему для ведения проекта. Фактически, это – несколько усложненная диаграмма Ганта.

Однако я предположил, что таблица уже созданная в Excel будет многим хабравчанам удобна. Сама по себе книга имеет ценностью на 80-90 % в этой схеме. Но, думаю, без первоисточников вполне можно справиться с изучением данной диаграммы, тем более, что на официальном сайте издательства она представлена как:
Читать дальше →

Три вопроса на собеседовании руководителя проектов

Reading time1 min
Views27K
Предлагаю каждому написать в комментариях три вопроса, которые, по его мнению, обязательно нужно задать ПМу на собеседовании. Варианты оставляем в комментариях первого уровня, форма вопросов любая. В результате получим материал для опросника, который поможет выявить хорошего руководителя проектов из общей массы кандидатов.

Моя версия под катом.
Читать дальше

Учёт рисков при оценке трудоёмкости ПО и планировании проекта

Reading time5 min
Views21K

Поговорим о рисках


dice
Что такое риски? Что является риском, а что нет? Как учитывать риски при оценке трудоёмкости ПО и планировании проекта? Об этом я предлагаю поговорить в этом топике. В то же время, чтобы не раздувать топик и не повторяться, здесь не будут обсуждаться вопросы идентификации и митигации рисков — действий по выявлению, уменьшению вероятности возникновения рисков и минимизации их последствий.
После публикации статьи о смертных грехах в оценке трудоёмкости программного обеспечения мне указали, что ни автор, ни я ничего не сказали о рисках. Хочу исправить это досадное недоразумение и поведать вам немного о рисках и моём опыте работы с ними.
Читать дальше →

IT-радио «Пром.Разработка»: №12

Reading time1 min
Views1.5K
Гость студии: Дмитрий Журавлев, генеральный директор HFLabs (HUMANFACTORLABS).

О чем говорили:
  • Как становятся руководителями в IT
  • Первые шаги в бизнесе
  • Что не так с западными продуктами?
  • Наша схема управления проектами
  • Продажа проектов

5 самых распространенных ошибок менеджеров

Reading time3 min
Views5.5K
Множество проектов разработки программного обеспечения проваливаются исключительно благодаря плохому управлению. Следующий список, по моему мнению, содержит 5 самых распространенных и опасных ошибок, совершаемых менеджерами в области разработки программного обеспечения.
Читать дальше →

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity