Krzysztof Żuraw blog

Krzysztof Żuraw

Written by Krzysztof Żuraw who lives and works in Wrocław. About page.

TypeScript abstract classes

June 25, 2019

Hello, Today I want to give you a blog post about abstract classes in TypeScript. What are they? Why you may need one? Or why you may not…

My first interviews for software developer

June 03, 2019

Hello 👋🏻In a today blog post, I will write about my first interviews for software developer roles without having a CS degree.BackgroundI…

TypeScript function overloads

May 27, 2019

NOTE: This is cross-post from my newsletter. I publish each email after it’s sent. Subscribe to get more content like this earlier right in…

Side project - CSS on blog

May 20, 2019

NOTE: This is cross-post from my newsletter. I publish each email after it’s sent. Subscribe to get more content like this earlier right in…

Hiding elements with opacity

April 22, 2019

ProblemRecently I had a task that requires me to show an icon when a user hovers over a certain element and hide it after the user leaves…

Multiple stow directories

April 15, 2019

Hi again 👋Today I want to write about the problem that I recently had that I solved after a few hours of searching google. It may help…

Open sourcing tsconfig

April 08, 2019

Hi again 🖖Today I want to write about the thing that we did in my work. I currently work at Ingrid. All of your codebases is written in…

I build a thing - writer mode for VSCode

April 01, 2019

WhySo I build the thing called writer mode - why? I really like using VSCode for both my coding and writing in markdown. There is zen mode…

TypeScript classes, interfaces and all between

March 25, 2019

Hello 👋What is a better way of explaining classes & interfaces than showing them in action? One of the clever use of classes I saw is this…

On React Render props vs HOC

March 18, 2019

Recently one of my colleague at work stumbled upon strange case when using one of the popular react pattern called hoc (high order component…

Setting up simple React & TypeScript project

March 11, 2019

Hello 👋🏻It’s have been a long time since I last wrote my last blog post. But don’t worry I back and in the first blog post I give you a…

How to find blog ideas

June 22, 2018

Recently I was a little bit stuck. I did not have any idea about next blog post. I started researching why it happened and it turned out…

Dependency injection in redux-observable

June 15, 2018

Imagine that you have following situation: your calls to external api are using helper modules where all request logic lies. For instance…

switchMap in redux-observable

June 02, 2018

IntroductionRecently in my new work, I was working more and more with RxJs. Especially in with redux bindings to RxJs called redux…

How to update progress of long request with redux-observable

May 19, 2018

ProblemI want to send a couple of requests an update a progress after each one is successful. In the end, I want to dispatch success action…

How to dispatch multiple actions based on api call in redux-observable

May 11, 2018

ProblemIn my work a have a task - when one of the actions in redux-observable is completed I wanted to dispatch another set of actions. In…

Lessons learned from coding TM Conference website

April 28, 2018

Recently I was less active on my blog mainly because I had a lot of side projects that I was doing. Today I want to share with you lessons…

Lessons learned from writing pet project in React with Redux

April 21, 2018

Today I wanted to write about lessons that I’ve learned during working on my pet project. Let’s get started!When I decided to learn React…

How design of your API can affect others

March 18, 2018

Recently I was working with a library called redux-observable. After using it to write my new epic I opened my devtools to see following…

You don't know promises

March 02, 2018

Recently I receive book recommendation. There was one chapter in this book series about Promises that I cannot handle. Examples written…

Debouncing forms in React with Redux - part three

February 25, 2018

Hi! Welcome to the last part of blog series about debouncing forms in React. Today I want to show you how can you add redux to your…

Debouncing forms in React with Redux - part two

February 17, 2018

Hello! Today I continue with building debounce input in React!. Let’s get started.What is debounceAs you saw in a previous blog post my…

Debouncing forms in React with Redux - part one

February 10, 2018

Hi! Today I want to start a new blog post series. This one will be all about debouncing react forms. Let’s get started!Basic react…

Python Belgrade

January 28, 2018

In this blog post, I want to write about my experience with taking at Python Belgrade.IntroductionYou may ask - why you even write about…

Legacy projects

January 20, 2018

Hi! This blog post is mainly for me to remind myself that I can sometimes work with legacy projects.BeginningRecently in my work, I changed…

Mutations in Relay Modern

January 06, 2018

In this series, I covered various topics starting from setting up Django and ending in Relay queries. There is only one topic to be covered…

Summary of 2017

December 29, 2017

Hello! In this blog post, I will write a little bit more what I was able to do in passing 2017. Let’s get started!What I didIn this year I…

100 days of code

December 23, 2017

Today I want to write to you about some very interesting idea - coding challenge!Recently while browsing a twitter I found a hashtag. Then…

Fragments and queries in Relay Modern

December 09, 2017

Today I want to cover two points: how to use fragments in relay modern and one of the ways of handling routing and relay. Let’s get started…

Setting up Relay Modern on frontend

November 25, 2017

Hello, for such long break I’m back to the Django, React & Relay tutorial! Today I will show you how to setup Relay on the frontend to work…

Javascript Conference Budapest 2017

November 12, 2017

Day 1Until 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

November 04, 2017

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

Debugging python code with wdb

October 01, 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

September 24, 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

September 03, 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

August 20, 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 javascript…

Django, GraphQL & React - part two

July 30, 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

July 23, 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 one…

Lessons learned from being a mentor

July 15, 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

July 02, 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

June 11, 2017

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

June 04, 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

May 28, 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

May 21, 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

May 14, 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

May 07, 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

April 23, 2017

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

April 09, 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

April 02, 2017

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

On building application using Google Maps API

March 26, 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

March 19, 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 to…

Pomodoro timer - how good was your pomodoro?

March 12, 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

March 05, 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

February 26, 2017

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

Pomodoro timer - counting

February 17, 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

February 12, 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

February 05, 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

January 29, 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

January 22, 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

January 15, 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

January 08, 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

December 18, 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

December 11, 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

December 04, 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

November 27, 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

November 20, 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

November 13, 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

November 06, 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

October 30, 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

October 23, 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

October 16, 2016

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

Microservices in Flask

October 09, 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

October 02, 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

September 25, 2016

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

Python & WebDAV- part two

September 18, 2016

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

Python & WebDAV- part one

September 11, 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

September 03, 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

August 26, 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

August 07, 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

July 31, 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

July 23, 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

July 16, 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

July 09, 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

July 03, 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

June 26, 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

June 12, 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

June 05, 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

May 22, 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

May 14, 2016

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

Mocks and monkeypatching in python

April 24, 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

April 17, 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

April 09, 2016

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

Moving blog to pelican

April 03, 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 compassion…

Django + Celery & Rabbit - part four

March 19, 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…

Django + Celery & Rabbit - part three

March 12, 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

March 05, 2016

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

February 26, 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 to…

Django cookiecutter

February 19, 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

February 12, 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

February 06, 2016

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

Python class @decorators

January 29, 2016

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

Python __slots__

January 23, 2016

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

Http and websockets logging handlers

January 16, 2016

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

GeoDjango and Leaflet.js- part two

January 08, 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…

GeoDjango and Leaflet.js- part one

January 01, 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…