Pull to refresh
-14
0.6
Send message

Шпаргалка с командами для Windows, Linux и macOS (Терминал, VirtualEnv и Git)

Reading time3 min
Views24K

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

В ней вы найдете основные команды для работы в терминале Windows, Linux и macOS. Также описаны базовые команды по работе с VirtualEnv и Git.

Смотреть команды

Использование Annotated в Python

Level of difficultyMedium
Reading time8 min
Views12K

Всем привет. Ранее мы с вами разбирали универсальные типы в python. Продолжая тему подсказок типов, в данной статье, я расскажу о примерах использования Annotated из модуля typing. Если вы слышите о Annotated в первый раз, то для лучшего понимания, стоит ознакомится с PEP 593 – Flexible function and variable annotations.

Данный инструмент очень полезен, если вы разрабатываете различные фреймворки или библиотеки. И даже если вы занимаетесь написанием прикладного кода, то не будет лишним знать и понимать, что происходит "под капотом" фреймворков и библиотек использующих Annotated.

Читать далее

Ускорение роутера в Django в 51 раз

Level of difficultyMedium
Reading time6 min
Views15K

История началась с разбора использования ресурсов приложением, которое занимается проксированием. Обнаружили, что довольно много времени оно тратит на выбор маршрута (роута), и решили ускорить этот процесс. Описанная в статье оптимизация не требует каких-то особых вложений, усилий или условий, поэтому приведенный код можно забрать к себе и использовать без каких-либо чрезмерных вмешательств.

Читать далее

Введение в gRPC: Основы, применение, плюсы и минусы. Часть I

Level of difficultyEasy
Reading time4 min
Views28K

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

Читать далее

Об извлечении кода в Python

Reading time6 min
Views6.4K
Я начал изучать Python в 2009 году, столкнувшись с очень нетривиальной и, кстати, необычной задачей на этом языке. Тогда я разрабатывал приложение для ПК, где графический пользовательский интерфейс создавался на PyQT, а основным языком в программе был Python.

Чтобы скрыть код, я встроил интерпретатор Python в самостоятельный исполняемый файл Windows. Это можно сделать при помощи множества инструментов (напр., pyinstaller, pyexe), все они функционально похожи. Они компилируют в байт-код ваши скрипты, написанные на Python, а далее, связывая их с интерпретатором, укладывают в исполняемый файл. Если компилировать скрипты, понижая их до байт-кода, то злоумышленникам становится сложнее добраться до вашего исходного кода и взломать ваше приложение. Байт-код приходится извлекать из исполняемого файла и декомпилировать. Кроме того, таким способом можно выполнять обфускацию кода, и в результате код становится гораздо сложнее понимать.
Читать дальше →

Удобный CI/CD доступен каждому

Level of difficultyMedium
Reading time13 min
Views16K

Привет, Хабр! Недавно я выступал на Moscow Python Conf, где делился нашим опытом создания и использования CI/CD пайплайнов. В данной статье я расскажу об этих пайплайнах, раскрою их особенности и покажу, как они помогают нам быстро доставлять код и поддерживать высокий показатель Time To Market. Надеюсь, что наш опыт будет полезен и вам.

Читать далее

Дешифрование паролей для доступа к потерянным Биткоин Кошелькам с помощью метода Gauss-Jacobi

Reading time14 min
Views8K

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

Метод Gauss-Jacobi является итеративным численным методом для решения систем линейных уравнений. Он широко используется в различных областях, таких как криптография, криптоанализ, инженерия и вычислительная математика. Сеть Биткоин использует криптографические алгоритмы, такие как хэш-функции SHA-256, алгоритм подписи ECDSA, эллиптические кривые secp256k1, для создания публичных и приватных ключей, которые представляют собой точки на эллиптической кривой. Приватный ключ – это секретная числовая величина, которая используется для генерации публичного ключа, а публичный ключ – это точка на кривой, полученная путем вычисления с приватным ключом. Таким образом, эллиптические кривые secp256k1 лежат в основе криптографических механизмов, которые обеспечивают безопасности транзакций и защиты от различных атак. Современные технологии которые развивают предварительно обученную модель Bitcoin ChatGPT находят эффективные способы решение сложных криптографических задач, лежащих в основе алгоритмов, используемых в Биткоине.

Читать далее

Безопасность первична: сетевое взаимодействие и привилегии контейнеров в Docker

Reading time8 min
Views7.8K

Привет, Хабр! Меня зовут Эллада, я специалист по информационной безопасности в Selectel. Продолжаю рассказывать о безопасности в Docker. В новой статье поговорим о сетевом взаимодействии контейнеров, правильном управлении привилегиями и ограничении потребления системных ресурсов.

Поделюсь, почему не стоит использовать bridge docker0 и network namespace хоста, чего не стоит делать при монтировании каталогов и многими другими советами. Придерживайтесь наших рекомендаций и сделайте работу с Docker еще более защищенной!
Читать дальше →

Python — Эволюция создания объектов (первая часть)

Level of difficultyMedium
Reading time10 min
Views8.1K

Как упростить себе жизнь или почему ты должен уметь создавать объекты правильно?

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

В вопросе "как создавать объект?" я сторонник эволюционного подхода. Я не стремлюсь использовать порождающие паттерны при первой возможности. У меня есть простой набор вопросов самому себе, который помогает мне принять решение, стоит ли изменить способ создания объекта или нет.

Читать далее

Бегство от реальности: как перестать подгонять свой код под устаревшие шаблоны

Level of difficultyEasy
Reading time22 min
Views5.7K


Как описать хороший код в трех словах? Исходя из опыта — это код, который [приятно поддерживать и эксплуатировать]. СОЛИД, SOLID, СОЛИД... Редко код ревью обходится без упоминания этих принципов, но для разработчика это не означает ничего хорошего. А что, если я скажу вам, что есть альтернатива? Недавно я наткнулся на одну англоязычную статью в блоге автора по имени Dan North. Он поднимает крайне интересные темы: написание хорошего кода, поддержка кодовой базы, порочные практики следования устаревшим трафаретам. 

Думаю, для каждого программиста не секрет, что не всегда есть время и возможность подгонять свое решение под SOLID. Иногда проще оценивать свой код по шкале «хорошего кода» без трафаретов. Тут, конечно, прибегут некоторые люди, которые будут утверждать, что их проекты не содержат говнокода и легаси... Это все просто побег от реальности, нежелание принимать то, что любые проекты и их кодовые базы — это вечные «макароны». В общем, идеализация разработки, которая ни к чему, кроме душевных страданий, не ведет.

Читать далее

Возврат заметок домой на Obsidian и git

Level of difficultyMedium
Reading time4 min
Views14K

Сегодня в нашем кружке «оч.умелые клавиатурки» возврат блудных заметок домой. Долго пользовался платным Evernote, но оплатить его все труднее и дороже. Вернее даже так, сейчас я знаю всего один способ оплатить подписку через Билайн / МТС и Apple. Притом без оплаты подписки Evernote ужасен и порезан самым неприятным образом. Конечно есть ещё Notion, но кто знает как и когда он окуклиться как это случилось со временем с Evernote.

В качестве новой основы заметок я выбрал obsidian.md. Opensource, море документации, толпа плагинов, готовые сборки подо все используемые мне платформы, в общем, все как я люблю. Я верю что вы умеете ставить докер и немного понимаете ansible сценарии.

Читать далее

Как построить бастион-хост и превратить его в неприступную крепость

Level of difficultyEasy
Reading time9 min
Views13K

Привет, меня зовут Сергей Истомин, я DevOps‑инженер в KTS.

Осталось ли бастион‑хостам место в мире, в котором инфраструктуру можно защитить оверлейными сетями, нативными прокси и VPN? Задавшись этим вопросом, мы провели анализ материалов некоторых авторов (ссылки на материалы в конце статьи), перевели, порассуждали и обобщили полученные выводы.

В статье рассказываю, зачем нужен бастион‑хост, какие есть ему альтернативы, а также как его возвести и укрепить.

Читать далее

Зеттелькастен рисование на бесконечном канвасе или как помнить всё на свете

Level of difficultyMedium
Reading time8 min
Views13K

Каждый автор, обдумывая статью, сталкивается с проблемой. С одной стороны хочется передать читателю крутую идею и тем самым принести большую пользу, а с другой страшно давать что-то “тяжелое”, потому что тема может оказаться неподъемной и следовательно бесполезной.

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

Cегодня же я хочу рассказать о чем-то более сложном и продвинутом. ВАЖНО! Если вы не совсем понимаете, что такое кривые забывания, метод заметок корнелла, зеттелькастен, то дальнейший текст будет вам мало полезен. Если нет необходимой базы и опыта, то дальше читайте на свой страх и меня потом не обвиняйте.

Изложенная ниже методика Зеттелькастен рисования на бесконечном канвасе (далее ЗРБК для удобства) мне не встречалась ранее, поэтому я скромно буду считать себя одним из первых её практикантов/изобретателей. Причем это не что-то абсолютно новое, а скорее соединение существующих методик и новых возможностей цифровых устройств.

Читать далее

Linux, Git и базы данных: что почитать новичкам в Академии Selectel

Reading time4 min
Views11K

Источник.

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

Отображение иерархии в SQL запросе

Level of difficultyMedium
Reading time7 min
Views14K

В процессе тестирования одного курса по SQL на stepik.org встретилась задача, из которой сочинилась другая, более интересная:

Необходимо с помощью одного SQL запроса с использованием обобщенных табличных выражений отобразить иерархию, в соответствии с иллюстрацией выше

Читать далее

Погружение в метаклассы в Python

Level of difficultyMedium
Reading time16 min
Views16K

Задумывались ли вы, почему функция isinstance(int, object) возвращает True? Объяснение, что все является объектом, которое можно часто услышать, хоть и является правдой, но не дает ответа на вопрос и на самом деле есть профанация, потому что не дает настоящего понимания, а создает только его видимость. Ведь совсем непонятно, почему int (как и любой другой стандартный класс) является непременно экземпляром базового класса. Да, он является подклассом, но почему именно экземпляром? Ответ будет дан по ходу изложения.

Читать далее

Как решить типичные проблемы Django нестандартным подходом: Fake Injection

Level of difficultyMedium
Reading time18 min
Views5.6K

Давайте признаем, что развитие проектов в мире Django не всегда проходит гладко. Мы часто сталкиваемся с толстыми моделями и сериалайзерами, размытой бизнес-логикой и тестированием, которое больше напоминает головную боль, чем удовольствие. Меня зовут Павел Губарев, я backend-разработчик продукта 10D в компании Самолет. Последние пять лет я занимаюсь backend-ом и большую часть времени я использую именно Django. С ростом проекта увеличивается и его сложность, в случае с Django есть набор часто встречающихся проблем. В этой статье я расскажу о методах нашей команды, которые помогли нам справиться с этими проблемами и привести код к новому уровню надежности и эффективности.
Читать дальше →

Без холивара «переписать все на Go»: проблема переносимости в Python и ее решение

Level of difficultyMedium
Reading time19 min
Views17K

На скриптовых языках удобно разрабатывать… И на этом удобство заканчивается. Вне машины разработчика начинаются проблемы. Особенно если вы пишете какой-то прикладной тулинг — cli-утилиты, вспомогательные приложения в вашем SDK и прочее. Вы даже не можете рассчитывать на то, что у пользователя будет pip, чтобы он смог поставить все ваши зависимости, вам все нужно организовать самостоятельно.

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

Если вам покажется, что в чем-то я ошибаюсь, добро пожаловать в комментарии. Буду рад услышать любые альтернативные точки зрения. Кроме, как я уже отметил в заголовке, рекомендации переписать все на Go/Rust/You name it :) Этот холивар мы уже проходили.

Читать далее

Как сделать и настроить свой CDN

Level of difficultyMedium
Reading time7 min
Views15K
CDN (сеть доставки контента) представляет собой группу серверов, размещаемых в разных географических регионах с целью обеспечить быструю загрузку контента для пользователей из этих регионов. Чаще всего сети доставки контента используются для ускорения загрузки статических файлов: картинок, видео, скриптов, zip-архивов. Каждый из CDN серверов просто хранит одни и те же файлы, а пользователь получает их с ближайшего сервера.

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

Иногда может понадобиться настроить собственную сеть доставки контента. Давайте рассмотрим, для чего это нужно и как это сделать.


Это наша будущая CDN из 5 серверов, которая будет раздавать контент на весь мир
Читать дальше →

Information

Rating
1,891-st
Registered
Activity