Check out "Do you speak JavaScript?" - my latest video course on advanced JavaScript.
Language APIs, Popular Concepts, Design Patterns, Advanced Techniques In the Browser

q2m - a library for translating URL params to MongoDB query

posted in JavaScript on 2023-07-03   JavaScript MongoDB query

I'm not open-sourcing very often anymore, but recently I finished developing a small tool called q2m that I believe is worth sharing. It's a library designed to convert URL parameters into MongoDB queries, which I needed for my latest project, a little SaaS called Lumina CMS.

read more

Configure Google domain email in Vercel with ImprovMX

posted in Architecture on 2021-01-27   vercel email google improvmx

Back in February last year I blog on topic Email not working after DNS change. Well, I had kinda similar situation but not exactly. This time I bought a domain from Google and wanted to use an email with it. The setup wasn't obvious for me so I decided to document the process.

read more

Reinventing the routing in React apps

posted in JavaScript on 2021-01-18   router react navigo

The router is the backbone of your application. Trust me, that's how it is and I can prove it. One of the fundamental ideas in Web is the URL (Uniform Resource Locator). Or the way of how we very often call it - "web address". No mather what you are building there is a web address which identifies your resource. The router is the front office that accepts the request to particular URL and wires it to a logic. Logic for generating HTML or JSON response or something else. So, the router is very important part of your system.

At the end of last year I rewrote one of my favorite projects - a vanilla JS router called Navigo. I was procrastinating this work for years. Finally I did it in TypeScript and wrote 100+ unit tests along the way. This refactoring opens the door for new features and more importantly, for integrating the library into other places. Like React for example.

read more

iPhone stuck on the Apple logo

posted in Other on 2020-11-27   iphone stuck broken apple logo

Last weekend I was helping a friend to deal with his "broken" iPhone XR. It was stuck on the Apple logo. No mather what we do the phone was just black and the apple shows up.

read more

What the heck is Google Tag Manager and what it has to do with Google Analytics

posted in JavaScript on 2020-09-13   javascript tagmanager analytics google gtm gtag

Just recently I had to do changes in Google Tag Manager at work. It's interesting how I keep forgetting how everything works. So I finally decided to sit down and write an article about these things. If nothing else I will have a good memory snapshot to remind me what is what.

read more

Pairify - how to match balanced string pairs

posted in JavaScript on 2020-03-11   pairify balanced matches javascript pairs decided type stack line starter token code const position function category https

I'm now actively working on a VSCode extension. I started it as a theme but then decided to add some more features. Like for example a tin line on the left side of the editor marking the current function scope. In order to do that I had to analyze the current file's code and find the lines that are included in that scope. The obvious approach will be to translate the code to AST and then traverse the tree finding the information that I need. This however will require the usage of a language server which now I don't want to deal with. So I decided to explore a brute force approach. Looping over the string characters and finding balanced matches. I quickly wrapped it into a library. I called it Pairify. It consumes text and returns an array of pairs. This blog post will show you how it works.

read more

Email not working after DNS change

posted in Architecture on 2020-02-07   email dns not working zeit domain working google mx record mail server services thing

I just recently moved my domain to Zeit name servers. That's my 13 years old domain which I'm not using it anymore. It makes sense to point to The thing is that I have an email which is used all over the net. I of course want to keep that email. And suddenly I wasn't able to receive messages to it. I started missing some very important emails. Like bills that have to be paid and GitHub notifications.

read more

Part 1: We need channels! A gentle introduction to communicating sequential processes.

posted in Riew on 2020-01-06   riew csp routine go javascript channels put javascript fibonacci index function return pattern fibonacci number

CSP is a formal language for describing patterns of interaction in concurrent systems. It's used in Go, Crystal, Clojure's core.async and a couple of other places. The idea in its core is nothing so complicated but it offers some interesting capabilities. Surprisingly enough it is not really popular in JavaScript. Recently I'm exploring this pattern and here are my findings.

read more

Part 2: Riew - reactive view basics

posted in Riew on 2020-01-06   riew csp routine go javascript channels channels channel const javascript function ch view console log

Riew is a library based on communicating sequential processes (CSP). It is made to help with communication and synchronization between your view and business logic. It's distributed as a npm package, it has 0 dependencies and adds ~8KBs (gzip) to your application on production.

read more

Part 3: Riew - reactive view in patterns

posted in Riew on 2020-01-06   riew csp routine go javascript channels console log yield krasimir riew https github function state const

In this article we will see some use cases of Riew. Those are patterns which I found repeating while using the library. There are other blog posts part of the same series and I will suggest checking at least this one so you get a basic understanding before jumping into the code snippets below.

read more

Reactive view - the concept

posted in Riew on 2020-01-04   riew csp routine go javascript channels kitty ch const function view https react redux

Something bugs me last couple of years. I'm using React for some time now and there is always this doubt if I'm placing the business logic on the right place. I'm trying to be pragmatic, to follow best practices and listen what the community is saying. However, I still feel that something is not ok. This blog post presents the idea of the reactive view. That is nothing new per se but I came up with this term because it fits well in my idea.

read more

NADCAST.04 с Найден Гочев и Михаил Кочанов

posted in NADCAST on 2017-06-12   forum nerds2nerds https groups google

Тази седмица мои гости бяха Мишо и Найден от Nerds2Nerds. Както всеки път така и в този епизод темите са малко на случаен принцип. Поговорихме си за интервю процеси, за remote work и къде е по-яко да се работи.

read more

Bulgaria Web Summit 2017 is just around the corner

posted in Must-see on 2017-01-30   ll day time talk nice interesting events good happy

One of my favorite conferences Bulgaria Web Summit 2017 is just around the corner. I’m happy to attend again. The organizer prepared a good set of speakers and the event is two days this year.

read more

Let's write, not generate code. Thoughts about naming stuff.

posted in JavaScript on 2016-07-03   code data html classes naming css good tags

I’m writing code for approximately ten years now and at some point the word “writing” became more important then “code”. I found out that it is easy to generate code but it is difficult to write code. Writing means creating something meaningful. Something that other human beings will read. The code is indeed sent to machines and they do understand ugly code. Not the same for humans though. An important part of our job is to make sure that our code is clear for other teammates.

read more

Deep dive into client-side routing

posted in JavaScript on 2016-01-03   router javascript navigo routing

(This blog post is inspired by A modern JavaScript router in 100 lines and heavily related to Navigo router project)

If you build single page applications you probably know that one of the must-have parts is the router. The bit that knows how to tweak the content of the address bar and notifies the rest of the system for URL changes. In this article we will discuss the various aspects of the routing in the browser.

read more

Apache .htaccess for HTML5 push state manipulations

posted in Architecture on 2015-12-20   dev krasimir navigo home dev krasimir http home dev index html html http home index html http browser routing

This is a quick post so I document my two hours research. I'm working on a open source library for routing in the browser. Or in other words JavaScript library that uses the history API. The thing is that locally I'm using Apache as a dev server and I wanted all the request to specific folder to be redirected to index.html.

read more

A modern JavaScript router in 100 lines

posted in JavaScript on 2014-02-21   router javascript navigo match history node

(The router here is now placed in its own project - Navigo. There is also another article Deep dive into client-side routing which you may find interesting)

Nowadays the popular single page applications are everywhere. Having such application means that you need a solid routing mechanism. Frameworks like Emberjs are truly build on top of a Router class. I'm still not sure that this is a concept which I like, but I'm absolutely sure that AbsurdJS should have a build-in Router. And, as with everything in this little library, it should be small, simple class. Let's see how such a module may look like.

read more

To all devs out there

posted in Architecture on 2013-11-26   good code don t project make end css server start things

There are few things which I'm thinking about last few months. I summarize them here. Initially, I started writing this article for the company which I'm working for - East Interactive. The material is not meant to teach. It just contains few thoughts of main and I hope that my colleagues will find it helpful.

read more

How to Design Responsively

posted in Design on 2013-06-25   design web mobile content good browser responsive design css

In this article I want to share my thoughts regarding responsive design. I made several talks on this subject and this post is some kind of summary. The article presents concepts like mobile first and design in the browser.

read more

Web Highlights #5

posted in HTML5 on 2013-05-30   http web design article unnecessary paints adobe device google street view code organizing javascript css paint times http www html5rocks

Everyday I'm reading or watching something which I find helpful. Normally I bookmark those things, but at the end I have dozen of folders and subfolders which I never check. So, I decided to make such blog post where I'll share valuable things in the net.

read more

Web Highlights #4

posted in HTML5 on 2013-05-15   http performance media queries behavioral breakpoints tools google css transitions great optimize things

Everyday I'm reading or watching something which I find helpful. Normally I bookmark those things, but at the end I have dozen of folders and subfolders which I never check. So, I decided to make such blog post where I'll share valuable things in the net.

read more

Chrome Devevelopment Tools could be really helpful

posted in HTML5 on 2013-02-09   detecting memory leaks network performance rendering analyze network performance instrumented development platforms googledevelopers channel strongly recommend ilya grigorik nice screencast build faster javascript code

"Your browser is one of the most and best instrumented development platforms -- you may just not realize it yet. In this episode we'll take a whirlwind tour of how to analyze network performance, rendering and layout pipeline, as well as detecting memory leaks in your Javascript code, and using audits and extensions to build faster and better apps!". A nice screencast by Ilya Grigorik. I strongly recommend the subscription to GoogleDevelopers channel.

read more

PHP developers - wake up!

posted in PHP on 2013-01-16   code time things framework don t good modules writing people big

PHP is one of the most popular back-end solutions available. However, I think that there is something wrong with the way we are using it. It is really popular to use some giant framework, with a lot of features. Generally, I'm not a big fan of this approach. Even if the framework is well documented and has big community it still adds some restrictions and complexity. Many people are trying to build the perfect framework, which covers as many cases as possible, but the true is that it is not possible. In this article I'll present you my vision about PHP programming and I will be very happy if you share yours.

read more

Congo: The Grand Inga Project (Best Short Film of the Year Awards 2012)

posted in Inspiration on 2012-08-24   grand inga project year awards short film congo
read more

Writing Maintainable Automated Acceptance Tests by Dale H. Emery

posted in Architecture on 2012-07-08   good test suite lot tests article http arlobelshee test suite read automated testing checkout dale emery shares programming dale emery driven development changed test driven development

For some time, I bring a lot of attention to the tests of everything that I'm working on. Actually Test Driven Development changed a lot my vision for programming. Dale Emery shares really interesting thoughts regarding automated testing. Checkout here. If you wonder what are the characteristics of a good test suite read this article

read more

The top 10 SEO myths by Mark Buckingham

posted in Other on 2011-08-20   s matt mcgee land s matt engine land s search engine land s matt cutts google s matt asks leading experts engine optimisation myths search engine optimisation favourite search engine search marketing consultant

_Search marketing consultant Mark Buckingham destroys his 10 favourite search engine optimisation myths and asks leading experts such as Google's Matt Cutts and Search Engine Land's Matt McGee for their opinion._Check out here.

read more

GoogleMaps JS API: address to coordinates transformation

posted in JavaScript on 2011-06-01   map google maps function address locations var results location google maps latlng step

When we are talking about maps, Google is an absolute leader. Their GoogleMaps tool is free, well documented and works really good. What I didn't find directly in the documentation is how to get the exact location based on plain text. I.e. to convert an address to google.maps.LatLng object. That's why I wrote a simple function that did this job.

read more

101 начина как да вбесим дизайнера

posted in Fun on 2010-11-04   google

Интересни коментари събрани от Иво Илиев (оригинален текст):001. Чудесно! Точно така си го представях… само че малко по-различно.002. Вчера с комшията говорихме и ми даде страхотна идея. Виж ся как ше стане дизайна…003. Имам само една, две леки забележки. Имаш ли полвин час да ги изкоментираме?004. Добре е , но неможеш ли малко да го поразчупиш?005. Искам го 1:1 с това, но да е малко по-различно.

read more

Apple App Store Opens its Doors to Adobe Flash

posted in Other on 2010-09-14   flash devices twitter lit ios devices twitter party development tools 3rd party development apple announce removal active tutsplus full article speculation began blogosphere jumped

_"Yesterday saw Apple announce removal of the infamous restrictions on 3rd party development tools for iOS devices. Twitter lit up, the blogosphere jumped into gear and speculation began in earnest. So what’s this all about and what does it mean for Flash?"_The full article on here.

read more

Export mysql data to SQL script or CSV

posted in PHP on 2010-09-04   server data mysql export good solution phpmyadmin didn t work export data php file mysql exe mysql server received host

Yesterday I received host name, user name and password for a MySQL server. I needed to export the data from it. I didn't have access to PHPMyAdmin, I tried to connect to the server by mysql.exe on my PC, but it didn't work. And then I found really good solution - PHPMyAdmin in only one php file. I launched it from my localhost and it works. So if you need to export data or just see it, use Adminer. I also uploaded the file on my server, you can download it from here.

read more

How to use Google Maps API in flash

posted in ActionScript on 2010-08-19   import map flash google maps icon private function adding setting mapevent api

Google offers a lot of free tools for us. One of them is really useful and easy to work with - GoogleMaps API. In this article I will show you how to import a map in Flash and place an icon in a specific place.

read more

Google Chrome announcement

posted in Other on 2008-09-11   google chrome key engineering decisions interpretationof key engineering comics interpretationof key scott mccloud hood

"Look under the hood of Google Chrome in this comics interpretationof key engineering decisions, by Scott McCloud."

read more

Creative navigation by

posted in Inspiration on 2008-08-22   hellomonday site creative navigation gudrun og gudrun flash drawing api www red issue navigate trough minus good sites guys
read more