Mike Potanin
The following are the titles of recent articles syndicated from Mike Potanin
Add this feed to your friends list for news aggregation, or view this feed's syndication information.

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.

[ << Previous 20 ]
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.
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
И еще одна статья.
Функциональные языки в разработке аппаратуры с попыткой описать Clash.
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 с реактивным программированием и программированием в ограничениях моделирует механику роботов (из веревочек и пружинок).
Wednesday, July 6th, 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.
12:04 pm
Где нужны "зависимые типы"?
Все хотят применять "depended types" в разработке больших сложный систем, но мало кто в этом добился хоть каких-нибудь заметных успехов.
Оно и понятно - "зависимые типы" очень усложняют жизнь, а разработкой таких систем занимаются опытные программисты, располагающие развитыми средствами отладки и тестирования. То есть привносимый геморрой не оправдывает потенциальные не слишком радикальные преимущества.
А вот во всяких DSL для конфигурирования, воркфлоу, всяких политик, "умных контрактов" в блокчейнах, скриптов для "интернета вещей", да и просто скриптов для автоматизации рутинной работы чего-то типа "зависимых типов" для обеспечения надежности остро не хватает.
Во первых все эти программы относительно простые, и даже усложнение их разработки в 3-4 раза не так уж и страшно, да и время компиляции от дополнительных проверок сильно не вырастет.
Во вторых средства разработки у них не развиты и врядли для столь узких ниш кто-то этим будет заморачиваться.
В третьих пишут их не профессиональные программисты, а специалисты в своих предметных областях.
Tuesday, April 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.
2:30 pm
Из командной строки за знаниями!
Написал как из PowerShell выполнять SPARQL-запросы на Dbpedia и прочих серверах.
Может кому пригодится.
Friday, October 23rd, 2015
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:09 am
Защита от бомб с жидким вакуумом.
Боеприпасы объемного взрыва делают бабах не сразу, а через более чем 0.15 секунд после распыления горючего вещества. Задержка нужна что бы образовалась смесь с воздухом в правильной пропорции - если кислорода будет мало, смесь будет плохо гореть и может даже не сдетонировать (вместо бабах получится пшик).
Получается, что если поджечь смесь сразу, последствия взрыва можно сильно уменьшить. Высокотехнологичные армии могли бы использовать робототизированные пулеметы с зажигательными пулями или УФ лазеры. Какие-нибудь повстанцы просто расставить везде искровые разрядники и газовые горелки.
Интересно, на сколько это будет эффективно?
Thursday, April 17th, 2014
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.
1:51 pm
Гигантские боевые
Странно, что в этом списке до сих пор нет украинских компаний. Вроде некоторые местные олигархи заявили о готовности финансировать оборону... Тем более что задел есть.
Saturday, April 19th, 2014
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:15 pm
livejournal и adfox.ru (и /etc/hosts)
Оригинал взят у andrzejn в livejournal и adfox.ru
Последние две-три недели все страницы livejournal.com начали неприятно себя вести в моём браузере (Firefox): значок загрузки крутится бесконечно, пока я не останавливаю его кнопкой Esc. При этом все страницы грузятся полностью и работают исправно, только вот этот значок загрузки создаёт неудобства: не видно, когда фоновые закладки уже загрузились полностью.

Сегодня у меня наконец-то дошли руки разобраться. Я избирательно подёргал за расширения, потом за их настройки, и выяснил, что проблема возникает, когда расширения AdBlock и NoScript блокируют содержимое домена adfox.ru. Уж не знаю, что и как именно там так хитро грузится...

Решил проблему так:
1. Разрешил в NoScript домен adfox.ru
2. Добавил в AdBlock разрешающее исключение @@||adfox.ru^$domain=livejournal.com
3. В файле C:\Windows\System32\drivers\etc\hosts добавил строку 127.0.0.1 adfox.ru

[ DW ]

Monday, April 21st, 2014
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:32 am
Стратегия непрямых действий
Оригинал взят у nealar в Стратегия непрямых действий
изложение для тупых
изложение для новых русских


Не только один принцип, но и все принципы войны можно выразить одним словом — «сосредоточение». Но правильнее будет сказать несколько шире – сосредоточение силы против слабости. Для того чтобы этим принципом можно было пользоваться, необходимо разъяснить, что сосредоточение силы против слабости зависит от рассредоточения [383] сил противника, в свою очередь зависящего от распределения ваших собственных сил, имеющего вид и частичный эффект рассредоточения. Ваше рассредоточение, его рассредоточение, ваше сосредоточение – такова должна быть последовательность действий, причем каждое последующее действие является результатом предыдущего. Подлинное сосредоточение сил – это результат предварительного их рассредоточения.

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

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

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

Позитивные принципы


1. Выбирайте цель по своим средствам. При определении цели следует руководствоваться здравым смыслом и трезвым расчетом. Бессмысленно «откусывать больше, чем можете проглотить» . Первым признаком военной мудрости является умение отличить возможное от невозможного. Учитесь смотреть в лицо фактам, не теряя веры в свои силы. Вера очень понадобится (та вера, которая помогает достигнуть, казалось бы, невозможного), когда начнутся боевые действия. Уверенность подобна электрическому току в батарее. Не допускайте истощения ее в напрасной трате сил. Помните, что ваша уверенность будет бесполезной, если элементы вашей батареи – люди, от которых вы зависите, — будут морально подавлены.


(про нас пишет, гад :))

2. Никогда не забывайте о цели, когда вы приводите свой план в соответствие с изменившейся обстановкой. Имейте в виду, что вашей цели вы можете достигнуть различными путями, но следите за тем, чтобы захват каждого промежуточного объекта приближал вас к намеченной цели. При выборе объектов оцените возможность их захвата и то, в какой степени это скажется на достижении основной цели. Плохо отклониться в сторону, но еще хуже оказаться в безвыходном положении.

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

4. Действуйте по линии наименьшего сопротивления, придерживайтесь такого направления до тех пор, пока сможете без лишних потерь продвигаться к намеченному объекту , захват которого приблизит вас к вашей цели (В тактике этот принцип распространяется на использование резервов, а в стратегии – на развитие любого тактического успеха.)

5. Выбирайте направление, на котором может быть создана одновременная угроза нескольким объектам. Тем самым вы поставите противника перед дилеммой и, воспользовавшись этим, сможете захватить по крайней мере хотя бы один менее защищенный объект, а может быть, и другие объекты.

Наличие одновременной угрозы нескольким объектам создает благоприятные предпосылки для захвата одного из них. Если же вы наметите только один объект, в этом случае противник не окажется беспомощно слабым, и вы наверняка потерпите фиаско, поскольку противник будет знать направление вашего удара. Нет более распространенной ошибки, чем смешение понятий «выбор одного направления действий», что обычно явля ется правильным, и «выбор одного объекта» для нанесения удара, что обычно не увенчивается успехом. (Этот принцип применим главным образом в стратегии, но его следует применять где только возможно и в тактике. В сущности он является основой тактики просачивания войск.)


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


У хорошего манагера всегда есть "план Б"!

Негативные принципы

7. Не наносите удар всеми силами, пока противник начеку, т.е. когда он занимает выгодные позиции для отражения удара или уклонения от него. История учит, что если противник не слишком слаб, невозможно нанести ему эффективный удар, [385] пока не парализована сила его сопротивления или способность уклоняться от удара. Поэтому ни один командир не должен наносить удар противнику, закрепившемуся на позиции, до тех пор пока не убедится в том, что противник парализован. Паралич противника достигается его дезорганизацией и ее моральным эквивалентом – деморализацией

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


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

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

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


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

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


[ << Previous 20 ]

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.