Лекция 12. Быстрее, Python, ещё быстрее.Roman Brovko
Измерение времени работы кода на Python с помощью модулей timeit, cProfile и line_profiler. Немного о NumPy. JIT и AOT компиляция кода на Python на примере Numba и Cython.
Guava - open-source библиотека, разработанная в основном инженерами компании Google, в которой есть множество полезных утилит для написания эффективного и красивого кода. В Guava решено множество типичных задач, которые часто возникают при работе с примитивами, строками, коллекциями, параллельными вычислениями, кэшированием данных и многим другим. В докладе поговорим о возможностях, которые предоставляет Guava, рассмотрим примеры использования утилит библиотеки.
Докладчик:
Владимир Донец (kwimba.ru)
Описание: Слышали про магию в Python? Одно из магических заклинаний называется дескрипторы. Мощная фича языка, которая позволяет определять свое поведение атрибута объекта при доступе к этому атрибуту.
Сложно звучит? А вы знали, что дескрипторами уже наверняка пользовались, если хотя бы раз писали на Python. Я расскажу о том, что такое дескрипторы и как их осознанно можно применять в собственном коде.
Лекция 12. Быстрее, Python, ещё быстрее.Roman Brovko
Измерение времени работы кода на Python с помощью модулей timeit, cProfile и line_profiler. Немного о NumPy. JIT и AOT компиляция кода на Python на примере Numba и Cython.
Guava - open-source библиотека, разработанная в основном инженерами компании Google, в которой есть множество полезных утилит для написания эффективного и красивого кода. В Guava решено множество типичных задач, которые часто возникают при работе с примитивами, строками, коллекциями, параллельными вычислениями, кэшированием данных и многим другим. В докладе поговорим о возможностях, которые предоставляет Guava, рассмотрим примеры использования утилит библиотеки.
Докладчик:
Владимир Донец (kwimba.ru)
Описание: Слышали про магию в Python? Одно из магических заклинаний называется дескрипторы. Мощная фича языка, которая позволяет определять свое поведение атрибута объекта при доступе к этому атрибуту.
Сложно звучит? А вы знали, что дескрипторами уже наверняка пользовались, если хотя бы раз писали на Python. Я расскажу о том, что такое дескрипторы и как их осознанно можно применять в собственном коде.
Лекция 8. Итераторы, генераторы и модуль itertools.Roman Brovko
Два протокола итераторов: __next__ + __iter__ и __getitem__. Итераторы и цикл for, а также операторы in и not in. Генераторы, оператор-выражение yield. Генераторы как: итераторы, сопрограммы, менеджеры контекста. Модуль itertools.
Зачем тестировать? Тестирование в интерпретаторе и доктесты. Модуль unittest. Пакет py.test - на порядок лучше. Тестирование свойств и пакет hypothesis.
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
Web-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Модули threading, queue и concurrent.futures. Использование потоков для параллельных вычислений на Python. GIL. Параллельность и конкурентность. Модуль asyncio. Модуль multiprocessing.
Вводная лекция в язык C#, для тех кто знает программирование и в особенности C++. В статье будет уделено внимание наиболее важным отличиям языков, будут обсуждаться вопросы производительности и эффективного кода.
Другие интересные статьи по C# ищите тут: http://itw66.ru/blog/c_sharp/
Написание компактного и эффективного кода в C#: http://itw66.ru/blog/c_sharp/520.html
Лекция 2. Всё, что вы хотели знать о функциях в Python.Roman Brovko
Синтаксис объявления функций. Упаковка и распаковка аргументов. Ключевые аргументы и аргументы по умолчанию. Распаковка и оператор присваивания. Области видимости, правило LEGB, операторы global и nonlocal. Функциональное программирование, анонимные функции. Функции map, filter и zip. Генераторы списков, множеств и словарей. Немного о PEP 8.
Синтаксис объявления классов. Атрибуты, связанные и несвязанные методы, __dict__, __slots__. Статические методы и методы класса. Свойства, декоратор @property. Наследование, перегрузка методов и функция super. Декораторы классов. Магические методы.
This document provides an overview of GoogleMock, a mocking framework for C++. It explains what a mock object is and how it can be used to test code without dependencies. GoogleMock allows defining mock classes that implement the same interfaces as real objects. Expectations can be set on mock methods to specify how they will be called. This allows validating interactions with the mock and isolating the code under test. The document covers creating and using mock objects, setting expectations, actions, and multiple expectations in GoogleMock.
This document discusses the importance of secure software development practices. It begins with background information and defines key terms like source code and programming languages. It then covers principles for writing secure code like least privilege and input validation. Common coding errors like SQL injection and buffer overflows are explained along with their impacts. The document concludes that following secure coding practices and analyzing code can help protect software from attacks.
Лекция 8. Итераторы, генераторы и модуль itertools.Roman Brovko
Два протокола итераторов: __next__ + __iter__ и __getitem__. Итераторы и цикл for, а также операторы in и not in. Генераторы, оператор-выражение yield. Генераторы как: итераторы, сопрограммы, менеджеры контекста. Модуль itertools.
Зачем тестировать? Тестирование в интерпретаторе и доктесты. Модуль unittest. Пакет py.test - на порядок лучше. Тестирование свойств и пакет hypothesis.
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
Web-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Модули threading, queue и concurrent.futures. Использование потоков для параллельных вычислений на Python. GIL. Параллельность и конкурентность. Модуль asyncio. Модуль multiprocessing.
Вводная лекция в язык C#, для тех кто знает программирование и в особенности C++. В статье будет уделено внимание наиболее важным отличиям языков, будут обсуждаться вопросы производительности и эффективного кода.
Другие интересные статьи по C# ищите тут: http://itw66.ru/blog/c_sharp/
Написание компактного и эффективного кода в C#: http://itw66.ru/blog/c_sharp/520.html
Лекция 2. Всё, что вы хотели знать о функциях в Python.Roman Brovko
Синтаксис объявления функций. Упаковка и распаковка аргументов. Ключевые аргументы и аргументы по умолчанию. Распаковка и оператор присваивания. Области видимости, правило LEGB, операторы global и nonlocal. Функциональное программирование, анонимные функции. Функции map, filter и zip. Генераторы списков, множеств и словарей. Немного о PEP 8.
Синтаксис объявления классов. Атрибуты, связанные и несвязанные методы, __dict__, __slots__. Статические методы и методы класса. Свойства, декоратор @property. Наследование, перегрузка методов и функция super. Декораторы классов. Магические методы.
This document provides an overview of GoogleMock, a mocking framework for C++. It explains what a mock object is and how it can be used to test code without dependencies. GoogleMock allows defining mock classes that implement the same interfaces as real objects. Expectations can be set on mock methods to specify how they will be called. This allows validating interactions with the mock and isolating the code under test. The document covers creating and using mock objects, setting expectations, actions, and multiple expectations in GoogleMock.
This document discusses the importance of secure software development practices. It begins with background information and defines key terms like source code and programming languages. It then covers principles for writing secure code like least privilege and input validation. Common coding errors like SQL injection and buffer overflows are explained along with their impacts. The document concludes that following secure coding practices and analyzing code can help protect software from attacks.
ITCamp 2012 - Paula Januszkiewicz - Stronghold to StrengthenITCamp
The document summarizes the agenda for the ITCamp 2012 conference on Microsoft technologies. The agenda includes sessions on infrastructure techniques, hardening techniques, hacker roles in development, and demonstrations of hacking techniques. The conference promotes keeping knowledge up to date on security trends and regulations and using tools like scripting languages and debuggers to test for vulnerabilities.
A New Tracer for Reverse Engineering - PacSec 2010Tsukasa Oi
This document discusses a new tracer for reverse engineering based on record and replay. It aims to make reverse engineering more efficient by overcoming issues with existing instruction tracers like slow speed and large data generation. The proposed tracer is implemented as a virtual machine monitor (VMM) on x64 platforms using binary translation. By classifying elements as deterministic or nondeterministic inputs and interrupts, it can generate small trace logs and have overhead under 100% by leveraging record and replay techniques. It also discusses challenges in modeling x86 elements and implementing lazy evaluation for EFLAGS to further improve efficiency.
Este documento describe diferentes tipos de software. Explica que el software se divide en tres categorías principales: software de sistema, software de programación y software de aplicación. También describe varios navegadores web populares como Internet Explorer, Firefox, Safari, Opera y sus características clave.
The document discusses analyzing Android malware. It describes setting up a lab with an Android SDK virtual machine. Tools for static and dynamic analysis are outlined. The document then demonstrates analyzing a malware sample that sends SMS messages to a premium rate number, extracting the APK, decompiling the code, and identifying the malicious behavior. By reversing the malware, the author was able to determine the phone number and text messages it was sending, thus "having" the malware and being able to control it.
Sebastián Guerrero - Pimp your Android [RootedCON 2012]RootedCON
Resumen de mis investigaciones en plataformas android, se tratará:
Montando un laboratorio de investigación.
Trasteando con las aplicaciones.
Análisis forense (SIM + Memoria SD + Memoria interna).
Formar un zoológico de malware.
Evolución del malware en plataformas Android.
Nuevos vectores de ataque.
Medidas de seguridad en android.
Reverseemos algo nuevo.
Desmantelando un C&C.
Presentación de un PoC de tapjacking que afecta al 100% de dispositivos móviles
Юнит-тестирование и Google Mock. Влад Лосев, Googleyaevents
Владимир Лосев, Google
Закончил математико-механический факультет Санкт-Петербургского государственного университета в 1995 году. Работал в компаниях Motоrola, Fair Isaac и Yahoo. С 2008 года работает в Google, в группе, занимающейся вопросами повышения производительности инженеров.
Тема доклада
Юнит-тестирование и Google Mock.
Тезисы
В модульных (юнит) тестах каждый элемент программы тестируется по отдельности, в изоляции от других. Такие тесты исполняются очень быстро, поэтому их можно запускать когда угодно, что позволяет отлавливать дефекты на самых ранних стадиях разработки. Однако для тестирования объекта в изоляции от других необходимо имитировать поведение связанных с ним объектов, что на C++ довольно утомительное занятие. Разработанная в Googlе библиотека для создания и использования mock-объектов — Google Mock — позволяет существенно упростить этот процесс и ускорить написание тестов. В докладе пойдет речь о принципах и возможностях библиотеки, примерах её использования и её внутреннем устройстве.
Сергей Бережной "Клиентский JavaScript в БЭМ-терминах: от блока до библиотеки"Yandex
Писать сложный клиентский JavaScript непросто. Каждый, кто пробовал, знает это не понаслышке. Как писать независимые блоки? Как писать блоки, состоящие из других блоков? Как сделать библиотеку блоков? В докладе мы расскажем про то, как упростить себе жизнь и научиться писать клиентский JavaScript в БЭМ-терминах.
Рarse'им бэкенд
Аким Халилов
Вы хотите выучить Backbone? Хотите просто писать клиентский код, не думая о сервере и о том, как все обрабатывать, хранить, бэкапить? Выход есть – храните с помощью Parse. Parse – платформа, которая предоставляет возможность хранения данных без забот о сервере. Хранилище данных, соц. сети, push-notification, cloud code. Что такое Parse и что он умеет, о библиотеке для использования:
- знакомство с JS API и примеры использования;
- начинаем кодить: stub-проект;
- кодим фичи: CRUD + плюшки;
- хостим.
Мир мобильных телефонов очень сильно изменил нашу жизнь. В наше время невозможно представить современного человека, без этого чудо устройства. На рынке появляется все больше устройств и приложений. И чтобы удобнее пользоваться этими приложениями пользователи выбирают “умные” телефоны, или как их еще принято называть смартфоны. В своем докладе я хочу поделиться своим опытом автоматизации приложений под Android и iOS. Я расскажу о том, какие инструменты автоматизации я использовал. Поговорим о недостатках этих инструментов и какие из них стоит использовать у себя на проекте.
"How keep normal blood pressure using TDD" By Roman LoparevCiklum Ukraine
The document provides an overview of test-driven development (TDD) principles and practices for keeping normal blood pressure. It discusses what TDD is, basic TDD principles like "tests first" and writing minimal code to pass tests, benefits like better design and refactoring, and challenges like requiring discipline. It provides examples of writing tests for a FizzBuzz game in a test-first manner, demonstrating how to name tests clearly and structure them. It also discusses tools like Mockito for mocking and Cobertura for checking code coverage targets.
"Through the three circles of the it hell" by Roman LiashenkoCiklum Ukraine
About speaker:
Roman Liashenko, project manager, team lead, developer. 10 years of experience in IT.
About presentation:
“Have you ever heard about wrangles between developers and product owners, product owners and project managers, project managers and developers? I have! And very often such situation looked like a deaf person is arguing with a blindman. Misunderstandings between different project roles are pretty similar to the generation gap because, in most cases, they are based on different mindsets. I came to this conclusion after years working in IT, by playing different project roles and watching changes of my ideology. During this event we will go through the main peculiar mindset properties of each project role. It will help us to understand what does it mean to be PM/TL/Dev/PO. I really believe that even small piece of such understanding will help participants to understand their colleagues and improve their communication.”
Alex Pazhyn, who has more than 7 years of experience with UI design, wtells about «Designing in the Material Design Style».
1. What the Material Design is?
2. Work with color palette, typography and custom branding
3. Guidelines and slicing
4. Frameworks for MD Style
5. Solving the issues and Best cases.
Presentation will be interesting for UX/UI designers and Android developers.
Introduction to amazon web services for developersCiklum Ukraine
Introduction to Amazon Web Services for developers
About presenter
Roman Gomolko with 11 years of experience in development including 4 years of day-to-day work with Amazon Web Services.
Disclaimer
Cloud-hosting is buzz-word for a while and in my talk I would like to give an introduction to Amazon Web Services (AWS).
We will talk about basic building blocks of AWS like EC2, ELB, ASG, S3, CloudFront, RDS, IAM, VPC and other scary or funny abbreviations.
Then we will discuss how to migrate existing applications to AWS. This topic includes:
• how to design infrastructure and services to use when migrating
• how to choose proper instance types
• how to estimate infrastructure cost
• how it will affect performance of application migrated
Then we will make an overview of services provided by AWS and possible apply in your current of future applications:
• SQS
• DynamoDB
• Kinesis
• CloudSearch
• CodeDeploy
• CloudFormation
And if we survive we will talk a little how to design Cloud applications. That’s mainly about general principles.
My talk mostly targeted towards decision makers and decisions pushers of small and medium size companies which are consider “going cloud” or already moving into this direction. Everyone interested in gaining knowledge in these areas are welcomed as well.
We will spend around 2–3 hours together and you will be able to pitch-in any questions until we totally goes away from original plan.
Alexey Chulochnikov, mobile developer with 3+ years of experience, about:
• Watch App architecture overview
• Apple watch interface overview (Regular Apple Watch App, Glances, Notifications)
• Initial Impressions about WatchKit
• How to work with watchkit (pass data between controllers, get data from parent app, etc.)
Maxim Koshtenko, an iOS developer with 5+ years of experience tells about:
– what test-driven development is
– advantages of TDD
– how to use test-driven development for iOS projects
– most common problems and solutions
– how to start working with TDD on an existing project
Experienced UX Designer Vladyslav Miasnikov shares his vision for 2015:
– Fashion trends in the UI industry
– The end of Web design era — anti-advice about survival
– Five qualities of the ideal UX designer
– 10 inspiring drives in UX
Ivan Romanenko, a fan of C++ and Boost, specializing on low-level development in such areas: forensics, security abd high-load systems, tells about developing high-load systems using C++.
– Processing more than 10 000 request per second
– Architecture for quick experiments
– Manual instrumentation and boost.statistics
– Search for own performance metrics
– Fight against losses on allocations and synchronization
The 8th Dnepropetrovsk iOS Practice Leaders Community Meet-up, which took place on Thursday, February 5th, was dedicated to collection view layouts.
Anatoliy Tukhtarov, iOS developer with 2+ years of experience made a presentation about:
— what UICollectionViewLayout is;
— when to create your own layout;
— creating your own layout from scratch;
— self-sizing collection view items;
— adding gestures to collection view (drag and drop, pinch to zoom, autoscroll, etc.)
During the presentation we created waterfall layout step by step and discuss appearing issues.
The presentation will be interesting for all developers who want to expand their knowledge about UICollectionView.
https://yadi.sk/d/eeEdMTiueTW9s — keynote
https://yadi.sk/i/DVDq3O3leTW8n — pdf
https://yadi.sk/i/t6-nw3uMeTW7D — pptx
- why we need auto layout;
- what UITraitCollection is;
- what’s new in interface builder Xcode;
- about debugging view without running;
- how to debug custom view.
This document discusses using Groovy on Android applications. It begins with an introduction to Groovy, describing it as an open source language that compiles to Java bytecode and has a syntax similar to Java but with features inspired by Python, Ruby, and Smalltalk. The document then notes some similarities between Groovy and Apple's Swift language, before discussing how Groovy can be used on Android by compiling Groovy code to Java bytecode and calling it from Android applications.
The 4th Dnepropetrovsk iOS Practice Leaders Community Meet-Up, which took place onThursday, September 25.
Maxim Koshtenko, an iOS developer with 4+ years of experience in the area, held a presentation in which he told:
- about the most widespread problems which appear while writing tests and how to solve them;
- how to cover controllers with tests correctly and what should be visible in interface;
- why tests do not work for block-based and asynchronous code and how we can fix this;
- how to write tests for Core Data models;
- many other useful and interesting tips and tricks.
The presentation will be interesting for all iOS developers.
Android Material Design. New age for amazing apps.
Tips and tricks.
The 3rd Dnepropetrovsk Android Practice Leaders Community Meet-Up, that took place ob Sept 18, 2014.
Ilya Lisovoy, a true fan of mobile development and Android developer in particular, tells about:
- new android philosophy in material design
- beauty volume and shadows of UI elements
- new android views : RecyclerView, CardView, Palette
- animations and activity transition effects
The presentation will be interesting for all Android developers.
KANBAN DEVELOPMENT
or get the agilest from agile
Oleh Dovhai, Java developer, ex QA engineer - about Kanban development process and how to use it in your project .
We will learn:
· What Kanban is: origin, principles, practice
· Kanban vs Scrum: compare tools for understanding, not judgment
· There is no ideal tool: experiment, combined and again experiment
The First Ciklum DP Android Practice Leaders Community Meet-Up.
By Ilya Lisovoy, Android developer with 2+ years of experience, who loves amazing apps with innovations and best UX practices.
Mobile prototypes for Android and iOS,- the difference between them, and why is it bad to make universal design for all platforms; adapting the design of one mobile platform to another; simple tips for designers from developers.
The First Ciklum DP Android Practice Leaders Community Meet-Up.
Principles and methods of UX design by Alina Bidnenko, Android developer with 3+ years of experience, who considers that app can’t survive without high quality design of UI/UX.
The 2nd Dnepropetrovsk iOS Practice Leaders Community Meet-Up.
MVC by Dmitriy Sai, iOS developer with 3+ years of experience.
The following presentation covers the issues of the practical use of Model View Controller on iOS, focusing on the principles of roles’ division, clear code, simplification of refactoring and unit-testing.
iOS Practice Leaders Community Meet-up.
“Unit Testing in iOS” by Maxim Koshtenko
- why we need tests and what their use in applications’ developing on a project is;
- how one should and should not test source code;
- review of some of the most popular tools which make test-writing easier;
- how to switch to unit-testing on a project which already exists.
Future of Outsourcing report published in The Times featuring Ciklum's CEO To...Ciklum Ukraine
Outsourcing provides specialist expertise, economies of scale, flexibility, and innovation. When outsourcing improves productivity compared to doing something in-house, according to relevant metrics, it should be pursued. Successful outsourcing requires clear communication and understanding between partners to ensure deals deliver value. While outsourcing offers benefits, it isn't right for every situation and depends on organizational culture and goals.
Михаил Попчук "Cкрытые резервы команд или 1+1=3"Ciklum Ukraine
Бывает ситуации, когда тебе везет с подбором ребят в команду, везет с заказчиком и поставлен идеальный процесс. Что еще нужно? А команда не показывает результат.
В свою очередь, команда собранная из посредственных ребят с новичком тим лидом перевыполняет план в два раза!
Как добиться синергии в команде, мотивировать коллег и вызывать удивление заказчика на примере реальной команды в Scrum процессе.
34. Google mock Действия
•Возвращают значение
•Побочные эффекты
•Функция как действие
•Составное действие
•ACTION макрос
35. Google mock Действия Возвращают значение
struct MockFoo : public Foo
{
MOCK_METHOD0( GetBar, Bar&() );
MOCK_METHOD1( Calculate, int( int ) );
};
...
MockFoo foo;
Bar bar;
EXPECT_CALL( foo, GetBar() )
.WillOnce( ReturnRef( bar ) );
EXPECT_CALL(foo, Calculate( 10 ) )
.WillOnce( ReturnArg< 0 >( ) );
36. Google mock Действия
•Возвращают значение
•Побочные эффекты
•Функция как действие
•Составное действие
•ACTION макрос
37. Google mock Действия Побочные эффекты
struct MockMutator : public Mutator
{
MOCK_METHOD2( Mutate, void( bool mutate, int* value ) );
};
...
MockMutator mutator;
EXPECT_CALL( mutator, Mutate( true, _ ) )
.WillOnce( SetArgPointee< 1 >( 5 ) );
38. Google mock Действия
•Возвращают значение
•Побочные эффекты
•Функция как действие
•Составное действие
•ACTION макрос
39. Google mock Действия Функция как действие
struct MockFoo : public Foo
{
MOCK_METHOD1( ComplexJob, bool( int x ) );
};
struct Helper
{
bool ComplexJob( int x );
};
...
MockFoo foo;
Helper helper;
EXPECT_CALL( foo, ComplexJob( _ ) )
.WillOnce( Invoke( &helper, &Helper::ComplexJob ) );
40. Google mock Действия
•Возвращают значение
•Побочные эффекты
•Функция как действие
•Составное действие
•ACTION макрос
41. Google mock Действия Составное действие
struct MockMutator : public Mutator
{
MOCK_METHOD1( MutateInt, bool( int* value ) );
};
...
MockMutator mutator;
EXPECT_CALL( mutator, MutateInt( _ ) )
.WillOnce( DoAll( SetArgPointee< 0 >( 5 ),
Return( true ) ) );
42. Google mock Действия
•Возвращают значение
•Побочные эффекты
•Функция как действие
•Составное действие
•ACTION макрос
43. Google mock Действия ACTION макрос
ACTION_P( Add, n ) { return arg0 + n; }
EXPECT_CALL( foo, Calc( 10 ) )
.WillOnce( ReturnAdd( 5 ) );