Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...solit
Виктор Русакович, Минск, Web-developer c 6-ти летним опытом разработки, компания GP Software.travel
«Реактивный JavaScript. Победа над асинхронностью и вложенностью». Development секция. Для разработчиков. Высокий уровень подготовки.
«Непрерывная интеграция сложного проекта. Кто всё сломал?». IT секция. Agile отделение. Для всех уровней подготовки.
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...solit
Виктор Русакович, Минск, Web-developer c 6-ти летним опытом разработки, компания GP Software.travel
«Реактивный JavaScript. Победа над асинхронностью и вложенностью». Development секция. Для разработчиков. Высокий уровень подготовки.
«Непрерывная интеграция сложного проекта. Кто всё сломал?». IT секция. Agile отделение. Для всех уровней подготовки.
MongoDB - About Performance Optimization, Ivan Griga - Smart GammaEvgeniy Kuzmin
- For which data types MongoDB is more suitable.
- Basic tips for optimizing performance.
- How to quickly and easily speed up a high-load project that uses MongoDB as the main data repository.
- How to build queries and use indexes.
Доклад о дизайне кода в функциональном стиле на C++, представленный вниманию плюсовиков на C++ User Group Novosibirsk 2014.
В качестве демонстрационного проекта была реализована игра "Амбер" по мотивам "Хроник Амбера" Р. Желязны.
https://github.com/graninas/Amber
Презентация со встречи сообщества SPb Python Interest Group рассказывающая об устройстве словарей в Python.
В презентации рассмотрена работа словаря в CPython 2.x, словаря в CPython 3.x, а также рассмотрены изменения в CPython 3.6.
Помимо CPython рассмотрены версии словаря в альтернативных реализациях Python, таких как PyPy, IronPython и Jython.
Что требуется бизнесу от программиста? Количество LOC? Нет. Производительность в условных попугаях по типу KPI? Не в первую очередь. Бизнесу нужен результат в виде улучшения благосостояния за счёт программного продукта. Поэтому я хочу рассказать о библиотеках и приёмах, которые позволят максимально эффективно создавать программы под Android с минимальными трудозатратами на обход неудобств платформы и языка.
Август 2014, IT-летник, Новосибирск
Александр Щепановский «Почему каждому языку нужен свой _»DevDay
Такие библиотеки как funcy и underscore часто связывают с функциональным программированием, но настоящий их фокус - это практичность. Задача их - упростить манипулирование данными, коллекциями, функциями и даже потоком управления, а также абстрагировать часто встречащиеся полезные поведения. В своём докладе я приведу жизненные примеры использования всего этого, а также расскажу об идеях заложенных в и продвигаемых funcy.
Slides for my PyCon and DevDay talk about the idea of Underscore spread onto other languages.
Video (in russian) is available here http://www.youtube.com/watch?v=lGAC6ftYUS0#t=12100
MongoDB - About Performance Optimization, Ivan Griga - Smart GammaEvgeniy Kuzmin
- For which data types MongoDB is more suitable.
- Basic tips for optimizing performance.
- How to quickly and easily speed up a high-load project that uses MongoDB as the main data repository.
- How to build queries and use indexes.
Доклад о дизайне кода в функциональном стиле на C++, представленный вниманию плюсовиков на C++ User Group Novosibirsk 2014.
В качестве демонстрационного проекта была реализована игра "Амбер" по мотивам "Хроник Амбера" Р. Желязны.
https://github.com/graninas/Amber
Презентация со встречи сообщества SPb Python Interest Group рассказывающая об устройстве словарей в Python.
В презентации рассмотрена работа словаря в CPython 2.x, словаря в CPython 3.x, а также рассмотрены изменения в CPython 3.6.
Помимо CPython рассмотрены версии словаря в альтернативных реализациях Python, таких как PyPy, IronPython и Jython.
Что требуется бизнесу от программиста? Количество LOC? Нет. Производительность в условных попугаях по типу KPI? Не в первую очередь. Бизнесу нужен результат в виде улучшения благосостояния за счёт программного продукта. Поэтому я хочу рассказать о библиотеках и приёмах, которые позволят максимально эффективно создавать программы под Android с минимальными трудозатратами на обход неудобств платформы и языка.
Август 2014, IT-летник, Новосибирск
Александр Щепановский «Почему каждому языку нужен свой _»DevDay
Такие библиотеки как funcy и underscore часто связывают с функциональным программированием, но настоящий их фокус - это практичность. Задача их - упростить манипулирование данными, коллекциями, функциями и даже потоком управления, а также абстрагировать часто встречащиеся полезные поведения. В своём докладе я приведу жизненные примеры использования всего этого, а также расскажу об идеях заложенных в и продвигаемых funcy.
Slides for my PyCon and DevDay talk about the idea of Underscore spread onto other languages.
Video (in russian) is available here http://www.youtube.com/watch?v=lGAC6ftYUS0#t=12100
ASP.NET Core introduces a new project structure that is totally modular, allowing for a faster development cycle. It runs on .NET Core which is cross-platform, supporting on-premises and cloud deployments. Key aspects include MVC and Web API, inversion of control and the ability to choose editors and tools.
This document provides an introduction to functional programming concepts using Scala. It covers the history of functional programming languages, functions, control structures, pattern matching, functional types, higher order functions, lazy evaluation, and questions. Examples are provided of quicksort and factorial implementations in both Scala and Go to demonstrate functional programming techniques.
QA: Базовое тестирование защищенности веб-приложений в рамках QACodeFest
This document provides a checklist and guidance for basic web application security testing in quality assurance. It outlines 10 areas to focus testing on: 1) information disclosure, 2) SSL/TLS, 3) slow HTTP denial of service attacks, 4) HTTP host header attacks, 5) login page over HTTPS, 6) same site scripting, 7) secure headers, 8) cross domain policy, 9) session management, and 10) URL validation. For each area, it describes the security weakness, examples of attacks, and tools that can be used for testing. The goal is to integrate an attacker perspective into test plans and deliver risk-based security testing.
«Облачный» сервис интеллектуального анализа данных. графический интерфейс пос...Анастасия Вязьмина
Презентация к диплому бакалавра
Выполнила: студентка
4 курса, 481 группы
А.Н. Вязьмина
Научный руководитель:
к.ф.-м.н., доцент,
С.И. Жилин
Барнаул, Алтайский государственный университет
2012 год
Видео примера работы с интерфейсом можно скачать тут: https://yadi.sk/i/DlZqdKFPgLCry
Презентация подготовлена по материалам выступления Ярослава Савченко на витебском Весеннем MiniQ (https://vk.com/spring_miniq), который был проведен 23 марта 2017.
— Ярослав, пару слов о себе.
— Я UI-разработчик в компании EPAM. Соответственно, большую часть своего времени любуюсь на JavaScript-код. Люблю красивые интерфейсы. Митапы и прочие подобные события посещаю достаточно редко и предпочитаю смотреть выступления в записи, но в этот раз решил даже выступить сам.
— Откуда желание рассказать про ES2015?
— Веб-приложения растут, требования к ним увеличиваются, инструменты для разработки совершенствуются. Взрослеет и основной для фронтенда язык - JavaScript. Недавно в нем появился ряд новых возможностей, призванных упростить жизнь разработчика. Однако не все разработчики поспевают за изменениями: кто-то только изучает JS, у кого-то все не доходят руки, а кто-то вообще редко заплывает в гавань фронтенда и не следит за положением дел. Мой доклад рассчитан именно на популяризацию нового стандарта JS.
The document discusses Uber's APIs and how they can be used to build experiences that enhance transportation. It notes that Uber has facilitated over 2 billion trips across more than 470 cities. Developers can integrate their apps with Uber's APIs to authenticate users, request rides, access ride details and context through the trip to improve users' experiences. The document provides examples of how ride context could be used to suggest local guides, play media based on trip duration, and control smart home devices like heating when approaching home.
This document discusses building and shipping software using GitHub. It provides key facts about GitHub such as being founded in 2008, having over 15 million registered users and 36 million repositories. It also shares principles from "The Zen of GitHub" including that responsive is better than fast, practicality beats purity, and favor focus over features. The document advocates for empowering businesses to build great software through culture, tools, process and a DevOps approach.
This document introduces .NET Core and its advantages over the .NET Framework. It discusses how .NET Core is cross-platform, uses the .NET Standard library, and can create self-contained applications. It also highlights how .NET Core applications are smaller, faster, and container-friendly. The document demonstrates how to use the dotnet CLI and publish .NET Core applications to reduce their deployment size. Overall, it promotes adopting .NET Core for its performance, portability, and familiar .NET APIs.
René Gröschke gave a talk on the latest features and future direction of Gradle. Some of the key points included:
- Gradle is moving to a Kotlin-based DSL for improved performance, tooling support, and bringing application patterns to builds.
- Performance improvements include a dedicated performance team that has improved Android Gradle Plugin build times significantly.
- Composite builds allow including external projects to debug dependencies or test plugins against real projects.
- Build cache and distributed build cache are incubating features to cache and share build results for faster rebuilds.
- Gradle build scans provide insights into builds to debug issues, optimize performance, and compare builds
The document discusses containerizing ASP.NET Core applications with Kubernetes. It begins with an overview of .NET Core and containers, and how they have converged. It then discusses Kubernetes and how it can help manage containers at scale. It covers Kubernetes building blocks like deployments, pods, labels, services, and replica sets. It provides examples of deploying containers with Kubernetes, including demonstrations of creating deployments, services, scaling applications, and rolling updates.
16. • Одинаковые аргументы — одинаковый результат
• Отсутствуют наблюдаемые сайд-эффекты
Чистые функции
17. // Конкатенация строк — чистая функция
NSString *CombineStrings(NSString *l, NSString *r);
// Любая математическая операция тоже чистая
int sum(int a, int b);
@interface Collection : NSObject
// Нечистая функция — нет аргументов и
// возвращаемое значение каждый раз разное.
- (id)next;
@end
Чистые функции
21. • Набор неизменяемых значений
одного типа во времени
• Может закончится успешно или с
ошибкой
• Может и вовсе не иметь значений
Поток
22. • Создание потоков
• Преобразования одних в другие
• Подписка на значения
FRP Frameworks
23. UITextField *field = [UITextField new];
[field.rac_textSignal
subscribeNext:^(NSString *text) {
NSLog(@"Current text: %@", text);
}];
Text Field как поток
24. @“H”
Current text: H
UITextField *field = [UITextField new];
[field.rac_textSignal
subscribeNext:^(NSString *text) {
NSLog(@"Current text: %@", text);
}];
Text Field как поток
25. @“H”
@“He”
Current text: H
Current text: He
UITextField *field = [UITextField new];
[field.rac_textSignal
subscribeNext:^(NSString *text) {
NSLog(@"Current text: %@", text);
}];
Text Field как поток
26. @“H”
@“He”
@“Hel”
Current text: H
Current text: He
Current text: Hel
UITextField *field = [UITextField new];
[field.rac_textSignal
subscribeNext:^(NSString *text) {
NSLog(@"Current text: %@", text);
}];
Text Field как поток
27. @“H”
@“He”
@“Hel”
@“Hell”Current text: H
Current text: He
Current text: Hel
Current text: Hell
UITextField *field = [UITextField new];
[field.rac_textSignal
subscribeNext:^(NSString *text) {
NSLog(@"Current text: %@", text);
}];
Text Field как поток
28. @“H”
@“He”
@“Hel”
@“Hell”
@“Hello”
Current text: H
Current text: He
Current text: Hel
Current text: Hell
Current text: Hello
UITextField *field = [UITextField new];
[field.rac_textSignal
subscribeNext:^(NSString *text) {
NSLog(@"Current text: %@", text);
}];
Text Field как поток
49. Реактивное присваивание
//Неважно, как именно начался поиск, но после его
//начала фокус с поисковой строки надо убрать.
RAC(self, topBarVM.textFieldVM.focused) =
[self.searchVM.searchDidStartSignal mapReplace:@NO];
50. • В четыре раза лучше коллбэков
• В два раза лучше промисов
• Способствуют локальности кода
• Упрощают обработку ошибок в цепочках
• Избавляют от Callback Hell
Потоки — это монады
54. • Неизменяемые объекты — значения в потоке
• Потоки изолируют состояние
• Операторы — чистые функции
• Операторы изолируют взаимосвязи
Functional Reactive Programming
55. • Прозрачность кода
• Единообразие в работе с разными сущностями
• Простота асинхронного программирования
• Описание “что” надо сделать, вместо “как”
FRP на практике