Suddenly, I realized that I live in the biggest country in the world, and still never been anywhere further than two main cities. On the bright side, that was relatively easy to fix by traveling to Kazan. It was an exciting journey, and the city appeared to be pretty unique. Look at the pictures yourself :)
Kazan1 min readContinue
- ContinueIf you work with redux apps a lot, you definitely heard about the
redux-formpackage, because working with forms without it is a pain. If not, you should know it simplifies form creation a lot. Even the complex multi-step forms with nested fields could be implemented almost effortlessly using it. The API of the package was recently revamped and it’s super fun to use now, but it’s also pretty big and you definitely can use some hints on it! :)
The road to wisdom1 min read
Well, it’s plain and simple to express: Err and err and err again, but less and less and less.
--- Piet Hein
How to avoid concurrency issues in React16 min readContinueReact proposes a simple declarative way to build an application’s view. It’s straightforward to write a hierarchy of stateless components or to change a state synchronously. The whole app works as an integration of two pure functions “state(event)” and “view(state)“. The behavior is testable and predictable. But you can’t make something complex without depending on an external data sources integration: side effects come into the stage. Beware, you’re approaching the Dark Zone of functional programming now :)
Windows workspace with WSL and Docker7 min readContinue
IntroductionAs a web developer, I frequently use a lot of command line tools to make my life easier. I prefer to be able to assemble a computer from whatever hardware I want, so I don’t like Macs and stuff like this. Linux desktops are good enough our days, but I love to play video games from time to time, and it wouldn’t be effortless to keep two different operating systems for work and entertainment. My best compromise was to use Windows.
Using Letsencrypt with Docker3 min readContinueWho needs all those paid certificate providers while we have such a brilliant project as Letsencrypt? It allows a domain owner to obtain a valid certificate for his domain in a matter of seconds without the boring stuff like generating CSR, making DNS verification records or even passing documents to the certificate issuer center. However, paid certificates most often have an expiration time of a year. And free Letsencrypt certificates live only for a couple of months. But it’s definitely not a huge problem if there is a way to automate the renewal process. And there it is.
20175 min readContinue
The 2017 year was good for me. It’s the second year in a line where I fulfilled all my new year resolutions, which is inspiring. That’s why I decided to write a bit about it. The year totally earned it :)
The weddingI’m a married man now. I have such a beautiful wife! (and still can’t fully believe that). But I don’t see any changes inside me: I think I married her in my mind long before that, but it’s great to have a real ceremony and to eat a real cake! :) The day before the wedding I fell from my bike and got a severe knee injury. I’ll never forget dancing the waltz all in bandages like a mummy, with terrible pain and only one leg working fine, but it was worth all the efforts.
Books2 min readContinue
Books were hard to get at a time when I was a kid. They were expensive and, moreover, there was a complete lack of them. Many people owned no books at all, and some other copied them manually (by hand). But there always were a lot of books in our family, and it was shocking to me back then — to see no books at all in a room.
Not all of the books from our family collection were good. Most of them were pretty cheap detectives and other silly novels from barely known authors. The only thing they were good at is the creation of the warm relationships between me and the book species. But among this mess, there were a lot of hidden treasures.
Once I spotted that my father left the book he was reading at that time, on the table. I, for some reasons, thought that I’m not allowed to read or even touch adult books as I was a nothing but the little child. No one was near, and I dared to take it and read it, secretly. It was «Lord Valentine’s Castle» by Robert Silverberg.
To my astonishment, it was not too different by its nature from what I’ve read before. It was way better than all these child books, so I fell in love with it from the first pages. I was reading this book secretly for a long time as I wasn’t alone most of the times and not every day I was even aware of the location of this book.
I think that at some point my secret love affair with this book was spotted by my father. He said nothing about it, so I’m not sure if that was the trigger. But sometime after that, he offered me another book from his collection of science fiction to read. It was the «Deathworld» by Harry Harrison.
From that time I created a personal ritual for reading. Every evening, I take a fruit or two, go to bed, take a book and read it for an hour or two. That was the time I first met Heinlein, Simak, Asimov, Zelazny, Sheckley and other cool guys I owe so much for my very own personality, consciousness and the way I see the world now.
A Few Notes on Composition of Reducers10 min readContinueManaging the state of an application with libraries like
reduxis awesome. It provides a really easy way to write simple and testable code for state transitions. You only need to decide on a structure of the desired state and write a corresponding pure function.
- Letsencrypt is an excellent service for obtaining totally free security encryption certificates. Fortunately, it also has a marvelous client named Certbot. Let’s install it.Continue
Sunrise in Moscow1 min readContinue
Why yet another one tutorial?
A single-page application (SPA) is a web application or web site that fits on a single web page with the goal of providing a more fluid user experience similar to a desktop application.
- What language should I use?
- How I should manage my dependencies?
Can I just copy them to the project? Or should I use git submodules? Maybe I could make a use of some package manager (npm, bower)?
- How should I assemble my code for frontend?
Isn’t the old good «just concatenate them all» the best one? Or should I use browserify? A little bit of webpack?
- How should I use styles?
Can I just add a style tag with an external css to my HTML file? Or should I use something more complex like BEM? Or can I just inline it?
- What framework should I use for my application base?
- How should I manage the data in my application?
A lot of buzzwords here. Flow? Redux? Relay? MobX? Can’t I just do it the old good way (like my father and his father did)?
- Can’t I just shoot myself in the head instead of diving into this mess?
- What language should I use?
Just saying «Hello» and chilling around2 min readContinue
I have never been really good at writing. I won some rewards in my childhood. I wrote some shitty verses in my youth. None of those achievements really were significant for the universe around me. It was all like a silly child play with the symbols I barely know. Move one back and another forward, make a stanza, make another one, make them a little bit more shiny. I experienced that well-known fear of a blank page. And I experienced that recursive «oh, I can do this paragraph better» annoying thing too. But I love writing, I really do. I have dreamt about writing a book all my life long just like my grandfather had dreamt before me. That’s why I have decided to write my thoughts in English: to master my slack skills with practice that makes me happy.
We are what we do and what we think about. The oceans of information we swim in are unstable in our epoch. Their coast and bottom are changing their shapes every second with new memes rising and fighting each other to the bloody death. The key point is that those ideas are battling mostly in English. Native speakers are lucky in some way: they don’t need to do anything to be in the middle of that storm and to see every glimpse of new fancy ideas worth knowing about.
Not that I say that other languages are not good. They are wonderful, all of them. But they act in this battle as smidge waves in the far away bays. And what I am interested in as a contemporary engineer and transhumanist is this battle itself. I want to be in the vanguard of this mess crushing metaphoric skulls with my own great axe of knowledge and will.
And then again I asked myself a question: «Do I really want to battle ooze and slime in memetic swamps of my native language? Do I really want to waste my life for that dolorous purpose?»
So here I am now.