Pull to refresh
0
Mikalai @Selmanovichread⁠-⁠only

PM

Send message

10 итераторов, о которых вы могли не знать

Reading time13 min
Views38K

Одним из главных достоинств Python является выразительность кода. Не последнюю роль в этом играет возможность удобной работы с коллекциями и последовательностями различного вида: перебор элементов списка по одному, чтение файла по строкам, обработка всех ключей и значений в словаре. Эти и многие другие подобные задачи в Python помогает решить так называемый протокол итераторов (Iterator protocol). Именно этот протокол обеспечивает работу цикла for, устанавливает по каким объектам можно итерироваться, а по каким нет. Как мы увидим далее, сам язык и стандартная библиотека очень широко используют возможности протокола. В этой статье попробуем отыскать не самые известные, но от этого не менее интересные примеры итераторов и итерируемых объектов, которые предлагает Python.

Читать далее

Умный аналитик – глупый разработчик vs. глупый аналитик – умный разработчик

Reading time10 min
Views27K

Или как понять, когда остановиться

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

— Скажи, а зачем нам вообще нужны аналитики?

— И действительно, зачем? – подумал тогда я и написал заявление

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

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

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

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

Читать далее

Бекап макбуков на удаленный сервер Time Machine для путешественников

Reading time4 min
Views15K

У меня есть рабочий макбук и я часто путешествую. Я боюсь потерять данные на нем, поэтому я делаю бекапы через родную Time Machine на удаленный сервер. Для этого я поднял в офисе сервер SMB, который всегда доступен через VPN.

Проблема: если включить автоматический бекап в Time Machine, система будет постоянно бекапится даже через тонкий мобильный интернет в самолете, мешая работать, исчерпав весь канал.

Решение: я написал скрипт Time Machine Traveler, который проверяет скорость доступа к SMB шаре и запускает бекап только если качество соединения высокое.

Читать далее

Настройка хостинга heroku.com + custom domain name *для новичков

Reading time2 min
Views29K
Итак, подобного материала я нигде не видел, так что считаю необходимым опубликовать данную информацию. image
  • Регистрируемся на Heroku.com письмо с линком приходит быстро, мне пришло уже через 30 секунд.
  • Далее необходимо установить git, я работал в ОС windows (как устанавливать в linux я думаю знают те, кто его используют), вот версия для win, если использовать портативную версию, то необходимо в интерфейсе командной строки, перейти в директорию (куда распаковали) git, и запустить либо оболочку git-bash.bat (лично мне удобнее с ней работать), либо использовать команды только лишь cmd, git-cmd.bat.
  • Далее, необходимо установить gem heroku командой (sudo) gem install heroku у него есть зависимости с другими гемами, вообще они сами установятся автоматически, ну а если нет, то вот ссылки для них: rest-client, launchy, json.
Читать дальше →

Все английские времена в одной простой схеме

Reading time3 min
Views223K

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

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

Первоначальная идея. Сначала разъяснить все английские времена за один присест удавалось, надёргав различных идей из интернета: обрывки чьих-то схем, начинали склеиваться в свою схему и обрастать собственными легендами, а применение времён почти всегда было проще пояснить, используя хрестоматийную «систему английских времен с точки зрения употребления глагола “to vodka”». С каждой новой импровизированной лекцией, схема и нарратив продолжали меняться. «Ученики» попадались с различным базовым уровнем, что позволило понять, откуда нужно начинать плясать, чтобы урок был понятен всем, кто хоть раз слышал что-то про глаголы have и be. Когда счёт обученных уже пошёл на десятки, я решил оформить идею в более стройную лекцию. От первых попыток преподавания английских времён, до этого момента прошло пять лет. За это время было обучено ещё пару сотен человек. Обучено — по приколу. Денег за эти уроки я не брал.

Читать далее

Метод «5 почему»: как он работает, что чаще всего забывают, и как провести тренинг для команды

Reading time7 min
Views24K

Всем привет!

Меня зовут Роман Сергеев, я  - менеджер по внедрению и развитию продуктов и систем в ИТ «Ренессанс страхование». В этом материале я расскажу о том, как правильно метод использовать «5 почему?»  и как провести мини-тренинг по этому инструменту для своей команды (scrum команды, команды проекта).

«5 почему?»

Как превратить скрипт на Python в «настоящую» программу при помощи Docker

Reading time4 min
Views74K
Никого не интересует, умеете ли вы разворачивать связанный список — всем нужно, чтобы можно было легко запускать ваши программы на их машине. Это становится возможным благодаря Docker.


Для кого предназначена эта статья?


Вам когда-нибудь передавали код или программу, дерево зависимостей которой напоминает запутанную монтажную плату?


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

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

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

В частности, мы рассмотрим скрипты, которые должны работать как фоновый процесс.
Читать дальше →

Несносные боссы, необычные собеседования и замедление Twitter: перечитываем посты из «Менеджмента» за март 2021

Reading time3 min
Views3.1K

Привет! На связи Кирилл, куратор потока «Менеджмент». В марте наш раздел пополнился огромным количеством интересных постов. Как и в прошлом месяце, мы сделали подборку самых просматриваемых публикаций, которые нельзя пропускать. В неё вошли посты про управление людьми, юридические особенности работы в России, подходящую к концу перепись бизнеса и многое другое. Словом, самое популярное (по вашей версии) и достойное (по версии редакции) за март — под катом.

Читать далее

Отбор признаков в задачах машинного обучения. Часть 1

Reading time12 min
Views65K

Часто наборы данных, с которыми приходится работать, содержат большое количество признаков, число которых может достигать нескольких сотен и даже тысяч. При построении модели машинного обучения не всегда понятно, какие из признаков действительно для неё важны (т.е. имеют связь с целевой переменной), а какие являются избыточными (или шумовыми). Удаление избыточных признаков позволяет лучше понять данные, а также сократить время настройки модели, улучшить её точность и облегчить интерпретируемость. Иногда эта задача и вовсе может быть самой значимой, например, нахождение оптимального набора признаков может помочь расшифровать механизмы, лежащие в основе исследуемой проблемы. Это может быть полезным для разработки различных методик, например, банковского скоринга, поиска фрода или медицинских диагностических тестов. Методы отбора признаков обычно делят на 3 категории: фильтры (filter methods), встроенные методы (embedded methods) и обёртки (wrapper methods). Выбор подходящего метода не всегда очевиден и зависит от задачи и имеющихся данных. Цель настоящего цикла статей - провести краткий обзор некоторых популярных методов отбора признаков с обсуждением их достоинств, недостатков и особенностей реализации. Первая часть посвящена фильтрам и встроенным методам.

Читать далее

10 полезных расширений для дата-сайентистов

Reading time4 min
Views15K

Каждый специалист по Data Science тратит большую часть своего времени на визуализацию данных, их предварительную обработку и настройку модели на основе полученных результатов. Для каждого исследователя данных именно эти моменты – самая сложная часть процесса, поскольку хорошую модель можно получить при условии, что вы точно выполните все эти три шага. И вот 10 очень полезных расширений Jupyter Notebook, которые помогут вам выполнить эти шаги.

Приятного чтения!

Моя шпаргалка по pandas

Reading time8 min
Views747K
Один преподаватель как-то сказал мне, что если поискать аналог программиста в мире книг, то окажется, что программисты похожи не на учебники, а на оглавления учебников: они не помнят всего, но знают, как быстро найти то, что им нужно.

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



Нельзя сказать, что это — исчерпывающий список возможностей pandas, но сюда входят функции, которыми я пользуюсь чаще всего, примеры и мои пояснения по поводу ситуаций, в которых эти функции особенно полезны.
Читать дальше →

Коты и лебеди на выпасе: листаем книги для введения в профессию менеджера

Reading time4 min
Views7.6K


Привет! Это Кирилл, куратор потока «Менеджмент». На Хабр часто выкладывают посты про интересную профессиональную литературу. В итоге наша площадка давно превратилась в одну из самых крупных библиотек с отзывами на книги про IT, но структурировать это никто пока не пытался. Чтобы это исправить, запускаем серию библиотечных подборок. Под катом первая из них — с книгами, которые помогут новичку освоиться в роли руководителя, а маститому боссу освежить знания и стать ещё лучше.
Читать дальше →

Применение машинного обучения и Data Science в промышленности

Reading time22 min
Views70K
Хабр, привет. Перевел пост, который идёт строго (!) в закладки и передаётся коллегам. Он со списком блокнотов и библиотек ML и Data Science для разных отраслей промышленности. Все коды на Python, и размещены на GitHub. Они будут полезны как для расширения кругозора, так и для запуска своего интересного стартапа.

image

Отмечу, что если среди читателей есть желающие помочь, и добавить в любую из подотраслей подходящий проект, пожалуйста, свяжитесь со мной. Я их добавлю в список. Итак, давайте начнём изучение списка.
Читать дальше →

Удачная модель ветвления для Git

Reading time10 min
Views1M
Перевод статьи Vincent Driessen: A successful Git branching model

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



В качестве инструмента управления версиями всего исходного кода она использует Git.

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

Как «приручить» консоль, или 5 шагов к жизни с командной строкой

Reading time15 min
Views28K

Всем привет! Меня зовут Осип, я Android-разработчик в red_mad_robot и я люблю автоматизировать всё, что автоматизируется. В этом мне помогает консоль, поэтому решил поделиться опытом, как настроить командную оболочку так, чтобы в ней было приятно работать и она ежедневно помогала вам решать задачи.

Статья для тех, кто использует Linux или macOS. Если у вас Windows, вы можете использовать WSL (приравнивается к Ubuntu).

Читать далее

Обзор 10 бесплатных систем управления проектами. Что даром, а за что придется платить

Reading time12 min
Views235K

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

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

2) «Пробная» бесплатная версия. Продукт нацелен на то, чтобы сконвертировать вас в платящего клиента. И потому намеренно урезает вам «жизненно важные» функции. Как правило, об этом можно узнать, только начав пользоваться системой.

Мы в YouGile приняли опасное для себя решение и в октябре запустили «честную» бесплатную версию. Сняли все ограничения, оставили только одно – до 10 пользователей. Результат пока такой: сильно потеряли в количестве платящих клиентов, зато график активности в системе вырос в 2 раза за 3,5 месяца.

Конечно, предварительно мы изучили рынок и посмотрели, а какие free-версии предлагают наши конкуренты: Asana, Bitrix24, Trello и другие. Мы постоянно тестируем различные системы управления и можем смело делать выводы: кто предлагает «честную» бесплатную версию, а кто нет.

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

Начнем с продуктов, у которых бесплатные версии наиболее полноценные, а также расскажем про свою.

Читать далее

Как я стал PMP, не выпив ни одного кофе

Reading time5 min
Views18K

Всем привет, меня зовут Максим!

В начале 2020 года я решил сконцентрироваться на проектах по разработке программного обеспечения и перешел на позицию руководителя IT проектов в банк.

В рамках профессионального развития было определены 2 вектора сертификации Scrum и PMP, поскольку в нашем банке проекты в основном реализуются классическим водопадным подходом решил сначала получить PMP.

Читать далее

Скрапинг современных веб-сайтов без headless-браузеров

Reading time9 min
Views27K


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

Для его демонстрации вместо Selenium, Puppeteer или любого другого решения на основе безголовых браузеров мы просто используем запросы на Python. Я объясню, как можно скрапить информацию из публичных API, которые потребляет на фронтэнде большинство современных веб-сайтов.

На традиционных веб-страницах наша задача заключается в парсинге HTML и извлечении нужной информации. На современных веб-сайтах фронтэнд скорее всего не будет содержать особо много HTML, потому что данные получаются асинхронно после первого запроса. Поэтому большинство людей использует безголовые браузеры — они способны выполнять JavaScript, делать дальнейшие запросы, после чего можно распарсить всю страницу целиком.

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

Как перестать бояться и полюбить регулярные выражения

Reading time6 min
Views21K

В работе и повседневной жизни мы буквально окружены текстами: книги и статьи, письма и чаты, веб-страницы и программный код. Да что там — сама биологическая жизнь основана на ДНК. И для эффективной работы по поиску или модификации текста уже давно был придуман мощный инструмент — регулярные выражения, или regex. Однако по ряду причин далеко не все их используют, или имеют дело с ними только когда заставили при крайней необходимости. В этой статье я попытаюсь исправить эту печальную ситуацию.



Чтобы функции отыскать, воедино созвать и единою чёрною волей сковать.
Читать дальше →

Кто такой продакт-менеджер? Или не все PM’ы — проджект-менеджеры

Reading time3 min
Views13K
В каждой компании наступает момент, когда она становится больше, чем стартап, и принцип работы «каждый отвечает понемногу за все» — уже не эффективен. Что это значит? Пришло время расписывать необходимые роли, чтобы знать, кто и зачем вам нужен.

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



Кто такой Product Manager?


Менеджер продукта — это человек, который отвечает за создание продукта или продуктов для компании. Что такое продукт? Это товар или услуга, которая создается специально для удовлетворения потребностей рынка. Продакт-менеджер работает с продуктом с момента зарождения идеи и вплоть до его «смерти». Продолжительность жизни продукта относительна и не имеет четко выраженных границ в отличие от проекта, который имеет четкие сроки и размер выделенного бюджета. 

Именно в этом главное отличие двух PM’ов: продакту важен именно продукт, а проджекту — процесс реализации. К тому же, как правило, один продукт — это целый ряд проектов; в то время как проект — не равно продукт.   

Задачи Product Manager’а


  1. Определить, кто является целевой аудиторией для продукта, и какие функции будут для нее первоочередными, а какие — второстепенными.
  2. Проанализировать рынок аналогичных продуктов, чтобы понимать, какие потребности ЦА они закрывают и каким образом. 
  3. Решить, как можно привлекать пользователей (внутренний продукт) и клиентов, получать от них оплаты, а также как поддерживать их лояльность продукту (внешний рынок). 
  4. Определить, почему клиенты прекращают пользоваться продуктом (технические недостатки, высокая цена, неподходящий функционал).
  5. Создавать и проверять гипотезы, чтобы потом писать технические задания командам.  
  6. Принимать решения о том, нужно ли вообще создавать новый продукт.
  7. Контролировать жизненный цикл продукта и его прибыльность. 

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

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity