LINUX.ORG.RU

Сообщения Vit

 

Какой newsreader поддерживает starttls на 119 порту?

 ,

Нужно потестировать имплементацию starttls в NNTP-сервере на чем-то настоящем. По этой причине вариант «законнектится на 563 порт и не париться» не подходит.

Кто-то из клиентов вообще умеет starttls или это так и осталось влажными фантазиями в rfc4642?

Vit
()

CodeMirror заработал на мобилках!

 , ,

https://discuss.codemirror.net/t/release-5-25-0/1175/1

На мобилках клавиатуры хитрые, предлагают всякие подсказки для быстрого набора. Это все жутко переглючивает редакторы с подсветкой синтаксиса. Теперь в CodeMirror по крайней мере в хроме я сходу глюков не нашел. В фаерфоксе еще остались, но уже не такие безумные как раньше. На айфоне не проверял - нечем.

Из альтернатив есть только Ace, но он глючит намного сильнее, в несколько раз толще и вообще мне не очень нравится.

Если кому охота потестить клавиатурный ввод на мобилках - отпишитесь по результатам. Есть возможность пообщаться с автором по горячим следам.

Vit
()

Как считать время проведенное на сайте?

 

Ну абстрактно понятно - сначала все льем в массивы битов, где каждый бит соответствует 1 минуте (или любой_другой_интервал_времени). Например через битовые операции в redis. Потом агрегируем по дням, месяца, годам - смотря как надо.

Но есть нюанс - юзер ведь может не тыкать по ссылкам, а читать длинную статью. Вроде как запросов на сервер не шлет, но и на сайте сидит. А может открыть вкладку и уйти - тогда не считается.

Как обычно такое решают? Пока придумал 2 варианта:

1. Собираем промежуточную (между запросами) статистику на клиенте, и потом домерживаем.
2. На сервере, если между битами небольшая пауза, заполняем промежуток.

Оба варианта как-то не очень нравятся.

Vit
()

Рисовалка mind maps

 

https://coggle.it

Случайно обнаружил. Штука офигительная в своей простоте и красоте. До этого пользовался XMind, но там как-то напряжнее весь процесс идёт. От того пользовался только когда задачи совсем прижимали по сложности. А тут быстренько и с удовольствием наколбасил всю текучку.

Вообще рисовалок майндмапов много, но они обычно либо с убогим интерфейсом, либо платные.

А чем пользуешься ты, <username> ?

Vit
()

Не получается вручную отправить бинарные данные как форму

 

https://github.com/nodeca/pako/blob/formdata/examples/browser.html#L55-L98

Делаю пример, где после упаковки бинарные данные отправляются на сервер. Решил слать как форму, потому что стандартно и удобно обрабатывать.

1. В современных браузерах есть FormData, и с ее помощью все отправляется хорошо.

2. Для старых браузеров вроде описывалось, что body запроса можно создать ручками, но ни фига не работает. Такое впечатление, что происходит перекодировка в UTF-8. Файл принимается, но вместо 44 байт приходит 64.

https://learn.javascript.ru/xhr-forms - вот тут и где-то на MDN похожие примеры, как отправлять бинарные данные в виде файла.

Можете посмотреть по ссылке, что я делаю не так?

Vit
()

Надо добавить поддержку WebAssembly в яваскриптовый ресайзер картинок

 , ,

Т.к. в Firefox 52 уже включили поддержку WebAssembly, хочется поэкспериментировать, но руки никак не дойдут.

Надо закопипастить на сишечку вот эти 2 файла:

https://github.com/nodeca/pica/blob/master/lib/js/resize_array.js
https://github.com/nodeca/pica/blob/master/lib/js/unsharp.js

и разобраться как это скомпилировать в WA и потом дернуть из яваскрипта.

В ресайзере можно закодить только конвольверы, оставив расчет фильтров на яваскрипте. Unsharp mask надо тащить целиком, но там код простой как рельса.

Код дергается 1:1, без наворотов с SSE (он пока все равно в WA не поддерживается).

Под деньгам ХЗ сколько. Договоримся. Заодно мир улучшите :)

vitaly@rcdesign.ru

Vit
()

Реально ли траффик сайта использовать для оценки качества поиска?

 

При настройке поиска надо как-то оценивать результат. То есть, прогонять пачку эталонных запросов и смотреть, стало лучше или хуже. Меня интересует, насколько реально для подобного использовать траффик сайта.

1. С какого количества юзеров (поисковых запросов?) такое вообще начинает работать и выдавать полезный результат?

2. Какой интерфейс для этого делают? На память приходит только «х» рядом с результатами, чтобы убирать плохие.

3. Как учитывать что данные, по которым ищем, меняются?

Понятно, что можно заморозить базу, и посадить людей размечать за деньги. Но меня интересуют нанотехнологии, их сложность, и условия при которых они начинают работать.

Vit
()

WebAssembly - встречайте на арене цирка

 

В течение недели-двух везде активируют бесплатно без СМС. Скоро в браузер можно будет конпелять питон и лисп :)

Ссылка на опеннет http://www.opennet.ru/opennews/art.shtml?num=46117

Правда пока эта хренотень в состоянии «минимально жизнеспособный продукт». Например нет поддежки SSE (SIMD и все что с этим связано). Ну и интерфейс с яваскриптом примерно никакой - на уровне простых переменных.

В принципе, из явных профитов - можно делать быстрое деление, которое в v8 на яваскрипте вызывает деоптимизации. Это из того, что на JS сейчас невозможно. Бывает иногда полезно, например если хочется у картинки цветовое пространство преобразовать.

Vit
()

Изобретаем ранкер для «похожих тем»

 ,

Как искать «похожие темы» на форуме? - тут я уже спрашивал насчет общих принципов, пора обсудить более приземленные и практические вопросы.

Итак, хочется сделать на коленке тупенький ранкер, дешево и сердито. Без категоризаций контента и попыток понять его смысл. За основу берем sphinx search c его proxmity-запросами (допускающими частичное совпадение), и ранкер bm25.

Теперь хочется к bm25 подмешать дополнительные критерии:

1. Если в теме нет ответов, она явно бесполезна мне как юзеру, поэтому среди «похожих» я бы ее видеть не хотел. С другой стороны, разницы между темами где 1000 и 100000 ответов я уже не вижу.

2. Как правило свежая инфа полезнее протухшей. Поэтому когда по bm25 много результатов, я бы предпочел видеть более свежие (по дате обновления) темы.

Что еще можно добавить? Где можно потырить готовые коэффициенты для таких логарифмических зависимостей (видел только для reddit)?

Vit
()

Посоветуйте разметку диска для сервера с docker

 ,

Хочется поднять новый сервер, и там все завернуть в docker. Не хотелось бы промахнуться с разметкой, файловыми системами и т.п., так как переделывать хлопотно.

Что вообще будет надо:

- пяток виртуалок (мне привычнее на убунте)
- много данных (база монги, и там же картинки в gridfs, 1-3 Тб)
- (?) возможность делать бакапы, наверное через снапшоты

Подскажите, кто с этой темой разбирался

- ubuntu server 16.04 сойдет или лучше другое?
- zfs уже можно ставить?
- как размечать диск (разделы, файловые системы и что куда монтировать)
- куда принято data volumes класть

Есть еще всякие модные CoreOS, но я не знаю, насколько оно юзабельное. В общем, хоцца современную хостовую ноду поднять, но я не особо в курсе, как нынче принято.

Vit
()

Ждем DMCA takedown в markdown-it :)

 ,

https://github.com/jonschlinkert/remarkable/issues/254

У чела наконец-то пригорело. Но, как обычно, поскольку он горазд только звиздеть, то вместо того чтобы написать претензию, лепит душещипательные тикеты от намерениях.

Краткая история драмы - чел много обещал про дружную работу, и ни фига не делал. Плюс в один момент, набухавшись или обколовшись, написал мне, что если я еще раз с ним заговорю в каком-то там ключе, то он заберет у меня права доступа. В итоге был послан. А еще выпилен из копирайтов, из принципа.

Кстати, за 3 года он так ни фига и не сделал - по истории видно. Код протух.

С тех пор он ноет про порушенные копирайты, тонны виртуальных усилий и т.п. В качестве формального доказательства предъявляя письмо, которое было написано по поводу ДРУГОГО репозитория и других планов :).

Vit
()

Как правильно терминировать большие POST-запросы в node.js?

 

Есть типовой вебсервер, который на каждый новый запрос вызывает стандартную function(req, res). Я хочу грамотно прерывать соединение, если кто-то пытается отправить слишком большой POST-запрос.

Будет ли достаточно дернуть res.end(413, 'request entity too large') или надо предпринимать какие-то дополниртельные шаги чтобы req (входящий стрим) тоже заткнуть? Я типа в курсе, что можно выставить флажок и просто перестать сохранять входящие данные, или вообще req.destroy(). Но хочется все-таки и грамотно входной стрим уконтрапупить, а не просто в холостую его гонять.

Как в ноде принято подобное делать?

Vit
()

В ноде кончилась почта

 , ,

https://github.com/nodemailer/nodemailer

Автор самого популярного пакета для отправки почты сменил лицензию с MIT на EUPL. Учитывая что в ноде в основном все под MIT, теперь всем либо сидеть на старой версии, либо валить непонятно куда.

Появилось упоминание коммерческой лицензии за 780 евро в год.

Еще автор убил на гитхабе исходники модулей. Например этого https://www.npmjs.com/package/nodemailer-sendmail-transport

Какой добрый дядя, а ведь мог и шило в бок воткнуть.

Vit
()

Очередной бананометр для гитхаба

 

http://beta.gitlance.net/top/javascript

По версии неизвестных экспертов я наговнокодил на яваскрипте среди первых двух сотен в мире, гы :). Это ж насколько тогда низкая средняя температура по больнице...

Vit
()

Как искать «похожие темы» на форуме?

 ,

Есть такая модная фича, когда в бложиках показывают ссылки на «похожие записи», или в конце тем форума показывают ссылки на «похожие темы». Интересует варианты, как cделать подобное. Самое примитивное, что приходит в голову, проиндексировать топики в sphinxsearch, и потом искать в заголовках

(название темы)/1

То есть, «должно совпадать хотя бы одно слово, с сортировкой по релевантности». Но наверняка есть много нюансов, например:

- какой критерий поиска
- какой критерий сортировки
- учитывать ли «давность» найденного
- показывать только предыдущие темы, или более свежие тоже
- искать только по заголовкам или по содержанию первого поста тоже

и т.п.

Если кто-то решал подобную задачу, или знает где она решалась грамотно - поделитесь пожалуйста.

Vit
()

mapzen.com - есть ли подводные камни?

 mapzen,

https://mapzen.com/

Кто-нибудь имел дело с их тайлами и сервисами? Есть подводные камни? С виду вектор выглядит симпатично.

Vit
()

idoit - очередь задач под ноду

 , ,

https://github.com/nodeca/idoit

Новый проект с говорящим названием от NIH-отдела нашей велосипедной фабрики. Очередь задач под ноду, на редиске. Готовых подобного уровня не нашлось, а поднимать ради простых вещей монстров типа RabbitMQ не хотелось.

По фичам напоминает Celery (группы, цепочки задач). Плюс есть итерирующий мапер, чтобы эффективно нарезать гиганские дырявые диапазоны на чанки с одинаковым числом элементов. Все апдейты состояний завернуты в транзакции, так что любой процесс может падать в произвольный момент - целостность не пострадает.

Разруливание тяжелых задач отдано на откуп системному шедюлеру. Просто делается пара пулов с воркерами, в один роутится всё «не блокирующее», во второй - с интенсивными вычислениями.

Отдельное спасибо dave и всем остальным, кто помог быстро сориентироваться в теме.

Vit
()

Как правильно проксировать вебсокеты через nginx?

 , ,

https://gist.github.com/puzrin/7bac87a7064576e78b8a347101bfea35#file-dev-rcop...

Вроде все сделал по советам в интернетах. Но есть один досадный косячок. Если перезапустить нодовский бакенд, то FAYE перестает устанавливать соединение с сервером, даже если страничку перегрузить.

При этом перезапуск nginx вроде бы помогает, и кажется без nginx подобного не было.

Это можно как-то побороть?

Vit
()

Теги vs Поиск. Есть ли польза от тегов?

 

На многих сайтах, вроде лора и пикабу, наравне с поиском делают теги. Мне интересна причина - это потому что поиск нормальный не осилили? Или не осилили подписку на поисковые запросы?

Тегами можно донести рубленые мысли в стиле Маяковского, но это спорное достоинство. Кто что думает? Когда теги лучше самого расхорошего поиска а когда нет?

Vit
()

Где есть человеческое управление компонентами (интерфейса)?

 ,

Вроде уже многие сталкивались с тем, что веб-страничку удобнее рассматривать не как «шаблончик полюс скриптик», а как набор самодостаточных компонетов (виджетов?). Где каждый компонент содержит все что ему надо - шаблон, стили, переводы, скрипты.

В принципе многие движутся в этом направлении - react, angular и т.п. Но вот чего я пока не нашел - как обеспечить изменение внешнего вида. Типовые задачи:

1. Допустим я хочу другой скин для сайта. Хорошо если мне повезет и достаточно изменить CSS. А если еще и верстку?
2. Допустим я хочу что-то добавить в существующий компонент из внешнего. Например, был форум. Добавили модуль блогов и на карточку юзера понадобилось добавить ссылки из бложика.

Появились ли какие-то методологии, как красиво разруливать подобные вещи? Пока приходилось сталкиваться с такими вещами:

- Накладывание текстовых diff на шаблоны. Стрёмная по жизни штука.
- Модификация DOM ручками через яваскрипт. Можно, но неудобно и в использовании и в поддержке.
- BEM XLST. Рабочая штука, но очень высокая цена входа. Сделано не для людей.
- Можно еще втыкать всякие хуки для иньекций, но это часто решает проблему уже после того как она случилась, а не заранее.

В основном все эти проблемы касаются только шаблонов:

- на CSS при БЕМ-овских именах классов подкрутить текущие стили не проблема.
- на JS в принципе медиатор c responsibility chains позволяет особо не париться о расширяемости. То, что много подписчиков могут образовать помойку разруливается разбивкой одной большой цепочки на несколько вложенных.

Возвращаясь к шаблонам - где придумали что-нибудь простое и удобное, чтобы подкручивать выхлоп «веб-компонент»? Яндексовский БЕМ ни на простое ни на удобное не тянет.

Vit
()

RSS подписка на новые темы