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

Using JavaScript module system for state management

posted in JavaScript on 2021-03-08   javascript module state management

Hot topic last couple of years is state management. Especially in the front-end apps. There are lots of problems and lots of solutions. One thing thought is totally ignored in this context - the JavaScript module system. I'm very often reaching out to this approach and decided to share it here.

read more

Miss Piggy - a test runner for Puppeteer

posted in JavaScript on 2021-02-01   puppeteer test runner tagmanager

These days I did (again) a bunch of changes in Google tag manager. This time however was more of a refactoring exercise. So, I had to prove that the tags that were placed before the refactoring exist after the refactoring. And what we programmers do in such cases - we write tests.

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

You Really Don't Need All That JavaScript, I Promise by Stuart Langridge

posted in JavaScript on 2020-09-12   javascript performance optimization

JavaScript is your behavior layer; the way to add interactivity to your sites, to provide a slick and delightful user experience, to make everything fast and easy and clean. But at some point everything changed: the tail started to wag the dog instead and development became JavaScript-first.

read more

React: 50 shades of state

posted in JavaScript on 2020-07-21   react state management form components button viewmore compound state component theme onchange application state feature state data client text span const

We all know that one of the most challenging task in software development is state management. This is especially true for the JavaScript world. There are thousands of articles on this topic and so I decided to write another one 😁. I wanted to share my current thoughts on the different state types. I found that answering "What lives where?" question is far more important than the actual state management. Which more or less is an implementation detail.

read more

Recreating Facebook's Recoil library

posted in JavaScript on 2020-07-12   recoil facebook state management mycoil facebook s recoil counter atoms atom component library formattedcountervalue selector key function javascript subscribers hook const return

This weekend I decided to play with the new kid on the block - Facebook's Recoil library for managing state. I did the trivial counter example to see how it works. It's pretty simple idea so I wondered how much it takes to replicate its features. I found the exact answer - 70 lines of code. Obviously, my implementation didn't cover everything but it was fun so I decided to share my findings.

(A side note: I did not look at the code of Recoil. I didn't want to be bias on how to write my version.)

read more

Debugging with Node

posted in Nodejs on 2016-03-22   debugger step node text function program line run counter command

Node has a wonderful debugger. As a front-end developer I’m mainly using Chrome’s tools but sometimes I run things in Node environment and this native feature comes handy. In this article we’ll see how to debug in the terminal using Node’s debugger.

read more

My front-end performance case study

posted in Must-see on 2014-08-25   css file blog time page images performance pagespeedinsights main

I’m reading and watching a lot of interesting things regarding client-side performance. I’m interested in the browser’s processes happening before and just after the page’s load. There are tons of stuff to think about. Before a couple of days, I joined the online workshop of Vitaly Friedman. I had a great time and learned some clever facts about performance optimization.

read more

Mobile Web performance auditing

posted in Must-see on 2014-07-10   performance

Building high performance sites and apps is crucial to your success on the web, and never more so as people start using smartphones as their primary means of internet access. But how can you make sure you're squeezing out every last bit of performance from your projects? In this talk we'll look at the tools you need to succeed and how to integrate them into your workflow.

read more

Sorry, Chrome killed the terminal

posted in Nodejs on 2014-06-04   yez extension browser terminal node js chrome shell commands running task

That's right. I'm not using the terminal anymore. Instead of that I'm using Chrome. Yes, the Google's browser. There is an extension called Yez! that connects to a Node.js module via web socket. It executes the shell commands and returns the result. And even works under Windows.

read more

Auxilio Chrome extension or how I boost my productivity

posted in Must-see on 2013-09-04   auxilio function command callback browser current extension page github

I'll be honest and I'll say that I'm a bit lazy sometimes. I'm one of those developers which don't like to repeat same actions again and again. There are dozen of things which I have to do while working on a project. Very often I'm covering the development of several applications and have to switch between them. It's really annoying process. I hate to have many opened tabs in my browser, many consoles or several code editors. I always try to improve my productivity by automating tasks. I think that even switching between opened applications takes too much time.

read more

Importing huge MySQL dump under Windows.

posted in PHP on 2013-06-17   mysql dump table hugedump sql sql table hugedump root h localhost u root h mysql command

I just received a 250MB dump of a database and I needed to see what is it inside. As you may guess, PHPMyAdmin is not a good option in this case. I decided to use the command line.

read more

Simple command line parser in JavaScript

posted in JavaScript on 2013-06-11   long parameter param3 var parse command param1 commandparser parse command param3 commandparser parse param1 param2 param3 command param1 param2 param3 command param1 string function

There should be some super cool RegEx, which I can use. However after short research I wasn't able to find it. So, I created a simple function which does the job.

read more

Git under windows (console mode)

posted in Architecture on 2013-05-29   git windows powershell file aliases function command status alias set

I'm a Windows user. I also have a virtual machine with Ubuntu installed and coding there from time to time. I use Git a lot and in general I prefer console mode over the GUI. Under Unix everything works just great, but Windows's command prompt requires more efforts from our side. However I found some helpful tips, which could make your life easier.

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

The Breakpoint

posted in HTML5 on 2013-03-10   devtools addy osmani paul irish breakpoint ep episode ll javascript performance tooling

A bunch of useful things about our lovely browser - Chrome. Dev tools theming, console tips, editing of SASS directly inside the browser.

read more

Web assets - tips for better organization and performance (discussion at VarnaLab)

posted in HTML5 on 2013-02-28   web assets tips varnalab discussion performance organization subject web assets slides screencast

A screencast of the discussion at VarnaLab on subject "Web assets - tips for better organization and performance". The slides are available here.

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

Le Miroir

posted in Inspiration on 2012-07-12   man

Le Miroir tells the story of a man - in the sense of the human being - which passes from childhood to the status of "old man", the time to freshen up.

read more

Brian McCallister and the code

posted in Architecture on 2012-05-16   programming profession convert business requirements efficiently convert business full article bugs read repeatable manner things programming computer

_Programming and the Profession of Programming are quite different things. Programming is being able to efficiently tell a computer exactly what to do in a repeatable manner. The profession of programming is being able to efficiently convert business requirements into bugs._Read the full article here.

read more

A behind-the-scenes look at Facebook release engineering

posted in Architecture on 2012-04-07   facebook release engineering scenes release engineering ars s release management facebook s release business news http arstechnica interesting article exclusive

Did you ever wonder how Facebook's release management looks like. Here is an interesting article about that http://arstechnica.com/business/news/2012/04/exclusive-a-behind-the-scenes-look-at-facebook-release-engineering.ars/1

read more

PEAR PHP Coding Standarts

posted in PHP on 2012-02-29   pear en standards php manual en standards net manual en php net manual pear php net http pear php folks http pear pear folks http distribution coding standards

The PEAR Coding Standards apply to code that is part of the official PEAR distribution. Coding standards often abbreviated as CS among developers and they aim to keep code consistent to be easily readable and maintainable by most of PEAR folks.http://pear.php.net/manual/en/standards.php

read more

RSS

posted in Other on 2010-08-20   rss http krasimirtsonev rss feed url create managed

Finally I managed to create the RSS feed for this blog. The url is http://krasimirtsonev.com/blog/rss.

read more

Tween Manager Class in AS3

posted in ActionScript on 2010-03-16   customproperty object tween tweenmanager xtween property function change tweenmanager tween loop end

TweenManager is ActionScript3 class that helps you to animate your objects in flash. You don't need to create timeline type animations, because you can control every property of the object. Also it helps you to create a sequence by different animations/events. In the examples below I'll show you how to use the manager to solve different problems during your daily flash work.

read more

Embed fonts in all the text fields of your flash document

posted in ActionScript on 2010-02-26   jsfl script flash embed main flash_cs3_extending pdf http livedocs adobe simply ctrl r commangs run command flash commangs run jsfl embedcharactersintextfield jsfl

Very helpful solution that will save you maybe several hours. I used JSFL language and very short script to parse all the items in the library. Then for every item just embed the characters that I wanted. Get the script from here http://www.outset.ws/files/jsfl/embedCharactersInTextField.jsfl. In flash: Commangs -> Run command (or simply Ctrl+R) and point the script file.You can download the jsfl documentation from here http://livedocs.adobe.com/flash/9.0/main/flash_cs3_extending.pdf.

read more

SVET - web based project management system

posted in Other on 2010-01-05   project management system based project management web based project svet make detailed reports specific period working time online notebook work basically

svetsoft - web based project management systemFinally I finished some bugs of my own project management system and I think it's ready for use. SVET is one of my biggest projects and it's a web based project management system, that helps you to organize your work. Basically it's an online notebook which you can use to store the information for your projects. It enables you to track your working time and communicate with your team and clients. You can also make detailed reports of what you've done for a specific period of time. Please check out here.

read more

Flex: tabbing bug

posted in ActionScript on 2009-09-29   swf jeff depascale attach swf jeff deactivate attach swf focusmanager deactivate attach tabenabled focusmanager deactivate tabchildren tabenabled focusmanager tabindex tabchildren tabenabled set tabindex tabchildren flex set tabindex embed flex set tab ordering swf swf embed flex
read more

Fat-Man Collective

posted in Inspiration on 2009-09-06   fat man collective collective fat man man collective fat

fat-manfat-man collective

read more