Первый день в Канаде

Первый день в Канаде — это усталость. Оказывается, девятичасовой перелет с мелким ребенком — это тяжело. Особенно, если сбоку у окна сидит возрастная тетка, которая не хочет пересесть на свободное место, потому что «не любит сидеть посередине». Ко всем остальным грехам она умудрилась разбудить малого за пару часов до прилета. Но мелкий всё дорогу вел себя как джентльмен — три раза просился на горшок в самолете (это в год и восемь-то), развлекался с тем, что есть, и начал капризничать только когда внутренние часы показывали час ночи, а освещение самолета говорило нет.

Читать далее Первый день в Канаде

Типизированные массивы в JavaScript

Typed arraysРешил собрать волю в кулак и прочитать-таки документацию про ArrayBuffer, Uint8Array, DataView и всех их родственников. Оказалось, что типизированные массивы это милая и широко-используемая штука по всему фронту JS/HTML5, и я — последний человек на земле, который ими не пользуется.

Читать далее Типизированные массивы в JavaScript

Ритуал десяти помидорок — Pomodoro Technique

Pomodoro timerЕще один замечательный ритуал, который прибился к моим привычкам (по крайней мере до того момента, как начались иммиграционные дела) — Pomodoro Technique. Это простая техника для повышения производительности с кучей приятных побочных эффектов.

Читать далее Ритуал десяти помидорок — Pomodoro Technique

Еженедельный ритуал постановки целей

Calendar. Month viewХочу поделиться классной штукой, которую безболезненно удалось ввести в привычку, и которой чрезвычайно доволен — еженедельный ритуал постановки целей. Смысл его в том, что каждое воскресенье, максимум до 22:00 вечера, я выбираю набор мелких задач на неделю, которые теоретически должны сделать меня чуточку лучше. Обычно это книги, блог-посты, курсы на coursera или edx, и т. п. Из ограничений — время. Его максимум 1.5-2 часа перед сном. Читать далее Еженедельный ритуал постановки целей

О чем вести блог

Я в растерянности. Разрываюсь между двумя вариантами о чем вести блог:

  1. На английском и исключительно профессиональный, чтобы с годами тяжкого и кропотливого писательского труда заработать какую-никакую репутацию на гостеприимном североамериканском континенте. Либо
  2. Мутный и смешанный: на русском и английском, о нелегкой программистской жизни, профессиональных открытиях и JavaScript.

Читать далее О чем вести блог

Sorting JavaScript Array Of Objects

Out of the box JavaScript Array.prototype.sort method uses simple yet effective approach — it converts every item to Unicode string and orders them by comparing respective code point values. That explains, why [1, 2, 10].sort() produces [1, 10, 2], instead of more logical  [1, 2, 10]. If you want more, e.g. sort in descending order or by object property name, Array.prototype.sort accepts custom comparer function that allows you to implement your own sorting logic.

Читать далее Sorting JavaScript Array Of Objects

Simplest Chrome Extension: Content Script

I really like the concept of browser extensions. Especially for Chrome. Surprisingly, though, I never remember Chrome Extensions being a hot topic. Why? If you’re front-end developer like I am, chances are that you spend most of your time in the browser. Why not to fix a thing or two?
What’s more interesting, writing extensions is not that difficult. In common scenario it’s manifest and JS file with logic. Just another JavaScript application.

Let’s take the simplest one: content script. Читать далее Simplest Chrome Extension: Content Script

When Server-Sent Events (SSE) is much better choice than WebSocket

Many web apps nowadays, including project I’m working on, rely on real time notifications from the server. GMail instantaneously adds incoming mail, Facebook shows chat messages and likes, list can go on.

My app does the same: it subscribes to certain topics and keeps open channel for server updates. Traditionally, we’ve been using long polling for that, but it felt like a hack, so we decided to switch to web sockets and fall back to long polling for legacy browsers. It took me 2 years to get to Ilya Grigorik’s «High Performance Browser Networking» book and realise that Server-Sent Events was much better choice. Here’s why. Читать далее When Server-Sent Events (SSE) is much better choice than WebSocket

«Soft Skills» by John Sonmez

softskills_sonmez

I kept an eye on that book for a while before buying it and I’m totally happy I did that. It’s pure gold.

«Soft Skills», in my opinion, is a bit misleading title. The second title «The software developer’s life manual» is more precise and that what it is: life manual. It’s seven different topics, one per section. Section itself is divided in 2-10 pages long self-sufficient chapters, so it’s easy read. Читать далее «Soft Skills» by John Sonmez

Простейшее расширение для Google Chrome: content script

Меня, почему-то, очень воодушевляет возможность писать расширения для хрома. Это не значит, что я этим воодушевлением как-то пользуюсь, но тем не менее. Задачи я получаю через Chrome, в нем же их потом тестирую, в нем же читаю (не)довольные письма от заказчиков после коммита, и на каждой стадии хватает мелочей, которые можно улучшить.

А расширение — оно простое. Манифест + какой-нибудь js файл с логикой — и всё.

Читать далее Простейшее расширение для Google Chrome: content script

Размышления об эмиграции, жизни, и вообще