netp_npokon: (geek)
Наши друзья с альтернативных блог-серверов интересуются, почему вот такой код:
fs = []

for x in [1, 2, 3]:
    fs.append(lambda : x)

for f in fs:
    print f(),

печатает 3 3 3 вместо 1 2 3.
Read more... )
netp_npokon: (Default)
У нас с друзьями есть традиция: раз в год мы собираемся у одного из нас
и пишем дурацкие алгоритмы.

[livejournal.com profile] _avm_

Наверное, пора написать пару слов про ICFPC. Те, кто интересовался, уже видели все результаты и читали все мыслимые отчеты, так что ссылок не будет, а будут только личные мысли и впечатления.
Итак, участвовали мы вчетвером: [livejournal.com profile] dendik, [livejournal.com profile] _avm_, ваш покорный слуга и некто kpierre, студент из Питера, с которым Дендик познакомился на mpp@c.j.r. Место в таблице особого упоминания не заслуживает (можно считать, что в этом году мы только прошли квалификацию), основными результатами в этот раз были фан и опыт.

Размещение
Очень здорово, что в этом году нам удалось три дня просидеть у Даньки: не пришлось ездить туда-сюда (я, правда, все равно ездил, потому что ССЗБ), перенастраивать всякую инфраструктуру и многократно закупаться едой. Кроме того, это лучше, чем работать удаленно: можно и code review сделать, и порисовать на бумаге, да и скорость звука еще никто не отменял.

Режим
У меня предложение: в следующий раз попробовать двадцативосьмичасовой рабочий день. В остальном практически все здорово (и, главное, синхронно), хотя с отдыхом мы все-таки переборщили, по-моему. То есть гулять в парке на свежем воздухе — это круто, но получилось, что кусок продуктивного периода пострадал. Тем более, у нас был еще один участник, с которым перерывы было довольно трудно согласовать.

Инструменты
Очень жалко, что в итоге у нас получился разнобой в языках. Я пропинал половину тренировки, из-за чего не мог связать двух слов на OCaml'e и рисовал на питоне рисовалку. Саня и Дендик хакали на Камле преобразование DNA->RNA, а Пьер писал на Хаскеле какие-то утилиты для ручного рисования картинок. В итоге никто не мог влезть в чужой код и чего-то там поправить, или хотя бы посмотреть.

Разное
Видимо, перед тем, как писать код, рассчитанный на большую нагрузку, стоило все-таки не полениться, потратить час на выбор и реализацию оптимальной структуры данных, и пользоваться ею сразу, а не вкручивать в живой код. То же и про странные языки программирования с 31-битной арифметикой: лучше знать о таких вещах заранее.
netp_npokon: (Default)
Если вдруг кто-то еще не читал отчета Адепта про ICFPC'07 ([1], [2], [3]) можете сделать это теперь.
Я, к примеру, узнал оттуда про многопользовательский редактор Gobby (смотреть) и про тайм-киллер Python Challenge. Это не считая порядком обкусанных локтей.
netp_npokon: (размышления)
"Еще проще можно попробовать это, -- добавил он, -- если спеть ребенку песенку и дать понюхать надушенный платок, в то время как колесо вертится".
Я сказал: "Почему вы сами не попробуете с вертящимся колесом? Вы ведь любите такие штуки?"
Он быстро ответил: "Достаньте мне ребенка, и я попробую!"

Вильям Сибрук. Роберт Вуд.


На недавней лекции Брюса Эккеля меня поразила идея о том, что детей старшего школьного возраста можно учить программировать на Питоне, а не на всяких там сях, а тем более с крестиками в конце. Поразила тем, что сама по себе в голову не пришла, хотя и достаточно очевидна. Оказалось же, что все уже украдено до нас: еще в 1999 году Гвидо придумал термин CP4E и даже попробовал выбить каких-то денег под развитие этого проекта. Даже как-то жалко, что он заглох.
netp_npokon: (Default)
Все-таки жалко, что состояние итератора в питоне нельзя по-человечески сохранять. Приходится идти на всякие ухищрения.
Read more... )
Будем ждать, когда Наану напишет eryx :)

Upd: я тупой. Конечно же, итераторы сохранять таки можно, просто я поленился разобраться, когда это не получилось в первый раз. Но и так тоже неплохо :)
netp_npokon: (ночь)
Практиковали с [info]питровечем XP. Получается довольно продуктивно.

Окромя того, за сегодняшний день меня впечатлили две вещи:
- гномья программа, которая каждый час блокирует работу пользователя на три минуты (для производственной гимнастики, видать)
- способ верстки с помощью списков, который как-то никогда не приходил мне в голову (кстати, сейчас нагуглилось вот чего)
netp_npokon: (Default)
Интересная идея - аппликативный язык программирования, работающий с графами.
Этакое расширение Рефала на двухмерный случай.
netp_npokon: (ночь)
Кстати, подведены итоги ICFPC'06

У команды DaSH ни разу не почетное 75 место :)
netp_npokon: (Default)
Python - прелесть!!

BTW, я тут ненадолго выпадаю из общественно-политической жизни в связи с коллективной подготовкой к ICFPC'06. Примерно до понедельника.
netp_npokon: (Default)
А еще вчера утром мы с Чукчей ездили на борландовский семинар, посвященный релизу Delphi 2006 (точнее, Borland Developer Studio, включающей Delphi, C++ Builder и C# Builder). Пожалуй, по сравнению с Delphi 3, который /me успел еще погонять, эта версия (10, соответственно) производит куда более серьезное впечатление. Особенно радуют всякие мелочи вроде встроенного контроля версий участков кода (если я правильно понял эту идею), системы отслеживания memory-leak'ов в Builder'е и скриптуемых design-time шаблонов (LiveTemplates), которые, судя по всему, достаточно мощны. Почему-то ничего не было сказано про генерацию документации (что, неужто так и нету??), а сборка приложений все еще осуществляется через bat-файлы (полноценный build-configuration David I пообещал в следующей версии)

Что-то в последнее время я все чаще убеждаюсь, что при всех удобствах vim'a таких возможностей у него нет, да и прикрутить их не так уж и просто. А ведь есть и такие, которые помогли бы при программировании под невинду.


И еще. Страна остро нуждается в грамотных переводчиках. Товарищ, который переводил доклад вице-президента Borland, был, мягко говоря, не в теме. На самом деле он не только не знал терминологии ("А делимитатор по умолчанию - значок доллара" и "Сообщество открытых источников"), но и не был знаком с ситуацией в индустрии (перевести "InterBase" как "Какая-нибудь база данных", а потом заявить, что "По специальному соглашению Borland предоставляет код VCL для разработчиков CLX"). Финишем была игра в "испорченный телефон" во время вопросов. Сидишь и смотришь, как человек задает один вопрос, а отвечают ему на другой, потому что переводчик такой ас. Низачот, в общем. "One ball away" (c), как высказался Чукча.
netp_npokon: (Дурень)
Оно почти без изменений сожрало паскалевский сабмит с 99-bottles-of-beer.net.
Отсылать уже можно, косметику наведу вечером.
netp_npokon: (паспорт)
Предыстория. Еду я позавчера в метро и думаю о том, что было бы здорово иметь в винде такую программку, которая бы работала с файлами. Типа, скажешь ей, чего куда скопировать, где что напечатать, какую софтину запустить, а она бы все это делала. Можно было бы ею музыку сортировать заодно.
В какой-то момент до меня доходит, что такая хорошая программка зовется bash =)

Но это присказка, а сказка еще впереди ;)
SPGremlin inside =) )
netp_npokon: (Default)
Мы давилки-молодцы, мы кошег'ные мацы.
Выг'астем - научимся, а пока лишь мучимся

-- South Park


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

BTW, про подзадачи. [livejournal.com profile] dendik надысь очень удачно процитировал Адамса: "Для меня нет большего удовольствие, чем потратить день на автоматизацию задачи, которую руками я бы выполнил за полторы минуты.". Воистину приятно написать какой-нибудь плюшевый скрипт, который чуток облегчает жизнь, а потом сидеть и переться от того, как оно работает - даже если за это время я мог бы руками написать результат его работы. Тем более, эйфория от работающего кода скоро пройдет, а какой-никакой опыт останется :)
netp_npokon: (Default)
Открываю сезон ночного кодинга. На повестке дня ночи - интерпретатор Паскаля на Рефале. Типа, практикум. Поглядим, чем это кончится ))

Upd: в комментах жгут ;)
netp_npokon: (Default)
Полез в Common LISP, чтобы проверить, как работают примеры для MAPx из "Мира Лиспа". Похоже, у разработчиков clisp'a и у авторов книжки разное видение того, как работает NCONC. Более того, там без полбутылки-то и не поймешь, что она делает.

Дзен

Jul. 9th, 2005 08:11 pm
netp_npokon: (Default)
Читаю "Куроводство" Котерова. Офигеваю.

Набла 10. Рекурсивный main(), или программирование квадратиком. (цитируется не полностью)

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

Тем временем, один человек по имени Дмитрий Мельник, не теряя этого самого времени, решил посжимать программы на практике. Угадайте, что делает следующий код.

Код под катом )
Ну что, догадались? Нет?.. Тогда откомпилируйте программу и запустите (не важно — в Unix или же в Borland C 3.1). Введите выражение:

d=8, 1+(a=b=2*(c=2+d))/5+a

Вы получите в ответ:

25

Поразительно, не правда ли?.. При таком объеме он еще и правильно считает. Вот что пишет по этому поводу сам автор.

Слово автору )
По новейшим сведениям, 20 строк — не предел для такой задачи. Имеются рабочие версии и размером в 13 строк! Правда, алгоритм там применяется немного другой, менее универсальный

<...>

Да, и последнее. Никогда так не делайте.
netp_npokon: (Default)
Черт, а ведь прочитать учебник по PHP, как я поступил пару лет назад - это чертовски мало. Надо еще постоянно чего-то читать и быть в теме, потому что умения "просто кодить" тут недостаточно.


// Здесь были всякие мысли про подходы к решению одной типичной задачи на PHP. Но нах?
// Может, оно будет иметь смысл, когда я все-таки разберусь в ней и определюсь,
// какой подход мне кажется более удобным. А то наломаю тут дров.

Current man: наблы из "Куроводства" Котерова.
netp_npokon: (Default)
Сегодня ботал ООП в PHP4. Забавно оно там реализовано, хотя местами синтаксис непривычный (ни вам точек, ни указателей %) ). [livejournal.com profile] drakonophil вроде говорил, что в пятой версии все переделали как-то совсем по-третьему. Поглядеть бы...

Отдельный антиреспект тов. Котерову за то, что он не форматирует свой код. Ладно бы в книжке, но ж в HTML-версии мог бы расставить сдвиги.

МГ

May. 18th, 2005 10:30 pm
netp_npokon: (Default)
Мы оно сделали. Оно - это машграф. Оно даже сдалось на четверку.
Спасибо всем, кто поддерживал советами, пинками и вычислительными мощностями, в особенности [livejournal.com profile] aaronrv, [livejournal.com profile] igorash'у, [livejournal.com profile] the_bee, [livejournal.com profile] koo_kah_man'у и [livejournal.com profile] pitrowech'у. Родина вас не забудет ;)


Не машграф )
netp_npokon: (Default)
И снова здравствуйте. И снова машграф. Добавление к этому посту. Просьба отписавшихся в нем присоединиться, если еще не передумали.

Архив с программой я залил сюда:
http://distributed-cg.narod.ru/distr.exe

Сайт (хи-хи!) поддержки проекта (хи-хи!): http://distributed-cg.narod.ru
Мини-видюшка: http://distributed-cg.narod.ru/video50x50.avi
Статистика: http://distributed-cg.narod.ru/stats.html

Большие видюшки со сжатием:
http://distributed-cg.narod.ru/Video_400x400_blur.avi
http://distributed-cg.narod.ru/Video_400x400_compr.avi

Внимание!
Архив весит 4.54 мегабайта. Если у вас проблемы с инетом, пожалейте себя ;)
Каждый фрейм весит 468 килобайт, WinRAR сжимает их примерно в три раза.
Обсчитывается оно долго. Несколько кадров могут считаться всю ночь. Если вам часто нужна вычислительная мощность вашего компа или нет возможности оставить его работать на ночь - лучше и не пытаться.

Инструкция по применению:
Скачайте архив, распакуйте и отпишитесь в комментах о том, что хотите принять участие, указав скорость вашего компа. Видюха роли не играет.
Получив от мну номер начального кадра, запускаете прогу и вбиваете номер туда.
Сгенеренные кадры прога сваливает в свой каталог. Послать их можно любым способом, например, на ramosian.glider{at}gmail[dot]com (но лучше не в RAR - по-моему, они режут архивы) или на rglider{at}newmail[dot]ru
(Upd) В "Диспетчере задач" Windows для процесса RayTracing.exe можно установить низкий (или ниже среднего) приоритет. В этом случае оно будет работать вполне цивильно+не будет стопорить систему.

Заранее спасибо откликнувшимся ;)

Upds )
Upd9: проект закрыт, всем спасибо )

Profile

netp_npokon: (Default)
netp_npokon

April 2017

S M T W T F S
      1
23 45678
9101112131415
16171819202122
23242526272829
30      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 2nd, 2025 11:46 pm
Powered by Dreamwidth Studios