LINUX.ORG.RU

Сообщения metaprog

 

X Error при попытке запуска Surviving Mars

Есть нативная (под линукс) версия игры Surviving Mars от GOG. Раньше (несколько месяцев назад) работало. Теперь при попытке запуска получается такая вот история:

user@pc:~$ "/home/user/GOG Games/Surviving Mars/start.sh" ""
Running Surviving Mars
X Error of failed request:  BadRRCrtc (invalid Crtc parameter)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  20 (RRGetCrtcInfo)
  Crtc id in failed request: 0x0
  Serial number of failed request:  67
  Current serial number in output stream:  67

Debian 11, XFCE.

 , ,

metaprog
()

Система тормозит при копировании с nvme ssd на hdd

При копировании больших файлов (десятки гб) с nvme ssd на hdd буквально все начинает лагать и тормозить.

С тех пор как у меня были проблемы с ssd от ADATA, я поменял его на Kingston KC2500. Но окончательно проблемы с производительностью не устранились.

Debian 11.

Обновление

Пока что помогло (сразу сняло проблему)

echo 64000000 > /proc/sys/vm/dirty_bytes

и добавление (для следующих загрузок)

vm.dirty_bytes=64000000

в /etc/sysctl.conf по совету Анонимуса. Спасибо!

 , , , ,

metaprog
()

Вылетает nvme ssd

Предистория: Неадекватная работа NVME SSD в mdadm RAID 1 + cryptsetup, Debian 11

С нестабильной работой NVME SSD (в случае если оно продолжает работать) вроде удалось справиться, но другая проблема еще пока не исчезла. А именно - внезапное выпадание SSD из системы. SSD внезапно вылетает и исчезает как диск. Вот как выглядит dmesg:

[710667.260705] nvme nvme0: controller is down; will reset: CSTS=0xffffffff, PCI_STATUS=0x10
[710667.336682] nvme 0000:05:00.0: enabling device (0000 -> 0002)
[710667.336854] nvme nvme0: Removing after probe failure status: -19
[710667.364752] print_req_error: 11 callbacks suppressed
[710667.364754] md/raid1:md128: nvme0n1p2: rescheduling sector 1281554816
[710667.364757] blk_update_request: I/O error, dev nvme0n1, sector 1150584136 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[710667.364758] md/raid1:md128: nvme0n1p2: rescheduling sector 1250693120
[710667.364762] md/raid1:md128: nvme0n1p2: rescheduling sector 723332600
[710667.364764] md/raid1:md128: nvme0n1p2: rescheduling sector 1149533512
[710667.364768] blk_update_request: I/O error, dev nvme0n1, sector 1704508672 op 0x0:(READ) flags 0x0 phys_seg 16 prio class 0
[710667.364771] md/raid1:md128: nvme0n1p2: rescheduling sector 1703458048
[710667.364775] blk_update_request: I/O error, dev nvme0n1, sector 7814035424 op 0x1:(WRITE) flags 0x20800 phys_seg 1 prio class 0
[710667.364778] md: super_written gets error=-5
[710667.364781] md/raid1:md128: Disk failure on nvme0n1p2, disabling device.
                md/raid1:md128: Operation continuing on 1 devices.
[710667.364795] blk_update_request: I/O error, dev nvme0n1, sector 7814035424 op 0x1:(WRITE) flags 0x20800 phys_seg 1 prio class 0
[710667.364796] md: super_written gets error=-5
[710667.426858] FAT-fs (nvme0n1p3): unable to read boot sector to mark fs as dirty
[710667.901536] md/raid1:md128: redirecting sector 1250693120 to other mirror: sda2
[710667.920542] md/raid1:md128: redirecting sector 723332600 to other mirror: sda2
[710667.934194] md/raid1:md128: redirecting sector 1149533512 to other mirror: sda2
[710667.969598] md/raid1:md128: redirecting sector 1703458048 to other mirror: sda2
[710668.009764] md/raid1:md128: redirecting sector 1281554816 to other mirror: sda2
[710672.584743] md/raid1:md127: Disk failure on nvme0n1p1, disabling device.
                md/raid1:md127: Operation continuing on 1 devices.

Как видите, RAID1 (mdadm) не дает системе полностью сломаться и она продолжает работу на одном HDD-зеркале. В lspci SSD не пропадает, но как диск система его видит только после перезагрузки. Вылет NVME SSD возможен как вскоре после загрузки, так и через неделю аптайма. Какими могут быть причины?

Обновление 1

Сделал утилиту проверки температуры нвме. Измеряет каждую секунду. На момент вылета 41 градус и до того тишь и гладь часами напролет. Рост температуры вначале - из-за синхронизации нвме с жестким диском (восстановление RAID1 mdadm после прошлого вылета). Радиатор думаю купить, но вылеты, очевидно, не из-за температуры (температура разве что замедляет работу).

Скрины утилиты (то самое мое любимое визуальное программирование):

https://postimg.cc/mhZj0Db6

https://postimg.cc/jCr0Ny4n

Подфункция, вызывающая smartctl и возвращающая температуру после парсинга:

https://postimg.cc/Rqj3wsbQ

Вот что показывает lspci:

05:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5763DL NVMe SSD Controller (rev 01)

Контроллер ADATA XPG SX8100 4TB, вот такой: https://www.amazon.com/XPG-SX8100-Gen3x4-3000MB-ASX8100NP-4TT-C/dp/B08979DF1S

 

metaprog
()

Неадекватная работа NVME SSD в mdadm RAID 1 + cryptsetup, Debian 11

У меня был вопрос по поводу производительности NVME SSD на Debian 11 (последние обновления установлены).

Производительность NVME SSD на линуксе

Я включил тот самый NVME SSD в mdadm RAID 1 массив с жестким диском (диск в режиме write-mostly), рассчитывая получить скорость NVME SSD на чтение вместе с надежностью RAID-массива. На основном RAID-разделе была смонтирована корневая директория («/»), раздел зашифрован через LUKS cryptsetup. Есть еще незашифрованный /boot, тоже в RAID 1.

И тут начался ад. Система начала произвольно лагать во время работы и отжирать процессор. А самое ужасное, что загрузка системы начала лагать и останавливаться на неопределенное время каждый раз на разных этапах. Решилась проблема только отключением RAID-зеркала раздела «/» на NVME SSD, после чего вернулась стабильность работы (пусть и со скоростью жесткого диска).

Напомнило ситуацию, когда я сидел на старом ПК с Windows XP на аппаратном RAID 0 и система тоже адски лагала с DPC Latency, что было видно на DPC Latency Checker:

https://www.exedb.com/software/DPC Latency Checker

Тогда проблема решилась только отказом от аппаратного RAID 0.

Есть ли способы заставить NVME SSD нормально работать на линуксе? С чего начать диагностику?

Для «особо одаренных», не знающих зачем увязывать ssd и hdd в один raid1:

https://www.tansi.org/hybrid/

https://superuser.com/questions/293144/combining-ssd-and-hard-disk-in-softwar...

Обновление. Проблема пока что частично решилась отключением APST через опцию командной строки ядра

nvme_core.default_ps_max_latency_us=0

Похоже, проблема была в кривой реализации APST то ли ядра, то ли в самом железе.

Теперь система грузится и работает в основном без проблем. Но иногда бывает (уже 2 раза за 2 недели случалось), что NVME SSD «отваливается» во время работы и система не видит его как диск аж до перезагрузки. Хотя в lspci NVME SSD по-прежнему видно. Что это может быть?

 , , , ,

metaprog
()

Метапрог-прототип 43: начало переделки «на самом себе»

Скачать:

https://mega.nz/file/fUhEjbCI#1LbpnccSm_SkwJi5Bugwc679tFxj7YJzCTOQxmxHvq0

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

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

У Метапрога появилась часть, полностью собранная уже на самом Метапроге. Тот самый Метапрог «сам на себе», пусть даже пока что в небольшой бекенд-части. Бекенд находится в папке «бекенд», есть линуксовый бинарник и сишный исходник (для компиляции бекенда на Windows и других платформах). С LabVIEW-частью Метапрога работает по сети, используя бинарную (де)сериализацию. Транслятор может работать и без него (если не может соединиться с ним по сети), но его наличие упрощает компиляцию (не надо вручную вызывать компилятор) и способствует некоторой оптимизации трансляции.

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

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

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

Предыдущая тема:

Метапрог-прототип 42

 , , , ,

metaprog
()

Производительность NVME SSD на линуксе

Купил на днях NVME SSD. Паспортная скорость 3500 мб/с запись 3000 мб/с чтение. В реальности даже до 2 гб/с не дотягивает.

# dd if=/dev/nvme0n1 of=/dev/null bs=1M status=progress
скопійовано 43414192128 байтів (43 GB, 40 GiB), 30 s, 1,4 GB/s^C
41904+0 записів прочитано
41903+0 записів записано
скопійовано 43938480128 байтів (44 GB, 41 GiB), 30,3677 s, 1,4 GB/s

В чем может быть подвох?

 

metaprog
()

Работа с буфером обмена на чистом Си в линуксе (баг в SDL2?)

Нужны функции на чистом Си для чтения и записи текста в буфер обмена.

Поиск находит только виндовские функции или не на Си. С линуксовыми сишными функциями - полная беда. Кроссплатформенные (хотя бы линукс/винда) библиотеки для работы с буфером обмена существуют?

П. С.:

SDL_SetClipboardText и SDL_GetClipboardText у меня на линуксе почему-то не работают. Это баг в SDL2?

Debian 10, XFCE.

 , , ,

metaprog
()

Метапрог-прототип 42

Следующая версия:

Метапрог-прототип 43: начало переделки «на самом себе»

Скачать

https://mega.nz/file/SARWFB4D#5xZE8MxcEH1W-JvIcdm83ArSbQRdt_ueh86mohc96lQ

В 42 версии были исправлены еще несколько багов. Но она не была своевременно анонсирована на ЛОРе.

В 41 версии исправлены еще несколько багов транслятора.

В 40 версии исправлена трансляция условий в циклах в некоторых случаях.

В 39 версии исправлен баг упаковки, из-за которого не паковался транслятор.

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

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

В новой 36 версии прототипа Метапрога существенно улучшена скорость работы графического редактора. Те, кто раньше испытывали проблемы с медлительностью редактора (например, mertvoprog), приглашаются попробовать новую версию.

Более того - теперь редактор схем можно смело разворачивать на полный экран, не боясь, что он начнет ужасно лагать или вообще вылетит из-за нехватки памяти. Добиться этого удалось, избавившись от множества 2-мерных массивов размером с область отрисовки.

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

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

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

Первоапрельская шутка:

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

Многие на этом форуме советовали мне бросить LabVIEW и я очень сожалею, что принял это решение только сейчас. Два года потрачены впустую! Особенно был прав liksys, долго пытавшийся меня вразумить: на python чего только не пишут, зачем заморачиваться с визуальным программированием, особенно с опорой на Си?

Что дальше? Скорее всего, буду по-настоящему учить текстовые ЯП. Какие посоветуете и по каким книгам?

С праздником!

Предыдущая тема:

Метапрог-прототип 34 + СУВТ по логическому типу

 , , ,

metaprog
()

Отвалился звук после обновления ядра в Debian 10

В моем ПК есть встроенный динамик, а также подключенный по HDMI телевизор в качестве монитора. HDMI-видео работает исправно, но звук по HDMI с линукса не воспроизводится. С других ПК на винде XP, 7 и 10 звук на том же телевизоре работает сразу после подключения HDMI-кабеля. Под Debian приходилось слушать звук через встроенный динамик ПК.

После очередного обновления ядра пропал звук со встроенного динамика. Pavucontrol перестал давать возможность выбора встроенный динамик/HDMI и работает только через HDMI (который по-прежнему не работает). Первые попытки разобраться дали вот что:

pacmd list-cards
2 card(s) available.
...

pacmd list-sinks
1 sink(s) available.
...

Там где 2 card(s) показан и встроенный динамик, и HDMI, там где 1 sink(s) - только HDMI.

 , , ,

metaprog
()

Открыть много окон SDL2/nuklear в параллельных потоках одного процесса

Использую SDL2 и nuklear+ для графики. При попытке открыть два окна одновременно программа падает. Есть ли способы заставить много SDL-окон работать одновременно в разных потоках одного процесса?

Сначала открывается поток отрисовки виджета, выводящий "...". Через 5 секунд выскакивает второе графическое окошко с диалогом в главном потоке - и все, крышка:

./nuklear_cross/nuklear.h:18531: int nk_begin_titled(struct nk_context *, const char *, const char *, struct nk_rect, nk_flags): Assertion `ctx->style.font && ctx->style.font->width && "if this triggers you forgot to add a font"' failed.

Исходники в Метапрог онлайн: «разработка графического интерфейса на нуклеар+», версия 14, функция «2 параллельных окна».

Выглядит так (красным обведен блок, на котором все валится): https://i.postimg.cc/9fwcDqss/2.png

Сишная трансляция: https://pastebin.com/UybkZj8a

 , , , ,

metaprog
()

С каких это пор нелья критиковать копирастов?

Мое сообщение

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

из темы Гвидо ван Россум вышел на работу в Microsoft было удалено. Разве критика копирайта и копирастов, пусть и жесткая, запрещена правилами форума про линукс? Сколько и кому заплатил майкрософт?

 , ,

metaprog
()

Атомарны ли указатели в Си?

Вот пишут, что

You can also assume that pointer types are atomic

https://www.gnu.org/software/libc/manual/html_node/Atomic-Types.html

То есть указатели всегда атомарные даже без дополнительных инклудов и atomic?

 , ,

metaprog
()

Метапрог-прототип 34 + СУВТ по логическому типу

Следующая тема:

Метапрог-прототип 42

Подпишусь в поддержку Столлмана Bitcoin-кошельком из первой темы про Метапрог:

Metaprog Project supports Richard Matthew Stallman. Shame to SJW, Big Tech and Big Media. We need to get rid of them or Big Money will enslave us. It is do or die! Stay straight, RMS!

Подпись:

H/3cqHl7HGdAQd9K/io474IbLYlIKi/8R6pw1Vbpz0oTN4kihI5YO4dIdZo2VRdJbSp8kWmtWgC5TRTs0MkBIAo=

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

Движение отмены Столлмана (комментарий)

Следующая версия:

www.linux.org.ru/forum/development/16219448

Скачать:

https://mega.nz/file/6VJCEboQ#N3pu86bqI31Jp15aHWt6l-FIkY_RUws0CZK9aMcvxZo

В версии 34 исправлен тот же баг что и в 33, но другим способом, так как багфикс из версии 33 вызывал другие баги.

В версии 33 исправлен баг трансляции операций над СУВТ, содержащих структуры. До исправления вместо самих структур производились ошибочные операции с членами структур. К счастью, это было заметно на этапе компиляции сишного кода благодаря сишной типизации.

К выпуску версии 32 неожиданно обнаружилось, что СУВТ может иметь переключатель логического типа. То есть, можно задавать типы на значения «да» и «нет». Никаких изменений для этого вносить с 31 версии не пришлось, надо лишь задавать в определении СУВТ типы по значению СУВТ 0 на «нет» и 1 на «да». Из изменений - некоторые исправления багов (например, с кодогенерацией структур и операций над структурами под указателями), а также экспериментальная фича отрисовки канваса через dll-вызов окошка на SDL, за подробностями обращаться к MOPKOBKA или kote4ka в Метапрог онлайн.

В версии 31 - доработка транслятора для трансляции циклов, включающих в себя жесткие последовательности (были баги с повторной кодогенерацией тех же участков на подфункциях и операциях над структурами).

В версии 30 - исправление бага с сишной трансляцией циклов с регистрами. Теперь их значение берется на сишном уровне не напрямую, а через промежуточную переменную. Это позволило реализовать алгоритм вычисления чисел Фибоначчи, где есть непосредственная передача данных между разными регистрами. Метапрог-схема находится в меню обучение - примеры - Фибоначчи, выглядит она так:

https://i.postimg.cc/D0W8v7XZ/image.png

Для сравнения - тот же алгоритм на LabVIEW:

https://i.postimg.cc/CLqz9L0r/image.png

Сишная трансляция:

https://pastebin.com/Z8rzvZpQ

Сравнение с тем же алгоритмом на «аналоге» Метапрога с бекендом на python говорит само за себя:

Metaprog здорового человека (комментарий)

В версии 29 - крупные изменения системы типов. «Встроенных» типов, вытягиваемых через меню «структуры», больше нет, все они теперь представлены в стандартной библиотеке. В особенности изменения коснулись числовых типов: теперь такие типы как число, дробь, целое, знаковое и беззнаковое представлены как многотиповые из соответствующих типов. Например, беззнаковое - многотиповой из 8, 16, 32, 64 и 128-разрядных беззнаковых, целое - многотиповой из знакового и беззнакового, число - многотиповой из целого и дробного. Теперь такие типы можно обрабатывать как многотиповые, поступая с числами разных типов по-разному.

В версии 28 переключатель (аналог сишного switch) работает с многотиповым типом. Выполнение схемы происходит только на ветке, соответствующей поданному на переключатель типу. Ветвление происходит не в рантайме (как в случае СУВТ), а при кодогенерации - не соответствующие поданному типу ветки не генерируются. Теперь осталось сделать цикл по структуре.

В версии 27 добавлена удобная возможность создать новую подфункцию, не останавливая весь прототип. Кнопка блоки - новая подфункция.

Также обнаружилась (но пока не исправлена) проблема с терминалом счетчика повторений цикла в цикле по условию - пока что не используйте его!

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

В версии 26 исправлена трансляция циклов при определенных условиях (не всегда корректно транслировались циклы с жесткими последовательностями, идущими к входному блоку).

В версии 25 исправлена трансляция сложных рекурсивных структур с СУВТ.

В версии 24 был исправлен баг транслятора, проявившийся в версии 23: на некоторых схемах (например, отправки данных по TCP) код, отвечающий за поток данных, «вливающийся» в ветки с условиями, мог сгенерироваться после кода самого условия.

В версии 23 исправлен еще один баг с упаковкой проектов, а также баг трансляции условных схождений.

В версии 22 исправлен баг с упаковкой проектов, из-за которого не паковались зависимости из локальных форков. При этом удалось существенно ускорить упаковку проектов.

В версии 21 наконец-то добавлена корректная трансляция схем, содержащих рекурсии. Как пример можно привести схемы из репозитория «разработка интерфейса на нуклеар+» (можно скачать через Метапрог онлайн). В этой схеме отрисовка элементов интерфейса основана на СУВТ (структура условного выбра типа). В этой СУВТ возможны такие элементы интерфейса, как текстовый лейбл, текстовое поле, кнопка и (самое интересное) - линия из элементов интерфейса. В последнем случае происходит рекурсивный вызов функции, обрабатывающей массив из тех же СУВТ элементов интерфейса.

Предыдущая версия:

Метапрог-прототип 19 + API на СУВТ + ускорение трансляции

 , , ,

metaprog
()

Метапрог-прототип 19 + API на СУВТ + ускорение трансляции

Скачать:

https://mega.nz/file/ONxVwDJb#zFun6oB2BOxRglVeqNGusssQqT4teCdvtt4dEd0kfV0

В 19 версии серьезно переработан транслятор, что ускорило трансляцию схем с множеством ветвлений.

В 18 версии прототипа добавлен вывод значения переключателя из свича по СУВТ. В остальном она не отличается от 17 версии.

Это позволяет реализовывать весьма интересные вещи, например API для работы с чатом Метапрог онлайн на Метапроге:

https://i.postimg.cc/52xTMR4V/image.png

К блоку операции над структурой надо (не считая константы СУВТ) подключить ТОЛЬКО один из входов определенного типа. Это может быть переключатель (перемикач), задающий значение селектора СУВТ или любой из типов СУВТ. При подключении типов соответствующее значение переключателя СУВТ будет задано автоматически.

Кстати, украинский в Метапроге знать не совсем обязательно. Вот совершенно та же схема без изменений, только язык в настройках поменял на русский:

https://i.postimg.cc/MTygw2Qz/image.png

Только кейсы енума, управляющего СУВТ, было лень перевести:)

В версии 17 исправлен серьезный баг с кодогенерацией. В 16 версии при трансляции схем, в которых в ветку с условием «входят» данные извне, код, отвечающий за обработку этих данных (до их входа в условие) мог сгенерироваться после тела условия. Это серьезно тормозило развитие проекта, но теперь в стандартной библиотеке есть демки, успешно соединяющиеся с сервером Метапрог онлайн через Tor (SOCKS5) и работающие с некоторыми методами (проверить версию клиента и логин/регистрация).

Скорее всего, простой чат-клиент Метапрог онлайн с использованием СУВТ можно будет реализовать уже в этой версии прототипа. Если это не удастся - будут багфиксы, но если таки удастся - можно будет приступить к макросам времени компиляции, таким как «многотиповой» тип и цикл по структуре. После чего уже можно будет серьезно переделывать Метапрог «на самом себе».

Предыдущая версия:

Метапрог-прототип 16 + СУВТ по енумам

 , , ,

metaprog
()

RAID 1 mdadm на дисках разного размера?

Есть один диск на 1 ТБ. Есть идея добавить диск на 2 ТБ и создать 1 ТБ mdadm RAID 1 (зеркало) на 1 ТБ диске и половине 2 ТБ диска. А оставшуюся половину 2 ТБ диска выделить под обычный незеркалируемый раздел.

Насколько это будет эффективно? Во что будет упираться производительность (чтение/запись) RAID 1? В какой половине 2 ТБ диска оптимальнее размещать зеркалируемый RAID-раздел - первой или второй?

 , ,

metaprog
()

Метапрог-прототип 16 + СУВТ по енумам

Следующая версия:

Метапрог-прототип 19 + API на СУВТ + ускорение трансляции

Скачать:

https://mega.nz/file/nFBCGKDL#93jJc0bxyq6fc0bKpfPV3sv753dbyP9qfkvbvfK_uBE

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

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

Предыдущая версия:

Метапрог-прототип 15 + модернизация СУВТ

 , , ,

metaprog
()

Стоит ли наказывать за ложные доносы?

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

К счастью, у модераторов (особая благодарность Pinkbyte) хватает адекватности не прислушиваться к подобным истерикам:

Не хватает (комментарий)

В Интернете ВСЕГДА кто-то будет неправ, это не повод забрасывать раздел L-o-R однотипными темами.

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

И наконец хочу напомнить: если что-то нарушает правила - есть тема с некорректными сообщениями

Также есть адекватный комментарий от micronekodesu:

Какое будущее может ожидать Metaprog на ЛОРе? (комментарий)

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

Так вот, стоит ли наказывать за ложные доносы в спецтопик и не обоснованные правилами форума призывы к дискриминации?

 , ,

metaprog
()

Метапрог-прототип 15 + модернизация СУВТ

Скачать:

https://mega.nz/file/6RBkhIiQ#PCydINDpFpqznLfOyYDeA1u0hlYg11OP7xhRXezcZAI

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

В новой версии тип СУВТ можно редактировать: назначать типам значения а также удалять типы из СУВТ (раньше можно было только добавлять). Также модернизированы блоки операции над структурой и переключателя: теперь в переключатель СУВТ можно записывать значения, не имеющие назначенного в СУВТ типа, а в блоке-переключателе можно выставлять нестандартные значения, от которого вести жесткую последовательность на его обработку. Подробности в примере (меню обучение - меню примеры - функция СУВТ+схождения).

На днях постараюсь выпустить патч, позволяющий ставить в качестве переключателя СУВТ разные числовые типы и даже енумы. Это серьезно упростит реализацию протоколов связи, построение графических интерфейсов и многие другие применения, требующие выбора данных разных типов. Заодно будут учтены баги, если они всплывут за это время.

Предыдущая версия:

Метапрог-прототип 14 + условные схождения

 , ,

metaprog
()

Метапрог-прототип 14 + условные схождения

Следующая версия:

Метапрог-прототип 15 + модернизация СУВТ

Скачать:

https://www66.zippyshare.com/v/xI27OTji/file.html

Доработаны условные схождения. Теперь можно собирать сложную логику с условным возвратом значений на переключателях (switch) по цифровым переменным, пронумерованным спискам (енум) и СУВТ.

Предыдущая версия:

Метапрог-прототип 13 + LOR Browser

 , ,

metaprog
()

USB HDD 4 терабайта не всегда работает под линуксом.

USB HDD Maxtor, 4 терабайта. На Debian 10 иногда работает иногда нет. Если не работает - помогает перезагрузка ПК, после которой работает.

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

С Windows 7 дружит исправно.

С чего начать поиски пути решения проблемы?

 

metaprog
()

RSS подписка на новые темы