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

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

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

SSLH: Прячем SSH/HTTPS/OpenVPN/Telegram за единым портом 443

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

SSH/HTTPS/OpenVPN/Telegram и всё на одном порту?! Что?!
— Да!
  • Хотите скрыть наличее у вас некоторых сервисов?
  • В публичной wi-fi сети блокируется всё кроме 443 (https) порта?
  • Настроили Telegram Proxy/OpenVPN и не хотите его «светить» ?
  • SSH подключение к своему серверу из стран с цензурой?

На все эти вопросы ответ один — Мультиплексирование SSL/TLS соединений, или SSLH.

В посте мы рассмотрим как в 1 команду спрятать кучу сервисов за 1 портом.
Читать дальше →
Всего голосов 83: ↑79 и ↓4+75
Комментарии100

Сравнение SQL- и NoSQL-баз данных

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

SQL и NoSQL — две популярные модели баз данных, которые используют для решения различных задач. Чтобы понять, какая из них подойдёт в вашем случае, необходимо разобраться в их различиях, преимуществах и недостатках.

В этой статье я рассмотрю основные характеристики SQL- и NoSQL-баз данных и сравню их, чтобы помочь выбрать лучший вариант для вашего проекта.
Читать дальше →
Всего голосов 44: ↑36 и ↓8+28
Комментарии29

Вторая жизнь для Elo Serial Touchscreen

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

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

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

Речь в статье как раз и пойдет об одном из недавних примеров подобной реинкарнации старого железа, прямиком из моей практики. Так что, кому интересно — прошу под кат.

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

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 8

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

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

Сегодня продолжим тему прошлого урока. Вычислим инвариантный вектор новым методом: через отношения длин сторон. Мы начнем обход так же с самой удаленной от центра точки, только будем брать стороны, а не углы межу сторонами. И первая сторона это та, что прилегает к первой точке. То есть она соединяет первую точку и следующую за ней по часовой стрелке. И все эти длины сторон мы разделим на самую длинную сторону. Хотя нет, сделам лучше. Сделаем минимакс нормализацию: вычтем из длины стороны минимум и разделим на разницу между минимумом и максимумом. У нас будет вектор чисел от 0 до 1.

И так, займемся кодингом. Сначала напишем цикл, создающий исходный масcив:

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

Неубиваемый P2P-интернет

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


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

Например, в апреле 2022 года запустилась пиринговая сеть Lantern. Также недавно разработана децентрализованная платформа Locutus для запуска любых P2P-приложений (от создателя легендарной пиринговой сети Freenet). Это далеко не полный список новых пиринговых проектов, созданных в последнее время для помощи людям, испытывающим затруднения в работе интернета.
Читать дальше →
Всего голосов 44: ↑44 и ↓0+44
Комментарии18

Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel

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

Разбираемся, как на самом деле считаются суммы и проценты в клиентском приложении.

Собираем все данные по портфелю и по всем операциям через Tinkoff API.

Строим огромную Excel таблицу со всеми данными.

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

Пытаемся понять, что нам с этим делать.

Read more
Всего голосов 158: ↑155 и ↓3+152
Комментарии112

Прямоугольные тайловые миры

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

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

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

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

RPi-няня

Время на прочтение15 мин
Количество просмотров13K
Периодически меня подмывает сделать что-то странное. Очевидно бесполезную вещь, которая не оправдывает себя по объему вложенных средств, и через полгода после создания пылиться на полке. Но зато полностью оправдывает себя по количеству эмоций, полученному опыту и новым рассказам. На Хабре даже есть две моих статьи про такие эксперименты: Алкоорган и умная кормушка для птиц.

Что ж. Пришло время рассказать о новом эксперименте. Как собрал, что из этого вышло и как повторить.



К новому проекту меня подтолкнуло событие, в каком-то смысле, банальное — родился сын. Я заранее устроил себе отпуск на месяц. Но ребёнок оказался тихим — было свободное время. И спящий рядом деть.

Дома много разных embedded-железок для computer vision. В итоге решил сделать видео-няню. Но не такую унылую, которыми завалены все магазины. А что-то поумнее и поинтереснее.
Читать дальше →
Всего голосов 42: ↑40 и ↓2+38
Комментарии7

Ядерный шелл поверх ICMP

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


TL;DR: пишу модуль ядра, который будет читать команды из пейлоада ICMP и выполнять их на сервере даже в том случае, если у вас упал SSH. Для самых нетерпеливых весь код на github.

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

В комментариях к моей первой статье упомянули SoftEther VPN, который умеет мимикрировать под некоторые «обычные» протоколы, в частности, HTTPS, ICMP и даже DNS. Я представляю себе работу только первого из них, так как хорошо знаком с HTTP(S), а туннелирование поверх ICMP и DNS пришлось изучать.
Читать дальше →
Всего голосов 72: ↑71 и ↓1+70
Комментарии57

41 вопрос о работе со строками в Python

Время на прочтение9 мин
Количество просмотров140K
Я начал вести список наиболее часто используемых функций, решая алгоритмические задачи на LeetCode и HackerRank.

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

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


Читать дальше →
Всего голосов 65: ↑62 и ↓3+59
Комментарии40

Пишем драйвер для ноутбука for fun and profit, или как закоммитить в ядро даже если ты дурак

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

С чего всё началось


Начнём с постановки проблемы. Дано: один ноутбук. Новый ноутбук, геймерский. С RGB-подсветкой. Вот такой примерно ноутбук:

image
Картинка взята с lenovo.com

Есть ещё программа к этому ноутбуку. Программа как раз этой подсветкой и управляет.

Одна только проблема – программа под Windows, а хочется чтоб в любимом линуксе всё работало. И лампочки чтоб светились, и чтоб цвета красивые мелькали. Да вот только как это сделать, чтоб без реверс-инжиниринга и без написания своих драйверов? Простой ответ пришёл быстро – никак. Ну что ж, пошли писать драйвер.
Читать дальше →
Всего голосов 133: ↑132 и ↓1+131
Комментарии20

Нотной грамоте учат неправильно*

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

ФейспалмПреподаватели готовы разделить с вами все таинства музыкальной теории но не раньше, чем вы научитесь читать эти закорючки самостоятельно.


Предполагается, что студент должен страдать самостоятельно освоить ноты, путем многократного повторения. И вообще, если «ниасилил», значит у тебя нет Таланта — иди мести двор.


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


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


* Дисклеймер

Прошу прощения, если заголовок статьи показался вам чересчур дерзким и провокационным. Таковым он, в общем-то, и является.


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


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


Эффективность я оценивал исключительно на себе, поскольку сей субъект оказался самым доступным для исследования.

Читать дальше →
Всего голосов 124: ↑123 и ↓1+122
Комментарии212

Создаём портативную платформенную игру на микроконтроллере Cortex M0+

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

Введение


(Ссылки на исходный код и проект KiCAD приведены в конце статьи.)

Хотя мы родились в 8-битную эпоху, нашим первым компьютером был Amiga 500. Это великолепная 16-битная машина, обладавшая потрясающими графикой и звуком, благодаря чему она отлично подходила для игр. Очень популярным игровым жанром на этом компьютере стали платформеры. Многие из них были очень цветастыми и обладали очень плавным параллаксным скроллингом. Это стало возможно благодаря талантливым программистам, гениально использовавшим сопроцессоры Amiga для увеличения количества экранных цветов. Взгляните, например на LionHeart!


Lionheart на Amiga. Это статичное изображение не передаёт всю красоту графики.

С 90-х электроника сильно поменялась, и теперь есть множество маленьких микроконтроллеров, позволяющих создавать удивительные вещи.

Мы всегда любили платформенные игры, а сегодня всего за несколько долларов можно купить Raspberry Zero, установить Linux и «довольно легко» написать красочный платформер.

Но это задача не по нам — мы не хотим палить из пушки по воробьям!

Мы хотим использовать микроконтроллеры с ограниченной памятью, а не мощную систему на чипе со встроенным GPU! Другими словами, мы хотим трудностей!
Всего голосов 41: ↑41 и ↓0+41
Комментарии18

Опасные производства: мы следим за тобой, %username% (аналитика видео)

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

Один товарищ — без каски, второй — без перчатки.

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

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

Конкретно:

  • Очень легко распознавать людей без каски. Даже лысых. Увидели человека без каски — сразу алерт оператору или начальнику цеха.
  • То же самое касается очков и перчаток на опасных производствах, страховки на поясе (правда, мы смотрим только на карабин пока), светоотражающих жилетов, респираторов, шапочек для волос и других СИЗ. Сейчас система обучена распознавать 20 типов СИЗов.
  • Можно точно считать людей на объекте и учитывать, когда и сколько их было.
  • Можно подавать тревогу при заходе человека в опасную зону, причём эта зона может настраиваться по факту запуска-остановки станков.

И так далее. Самый простой пример — цветовая дифференциация укладчиков кирпичей и заливщиков бетона по цвету каски. Для помощи роботу. В конце концов, жить в обществе с отсутствием цветовой дифференциации, значит не иметь цели.
Читать дальше →
Всего голосов 74: ↑72 и ↓2+70
Комментарии44

Распознавание лиц на стройке

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


В один яркий солнечный день, когда на стройке работа просто кипит, всё вокруг ярко и позитивно, и прямо хочется вечерком пожарить шашлык, на объект проник бывший сотрудник одного из подрядчиков. Он прошёл мимо проходной, помахал рукой охраннику, который знал его в лицо (но не знал, что он уволен), и зашёл внутрь. Там он пошёл к своим друзьям из Центральной Азии. Через полчаса они уже жарили шашлык и наслаждались жизнью.

Нюанс в том, что костёр они развели между двух газовых баллонов.

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

Все остались живы и даже более-менее целы (ничего необратимого). Шашлык улетел, но на орбиту не вышел. Шампуры не проткнули никого внизу и сбоку. А вот к неудавшимся космонавтам приехала полиция, скорая и чуть ли не Спортлото.

Пришлось побеспокоиться, но не так сильно, как в тот день, когда на стройку приезжала проверка от ФМС. Тогда выяснилось, что очень многие работают по документам братьев. То есть один в семье делает себе комплект бумаг, устраивается на стройку — а дальше вместо него ходит брат. Не близнец, но для отечественного неокортекса почти неотличимый.

За одного такого родственника на стройке накладывается штраф от 500 тысяч рублей и выше, и стройка может быть приостановлена от 14 до 90 дней. А это кончается очень, очень печально для генподрядчика и заказчика.

Именно после этого инцидента позвали нас решить задачу ИТ-средствами.
Читать дальше →
Всего голосов 132: ↑130 и ↓2+128
Комментарии85

Как линуксовый админ управлял детским хором с помощью системы распознавания нот под Ubuntu 16.04. Микрофон и аккорды

Время на прочтение4 мин
Количество просмотров11K
Что нужно, чтобы лето проходило весело? Нужна музыка! Но если музыка записана нотами на бумаге, а вы — обыкновенный системный администратор, и вам поручили задачу создать детский хор, то в качестве одного из вариантов решения этой проблемы представляю несколько полезных программ. Они написаны на Java и доступны как в репозитарии Ubuntu 16.04, так и на Гитхабе для решения задачи машинного распознавания нот, создания музыкальных партий, выгрузки и редактирования получившегося музыкального продукта в популярные форматы и раздачи файлов (а также и подзатыльников) отдельным исполнителям. Тема, я надеюсь, будет интересна читателям нашего блога.(UPD1. Есть добавление по системе оптического распознавания TESSERACT 5.0.0-alpha для быстрой работы системы на современных процессорах.)

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

Информация

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