Как стать автором
Обновить
-12
0

Пользователь

Отправить сообщение

Как я собрал красивое ведро для гидропоники

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров30K

Несколько лет назад я писал пост о том, как вырастить на гидропонике крайне острый Trinidad Scorpion CARDI. Он, при его живительных 1.2 миллионах единиц Сковилла, на неподготовленных перцеедов производит впечатление эквивалентное облизыванию паяльника.

Пока Монстр плодоносил и радовал в течение нескольких лет, я продумывал более удобный вариант гидропонной установки, который было бы не стыдно показывать в приличном интерьере гостям. Классический вариант “юного гидропониста” из канализационных труб, алюминиевого скотча и вороха булькающих трубочек был с негодованием забракован женой. Я разработал и протестировал несколько прототипов с 3D-печатными элементами, но потом проект был поставлен на паузу.

Окончательно доделать его получилось после того, как внезапно выяснилось, что коллеги тоже фанаты острого. Мы собрались в нашей виртуальной “курилке”, запилили проект со всеми положенными milestone в Asana и начали тестировать. Садитесь поудобнее, сегодня будет лонгрид-оффтопик, про то, как толпа DevOPS из WiseOPS пилила совместный хобби проект для украшения офиса. Да, мы заняты не только работой) А еще я поделюсь подробной инструкцией и файлами для 3D-печати.

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

Читать далее
Всего голосов 110: ↑109 и ↓1+132
Комментарии166

Event Loop в деталях

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров72K

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

JS был спроектирован как однопоточный язык программирования. Это значит, что он может выполнять только одну операцию одновременно. Тем не менее у JavaScript есть такой механизм как Event Loop, который как раз и позволяет выполнять "асинхронные" операции. Почему "асинхронные" в кавычках? Да просто потому что JavaScript тоже выполняет их синхронно, асинхронности в самом JavaScript как таковой нет. Вперед под кат, будем разбираться)

Promise.then()
Всего голосов 23: ↑20 и ↓3+19
Комментарии14

Крыша поехала: как понять, что пора к психотерапевту, и как его найти

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

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

image
Читать дальше →
Всего голосов 39: ↑25 и ↓14+11
Комментарии68

25 и 26 сентября — открытые дни на Frontend Live

Время на прочтение7 мин
Количество просмотров3.1K
В эти дни принять участие в конференции может любой желающий. Но нужно зарегистрироваться. Смотрите, что вам будет по душе в полном расписании Frontend Live.

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

Что нового есть во Frontend и что мы можем сделать лучше?



Читать дальше →
Всего голосов 37: ↑37 и ↓0+37
Комментарии1

Думал, что добьюсь большего к своим 35

Время на прочтение3 мин
Количество просмотров115K


Уже два часа дня? Ничего за сегодня не сделал. Проснулся, потянулся, видел 6 голосовых сообщений — проигнорировал, принял душ, съел 3 вафли и улегся с мыслями, что мне 35, а я так и не выучил французский. Стоп, я не был в душе, это было вчера.


Попытался купить себе новые конверсы (кроссовки), но не смог выбрать между серым и обсидиановым, оба цвета мне не нравятся. Затем я отвлекся на лайфхаки на Medium, залип там минут на 90. Мне 35! Я думал, что уже давным-давно куплю себе крутую обувь и снимусь в фильме. Мой друг Сэнджей и то снялся в инди фильме. Все время рассказывает об этом.

Читать дальше →
Всего голосов 133: ↑98 и ↓35+96
Комментарии666

Надо помолчать

Время на прочтение3 мин
Количество просмотров56K
Нет, не пРомолчать, просто помолчать. Недолго, максимум — несколько минут. Нет, не чтобы собраться с мыслями. И не всем. Сейчас объясню.

Надо помолчать

UPD. Перевел этот текст на английский.

На работе я часто обсуждаю сложные задачи с коллегами. Например, про дизайн языка в Котлине или про стратегию продукта в Альтере. И мне приходят в голову решения. Часто очень быстро, прямо сразу. И много лет я просто сразу их и высказывал. Потому что я придумал решение, и рад, и горжусь, потому что так же быстрее найдем решение, что мое решение мне нравится, потому что хочется, чтобы все видели, как я быстро соображаю, и т.д. А теперь я стараюсь так не делать. Стараюсь помолчать пару минут, чтобы остальные успели высказать свои идеи.

Почему я так делаю? Потому что со временем я заметил, что иначе я мешаю остальным
Читать дальше →
Всего голосов 182: ↑176 и ↓6+220
Комментарии126

Двоичное‌ ‌кодирование‌ ‌вместо‌ ‌JSON

Время на прочтение6 мин
Количество просмотров15K
Кодируйте‌ ‌одни‌ ‌и‌ ‌те‌ ‌же‌ ‌данные‌ ‌гораздо‌ ‌меньшим‌ ‌количеством‌ ‌байт.‌ ‌

image

Почему‌ ‌меня‌ ‌это‌ ‌должно‌ ‌волновать ‌


Данные‌ ‌хранятся‌ ‌в‌ ‌памяти‌ ‌в‌ ‌виде‌ ‌структур‌ ‌данных,‌ ‌таких‌ ‌как‌ ‌объекты,‌ ‌списки,‌ ‌массивы‌ ‌и‌ ‌т.д.‌ ‌Но‌ ‌если‌ ‌вы‌ ‌хотите‌ ‌отправить‌ ‌данные‌ ‌по‌ ‌сети‌ ‌или‌ ‌в‌ ‌файле,‌ ‌вам‌ ‌нужно‌ ‌закодировать‌ ‌их‌ ‌в‌ ‌виде‌ ‌последовательности‌ ‌байтов.‌ ‌Перевод‌ ‌из‌ ‌представления‌ ‌в‌ ‌памяти‌ ‌в‌ ‌последовательность‌ ‌байтов‌ ‌называется‌ ‌кодированием,‌ ‌а‌ ‌обратное‌ ‌преобразование‌ ‌–‌ ‌декодированием.‌ ‌Со‌ ‌временем‌ ‌схема‌ ‌данных,‌ ‌обрабатываемых‌ ‌приложением‌ ‌или‌ ‌хранящихся‌ ‌в‌ ‌памяти,‌ ‌может‌ ‌эволюционировать,‌ ‌туда‌ ‌могут‌ ‌добавляться‌ ‌новые‌ ‌поля‌ ‌или‌ ‌удаляться‌ ‌старые.‌ ‌Следовательно,‌ ‌используемая‌ ‌ кодировка‌ ‌должна‌ ‌иметь‌ ‌как‌ ‌обратную‌ ‌(новый‌ ‌код‌ ‌должен‌ ‌быть‌ ‌способен‌ ‌читать‌ ‌данные,‌ ‌написанные‌ ‌старым‌ ‌кодом),‌ ‌так‌ ‌и‌ ‌прямую‌ ‌(старый‌ ‌код‌ ‌должен‌ ‌быть‌ ‌способен‌ ‌читать‌ ‌данные,‌ ‌написанные‌ ‌новым‌ ‌кодом)‌ ‌совместимость.‌ ‌

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

Типы‌ ‌форматов‌ ‌кодирования‌


Существует‌ ‌два‌ ‌типа‌ ‌форматов‌ ‌кодирования:‌ ‌

  • Текстовые‌ ‌форматы‌ ‌
  • Двоичные‌ ‌форматы‌
‌ ‌
Читать дальше →
Всего голосов 19: ↑11 и ↓8+11
Комментарии41

Десять заповедей React компонентов

Время на прочтение11 мин
Количество просмотров12K

the-10-component-commandments


Написано Kristofer Selbekk, в сотрудничестве с Caroline Odden. Основано на лекции с таким же названием и с теми же людьми, состоявшейся на встрече ReactJS в Осло в июне 2019 года.

От переводчика — оригинальное название The 10 Component Commandments не упоминает React, но большинство примеров и рекомендаций относятся именно к реакту, к тому же статья выложена под react тэгом и написана реакт разработчиками.


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


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

Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии0

Как использовать Инверсию Управления в JavaScript и в Reactjs для упрощения работы с кодом

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров13K

Как использовать Инверсию Управления в JavaScript и в Reactjs для упрощения работы с кодом


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


Если вы уже писали код который используется больше чем в одном месте, то вам знакома такая ситуация:


  1. Вы создаете многократно используемый фрагмент кода (это может быть функция, React компонент, React хук и тд) и делитесь им (для совместной работы или публикуя в опенсорс).
  2. Кто-то обращается к вам с просьбой добавить новый функционал. Ваш код не поддерживает предложенный функционал, но мог бы, если бы вы сделали небольшое изменение.
  3. Вы добавляете новый аргумент/проп/опцию в свой код и в связанную с ним логику для поддержания работы этого нового функционала.
  4. Повторите стадии 2 и 3 несколько раз (или много-много раз).
  5. Теперь ваш повторно используемый код тяжело использовать и поддерживать.

Что именно делает код кошмаром для использования и поддержки? Есть несколько аспектов, которые могут сделать ваш код проблемным:

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии6

Повышаем эффективность взаимодействия дизайнеров и frontend-разработчиков

Время на прочтение9 мин
Количество просмотров6.4K
Когда к списку ключевых услуг нашего аутсорс-продакшена добавился дизайн, мы решили, что не хотим работать по общепринятым стандартам. Мы стали искать особый подход к дизайну: максимально качественно, максимально оперативно, максимально экономно. И мы его нашли — просто поменяв местами дизайнеров и верстальщиков.


Читать дальше
Всего голосов 4: ↑3 и ↓1+4
Комментарии18

Использование микрофона для создания произведений искусства, реагирующих на звук, на Javascript

Время на прочтение5 мин
Количество просмотров3.6K
Несколько приёмов для создания произведений процедурального (генеративного) искусства.

image

Настройка объекта для микрофона – вещь достаточно лёгкая, хоть и сначала может показаться сложной. Не надо волноваться. Даже если вы это не очень понимаете, то и не нужно. Потому что когда всё настроено и работает, вам больше никогда не придётся проделывать это всё снова…
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии3

12 советов по внедрению TypeScript в React-приложениях

Время на прочтение9 мин
Количество просмотров36K
TypeScript — стандарт современной фронтенд-разработки. Согласно исследованиям State of JavaScript, TS вызывает явный интерес у программистов. По данным опроса за 2019 год, почти 60% респондентов пробовали TS и продолжают использовать, 22% не пробовали и желают изучить.

Эта статья — сборник советов о том, как внедрить и улучшить использование TypeScript. Первая половина советов общая, касающаяся подходов и инфраструктуры. Вторая — несколько особо полезных фишек языка.


Читать дальше →
Всего голосов 60: ↑60 и ↓0+60
Комментарии43

5 ловушек на пути к личной эффективности

Время на прочтение5 мин
Количество просмотров13K
Если вы научились держать все сферы жизни под контролем, прочитайте другой материал. Но если работа из дома заставила вас задуматься о повышении личной эффективности, этот разбор – для вас. На основании личного опыта и общения с коллегами Кирилл Белобородько, проектный и people-менеджер в харьковском офисе EPAM, собрал типичные ошибки, которые могут загнать новичка в прокрастинацию, вместо того, чтобы помочь успевать больше.

Кирилл – давний адепт инструментов для повышения личной эффективности. Он активно внедряет их не только в свою работу, но и практически во все сферы жизни. Этой весной, когда карантин потребовал от большинства IT-профессионалов работать удаленно, они помогли ему оставаться продуктивным дома и удерживать здравый work-life balance. По нашей просьбе Кирилл делится своим опытом и рекомендациями с вами.


Читать дальше →
Всего голосов 5: ↑4 и ↓1+4
Комментарии10

«Покинуло сортировочный центр»: как устроена логистика Почты России

Время на прочтение7 мин
Количество просмотров303K
Если вы отправляли письмо из Москвы в Москву, то могли обратить внимание, что оно сделало непонятный крюк. К примеру, письмо из Алтуфьево в Ясенево может проехать через подмосковный Ногинск. Вот трекинг тестового письма, отправленного из Тверского района Москвы в Лефортово. Его маршрут выглядит так:



Давыдково — это крупный сортировочный центр во Внуково. Прежде чем попасть к получателю, письмо пройдёт три сортировки. Расстояние, которое оно проезжает, почти в десять раз больше очевидной удаленности по карте.
Читать дальше →
Всего голосов 37: ↑33 и ↓4+46
Комментарии114

Как уберечь свои данные от воровства, перепить Левелорда и построить карьеру в IT, если у вас шиза

Время на прочтение5 мин
Количество просмотров12K
За фото благодарим imater
На самом деле, на КДПВ не рабочее место на балконе, это обман зрения. Там пляж, шашлычки на природе и вот это все...

Привет, Хабр! На июнь мы подготовили для вас целых 5 новых спикеров, будем говорить:

  • Об утечках данных с Ашотом Оганесяном
  • О фронтенде Яндекс.Денег с тимлидом Ильей Кашлаковым
  • О том, как отучить целую страну качать фильмы с торрентов с CTO Okko Алексеем Голубевым
  • Как строить карьеру в IT, если у вас психическое расстройство с маркетологом RUVDS Санией Галимовой

Есть и супербонус: вы сможете сыграть на выпивание с Ричардом Левелордом Греем на zoom-посиделке и попытаться его обыграть.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+38
Комментарии22

Как мы создаем свой продукт. Часть первая, исследовательская

Время на прочтение11 мин
Количество просмотров3.8K
image
Мир IT разнообразен донельзя. Кто каких только технологий и решений не создает, что только не разрабатывает! Компании творят продукты каждая по-своему, но многие процессы схожи, а потому могут оказаться полезным опытом для заимствования. Вот мы и подумали: а почему бы не рассказать вам о том, как мы создаем наш флагманский продукт Solar Dozor? Команда у нас очень опытная и энергичная. Каждый день нам приходится решать нетривиальные задачи, искать киллер фичи и увязывать пожелания заказчиков с собственным роудмапом. Вдруг наш опыт кому-то пригодится?

В общем, решили – запускаем серию статей о том, как, где и при каких обстоятельствах рождается наша DLP-система. Все откровенно, по-честному, с фото и, может, даже видеопруфами. А сегодня вы узнаете, с чего начинается создание нашего продукта. Знакомьтесь – discovery-лаборатория Dozor Research Lab.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии0

Как стать долларовым миллионером за 30 лет, лежа на диване

Время на прочтение12 мин
Количество просмотров240K


На Хабре недавно вышел пост ״Новичкам фондового рынка: честные разговоры о трейдинге״. Этот пост, опубликованный в одном из самых читаемых блогов Хабра, вводит людей в заблуждение и создает у них ложное представление о том, что игра на бирже — хороший способ заработка. Это вынудило меня написать комментарий, постепенно переросший в целую статью, с детальным разбором того, почему трейдинг — это не способ разбогатеть, а способ потерять деньги, и о том, как на самом деле заработать на инвестициях.
Поехали!
Всего голосов 238: ↑221 и ↓17+274
Комментарии557

Single sign-on для SSH своими руками

Время на прочтение13 мин
Количество просмотров20K
TL;DR В этот статье мы установим single sign-on для SSH от Google. За кулисами мы воспользуемся OpenID Connect (OICD), краткосрочными SSH сертификатами, несколькими хитростями конфигурации SSH, и опенсорсными пакетами step-ca и step от Smallstep. Мы настроим SSH Certificate Authority и воспользуемся им, чтобы загрузить в нашей системе нового пользователя и новый хост. Этот метод привносит много преимуществ помимо single sign-on, так как отпадает нужда в сборе, передаче и контроле файлов authorized_keys, хоть и требует больше подготовительной работы по сравнению с настройкой типичной пары открытого/секретного SSH ключей.

Как не следует пользоваться SSH


Еще в далеком 2004 году кто-то научил меня копипастить открытый ключ в файл authorized_keys. С тех пор я продолжал невинно копировать один и тот же старый публичный ключ на каждый сервер, с которым мне приходилось работать, и у меня постоянно не получалось сделать это с первого раза, потому что я забывал корректно настраивать chmod.
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии4

Не решать за дизайнера задачу дизайнера

Время на прочтение26 мин
Количество просмотров20K
Привет, Хабр.

Последние 3 месяца около 40% моего рабочего времени занимает общение с дизайнерами. Спасибо, но жалеть не нужно. Шучу. Нужно. Дизайнеров.

Про то, что дизайн — это не про нарисовать, а про спроектировать, мне уже показали. А о том, почему это так, нашла доступное объяснение от Кости Горского, в прошлом артдира Яндекса. Видео доступно по ссылке.


Читать дальше →
Всего голосов 18: ↑15 и ↓3+24
Комментарии40

Топ-5 классических книг для улучшения финансовой грамотности и подготовки к первым шагам на бирже

Время на прочтение3 мин
Количество просмотров29K

Изображение: Unsplash

Карантин – отличное время для того, чтобы улучшить финансовую грамотность и разобраться в вопросах инвестирования. Мы подготовили список из пяти классических книг, переведенных на русский язык, прочтение которых позволит вам понять философию ведущих мировых инвесторов и изучить факторы, на которые они опираются при принятии решений.
Читать дальше →
Всего голосов 10: ↑7 и ↓3+10
Комментарии4

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность