Андрей Яманов

Андрей Яманов

Неделя
Mar 29, 2021 → Apr 4, 2021
Темы
UI
Кофе
Дизайн
Фронтенд
Кулстори

Архив недели @tenphi

Понедельник


Привет, котаны! На этой неделе с вами Андрей Яманов @tenphi Будем говорить про фронтенд, дизайн, цвета, музыку, спорт, игры, фотографии... ну и конечно про кофе :)

Мне 33 года и за это время я неплохо научился верстать. Люблю пробовать новое и ввязываться в истории. А это тред рандомных фактов из моей жизни. Сообщения из него, получившие много лайков, получат отдельный тред с подробностями. Поехали! :) 0/15

1/15 Свою первую программу я написал во втором классе, когда дома появился компьютер. Это была программа на Basic, которая выводила схематичного зайчика. (мимими) Тремя годами позже, я уже овладел Pascal и написал многопользовательскую (pass & play) игру.

2/15 В 13 лет Я бесконечно перечитывал книгу по HTML 4.0, чтобы разобраться как делать сайты. Разобрался. Это было "волшебное" время Internet Explorer 5.5 и Netscape с множеством не менее "волшебных" багов и медленным интернетом.

3/15 В 2005 году, перебравшись в Москву, я втянулся в ламповую тусовку любителей ритм-игр и пробыл там много лет. Успел побывать чемпионом России по Dance Dance Revolution и Pump It Up.

4/15 В 2007 году, имея среднее музыкальное образование, присоединился клавишником к группе Indigo Sky. Мы играли поп-панк-рок, устраивали концерты в клубах и весело репетировали. Группа до сих пор жива, но уже много лет без меня.

5/15 Последние пару лет увлекаюсь кофе. В этот дивный новый мир меня привела моя девушка. Мы любим ходить на каппинги, дружим с обжарщиками, учимся различным методам заварки и осваиваем теорию.

6/15 Несколько лет назад открывали с друзьями своё анти-кафе с прицелом на ритм-игры. Проект продержался меньше двух лет, но подарил множество чудесных воспоминаний и многому научил.

7/15 Больше 5 лет занимался вокалом с педагогом, в основном академический вокал. 3 с половиной года играл в большом любительском театре, а также был участником вокального ансамбля. Пару раз был лауреатом международного вокального конкурса. Сейчас задействован в одном мюзикле.

8/15 Пару лет активно занимался фотографией. Фотографировал митапы, конференции, концерты, и прочее для души. Использовал Fuji X-T10 и X-E3 с несколькими объективами. Много фотографировал и фотографирую на iPhone. instagram.com/tenphi

9/15 Уже два года разрабатываю свой Open Source дизайн-систему-UI-фреймворк Numl.Design , который позволяет создавать интерфейсы используя HTML c Custom Elements и имеет продвинутые возможности стилизации и кастомизации numl.design

10/15 Потратил суммарно месяца три на создание генератора цветовых тем. Достаточно глубоко копнул в этом направлении: контрастность, контекст, цветовые пространства, восприятие цвета, модификация цвета.

11/15 Несколько месяцев работаю в компании Cube Dev, которая занимается разработкой Cube.js. Пришел как Developer Advocate, остался как фронтенд-разработчик. Курирую весь фронтенд компании, в основном занимаюсь разработкой UI проекта Cube Cloud.

12/15 Уже вторую зиму с девушкой проводим в Сочи. Катаемся на сноубордах, пробуем местную еду и развлечения. Наслаждаемся длинным солнечным днём и конечно же работаем удалённо.

13/15 Увлекаюсь компьютерными играми, хоть и не часто играю. PC и Playstation. Могу долго рассказывать про гейминг на макбук, выбор телевизора для игр, настройки графики, и конечно же люблю обсуждать любимые игры.

14/15 К 28-ми годам ОЧЕНЬ сильно подсадил своё здоровье пассивным образом жизни и плохой едой. За пару лет смог практически полностью восстановиться используя технику, которая практически не отнимала времени и не требовала радикального перестроения привычек.

15/15 Много лет был организатором MoscowJS и пару лет главой ПК FrontendConf. Участвовал в организации как минимум 50+ митапов, 8+ конференций. Хорошим спикером я так и не стал, зато стал неплохим тренером.

Как тут уже выяснили ранее, среди читателей много людей, которые занимаются вебом. А давай-те посчитаем фронтендеров. Отвечайте, как считаете правильным, даже если это не соответствует вашей текущей работе.

Мне 33 года и за это время я неплохо научился верстать. Люблю пробовать новое и ввязываться в истории. А это тред рандомных фактов из моей жизни. Сообщения из него, получившие много лайков, получат отдельный тред с подробностями. Поехали! :) 0/15
По лайкам с огромным отрывом лидирует тема ЗОЖ, поэтому завтрашний день будет посвящен именно этой теме. Ну не обсуждать же как код писать в самом деле... Этого добра и на работе хватает. twitter.com/itunderhood/st…

Вторник


Сегодня поговорим про здоровье. Про то как я его долго и уверенно портил, а потом всё же смог восстановить, несмотря на неоднозначный прогноз.

Сразу отмечу, что я не доктор, но как мне кажется советы из этого треда достаточно универсальны и могут многим помочь. По крайней мере я был бы счастлив прочитать этот тред лет 15 назад.

Лет 5 назад моё здоровье дошло до критической стадии. Я накопил остеохондроз коленных суставов второй степени, мочекаменную болезнь, тахикардия, 20кг абсолютно лишнего веса, бесконечные прыщи на лице, болезненный вид и ужасное самочувствие.

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

Разумеется, я пробовал заниматься спортом и наладить диету. Приседания/отжимания по утрам, пробежки, более здоровая пища. Еда никак не влияла на состояние, а регулярные упражнения невероятно изматывали и ухудшали общее самочувствие, продолжая губить колени.

Пытаясь хотя бы наладить сон, я решил заодно попробовать медитацию, а именно перед сном, лежа в постели, расслаблять своё тело и "очищать разум". После двух недель, я достаточно хорошо в этом освоился и стал делать небольшие паузы во время работы на медитацию.

Это положительно сказывалось на продуктивности и общем самочувствии. Эти паузы помогали сбросить стресс, расслабиться и перезагрузиться.

Медитация позволила научиться общаться с собственным телом и успокоить разум. Мне становилось лучше. Я начал осознавать, что физическое и душевное состояние тесно связано.

В этот момент я осознал, что всё делал не правильно. Я ел невкусную, но якобы полезную еду, принуждал себя тренироваться и насиловал организм сменой распорядка.

В тот день я решил, что начинаю эксперимент. Буду есть что хочу, начну увлеченно и с отдачей тренироваться, буду спать столько, сколько требуется телу на восстановление. Смысл был в том, чтобы слушать своё тело и корректировать поведение на основании этой информации.

Чувствую что еда тяжело осела или от неё горит лицо? Стараюсь не есть такое. Физическая разминка начала приносить боль? Останавливаюсь и попробую что-то полегче.

Я начал с простых упражнений, которые даже не требовали подъёма с кровати. Разминал руки, поднимал ноги, растягивал позвоночник. Потом продолжал в сидячей позе, а дальше вставал, делал наклоны или мягко бегал на месте. Позже - отжимался с приподнятыми ногами.

Из еды я урезал сахар, молоко, а также сильно ограничил мясо и ел в основном рыбу или курицу. Также немного скорректировал еду на основе диагнозов. Это конкретно про мой случай, более универсальный вариант напишу ниже.

Всё это привело к неожиданно результатам. Уже через три месяца я спокойно ходил не хрустя коленями и мог даже немного пробежаться. Тахикардия почти прошла. Самочувствие улучшилось, продуктивность выросла. Как вы понимаете, я был очень рад.

Спустя год я похудел где-то на 16кг, отлично себя ощущал и физически и эмоционально. Знакомые были крайне удивлены изменениями в моей внешности :)

Суммирую то, что мне помогло: Медитация, внимание к телу. Осознанность в занятиях спортом. Осознанность при выборе еды и её поглощении. Пищевые добавки (если требуется по диагнозу) Желание всё исправить

Про диету отдельно и более универсально: Меньше сахара, молока, алкоголя и специй. Кол-во ингредиентов за один приём пищи - чем меньше, тем лучше. Поддерживайте разнообразие Готовьте дома почаще Наслаждайтесь едой

Основной вывод для меня: Внимание к собственному телу способно оказать более значительный положительный эффект на здоровье, чем спорт, диеты, таблетки и прочее. Живите в гармонии с собой!

Если у вас есть похожие истории, обязательно поделитесь. И да пребудет с вами сила!

Думаю многим людям, особенно программистам, свойственно увлекаться работой, глубоко погружаться в задачи, выжимать максимум из своих возможностей. Мы концентрируем всё своё внимание на этом, оставляя без внимания наши тела. А тело это наш храм, берегите его!

Среда


Карантин никого не щадит... если кто знает автора - напишите, добавлю копирайт
notion image

Здоровье обсудили, теперь вернёмся к намного более простым вещам - фронтенду. Последние пару лет я занимался разработкой Open Source дизайн-системы-UI-фреймворка для веб под названием Numl.Design И хочу поделиться к каким архитектурным "открытиям" я пришел. 1/

Про историю создания Numl.Design я писал статью на Хабр. Здесь я пересказывать статью не буду, но поделюсь ссылкой. habr.com/ru/post/510026/ 2/

В статье рассказывается, как я в поисках идеального UI решения для веб "изобрёл" новый подход к стилизации и не только. Спустя год, я наконец закончил работу над стабильной версий Numl а также сформулировал базовые концепции, про которые хочу рассказать. 3/

Numl состоит из атомарных сущностей: стилей, поведений и элементов. Элементы объединяют в себе стили и поведения для получения UI атома. Т.е. Numl это атомарный UI фреймворк, тут нет компонентов, только элементы. /4

Запутанно? На самом деле всё очень просто. Самый известный атомарный фреймворк вам хорошо известен, это HTML. Тут есть только элементы, каждый из которых может иметь встроенные стили или встроенное атомарное поведение. 5/

Numl заменяет HTML давая более гибкие возможности стилизации (респонсивность, привязка стилей к состоянию, подробнее в статье) и намного больше базовых поведений из коробки. Есть формы, виджеты и даже встроенные конвертеры Markdown -> Numl и подсветки синтаксиса. 6/

Numl построен поверх Custom Elements, части Web Components API, что позволяет ему интегрироваться с большинством современных JS-фреймворков для реализации сложной логики и композиции. 7/

Данный подход позволяет упростить логику вашего приложения, а также улучшить доступность. Допустим вам нужен элемент, который должен нажиматься. Вы просто добавляете элементу атрибут use-action. 8/

Теперь элемент это полноценная кнопка, которая умеет все соответствующие состояния: active, hover, pressed (toggled), focus или focus-visible, disabled Также, кнопка начинает триггерить кастомное событие tap, когда происходит нажатие. 9/

Если вам нужен просто эффект hover, то используем use-hover. Это создаёт на элементе hover состояние, когда на него наводится pointer. Состояние будет игнорироваться при использовании touch-жестов, а также корректно обрабатывать события на гибридных устройствах. 10/

Надеюсь идея понятна. Но в чем смысл такого подхода, когда у нас есть Реакт, с помощью которого мы можем сделать то же самое (см. React Aria)?Помимо очевидного плюса возможности переиспользовать код с другими фреймворками есть и другие менее очевидные, но важные плюсы: 11/

ПЛЮС 1. Изменения атрибутов не триггерят рендер. Это существенно улучшает производительность. Элементы могут использовать собственный механизм контекста, что позволит им общаться в обход верхнеуровнего фреймворка напрямую. Так работает, например, элемент form из HTML. 12/

ПЛЮС 2. Данную логику можно безопасно подтягивать асинхронно и только на фронтенде. Это позволяет упростить SSR и опять таки улучшить производительность. 13/

ПЛЮС 3. Данный подход улучшает DX. Разработчикам нужно меньше контекста для реализации сложных компонентов. Нужно просто настроить базовые поведения и стилизовать. Никакой боли с прокидыванием контекста и микроменеджментом состояния. Ну и доступность почти из коробки. 14/

Поэтому я считаю, что атомарный подход это будущее фронтенда. В этом году я хочу реализовать набор базовых поведений и стилей отдельно от Numl, чтобы у всех была возможность "вживлять" их в свои проекты, упрощая разработку. 15/

Если кого-то заинтересовала идея, у вас есть шанс присоединиться к проекту и помочь с разработкой или поделиться фидбэком. На сайте Numl вы найдёте ссылку на репозиторий и дискорд. А еще у нас есть русскоязычный чатик в телеграм: t.me/numldesign 16/

Если идея вас не заинтересовала, я всё равно буду очень благодарен за звёздочку на гитхаб в качестве поддержки. github.com/numldesign/numl 17/

Четверг


По случаю, обновил тут свою домашнюю страничку. tenphi.me

Tailwind будет включен в Chromium по умолчанию! Можно будет стилизовать сайты используя только HTML! (где-то я это уже слышал...)
notion image

Пятница


Tailwind будет включен в Chromium по умолчанию! Можно будет стилизовать сайты используя только HTML! (где-то я это уже слышал...) https://t.co/yD8LORfoas
1 апреля закончилось, карты вскрыты, это конечно не правда. А вот ссылка на оригинал новости - twitter.com/shadeed9/statu… twitter.com/itunderhood/st…

Спецификация доступности WCAG требует соблюдать относительную контрастность (далее кратко "ОК") между текстом и фоном, но что это такое и как его посчитать? Почему она относительная? Почему формула WCAG не всегда работает корректно? И причем тут тёмные темы? Тред.

Достаточно очевидно, что текст должен быть контрастен фону, чтобы легко можно было его прочитать. Но как определить, где слабый контраст, а где достаточный? Авторы WCAG озадачились этим вопросом и решили, что для этого нужно вначале определить некую относительную яркость цвета.

Относительная яркость позволяла бы сравнивать два цвета по их яркости. Можно было бы использовать L (lightness) из HSL, но она слишком быстро растёт для этого, что не позволит точно сравнивать контрастность.

Поэтому авторы WCAG придумали отдельную формулу. Посмотреть на её JS-реализацию можно по ссылке gist.github.com/jfsiii/5641126

Яркость получили, а дальше нужно просто поделить одну яркость на другую и дело в шляпе? Не всё так просто. Дело в том, что при таком подходе при приближении к нулевой яркости, контрастность будет уходить в бесконечность, что разумеется не имеет смысла.

Чтобы исправить этот недочёт авторы WCAG придумали добавлять к каждой яркости по 0.05, чтобы скорректировать это поведение. Далее большее число делим на меньше и получаем относительную контрастность.

Довольно примитивный подход, но он работает, потому что нам не нужно точно обрабатывать весь диапазон значений.

По сути нам нужны лишь три контрольные точки: 3:1 - Минимальная контрастность для большого или жирного текста. Уровень АА. 4.5:1 - Минимальная контрастность для обычного текста. Уровень АА 7:1 - Усиленная контрастность для обычного текста. Уровень ААА

Поэтому значения меньше 3 и больше 7 могут вести себя странно и полагаться на них при вычислении контрастности не стоит. Также WCAG формула не учитывает насыщенность цвета, ведь восприятие цвета у людей разное, а формула нужна универсальная.

А ведь для людей с обычным восприятием цвета, даже ОК 1:1 может быть читабельной, хоть и с трудом. А хорошая читабельность для такой комбинации начинается с более низких значений контрастности, хотя и может выглядеть вырвиглазно.

Еще один момент, который WCAG не покрывает, это толщина шрифтов. Воспринимаемая контрастность разительно зависит от семейства и толщины шрифта. Один и тот же шрифт при одинаковом font-weight может быть очень тонким или очень толстым, а разные шрифты могут отличаться размером.

Если вы используете font-weight: 400 с контрастностью 4.5, то достаточно странно, почему вам нельзя взять font-weight: 500 с ОК скажем 4.3, если разница в толщине заметна глазу. Более того, WCAG запрещает даже использование font-weight: 700, с ОК ниже 4.5 при размере 16px.

Формула WCAG учитывает только локальную контрастность. А человеческое зрение работает таким образом, что воспринимает контрастность от самого светлого участка до черного цвета за 100%. Это если упростить, но суть примерно такова.

Когда в вашем поле зрения есть яркие области, то верхняя граница ползёт вверх, а контрастность между цветами внутри диапазона падает. Например, когда в поле вашего зрения появляется солнце, то вам приходится щуриться, чтобы отрезать часть ярких зон и восстановить контрастность.

WCAG же исходит из того, что светлый цвет из двух это и есть максимальная яркость, на которую вы смотрите. Плюс добавляют погрешность на случай, если это не так. Такая контрастность является относительной, потому что может считаться корректно и от светлых цветов и от более тёмных

Представьте, что у вас есть кнопка, которая залита синим цветом, а текст черный. Кнопка имеет достаточную ОК и легко читается на тёмном фоне. Но стоит окружить эту кнопку светлым цветом и прочесть текст становится тяжелее.

Я попробовал воспроизвести этот кейс с кнопкой с ОК 4.5. Откройте REPL и используя кнопку настроек (иконка палитры) в правом верхнем углу переключайте светлую и тёмную тему. Как видите, в светлой теме текст заметно менее контрастен для глаз. numl.design/repl#6066dd9a6…

Может показаться, что пример немного искусственный, но в UI часто используют фон и текст одного оттенка на светлом фоне. В этом случае воспринимаемая контрастность тоже уменьшается, хотя и не так радикально. По ссылке две кнопки с ОК 4.5. numl.design/repl#6066e0186…

Проблему также можно заметить в тёмных темах, где ОК 4.5:1 легко достигается с помощью не сильно ярких цветов, но восприниматься это будет комфортно только в случае, если вокруг вас очень темно и на экране нет ярких объектов вроде картинок или интерфейса ОС увеличивающих диапазон

В подавляющем большинстве случаев формула WCAG прекрасно работает и может примерно указать, где контрастность становится достаточной. Но делать эту формулу строгим требованием к сайту я бы не стал. Стремление минимально удовлетворить формуле может привезти к ухудшению доступности

При разработке генератора цветовых тем в Numl я постарался учесть почти все эти нюансы, а также скорректировать насыщенность цвета для тёмных тем. Поэтому интерфейсы выглядит достаточно контрастными, независимо от типа темы, хотя ОК может падать до 3.5 в редких случаях.

В планах на этот год создать инструмент для определения относительной контрастности по формуле, которая будет учитывать цветовой контекст, реальную плотность и размер шрифта, а также насыщенность в условиях, когда внешнее освещение находится в диапазоне яркости монитора.

Фастфуд или ресторан? Овощи из супермаркета или фермерские? Коммерция или specialty? Почувствовали закономерность сравнения? Сегодня в пятницу хочется рассказать про огромный, насыщенный и классный мир specialty кофе.

Для начала разберемся с терминами. Коммерция – это кофе, который вы можете купить в любом супермаркете, сырье для такого кофе идёт среднего качества, часто это смесь из разных регионов, в лучшем случае будет написана страна произрастания, а может быть просто "арабика".

Из-за большого кол-ва дефектов его жарят до состояния темной обжарки. Длительная обжарка означает длительную реакцию сахароаминной конденсации (Maillard reaction или реакция Майя́ра) — в результате все вкусовые особенности зерна стираются, заменяясь жжёными сахарами (карамелью).

И это не вкусняшка, эта карамель придаст напитку лишь тёмный цвет и горечь жженого сахара. В ресторане, когда возьмете американо: вдохните запах чашки, сделайте 2-3 глотка напитка, если вы чувствуете вкус пережаренных сухарей, горечь, жженые семечки, то это оно, это коммерция!

Теперь про specialty. В 1978 году Эрна Натсен, начинавшая как секретарь в кофейной компании, а затем ставшая владельцем собственного бизнеса по импорту высококачественного кофейного зерна и продаже его независимым кофейным обжарщикам, ввела в оборот термин specialty coffee

Термин наилучшим образом отражал ее видение цели кофейной торговли, раскрытие особенных качеств каждого сорта зерна. Достижение этой цели требовало пересмотра отношения к обработке, обжарке и процессу приготовления кофе – и так началась история specialty кофе.

Specialty кофе — это своего рода высший сорт, самый качественный кофе. Этот класс присуждают только арабике. Если точнее — менее 10% от всего её производства. Робуста (другой популярный и с бОльшим кол-вом кофеина сорт кофе) и кофейные смеси в оценке не участвуют.

Если кратко, путь кофе от ягоды до чашки выглядит так: фермеры выращивают и собирают урожай, потом из ягод извлекают зёрна, высушивают их, упаковывают, транспортируют, обжаривают и готовят.

Ошибка, невнимательность или непрофессионализм на любом этапе снижают качество кофе. Но если путь пройден успешно, кофе может получить класс specialty.

Класс specialty присуждается не для сорта, а для конкретного лота этого сорта. Это значит, что условный лот Кении с одного урожая 2018 года, одной обработки с одной фермы и определённого количества может быть specialty, но в 2019 из-за каких-то проблем не получит этот класс.

Класс кофе определяет Q-грейдер. Чтобы получить на это право, он должен обучиться и сдать 20 экзаменов в CQI (Coffee Quality Institute). Он оценивает зелёные зёрна на наличие дефектов, квакеров (неспелые плоды), качество обработки и сушки.

Для оценки используется система баллов Q (Q grade system). Максимальная оценка, которую может получить кофе по этой системе — 100 баллов.

Кроме качества зерна, Q-грейдер оценивает аромат, вкус, послевкусие, кислотность, тело, баланс, чистоту чашки, однородность, сладость и дефекты во вкусе. При оценке лот должен набрать от 80 баллов.

Лоты от 90 баллов и выше — это уникальный кофе, обычно он идёт на чемпионаты и ограниченные обжарки, и в массовую продажу не попадает.

В России есть локальные обжарщики, которые сами ездят выбирать кофе на фермы или пробуют у конкретных поставщиков в Европе, после выбора кофе - остаётся ждать поставки зеленого зерна. Многие кофейни в России имеют собственные производства и квалифицированных обжарщиков.

После поступления зеленого зерна Обжарщик прогоняет несколько батчей обжарки – подбирая профайл на своём ростере для оптимальной обжарки конкретного зерна, чтобы на этапе заваривания раскрылся его вкус в полной мере.

После чего Бариста так же подбирает профайл для приготовления кофе своим способом, добавляя частицу души, выбирая крупность помола, температуру воды и её количество. А сам кофе, при таком деликатном подходе, остаётся «живым», он «дышит» и «стареет», меняется его вкус.

Чтобы в полной мере насладиться природным вкусом и не загубить все старания фермеров и обжарщиков при покупке нужно учитывать свежесть кофе, способ хранения, помол и правильность приготовления:

- Кофе должен быть свежим. Не покупайте кофе, который обжарили более двух месяцев назад. - Храните кофе в упаковке, которая не пропускает свет и имеет клапан, который выводит углекислый газ и не пропускает кислород.

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

- Не используйте кофемолки с лопастями из супермаркетов. Они мелют неравномерно. Выбирайте кофемолки с жерновами и читайте обзоры.

- Когда готовите кофе, используйте весы, чтобы точно соблюдать пропорции кофе и воды. Следите за температурой воды — она не должна быть кипятком.  Пропорции и рецепт зависит от зерна и способа приготовления.

Мы часто готовим кофе дома. Для разного зерна мы подбираем оптимальный помол и способ приготовления, чтобы максимально раскрыть вкус кофе. Готовим только specialty. Наш набор выглядит примерно так:

Обычная воронка V60 со сменными фильтрами. Позволяет раскрыть все ароматы, требует крупного помола и обжарки зерна под фильтр. Вес кофе 20г. Порция 250мл.

WACACO Nanopresso с Barista Kit - портативная ручная кофе-машина. Удобна в дороге и в поездках. Требует среднего помола и обжарки зерна под эспрессо или фильтр. Вес кофе 16г. Порция 160мл, два espresso.

Гейзерная кофеварка - быстрый способ приготовить кофе на плите. Требует мелкого помола и обжарки зерна под эспрессо. Ароматный кофе из неё получить сложно, из-за сильного нагрева, зато если повезёт с зерном, то получите неплохой espresso. Порция зависит от размера кофеварки.

Обычная недорогая кофемашина. Требует среднего или мелкого помола и обжарки зерна под эспрессо. Мы используем её, если зерно недостаточно хорошее для фильтра, а также для приготовления декафа. Вес кофе 20г. Порция 160мл, два espresso.

Градация кофе по кол-ву кофеина в условных единицах: - Робуста и смеси - от 3 до 4.5 и даже выше - Арабика - от 1.5 до 3. Обычно меньше кофеина в Кении, так как она выше растёт. - Декаф - от 0 до 1.5. Есть натуральные сорта с низким содержанием кофеина и есть декафинизированный.

Поэтому как правило любой декаф несмотря на название содержит кофеин, поэтому не стоит им злоупотреблять как и обычным кофе.

Тред был подготовлен совместно с моей девушкой Катей (ссылки на профиль нет, так как её нет в твиттере), которая привела меня в этот дивный мир кофе, за что ей большое спасибо! А также за множество интересных фактов изложенных в треде.

Воскресенье


Напоследок мини-тред про то, почему нужно часто заниматься рефакторингом. Постараюсь без банальностей про улучшение качества кода и технический долг.

Рефакторинг позволяет разработчику отвлечься от основных задач, сменить контекст и разгрузить голову. Как результат меньше выгорание, больше мотивации, меньше желания свалить на другую работу.

Рефакторинг позволяет расти разработчику, ведь ему приходится решать нетипичные вещи, составлять сложные логические связи и развиваться. Разработчикам полезно ощущать собственный рост.

Рефакторинг даёт возможность покопаться в неочевидных и скрытых частях проекта, освежить или получить знания о структуре проекта и его архитектуре, что всегда полезно. Таким образом разработчик будет проще и качественнее решать основные задачи

Рефакторинг позволяет наладить коммуникацию в команде, потому что зачастую требует вовлечения нескольких членов команды. Обсуждение укрепляет команду, а распространение знаний делает её сильнее. Каждый член команды начинает проявлять больше эмпатии по отношению к коллегам.

^ Речь не только про обычный рефакторинг, но и про внедрение новых тех фич, вроде тестов и линтеров, а также про обновление версий библиотек и некритичное улучшение API внутри приложения.

Такие задачи, не связанные с конкретными бизнес-задачами или user story, могут занимать до 50% времени разработчика и при этом ускорять процесс разработки, а не тормозить.

Дайте разработчикам шанс с помощью кода и инструментов повысить свою эффективность и это окупится раньше, чем вы можете себе представить.

Финальный мега-тред с подборкой всех тредов за неделю, на случай, если вы что-то пропустили.

Мне 33 года и за это время я неплохо научился верстать. Люблю пробовать новое и ввязываться в истории. А это тред рандомных фактов из моей жизни. Сообщения из него, получившие много лайков, получат отдельный тред с подробностями. Поехали! :) 0/15
Рандомные факты из моей жизни twitter.com/itunderhood/st…

Сегодня поговорим про здоровье. Про то как я его долго и уверенно портил, а потом всё же смог восстановить, несмотря на неоднозначный прогноз.
Про здоровье и мой опыт его восстановления twitter.com/itunderhood/st…

Здоровье обсудили, теперь вернёмся к намного более простым вещам - фронтенду. Последние пару лет я занимался разработкой Open Source дизайн-системы-UI-фреймворка для веб под названием Numl.Design И хочу поделиться к каким архитектурным "открытиям" я пришел. 1/
Про атомарный UI: концепция, преимущества и примеры twitter.com/itunderhood/st…

Спецификация доступности WCAG требует соблюдать относительную контрастность (далее кратко "ОК") между текстом и фоном, но что это такое и как его посчитать? Почему она относительная? Почему формула WCAG не всегда работает корректно? И причем тут тёмные темы? Тред.
Про вычисление контрастности между текстом и фоном, WCAG формулу и её недостатки twitter.com/itunderhood/st…

Фастфуд или ресторан? Овощи из супермаркета или фермерские? Коммерция или specialty? Почувствовали закономерность сравнения? Сегодня в пятницу хочется рассказать про огромный, насыщенный и классный мир specialty кофе.
Про specialty кофе, историю и методы заваривания twitter.com/itunderhood/st…

Напоследок мини-тред про то, почему нужно часто заниматься рефакторингом. Постараюсь без банальностей про улучшение качества кода и технический долг.
Зачем нужен рефакторинг twitter.com/itunderhood/st…

Numl.Design v1 is released! After two years and 1,500+ of commits, we're finally releasing a stable version. We thank everyone who has supported us all this time. We made it! 🤗🤩🥳
Бонусный тред от меня про NumlDesign приуроченный к релизу стабильной версии. Специально для заинтересовавшихся. twitter.com/numldesign/sta…

Неделя закончилась! С вами был @tenphi и его очаровательная ассистентка контент-криейтор Катя. Добавляйтесь в друзья, пишите письма, всем хороших выходных и отличной следующей недели!
notion image

Ссылки