?

Log in

No account? Create an account
Жалобы на жизнь
светлое будущее
potan
Хорошее место Красный Окрябрь, приятное. Но вот соседство с храмом Pussy Riot напрягает. Мало того, что звонят постоянно, так еще какую-то хрень туда привезли, все перегородили, до офиса через лабиринт с рамками приходится добераться. Лучше бы Pussy Riot в другом храме выступили, КМПВ, этот не жалко было бы снести и бассейн восстановить.
Tags:

Есть ли жицнь за МКАДом?
светлое будущее
potan
Вакансия в Екатиренбурге С++, Rust, blockchain и зарплата всего 40 000 рублей.
Там правда люди живут?

Паттерн Model-Update-View и зависимые типы
светлое будущее
potan
Написал статью на Хабре о том, чего нет в Elm.
Кто не может комментировать там, могут комментировать здесь.

ROS и языки программирования.
светлое будущее
potan
Дослушал курс до конца, и даже выполнил все задания.
Оказалось полезно: ROS - система с развитой инфраструктурой, богатой деталями и тонкостями, разбираться с которой по текстам не имея конкретной задачи я уже много раз ленился, а искать задачу не разобравшись не рисковал.
Основная фича ROS - возможность создавать и связывать в единую систему микросервисы, работающие по принципам "статически типизированная подписка на топик". Типы сообщений представляют из себя аналог C-шных структур, алгебраические типы (и даже union) не поддерживаются.
Мы проходили API для C++. На дворе 21 век, а это API реализованно на callback-ах. При этом авторы API уже забыли про старый добрый C и не реализовали передачу пользовательских данных дополнительным аргументом, а про C++11 еще не слышали, и лямбды не принимают. В курсе общение между callback-ами делалось через глобальные переменные, но API все таки позволяет так не делать - вместо лямбд поддерживается boost::function (у которого есть конструктор из лямбды, так что не все так плохо), а вместо явного дополнительного параметра можно передать ссылку произвольный объект и на его метод (ссылки на методы я всегда считал странной, не совсем консистентной фичей, использование которой видел только в qt, который крив сам по себе, но здесь это решение оказалось вполне рабочим).
Большую роль в ROS играет страшный cmake, которым мы пользовались на уровне заклинаний "поправить такую-то строчку в таком то файле". При сборке в сообщениях проскаивает геренация библиотек не только для плюсов и питона, но еще для nodejs, lisp и какого-то eus.
У меня сложилость впечатление, что прорыв в программировании роботов произойдет тогда, когда миры робототехники и функционального программировния пересекутся - уж больно хорошо все это ложиться на функциональную парадигму. Задачи похожи на разработку UI (только вместо пользователя реальный мир, можно сказать WI), только больше и сложнее, а в интерфейсах функциональщина сильно все упрощает.
В общем возникает сильное желание попробовать там Purescript, поверх nodejs, а потом прикрутить еще Rust/gluon и Julia.

Фронт с роботами.
светлое будущее
potan
В порядке паралельного изучения ELM и ROS состыковал одно с другим.
Хотя в ELM не хватает тайпклассов и макросов, UI на нем пишется поразительно быстро и легко. Я уже просто не понимаю, зачем делать фронтенд на чем либо еще.

Забавная арифметика.
светлое будущее
potan
магическая константа 1.09054966350708617Collapse )

Вакансия на Scala
светлое будущее
potan
Тут внезапно освободилась вакансия Scala-разработчика (а лучше разработчицы, по инфраструктурным соображениям). Разрабатывать придется облачный (хостится на AWS) энтерпрайзный PLM. Зарплаты рыночные и раз в год индексируются. Компания (слишком) быстрорастущая. Оффис около метро Ясенево в Москве.
Есть желающие?

Перхлораты и жизнь.
светлое будущее
potan
В детстве читал "Продавец воздуха" Беляева - там некто сжижал воздух и продавал его по дешевке на Марс. Уже взрослым, слегка подучив физику и химию, я понял, что эффективнее было бы накапливать ценный кислород в виде перхлоратов. Кстати, от куда перхлораты на Марсе?

"Капитан Фантастик"
светлое будущее
potan
Посмотрел "Капитан Фантастик" - ожидал что то легкое, в стиле "Крокодила-денди", а оказалось совсем другое. Напомнило мне "Меганезию" Розова, с троцкистами-маоистами и праздновании дня Хомского со "спасенным" из магазина тортиком вместо рождества.
Но изучать квантовую механику по популярным книжкам о теории суперструн - идея несколько странная.

Хочется странного.
светлое будущее
potan
Хочу, что бы можно было в for использовать implicit (и import до кучи).
Может зря я про Idris лекции смотрел, писал бы на Scala как на обычном Haskell и не мучался...

Вложенные транзакции
светлое будущее
potan
Понял я как поддержать аппаратно вложенные транзакции.
Транзакции по вложенности образуют дерево. Есть такое кодирование деревьев (слегка избыточное) - узел кодируется отрезком, ребра дерева от наиболее облегающего отрезка в наибольшим подотрезкам.
Таким образом идентификатор транзакции, который добавляется к каждой строке кеш-памяти, состоит из трех чисел - начала, конца и длины (для оптимизации) отрезка. При поиске ячейки выбираются все с заданным адресом в основной памяти, началом отрезка меньше начала у текущей транзакции и с большим, чем у текущей, концом (тоже отрезка). Строки, попадающие под такое условие выставляют на шину специального компаратора свою длину (можно ее сразу вычислить, но не держать же сумматор на каждую ячейку), а он возвращает самую маленькую величину (устройство сложное, но не запредельно). А потом ячейка сравнивает минимальную длину с длиной своего идентификационного отрезка.
Осталось все это закодировать на Clash...
Tags: , ,

Транзакционная память и backtracking
светлое будущее
potan
Во многих задачах требуется модифицировать какую-то структуру, посмотреть что получилось, и, если не понравится, откатить все изменения.
Но транзакционная память делает почти то же самое. Ее можно слегка модифицировать, позволив при попытке завершения транзакции сравнить свою метрику с метриками других ожидающих завершения транзакций и выполнить только самую удачную.
Известны ли попытки так ее использовать?
По моему этот подход мог бы сделать более эффективными языки типа Prolog или LIFE.
Tags: ,

И еще одна статья.
светлое будущее
potan
Функциональные языки в разработке аппаратуры с попыткой описать Clash.
Tags: ,

Очередная статейка на хабре...
светлое будущее
potan
Julia с реактивным программированием и программированием в ограничениях моделирует механику роботов (из веревочек и пружинок).

Где нужны "зависимые типы"?
светлое будущее
potan
Все хотят применять "depended types" в разработке больших сложный систем, но мало кто в этом добился хоть каких-нибудь заметных успехов.
Оно и понятно - "зависимые типы" очень усложняют жизнь, а разработкой таких систем занимаются опытные программисты, располагающие развитыми средствами отладки и тестирования. То есть привносимый геморрой не оправдывает потенциальные не слишком радикальные преимущества.
А вот во всяких DSL для конфигурирования, воркфлоу, всяких политик, "умных контрактов" в блокчейнах, скриптов для "интернета вещей", да и просто скриптов для автоматизации рутинной работы чего-то типа "зависимых типов" для обеспечения надежности остро не хватает.
Во первых все эти программы относительно простые, и даже усложнение их разработки в 3-4 раза не так уж и страшно, да и время компиляции от дополнительных проверок сильно не вырастет.
Во вторых средства разработки у них не развиты и врядли для столь узких ниш кто-то этим будет заморачиваться.
В третьих пишут их не профессиональные программисты, а специалисты в своих предметных областях.
Tags:

Из командной строки за знаниями!
светлое будущее
potan
Написал как из PowerShell выполнять SPARQL-запросы на Dbpedia и прочих серверах.
Может кому пригодится.

Защита от бомб с жидким вакуумом.
КМПкВ
potan
Боеприпасы объемного взрыва делают бабах не сразу, а через более чем 0.15 секунд после распыления горючего вещества. Задержка нужна что бы образовалась смесь с воздухом в правильной пропорции - если кислорода будет мало, смесь будет плохо гореть и может даже не сдетонировать (вместо бабах получится пшик).
Получается, что если поджечь смесь сразу, последствия взрыва можно сильно уменьшить. Высокотехнологичные армии могли бы использовать робототизированные пулеметы с зажигательными пулями или УФ лазеры. Какие-нибудь повстанцы просто расставить везде искровые разрядники и газовые горелки.
Интересно, на сколько это будет эффективно?

Постапокалиптическое
светлое будущее
potan
Приснился мне страшный сон - случилась экологическая катастрофа. Птицы расплодились и Read more...Collapse )

А потом подумалось, а почему бы так не сделать?Collapse )

Антисемитизм и русофобия
КМПкВ
potan
Есть такая теория - "ревизионизм", которая утверждает что холокоста не было. То есть был бытовой антисемитизм, в том числе и в высшем руководстве фашисткой Германии, но не было целенеправленной государственной программы по уничтожению евреев и официальное количество жертв среди еврейского населения Германии и оккупированных территорий завышено в несколько раз.
Основные аргументы - кустарные инструменты уничтожения (плохо обустроенные газовые камеры и тп) и неэффективность (типа, при возможностях государства ни кого бы не осталось).
Не буду копать эту тему - подробностями не владею, да и не интересна мне она.
Но что интересно, среди русскоязычных сторонников ревизионизма (иностранные источники по этому вопросу я не изучал) многие считают что против России и русских есть международный заговор. Мне такой мнение кажется удивительным именно по тем же аргументам, что и приводят отрицатели холокоста.
Антирусские/антироссийские действия какие-то кустарные и неэффективные. А ведь благодаря деятельности правительства, сейчас почитаемого многими сторонниками этой теории заговора, уничтожить Россию можно с небольшим для мировой закулисы бюджетом - не более десятка миллиардов. Почему этого не делают? Если предположить, что российское руководство в этом заговоре участвует, то разваливать Россию можно было бы эффективнее, чем оно это делает.
Ну и какой тут может быть заговор?

Гиперигра
светлое будущее
potan
Для тех, кто не боится заблудиться на больших картах - hyperrogue.
Немного нумерологии: в исходниках есть магические числа - 42 и 96. Смысл чиста 42 я понимаю, а что означает 96?