1.84K subscribers
3.26K photos
128 videos
15 files
3.53K links
Блог со звёздочкой.

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

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
Блог*
#meme #моё
Кек, а они же в итоге для обобщённых параметров квадратные скобки использовали
🤡4
Forwarded from cringepost
подарки в тг прилумали гениальные люди просто потому что возродили подарки из одноклассников,когда люди за реальные деньги покупали классы,а потом за них подарки и кидали друг другу в бутылочке и прочем бесполезном кале, НО ТЕПЕРЬ ДЛЯ ЗУМЕРОВ
👍15😁10🤡3💯21
Блог*
Первая половина сделана
Ах да, вторая половина тоже, ещё в июне
🌚7
А сегодня (вчера по местному часовому поясу) моему самому любимому папищеку исполнился 21 год!
🍌16🤡6🎉3🤮3💩2😱1
Forwarded from Panic! At the 0xC0D3 (Lev)
(📽 Камера дрожит, кусты шевелятся, кто-то осторожно пробирается вперёд)
— Тсс... Смотрите, вон он. Прямо перед нами — редчайший экземпляр. Вайбкодер маниграбер, решивший... завайбкодить библиотеку для терминального UI на Rust.
— Он не использует реактивность. Вообще. Никаких состояний, никаких подписок, ничего живого. Просто... текст. Выплюнутый один раз и навсегда. Как надпись на камне.
*пример рисует кнопку "Click me" и завершает выполнение, не дождавшись действия от юзера*
— Это всё. Он считает, что UI — это просто вывод текста. Кажется, для него “интерфейс” заканчивается после println!.
*перелистывает LICENSE*
— А вот и лицензия. Своя, уникальная. Если ты начнёшь зарабатывать деньги с проектом, использующим эту библиотеку... ты должен платить ему. Серьёзно.
— Мы были здесь. Мы это видели. Никто не поверит.

this post was generated with chatgpt due to it being fucking hilarious
🤡10😁3🎉1
Forwarded from эцсамое
💯261
#meme про работу
😁19🤝5👌1
Forwarded from Kedr to Earth | Земля, я Кедр ( Yuri Ammosov)
Интересный лайфхак. В MacOS при первом старте идет запуск экранов онбординга - языковые настройки, создание юзера и подключение в Apple ID. И только после этого можно попасть на рабочий стол. На ноутбуках это все протекает как само собой разумеющееся.

А вот в Mac Mini хитрая система предполагает, что у юзера есть Magic Mouse и Magic Keyboard (в таком порядке). Ютуб и Реддит с 2020 года примерно усеян видео, как выходить из положения, если вы вместо этих эргономических уродств нормальные устройства хотите использовать (особенно не дружит с Apple почему-то Logitech). В итоге общими усилиями выяснили: надо в момент старта держать BT-мышь в режиме пейринга, и она (почти всегда) подцепится. А с клавиатурой, если она не подцепится на следующем шагу, надо так: выбрать внизу экрана иконку человечка - откроются настройки "доступа для инвалидов". "Опорно-двигательный" (Motor Disability) откроет экранную клавиатуру, и вуаля, дело в шляпе.

В Apple к 2024 году эти инструкции прочли. Подумали. И что думаете, починили? В своем роде, да. Убрали "disability mode" В САМЫЙ КОНЕЦ настроек. Теперь экранную клавиатуру мышью не вызовешь, и двойным или тройным кликом по кнопке запуска - тоже. Нуачо, нефиг от апселла увиливать.

Так вот, лайфхак. ПРОВОДНАЯ КЛАВИАТУРА. Только тут надо иметь в виду, что все проводные клавиатуры до сих пор USB-A (большие лопатки), а на Маках все порты стали USB-C. Поэтому для такой надобности надо сразу иметь или переходничок USB-A > USB-C, или USB-хаб со входом USB-С. Последнее намного практичнее - и не болтается, и нужен будет потом едва ли не каждый день - флешку или еще что-нибудь воткнуть.

Да и в целом, иметь дома проводную клавиатуру до сих пор практично. На те редкие случаи, когда беспроводные интерфейсы мрут.
🤮23😭10😁4
Forwarded from Meme Trap (10satka)
Дамы и господа, я halfgot
🤣10😁3🤔1
Достижение выполнения кода при контроле над текстом комментария в Python-скрипте
https://www.opennet.ru/opennews/art.shtml?num=63669

Участники могли отправить сетевой запрос к Python-скрипту, который создавал новый Python-скрипт cо случайными именем, добавлял поступившие от пользователя данные в текст комментария, вырезав символы "\n" и "\r", и запускал этот скрипт командой "python3 имя.py". Контролируя только содержимое комментария, участник должен был извлечь строку из файла "/home/ctfuser/flag". Скрипт создавался следующим кодом:

   comment = input("> ").replace("\n", "").replace("\r", "")
code = f"""print("hello world!")
# This is a comment. Here's another:
# {comment}
print("Thanks for playing!")"""


Вместо "{comment}" подставлялись данные, поступившие от участника, и в итоге запускался следующий код:

   print("hello world!")
# This is a comment. Here's another:
# Данные, поступившие от участника соревнования
print("Thanks for playing!")


Успешно справившийся с заданием участник не стал искать новые уязвимости в парсере, которые бы позволили разбить строку на части, а воспользовался особенностью выполнения в Python файлов по типу их содержимого. Например, вместо исходного кода в файл с расширением ".py" можно поместить прокэшированный байткод, сохраняемый в файлах с расширением ".pyc", и подобный файл будет выполнен. В рассматриваемом конкурсе участник мог контролировать только содержимое в середине файла, поэтому не мог добавить свой заголовок для искажения MIME-типа.

Задачу удалось решить, воспользовавшись тем, что Python начиная с ветки 2.6 может исполнять содержимое ZIP-архивов для поставки Python-пакетов в сжатом виде. Как и в случае с кэшем байт-кода, наличие zip-архива определяется по содержимому, а не по расширению файла, т.е. в "
файл.py" можно поместить zip-архив, и при запуске командой "python файл.py" он будет обработан как сжатый Python-пакет. При этом ZIP-архивы в Python индексируются не по заголовку в начале файла, а по секции EOCD (End of Central Directory Record) в конце файла. При наличии в архиве файла "__main__.py" этот файл запускается автоматически при прямом запуске архива командой "python архив".

Больше подробностей в оригинале
Executing arbitrary Python code from a comment
https://www.hacktron.ai/blog/posts/python-zip-confusion/
👏3
Технологический Болт Генона
Достижение выполнения кода при контроле над текстом комментария в 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
Короче, мне только что позвонили мошенники. Ничего удивительного так-то, мне и Kaspersky WhoCalls подсказал, что звонит кто-то подозрительный (минутка рекламы), и тему сразу подняли известную уже (про замену полиса ОМС), но суть не в этом.

Мне звонил парень. И он настолько заработался, что представился Анастасией.
Когда я решил уточнить у Настеньки, а не ошиблась ли он(а), он(а) слегка смешалась и дальше диалог уже не склеился 🌚
😁23🤡2🥴2
Forwarded from Сова пишет…
Жиза Армении
20👍5😭3🌚2😁1💯1
Forwarded from Om TV
Ну в принципе, чему тут удивляться? Если во главе страны кретины, ментально застрявшие в средневековье, то всё идет по плану!
💩10🤡54🤮2😁1🤯1
#prog #meme про документацию

Простите 🥲, жиза в глаз попала

(thanks @rustamemes)
👍10😁54😭4
Блог*
#prog #article #amazingopensource Jujutsu (jj) — система контроля версий, которая концептуально проще git и при этом мощнее. Неплохой (но местами устаревший) обзор Jujutsu — jj init — сделал Chris Krycho. Также есть пока что неполный туториал от Стива Клабника…
#prog

Чел делится впечатлениями от jj.

jj крута
Посидел я на jj где-то месяц, и... это офигенно.

Т.е. у меня по большей части не обычный "гит воркфлоу", где делаешь фичу, мержишь, делаешь новую, а эдакий стейт "тещу 20 фичей какая заработает"
И jj для этого идеален

t.iss.one/paniccode/45
👍7🤡6💯32🔥1
Forwarded from Panic! At the 0xC0D3 (Lev)
Я не могу этим не поделиться
Недавно я делал внутреннюю тулзу, для которой хотелось запускать питон код
Я решил попробовать сделать это не с помощью процессов, а запускать питон прям в этом же процессе (язык для скриптов же все дела) (плюс можно было шерить память за очень быстро)
Для раста есть прекрасная либа под названием pyo3 (а еще там же есть биндинги numpy)

И мне надо было сделать datetime numpy array (массив дат)
Ну я и пишу какой-то код аля
PyArray1::<PyDateTime>::from_iter(dates...);
И что бы вы думали

1. Компилятор(!) знал и понял, что PyDateTime нельзя пихать в numpy array
2. Но он не только сказал, что нельзя, но написал мне ошибку со скрина

А именно, он мне сказал:
"PyDateTime" нельзя сувать в numpy array, но есть несколько других типов, которые можно, например numpy::DateTime

Оказывается, что у нампая свой тип дат (что логично, вместо всей структуры с полями типа year, month, day и т.д., там просто хранится timestamp)
И если я хочу быстро, то мне нужно использовать его.

И УЗНАЛ Я ОБ ЭТОМ НЕ ИЗ РАНТАЙМ ОШИБКИ, НЕ ИЗ ГУГЛА, А ОТ КОМПИЛЯТОРА
АААААААА

К слову, часто раст рекламируют как "memory safety", но на самом деле его система типов позволяет делать намного больше, как, например, тут, правильно описывать апи вообще другого языка.
Помимо этого, мой экспириенс с питоном в расте был мега приятный. Я не знал, можно ли в структурах, которые будут экспортироваться в питон, использовать обычные типы из раста (условно, нужно ли использовать PyString, или можно String), и вместо того, чтобы гуглить, безопасно ли это, можно ли так, я просто писал такой код, и он компилировался, и я был уверен, что так можно (и да, все ок)
И такого рода вещей было очень много. Я глядел совсем чутка на то, как это делается в плюсах, и понял, что там просто UB на UB (C api все таки), и был в шоке, наскольно приятно это делается тут.

В общем, это довольно хороший пример большой библиотеки с кучей сложных вещей, которая при этом позволяет добиваться того самого волшебного момента "компилируется - значит работает"
👍22🔥81
Блог*
#prog #rust #menacingopensource github.com/Speykious/cve-rs
@paniccode подсказывает, что там прекрасная лицензия:

You just DO WHATEVER THE FUCK YOU WANT TO as long as you NEVER LEAVE
A FUCKING TRACE TO TRACK THE AUTHOR of the original product to blame for
or held responsible.
9