Я в простеньком бинарном парсере это придумал года полтора назад — возвращал в случае сбоя свой RecoverableError, где хранилась информация, откуда начинать поиск нового фрейма. Вроде нормальная идея.
Но тот проект все равно хочется переписать на rust.
Да не хранит в себе монада ничего такого, о чем вы. Почитайте, во что разворачивается do notation, но я сразу скажу — это всего лишь цепочка лямбд, связываемых bind-ами.
Да, это не то, что написал автор, но ваш код еще дальше от истины, я бы сказал.
Причем тут дизайнер и HTML? Пусть фронтендом занимается фронтенд-разработчик, который умеет все, что нужно.
Вообще react все правильно делает, используя pure js. Они не создают лишних сущностей в виде yet another template language, в отличие от всех остальных. Свой язык шаблонов — это дичайший оверхед на всех уровнях, и, что самое смешное, в итоге он скомпилируется в тот самый JS.
И к тому же, вот вы задумайтесь, долго вы учили директивы angular-а, отдельный кривой и убогий язык? А тут уже всем знакомый JS, отвратительный, но знакомый, более того, прекрасно отлаживаемый на лету.
Краш ноды — принимается, от него чистым ets никак не спастись.
А вот heir будет работать ровно так, как вы его напишете. И если он не должен падать, он не будет падать, только и всего.
Про гипотетические потери данных ets при падении owner process.
ets:new(name, [{heir, Pid, heirdata}])
{heir,Pid,HeirData} | {heir,none}
Set a process as heir. The heir will inherit the table if the owner terminates. The message {'ETS-TRANSFER',tid(),FromPid,HeirData} will be sent to the heir when that happens. The heir must be a local process. Default heir is none, which will destroy the table when the owner terminates.
И да, покажите как у вас делаются выборки, там для ets есть нюансы.
Слушайте, может вы сделаете кнопку «не использовать рекомендации вк»? А то я вижу 10 записей моих пабликов, а дальше идет тонна лютейшего шлака, с которым я могу ассоциировать, может, десяток треков из моих почти четырех сотен. А еще один паблик, на который я подписан, я вижу в списке двадцать восьмым.
Серьезно, не надо так — рекомендации просто сломаны.
Я, к сожалению, не знаю точно, но предположу, что мало чем. Сам по себе gevent — обертка над greenlet + libev.
>> pypi.python.org/pypi/greenlet
>> The greenlet package is a spin-off of Stackless, a version of CPython that supports micro-threads called «tasklets».
>> There are several libraries that use Greenlet as a more flexible alternative to Python's built in coroutine support:
>>…
>> gevent
>>…
В итоге, это выглядит примерно как stackless к которому прикрутили libev.
gevent заменяет блокирующие методы возвратом управления в планировщик green thread-ов, где выставляется ожидание вида «разбудить этот поток, когда случится вот это». точно это распространяется на сокеты, таймауты, блокирующий get из очередей, ожидание завершения другого green thread. возможно, файловое i/o.
для возможности использования green thread-ов вообще, gevent дичайше издевается над интерпретатором, а для перехвата вызовов идет манкипатчинг. в stdlib такое не пускают.
А гармонии не может быть в принципе. Серьезно, у нас даже сейчас постоянно появляются какие-то клоуны, отрицающие не то что новое, но даже уже давно проверенные и внедренные вещи. Что уже говорить о безграничном многообразии технологической сингулярности?
Всегда был и будет балласт, тянущий развитие назад, отказывающийся адаптироваться и пропагандирующий это. Посмотрите вокруг — много ли людей, которые понимают, например, что ГМО — единственный вменяемый путь прокормить 7+ миллиардов людей? Да что там ГМО — постоянно слышно о каких-то уродах, отрицающих банальные проверенные прививки.
Сингулярность принесет с собой величайшую из войн, которую обе стороны будут считать войной за очищение человечества. Этого не может не произойти — люди воюют из-за привязанности к бредовым книжек двухтысячелетней давности, что уж говорить о принципиальном изменении модели развития и всего уклада жизни. Разумеется, победа только одной из сторон способствует выживанию вида — но другой стороне вы это не объясните никогда и никак. Те, вторые и про падающий на них астероид скажут, что его «бог послал», или что про него инки писали.
Не нужно волноваться о гармонии, нужно думать о том, чтобы будущее прошло по нужному пути. Там можно будет восстановить все возможные потери.
Нас всех ждут интересные времена. Не знаю, кто как, а я жду их с нетерпением.
Я выскажу свою анархическую точку зрения — если ты уважаешь себя, даже не думай работать в бюджетных структурах. Серьезно, нельзя работать там, где рулят функционеры из прошлого века и их клоны-воспитанники, и где все рулится абсолютно оторванными от жизни нормами и правилами. Это гнилое болото, откуда можно только бежать, пока не начал квакать как местные.
Но тот проект все равно хочется переписать на rust.
По-моему, автор хорошо передал саму идею, зачем эти монады нужны и где они дают преимущества, а точного соответствия в данном случае и не нужно.
Да, это не то, что написал автор, но ваш код еще дальше от истины, я бы сказал.
Вообще react все правильно делает, используя pure js. Они не создают лишних сущностей в виде yet another template language, в отличие от всех остальных. Свой язык шаблонов — это дичайший оверхед на всех уровнях, и, что самое смешное, в итоге он скомпилируется в тот самый JS.
И к тому же, вот вы задумайтесь, долго вы учили директивы angular-а, отдельный кривой и убогий язык? А тут уже всем знакомый JS, отвратительный, но знакомый, более того, прекрасно отлаживаемый на лету.
А вот heir будет работать ровно так, как вы его напишете. И если он не должен падать, он не будет падать, только и всего.
ets:new(name, [{heir, Pid, heirdata}])
И да, покажите как у вас делаются выборки, там для ets есть нюансы.
Работай медленно
И так далее. Все придумано до нас, всего-то нужно адаптировать идею к своему конкретному месту.
ну, я малость опоздал.
Серьезно, не надо так — рекомендации просто сломаны.
>> pypi.python.org/pypi/greenlet
>> The greenlet package is a spin-off of Stackless, a version of CPython that supports micro-threads called «tasklets».
>> There are several libraries that use Greenlet as a more flexible alternative to Python's built in coroutine support:
>>…
>> gevent
>>…
В итоге, это выглядит примерно как stackless к которому прикрутили libev.
для возможности использования green thread-ов вообще, gevent дичайше издевается над интерпретатором, а для перехвата вызовов идет манкипатчинг. в stdlib такое не пускают.
Всегда был и будет балласт, тянущий развитие назад, отказывающийся адаптироваться и пропагандирующий это. Посмотрите вокруг — много ли людей, которые понимают, например, что ГМО — единственный вменяемый путь прокормить 7+ миллиардов людей? Да что там ГМО — постоянно слышно о каких-то уродах, отрицающих банальные проверенные прививки.
Сингулярность принесет с собой величайшую из войн, которую обе стороны будут считать войной за очищение человечества. Этого не может не произойти — люди воюют из-за привязанности к бредовым книжек двухтысячелетней давности, что уж говорить о принципиальном изменении модели развития и всего уклада жизни. Разумеется, победа только одной из сторон способствует выживанию вида — но другой стороне вы это не объясните никогда и никак. Те, вторые и про падающий на них астероид скажут, что его «бог послал», или что про него инки писали.
Не нужно волноваться о гармонии, нужно думать о том, чтобы будущее прошло по нужному пути. Там можно будет восстановить все возможные потери.
Нас всех ждут интересные времена. Не знаю, кто как, а я жду их с нетерпением.
Эрланг — это роутинг, парсинг и поддержание коннектов. Все остальное — если его мало, тоже на э-ге; если много — на другом языке.