Зато у GraphQL проблемы с кэшированием тк в основном все библиотеки предлагаю использовать неидемпотентный POST запрос. Получить преимущества от многоуровневой системы с кэширующим proxy (как описано в статье) становится намного сложнее.
Может у кого есть хорошие практики как это решается?
Почему Я могу присоединять и отсоединять вкладки внутри моего браузера или файлового менеджера, но не могу сделать то же самое между 2мя разными приложениями?
Такая фишка была в KDE4 — Tabbed Windows,
но она оказалась не сильно востребована и как следствие пока не портирована в plasma 5 (хотя она есть в листе ожидания)
Почему Я не могу положить файл одновременно в два места моей файловой системы?
в linux вполне можно делать hard links
Почему Я не могу отсортировать файлы по тэгу или метаданным?
1. Erlang в нашей компании стал использоваться еще до появления Elixir. Соответственно у нас есть множество библиотек и устоявшихся практик как писать код на Erlang быстро и красиво. Взаимодействие Elixir -> Erlang писать достаточно легко, а вот Erlang -> Elixir значительно сложнее. К тому же сам по себе код на языке Erlang, хоть и выглядит поначалу непривычно, из-за своей простоты (малого количества синтаксических конструкций) довольно легко как читать, так и писать (особенно, после того как добавились мапы).
А конструкции как Protocols или pipe оператор вполне можно «повторить».
2. Erlang у нас используется не только для Web API но и для написания внутренних БД (например есть проект riak-core) и очень часто. Elixir же развивается в основном вокруг framework-a Phoenix и в таких проектах не дает ощутимых преимуществ.
3. Erlang стабильнее Elixir и «детские болезни» прошел уже давно. А для нас важна стабильность.
Вы явно что-то путаете. Используется или rebar/rebar3 или erlang.mk
Они заменят, а не дополняют друг друга.
Erlang.mk появился из-за убогости и тормознутости rebar, но rebar3 поборол все (или почти все) детские болезни.
По своему опыту скажу, что работать с rebar3 очень удобно. Мы перевели почти все проекты на него и избавились от тонны проблем.
Отдельная вещь, которую автор упустил, но стоило бы рассказать — это rebar.lock файл, который принудительно фиксирует версии зависимостей в проекте и гарантирует что при сборке на другой машине они будут абсолютной такими же.
Я для Erlang common тестов поднимаю postgresql с данными в tmpfs, если это возможно.
За запуск и останов postgres отвечает само приложение.
Поднимается все быстро. Запуск с кучей миграций (порядка 200 накопилось) проходит за 4 сек (без tmpfs 15 сек).
Спасибо огромное. Обязательно попробую т.к. сейчас какраз озадачен проблемой поиска жилья.
Вот вам еще один способ, который открыла моя супруга:
проверять фото через google/yandex картинки. Часто риэлторы используют одни и те же фотографии в разных объявлениях. Т.к., видимо, их база не большая, таким методом отсекается довольно много спама.
Ускорение в 5 раз — неплохо, но полученный код не так легко сопровождать.
Мне больше импонирует как сделали ребята из Scalyr. Они просто избавились от лишних watcher-ов, стали использовать DOM cache, что дало довольно большой профит 1200ms to 35ms. Вот их репозиторий на Github.
К списку проблем можно добавить еще «прыжок контента» вверх из-за того, что поле «filter bar» переходит в состояние «поверх», а контент в свою очередь занимает освободившееся место.
И совсем здорово если бы в desktop состоянии «filter bar» тоже не скролился. Тогда было бы единство поведения.
А так интересная идея только чуть-чуть не доработана.
В браузере иногда возникает немного другая проблема — ссылки представлены как <a href="http://..."> и получается надо еще их вытащить.
Написал маленький скрипт.
(function openLinks() {
var selection = window.getSelection();
var range = selection.getRangeAt(0);
var allWithinRangeParent = range.commonAncestorContainer.getElementsByTagName("a");
var href, i, el, links = [];
for (i = 0, el; el = allWithinRangeParent[i]; i++) {
if (selection.containsNode(el, true) ) {
href = el.href;
if (href != "" || href[0] !="#") {
links.push(el.href);
}
}
}
for(i = 0; i < links.length; i++) {
window.open(links[i],"_blank");
}
})()
Зато у GraphQL проблемы с кэшированием тк в основном все библиотеки предлагаю использовать неидемпотентный POST запрос. Получить преимущества от многоуровневой системы с кэширующим proxy (как описано в статье) становится намного сложнее.
Может у кого есть хорошие практики как это решается?
Такая фишка была в KDE4 — Tabbed Windows,
но она оказалась не сильно востребована и как следствие пока не портирована в plasma 5 (хотя она есть в листе ожидания)
в linux вполне можно делать hard links
в том же kde можно
Если боитесь за производительность foldl можно использовать
-compile(inline_list_funcs)
.Erlando я тоже использую, но только в собственных pet project-ах.
Как замена pipe чаще всего используется каррирование, замыкания и свертки.
где
pipe/2
— простая свертка, например.плюс в том что на таких pipe-ах можно построить нечто похожее на монады.
Usage
или, если причесать через каррирование,
то будет просто
но чаще используется pipe не на столько абстрактный, а под конкретный случай, например ok/error.
Конечно не сравнится с do нотацией Haskell или for в Scala, но жить можно :)
Очень хорошо такой подход себя показал в нашей библиотеке для работы с Postgres
Но также у него есть один минус Dialyzer не сможет провести детальную проверку типов, если State, который передается сквозь функции, меняет тип.
К слову, я экспериментировал с добавлением pipe оператора в нативный синтаксис Erlang и это оказалось проще чем я думал :)
1. Erlang в нашей компании стал использоваться еще до появления Elixir. Соответственно у нас есть множество библиотек и устоявшихся практик как писать код на Erlang быстро и красиво. Взаимодействие Elixir -> Erlang писать достаточно легко, а вот Erlang -> Elixir значительно сложнее. К тому же сам по себе код на языке Erlang, хоть и выглядит поначалу непривычно, из-за своей простоты (малого количества синтаксических конструкций) довольно легко как читать, так и писать (особенно, после того как добавились мапы).
А конструкции как Protocols или pipe оператор вполне можно «повторить».
2. Erlang у нас используется не только для Web API но и для написания внутренних БД (например есть проект riak-core) и очень часто. Elixir же развивается в основном вокруг framework-a Phoenix и в таких проектах не дает ощутимых преимуществ.
3. Erlang стабильнее Elixir и «детские болезни» прошел уже давно. А для нас важна стабильность.
Вы явно что-то путаете. Используется или rebar/rebar3 или erlang.mk
Они заменят, а не дополняют друг друга.
Erlang.mk появился из-за убогости и тормознутости rebar, но rebar3 поборол все (или почти все) детские болезни.
По своему опыту скажу, что работать с rebar3 очень удобно. Мы перевели почти все проекты на него и избавились от тонны проблем.
Отдельная вещь, которую автор упустил, но стоило бы рассказать — это rebar.lock файл, который принудительно фиксирует версии зависимостей в проекте и гарантирует что при сборке на другой машине они будут абсолютной такими же.
За запуск и останов postgres отвечает само приложение.
Поднимается все быстро. Запуск с кучей миграций (порядка 200 накопилось) проходит за 4 сек (без tmpfs 15 сек).
Таким же образом тестирую opensource типа https://github.com/egobrain/repo
в релизе 0.17 просто выпилили поддержку hot-swapping и debugger. Что весьма печально.
Сам провозился не один час, пытаясь разобраться что не так.
Есть PR на обновление README
А так, выглядит приятно. Молодцы!
Вот вам еще один способ, который открыла моя супруга:
проверять фото через google/yandex картинки. Часто риэлторы используют одни и те же фотографии в разных объявлениях. Т.к., видимо, их база не большая, таким методом отсекается довольно много спама.
Насколько умным будет считаться существо, своим интеллектом создавшее нечто умнее себя?
Мне больше импонирует как сделали ребята из Scalyr. Они просто избавились от лишних watcher-ов, стали использовать DOM cache, что дало довольно большой профит 1200ms to 35ms.
Вот их репозиторий на Github.
И совсем здорово если бы в desktop состоянии «filter bar» тоже не скролился. Тогда было бы единство поведения.
А так интересная идея только чуть-чуть не доработана.
<a href="http://...">
и получается надо еще их вытащить.Написал маленький скрипт.
Сжал и сделал ссылку:
Ссылку закинул на панель закладок и теперь остается только нажать на неё предварительно выделив текст на странице.