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

Разработчик

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

Чистый код: Принцип подстановки Барбары Лисков (LSP)

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

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

Трудно предоставить разумный пример иллюстрирующий этот принцип, так как соблюдение элементарной логики и правил чистого кода по именованию методов и переменных, не позволяет его нарушить. Если в базовом классе есть метод save(), отвечающий за сохранение информации, а вы не пытаетесь его переделать для загрузки данных, у вас все в порядке.

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

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

Как анонимно продать или купить крипту

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

Сервис по мониторингу обменников Exnode

Как известно, анонимность — одно из базовых прав человека. В мае 2015 года Совет по правам человека ООН опубликовала доклад, который прямо называет анонимное использование интернета частью базовых прав человека:

«Шифрование и анонимность позволяют людям осуществлять свои права на свободу мнений и их свободное выражение в цифровой век и ввиду этого должны заслуженно пользоваться надёжной защитой», — из доклада ООН, 22.05.2015 г.

Особенно актуальна эта задача при обращении с финансами. Фиат и биткоин изначально задумывались как анонимные и приватные деньги, но на практике в 21 веке государство стремится отслеживать все транзакции, а личность пользователя можно вычислить, если он не принял меры безопасности.
Читать дальше →
Всего голосов 65: ↑63 и ↓2+76
Комментарии166

Собираем бюджетный домашний NAS на 14 ТБ

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


Начав заниматься фотографией, я быстро ощутил нехватку места на компьютере. Фотографии в RAW имеют большой вес, а про видео говорить ещё страшнее. Решение проблемы очень простое — собрать NAS.

О моём опыте сборки бюджетного NAS на 14 ТБ я напишу далее в статье.
Читать дальше →
Всего голосов 140: ↑139 и ↓1+171
Комментарии264

$1697 за выключатель кондиционера: DIY ремонт управляющего планшета

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

Примечание переводчика: Представьте себе ситуацию, когда ваша система кондиционирования воздуха полностью исправна, но перестает работать из-за отказа простого планшета, который служит обычным выключателем. Вам предлагают решить проблему, заменив всю систему за $1697. Эта история — не просто рассказ о возмутительной ценовой политике, а о том, как инженерный подход и немного упорства могут сэкономить вам кучу денег. В этой статье автор делится своим опытом DIY-ремонта, который позволил ему обойтись без ненужных затрат и вернуть контроль над системой кондиционирования.

Заставлять клиентов менять всю систему из-за поломки самого дешевого компонента — возможно, и выгодно, но меня это так взбесило, что я решил разобраться сам. Я понимаю, что мои действия могут оказаться сложными для большинства пользователей Advantage Air, но в ходе моего исследования я выяснил, что причина несовместимости современных планшетов с более старыми системами управления кроется только в программном обеспечении. Если бы они просто добавили в свои приложения функцию выбора "системы", это решило бы проблему для всех, а их кастомный POE-разъем все равно бы заставлял использовать их оборудование.

Читать далее
Всего голосов 88: ↑86 и ↓2+105
Комментарии45

Чем для меня как для работодателя отличаются зуммеры и миллениалы

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

В определенный момент у нас в компании стало больше зумеров. Это молодые ребята, с которыми все немного по-другому. Сегодня хочу поделиться своим опытом работы с представителями разных поколений, а именно Y и Z. 

Читать далее
Всего голосов 40: ↑21 и ↓19+6
Комментарии88

Отладочная плата с жирной ПЛИС за 500р или что делать со старым антмайнером — как я делаю собственную платформу

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

С незапамятных времён, когда ещё существовали браузеры под ДОС, я взял себе ник Astra.

Поэтому и назвал проект превращения запчасти от майнера с мусорки в годную "отладку", с которым вожусь несколько месяцев, --Аstra_S9_SoC(+FPGA)-- или "платформа Astra9" Собственно, сама плата уже давно запроектирована и наштампована конторой Битмаин невероятно большим тиражом- порядка нескольких сотен тысяч (а то и миллиона) экземпляров. Сотни тысяч этих плат УЖЕ находятся у нас в стране, их не надо тащить с Али. Плата предназначена чисто для управления майнингом на хешплатах и не имеет никакой либо документации. Однако, "сердцем" платы является SoC+FPGA микросхема американской корпорации Xilinx -- ZYNQ 7010 xc7z010-clg400, что позволяет использовать её как FPGA девборд и как одноплатник

Я взял на себя труд разработать рабочую документацию на эту плату. https://dzen.ru/a/ZtTuMNBQ3gFhmskj

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

0. Никакой возни, раздобыл плату, микро-СД-флешку - и через полчаса всё заработало https://dzen.ru/a/ZtumRpI4dV3u1R7v

1. Привет, народ или Как помигать светодиодом

2. Запустить Убунту

Читать далее
Всего голосов 47: ↑46 и ↓1+58
Комментарии86

Зачем в iPhone чип, который убивает FaceID

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

Разбирался я в низкоуровневой работе камер iPhone, и дошёл до FaceID — системы распознавания лиц, используемой Apple для разблокировки смартфона. И наткнулся внутри на интересную вещь: чип, единственное предназначение которого в том, чтобы вывести из строя FaceID. Навсегда.

О том, как в iPhone вообще работает FaceID, где там этот чип стоит, что именно он делает, зачем его сделали таким злым, и как в ремонте справляются с этой напастью — под катом!

Читать далее
Всего голосов 641: ↑640 и ↓1+758
Комментарии178

Давайте работать с proto ошибками правильно :)

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

В программировании всегда есть несколько способов решения одной и той же проблемы. Но не все они одинаково эффективны. Сегодня поговорим о способах обработки ошибок в gRPC — удачных и не очень.

Разобраться подробнее
Всего голосов 21: ↑20 и ↓1+22
Комментарии2

VLESS vs ShadowSocks. Рассказываем про протокол, который придет на смену SS

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

Если вы когда-нибудь искали бесплатные outline-ключи, то вам будет полезно узнать про VLESS — новый протокол, который постепенно приходит на смену Shadowsocks. Поговорим о том, чем они отличаются и какие у них есть преимущества.

Читать далее
Всего голосов 51: ↑35 и ↓16+26
Комментарии57

Как построить мост между JavaScript и C++ через WASM, или гайд для самых маленьких

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

Всем привет. Сегодня я хочу рассказать об использовании WASM с C++ и разберу, как взаимодействовать с этим всем делом через JavaScript.

Материал предназначен для новичков в данной теме.

Читать далее
Всего голосов 15: ↑14 и ↓1+16
Комментарии8

Просто выберите Postgres

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

Отчасти это действенный совет, отчасти — вопрос к читателям.

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

Читать далее
Всего голосов 43: ↑38 и ↓5+41
Комментарии84

Как я разработал систему датчиков сгибания

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

В этой статье рассказывается о процессе исследований и разработки моей новой системы датчика OptiGap — основной части моей работы для получения степени PhD. Я пишу статью в формате рассказа, чтобы поделиться своими рассуждениями в процессе принятия решений, которые привели к готовой реализации. Надеюсь, она даст какое-то представление о незнакомом многим мире исследований для PhD, а также может заинтересовать тех, кому любопытен этот процесс. Технические подробности, симуляции и предыдущие исследования по теме можно прочитать в моей диссертации.
Читать дальше →
Всего голосов 47: ↑47 и ↓0+62
Комментарии7

REDIS: такой простой и такой сложный

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

Меня зовут Андрей Комягин, я СТО компании STM Labs. Мы занимаемся разработкой очень больших распределённых высоконагруженных систем для различных отраслей и в своей работе широко используем open-source решения, в том числе СУБД Redis. Недавно я подробно рассказывал об этой системе на конференции Saint HighLoad++, а теперь с удовольствием поделюсь основной информацией с читателями Хабра. Итак, поехали.

Читать далее
Всего голосов 50: ↑49 и ↓1+60
Комментарии28

Как в разы увеличить дальность приема WiFi / BT при помощи паяльника

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

Ну или точнее при помощи двух паяльников. Несколько простых и эффективных решений, подходящих для компактных модулей с чип антенной.

Читать далее
Всего голосов 108: ↑107 и ↓1+128
Комментарии135

Как я свалил рутинные задачи на low-code-платформу и не пожалел

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

Привет! На связи Леша Шамшур, разработчик ПО LiSeller. Недавно мой хороший знакомый Паша устроился джуниор-разработчиком в отдел бэкенд-разработки Debex: компания продает просроченные долги. 

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

Читать далее
Всего голосов 20: ↑13 и ↓7+8
Комментарии18

Хватит использовать Telegram для работы: Выбираю лучший профессиональный мессенджер

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

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

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

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

#freedurov
Всего голосов 76: ↑44 и ↓32+27
Комментарии244

Создание гигабитного коммутатора на Linux

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

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

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

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

Читать далее
Всего голосов 25: ↑25 и ↓0+33
Комментарии16

Вспомнил школьную физику, и теперь продаю горячий воздух на Авито на 12 млн в год

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

Знаете, почему летает воздушный шар? 

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

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

Читать далее
Всего голосов 189: ↑163 и ↓26+166
Комментарии165

WebTTY: Доступ по SSH через браузер, даже там, где порт закрыт

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

Как мы с вами знаем, SSH — надежный и безопасный протокол для удаленного управления системами, который является неотъемлемой частью работы у многих. Однако, что делать, когда стандартные порты SSH заблокированы или закрыты, например, в строго защищенных корпоративных сетях или в облачных средах с жесткой политикой безопасности? Или что делать, если под рукой есть только браузер и нет возможности использовать обычный терминал?

Одним из таких решений является WebTTY — мощный инструмент, который обеспечивает доступ к терминалу удаленного сервера через веб-браузер, используя технологию WebRTC и веб-технологии для создания безопасного и зашифрованного соединения. Это решение позволяет обойти ограничения, такие как заблокированные стандартные SSH-порты, и предоставляет простой и удобный способ взаимодействия с командной строкой сервера без необходимости открытия дополнительных портов, что особенно полезно в средах с жесткими сетевыми ограничениями или за фаерволами.

В этой статье мы рассмотрим, как WebTTY может быть использован для доступа к SSH-портам через браузер, даже если они закрыты, как его можно настроить и когда его можно использовать. Основана цель данного материала – познакомить вас с таким вариантом подключения и показать, как использовать данный инструмент. Надеюсь, что представленные примеры и объяснения помогут вам оценить его возможности и найти полезные применения в вашей практике.

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

Мультитул для разработчика электроники

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

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

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

Читать далее
Всего голосов 33: ↑31 и ↓2+41
Комментарии17

Информация

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