Windows Forms

04.05.2010 @ 04:55

Вот уже третий день изучаю .NET. Так долго к нему подбирался и всегда отталкивали какие-то факторы: огромный объём, страшный C#, MSDN (блять, какой же он неудобный). Но с приходом в мою жизнь Lua солнце стало светить ярче, хуй стоять крепче, трава отпускать легче.

Сегодня копал дебри Windows Forms. Как все легко и просто. Как всё приятно. После недолгого знакомства с wxWidgets и, совсем уж коротким, с другими библиотеками остался неприятный осадок. Думаю, сказался ещё и питон — wxWidgets я пытал в паре с этим языком. После примерно годовалого использования питона, неприязнь к языку выработалась стойкая.

Кстати про питон. Разработчики в новой версии ввели сортированный set, как новый тип. О, блять, привет дзену питона — то, чем так любят хвалиться разработчики на питоне. Вводите новые типы! Больше сущностей, ебанько! Ещё больше!

И снова про .NET. К тому же, большим подспорьем являются удобные конструкторы. Да куда там, одно их наличие для Windows Forms уже плюс. Найти что-то нормальное для wxWidgets было очень не просто. А тут тебе и Visual Studio с поддержкой стандартных языков и #Develop с дополнительной поддержкой Boo. Красотища же.

# / комментарии (0) / Мастерю, Python, Lua

Lua

10.12.2009 @ 03:25

Всё руки не доходили сесть и пописать на Lua. И вчера-таки уселся. Язык понравился. Никаких тебе статических (Boo  — симпатишный C#) или жёстких типов (Python). Встроенных функций минимум, да ещё и с делением на модули: string, os и несколько в глобальном пространстве имён. Есть модули, которые нужно подключать. Вот с ними, кстати, имеет место геморрой. Например, есть модуль ex, в нём функция sleep(). Можно вызвать os.sleep(), а можно и ex.sleep(). При этом вызвать os.sleep() нельзя до подключения ex. Яващенихуянепонял.

Или модуль alien для подключения динамических библиотек. Понятно, что Lua язык в первую очередь для интеграции в Си, обратного-то всё-равно хотца и, вроде как, имеется. Но с косяками.

Изначально хотел подгружать библиотеку стандартной функцией package.loadlib(), но выгружаемым из библиотеки функциям нельзя задавать значения. И программа дохнет. Пришлось использовать alien, но и тут не всё хорошо. До получения функции, даже если функция не имеет параметров, приходится приписывать ей типы значений: table.FuncFromLib:types(таблица типов). То есть в функции, где нет параметров пишем table.FuncFromLib:types({’int’}) и только после вызываем table.FuncFromLib(nil). Это я такой через жопу?

Ну и похуй. Зато всё остальное меня порадовало.

В результате минут за двадцать родил перехватчик пульта тюнера Beholder для Light Alloy. Точнее, подобная хуйня уже была написана на питоне, но от туда скопировал только список констант пульта и программы. Также нарыл методом тыка константу sound_next (код 405) для переключения звуковых дорожек. В документации к Light Alloy про неё почему-то забыли.

В общем с какой стороны не глянь — гений.

# / комментарии (0) / Lua

RSS / lexa@cutenews.ru / 165280011
Работает на Berry. Каждый посчитан «Спеcтой».