Pull to refresh
199
0
Максим Аршинов @marshinov

В саббатикале

Send message

Тестирование в Mail.Ru Group

Reading time12 min
Views41K
Эта статья написана по мотивам одноименного доклада на Highload++'2012. Предназначена она для руководителей, которые смогут, взглянув на наше тестирование, сравнить его с тестированием в своем проекте, для программистов и системных администраторов, которым представится возможность посмотреть на тестирование как на очень интересную работу, и, конечно, для тестировщиков.

В статье я расскажу, о том, каким на самом деле может быть тестирование, как мы сделали тестирование продуктивной и интересной работой, какие задачи мы решаем, и почему работать у нас хорошо.
Читать дальше →
Total votes 112: ↑76 and ↓36+40
Comments29

REMOTE: Office Not Required. Анонс третьей книги 37 signals

Reading time1 min
Views16K
Компания 37 signals — один из пионеров рынка SaaS и создатель фреймворка Ruby on Rails, знаменита не только своими софтверными продуктами, но и книгами Джейсона Фрида и Дэвида Хейнемейера Ханссона — Getting Real и Rework — которые основаны на реальном опыте разработки популярного софта и построения успешной компании. Обе книги стали бестселлерами. Осенью этого года выходит третья книга 37 signals под названием REMOTE: Office Not Required. Она посвящена преимуществам и организации удалённой работы.


Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments6

На пути к созданию безопасного веб-ресурса. Часть 2 — разработка

Reading time6 min
Views26K
Я рад продолжить рассказывать свои взгляды к подходам создания безопасных веб-ресурсов и веб-приложений и перейти от первой части, которая содержит в себе некоторые общеполезные security-инструкции при создании инфраструктуры для проекта, ко второй — разработке самого приложения.

Дыра в безопасности не была исправлена, так как продукт-менеджеры хотят новую фичу

Читать дальше →
Total votes 49: ↑38 and ↓11+27
Comments20

Кроссбраузерная кастомизация системного скроллбара

Reading time8 min
Views145K


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

Под катом можно узнать, как в ближайшее время будет работать скролл в 2ГИС Онлайн.
Подробности
Total votes 127: ↑116 and ↓11+105
Comments132

Автоматизированное резервное копирование рабочих станций Windows при помощи rsync и vshadow — Часть 1

Reading time3 min
Views83K
Если у вас возникло желание поддерживать рабочие станиции в максимально «защищённом» состоянии, а так же насколько возможно «автоматизировать» этот процесс, то этот пост для вас.

Будет использоваться:

Немного batch файла
Немного Linux сервера
Немного Windows Server 2008 R2 и Групповых политик

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

Для этого начнём с клиентской части.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments12

Databene Benerator — генерация тестовых данных

Reading time12 min
Views26K

Суть проблемы


Сейчас появляется очень много материала про юнит и нагрузочное тестирования. Все поголовно пишут тесты, код создают исключительно через TDD, используют jmeter/ab. Однако, все тестирование очень тесно связано с тестовыми данными. А их нужно генерировать/писать. Проблема не стоит остро для юнит тестирования — накидал mock, погонял его и забыл. Но как быть с нагрузочным тестированием? Когда мне нужно не 1-2-5-10 объектов, а миллионы?

imageБольшинство (php) разработчиков, которых я встречал, сталкиваясь с задачей нагрузочного тестирования своего кода, создают несколько фикстур руками и насилуют их (ab/jmeter). Полученный результат тестирования не является достоверным, но они об этом не думают. Более продвинутые пишут скрипты для генерации данных, закидывают в БД и после этого уже играются. Похвально, но таких значительно меньше, а сам способ мне не кажется идеальным — другой программист может не разобраться в говнокоде генерилки фикстур (ведь создатель писал это быстро и для утилитарных целей) и рано или поздно все либо пойдут по первому пути, либо начнут писать новую генерилку.

Ценность правильного составления фикстур сейчас недооценена, многие просто на это забивают из-за трудоемкости такой работы (представим 15-25 связанных таблиц, писать скрипт генерации фикстур будет весьма, кхм, интересно). Я прекрасно понимаю почему разработчики так поступают, и, когда появилась такая же задача, то решил не биться головой об стену, а поискать инструментарий для нормальной генерации связанных данных.

Я был очень удивлен, но ничего вразумительного не было найдено, сложилось ощущение, что никого этот вопрос просто не интересует и мне всю жизнь придется писать кривые скрипты с кучей циклов. Тем не менее, подходящий инструмент был найден, мы успешно опробовали его в работе, и теперь я хочу представить его вам.
А что же там такое?
Total votes 18: ↑18 and ↓0+18
Comments11

Договориться можно обо всём

Reading time2 min
Views40K
Добрый день, уважаемые посетители Хабра.



Несколько дней назад я прочитал замечательную книгу Гэвина Кеннеди «Договориться можно обо всём». Как верно отмечает автор, мы ведем переговоры с первых лет своей жизни, начиная еще до того, как научимся толком разговаривать, и важность правильно вести переговорный процесс, что в личной жизни, что в работе, очень сложно переоценить. Особенно важно умение вести переговорный процесс в IT индустрии, где заказчики и исполнители зачастую говорят на разных языках, и совершенно по-разному оценивают различные события и факты. Книга произвела на меня отличное впечатление, и я искренне рекомендую всем, при наличии свободного времени, ее прочитать. В процессе ознакомления с материалом, Гэвин предлагает читателям несложные тесты, и, далее, дает развернутые комментарии тех или иных наших ответов, классифицируя читателей по 4 категориям: Ослы, Овцы, Лисы и Совы, согласно умению вести переговорный процесс. Именно эти тесты, а точнее их автоматизация, и побудили меня написать этот пост на Хабре. Хотите проверить свой талант переговорщика?
Хочу! Дальше!
Total votes 153: ↑111 and ↓42+69
Comments85

Оправдание стоимости разработки сайта и защита от демпинга

Reading time7 min
Views65K
Привет, хабр. Сегодня я хочу поговорить о проблеме, с которой сталкивается абсолютное большинство молодых студий и агентств (и не только молодых, на самом деле) – про оправдание стоимости разработки интернет-проекта перед заказчиком и защиту от демпинга со стороны конкурентов. Надеюсь, эта информация найдет свое практическое применение и поможет вам создавать проекты по достойной цене.

Расчет себестоимости


Говоря о стоимости создания сайта, начать необходимо с определения его внутренней себестоимости в самой компании. До сих пор многие студии работают по фиксированным тарифам (сайт-визитка – XXX рублей, интернет-магазин – YYY и т.п.). Но, так или иначе, все агентства продают время своих сотрудников, и определение себестоимости должно отталкиваться именно от этого фактора.

Заказчик покупает время производящих сотрудников (дизайнеров, разработчиков, специалистов по вносу контента и пр.). Он не готов платить за время PR-менеджера, бухгалтера, уборщицы. Поэтому расчетная смета на проект отталкивается, как правило, именно от стоимости часов «производящих ресурсов».

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

  • ФОТ сотрудников – 50%
  • — Производящие ресурсы (30%)
  • — Менеджеры, обслуживающий и административный персонал (20%)
  • Условно-постоянные расходы – аренда офиса, канцелярка, расходники, еда, техника и пр. – 15%
  • Налоги – 20%
  • Маркетинг и реклама – 15%
Читать дальше →
Total votes 121: ↑103 and ↓18+85
Comments66

Как стать ведущим разработчиком. Часть 1

Reading time8 min
Views142K
Это перевод статьи, написанной Джоном Оллспоу, который на данный момент является старшим вице-президентом технического отдела в Etsy.

Продолжение перевода здесь

В нашей сфере деятельности нам доступны огромные объёмы знаний, в особенности тех, которые позволяют разработчику стать эффективным. Но почему-то, несмотря на существование множества книг о специфических задачах и обязанностях менеджеров в нетехнических областях, я практически не вижу новых книг или статей о том, как стать хорошим ведущим разработчиком. Замечательным исключением, конечно, являются статьи Кейт Maцудайры [от переводчика: на фотографии, кстати, именно она], немало написавшей о культурных составляющих инженерии.

Но в то же время, все мои знакомые преуспевающие разработчики помнят своих наставников, которые научили их тому, что значит быть „ведущим“.
Читать дальше →
Total votes 233: ↑203 and ↓30+173
Comments76

Визуальное редактирование данных на странице, используя HTML как хранилище данных

Reading time9 min
Views6.9K
Когда нам нужно предоставить пользователю возможность графического редактирования содержимого на странице, пожалуй, чаще всего мы используем JavaScript для хранения данных и передачи их на сервер, и все споры ведутся вокруг способа отображения, внешнего вида редактора. Наш выбор простирается от простого HTML (с холстом или без) до встроенного SVG или использования Flash плеера.

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

Для небольших объектов, структура которых хорошо описывается деревом или списком (например, корзина покупателя или бизнес-процесс), использование HTML элементов для отображения и хранения данных могло бы упростить разработку и поддержку.
Читать дальше →
Total votes 9: ↑3 and ↓6-3
Comments6

Электронная система управления подвеской горного велосипеда

Reading time10 min
Views258K
Уважаемое сообщество, представляю вашему вниманию отчет о проделанной работе по скрещиванию моих двух хобби: горный велосипед и микроэлектроника.

Итак, в этой статье речь пойдет об отечественной разработке электронной системы управления подвеской горного велосипеда. Не буду мучить длинным вступлением, сразу к фото и видео:


Подробностей о том чего удалось достичь. Видео и фото под катом.
Total votes 331: ↑328 and ↓3+325
Comments214

Личный опыт: хобби = бизнес?

Reading time4 min
Views71K
Я хочу поделиться с читателями Хабра своим опытом в достижении баланса между профессиональными и личными делами. Рассказать о том, как важно их разграничивать.

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



Как раз по такому сценарию развивалась компания Promwad, которую мы — выпускники технического ВУЗа — основали вместе со своими друзьями в 2004 году. Всё начиналось еще с детских увлечений физикой и программирования на инженерном калькуляторе. Потом радиотехнический институт и работа в сфере проектирования электроники.

В 2002 году я участвовал в проекте по разработке новой платформы для измерения волоконно-оптических линий связи. Вокруг этого амбициозного и сложного проекта собрались одни из лучших белорусских специалистов по системам на кристалле (СнК) и операционной системе Embedded Linux.
Далее о том, чем всё это закончилось
Total votes 120: ↑112 and ↓8+104
Comments32

Манифест разработки под клиента: причины революции (часть первая)

Reading time7 min
Views15K

Стив Бланк — гуру в области стартапов, основоположник концепции клиентоориентированной разработки, автор культовых книг — The Four Steps to the Epiphany и The Startup Owner's Manual -, фаундер восьми стартапов. Данная статья раскрывает причины, по которым стоит отказаться от традиционных подходов к построению стартапа.

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

У каждого стартапа есть какая-нибудь методология по разработке продукта, его запуску и управлению жизненным циклом. В идеальном случае, эти процессы содержат детальные планы, чек-пойнты и майлстоны для каждого этапа вывода продукта на рынок: определение размера рынка, оценка продаж, разработка маркетингово плана, приоритезация фич продукта. Но в конце концов, не смотря на все эти инструменты, 9 из 10 продуктов терпят неудачу.
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments27

AIDA. Автоматизация работы с Git, JIRA и TeamCity

Reading time5 min
Views38K
При разработке и тестировании какого-либо продукта появляется много рутинной работы. Чтобы избежать ошибок, связанных с человеческим фактором, мы используем AIDA.

AIDA (англ. Automated Interactive Deploy Assistant) — это учётная запись, значительно облегчающая работу с Git, TeamCity и JIRA.
Сегодня речь пойдет о том, как с её помощью нам удалось автоматизировать многие рабочие процессы.

В первую очередь мы вспомним об используемой в Badoo системе контроля версий, далее расскажем о том, как было автоматизировано создание веток релиза и осуществлено автоматическое слияние веток в Git, поговорим о существенной помощи AIDA в работе с JIRA (контроль и изменение статуса задач, заполнение полей) и ТeamCity (непрерывная интеграция и развёртывание на тестовое окружение).
Читать дальше →
Total votes 53: ↑50 and ↓3+47
Comments52

Рецензия на книгу Марка Сиимана «Dependency Injection in .NET»

Reading time4 min
Views19K


Открывая книгу по «новомодной технике проектирования», такой как инверсия зависимостей ожидаешь увидеть описание очередной серебряной пули. Дескать, вот, до этого все мы жили неправильно, а теперь, вооружившись ломом контейнером и какой-то матерью мы сможем писать новые приложения за 10 минут.
Поскольку сам я к подобным новомодным инструментам отношусь с некоторой осторожностью, то я был приятно удивлен тем, что в книге Марк делает акцент на общепринятых практиках проектирования, роли стандартных паттернов проектирования, да и вообще, рассматривает принципы управления зависимостями в отрыве от конкретных инструментов.
Читать дальше →
Total votes 32: ↑29 and ↓3+26
Comments17

Кеширование в ASP.NET MVC

Reading time6 min
Views48K
В прошлом посте я рассказывал о различных стратегиях кеширования. Там была голая теория, которая и так всем известна, а кому неизвестна, тому без примеров ничего не понятно.

В этом посте я хочу показать пример кеширования в приложении ASP.NET MVC и какие архитектурные изменения придется внести, чтобы поддерживать кеширование.

Читать дальше →
Total votes 29: ↑21 and ↓8+13
Comments26

Тестирование производительности: подводные камни

Reading time5 min
Views11K
Я занимаюсь созданием высоконагруженных приложений для биржевой торговли. Нагруженных как по объёму данных, так и по количеству пользователей и запросов. Естественно, что для таких приложений первостепенное значение имеет производительность, и, как следствие, тестирование оной.

Наблюдая со стороны это тестирование, я накопил некоторый объём информации, который, как я думаю, будет небезынтересен.
Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments13

Умный дом, как я до такого докатился. Часть 2-я

Reading time5 min
Views289K

В первой части я рассказал о причинах, побудивших меня заняться построением своего “умного дома”, и об используемом “железе”.
Но “железо”, само по себе, умным быть не может, главное это “софт”. Вот об этой стороне своего проекта я и хочу рассказать в этой части. Банальное управление освещением с пульта, конечно, выглядит круто в глазах непосвященной публики, но “ума” тут никакого.
Так что же такого умного можно сделать? И, главное, как?
Читать дальше →
Total votes 114: ↑112 and ↓2+110
Comments104

Темная сторона кода

Reading time3 min
Views86K

«Покой — это ложь. Есть только страсть.
Через страсть я познаю силу.
Через силу я познаю могущество.
Через могущество я познаю победу.
Через победу мои оковы рвутся.
И Великая Сила освободит меня.»

— Кодекс ситов

Я хочу поговорить о темной стороне кода и о том, к чему это приводит. Что я понимаю под темной стороной кода? С моей точки зрения — это такой код, который был написан программистами, которые поддались желанию написать кое-как, исходя из своих собственных целей, а не целей продукта. Они оставили покой (размеренное написание кода согласно практикам) в угоду страсти (код ради кода). А если есть темная сторона, то есть и ее представители — Темные властелины, Дарты. Вот о них мы сегодня и поговорим.
Читать дальше →
Total votes 163: ↑125 and ↓38+87
Comments78

Дайджест интересных новостей и материалов из мира айти за последнюю неделю №41 (19 — 25 января 2013)

Reading time5 min
Views41K
Предлагаем вашему вниманию очередную подборку с ссылками на новости, интересные материалы и полезные ресурсы.


Читать дальше →
Total votes 53: ↑46 and ↓7+39
Comments26

Information

Rating
Does not participate
Location
Казань, Татарстан, Россия
Works in
Date of birth
Registered
Activity