Linux Control Groups (Контрольные группы) -- механизм, позволяющий управлять группами процессов в Linux и их ресурсами. Это мощный инструмент о котором знают далеко не все. Презентация дает краткий обзор.
Виртуализация уровня операционной системы в Linux (так, называемые контейнеры) опирается на изоляцию ресурсов и на управление их использованием. Пространства имен в Linux (linux namespaces) тот инструмент, который позволяет изолировать ресурсы друг от друга на уровне имен. Например, именами процессов являются их идентификаторы (PIDs), которые можно организовать таким образом, что процессы никогда не могут узнать о существовании друг друга. Об этом и других интересных вещах рассказывается в презентации.
Linux Control Groups (Контрольные группы) -- механизм, позволяющий управлять группами процессов в Linux и их ресурсами. Это мощный инструмент о котором знают далеко не все. Презентация дает краткий обзор.
Виртуализация уровня операционной системы в Linux (так, называемые контейнеры) опирается на изоляцию ресурсов и на управление их использованием. Пространства имен в Linux (linux namespaces) тот инструмент, который позволяет изолировать ресурсы друг от друга на уровне имен. Например, именами процессов являются их идентификаторы (PIDs), которые можно организовать таким образом, что процессы никогда не могут узнать о существовании друг друга. Об этом и других интересных вещах рассказывается в презентации.
Непрерывная интеграция Python-проектов в ЯндексеAndrey Kazarinov
Рутинные операции тестирования, сборки и развёртывания заставляют в нервном ожидании толстеть на кофепоинте, а частый релизный цикл создаёт лёгкое головокружение? Чтобы помочь вам сохранить тело подтянутым, а голову светлой, я расскажу об организации и особенностях непрерывной интеграции в Python-проектах на примере популярных инструментов.
The document describes an automated tool called MDBCI that is used to create multi-configuration testing environments for database servers and proxy applications like MariaDB and Maxscale. It allows defining configuration templates that can deploy virtual machines across different providers with various Linux distributions, database versions, and topologies. MDBCI uses tools like Vagrant, Terraform, Ansible, and Chef to automate the deployment and configuration of the test environments from human-readable definition files. Developers find it useful for debugging by allowing direct access to the test environment machines.
Непрерывная интеграция Python-проектов в ЯндексеAndrey Kazarinov
Рутинные операции тестирования, сборки и развёртывания заставляют в нервном ожидании толстеть на кофепоинте, а частый релизный цикл создаёт лёгкое головокружение? Чтобы помочь вам сохранить тело подтянутым, а голову светлой, я расскажу об организации и особенностях непрерывной интеграции в Python-проектах на примере популярных инструментов.
The document describes an automated tool called MDBCI that is used to create multi-configuration testing environments for database servers and proxy applications like MariaDB and Maxscale. It allows defining configuration templates that can deploy virtual machines across different providers with various Linux distributions, database versions, and topologies. MDBCI uses tools like Vagrant, Terraform, Ansible, and Chef to automate the deployment and configuration of the test environments from human-readable definition files. Developers find it useful for debugging by allowing direct access to the test environment machines.
Implementation of the new REST API for Open Source LBS-platform Geo2TagOSLL
The document discusses the implementation of a new REST API for the open source Geo2Tag LBS platform. The goals were to encourage 3rd party developers by simplifying the existing codebase and making the API more RESTful. This included rewriting the backend in Python with MongoDB, adding OAuth authorization, pagination support, and making all entities identifiable through URLs. It also describes adding plugins and data import capabilities to allow customization and ingesting open data through a new plugin system.
The document discusses implementing a mesh network between Nokia Internet Tablets and OLPC/XO devices. It outlines upgrading the devices' mesh drivers and kernels to enable the heterogeneous mesh network, including patching other needed drivers. It then describes testing the mesh network by establishing IP connectivity between devices located close together and using intermediate devices to route packets for those further apart.
Massive open online courses (MOOCs) offer unlimited enrollment, 24/7 access to course materials, and automated testing to assess knowledge for software engineering and computer applications students. Upcoming improvements include adaptive teaching and analyzing student behavior through machine learning. MOOCs are provided through major platforms and can be supplemented with virtual labs for hands-on experience, with contacts available through the course coordinator.
This document summarizes a presentation about improving mesh networking on One Laptop Per Child (OLPC) laptops. It discusses the goals of reducing routing overhead on OLPC networks and implementing solutions on the laptops. The presentation covers analyzing different types of ad-hoc routing, comparing industrial and open source routing implementations, and proposing a solution that uses restricting the routing area, dynamic optimization radius selection, and defining routing overhead externally. It also provides a timeline for developing and testing the solutions through simulations and contributing code to OLPC laptops.
The document describes an SVG Player tool for analyzing results from xml-based and svg-based network simulations. The SVG Player allows viewing a set of SVG images in sequential order, navigating images forwards and backwards, declaring and saving image sets, and playing sets in direct and reverse order. It was developed using C++, Qt Framework, and Qt Creator and loads SVG images asynchronously in a separate thread to prevent rendering delays. While intended for viewing NS2 simulation results, the SVG Player can be used to play any SVG image series.
E.Kalishenko, K.Krinkin, S.P.Shiva Prakash. Process Mining Approach for Traff...OSLL
Abstract. Short-time traffic flow prediction in particular systems will expedite discovering of an optimal path for packet transmitting in dynamic wireless networks. The main goal is to predict traffic overload while changing a network topology. Machine learning techniques and process mining can help analyze traffic produced by several moving nodes. Several related approaches are observed. Research framework structure is presented. The idea of process mining approach is proposed.
This document discusses connecting Nokia and OLPC devices in a mesh network. It describes patching the drivers for the Nokia N810 and OLPC XO laptop to enable mesh networking between their different wireless adapters. A proof of concept was able to connect two systems via mesh using different wireless adapters. However, fully enabling mesh between the Nokia and OLPC devices requires further work, as their existing drivers do not currently support mesh networking.
Ceph является одной из мнообещающих архитектур для построения облачных хранилищ данных. В презентации приведены основные возможности, описана архитектура, дан краткий обзор команд CLI
Короткое знакомство с Mongo; Коротко про GeoJson; Какие данные можно хранить в Mongo; Как хранить геоданные в Mongo; Как индексировать геоданные; Как выполнять запросы к данным (поиск объектов рядом/внутри/на пересечении с областями); Примеры использования геовозможностей MongoDb в Geo2Tag
This document summarizes an open source implementation of the ZigBee wireless networking standard. It discusses applications of ZigBee networks in home automation and commercial buildings. It provides an overview of ZigBee nodes, topologies, and stack architecture. The presentation outlines a work plan to make the protocol layers independent, define socket interfaces, and develop a user-space library. Progress on a Wireshark dissector and socket interfaces is also summarized.
Virtual-HSM: Virtualization of Hardware Security Modules in Linux ContainersOSLL
In the report the technology of virtual security modules will be presented. It rely on Linux containers. The report should be interesting for those people who are planning (or already using) could services for building IT-infrastructure.
The document summarizes a seminar on the Geo2tag LBS platform. It includes an agenda covering an architecture overview, installation process, source code overview, JSON interface, client libraries, and practice with Qt. Key features of the current platform include basic geo-tagging, filtration, and load balancing. Planned features for 2012 include exporters and channel aggregation. The conceptual model diagram shows how data flows from devices through the HTTP/JSON interface to Lighttpd, PostgreSQL, and back.
Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015OSLL
Nowadays the big challenge in simultaneous local-
ization and mapping (SLAM) of mobile robots is the creation
of efficient and robust algorithms. Significant Number of SLAM
algorithms rely on unique features or or use artificial landmarks
received from camera images. Feature points and landmarks
extraction from images have two significant drawbacks: CPU
consumption and weak robustness depending on environment
conditions. In this paper we consider performance issues for
landmark detection, introduce a new artificial landmark design
and fast algorithm for detecting and tracking them in arbitrary
images. Also we provide results of performance optimization for
different hardware platforms.
The document describes a source code analyzer tool that allows users to visualize code structure through objects and connections in a graph. It can define objects from text, files, or hex editors, connect objects, annotate objects, and support object filtering. The tool uses Qt, Source-highlight-qt, and SQLite and has features like external tool support, usability improvements, object grouping, performance analysis, and automatic graph generation. Contact information is provided for the Ubuntu app center, GitHub repository, and developers.
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексейsolit
Алексей Мычко, Минск, компания JazzTeam, Software Engineer (test automation)
«Эволюция тестирования на Selenium». Лекция и мастер-класс. Development секция. Для заинтересованных.
Для автоматизации web-приложений самым популярным средством является Selenium. Этот продукт дает возможность создавать как очень простые тесты, так и сложные тестовые фреймворки, позволяющие тестировать системы любой сложности.
В мастер-классе будет наглядно показано создание следующих видов тестов:
- с использование программ, генерирующих тесты по манипуляциям с браузером
- тесты в стиле процедурного программирования
- тесты в стиле объектно-ориентированного программирования
- тесты на DSL (Domain Specific Language) языке
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Mail.ru Group
Существует мнение, что от разработчиков системы автоматизированных тестов требуется высокая квалификация в области разработки программного обеспечения и солидный багаж знаний. Обычно таких людей в команде тестирования не много. Но можно начать работы по качественной автоматизации тестирования, даже не имея такого опыта. В докладе речь пойдет о:
отборе рекрутов в программу обучения автоматизации тестирования;
первичном пороге для вхождения в рекруты;
составлении учебной программы;
промежуточном контроле и испытаниях;
начале работы над реальными проектами;
подводных камнях и ошибках, которые можно допустить.
Применение этих знаний на собственном опыте позволило компании получить высокое покрытие проекта тестами и достичь результатов, когда каждый из команды разрабатывает и поддерживает автотесты, а также самостоятельно автоматизирует новые проекты.
Как построить свой фреймворк для автотестов?Dmitry Buzdin
Мы пройдемся по всем основным блокам построения тестового фреймворка и тому, как они связаны между собой. Вы научитесь собирать свое решение по автоматизации из библиотек с открытым кодом и делать так, чтобы они дополняли друг друга.
Расширяемая платформа для создания и управления автоматизированными тестами н...jazzteam
Продукт XML2Selenium - это расширяемая, плагинная платформа для создания и управления автоматизированными тестами на основе технологии Java.
XML2Selenium имеет интеграцию с JUnit, работает поверх Selenium (это изменяемо). XML2Selenim позволяет создавать автоматизированные тесты в простом и понятном обычному (без навыков программирования) QA инженеру формате. XML2Selenium позволяет также управлять всеми стадиями работы с автоматизированными тестами, начиная от стадии создания и заканчивая управлением тестами.
Главными конкурентными преимуществами являются
- низкая стоимость вхождения. Начинающие автоматизаторы, и даже QA инженеры без навыков программирования создают качественные тесты, а значит легко поддерживаемые, легко изменяемые, с использованием DDT (Data Driven Testing) подходов, что увеличивает повторно-используемость тестов
- встроенные возможности структуризации тестов по папкам и файлам, а также по тегам, что позволяет качественно отобразить документацию на тесты. Внедряя эту платформу, вы автоматически улучшаете свои процессы управления тестами
- XML2Selenium - это плагинная, расширяемая платформа, позволяющая кастомизировать процессы под ваши нужды, создать новые плагины, добавить интеграцию с нужными системами, и многое другое
- все повторно-используемые части (инклюды, плагины) могут помещаться в репозитории, откуда ими могут пользоваться QA инженеры с других проектов компании, тем самым распространяется опыт и знания в области автоматизации
- XML2Selenium имеет широкий спектр полезных свойств в области автоматизации, таких как поддержка создания видео, снепшотов и скриншотов страниц, Groovy и JS скриптинга, поддержки объектно-ориентированного программирования на XML и многих других
Традиционно многие компании не инвестируют много в QA инженеров, при этом сложность продуктов и количество Use Cases растёт, и компании утыкаются в барьер, когда архитектура тестов становится сравнительно такого же уровня, как и архитектура приложения. Это же касается и автоматизации тестирования. Ключевыми проблемами становятся:
- вопросы поддержки и тестирования многих инсталяций продукта на стороне заказчика
- вопросы тестирования нескольких версий (бренчей) одного и того же продукта
- повторн
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGDataArt
Дмитрий Лукьяненко, QA Automation рассматривает:
- Selenium IDE;
- Selenium WebDriver;
- Page Obgect Pattern;
- Page Factory Pattern;
- локаторы;
- как построить фреймворк и куда его можно дальше развивать.
Presentation from 11th SQADays conference in Kiev (April 2012) and Selenium Camp 2013 (February 2013) about how to measure what functional tests are really testing from requirements, code and UI perspective.
The document describes a SLAM constructor framework for ROS that aims to speed up SLAM research. It provides common components that can be assembled to implement SLAM algorithms. The current version uses laser scans and odometry, but ongoing work includes adding support for graph-based SLAM, extra sensors, and feature-based SLAM methods. The framework is open source on GitHub and implements some existing SLAM methods as a starting point.
В презентации описан опыт создания робота с нуля на базе Raspberry Pi и недорогих актуаторов и сенсоров. Представлены примеры двух разработанных поколений роботов, детально описана одна из последних версий, собранная на базе деталей конструктора Trik. Описанная модель имеет дифференциальное управление (используются два мотора с энкодерами), ультразвуковой сенсор, камеру. Питание организовано от 11.1V батареи через UBEC. Прошивка робота реализована на базе ROS и состоит из нескольких модулей.
This document discusses the implementation of the 802.11s Power Save Mode in the NS-3 network simulator. It begins with background on 802.11s mesh networking and power saving approaches. It describes the objectives of developing a routing algorithm based on 802.11s PSM aspects and implementing it in NS-3. Details are provided on extending NS-3's mesh and energy models to support this work. The document outlines next steps of creating a PSM infrastructure, implementing the routing algorithm, and testing the implementation.
SECR'13 Lightweight linux shared libraries profilingOSLL
This document summarizes a presentation on developing a lightweight profiler called ElfPerf for Linux embedded systems. ElfPerf allows profiling function calls in shared libraries without recompilation or relinking. It uses call redirection and wrapping mechanisms to intercept function calls and collect profiling statistics. ElfPerf works by modifying the dynamic linker (ld-linux.so) and dynamic loading library (libdl.so) to integrate the profiling library (libelfperf.so). This allows non-invasive profiling of dynamically linked and loaded functions on x86/x64 platforms.
The document discusses integrating the Smart-M3 and Geo2Tag platforms to develop technology for efficient geocoded smart spaces. The goal is to develop an integration architecture and agent to connect the platforms. Smart-M3 is an open source semantic web sharing platform, while Geo2Tag is a centralized geo-tagging database. A layered architecture is proposed with interfaces, integration, domain engines, and a data backend. Use cases include geotagging smart objects, spatial/temporal filtering, and providing extra geo-tagged information. A prototype has been developed without the cloud backend, which is still in progress along with testing and optimizations.
The document provides an overview of the Tizen Web Runtime and Device APIs. It describes new HTML5 elements, JavaScript APIs for drawing, media, offline web, drag and drop, file access, and geolocation. It then summarizes the main Tizen Device APIs, including communication, social, content, input/output, system, application, and user interface APIs. It provides examples for filters, applications, downloading content, filesystems, message ports, calendars, and device orientation.
This document summarizes a presentation about the Geo2tag platform for location-based services and geo-tagging. It introduces the architecture, features, and APIs of the Geo2tag system. Key points include an overview of the REST API and JSON interface, client libraries for Android and Qt, and demonstrations of functionality like user authentication, tag writing and loading, and channel management in the Android and Qt clients.
The document describes a RESTful JSON API for a geo-tagging application called Geo2tag. It outlines the goals of REST, defines JSON and its grammar, provides API usage examples using cURL, and details the API endpoints for user management, channel management, and working with geo tags. The API uses HTTP requests, JSON payloads, and authentication tokens to allow clients to interact with the Geo2tag service in a stateless and scalable way.
Introduction to geo-tagging and geo2tag platformOSLL
This document introduces location based services (LBS) and geo-tagging. It defines key terms like geo-tagging, tags, and channels. It describes the main features of a geo-tagging system for accessing, classifying, filtering, and processing massive amounts of tagged data. It outlines the architecture of the Geo2tag LBS platform, including its client/server design with session caching, query engine, and backend database. It provides development resources and describes the JSON/REST API for user management, channel management, and working with tags through functions like login, writeTag, and loadTags.
2. Структура доклада
● Доклад:
– Что такое Selenium
– Примеры тестов
– Использование Selenium в Continious Integration
проекта Geo2Tag
●
Скачать примеры http://bit.ly/1T36po8
● Примеры подготовлены для
– Ubuntu 14.04
– Python 2.7
– Selenium 2.45
3. Что такое Selenium
● Selenium WebDriver
– инструмент для
автоматизации
тестирования веб-
приложения в
браузере.
● Поставляется в виде
библиотеки.
● Единый подход к
разным браузерам.
5. Возможности Selenium
● протестировать js логику
● протестировать пользовательский веб-
интерфейс (в том числе и css)
● автоматизировать действия на сложных
вебстраницах
6. Пример: Когда нужен Selenium
● Есть социальная сеть, которую активно
разрабатывает большая команда,
● Хочется быть уверенным, что основные юзкейсы
не сломались перед очередным релизом:
– Авторизация
– Просмотр сообщений
– Отправка сообщений
– Выход из системы
● Решение – Selenium скрипт для
воспроизведения каждого юзкейса.
7. Пример: Когда нужен Selenium 2
● Вконтакте есть закладки (<3), но нет поиска
по ним.
● В закладках может накопиться очень много
полезных записей.
● Чтобы найти старые записи, нужно
пролистать страницу очень много раз вниз.
● Решение:
– Selenium приложение, которое скролит закладки
до дна и индексирует содержимое (ссылка на
контент, аннотация, дата)
8. Реализации Selenium
● Поддержка языков
– Официально: Java, C#, Ruby, Python,
NodeJS
– Неофициально: Php, Perl, Objective C,
Haskell ….
● Поддержка браузеров
– Chrome, Opera, Firefox, Safari, Android, Ios,
Windows Phone, BlackBerry
9. Основные интерфейсы
● Поиск элементов: xpath, css, id, tag, name,
link content, class
● Установка задержек: явные и неявные
● Выполнение действий со страницей:
– Произвольный js код
– Пользовательский ввод
– Переходы на другие страницы/назад и вперед по
истории
– Взаимодействие с диалогами
– Drag n Drop
10. Базовая последовательность
работы с Selenium
1.Создаем объект webdriver
2.Открываем веб-страницу
3.Устанавливаем величину задержки
ожидания действий веб-страницы
4.Ищем элементы
5.Выполняем действия над элементами
6.Проверяем результаты действий через
Assert
11. example1.py
● Ищем слово Selenium в Ya.ru
● Последовательность:
– Запускаем браузер
– Ищем поле ввода с атрибутом name='text'
– Вводим 'Selenium'
– Вводим 'n'
12. example1.py - анализ
● driver.implicitly_wait() устанавливает
максимальное время в секундах, которое
Selenium будет ждать, пока не появится
искомый для find_element_by_* элемент.
● driver.close() - закрывает браузер
● Появляющееся окно браузера не находится
в режиме инкогнито
13. example2.py
● Интегрируемся с python unittest – помещаем
логику тестирования в класс-наследник
TestCase
● Добавляем проверки через TestCase.assert*
● Получаем отформатированный вывод
результатов теста в консоль + индикацию о
успешности тестов в кодах возврата скрипта.
14. Js unittests + selenium
● Проблема – есть много js бизнес-логики и ее
хочется автоматизированно юнит-
тестировать
● Решение:
– Создаем веб-страницу /js-tests с js-юниттестами
– Настраиваем все так, чтобы js тесты
выполнялись сами при обновлении страницы
– В selenium тесте открываем /js-tests и проверяем,
что содержимое страницы соответствует
успешному прохождению js тестов
15. QUnit
● Позволяет проводить юнит тестирование
любой сложности для js
● В том числе – для асинхронных методов
● Представляет результаты в удобном для
анализа виде (статистика по каждому тесту
+ время выполнения)
● Запускает тесты сразу после открытия
страницы
16. Example3.html
● Что мы видим на
странице
● Как организованы
тесты
● В каких элементах
разметки можно
узнать:
– Что тесты закончили
выполнение
– Сколько тестов
упало
17. example3.py( QUnit + Selenium)
● Открываем
страницу
example3.html
● Проверяем что
она:
– Все тесты
завершили
работу
– Показывает,
что все тесты
пройдены
18. Автоматизация тестирования
через Selenium - наблюдения
● Отдельный скрипт для запуска тестирования с
указанием имени сайта, который проверяем
● Каждый раз открывать браузер – долго!
● Параметризация тестов – надо заложить сразу
– Помогает не привязатся намертво к
конкретному серверу и делает набор тестов
отличным инструментом проверки
– Правильный базовый класс
19. Очистка кэша браузера при
тестировании
● Проблема: Selenium не имеет стандартного
интерфейса для очистки кэша браузера
● Варианты:
– Очищать вручную
– Каждый раз использовать чистую среду
(изолировать тесты)
– Использовать инвалидацию кэша на стороне
веб-приложения
20. Geo2Tag
● Open Source платформа для сервисов,
использующих данные о местоположении
● Веб-интерфейсы для администрирования
● REST API
21. Как Selenium используется в
Geo2Tag
● Для каждого коммита в репозиторий
запускаются проверки (unittest, integration tests,
Selenium)
● Все проверки проходят последовательно
● Проверка происходит в изолированной
виртуальной машине
● В качестве способа проверки для большой
части Frontend-задач выступает
Selenium/QunitJs тест
23. Как Selenium используется в
Geo2Tag - технологии
● ОC – Ubuntu 14.04 без графической
подсистемы
● Изоляция сборок друг от друга – Docker
● Непрерывная интеграция – Jenkins
● Виртуальный Х-сервер xvfb
24. Ссылки
● Что такое Selenium
– http://docs.seleniumhq.org/projects/webdriver/
– http://habrahabr.ru/post/152653/
● Python Selenium
http://selenium-python.readthedocs.org/
● CSS тестирование
http://habrahabr.ru/post/190358/
● QunitJs https://qunitjs.com/
● Geo2Tag https://github.com/geo2tag/geo2tag
●
Примеры к докладу http://bit.ly/1T36po8