Давно пишу ботов для телеграмм, использую golang. Понадобился функционал - сканировать каналы по ссылке. Бот такое не может, это уже более сложное апи, порылся - нашел библиотеку на golang, попробовал - сложно. Нашел на питоне - проще. Но на питоне не хочется. Так родилась идея сделать простую обертку REST API для основного функционала: вступить в группу, прочитать сообщения, узнать информацию о группе, написать сообщение, и чтобы курлом все работало...
User
Записываем PNG без мам, пап и внешних библиотек
Я решал очередную техническую задачу и столкнулся с проблемой: нужно сохранять изображения, а у меня нет сериализаторов и я не могу использовать готовые библиотеки. Ситуацию ухудшает, что из доступных форматов только PNG, JPEG и WebP. Выбор пал на PNG.
Формат изображения PNG известен с 1996 года, а на Хабре опубликовано несколько статей о декодировании этого формата. И ни одной — о кодировании. Я расскажу, как сохранить PNG своими руками на случай, если вам тоже придется это делать. Например, в академических целях.
Под катом вас ждет подробный разбор каждого байта на множестве иллюстраций.
GIMP Script-Fu Первый Дан. Шаг первый
Здравствуй Читатель! Если ты хочешь научиться программировать расширения для 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 и представлены в настоящей работе.
Как поднять свой WebSocket сервер на Node.js: основы
Привет, Хабр!
Сегодня создадим свой WebSocket сервер на Node.js. Это тот самый протокол, который позволяет отправлять и принимать данные в реальном времени без перекладывания на HTTP. Для этого мы будем использовать библиотеку ws.
Ставлю на Zero! Мой выбор одноплатника. Raspberry Pi vs Orange Pi
Работа над прошлой статьей "О Raspberry Pi для чайников как я. И при чем здесь SONY с ИИ?" пробудила во мне недетский интерес. Не ясно, почему, но возникло желание купить одноплатник. Какой и зачем? Я начал собирать дополнительную информацию: читать статьи, искать книги, смотреть блогеров, перелопачивать полки китайского маркетплейса. Теперь я могу сказать: я видел все, я познал дзен. Нет, конечно. Но, кое-что я узнал. И спешу поделиться с вами, пока жду доставки.
Эта статья, как и прошлая, для таких же новичков в работе с одноплатными компьютерами, как и я сам. Мы вместе пройдем путь от общих мыслей к сравнению характеристик устройств и принятию решения. Попутно с авторами других статей и видео порассуждаем о реальном применении и проектах. А закончим планами на ближайшее будущее и просьбой совета у более опытных коллег. Приятного чтения!
Почему так происходит | Telegram Mini App
Почему же так получилось, что «Тапалки» перестали давать хорошие раздачи и стали требовать донаты?
Сейчас вы увидите схему, которую я нарисовал, чтобы наглядно показать, кто дал старт и что за ним последовало. Без этого контекста будет сложно понять последствия.
Регулярные выражения простыми словами. Часть 1
Разработчики делятся на два типа: тех, кто уже понимает регулярные выражения и порой решает сложные задачи одной строкой, и тех, кто все еще боится и всячески их избегает. Эта статья специально для вторых, чтобы им было проще стать первыми. Она либо поможет преодолеть «регекспофобию», либо усугубит ее. В любом случае, добро пожаловать под кат.
far2l в Ubuntu 24.04 LTS готов для повседневного использования
Несколько дней назад вышло обновление, устраняющее последние шероховатости UX, и мы рады представить вам долгожданный полноценно работающий Far Manager в составе LTS-версии Ubuntu 24.04! В этой статье я расскажу, как получить максимум удовольствия от его использования. Поехали!
sudo apt update
sudo apt install far2l
Некоторые малоизвестные фичи, фокусы и причуды языка C
В этом посте разобраны некоторые фокусы, причуды и фичи языка C (некоторые из них – весьма фундаментальные!), которые, казалось бы, могут сбить с толку даже опытного разработчика. Поэтому я потрудился сделать за вас грязную работу и (в произвольном порядке) собрал некоторые из них в этом посте. Примеры сопровождаются ещё более вольными краткими пояснениями и/или листингами (некоторые из них цитируются).
Конечно же, здесь я не берусь перечислять абсолютно всё, так как факты из разряда «функция nan()
не может устанавливать errno
, поскольку в определённых ситуациях поведёт себя как strtod()
» не слишком интересны.
ВНИМАНИЕ: сам факт попадания тех или иных вещей в эту подборку не означает автоматически, что я рекомендую или, наоборот, не рекомендую ими пользоваться! Некоторые из приведённых примеров никогда не должны просачиваться за пределы списков наподобие этого, тогда как другие примеры невероятно полезны! Уверен, что могу положиться на ваш здравый смысл, дорогие читатели.
Самые опасные сетевые порты: как найти и закрыть все лазейки
В прошлом материале, кратком пособии по безопасной работе с сетевыми портами, мы кратко разобрали, как с помощью различных межсетевых экранов защитить инфраструктуру. На самом деле, это не rocket science. Но это то, о чем важно всегда помнить при работе с инфраструктурой — например, при публикации веб-сервисов наружу. Ведь в сети есть темные лошадки, которые требуют особо пристального внимания, — наиболее популярные порты, подверженные эксплуатации уязвимостей.
Привет! Меня зовут Ваня, я ведущий инженер по информационной безопасности в Selectel. В этом материале разберу, какие порты наиболее интересны хактивистам и как быть в курсе актуальных уязвимостей. А в конце поделюсь чек-листом с планом действий при обнаружении открытых портов в своей инфраструктуре. Подробности под катом!
Обзор денежных переводов между Россией и Казахстаном на октябрь 2024 года
Наступает октябрь 2024 года, и пришло время обновить информацию о вариантах денежных переводов для физических лиц между Россией и Казахстаном. В этом году игроки на рынке почти не изменились, но некоторые из них понесли потери. Рассмотрим текущую ситуацию подробнее.
Компилируем и выполняем C на JavaScript
Алгоритм сравнения отпечатков пальцев: комбинация классических алгоритмов
Про алгоритмы распознавания по отпечаткам пальцев человека написано много статей. Описание алгоритмов обработки и сравнения отпечатков пальцев включено во многие учебники по компьютерному зрению и обработке цифровых изображений. Целью этой заметки не является дать исчерпывающую информацию по алгоритмам распознавания отпечатков пальцев, а на примере решения задачи сравнения отпечатков пальцев показать, как можно использовать и комбинировать между собой классические алгоритмы Сomputer Science (обход графа и нахождение наибольшей общей подпоследовательности) для решения практической задачи.
Будни техпода. Какую ОС семейства Linux выбрать для VDS
Не все наши клиенты знакомы с Linux, и это вполне нормально. Когда дело доходит до выбора сервера, часто возникает вопрос: какую версию Linux выбрать и чем они отличаются друг от друга? И в этой статье я постараюсь объяснить, что из себя представляют популярные дистрибутивы Linux (Ubuntu, Debian, CentOS), которые можно заказать на нашем сайте, и чем они принципиально отличаются друг от друга. А ещё подскажу, как с ними удобнее работать тем, кто пока на «вы» с консолью.
Создаём личный шрифт
Для иллюстраций, над которыми я работаю, часто необходим текст. Но я не хочу использовать готовые шрифты. При работе с иллюстрациями в браузере использование «веб‑безопасного» шрифта может привести к непредсказуемому результату, да и вообще использование внешних шрифтов порой сильно увеличивает размер файла с иллюстрацией.
Вместо использования готовых шрифтов я создала свой собственный, используя p5.js и JavaScript.
«Всегда закрывай за собой двери!»: краткое пособие по работе с портами
Открытые порты — это распахнутые двери в вашу инфраструктуру. Сервис, который слушает по ним запросы, обрабатывает входящие данные и реагирует на них в зависимости от заложенной логики. Из-за ошибок на этом уровне возникают уязвимости, которые хактивист может эксплуатировать для нелегитимного доступа к инфраструктуре.
Самый логичный способ обезопасить себя — ограничить сетевой доступ к сервису или инфраструктуре — например, через порты. Это можно сделать с помощью межсетевого экрана — инструмента для управления трафиком в сети и защиты от несанкционированного доступа. Решение позволяет описать, какие запросы будут проходить через определенные порты, к каким сервисам можно получить доступ и т. д.
Привет! Меня зовут Иван, я ведущий инженер по информационной безопасности в Selectel. Давно хотели научиться настраивать сетевые интерфейсы? Хорошая новость: мы в Selectel запускаем цикл статей по работе с портами в разрезе ИБ. В этом материале разберем, как с помощью различных межсетевых экранов: локальных, облачных и МСЭ в составе NGFW — обеспечить дополнительную защиту сервисов. Подробности под катом!
Линукс, ассемблер и X11
Слегка устав от засилия объемных современных фреймворков и «продвинутых» технологий, решил устроить себе день психического здоровья. Ниже будет полный «back-to-roots»: чистый ассемблер и открытие окна в X-сервере, на линуксе. Никаких библиотек, фрейворков и виртуальных машин.
Как работает интернет
Если вы полный ноль в интернет-технологиях, и хотите получить общее понимание Интернета, прочитав всего одну статью, то эта статья - для вас.
Здесь вы узнаете о 4 уровнях модели TCP/IP. О том, что такое MAC-адрес и IP-адрес, и зачем нам 2 типа цифровых адресов. Как работает DNS. Зачем нужны коммутаторы и роутеры. Как работает NAT. Как устанавливается защищённое соединение. Что такое инфраструктура открытых ключей, и зачем нужны TLS-сертификаты. Чем отличаются три версии протокола HTTP. Как происходит HTTP-аутентификация. И в конце будет несколько слов о VPN.
Создание приложения под Мурмулятор ОС (1)
Как я писал ранее (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) поддерживает три вида приложений:
Information
- Rating
- 2,371-st
- Location
- Новосибирск, Новосибирская обл., Россия
- Registered
- Activity