LINUX.ORG.RU

Сообщения utf8nowhere

 

Вспомнить игру

Форум — Talks

Нашёл сам: Hostile Waters (Hostile Waters: Antaeus Rising)

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

Игра 3D. Есть что-то вроде контрольного пункта на корабле, стоящем в море. Самим кораблём управлять было нельзя, но можно было вылетать с него на чём-то вроде вертолёта (футуристического вида?), а также другой техники, в зависимости от миссии. При приземлении на корабль, ЕМНИП, открывалось меню контрольного пункта, где, наверное, можно было чинить/наворачивать транспортное средство.

Запомнилась одна миссия. Там высаживали сразу на берег, нужно было управлять гусеничной танкеткой. На возвышении была какая-то крепость с четырьмя турелями по углам. Я никак не мог их уничтожить. Особенностью гусеничной танкетки было то, что при нажатии на какую-то клавишу корпус танкетки подымался и гусеницы втягивались под него. При повторном нажатии гусеницы разъезжались обратно вширину, а корпус опускался к земле.

И, кажется, там можно было управлять несколькими транспортными средствами по-очереди, переключаясь между ними.

Это всё, что я запомнил.

Кое-что ещё вспомнил: как мне кажется, вертолётом можно было таскать эту танкетку.

 , ,

utf8nowhere
()

Key-value storage (?), с непредсказуемым key или document storage

Форум — Development

Короче, ребзя, нужно мне создавать и классифицировать файлы по нескольким параметрам. Например, по толщине и зелёности. Сейчас я использую иерархическое хранение в файловой системе, вроде: "./толщина:XXXсм./зелёность:YYY%/".

Но становится ясно, что параметры могут добавляться в будущем и наращивать глубину иерархии не хочется. К тому же, есть подозрение, что скоро понадобятся параметры, скажем так, равнозначные. Текущие параметры всегда присутствуют, разница только в их значении. «Равнозначные» могут присутствовать или отсутствовать в любой комбинации. Не хочется придумывать, каким образом их упорядочивать и как вообще кодировать в имени пути.

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

Из требований: легкость в освоении и настройке, т.к. записей там будет всего несколько сотен и нет смысла возиться с настройкой производительности; работа по сети.

Хочется в неком смысле «атомарности». В том, что если несколько клайентов обнаружат, что для данного ключа нет value и захотят добавить его, то чтобы это смог сделать только один, а остальные смогли корректно узнать об этом, т.е. получить добавленное одним из них значение.

Остальное выясним в процессе обсуждения.

 

utf8nowhere
()

Мобильный телефон без WiFi и игр

Форум — Talks

Есть такие сейчас? Чтобы даже змейки или чего подобного не было установлено. Чисто звонки+sms.

 

utf8nowhere
()

Самый мощный в мире серийный встраиваемый компьютер класса ВохРС сделан в России ￾

Форум — Talks

Специалисты российской инженерной компании АО «РТСофт» первыми в мире построили и успешно испытали самый мощный встраиваемый безвентиляторный компьютер класса BoxPC SWAP-C Premium на базе новейшего мобильного embedded-процессора Intel Skylake Xeon 1515M с мобильным серверным чипсетом СМ236, бортовой графикой Iris Pro Graphics P580 и памятью 32 ГБ ЕСС DDR4. Это первый серийный embedded-продукт подобного класса на мировом рынке с исполнением вплоть до -40…+70 °С.

Применение ультрасовременных 14-нанометровых платформ серии Intel Xeon 1515M/1505M 3,7/2,8 ГГц – это кардинальное пополнение серийных линеек компактных отечественных машин BLOK Industrial и BLOK Rugged, предназначенных для создания защищенных, критически важных и ответственных инженерных решений масштабируемой производительности с длительным жизненным циклом в системах атомной энергетики, управления воздушным движением, в системах специального назначения и безопасности.

Машины BLOK на мобильной платформе Intel Xeon 1515М шестого поколения, с объявленной доступностью на мировом рынке в 1-м квартале 2016 года, обладают рекордными характеристиками производительности, энергоэффективности, управляемости и защищенности.

По словам технического директора «РТСофт» Алексея Рыбакова, «наиболее значимым результатом работы по наращиванию возможностей профессиональных машин серии BLOK считаем не столько факт великолепной производительности и энергоэффективности CPU/GPGPU платформы Xeon 1515M, сколько те преимущества, что дают эти ультрасовременные технологии для достижения целей надежности, необслуживаемости и неубиваемости за очень бюджетные деньги».

Компьютеры серии BLOK на базе новейших платформ Intel Xeon 1515M/1505M и i7 6820EQ/6822EQ гарантируют простоту и удобство при создании безвентиляторных (бесшумных) полиэкранных сетевых HMI (до 3 DisplayPort, разрешением до 4K), специальных серверов и шлюзов, бортовых машин, где предъявляются серьезные требования по оптимизации габаритов, веса, энергопотребления и цены наряду с высокими требованиями производительности, совместимости, безопасности и минимальной стоимости владения.

Благодаря открытой и стандартной архитектуре гарантируется великолепная совместимость с самым современным системным ПО класса Linux, Windows, ОС реального времени и с гипервизорами, поддерживающими технологию виртуализации. Архитектура машин позволяет использовать наиболее актуальные технологии в разработке продвинутых гетерогенных и графических приложений: OpenCL 2.1, MS С++ AMP, DirectX 12, OpenGL 5.0.

Машины BLOK на платформе Intel Skylake Xeon/i7 будут доступны для российских и зарубежных потребителей в температурном диапазоне -10…+50 оС или -40…+70 оС, в исполнении для III группы ТС АС-ЯРО или в исполнении для групп 1.1, 1.2, 1.3, 1.4.1 УХЛ по ГОСТ РВ 20.39.304.

Компьютеры обеспечены высоким уровнем сертификационной и лицензионной поддержки для работы в различных сегментах экономики РФ и стран Таможенного союза: TÜV NORD CERT (ISO 9001:2008), ФСТЭК, Ростехнадзор, Минпромторг и др., поддержаны гибкими возможностями кастомизации как аппаратной части, так и UEFI/BIOS в кратчайшие сроки. Изделия обеспечивают самый высокий уровень защиты от любых экспортных ограничений.

За разработку компьютеров серии BLOK компания «РТСофт» в 4-м квартале 2015 года была удостоена звания лауреата национальной премии в области импортозамещения «Приоритет-2015».

Машины серии BLOK доступны для заказа, гарантия на них оптимальна для «длинных» проектов: от 3 до 7 лет. Тест-драйв машин возможен со склада «РТСофт» бесплатно.

АО «РТСофт» благодарит своих технологических партнеров, сотрудничество с которыми позволило создать и поддерживать в России серийный продукт мирового класса: «Фирма «НИТА» (Санкт-Петербург), НТЦ «Элинс» (Зеленоград), ФНПЦ НИИИС им. Ю.Е. Седакова (Нижний Новгород), SWD Software (Санкт-Петербург), «Кварта Технологии» (Москва), АО «РусБИТех» (Москва), корпорация Intel, Adlink, Kontron AG и Transcend.

Расширенную информацию можно получить на сайте http://blok.rtsoft.ru/ или в компании «РТСофт».

 , , , ,

utf8nowhere
()

Reverse SSHFS mount

Форум — Admin

Думаю, ЛОР-овцам будет полезно.

Итак, все знают, что можно с помощью sshfs примонтировать удалённую директорию:

sshfs user@server:/remote/path /local/path

Однако, возникла обратная задача: примонтировать локальную директорию на сервере, инициировав подключение и командуя с локальной машины. При этом не подымая ssh-сервера на клиенте. Да вообще не делая ничего, что может потребовать root-прав, вроде поднятия интырпрайз-ready NFS-сервера.

Пользуясь прямой видимостью клиента с сервера (если бы её не было, можно бы было организовать reverse-туннель), пробовал поднять всякие колченогие недосервера, вроде davserver для WebDAV или python -m pyftpdlib для FTP и монтировать их на сервере с использованием wdfs или curlftpfs. На чтение работало (медленно), при попытке записи на WebDAV процесс на сервере намертво зависал (кажется, виноват wdfs, но я особо не разбирался), а curlftpfs не поддерживает seek.

Немного погуглив, наткнулся на это https://blog.dhampir.no/content/reverse-sshfs-mounts-fs-push и понял: это ОНО! Правда, там то, что мне нужно, описано другими словами: сервер иницирует подключение к клиенту и монтирует ему путь, который считает нужным. Но тут вопрос в том, что назвать сервером. Я называю ту машину, где работает sshd.

Итого, команда выглядит так:

dpipe /usr/lib/openssh/sftp-server = ssh user@server sshfs :/local/path /remote/path -o slave

 , ,

utf8nowhere
()

Положение иконок в трее зависит от текущего времени

Форум — Desktop

Есть MATE. Есть апплет notification area по соседству с апплетом clock. Ширина clock меняется в зависимости от отображаемого времени. Ну там допустим секунды: когда в единицах секунд 3, то она поуже, когда 4 пошире, когда 5 опять поуже. Следом за изменением ширины clock двигается влево-вправо notification area.

Даже если отодвинуть чуть-чуть notification area, то в clock слева есть ещё информация о погоде, которая продолжает скакать. Да и всё содержимое апплета — погода, часы, минуты, десятки секунд — похоже, прижато к правому краю и в зависимости от текущей секунды двигается туда-сюда.

У вас ещё есть вопросы, почему linux никак не взлетает на десктопе? А винда всё ещё жива?

 ,

utf8nowhere
()

Ноутбук не уходит в сон если примонтирована sshfs ￾

Форум — General

При нажатии Fn+F3 (sleep) DE блокирует экран, но дальше вместо его обычного гашения и остановки кулеров и проч., ЭВМ просто перестаёт реагировать на нажатия клавиш и тачпад; через минуту тыканья по клавиатуре всё отлипает как будто никакой команды заснуть не было, можно ввести пароль и продолжить работу.

Если отмонтировать sshfs, то засыпает нормально.

Напомните, насколько ядро linux технически круче остальных ядер и который сейчас год непрерывных побед на десктопах?

 , ,

utf8nowhere
()

Беспредел

Форум — Linux-org-ru

Вахтёр, как обычно, спонтанно воспламенился на ровном месте и снёс топик www.linux.org.ru/forum/development/13086276 за использование слова «говнокод».

Давно слово «говнокод» стало запрещённым? При том, что вахтёр сам его активно употребляет:
написать драйвер для своего устройства (комментарий)
Производительность C++ (комментарий)
copy_to_user из прерывания (комментарий)
передать вектор в C++11 (комментарий)
И третий раз Грег пытается протолкнуть kdbus... (комментарий)

Доколе?

 , ,

utf8nowhere
()

utf8 everywhere ￾

Форум — Talks

Копировал с помощью js-консоли в браузере (функция copy()) в буфер обмена всякую дрянь вроде невалидного юникода, потом вставлял в адресную строку и гуглил. (да, я развлекаюсь как аутист)

Внезапно заметил, что исчезла панель задач. Что же такое? Слава utf8, Alt+Tab всё же работает. Что мы видим?

Sorry, Ubuntu 16.04 has experienced an internal error

ExecutablePath
/usr/lib/mate-panel/wnch-applet
Package
mate-panel 1.12.2-1
Короче, из-за херни в заголовке окна браузера свалился апплет со списком окон.

Попытки воспроизвести показали, что валится на '\uFFFE'. В JS-консоли (Ctrl+Shift+i) выполняем copy('\uFFFE');, вставляем из буфера обмена в адресную строку в новой вкладке и жмём ентер.

По просьбам трудящихся, добавил \uFFFE в заголовок, чтобы вы не тратили силы на вопроизведение.

Подходил к концу 2016-й год. Это какой по счёту год непрерывных побед Linux на десктопе?

 , ,

utf8nowhere
()

Есть ли жизнь на daily сборках Ubuntu (17.04)?

Форум — Desktop

По моим наблюдениям, только там есть достаточно свежий софт, в остальных версиях (и дистрибутивах) он безнадёжно тухл.

Например, нужен gcc 7, он есть в toolchain ppa для 17.04. (Предлагающим собрать его из сорцев на текущей системе — сразу на выход. В 2016-м конпелять из сорцев это ниже достоинства белого человека).

Как обстоят дела с общей нестабильностью системы? Много ли багов?

 ,

utf8nowhere
()

Все сообщения темы на одной странице

Форум — Linux-org-ru

Помню, много-много лет назад, когда ещё ЛОР был синим у всех, была возможность показать все сообщения топика по URL-у типа http://linux.org.ru/url-темы?page-1. Потом (тоже уже давно) эту фичу убрали. Почему?

Сейчас можно так сделать, нажав на «показать удалённые комментарии», но это не то.

 ,

utf8nowhere
()

Что за идиотская мода — называть map (ассоциативный массив) «картой»?

Форум — Talks

Как-то раньше не обращал внимания, но в последнее время всё чаще замечаю, что std::map и его однофамильцев из других языков в русскоязычном интернете называют «картой». Я, конечно, не строил никаких иллюзий, но неужели русскоязычное IT-сообщество настолько выродилось, что всё, на что оно способно — это пользоваться гугл-переводчиком?

Правильнее всего, на мой взгляд, было бы называть тем, чем map является — «ассоциативным массивом». Но если хочется перевести относительно буквально, то наиболее близким термином я бы назвал «отображение». map и function в математическом- и CS-контексте это синонимы, но термин «функция» занят. Поэтому «отображение».

Когда я вижу где-то «у меня есть карта std::map<int, string>» и т.п. — хочется взять и ушатать.

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

 

utf8nowhere
()

Домохозяйки правы, говоря «процессор» на системный блок

Форум — Talks

!Ъ: https://youtu.be/Cn4vC80Pv6Q?t=1m12s

Ъ: презентация интерфейса Xerox Star от 1982. Презентующий, описывая компьютер, говорит «It consists of a processor...» и при этих словах указывает на ящик, который сейчас школьники и прочие страдающие бредом реформаторства именуют «системный блок».

Полное предложение выглядит так: It consists of a processor, a large display screen, a keyboard, and a pointing device called a mouse. При этом презентующий указывает на соответствующие компоненты. Отсюда видно, что речь не идёт о том, что внутри есть процессор, а процессором явно называется весь ящик.

 ,

utf8nowhere
()

g++ internal compiler error при компиляции говнокода с -O2

Форум — Development

Итак, берём лютый говнокод

int main()
{
	auto f = [](void* ptr) { goto *ptr; };

	f(&&label);

label:
	return 0;
}
и скармливаем его g++. Пока уровень оптимизаций меньше -O2, то он компилируется. Работает везде по-разному. У меня падает с
*** stack smashing detected ***: ./a.out terminated
Aborted (core dumped)
на http://melpon.org/wandbox/ мирно завершается с кодом возврата 0.

Но стоит только включить уровень -O2... (компиляция на вышеупомянутом сайте, gcc HEAD 7.0.0 20161113 (experimental))

prog.cc: In function 'main()::<lambda(void*)>':
prog.cc:3:23: internal compiler error: Segmentation fault
  auto f = [](void* ptr) { goto *ptr; };
                       ^
0xaf60df crash_signal
	/home/heads/gcc/gcc-source/gcc/toplev.c:338
0xb2c48d cleanup_control_flow_bb
	/home/heads/gcc/gcc-source/gcc/tree-cfgcleanup.c:250
0xb2c741 cleanup_tree_cfg_1
	/home/heads/gcc/gcc-source/gcc/tree-cfgcleanup.c:702
0xb2c741 cleanup_tree_cfg_noloop
	/home/heads/gcc/gcc-source/gcc/tree-cfgcleanup.c:766
0xb2c741 cleanup_tree_cfg()
	/home/heads/gcc/gcc-source/gcc/tree-cfgcleanup.c:817
0xa403c4 execute_function_todo
	/home/heads/gcc/gcc-source/gcc/passes.c:1918
0xa4137b execute_todo
	/home/heads/gcc/gcc-source/gcc/passes.c:2015
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

Самая младшая падающая версия — gcc 4.6.4 (на вышеупомянутом сайте). Версии проверял не все, только несколько верхних и нижних плюс пару промежуточных, они крашатся. Думаю, крашатся все промежуточные.

Похоже, разработчики g++ не были готовы к тому, что их расширение «Labels as Values» будут скрещивать с лямбдами.

Кстати, clang++ отвергает код с такой формулировкой:

prog.cc:3:27: error: indirect goto in function with no address-of-label expressions
        auto f = [](void* ptr) { goto *ptr; };
                                 ^
Хорошая защита от говнокода, но некоторым она не нравится: https://llvm.org/bugs/show_bug.cgi?id=18658

Воспользуемся воркэраундом, приведённом в багрепорте и изменим лямбду:

auto f = [](void* ptr) { goto *ptr; crap: void *pcrap = &&crap; };
clang++ компилирует и не падает. И что самое забавное — g++ тоже перестаёт падать!

При этом g++ начинает лучше оптимизировать код: в первоначальной версии кода, на уровне -O1 остаётся вызов лямбды, а в версии с dummy-меткой в лямбде main компилируется просто как обнуление eax и возврат. clang++ с -O1 оптимизирует main до такого же состояния. Правда, я подозреваю, это не результаты инлайнинга, а результаты выкидывания кода с UB.

Такие дела.

Что касается багрепорта — я его организую как только мне выдадут доступ к gcc-шной багзилле.

 , ,

utf8nowhere
()

Наследование от стандартных контейнеров

Форум — Development

Я всегда, как мне казалось, пытался быть взвешенным, нейтральным и объективным. Например считая, что в макросах нет ничего плохого там, где они нужны (в отличие от школьников и фанатиков, вопящих «ололо, макросы в C++ низзя!») и т.п.

Но во что я свято верил до недавнего времени — от std::vector&co наследоваться — харам! Что если хочется — ты что-то делаешь неправильно.

Решил попробовать boost::program_options. А там... наследуют от std::map!

Что же, неужели в наследовании от контейнеров может быть смысл? Или boost'еры что-то делают не так (не вообще, а в этом локальном случае)?

 , ,

utf8nowhere
()

Тонкости форматирования кода в скобкоязыках

Форум — Development

Внимание! Этот тред не про табы vs пробелы! Все и так знают, что единственный адекватный стиль это «табы для отступов, пробелы для выравнивания».

Тред про другое. Допустим, мне нравится стиль при котором бинарный оператор (точка с запятой в for) при разбиении строки переносятся на новую строку и выравниваются друг под другом. Например:

// арифметические выражения
auto a = 2
       + 3
// if
if (  very_long_condition_1
   && very_long_condition_2
// вызов функции
very_long_function_name( very_long_argument_1
                       , very_long_argument_2
// и даже цикл for!
for ( int i = 0
    ; i < N
    ; ++i

Плюс сюда можно добавить base and member initializer list, где строки начинаются с запятой и т.п.

У меня остаётся ряд нерешённых вопросов:

  1. Где ставить точку с запятой в арифметическом выражении?
  2. Где ставить закрывающую скобку и точку с запятой при вызове функции?
  3. Где ставить закрывающую скобку и открывающую фигурную для if/for? Должно ли положение открывающей фигурной отличаться для случая однострочного и многострочного условия? Пока я для себя решил, что стиль K&R, но при многострочном условии открывающая скобка на новой строке. Это если закрывающая круглая была на той же, где и последнее условие.
  4. Где ставить двоеточие в initializer list при переносе: все равно после имени конструктора или на новой строке перед первым членом списка?
  5. Придерживаться ли правила «всё или ничего»: помещать все условия или все аргументы на одной строке, если влезают и помещать каждый в своей строке, если не влезают? Или сувать в строку пока влезают и переносить первый невлезший? Больше склоняюсь к «всё или ничего».

ЛОР поможет ответить на эти вопросы, ну или хотя бы попытается.

 , ,

utf8nowhere
()

Чем мой аватар был хуже?

Форум — Linux-org-ru

Чем www.linux.org.ru/photos/137176:-1719735449.jpg хуже www.linux.org.ru/people/Rastafarra/profile вот этого?

С хрена ли мой снесли?

 ,

utf8nowhere
()

«В [Windows]NT нет fork()» — миф.

Форум — Talks

На самом деле есть, и даже COW.

https://groups.google.com/forum/#!topic/comp.os.ms-windows.programmer.nt.kernel-mode/hoN_RYtnp58

The most important parameter here is SectionHandle. If this parameter is NULL, the kernel will fork the current process. Otherwise, this parameter must be a handle of the SEC_IMAGE section object created on the EXE file before calling ZwCreateProcess().

NTSYSAPI
NTSTATUS
NTAPI
ZwCreateProcess(
    OUT PHANDLE ProcessHandle,
    IN ACCESS_MASK DesiredAccess,
    IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
    IN HANDLE ParentProcess,
    IN BOOLEAN InheritObjectTable,
    IN HANDLE SectionHandle OPTIONAL,
    IN HANDLE DebugPort OPTIONAL,
    IN HANDLE ExceptionPort OPTIONAL
    );

Ещё вот: forknt.c

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

 , ,

utf8nowhere
()

Typeclasses в Haskell

Форум — Development

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

 ,

utf8nowhere
()

std::async deprecated (на самом деле нет)

Форум — Development

Проблема в том, что std::async не справляется (и фундаментально не может справляться) со своей задачей — предоставить task-based параллелизм. Подробнее см. [1]

Если верить Eli Bendersky [2], из-за указанных в [1] проблем (и не только) std::async почти пометили бумажкой «deprecated» в 17-м стандарте, но в последний момент решили подставить кастыль в виде [3], только ради того, чтобы сохранить лицо комитета стандартизации: шутка ли — в 11-м году принять фичу в стандарт, а уже в следующей редакции (14-я была минорной, не забывайте) пометить deprecated. Это поставит под сомнение адекватность и легитимность комитета.

Вот так всегда в C++: впопыхах напихали нерабочих фич в стандарт — потом подпирают кастылями.

[1] https://bartoszmilewski.com/2011/10/10/async-tasks-in-c11-not-quite-there-yet/
[2] http://eli.thegreenplace.net/2016/the-promises-and-challenges-of-stdasync-tas...
[3] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3773.pdf

P.S. Лучше бы его и правда пометили deprecated.

 

utf8nowhere
()

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