wizzard: (Default)
2011-07-23 12:38 am
Entry tags:

сишарпопитон

немного магии, несколько смутивших меня частных случаев - и у нас есть structural typing!

interface ISomething
{
int A {get;set;}
}

int x = (new{ A=5} ).Cast<ISomething>().A; // работает :)

а также __get__, __set__, __method_missing__ и прочие подобные плюшки.
в C# 2, не 4, прошу заметить :)
чего б еще такого соорудить...
 

wizzard: (Default)
2010-11-24 05:49 pm

PEG (Parsing Expression Grammars)

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

а тут пишется и пишется... мысли о DSL’ях резко стали на порядок реалистичнее :)
да что там говорить, парсер + генератор кода для “стековой VM” умещаются на страницу кода вместе с обвязкой!

microbasic

а, да, еще есть другие PEG (Program Expression Graphs), на них тоже надо обязательно посмотреть…

wizzard: (Default)
2009-09-30 04:56 am

big brother entertainment

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

wizzard: (Default)
2009-07-26 07:17 am

заработало!

ура!!!!

оно заработало!!!! теперь дело за малым, написать всё остальное %)
а сейчас можно и спать ложиться...

между делом, соорудил собственный value-type (копирует себя при присваивании) в Python'e ^_^

(наверное, это совсем black magic, но в противном случае если method привязан (bound) более чем к одной инстанции класса, то при попытке сериализации оно нафик рушится. поэтому понадобилась фигня которая при присваивании себя копирует и прибиндивает копию. еще б разобраться, как прикрутить новый контекст замыканий, а то часть имен отваливаются и потом "внезапно" got NoneType, expected 'str', и т.д.) Но пока и так сойдет.


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

wizzard: (Default)
2009-05-17 07:56 am

виртуальные машины-2

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

там видно будет.

wizzard: (Default)
2009-01-19 06:08 pm
Entry tags:

питон и неожиданности

ImportError: cannot import module win32api. все бы было хорошо, если бы винда не была 64-битной.

setuptools работает после доработки напильником, nevow не работает. плохо.

UPD: помогает установка руками pywin32
wizzard: (Default)
2008-08-17 10:27 am

Жестокая Голактика (Evil Space)

если писать что-то на Python'e или F#, очень хочется иногда посмотреть, как же расставлены пробелы.

Shortcut: Ctrl+R, W. Показывает пробелы, табы и EOF. Особенно полезно в сочетании с режимом Enable Virtual Space.

upd: оказывается, есть еще Ctrl+E, S