Search
Write a publication
Pull to refresh
2
0
Send message

PyFilesystem — мощная альтернатива pathlib

Reading time8 min
Views8.9K

Написанная с помощью PyFilesystem функция поиска дубликатов файлов будет работать без изменений с жёстким диском, zip-файом, FTP-сервером, Amazon S3 и т. д., этот API абстрагирует от физического расположения файла. В нём меньше способов выстрелить себе в ногу, чем у модулей os и io. Руководством из документации делимся к старту курса по Fullstack-разработке на Python.

Читать далее

Работа с pdf-файлами с помощью библиотеки fitz

Reading time4 min
Views27K

Возникла идея создать небольшую утилиту на Python, которая будет парсить PDF и сверять со списком швов, взятых из BIM модели. Изначально я обратился к библиотеке pdfminer, вернее к ее форку pdfminer.six. Но скорость работы меня совершенно не устраивала. Вот, например, загрузка файла в 10 страниц и парой картинок.

Читать далее

JavaScript: о том, что нас ждет в следующем году

Reading time9 min
Views16K

Привет, друзья! Не за горами 2022 год, а это значит, что пришло время познакомиться с новыми возможностями, которыми нас порадует ECMAScript2022.


Вот о чем мы поговорим в этой статье:


  • await верхнего уровня
  • метод at() для индексируемых сущностей
  • метод hasOwn() для объектов
  • флаг d для регулярных выражений
  • 5 предложений для классов (специальные проверки для частных полей, блоки статической инициализации и др.)

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

Читать дальше →

Теория мертвой Сети. Возможно ли, что весь интернет — это ИИ?

Reading time4 min
Views28K


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


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


Разрозненную информацию собрало издание The Atlantic.

Читать дальше →

Быстрый, мощный интерфейс на Python

Reading time15 min
Views153K

Dear PyGui принципиально отличается от других фреймворков GUI Python. Рендеринг на GPU, более 70 виджетов, встроенная поддержка асинхронности — это лишь некоторые возможности Dear PyGui. Руководством по работе с этим пакетом делимся к старту курса по разработке на Python.

Читать далее

JavaScript: немного об интернационализации и локализации веб-приложений

Reading time18 min
Views14K


Привет, друзья!


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


Статья состоит из 2 частей: теоретической и практической. В теоретической части мы кратко рассмотрим возможности, предоставляемые Internationalization API. В практической — создадим пример локализованного приложения с помощью разработанной мной утилиты.

Читать дальше →

Вывод SEO мета тегов title и description в виде визуальной структуры для каждой веб-страницы за один раз

Reading time3 min
Views6.2K

Давно существует куча инструментов от Ahrefs, Mooz, Semrush и т.д., которые показывают главные мета теги для каждой страницы отдельно, в лучшем случае списком.

Но кто-нибудь видел инструмент, который выводит сразу все title и description за раз и показывает это в виде удобной иерархической визуальной структуры для всего веб-сайта?

Давайте по порядку ...

Читать далее

Как Android пришел к AAB? Что будет с APK? Разбор

Reading time8 min
Views32K
Не так давно прогремела новость о том, что Android отказывается от APK-файлов и переходит на AAB. Вы наверняка уже эту новость прочитали, во всём разобрались и успокоились, так как новость проходная. Тем не менее, мы считаем, что переход к новой системе публикации приложений App Bundle — это часть большого пути, которую проделала система Android, чтобы стать по-настоящему быстрой, эффективной и супероптимизированной платформой. Поэтому мы подготовили большой и очень интересный материал. И сегодня мы раскроем вам массу страшных тайн Android.


  • Сегодня мы поговорим о том почему Android сначала тормозил, а потом перестал.
  • Помянем Dalvik кэш и припомним ART.
  • Узнаем во сколько внутри Android просыпается демон.
  • А также слегка затронем тему, почему Android никогда не обгонит iOS по производительность, но при этом всегда будет менее требовательным к железу.
Читать дальше →

Как объединить 5 языков программирования в одном Python проекте?

Reading time7 min
Views36K

На сегодняшний день существует несколько тысяч языков программирования, каждый из которых создавался с определенной целью, пытаясь изменить и улучшить недостатки своих предшественников. Так, например, появился язык Kotlin, который был нацелен на замену Java в мобильной разработке. В 2010 году увидел свет язык Rust, разработчики которого пытались создать быстрый и безопасный язык, который закрывал бы многие недостатки C/C++.

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

Но как объединить несколько разных языков в одном приложение, чтоб это работало?

Ознакомиться

JavaScript: 2 интересных примера практического использования Intersection Observer API

Reading time20 min
Views15K


Привет, друзья!


На днях мне посчастливилось заниматься решением 2 несложных, но довольно интересных задач на чистом JavaScript (из-за React чуть не забыл, как это делается). В процессе решения этих задач никто не пострадал, напротив, все остались довольны. Поэтому я решил поделиться результатами с сообществом.


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


Введение


Итак, задачи были следующими:


  • Реализовать навигацию по разделам сайта с визуальным переключением индикатора текущего местонахождения пользователя и возможностью переходить к определенному разделу по клику. Сама навигация согласно макету должна была выглядеть так:




  • Реализовать "ленивую" (отложенную, lazy) загрузку медиаресурсов (изображений, аудио и видео), поскольку те же изображения даже после сжатия с помощью gulp-imagemin весили (и весят, потому что они никуда не делись) неприличные 50 Мб и загружались при запуске приложения (больше они себя так не ведут).
Читать дальше →

Осваиваем LaTeX за 30 минут

Reading time14 min
Views369K

Это руководство нацелено на первое знакомство с LaTeX и предварительных знаний о нем от вас не потребует. К его завершению вы уже напишете свой первый документ и получите представление о ряде базовых возможностей этого инструмента.
Читать дальше →

Кратко об указателях в Си: присваивание, разыменование и перемещение по массивам

Reading time6 min
Views107K

Приветствую вас, дорогие читатели. В данной статье кратко описаны основные сведения об указателях в языке Си. Помимо основных операций с указателями (объявление, взятие адреса, разыменование) рассмотрены вопросы безопасности типов при работе с ними.

Читать полностью

Протокол безопасности транспортного уровня (TLS), версия 1.2 (RFC 5246) (Часть 2)

Reading time19 min
Views6.5K

Данный перевод является второй частью перевода протокола безопасности транспортного уровня (TLS) версии 1.2 (RFC 5246). Первая часть перевода находится  здесь. Вторая часть перевода содержит описание протокола записи TLS.

Читать далее

HTML страница, встроенная в анимированный GIF

Reading time2 min
Views7.5K

Началось с того, что я случайно наткнулся на станицу https://lcamtuf.coredump.cx/squirrel/
Это демка представляет собой файл, который будучи сохраненным с расширением .jpg или .jpeg открывается как графический файл, а с расширением .htm или .html как веб-страница. Такого рода трюки для JPEG не новы. Насколько я понял, HTML размещается в секции комментируя .jpeg файла. Браузер проглатывает бинарные данные заголовка как мусор, потом рендерит найденный HTML. Немного CSS хитрости чтобы спрятать бинарный мусор от глаз пользователя и вуаля.

Я вооружился редактором Hex Fiend для Mac и давольно быстро смог заменить HTML и изображение на свои.

Но остановиться на этом я не мог

Подчищаем за собой: учимся удалять данные с HDD и SSD

Reading time17 min
Views130K

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

Читать далее

Как сделать ваш терминал удобнее

Reading time4 min
Views24K

Если вам приходится время от времени работать в терминале, и хочется сделать его удобнее, не затрачивая много сил, то небольшое руководство от Рейгана Макфарланда будет как нельзя кстати.

Есть масса более гибких и настраиваемых решений, но этот вариант для тех, кому надо сделать всё быстро и просто.

Читать далее

RGB Дерево-ночник

Reading time15 min
Views10K

Представьте, сумерки, зимнее время, зажигается праздничная иллюминация, всё красиво, будто в сказке. Гирлянды всюду: на столбах, зданиях, деревьях. Есть желание забрать этот кусочек сказки с собой? Нет, вандализмом заниматься не будем. Но можем создать осколок такой сказки у себя дома.

Читать далее

Протокол безопасности транспортного уровня (TLS), версия 1.2 (RFC 5246) (Часть 1)

Reading time26 min
Views18K

На настоящий момент (август 2021 года) автором данного перевода не было найдено хоть сколько-нибудь приемлемого перевода стандарта протокола TLS версии 1.2 на русский язык. Единственный найденный перевод находится сайте protocols.ru и, во-первых, доступен только в кэше поисковика, а во-вторых, при всем уважению к его переводчику, не устраивает автора по причине неудобочитаемости и трудности восприятия. И хотя на сайте efim360.ru находится качественно выполненный перевод стандарта протокола TLS версии 1.3, многие места этого перевода могут вызвать некоторые трудности для понимания, особенно у начинающего изучать криптографию читателя. Для устранения таких «белых пятен»   и было задумано осуществить перевод стандарта протокола TLS версии 1.2 на русский язык.     

Читать далее

Понять кубик Рубика

Reading time7 min
Views43K

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

То же самое со сборкой этой головоломки: миллионы людей умеют делать это по формулам, но сколько из них понимают, что они делают? А ведь начать чувствовать кубик Рубика не так сложно!

Но сперва давайте договоримся, зачем нам такая головоломка нужна и чем полезна. Вы же уже слышали шутки про то, что кубик Эрно Рубика – штука многогранная? А видите параллели между кубиком Рубика, шахматами и, например, пианино или гитарой?

Читать далее

6 рекомендаций по определению метода __init__

Reading time4 min
Views18K

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

Читать далее

Information

Rating
6,217-th
Registered
Activity