Как стать автором
Обновить
32
0
Илья Константинович Никитин @w495

Пользователь

Отправить сообщение
Тем, что не надо думать о деталях.
Хотя бы на первых порах.
Декларативность, что ли.
Ну во общем это не к Erlang, а к функциональным языкам.
Пробовал. Картина не менялась. Но ждать было лениво.
Если получится что-то иное дай знать.
Но опять же, все может зависеть от версии.
Правда, на память особого внимания не обращал.

влияние сложности алгоритмов небольшое


Так это просто тест конкатенации.
И меня более интересовало представление строк.
О каких алгоритмах речь?
Этот быстрее, но первый по определению.
Если заюзать мемоизацию, то лучше писать, по определению, имхо.
gist.github.com/2924882

lists:reverse — раньше брезговал, но

> erlang:is_builtin(lists, reverse, 2).
true


lists:flatten — убийство.
[List1, List2], в зависимоти от целей erlang:list_to_binary
Отметим два неочевидных обстоятельства. Во-первых, нельзя запустить loop() перед spawn_link(). Казалось бы, так будет более надежно, т.к. функция-слушатель, запущенная до запуска потока-исполнителя, наверняка не пропустит ни одного сообщения от этого потока. Но опыт показывает, что в этом случае функция-слушатель вообще не получает сообщения от потока-исполнителя. По-видимому, это связано с тем, что статус отношения потоков не обновляется.


Откуда это все?
Про ++ — уверен? Я не очень.
+ Какая альтернатива?
--> Можно, конечно, вложенные списки, но без опыта функ про осознать не просто.
Хоть бы цену кто-то озвучил. Думаю, найдутся те, кто готов был бы это купить.
Ну или какую-то часть словаря.
Там большая проблема это права на сами тексты, а не на их разметку.
В веб-выдаче они все равно с нарушенным порядком предложений, и сами произведения перемешаны. Автоматизировать разрешенные действия — сомневаюсь, что в этом есть что-то противозаконное. Блокировка по ip они делают все скорее для защиты от чрезмерных нагрузок.
На тему лицензий, если уж совсем серьезно, то про них ничего вообще не сказано.
А потом, какой закон, и какую конкретно статью нарушит некто, решивший таки такое опубликовать в каких-то своих никому неведомых целях?

Думаю, тут скорее действует профессиональная этика что-ли.
В исследовательских целях — можно. Мне более и не надо было.
Результатом стало вот это:
www.slideshare.net/w-495/dsmts-diploma

В конце концов, я же никого не хакнул, а просто автоматизировал получение доступной информации.
Ну там в принципе на почту не отвечают.
Да ладно, писать краулер самому и парсить все это через html5lib было интересно.
Как я понимаю, товарищи не собираются ограничиваться одним корпусом.
Я в частности крайне жду параллельных многоязычных корпусов.
С НКРЯ можно попробовать расправиться через краулинг ответов с высокочастотными словами.
Правда после тысячного запроса, клиент банится по IP.
До какого-то момента я с ними возился. Но потом это все надоело.

+ У них есть серьезная проблема с интерфейсом. Иногда оно зависает и пытается выдать много одинаковых ответов на одну и ту же страничку. Много — в смысле, очень очень много. При попытке воспоизвести это в браузере привело к его падению. Хорошо, что такое поведение не регулярно.
Так и не поправили (
Кстати, а вот это отрабатывает корректно:
Никитин "Распределенное программно-информационное обеспечение"
Писать. На диск.
Я не уверен, что современные sql-базы настолько примитивны. Никто не отменял отложенных записей, никто не отменял балков (говорил, же, что, все таки, неудобно).
+ Если и на диск (в чем я крупно сомневаюсь), то смотря какой диск.

Если интересно, могу свести с человеком который непосредственно этим занимался.
Ага, только немного подкрутить надо.
Фонетически сложнее произносить. Все время перед «ж» хочется «д» вставить.
Спасибо, старались.

как эрланг начинает захлебываться (вероятно сообщениями)

Чтобы этого не было, можно попробовать, подкрутить (уменьшить?) число редукций на процесс. Но это грязно. Ну или разбирать конкретный случай, чтобы в очередях было минимальное число сообщений, и всеони пролетали очередь.
+ Сталкивался с проблемой числа файловых дескрипторов на процесс ос, но тут возможно это непричем.
В этом случае, он просто откажется выполнять библиотечные функции.

***

Горизонтально смаштабировать можно и без erlang, было бы на чем масштабировать. Как было сказано выше, мнезия только для мелких порций в малом количестве.

Пробывал redis и leveldb как альтернативу, но что-то с ними как-то не сложилось.
Есть и много других проблем.
1) При нескольких млн записях в секунду начинает резко падать скорость. Конечно можно разносить по машинам и балансировать нагрузка. Но количество машин ограничено.
2) Начинаются тормоза при двух млдр мелких записей в базе, даже когда скорость не сильно критична, такие тормоза раздражают.

Потому от mnesia мы отказались в пользу postgres. Гетерогенно и неудобно, но головной боли меньше.
Почему, таки, Yaws? Он тяжел, и есть достаточное число http-аксепторов, библиотек и пр.

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность