Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.
Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support
Last updated 2 weeks, 3 days ago
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 month ago
В конце августа мы сделали силами нашей команды CTF для Островка!, а потом вместе с @greg0r0 сходили по этому поводу на подкаст к двум Иванам.
Я раньше в подкастах никогда не участвовал, было немного непривычно, но очень бодро.
Прикольно, в общем, как-нибудь стоит повторить)
В яме его послушать можно тут (если яндекс не алё, есть mave со ссылками на все остальные стриминги)
Тут на гитхабе разворачивается очередная дРаМа.
Если вкратце: есть в экосистеме питона такой проект, nose
.
Это такие батарейки для unittest
либы из стандартного питона, упрощающие написание тестов.
Либа старая, ещё от 2.7 питона.
В какой-то момент пришел некий товарищ mdmintz
, утащил 2/3 кода nose
, назвал это pynose
, поменял лицензию и выложил на гитхаб.
На этот проект завязалась ещё несколько проектов, и вот 31 января какой-то чувак обнаружил, что mdmintz
, когда утаскивал код ~~потерял~~ забыл про лицензию - у оригинального проекта это LGPL, а у товарища - почему-то MIT.
Там оно недельку поварилось, и mdmintz
закрыл issue.
Три дня назад какой-то ещё чувак это внезапно обнаружил и поднял бучу - у нас в репах дистрибутивов лежит пакет с проблемами с лицензированием - а это нехорошо.
В конце концов это привело к тому, что pynose
начали выпиливать из дистрибутивов, в частности, из nix'а (bleeding edge, все дела ;)).
Это, внезапно, вызвало массовые разломы сборки разного произвольного софта, люди пошли набегать в оригинальный issue, связанный с проблемами лицензирования, и там началось неистовое бомбометание.
Собственно, за ним сейчас можно наблюдать практически в прямом эфире.
GitHub
Wrong license · Issue #16 · mdmintz/pynose
It seems like your package is claiming the wrong license: The original nose implementation is subject to LGPL-2.1-only as far as I can see (https://github.com/nose-devs/nose/blob/master/lgpl.txt), ...
Сидел я сегодня такой, развлекался с Nix'ом и внезапно обнаружил, что конструкции вида nix shell nixpkgs\#hello \-c bash
в шебанге и Linux и MacOS отрабатывают совершенно по-разному.
Краткая справка: Шебанг (shebang) - это конструкция вида \#!interpreter [args]
(\#!
обязателен), расположенная строго в начале файла, и говорящая операционной системе запустить interpreter [args] [original file] [original args]
.
Была придумана, чтобы не писать руками python script.py
, а сделать ./script.py
, условный.
Когда функциональность уровня ядра ведет себя как-то неправильно, первое и логичное решение... пойти копаться в сорцах этого самого ядра.
Спасибо эплу, некоторым лицензиям, и неизвестному самаритянину (насколько я знаю, это неофициальное зеркало) - у нас есть код XNU (ядро MacOS) на гитхабе.
Непродолжительные поиски действительно привели меня к строке, в которой определяется условие конец шебанга, где концом строки считается либо \#
, либо \n
.
Окей, теперь я знаю, что у меня нет шизофрении ~~(на самом деле есть)~~, и это действительно ядро ведет себя так странно.
Встает следующий вопрос: а почему оно так себя ведет?
Если посмотреть на путь к файлу kern_exec.c
, можно увидеть, что он начинается с папки bsd
.
Так возможно это не у apple что-то с головой, а они просто бэкпортировали какое-то странное изменение из ядра *BSD? (Да, XNU основан во многом на BSD)
Быстро пробежавшись по старым BSD ядрам (4.3BSD, FreeBSD версий 2-3) я ничего полезного не нашел, там этой особенности* не было.
Дальше я решил вернуться обратно к blame'у сорцов XNU. К сожалению, текстов коммитов нет (разве что где-то в недрах Apple), поэтому остается довольствовать описаниями версий, в которых что-то меняли.
Таким образом я узнал, что это добавили в XNU-517.
Быстрый гуглеж по XNU-517 shebang наконец-то привел меня к цели всего поста: шедевральной страничке https://www.in-ulm.de/~mascheck/various/shebang/, содержащей огромный и очень информативный текст (я не шучу, сходите сами почитайте!) про историю шебангов.
Конкретно про обработку второй \#
- тут.
Как оказалось, я смотрел слишком ранние версии FreeBSD - это действительно внесли именно в ней, в 4.0 ветке, а потом убрали в 6.0.
XNU бэкпортировали это к себе, но так и не убрали, только рефакторя код год за годом (стало кстати объективно лучше, тоже забавное наблюдение).
Итак. Изначальной причиной появления такого способа обработки \#
в шебангах была...
Рекомендация в документации к perl'у писать шебанг следующим образом:
```
#!/bin/sh -- # -- perl -- -p
```
чтобы избегать каких-то странных кроссплатформенных проблем (да, утилиту env
тогда ещё не придумали).
Зайдите ещё в комменты, там есть парочка мемов, которые не влезли в пост =)
Очень простой вопрос от санитара для senior-программистов на C: Что выведет следующая программа? #include ; #include ; int main() { printf("%d\n", strlen("\x01c")); } cc test.c && ./a.out (перед голосованием не читайте комменты…
Очень простой вопрос от санитара для senior-программистов на C:
Что выведет следующая программа?
\#include <string.h>;
\#include <stdio.h>;
int main() {
printf("%d\n", strlen("\x01c"));
}
cc test.c && ./a.out
(перед голосованием не читайте комменты, а то так не интересно))
Рубрика: «А что там в федиверсе»
Да, у меня есть свой истанс мастодона, и я иногда хожу почитывать туда некоторых людей (а ещё краду мемы)
А в феди какой-то обиженный школьник-скрипткидди (ОЯШ, получается, потому что он из Японии) купил скрипт для спама, в собстна, феди.
(paypal’ом, на своё имя - да, его уже наосинтили)
Скрипт сам по себе простой - он регается на каком-нибудь открытом инстансе мастодона и начинает рассылать с этого инстанса спам во все места, куда дотянется.
И внезапно! оказалось, что никакой защиты от спамеров в этом прекрасном твиттере будущего не существует, потому что… авторам мастодона - одного из самых популярных серверов - насрать.
Им вообще на много что насрать (в том числе на написание безопасного кода, кстати - за последний месяц нашли аж 4 critical дырки).
Там вообще уже довольно давно висят issues по поводу добавления капч и иных прогрессивных методов ограничения регистраций, но пока их оригинальный основной инстанс говном не закидает, они не пошевелятся.
Безусловно, есть альтернативные сервера, например аккомо-плеромы всякие, но их доля в сети достаточно мала по сравнению с мастодоном.
По итогу один школьник успешно терроризирует всю сеть - я стабильно вижу, как все крупные инстансы дружно воют про «что же делать со спамом».
А мне хорошо, я маленький, до меня не доходит ;)
Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.
Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support
Last updated 2 weeks, 3 days ago
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 month ago