Category: игры

Category was added automatically. Read all entries about "игры".

Book

Андроидное блядство

Завелась на телефоне какая-то хуйня, которая что-то есть (по-видимому проц), и всё тормозит. Лечится путём убивания 10+ приложений убивалкой. Проверяется путем приложения Touch Screen Test: в режиме "торможения" события тача ему присылаются пару раз в секунду.

Есть ли какой-то способ увидеть, кто поел ресурсы? Говноулучшители ничего не показывают, нельзя определить root cause. Есть ли вменяемый таск менеджер/top в сторе?

Upd: есть adb shell top, так что осталось понять, есть ли что-то без adb (и рута)?

Upd2: уже не лечится убивалкой. То есть было совпадение.

Upd3: спросил в двух спортлото

https://forum.xda-developers.com/android/help/slow-touchscreen-t3922116
https://android.stackexchange.com/q/210487/146258

Upd4: с утра всё снова в норме. Оба спортлото молчат. Нашел тут что есть сборка LineageOS для моего тела. Но целая история с миграцией всяких steamguard
Book

ArchLinux i686 Docker images

https://hub.docker.com/r/nponeccop/archlinux-microcontainers/~/dockerfile/

Провёл полдня в работе "на бумажке", т.к. Кларо лежал. Вторые полдня занимался "приседаниями" чтобы завелись имиджи.

nponeccop/archlinux-pacstrap-i686 обошелся почти без приседаний: mkrootfs.sh. Интересно, что там лжеприседания, которые не работают. Также обнаружил, что официальный аналог debootstrap tarball у нас в i686-версии отсутствует.

В-общем есть пакет arch-install-tools, в котором утилита pacstrap может собирать чруты, и это имидж из неё.

Но оказалось, см. archlinux-base-i686/Dockerfile, что наступает несколько жоп, из-за которых голый pacstrap не работает, и надо приседать:

- в группе base в Арче лежат заведомо дебильные пакеты типа cryptsetup и e2fstools, которые в контейнере не нужны. Кроме того, pacman -Qg base перечисляет все-все пакеты из группы, а не только топовые. Короче чем перечислять список пакетов, которые НЕ надо ставить, оказалось проще перечислить то, что НАДО
- в триггере установки gpgme, который зависимость pacman, наблюдалась двойная жопа: а) в pacstrap-имидже нет coreutils, б) он генерирует какие-то ключи, а энтропии в urandom не хватало, поэтому пришлось поставить и запустить haveged
- без setarch pacstrap пытается искать 64-битный арч на зеркалах 32-битного арча, а его там нет и нам нужен именно 32-битный
- сам setarch идет в util-linux, которых внезапно нет в base
- pacstrap в процессе хочет монтировать в НОВУЮ rootfs специальные файловые системы, что не работает в докере

В-общем, завтра будет вторая итерация.
Book

PlanetSide 2

Открыл тут для себя сабж. Мочилово в стиле Enemy Territory: Quake Wars, но

а) непрерывное 24х7, без разделения на отдельные "игры"
б) на больших картах 7х7 км примерно (мечта кармака!)
в) с большим количеством игроков (100+, но "стенка на стенку" получается примерно 40х40, т.е. одновременно 3 таких сражения на фронте)
г) без эффекта тимкиллерства (но это я наверное мало играю ещё)

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

Не хватает артиллерии, пво и инженерных сооружений из ETQW, гаджетов с укрытиями из Ghost Recon: Phantoms и централизованной координации из Savage.

В результате получается как бы несколько независимых командных игр: на одной позиции смешаны игроки из нескольких platoons которые никак не скоординированы.

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

Чё ещё можно посмотреть из командных игр? Не обязательно в этом жанре.

So far предложили:
- Battlefield 1
- Overwatch
- WoW
- Royal quest
- Dota 2
- LoL
- Prime worlds
- GTA5
Book

Коан по ТК, комбинаторному исчислению и System F

В меню нашего тропически-райского лямбда-монастыря появился новый изысканный квест для знатоков хаскеля.

Глава 100509 Обфускатор брейнфака путём оптимизирующей компиляции в бессмысленное подмножество хаскеля.

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

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

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

Парсинг не обязателен, считаем что код сразу на EDSL написан. Если делать - то как осмысленную тулзу.

Далее переводим интерпретатор в SKI-базис: const, <*> и id, не считая декодера, и у нас готова так сказать базовая рантайм-библиотека.

Успехом этого этапа можно считать мандельброт на брейнфак-EDSL на SKI с контролем эффектов.

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

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

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

Код для бессмысленных конструкций можно прямо с хакаджа брать, либы вроде Kan-extensions даже обфусцировать не надо. Утверждает конструкции как бессмысленные "учитель", то есть я (но какой из меня учитель - я максимум могу подсказать с какого края подступиться).

Общие принципы - newtype, тайпклассы и семейства разрешены, если тела разрешены.

Тела разрешены если не используют типов-сумм и произведений (но произведения в исключительных случаях разрешены - например ну на сколько обессмыслит этот формально запрещённый тип третьего ранга кодировка Чёрча? По-моему и так достаточно бессмысленно! (запрещён он потому что тип-произведение а произведения "понятны")

data Ran' g h a = forall z. Functor z => Ran' (forall x. z (g x) -> h x) (z a)

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

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

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

Gaming in 2016

Как выглядит сабж, какие есть варианты?

Как я понимаю, для варианта "кажуал сплит скрин мультиплеер на телеке для развлечения гостей" есть PS/XBox и говноальтернативы-на-андроиде типа http://www.razerzone.com/gaming-systems/razer-forge-tv

Для варианта "нетривиальный тактический MMO" альтернативы PC, как я понимаю, нету. И вместо полупустого минитауэр-шкафа можно поставить mini-ITX саквояж вроде Asrock M8 или Shuttle XPS, занимающие половину маленького рюкзака. Т.е. относительно мобильные и при этом стоящие не сотни денег по сравнению с дедовским решением или готовыми компактными компами а ля Alienware Alpha
Book

(no subject)

Вышел тут в арче под крисмас внезапно новый GHC 7.8.4 вместо 7.8.3. Ну а у меня скриптик перебилживания всех 140 пекеджей был готов, пустил на ночь чо. Но билдить на той же тачке, где стоят старые пекеджи, нельзя (без трюкачества), ну у меня ещё по историческим причинам там партиция 15 гигов (увеличил, была вообще 6). Билдил на другой. На утро увидел ~18 пекеджей не собралось - в-основном, из-за того что я в прошлый раз местами хакал, хотелось побыстрее, вместо того чтобы патчики по инструкции складывать. Где-то (в leksah) выяснилось что я хакал неверно, и вообще оказалось это лекса подгнила, а не cabal hell. В-общем из-за, того что сразу не сделал, придумал как портировать лексу 4 строками на свежий haddock-api вместо того, чтобы грязно пытаться заставить её работать со старым.

Взял пекеджи, положил в репоз, набрал на первой тачке растап суй (pacman -Suy), оно радостно сказало, что все депенденси я указал правильно, ни в каком из из 140 мест не ошибся фатально, и пошло апдейтить. Всего 320+ пекеджей - мои и зависимости тоже ж обновлять. Благо они как-то невероятно коллаборируют, и релизят всё одним куском: сразу тебе и гхц, и всё под него перебилжено уже.

Ну растапчик очень быстрый, я уже хвастался, но вызывает ghc-pkg update, который в свою очередь вызывает haddock, который кросс-линкует документацию или ещё что делает, отжирая по 400 метров и полтора ядра. Короче, 50 пекеджей в час инсталлируется, чуть ли не медленнее конпеляции.
Book

Новости сборки под винду

Нашёл, что в Арче есть

- кросс-компилятор для винды
- гайдлайн по написанию скриптов сборки
- Туча уже готовых скриптов

Соответственно, чтобы собрать что-то (к примеру zeromq) под винду, надо:

На арче:

yaourt -S mingw-w64-zeromq
mingw-w64-repo-update # мой скрипт пушит в репоз

На винде в MSYS2:

pacman -S mingw-w64-zeromq

Осталось теперь полечить msys2 :) Они пидарасы™ и игнорируют опыт Арча по пакетированию, в результате проходят по второму разу на те же грабли. Буду помогать.

Upd:

Вчера выпустили тарболл. Прогресс налицо: осталось только 6 файлов, не принадлежащих ни одному пекеджу.

Но их пекеджинг, мягко говоря странный. mingw-w64-x86_64-gcc кладётся в /mingw64, когда в Арче он в /usr/mingw... что демонстрирует хоть какое-то уважение к FHS.

Либы к виндовому 64-битному перлу ставятся в /mingw64/lib вместо /mingw64/usr/lib/perl5/{core,site,vendor}_perl

Upd2: обнаружил, что в Арче пидарасы ещё те. Такое ощущение, что когда дело хоть как-то касается винды, IQ у линуксоидов автоматически снижается на 30%.

/usr/i686-w64-mingw32/include/c++/4.9.0/i686-w64-mingw32/bits/opt_random.h
/usr/x86_64-w64-mingw32/include/c++/4.9.0/x86_64-w64-mingw32/bits/opt_random.h

Вдобавок, файлы одинаковые, что, впрочем, неудивительно. И это только пример, там такого вагон и маленькая тележка.

Но интересно, что 64-битная libzmq.dll под 32-битным арчем таки собралась.