Category: it

Igor Sikorsky

go to II

Арсенал команд большинста процессоров для организации ветвлений исчерпывается различными видами условных переходов. Первые программисты за первые пару десятков лет неплохо научились ими пользоваться для создания довольно больших программ. После появления языков программирования высокого уровня, накопленные техники никуда не исчезли. Одна из самых важных gotoборческих статей написана Эдсгером Дейкстрой в 1968-ом году (кстати, бложек Дейкстры http://www.cs.utexas.edu/users/EWD/ - это один из лучших бложиков ever). После непродолжительного десятилетнего флейма gotoборцы забороли gotoфилов. Победила точка зрения, что процедур/while/if достаточно для всего. Несмотря на эту яркую победу, широкое использование goto прекратилось лишь более-менее с выходом на тот или иной род пенсии людей, которые этому стилю обучились в молодости. Не стоит недооценивать силу плохого, но систематического образования. Я, например, хвастаться тут нечем, тоже пишу последние пятнадцать лет в стиле, которому был обучен еще в старших классах школы.

Я с большим интересом слежу за реинкарнацией goto на новом техническом уровне. Отчего-то мне, старперу, вся это любовь к лямбда/горутинам/async/await кажется в большинстве случаев неуместным способом ускорить фазу написания кода в ущерб его читаемости. А ведь чтение кода занимает большинство времени в реальных проектах. Не, конечно, корутины/горутины/fibers предоставляют совершенно былинные возможности по управлению графом выполнения. Например, можно преобразовать генератор на callback'ах в IEnumerator без модификации самого генератора:

Collapse )

Я даже не понимаю, почему столь широкие возможности fibers не были по достоинству оценены разработчиками, заботящимися о своей job security.

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

Bing Core Relevance team is looking for summer interns

Bing Core Relevance Team (Bellevue, WA, USA) ищет интернов на лето 2015. Если вы - студент/аспирант, которому интересен Informational Retrieval, вы любите и умеете писать на C++ и/или C#, хочется посмотреть изнутри, как не работают огромные IT-компании, то присылайте резюме на английском на Den.Raskovalov(at)microsoft.com Было бы круто, если бы кроме абстрактного интереса к IR, было бы на что посмотреть или пощупать из созданного вами :)
Грабин

bing is hiring, web ranking team, приходите :)

Начинаю искать разработчиков для своей команды в Bing Web Ranking Team.

Заниматься будем нанесением пользы NDCG Bing'а привычными методами: что находить, какие факторы ранжирования использовать, как и чему учиться. Офис в Bellevue, штат Washington, США. Хотя можно что-то придумать и для тех, кто любит Москву, Мюнхен, Ванкувер или Лондон. Bing растит долю (сейчас ~30% в США), зарабатывает деньги, выходит на новые рынки, прорастает в продукты на всех возможных платформах. Команда живая, работать приятно. Microsoft платит лучше всех на рынке. Сиэттл и окрестности - прекрасное место для жизни. Те, кто любят город, могут жить в небоскребе Bravern в пяти минутах ходьбы от работы, кто хочет уединения, может жить, фактически, в лесу, в пятнадцати минутах езды от работы.

Задавайте вопросы :) Резюме присылать на Den.Raskovalov(at)microsoft.com
Igor Sikorsky

differential evolution

Мда. В следующий раз буду думать, прежде чем начать писать машинное обучение. За два месяца я совершил 274 коммита в devolution.h. И никак не могу остановиться.
Igor Sikorsky

ЯП

Мне фиолетово на то, православно ли писать проверку двудольности на Haskell.

Но меня расстраивает, что в паноптикуме языков нет хорошего скриптового с эффективным JIT.
Igor Sikorsky

О графике и физике

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

Таким образом мне нужна простенькая графика и простенькая физика. А теперь лирическое отступление.

Collapse )

Наткнулся на processing. Это такой framework для визуализации с разумным overhead. Хорошие примеры, разумный API. Вдобавок рядом с ним есть traer.physics - реализация физики для точечных систем. Причем размер реализации очень разумный - 10K. И интегрирует он вполне разумной Рунге-Куттой четвертого порядка.

Отлично. Качаем. Оказывается, что processing несет с собой довольно неплохую IDE, в которой можно писать "рисующие" программы. Все отлично, только один маленький фатальный недостаток: эта IDE - не eclipse. Но это, оказывается, легко обходится. Все отлично, только один маленький фатальный недостаток: в результате получает апплет.

Collapse )

Collapse )

В результате получаем вполне разумное java swing приложение. Посмотрим, перейдет ли processing "на кончики пальцев".
Igor Sikorsky

О жизни. О NAUMEN, NAUMEN CRM и о том, что же я делаю дни напролет ;)

xoposhiy захотел устроить флэш-моб http://xoposhiy.livejournal.com/16737.html?#cutid1. Поддержим и порефлексируем ;) Не знаю, правда, почему Паше это так интересно. Все команды, проекты, компании устроены примерно одинаково (одинаково с точки зрения подобных текстов). Дьявол в деталях. Паша писал о своем проекте, я буду писать о себе. Надеюсь, будет понятно в итоге, почему я подменяю понятия.

Collapse )
Igor Sikorsky

remote access

Одной из немногих полезняшек, которую можно подчеркуть из Microserfs Коупленда, является тезис: "покупайте акции той IT-компании, парковка которой забита в выходной". Всякие Remote Desktop и ssh размазывают этот тезис. Для меня это стало настоящей проблемой. Впервые за мой шестилетний профессиональный IT-стаж у меня дома совершенно полноценное рабочее место. Прихожу домой и не могу отключиться, работаю, работаю, работаю...