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

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

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

Простая защита скрипта на Python

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

Стек: Python 3.11.7, ntplib, subprocess, getpass для времени, системы, пароля,

PyArmor 8+ для обфускации.

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

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

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

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

Учимся читать QR-коды без компьютера

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

Задавались ли вы когда-нибудь вопросом, как работают QR-коды? Если да, то эта статья для вас. Здесь вас ждёт интерактивное объяснение*, которое мы составили для семинара, проводившегося в рамках Всемирного конгресса хакеров 37C3, но вы также можете использовать его самостоятельно.

Прочитав статью, вы узнаете:

  • Из чего состоят QR-коды.
  • Как декодировать QR-коды вручную (используя нашу шпаргалку).
Читать дальше →
Всего голосов 96: ↑93 и ↓3+116
Комментарии33

Каково это, сделать игру на китайском движке Cocos Creator 3?

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

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

Cocos Creator 3 [1] - это китайский опенсорсный игровой движок, заточенный на разработку браузерных игр и интерактивных/игровых рекламных блоков. Он весьма популярен в Китае, и очень слабо известен в остальном мире.

Подробнее про Cocos
Всего голосов 12: ↑10 и ↓2+13
Комментарии10

Как я написал бота для саммари telegram каналов

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

Всем привет!
Меня зовут Азрет, я - CTO в AAA (читается как "трипл-эй"). Мы разрабатываем LLM приложения для бизнеса. Решаем разнообразные задачи - оптимизация внутренних процессов за счет ИИ, маркетинговые исследования и запуск новых продуктов. Но запрос на бота, про которого я хочу рассказать, внезапно пришел от фаундера нашего агенства.

Ситуация понятна - я подписан на кучу телеграм каналов, я не успеваю их читать, мне от этого неприятно, я испытываю FOMO. А я бы хотел не пропустить ничего важного, тратить как можно меньше времени и иметь все в одном месте.

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

В этой обзорной статье - детали архитектуры и стека.
Кому интересно - прошу под кат.

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

Telegram Web App, FastAPI и вебхуки в одном приложении: Создаем Telegram-бот с веб-интерфейсом для приема заявок

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

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

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

Для разработки самого бота мы воспользуемся библиотекой Aiogram 3, которая обеспечит удобный и мощный интерфейс для взаимодействия с Telegram API. Это позволит нам быстро реализовать необходимые функции и сделать процесс разработки более эффективным.

Читать далее
Всего голосов 20: ↑18 и ↓2+19
Комментарии9

Клеман Лефевр, создатель Linux Mint

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

Клеман Лефевр (Clement Lefebvre) — создатель Linux Mint. Долгое время это был самый популярный дистрибутив Linux, то есть по сути самая популярная в мире свободная ОС для настольных ПК.

Дистрибутив на базе Ubuntu и Debian обогнал по популярности и Ubuntu, и Debian. Хотя он не получает широкой медийной огласки, но если спросить самих линуксоидов, то многие порекомендуют Mint.
Читать дальше →
Всего голосов 48: ↑48 и ↓0+63
Комментарии36

Джеффри Сновер и создание PowerShell

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

Если вспомнить времена MS-DOS и первые версии Windows, то каждая версия содержала в комплекте утилиту с интерфейсом командной строки: command.com или cmd.exe, но они поддерживали крайне скудный список команд. Если для администрирования системы нужно было запустить скрипт, то он запускался из отдельного исполняемого файла с расширением .bat. Microsoft пыталась исправить ситуацию с помощью других вспомогательных инструментов, но не слишком удачно.
Читать дальше →
Всего голосов 33: ↑29 и ↓4+38
Комментарии24

Карсон Гросс, создатель HTMX

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


Карсон Гросс (Carson Gross) — профессор информатики из Монтаны, который неожиданно стал одним из самых ярких персонажей в индустрии веб-программирования последних лет. Он автор языка HyperScript и популярной библиотеки для фронтенда HTMX, позволяющей создавать сложные интерактивные сайты средствами HTML. Красивая альтернатива клиентскому рендерингу на JavaScript решает сразу несколько проблем современного веба, связанных с избыточной сложностью разработки и поддержки, производительностью и ожирением сайтов.

Создавать сайты очень просто, тот же Хабр написал один программист, а не команда из сотен разработчиков и девопсов, как сейчас принято нанимать в интернет-компании.

Многие веб-разработчики нашего времени выросли со знанием только одностраничных приложений SPA и фреймворков для них. Они начали свои карьеры с приложений на React.js, которые общаются с сервером Node через JSON API. Это настоящая трагедия, считает Гросс. Интерактивные приложения можно делать совершенно иначе.
Читать дальше →
Всего голосов 41: ↑39 и ↓2+54
Комментарии17

Реймонд Хилл и его блокировщик uBlock Origin

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


Реймонд Хилл (gorhill) — автор и мейнтейнер оригинального блокировщика рекламы uBlock и нынешнего uBlock Origin. Признанный авторитет в сообществе, каждая его статья или твит имеет большой вес. В последние годы он часто высказывается о лицемерной политике компании Google, которая под видом заботы о пользователях ужесточает требования к расширениям для браузера Chrome, что в первую очередь затрагивает блокировщики рекламы.

К сожалению, в ближайшие месяцы расширение uBlock Origin окончательно перестанет работать в браузере Chrome.

Отдельная головная боль — видеохостинг YouTube, который тоже объявил «священную войну» блокировщикам рекламы, пытается их идентифицировать и помешать работе, придумывая всё новые способы внедрения неудаляемой рекламы.
Читать дальше →
Всего голосов 102: ↑100 и ↓2+129
Комментарии68

Как подружить микросервисы и Kafka

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

С увеличением вычислительных мощностей и пропускной способности каналов связи увеличились также и объемы обрабатываемых данных, а также требования к скорости обработки. Сейчас все больше систем требуют, чтобы работа с данными велась в режиме реального времени. Apache Kafka является распределённым программным брокером сообщений с открытым исходным кодом. Цель Kafka является создание горизонтально масштабируемой платформы для обработки потоковых данных в реальном времени с высокой пропускной способностью и низкой задержкой.

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

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

Telegram bot который принимает фотографии и публикует их

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 79: ↑78 и ↓1+97
Комментарии45

Как написать одностраничное приложение (SPA) с использованием Vue.js

Время на прочтение7 мин
Количество просмотров129K
Одностраничные приложения

Одностраничные приложения (SPA) имеют мнжество преимуществ, таких как скорость, по-настоящему хороший UX, и полный контроль HTML-разметки. Становится всё больше и больше сайтов SPA; всё больше инструментов, которые упрощают процесс разработки SPA. Вы, вероятно уже читали о молодом и перспективном фреймворке Vue.js. Предлагаю вам глубже погрузиться в Vue и на конкретном примере разобраться с простым SPA.

Мы напишем клиент-серверное приложение простейшего блога. Приложение будет отображать список записей а также полный текст каждой отдельной записи. И само собой, всё это будет происходить без перезагрузки страницы.

Ознакомившись с примером этого приложения, вы научитесь извлекать данные в Vue, создавать роуты и разберётесь с интересной особенностью Vue — однофайловыми компонентами.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии28

Markdown Editor: WYSIWYG и markup-редактор на базе Gravity UI

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

Привет, Хабр! Меня зовут Сергей Махнаткин, я работаю разработчиком в отделе User Experience в Yandex Cloud. В прошлом году мы писали о нашей дизайн-системе и библиотеке компонентов Gravity UI. С тех пор система не раз обновлялась и обрастала новыми функциями, и сегодня я хочу рассказать о новом инструменте — Markdown Editor, который значительно упрощает процесс работы с документацией.

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

Читать далее
Всего голосов 44: ↑43 и ↓1+61
Комментарии22

Синей пеленой экран заполнил чистый DOS. Доска почёта и респекта: лучшие программные решения и интерфейсы

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

В большинстве современных книг есть такой раздел — «Благодарности». Автор благодарит своих редакторов, учителей, друзей, родственников, любимых котов и всех тех, без кого книга никак не могла появиться на свет. Книгу я писать не планирую, а сказать спасибо за всё хорошее можно и в посте на Хабре.

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

Читать далее
Всего голосов 68: ↑62 и ↓6+69
Комментарии71

Реализация REST API-метода с пагинацией на примере JSON-Schema и OpenAPI

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

В этой статье на примере JSON-схемы и спецификации OpenAPI рассматривается проектирование метода REST API с пагинацией, предназначенного для запроса данных из БД.

Данный текст преимущественно ориентирован на начинающих системных аналитиков и всех, кто интересуется проектированием IT-систем.

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

Auth service без библиотек

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

О чем эта статья: статья посвящена схемам регистрации, аутентификации, авторизации пользователей в веб приложениях, смене паролей, отзыве токенов, и т. п. Мы также рассмотрим, как организовать хранение данных, обсудим, что такое JWT, коротко поговорим о «сервисе для отправки email»

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

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

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

Ищем адекватную замену ChromeOS для устаревшего Chromebook. Несколько интересных экспериментов

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

Привет, Хабр! Это Кирилл из МТС Диджитал. Недавно я опубликовал пост Chromebook: жизнь после EOS. Сегодня возвращаюсь с продолжением.

Мне стало интересно, сложно ли подобрать операционную систему, с которой все устройства Chromebook будут работать в штатном режиме. И какие проблемы по ходу этого дела возникнут. Я попробовал установить несколько операционных систем — оказалось, тут есть о чем рассказать. Так что заварите себе чаю, приятного чтения!

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

Код как данные: пишем Python на Python

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров17K
Идея о том, что язык программирования может реализовать сам себя, удивительна. Она вызывает сильное любопытство: «Как это вообще может выглядеть?» С момента своего появления в начале 60-х это мог делать Lisp.

В начале 60-х Джон Маккарти придумал серию примечательных идей, хорошо сочетающихся друг с другом и актуальных даже спустя десятки лет. Сначала он сформулировал их в статье о Lisp, а чуть позже — в руководстве по Lisp 1.5.


Джон Маккарти

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

Такая унификация кода и данных глубоко укоренилась в Lisp, она обеспечивает уровень выразительности, позволяющий языку естественным образом быть выраженным в самом себе.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+27
Комментарии10

Программирование на C в Linux на примере создания своей командной оболочки

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

Привет, хабр! Язык программирования C — основополагающий, как я считаю. И его знать, нет, не обходимо, но довольно желательно. Большинство языков отсылают к C, и зная C (или C++) другой язык будет даваться намного легче.

Я решил недавно улучшить свой навык владения C, путем написания проектов. Самая первая мысль, которая пришла мне на ум — это командный интерпретатор, командная оболочка, shell проще говоря. А также я расскажу о системе сборки make, и о том, как правильно писать и документировать C-код.

В этом туториале я буду использовать компилятор CLANG, а не GCC, и расскажу его преимущества

Итак, для создания своего шелла на C для Linux вам понадобится простой советский копеечный...

Узнать
Всего голосов 28: ↑25 и ↓3+36
Комментарии42
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Житомир, Житомирская обл., Украина
Зарегистрирован
Активность