Habr.com

Syndicate content Хабр
Updated: 1 hour 57 min ago

LED-лампочки: линейный драйвер и пульсация

Tue, 09/21/2021 - 21:33
Из-за подорожания электронных компонентов и увеличения стоимости морских перевозок всё больше недорогих светодиодных ламп на нашем рынке оснащаются дешёвыми линейными драйверами.

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

Читать дальше →

[Перевод] Особое мнение Ричарда Фейнмана по гибели шаттла “Челленджер”

Tue, 09/21/2021 - 20:01

В процессе чтения неплохого поста про американскую SLS наткнулся на цитату из документа, на который часто ссылаются в постах про Space Shuttle, но целиком на русском я его найти не смог - особое мнение Ричарда Фейнмана в составе комиссии по расследованию катастрофы шаттла "Челленджер" в 1986 году.

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

Читать далее

Безопасная многопоточность в Rust

Tue, 09/21/2021 - 19:25

Представьте ситуацию: вы решили добавить функционал в некоторую сущность (класс, структуру, ...). Для этого вам понадобилось хранить внутри сущности дополнительные данные. Вы добавляете приватные поля, меняете и читаете их внутри методов, интерфейс методов не изменяется, и всё выглядит хорошо. И не просто выглядит, а компилируется, запускается и проходит тесты. Красота... А потом, в один прекрасный день, прод падает. И может быть даже, теряет часть важных данных. Вы с коллегами начинаете искать причину поломки. И оказывается, что та сущность, которую вы дополняли год назад, делится между несколькими потоками, а поля добавленные вами не потокобезопасны и поэтому гонка за доступ к ним в какой-то момент вызывает их повреждение. Неприятно, согласитесь? Хотелось бы иметь инструмент, позволяющий избегать подобных ситуаций. И язык программирования Rust такой инструмент предоставляет.

Читать далее

[Перевод] 11 проектов, которые нужно сделать, чтобы стать мастером фронтенда

Tue, 09/21/2021 - 18:30

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

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

Читать далее

15 мемов о СRM: смех и страдания

Tue, 09/21/2021 - 18:13

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

Читать далее

Австралия vs США. Что выбрать русскому программисту?

Tue, 09/21/2021 - 18:00


Саша Штейников родился в Тюмени, но потом много лет работал программистом в Австралии, и получил там гражданство. А сейчас уже второй год живет в США, работая на Uber в Сиэтле.


Мы с ним провели самое детальное сравнение двух стран. Где комфортнее будет жить на зарплату? Где безопаснее? В чем разница двух культур? Чем отличается атмосфера в компаниях AU и US? Где лучше медицина? Где красивее природа? Где на дорогах настоящий ад? И куда всё-таки стоит переезжать?


Слово Саше.

Читать дальше →

Java 17: Pattern Matching for switch

Tue, 09/21/2021 - 17:52

14-го сентября состоялась презентация Apple, в этот же день произошло не менее важное событие - релиз Java 17.

Среди новых фич подъехал паттерн матчинг для switch в preview моде.

История началась с того, что в jdk 16 расширили instanceof оператор, который теперь может принимать type pattern и выполнять матчинг по паттерну. Это маленькое изменение позволило упростить типичную конструкцию с проверкой на тип и последующее приведение.

Читать далее

На работу как на праздник

Tue, 09/21/2021 - 17:48

А вы знали, что по производственному календарю в 2021 году 118 нерабочих дней? Праздники и присоединенные к ним выходные. Таким образом, россиянам официально можно не ходить на работу каждые три дня. Тем любопытнее было узнать, как в новой реальности, с учетом недавней самоизоляции и победившей тотальной удаленки, наша команда относится к работе в офисе и за его пределами. Кстати, порог московского R&D-центра Parallels большая часть сотрудников не пересекала уже полтора года. И до наступления нового года все останется без изменений.

Читать далее

Миниморфизм — новое направление в веб-дизайне

Tue, 09/21/2021 - 17:38

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

Читать далее

Создаём анимационные обучающие видео на Python с помощью Manim

Tue, 09/21/2021 - 17:30
Привет! Меня зовут Константин Мохов, я тимлид, который однажды прошёл курс Практикума по аналитике данных, по большей части для собственного развития. Тема создания анимированных видео на Python заинтересовала меня позже, когда в телеграм-канале Алексея Макарова из Практикума появилось сообщение, что его команде нужна помощь с анимацией. Мне захотелось попробовать создать интересное и наглядное обучающее видео, раскрывающее одну из тем курса, например, гистограммы.

Я углубился в изучение вопроса и перечитал немало статей на тему создания анимации «как у 3Blue1Brown», которые в основном были либо переводами, либо копией оригинального туториала Гранта Сандерсона. Грант создал и выложил в открытый доступ специальную библиотеку на Python — Manim, которая предназначена для создания анимации. В роликах, запрограммированных с помощью Manim, он объясняет математические темы на своём YouTube-канале.

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


А теперь поехали!

Госуслуги, уязвимость сессии

Tue, 09/21/2021 - 16:34

С августа 2021 года (по информации знакомого, работающего в гос.центре) на портале госуслуг (далее ЕПГУ) ввели ограничения/усложнения на самостоятельную привязку мобильного номера телефона к действующей, подтвержденной учетной записи пользователя. Подобными действиями увеличив на сотрудников нагрузку, оказывающих в тч услуги по привязке мобильного к учётке пользователя. Запасной вариант (не для всех): номер абонента так же можно привязать к ЕПГУ, например, через Сбербанк, Почтабанк (если имеются полноценные аккаунты в этих сервисах).

Читать далее

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

Tue, 09/21/2021 - 16:03
После очередного поста про работу нашего VDS-хостинга под постом одна крупная и уважаемая компания оставила длинный комментарий с оправданиями своего косяка, упомянутого в посте. Что интересно, до этого их представитель позвонила мне и провела диалог, который сводился к «у нас, в мире крупных компаний, так не принято». В голове сразу всплыли контрпримеры, когда сервис в энтерпрайзе хуже, чем в забегаловке где-нибудь в Сочи. Про них я и хочу рассказать.

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


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

5 проблем и их решения при создании высоконагруженного сервиса с использованием .NET и Kafka

Tue, 09/21/2021 - 14:57

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

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

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

Читать далее

Асинхронность в С++20. Доклад в Яндексе

Tue, 09/21/2021 - 14:54
Привет, это Григорий Демченко из WhatsApp. Мой доклад посвящён использованию сопрограмм в C++20. Я не стал говорить про низкоуровневые примитивы и то, как компилятор поддерживает сопрограммы и преобразовывает соответствующий код. Вместо этого акцент сделан на практическом применении сопрограмм для решения конкретных задач высокопроизводительных масштабируемых систем. Это именно то, ради чего создавались сопрограммы в новом стандарте, и то, с чем разработчик будет иметь дело в процессе проектирования и программирования. Я постарался рассмотреть конкретные примеры и проблемы, с которыми можно столкнуться при использовании полностью асинхронного подхода.

— О чём я сегодня расскажу? Первое — введение в асинхронность. Далее мы рассмотрим примитивы, которые можно использовать в новом стандарте, и интеграцию с планировщиками. Также немаловажным аспектом будет являться работа со старым кодом, если мы пишем новый код с использованием нового подхода. Затем я покажу бонус, достаточно интересный и необычный. И подведём итоги того, что у нас получилось.
Читать дальше →

Полезные мелочи Windows администратора, поиск компьютеров пользователей и не только

Tue, 09/21/2021 - 14:26

Как-то давно на хабре публиковалась статья Опытные мелочи Windows-админа. В ней рассказывалось как быстро и достаточно эффективно находить компьютеры на которых залогинился тот или иной пользователь.

Мне эта идея понравилась, т.к. всё делается достаточно просто, быстро и без модификации схемы Active Directory. Я постепенно улучшал изложенные в статье подходы и в итоге появились три скрипта, которыми я и хочу поделится с вами.

Читать далее

[Перевод] Бессерверные вычисления — состояние индустрии

Tue, 09/21/2021 - 13:39

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

Бессерверные вычисления применяются в широком спектре сценариев — от решения краткосрочных задач до создания ориентированных на пользователей приложений. AWS Lambda — наиболее проработанная и широко используемая FaaS-платформа, основанная на модели «функция как услуга», но далеко не единственная. Распространение таких систем, как Azure Functions и Google Cloud Functions, также идёт впечатляющими темпами. Сегодня бессерверная экосистема вышла уже далеко за пределы модели FaaS и теперь включает десятки сервисов, помогающих разработчикам создавать более быстрые и динамичные приложения. Четверть клиентов Amazon CloudFront уже используют бессерверные периферийные вычисления, а также применяют функции AWS Step Functions для управления прикладной логикой самых разных распределённых компонентов.

В этом отчёте мы расскажем вам о важнейших инсайтах и трендах бессерверного ландшафта.

Читать отчет далее

Jetpack Microbenchmark — тестируем производительность кода

Tue, 09/21/2021 - 13:30

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

В этой статье расскажу, как устроена и работает библиотека Microbenchmark от Google, а также покажу примеры использования. С ней можно не только оценить производительность, но и решить спорные ситуации на код-ревью.

Читать далее

Способы обмена знаниями в компаниях

Tue, 09/21/2021 - 12:58

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

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

Читать далее

Решил 50 задач и ответил на вопрос — Python или JavaScript?

Tue, 09/21/2021 - 12:50


Привет, друзья!


Я — JavaScript-разработчик. Код пишу в основном на React (иногда на Vue), немного на TypeScript, немного на Node, немного знаю SQL, но...


  • со мной работает много людей, которые пишут код на Python
  • вокруг много разговоров про Python
  • повсюду преподают Python
  • Яндекс любит Python (раньше Гугл тоже его любил, но теперь у него есть Go)

Короче говоря, сложно было не заинтересоваться Python.


Как известно, лучший способ научиться "кодить" — это писать код.


Предлагаю вашему вниманию 50 популярных в сфере программирования задач, решенных с помощью Python и JavaScript.


Цель — сравнить языки на предмет предоставляемых ими возможностей.


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


Предполагается, что вы владеете хотя бы одним из названных языков на среднем уровне.

Читать дальше →

Как устроен The Update Framework (TUF). Обзор технологии безопасного обновления ПО

Tue, 09/21/2021 - 12:32

The Update Framework (TUF) — программный фреймворк с открытым кодом для защиты репозиториев, из которых скачиваются обновления. Главная задача TUF — предоставить возможность обновлять софт безопасно, а также минимизировать ущерб в случае, если обновление скомпрометировано. Фреймворк можно использовать для создания собственной системы обновления ПО (например, менеджера пакетов) либо для повышения безопасности существующей.

В 2017 году TUF приняли в экосистему CNCF, а в 2019-м он стал первым выпускником среди проектов из области безопасности. TUF ориентирован на внедрение в любые системы обновления ПО и системы управления конфигурациями (а раз проект в CNCF, то речь, конечно, идет про решения из мира cloud native). Его уже используют Microsoft, Amazon, Google, DigitalOcean, Docker, IBM, Datadog, VMware, Red Hat и другие компании.

Читать далее

Who's online

There are currently 1 user and 1 guest online.