Это копия, сохраненная 1 февраля 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Вопрос для нюфаг-треда не подходит, так как там он быстро утонет. Но он волнует меня и беспокоит. В последнее время все чаще приходится слышать про ништяки Эрланга и Эликсир. Последний, как я понимаю, использует vm Эрланга. Их главные плюсы -- это работа на хайлоаде, возможность держать кучу соединений и все такое. Последнее, что меня впечатлило -- это 2КК одновременных соединений на одном сервере с помощью фреймворка Phoenix для Эликсира http://www.phoenixframework.org/v1.0.0/blog/the-road-to-2-million-websocket-connections
Я пошерстил вакансии в ДС (их 2-3), StackOverflow (2-3), upwork (1-2). Их очень мало. Но если эта штука такая крутая, почему ее не используют?
Кто вообще сталкивался, расскажите про впечатления, опыт, подводные камни. Буду благодарен за любую инфу. Thx!
Пишу на чистом Erlang.
Elixir делают все те же люди, которые до этого делали rails, а потом бежали как крысы с тонущего корабля. Вообще всё начиналось интересно, потом Хосе скатил всё в тотальное рубиблядство и рорвей, а потом посрался с остальной тимой и вообще начал делать хуй пойми что.
Когда эрланг был страшен и даже мапов не было, не говоря уже о нормальных либах для метапрограммирования, эликсир ещё мог пригодиться, как cs для js, но сейчас это просто лишняя обёртка-сахарок, чтоб рубидетям не пекло.
> потом бежали как крысы с тонущего корабля
Почему же как крысы. Рэйсл стал не нужен. Как и Джанго и другие синхронные фреймворки. Это прошлый веб, синхронный. Сейчас цепляют сбоку всякие центрифуги и ноды, но ведь удобнее и приятнее все это сразу иметь из коробки.
Ну и, насколько я понимаю, главная претензия к Рельсам, что они хуево производительные.
>эликсир ещё мог пригодиться
Я стараюсь искать статьи о преимуществах Эликсира перед Эрлангом, но все это очень opionated и нет каких-то объективных плюсов. Но Эликсир вроде как молодой, статьи о нем это 2013-2015.
Но вообще заебись бы было иметь скорость разработки Рельс и производительность нормального языка/фреймворка. Если Эликсир и Феникс такие, то мне эта связка интересна.
>Почему же как крысы. Рэйсл стал не нужен
Хорошо, что я в свое время остался на С++. Вот так живешь, живешь, одно не нужно, другое не нужно. Охуеть вообще, уже и рельсы не нужны. А я ведь даже работу на них искал.
Пиздатый трэд посоны. Медуза на эликсире пилит продакшн. Сам буду тоже пробовать
ChicagoBoss твой путь.
Вот пруф, кстати.
http://habrahabr.ru/company/railsclub/blog/266941/
Чета медуза слишком много про свою техническую часть пиздит, можно даже ошибочно подумать что это не простой сайтик с новостями.
> Чета медуза слишком много про свою техническую часть пиздит
Не медуза, а медузовский бэкендер. Он по-твоему про журналюг, Путина и монетизацию должен пиздеть?
Да там всего-то книжек 5-7.
[code]
(setq backup-directory-alist
`(("." . ,temporary-file-directory)))
(setq auto-save-file-name-transforms
`(("." ,temporary-file-directory t)))
(setq load-path (cons "/opt/erlang/release181/lib/tools-2.8.1/emacs" load-path))
(setq erlang-root-dir "/opt/erlang/release181")
(setq exec-path (cons "/opt/erlang/release181/bin" exec-path))
(require 'erlang-start)
[/code]
Снаружи юзаю active для перезагрузки кода на лету, mad для repl. Ну rebar еще, но ну его нахуй вместе с мадом. Нинужен.
Ну нажимаю на ярлычек идеи, выбираю проект и пишу.
Потому что медуза насасывает аудиторию с хабра, и не исключено что йовановский проект
Эрланг уже просто не нужен в свете последних событий. Весь мир понял что ассинхронность нужна в 10% мест и это отлично делается твистедами, ивентмашинами, нодежсами. В эрланге же 90% мест это ссанина типа send.. receive
Ккакие там есть мифы про эрланг - распределённость из коробки ? да нихуя каждому поцу приходится лепить свою инфраструктуру. всегда будет ботлнек в виде один процесс который один на много процессов и хранит какой то стэйт.
Отказоустойчивость ? Какая блядь отказоустойчивость в языке который поощряет код типа ok = huita() который валится в стектрейс и никого больше не ебёт. Какая блядь отказоустойчивость в языке в котором один из главных принципов Let it fail и мы перезапустим. ага блядь перезапустили закрывшийся по сигналу сокет, упавшую по сигналу таблицу с данными... Ссаный рэббитэмку который выглядит как сырая поделка и падает от бэдматч персистер! ссаный ежабир. ой блядь.
паралельность ? а нахуй если можно взять zeromq.
Ахах, шо тут у нас. Порваааточка. Смотрите, ватзап работает и не течёт, а порваточка горит)))
Тем кто не использовал рельсы возможно трудно оценить что сделало их популярными: продуктивность, общий юзер-френднли экспириенс. Но сам факт что разрабы понимают это, и вкладывают усилия, возлагает надежды что штуковина может таки взлететь (по крайне мере, в вебе).
В целом, количество либ которое было уже сделано за столь короткий срок -- удивляет. Так же радует что они используют cowboy и прочие, оттестированные продукты место велосипедов, которые бы пришлось годами доводить до production ready состояния.
Не согласился бы с утверждением выше что в эликсире много рубиблядства, кроме синтаксиса оно совсем совсем отсутствует. Например в противоположность руби, они следуют мантре питона: explicit is better than implicit. Так же в различиях: отсутствие ООП, полная иммутабельность, более строгий тайпинг с опциональным тайп-чекером, строгая арность. Что вообще-то фиксит не только проблемы с параллельностью но и поддерживаемостью рельсокода.
>нормальных либах для метапрограммирования
метапрограммирование в эрланге? чето я не слышал, расскажи поподробнее
>>576658
А вот что говорит по этому поводу тот самый Joe:
http://joearms.github.io/2013/05/31/a-week-with-elixir.html
Конечно же, мнение анонима гораздо весомее мнения какого-то усатого задрота в очках.
>It appears to be somewhat specific to my Erlang install
крутые бенчмарки, чо
вот когда запилят на го или скале вутсап, тогда посмотрим
Найс, меньше 20 вакансий на плнету Земля. Надо на Марсе поискать.
Читать лучше до самого конца.
Он использовал левый код для тестов, потом переделал, но таблицу не обновил.
>>577582
>>577617
https://gist.github.com/omnibs/e5e72b31e6bd25caf39a -- и тут старая версия феникса.
>>577635
В ватсапе было мало инженеров -- они обычно этим хвастались. Недавно читал воспоминания одного разраба из devops твиттера -- много людей проект сильно затормозило.
Вот пара аккаунтов тех, кому эликсир, видимо, не нарвится:
https://twitter.com/llaisdy
https://twitter.com/mtreskin
Один часто просто репостит другого. В них можно найти ссылки на менее позитивные отзывы об эликсире - заканчиваются они обычно 'не эрланг, не нравится'.
Там есть годный плагин.
2кк соединений, может и не нужно, но есть приложения, которые при входе пользователя подзывают пару-другую сторонних api, и тут феникс работает нормально, когда в рельсы приходится втыкать костыли.
В целом негатива как такового нет, скорее скептицизм из-за молодости языка(3 года всего, лол).
1.13 тоже маленькая, сейчас 1.0+
о, норм ссылка. Спасибо, анон!
А этот экто по няшнее эктиврекорд
[code]
def keyword_query do
query = from w in Weather,
where: w.prcp > 0 or is_nil(w.prcp),
select: w
Repo.all(query)
end
[/code]
Если того, что ты знаешь, пока хватает, вкатываться пока не нужно тебе.
Будет опыт работы с FP, нормальной Concurrency, OTP, и всякое такое.
Если нужно написать долгоработающий tpc/udp бэкенд который можно легко масштабировать, то это отличной инструмент.
Нуб не сможет это всё. И тот факт, что он задаёт свой вопрос - уже символизирует. Нет, это не для нубов.
Попробовал этот ваш Elixir / Phoenix. Да пожалуй Phoenix один из самых быстрых и мощных веб-фреймворков из всех на сегодняшний день.
У метеора ниже порог вхождения, плюс сформированная экосистема, но phoenix кажется более продвинутой, плюс многие вещи реализованы из коробки. Задаюсь вопросом, что же задрачивать.
Сильно ли Elixir сложнее изучить, чем JS?
Не сказал бы, Эликсир даже местами скорее проще, т.к. логиченее и элегантнее. Меньше "странностей" которые приходиться просто запоминать набивая шышки.
Если есть желание обмазываться уродливым JS то окей. А если есть желание писать понятные и предсказуемые приложения то Elixir
>уродливым JS
Как там в 2005-м, старина? IE6 наше все? Создатели функциональных фреймворков с транспилерами еще ходят под стол?
>Как там в 2005-м, старина?
Ну если для тебя ES6/ES7 это вершина совершенства, то я тебе сочувствую.
getting starting guide на оф.сайте
если не знаком с фп вообще, то возможно стоит попробовать первые главы сикп
по отп больше ресурсов для эрланга (изучи себе эрланг например), но они эквивалетно полезны
По эрлангу просто ресурсов больше.
Сойтцы-туториалы по эликсиру:
- https://howistart.org/posts/elixir
- http://elixir-lang.org/getting-started/introduction.html
Потом можешь книжек навернуть:
- (meta)Programming elixir
- Introduction to elixir
- Elixir cookbook
- Elixir in action
- Programming phoenix
Все книжки кроме двух последних есть на трекерах.
Мне ещё elm нравится. Мб получиться его использовать вместо js когда-нибудь.
*ещё мб получица правило про `ь` выучить когда-нибдуь tbh fam
Нас слаке эликсира (http://elixir-slackin.herokuapp.com) последнее время многие приходят именно от метора.жс -- прям вот сами пишут, что не оправдал надежды.
Сама элм-архитектура кажется более императивной по своей сути чем скажем cycle.js. Эти fsm на fsm.
Язык конечно крут, сообщения об ошибках 10/10, надеюсь и экосистема когда нибудь будет более зрелая. Ещё интересная альтернатива джс из строгих языков -- PureScript.
> PureScript
Говно без задач, единственная адекватная альтернатива на данный момент - TypeScript
Семантика похожа, учитывая что языки довольно минималистичные, изучить один после второго можно за пару вечеров. Вся суть там всё равно в платформе и конечно же на эрланге больше инфы.
Чем же? Мне скорее кажется, что метеор хорош для одних задач, феникс для других. Например простые проекты наверняка в быстрее и проще сделать в метеоре, особенно связанные с real-time. Плюс еще в метеоре планируют выпустить Blaze 2, который будет строиться поверх React'а
Например, нужно мониторить множество ресурсов (тысячи, десятки тысяч одновременных подзадач), делать http запросы, на основании этих данных что-то делать.
Справятся ли они с подобным лучше ноды/метеора?
Да, можешь поискать на гитхабе -- там много примеров. Обычно, правда, заменяют brunch на webpack.
Расскажи мне, для каких задач хорош метеор.
А в чём заключатеся "сдружил"? Если react использует обычные REST-сервисы (а не realay-подобную шляпу) то совершенно не важно на чём они написаны.
А то когда я писал на Эрланге больше всего убивало то, что приходилось самому работать компилятором и преобразововать линейную логику в эвент-хендлеры gen-servera.
>>589496
http://unix.stackexchange.com/questions/164895/install-elixir-lang-on-linux-mint
Ну так в том и проблема, что вместо нормального дистрибутива, у тебя стоит неизвестно что. И ты пытаешься ставить эликсир, а не эрланг. Выше ты написал что не ставится эрланг.
Докер тоже так ставил?))) Далеко пойдешь, анон.
в canonical репозиториях под именем docker фигурирует совсем другой никому нахуй не нужный пакет
Мю - это микро. В 1000 раз меньше.
Это микросекунды, а не миллисекунды
>iTerm 3 уже вышел
Рили? У меня только до 2.1.4 обновляется, а с сайта stable тоже 2.1.4.
>Мю - это микро. В 1000 раз меньше.
Тогда заебок, неплохо. Но я не сравнивал с другими бекендами. Это для json/api-геты или прямо полноценные странички с рендерингом?
Раз уж ты начал тестить, расскажи потом ещё о результатах своих тестов.
Обманул я тебя, братишка. iTerm 3 в бете пока https://www.iterm2.com/version3.html.
> Это для json/api-геты или прямо полноценные странички с рендерингом?
Пикрелейтед.
>>590288
>Это для json/api-геты или прямо полноценные странички с рендерингом?
Нет, просто обычные phoenix channels. На каждой конференции об этом рассказывали. Ты можешь что угодно указать, помимо html/js, в dev.exs
Одна отклеилась.
>просто обычные phoenix channels
Я думал, что каналы это для сокетов. Конфочек почти не смотрел.
Синтаксис Elixir меня пугает своими, скажем так, возможностями.
Эрланг без проблем собирается из исходников и потом таким же образом накатывается эликсир. (в репах всегда все слишком старое, увы)
Есть еще erlenv и подобные для удобства, типа rbenv / rvm для рубях.
Не нравится &<func>/<arity> -- используй fn <args> -> <body> end
Метопрограммирование тоже можешь не трогать. Но оно на удивление (мое) довольно простое.
React/Phoenix Starter Template
Короч, реак, редакс, вебпак, феникс в одном флаконе.
Поясните за Elixir?
Для чего его юзают какие-то крупные предприятия и корпорации?
Т.е., если я его выучу и пойду на работу, что я на нём буду писать? И насколько он сложный в освоении?
>Поясните за Elixir?
Это как Руби, только снова модный
>Для чего его юзают какие-то крупные предприятия и корпорации?
Для того, для чего раньше Руби юзали
>Т.е., если я его выучу и пойду на работу, что я на нём буду писать?
То, что раньше на Руби
>И насколько он сложный в освоении?
Как Руби
kek
Правильнее будет в твоем ответе "руби" заменить на "эрланг". В эликсире от руби только def - end остались. Гораздо больше он похож на эрланг.
А вот еще сравнение с эрлангом с кеккита
>To explore this a bit yourself, (and for pragmatic reasons), I would highly suggest learning a bit of Erlang. One of the first things to notice is how Elixir code and Erlang code map back and forth with almost no effort. Elixir code looks like Erlang code in many, many instances.
>The differences can be enumerated fairly easily:
Macros - Compile-time code manipulation in Elixir is nicer, more accessible, and easier to understand in Elixir. Elixir itself is largely implemented in macros. The performance cost of macros is mostly paid during compile time. At best, a macro can make it easier to do things the efficient, but difficult to maintain way, but it does open up a whole world of trading execution efficiency for developer efficiency.
>Protocols - Polymorphism rarely comes without a price and protocols are no exception. However, they are almost completely avoidable in one's own code.
>Structs - Basically just some sugar wrapping up maps which allow for the implementation of custom protocols and provide some assurances and standard documentation regarding which keys the map will have. Mostly compile-time cost.
>Strings - Do you care about strings and string manipulation? They were a second-class citizen in Erlang for a very long time, Once again, it doesn't really affect performance unless you or a library you depend on uses it.
>Most of the rest of Elixir's features are implemented simply as libraries which only affect you or another library uses it.
>Overall, the runtime cost of idiomatic Elixir code is low. Further, the BEAM itself (and by extension any language on it) isnt really great at number-crunching. It is optimized for service availability and fault tolerance and part of the cost is that code execution is going to be slower than in other environments.
>Do you need maximum computing efficiency? You are sacrificing it just by being on the BEAM. Do you want to squeeze as much out of the BEAM as you can? Elixir can easily write bytecode identical to Erlang, but you need to know which features to avoid or be wary of. Does it matter? Most of the time, probably not. The costly features that Elixir does provide aren't all that expensive in execution speed compared to the in-built inefficiencies of the BEAM and they often make it easier to write maintainable code, which will often provide performance enhancements just by being easier to refactor.
А вот еще сравнение с эрлангом с кеккита
>To explore this a bit yourself, (and for pragmatic reasons), I would highly suggest learning a bit of Erlang. One of the first things to notice is how Elixir code and Erlang code map back and forth with almost no effort. Elixir code looks like Erlang code in many, many instances.
>The differences can be enumerated fairly easily:
Macros - Compile-time code manipulation in Elixir is nicer, more accessible, and easier to understand in Elixir. Elixir itself is largely implemented in macros. The performance cost of macros is mostly paid during compile time. At best, a macro can make it easier to do things the efficient, but difficult to maintain way, but it does open up a whole world of trading execution efficiency for developer efficiency.
>Protocols - Polymorphism rarely comes without a price and protocols are no exception. However, they are almost completely avoidable in one's own code.
>Structs - Basically just some sugar wrapping up maps which allow for the implementation of custom protocols and provide some assurances and standard documentation regarding which keys the map will have. Mostly compile-time cost.
>Strings - Do you care about strings and string manipulation? They were a second-class citizen in Erlang for a very long time, Once again, it doesn't really affect performance unless you or a library you depend on uses it.
>Most of the rest of Elixir's features are implemented simply as libraries which only affect you or another library uses it.
>Overall, the runtime cost of idiomatic Elixir code is low. Further, the BEAM itself (and by extension any language on it) isnt really great at number-crunching. It is optimized for service availability and fault tolerance and part of the cost is that code execution is going to be slower than in other environments.
>Do you need maximum computing efficiency? You are sacrificing it just by being on the BEAM. Do you want to squeeze as much out of the BEAM as you can? Elixir can easily write bytecode identical to Erlang, but you need to know which features to avoid or be wary of. Does it matter? Most of the time, probably not. The costly features that Elixir does provide aren't all that expensive in execution speed compared to the in-built inefficiencies of the BEAM and they often make it easier to write maintainable code, which will often provide performance enhancements just by being easier to refactor.
>Правильнее будет в твоем ответе "руби" заменить на "эрланг". В эликсире от руби только def - end остались. Гораздо больше он похож на эрланг.
По модели данных, фичам Эрланг. Но В ДУШЕ он РУБИ.
Ебан что ли? Потому что эрланг, несмотря на свои достоинства, язык усатых марсиан из 89 года. Теперь этот недостаток устранен.
Грязный он, помыться захотел)))0
Такс такс такс что тут у нас ахахаха пинтерест жабу на эликсир заменивает фхахахах наканицта!
Ну как всегда: переписали с языка А на язык Б, и стало лучше.
И как всегда непонятно, от чего лучше: от того что поменяли язык, или от того что переписали?
Кстати, непонятно как у них могла увеличиться производительность: все эрланговские веб-сервера в бенчмарках глотают пыль у netty. Интересно было бы почитать какие у них были боттлнеки, и почему нельзя было от них избавится не поменяв язык.
Главное, чтобы переписывали с того, что тебе не нравится, на то, что тебе нравится. Тогда это хорошая, годная статья. А если наоборот, то пиар параши и подгонка фактов.
>почему нельзя было от них избавится не поменяв язык.
Потому что не модно, не стильно и не молодежно.
Есть ли у кого-нибудь Programming Phoenix, beta-весия вроде бы вышла?
Мне удалось скочать только книжки по Elixir, а хочетьса большево.
>почему нельзя было от них избавится не поменяв язык
Некоторым, в силу тех или иных причин, легче разговаривать на английском, чем на китайском. Смекаешь?
У меня есть. Я ее покупал. Где-то после нового года появится на трекерах, наверно.
Книги не нужны. У elixir одна из самых охуенных документаций
Сейчас у меня есть:
Introducing Elixir (Simon Laurent, David Eisenberg)
Programming Elixir (Dave_Thomas)
Metaprogramming Elixir (Chris McCord)
+ книга Армстронга по Эрлангу.
Два чаю.
Вот с кеккита опять, от автора статьи (пинтерест):
>Hey, author of the post here; Just to be 100% clear, the elixir based notifications system doesn't have times measurable in microseconds --that's the rate limiter.
>The Java based notifications system had a 99% response time in the 300-1200 ms range, while the Elixir version has a 99% response time in the 120-250ms range. It also runs on half the servers.
>Also, I want to be crystal clear here; this isn't an indictment of Java, but an indictment of our Java implementation of Notifications. I originally designed the system to run in Elixir (and python, it's an interesting architecture) and for various reasons, we ended up implementing it in Java/Akka.
>I have plans to write another post describing the architecture of the Notifications system (we call it Maia). I think I'm going to avoid going into the shortcomings of Java/Akka (or what we perceive as shortcomings), since it's not one of our core architectures, and we don't have a ton of experience with it. It's quite possible that I was doing something incredibly stupid and that's why we couldn't get decent performance out of the system.
>My personal experience with Java + Akka isn't great; I think that Scala + Akka is much more natural. The Java implementation clearly plays second fiddle to the Scala implementation in terms of clarity and brevity, and I'd avoid it if at all possible. It was 10,000 lines for a reason.
Если ты их все прочитаешь (и еще learn you some erlang), то тебе больше ничего не нужно будет. Перед изучением феникса, попробуй сделать что-нибудь с Plug'ом. Феникс после этого станет понятнее.
Джава такое говно, что говнокод на Эликсире вышел до 6 раз быстрее говнокода на джава, так и запишем.
>Programming Elixir (Dave_Thomas)
>Metaprogramming Elixir (Chris McCord)
есть они где-то в свободном доступе?
Веб очень стремительно развивается. А настольные приложения застопорились в развитии где-то в начале 90.
Некорректно так сравнивать, в общем
Тогда надо подождать, я скоро их выложу в энторнеты, а Programming Phoenix надо будет купить, раз анон выше никуда заливать её не хочет. Я потом заброшу сюда ссылки, там много литературы, я за праздники хочу всё закачать.
Анон на тебя рассчитывает, анон. Очень ждём.
>Programming Phoenix
Судя по гуглогруппе, следует подождать выхода книги из беты(совсем обезумели, продают уже бета-версии книг), там будет описана вышедшая недавно версия фреймворка 1.1.
Версия 1.1 почти ничем не отличается от 1.0. Посмотри https://github.com/phoenixframework/phoenix/blob/master/CHANGELOG.md
>>608440
Лел, что ты выложишь? Они и так в интернете.
>Programming elixir
http://rutracker.org/forum/viewtopic.php?t=4960266
>Introducing Elixir
http://it-ebooks.info/book/3886/
>Metaprogramming Elixir
http://it-ebooks.info/book/4925/
>Elixir Cookbook
http://it-ebooks.info/book/4876/
Вот еще две хороших книжки по otp
>Erlang and OTP in Action
http://it-ebooks.org/book/manning/erlang_and_otp_in_action
>Designing for Scalability with Erlang/OTP
http://it-ebooks.org/book/oreilly/designing_for_scalability_with_erlangotp_early_release
Из всех мне больше понравилась эта (за картинки)
>Learn You Some Erlang for Great Good
https://kat.cr/no-starch-learn-you-some-erlang-for-great-good-2013-retail-ebook-t7235574.html
LYSEGG хорош до главы про акторы и прочие, дальше начинается дрисня в виде кода на две страницы, с последующими мутными пояснения что этот код делает. Пользы от этого мало для новичка. Ну и упражнений нет. Лучше Erlang Programming почитать, он хоть и не такой веселый и картинок там веселых нет, но зато по существу и от простого к сложному. а возможно я просто нудный мудак
>нудный мудак
Обычно такие в восторге от
>дрисня в виде кода на две страницы, с последующими мутными пояснения что этот код делает
проиграл!!!
2 года хуярую будло-плагины под вордпрессы, и вообще ничего больше не вижу и не слышу. А у вас тут РЕВОЛЮЦИЯ прошла, да не и одна. Охуеть просто.
Как ты здесь очутился?
Это уже как минимум 3-й, дурачок.
Зачем ты этим занимаешься?
>p.s. мимо-elixir-программизд на апворке за 4000$/month
Ты бы об этом в приличном обществе не упоминал, а то мало ли обоссут ещё.
p.s. мимо-elixir-программизд на апворке за 4000$/day
Двачую.
Что плохого в кмсках типа вордпресса? Для небольших сайтов он подходит отлично, так что не пизди.
Зачем мне что-то писать, тем более, если я в этом не разбираюсь? Тем более на рубях, мне говорили, что на них гомосексуалисты пишут.
Мудро.
ну так нахуй теоретизируешь тогда, лах?
Это копия, сохраненная 1 февраля 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.