Pull to refresh
2
0
Максим @khmm12

User

Send message

Вы когда-нибудь думали о том, чтобы создать свой стартап? Почти каждому стартапу (да и +/- любой компании) нужен лендинг/сайт. А у каждого сайта вверху есть хедер с меню навигации.

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

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

А ещё поддерживать навигацию с помощью клавиатуры, а для этого, как минимум, необходимо следовать семантике и не использовать div'ы вместо button.

представляющий собой универсальный хедер.

А что делать, если дизайнер хочет переключалку слева?

padding: 0 15px !important;

https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity

Тогда другим будет проще стилить.

P.S. Actions Code speaks louder than words (c)
Реальность такова, что те, кто хочет быстро сделать на коленке, скорее всего возьмут готовый CSS фреймворк или фреймворк на основе фреймворка; а остальные потратят меньше времени на разработку ещё одного navbar, чем на monkey-patching готового.

Если это сильное короткое проветривание, то влажность, конечно, не удержать, но и длится оно недолго — увлажнитель не потратит много воды впустую.

Справедливое замечание. Сейчас посчитал, даже в худшем случае это меньше стакана воды.

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

Поделюсь своим опытом автоматизации такого же увлажнителя. Тоже использую HA + Node-RED.

Для себя определил следующие сценарии:

  1. Выключить экран перед сном. Перевести увлажнитель в ночной режим (низкая скорость). Гигиена сна.

  2. Включить экран утром. Перевести скорость на автоматический режим. Стандартный рабочий режим.

  3. Во время проветривания (створка окна открыта) отключить увлажнитель. Проветриванием считается открытая створка окна более 30 секунд. Нет никакого смысла тратить воду на воздух, который сразу вылетит в вентиляцию.

  4. После проветривания. Если влажность в помещении более 40% (комфортный минимум), то перевести в автоматический/тихий режим, в противном случае максимальная скорость до достижения минимально требуемой влажности или 15 минут (отсечка по тайм-ауту). Нужно оперативно увлажнить воздух.

  5. Если есть кто-то дома/пришли домой и вода в баке заканчивается, прислать уведомление на телевизор и в телегу.

В остальное время (стандартный режим работы) необходимая влажность задана 60% и увлажнитель сам самостоятельно управляется в автоматическом режиме. По следующим причинам:

  1. Дисковый увлажнитель чисто физически не сможет переувлажнить воздух. Скорость испарения стремительно падает при приближении к точке росы. Поэтому для меня желаемая влажность - максимум.

  2. Если отключать увлажнитель при отсутствии дома, то предметы начинают высыхать. В итоге происходит лаг набора необходимой влажности.

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

useDeepEffect пишется гораздо проще путём глубокой мемоизации его зависимостей.

import { useRef, useEffect, DependencyList } from 'react'

function useDeepCompareDeps(deps: DependencyList | undefined): DependencyList | undefined {
  const ref = useRef(deps)
  if (!isEqual(ref.current, deps)) ref.current = deps
  return ref.current
}

const useDeepEffect: typeof useEffect = (fn, deps) => useEffect(fn, useDeepCompareDeps(deps))
Советую попробовать asdf. Очень похож на rbenv/nodenv, но поддерживает NodeJS, Ruby, Python, Dart, Flutter, Go, Elixir.

Минерализатор служит одной простой цели — изменить вкус воды на выходе. Ни о каком тотальном изменении содержания минералов и речи не идёт, о чём тот же Atoll прямо говорит.

Речь шла только об одном конкретном случае — работа с объектами. Прошу прощения, стоило уточнить.
Spread оператор это синтаксический сахар над Object.assign

const newEntity = { ...original, ...mutation }

Эквивалентно
const newEntity = Object.assign({}, original, mutation)

Information

Rating
Does not participate
Location
Саранск, Мордовия, Россия
Registered
Activity