Pull to refresh
-10
0

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

Send message

Как заставить рулонные шторы поумнеть — дешевый способ автоматизировать открытие/закрытие без необходимости питания 220В

Level of difficultyMedium
Reading time4 min
Views2.3K

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

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

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

Рулонные шторы 433 МГц и Zigbee
Total votes 6: ↑4 and ↓2+3
Comments27

Compiler Explorer — уникальный проект для исследования компилируемого кода

Level of difficultyMedium
Reading time7 min
Views3.6K
Этот пост посвящён замечательному инструменту, полезному для каждого, кто интересуется компиляторами или архитектурой компьютеров. Это Compiler Explorer, который я в дальнейшем будут называть CE.

CE — потрясающий инструмент. Если вы с ним не знакомы, то прервите чтение и перейдите на веб-сайт CE, где вы увидите примерно такой экран:

Предупреждение: вы забираетесь в «кроличью нору», на которую можете потратить несколько часов своего времени.


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

CE поддерживает 69 языков, более двух тысяч компиляторов и широкий спектр архитектур, включая x86, arm, risc-v, avr, mips, vax, tensa, 68k, PowerPC, SPARC и даже древний 6502.

То есть теперь для просмотра результата работы компилятора достаточно открыть godbolt.org и скопировать туда блок кода.

Это само по себе удивительно, но у CE есть гораздо больше возможностей. Это инструмент, который должны знать все интересующиеся компиляторами и архитектурами компьютеров. В статье мы сможем лишь поверхностно рассмотреть функции CE. Вам стоит самим перейти на сайт CE и попробовать всё самостоятельно.
Читать дальше →
Total votes 35: ↑34 and ↓1+47
Comments4

5 признаков хорошей серверной стойки

Level of difficultyMedium
Reading time5 min
Views2.9K

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

Другая ситуация с серверными стойками. Если раньше на рынке широко был известен только один достойный отечественный бренд, то сейчас таких как минимум три, производство на самом деле локализовано, производители учитывают опыт ушедших лидеров рынка, а также обратную связь потребителей, в том числе и от специалистов Linx. Однако, как и в любом новом деле, в отечественных стойках встречаются «детские» болезни, которые становятся особенно очевидны при сравнении, например, с хорошо знакомыми нам стойками APC.

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

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments0

Хеш-Индексы в PostgreSQL

Reading time5 min
Views2.3K

Привет, Хабр!

Хеш-индексы в PostgreSQL — это хороший инструмент для ускорения выполнения запросов.

В основе хеш-индекса лежит хеш-функция. Хеш-функция — это алгоритм, который преобразует входные данные (или ключ) в число фиксированного размера, называемое хеш-значением. В PostgreSQL хеш-функция всегда возвращает значение типа integer, что составляет примерно 4 миллиарда возможных значений.

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments6

DIY для шпиона: использование обнаружения объектов с помощью YOLOv8 в рамках военных стратегий

Reading time8 min
Views4.8K

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

В рамках глобальной системы мониторинга, известной как «The Machine». , функционируют разнообразные элементы. Данная система объединяет множество устройств, распределенных по всему земному шару, что обеспечивает комплексное наблюдение. Это позволяет государственным органам осуществлять мониторинг за индивидуальными лицами, анализировать общественные поведенческие тенденции и контролировать военные объекты на международном уровне. Геопространственная разведка (GEOINT) занимает центральное место в этой системе.

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

Читать далее
Total votes 19: ↑17 and ↓2+20
Comments2

HackBat: мощная DIY альтернатива Flipper Zero на базе открытого исходного кода

Reading time4 min
Views18K

Встречайте HackBat: DIY (сделай сам) устройство, основанное на открытом исходном коде и аппаратном обеспечении, разработанное Пабло Трухильо Хуаном как мощная альтернатива Flipper Zero. Оно пропагандирует свободу разработки и модификации, обеспечивая пользователям возможность сами создавать и настраивать свои устройства. В отличие от Flipper Zero, HackBat позволяет пользователям самим программировать MCU и взаимодействовать с Wi-Fi и RF-трансиверами, что обеспечивает большую гибкость и возможности для настройки.

Самое интересное в этом небольшом проекте — это то, насколько много общего у него с Flipper Zero. Hackbat также позиционируется в качестве "швейцарского армейского ножа" для проведения тестов на проникновение и использует некоторые из тех же функций, что и NFC. Однако, в отличие от Flipper Zero, Hackbat является открытым проектом и стоит дешевле, чем его родственник с ценником в $169. Фактически, после недавнего исчезновения Flipper One, люди, которые такие устройства, могут обнаружить, что Hackbat является подходящей заменой.

Пабло Трухильо опубликовал проект на Hackster, где подробно рассказал о проекте. Основной идеей Hackbat является создание устройств для тестирования на проникновение, доступных для всех.

Читать далее
Total votes 48: ↑35 and ↓13+36
Comments31

Как стать нормальным системным администратором?

Level of difficultyEasy
Reading time49 min
Views5.9K

Для кого эта статья?

Для школьников и студентов ИТ‑направлений, а также просто для людей, занятых в ИТ‑отрасли. Всех остальных вежливо попрошу убраться, если вы не имеете никакого отношения к ИТ. Лучше дальше работайте по тому же направлению и не лезьте в эту прекрасную отрасль. Если вы несколько лет клали плитку, а потом вдруг вам показалось, что, прочитав пару книжек и статей, вы станете системным администратором Linux — вы очень сильно ошибаетесь. Поэтому очень многие специально не берут людей без профильного образования или с наличием существенного опыта работы не по профилю. Вайтишников никто не любит, и здесь 1 год опыта работы по профилю ценится гораздо выше, чем 5 лет не по профилю.

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

Читать далее
Total votes 23: ↑10 and ↓130
Comments146

Гроубокс с числовым программным управлением (ЧПУ)

Level of difficultyMedium
Reading time7 min
Views2.7K

Возникла необходимость сделать настройку гроубокса максимально комфортной -- удалённо, без программирования. Все исходные коды доступны по ссылкам в конце статьи. В статье будет упор на программную часть: прошивка гроубокса, графический интерфейс (GUI) для компьютера.

Читать далее
Total votes 11: ↑10 and ↓1+13
Comments7

Все мои детальки: переход на отечественные микроконтроллеры

Level of difficultyMedium
Reading time7 min
Views23K

 Привет, читатель!

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

Программирование микроконтроллеров сейчас для меня больше как хобби и научный интерес, которому уделяю свободное от работы время. На сегодняшний день 8-ми битные контроллеры использую в небольших роботах, для опроса различных датчиков или вывода информации. Поэтому выбирал для первых экспериментов простой и понятный микроконтроллер, совместимый или подобный чипам AVR. Для тех, кому интересен этот эксперимент — прошу под кат.

Читать далее
Total votes 62: ↑57 and ↓5+74
Comments90

Переворачиваем список целых чисел

Reading time4 min
Views6.9K

Недавно Александр Муньис опубликовал новую математическую игру, которую назвал «Переверни список целых чисел». Заключается она в следующем.

- Составьте список разных положительных чисел (например, 10 5 3). Ваша цель — перевернуть список, используя «ходы» двух видов:

- Разделите одно из чисел на две части, которые в сумме дают целое; например, (10 5 4) может стать (7 3 5 4) или (10 2 3 4).

- Объедините два соседних числа в их сумму; например, (7 3 5 4) может стать (7 8 4) или (7 3 9).

Нельзя образовывать число, которое больше максимального числа в исходном списке. Например, если мы пытаемся изменить (10 5 4), то (7 5 3 4) может стать (7 8 4), но не может стать (12 3 4), так как 12 больше, чем 10 — максимальное число исходного списка. Также все элементы списка должны оставаться различными; например, (7 5 3 4) не может стать ни (7 5 7), ни (7 2 3 3 4).

Александр спрашивает: какие эффективные алгоритмы или общие стратегии существуют для решения этих задач? Для данного n должен быть некий список, где n — самое большое число, а количество ходов, необходимых для решения головоломки, является максимальным. Как выглядит последовательность максимально необходимого количества ходов в зависимости от n? Как выглядят самые «сложные» головоломки? Есть ли способ определить это без брутфорса?

Читать далее
Total votes 14: ↑14 and ↓0+17
Comments9

Самые странные операционные системы

Level of difficultyEasy
Reading time6 min
Views17K


На свете существует множество странных вещей: например, странные устройства и странные программы, которыми порой пользуются очень странные люди. Особое место среди подобного софта занимают необычные операционные системы — глядя на них, невольно задаешься вопросом: кому вообще могла прийти в голову подобная идея? Если вы знакомы только с Windows, macOS и Linux, то держитесь крепче – мы собираемся погрузиться в мир наиболее самобытных и порой совершенно безумных ОС, созданных человечеством. Хотя временами кажется, что и без рептилоидов тут не обошлось.
Читать дальше →
Total votes 31: ↑29 and ↓2+40
Comments18

Бионический протез руки: управление кистью наклонами головы

Level of difficultyEasy
Reading time7 min
Views504

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

Читать далее
Total votes 2: ↑2 and ↓0+4
Comments0

Samsung и SK hynix прекращают выпуск DDR3 в угоду всё более популярной HBM3. Что будет дальше?

Reading time3 min
Views4K

На днях стало известно, что два крупнейших производителя оперативной памяти — компании Samsung и SK hynix — решили остановить линии, специализировавшиеся на выпуске DDR3. Вместо этого освободившиеся мощности планируется использовать для расширения объёмов выпуска ИИ-оптимизированной памяти HBM3. Что это за технология и почему HBM3 требуется много, читайте под катом.

Читать далее
Total votes 6: ↑6 and ↓0+15
Comments3

Популярные ошибки в Golang и как их избежать

Level of difficultyEasy
Reading time15 min
Views3.2K

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

Читать далее
Total votes 16: ↑16 and ↓0+19
Comments0

Когда целый день программировал на Zig: впечатления Rust-энтузиаста

Reading time7 min
Views11K
image

Я — большой фанат Rust, так как в этом языке предоставляется отличное инструментальное оснащение, и, когда я пишу на этом языке, я могу быть вполне уверен, что этот код будет работать надёжно. Но иногда Rust ненавистен. Чтобы написать код на Rust, требуется немало времени, а некоторые вещи реализовать достаточно сложно (да, async, это я о тебе).

В прошлом году мне не раз доводилось слышать о новом низкоуровневом языке программирования, он называется Zig. И вот, наконец, я нашёл время, чтобы опробовать его на практике. В этой статье я хочу рассказать, что мне понравилось и не понравилось Zig (который я рассматривал с точки зрения Rust-программиста и тех высоких стандартов, к которым я привык в Rust).
Читать дальше →
Total votes 23: ↑21 and ↓2+28
Comments22

Как написать свой клиент для YouTube, не привлекая внимания санитаров

Level of difficultyEasy
Reading time3 min
Views14K

Привет, Хабр! Когда‑то давно я наткнулся на ролик, где парень писал консольный клиент для YouTube. Идея была просто потрясающей!

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

Стоит ли говорить о том, что такое решение сильно теряет в производительности и абсолютно нежизнеспособно на какой‑либо длительный период времени?

Читать далее
Total votes 14: ↑14 and ↓0+19
Comments54

О развитии навыка говорения

Reading time8 min
Views13K

«Гло́кая ку́здра ште́ко будлану́ла бо́кра и курдя́чит бокрёнка». Эту фразу из несуществующих слов предложил в начале XX века академик Л.В. Щерба. Из неё ясно, что «будлану́ла» — действие, которое ку́здра (ж.р.) совершила в отношении бо́кра (м.р.); бокрёнок, скорее всего, детёныш бокра. Для русского это очевидно сразу. Иностранцу придётся сначала выучить русский. Фраза показывает, что язык — это НЕ СЛОВА. Слова легко переходят из одного языка в другой. Язык  это принципы, по которым слова связываются друг с другом.

Читать далее
Total votes 20: ↑17 and ↓3+15
Comments14

Многообразие связных списков

Level of difficultyMedium
Reading time13 min
Views6.3K

Связный список — классическая структура данных, которая позволяет быстрые вставки/удаления, но при этом просаживает другие операции (случайный доступ к элементу). Мы пройдёмся от базовой реализации до других возможных вариаций этой структуры данных и, надеюсь, вместе узнаем что‑то новое. Краем глаза увидим возможные применения связных списков. И в конце, для любителей C++, бонус: использование связного списка для сбора диагностики выделений динамической памяти в вашем коде.

Связать себя со знаниями!
Total votes 23: ↑23 and ↓0+30
Comments7

Рассвет и закат мобильного программирования

Reading time10 min
Views21K

Представьте, что вы сидите на скучнейшем уроке литературы: кто-то спит, кто-то рисует в тетради, кто-то чатится в ICQ, кто-то проходит очередной уровень Gravity Defied, а вы люто набираете на своём Sony Ericsson программу на Бейсике, которая случайным образом выводит имя одного из одноклассников и какой-нибудь слегка обидный неправдивый факт о нём. Наконец, последние строчки дописаны, вы запускаете программу и показываете её соседу по парте, потом телефон уходит на другой ряд и… к концу урока добрая половина класса уже потирает ладони, чтобы хорошенько отвесить вам подзатыльников за такие приколы. Но последствия не так важны, как эйфория от того, что путь мобильной разработки для вас только-только начинается.

Это был 2006 год. У многих из нас ещё не было ПК, зато были мобильные телефоны с небольшими экранами, ограниченный доступ в Интернет и много свободного времени, которое хотелось потратить на реализацию какой-нибудь идеи.

Читать далее
Total votes 72: ↑72 and ↓0+90
Comments48

Коммивояжер на GPU

Level of difficultyMedium
Reading time8 min
Views3.1K

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

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

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

Читать далее
Total votes 6: ↑6 and ↓0+9
Comments20

Information

Rating
Does not participate
Registered
Activity