Еще один доклад с #spbruby — «С Gemset'ом или на Gemset'е» Сергея Долганова: http://amp.gs/pz07
Читать полностью…Пока мы выкладываем слайды с Spb Ruby User Group, воскресное чтиво.
В зарубежном интернете постоянно сходят с ума по очередным health hacks, сейчас довольно модной стала MIND диета — якобы, для улучшения работы мозга (для предотвращения деменции, на самом деле — плюс, название красивое). На деле это микс из средиземноморской диеты и диеты для предотвращения высокого давления.
Из бонусов — рекомендуют вино каждый день.
http://www.healthline.com/nutrition/mind-diet
https://bebrainfit.com/mind-diet-recipes/
(Только не забудьте сначала поговорить с врачом, если у вас на самом деле есть проблемы с внутренними органами)
Как GitHub переходит на Kubernetes: https://thenewstack.io/github-goes-kubernetes-tells/
Читать полностью…С помощью Size Limit новый безопасный генератор ID для @Logux_io получилось уместить в какие-то 258 байт
http://amp.gs/Zuw6
Встречайте Overmind и Hivemind — утилиты для веб-разработчиков для управления процессами на базе Procfile.
http://amp.gs/ZiDk
Procfile — популярный формат для объявления процессов веб-приложения, придуманный Дэвидом Долларом для foreman. Его знают все, кто пользовался Heroku; а кто не знает, его лучше изучить — это простой способ объявить все процессы, на которых работает приложение (вебапп, дополнительные утилиты, фоновая обработка) и запустить их все разом с одним логом.
К сожалению, у foreman хватает ограничений и недостатков. Читайте, почему нужны новые инструменты и почему они быстрее, фичастее и стабильнее.
Решили попробовать новый формат: до публикации поста в блоге — с иллюстрациями и красивым оформлением — запостить его сюда, причем на русском. Русский блог? Посмотрим, что получится.
Андрей Новиков пишет о том, что делать после ошибочного git push --force:
Иногда при работе с несколькими удалёнными репозиториями в git, может произойти страшное: git push --force в не тот remote и/или не в ту ветку.
Такое может случиться, например, если вы используете [Deis], в котором деплой запускается при git push нужного коммита в сборщик, когда при отладке деплоя после очередного git commit --amend по запарке вместо git push deis master --force делается просто git push --force. Упс.
Как результат, последние коммиты коллег безвозвратно потеряны, и вы чувствуете неотвратимость их ярости…
Но это git, а значит всё можно починить!
Читайте: https://gist.github.com/Envek/13d9e406bb2af23f739197e3934ad4f0
Вечернее чтение: The Stoic of Open Source
Что делать с выгоранием при работе над открытым проектом, оскорблениями, троллингом и собственными ошибками
https://amasad.me/stoic-oss
И да, у нас полным ходом идет набор фронтов.
Вакансия вот: https://moikrug.ru/vacancies/1000003136
Способ адово прокачаться и в случае успеха нажить хейтеров в твиттере — написать нам. Решайтесь за выходные.
Не могу не перепостить Ситника.
Первая статья про Автопрефиксер с Хабра — большинство комментариев показывают, что «жить в России — быть на войне»
https://habrahabr.ru/company/evilmartians/blog/176909/
https://twitter.com/andrey_sitnik/status/888367972896702466/photo/1
Нашел старую статью Пола Грэма о том, почему и как языки программирования становятся популярными.
http://paulgraham.com/popular.html
Незаменима в опостылевших спорах про то, выстрелит или не выстрелит очередной язык. Есть, конечно, одно но — Arc Пола не очень выстрелил 😊
Дизайнеры, фронтенды и сочувствующие!
Плагины Ромы Шамина для Sketch (Compo, Sort Me, Half Me) теперь поддерживают новую, модную систему автообновлений. Перескачать можно здесь: http://amp.gs/mQDX.
Если вы не используете Sketch для мобильного и веб UI, вы много теряете, конечно. А если не используете с ним Ромины плагины — теряете еще больше.
А почему vips быстрее всего на свете можно посмотреть, например, здесь: https://github.com/fawick/speedtest-resize
Читать полностью…— «Марсиане не любят Go, потому что не умеют на нем писать»
Умеем, ребята, но сквозь зубы, сквозь зубы...
Неделю назад Андрей Ситник выпустил size-limit — инструмент для CI-серверов для препятствования разбуханию JS-библиотек.
http://amp.gs/mFiz
Если в проект добавят неожиданно большую зависимость, Size Limit вернет ошибку и CI не пропустит Pull Request.
Size Limit создает в памяти webpack-проект и добавляет туда вашу библиотеку — размер считается с учетом всех подзависимостей и полифилов.
Самое крутое — Size Limit не только говорит размер, но и показывает, почему ваша JS-библиотека столько весит (спасибо Webpack Bundle Analyze).
Начинаем выкладывать слайды с высадки марсиан на Saint P RubyConf; встречайте «Надежные вебсокеты» от Андрея Новикова http://amp.gs/pzyJ
Читать полностью…Питерцы! Приходите завтра на доклады Сергея Долганова, Андрея Новикова и Влада Дементьева на SaintP Ruby User Group http://amp.gs/pIBw
Читать полностью…Новый пост: Встречайте TestProf, доброго доктора для тормозящих Ruby тестов.
TestProf — убойный набор для профилирования тестов на Ruby. TestProf поможет найти узкие места в коде и архитектуре тестов, и подскажет, что с ними делать.
Обязательно потратьте полчаса, чтобы разобраться и поставить в боевой проект!
http://amp.gs/Z5xm
Вот интересный draft изменений в RFC от Google. Суть — все домены, которые начинаются с localhost. или содержат .localhost. в в имени, должны мапиться на 127.0.0.1. Больше никаких dev.*, *.dev TLD и всего такого.
https://tools.ietf.org/html/draft-west-let-localhost-be-localhost-04
Найден отличный гид по английской пунктуации (и типографике). Напомню, что более правильным/аккуратным в печатном английском считается написание тире слитно со словами:
http://www.thepunctuationguide.com/em-dash.html
В нашем фронтенд-чатике объясняют фокусы JavaScript:
> Есть объяснение?
https://mobile.twitter.com/vaidehijoshi/status/891065113398185984/photo/1
ai: число с базой 16 кроме цифр 1-9 использует ещё буквы и a-f
соответственно число с базой в 24 символа использует 14 букв английского алфавита включая n
а с базой 23 не попадает n
то, есть пример можно перевести в:
parseInt('f', 10)
> NaN
parseInt('f', 15)
> NaN
parseInt('f', 16)
> 15
Почему 23 — потому что при базе в 24 в возможные цифры попадает только n, u — не попадает, так что parseInt парсит до ближайшей «цифры» — parseInt('null', 24) == parseInt('n', 24)
Нашелся интересный инструмент для визуализации плана запроса (EXPLAIN) Postgres:
http://tatiyants.com/postgres-query-plan-visualization/
Сохраните в закладки набор советов по Git для случаев «Чёрт, я сломал X, что делать?». У всех такое бывает.
http://amp.gs/Znkf
Сергей Небольсин поделился ссылкой про то, как правильно подходить к Go с точки зрения прожженого ООПшника: https://github.com/luciotato/golang-notes/blob/master/OOP.md
Читать полностью…Keybase предупреждает:
FAQ
---
Q: What if we're living in a simulation?
A: Keybase offers no guarantees against sophisticated side-channel attacks by higher-level entities.
Сергей Александрович выпустил imgproxy — простой, быстрый и секьюрный сервер на Go для массового ресайза картинок.
Через imgproxy можно организовать вообще всю раздачу картинок нужного размера, заменив библиотеки и плагины для работы с картинками в веб-фреймворках; это будет проще и быстрее — особенно если дизайн часто меняется, и перегенерировать размеры всех картинок не хочется. А если нужно забирать кучу картинок с внешних ресурсов и вписывать их в дизайн, imgproxy вообще незаменим.
imgproxy использует самую быструю библиотеку для ресайза `libvips`, защищает от файловых бомб, умеет подписывать URL (чтобы не было перебора размеров для того, чтобы забивать сервер) и умеет аутентификацию с CDN-ами и прокси.
Приложение на Go, можно легко докеризовать.
http://amp.gs/mW3P
Обещанная вундервафля на Go будет завтра; что забавно, она имеет некоторое отношение к твиту выше.
Читать полностью…Привет! Телеграм у нас, все-таки, для неформальных дел — здесь курилка. В социалках у нас все коротко, чтобы не постить смехуечки и просроченные мемы, в блоге у нас все серьезно, а написать просто и по-русски можно здесь.
Поэтому устроим колонку редактора, по поводу последнего поста. А редактором у нас twitter.com/yaroslav, а вовсе не Ситник, поэтому погружение в тему будет поверхностным.
История с размером node_modules, достигающим впечатляющих величин, в последнее время одна из горячих тем на «фронте». Недавно Андрей сотоварищи релизил Browserslist 2, где решал именно эту проблему — тут написано подробнее: https://evilmartians.com/chronicles/autoprefixer-7-browserslist-2-released
Чтобы раскопать тему поподробнее, AI сразу начал работать над новой библиотекой, которая помогала бы ограничивать рост зависимостей, делала бы это прямо на CI, да еще и показывала бы, откуда столько скопилось. Релиз состоялся с неделю назад здесь: https://github.com/ai/size-limit, а мы начали, как обычно, готовиться к нормальному освещению истории, чтобы побольше людей поняли, зачем этот инструмент, вообще, нужен — хороший пост, все такое.
Пока мы занимались украшательствами, вышел простой и понятный bundlesize (https://github.com/siddharthkp/bundlesize), который успел прогреметь везде. К сожалению, там есть проблемы:
- нет тестов (ну, не было на момент релиза — висит PR);
- нужно иметь webpack или rollup-сборщик в репозитории библиотеки;
- не работает на Node 4 LTS;
- нельзя посмотреть, _почему_ что-то плохое случилось — только среагировать на факт.
Это все грустно, потому что по крайней мере впихнуть аналайзер от webpack чтобы получить полную картину того, что происходит, не так уж и сложно.
Поскольку «злые» марсиане только в названии, Андрей напросился на PR с предложением влить свой более фичастый проект в более популярный: https://github.com/siddharthkp/bundlesize/pull/26. Но, быстро выяснилось, что ни одна из этих возможностей не нужна (ну ладно, разве что тесты).
Поэтому, видимо, два проекта будут развиваться параллельно, если только кто-то не вольет таки Size Limit в bundlesize.
Мораль истории такова: опенсорс — это боль, особенно во фронтенде. Берегите себя. И начинайте рассказывать о своих проектах пораньше 😊
Также в новостях: завтра новая must-have утилита от Ситника, даром что небольшая, а позже на неделе (или на следующей) бомбический Go-сервер, который будет полезен 90% веб-приложений вообще.
Читать полностью…