Krzysztof Żuraw Blog

Krzysztof ŻurawDelivered by Krzysztof Żuraw. Opinions are my own. You can follow updates via RSS feed.

Javascript Conference Budapest 2017

12 November, 2017

Day 1 Until the break, there were four speeches. First about community, open source and licenses. What I got from it is that: use Apache…

On moving blog to Gatsby.js

04 November, 2017

Sometimes it is time to change and I decided to move from Pelican to Gatsby.js . Why I got a problem with Pelican. If I wanted to add…

Debugging python code with wdb

01 October, 2017

While I was on PyConPL conference last year I heard about interesting debugger called wdb. Since then I don’t have much chance to find out…

Python imports validation

24 September, 2017

Recently a colleague from work presented to me a nice pattern. I immediately decided to write about it. This blog post is all about this…

Moving to Relay in Django backend

03 September, 2017

Today I want to talk a little bit more about my next step in developing a GraphQL application. This step is connected with moving backend so…

Monorepo structure for Django & React Applications

20 August, 2017

Hello! Today I will guide you through setting up React application with Django! Let’s get started! First thing is where I place my…

Django, GraphQL & React - part two

30 July, 2017

In this post, I will guide you through setting up GraphQL with Django. Let’s get started! I will use a library called graphene-django . It…

Solutions reviews

23 July, 2017

What are solutions reviews? Why may you need one? Read this blog post to find out! Recently I was listening to the podcast - DevTalk . In…

Lessons learned from being a mentor

15 July, 2017

Last week I was a mentor in two day Python workshop. The main goal of this event was to show people who didn’t have any prior experience…

Django, GraphQL & React - part one

02 July, 2017

Hello! Welcome back after a little break - I recently started working on a project that uses GraphQL. Thant’s why I thought that it will be…

Testing React form components

Invalid date

In this blog post, I will present quick code snippets on how to test your React component. Especially the one that renders the form. My…

Building python packages for debian

04 June, 2017

There are many ways how to build & distribute python packages: pypi, devpi. But if you happen to use debian based OSes you can build python…

Chaining promises in JavaScript

28 May, 2017

In this blog post, I will present to you how you can chain promises JavaScript. Let’s go! Recently I ended my small side project . I used…

Django and nginx file proxy - part two

21 May, 2017

You have our application up and running but there is a problem. You don’t want the user to see that your media files are served from media…

Django and nginx file proxy - part one

14 May, 2017

In this blog post series, I will show you how to use Nginx for hiding download urls. Django will serve us as a backend. Let’s go! In this…

Don't use defaults

07 May, 2017

Recently I bought simple LTE router. While reading through manual I noticed something interesting. Why leaving insecure defaults can be a…

Testing django template tags

Invalid date

In this blog post I will give you simple example how to test your template tags in django using django testing tools. Let’s get started! How…

Testing django mixins

09 April, 2017

You may read all these books and tutorials that tell you - test your code! This blog post is to help you test your django mixins. Why is it…

Callbacks & promises in JS for newbies

02 April, 2017

You are a newbie in JavaScript? You want to know a little bit more about asynchronous nature of this language? Join me! Problem I was…

On building application using Google Maps API

26 March, 2017

This blog post will be about my failure. Failure to understand how javascript works but also what I learned along the way. What I wanted to…

New blog series - all roads lead to

19 March, 2017

All of us know this saying - all roads lead to Rome. After taking with one of my coworkers about that all roads lead somewhere I decided…

Pomodoro timer - how good was your pomodoro?

12 March, 2017

Hello! This week I made the main feature of my pomodoro timer - checking if pomodoro was good or bad. I believe that is one of the ways to…

Pomodoro timer - breaks & localStorage

05 March, 2017

Hello! In today blog post I will write what I learn during this week of pomodoro timer development - breaks and localStorage. Breaks for…

Pomodoro timer - notifications

26 February, 2017

Welcome! Today I will focus on notifications in JavaScript. Let’s go! Notifications in JavaScript I want my pomodoro timer to run in the…

Pomodoro timer - counting

17 February, 2017

Welcome to today’s blog post! This blog post will be about implementing countdown in JavaScript and also about some CSS work I have to do so…

Pomodoro timer - beginning

12 February, 2017

From this post I will try to make new a blog post series - documenting my projects. In previous projects like this, I had every time a fixed…

Gunicorn & LRU cache pitfall

05 February, 2017

Today I want to write about some interesting situation connected with using python LRU cache in an application that uses gunicorn. What is…

Provisioning django application using ansible

29 January, 2017

As I recently have opportunity of having a workshop about ansible in my work and I decided to write a blog post on how to provision django…

Transcoding with AWS- part five

22 January, 2017

This is the last blog post in this series - the only thing that has to be done is telling the user that file he or she uploads is processed…

Transcoding with AWS- part four

15 January, 2017

As I have my transcoder up and running now it’s time to let user know that their uploaded files were transcoded. To this occasion I will use…

Review of 2016

08 January, 2017

Hello in the new year - 2017! I wish you all good things! Today’s post will be about one year of this very blog and other things that I was…

Transcoding with AWS- part three

18 December, 2016

I’ve ran transcoder from django application using AWS python API. But there is also one more way to do the same - use AWS Lambda. Today I…

Transcoding with AWS- part two

11 December, 2016

As I have static and media files integrated with AWS now it’s time to transcode them. In this post, I will write a short example of how to…

Transcoding with AWS- part one

04 December, 2016

Nowadays moving everything to the cloud becomes more and more popular. A lot of software companies move their technology stack to such…

Docker.py- python API for Docker'

27 November, 2016

Once upon a time I and my friend decided to write an application that helps us doing code kata. The first problem that we faced was how to…

Django Girls- Kraków

20 November, 2016

As I said many times on this blog I really like teaching others so I can improve myself. That’s why when I heard about Django Girls Kraków I…

JSON Web Tokens in django application- part four

13 November, 2016

When I started this series I have got one comment from my co-worker that instead of authentication JWT can be used to sign one time links…

Django Under The Hood 2016 recap

06 November, 2016

From the beginning I really wanted to contribute to Django. I asked a friend of mine- “Do you know where I can start contributing?” She…

JSON Web Tokens in django application- part three

30 October, 2016

As we have working application now it’s high time to make it more secure by authenticating users. To do this I will use JSON Web Tokens. JWT…

JSON Web Tokens in django application- part two

23 October, 2016

In this blog post, I will deal with creating simple Django application for creating tasks using django rest framework. From this blog post…

PyConPL 2016

16 October, 2016

This weekend I was on PyConPL conference. This is a short relation from this event. Day 1 I was on a presentation by Marcin Bardź…

Microservices in Flask

09 October, 2016

I recently gave a talk about microservices in Flask on Wrocpy . This blog post is a translation of that talk into English. Monolithic…

JSON Web Tokens in django application- part one

02 October, 2016

Recently I attended a workshop about web security. During these hours I learnt quite a lot but one thing got my attention- JWT. Based on…

Archives from memory- libarchive

25 September, 2016

This blog post is about python wrapper around libarchive and how to use it to generate archive from memory. Libarchive & python-libarchive-c…

Python & WebDAV- part two

18 September, 2016

In the last post, I set up owncloud with WebDAV server. Now it’s time to use it. Python WebDAV client - easywebdav I was searching for good…

Python & WebDAV- part one

11 September, 2016

I must confess I was ignorant. Recently I saw an application done by my colleague at work and it was using python WebDAV client. I was…

Makefiles in python projects

03 September, 2016

When I join my current company I saw in their git repos strange file. It wasn’t used by any python code. It just sits in the main directory…

My thoughts on blogging

26 August, 2016

This week I decided to write something more about what are reasons I wrote this blog, what I am taking from it so if you want some more…

Factory pattern in python

07 August, 2016

What is factory pattern all about? It introduces abstraction. In other words: helps software developers with the problem of creating objects…

Design by contract in python- part three

31 July, 2016

I covered py.contracts and zope.interface, now it’s time to write about abc module from python standard library. I wanted to write about…

Design by contract in python- part two

23 July, 2016

Last time I wrote about py.contracts- today is the time for another python library that helps to design by contracts. This library is called…

Design by contract in python- part one

16 July, 2016

What exactly is design by contract? What is good and what is bad in this approach? What are python libraries that provide support for such…

Django application with puppet- part two

09 July, 2016

I end first post at the moment of pulling code from git. This text is how to setup additional stuff for geodjango application. It’s a good…

Django application with puppet- part one

03 July, 2016

This post is a quick tutorial how to provision geodjango application using puppet. While writing this tutorial I have taken the approach…

Two forms one view in django

26 June, 2016

This post is a reference for myself how to do a simple thing like rendering two forms in one view using django framework. How will it be…

Ports and Adapters in python - part three

12 June, 2016

Next part of my application will be module for saving links to read them later. In the last post, I made a reddit search view for the…

Ports and Adapters in python - part two

05 June, 2016

Last time I wrote about how to do simple port & adapter in python. In this post, I will show to actually use them. I briefly remind you what…

Ports and Adapters in python - part one

22 May, 2016

Welcome! Today I’m going to start series about how to use port and adapter design pattern in simple django application. Let me explain a…

My first personal project

14 May, 2016

Hi, today I wanted to share my thoughts about project that I made called histmag to kindle . Why? I really enjoy reading historical…

Mocks and monkeypatching in python

24 April, 2016

Hello, in today’s post I will look onto essential part of testing- mocks. First of all, what I want to accomplish here is to give you basic…

My first workshop experience

17 April, 2016

Hello ! In today’s blog post I present my experiences about some workshop that I have the pleasure to conduct. Later as I promised I will…

Automatic blog deployment with TravisCI

09 April, 2016

Hello! Today I will write about how to automate blog deployment using TravisCI with bash scripts . When I first started writing blog…

Moving blog to pelican

03 April, 2016

Hello! Spring has come so I decided that I need to changes- so I change my blog engine to pelican . This blog will be about small…

Django + Celery & Rabbit - part four

19 March, 2016

This is the fourth part of Celery and RabbitMQ in Django series. Today I will fix minor bugs and sum up this series. Audio File detail view…

Django + Celery & Rabbit - part three

12 March, 2016

This is a third part of Celery and RabbitMQ in Django series. Today I will be building the Celery and RabbitMQ stack. First: why we need…

Django + Celery & Rabbit - part two

Invalid date

Hello, today post is the second one in series about Celery in Django. Today I write about ffmpeg . In my application transcoding will be…

Django + Celery & Rabbit - part one

26 February, 2016

Hello, today post is first one in series about Celery in Django application and how to use it. What you gain after reading such series? How…

Django cookiecutter

19 February, 2016

Have you ever wanted to automate all these boring things that you have to do while setting up new django project? Like writing proper…

Django Haystack and Elasticsearch- part two

12 February, 2016

Hello! This is the second part of Django Haystack and Elasticsearch series. Now it’s time to install and elasticsearch. On ubuntu you can do…

Django Haystack and Elasticsearch- part one

06 February, 2016

Hello! Today blog post is about Django Haystack and how to integrate it quickly with Elasticsearch . First after creating django…

Python class @decorators

29 January, 2016

Today post will be about syntactic sugar of python language-decorators.I will concentrate on class decorators. Let’s start with basic…

Python __slots__

23 January, 2016

Hello everyone in new layout of blog. Today I will write more about python __slots__ . What exactly __slots__ do? Imagine that you have a…

Http and websockets logging handlers

16 January, 2016

Hello, this posts will be about 3 specific logging handlers: HTTPHandler, SocketHandler and DatagramHandler. HTTPHandler Let’s start with…

GeoDjango and Leaflet.js- part two

08 January, 2016

This is the second post from GeoDjango i Leaflet.js series. You can find the previous post under this link . After loading data to…

GeoDjango and Leaflet.js- part one

01 January, 2016

Today is the day, when I will start my blog. I would like to publish new posts once a week. The comments and feedback will be pretty much…