Как стать автором
Обновить
49
0.2

Погромист

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

Список литературы для менеджера продукта 80 уровня

Время на прочтение4 мин
Количество просмотров123K
Менеджер продукта – все еще редкий зверь в российских и украинских IT компаниях. И если внутри команд, где менеджер продукта существует, его роль вопросов не вызывает (если он, конечно, занимается делом), то знакомые в других компаниях, на конференциях, друзья, от разработчиков до менеджеров проектов задают массу любопытствующих вопросов. Вопросы очень разномастные – от того, о чем собственно работа, и как устроен процесс работы над продуктом в нашей команде, до того, где поучиться, что почитать, и где вообще берут на работу продакт менеджеров.

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

Сразу хочу сказать, что все книги на английском. Часть из них можно найти на русском, но без английского на уровне чтения и прослушивания подкастов будет тяжко – на русский клевые вещи об управлении продуктами переводят медленно и нехотя. Второй момент – чтение книг из этого списка не сделает из вас менеджера продукта. Как и книжка С++ за 21 день не сделает из вас С++ разработчика. Просто уровень вхождения в окологуманитарные профессии пониже, и это иногда создает напрасные иллюзии.

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

Итак, мой список рекомендованной литературы для всех, кто хочет хочет проливать кровь, пот и слезы работать продакт менеджером или уже работает им.
Читать дальше →
Всего голосов 84: ↑75 и ↓9+66
Комментарии20

Как мы самостоятельно, без издательства, выпустили книгу

Время на прочтение8 мин
Количество просмотров182K
image
О том, как мы пришли к идее издания книги, я рассказал в предыдущем посте. А тут я постараюсь рассказать про взаимоотношения с издательствами и почему в итоге мы сами выступили в качестве издательства; про то, как искали, где печатать книгу, и несколько курьезных моментов из этого; про подготовку макетов книги; про взаимоотношения с типографией и, наконец, как происходила непосредственно сама печать книги.

Вот основные стадии книги — от замысла, до выхода в свет:
Читать дальше →
Всего голосов 192: ↑187 и ↓5+182
Комментарии89

Анимация SVG-элемента path

Время на прочтение5 мин
Количество просмотров123K
Думаю многие видели обзоры игровых консолей нового поколения от Polygon (Vox Media). Это те, где консоли отрисовывались в стиле blueprint'ов:

PlayStation 4

Обзоры выглядели круто, довольно необычно и ново. О том как реализована основная фишка обзоров — SVG анимация, как сделать нечто подобное самому, и какие ещё «секретные» возможности скрывает старый добрый SVG в плане анимации элемента path — можно узнать под катом.
Читать дальше →
Всего голосов 64: ↑62 и ↓2+60
Комментарии15

Калькулятор цен на Cloud Hosting Instances

Время на прочтение1 мин
Количество просмотров11K
В очередной раз понадобилось примерно прикинуть стоимость серверов при переносе проекта в облако Amazon. Не удалось найти толкового инструмента, а то, что предлагает сам Amazon слишком сложно для моего понимания. Заодно сделал возможность сравнивать и подбирать сервера на Digital Ocean, RackSpace, Google Compute Engine и Microsoft Azure.

http://jagermesh.github.io/cloudhostingcalculator/

image

Проект на гитхабе — https://github.com/jagermesh/cloudhostingcalculator. Желающие могут дополнить ценами и типами инстансов. Все данные в data/instances.json.

Планирую добавить расчет стоимости Storage, сервисов (Load Balancing, etc...) и трафика. Когда-нибудь. Позже…

Надеюсь пригодится и сэкономит немного времени.
Всего голосов 28: ↑24 и ↓4+20
Комментарии18

60 FPS? Легко! pointer-events:none!

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


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

.hover .element:hover {
  box-shadow: 1px 1px 1px #000;
}
Читать дальше →
Всего голосов 144: ↑138 и ↓6+132
Комментарии58

Использование каскада Хаара для сравнения изображений

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

Признаки Хаара, про которые я расскажу, известны большинству людей, которые так или иначе связаны с системами распознавания и машинного обучения, но, судя по всему, мало кто использует их для решения задач вне стандартной области применения. Статья посвящена применению каскадов Хаара для сравнения близких изображений, в задачах сопровождение объекта между соседними кадрами видео, поиска соответствия на нескольких фотографиях, поиска образа на изображении и прочих подобных задач.
Всего голосов 79: ↑73 и ↓6+67
Комментарии19

Как работает автоматическое выделение документа на изображении в программе ABBYY FineScanner?

Время на прочтение5 мин
Количество просмотров16K
image
Что такое ABBYY FineScanner
ABBYY FineScanner – программа для iOS-устройств, которая может фотографировать документы и обрабатывать снимки так, чтобы получившиеся электронные копии (по сути – сканы) были удобны для работы – чтения, печати или хранения/пересылки в удобочитаемом виде. О выходе первой версии мы писали здесь.

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

Весь процесс можно разделить на несколько основных этапов:

1) Уменьшение исходного изображения
2) Выбор наиболее информативного канала
3) Предобработка изображения, выделение контуров
4) Детектирование границ и определение углов документа
5) Проверка полученных гипотез
6) Уточнение координат углов документа

Рассмотрим каждый из этапов подробнее.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии11

Скриншоты без десктопа на HTML5

Время на прочтение4 мин
Количество просмотров28K
Практически каждый день я пользуюсь почтой Gmail, но вот недавно заметил, что если сделать скриншот экрана (www.take-a-screenshot.org), то простым нажатием Ctrl + V этот скриншот можно скопировать прямо в текст письма Gmail. Это работает везде, но естественно кроме IE. Заинтересовавшись вопросом как это происходит нагуглил следующий пост на Stackoverflow. Под сильным впечатлением от возможностей HTML5 clipboardData решил сделать простенький портал, где без всяких Desktop приложений любой юзер может загрузить скриншот просто скопировав его.
Под катом исходники с объяснением и примерами
Всего голосов 53: ↑52 и ↓1+51
Комментарии38

Базы знаний. Часть 1 — введение

Время на прочтение5 мин
Количество просмотров67K
Одной из причин слабого использования Linked Data-баз знаний в обычных, ненаучных приложениях является то, что мы не привыкли придумывать юзкейсы, видя перед собой только данные. Трудно спорить с тем, что сейчас в России производится крайне мало взаимосвязанных данных. Однако это не значит, что разработчик, создающий приложение для русскоязычной аудитории совсем уж отрезан от мира семантического веба: кое-что всё-таки у нас есть.
image
Основными источниками данных для нас являются международные базы знаний, включающие русскоязычный контент: DBpedia, Freebase и Wikidata. В первую очередь это справочные, лингвистические и энциклопедические данные. Каждый раз когда вам в голову приходит мысль распарсить кусочек википедии или викисловаря — ущипните себя как следует и вспомните о том, что всё, что хранится в категориях, инфобоксах или таблицах, уже распарсено и доступно через API с помощью SPARQL или MQL-интерфейса.

Я попробую привести несколько примеров полезных энциклопедических данных, которые вы не найдете нигде, кроме Linked Data.

Эта статья — первая из цикла Базы знаний. Следите за обновлениями.


Читать дальше →
Всего голосов 69: ↑66 и ↓3+63
Комментарии29

Формирование документов на основе ODT шаблонов. ODT to PDF

Время на прочтение4 мин
Количество просмотров11K
Здравствуйте, уважаемы хабровчане!

Не так давно мне пришлось столкнуться с типичной задачей – формировать документы с пользовательскими данными на основе шаблонов ODT средствами PHP. Звучит весьма тривиально, но намучиться пришлось сильно. Дело в том, что ни одно из доступных средств, так или иначе, не подошло. Одни библиотеки формировали документ криво, другие не поддерживали русские шрифты, третьи – двигали картинки в стиле Harlem Shake. Вот и пришлось «велосипедить».

Итак, задача вкратце:

  1. Обработать ODT шаблон. Заменить placeholder’ы на пользовательские значения
  2. Конвертировать в pdf. Показать пользователю

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

Чистим HTML-код при вставке текста из MS Word в HTML5 WYSIWYG редактор (contenteditable)

Время на прочтение5 мин
Количество просмотров24K
Здравствуйте!

При написании своего WYSIWYG редактора возникла проблема копирования текста из Ворда. Собственно проблем три:
  • Ворд вставляет много мусорного html кода, который необходимо чистить
  • Для представления списков Ворд почему-то использует параграфы вместо тегов UL и LI
  • Собственно как определить, что вставленный текст является вставленным из Ворда.

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

$(‘#editor’). msword_html_filter();

Плагин вешается на событие keyup и проверяет, является ли исходный код внутри редактора вставленным из Ворда, если да, то запускается функция очистки. В результирующем html прибивается все что только можно – неразрывные пробелы, атрибуты style и align, теги span, все Mso-классы, пустые параграфы.

Детали реализации под катом.

UPD Демо на CodePen

Читать дальше →
Всего голосов 55: ↑52 и ↓3+49
Комментарии18

Trove 4.0? Примитивы в стандартном каркасе коллекций из Java 8

Время на прочтение5 мин
Количество просмотров9.7K
Около месяца назад на Хабре была статья про Trove — самую часто упоминаемую библиотеку, когда спрашивают про структуры данных с примитивами на Java. Примерно за пару дней до этого я сел эту библиотеку переписывать. Время решительно кончилось, поэтому делюсь поиском с вами, хотя не очень-то надеюсь, что кто-то продолжит это дело.

На данный момент сделаны хеш-таблицы 6 типов: множества примитивов, объектов и все 4 варианта мапов: примитив — примитив, примитив — объект, объект — примитив и объект — объект, над которыми нависает туча обобщающих интерфейсов.

Меня всегда удивляло, почему все подобные библиотеки создают еще одну иерархию типов, а не встраиваются в давно уже зарекомендовавший себя стандартный каркас коллекций Явы. Никаких принципиальных проблем с этим я не видел и не вижу. Поэтому над моей тучей интерфейсов, как на пантеоне, возвышаются java.lang.Iterable, java.util.Collection и java.util.Map. Я не зря дал ссылки на документацию по Java 8. Реализованы почти все методы из будущих интерфейсов, кроме spliterator(). Можно начинать привыкать.
Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии31

Часть 3. Как подключить смартфон к авто — читаем данные

Время на прочтение6 мин
Количество просмотров114K
Мы продолжаем цикл статей о том, как подключиться к бортовой системе своего автомобиля (см. Часть 1 и Часть 2 ) и сегодня расскажем как считывать данные.

Предполагается, что к текущему моменту у нас есть машина с диагностическим разъемом, отвечающим OBD-II стандарту, любимое мобильное устройство (ноутбук, смартфон, планшет) и адаптер на базе ELM327, который позволит соединить машину и мобильное устройство.

Как уже говорилось в предыдущей части, независимо от типа связи между мобильным устройством и адаптером (Bluetooth, Wi-Fi, USB) на логическом уровне, — это последовательное соединение. На программном уровне необходимо открыть Socket соединение между компьютером и адаптером поверх имеющегося соединения нижнего уровня. Практическая программная реализация будет зависеть от операционной системы и типа соединения, примеров можно найти массу под все ваши любимые языки программирования. В качестве базового примера можно брать реализацию соединения на примерах чат-программ для Bluetooth или TCP\IP. В данной статье мы не будем останавливаться подробно на реализации такого соединения, для экспериментов нам хватит возможностей имеющихся программ а-ля Telnet, для экспериментов под Андроид и iOS мы встроили простую командную консоль в наше приложение OBD Car Doctor.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии6

Перехват загружаемых ресурсов в QtWebKit или как я оседлал единорога под дабстеп

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

Habrahabr::Instance()->hello();


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

На самом деле, моя задача лежала в том, чтобы сделать браузер, который сохраняет все изображения со всех страниц, которые он браузит. Элементарная задача, на первый взгляд: повесить обработчик на отдельный поток, который перебирает все QWebElement по селектору “img” и отрисовывает их содержание (QWebElement::render()) через QPainter на QImage, который, в свою очередь, сохраняется в файл.

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

Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии16

Много бесплатных книг по программированию

Время на прочтение7 мин
Количество просмотров346K
Читать дальше →
Всего голосов 202: ↑192 и ↓10+182
Комментарии42

Правильная адаптивная типографика с FlowType.JS

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


Согласно правилам типографики, контент страницы хорошо читается, если в строке от 45 до 75 символов. При разработке адаптивного дизайна это сложно реализовать только лишь с помощью Media Queries. Появился jQuery плагин FlowType, который помогает добиться такого соотношения при любом размере экрана и ширине окна.

FlowType меняет размер шрифта и междустрочный интервал в соответствии с шириной блока контента. Кроме того можно задавать параметры плагина, например максимальную и минимальную ширину окна, при которой FlowType будет работать.
Читать дальше →
Всего голосов 34: ↑27 и ↓7+20
Комментарии7

Генерируем PDF из HTML-шаблона с условиями, при помощи wkhtmltopdf и RazorEngine

Время на прочтение2 мин
Количество просмотров21K
Не смотря на то, что пост предлагает заготовку, рецепт под ASP.NET, по аналогичным принципа вполне возможно реализовать решение и под другие платформы.

Задача:
  • генерировать DOC или PDF из шаблона файла, с подстановкой значений
  • нужна возможность включать минимальную логику в шаблон, что бы писать кода меньше, при необходимо править только внешние файлы
  • update. результат работы должен сохраняться в файл для возможности дальнейшего им манипулирования

Под катом — очень простое и короткое решение, примеры кода на C#. Не смотря на это, что пост предлагает заготовку-рецепт под ASP.NET, по аналогичным принципам вполне возможно реализовать решение и под другие платформы.
Читать дальше →
Всего голосов 4: ↑3 и ↓1+2
Комментарии12

Animate.css — набор кроссбраузерных CSS3 анимаций

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

Animate.css




На днях наткнулся на эту замечательную вещь и решил поделиться с Хабрахабром.
Animate.css — сборка отличных кроссбраузерных CSS3 анимаций в одном файле.
Читать дальше →
Всего голосов 71: ↑65 и ↓6+59
Комментарии23

Импорт KeePass БД паролей в KWallet

Время на прочтение3 мин
Количество просмотров13K
Всем привет.

На предприятии где а работаю очень любат всякие штучки для «безопасности» и к сожалению все по винду. Но вот незадача, у меня стоит линукс а мне прислали пароли в БД для KeePass (заметка: не хочу ставить mono приложение KeePass под линукс). Windows виртуальная машина стоит, но держать ее открытой всегда не охота, всетаки память отъедает которой и так не хватает. Вот тогда-то у меня и родилась идея перенести все пароли из этой базы данных для KeePass в мой KWallet.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии11

Чек-лист преодоления CAP-теоремы

Время на прочтение2 мин
Количество просмотров6.9K
Итак, вы ☐ твитнули, ☐ написали в блог, ☐ опубликовали пресс-релиз, ☐ написали в комментариях о том, что знаете способ преодолеть CAP-теорему. Ваша идея не сработает. И вот почему:

☐ вы предполагаете, что сбоев софта\железа\сети никогда не случается
☐ вы на самом деле всего-лишь перенесли проблему на другой логический слой
☐ ваше решение эквивалетно одному уже существующему, которое не преодолевает CAP-теорему
☐ вы на самом деле построили AP-систему (доступность и устойчивость к разделению, но не постоянная согласованность данных)
☐ вы на самом деле построили CP-систему(согласованность данных и устойчивость к разделению, но не постоянная доступность)
☐ вы на самом деле построили нераспределенную систему

А особенно в ваших планах плохо следующее:
Читать дальше →
Всего голосов 43: ↑35 и ↓8+27
Комментарии8

Информация

В рейтинге
2 596-й
Откуда
München, Bayern, Германия
Дата рождения
Зарегистрирован
Активность