Традиция перегирывать в старые игры
У вас такая есть?
Кто то Фолл 1-2 перепроходит раз в год.
Я играю в Quake 1 сингл тоже примерно в раз в год. Еще играю ака проверяю им ноутбуки. Естественно в darkplaces чтобы полностью сделать стресс тест железу.
У вас такая есть?
Кто то Фолл 1-2 перепроходит раз в год.
Я играю в Quake 1 сингл тоже примерно в раз в год. Еще играю ака проверяю им ноутбуки. Естественно в darkplaces чтобы полностью сделать стресс тест железу.
1. Герои Меча и Магии 3 - Возрождение Эрафии
Стратегия, думаю нет смысла о ней рассказывать
Порт выполнен в 1999 году компанией Loki Games. Работает даже сейчас. Бинарник слинкован статично, поэтому у меня он работал даже в системе, не имеющей 32-битных либ. Недостатки: вывод звука через OSS, поэтому готовьте aoss/padsp, или подгружайте модуль ядра snd-pcm-oss. А также не работает сетевая игра (там надо вставить костыль, чтобы работала). А также, что Linux-версии официальных дополнений нет
2. Neverwinter Nights 1 и 2
Замечательная RPG, думаю тоже не нуждается в представлении. Порт 2003 работает и сейчас. Скачиваете с сайта icculus.org архив с линуксовыми бинарниками, и распаковываете в Windows-версию игры
3. Unreal Tournament 99, 2004 и 4
Году эдак в 2008 я обнаружил на торрентах в городской локалке Linux-версию UT2004. Прошёл с огромным удовольствием! После чего выяснил, что уровень сложности-то можно и поднять! Оказалось что боты не просто начинают точнее стрелять, но и меняют модель поведения, играя слаженнее и профессиональнее. В режиме прохождения на это влиет скилл команды противника, таким образом были более профессиональные команды и менее, можно было сражаться за самых крутых вояк другой команды и собрать убер-отряд
Мультиплеер отличный, кстати. «Цепляет» не хуже MMORPG, Доты и «танков». В 2018 году онлайн всё ещё есть
Для создания Linux-версии недостаточно только распаковать бинари с icculus.org, надо ещё создать текстовый файл с серийным номером, а также скопировать два файла библиотек. Файл с серийником - System/serial без расширения. Библиотеки - libSDL-1.2.so.0 и openal.so, тоже в директорию System
P.S. Linux-версия UT99 работает ускоренно, если выключен VSync. Включайте VSync, либо скачивайте с сайта Иккулуса другой файл игры - он ест 100% одного ядра CPU, но не ускорен
4. Left 4 Dead 2
Это шутер. Командный шутер, с возможностью сетевой игры. Тут надо «выносить» орды монстров (а именно зомби), но это не Serious Sam какой-нибудь - тут не поле и не коридоры, и не безлимитное оружие. А город, захваченный монстрами, и вы с друзьями удираете. Оружия мало, получать ранение нежелательно. Игра стала очень популярной, я считаю что именно Гейб зародил в мире моду на зомби-апокалипсис, но я могу ошибаться
Игра скачивается в Стиме
5. War Thunder
Самолётная леталка и танковый симулятор в годы 2 Мировой войны.
Самолётная часть очень сильно напоминает Ил-2 Штурмовик 2001 года (Википедия утверждает, что последнюю часть игры Ил-2 Штурмовик делала как раз Gaijin Entertaiment). Управление очень упрощено относительно Ил-2 Штурмовик, играть можно вообще без подготовки, и побеждать. При первом запуске спрашивают, какое управление вы хотите: мышь-клава или джойстик. Ещё там замечательный вид из кабины, очень проработанный. А самолётов много!
Танковая часть очень сильно напоминает World of Tanks, но имеет ряд отличий
Есть два режима игры: аркадный и реалистичный. В аркадных боях команда представляет сборную «солянку» игроков: тут вам и советские самолёты, и немецкие. Реалистичный приближен к реальности, и лично для меня он очень сложен. Также есть режим симуляторных боёв, когда воссоздаются исторические бои. В советах, показываемых при загрузке уровня, вам шутливо предлагают «переписать историю, сыграв в симуляторный бой». Но так-то вообще здорово
Отдельно можно сказать про систему донатов. Соблюдён сложный баланс между играми, в которых можно «нагибать» за донат, и играми, в которых донат не даёт ничего, только «шапочки». Донаты тут действительно что-то дают, но не такое, что позволит плохо играющему игроку побеждать
Под Linux можно скачать с официального сайта, либо из Стима
6. ARMA III
Это не совсем игра - это симулятор войны. Очень качественный симулятор. Его изначально делали для подготовки военных, и только потом позволили поиграть всем желающим
В ARMA III можно идти по дороге до линии фронта, причём долго идти, прям как в реальной жизни. А потом «словить» пулю, даже не поняв, откуда она «прилетела»
Игра доступна на официальном сайте, а также в стиме. Стоит 1500 рублей
7. Papers, please
Вы играете за таможенника в тоталитарной стране. Вы можете выбрать путь честного работника, а можете принимать взятки и «закрывать глаза» на нарушения. При перегибе в любую из сторон, вы проиграете: при честной игре, вы не сможете платить за жильё, за еду, за лекарства, а при нечестной вас арестуют. Нужно включать мозг и чутьё. Также чуть ли не каждый день обновляются правила, и изучать их приходится по ходу дела - игра не встаёт на паузу, когда вы открываете инвентарь!
У игры замечательная стилистика рисовки
Для Linux брать в Steam, GOG или Humble Store
8. Euro Truck Simulator 2
Симулятор дальнобойщика. Что может быть весёлого в развозе грузов туда-сюда? Но оказалось, что водить грузовик очень даже весело. Когда я еду по однополосной дороге на скорости 80 км/ч, и дорога идёт влево, а по противоположной стороне едет другой грузовик, то я готов кричать ААААА! Страшно! Хотя это даже не реальная жизнь, а всего лишь игра. Отдельный челленж - парковка задом. Я даже говорить не буду, как это сложно, и как легко потерять сцепку при этом
Под Linux брать в Steam
9. Minecraft
Игра с разрушаемым окружением. Есть два режима: творчество (идеально для пиксель-арта, а также для моделирования сложных скульптур в 3D-пространстве - это скорее лего, чем 3D-редактор) и выживание (где прежде, чем что-то построить, надо добыть ресурсы, а ещё ночью вас пытаются убить, а днём всё нормально). Есть мультиплеер, здесь как раз интересно играть в режиме «выживание». Советую два хороших сервера - это Ttyh.ru и Minecrafting.ru. На остальных - лишь дети
Под Linux брать на официальном сайте minecraft.net, либо на Ттюхе
10. Metro 2033 и Metro: Last Light
Хорошие линейные шутеры от первого лица по вселенной книг «Метро» Дмитрия Глуховского
11. Dwarf Fortress
Одна из лучших игр в жанре Roguelike. Игра в ASCII-графике, очень специфичная, многих «затягивает»
Для Linux брать на официальном сайте
Привет
Предлагаю собирать инфу о Meltdown и Spectre.
Пока у меня получилось найти пару тестов своей системы, но мало информации о том, как защититься. И никакой конкретной информации о том как увидеть влияние на performance - все ограничиваются цифрами, но не тем как провести реальные тесты.
О чем говорим:
Spectre - Variant 1 - 2017-5753 - Bounds Check Bypass
Spectre - Variant 2 - 2017-5715 - Branch Target Injection
Meltdown - Variant 3 - 2017-5754 - Rogue Data Cache Load
BranchScope - - - Attack on Directional Branch Predictor
(еще восемь - см. ниже)
LazyFP - 2018-3665 - Exploiting lazy FPU state switching
echo 0 > /sys/kernel/debug/x86/pti_enabled (источник - Redhat). Нужно владельцам процессоров не-Intel (например, AMD), так как KPTI дает проседание по performance'у, а для AMD это не актуально, так как уязвимость затрагивает только Intel.grep -q "cpu_insecure\|cpu_meltdown\|kaiser" /proc/cpuinfo (askubuntu.com)-mindirect-branch, -mindirect-branch-loop, -mfunction-return, -mindirect-branch-register с которыми нужно перекомпилить... всё? Где скачать - непонятно. Насколько полно решают проблему - непонятно.-mindirect-branch=thunk-extern. С ней нужно перекомпилить ядро с наложенным патчем (где скачать?). Пока есть для gcc 8 (mailing list) и gcc 7.3 (OpenNet, Phoronix); в планах портировать фикс gcc 6/5/4. Похоже, что для процессоров архитектуры Skylake и более поздних проблему решает не полностью (источник).Открытые вопросы:
1. Ваш набор тестов на наличие уязвимостей Meltdown и Spectre
2. Ваш рецепт по фиксу
3. Как включать/выключать IBPB и STIBP?
4. Ссылки на патчи для компиляторов
5. Приведите тест (не результаты, а методику), который бы показал влияние на performance
6. Если покупать железо, как знать что оно не подвержено Meltdown и Spectre?
Пожалуйста, дополняйте информацию, особенно там, где написано TBD, где видите неточности или пробелы. Давайте вместе расставим точки над i и победим этот недуг.
#!/bin/bash
echo "0000:01:00.0" > /sys/bus/pci/devices/0000\:01\:00.0/driver/unbind
echo "0000:01:00.1" > /sys/bus/pci/devices/0000\:01\:00.1/driver/unbind
echo "10de 1401" > /sys/bus/pci/drivers/vfio-pci/new_id
echo "10de 0fba" > /sys/bus/pci/drivers/vfio-pci/new_id
qemu-system-x86_64 \
-boot d \
-drive file=/media/windows/win10.img,if=virtio \
-enable-kvm \
-machine q35,accel=kvm \
-m 9G \
-cpu host,kvm=off \
-smp 4,sockets=1,cores=4,threads=1 \
-drive if=pflash,format=raw,readonly,file=/usr/share/edk2-ovmf/OVMF.fd \
-drive if=pflash,format=raw,file=/var/lib/libvirt/qemu/nvram/win10_VARS.fd \
-vga none \
-soundhw hda \
-device vfio-pci,host=01:00.1 \
-device vfio-pci,host=01:00.0,multifunction=on \
-usb \
-drive file=/media/media/games0.img,if=virtio,cache=none,aio=native \
-device usb-host,hostbus=1,hostaddr=2 \
-device usb-host,hostbus=1,hostaddr=3 \
-nic user,model=virtio-net-pci \
помогите пожалуйста! В первый раз пробросил визеокарту, игры тормозят. Может я что-то не так делаю? На первый взглятд нагрузка на процессор высокая в госте. Пробовал отключать retpoline и запускал с nopti разницы никакой.
qemu используется всего 50% cpu, получается 2 из 4 потока хотя в госте 4 ядра
Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
NVIDIA Corporation GM206 [GeForce GTX 960]
4.14.78-gentoo
QEMU emulator version 2.12.1
[I] app-emulation/qemu
Установленные версии: 2.12.1(21:07:51 28.10.2018)(accessibility aio alsa bluetooth bzip2 caps curl fdt filecaps gtk jpeg ncurses nls opengl pin-upstream-blobs png pulseaudio sdl sdl2 seccomp spice usb vhost-net virgl virtfs vnc xattr -capstone -debug -glusterfs -gnutls -gtk2 -infiniband -iscsi -lzo -nfs -numa -python -rbd -sasl -selinux -smartcard -snappy -ssh -static -static-user -systemtap -tci -test -usbredir -vde -vte -xen -xfs KERNEL="linux -FreeBSD" PYTHON_TARGETS="python2_7 python3_6 -python3_4 -python3_5" QEMU_SOFTMMU_TARGETS="x86_64 -aarch64 -alpha -arm -cris -hppa -i386 -lm32 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -moxie -nios2 -or1k -ppc -ppc64 -ppcemb -riscv32 -riscv64 -s390x -sh4 -sh4eb -sparc -sparc64 -tricore -unicore32 -xtensa -xtensaeb" QEMU_USER_TARGETS="x86_64 -aarch64 -aarch64_be -alpha -arm -armeb -cris -hppa -i386 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -mipsn32 -mipsn32el -nios2 -or1k -ppc -ppc64 -ppc64abi32 -ppc64le -riscv32 -riscv64 -s390x -sh4 -sh4eb -sparc -sparc32plus -sparc64 -tilegx -xtensa -xtensaeb")
Какие есть IDE с автодополнением для Vala? Была попытка использовать Gnome Builder, но там никак не автодоплняет, хоть и поддержка автодополнения валы заявлена
Неким felixdoerre был разработан primus-vk — прослойки для запуска Vulkan-приложений при использовании Bumblebee для работы с дискретной видеокартой NVidia на ноутбуках.
Что это и зачем?
Если в вашем ноутбуке две видеокарты, одна из которых nVidia с проприетарным драйвером — для запуска приложений на дискретной видеокарте используется Bumblebee. К сожалению, Vulkan-приложения (в т.ч. DXVK) не работают с Bumblebee, а его разработка прекращена, поэтому единственным вариантом запустить Vulkan-приложение на дискретной видеокарте был запуск отдельного X-сервера на nVidia, что было не совсем удобно (необходимость переключения в другой VT и запуска отдельной графической сессии). С помощью primus-vk можно запустить Vulkan-приложения, используя optirun, без необходимости запуска отдельного X-сервера.
Производительность
В последнем релизе производительность приблизилась к той, что можно получить запуская отдельный X-сервер на дискретной видеокарте.
Установка и запуск
Инструкция по сборке и установке доступна хдесь. Для запуска Vulkan-приложения необходимо установить переменную окружения ENABLE_PRIMUS_LAYER=1 и PRIMUS_VK_MULTITHREADING=1. К примеру, для запуска игры в Wine (используя DXVK):
ENABLE_PRIMUS_LAYER=1 PRIMUS_VK_MULTITHREADING=1 optirun wine Game.exeЧто такое «Privacy Guard» в LineageOS? Чем оно отличается от стандартного (AOSP) механизма полномочий?
Допустим, есть какое-то приложение, которое отказывается работать до тех пор, пока не выдать ему разрешение для доступа у контактам. Нет ли способа выдать ему песочницу с контактами, а не реальные контакты?
Сабж. Я попробовал gperftools, но выхлоп меня несколько смущает: я получаю смесь информации о самопальных и библиотечных функциях. В целом это лучше, чем ничего, но не помогает выяснить, откуда хвосты растут.
Пример: gsl_histogram_pdf_free по статистике жрёт 10% ресурсов. Проблема в том, что я вообще не использую эту функцию, никак, она даже подключаться не должна. Я нашёл тот участок кода, который так себя странно ведёт, но больше информации выжать не удалось.
После открытия файла и его сохранения, все дробные значения сбрасываются до целого. Т.е. проблема в десятичном разделителе. Если запускать так $ LC_NUMERIC=en_US.utf-8 flatpak run org.gnome.Glade то работает нормально. Это баг или проблема на моей стороне?
Посоветуйте в какую сторону копать новичку.
Есть идея написать GUI к набору консольных команд. Общий смысл: читать stdout команд и отобразить результат в GUI(treeview, gridview). Есть небольшой опыт в языке Си. Думаю использовать библиотеку GTK+.
Оптимален ли выбор инструментов? Возможно, есть более простые пути?
Как я понимаю, есть три способа работать с русской раскладкой.
Первый способ: использовать langmap. Этот способ, вроде бы, устарел, никаких профитов не приносит.
Там 100500 реализаций, у каждого пользователя своя, но вот официальная:
set langmap=ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ;ABCDEFGHIJKLMNOPQRSTUVWXYZ,фисвуапршолдьтщзйкыегмцчня;abcdefghijklmnopqrstuvwxyz
Второй способ: использовать keymap. Вроде самый нормальный на сегодня (переключается через Ctrl-^).
set keymap=russian-jcukenwin
set iminsert=0 " Чтобы при старте ввод был на английском, а не русском (start > i)
set imsearch=0 " Чтобы при старте поиск был на английском, а не русском (start > /)
" Дополнительно можно добавить:
inoremap <C-l> <C-^> " Чтобы вместо Ctrl-^ нажимать Ctrl-L
highlight lCursor guifg=NONE guibg=Cyan " Смена цвета курсора
Третий способ: использовать плагин https://github.com/lyokha/vim-xkbswitch. Есть ли там профиты? Не знаю. Про него было несколько тредов, вот один из: Vim. Назначение горячих клавиш кириллицей.
Вопросы:
[*] Правильно я понял, что первый способ использовать вообще смысла нет?
[*] Есть ли смысл использовать плагин вместо второго варианта?
[*] Есть ли недостатки у второго варианта?
Привет. Так вышло, что пришлось основательно разобраться в теме и пока память свежа изложил всё в виде небольшой памятки. Удобно по прошествии некоторого времени освежить память прочитав небольшой конспект. Вообще, по-хорошему, блог что ли какой завести )). Просьба - не флудить, ссылки/комментарии/дополнения по теме приветствуются. ЗЫ: подразумевается, что либы -fpic
1. Утилиты readelf, objdump. Читать man elf, man ld.so. N в именах структор
подразумевает 32 или 64.
2. Структура ELF файла:
1. заголовок (смещение 0, struct ElfN_Ehdr). Readelf::ELF Header
2. program header table (массив struct ElfN_Phdr). Содержит информацию о том
как отображать секции в память процесса. Readelf::Program Headers
3. section header table (массив struct ElfN_Shdr). Readelf::Section Headers
3. link_map
3.1. Загруженные в память модули попадают в список (массив) из struct link_map.
Списков может быть много, каждый список - "пространство имён". Для
загрузки модулей в неглобальный список (создание нового) используется
dlmopen().
3.1. Получать link_map модуля через dlinfo() или dladdr1():
[--code--]
#define _GNU_SOURCE
#include <link.h>
#include <dlfcn.h>
#include <stdio.h>
int main()
{
static char addr_in_mod;
Dl_info __info;
struct link_map *lm;
if(dladdr1(&addr_in_mod, &__info, (void*)&lm, RTLD_DL_LINKMAP) != 0) {
printf("link_map:\n");
struct link_map *i = lm;
for(; i->l_prev != NULL; i = i->l_prev);
for (; i != NULL; i = i->l_next)
printf("addr diff=%p name=%s%s",(void*)i->l_addr, i->l_name, i==lm?" <--cur\n":"\n");
}
}
//output:
//link_map:
//addr diff=0x41f000 name= <--current module
//addr diff=0xb7fc4000 name=linux-gate.so.1
//addr diff=0xb7fa3000 name=/lib/libdl.so.2
//addr diff=0xb7dc5000 name=/lib/libc.so.6
//addr diff=0xb7fc6000 name=/lib/ld-linux.so.2
[/--code--]
3.2. Во время переразмещений символ ищется в модулях указанных в link_map
списке начиная от начала списка т.е. порядок важен, "gcc -ls1 -ls2"
libs1.so находится в списке раньше, чем libs2.so.
3.3. При добавлении библиотеки через LD_PRELOAD, она попадает перед остальными
разделяемыми библиотеками в глобальном link_map списке.
3.4. Опция RTLD_DEEPBIND для dlopen - собственные символы модуля приоритетнее
символов из вышестоящих в link_map списке модулей.
Собственные символы загружаемой библиотеки содержат:
1. символы из самой загружаемой библиотеке
2. символы из библиотек, которые были слинкованы с загружаемой из
командной строки (у первых приоритет выше).
3.5. При загрузки через dlopen, библиотеки добавленные с флагом RTLD_GLOBAL
имеют приоритет над RTLD_LOCAL, не смотря на то, что находятся в link_map
списке позже (не относится к получению void f() через dlsym()). Например:
[--code--]
// предоставляет void f(), ссылается на void f().
dlopen("lib1.so", RTLD_LOCAL);
// предоставляет void f().
dlopen("lib2.so", RTLD_GLOBAL);
// при ленивом переразмещении, lib1.so будет ссылаться на lib2.so::f().
[/--code--]
4. RTLD_GLOBAL - символы из загруженного модуля будут участвовать в
переразмещениях для заргуженных в дальнейшем библиотек. RTLD_LOCAL - не будут.
Если lib2.so линкуется с lib1.so через командную строку
"gcc -fpic -shared -l2 s.c -o lib1.so", то видимость символов из lib2.so
наследуется от видимости символов из lib1.so:
[--code--]
dlopen("./lib1.so", RTLD_LAZY|RTLD_GLOBAL); // символы из lib2.so глобальные
dlopen("./lib1.so", RTLD_LAZY|RTLD_LOCAL); // символы из lib2.so локальные
[/--code--]
Если lib2.so подгружается из lib1.so через dlopen(), то видимость символов
из lib2.so контролируется флагом dlopen() при загрузке lib2.so. Способ
загрузки (через командную строку или dlopen) и флаг для dlopen при
загрузки lib1.so значения не имеет.
5. Переразмещение (relocation).
5.1. Переразмещение - процесс соединения символьной ссылки с символьным
определением.
Переразмещение: ленивое - загрузчик вызывается при ссылке на символ, и
ненеленивое - переразмещение при загрузке. Переразмещение переменных всегда
неленивое.
5.2. Символы, требующие переразмещения, содержатся в .rel... секциях. В них
находятся ElfN_Rel структуры.
[--code--]
typedef struct {
Elf32_Addr r_offset; \\ адрес внесения правки (адрес в GOT, например. readelf::Offset).
uint32_t r_info; \\ содержит тип переразмещения и индекс в таблице символов (массив Elf32_Sym[]).
} Elf32_Rel;
typedef struct {
uint32_t st_name; \\ индекс в таблице строк. Т.е. сопостовляет символ с Си строкой.
Elf32_Addr st_value; \\ адрес символа в текущем модуле (readelf::Sym.Value).
uint32_t st_size;
unsigned char st_info;
unsigned char st_other;
uint16_t st_shndx;
} Elf32_Sym;
[/--code--]
5.3. Механизм обращения к переменным (требующим переразмещений):
1. линкер на старте правит .got секцию, она начинает указывать на нужные
данные.
2. ссылка на переменную в коде (в .text секции):
[--code--]
call 44c <__x86.get_pc_thunk.ax> # получаем в eax адрес следующей инструкции
add $0x1bcb,%eax # в eax адрес .got секции
mov 0x14(%eax),%edx # отступ от края .got на адрес переменной,
# разыменовываем в edx
[/--code--]
5.4. Механизм обращения к функциям, для пример - exfn():
1. ссылка на exfn() в коде (в .text секции)
2. переход на "трамплин" в .plt секции - plt@exfn()
3. переход на разыменованный указатель из .got.plt, если переразмещение
уже было произведено, то попадаем на exfn(), иначе:
3.1. возврат в plt@exfn(), в стек кладётся смещение в .rel.plt
секции Elf32_Rel структуры и указатель на link_map список
3.2. вызов ld.so, правится указатель в .got.plt
3.3. переход на exfn().
6. .dynamic секция может быть прочитана из программы через массив _DYNAMIC[],
который содержит struct ElfN_Dyn, автоматически заполняется линкером.
7. Экспортируемые символы из elf модуля указываются в .dynsym секции.
8. -rdynamic опция линкера (для исполняемого ELF) - символы из exe, которые не
были востребованы библиотеками, указанными в командной строке, не
экспортируются (не указываются в .dynsym секции) и не участвуют в
переразмещениях в библиотеках, которые подргружаются через dlopen. Данная
опция заставляет линкер помещать в таблицу все функции.
9. Управление экспортом из модуля
* Управление экспортом по умолчанию:
gcc -fvisibility=default
-fvisibility=hidden
-fvisibility=internal
-fvisibility=protected
* Управление экспортом посимвольно:
__attribute__ ((visibility ("hidden")));
__attribute__ ((visibility ("hidden")))
* Для группы:
#pragma GCC visibility push(hidden)
...
#pragma GCC visibility pop
* static и анонимные namespace
* Управление эспортом через export map, через опцию --version-script
https://github.com/torvalds/linux/blob/master/Documentation/admin-guide/sysrq...
ALT-SysRq-F прям золотое сочетание, спасает если нет свапа, а почему нет у меня свапа? почему нету свапа у меня? свапа нету у меня почему?
кароч если даже овер 8гб рамки, то свап всё равно нужен по ходу.
В своей ветке я сделал мерж с другой. Потом мне понадобилось отменить этот мерж (тут я конечно поспешил) и выполнил
git reset head~git reset --mergeВ Qt есть QProcess, который умеет «сигналить», если дочерний процесс выводит что-либо на stdout. Как добиться схожего функционала, используя GLib/GIO? Теоретически, можно реализовать свой костыль, который будет периодически проверять состояние порождённого процесса и сигналить, если тому есть, что сказать. Но ведь наверняка же есть какие-то встроенные средства для этого?
Есть такая таблица в LaTeX:
\documentclass{extarticle}[14pt]
\usepackage[main=russian,english]{babel}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={TeX},Renderer=Basic}
\setmainfont[Ligatures={TeX,Historic}]{IBM Plex Serif} \setsansfont{IBM Plex Sans}
\setmonofont{IBM Plex Mono}
\usepackage{colortbl}
\usepackage{longtable}
\usepackage{multirow}
\usepackage{rotating}
\begin{document}
\begin{longtable}{|p{0.05\textwidth}|p{0.5\textwidth}|p{0.1\textwidth}|p{0.15\textwidth}|p{0.15\textwidth}|}
\hline
\multicolumn{2}{|l|}{Наименование параметра} & Обозна\-чение & Ис\-точник & XX \tabularnewline
\hline
\multirow{5}{3.5cm}{\begin{turn}{90}
Mei probo apeirian\end{turn}} & Mei probo, \% & & цифры & \emph{цифры}\tabularnewline
\cline{2-5}
& probo apeirian, \%, об/мин & & цифры & \emph{цифры}\tabularnewline
\cline{2-5}
& probo apeirian & & цифры & цифры (цифры)\tabularnewline
\cline{2-5}
& Mei probo apeirian & & цифры & \emph{цифры}\tabularnewline
\cline{2-5}
& Mei probo apeirian mediocrem ne, id his & & цифры & цифры (\textasciitilde{}0\%)\tabularnewline
\hline
\multirow{8}{*}{\begin{turn}{90}
Mei probo apeirian
\end{turn}} & Mei probo apeirian & & цифры & \emph{цифры}\tabularnewline
\cline{2-5}
& Mei probo apeirian mediocrem ne, id his & & цифры & \emph{цифры}\tabularnewline
\cline{2-5}
& Mei probo apeirian mediocrem ne, id his & & цифры & \emph{цифры}\tabularnewline
\cline{2-5}
& Mei probo apeirian & & цифры & \emph{цифры}\tabularnewline
\cline{2-5}
& Mei probo & & цифры & \emph{цифры}\tabularnewline
\cline{2-5}
& Mei probo apeirian mediocrem ne, id his, К & & цифры & цифры (цифры)\tabularnewline
\cline{2-5}
& Mei probo apeirian mediocrem ne, id his, К & & цифры & цифры (0.7\%)\tabularnewline
\cline{2-5}
& Mei probo apeirian mediocrem ne, id his & & цифры & цифры
\tabularnewline
\hline
\end{longtable}
\end{document}
В вертикальных ячейках слева текст короче не сделать. Как сделать там переносы по словам и выровнять текст в середине? Задание ширины в \multirow не помогает.
Всем привет. Проблема в следующем: не обновлял мир целый год. Сейчас пришло самое время - получаю кучу конфликтов, и как проще поступить во всем этом, пока не знаю.
Вывод Portage: https://pastebin.com/Zw6403MZ package.use: https://pastebin.com/VbyyN52B Вывод emerge --info: https://pastebin.com/196yUfmz
Без optirun
vblank_mode=0 glxgears
ATTENTION: default value of option vblank_mode overridden by environment.
14489 frames in 5.0 seconds = 2897.690 FPS
11070 frames in 5.0 seconds = 2213.908 FPS
10320 frames in 5.0 seconds = 2063.909 FPS
vblank_mode=0 optirun glxgears
ATTENTION: default value of option vblank_mode overridden by environment.
1023 frames in 5.0 seconds = 204.473 FPS
1089 frames in 5.0 seconds = 217.715 FPS
1049 frames in 5.0 seconds = 209.696 FPS
Список 1000+ игр со ссылками на обзоры от GNU/Linux пользователей. Здесь список больше не обновляется.
Список на базе Steam с оглавлением по прежнему улучшается.
English version of the list Games, Steam, Linux, reviews.
Здесь встречаются обзоры на разных языках: [rus] — русский, [eng] — английский, [fra] — французский, [spa] — испанский, [por] — португальский, [ces] — чешский, [deu] — немецкий, [pol] — польский, [fin] — финский и [ukr] — украинский.
Должен предупредить, что в части обзоров крайне мало информации, кроме того факта, что обзор существует и автор как минимум запустил игру в среде GNU/Linux. Со временем я постараюсь улучшить эту ситуацию.
Деление на жанры довольно условно. Распространение ссылок на перечисленные здесь обзоры всячески приветствуется. «Лайкать» обзоры тоже не возбраняется.
Я готов добавлять ссылки на чужие более другие обзоры. Скажем при условии, что в обзоре (или коротеньком сообщении) будет информация хотя бы о дистрибутиве, видеокарте+драйвере и серьёзных препятствующих прохождению багах (если они есть).
Добрый день. Помогите с выбором серверной и клиентской части ПО для организации общения внутри компании. Требования не сильно оригинальные но поверхностное гугление только сбивает. 1)и самое главное сервер должен уметь работать на линуксе. 2) он должен работать без доступа с сети интернет. Полностью изолированный сегмент (за исключением доступа по впн). 3) в первую очередь это чат с возможностью отправки файлов и изображений. 4) доставка оффлайн сообщений в том числе файлов и изображений. 5) возможность совершать звонки и видео звонки 6) возможность микроконференций на 3-5 участников* не обязательно но хотелось бы. 7) клиентские приложения под линукс, виндовс, андроид. Или возможность использовать сторонние но с сохранением функционала. 8) возможность работать через впн. (Не только в одной локальной сети) 9) использование шифрования. 10) желательна веб морда от админки (не обязательно но хотелось бы).
| ← предыдущие | следующие → |