All posts
-
XR Hack: My Experience at the Mixed Reality Hackathon
I participated in the XRHack in Stockholm, a hackathon for developing games and applications in mixed reality. I joined a team to develop an airport tower simulator game for Meta Quest. Here's my experience and what I learned. -
C/2023 A3 Comet: A Celestial Spectacle in October
Get ready to witness the comet C/2023 A3 (Tsuchinshan-ATLAS) in the northern latitudes! It’ll be visible closer to sunset as a quiet, bright object with a tail. Mark your calendars for October, because this comet is going to be a sight to behold! -
The model element proposal
The upcoming W3C TPAC event will discuss the `<model>` element proposal, which aims to bring 3D content to the web in a more native way, allowing developers to use 3D models in the same way they use images today. -
Node.js threads
Node.js is often mistakenly thought of as a single-threaded JavaScript engine. However, this is not accurate. Experienced Node.js engineers are aware of the separate libuv thread pool used for delegating synchronous a file system and a DNS utility operations out of the main thread. But, in reality, the actual number of threads is much larger. If you start Node.js you will see 10 threads alongside with main thread. -
Troubles with MP3 in Telegram
How Telegram handles MP3 files with meta information and how finally I've managed to upload it with all required data, with my art album, title and everything in 2024 using legendary TdLib from Durov's team. -
My favourite part of TS 5.5 beta
TypeScript 5.5 beta and it finally can do inference on predicates. It's a small change which makes the typing of code more consistent with its logic. -
Helsinki JS. April edition
Helsinki JS meetup was held in the office of Hive. Venue and talks were definitely worth the visit. Organizers did a great job and announced quite curious information about the upcoming summer event. -
Ruble Roller Coaster
I've build during one winter evening art object of Ruble Roller Coaster, which is a metaphor of exchange rate of russian ruble to US dollar. -
Immigrant song of healthy human
-
What I like in the old codebase of web projects. it's chance to see history of real projects in old "dark" times of web. For example you take a look on the line code of project with 10 years history:
scaleZoom = Math.log(scale) / Math.LN2;
And you remember school course of algebra with properties of logarithms like
and also remember that support of Math.log2
in browsers was added a little bit later thanMath.log
and developers with math in mind used to made this trick. -
Another package registry
JSR, a new package registry for JavaScript. Is it really needed? Or it's just a new hype? -
Finally,
express
just got clear roadmap for at least three upcoming releases. Better late then never! -
Well, seems like we have a fog like in the Stephen King's "The Mist" here in Helsinki and already for the whole week
-
Apple finally allowed alternative browser engines inside iOS
A recent European Digital Markets Act (DMA) made Apple to act. According to the new rules, Apple will allow alternative browser engines inside iOS. From iOS 17.4 it will be possible to install applications from third-party stores, which will be approved by Apple and applications will be checked separately for possible malware. -
My 2023 in glance
2023 goes to the end and it's time to look back and see what happened. -
My Summer Car
I moved to Helsinki this year and I've started this long process of adaptation and learning. Found accidentally in the Internet funny game about rural life in Finland. -
HTML as a programming language
You might think that HTML is not programming, but rather a markup language. And you will be correct, until you are not a user of html.js library, which considers every tag in your document as a command, and your document overall as a stack for these commands. -
AI in laws
Law about exception in paying off tax for someone who replaces water consumption meters if they were stolen in Brazilian city Porto Alegre was done with the help of ChatGPT. -
Annoyed by cookie banners? Firefox to the rescue!
Recently released Firefox 120 is introducing a new feature, which will allow you to get rid of cookie banners on websites by automatically rejecting them. -
Analogue of 2048 with Emoji
I've built game with Emoji, which is, basically, analogue of 2048, but built on concept of Zero-Width-Joiner. It's called Emerji. -
Humanity and AI
What is the difference between AI and human beings? The New Yorker magazine dedicated to the future of AI and humanity. -
The New Yorker magazine dedicated to AI
The latest issue of the New Yorker magazine is dedicated to artificial intelligence: trends and outcome for almost the past year, which definitely was full of AI trends in different forms and parts. -
Junction 2023
Last weekend was an incredible time to work with our fantastic team of engineers and, more important, the product who helped us balance our vision -
Gaming vacation
Currently I am busy with other matters like vacation -
React event internals
Recently I've become curious about mechanisms of resubscription to events in React when event handler property to component changed. Some things I already knew about it, but some things become interesting to discover. Share with you about them in this video -
August
The summer is closer to the end — time to select my best photos of the summer 2023. -
8 things I hate in React Native
As an experienced React Native engineer I have some thoughts about things that I don't like about this technology. Let's discuss eight parts of React Native, which I hate the most -
Jetpack Compose vs React Native
I'm sharing my experience and my thoughts about Jetpack Compose and React Native. Also, I will make my hands dirty with examples of code on Kotlin and I also developed a simple application on Android with React Native and Jetpack Compose to compare to approaches of development mobile application -
Check of spread in TS
Recently, my colleagues found an interesting case of checking the conforming shape of an object to type in TS if it was extended with another object by spread operator. And yes, TS in that case just ignore validation of unknown fields for type. It's a good reminder that usage of spread operator should be minimized as much as possible. Better to think twice about structures in your project and do not use it for business model entities at all -
June
How is your week going? Mine is quite busy, but anyway, I remember about traditional #bestphotosoftheweek -
Elvis Operator
Elvis operator in many computer languages is a super powerful thing. But what is the origin of this operator and is it exists in JavaScript? -
Node.js for utility scripts
From time to time I need to write at work or for my pet-project different automation scripts and every time I face a grand dilemma: what language I should use. One option is an entangled bash with dozens of constructions, which are impossible to remember. Another one is Python: quite lightweight, but some things take getting used to. -
Summertime
Last week we rented bicycles and even accidentally met during one ride the large bike parade. We enjoyed the time with bicycles and perhaps will plan to buy our own later. -
WWDC 2023
Today is going to be the keynote of Apple WWDC23. WWDC is an annual Apple conference for developers, which is usually more interesting for the last ones, but often important customer announcements are done there. One of the expected announcements for this year is the AR/MR headset. -
Pets enjoy the summer
This week was full of epic fights with React Native at work, so I will launch traditional #bestphotosoftheweek with a collection of funny distraction moments from my job with my pets. By the way, summer is already on the porch! Don't forget to enjoy summertime! -
Borderless Chrome Apps
In the 115th release of Chrome, borderless applications have been introduced. It totally does not make sense if you develop classic web pages and applications, but if you make PWA, then it will be a good option for tuning your application's look and feel. -
Yes, Yes, Yes
Yes is a simple utility that prints a string repeatedly until killed. -
Happy Birthday to Me!
Today I'm already in my early thirties. I'm driving into my new life era with journey in northern Italy. I'm share with you, my dear audience, photo cards from this long adventurous way. -
Moon, Venus, and Pleiades
Yesterday I was a witness a beautiful astronomical event: Moon was in the same time near Venus and Pleiades. -
Logical problem game on Three.js
Once upon a time, with my colleagues I discussed one funny old logical problem which becomes a basement for the 3D game on Three.js -
Hey-Yo!
Long time no see! I know that you subscribed to this channel to get cool content, but these weeks were so busy with my Estonian lessons, end of quarter and so on. -
Enjoying weekend in Paunküla
With my family near Paunküla on the hiking trail and enjoyed meditative sceneries in spring winter with shiny snow under the Sun, lakes, covered by ice, evergreen pines, and snowy slopes. -
FOSDEM 2023
Every year I'm looking forward to FOSDEM. It's a great place to meet interesting enthusiastic people from all corners of the World and have endless chats, ask questions and encourage yourself to be part of it -
Junction 2022
The Junction 2022 hackathon was amazing. I worked in a team together with my ex-colleague and we have developed an application that measures the pulse when browsing websites -
Fragile semantic patch
Looks like nobody cares about semantic versioning in JavaScript world. Recently I faced with strange behaviour of quite usual command during development of React Native application -
Super-fast Node.js alternative
Bun is a super-fast Node.js alternative written in Zig. Let's see if it's worth it after some time -
Data views in Obsidian
How to use the Obsidian Data View plugin to extract and display data from the frontmatter section of files in the table format -
Asexual pronoun
Asexual pronoun in different languages is quite interesting topic. With usage of Google Translate API we can check the difference in the translation of the words "She" and "He" in different languages -
Emoji in JS strings
Emoji are not simple characters, they are more complex than you think. Let's consider how they are represented in JavaScript strings -
Class prototype
A brief explanation of the difference between the prototype property of a class and a function -
How to save time with ZSH completion system
Do you know that you can create your own completion for your Git aliases which can make network requests to API? I will show you how to do that. -
How to execute JS like a binary
How to execute JavaScript files like a binary file with usage of Linux custom binary formats -
Итоги 2020 года
В этом посте я расскажу о своих достижениях и событиях, которые произошли в 2020 году