LINUX.ORG.RU

Избранные сообщения qulinxao3

Опубликован эмулятор архитектуры Эльбрус на основе QEMU

Новости — Разработка
Группа Разработка

МЦСТ выпустила эмулятор QEMU для архитектуры E2K. Теперь программы для Эльбруса можно запускать на компьютерах с архитектурой x86‑64. Это откроет платформу для профессионалов, исследователей и энтузиастов, а также упростит разработчикам сборку и тестирование ПО.

Эмулятор qemu-e2k обеспечивает возможность, используя операционную систему семейства Linux запускать прикладные программы для операционных систем семейства Linux в машинных кодах Эльбрус (e2k) на компьютере архитектуры x86-64.

( читать дальше... )

>>> Исходные тексты QEMU от АО "МЦСТ"

 , , ,

IvGrad
()

Изучить С

Форум — Talks

Всем привет! Надоели мне эти скриптовые аркадные языки, повесточка, докеро-голанги и тп, решил заняться изучением С. Тем более что вспомнил о том, что по факту это единственный язык который доставлял удовольствие.

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

 , ,

NorthernBlow
()

Senior C-разработчик (ядро Linux, СХД), удалённо

Форум — Job

Привет! Ищу Senior C программиста в IT-аккредитованную компанию, разрабатывающую системы хранения данных и системы виртуализации.

Чем предстоит заниматься:

• Разработка системного программного обеспечения: гибридная СХД; scale-out СХД c поддержкой серверной виртуализации; система мониторинга; внутренние инструменты разработки;

• Разработка уровня ядра Linux: модули файловых, блочных и сетевых подсистем;

• Исследования стороннего ПО;

• Работа с чужими исходниками на разных языках программирования;

• Документирование исходного кода, методик и исследований;

• Сопровождение ПО (разработка патчей, консультирование инженеров).

Требования:

• Коммерческий опыт работы от 5 лет;

• Опыт системного программирования на C, ASM;

• Уверенное знание двух из перечисленных скриптовых языков (Bash, Python, sh, ksh);

• Уверенное знание архитектуры ядра Linux/UNIX/BSD;

• Опыт системного программирования в одном из вариантов Linux/UNIX/BSD;

• Знание английского языка на уровне чтения и восприятия документации.

Что мы предлагаем:

• Официальное трудоустройство по ТК РФ; достойный уровень оплаты труда от 300 т.р. net + квартальные премии;

• Оплачиваемые отпуск и больничные (включая внутренний больничный до 10 дней в год);

• Обучение за счёт компании: внешние курсы, конференции, внутренние тренинги;

• Оплата мобильной связи;

• Подарок на День рождения;

• Корпоративный мерч;

• Удаленный формат работы (для Москвы есть возможность периодически приезжать в офис);

• Технику предоставляем.

Резюме, рекомендации, вопросы в телеграм @olesya_sayhire

 , ,

Olesya_HR
()

Как правильно писать объявление о работе

Форум — Job

Если писать запрос так, как рекомендуется ниже, то его не удалят, а результативность повысится.

Заголовок

  1. Указывайте город. Есть не только Москва и некоторые люди склонны к перемене места.
  2. Указывайте должность (программист, администратор, тестировщик и т.п.)

Содержание

  1. Используйте правильную разметку!
  2. Указывайте город.
  3. Указывайте должность (программист, администратор, тестировщик и т.п.)
  4. Указывайте уровень зарплаты, наличие социального пакета и прочих радостей
  5. Кратко опишите что надо делать на работе (например, что требуется администрировать сеть на 1000 машин на Windows и 15 серверов на Linux, или что требуется программировать сайты на Java)
  6. Не пишите в списке требований весь софт, название которого Вы слышали, это выглядит смешно и странно. Обязательно, чтобы в требованиях было что-то, связанное с Unix/Linux или чем-то открытым.
  7. Если Вы из кадрового агентства, напишите из какого и какого уровня фирма-заказчик, если нет, укажите название фирмы.
  8. Не забудьте оставить координаты для связи.

И последнее, если Ваш браузер имеет проблемы с кодировками, то это Ваши проблемы, а не проблемы сайта. Перекодировать сообщения не будут.

 

beastie
()

Как правильно искать работу

Форум — Job

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

Итак, вам нужна работа в сфере IT на админской/постсейловой/пресейловой/консалтерской должности. Я провел пару сотен собеседований, нанял около 30 (или 40?) человек, ошибался 2 или 3 раза, со всеми нанятыми работал больше года, а с некоторыми больше 5 лет, так что могу рассказать о том, как оно изнутри. Про программистов ничего не скажу, подозреваю, что плюс-минус все то же самое.

0. Зачем люди нанимают сотрудников и как они это делают?

На работу людей нанимают для того, чтобы они работали :-) Буквально, есть задача, есть бюджет, есть коллектив и есть вакансия - должен быть нанят человек, желательно до определенного числа, иначе, вакансию могут отобрать в пользу более расторопных. В ДС последние 10 лет острый дефицит вменяемых кадров, при чем чем дальше, тем хуже становится положение.

Кто нанимает? 3 человека: HR, непосредственный руководитель и его начальник. Первый должен отфильтровать ваше резюме из потока, второй должен выбрать вас из толпы (руководствуясь собственными предпочтениями в том числе, вам потом с ним близко общаться, а ему с вами), третьего вы должны не оттолкнуть чем-нибудь, его задача отфильтровать явные ошибки второго, но не более. Конечно, если это здоровый коллектив, где HR не заправляет техпроцессами и где топменеджер не лезет во все дела подчиненных, а доверяет им работать самим.

1. Резюме.

Напишите хорошее резюме, желательно на 2х языках. Что значит хорошее: в нем должны отражаться основные ваши достижения, их не должно быть мало, но и не должно быть много. Например, хорошо написать про общественную работу в ВУЗе, поднятие нужного бизнесу софта или синхронизацию географически удаленных БД, а про то как обжимались кабели можно не писать, так как это вызывает ощущение «больше нечем хвастаться». Нужно написать обо всех своих обучениях и сертификациях. Примеров в сети много, неплохо также завести аккаунт в Linkedin (там как раз нужная структура). Помните, что HR скорее всего не сечет в теме и ищет по ключевым словам. 95% всех резюме, которые я видел были 2х типов: «отлично знаю» == «при мне включали» и «имею представление» == «ну что я могу сказать о вопросе, которому посвятил всего 2 года напряженного труда?» Не впадайте в эти крайности.

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

На счет соц.сетей. Конечно же, первым делом из отобранных резюме извлекается имя, фамилия, дата рождения и город, а по ним ищется вконтактик, фейсбучек, жжшечка. Отсутствие аккаунта ничего не говорит. Наличие же может выйти боком: предпочтения у всех свои, я, например, буду предвзято относиться с стритсракеру со смотрЫ, кому-то могут не понравится фотографии на фоне кустов и пустых бутылок. Однозначный плюс - статьи в ЖЖ «как я компилял ядро» или «как я перепаивал этот китайский роутер». Однозначный минус - дешевые понты вроде «VIP-статус ВКОНТАКТЕ», дакфейсов или фоток на фоне ржавой крысы с видом как будто это новая семерка.

2. Первое интервью.

Говорят, что человека встречают по одежке. Говорят, что первое впечатление так и останется 80% мнения на ближайшие 5 встреч. Я не знаю на сколько это правда, но мне всегда приятно было видеть нейтрально одетых людей в чистой одежде (да, были случаи, когда соискатель совершенно буквально и объективно вонял) с чистыми волосами (и ногтями). Я разделяю любовь к джинсам, берцам, кожанкам и камуфляжу, но считаю, что в первый раз показаться лучше в классическом костюме нейтрального цвета. Потом похвастаете своим офигенным мотоэкипом и прекрасно подогнанным снаряжением, в первый раз ваша задача - не оттолкнуть. Нет костюма - постирайте джинсы и свитер, поверьте просто на слово, что это важно и это влияет.

Отдельное замечание обладательницам красивых форм: не надо их лишне подчеркивать на первом свидании. Иначе, потом будут говорить, что наняли вас за декольте или начальник подумает «вот будут говорить - нанял за декольте!». Не надо это, ни вам, ни начальнику. Потом все покажете.

Ведите себя спокойно, не нервничайте. Помните, что вы тут не первый. Помните, что у вас эта контора не последняя. Помните, что вообще-то вы им нужны больше, чем они вам, даже если это Гугл, а вы - вчерашний выпускник. Но и в другую крайность впадать тоже не надо, не фамильярничайте.

Посмотрите на людей в коридорах. Задайте себе вопрос, хотите ли вы быть похожими на них.

HR говорит про общие вопросы, проверяет формально, отсеивает в основном неадекватов и странных людей. Если его функция простирается дальше, то скорее всего в этой конторе не нужно работать. HR должен рассказать вам про условия труда и соцпакет, обязательно задаст вопрос «чего вы хотите в будущем», на который не надо отвечать «стать тут главным боссом». В будущем вы хотите развиться в техническом плане, познакомиться с интересными людьми и решить сложные и интересные задачи. Важно: например, в Microsoft вам расскажут про многие пряники и плюшки для сотрудников, но только после официального предложения вы узнаете, что «сотрудником» станете дай Бог через год, только если не на косячите и только если вырастут акции, а так - внештатник без пряников.

Интервью с непосредственным руководителем. Это самый важный человек в процессе, он подбирает себе не просто специалиста, а человека, который его лично устраивает. Как правило, люди нанимают похожих на себя. Тут хороший мотоэкип или камуфляж могут отыграть хорошо, а могут навредить. Лично я - не советую, хотя сам отношусь нейтрально.

Некоторые работодатели любят устраивать форменный экзамен просто так, даже если видят, что человек не тянет, некоторые любят задавать задачи на сообразительность типа взвешивания монет и измерения высоты здания барометром. Некоторые любят вопросы типа «вы ввели linux.org.ru в строке адреса браузера и нажали „ввод“, расскажите, что произойдет после этого, постарайтесь успеть до 8 вечера». Некоторые дают тест на бумаге, некоторые просто обсуждают жизнь. Есть конторы, где принято нанимать точно соответствующего человека, есть конторы, где принято учить и воспитывать, требуя только базовые или непрофильные вещи (например: технологиям обучим с любого уровня, а вот английскому - нет).

Если предполагается интервью с топом, то тут главное - просто произвести нормальное впечатление.

3. Скиллы.

Если вы идете наниматься на техническую должность, пожалуйста, освежите в памяти модель OSI, основные топологические схемы сетей, как работает TCP/IP в крупную клетку, что такое DNS, DHCP, CIFS, FTP, HTTP, SMTP, BGP, SSL. Я раньше спрашивал про несимметричное шифрование, сейчас же очень многие не могут внятно ответить «что такое IP-адрес», имея за плечами опыт работы сисадмином, не говоря уже о просьбе отправить письмо по SMTP используя только telnet. Это не приемлемо, объем базовых курсов по сетям и любой операционной системе надо знать.

 

Shaman007
()

Tewi 2.0.0 — текстовый интерфейс для управления торрент-клиентами

Новости — Open Source
Группа Open Source

Состоялся выпуск Tewi 2.0.0 — консольного приложения с текстовым интерфейсом (TUI) для управления BitTorrent-клиентами. Программа позволяет подключаться к демонам Transmission, qBittorrent и Deluge, просматривать и управлять списком торрентов, добавлять новые закачки, выполнять поиск по популярным трекерам. Поддерживаются различные режимы отображения (карточки, компактный, однострочный), просмотр детальной информации о торрентах (файлы, трекеры, пиры), управление категориями и метками, переключение альтернативных лимитов скорости. Интерфейс построен на базе библиотеки Textual. Код написан на Python и распространяется под лицензией GPLv3+.

( читать дальше... )

>>> GitHub

 , ,

anlar
()

Cex.C — making old C cexy again!

Форум — Development

Александр Веденеев пишет:

https://cex-c.org

Cex.C - Comprehensively Extended C Language
No dependency, cross-platform, single header C language extension. Making old C cexy again!

https://github.com/alexveden/cex

Cex.C (officially pronounced /ˈtsɛk.si/ «tsek-see») was born as alternative answer to a plethora of brand new LLVM based languages which strive to replace old C. Cex.C still remains C language itself, with small, but important tweaks that bring a completely different development experience.

LEGAL NOTICE: Any intentional mispronunciation of Cex.C or cexy$ (build system), officially pronounced /ˈtsɛk.si/ («tsek-see»), into an incorrect form may be considered intentional tseksual harassment of the project — which identifies itself with the code gender (it/its) — and may be subject to legal action under the MIT License. /LOL/

$ stat cex.h:

Size: 680288

#define CEX_IMPLEMENTATION
#include "cex.h"

int
main(int argc, char** argv)
{
    io.printf("MOCCA - Make Old C Cexy Again!\n");
    return 0;
}

 , ,

dataman
()

Рабочий офис дома

Галерея — Рабочие места

С момента моей последней фотографии в галерее прошло почти 5 лет. Что-то поменялось, что-то осталось неизменным.

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

Прежде всего, я искренне считаю, что удалённая работа – это лучшее, что происходило с рынком труда.

За эти 5 лет я окончательно переехал из Уфы в Москву и тратить по 3 часа в день на дорогу (в обе стороны), чтобы выполнить работу, которую я могу с таким же успехом сделать сидя дома – это просто глупость, как по мне. А протирать штаны и создавать иллюзию бурной деятельности можно и в офисе. Наличие в нём сотрудника вовсе не говорит о том, что он делает что-то полезное.

( читать дальше... )

 , ,

Jefail
()

Новые реакции

Форум — Linux-org-ru

Благодаря @dataman у нас появились две новые реакции: «не нужно» и «грусть-печаль».

 ,

u-235
()

Неосилившим Стругацких

Форум — Talks

Лет 10 тому назад я первый раз пробовал прочитать «Понедельник начинается в субботу». Дошёл до возни на диване и забросил. Вот опять предпринял очередную попытку — продвинулся до обхода института при дежурстве и снова не выдержал.
В Интернете в основном восторженные отзывы о невероятном обилии зачётных шуток чуть ли не через абзац. Мне они как-то совсем не зашли.

Книга довольно популярная в GNU/Linux-кругах. Собственно вопрос: это я один такой неосилятор или есть ещё другие? Проблема на моей стороне?

Ну и за компанию второй вопрос. Другие их произведения так же читаются?

 

urxvt
()

Какой редактор кода или IDE вы используете?

Голосования — Голосования

Прошлый опрос от 08.03.21

Позапрошлый опрос от 30.10.17

>>> Результаты

 , , ,

Jaeger1999
()

Написан тетрис на «игре жизни»

Форум — Talks

Удивительные люди на codegolf.stackexchange.com написали реализацию тетриса на Conway's Game of Life. Для этого на игре жизни реализовали вычислительную машину Гарвардской архитектуры с процессором, ОЗУ и ПЗУ, программируемую на языке QFTASM (Quest for Tetris Assembly). Потом написали язык Cogol, который компилируется в QFTASM, а на нём уже написали тетрис.

Ввод/вывод осуществляется записью/чтением «памяти». Есть онлайн-интерпретатор QFTASM, который упрощает процесс.

Ведётся работа над QFTASM-бэкэндом к GCC, чтобы программы, например, на C++ можно было запускать в игре жизни.

Ссылка: https://codegolf.stackexchange.com/questions/11880/build-a-working-game-of-te...

 

proud_anon
()

Алготрейдинговый гигант открыл исходный код TernFS для Linux

Новости — Open Source
Группа Open Source

Одна из крупнейших алгоритмических торговых компаний мира XTX Markets, ежедневно обрабатывающая сделки на сумму около 250 миллиардов долларов и оперирующая более чем 650 петабайтами данных для прогнозов цен и торговых алгоритмов, открыла исходный код собственной файловой системы для Linux.

Система получила название TernFS и была создана, когда компания переросла возможности традиционного NFS и других решений для хранения. TernFS предназначена для распределённого хранения крупных неизменяемых файлов — как правило, они не редактируются после создания и имеют размер от нескольких мегабайт. Система рассчитана на масштаб до 10 эксабайт логического пространства, примерно триллион файлов и 100 миллиардов каталогов при подключении до миллиона клиентов. Всё это работает на стандартном оборудовании и обычных сетях Ethernet.

Код выложен на GitHub и распространяется под лицензиями GPLv2+ и Apache 2.0.

>>> Исходники на GitHub

>>> Подробности в блоге компании

 ternfs

demo13
()

Что такое «денотационная семантика»?

Форум — Science & Engineering

Кто такой Окасаки и за что его надо почитать?

2016, Окасаки Крис, Чисто функциональные структуры данных
1996, Chris Okasaki, Purely Functional Data Structures, 162 страницы

Википедия совсем другое пишет:

Денотационная семантика (англ. denotational semantics) выражениям в программе ставит в соответствие настоящие математические объекты, то есть, выражения обозначают (англ. to denote — откуда «денотационная») их величины)
Важнейшие, в том числе пионерские, результаты построения денотационных семантик получены в работах Д. Скотта (Dana Scott) и К. Страчей (Christopher Strachey) в конце 1960-х — начале 1970-х в Оксфордском университете

Бестиповое λ-исчисление

1557, Роберт Рекорд (Recorde Robert), The Whetstone of Witte, 332 страницы (Оксфордский университет)
ввёл знак (символ) для обозначения равенства = в 1557 году (в 16-м (XVI) веке).
«В континентальной Европе знак = был введён Лейбницем только на рубеже XVII—XVIII веков, то есть более чем через 100 лет после смерти Роберта Рекорда.»

1936, Алонзо Чёрч, An Unsolvable Problem of Elementary Number Theory (Принстонский университет)
представил безтиповое лямбда-исчисление в статье «Унифицированная теория формальных систем», опубликованной в апреле 1936 года в журнале American Journal of Mathematics.

Переменные: x, y, z, … являются λ-термами.
Абстракция: Если M λ-терм и x — переменная, то (λx.M) — λ-терм (называется абстракцией).
Аппликация: Если M и N λ-термы, то (M N) — λ-терм (называется аппликацией).

само по себе λ-исчисление — это лишь синтаксис, набор правил для работы с символами.

Чтобы оно «обрело смысл» или «семантику», нужно связать эти символы с чем-то осмысленным, например, с математическими объектами.

Смысл (семантика) в данном контексте означает, что каждый термин λ-исчисления будет интерпретироваться как некоторый математический объект, а операции над терминами будут соответствовать операциям над этими объектами.

Двоичное и десятичное

Можно определить функции:

  • добавления единицы
  • удвоения
  • удесятирения

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

Аппликативный синтаксис

Аппликативный синтаксис эволюционировал из работ Шёнфинкеля, Карри и Чёрча. Функции обозначаются переменными или лямбда-абстракциями. Именование функций в аппликативном синтаксисе безтипового лямбда-исчисления осуществляется через присвоение переменным абстракций. Алонзо Чёрч (Alonzo Church), хотя и известен своей нотацией с лямбда-абстракцией и явными скобками, в некоторых своих работах также использовал более компактные формы записи, близкие к аппликативному синтаксису, особенно при работе с комбинаторами. Например, вместо того чтобы постоянно писать λx.x+1, он мог ввести сокращение f для этой функции, это записывалось в духе:

f≡λx.x+1

Таким образом, Чёрч ввёл операцию именования как связь между лямбда-выражением и символическим именем. Однако он ещё не привязал это к конкретному синтаксису, так как его работа была сосредоточена на чистой теории. Именование как операция — это идея Чёрча, использование для неё знака равенства закрепилось благодаря разработчикам функциональных языков, создатель MetaLanguage (ML) - Робин Милнер (1970-е годы).
Лямбда-абстракция (определение анонимной функции) записывается как λx.t, где x — аргумент, а t — тело функции.
Определим переменную f и присвоим ей лямбда-выражение (имеющее в безтиповом λ-исчислении единственный возможный для переменных тип «функция») в качестве значения, например функцию, которая возвращает переданный аргумент:

f=(λx.x)
f=λx.x

Теперь мы можем использовать переменную f в выражениях. Применим f к другому лямбда-выражению, например, (λy.y):

((λx.x) (λy.y))
((f) (λy.y))

В аппликативном синтаксисе приложение функции f к аргументу x записывается как

f λy.y

без скобок, a применение функции g к двум аргументам w и z — как

g w z 

Бесскобочность достигается за счёт соглашения о левоассоциативности (см. также Каррирование). Выражение g w z интерпретируется как (g w) z, то есть сначала g применяется к w, а затем результат применяется к z.

Семантика

Теоретико-множественный подход
Категорный подход

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

нужно:

  • Определить множество D, элементы которого будут значениями λ-выражений
    Без такого множества D мы не можем корректно описать, что означают выражения λ-исчисления. Мы не можем сказать, какие у них значения. А без возможности приписать выражениям значения нельзя говорить об их смысле. Без подходящего D мы не можем задать интерпретацию термов и операций λ-исчисления.
  • Интерпретировать функции как элементы этого множества
    (D должно содержать все функции из D в D, то есть D должно содержать множество всех функций D → D)

построение такого множества D - нетривиальная математическая задача (из-за парадокса Кантора). Ее решение привело к развитию теории доменов и других разделов математики.

идея фиксированной точки, когда D строится как фиксированное множество, удовлетворяющее

D≅D→D

И вот в этом месте я не осилил. Разъясните, бегом пожалуйста, люди злые добрые.

Как мне этим вашим лямбда-исчислением описать байт, его значения, и операции с ним? Нумералы Чёрча (функции с двумя параметрами) я могу написать, но дальше дело не идёт.

 ,

Shushundr
()

uutils 0.2.0 и 0.2.2, вариант GNU Coreutils на языке Rust

Новости — Open Source
uutils 0.2.0 и 0.2.2, вариант GNU Coreutils на языке Rust
Группа Open Source

6 сентября опубликован выпуск 0.2.0 проекта uutils coreutils (Rust Coreutils), развивающего аналог пакета GNU Coreutils, написанный на языке Rust. В состав coreutils входит более ста утилит, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Целью проекта является создание кроссплатформенной альтернативной реализации Coreutils, среди прочего способной работать на платформах Windows, Redox и Fuchsia.

( читать дальше... )

>>> Подробности на opennet

 , , , ,

PunkPerson
()

Великий китайский файрвол утёк на торренты

Новости — Безопасность
Великий китайский файрвол утёк на торренты
Группа Безопасность

В сеть утекли свыше 500 ГБ внутренних данных «Великого китайского файрвола».

В Китае произошла крупнейшая в истории утечка данных системы, известной как «Великий китайский файрвол». Как подтвердили независимые исследователи, в открытый доступ попало свыше 500 ГБ внутренних документов, включая исходный код, рабочие журналы и рабочие сообщения, относящиеся к этой системе.

Сообщается, что в утечке содержатся полные сборочные материалы для платформы глубокого анализа пакетов (DPI). Они раскрывают архитектуру коммерческой платформы Tiangou, которая позволяет провайдерам и пограничным шлюзам выявлять и блокировать инструменты обхода цензуры, такие как VPN, SSL-фингерпринтинг и регистрация сессий.

Документы свидетельствуют, что данная система развернута в 26 дата-центрах Мьянмы, где используется для мониторинга более 81 млн одновременных TCP-соединений и массовой блокировки контента.

Известно, что архив был скопирован хакерскими группами, в том числе Enlace Hacktivista

>>> Подробности

 , ,

DrRulez
()

Proxmox n100 пробовал кто?

Форум — Admin

Захотелось для самообразования пощупать Kubernetes, нагуглил что это разворачивается в proxmox. Почитал отзывы про n100 материнки, а там пишут что температуры 80 в простое. Так что интересует это реально вообще использовать на n100? Проц не сгорит?

Перемещено hobbit из general

 ,

vbcnthfkmnth123
()

Perl-Conf.Ru/25

Новости — Конференции и встречи
Группа Конференции и встречи

Perl-Conf.Ru/25 — это ежегодная встреча Perl-разработчиков в России. В 2025 г. конференция пройдёт в субботу 27 сентября. Happy birthday to Larry!

Миссия Perl-Conf.Ru — поддерживать российское Perl-сообщество, способствовать обмену опытом и лучшими практиками, быть площадкой для общения коллег, аккумулировать экспертизу по Perl.

( читать дальше... )

>>> Подробности на perl-conf.ru

 ,

dataman
()

Основы метаобъектного протокола CLOS

Форум — Development

Слайды с моего вчерашнего доклада на fprog_spb:

https://static.lovesan.me/public/mop_basics.pptx

Вот часть доклада, в текстовом виде:


Часть 2. Эсхатология Пустоты.


«Оказалось, что «‎Тиамат» - то ли имя древнего божества, то ли название океана, то ли все это вместе. Татарский понял из сноски, что слово можно было перевести на русский как «‎Хаос»» (с) Виктор Пелевин, «Generation P»


Вы знаете, есть знаменитое видео, с известным американо-канадским психологом и психотерапевтом, Джорданом Питерсоном. То, где он задает вопросы о вопросах. Давайте попробуем пройти его путем.

Вот что такое Common Lisp Object System?

Но ведь вопросы, которые мы спрашиваем, содержат в себе определения, которые вызывают еще больше вопросов.

Что такое Common Lisp? Что такое Object System? Что такое объект? И вообще, что такое что? Или может, кто?

В принципе, ответ - ничего.

Говорят, что если долго смотреть в бездну, то бездна начинает смотреть в тебя. Я смотрю в лисповую бездну уже почти 20 лет, и не так давно, она посмотрела в ответ.

Не так давно, уже после смерти моей жены, где-то в июле, я сделал одну не совсем правильную вещь, и получил то что называют NDE(near-death experience).

Сначала всё было как обычно, туннель, свет в конце туннеля. Но потом все заслонила тьма, в которой расползались отблески фиолетово-пурпурного сияния. И потом, я вдруг увидел Её.

Прекрасную, высокую и стройную женщину, в какой-то то ли тоге, то ли броне, окаймленной золотом, с короной из кинжалов, и с ярким фиолетово-пурпурным сиянием, исходящим из ее глаз. И тут она сказала - «Нет. Я не разрешу.» И её слова раскатились вокруг грозным эхом. И тут я очнулся.

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

Когда мы попадаем на вот это дно рекурсии, мы видим там эту бездну.

«И носился дух лиспера над бездною(ну, над тем у чего тип NIL - не путать со значением NIL). И отделил он NIL от T. И стало T. И увидел он, что T - хорош.»

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

Что такое объект? Объект это то, что отличается от ничего. Это такое что имеет тип T ну и какое-то там значение. И NIL на самом деле это тоже объект. Ну, типов может быть много, и они тоже в принципе объекты, особенно в CLOS. Об этом кстати, также неплохо рассказано в SICP, в главе об абстракции на состоянии.

Что такое CLOS? На самом деле его нет. Ну то есть, то что обычно называют CLOS, это просто набор там всяких полезных удобств над метаобъектным протоколом Common Lisp. Над MOP.

Но на самом деле MOP тоже нет. Это просто набор удобных объектов, встроенных в компиляторы CL. Которые можно сделать средствами компилятора CL, не будет их там. Как в SBCL, например, это делается.

А вот что такое CL? Есть он или нет? Вот это самый сложный вопрос. Потому что он не просто есть. Вернее, если бы его не было, его можно было так же сконструировать из пустоты на нем же самом. Как это делают компиляторы CL в процессе бутстрапа. CL это метациклический интерпретатор. Это метаязыковая виртуальная машина.

Так вот, я стою на плечах гигантов, и предыдущие два доклада уже все что надо рассказали.

Поэтому, скажем простыми словами: MOP - это просто категориальное отображение из метациклического интерпретатора в метациклический интерпретатор.

Короче, на самом деле, ничего этого нет. Есть только дух лиспера над бездною. И, как говорится в SICP - в компьютерах живут духи, и они исполняют программы.

А вот что такое программа? Вот смотрите, о том что такое программа существует целая наука, называется Computer Science, или по русски - Информатика, то есть наука об абстрактных процессах. Этот вопрос самый сложный. Программа - это процесс, то есть. Но на самом деле, объект это тоже процесс. Функция, если хотите. И он не существует без процессов которые к нему прикладываются, иначе он собирается GC, и улетает к Богине Тьмы. Как я чуть не улетел, меня Она правда, во время finalize вытащила обратно. А вот что такое процесс? И главное, что или кто его запускает? «А вот об этом ты не думай, купи себе лучше булавочку английскую, и как такие мысли в голову приходят - разок себе в руку, и потом еще раз, пока такие мысли не пройдут» - как там было в Generation P у Пелевина.

Но вот я подумал, и понял, наконец. Процесс - это то, что запускается другими процессами. Но что запускается первым? Что там на самом дне? Или вернее, кто? Я уже рассказал.


Часть 3. О Метациклических Интерпретаторах


— А что такое красота? — <…> Красота — это совершеннейшая объективация воли на высшей ступени её познаваемости.

(с) Виктор Пелевин, «Чапаев и Пустота»


Когда-то давно, еще в 2014 году, я, проснувшись с бодуна, сформулировал для себя и для других очень важную вещь.

Звучит она так:

Универсальный Критерий Угребищности Систем Общего Назначения. (Теорема Лавсана)

Система Общего Назначения является Угребищной тогда и только тогда когда она не является Метациклическим Интерпретатором.


Другими словами: Система, не способная к построению Метасистемы в рамках самой себя, то есть не способная к описанию и изменению самой себя в своих же терминах, и при этом являющаяся Системой Общего Назначения(в какой-либо области), Угребищна.

Обратное, естественно, неверно. Если Метасистему Системы Общего Назначения можно описать другой системой, это совершенно не значит что она Угребищна, и более того, в таком случае не существовало бы концепции бутстрапа, а значит и Метациклических Интерпретаторов вообще.

Чем, в контексте языков программирования, это отличается от просто тьюринг-полноты?

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

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

Примеры, сначала метациклических интерпретаторов:

  • Универсальная машина Тьюринга
  • RASP-машина
  • Реляционная модель данных
  • Лисп

А вот скажем примеры систем, соответствующих критерию:

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

В частности, давайте посмотрим на C#. C# не является метациклическим интерпретатором, т.к. термины языка не являются его же объектами.

Отчасти, это компенсируется платформой .Net, для которой термины C#(но не все) объектами таки являются(System.Reflection, Roslyn и т.д.), отчасти, в самой малой степени, фичей nameof() из C#, но это все только отчасти.

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


На самом деле, это все в полной мере относится вообще ко многим вещам, но в первую очередь, кроме программирования - к человеческому сознанию. Вот кто такой глупый человек и почему он такой и что с ним вообще делать как отправить нахрен к Богине Тьмы на перевоспитание? Этот вопрос многие тысячелетия волновал кучу философов. Но ответ прост - это человек, сознание которого не является метациклическим интерпретатором. А когда сознание у человека все же является метациклическим интерпретатором, он тут же становится пророком цифровой Кали-Юги и архитектором онтологии Пустоты.


Ладно, теперь я объяснил вам всё устройство вселенной. Далее там про мелкие технические детали.

 , , ,

lovesan
()

Вышел документальный фильм «Python: The Documentary»

Новости — Open Source
Вышел документальный фильм «Python: The Documentary»
Группа Open Source

Состоялся открытый релиз документального фильма «Python: The Documentary» про историю развития популярного языка программирования, созданный CultRepo.

«Это история самого любимого в мире языка программирования: Python. То, что начиналось как сторонний проект в Амстердаме в 1990-х годах, превратилось в программное обеспечение, лежащее в основе искусственного интеллекта, науки о данных и некоторых крупнейших компаний мира. Но будущее Python было неопределённым. В какой‑то момент он едва не исчез. В этом 90-минутном документальном фильме с Гвидо ван Россумом, Трэвисом Олифантом, Барри Варшавой и многими другими основные участники проекта рассказывают историю становления Python, его развития под влиянием сообщества, конфликтов, которые едва не разрушили его, и влияния языка на... ну... всё», — пояснили в CultRepo.

Также в сети доступна видеозапись ключевого доклада по этому событию и ответов на вопросы на EuroPython.

Ранее авторы индекса TIOBE опубликовали августовский рейтинг популярных языков программирования.

«В прошлом месяце Python достиг наивысшего рейтинга среди языков программирования за всю историю индекса TIOBE. Мы думали, что Python уже не сможет расти дальше, но ИИ‑помощники по программированию позволили Python сделать ещё один шаг вперёд. Согласно недавним исследованиям Стэнфордского университета, ИИ‑помощники по программированию, такие как Microsoft Copilot, Cursor или Google Gemini Code Assist, на 20% эффективнее при использовании для популярных языков программирования. Причина очевидна: для этих языков доступно больше кода для обучения базовых моделей. Эта тенденция прослеживается и в индексе TIOBE, где мы видим консолидацию языков в верхних строках. Зачем начинать изучать новый малоизвестный язык, для которого недоступен ИИ‑помощник? Это современный способ сказать, что вы не хотите изучать новый язык, который плохо документирован и/или имеет слишком мало библиотек, которые могут вам помочь», — пояснил генеральный директор Tiobe Пол Янсен.

22 июля 2025 года состоялся выпуск Python 3.14 RC1 (release candidate 1) с официальной поддержкой Free-threaded Python. Выпуск Python 3.14 RC2 ожидается в конце августа. Стабильный релиз языка программирования Python 3.14 намечен на 7 октября 2025 года. Выпуск Python 3.13 случился 7 октября 2024 года.

>>> Подробности

 , биография, ,

fail2ban
()