?

Log in

Discreet · and · not · discrete.


Do you want to crack jokes about it or do you want me to go?

Recent Entries · Archive · Friends · Profile

* * *
* * *
http://legion.stanford.edu и https://github.com/yaledb/calvin

Заметная часть сложности Легиона состоит в необходимости принимать решения о том, что (задачи и используемые ими куски памяти) и куда (процессоры и память) должно идти. Эти решения принимаются в распределённом режиме работы и в обязательном порядке подвержены всем прелестям такого режима. Например, простое решение о том, на какой процессор поместить задачу представлят собой (внутри) продолжение, написанное на шаблонах C++.

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

Чем тут интересен опыт Кальвина? Кальвин выполняет отдельный этап упорядочения транзакций. Он сортирует их по зависимостям и выполняет в вычисленном порядке, с дублированием, логом и прочими полезными вещами. Сортировка выполняется распределённо, с использованием Paxos (кстати, его реализация в Кальвине очень смешная). Так же и там же может происходить и оптимизация.

И если в случае нынешнего состояния дел Легиона определение критического пути приложения оставлено на откуп пользователя ("сделай custom mapper"), то в случае Кальвина это может быть выполнено автоматически, декларативно.

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

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

То есть, если любишь программирование, то думаешь о нём. Думая о нём, становишься лучше. Становясь лучше, можешь больше, вплоть до написания имени любимой в пыли Луны.

А не заявляешь "я фронтэнд девелопер (whatever that means)" и ждёшь, что перед тобой расстелят красную дорожку.
* * *
* * *
Оригинал взят у vikond65 в Первый Армагеддон
escanear0372

Более трех с половиной тысяч лет назад, 26 апреля 1502 года до нашей эры, на речке Кино, протекавшей у стен города Мегиддо (он же библейский Армагеддон), состоялась первая в истории битва, зафиксированная и описанная летописцем. Правда, ее дата признается не всеми, некоторые историки считают, что сражение произошло в 1457, 1479 или 1482 году до новой эры и не 26 апреля, а 15 мая. Впрочем, это не так уж важно. Главное, что до Мегиддо никакие баталии не оставляли за собой письменных следов.

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

Read more...Collapse )

* * *
* * *
Компания не заинтересована в найме лучших.

(то есть, меня - но я действительно решил первым все три задачи!)

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

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

Так вот.

Сейчас я перевёл разбор VHDL на ANTLR4 и собираюсь сделать систему по сведению типизированного (на классах) и нетипизированного (на деревьях деревьев/лексем) AST воедино.

В результате у меня есть проверка регрессии - AST разошлись, нет? - и возможность постепенно переходить на нормальный подход (с типами, а не один ITree на всё про всё).

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

(подробности тянули на три часа набивания и редактирования поста)
* * *
Если товарищи из адвокатской конторы продумали такой ход изначально, то это обалдеть.
* * *
Задания.
Haskell, много Haskell!Collapse )

Пояснения:
  • Первая задача простая - простой интерпретатор, даже без переменных. Однако даже её стоит решать обобщённо, поскольку следующая задача этого требует
  • Вторая задача чуть сложнее - поиск задержки это проход дерева вычислений в ширину, с вычислением максимальной задержки для каждого из операндов.
  • Третья задача NP полна, поэтому её решение это полный перебор. Моё решение лучше, чем у swizard, поскольку расписание в 25 секунд для примера 6 находится уже на двух процессорах
Надеюсь, интересно.
* * *
https://www.fogcreek.com/kiln/

Его наличие говорит об удобстве git и/или hg лучше всяких слов.
* * *
* * *

Previous