Возможно, это не совсем очевидно, особенно на фоне того, о чём я тут обычно пишу, но большую часть свой карьеры мой основной фокус был на… фронт-энде. Ага, JavaScript и товарищи. То есть я и другими вещами занимался, но святое дело скриптописания всегда было в центре. Правда, после переезда в Канаду его количество в моей жизни несколько поубавилось. Мне всё ещё перепадают эпизодические скриптовые задачи по веб проекту, который мы начали аж в 2009-м году, но в целом последние 2 года я работаю только с серверами. Читать далее Взгляд пещерного человека на современный фронт-энд
Архив метки: JavaScript
collectd: используем JavaScript для сбора метрик
Exec плагин
Среди всего разнообразия плагинов в collectd есть один особенный: если из-за какой-нибудь техногенной катастрофы у collectd останется только Exec, то им вполне можно заменить все остальные.
Как следует из названия, Exec запускает стороннее приложение или скрипт и интерпретирует её вывод в качестве данных для себя. Если быть точным, то он ищет строки вроде таких:
1 2 |
PUTVAL myhost/cpu-0/cpu-system interval=10 N:51 PUTVAL hostname/vm_count/gauge 1484012951:U |
Что самое прекрасное, Exec абсолютно по барабану, на каком языке написан скормленный ему скрипт. Хоть на JavaScript. В принципе, в некоторых сценариях использовать JavaScript было бы очень хорошей затеей. Например, когда приходится иметь дело с RESTful сервисом возвращающим JSON.
Но прежде чем мы попробуем скормить collectd данные из JavaScript приложения, стоит присмотреться поближе к формату PUTVAL-строк. Читать далее collectd: используем JavaScript для сбора метрик
Immutable данные и немного JavaScript
Обычно чаще, чем реже, мы объявляем переменные из расчёта, что их значение будет меняться: счётчики будут увеличиваться, массивы дополняться, объект типа Person поменяет богопротивное имя Джон на Аркадий, и т.д. Всё меняется, а const и readonly нужны только жмотам и студентам, начитавшимся Макконела. Читать далее Immutable данные и немного JavaScript
IO — добрый брат-близнец JavaScript
Читаю прелюбопытнейшую книжку — «Семь языков за семь недель«. Языков программирования, разумеется. Читаю и пребываю в перманентном восторге. По списку идут Ruby, IO, Prolog, Scala, Closure, Erlang и Haskell, и я только-только добрался до Scala. Prolog, разумеется, здорово прошелся по психике в шипастых сапожищах, но больше всего в душу запал IO. Читать далее IO — добрый брат-близнец JavaScript
В чем прелесть test-driven development
Как я уже писал раньше, одно из первых болезненных откровений по прибытию на канадскую контору было то, что я пишу отвратительный и никому не понятный код. С тех пор прошло некоторое время, я прочитал стопку профессиональной литературы, и.. продолжил писать отвратительный и никому не понятный код. В чем засада? Читать далее В чем прелесть test-driven development
Моя первая канадская IT конференция
На прошлой неделе попал на первую в своей жизни канадскую программерскую конференцию — WebUnleashed 2015. Просто по конференциям я и в Минске шастал, но тут было как минимум 2 отличия не в пользу последнего. Читать далее Моя первая канадская IT конференция
Типизированные массивы в 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.
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