1. Организационные и формальные вопросы.
2. Пользователь всегда прав!
3. Что такое язык программирования?
4. Краткая история развития языков программирования: машинные коды, ассемблер, языки высокого уровня.
5. Способы трансляции: компиляция и интерпретация.
6. Виртуальные машины.
7. Ученье — свет, неученье — тьма (для программиста: потеря работы).
Эволюция проекта
Автоматизация бизнес-процессов
Очевидные решения
Продвинутые решения: Gearman, phpDaemon и другие
Очереди сообщений
Процессы в PHP - готовые решения (связки Очередь + Процессы)
Результаты удивляют
Проблемы и трудности, с которыми столкнулись
1. Организационные и формальные вопросы.
2. Пользователь всегда прав!
3. Что такое язык программирования?
4. Краткая история развития языков программирования: машинные коды, ассемблер, языки высокого уровня.
5. Способы трансляции: компиляция и интерпретация.
6. Виртуальные машины.
7. Ученье — свет, неученье — тьма (для программиста: потеря работы).
Эволюция проекта
Автоматизация бизнес-процессов
Очевидные решения
Продвинутые решения: Gearman, phpDaemon и другие
Очереди сообщений
Процессы в PHP - готовые решения (связки Очередь + Процессы)
Результаты удивляют
Проблемы и трудности, с которыми столкнулись
- почему PHP программисты снискали дурную славу;
- что делать, чтобы стать хорошим программистом;
- как писать идеальный код;
- что такое командная разработка проекта;
- учет позиции бизнеса при разработке проекта;
- основные задачи, который должен решать программист;
Keynote on JavaDay Omsk 2014 about new features in Java 8Alexey Zinoviev
Zinoviev Alexey presented this paper on JavaDay Omsk 2014. Paper covers next topics: Java 8, Stream API, Method reference, roadmap for Java 9, default methods in interfaes, SAM, functional interface.
#ITSubbotnik Rodionov talk - "Neural networks in JS" (Нейронные сети на JS, С...Vsevolod Rodionov
Выступление на октябрьском ITSubbotnik про прошлое, настоящее и будущее JavaScript и нейронных сетей. Нейронные сети оказываются везде - в телефонах, автомобилях, чипах носимых устройств. Скоро может оказаться так, что и в браузерах они будут обычным делом - лучше подготовиться к их появлению заранее.
Докладчик:
Александр Сапронов
Описание:
Язык Python отлично подходит для прототипирования: простой синтаксис, множество батареек, много готовых решений. Это отлично для бизнеса и для разработчика.
Но давайте снимем розовые очки и озвучим негатив, который вас ждет, когда вы возьмете Python для проекта.
Видео:
https://www.youtube.com/watch?v=YE9Q78QlZiE
Доклад на hotcode.org о инструментах и методиках которые помогают нам повышать и следить за качеством PHP кода.
Среди затронутых тем:
- Стандарты в коде
- Средства для статического анализа кода.
- Git хуки
- Непрерывная интеграция
- IDE
- Code review
Рассмотрю с практической стороны создание своего предметно-ориентированного языка. Продемонстрирую почти готовое решение возникшей задачи и расскажу, в каких случаях может потребоваться внедрение DSL.
Докладчик: Михаил Воротынцев (AgoraDoxa)
Видео: https://www.youtube.com/watch?v=Qf0TjcBG1oI
PHP Meetup
Микола Паламарчук
— Розробник в Upwork (PHP infrastructure team)
— Більше 10 років досвіду в web development
— Спікер WebCamp:PHP Одеса (2016), PHP fwdays Київ (2015, 2017)
В проектуванні ПЗ є основні принципи.
Звично їх використовують лише для ООП, але насправді ці принципи мають застосування на всіх етапах розробки, навіть у функціональному програмуванні.
Доповідь про приклади застосування цих принципів на різних рівнях і про переваги такого підходу
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
В докладе речь пойдёт о языке Go. Вячеслав расскажет о внутреннем устройстве языка (структуре, оптимизации, сборщике мусора и т.д.), о том, как и почему Go используют в Яндексе и что о нём говорят разработчики на С++. Отдельно Вячеслав остановится на многопоточном программировании и особенностях отладки и профилирования в Go.
закон иерархических компенсаций седова и C++ core guidelinesCOMAQA.BY
Стандартизация шагает по планете широким шагом. Почему создание сложных систем невозможно без подведения общего знаменателя и принятия стандартов? Можно ли объяснить этот факт с научной точки зрения? В докладе мы рассмотрим как общие вопросы стандартизации и развития информационных систем (в чём нам поможет великий советский ученый-практик Евгений Александрович Седов), так и погрузимся в стандартизацию практик кодирования нашего любимого языка - C++ Core Guidelines
- почему PHP программисты снискали дурную славу;
- что делать, чтобы стать хорошим программистом;
- как писать идеальный код;
- что такое командная разработка проекта;
- учет позиции бизнеса при разработке проекта;
- основные задачи, который должен решать программист;
Keynote on JavaDay Omsk 2014 about new features in Java 8Alexey Zinoviev
Zinoviev Alexey presented this paper on JavaDay Omsk 2014. Paper covers next topics: Java 8, Stream API, Method reference, roadmap for Java 9, default methods in interfaes, SAM, functional interface.
#ITSubbotnik Rodionov talk - "Neural networks in JS" (Нейронные сети на JS, С...Vsevolod Rodionov
Выступление на октябрьском ITSubbotnik про прошлое, настоящее и будущее JavaScript и нейронных сетей. Нейронные сети оказываются везде - в телефонах, автомобилях, чипах носимых устройств. Скоро может оказаться так, что и в браузерах они будут обычным делом - лучше подготовиться к их появлению заранее.
Докладчик:
Александр Сапронов
Описание:
Язык Python отлично подходит для прототипирования: простой синтаксис, множество батареек, много готовых решений. Это отлично для бизнеса и для разработчика.
Но давайте снимем розовые очки и озвучим негатив, который вас ждет, когда вы возьмете Python для проекта.
Видео:
https://www.youtube.com/watch?v=YE9Q78QlZiE
Доклад на hotcode.org о инструментах и методиках которые помогают нам повышать и следить за качеством PHP кода.
Среди затронутых тем:
- Стандарты в коде
- Средства для статического анализа кода.
- Git хуки
- Непрерывная интеграция
- IDE
- Code review
Рассмотрю с практической стороны создание своего предметно-ориентированного языка. Продемонстрирую почти готовое решение возникшей задачи и расскажу, в каких случаях может потребоваться внедрение DSL.
Докладчик: Михаил Воротынцев (AgoraDoxa)
Видео: https://www.youtube.com/watch?v=Qf0TjcBG1oI
PHP Meetup
Микола Паламарчук
— Розробник в Upwork (PHP infrastructure team)
— Більше 10 років досвіду в web development
— Спікер WebCamp:PHP Одеса (2016), PHP fwdays Київ (2015, 2017)
В проектуванні ПЗ є основні принципи.
Звично їх використовують лише для ООП, але насправді ці принципи мають застосування на всіх етапах розробки, навіть у функціональному програмуванні.
Доповідь про приклади застосування цих принципів на різних рівнях і про переваги такого підходу
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
В докладе речь пойдёт о языке Go. Вячеслав расскажет о внутреннем устройстве языка (структуре, оптимизации, сборщике мусора и т.д.), о том, как и почему Go используют в Яндексе и что о нём говорят разработчики на С++. Отдельно Вячеслав остановится на многопоточном программировании и особенностях отладки и профилирования в Go.
закон иерархических компенсаций седова и C++ core guidelinesCOMAQA.BY
Стандартизация шагает по планете широким шагом. Почему создание сложных систем невозможно без подведения общего знаменателя и принятия стандартов? Можно ли объяснить этот факт с научной точки зрения? В докладе мы рассмотрим как общие вопросы стандартизации и развития информационных систем (в чём нам поможет великий советский ученый-практик Евгений Александрович Седов), так и погрузимся в стандартизацию практик кодирования нашего любимого языка - C++ Core Guidelines
Презентация делалась для JuJa конференции - Java конференции для (пре) Juniors: https://juja.com.ua/materials/jujacon-2017/
В ней
- описываются основные темы-вопросы, которые часто спрашивают на собеседовании на позицию Junior Java Developer;
- советы, что спросить собеседующего;
- как себя позиционировать, как относиться к собеседованию, как не бояться и как понять, что вам "туда".
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
В докладе речь пойдёт о языке Go. Вячеслав расскажет о внутреннем устройстве языка (структуре, оптимизации, сборщике мусора и т.д.), о том, как и почему Go используют в Яндексе и что о нём говорят разработчики на С++. Отдельно Вячеслав остановится на многопоточном программировании и особенностях отладки и профилирования в Go.
Картинки к моему рассказу о том, как мы делаем Банки.ру. Некоторые слайды очень неоднозначны без текста. Тезисы тут: http://nastachku.ru/lectures?lecture_id=630#lecture_630
Видео тут https://www.youtube.com/watch?v=m5QuiTZwMrU
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECON
Набор практических приемов, которые позволяют создавать сложные многопоточные, параллельные, распределенные серверные приложения программистам без опыта сетевого и многопоточного программирования, работы с базами данных.
SECON'2016. Бартунов Олег, Карьера в Open SourceSECON
Я расскажу про то, как устроен современный Open Source на примере проекта PostgreSQL и про те возможности, которые дает Open Source разработчику, в частности, в реализации себя как творческой личности и карьерного роста, а также достижения свободы и независимости. Open Source в условиях цифрового равенства позволяет разработчику жить и работать в привычных условиях без обязательного перемещения в неудобный для жизни мегаполис, и при этом быть членом большого международного сообщества, принимать участие в его жизни и влиять на развитие проекта.
Highload++2013: TopGun - архитектура терабитной платформы DPILeonid Yuriev
Презентация с конференции HighLoad-2013 об архитектуре новой DPI платформы Петер-Сервис.
http://www.highload.ru/2013/abstracts/1178.html
Представлен обзор архитектуры многоцелевой DPI-платформы, на основе которой могут строиться как "шпионские" приложения класса СОРМ/PRISM, так и коммерческие системы PCEF/TDF (Traffic Shaping), безопасного Интернета (интеллектуальная фильтрация содержимого), таргетирования рекламы и т. д. К особенностям рассматриваемого решения можно отнести мультитерабитное масштабирование, способ балансировки, обработку "роем" (Swarm Intelligence) и аварийного восстановления (failover) посредством репликации конечных автоматов.
Roadmap:
- offtopic: кому и зачем нужен DPI?
- offtopic: законность и морально-этические вопросы.
- на какую "луну" нужно сесть, что мы хотим сделать?
- распределение трафика за счет использования коммутаторов и MAC rewrite.
- роевой интеллект (Swarm Intellegence) для управления балансировкой и обработкой данных.
- репликация конечных автоматов (виртуальных микромашин).
- распределенное "Табло" как оперативное хранилище с элементами key-value и eventual consistency, lockfree в shared memory.
- транспортный фасад, унифицирующий DPDK, netmap, Infiniband (RDMA), 0mq и zerocopy и lockfree обмен через shared memory.
В длительной перспективе ретроспективы – самая важная часть гибких процессов. Но очень часто у команд не получается запустить процесс непрерывного улучшения, либо через некоторое время этот процесс обрывается, когда команда думает, что все проблемы решены. Я расскажу не только теоритическую часть, которая позволит преодолеть эти проблемы, но и дам несколько десятков примеров конкретных практик, которые применяются на эффективных ретроспективах. Доклад рассчитан, как на начинающих ретроспективы, так и практиков гибких методологий.
Джентльменский набор сисадмина / Антон Турецкий (Badoo)Ontico
HighLoad++ 2017
Зал «Дели + Калькутта», 8 ноября, 18:00
Тезисы:
http://www.highload.ru/2017/abstracts/2973.html
Мне хочется поделиться примерами рабочих процессов и наработанных нами практик в Badoo. Рассказать о том, как можно автоматизировать ресурсоемкие процессы, после чего они покажутся совсем простыми.
...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
Процесс майнинг
1.
2. Краткое содержание
● PM — изучение процессов на основе логов
● Задачи:
– синтез моделей
– проверка соответствия
– анализ процессов
● Есть теория
● Есть специализированный софт
● Простые вещи делаются на коленке
● Есть куда копать
3. Краткое содержание - 2
1. Что такое Process Mining
2. История вопроса
3. Процессы, более строго.
4. Логи
5. Параллельные элементы
6. Альфа Алгоритм
7. Специализированный софт
8. Разведочный анализ своими силами, на игрушечном примере.
9. Аннотированный список книг, курсов, ссылок.
10. За пределами WFMS логов.
11. Процессы как текст.
12. Вопросы
4. Что такое PM - 1
● PM — изучение процессов на основе логов
● "Сколько еще лет мы будем моделировать
процессы через интервью участников?"
Такие картинки рисовали во всех бизнес-школах, начиная с 1960-х
5. Что такое PM - 2
● Госпиталь:
– Почему больные так долго ждут операции?
– Следуют ли врачи регламенту?
– Можем ли мы предсказать время ожидания?
– Сколько людей нужно и где?
– Как снизить затраты (времени, денег)
Понять и улучшить поток оказания услуги в госпитале, проанализировав
записи, разбросанные по сотням таблиц базы данных.
6. Что такое PM - 3
● Philips, томографы:
– Как на самом деле используются машины?
– Почему они ломаются?
– Какие компоненты нужно заменить?
– Можем ли мы предсказать поломку?
– Какие части нужно улучшить?
– Каким должен быть тестовый сценарий?
Понять и улучшить работу и характеристики томографов, используя
данные, полученные от сети сенсоров.
7. Что такое PM - 4
● Каков процесс работы на самом деле?
● Где узкие места?
● Где люди и машины отклоняются от ожидаемых
или предписанных процедур?
● Какие участки работают хорошо?
● Какие факторы влияют на узкие места?
● Можем ли мы предсказать задержки, отклонения, риски для
уже идущих процессов?
● Что мы можем предпринять, чтобы снизить риски/цены etc?
● Как нам преобразовать Рабкрин?
Возражение это состоит в том, что будто бы из предлагаемого мной преобразования
получится один хаос. Члены ЦКК будут слоняться по всем учреждениям, не зная, куда,
зачем и к кому им обратиться, внося повсюду дезорганизацию, отрывая служащих от их
текущей работы, и т. д. и т. п. (с) В.И. Ленин
8. Что такое PM - 5
● Процессы нужно изучать в динамике
● Псевдо динамика. Множественные замеры.
Фото vs видео. Недостатки.
● Частотный спектр vs временной ряд
● Информационные системы пишут логи
● Базовые задачи:
– Синтез модели
– Проверка соответствия
– Совершенствование процессов
– Визуализация
10. История вопроса - 2
● 2011 BPM 2011 International Workshops
Process mining techniques are able to extract
knowledge from event logs commonly available
in today's information systems.
These techniques provide new means to
discover, monitor, and improve processes in a
variety of application Domains.
.. this manifesto hopes to serve as a guide for
software developers,
scientists, consultants, business managers, and
end-users.
IEEE CIS Task Force on Process Mining
Eindhoven University of Technology TU/e
ВШЭ
13. Процесс - 2
● Процесс
● Экземпляр процесса (case)
● След процесса (trace)
● Событие (event)
● Ресурсы
● Атрибуты процесса, кейса, ресурса
14. Petri net
● Карл Адам Петри, 1939, химические процессы
● N = (P, T, F, W, m* )
● места, переходы, дуги, веса, разметка
● P ∩ T = ∅
● F (P × T ) (T × P )⊆ ∪
● W : (P × T ) (T × P ) → N∪
● W (x, y) > 0 iff (x, y) F∈
● m* : P → N
● Временная, раскрашенная, стохастическая,
ингибиторная, иерархическая ….
16. Petri net - 3
● Исполнимы
● Очень похожи на конечные автоматы
● WF-сети: PN с одним началом и концом, связанные.
● Хорошие (sound):
– Безопасные (safe): 1-bounded
– Конец достижим
– Завершимые (кода отмечен конец, остальные места пусты)
– Нет мертвых частей (можно прийти к активному состоянию
перехода из любой достижимой разметки)
17. Fuzzy net
● Места
● Дуги
● Без переходов
● Неисполнимы
● Удобны и наглядны
см. так же BPMN и примкнувший к ним UML
18. Сопряженные процессы
● Больной в госпитале
– Больной - кейс
– Врач — место
– Назначения и бумажки — токены
● Врач в госпитале
– Врач — кейс
– Больной — место
● Студенты и классы
● Разработчики и проекты
● Такие задачи мы сначала поручаем Васе, а если смог — Пете
● Таких разработчиков мы сначала отправляем на месяц в саппорты,
потом в QA, а потом ставим на проекты.
● Ищем не правильную, а полезную точку зрения
20. Логи - 2
● Стартовая точка для майнинга процессов
● Все логи несчастливы по-своему
● Фильтрация и агрегирование
● Приведение к единому времени
● Есть ли начало и конец?
● Денормализованные логи
● Время — конец события?
21. Логи - 3
● Обычно доступно только событие завершения
● Время первого события не нулевое
● Иногда доступны время планирования, начала,
конца.
– конец в дело
– остальное в подпроцесс
● Сколько ресурсов в событии?
● Иерархия процессов
22. Логи - 4
● IEEE 1849-2016 XES Standard
● IEEE Standard for eXtensible Event Stream
(XES) for Achieving Interoperability in Event
Logs and Event Streams
● XML-based
● http://pmuc.ing.puc.cl/tools/opyenxes/
● Хорошо, но опять где-то не у нас
26. Ну он все равно не работает
● TL — все, кто встретился
● TI — стартовые
● TO — конечные
● A > B (прямое следование)
● A → B iif A > B ^ A ≮ B
● A # B iif A≯B ^ A ≮ B
● A || B iif A > B ^ B < A
27. Ну он все равно не работает - 2
● Находим максимальные группы, такие что
внутри группы они не следуют друг за другом,
а между группами строго следуют
● Добавляем начало и конец
● Каждый элемент в (A, B) — место
● Соединяем дугами A — место — B
● Соединяем начало и конец
● Выдыхаем
28. А если?
● Альфа*
● Альфа+
● Альфа++ (серьезно)
● IPL
● Inductive Miner
● IPL Miner
● Тысячи их
29. ProM и его друзья
● ProM, без апдейтов
● Плагин для Rapid Miner
● Disco
● Все BI делают это, но как-то так
● ProM Lite
30. ProM - 2
● Импортируем
● Конвертируем в XES
● XES - Альфа майнер - Петри нет
● Фильтрация логов
● Майнер эпизодов
● Fuzzy model
● Petri net, Inductive Miner, живой лог
● Dotted chart
31. Что может быть интересно
● Модель процесса
● Граф сотрудничества
● Распределение работы по сотрудникам
● Время перехода, гистограммы
● Очередь
● Диаграмма точками
35. Что почитать
● Лекция Аалста в Яндексе
● http://www.processmining.org/prom/start
● Process Mining: Data science in Action
● Diogo R. Ferreira. A Primer on Process Mining
Practical Skills with Python and Graphviz
● Wil M.P. van der Aalst. Process Mining
● Introduction to Event Log Mining with R
36. За пределами WFMS логов
● Временные ряды, события серверных ферм.
● Логи высокой кардинальности (веб-сайты)
– иерархия
– группировка событий.
● События в жизни микрорайона
● Моделирование человеческой нервной
системы как сети Петри
37. Процесс как текст
● Сеть Петри как строка. См Visual Miner
● Sec2Sec преобразование
● Генерация обучающего набора