Polski English

Agenda


pobierz

czwartek, 17.10.2013 r.

15:00 Rejestracja uczestników (w opcji od czwartku)
16:15 Powitanie gości
Sala F
17:00 Skalowalna konfiguracja - jak za pomocą Pythona umilić sobie pracę z nieograniczoną liczbą serwerów Python For Penetration Testing
Sala E
Marek Glijer
Sala F
Oltjano Terpollari
Sposób propagacji plików konfiguracyjnych na nieograniczonej liczbie maszyn (stworzenie za pomocą Pythona mechanizmu działającego w architekturze rozproszonej i bez single-point-of-failure). Prezentacja od zamysłu, przez proces tworzenia do przykładów użycia w środowisku produkcyjnym. My talk will show some simple examples of pentesting techniques using python in Penetration Testing field.I will present some tools writen in pure python that are very important for a penetration tester toolbox. I will do a simple password cracking demo, sqlmap demo and metasploit demo.
18:00 3 zagadki Sphinx'a, czyli dwa słowa o dokumentacji Shipping Code
Sala E
Michał Jastrzębski
Sala F
Antek Piéchnik
Dokumentacja techniczna kodu to rzecz niezmiernie ważna, z tym się zgodzi chyba każdy, kto kiedykolwiek przejął cudzy projekt, a zarazem bardzo często pomijana. Wielokrotnie zdarza się tak, iż zapominamy lub nie mamy czasu pisać dokumentacji, przez co się dezaktualizuje, jeśli w ogóle powstaje. Jak można ten stan rzeczy poprawić? It's null till you ship it. This is our motto at Base. In this talk I'll guide you through how we managed to build a world-class startup, implement a full-fledged SOA architecture, how we managed our growth and how we maintain a stable product while deploying to production around 20 times a day, how we ship code, work hard and stay happy.
19:00 Kolacja
20:00 Werkzeug - debugowanie aplikacji internetowych w sytuacjach ekstremalnych I see OpenStack in your future!!
Sala E
Marcin Karkocha
Sala F
Muharem Hrnjadovic
Debugowanie aplikacji internetowych nie należy do najłatwiejszych i najprzyjemniejszych zadań. Pewnie nie raz zdarzyła wam się sytuacja gdzie wszystko pięknie działa wszędzie poza systemem produkcyjnym. To, że aplikacja przechodzi testy, działa na systemach testowych i developerskich nie oznacza w tym wypadku, że jest dobrze. Dodatkowo wszystko komplikuje fakt iż system produkcyjny jest jedynym miejscem gdzie pojawia się nasz problem. W takiej sytuacji z pomocą przychodzi nam werkzeug z jego interaktywną konsolą dostępną na stronie internetowej oraz kilka innych narzędzi które pomogą nam zlokalizować problem oraz zrozumieć sytuacje która ma miejsce. Niniejsza prezentacja poprowadzi nas od narzędzi poprzez przykłady aż do ogólnych zasad którymi należy się kierować w takich sytuacjach. Cloud computing presents a key paradigm shift for how systems are built, deployed and operated. OpenStack: - is leading the way to open cloud computing - is *the* most high-profile Python project today and creating hundreds of IT Jobs for open source developers - has become the operating system for the cloud and won the race to become the standard This talk presents the OpenStack project and explains why you should be paying attention to it.
21:00 NoCaptcha - boty zostają za drzwiami How to test it?
Sala E
Jakub Wasielak
Sala F
Szymon Pyżalski
Nikt nie lubi captchy, lecz wciąż jest ona przerażająco popularna. Wielu programistom wydaje się, że jest to jedyny sposób, aby przez ich formularz nie przechodziły tysiące botów, a użytkownicy są zmuszani do wielokrotnego odczytywania kosmicznych znaczków. NoCaptcha to nowe podejście do zabezpieczeń formularza oraz gotowa do użycia paczka w Django. We all know it is good to write unit tests. But sometimes trivial code seems not so trivial to test it. Let's go through some of these situations and find suitable ways of creating tests that will give reproducible results while still emulating realistic situations our code can cope with.

piątek, 18.10.2013 r.

09:00 Śniadanie
10:00 Google Translate tu nie pomoże! Vaurien
Sala E
Łukasz Taczuk
Sala F
Tarek Ziadé
Załóżmy, że mamy przed sobą skompilowany program w postaci pliku exe. Po grecku. Albo po chińsku. Teoretycznie, jesteśmy skazani na uczenie się szlaczków na pamięć albo (jak to często ludzie robią) na nieporęczne zerkanie na zrzuty ekranu z dodanymi napisami, które wyjaśniają co dany guzik robi. A nieprawda! Nie dość, że jesteśmy w stanie przetłumaczyć wstawione na sztywno ciągi znaków, to proces ten możemy całkowicie zautomatyzować na wypadek wydania nowszej wersji programu. Wystarczy odrobina wiedzy na temat plików wykonywalnych i szczypta niekonwencjonalnego myślenia. Vaurien is basically a Chaos Monkey for your TCP connections. Vaurien acts as a proxy between your web application and any backend. You can use it in your functional tests or even on a real deployment, to slow down/break/error out the requests and responses between your web application and a back end like LDAP, MySQL, Memcache, Redis and so on. This is very useful to check how your application behaves when something is wrong with your backend. So instead of having to deal with it live in production - just have a test continuously testing various scenarii. Vaurien is built in Python and you can write your own
11:00 Magiczne atrybuty Advanced Python through Django: Metaclasses
Sala E
Radomir Dopieralski
Sala F
Peter Inglesby
Chcesz się dowiedzieć dokładnie co się dzieje, gdy tworzysz nowy obiekt? Albo gdy definiujesz klasę? W jaki sposób są wyszukiwane atrybuty i wywoływane metody? A jaki wpływ na te mechanizmy może mieć twój własny kod? Wystąpienie to prezentowałem już dwukrotnie: na konferencji 4Developers oraz na Europythonie. Nagranie https://www.youtube.com/watch?v=rj4mf5aNhh0 Ze względu na dłuższy czas, na PyCon.pl planuję zrobić wersję rozszerzoną. "The Django source code contains many advanced features of the Python language that are rarely encountered in day-to-day development work. This can make the Django source seem daunting to the uninitiated. In this talk I will take one particular advanced feature -- metaclasses -- and explain what they are and how they work, taking my examples from the Django codebase. We'll also cover, in passing, some techniques I've found useful for understanding a complex codebase. The talk will be suitable for anybody who has both a good grounding in the Python language, and a sense of curiosity."
12:00 Zaawansowane testowanie jednostkowe aplikacji Django Developing Android application with Python & Qt
Sala E
Wojtek Erbetowski
Sala F
Martin Kolman
Z tak piękną dokumentacją, jaką ma Django wydaje się być niemożliwym aby nie zrozumieć jakim prostym zadaniem jest pisanie testów. Niestety od zrozumienia jak one działają do umiejętności testowania złożonej aplikacji droga jeszcze bardzo długa, a tym gorzej dla nas, że także kręta, z urwiskami po obu stronach.
Na prezentacji dowiesz się rzeczy, których nie znajdziesz na StackOverflow, ani w tutorialach, doświadczeń zbieranych latami na różnych platformach i w różnych językach, wiedzy, którą zbiera się na dnie urwiska po solidnym upadku.
Android applications have been traditionally made using a custom Java flavor with the option for C++ extensions. During the talk I'll describe and demonstrate how it is possible to create applications for Android in Python & Qt for the GUI, without the need for touching Java or C++. Such Python GUI applications can also be packaged as a standalone Android AP package, that can be even distributed through the the official Google Play store.
13:00 Krótkie wprowadzenie do metaprogramowania w Pythonie - czyli o tym jak ułatwić (utrudnić) programowanie sobie i innym. Python i Microsoft – razem czy osobno?
Sala E
Piotr Przymus
Sala F
Michał Żyliński
Metaprogramowanie - to dynamiczne tworzenie kodu lub modyfikowanie działania uruchomionego programu. Python daje nam w tym temacie szerokie możliwości. Krótki tutorial dla tych którzy chcą lepiej poznać takie techniki metaprogramowania jak dekoratory, metaklasy, syntetycznie generowany kod czy 'monkey patching'. Wspólna historia Pythona i Microsoft przypomina górski maraton – jest długa i kręta. Na przestrzeni ostatnich lat nasz dialog ze środowiskami open-source ewoluował z pozycji zamkniętej twierdzy do coraz bardziej aktywnego angażowania się i wspierania rozwijanych społecznościowo projektów i technologii. Podczas tej sesji postaram się podsumować aktualny stan oferty Microsoft dla wszystkich entuzjastów języka Python, omawiając zarówno rzeczy typowe (np. ofertę narzędziową), jak i bardziej egzotyczne i znane zapewne tylko nielicznym.
14:00 Obiad
15:00 Rejestracja uczestników (w opcji od piątku)
15:30 Powitanie gości
16:00 import import Packaging Python applications Developing Android application with Python & Qt (workshop)
Sala E
Konrad Hałas
Sala F
Piotr Banaszkiewicz
Sala warsztatowa
Martin Kolman
Instrukcja import jest jednym z częściej używanych przez programistów pracujących w języku Python wyrażeń. Od litanii importów rozpoczynamy prawie każdy plik z rozszerzeniem *.py. Jednak czy wiemy, co dzieje się w trzewiach naszego ulubionego języka, gdy napotka on słowo kluczowe import? Czy są możliwości ingerencji w jego zachowanie? W prezentacji opowiem o wszystkim co związane z systemem importów w języku Python - historii, dobrych i złych praktykach, problemach oraz możliwościach rozbudowy. Zarówno początkujący jak i zaawansowany pythonista znajdzie w tej prezentacji coś dla siebie. In this talk I'll go through history and future of Python packaging. I will also introduce the audience to the ways of dealing with system-wide installed applications (ie. Debian and RPM packages). While all components needed to make this possible were already available for the Android platform for some time, only recently were they finally combined in a way, that makes it possible to create standalone Android applications written entirely in Python (with the option to use QML for the GUI). The aim of this workshop is to demonstrate how a fully working Android GUI application can be created with Python & QML, from zero to standalone user-installable Android APK package. Various application deployment and debugging options, made possible by the powerful pydroid framework by Aaron Richiger will be demonstrated. If you want to actively participate in the workshop, bring a Linux machine with Nacessitas SDK installed and if possible also some Android device (+ and corresponding USB cable!) for running your applications.
17:00 Dystrybucja kodu w Pythonie Coding Dojo Introduction
Sala E
Radosław Jankiewicz
Sala F
Nicholas H.Tollervey
  • Podstawowe informacje o tworzeniu paczek i dystrybucji kodu
  • Krótkie omówienie narzędzi (distutils/setuptools/distribute/distutils2)
  • PyPi - korzystanie i dystrybucja własnych paczek
  • Bezpieczeństwo
This short introductory talk will give a brief description of the story behind the London Python Code Dojo - a monthly meeting of practical Pythonic playfulness and learning. I will explain what it is and how it works in the hope that Polish Pythonistas will take up the format and make it their own. The talk will be followed by a "London" rules code dojo
18:00 Lightning talks
Sala F
19:00 Kolacja
20:00 Coding Dojo (workshop)
Sala F
Nicholas H.Tollervey
A Coding Dojo is a meeting where a bunch of coders get together to work on a programming challenge. They are there have fun and to engage in deliberate practice in order to improve their skills.

sobota, 19.10.2013 r.

09:00 Śniadanie
10:00 Projektowanie leków z Pythonem Prehistoric Python Patterns Tresowanie obiektu (workshop)
Sala E
Adrian Jasiński
Sala F
Lennart Regebro
Sala warsztatowa
Szymon Pyżalski
Podczas prezentacji zostanie przedstawiona baza danych zorientowana na cząsteczki chemiczne i biologiczne zbudowana w oparciu o framework TurboGears. Przechowywane w niej dane wykorzystywane są w procesach projektowania nowych leków.
W dalszej części przybliżone zostaną Pythonowe biblioteki użyte w projekcie: RDKit, Biopython, Scipy i Matplotlib. Prezentacja jest adresowana do osób zainteresowanych tworzeniem aplikacji naukowych a także analizą i prezentacją danych.
There are many idioms and patterns that used to be a best practice but isn't anymore, thanks to changes in Python. Despite that they often show up even in new code, and some of these patterns are even explained to be Good Ideas at stackoverflow and similar. This talk will bring out the most common of these patterns so you know what they are, and why you should avoid them. W czasie warsztatu zapoznamy się z tajnikami modelu obiektowego pythona od strony praktycznej. Programując od podstaw bibliotekę XML zobaczymy, jak możemy dodać własną logikę do właściwie każdej operacji, jaka wykonywana jest na obiekcie pythonowym. Poznamy ciekawe aspekty języka python, z których korzystamy nieświadomie codziennie, a których znajomość może nam się przydać całkiem nieoczekiwanie. Wymagania: Na warsztat proszę przygotować wirtualne środowisko w pythonie3 z zainstalowanym pyramidem i psycopg2.
11:00 Następny proszę: iteratory i generatory pod lupą Payments processing in django
Sala E
Jan Kaliszewski
Sala F
Krzysztof Dorosz
Wystąpienie obejmie:
  • przypomnienie podstaw (m.in.: obiekt iterowalny, iterator, funkcja generatorowa, generator -- przybliżenie pojęć i praktyczne przykłady);
  • omówienie narzędzi z biblioteki standardowej Pythona i przykłady ich użycia
  • analizę przypadku: działanie generatora prześledzone krok po kroku;
  • zagadnienia zaawansowane i mniej znane fakty (np. stosowanie generatorów do implementowania pseudo-wątków; niesfinalizowane generatory a cykle referencji);
  • omówienie nowych możliwości w Pythonie 3.3 (yield from).
Talk will cover many advanced aspects of processing payments in django and will be mainly focused on integration with django-getpaid application. Django-getpaid is carefully designed multi-broker payment processor for Django framework. It was designed to provide following features: * multiple payment brokers support - allows using simultaneously many payments methods at the same time, * multiple payments currency support (getpaid will automatically filter available backends list accordingly to the payment currency), * integration flexibility - makes minimal assumption on 3rd party code - requires only an existence of any single django model representing an order, * proper architecture design - all backends which requires fetching payment confirmation are enforced to use asynchronous celery tasks. Django-getpaid is a production ready solution with support for all main payment processing services in Poland. It is also easily extendable via pluggable backend system to support any other services. Project site: https://github.com/cypreess/django-getpaid This talk will be an extended version of my 2013 DjangoCon talk: "Apps for advanced plans, pricings, billings and payments" concerning only payments topic.
12:00 Python w służbie jej królewskiej mości - czyli o parsowaniu stron i szpiegowaniu użytkowników słów kilka Debugging with Uncle Pólya
Sala E
Marcin Karkocha
Sala F
Peter Inglesby
W jaki sposób śledzi się użytkowników w internecie? Co tak naprawdę wiedzą dostawcy internetu o naszych działaniach w sieci? Czy nasze dane są bezpieczne? A może właśnie takie praktyki pozwolą nam być bezpieczniejszymi, czyli o tym dlaczego niektóre firmy szpiegują nas w imię bezpieczeństwa. Chciałbym przedstawić wam historię z iście szpiegowskim klimatem a przy tej okazji zapoznać was z możliwościami bibliotek oraz podejściami do analizy treści stron internetowych. Przejrzeć narzędzia przez LXMLa, BeautifulSoupa, xPatha i inne aż po pyQuery, oraz pokazać dodatkowe rozwiązania dzięki którym będzie to szybkie, skuteczne i co najważniejsze pewne co w tej sytuacji jest bardzo ważne. As developers, we spend too much of our time trying to understand how code works, and in particular, why it doesn’t work as we expect. Debugging is the art of understanding buggy code, and it is a special case of what is known as “problem solving”. In 1945, George Pólya wrote "How To Solve It", a guide to thinking about solving problems, and in this talk I want to share Pólya’s approach. In particular, I want to show how his ideas can be applied to debugging Python programs. Along the way, we’ll look at various tools and techniques that I have found useful when trying to understand the behaviour of Python code (whether buggy or not). I’ll also discuss how, if we write software with the goal of making debugging easy, we end up with more maintainable code that contains fewer bugs.
13:00 The game of programming Jak zbudować własną chmurę w ciągu 1h przy użyciu Pythona i Puppeta, czyli Fuel w akcji.
Sala E
Adam Kaliński
Sala F
Łukasz Oleś
Most of us probably started their programming career by just having fun out of writing some code and solving the puzzles. But so often our jobs are filled with dull and repetitive tasks that kill all the fun. I will try to convince you that with a little help of games we can change that. OpenStack jest aktualnie jednym z największych projektów opensource. Instalacja różnych elementów, a później konfiguracja na wielu serwerach może sprawiać trudności nawet doświadczonym administratorom. Podczas prezentacji pokażę od podszewki jak rozwiązaliśmy ten problem.
14:00 Obiad
15:00 PyRiddle (workshop) Explore your data Automatyzacja z Ansiblem -- jak robić żeby zrobić i się nie narobić (workshop)
Sala E
Tomasz Maćkowiak
Sala F
Honza Král
Sala warsztatowa
Grzegorz Nosek, Wiktor Kołodziej
By combining the best of puzzles, programming, cleverness, speed and prizes we bring you PyRiddle - the Python riddle challenge. Participants will have to raise to the challenge of solving a number of tricky puzzles and compete with each other to win a new Kindle Paperwhite. A series of tasks is waiting for any challenger with his own laptop and a working Internet connection. Be prepared, be focused, as only the first person to solve all the riddles will win the main prize. We will walk through Elasticsearch features targeted towards data exploration and analysis and show how you can use them to gain insight into your data and your users' behavior and how Elasticsearch allows you to build powerful real-time dashboards for your users. We will use real-life, publicly available data sets and open source tools. Every attendee should walk away with a clear understanding on what Elasticsearch can do with their data, what tools are available out of the box and how to extend them or creating custom ones. Warsztaty możliwie łagodnie wprowadzające w zarządzanie infrastrukturą i automatyzację wdrożeń, skierowane do programistów Pythona. Efektem końcowym jest wdrożenie aplikacji na kilku serwerach, z automatycznie konfigurowanym load balancerem -- wynikowe środowisko jest uproszczone ale realistyczne.
16:00 The Anaconda Fedora and RHEL installer
Sala F
Martin Kolman
Anaconda is the default installer in the Fedora and Red Hat Enterprise Linux distributions and their derivatives, being the first point of contact for many of their (future) users. Anaconda is written in Python with some minor C extensions and uses the GTK graphics library for its graphical interface. Anacondas history goes back to the first commit on April 24. 1999, back in the times of Python 1.x and it has been in continuously developed and used ever since. Anaconda evolved from those humble beginnings, through the ever changing Linux landscape, varying requirements, the inevitable rewrites and other challenges faced by such a long running a and critical project. This is how anaconda evolved into what it is now - a flexible full featured Linux distribution installer, supporting a wide range of installation methods and environments, ranging from small ARM boards, through PCs and up to the S390 mainframes and massive server farms.
17:00 Circus
Sala F
Tarek Ziadé
Built with zmq, Circus (http://circus.readthedocs.org) is a process and socket manager we’re writing at Mozilla Services. It has many features like a web interface with a live stream of process/socket stats, a command line tool to drive the system. etc. This talk will present the architecture of the tool, its uses cases at Mozilla, and what we’re planning next.
18:00 Lightning talks
Sala F
19:00 Grill

niedziela, 20.10.2013 r.

09:00 Śniadanie
10:00 PyRiddle - Wyniki Cyrkowe kulisy DjangoCon Europe 2013 Przetwarzanie języka naturalnego w praktyce (workshop)
Sala E
Tomasz Maćkowiak
Sala F
Ola Sitarska
Sala warsztatowa
Krzysztof Dorosz
In the second part of the PyRiddle we will go over the solutions to all the riddles, unveil the winners and present them prizes. W maju 2013 roku, Warszawa stała się centrum europejskiego Pythona, sprowadzając do stolicy Polski blisko 500 Djangowców z całej Europy. DjangoCon Europe 2013 już dawno się skończył, więc czas na małe podsumowanie. Chciałabym pokazać wszystkim jak to wyglądało zza kulis, opowiedzieć kilka ciekawych (może śmiesznych?;) historii, przybliżyć wszystko, czego nauczyliśmy się po drodze i zainspirować do działania na rzecz rozwoju społeczności. W ramach warsztatów uczestnicy zapoznają się z praktycznymi aspektami przetwarzania języka naturalnego (j. polskiego). Podczas zajęć do wykonania będzie zadanie związane algorytmami podobieństwa tekstu, które zastosujemy do klastrowania tytułów aukcji internetowych w celu znalezienia przedmiotów podobnych. Poruszymy takie tematy jak: 1) niunse kodowania tekstu (utf8 vs unicode w py 2.x), 2) użycia słownika fleksyjnego dla języka polskiego (pokaże jak użyć otwarty słownik SJP), 3) poznanie prawa Zipfa dla tekstów, 4) zapoznanie się z pojęciem stop listy, 5) poznanie prostych metryk LCS (Longest Common Substring), DICE i cosinusowej, 6) praca z korpusem tekstu (w CSV). Warsztaty prowadzone będą przez adiunkta Katedry Informatyki AGH prowadzącego laboratoria z przetwarzania języków naturalnych na kierunku Informatyka IET.
10:45 Automatyzacja testów
Sala F
Łukasz Balcerzak
Podczas pierwszej części prezentacji przedstawię najlepsze praktyki testowania, włącznie z krótkim przeglądem popularnych narzędzi oraz co robić a czego unikać by testowanie własnych projektów było stosunkowo łatwe, również dla innych. Druga część prezentacji będzie o Continuous Integration - kiedy warto zainwestować czas w konfigurowanie zautomatyzowanego testowania po każdej zmianie kodu. Jakie rozwiązania istnieją i jakie problemy rozwiązują. W prezentacji będą wymieniane/omawiane m.in. unittest, pytest, nose, tox, travis-ci, Jenkins.
11:45 Droga wyjścia z chaosu
Sala F
Przemek Lewandowski
Programowanie sensu stricto to nie wszystko - istotną rolę odgrywa również sposób, w jaki zarządzamy projektem. Chcąc osiągnąć większą efektywność lub rozwiązać wciąż pojawiające się problemy wielu rzuca hasło "Agile", które ma stanowić antidotum na wszystkie nasze kłopoty. Czy rzeczywiście tak jest? Co to znaczy być Agile? Celem mojej prezentacji jest wyjaśnienie dlaczego ważne jest eksperymentowanie w zarządzaniu projektami, dzięki któremu możemy osiągnąć zen. W prezentacji przedstawione będą nie tylko podstawy Agile, ale także wiele istotnych elementów metodologii Scrum oraz Kanban. Na przykładzie omówione zostaną główne problemy w implementacji zwinnych metod zarządzania projektami oraz sposoby ich rozwiązywania.
12:30 Continous Integration - Jenkins kontratakuje
Sala F
Przemysław Kukulski
Ile razy zdarzyło Wam się zapomnieć wykonać testy (zwłaszcza regresyjne)? Ile razy przez to wydłużył się proces wydawania nowej wersji? A ile razy nie chciało Wam się pisać testów bo były zbyt nudne? Jenkins jest serwerem służącym do automatyzacji procesu testowania oprogramowania. Dzięki odpowiedniej konfiguracji możemy (częściowo) zapomnieć o testach regresyjnych - wykonają się same, i gdy wystąpi błąd Jenkins upewni się że się o tym dowiemy ;) Dodatki takie jak violations, open tasks, pozwolą nam na lepszą organizację kodu, cobertura powie nam które partie kodu nie są przetestowane... a CI Game pozwoli na zastosowanie grywalizacji co może 'zwiększyć' chęci by kod był przetestowany i poprawny (PEP-8/pylint) Celem prelekcji będzie pokazanie praktycznych zastosowań dla serwera Jenkins (z w/w pluginami i nie tylko). Jako aplikacja 'testowa' zostanie użyta aplikacja napisana w Django.
13:45 Pożegnanie
14:00 Obiad

prelegenci


Aditya Atluri

Łukasz Balcerzak

Piotr Banaszkiewicz

Radomir Dopieralski

Krzysztof Dorosz

Wojtek Erbetowski

Marek Glijer

Konrad Hałas

Muharem Hrnjadovic

Nicholas H.Tollervey

Peter Inglesby

Radosław Jankiewicz

Adrian Jasiński

Michał Jastrzębski

Adam Kaliński

Jan Kaliszewski

Marcin Karkocha

Marcin Karkocha

Martin Kolman

Wiktor Kołodziej

Honza Král

Przemysław Kukulski

Przemek Lewandowski

Tomasz Maćkowiak

Grzegorz Nosek

Łukasz Oleś

Antek Piéchnik

Piotr Przymus

Szymon Pyżalski

Lennart Regebro

Ola Sitarska

Łukasz Taczuk

Oltjano Terpollari

Jakub Wasielak

Tarek Ziadé

Michał Żyliński

Główni sponsorzy


mirantis.com
Zostań sponsorem!

Patroni medialni


osworld.pl Polish Python Coders Group PyCircle Poznań


zalogowanych użytkowników: 0
odwiedzających gości: 3

wyk. F. Kłębczyk, motyw graf. Kajetan Dobczyk, system rejestracyjny D. Grzesista, dgnet.pl; wersja z 2014.05.20