← All posts tagged icfpc

SannySanoff
Linux Windows programming icfpc А вот готовлюсь к ICFPC. А вот в этом году будем на плюсах. Готовлю заготовку CMake проекта, чтобы он запускался на трех платформах, тк участники будут разные. Qt у меня внутре, в Qt есть QOpenGLWidget, в нем рисую через QPainter (2d graphics). Взял с 2018 года модельку, налабал рендерер (на 2d canvas, сам делаю перспективные проекцыи и сортирую по z-index ерунда короче)

MSVC/Windows: Отрисовка 140мсек, математика 4 сек
Clang/Linux: Отрисовка 115мсек, математика 2.5 сек.

Оба — релиз билды на одном железе, время — на 1 frame в анимации. Знаю, шо отрисовка медленно, не в этом суть.

Главное беспокоящее, что что-то чахнет колосс.
SannySanoff
programming icfpc клятi москалi По результатам ICFP Contest 2016, у нас 19 место 8-\. Просрали полимеры; всего же открыли счет 180 команд.

В лайтнинге первое место взял-таки неизменный севастопольский Алексей, автор ejabberd, организатор jabber.ru. Он с женой складывал оригами руками 8)

По строке ICFP на ютубе находится не International Conference on Functional Programming, а International Conference on Family Planning с какими-то танцами, неграми и прочими азиатами. Миллиарды Билла Гейца работают на депопуляцию "всякой черни", вертятся.

Такие дела.
SannySanoff
Java programming внезапно Haskell продуктивность На последнем ICFPC нужно было писать AI (алгоритм) для бота PACMAN на функциональном языке, неважно каком, потому что то, на чём пишешь, нужно было затем скомпилировать в байткод лисп-машины. Было выбрано нехилое подмножество Java, был написан компилятор в нужный байткод и затем писался AI уже на Java, с женериками, функцией fold0, filter, лямбдами и подобной радостью.

Это был тот редкий момент, когда на жабе пишешь purely функционально.

И у меня оформилась, наконец, общая претензия к функциональному стилю.

Функциональный стиль заставляет придумывать множество идентификаторов или в противном случае писать многоэтажные выражения. Если писать функции — одно-пятистрочники, то это будут идентификаторы функций. А если писать функции 20-строчники, это это идентификаторы let-varibles или их аналогов. А если ты пишешь многоэтажные выражения, то не отладить нормально: не посмотреть в процессе промежуточные состояния.

А у меня фантазии не хватает эти идентификаторы сцуко придумывать. А потом не хватает склероза их вспоминать, или устаешь искать глазами что имел в виду . Банальный бытовой лисп поэтому меня бы просто разорвал на куски.

Да, я на обычной индустриальной жабе пишу функции на 3 экрана, бывает. Один FOR, за ним другой WHILE, комментарии над каждым. А когда не пишу большие ф-ии, то у меня короткие типовые имена методов в пространстве имен конкретного класса.

И кстати да, в нашей функциональной жабе работает autocomplete с привязкой к типам и женерикам (правда часто со скрипом!), и я почувствовал каково оно было бы на Хаскеле писать в нормальной IDE. Круто было бы на Хаскеле с нормальной IDE. Но проблема придумывания и вспоминания названий всё равно бы осталась.

Это наверное возрастное (?).

Всё остальное в функциональном стиле для меня хорошо. И немутабельность хороша, и чистота и грязнота. Ну а конкретно в функциональной жабе несколько напрягает разрастание сигнатур типов, естественно 8), даже в восьмерке, долгих ей лет. И еще неприятно прикалывает ошибка типа, на которую показывает IDEA, в третьем параметре какой-то функции которую я вызываю внутри лямбды внутри map, а всё потому что результат этого map присваивается переменной, тип которой уже написан слева и не сходится с результатом выражения справа. Я бы предпочитал чтобы IDEA ругалась, наоборот, только на тип переменной слева от знака присваивания (binding, whatever), если правая часть имеет осмысленный тип. Но может на правой части просто можно ругаться для них разнообразнее? Кто знает.

Ну, и ICFPC в этом году мы продули: писать AI для ботов клеточных игр никто достаточно хорошо не умеет, и особо не любит, не то что компиляторы или профайлеры результирующего кода.
SannySanoff
programming Haskell коварно Вот FPComplete таинственно размахивало обещанием заструячить офигенный Haskell IDE и потрясти основания основ программинга на Хаскеле. Лично я грыз ногти — будет ли это еще один eclipse-based подход или они осознали IntelliJ IDEA и наконец-то напишут туда плагин в тамошнем духе?

Реальность ( youtube.com ) оказалась куда реальнее. Перцы написали web-based редактор с сервер-сайд GHC фермой и github integration. Ну йолы палы!

Как я буду тестировать мои бинарники, скармливая им на stdin локальные файлы?
Как я буду грепать мои логи?
Как я буду кабалить свои кабалы?
Где мои брекпойнты? Где мой evaluate in context? Где мой рефакторинг?

Где мой 21 век?

Какая-то мода на программирование в бровзерах на планшетах без клавиатуры в гамаке стоя на лыжах — вот нынешний тренд ( touchdevelop.com , между прочим рекомендуется для ознакомления, чуваки реально потрудились; нашел по ссылкам от нынешних организаторов icfpc 2013 ( research.microsoft.com ) . Кто проникся Scratch ( scratch.mit.edu ) тому понравится ) . Нынче серьезные инструменты делает токо МС и IntelliJ, остальные используют продвинутые текстовые редакторы (и это всё же лучше чем web-based IDE!)

Игра в баловство сразила даже на нашу священную корову Хаскель, слава богу не сам SPJ умом тронулся, а другие, хотя и весьма индустриальные и весомые, хаскель-дяди.

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

Пока писал, увидел что игра у других людей что-то тоже не клеится — #2433791 . Шиза косит ряды людей.
SannySanoff
Juick programming ICFPC 2013 года будет как-то связано с мелкософтом. Объявлены даты.

research.microsoft.com

The contest will take place from August 8, 2013 to August 11, 2013.

ICFPC — открытый командный конкурс программистов с задачами НЕолимпиадного типа, а вовсе даже наоборот, одна задача на 3 дня, всей толпой её решай. Наподобие google AI contest, но не обязательно artificial, а вполне даже natural intellect соревнуется. Рекомендуется программистам — и квадратам, и либерастам, и анархистам, и стар и млад, оттяг на все выходные.

Рецомменд.
SannySanoff
Juick programming Поздравьте нас, мы уже победили на зимнем icfpc: двое жуйковцев, и еще один здесь на жуйке не представлен. Поздравления отправляются @tilarids как сделавшему основной труд, и моей жене, давшей финальный ответ.

data.infognition.com:8080
SannySanoff
programming коварно тоталитаризм На ICFPC 2012 открыли регистрацию.
Теперь регистрируют подушно, макс 20 чел в команде (команду тоже регистрируешь), required.

Предлагают тут же слить рег. инфо светочу нашему, организатору Facebook, для рекрутмента, если гож окажешься.

Покажут ли рег инфу участникам — неясно.

icfpcontest2012.wordpress.com