LINUX.ORG.RU

Избранные сообщения LINUX-ORG-RU

Кто возьмется сделать православный мониторинг для dwm?=)

Форум — Development

Появилась мысль сделать кикстартер проект. Сформировать всем месте ТЗ по этому проекту и вложиться деньгами(скажем по $1-2 с человека). По результатам выложить это на suckless, чтобы у всех у нас был хороший гибкий мониторинг. Вообще, такой proj хорош тем, кто хочет поднять свой скилл на си, но если таких не найдется, давайте соберемся шекелями и пусть нам запилят мониторинг

В общем есть у меня скрипт на питоне, который имеет конфиг:

data = {
    'item0':
    {
        'job': 'myout',
        'type': 'system',
        'timeout': 2,
        'state': 'enable',
    },
    'item1':
    {
        'name': '',
        'bracket': '',
        'job': 'internet',
        'type': 'function',
        'timeout': 5,
        'state': 'enable',
        'result': 'UP:LOAD'
    },
    'item2':
    {
        'name': '',
        'bracket': '',
        'job': "weather",
        'type': 'function',
        'timeout': 300,
        'state': 'enable',
        # 'result': '☔:0'
        'result': 'W:0'
    },
    'item4':
    {
        'name': '',
        'bracket': '',
        'job': 'traffic',
        'type': 'function',
        'timeout': 1,
        'state': 'enable',
        'result': 'D:0B    U:0B   '
    },
    'item5':
    {
        'name': '',
        'bracket': '||',
        'job': 'disk',
        'type': 'function',
        'timeout': 60,
        'state': 'enable',
        'result': 'RH:-1,-1,-1'
    },
    'item6':
    {
        'name': '',
        'bracket': '',
        'job': "day",
        'type': 'function',
        'timeout': 15,
        'state': 'enable',
        'result': 'Дн.'
    },
}

Скрипт обходит все item, парсит что это «функция», берет имя функции, и выполняет функцию с указанным таймаутом. Далее пишет информацию в общий массив и отдельный тред берет весь массив и пишет информацию в xsetroot -name. Но в целом всё это я так бы сейчас не написал. Это не православно. Православно как?

делаем конфиг в yml вида:

- item1
   - path: /some/script.py
   - timeout: 15
   - state: enable
   - result: 'UP:LOAD'

Далее в сишке обходим все item, запускаем скрипты с заданным таймаутом и пишем в какой-то общий массив. И с таймаутом 2 секунды запускаем xsetroot и подставляем всю инфу. Таким образом мы можем в мониторинг добавлять свои скрипты хоть на питоне, хоть на луа, хоть на sh и мониторинг будет забирать от них выхлоп. Было бы круто:)

А то некрасиво это:

ps_mem |grep monitoring.py

17.3 MiB + 241.5 KiB =  17.5 MiB       monitoring.py

ps_mem |grep dwm

1.3 MiB + 199.5 KiB =   1.5 MiB       dwm

Сам мониторинг занимает больше памяти, чем wm, лол

Кто возьмётся написать православный monitoring на си для dwm? =)

 , ,

bryak ()

Анимация механики blender (ведущая балка колёсной пары локомотива)

Форум — Games

Привет, есть такая колёсная пара локомотива https://i.ibb.co/hgh40LZ/2021-04-05-14-17-45.png без других механических деталей. В общем как анимировать механику? Вращение я понял как для всех объектов переключаюсь на вращение кватернионами (эйлер говно) затем включаю автоматическую установку ключевых кадров, делаю вращение вокруг центров объектов (колёса отдельные) и попутно смещаю ключевые кадры, получаю 5 опорных кадров которые делают вращение всё хорошо, затем думал также анимировать ведущую балку, но блендер запоминает то как я перетащил балку от места до места эммм не то, нужно как полагается ну типа вот https://i.gifer.com/origin/bc/bcf2be8664eddd3a16c29343c8f9999c_w200.gif. Есть модификатор который от изменения положения одного объекта трансформирует другой, но я хз оно работает хорошо с шестирёнками или тип того. В общем прошу кинуть ссылку или доку или ещё что по этой теме. Так то предполагается ещё десяток механических соединений и их анимации (локомотив приводится в движение пневмоприводом который сам крепится на ось и шатается толкая ведущую балку например) так что мне не частный случай желательно а общий. Помогите советом. Или пните в нужную сторону.

Если важно то потом буду экспортировать в SMD валвовский.

 , , , ,

LINUX-ORG-RU ()

c++ и utf-8

Форум — Development

Допустим есть файл сохранённый в UTF8. Читать я его могу исключительно std::ifstream (без std::wifstream).

После прочтения файла, я хочу иметь возможность итерироваться по utf-8 символам, и даже сравнивать их

for (size_t i = 0; i < utf8String.size(); i++) {
    if (utf8String[i] == 'ф') {
        //...
    }
}

Т.е. я хочу чтобы была возможность работать с каждым utf-8 символом, в независимости от того какой он длинны как с одним символом.

Что мне для этого нужно?

Я думал что wchar_t. Но есть такие два источника: 1. https://ru.wikipedia.org/wiki/Широкий_символ 2. https://stackoverflow.com/questions/17871880/should-i-use-wchar-t-when-using-...

Которые вроде как говорят что это не очень хорошо.

Еще я заметил (да на ++ уже пишу и не первый год), но заметил только сейчас, т.к.раньше просто не думал про это ибо не было нужно:

что std::wstring wstr = L"добро"; //да, система дебиан 8, x86-64, исходник сохранен в utf8.

в общем wstr==«добро» в оперативной памяти будет представлено не в utf-8 а в неведомой кодировке. Но по которой можно итерироваться и сравнивать.

Буква 'д' из этой строки будет иметь следующий байт-код 00110100 00000100 00000000 00000000 (wchar_t)

При этом если бы 'д' была в utf8 то она должна была бы иметь такие байты 11010000 10110100 {00000000 00000000} - в скобках хвост который как бы не имеет отношение к коду 'д', но заполняет тип wchar_t.

Вопросы: Можно ли как-то сделать так чтобы компилятор (g++) видя wchar_t c = L'д' или whchar_t c = 'д' - конструировал utf8 букву в wchar_t типе, а не в непонятной кодировке. И кстати в какой кодировке он её кодирует по умолчанию?

Есть ли какой-то способ прочитать преобразовать utf-8 строку, хранимую в std::string в std::wstring так чтобы после такого преобразования содержимое этой wstring можно было бы корректно вывести в std::wcout?

Я нашел такой способ Преобразование std::string в std::wstring

Но во первых он какой-то страншный и не очень понятный, какие-то шаблоны актуализируются...

А самое главное в моём debian8 и gcc4.3 нет такого хедера include <codecvt>

Поэтому у кого поновее пакетная база, и кому не лень, пожалуйста из ссылки выше запустите пример. Сделайте std::string str(«добро») и преобразуйте её в std::wstring Нужно чтобы после преобразования wstring строка корректно выводилась в std::wcout и можно было побуквенно (а не побайтово) итерироваться по ней, и посимвольно сравнивать.

В общем, т.к. у меня нет этого codecvt я сделал преобразование руками (да можно красивее, переносимее (учитывать порядок байт), при вызове из main не выходить за границы строки и т.д. и т.п. - не суть): https://pastebin.com/4E3nuNcM

и вот если приблизительно таким методом конструировать std::wstring которая содержит utf-8 можно будет итерироваться по ней (да, я знаю что utf8 может быть длиннее чем размер wchar_t, но у меня будет набор латиницы и кириллицы из utf8 документа), можно будет сравнивать с символами, но к сожалению не так wstr[0] = 'ы' а только с заранее созданными символами, подобным методом как строка создавалась. wstr[0] == wcharSymbol.

Это не удобно, а еще такая строка не может корректно выводится на std::wcout.

Т.е. заключительный вопрос - можно ли как-то пользуя нативный wchar_t работать посимвольно с utf-8 в c++ в линукс, имея полный ф-л такой как итерации, посимвольное сравнение, корректный вывод в std::wcout.

Если нельзя - есть ли возможно какие-то сторонние (причем легковесные библиотеки, код которых можно включить в проект, и собрать статически, и чтобы места не много тратили) которые предоставляют некий тип wideChar, полностью совместимый и с std::wcout и со всей stl(конейнерами, алгоритмами) и при этом желательно кросплатформенная?

Кстати в презренной винде на этом же наборе символов utf8 (латиница и кириллица) - всё очень хорошо (плохо там будет когда потребуется символ длиннее 2 байт) - т.к. там wchar_t это 2 байта, т.е. он как раз отлично соотвествует, и в wcout тоже выводится :)

Просьба не флудить а по конкретике писать :)

 , , , ,

bonta ()

Керамический нагреватель для Lukey 852D+

Форум — Talks

Сломался :( Физически откололась верхняя треть от длинны.

Первый вопрос:

  • А его реально восстановить? Ну, а вдруг.

Второй вопрос:

  • У кого такой же нагревательный элемент. Где покупали если покупали, а то во первых есть подделки выгорающие за неделю (начитался/насмотрелся), а во во вторых цена в **** тыщапясот рублей, я фигею за кусок керамики, откуда можно взять дешевле? А то блин дорого за полторы штуки новую паяльную станцию можно купить простенькую.

 , , , ,

LINUX-ORG-RU ()

Улучшить файловую таблицу?

Форум — General

Существует множество «улучшателей» файловых систем - дефрагментаторы. Для различных файловых систем:

Но все эти тулсы «улучшают» не совсем то, что нужно. Хотелось бы чего-нибудь более простого и понятного, вроде fsremake:

  1. На основании некого понятия об «образцовой» файловой таблице посчитать «плохость»(badness) существующей таблицы и выдать её.
  2. Создать «копию» файловой таблицы, подсчитать её «плохость».
  3. Если «плохость» «копии» меньше или указан режим -force переключить раздел на «копию», а исходную таблицу высвободить.

Есть ли подобные утилиты и (если есть) как они называются?

Дополнение 1:

«Плохость» - отличие от «образца». Естественно для каждой фс «образец» свой. И здесь уже надо разбираться в структуре фс, чем похвастать не могу. Цель - привести файловую таблицу как можно ближе к «образцу».

Дополнение 2:

Структура таблицы фс изначально простая. По мере заполнения усложняется. Некоторые усложнения излишни. Таблица без «лишних» усложнений - «образец». «Образец» реально не существует.

Существующие на данный момент «решения»:

  • HFS - # fsck.hfs r /dev/sdX
  • EXT - # fsck.ext4 -yfD /dev/sdcN

 

Deleted ()

Обмен ключами, скидками и прочими игровыми радостями (3)

Форум — Games

Сюда можно и нужно писать, какими бы ключами вы бы хотели поделиться. Steam, desura, всякие бандлы и т.д.

Замечания:

 , , ,

beastie ()

Google решил изготовлять опенсорсные микросхемы

Форум — Talks

 , ,

kecalkoatl ()

Подскажите официальную документацию по "-l:" опции линкера

Форум — Development

Нужно линковать в проект библиотеку с кривым именем, без префикса lib* (ну так получилось). Это без проблем делается, если к -l добавить двоеточее. Но почему-то не получается найти в документации официальное описание этой фичи.

https://stackoverflow.com/a/10259822/5296568

Можете подсказать ссылку на официальную доку?

 

Vit ()

Релиз Ventoy 1.0.13

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

Ventoy — это инструмент с открытым исходным кодом для создания загрузочного USB-накопителя для ISO-файлов. С ним вам не нужно форматировать диск снова и снова, вам просто нужно скопировать iso файл на USB диск и загрузить его. Вы можете скопировать несколько iso-файлов и выбрать необходимый в меню загрузки. Поддерживаются и Legacy BIOS, и UEFI режимы. Протестировано 260+ ISO-файлов (список).

В этом релизе:

  • Добавлена поддержка образов WinPE типа «N-в-одном»;

  • Добавлен плагин «menu_alias», позволяющий задать псевдоним для конкретного ISO-файла;

  • В плагине «theme» добавлена возможность задания режима дисплея;

  • Добавлен вызов меню загрузки с локального диска по клавише F4;

  • Добавлен режим отладки по клавише F5;

  • Обход ограничений, присущих некоторым Legacy BIOS;

  • Различные оптимизации и исправления ошибок, расширен список поддерживаемых ISO-файлов.

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

 , , ,

cocucka ()

Natron 2.3.15

Новости — Мультимедиа
Группа Мультимедиа

Выпущена новая версия программы Natron, предназначенной для совмещения спецэффектов с видеорядом для производства кино (ближайшие коммерческие аналоги проекта — The Foundry Nuke и Blackmagic Fusion).

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

Основной форум проекта в 2019 году переехал в собственный раздел на площадке Pixls.

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

 ,

anonymous ()

Предлагаю обсудить главную новость ядра.

Форум — Talks

https://lkml.org/lkml/2020/5/28/1237

Новым стандартом кодинга стало 100 символов в ширину. Линус разрешил.

Да-да, очень смищьно, но тем не менее. При запуске все эмуляторы терминалов, даже в DE, имеют соотношение 80х24, кто-то специально это настраивает? Нет, просто стандарт. А теперь его так вот грубо ломают.

Или как там он говорил... curl https://lkml.org/lkml/2012/12/23/75 | grep WE\ DO\ NOT\ BREAK.

Ну такое себе короче.

В тред так же приглашается главный специалист по таким вопросам saahriktu.

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

 ,

Spoofing ()

Хочу начать писать игру

Форум — Games

Здравствуйте, я тут задумал написать игру, про карантин, про одиночество, про общежитие, в общем то что меня сейчас окружает и окружало. Хочу передать свои раздумья, атмосферу, мне кажется это можно было бы завернуть в интересный формат.

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

Во-вторых, картинка. В плане пискельности, пропорций должно выглядеть как Dead cells, так же вид сбоку, но проходить должно в антураже условной хрущевки. И так как рисовать я не умею и друзей художников у меня нет, придется какую то часть ассетов накалякать самому, для другой части искать бесплатные ассеты. Порекомендуйте сайтик где есть большой выбор.

В-третьих, музыка. Тут все легче: у меня много друзей, которые играют на музыкальных инструментах. У меня есть представление что должно играть. Тут вопросов, вроде, нет.

В-четвертых, геймплей, жанр и механики. Пока это мое слабое место, я еще не придумал как в мир без магии, фентези и прочего добавить каких-то геймплейных механик. Днем герой мог бы ходить по общежитию, взаимодействовать с объектами и изучать их, выполнять задания, но потом я задумался:«А как еще можно разнообразить геймплей». Вспомнил, что была такая игра Catherine. Подумал, что тоже можно добавить некую мини-игру, которая бы происходила в конце игрового дня и влияла на героя в его реальности. Но, мне кажется что, эта мини-игра должна быть драйвовая, динамичная, чтобы щекотать игроку нервы, чтобы он понимал, что если он тут провалится, то это повлияет на персонажа.

В-пятых, яп. У меня есть пара требований к языку:

  • Без GC, чтобы картинка не лагала. Хотя, у меня есть ощущение, что у меня картинка будет не сильно сложная.
  • Удобная поддержка юникода и в Linux и в Windows. Все таки сценарий будет написан на русском.

И что у нас остается:

  • С. SDL2. (скорее всего придется крутить велосипед для юникода(?))

  • C++. SDL2, SFML.

  • Rust. биндинги к sdl2, sfml или же чисто растовсикй piston.

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

 

snake266 ()

Красивая игра с насилием и сексизмом для ребёнка 20+

Форум — Games

Посоветуйте эстетически красивую игру с насилием и сексизмом для детей от 20.

Эстетически красвива - никаких стандартных ассетов из магазина юнити и псевдопикселов на полэкрана из серии «у нас нет художника, так что сделаем вид, что это пиксель-арт».

Приятный аудиофон.

Игра пропитана сексизмом не менее чем на 30%, но лучше хотя было до 50%-60%.

30-40% игрового процесса занимает насилие, желательно в разнообразных формах.

 

LamerOk ()

Задачка на подумать (диагональный сдвиг по Z-кривой Мортона)

Форум — Development

Есть такая замечательная штука как Z-кривая Мортона, очень удобна для всяких рекурсий и многомерных массивов с хорошей локальностью данных.

Нужно зная сдвиг ячейки от начала D-мерного массива найти сдвиг ее ближайшего соседа по диагонали (вперед-вверх).

Я знаю только такое решение

const uint64_t zmasks[16]={
  0xffffffffffffffff, 0x5555555555555555, 0x9249249249249249, 0x1111111111111111,
  0x1084210842108421, 0x1041041041041041, 0x8102040810204081, 0x0101010101010101,
  0x8040201008040201, 0x1004010040100401, 0x0080100200400801, 0x1001001001001001,
  0x0010008004002001, 0x0100040010004001, 0x1000200040008001, 0x0001000100010001 
};

template <int D, typename T> T zoff_diag_shift(T offset){  
  for(int i=0; i<D; i++){
    T omask = zmasks[D-1]<<i, imask = ~omask, fix = offset&imask;
    offset = (((offset|imask)+1)&omask)|fix;
  }
  return offset;
}

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

 

AntonI ()

Первый мультфильм ЛОРа: «Linux MOD by MS»

Форум — Talks

Команда LOR iMotion рада представить свой первый мультфильм.
События развиваются в штаб-квартире Microsoft...

Сценарий: LINUX-ORG-RU
Озвучка: deep-purple
Анимация: Moderators

По мотивам темы Первый мультфильм силами ЛОРа (linux mod by MS)

Альтернативная ссылка: https://streamable.com/ldkojj

Смотреть

Перемещено shell-script из linux-org-ru

 , ,

Moderators ()

Первый мультфильм силами ЛОРа (linux mod by MS)

Форум — Talks

Тэкс... Чот захотелось поглумиться. Предлагаю запилить мульт.

Я могу (и хочу!) заозвучить нижеуказанных персов.

Автором сценария выступит автор сия текста — LINUX-ORG-RU.

Художником мультипликатором предлагаю автора мульта про вертолёт — gtk3.

Кто если захочет вклиниться в глумительное созидание или чем помочь, например, вызвать докторов — милости просим.

LINUX-ORG-RU — я тут подправил немного текст, добавил подробностей раскадровки. Давай, утверждай, или говори какие тут правки по твоему ещё внести надо? Ато уже заозвучить персов хочу, а без утверждённых текстов то не начать. В темпе плиз!!!

----------------------------------------
----------------------------------------
----------------------------------------

UPD!!!

Репозиторий: https://gitlab.com/kinolinux/ms-linux-module

Тестовая озвучка (по старому не-до-полу-сценарию): https://dropmefiles.com/7ioIr

Тестовые кадры:

https://vk.com/doc431142494_546138856
https://vk.com/doc431142494_546140716

Другое тестовое:

https://streamable.com/w0dhd7
http://images.vfl.ru/ii/1586836562/4da25d8f/30214443.png

Дело делается:

https://dump.video/i/K1akGm.mp4
001 https://dump.video/i/GpQkWY.mp4
002 https://dump.video/i/xn104A.mp4

Саундтрек к мульту: https://dropmefiles.com/L6HTk

Скетчи к раскадровке:

-1) https://pic4a.ru/04/BFe.jpg
-1-fixed) https://pic4a.ru/04/hKb.jpg
0) https://pic4a.ru/04/7ST.jpg
1) https://pic4a.ru/04/1XW.jpg
2) https://pic4a.ru/04/ZtS.jpg
3) https://pic4a.ru/04/8lA.jpg
4) https://pic4a.ru/04/o1f.jpg
5) https://pic4a.ru/04/9bK.jpg
6) https://pic4a.ru/04/7ot.jpg
7) https://pic4a.ru/04/vDi.jpg
8) https://pic4a.ru/04/ZyD.jpg
9) https://pic4a.ru/04/I4B.jpg
10) https://pic4a.ru/04/S2A.jpg
11) https://pic4a.ru/04/7T5.jpg
12) https://pic4a.ru/04/7Bu.jpg
13) https://pic4a.ru/04/Ncf.jpg
14) https://pic4a.ru/04/dhC.jpg
15) https://pic4a.ru/04/8Bg.jpg
16) https://pic4a.ru/04/XF0.jpg
17.1) https://pic4a.ru/04/eLf.jpg
17.2) https://pic4a.ru/04/2Rl.jpg
17.3) https://pic4a.ru/04/Yht.jpg
18) https://pic4a.ru/04/USc.jpg
19) https://pic4a.ru/04/vqu.jpg
20) https://pic4a.ru/04/1BM.jpg
21) https://pic4a.ru/04/mT4.jpg
22) https://pic4a.ru/04/PjD.jpg

Сценарий распоследней версии:


Полезные ссылки:

https://news.microsoft.com/leadership/?section=board-members

https://medium.com/@selamjie/remove-richard-stallman-fec6ec210794


Действующие лица:

DD - Deven Desai (человек в костюме).
SN - Satya Nadella (человек в кресле).
BG - Билл Гейтс.



Раскадровка (смена вида обозначена пунктиром):


----------------------------------------------

(чёрный фон)
(появляется фоновая музыка через fadein)
(логотип через fadein-fadeout)

                   LOR
               linux.org.ru

(
    во время демонстрации логотипа,
    на фоне, не одновременно, в рандомных координатах и разных размеров,
    появляются не сильно заметные, серенькие слова "Deleted"
    и исчезают через fadeout вместе с логотипом
)

----------------------------------------------

(чёрный фон)

present

(через fadein-fadeout)

----------------------------------------------

(fadein изображения)
(фоновая музыка продолжается)
(добавляется шум дороги и гул двигателя)

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

Пока автомобиль едет, в центре экрана выплывает название:


ГЛУБОКАЯ АНАЛИТИКА
    MICROSOFT


Сначала появляется "ГЛУБОКАЯ".
Затем "АНАЛ".
Затем, с небольшой паузой "ИТИКА".
Затем резво выскакивает "MICROSOFT".

(
    можно поиграться с "deep microsoft anal ytics"
    которые в итоге вываливаются в указанное выше название на русском
)

(fadeout названия)

----------------------------------------------

(фоновая музыка всё продолжается)
(шум дороги и гул двигателя всё продолжаются)

Теперь камера висит сбоку сзади автомобиля.
Видно как вращаются колёса и бежит полотно дороги.
Впереди быстро приближается город (Редмонд, Вашингтон).

(
    Гуглим по картинкам как выглядит Редмонд!!!
    Редмонд - город в котором находится главный офис майков.
    Надо будет влепить приближающийся плакат:

    https://upload.wikimedia.org/wikipedia/commons/thumb/1/16/Bicycle_Capital_of_the_Northwest.JPG/1280px-Bicycle_Capital_of_the_Northwest.JPG
)

----------------------------------------------

Вид из авто.

Автомобиль едет уже по городу.
С боков проплывают здания.
Светофоры, знаки, деревья.
Чьи-то руки крутят баранку.
На зеркале болтается вонючка в виде логотипа винды 10.
И ещё одна в виде символов "M$".
На экране мозгов автомобиля написано:

"Цель: Штаб-квартира Microsoft" 

----------------------------------------------

(шум дороги стих, гул двигателя изменился, но продолжается)
(медленный fadeout фоновой музыки)

Камера сверху.
Автомобиль въезжает на стоянку.
Также видно, что стоянка эта находится рядом с вот этим:

https://image.shutterstock.com/image-photo/redmond-washington-usa-march-28-260nw-1357496909.jpg

(
    Надо гуглить как выглядит офис майков:

    https://www.shutterstock.com/ru/search/redmond+microsoft
)

Из автомобиля выходит DD в чёрном костюме и галстуке
    и направляется к офису.

----------------------------------------------

(фоновая музыка уже стихла)

Камера смотрит на входные двери офиса.
DD видно со спины (немного под углом?).

DD входит в здание офиса.

----------------------------------------------

(появляется шум офиса)

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

DD видит моющую полы уборщицу (с головой Анджелины Джоли)
    и проходя мимо лапает её за жопу.
Та вскрикивает и отскакивает, уронив швабру и опрокинув ведро.

А DD как ни в чём не бывало открывает дверь за ручку
    и заходит в кабинет Надэллы.

----------------------------------------------

(есть звуки офиса, но сильно приглушённые)

Камера охватывает весь кабинет, но смотрит на входящего DD.
Ракурс таков, что видно и стол начальника,
    и доску (для рисования) на стене.

DD закрывает дверь и проходит внутрь кабинета к столу начальника.

За столом сидит Satya Nadella и нервно бьёт пальцем по стакану.

SN: Здравствуй, дружок, ты выполнил моё поручение?

----------------------------------------------

Видим спину начальника и фигуру (только лицо?) гостя.

DD: Да сэр! И у меня есть планы по продвижению!

----------------------------------------------

Переключили вид на кабинет (как при входе DD).

SN: Говори, дружок, я тебя слушаю.

DD подходит к доске, вытирает с неё всё, берёт маркер и начинает говорить...

----------------------------------------------

Инфографика начинается с белого фона.

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


DD: Довольно большое количество людей успешно используют WSL.
    На фоне этой популярности
    мы якобы хотим добавить новый уровень безопасности.
    Для этого был разработан и публично представлен модуль для ядра Linux.
    Сам модуль намеренно не отвечает качеству и его скорее всего отвергнут.
    Зная, что многие нас не любят,
    мы можем на этом сыграть.
    А именно:
    Показать,
    что мы тоже многое делаем,
    но нас отвергают.
    И мы,
    якобы для сохранения чести,
    гордости
    и дабы не оставить пользователей WSL без нововведений - форкнем Linux!
    Самый важное - это показать,
    что наши действия по форку были вынужденными,
    чтобы иметь возможность
    предоставить пользователям новый уровень безопасности!
    Пока всё идёт как надо,
    отдел стратегического планирования просчитал два исхода:
    Первый:
    Наш модуль примут.
    Это не очень хорошо, но мы и это сможем использовать для своих целей.
    Второй:
    Наш модуль отвергают.
    И в этом случае у нас уже куплены несколько сотен журналистов,
    которые уже готовят статьи
    на счёт нападок на нас из лагеря разработчиков Linux.
    Мы сыграем на фоне общей толерантности.
    Пусть будет выглядеть так, что дискриминируют именно Microsoft.
    И пока их внутренний CoC будет решать что делать - мы объявим форк!
    Однако,
    для сохранения лояльности к нам,
    этот форк будет синхронизироваться с оригиналом в течении ещё целого года.
    А затем,
    мы найдём предлог по внесению очень больших изменений.
    Думаю,
    иметь оригинал как подмножество нашего форка,
    будет хорошим планом.
    Спустя время - лень людей - победит.
    И, пользователи массово перейдут к нам.
    А дальше дело за малым:
    Embrace, Extend, and Extinguish
    (Поддержать, надстроить и уничтожить)
    или ещё проще - vendor lock!

DD расплывается в улыбке.

(отзвучим его улыбание мультяшным чистым стеклянным "бздынь")
(некоторая пауза)

----------------------------------------------

Переключили вид на начальника.

SN: Я понял, DD.
    Ступай.
    И докладывай по мере развития событий.

DD: Йес, сэр!

DD, произнося свою фразу, слегка кланяется,
    затем разворачивается от доски к двери
    и направляется к ней (двери).

(мы не ждём когда DD подойдет к двери)
(fadeout в темноту)
(некоторая пауза)
(fadein фоновой музыки)
(фоновая музыка громко)


----------------------------------------------

(fadein к кадру)
(fadeout фоновой музыки)
(шум моря, чайки)

Мы видим волшебный остров, пальмы, кокосы, пляж.
На берегу, на пляже, в шезлонге, под зонтиком, сидит Билл Гейтс.

В одной руке он держит бокал с экзотическим коктейлем.
Другой рукой прижимает к уху мобильный телефон.

(SN тут всегда голосом из телефона)

BG: Оооо!
    Ахахах! (посмеивается)
    Прекрасно!

SN: Нам бы не остать от гугла и красной шляпы.
    Они уже давно этим занимаются.

BG: Они,
    особенно гугл,
    от своей власти начанают терять доверие народа.
    А мы,
    если всё сделаем правильно,
    наоборот,
    сможем это доверие вернуть!
    Ахах! (посмеивается)
    Как это мило!
    Отлично!
    Спасибо!
    Пока-пока мой индусик!

BG завершает звонок.
Отбрасывает мобильный телефон в песок.
Мечтательно вздыхает.
Отпивает коктейль из трубочки.

BG: Теперь я абсолютно спокоен по поводу наследника нашей компании.
    Этот цыганёнок просто покорил меня своей изобретательностью и хитростью.

----------------------------------------------

Камера близко к шезлонгу, заглядывает из-за плеча Гейтса.

    (
        Гейтс достаёт из кармана фотку,
        на фотке мем "мой пездюк"
        с соответствующей надписью
        и головами Гейтса и (скорее всего) Наделлы
    )

BG: Его гениальная стратегия "не можешь победить врага - возглавь его"
    работает просто идеально.
    Мы купили GitHub!
    Мы купили многих OpenSourse разработчиков!
    А тех,
    кто не продался - мы форкнули!

(BG убирает в карман фотку)

----------------------------------------------

Камера вернулась к общему виду.

BG: Ахах! (посмеивается)
    Дело за малым:
    уничтожить традиционные GNU/Linux дистрибутивы
    и пересадить пользователей к нам в мышеловку - на винду!
    Короче,
    поступим так,
    как мы проталкивали свои окна в лихие 90-е!!!

(суперзлодейский долгий смех Билла)
(сотрясается от смеха в шезлонге)

(fadeout смеха)
(fadeout в темноту)
(некоторая пауза)
(fadein фоновой музыки)
(фоновая музыка громко)

----------------------------------------------

ТИТРЫ!!!

(fadeout фоновой музыки)
(чёрный фон)
(некоторая пауза)

----------------------------------------------


 , ,

deep-purple ()

libfuse, треды и timerfd

Форум — Development

до запуска fuse_main() создается тесколько тредов.

В каждом треде создаётся таймер через timerfd_create(CLOCK_REALTIME, 0)

далее делаем timerfd_settime(tfd, TFD_TIMER_ABSTIME,...)

таймер через 2 секунды и интервал 2 секунды.

все работает!

как только запускается fuse_main() в виде демона, то все чтение из tfd прекращается.

Что это за @#$%^&*! ?

 , ,

vel ()

не уверен в admin это или в development, но после установки арча у меня обострился NIH, спрошу здесь

Форум — Development
  1. Вот есть ncdu. Оно рулез.
  2. Вот есть pacman -Qn|m и оно рулез
  3. Вот есть мало места на ржавом HDD и оно не рулез
  4. Хотелось бы узнать самых жирных и убить

Синдром утенка говорит так (не запускал|псевдокод):

for p in `pacman -Qn`; do
   # handle recursion (directories)
   file_size=`stat --printf="%s" $p`
   size=$(expr size + file_size)
done

... same shit for pacman -Qm ...
... sort by size and blablala...

Но что если программа dupa нагенеририла в `/home/user/.dupa 900Mb). Как к этому подойти квадратно-гнездовым методом,

 

dissident ()

Новый фундамент интерфейса, всплывающие окна, тонущие двери, мастерская идей

Форум — Talks

Инновационный интерфейс, новая корневая идея, всплывающие окна, тонущие двери, убегающие стенки, конкурирующие звёзды, толкающие шары

Приглашаю в творческю мастерскую идей интерфейса

Есть обширное рабочее пространство. Одни окна лежат поверх других. Есть обычные координаты xгоризонталь и yвертикаль. Также есть zглубина. Слишком глубокие окна тонут и сворачиваются в иконку нижнего моря панели. Слишком близкие окна конкурируют с другими близкими окнами, конкуренты представляются как звёзды в верхней панели небе.

Например я пишу в чате, рисую картину, и играю в сапёра. Все эти окна топовые, они в самом вершу, поэтому это звёзды, звёзды конкурируют, это разные задачи как разные рабочие столы.

Передо мной круглая дверь около изображения, на ней надпись размытие. Я постучал в дверь. Из неё вышли две двери, размыть гаусово, размыть пиксельно, дверь из которой они вышли вывернулась на изнанку и утонула.

Я стучу в дверь размыть гаусово и за ней начинает размываться картинка. Я достаю картинку из за двери, но не даю утонуть этой двери, поэтому изменения оригинальной картинки влияет на размытую версию.

Я листаю каталоги информация загружается и стенки убегают. Ограниченность оперативки не позволяет мне разогнать все стенки, я какбы в пузыре стенок.

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

Я трогаю шар под определённым вектором и вызываю причину его качения, ура я сделал необративное действие, это шаротрон.

Но я до этого ясно видел последствия трогания шара в этом векторе, потому что я представлял дальнейшие касания. Это как всё равно как нажать на кнопку.

Прошу не придираться к фантастичности и другому. А приглашаю в мастерскую перлов во имя новых идей !!

Перемещено tazhate из development

 ,

masloed ()

Динамическая кодогенерация на Си

Форум — Development

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

#include <stdio.h>

#define MAX_CODE_SIZE 65536

typedef int (*FN_CALLBACK)();

int invoke(int size, unsigned char *source)
{
	unsigned char buffer[MAX_CODE_SIZE];
	register unsigned char *src;
	register unsigned char *dest;
	unsigned char *limit;
	if (size <= 0 || size >= MAX_CODE_SIZE)
		return 0;
	src = source;
	dest = buffer;
	limit = buffer + size;
	while (dest < limit)
		*dest++ = *src++;
	return ((FN_CALLBACK)((void*)buffer))();
}

unsigned char prog[] = {
	0x31, 0xC0, // xor eax, eax
	0x40,       // inc eax
	0x40,       // inc eax
	0xC3        // ret
};

int main(int argc, char *argv[])
{
	int r;
	r = invoke(5, prog);
	printf("Result: %d\n", r);
	return 0;
}
Он успешно компилируется GCC, при запуске выводит 2. Вопрос в том, будет ли такой код кроссплатформенным (на x86)? У меня в Ubuntu и Windows 7 он работает, но как будет на других ОС? Везде ли можно выполнять команды из стека?

 , ,

Den_Zurin ()