Pull to refresh
1
0.6

NodeJS, Rust

Send message

KatWalk C2: ч.3: отрезаем провода

Level of difficulty Medium
Reading time 28 min
Views 1.7K

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

Теперь познакомимся с Bluetooth LE и узнаем, почему приходится писать свой приёмник а не просто полагаться на операционную систему.

Кабель? Нет, спасибо. Но как?
Total votes 12: ↑12 and ↓0 +12
Comments 8

Практическое руководство по Rust. 4/4

Level of difficulty Medium
Reading time 34 min
Views 3.1K



Hello world!


Представляю вашему вниманию четвертую и последнюю часть практического руководства по Rust.



Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и рассчитано на людей, которые уверенно владеют любым современным языком программирования. Еще раз: это руководство не рассчитано на тех, кто только начинает кодить 😉

Читать дальше →
Total votes 25: ↑24 and ↓1 +23
Comments 2

Monkey patching в Go, или грабли от Apple

Level of difficulty Medium
Reading time 8 min
Views 1.8K

Все началось с того, что я в очередной раз немного поменял структуры БД, и в некоторых SQL-запросах добавилась новая колонка. Нормальная ситуация - взять и легким движением руки сломать половину unit test’ов, потому что БДшные моки ожидают определенный текст запроса.

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

Септик и автономная канализация. Часть 1. Основы

Level of difficulty Easy
Reading time 13 min
Views 8.3K

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

Погрузиться в чтение
Total votes 26: ↑20 and ↓6 +14
Comments 40

OpenConnect: недетектируемый VPN, который вам понравится

Level of difficulty Medium
Reading time 15 min
Views 212K

Я уже написал здесь много статей на тему прокси-протоколов и прокси-клиентов, которые очень сложно детектировать и заблокировать, и которые используют пользователи в Китае, Иране, Ираке, Туркменистане, и теперь вот в России (мы здесь в отличной компании, правда?). Но довольно часто мне в комментариях писали, мол, это все отлично, но мне нужен именно VPN для целей именно VPN - доступа в частные локальные сети, либо для соединения клиентов между собой, и желательно так, чтобы его не заблокировали обезьяны с гранатой. Поэтому сегодня мы поговорим именно о VPN.

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее
Total votes 325: ↑324 and ↓1 +323
Comments 340

Современные команды и фичи Git, которыми стоит пользоваться

Level of difficulty Easy
Reading time 5 min
Views 26K

Мы, разработчики ПО, пользуемся git каждый день, однако большинство из нас применяет только самые основные команды, например, addcommitpush и pull, как будто на дворе по-прежнему 2005 год.

С тех пор в Git появилось множество фич, пользование которыми может сильно упросить вашу жизнь. Так давайте исследуем некоторые из недавно добавленных современных команд git, о которых вам стоит знать.

Читать далее
Total votes 75: ↑73 and ↓2 +71
Comments 27

Это слишком опасно для C++

Reading time 6 min
Views 33K

Некоторые паттерны стало возможно использовать на практике только благодаря безопасности Rust по памяти, а на C++ они слишком опасны. В статье приведён один такой пример.

Работая над внутренней библиотекой, написанной на Rust, я создал тип ошибок для парсера, у которых должна быть возможность сделать Clone без дублирования внутренних данных. В Rust для этого требуется указатель с подсчётом ссылок (reference-counted pointer) наподобие Rc.

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

Читать далее
Total votes 67: ↑55 and ↓12 +43
Comments 108

Обзор Vontar YG433 (YG430): Full HD-проектор в ультрабюджетном сегменте

Reading time 7 min
Views 2.1K

Проектор Vontar YG433 это настоящая находка в ценовой категории около $100. Причем за столь скромную стоимость вы получаете не просто игрушку, а полноценный проектор с реальным разрешением Full HD, который обеспечивает адекватную детализацию для больших диагоналей. А еще этот проектор работает на ос Android, что позволяет установить любимые онлайн кинотеатры и смотреть фильмы в высоком качестве из интернета, без предварительной загрузки на съемный накопитель. Конечно же через HDMI или AV вход можно подключать сторонние устройства, например игровую приставку или видеокамеру. А в настройках есть инструменты для коррекции трапецеидальных искажений: 15 градусов по вертикали при помощи аппаратной «крутилки» + 4D keystone в системе (50 градусов). Тем не менее, проектор очень дешевый, а значит имеет массу недостатков. Насколько они критичны именно для вас, поймете после прочтения обзора. Но на мой взгляд это Vontar YG433 является неплохим решением для входа в мир проекторов и точно не разочарует вас, если четко понимать его возможности.

Читать далее
Total votes 6: ↑4 and ↓2 +2
Comments 9

Итак, вы унаследовали старую кодовую базу на C++. Что дальше?

Level of difficulty Medium
Reading time 21 min
Views 14K

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

Теперь вы отвечаете за кодовую базу на C++. Она большая, сложная и своеобразная; достаточно слишком долго на неё посмотреть, как она начинает разваливаться разными интересными способами. Иными словами, это легаси.

Но баги всё равно как-то нужно устранять, а ещё добавлять новые фичи. То есть вам нельзя просто закрыть на неё глаза или что ещё лучше, взорвать её динамитом. Она важна для компании. По крайней мере, для тех, кто платит вам зарплату. А значит, важна для вас.

И что делать теперь?

Не волнуйтесь, у меня такое случалось очень много раз и в разных компаниях (кто-то язвительный может спросить: а разве кодовые базы на C++ бывают какими-то другими?), выход есть, он не особо сложен и поможет вам действительно устранять баги, добавлять фичи, а то и когда-нибудь переписать её.

В этой статье я расскажу о том, что оказалось полезным для меня, и о том, чего стоит всячески избегать.
Читать дальше →
Total votes 71: ↑70 and ↓1 +69
Comments 26

Ключи Supermicro, SSM, VMWare и лекарство от жадности

Reading time 5 min
Views 17K

Ни для кого не секрет, что крупные производители серверного оборудования любят продавать самые вкусные фишки своего оборудования за отдельную плату. Supermicro ничем не лучше: начиная с X9 (Romley), появилась возможность обновлять BIOS материнской платы из-под веб-интерфейса IPMI, но, как говорится, есть нюанс. Для разблокировки этой возможности необходимо приобрести отдельную лицензию OOB.

Читать далее
Total votes 37: ↑32 and ↓5 +27
Comments 27

Что это за устройство у меня в комнате?

Level of difficulty Medium
Reading time 13 min
Views 48K
Примерно год назад я переехал в новую квартиру. Одной из причин её выбора стал возраст здания. Строить его закончили в 2015 году, что гарантировало неплохую теплоизоляцию на зиму, а также кучу приятных мелочей наподобие Ethernet-разъёмов в каждой комнате. Однако в квартире обнаружилась одна деталь, слишком новая и умная для меня. Вот эта:


Очевидно, что это некий сенсорный экран, но не было никаких указаний на то, чем он управляет. Арендодатель понятия не имел, что это. На устройстве не было ни кнопок, ни надписей, лишь крошечный жёлтый огонёк, дающий понять, что у него есть питание.
Читать дальше →
Total votes 149: ↑146 and ↓3 +143
Comments 128

Бардак в GNOME — это не случайность

Level of difficulty Medium
Reading time 13 min
Views 50K

GNOME удалось добиться, казалось бы, невозможного: это самая ограниченная по возможностям и раздутая десктопная среда для Linux. Но это не просто случайность. Это результат высокомерия и дилетантства основных разработчиков, превративших архитектурные решения GNOME в шедевр хаоса. Чтобы лучше понять, что происходит, давайте проанализируем некоторые из примеров. Даже если ни один из них не затрагивает непосредственно вас, стоит понять modus operandi ведения проектов GNOME и то, как они вредят сообществу Linux.
Читать дальше →
Total votes 165: ↑157 and ↓8 +149
Comments 271

Начало работы с Axum — самым популярным веб-фреймворком Rust

Level of difficulty Medium
Reading time 11 min
Views 9K


Когда дело доходит до выбора серверного веб-фреймворка в экосистеме Rust, можно запутаться из-за большого количества вариантов. В прошлом, лидером по популярности был Rocket, но сейчас за первенство сражаются Axum и actix-web, и Axum все больше набирает обороты. В этой статье мы немного погрузимся в Axum — веб-фреймворк для создания REST API на Rust, разрабатываемый командой Tokio. Он прост в использовании и хорошо совместим с Tower — надежной библиотекой для создания модульных компонентов сетевых приложений.


В этой статье мы подробно рассмотрим, как использовать Axum для создания веб-сервиса. Кроме того, мы рассмотрим изменения, которые произошли в версии 0.7.

Читать дальше →
Total votes 31: ↑28 and ↓3 +25
Comments 9

Собираем удобный CAN bus сниффер с интерактивной консолью за $3

Level of difficulty Medium
Reading time 13 min
Views 14K

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

Протокол CAN сейчас широко распространён не только в автомобильной сфере, но и на предприятиях, в различных самоделках, и даже в Средствах Индивидуальной Мобильности (контроллеры VESC, например). В ноябре прошлого года я сделал для себя удобный инструмент для анализа CAN и отправки фреймов, сейчас же хочется сделать код опенсорсным и рассказать о самом проекте.

Читать далее
Total votes 34: ↑34 and ↓0 +34
Comments 18

Взлом аппаратного ключа методом veni, vidi, vici

Level of difficulty Medium
Reading time 19 min
Views 15K

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

Задача: Сделать так, чтобы можно было пользоваться оборудованием. Дистрибутив софта, требующего ключ, есть. Работает он под Windows. Просроченный ключ есть. Оборудованию около 10 лет.

Ниже описан путь решения со всеми ошибками.

Прочитать историю
Total votes 188: ↑185 and ↓3 +182
Comments 26

СЕО с вашей прошлой работы: к тебе придет ФСБ

Reading time 2 min
Views 64K

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

Итак, сегодня мне написал человек, имя которого совпадает с СЕО с моей работы, в которой я работал пару лет назад. И сообщил, что в компании произошла утечка данных, в связи с чем начато расследование ФСБ и со мной свяжется сотрудник, чтобы провести проверку в моем отношении, т.к. проверяют всех - и текущих сотрудников и бывших.

Также просит не распространять информацию среди сотрудников компании, т.к. это помешает проведению проверки.

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

Читать далее
Total votes 119: ↑108 and ↓11 +97
Comments 176

Ускорение загрузки Windows for fun and profit

Reading time 4 min
Views 802K
image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста
Total votes 532: ↑516 and ↓16 +500
Comments 365

«Once you go Rust, you never go back»: создаем игру для программистов на Bevy

Reading time 7 min
Views 8.9K

Привет, Хабр! В прошлой статье я рассказал о своем переходе в геймдев и моей концепции «хакерской» игры. Здесь же сосредоточился именно на разработке, а также на инструментах Bevy и Rust, которые использовал для игрового движка. Интересно узнать из первых уст, как создаются отечественные инди-игры? Тогда добро пожаловать под кат.
Читать дальше →
Total votes 45: ↑44 and ↓1 +43
Comments 21

К 30-летнему юбилею DOOM: как два садиста, психопат и мормон создали одну из величайших игр в истории? Часть 4

Level of difficulty Easy
Reading time 8 min
Views 15K

В прошлый раз мы оставили наших героев в тот замечательный момент, когда в начале 1991 года они наконец ушли из Softdisc и решили создать собственную компанию. Успех их первого творения, Commander Keen in Invasion of the Vorticons, ставшего первой игрой под PC с реализацией горизонтального скроллинга, открывал перед командой единомышленников большие перспективы. Но ими нужно было суметь воспользоваться — а над друзьями висели обязательства перед бывшим шефом делать ему не менее одной игры в два месяца.

Все части цикла статей о создании DOOM:
Читать дальше →
Total votes 66: ↑64 and ↓2 +62
Comments 6

К 30-летнему юбилею DOOM: как два садиста, психопат и мормон создали одну из величайших игр в истории? Часть 3

Level of difficulty Easy
Reading time 6 min
Views 19K

Продолжим наш рассказ о том, как несколько весьма своеобразных программистов создали великий и ужасный Doom. Мы уже поговорили о непростом детстве двух Джонов, главных героев нашей истории, и рассказали, как Кармак и Ромеро начали писать игры. Затем — как они встретились в депрессивном и криминальном городе среди луизианских болот, работая на компанию Softdisc. Теперь же наши герои дозрели до мысли о том, чтобы писать крутые игры вместе — тем самым встав на скользкую дорожку серьёзного геймдева. Они ещё не знали, куда именно она их приведёт, но были полны энтузиазма, жажды создания крутейших игр, а также фантазий самого мрачного характера. Впрочем, их первое совместное творение получилось совсем не мрачным — и некоторых членов команды это буквально выморозило!

Все части цикла статей о создании DOOM:
Читать дальше →
Total votes 69: ↑68 and ↓1 +67
Comments 8

Information

Rating
1,482-nd
Location
Белореченск, Краснодарский край, Россия
Date of birth
Registered
Activity