metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-03-10 10:10 pm

Дурдом

С удивлением обнаружил что в .NET 2.0 нет родного способа стянуть почту с pop3 и распарсить ее (т.е. mime) на предмет текста и аттачей. Нужно использовать сторонние либы, причем либ много разных и все разной степени невменяемости.

"Готовые либы делают всю вашу работу за вас, до тех пор, пока вы делаете то, что предусмотрел автор либы".


PS: посмотрел тест-кейсы для парсинга MIME заголовков. Неудивительно, что разные либы по разному валятся - это же гамон какой-то:
Content-Disposition: attachment; filename*0="foo."; filename*1="html"
'attachment', specifying a filename of foo.html, using RFC2231-style parameter continuations. 


Прикручу этот конкретный случай в долбаный чужой парсер, благо, исходники доступны (которые я уже пофиксил наверно на треть и так).

[identity profile] zamotivator.livejournal.com 2010-03-10 10:36 pm (UTC)(link)
Там ещё и ftp client нерабочий!
Если сервер находится в другой локальной подсети, то канал команд открывается, а вот каналы на передачу данных - хуй.
Будет висеть. Молча. Ни ответа, ни привета. Иногда выблюет исключение что-то типа "timeout error".
То, что глюки связаны с другой локальной подсетью - наткнулся опытным путём.

Да и как может быть качественной библиотека, где в оффициальной документации для создания подключения предлагают вызвать фабрику от СТРОКИ, получить в результате экземпляр БАЗОВОГО КЛАССА WebClient который потом привести к НАСЛЕДНИКУ FtpCLient?
Бля, это даже не смешно. При том что QFtpClient к тому моменту уже был, и Qt4 был, и это работало, и не глючило...

[identity profile] zamotivator.livejournal.com 2010-03-10 10:41 pm (UTC)(link)
http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.aspx
Ёбанный стыд. Уже пять лет прошло, а оно всё также, не поменялось ни на йоту

// Get the object used to communicate with the server.
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);

.NET - говно, писали - индусы. Пруфлинк - выше

[identity profile] metaclass.livejournal.com 2010-03-10 10:43 pm (UTC)(link)
Да, с клиентами там реально бред :)

[identity profile] lionet.livejournal.com 2010-03-10 11:23 pm (UTC)(link)
А как же Барбара наша Лисков!?!

[identity profile] metaclass.livejournal.com 2010-03-10 11:39 pm (UTC)(link)
Я подозреваю, что от внутренностей библиотеки классов дотнета ее бы хватил удар.

[identity profile] zamotivator.livejournal.com 2010-03-11 09:25 am (UTC)(link)
Думаешь авторы дотНета о ней слышали? Я сомневаюсь )))

[identity profile] metaclass.livejournal.com 2010-03-11 10:14 am (UTC)(link)
Те, кто делает ядро языка и виртуальной машины - слышали однозначно.
А вот те, кто на этом делают енд-юзеровские либы - не слышали и вообще они невменяемы чуть более чем полностью.

[identity profile] http://users.livejournal.com/_windwalker_/ 2010-03-11 12:55 am (UTC)(link)
Ребе бы пользовался javax.mail

Там всё более-менее кошерно. Как emails, sending emails, receiving emails, так и mouse, clicking, double clicking формирование MIME сообщений из различных кусманов и потоков :)

[identity profile] vp.livejournal.com 2010-03-11 06:47 am (UTC)(link)
Кстати в чем отличие. В Qt все клиенты, которых я трогах (хттп, фтп, смтп, поп) - все рабочее с полупинка :)

[identity profile] theiced.livejournal.com 2010-03-11 10:27 am (UTC)(link)
мыши, кактус.