1.83K subscribers
3.31K photos
132 videos
15 files
3.58K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
#prog #python и, видимо, #suckassstory?
#prog #python #article #abnormalprogramming

Python's Preprocessor

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

(thanks @itpgchannel)
🔥10
Блог*
#prog #article Fast Enough VMs in Fast Enough Time Старая (2012 года) статья про применение RPython (языка реализации PyPy) к реализации VM для ЯП с семантикой слишком необычной, чтобы для него подходили существующие VM. Чем привлекает RPython? Обещанием:…
#prog #python #article

И ещё серия старых (2012 год) статей от разработчика PyPy о том, как можно написать код таким образом, чтобы получить наибольшее преимущество от трассирующего JIT:

Controlling the Tracing of an Interpreter With Hints, Part 1: Controlling the Extent of Tracing

Controlling the Tracing of an Interpreter With Hints, Part 2: Controlling Optimization

Controlling the Tracing of an Interpreter With Hints, Part 3: Putting it All Together — про то, как организовать структуру представления объектов так, чтобы получить выгоду от JIT (ибо наивный подход со словарями методов толком не ускорить)
🔥3👍2
#prog #python

IceCream — Never use print() to debug again

Или dbg! из Rust в Python.

TL;DR:

from icecream import ic

def foo(i):
return i + 333

ic(foo(123))

Вывод:

ic| foo(123): 456

ic возвращает аргументы:

>>> a = 6
>>> def half(i):
>>> return i / 2
>>> b = half(ic(a))
ic| a: 6
>>> ic(b)
ic| b: 3
👍8
#prog #cpp #python

Что общего у C++ и Python?

Правильно: что в C++, что в Python нельзя распаковывать кортежи в аргументах лямбды.
🌚11👌4
🔥21😁18👍4
#prog #python #article

Новый лучший способ форматирования строк в Python

t-строки — новый вид строк в Python. Походит на format_args! в Rust в том смысле, что позволяет захватывать переменные по имени и создаёт просто шаблон со значениями переменных вместо уже форматированной строки. Как следствие, это позволяет одновременно ускорить форматирование и отделить собственно образование шаблона от его интерпретации. В статье приводится пример форматировщика SQL-запросов: он может при форматировании автоматически экранировать значения. Аналогично для шаблонизатора HTML.
🤮13👍7🤔21
#prog #python

Крик души (не мозга точно)

Source
😁35🤡4🥴3🤣3🖕2👍1🤬1🌚1💯1
Технологический Болт Генона
Достижение выполнения кода при контроле над текстом комментария в Python-скрипте https://www.opennet.ru/opennews/art.shtml?num=63669 Участники могли отправить сетевой запрос к Python-скрипту, который создавал новый Python-скрипт cо случайными именем, добавлял…
#prog #itsec #python

В конце мне не нравится, что автор поёт дифирамбы ИИ. Ну и ещё у него есть функция ascii_safe, которая написана просто ужасно:

def ascii_safe(x: int) -> bool:
"""True if all four bytes have high bit clear."""
return all(((x >> (8 * i)) & 0x80) == 0 for i in range(4))

Это явно можно написать одновременно эффективнее и проще для восприятия:

def ascii_safe(x: int) -> bool
return x & 0x80808080 == 0
💯13🤡5