Monday, January 9th, 2006

Программистское-2

Задумался над реализацией протокола BitTorrent в своём PM Downloader-е. Рассматривая исходники ctorrent (консольный торрент-клиент) подумал - хорошо бы и мне реализовать обработку торрента в одном треде, с использованием неблокируемых сокетов. Обработка в одном треде удобна тем, что не нужно заморачиваться с запуском/синхронизацией тредов.
Под катом рассуждения о неблокируемых сокетах, конечных автоматах и пример на C++ эти расуждения реализующий. Интересно только для программистов. )
(4 comments | Leave a comment)

Программистское

Сейчас на работе пишу нечто вроде сервера приложений на C#. Чтоб .Net-объекты были доступны через remoting (аналог явовского RMI). Хочется сделать такую фичу - чтоб увидев новую версию сборки сервер выгружал старую и загружал новую. Для серверов приложений на Java, например для JBoss - это стандартное поведение. А вот у .Net с этим явные сложности. Решил поискать что-нибудь готовое на соурсфордже. Нашёл проект NHost. Скачал исходники, заглянул в них, сначала недоумевал, потом долго смеялся. И ведь надо же, этот примерчик с двумя строчками логики имеет гордое описание «NHost is a universal server for DotNet objects. You create your assemblies with business objects and then use NHost to publish them. It is written in C# and works on .NET, Portable.NET and Mono on Linux and Windows».

И всё же, почему наши IT-специалисты, увидев что-то новое от Microsoft, тут же начинают пищать от радости и тащить эту каку в рот? Вот и сейчас, мне вместо работы с любимой Java приходится морочиться с C#. Вместо того, чтобы заюзать нормальный AS на Java, я изобретаю что-то своё, мужественно продираясь через тернии обильно взращённые Майкрософтом.

По мере углубления в C# сравниваю его с Java. Java удобен, логичен и прекрасен в своей эстетичности. C# рядом с Java выглядит этаким корявым уродцем. Хотя, если отвлечься от эстетики, в C# есть много приятных мелочей (например, в классе System.String есть методы PadLeft/PadRight, для Java аналогичные функции мне пришлось писать самому). В общем, несмотря на корявость реализации, C# вполне практичен. Но постоянная корявость весьма раздражает. Отсутствие checked exceptions, делегаты... Мерзость. :) Получить удовольствие от программирования на C# невозможно. Впрочем, все продукты Майкрософт производят отталкивающее впечатление, ну может быть за исключением Microsoft Office, который just work.
(3 comments | Leave a comment)

Sunday, May 29th, 2005

Анонс SVISTA DIU

Сегодня товарисч Боб Ст. Джон родил анонс о выходе SVISTA Disk Image Utility, гуй для которой делал я. С этой утилитой связано моё знакомство с Linux. Я взялся делать её, не имея большого понятия о том, что такое линукс. Плуосную и виндовую версии родил без проблем и уткнулся в линукс... который оказался ужасом летящим на крыльях юниксоидного маразма. За короткое время я узнал о том, что не все дистрибутивы одинаково полезны, что из-за дебильных dependencies установка программ превращается в кошмар ручной работы, научился собирать ядро "под себя" (дефолтовое ядро от Suse 9.1 висло на моей тачке) и освоил gtk 2. GTK понравился. Довольно удобно писать гуёвые проги. Но для юзанья линуха нужно иметь специфический алиеновский менталитет.

А, ещё порадовал глюк - после каждой перезагрузки у /dev/null снималось разрешение на запись пользователей. Так что процедура загрузки выглядела так -

login: root
password: *****
# chmod 666 /dev/null
# exit

Дальше логин под своим именем и startx. В общем даже прикольно. ;)
(Leave a comment)