Category: лытдыбр

Category was added automatically. Read all entries about "лытдыбр".

Book

Вопросы расизма

Тут меня забанили на Кворе за расизм. Ну не то чтобы забанили и не то чтобы на кворе, и не то чтобы за совсем оголтелый расизм, но тем не менее.

Прохладная история такова. Товарищ 1 спросил, есть ли какие-то проекты, которые ну вот всё человечество собралось и сделало в едином порыве прекрасное. Товарищ 2 ответил что типа ITER. Товарищ 3 ответил что ITER нихуя нищитово, это всего лишь EuroTech, а вот ISS труъ.

На что я ответил, что ISS это тоже нихуя нищитово, поскольку основными коллабораторами являются NASA, ESA и Роскосмос. Так что это white man tech, по аналогии с eurotech.

На что товарищ 3 удалил комментарий по причине расизма и привёл фото команды Шаттла с неграми и индусами.

На что я ответил что ну вот по факту же остальные космические державы - Япония, Бразилия, Индия ОАЭ и Китай не участвовали, и я просто нашёл общий атрибут для того чтобы охарактеризовать коллабораторов, они все исторически считаются "белыми", не имея при этом указания на white supremacy, и что correlation doesn't imply causation, ну то есть тот факт что все страны вот так получилось что белые ничего не означает.

На что товарищ ответил что это всё равно расизм и тоже удалил. Конец прохладной истории.
Book

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

По ошибке сделал себе reset (но подстелил соломки и данные не потерялись). После резета и установки/обновления всех приложух внезапно освободилось 2.6 гб, что при 0 гб свободных до резета достаточно приятно, но иллюстрирует долбоебизм всех "очистителей и облегчителей", будь то Андроид или Винда.

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

Спортлото молчат. top -n 1 молчит. На SO дописал в вопрос, что юникс говно и не нужен.

Да, LineageOS это прекрасная иллюстрация опенсорсных инициатив. Билд есть, но 2-летней давности, и unsupported. То есть я просто обновлюсь со старых зеродеев на свежие. А то и окажется что оно под другой девайс семейства, и надо патчить и ребилдить. В ведроиде же (точнее в ведроидных SoC) плаг-н-плея нету, там хардкодят device tree blob, Карл. Тьфу!


По ведроидным тулзам нашёл 2 штуки:

- adb умеет показывать логи
- есть android profiler
- в девмоде есть всякие диагностические штуки

Upd: у ведроида обнаружился safe mode. А тачскрин теперь перестал работать совсем. Так что похоже на хардварную проблему. Обнаружил сервис мануал, который говорит переподключить шлейф, и если не помогло - то заменить мать или тач. Учитывая что на проклятом острове нет календаря квалифицированных ремонтников, проще™ купить отвёртку, отвинтить 11 винтиков и подрочить™ шлейф.

Upd2: методом хуячения телефона об руку (дабы ограничить g force моим болевым порогом) временно "починил" тач. Хуячение научное, на основе местосположения шлейфа из service manual

Upd3: судя по тому, что удалось в реалтайме починить глитч - у нас конец истории. Аппаратный баг.
Book

Велкам ту риал ворлд

У меня тут внезапно вылез real life вариант задачи swizard. Прямо в продакшене.

3 типа исполнительных устройств:
- A: 6 операций A1-A6
- B: одна операция B
- C: одна операция С

3 типа узлов разной стоимости: A, ABC, AC.

Исполнительные устройства независимы. Т.е. на узлах ABC и AC с более чем одним устройством загрузка одного из устройств не влияет на производительность других.

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

Операции занимают случайное время (но со стационарным распределением). Большое количество операций "насыщает" устройство - т.е. загрузка большего количества операций перестаёт увеличивать скорость. Есть феномен "медленных" операций, не насыщающих устройство. Т.е. насыщение, условно, происходит после загрузки 10 быстрых операций или 100 медленных, причём
быстрота или медленность неизвестна до загрузки в операции в устройство. Представьте, например, что устройство B - это кластер, проверяющий зашифрованное число на простоту. Если идут одни чётные - упираемся во внутренний bandwidth устройства, а если одни произведения
двух близких простых сомножителей - упираемся в процессоры. Но т.к.ключ известен только устройству, мы перед загрузкой сами ничего проверить не можем.

Более того, устройство не умеет сообщать внутренние bandwidth и cpu usage, мы можем о них только догадываться, измеряя время. Например, грузим инструкции, засекаем время исполнения каждой. Если результат инструкции, загруженной 30 секунд назад, не получен - помечаем
инструкцию "медленной". Грузим ещё инструкции, пока "кол-во медленных * X + кол-во неизвестных < Y"

Представьте себе, что узлы - это микросхемы. Изготавливаются с повреждениями, но умеют отключать повреждённые участки. Продаются непроверенными. Соответственно, производительность устройств в узлах индивидуальна. Чипы можно купить, измерить и решить выбросить или оставить. Но оставлять только топовые чипы, а остальные выбрасывать - нерентабельно.

Теперь о вычислениях.

На входе у нас неограниченный поток однотипных задач T.

Представьте, что у нас T - это теоремы, а операции - это стратегии, сводящие одни теоремы к другим.

Общий воркфлоу такой:

Приходит теорема, мы скармливаем её стратегии A5. Она может либо сразу ответить, что типа противоречие, или выдать нам список лемм [A5R] ("A5 Result").

Лемма A1R сводится стратегией A2 к набору лемм [A2R]. И так далее.

Некоторые тривиальные стратегии Sx реализованы "софтварно". Они исполняются мгновенно без загрузки в узлы.

Формализуется композицией монад списка и исключений. Я просто списки для простоты буду использовать.

Всю схему тоже заебусь формализовывать, сделаю только hot path, показывающий использование всех устройств, но не всех инструкций:

S1 :: T -> ([S1R1], S1R2)
A5 :: S1R2 -> [A5R]
A1 :: A5R -> [A1R]
B :: A1R -> ()
C :: S1R1 -> [S1R1]

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

Представьте что мы консультанты по строительству, T - это проект дома с адресом, а наша задача - определить, можно ли построить дом или нельзя. Практически всегда можно.

A - это юридический отдел. B - геологи, а C - занимаются коммуникациями.

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

Заниматься коммуникациями имеет смысл не тогда, когда готовы все документы для коммуникаций, а когда вообще все документы в порядке.

Т.е. каждый отдельный проект проходит последовательно 3 стадии: A -> C -> B.

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

И сложения можно начинать делать только тогда, когда все умножения закончились. Даже те, которые не являются зависимостями.

Отделу А надо выбирать между A5 S1R2 и A1 A5R в очереди. Если B загружен, а простаивает А - имеет смысл делать A5. Если наоборот - имеет смысл делать A1. Ещё надо контролировать количество проектов, застрявших на стадии A - т.е. отдавать приоритет доделыванию существующих проектов. При недогрузе B имеет смысл в первую очередь ставить A1 из проектов с почти готовой стадией A, а не рандомно.
Book

(no subject)

Решил IR не трогать, и пошёл по пути усложнения структуры фактов. Теперь это
type ArgFact = (WithTopAndBot AFType, M.Map Label (WithTopAndBot AFType))
Дабы не мучаться с созданием инстанса, переложил это на классы типов. Запилил ClassyLattice.hs, которая сделала всю работу за меня.

Я не стал всё переделывать на классы, сделал пока только в том минимальном объёме, который был нужен для проверки идеи новой структуры фактов. В коде видны все идиосинкразии хупловских решёток, перечисленные в прошлом посте. pairLattice возвращает DataflowLattice, целую решётку. А вместо "mapLattice" есть joinMaps, который возвращает JoinFun - моноидную операцию решётки. Ну, мой фронтэнд эти конюшни унифицировал, равно как вырезал необходимость париться об имени решётки и чисто диагностической передаче меток, которую я (пока) всё равно не использую.

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

После перерыва проснулся в 6 утра и продолжил. Разделил проход на два: в ArgumentValues.hs только анализ, в ArgumentDeleter.hs только перезапись. Как я уже говорил, перезапись в принципе можно делать без хупла, преимуществ при перезаписи хуплом, а не вручную через mapGraphBlocks в данном конкретном случае нет, но я решил пусть пока так. Всё равно хупл я только осваиваю, весь мой код эдакие полухаки слепые.

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

Под конец поставил арч обновляться, пользуясь тем, что начало месяца, и моя лендлордша ещё не выбрала 10 гб месячного лимита, и скорость не обрезалась (сейчас 1.5 мбита по 3G, после лимита будет 256 кбит).
Book

Я выпал в осадок - железка играет ВООБЩЕ ВСЁ

Прошлая железка в пролете. Вот чудо, доказывающее превосходство китайской мысли над индийской:

SetaBox - MSD - 630:
  • Все MPEG4 (ISO Baseline, Main, High Profile @L3, DivX 3-6)
  • AVS - китайский формат в ответ MPEG-ам требующим выплат
  • QuickTime
  • RealVideo/Audio
  • Windows Media Audio/Video включая открытый вариант VC-1, WMA Pro и Loseless и все это с mms- и rtsp-стримингом, DRM и мультикастом блять!
  • AAC LE/HE
  • AC-3
Плюс браузер со флешом и  IP-видео(!) телефон. Я просто хуею. Нет слов. При этом у их старой модели есть LAN/WLAN, USB и IDE. Просто пестня!
Book

И снова о французском образовании

Что-то Арнольда зачастили цитировать... Короче, теперь и высшее образование во Франции обсирает.

:.::kpnemo.ru / Разное / Об образовании:
Закат Европы
– Ну, ужасающий уровень образования в Америке – давно известный факт. Это вам не прусская школа! – скажет просвещённый читатель, отдалённо знакомый с разными образовательными системами. – Вот Европа – другое дело.

Что ж, мой просвещённый читатель, перенесёмся в Европу. Всё для тебя!..

Легенда отечественной и мировой науки, живой классик от математики академик Владимир Арнольд однажды заметил: проблемы, стоящие перед современной системой образования – главное, что должно сегодня беспокоить человечество. Посмотрим же, как решает человечество свои главные вопросы…
Collapse )
Book

(no subject)

Какая-то хуета происходит со мной... Адназначно надо лечиться... Еще вчера было все просто великолепно, а тут... Может, я просто устал от 12-часового рабдня?
  • Current Music
    Phantom of the opera