Обновить
4
0
Игорь Варавко@ivaravko

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

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

Использование метаклассов в Python

Время на прочтение11 мин
Охват и читатели44K
Некоторые средства метапрограммирования не так часто используются в ежедневной
работе, как обычные в ООП классы или те же декораторы. Для понимания же целей
введения подобных средств в язык требуются конкретные примеры промышленного
применения, некоторые из которых и приведены ниже.

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

Что менеджер проектов должен знать о тестировании

Время на прочтение5 мин
Охват и читатели14K
Я 8 лет занимаюсь тестированием. Ручным и автоматизированным, в роли тестировщика и тест-менеджера, как сотрудник компании и как представитель аутсорса. И почти на всех проектах сталкиваюсь с одной и той же проблемой: руководители проектов не понимают, зачем им нужно тестирование.

Если задать среднестатистическому РМ'у простой вопрос: «Зачем на этом проекте тестирование?», то чаще всего ответом будет «Ты же тест-менеджер, ты и должна ответить на этот вопрос».

Но ведь приходя в парикмахерскую вы не говорите мастеру «вы сами знаете, что мне нужно»? И в продуктовом магазине вы не просите продавца накидать вам в корзину то, что вам нужно? Вы можете советоваться, вы можете узнавать «а как можно?», спрашивать варианты, но решение всегда за вами. В чём отличие тестирования? Может, в том, что слишком мало менеджеров проектов понимают, зачем оно им?

В этой статье я постараюсь выступить в роли продавца, который показывает клиенту: «а что вообще бывает?» Многие вещи будут описаны, возможно, слишком подробно, слишком просто… Не серчайте, мне просто очень хочется быть понятой :)
Читать дальше →

Топ-5 самых впечатляющих книг, которые должен прочесть каждый разработчик ПО

Время на прочтение3 мин
Охват и читатели386K
Не так давно промелькнула ссылка на достаточно свежее (осень 2011) англоязычное голосование со скромным названием "самая впечатляющая книга, которую должен прочесть каждый разработчик программного обеспечения" и описанием:

Если бы вы могли вернуться в прошлое, к самому началу своей карьеры разработчика и сказать самому себе: «прочитай именно эту книгу», в самой начале своей карьеры разработчика, какую бы книгу вы рекомендовали?

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

Однако в данном небольшом посте я возьму на себя смелость перечислить ТОП-5 тех самых книг, победивших в голосовании, переведенных на русский язык. И дать небольшие комментарии, ведь книги действительно этого достойны. Да, лично я бы поменял некоторые места, однако положимся на «мнение зала» ресурса Stack Overflow.
Читать дальше →

Как Google тестирует ПО

Время на прочтение9 мин
Охват и читатели41K
Прослушав вебинар «How Google Tests Software» я был так вдохновлен, что решил записать некоторые тезисы. Эта статья и есть мой конспект. Прежде всего, я должен внести ясность относительно ее содержания. Это не дословный перевод. Здесь описаны только те вещи, которые показались мне важными. Проще говоря, здесь описано не все, что прозвучало в вебинаре. Так же существует вероятность, что я понял что-то не до конца или даже понял неправильно. Поэтому горячо рекомендую прослушать вебинар самостоятельно.
Его ведет Джэймс Витакер, который в данный момент занимает пост технического директора по тестированию ПО в Google. Джэймс совместно с коллегами готовится выпустить одноименную книгу. В ней можно будет получить исчерпывающую информацию о том, как проводят тестирование GoogleMaps, Google+, ChromeOS, Android и т.д…
Читать дальше →

Учебник по языку программирования Python (хабраиндекс)

Время на прочтение1 мин
Охват и читатели315K

WebSocket Protocol опубликован как RFC

Время на прочтение1 мин
Охват и читатели5.9K
Протокол WebSocket получил свой номер RFC и опубликован в официальной библиотеке IETF как RFC 6455. Это означает, что черновик спецификаций признан вполне удачным, в целом стабильным и подходящим для стандартизации. Его дальнейшую судьбу будет отслеживать организация IETF, и впереди у потенциального стандарта — два этапа. После «предложенного стандарта» будут рассмотрены улучшения, которые представит сообщество, затем документ RFC может получить статус «драфта» (чернового стандарта) и, в конце концов, может быть признан как полноценный Стандарт Интернета (STD) — из нескольких тысяч кандидатов до такого статуса дожили всего 72.

WebSocket — протокол двунаправленной связи между браузером и веб-сервером. Протокол включает в себя описание запроса клиента и ответа сервера на установление соединения, а также базовое оформление сообщений, передаваемых поверх TCP-соединения.

С помощью WebSocket можно создавать интерактивные браузерные веб-приложения, которые постоянно обмениваются данными с сервером, но при этом не нуждаются в открытии нескольких HTTP-соединений, как XMLHttpRequest или <iframe>’ы.

В качестве авторов RFC 6455 указаны Ян Фетте из Google Security Team и Алексей Мельников (isode.com).

Esprima — парсер для javascript, написанный на javascript

Время на прочтение3 мин
Охват и читатели14K
В сети и на github появилась разработка парсера Esprima, позиционированного на парсинг вообще и для javascript в частности. Он написан на Javascript и переводит скармливаемый текст в структуру JSON, которую затем можно анализировать, например, для препроцессирования кодов, создания сахарных обёрток для JS, автоматизированного поиска ошибок без запуска кода, преобразования языков (кросс-компиляции), преобразования серверного JS в клиентский или наоборот, для минификации кода или наоборот, для разбора обфусцированного. Но это — всё идеи для будущего. Появился архив совсем недавно (в середине ноября — первый коммит с 2000 строк кода), но уже приобрёл своих иследователей, судя по форкам. Формат парсинга совместим с Mozilla SpiderMonkey Parser API.
Читать дальше →

MongoDB: Создание, обновление и удаление документов

Время на прочтение3 мин
Охват и читатели81K
В рамках чтения мной книги “MongoDB: The Definitive Guide” Kristina Chodorow and Michael Dirolf, решил выписывать основные моменты из глав, для лучшего освоения материала. Возможно, кому-то это тоже будет полезно.

Insert



Insert — базовый метод для добавление информации в MongoDB. Для того, чтоб добавить документ в коллекцию делаем вот так:

> db.foo.insert( { “bar” : “baz” } );

В таких ситуациях, когда нужно добавить несколько документов, для более быстрой вставки желательно использовать, так называемые, batch insert’ы (групповая вставка)

> db.foo.insert( { “arr” : [ { a : 1 , b : 1 } , { a : 2 , b : 2 } ] } );

Грубо говоря, просто вставляем массив.
Читать дальше →

MongodbLogger — складываем логи вашего Rails 3 приложения в MongoDB

Время на прочтение2 мин
Охват и читатели2.8K
image

Привет всем. Сегодня я поведаю о своей разработке для Rails 3 — MongodbLogger. Начнем по порядку.

Rails приложение по-умолчанию складывает логи запросов в папку logs. Сами по себе логи очень удобная штука — они помогают посмотреть какие запросы идут в ваше приложение, посмотреть trace ошибки и прочее. В них можно дописывать дополнительную информацию. Хотя файловый лог прост и эффективен, но у него есть определенные ограничения: при использовании множество веб-серверова, лог у каждого свой; нет простого доступа. Запись в РСУБД решает вопросы централизации и простого доступа логов, но сразу возникают другие проблемы: схема таблицы не настолько гибка, как может быть структура лога; запись может быть недостаточно быстра; чистка старых логов — задачи на Ваших плечах. И тут на помощь приходит MongoDB.

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

Стабильность интернет-проекта: how to // Доклады с Форума Технологий Mail.Ru 2011: текст доклада, видео, презентации

Время на прочтение24 мин
Охват и читатели6.3K
Доклад «Стабильность интернет-сайта: how to» — очередной в серии расшифровок с Форума Технологий Mail.Ru 2011. Подробности о том, как работает система расшифровки докладов — см. в статье «Изнанка» Форума технологий Mail.Ru: Хай-тек в event-management. Там же, а также на сайте Форума (http://techforum.mail.ru) — ссылки на расшифровки других докладов.


(Скачать видеоверсию для мобильных устройств — iOS/Android H.264 480×368, размер 170 Mb, видеобитрейт 500 кбит/с, аудио — 64 кбит/с )
(Скачать видеоверсию большего разрешения H.264 624×480, размер 610 Mb, видеобитрейт 1500 кбит/с, аудио — 128 кбит)
(Скачать слайды презентации, 5.5Mb)

Наверное, для вас не секрет, что каждый раз, когда у какого-нибудь крупного сайта возникают проблемы с работой, перебои, это вызывает огромное количество обсуждений. Я постараюсь рассказать вам, как сделать так, чтобы ваш сайт не падал, или падал хотя бы реже. Что мы делаем для этого в Mail.Ru, какие методики мы используем.
Читать дальше →

PHP type hinting — строгое или мягкое?

Время на прочтение2 мин
Охват и читатели24K
Добрый день, %username%!

Сегодня мне хотелось бы обсудить тему type hinting в PHP. В данный момент в листе рассылки для разработчиков идёт жаркая дискуссия на эту тему и обсуждается какой подход нужно использовать и как это будет работать. Ваш покорный слуга тоже активно участвует в этой дискуссии.

Дискусию можно начать читать здесь и продвигается по ней кликая на next in thread.

А теперь перейдём к деталям!

HTML5 Canvas Map — реализация картографического движка

Время на прочтение3 мин
Охват и читатели20K
В рамках большого интерактивного веб-ориентированного проекта (подробнее о котором возможно в другом посте) я занимаюсь разработкой картографического движка, реализованного на HTML5 CANVAS. Его разработка дошла до стадии беты и, с одобрения моего руководства, появилось желание продемонстрировать данные карты широкой публике.

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

Шпаргалка по пакетному менеджеру NPM

Время на прочтение5 мин
Охват и читатели439K

npm — это пакетный менеджер node.js. С его помощью можно управлять модулями и зависимостями.
Небольшая шпаргалка всех моих любимых команд npm:

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

Попытка просто объяснить сложные, для новичков, вещи в javascript

Время на прочтение8 мин
Охват и читатели24K
Я попытаюсь просто объяснить, как работают замыкания в Javascript, как работает this, как создавать конструкторы для своих классов и чем различаются различные подходы к их созданию.
Статья не претендует на новаторство, но достаточно доступные объяснения how it works для новичков я не видел, и на мой взгляд — это три самых узких места в Javascript (не привязанному к какому либо контексту, серверу или браузеру, например).
Читать дальше →

Git Wizardry

Время на прочтение17 мин
Охват и читатели455K
1 Введение


В своей прошлой заметке я постарался осветить в общих чертах стиль работы с
распределенной системой контроля версий git и указать на отличия по сравнению с
классическими централизованными СКВ. Целью было прежде всего обобщение опыта
работы с системой без упоминания тонкостей синтаксиса отдельных команд.

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

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

Какие ошибки в письмах делают люди и роботы

Время на прочтение7 мин
Охват и читатели44K
Каждый день мне пишут роботы и обычные люди. В топике я расскажу про глупые ошибки в письмах, которых можно легко избежать. А ещё — о том, как устроена обработка почты у нас в компании.

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

Работа с ветками SVN

Время на прочтение6 мин
Охват и читатели191K
Прежде чем приступать вообще к использованию веток, и даже если вы и не думаете их использовать, необходимо прочесть Этот Священный Талмуд.

После того как вы прочли статью о ветках в svnbook, вы уже понимаете для чего нужны ветки, как с ними работать и в каких случаях их необходимо использовать. В принципе, после этого, то, что написано под катом вам уже скорее всего не нужно. Но если вам было лень читать, то может текст ниже вас заинтересует, и вы все таки прочтете статью документации. А может, просто поможет вам лучше понять то, что только что прочли в svnbook-е.
Читать дальше →

Ripple — браузерный эмулятор для тестирования мобильных платформ

Время на прочтение3 мин
Охват и читатели20K
imageВсе, кто занимается мобильным вебом, обязательно сталкиваются с проблемой тестирования на различных платформах. С одной стороны, тестировать надо на реальных устройствах, с другой стороны многие компании не могу достаточно быстро собрать парк нужных устройств. Сегодня я хотел бы написать про браузерный эмулятор для тестирования мобильных платформ под названием Ripple Emulator.
Читать дальше →

Учебный пример разработки PHP-класса с использованием TDD

Время на прочтение7 мин
Охват и читатели20K
В данном посте приводится учебный пример разработки PHP-класса, который совершает запрос к Twitter API с целью выборки статусов пользователя по его никнейму. Кроме того, Twitter-класс кеширует полученные данные с использованием еще одного PHP-класса, который осуществляет простое кеширование данных в файлах.

Целью поста является закрепление собственных знаний, полученных в результате прочтения некоторых книг, статей, а также возможность получить комментарии от опытных TDD-практиков, с указанием на грубые ошибки в процессе разработки или в тестах.

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

Написание плагина к Redmine

Время на прочтение8 мин
Охват и читатели18K
Про систему управления проектами Redmine наверное многие слышали, а некоторые возможно даже использовали в своей работе. Redmine — довольно гибкая кроссплатформенная система, написанная на известном фреймворке Ruby on Rails. Как и большинство подобных систем, Redmine позволяет расширять свою функциональность за счет сторонних плагинов. В данный момент уже имеется более тысячи таких плагинов на разный вкус и цвет. Я хочу рассказать об одном из них и о том как написать плагин к Redmine на его примере.
Читать дальше →

Информация

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