Pull to refresh
12
0
Send message
Бедный офицер, как не пытался автор спасти его анонимность — в комментах все равно его настойчиво разоблачают :)
[offtop]Черт побери, вероятно, после двух бессонных ночей стоило бы сначала выспаться, предже чем оставлять комменты: тролли даже по углам кватриры начинают мерещиться. Мне, почему-то, показалось, что комментатор пытался «вбросить», что статья — фейк, картинки — фотошоп, а при желании можно было бы «восстановить» все исходники вплоть до комментариев. Теперь я понимаю, что поспешил с выводами и, возможно, обидел человека, которо совершенно не это имел в виду, за что хочу попросить прощения. А еще, впридачу, я сейчас вот с самим собой разговариваю =/ Спать, спааать![/offtop]
Если вдруг начнется — я не хотел, честное слово) Я от чистого сердца, правда.
С кармой -13 — так толсто и очевидно? Даже троллинг уже не торт =/
Это вот прям в назидание всем хейтерам «быдлокодерских быдлоязыков», которые так любять брызгать слюной и люто минусовать любые упоминания чего-то вроде PHP или VBA. Респект и спасибо автору, доказал, что в талантливых руках любой язык — лишь послушный инструмент для воплощения (почти) любых творческих идей и фантазий.
Спасибо, теперь все понятно с этими плагинами. Какие-то sbt-команды, кроме gen-idea, мне пока не приходилось использовать, необходимости в этом особой не было. Хотя, иногда я запускаю тесты в терминале, и тут у меня создалось ощущение, что idea компилирует проект куда-то в свое отдельное место. Потому что после компиляции проекта в idea и попытке запуска тестов из терминала сразу после этого, отдельно запущенный sbt компилирует проект заново. То же самое касается зависимостей: после добавления какой-либо библиотеки в libraryDependencies IDEA, как и полагается, качает ее из репозитария. Но sbt, запущенный после этого, тоже скачивает эту же библиотеку еще раз, игнорируя скачанную идеей.
Да, там вместе с плагином для поддержки Scala устанавливается плагин SBT, плюс еще один отдельный плагин SBT доступен… ну как еще один отдельный плагин. Зачем он — я так и не разобрался, хотя установил его поначалу для пробы, но потом снес. Видимо, просто остался с былых времен для старых версий среды. Кроме того, чем мне нравится idea — в ней можно запустить отдельный (dedicated) процесс компилятора scala, и в результате компиляция проекта у меня происходит ну очень быстро. Ну и тесты idea отлично гоняет. В общем, одни радости у меня с переходом как на scala, так и на idea :)
Спасибо ) Я вот думал вставить голосование в конце про потенциальную тему для потенциальной следующей статьи. Но так и не решился. Может, все же стоит?
Спасибо. Штук 5 разных версий поменял, пока статью писал. Долог путь к совершенству :)
Open-source — не реклама ;) И по-моему, достаточно в тему, кому-то действительно может пригодиться.
Спасибо за теплые слова, это вдохновляет :) Сейчас готовлю урок по Akka.FSM, тоже на Scala, сегодня буду публиковать. По поводу срока — если бы Вы не спросили — я бы сейчас пребывал в заблуждении, что мне хватило пары-тройки дней. Но я посмотрел логи git, и вижу, что у меня ушло на это в общем итоге дней 10. Но не стандартных рабочих, а моих фрилансерских. В последнее время это в большинстве случаев по 14-16 часов за компом, с небольшими перерывами. А задача, действительно, тривиальная, и изначально я запланировал под нее навскидку 1 день.
Отлично, спасибо за ссылку! Не совсем понял, при чем тут JS, но это и не суть важно :)
А не могли бы примером поделиться, пожалуйста? Было бы очень интересно.
Видимо, до «просветления» вы тоже читали весьма бегло. Выражусь Вашими же словами: меня удручает ваше невнимательное чтение статьи вкупе с устойчивым желанием делалть выводы и утверждения в комментариях, основываясь на своих фантазиях, а не на реальном тексте статьи.
Дочитайте до конца, уверяю, там будет хеппи-енд и срыв покровов. Суть именно в том, что «ссылок на почитать» в природе не существует. Есть только исходники, и даже они без комментариев и пояснений. Или вопрос «где почитать исходники» в статье я тоже не раскрыл?

Насчет нетривиальной в рамках libc задачи — кто же спорит. Но проект на Scala, не на C. И проект немаленький, чтобы брать и переписывать на C только из-за этого. А тут затык на такой тривиальности. Об этом, собственно, и статья. О том, какие трудности я испытал при переходе, какие подходы попробовал, обо что копья поломал. И еще (но это уже в конце, в развязке, в тех лишних абзацах, которые, видимо, нужно удалить, Вы их все равно не читаете, я понял) о том, как именно я вышел из этой ситуации, и что именно послужило ключем решения всех проблем. Для Вас, это, конечно, может быть и не результат, для Вас главный результат — пробежавшись вскользь по статье, не разобравшись в сути, тут же настрочить коммент о том, что автор не разобрался в сути. Это гениально, я считаю. Мне, как новому хабра-юзеру, теперь есть с чего брать пример.

А если для Вас единственной в статье была интрига об упавшем «боевом» классе — то это может означать только то, что я хреновый писатель. Ну и с какой радости мне копаться и выискивать суть проблемы в блокирующем Java API (при том, что проект на Scala+Akka+реактивный неблокирующий подход), и тем более делать это основной интригой моей статьи — для меня загадка. Если Вам это так интересно — напишите свою статью, с сутью и решениями. А моя — не об этом.

В любом случае, спасибо Вам за первый комментарий. Я очень люблю общение, и мне было приятно с Вами подискутировать, и приятно, что хоть кто-то прокомментировал мою писанину. Я тут еще одну статью пишу, не премините заглянуть, если что. Мне очень важно лично Ваше мнение.
Забыл упомянуть еще вот о чем: удачный пример мне попался в исходниках spray-can, но ведь нигде не сказано, что искать его нужно именно там, а не где-то, скажем, в spray-client или spray-http.
Если это троллинг — то спасибо Вам за Ваш комментарий, я это очень ценю.

Если Вы серьезно — то Вы, вероятно, читали текст по диагонали, и она у Вас закончилась ровно на конце абзаца «Третья попытка». Дочитывайте, пожалуйста, до конца весь пост, перед тем, как оставлять комментарии. «Черный ящик», во-первых, был один, и во-вторых, это был промежуточный этап (о чем Вам подскажет хотя бы тот факт, что после заголовка «вторая попытка» есть заголовок о третьей, и хотя тот самый ящик упоминается в третьей — относится он именно ко второй. Немного запутанно, согласен, но если вчитаться — то все становится на свои места). Было бы очень глупо с моей стороны выкладывать статью о том, что я нашел черный ящик и теперь его использую, вот, посмотрите. Вы не находите?

На случай, если это действительно не троллинг, и для тех, кому интересны подробности
На случай, если это действительно не троллинг (в чем лично я очень сомневаюсь), и из статьи действительно не понятно — я поясню (текст поста показалась мне и так слишком длинным, поэтому я не стал добавлять туда все это, когда писал, так как сути это не особенно касается):

1. Разбор почты — не такая большая и важная часть моего приложения, и уделять ей времени больше, чем было запланированно, мне не хотелось. Я посчитал это довольно тривиальной задачей (в С/C++ с этим отлично справляется даже curl, по сути вообще для этого не предназначенный), поэтому для меня оказалось полной неожиданностью отсутствие асинхронных решений под scala/java, работающих с почтой.
2. Для того, чтобы проверить, работает TLS или нет — существуют тесты (очень полезная штука, кстати, весьма Вам рекомендую). А TDD — вообще рулит, большинство внезапностей (по типу «мож он там все без шифрования гонит») прорабатывается еще на этапе разработки. Так вот, все тесты прошли нормально (для них я создал простенькую блокирующию (т.е. не асинхронную) реализацию сервера на Java, да и на gmail протестировал на всякий случай). А на то, чтобы разбираться, как именно работает класс SslTlsSupport (а не TLS, как Вы прокомментировали) — в планы не входило, отложил это напотом. «Потом» наступило раньше, чем ожидалось.
3. При наличии исходников, конечно, ничего не сложно найти. Если точно знать, где и что искать. Вот только в Akka я ничего подобного не нашел (по описанным в статье причинам). А Spray — библиотека немаленькая, при первом приближении найти нужный подраздел мне не удалось (в ней, помимо всего прочего, 3 уровня — для работы на уровне хоста, соединения и запроса). Да и вообще, если бы все программисты сразу не задумываясь кидались искать ответы на вопросы в исходники — то человечество вряд ли изобрело такую полезную штуку, как документация, а разработка программного обеспечения была бы весьмааааа затяжным процессом, особенно для тех, что только что пришел в технологию.
4. Статья не о том, «как соединять черные ящики изолентой», а о заявленных, но не документированных возможностях Akka/Spray на стыке двух технологий, одна из которых так и не увидела свет в полноценном релизе, хотя вовсю применяется внутри как akka так и spray, а вторая пока еще является сырым концептом на очень ранней стадии воплощения.
12 ...
29

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Registered
Activity