Open Source and Linux Lab

Practical PyPI package creation

This is by no means a 100% complete guide for creating PyPI package. This is basically compilation of this article, official docs and useful tips you might need while creating your package.

(далее…)

Quick way to create Vagrant libvirt box from existing one

Introduction

This article is aimed to describe very fast approach of creating Vagrant Libvirt boxes using existing ones as a base. The described solution is applicable for following use-cases:

  • you need box with slightly different software dependencies (different packages/versions);
  • you need different configuration of existing software;
  • you need add some files to box.

Due to described process simplicity it has one big limitation — ssh password of vagrant use is hard-coded. This means that every box user will need to set it explicitly in Vagrantfile. Such solution may be inflexible for a number of use-cases and obviously contain security vulnerability.

Described approach target is only to modify existing box quickly and it does not cover deep libvirt configuration issues. For more complex boxes it is better to use https://www.packer.io/.

Prerequisites

  1. Clone https://github.com/vagrant-libvirt/vagrant-libvirt .
  2. Ensure that you have enough free space on the host machine, you may need atleast three or a four times more space that <needed_box_name> file takes.
  3. Do vagrant box add <needed_box_name>.

Creating box

Write Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  config.vm.box = "<needed_box_name>"
  config.vm.synced_folder "./", "/vagrant", type: "rsync", rsync__auto: true
  config.vm.provider "libvirt" do |libvirt|
     libvirt.driver = "qemu"
  end
 
 config.vm.provision "shell", inline: <<-EOC
    # Important part - hardcoding vagrant password which will allow us to connect to new   box without messing with keys
    echo "vagrant\nvagrant"| passwd vagrant
    # Do needed environment settings
    sudo aptitude install ruby gcc make 
  EOC
end

Start VM

  1. Call vagrant up —provider=libvirt .
  2. Wait for virtual machine to complete provision.
  3. Copy any files to machine or do any other manual actions which should persist in new box.

Package box

Run:

cd <vagrant_libvirt_dir>
sudo tools/create_box.sh /var/lib/libvirt/images/<needed_box_name>.img

(If you have troubles finding .img file, corresponding to running VM use virsh -q vol-list —pool default command to list all libvirt images. )

After successful ending of the last command the box file will appear at ./<needed_box_name>.box. This file can be added localy to vagrant by running:

vagrant box add ./needed_box_name.box --name <name_of_new_box>

or can be uploaded to Atlas( https://atlas.hashicorp.com/).

Links

  1. https://github.com/vagrant-libvirt/vagrant-libvirt#create-box
  2. https://www.vagrantup.com/
  3. https://libvirt.org/
  4. https://atlas.hashicorp.com/
  5. https://www.packer.io/

Семинар «Простые и производительные веб-карты с библиотекой Leaflet»

Друзья!

Приглашаем вас принять участие в семинаре «Простые и производительные веб-карты с библиотекой Leaflet», который состоится 11.02 в 19-00 в БЦ Таймс.

quick-start

Семинар посвящен практическим вопросам использования leaflet.js для построения удобных и высокопроизводительных веб-карт. На примерах будет показано:
— короткое введение в саму библиотеку (возможности/ какие фигуры можно рисовать и как настроить их отображение/ какие есть стандартные элементы управления),
— практические рекомендации/хаки/ для работы с библиотекой, сформулированные на основе опыта разработки в проекте Geo2Tag,
— использование сменных подложек (Google, Yandex, OSM) на одной карте leaflet,
— практические рекомендации по организации интерфейсов повторно используемых виджетов карт,
— снижение объема выводимых объектов и повышение наглядности UI (https://github.com/Leaflet/Leaflet.markercluster),
— редактирование объектов на карте (https://github.com/yohanboniface/Leaflet.Editable).

Выделение_090

В ходе семинара планируется демонстрация интерактивных примеров по каждой теме.

Докладчик: Марк Заславский, асприант НИУ ИТМО, активный участник Open Source and Linux Laboratory, один из авторов и разработчиков проекта Geo2Tag.

Семинар пройдет по адресу Кантемировская ул., 2 (Бизнес-Центр Таймс), 4 этаж.

Телефон для связи 89112770029, email mark.zaslavskiy at gmail dot com.

Семинар “Работа с геоданными в MongoDb”

В 19-00 21.01.16 в БЦ Таймс состоится семинар “Работа с геоданными в MongoDb”.

В докладе будут проиллюстрированы основные интерфейсы NoSQL базы данных MongoDb для обработки данных о местоположении в двумерном пространстве. На практических примерах (почерпнутых из разработки проекта Geo2Tag) будет показано как решать задачи хранения и анализа пространственных данных. В рамках доклада планируется осветить следующие темы:

  1. Очень короткое знакомство с Mongo.
  2. Формат GeoJSON.
  3. Типы пространственных индексов и геометрий, поддерживаемые MongoDb.
  4. Операции фильтрации геоданных в рамках операции find.
  5. Поиск и фильтрация геоданных на стадии аггрегирования данных.
  6. Поиск и фильтрация геоданных с помощью haystack индексов.

Для работы примеров необходима установленная версия MongoDb не ниже 3.0.   

Доклад адресован разработчикам, аналитикам, data scientists, исследователям и всем, кто интересуется вопросами автоматической или автоматизированной обработки данных о местоположении в двумерном пространстве.

Докладчик: Марк Заславский, асприант НИУ ИТМО, активный участник Open Source and Linux Laboratory, один из авторов и разработчиков проекта Geo2Tag.

Семинар пройдет по адресу Кантемировская ул., 2 (Бизнес-Центр Таймс), 4 этаж.

Телефон для связи 89112770029, email mark.zaslavskiy at gmail dot com.

Опубликовано видео доклада “Тестирование веб-приложений в Selenium”

Опубликовано видео, слайды и примеры к докладу “Тестирование веб-приложений в Selenium”, прочитанному Марком Заславским 17 декабря.

Слайды:

Примеры: http://bit.ly/1T36po8

Больше материалов доступно в канале лаборатории на YouTube и аккаунте SlideShare

https://www.youtube.com/channel/UCYW9j9dqDL61aa8NCkzKSRA

http://www.slideshare.net/osll

Доклад “Тестирование веб-приложений в Selenium”

19-00 17.12.15 в БЦ Таймс состоится доклад “Тестирование веб-приложений в Selenium

В докладе будут проиллюстрированы основные возможности фреймворка и их применение для решения реальных задач веб-разработчика. На основании опыта использования Selenium в проекте Geo2Tag будут рассмотрены следующие вопросы:

  • состав API Selenium
  • как автоматизировать действия в браузере
  • как писать UI тесты для веб-интерфейсов
  • как интегрировать Selenium и фремворки для юнит-тестирования
  • как настроить непрерывную интеграцию и полностью автоматизировать тестирование веб-приложений

В процессе доклада будут продемонстрированы практические примеры тестов на языке Python. Для их корректной работы необходим Python 2.7 с установленным пакетом selenium.

Доклад адресован веб-разработчикам, веб-дизайнерам и всем, кто так или иначе столкнулся с задачей автоматизации определенных действий на веб-страницах.

Докладчик: Марк Заславский, асприант НИУ ИТМО, активный участник Open Source and Linux Laboratory, один из авторов и разработчиков проекта Geo2Tag.

Семинар пройдет по адресу Кантемировская ул., 2 (Бизнес-Центр Таймс), 4 этаж.

Телефон для связи 89112770029, email mark.zaslavskiy at gmail dot com.

Семинар о микросервисной архитектуре для веб-приложений

26 ноября в 19-00 часов в БЦ Таймс (Кантемировская ул., 2) состоится семинар Владислава Марина «Микросервисная архитектура и виртуализация средствами Docker, проект виртуализации Geo2Tag».

Доклад посвящен вопросам проектирования и реализации веб-приложений для повышения их масштабируемости и отказоустойчивости. В первой части выступления будут проиллюстрированы основные идеи микросервисной архитектуры, ее положительные и отрицательные стороны. Во второй части доклада будут описаны существующие инструменты виртуализации. Также будет показано, как с помощью Docker можно реализовать разделение приложения на отдельные сервисы, используя механизм Linux-контейнеров. В третьей части выступления будет дан практический пример рефакторинга существующего монолитного веб-приложения Geo2Tag для микросервисной архитектуры.
О докладчике
Владислав Марин, магистрант СПБГЭТУ «ЛЭТИ», активный участник проекта Geo2Tag.

Семинар пройдет по адресу Кантемировская ул., 2 (Бизнес-Центр Таймс), 4 этаж.

Телефон для связи 89112770029, email mark.zaslavskiy at gmail dot com.

Вакансия преподавателя робототехники

Открыта вакансия преподавателя на занятиях по робототехнике на платформе ScratchDuino для учащихся начальной школы.
Занятия проводятся в школе в районе м.Пионерская и м. Удельная.

Требования
  • студент технической специальности, имеющий опыт в программировании и робототехнике.
  • умение объяснять и интересно подать материал
  • желание работать с детьми
  • большим плюсом будет знание платформы ScratchDuino/Arduino

Условия: официальное трудоустройство по срочному трудовому договору

Дополнительные условия оговариваются на собеседовании.

E-mail для связи: mark.zaslavskiy at gmail.com

Basic training for Linux-IO-Scheduler project

Next steps should be done before start the project activity. Expected results [red in brackets]

  • install linux, git, build-essential
  • download kernel sources
  • configure kernel simplest as possible [kernel config file]
  • build and install (if fail, go previous step)
  • read and understand «Block Drivers» chapter from LDD
  • read and understand how does elevator work and make [wiki-page] with description
  • using noop-elevator as a template make new my-elevator io scheduler and build it into kernel, it should be possible change IO-scheduler on the fly from standard to yours and vise-versa. [patch, kernel config]
Useful links

Опубликован список дипломных работ

На странице Архив дипломных работ опубликован список работ выполненных в рамках лаборатории или выполненных при непосредственном содействии ее участников. В дальнейшем мы планируем публиковать не только заголовки, но и сами работы.

Follow me on Twitter