Pull to refresh
9
0
Send message

Секретная плата с китайского экзамена по электронике

Level of difficultyEasy
Reading time8 min
Views56K


Привет, Хабр! Китай является мировым лидером в производстве электроники во многом потому, что имеет систему образования, ориентированную на развитие этой отрасли.

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

Моя любимая задача для собеседований по программированию

Level of difficultyMedium
Reading time9 min
Views104K

В сети есть уйма постов и видео, где разбираются ответы на вопросы LeetCode. Но обычно рассмотрение в них происходит с позиции соискателя, а не работодателя. В этой же статье я приведу разбор собственной задачи по программированию, которую использовал при приёме людей на работу в Amazon, Google и Microsoft.
Читать дальше →

Наши на Standoff. Как проходит крупнейшая кибербитва страны

Level of difficultyEasy
Reading time3 min
Views4.9K

Кибербитва Standoff 12 идёт уже несколько дней, и просто сообщить о её начале было бы недопустимым упущением. Да, этот пост о том, что происходит на крупнейшей площадке, собравшей лучшие умы и технологии, в число которых, кстати, входит наш спутник. Поехали!
Читать дальше →

Ультрабюджетный домашний сервер и что он может

Level of difficultyEasy
Reading time14 min
Views102K


Давеча мне попалась интересная материнская плата на процессоре Celeron J1800 за цену аж в 850 рублей! В повседневном использовании этот процессор, мягко говоря, не очень хорош, а в роли домашнего сервера у него могут быть все шансы, особенно при такой цене. В статье проведём тесты и изучим его реальные возможности и потребление в паре с бюджетным SSD.
Читать дальше →

Проект «Селенит». Часть 2: Квадратурный смеситель

Level of difficultyMedium
Reading time9 min
Views12K

В каждой конструкции есть какое-либо основополагающее решение. Разработанный в рамках проекта трансивер Selenite Lite – не исключение. Основой радиоприёмного тракта разработанного устройства является смеситель по схеме Тэйло (Tayloe detector). Принцип действия этого замечательного устройства был защищён патентом США US6230000 от 08.05.2001. Заявку на патент подавала в конце 1998 года компания Motorola, где и трудился в то время инженер Daniel Richard Tayloe (N7VE).

Далее мы ознакомимся с принципом действия этого решения. Разберёмся, чем «детектор» принципиально отличается от «смесителя», и является ли «Tayloe detector» детектором.

Все части цикла статей о создании любительской радиостанции:
Читать дальше →

Как уговорить Google Bard слить тебе ценные данные

Level of difficultyMedium
Reading time5 min
Views25K

В последнее время у Google Bard появилось несколько мощных обновлений, в том числе Extensions. Extensions позволяют Bard получать доступ к YouTube, искать авиарейсы и отели, а также иметь доступ к личным документам и письмам пользователя.

То есть теперь Bard способен читать и анализировать Диск, Документы и Gmail!

Это значит, что он анализирует ненадёжные данные и может быть подвержен косвенному инъецированию промтов (Indirect Prompt Injection).

Мне удалось убедиться в работоспособности Prompt Injection, дав доступ Bard к своим старым видео на YouTube и попросив его составить краткую сводку; также я протестировал его с Google Документами.
Читать дальше →

Экстремальный дисторшн Krank Distortus Maximus

Level of difficultyEasy
Reading time7 min
Views4.4K

Привет, Хабр! Сегодняшний модерновый дисторшн с полным трёхполосным тонстеком очень порадует любителей прогрессивного звучания и низкого строя. А вместо операционного усилителя здесь применяется, как ни странно, микросхема LM386.
Читать дальше →

Scrum ужасен

Level of difficultyEasy
Reading time8 min
Views46K

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

Давайте начнём с самого начала.

Что такое Scrum?


Scrum — это Agile-система управления проектами, «помогающая людям и командам инкрементно и совместно приносить пользу» — цитата со Scrum.org.

Что касается Agile, то если вы никогда не читали его манифеста (2001 год), то определю его как компактный список рекомендаций, которым нужно следовать при разработке ПО.

Agile не является: Библией разработки ПО, догматическим набором строгих правил, тикетами Jira или коучами Agile, суетящимися в вашей компании.

Дополнение: определения несовершенны по определению (а теперь прочитайте это ещё раз).

Я с открытой душой приму любую критику о своих определениях Scrum, Agile и любых других терминов, и лишь попрошу прочитать пост целиком, прежде чем писать разгневанные комментарии!
Читать дальше →

Как устроено автоматическое удаление мёртвого кода в Meta*

Level of difficultyMedium
Reading time7 min
Views9.7K

В фреймворке Systematic Code and Asset Removal Framework (SCARF) компании Meta* есть подсистема выявления и удаления мёртвого кода.

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

В своём предыдущем посте об автоматическом выводе из эксплуатации продуктов мы говорили о сложностях этого процесса, а также о созданном Meta* решении под названием Systematic Code and Asset Removal Framework (SCARF). В качестве примера мы рассмотрели Moments — приложение обмена фотографиями, запущенное Meta в 2015 году и закрытое в 2019 году. В статье говорится о том, как SCARF помогает в проведении процесса вывода из эксплуатации благодаря его функциям управления рабочим процессом. Мы сказали, что SCARF экономит время разработчиков, выявляя правильный порядок задач для очистки продукта, и указали, что можно заблокировать автоматическую очистку при наличии межсистемных зависимостей. Это естественным образом приводит нас к следующему вопросу: как автоматически разблокировать SCARF при наличии кода, ссылающегося на ресурс?
Читать дальше →

Почему я не буду использовать Next.js

Level of difficultyMedium
Reading time13 min
Views30K

Представьте, что вы планируете начать новый проект или использовать в существующем более современный подход. А, может, вас просто не устраивает используемый фреймворк, и вы подумываете об альтернативах. В любом случае вам нужно что-то выбрать.

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

С момента выхода Remix в 2020 году я использовал именно этот фреймворк. Мне он настолько понравился, что на следующий год я устроился в эту компанию, чтобы помочь с развитием сообщества, а через 10 месяцев ушёл работать в EpicWeb.dev, где теперь обучаю людей всему необходимому для создания фулстек-приложений. И Remix играет в этом значительную роль, являясь веб-фреймворком, который аналогично Next.js нацелен на решение задач, связанных с созданием веб-приложений.

Поскольку Next.js аналогичен Remix, многие спрашивают, почему для преподавания фулстек-разработки в EpicWeb.dev я предпочёл именно Remix. И текущая статья станет ответом на этот их вопрос.
Читать дальше →

Как в 180 000 раз ускорить анализ данных с помощью Rust

Level of difficultyMedium
Reading time18 min
Views18K

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

Южно-Сахалинск: самый ̶я̶п̶о̶н̶с̶к̶и̶й̶ корейский город страны

Reading time20 min
Views28K

Географическая близость к Японии предопределила развитие Сахалина как «моста» между нашими странами. Две трети населения пограничного региона живёт на самом юге острова, в агломерации Южно-Сахалинска. Японское прошлое города иногда выглядывает из-за угла и, показав игриво рожки, вновь прячется за стандартными советскими кварталами. Рожки — это в том числе пробки в центре и постоянно захлёбывающаяся ливневая канализация. Где же заканчивается Тоёхара и начинается современный Южно-Сахалинск, что делает его самым корейским городом страны, и почему он продолжает расти, несмотря на суровый климат и удалённость? Давайте разбираться!
Читать дальше →

HTML и CSS ошибки, влияющие на доступность. Мой опыт и моего незрячего знакомого Ильи. Часть 2

Level of difficultyMedium
Reading time8 min
Views7.3K

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


В этой статье будет: атрибут autofocus и его нюансы, паттерн «Skip-link» и идея Ильи об использовании его на практике, проблема использования одинаковых ссылок для одной новости, что не так с кнопкой «Наверх» и как вы спрятали список от скринридеров.


Давайте начнём!

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

Как Rust меняет мышление разработчика

Level of difficultyEasy
Reading time9 min
Views50K
Я страшно ненавижу C++. Обычно я люблю программирование, но каждый проект, с которым я имел дело на C++, ощущался как монотонная рутина. В январе 2023 года я пошёл по пути изучения Rust, поэтому теперь могу сказать, что знаю язык системного программирования, который действительно люблю использовать.

Первый стабильный релиз Rust появился в 2015 году, и каждый год, начиная с 2016, он признаётся в Stack Overflow’s Annual Developer Survey самым любимым языком (в 2023 году эта категория называется «обожаемый»). Почему же разработчики, ощутившие вкус Rust, не могут отказаться от его использования? Похоже, в мире прогремевших наследников C/C++ репутация растёт только у Rust. Как же этот язык, появившийся на сцене меньше десятка лет назад, стал настолько популярным?

Ржавый красный краб Феррис по версии Midjourney

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

Я начну историю с разговора о том, что легко полюбить — со среды Rust, управления пакетами и документации. Затем я расскажу о системе типов и типажах (trait). Далее я поведаю о тех возможностях тестирования и test driven development, которые становятся возможными благодаря Rust. Наконец, мы обсудим самую запутанную и сбивающую с толку часть — одержимость Rust тем, кто какой переменной владеет.
Читать дальше →

Войны битов

Level of difficultyEasy
Reading time37 min
Views15K

В своей прошлой публикации я вскользь упомянул так называемые «консольные войны» — битву маркетинговых кампаний конкурирующих видеоигровых платформ прошлого. Это не такое уж малоизвестное явление, о нём написаны книги, сняты фильмы, ему посвящены Youtube-каналы.

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

Будем заниматься странными вещами: подсчётом бит в игровых приставках и попытками найти в этом занятии какой-то глубокий смысл. Открывайте форточки, будет душно!
Читать дальше →

Почти классический овердрайв Tube Screamer

Level of difficultyEasy
Reading time8 min
Views8.1K

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

Знаете, сколько всего существует разных Тьюб Скримеров и родственных им педалей? — Вряд ли кто-нибудь сможет перечислить их все. Но про некоторые из самых знаковых я сегодня расскажу. А одну из них соберу, и мы сможем её послушать.
Читать дальше →

«Окей, бумер» — как шутеры в ретро-стилистике потеряли самобытность

Level of difficultyEasy
Reading time8 min
Views15K

В последние лет 5 стали популярны «бумер-шутеры». Шутливое название по мотивам мемов про так называемых бумеров и зумеров относит нас к олдскульным шутерам от первого лица. И хоть жанр на пике популярности, а отдельные его представители крайне восхваляются игроками и прессой, у меня есть альтернативное мнение насчёт таких игр: не все они так хороши, как о них говорят.
Читать дальше →

Как и почему я писал для Флиппера на Си-с-классами

Level of difficultyMedium
Reading time8 min
Views12K
Мой Флиппер дошёл до меня больше полугода назад, но что-то под него написать я собрался только сейчас. Его API рассчитаны на язык С — а у меня с ним опыта не очень много. Но проблем с тулингом не возникло — у Флиппера есть своя система сборки, которая скачала мне нужный тулчейн и сгенерировала настройки для IDE.

А для написания кода я решил использовать всё же не C, а C++ — точнее, даже «Си-с-классами». На мой взгляд, затуманенный языками более высокого уровня, такой подход получился удобнее, чем писать на чистом C. Результат можно увидеть в моём репозитории, а в этой статье я попытаюсь описать, какие конкретные фичи языка я использовал, и как именно они мне помогли.

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

Как зловредные приложения могут скрывать работу с буфером обмена в Android 14

Level of difficultyMedium
Reading time8 min
Views7.5K

Вы когда-нибудь копировали в буфер обмена уязвимую информацию, например, пароли, номера кредитных карт, сообщения или личные данные? Если да, эти данные могут оставаться в буфере устройства достаточно длительное время. Доверяете ли вы буферу обмена и приложениям, получающим доступ к этим данным? В этой статье мы изучим Android Clipboard Manager и продемонстрируем необходимость более качественной защиты копируемых данных.
Читать дальше →

Управление Linux-сервером — самая ценная инвестиция

Level of difficultyEasy
Reading time6 min
Views80K

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

Сейчас это «древнее искусство» вновь стало актуальным. История идёт по кругу — всё старое возвращается в новом виде. Запуск сервера на своём хостинге стал хорошей альтернативой облакам. Этому есть ряд причин, которые мы не будем подробно разбирать, только повторим вкратце: безопасность, свобода, контроль над своими данными, экономия финансов.
Читать дальше →

Information

Rating
Does not participate
Works in
Registered
Activity