LINUX.ORG.RU

Сообщения Vit

 

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

Форум — Talks

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

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

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

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

 , ,

Vit
()

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

Форум — Web-development

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

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

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

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

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

 

Vit
()

Рисовалка mind maps

Форум — Talks

https://coggle.it

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

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

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

 

Vit
()

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

Форум — Web-development

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 в яваскриптовый ресайзер картинок

Форум — Job

Т.к. в 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
()

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

Форум — Web-development

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

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

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

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

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

 

Vit
()

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

Форум — Talks

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

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

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

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

 

Vit
()

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

Форум — Web-development

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

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

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

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

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

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

 ,

Vit
()

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

Форум — Admin

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

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

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

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

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

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

 ,

Vit
()

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

Форум — Talks

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

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

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

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

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

 ,

Vit
()

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

Форум — Web-development

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

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

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

 

Vit
()

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

Форум — Talks

https://github.com/nodemailer/nodemailer

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

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

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

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

 , ,

Vit
()

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

Форум — Talks

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

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

 

Vit
()

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

Форум — Web-development

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

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

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

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

и т.п.

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

 ,

Vit
()

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

Форум — Web-development

https://mapzen.com/

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

 mapzen,

Vit
()

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

Форум — Web-development

https://github.com/nodeca/idoit

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

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

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

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

 , ,

Vit
()

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

Форум — Web-development

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

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

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

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

 , ,

Vit
()

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

Форум — Talks

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

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

 

Vit
()

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

Форум — Web-development

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

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

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

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

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

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

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

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

 ,

Vit
()

Не хочешь купить слона? А придётся

Форум — Talks

https://itmages.ru/image/view/4888841/e0c65ead

Юзер прислал скриншотег. Тем кто режет рекламу директа яндекс втуливает попандер с опросом. Какие однако находчивые и предприимчивые люди.

У кого-нибудь еще было?

 

Vit
()

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