Skip to main content

Posts

Programmer's Bookshelf - "The Pragmatic Programmer"

“People should see your name on a piece of code and expect it to be solid, well written, tested, and documented.” ~ David Thomas, Andrew Hunt Today I proudly finished “The Pragmatic Programmer” by David Thomas and Andrew Hunt 😊  I recommend it to anyone looking for solid tips for every aspect of developer’s work: from technical to project management. Also, it may just ensure you in the correctness of your workflow 😊 What I have learned from the book:   - „Provide Options, Don’t Make Excuses” – take responsibility for your errors and provide solutions. - “Don’t Live with Broken Windows” – prevent damage to your projects by not ignoring anything potentially harmful and fixing it. - “Invest Regularly in Your Knowledge Portfolio” – embrace any opportunity to learn! - “Involve your users in the trade-off” – remember that you’re writing software for other people. - Users not only decide what they want but also when they want it and how good it should be...
Recent posts

Learning Session #11

1. RxJS >> “The (Finite) State of Reactive Animations” by David Khourshid Interesting talk displaying one of maybe the most underappreciated use cases of RxJS and reactive programming altogether – creating animations. This presentation from the RxJS Live conference is filled with fascinating examples (to which you have access to via CodePen). David explained how basic animations can be created with RxJS and how to use some math concepts to improve. What was also important was David’s take on the concept of Finite State Machines and how they fit into the world of reactive programming and animations. >> “An Animated Intro to RxJS” by David Khourshid An article which I got to know from David’s talk I introduced earlier. This article is an easy introduction to RxJS by creating simple animations using JavaScript and CSS. We get to know ways to create streams from DOM events, combining some streams, emit on each animation frame and use linear interpolation to make our...

Learning Session #10

1. Functional Programming Basically all content surrounding FP this time is connected with articles and projects created by Giulio Canti ( @giuliocanti ). For me reading those articles below definitely firmed and expanded my previous knowledge on FP. I would like to give credit to Piotr ( @hasparus ) who introduced me to Giulio’s work after the last WrocÅ‚aw TypeScript meetup. It was genuinely fascinating, thank you both! >> “fp-ts” library  I think fp-ts today is as famous for TypeScript as Rambda for JavaScript. With it, you can use “popular patterns and abstractions available in most functional languages”. If you are a newbie to FP (like me) and you know TypeScript it may be a good way to get your head around FP concepts through practice. Just play with it a little, create something small, something you know. >> “Getting started with fp-ts” series Aside from fp-ts having a well written official guide, Giulio created a series of articles, that introduce...

How I started with Functional Programming

There was a moment during past Learning Sessions when I declared, that I’ll share with you how and why I decided to dive into Functional Programming. And that day is today! I’ll guide you along the path I took to understand basic concepts of FP. My first meaningful encounter with FP was during local WrocÅ‚aw TypeScript meetup . There I got to hear Józef Flakus telling us about core concepts of the FP. We then got to the concept of FRP and how it is used in MarbleJS, the framework for creating server-side apps. In fact, Józef is the creator of this framework. It was really cool to hear his point of view. Those concepts were entirely new to me, because (as it turned out) I had 100% imperative programming mindset. The second talk that day was authored by Tomasz Ducin. He showed us how we can implement functional composition in TypeScript. It was a brilliant live coding session but… I had no idea what he was talking about 😉 I was examining code created by Tomasz for the entire ...

Learning Session #9

Timetables are expanding for me like crazy lately. Last month we did a major release, that of course meant a lot of work to do. I also volunteered to prepare JavaScript workshops at my workplace and hosted them a week ago. I had a blast presenting and learning other people about building REST APIs with NodeJS 😉 At the same time I feel relieved, that I finally emptied my calendar and have some time to rest. Of course, being busy resulted in learning new stuff, so I want to share them with you, as always 😊 1.    JavaScript >> “Why (! + [] + [] + ![]).length is 9” by Tomas Forsman Tomas presents us with one of the unexpected behaviors of JavaScript. “Unexpected”, compared with other languages, of course. Firstly, I wouldn’t even expect the above code to even run without errors (that exclamation mark next to a “plus” sign was eerie). The author presents us a step by step explanation to the final solution. After thinking for a while about it, it’s really simple 😉 ...

Learning Session #8

This time I’ve got an interesting batch of conference talks, as I listened to talks from recent conferences, like ngConf and Uphill Conf. ngConf is the probably the biggest Angular conference in the world and I would love to attend it someday! (Watching live feeds from people on Twitter made me envy them so much…) 1. Conference talks >> “Wrapping it up with decorators” by Nicole Oliver Decorators are probably the most underused TypeScript feature when developing Angular apps (at least for me). They let you modify existing functionalities of class and its members. First time I’ve heard of an idea of decorators was in Java (there called “annotations”). They are part AOP (Aspect Oriented Programming) and allow you to extract repeatable functionality and reuse it. It takes shape of a function of a certain type (different type for class, field or method to decorate). Nicole shows us not only how to create and use basic decorator in TS. She also shows us how they work...

Learning Session #7

Hello again, we’re meeting again, this time after a long break. I was on the vacation in Portugal for a week and got myself a needed coding detox 😊 I got a week of exploring foreign culture and cuisine and it was really worth the time! Now I am full of energy and positive mindset to start learning and having fun with coding again! Shall we start, then? 1. TypeScript >> “Notes on TypeScript: Pick, Exclude and Higher Order Components” by A. Sharif Here is a good example of using Pick , Exclude and Omit types in the TS which helps you create new types based on existing ones by extracting certain properties. There can be many use cases for that, for me, it was creating a type with Omit , which was based on an existing business model and then used in Angular’s reactive form. For the other reason entirely I’ve also written a type that creates union type from keys which extend Date interface: >> unknown type Fairly new unknown type in TS lets you...