Tuesday, August 29th, 2017 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
2:23 pm |
Вакансия на Scala Тут внезапно освободилась вакансия Scala-разработчика (а лучше разработчицы, по инфраструктурным соображениям). Разрабатывать придется облачный (хостится на AWS) энтерпрайзный PLM. Зарплаты рыночные и раз в год индексируются. Компания (слишком) быстрорастущая. Оффис около метро Ясенево в Москве. Есть желающие? |
Friday, May 26th, 2017 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
10:17 am |
"Капитан Фантастик" Посмотрел "Капитан Фантастик" - ожидал что то легкое, в стиле "Крокодила-денди", а оказалось совсем другое. Напомнило мне "Меганезию" Розова, с троцкистами-маоистами и праздновании дня Хомского со "спасенным" из магазина тортиком вместо рождества. Но изучать квантовую механику по популярным книжкам о теории суперструн - идея несколько странная. |
Thursday, July 13th, 2017 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
10:31 pm |
Перхлораты и жизнь. В детстве читал "Продавец воздуха" Беляева - там некто сжижал воздух и продавал его по дешевке на Марс. Уже взрослым, слегка подучив физику и химию, я понял, что эффективнее было бы накапливать ценный кислород в виде перхлоратов. Кстати, от куда перхлораты на Марсе? |
Friday, March 17th, 2017 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
11:11 am |
Вложенные транзакции Понял я как поддержать аппаратно вложенные транзакции. Транзакции по вложенности образуют дерево. Есть такое кодирование деревьев (слегка избыточное) - узел кодируется отрезком, ребра дерева от наиболее облегающего отрезка в наибольшим подотрезкам. Таким образом идентификатор транзакции, который добавляется к каждой строке кеш-памяти, состоит из трех чисел - начала, конца и длины (для оптимизации) отрезка. При поиске ячейки выбираются все с заданным адресом в основной памяти, началом отрезка меньше начала у текущей транзакции и с большим, чем у текущей, концом (тоже отрезка). Строки, попадающие под такое условие выставляют на шину специального компаратора свою длину (можно ее сразу вычислить, но не держать же сумматор на каждую ячейку), а он возвращает самую маленькую величину (устройство сложное, но не запредельно). А потом ячейка сравнивает минимальную длину с длиной своего идентификационного отрезка. Осталось все это закодировать на Clash... |
Friday, May 5th, 2017 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
2:10 pm |
Хочется странного. Хочу, что бы можно было в for использовать implicit (и import до кучи). Может зря я про Idris лекции смотрел, писал бы на Scala как на обычном Haskell и не мучался... |
Thursday, December 15th, 2016 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
10:09 am |
Транзакционная память и backtracking Во многих задачах требуется модифицировать какую-то структуру, посмотреть что получилось, и, если не понравится, откатить все изменения. Но транзакционная память делает почти то же самое. Ее можно слегка модифицировать, позволив при попытке завершения транзакции сравнить свою метрику с метриками других ожидающих завершения транзакций и выполнить только самую удачную. Известны ли попытки так ее использовать? По моему этот подход мог бы сделать более эффективными языки типа Prolog или LIFE. |
Friday, December 9th, 2016 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
5:14 pm |
|
Wednesday, October 26th, 2016 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
9:51 am |
Очередная статейка на хабре... Julia с реактивным программированием и программированием в ограничениях моделирует механику роботов (из веревочек и пружинок). |
Monday, September 24th, 2018 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
11:09 am |
Жалобы на жизнь Хорошее место Красный Окрябрь, приятное. Но вот соседство с храмом Pussy Riot напрягает. Мало того, что звонят постоянно, так еще какую-то хрень туда привезли, все перегородили, до офиса через лабиринт с рамками приходится добераться. Лучше бы Pussy Riot в другом храме выступили, КМПВ, этот не жалко было бы снести и бассейн восстановить. |
Monday, February 19th, 2018 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
2:50 pm |
Есть ли жицнь за МКАДом? Вакансия в Екатиренбурге С++, Rust, blockchain и зарплата всего 40 000 рублей. Там правда люди живут? |
Monday, November 20th, 2017 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
10:56 am |
Паттерн Model-Update-View и зависимые типы Написал статью на Хабре о том, чего нет в Elm. Кто не может комментировать там, могут комментировать здесь. |
Friday, November 3rd, 2017 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
2:17 pm |
ROS и языки программирования. Дослушал курс до конца, и даже выполнил все задания. Оказалось полезно: 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. |
Friday, October 20th, 2017 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
3:59 pm |
Фронт с роботами. В порядке паралельного изучения ELM и ROS состыковал одно с другим. Хотя в ELM не хватает тайпклассов и макросов, UI на нем пишется поразительно быстро и легко. Я уже просто не понимаю, зачем делать фронтенд на чем либо еще. |
Wednesday, September 20th, 2017 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
4:47 pm |
Забавная арифметика. Есть фунция на Julia
function pconcat(x,y,arc)
xe = exp(x)
xm = 1.0/xe
ye = exp(y)
ym = 1.0/ye
c = cos(arc)
xc = xe+xm
xs = xe-xm
yc = ye+ym
ys = ye-ym
l = (xc*yc + xs*ys*c)/4
larc = (xc*l - yc)/(xs*(sqrt((l-1)*(l+1))))
(acosh(l), acos(larc)*sign(arc))
end
Вольфрам альфа говорит, что pconcat(x,y,0) должен быть равен (x+y,0). Чаще всего так оно и есть, но если вдруг x и y окажутся близки к N*1.09054966350708617, иногда наступает военное время и косинус оказывается больше единицы. Там надо явную проверку вставить, или есть какой-то более правильный способ это починить? |
Tuesday, August 29th, 2017 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
2:23 pm |
Вакансия на Scala Тут внезапно освободилась вакансия Scala-разработчика (а лучше разработчицы, по инфраструктурным соображениям). Разрабатывать придется облачный (хостится на AWS) энтерпрайзный PLM. Зарплаты рыночные и раз в год индексируются. Компания (слишком) быстрорастущая. Оффис около метро Ясенево в Москве. Есть желающие? |
Thursday, July 13th, 2017 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
10:31 pm |
Перхлораты и жизнь. В детстве читал "Продавец воздуха" Беляева - там некто сжижал воздух и продавал его по дешевке на Марс. Уже взрослым, слегка подучив физику и химию, я понял, что эффективнее было бы накапливать ценный кислород в виде перхлоратов. Кстати, от куда перхлораты на Марсе? |
Friday, May 26th, 2017 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
10:17 am |
"Капитан Фантастик" Посмотрел "Капитан Фантастик" - ожидал что то легкое, в стиле "Крокодила-денди", а оказалось совсем другое. Напомнило мне "Меганезию" Розова, с троцкистами-маоистами и праздновании дня Хомского со "спасенным" из магазина тортиком вместо рождества. Но изучать квантовую механику по популярным книжкам о теории суперструн - идея несколько странная. |
Friday, May 5th, 2017 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
2:10 pm |
Хочется странного. Хочу, что бы можно было в for использовать implicit (и import до кучи). Может зря я про Idris лекции смотрел, писал бы на Scala как на обычном Haskell и не мучался... |
Friday, March 17th, 2017 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
11:11 am |
Вложенные транзакции Понял я как поддержать аппаратно вложенные транзакции. Транзакции по вложенности образуют дерево. Есть такое кодирование деревьев (слегка избыточное) - узел кодируется отрезком, ребра дерева от наиболее облегающего отрезка в наибольшим подотрезкам. Таким образом идентификатор транзакции, который добавляется к каждой строке кеш-памяти, состоит из трех чисел - начала, конца и длины (для оптимизации) отрезка. При поиске ячейки выбираются все с заданным адресом в основной памяти, началом отрезка меньше начала у текущей транзакции и с большим, чем у текущей, концом (тоже отрезка). Строки, попадающие под такое условие выставляют на шину специального компаратора свою длину (можно ее сразу вычислить, но не держать же сумматор на каждую ячейку), а он возвращает самую маленькую величину (устройство сложное, но не запредельно). А потом ячейка сравнивает минимальную длину с длиной своего идентификационного отрезка. Осталось все это закодировать на Clash... |
Thursday, December 15th, 2016 |
LJ.Rossia.org makes no claim to the content supplied through this journal account. Articles are retrieved via a public feed supplied by the site for this purpose. |
10:09 am |
Транзакционная память и backtracking Во многих задачах требуется модифицировать какую-то структуру, посмотреть что получилось, и, если не понравится, откатить все изменения. Но транзакционная память делает почти то же самое. Ее можно слегка модифицировать, позволив при попытке завершения транзакции сравнить свою метрику с метриками других ожидающих завершения транзакций и выполнить только самую удачную. Известны ли попытки так ее использовать? По моему этот подход мог бы сделать более эффективными языки типа Prolog или LIFE. |