Pull to refresh
4
0.3
Игорь @jobless

User

Send message

Телеграм не бот, REST API wrapper для управления аккаунтом но не ботом

Level of difficultyEasy
Reading time6 min
Views1.8K

Давно пишу ботов для телеграмм, использую golang. Понадобился функционал - сканировать каналы по ссылке. Бот такое не может, это уже более сложное апи, порылся - нашел библиотеку на golang, попробовал - сложно. Нашел на питоне - проще. Но на питоне не хочется. Так родилась идея сделать простую обертку REST API для основного функционала: вступить в группу, прочитать сообщения, узнать информацию о группе, написать сообщение, и чтобы курлом все работало...

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

Записываем PNG без мам, пап и внешних библиотек

Reading time9 min
Views14K

Я решал очередную техническую задачу и столкнулся с проблемой: нужно сохранять изображения, а у меня нет сериализаторов и я не могу использовать готовые библиотеки. Ситуацию ухудшает, что из доступных форматов только PNG, JPEG и WebP. Выбор пал на PNG.

Формат изображения PNG известен с 1996 года, а на Хабре опубликовано несколько статей о декодировании этого формата. И ни одной — о кодировании. Я расскажу, как сохранить PNG своими руками на случай, если вам тоже придется это делать. Например, в академических целях.

Под катом вас ждет подробный разбор каждого байта на множестве иллюстраций.
Читать дальше →
Total votes 113: ↑113 and ↓0+138
Comments18

GIMP Script-Fu Первый Дан. Шаг первый

Level of difficultyEasy
Reading time7 min
Views1.4K

Здравствуй Читатель! Если ты хочешь научиться программировать расширения для GIMP с помощью Script-fu тебе сюда. Я планирую опубликовать серию статей по данной теме. И эта статья только первый шаг в увлекательный мир лайф-кодинга. Что это значит? Расширение GIMP Script-fu представляет собой обёртку над интерпретатором языка scheme, который позволяет не только загружать и интерпретировать скрипты пользователя, но и работать с ними в интерактивном режиме, давая команды интерпретатору в режиме REPL, когда интерпретатор читает код(Read), оценивает(или ещё говорят вычисляет) то что прочитал(Eval), печатает результат(Print) и повторят всё это заново(Loop), короче REPL.

Предисловие

Однажды изучая книгу, Структура и интерпретация компьютерных программ(SICP), я наткнулся на задание по созданию языка функциональной геометрии придуманного Питером Хендерсоном funcgeo2.pdf. И я решил повторить эту реализация в качестве задания, закрепляющего тему процедурной композиции. Обычно задания я делал используя реализацию языка scheme - racket. Отличный язык для обучения основам программирования. Более простой курс этого обучения, пригодный для школьников описан в книге HtDP — "Как разрабатывать программы", перевод которой недавно вышел в печатном виде в России, есть также моя неофициальная попытка перевода, в виде html страниц: htdp-rus . Более продвинутый курс изучения компьютерных наук на языке Scheme описан в уже упомянутой книге SICP, обычно изучаемой уже студентами ВУЗов. Но в языке racket уже реализованы элементы этого языка манипулирования изображениями, поэтому я решил обратить своё внимание на язык script-fu в GIMP, про который мне на тот момент было практически ничего не известно, кроме того что он также является одной из разновидностью реализаций scheme. Результаты попытки реализации этого задания из SCIP и представлены в настоящей работе.

Читать далее
Total votes 5: ↑5 and ↓0+7
Comments5

Как поднять свой WebSocket сервер на Node.js: основы

Level of difficultyEasy
Reading time4 min
Views3.7K

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

Сегодня создадим свой WebSocket сервер на Node.js. Это тот самый протокол, который позволяет отправлять и принимать данные в реальном времени без перекладывания на HTTP. Для этого мы будем использовать библиотеку ws.

Читать далее
Total votes 28: ↑15 and ↓13+8
Comments8

Ставлю на Zero! Мой выбор одноплатника. Raspberry Pi vs Orange Pi

Level of difficultyEasy
Reading time9 min
Views15K

Работа над прошлой статьей "О Raspberry Pi для чайников как я. И при чем здесь SONY с ИИ?" пробудила во мне недетский интерес. Не ясно, почему, но возникло желание купить одноплатник. Какой и зачем? Я начал собирать дополнительную информацию: читать статьи, искать книги, смотреть блогеров, перелопачивать полки китайского маркетплейса. Теперь я могу сказать: я видел все, я познал дзен. Нет, конечно. Но, кое-что я узнал. И спешу поделиться с вами, пока жду доставки.

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

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

Почему так происходит | Telegram Mini App

Level of difficultyEasy
Reading time5 min
Views5.2K

Почему же так получилось, что «Тапалки» перестали давать хорошие раздачи и стали требовать донаты?

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

Понять всю суть
Total votes 12: ↑5 and ↓7+3
Comments9

Регулярные выражения простыми словами. Часть 1

Level of difficultyEasy
Reading time7 min
Views36K

Разработчики делятся на два типа: тех, кто уже понимает регулярные выражения и порой решает сложные задачи одной строкой, и тех, кто все еще боится и всячески их избегает. Эта статья специально для вторых, чтобы им было проще стать первыми. Она либо поможет преодолеть «регекспофобию», либо усугубит ее. В любом случае, добро пожаловать под кат.
Читать дальше →
Total votes 162: ↑161 and ↓1+187
Comments55

far2l в Ubuntu 24.04 LTS готов для повседневного использования

Level of difficultyEasy
Reading time6 min
Views23K

Несколько дней назад вышло обновление, устраняющее последние шероховатости UX, и мы рады представить вам долгожданный полноценно работающий Far Manager в составе LTS-версии Ubuntu 24.04! В этой статье я расскажу, как получить максимум удовольствия от его использования. Поехали!

sudo apt update

sudo apt install far2l

Читать далее
Total votes 113: ↑113 and ↓0+139
Comments172

Некоторые малоизвестные фичи, фокусы и причуды языка C

Reading time19 min
Views29K

В этом посте разобраны некоторые фокусы, причуды и фичи языка C (некоторые из них – весьма фундаментальные!), которые, казалось бы, могут сбить с толку даже опытного разработчика. Поэтому я потрудился сделать за вас грязную работу и (в произвольном порядке) собрал некоторые из них в этом посте. Примеры сопровождаются ещё более вольными краткими пояснениями и/или листингами (некоторые из них цитируются).

Конечно же, здесь я не берусь перечислять абсолютно всё, так как факты из разряда «функция nan() не может устанавливать errno, поскольку в определённых ситуациях поведёт себя как strtod()» не слишком интересны.

ВНИМАНИЕ: сам факт попадания тех или иных вещей в эту подборку  не означает автоматически, что я рекомендую или, наоборот, не рекомендую ими пользоваться! Некоторые из приведённых примеров никогда не должны просачиваться за пределы списков наподобие этого, тогда как другие примеры невероятно полезны! Уверен, что могу положиться на ваш здравый смысл, дорогие читатели.

Читать далее
Total votes 82: ↑81 and ↓1+100
Comments45

Самые опасные сетевые порты: как найти и закрыть все лазейки

Reading time7 min
Views24K

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

Привет! Меня зовут Ваня, я ведущий инженер по информационной безопасности в Selectel. В этом материале разберу, какие порты наиболее интересны хактивистам и как быть в курсе актуальных уязвимостей. А в конце поделюсь чек-листом с планом действий при обнаружении открытых портов в своей инфраструктуре. Подробности под катом!
Читать дальше →
Total votes 57: ↑53 and ↓4+66
Comments26

Обзор денежных переводов между Россией и Казахстаном на октябрь 2024 года

Level of difficultyEasy
Reading time2 min
Views15K

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

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

Компилируем и выполняем C на JavaScript

Reading time13 min
Views6K
Мир работает на C. Этот язык лежит в основе сжатия файлов, сетевых взаимодействий и даже браузера, в котором вы читаете эту статью. Если код не написан на C, он всё равно взаимодействует с ABI, написанном на C (речь о C++, Rust, Zig, т.д.) и доступен в виде библиотеки на C. Язык C и C ABI — это прошлое, настоящее и будущее системного программирования.
Читать дальше →
Total votes 19: ↑19 and ↓0+32
Comments7

Обход блокировок с помощью Double…

Reading time9 min
Views56K

В статье будут рассмотрены четыре независимых варианта прохождения трафика транзитом с помощью:

1) Double openVPN

2) openVPN + vtun

3) openVPN + tun2proxy через socks5 прокси

4) GOST + openVPN

Читать далее
Total votes 38: ↑36 and ↓2+48
Comments98

Алгоритм сравнения отпечатков пальцев: комбинация классических алгоритмов

Level of difficultyHard
Reading time18 min
Views3.9K

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

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

Будни техпода. Какую ОС семейства Linux выбрать для VDS

Level of difficultyEasy
Reading time4 min
Views11K


Не все наши клиенты знакомы с Linux, и это вполне нормально. Когда дело доходит до выбора сервера, часто возникает вопрос: какую версию Linux выбрать и чем они отличаются друг от друга? И в этой статье я постараюсь объяснить, что из себя представляют популярные дистрибутивы Linux (Ubuntu, Debian, CentOS), которые можно заказать на нашем сайте, и чем они принципиально отличаются друг от друга. А ещё подскажу, как с ними удобнее работать тем, кто пока на «вы» с консолью.
Читать дальше →
Total votes 31: ↑22 and ↓9+23
Comments16

Создаём личный шрифт

Level of difficultyEasy
Reading time9 min
Views4.6K

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

Вместо использования готовых шрифтов я создала свой собственный, используя p5.js и JavaScript.

Читать далее
Total votes 36: ↑34 and ↓2+38
Comments7

«Всегда закрывай за собой двери!»: краткое пособие по работе с портами

Reading time9 min
Views28K

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

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

Привет! Меня зовут Иван, я ведущий инженер по информационной безопасности в Selectel. Давно хотели научиться настраивать сетевые интерфейсы? Хорошая новость: мы в Selectel запускаем цикл статей по работе с портами в разрезе ИБ. В этом материале разберем, как с помощью различных межсетевых экранов: локальных, облачных и МСЭ в составе NGFW — обеспечить дополнительную защиту сервисов. Подробности под катом!
Читать дальше →
Total votes 38: ↑37 and ↓1+54
Comments6

Линукс, ассемблер и X11

Level of difficultyHard
Reading time37 min
Views9K

Слегка устав от засилия объемных современных фреймворков и «продвинутых» технологий, решил устроить себе день психического здоровья. Ниже будет полный «back-to-roots»: чистый ассемблер и открытие окна в X-сервере, на линуксе. Никаких библиотек, фрейворков и виртуальных машин.

Погрузиться
Total votes 21: ↑18 and ↓3+19
Comments30

Как работает интернет

Level of difficultyEasy
Reading time30 min
Views98K

Если вы полный ноль в интернет-технологиях, и хотите получить общее понимание Интернета, прочитав всего одну статью, то эта статья - для вас.

Здесь вы узнаете о 4 уровнях модели TCP/IP. О том, что такое MAC-адрес и IP-адрес, и зачем нам 2 типа цифровых адресов. Как работает DNS. Зачем нужны коммутаторы и роутеры. Как работает NAT. Как устанавливается защищённое соединение. Что такое инфраструктура открытых ключей, и зачем нужны TLS-сертификаты. Чем отличаются три версии протокола HTTP. Как происходит HTTP-аутентификация. И в конце будет несколько слов о VPN.

Читать далее
Total votes 106: ↑99 and ↓7+112
Comments61

Создание приложения под Мурмулятор ОС (1)

Level of difficultyHard
Reading time4 min
Views3.7K

Как я писал ранее (https://habr.com/ru/articles/839976/), Murmulator - одноплатный ультрадешевый микрокомпьютер на основе платы Raspberry Pi Pico (пика), которая, в свою очередь, основана на микроконтроллере - RP2040.

RP2040 - одна из наиболее известных двухъядерных реализаций ARM Cortex-M0+ с 264 КБ встроенной SRAM памяти и от 2-ух до 16-ти МБ flash-памяти подключаемых по QSPI интерфейсу, распаянной на плате пики.

Отдельную статью-тутуриал я посвятил использованию Мурмулятор ОС (МОС): https://habr.com/ru/articles/840052/ с точки зрения пользователя. Теперь имеет смысл описать процесс создания приложений под МОС.

МОС (рассматриваем текущую версию 0.2.7) поддерживает три вида приложений:

Читать далее
Total votes 9: ↑9 and ↓0+16
Comments0
1
23 ...

Information

Rating
2,371-st
Location
Новосибирск, Новосибирская обл., Россия
Registered
Activity