Доклад про отладку node на production
Вот слайды — http://dtrace.org/blogs/dap/2012/05/31/debugging-node-js-in-production-fluent-slides/. В докладе рассказывается, как отлаживать боевой сервер без его остановки и как работать с дампами зависшего сервера. Все сводится к использованию двух инструментов: Dtrace (http://dtrace.org/blogs/dap/2012/04/25/profiling-node-js/, http://dtrace.org/blogs/dap/2012/01/13/playing-with-nodev8-postmortem-debugging/) и mdb_v8 (https://github.com/joyent/illumos-joyent/blob/master/usr/src/cmd/mdb/common/modules/v8/mdb_v8.c, https://github.com/joyent/node/blob/master/src/v8ustack.d)
window.postMessage
Используется для передачи сообщений между фреймами или открытыми всплывающими окнами. Позволяет обходить same origin policy. Также позволяет сделать костыль для того, чтобы не ждать минимальной задержки при setTimeout (сейчас по стандарту — 4мс) — https://developer.mozilla.org/ru/docs/DOM/window.setTimeout#Minimum_delay_and_timeout_nesting. Подробнее — https://developer.mozilla.org/en-US/docs/DOM/window.postMessage.
Видеоуроки по Angular.js
Объясняют базовые вещи, но владение фреймворком очень хорошее. http://egghead.io/
Как подготовиться к установке Windows 7 на SSD-диск
Есть некоторые общие вещи, но в основном речь идет о Windows 7. http://maketecheasier.com/12-things-you-must-do-when-running-a-solid-state-drive-in-windows-7/2012/05/11
Перенос файлов по маске в shell
Сбойнул один старый скрипт и написал он много маленьких (2-3 кб) файлов в одну директорию. Посмотрел я, сколько файлов оказалось, командой
1 |
ls -1 | wc -l |
Оказалось файлов таких за миллион. На эти файлы смотрел скрипт демонский, который по ним рассылал почты много. Решил я эти файлы из директории той убрать (чтоб пользователей не расстраивать, а данные сохранить)
1 |
ls *.eml -1 | xargs -I {} mv {} ./fuckup/{} |
…
Git: patch из одного репозитория в другой
В старом репозитории сохраняем diff:
1 |
git diff --no-color --binary origin/master > ~/my_diff |
В новом репозитории
1 2 3 4 |
git checkout <ветка> # если нужно вставить не в корень cd <путь до нового корня> patch -p1 < ~/my_diff |
Наиболее полный способ. Две ветки из ориджина, применяем в текущую ветку. Идеально, когда хотим создать дифф между двумя подветками и применить к мастеру. При этом ещё и выкинуть некоторые пути, которые в патче не нужны.
1 2 3 4 |
git diff --no-color --binary origin/no-ticket-bootstrap-reorder..origin/POR-574 ':(exclude)docs/reorder/dev-local/*' ':(exclude)build-tools/dev-reorder/*' ':(exclude)README.md' ':(exclude).codacy.yml' > ~/.por-574-bootstrap-3.diff git apply --stat ~/.por-574-bootstrap-3.diff git apply --check ~/.por-574-bootstrap-3.diff git apply ~/.por-574-bootstrap-3.diff |
https://stackoverflow.com/a/39943727/801426 https://stackoverflow.com/a/2250170/801426
Git: diff с другой веткой
Сначала переключаемся в нужную ветку, потом
1 |
git diff --binary --name-only origin/master |
Это покажет только файлы. Если нужно посмотреть еще и сами изменения, нужно убрать —name-only
Параллельные вычисления в браузере или в node.js
https://github.com/adambom/parallel.js — библиотека для параллельных вычислений. Может работать и в браузере (web workers), и на сервере.
Программы для генерации спрайтов
http://spritepad.wearekiss.com/ http://www.spritecow.com/
Templar — кэшер шаблонов для Express (Node.js)
Templar создан для кеширования шаблонов любого шаблонизатора, совместимого с Express. Он сохраняет сгенерированные шаблоны, и если потом этот шаблон вызывается с такими же параметрами, то он берется из файлового кеша, и заново не отрисовывается. При этом еще проставляются правильные заголовки типа ETag.