?

Log in

No account? Create an account

Entries by category: it

[sticky post] Мои сказки для взрослых

Серия "Семь стихий Зеленой Жемчужины"

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

Часть 1: Диверсанты (2008) (переделан в 2018)
Первый контакт со странными последствиями и крайне авантюрным планом научного исследования.

Часть 2: Лик неизбежности (2018)
Земляне пытаются поставить исследование открытой планеты на постоянную основу, визанцы вроде бы не против, но все рушится.

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

Часть 3: Убить Джаггарана - пишется (50%)
Старый Эйо Икен сошел с ума, дело в руки берет Т'Иниариса. Есть ли у нее шансы против хана Джаггарана, и есть ли хоть какие-то шансы у Икена?

Серия "Сезон молодости"

Приключенческое фэнтези с элементами детектива. Мир - тот же.

Часть 1: Экзамены Икена (2006)
Самая первая проба пера - мне кажется наивно, но переделывать уже не буду.
Талантливый и честолюбивый студент Эйо Икен из клана Да-ахой заканчивает обучение в Цитадели Магии. Но в самый последний день, на решающем экзамене удача ему изменяет. События ведут к тому, что он получает свою первую работу - на подхвате у знаменитого детектива Шикаши, получается своего рода магический Ватсон при немагическом Холмсе.

Часть 2: Дело охотника за пузырями (2006)
Пузыри - живые воздушные шары, на которых можно летать на планете Виз. Охотник за пузырями (точнее их ловец) становится очередным клиентом сыщика Шикаши. Но вот беда: Шикаши очень не любит путешествовать и предлагает Икену попробовать себя в самостоятельном расследовании. Вместе с Икеном отправляется Т'Иниариса - своенравная особа, стремящаяся доказать, что она лучше всех.

Часть 3: Дикие Земли (2006)
Дело охотника раскрыто, но не закончено. Трое сыщиков (Шикаши все-таки присоединяется к молодежи) отправляются в погоню. Но логово преступников находится в таких местах, куда обычные люди не рискуют соваться...

Часть 4: Небесный танец (2007)
Банда магов, которая охотится за наследством гениального волшебника древности Сарингана, пытается использовать Икена и Шикаши в своих целях. В дело оказываются вовлечены даже каратели Цитадели. Икен встречает очередную девушку своей мечты...

Часть 5: Против себя - пишется (30%)
Банда разгромлена, однако история наследства Сарингана не закончена. Икен и Шикаши оказываются вовлечены в масштабную интригу с классическим детективным раскладом: круг подозреваемых сужен до шести вполне определенных лиц. Да вот беда: эти шестеро возглавляют город-государство, и они нанимают сыщиков фактически против самих себя, чтобы выяснить, кто из шести - враг.

Миниатюры

Оттепель на Стылом Перевале
Притчи о Шане

Карты

Регион Виза, включающий Столицу и города орды
Карта Столицы

Веселые...

... реальные ФИО иногда попадаются в открытых базах данных:
Чалан-Оол Виктория Хулер-Ооловна, ИП,... лесозаготовки

std::sort против qsort

Есть странная фишка в Visual Studio C++ (в данном конкретном случае - в 2015-й).

Есть STL-евская функция std::sort.
На вход она принимает предикат, то есть функцию, которая возвращает bool, если a < b.
Есть STD C функция qsort.
На вход она принимает функцию, которая возвращает int: -1, если a < b, +1, если a > b и 0, если a == b.

Первая функция возвращает меньше информации, поэтому естественно было бы предположить, что её придется вызывать чаще. А значит, если сравнение само по себе долгое и сложное (как например сравнение строк), тогда qsort должен быть быстрее.

Эксперимент же показывает, что std::sort работает быстрее qsort (естественно, в релизе и с одинаковой оптимизацией).

Гуру программирования объясняют, дескать, все дело в том, что в STL сравнения инлайнятся. Хрен там.

Я написал тестик, в котором один и тот же массив сортировался с использованием вызова по указателю на функцию strcmp, то есть никакого инлайна не должно было быть. К тому же сама strcmp - непростая, и затраты на её вызов должны быть пренебрежимо малы по сравнению с затратами на исполнение тела.

И что же? На 100 тыс. элементов std::sort все равно сортировал строки вдвое быстрее, чем qsort: 15 мс против 32 мс. При этом по каким-то загадочным причинам время от времени получалось вдруг 15 против 16, а потом опять разница вдвое.

На 500 тыс. элементов std::sort тоже оказался быстрее, стабильно показывая цифры вроде 78 против 125.

А что насчет количества вызовов? Поставил я счетчики и внезапно оказалось, что std::sort вызывает функцию сравнения меньшее количество раз - ненамного, но все-таки. То есть теория насчет того, что std::sort придется вызывать сложные сравнения чаще, тоже не работала.

Проверка в отладчике показала, что std::sort и qsort вроде бы не ведут к общему коду, то есть реализованы по-разному. Хотя, казалось бы, напрашивается использование общего кода. Возникает подозрение, что STL функцию когда-то оптимизировали, а STD C функцию не стали трогать.
Надо сказать, что действия Роскомнадзора окончательно превратились из охранительства в обычный вандализм.
Оригинал взят у tomsoer в Венда рулит, а Линух сосет
... или о попытке поставить вирус на Линух
Скачал вирусов себе на линух.
Распаковал.
Поставил под root.
Не завелись. Два часа гуглил, оказалось, вместо /usr/local/bin вирусы стали в папку /usr/bin на которую у юзера malware нет прав на запись, поэтому вирус не может создать файл процесса. Нашел на китайском сайте патченый .configure и .make, пересобрал, переустановил.</p>


Вирус заявил, что ему необходима библиотека cmalw-lib-2.0. Оказалось cmalw-lib-2.0 идет под CentOS, а под убунту ее не было. Гуглил два часа, нашел инструкцию как собрать .deb пакет либы из исходников. Собрал, поставил, вирус радостно запустился, пискнул в спикер и сделал core dump.

Час чтения syslog показал, что вирус думал, что у меня ext4 и вызывал ее api для шифрования диска. В btrfs это api deprecated поэтому линукс, заметив это непотребство, перевел раздел в рид-онли.

В сердцах открыл исходники вируса, grep'нул bitcoin кошелек, отправил туда $5 из жалости и пошел спать...


Продолжение - как я пытался заставить работать static_assert<std::is_...

Итак, с единым классом я обломался и решил хотя бы сделать проверки на то, какой класс кладется в шаблонный контейнер.

Read more...Collapse )
... точнее, пытаюсь применить static_assert-ы для нестандартных контейнеров. Процесс идёт, но не без разочарований.

Рассмотрим пример.

Read more...Collapse )

Рацио- против Эмо-

http://russell-d-jones.livejournal.com/1136263.html
http://russell-d-jones.livejournal.com/1153634.html
http://russell-d-jones.livejournal.com/1154710.html
http://ru-anime.livejournal.com/1260107.html
http://russell-d-jones.livejournal.com/1201266.html

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

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

Похоже, что для эмоционалов сам процесс логического спора является чем-то болезненным и расценивается как агрессия. Ситуация развивается примерно так:

вырюхать схемуCollapse )
Пердуперждение: эта запись вряд ли будет понятна непрограммистам. А на программистов может навеять скуку... или не навеять.

Иногда при кодировании случаются ситуёвины, напоминающие детектив. Вчера такое вот случилось.

Ковыряюсь я в своем звуковом редакторе "Bard". Как полигон для тренировки и освоения разных технологий - очень даже зачетная вещь. Вчера захотелось мне странного: чтобы два преобразования музыкальных файлов шли в параллель.

Преобразования у меня трех типов - built-in, на основе ACM и на основе любимой многими утилиты FFmpeg. Вот о последней и пойдет речь.

Я эту FFmpeg имел в самых разных позах - например, работал прилагаемой к ней с ней библиотекой кодеков через ейное API, собирал саму утилиту как модуль-часть-программы и как отдельную подгружаемую на runtime DLL-ку с кастрированием лишних функций... как-то все не то. И самый последний вид сношений, к которому я прибег, это использование pipe-ов.

Вкратце суть проблемы была такой: на вход одного преобразования подается файл Alice.wav, на выходе ождижается Alice1.mp3. Второе преобразование на вход берет тот же Alice.wav, на выходе - Alice2.mp3.

И вот... запускаю я два преобразования одновременно (с интервалом в пару секунд) и совершенно внезапно программа выдает ошибку: "доступ запрещен, файл: Alice1.mp3". Ну, я, естественно, лезу в стек, и обнаруживаю, что сбойнула функция rename. Кто бы мог подумать, какой длиннющий детектив породит такая ерунда.

Дальше - больше...Collapse )

Информация

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

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

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

Итак, информация...Collapse )

Profile

ioda
psilogic
Мирослав Войнаровский
Психологика

Latest Month

November 2019
S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930

Syndicate

RSS Atom
Powered by LiveJournal.com
Designed by yoksel