Персональный блог Игоря Антонова aka "spider_net"

программирование

Подписаться на эту метку по RSS

Fuse. Библиотека для реализации неточного поиска на ванильном JavaScript


Рубрика: JavaScript -> Программирование
Метки: | |
Просмотров: 4664
Fuse. Библиотека для реализации неточного поиска на ванильном JavaScript

В одном из проектов мне требовалось реализовать поиск неточный поиск по коллекции объектов (JavaScript). Под неточным поиском я подразумеваю: поиск по первым буквам слова, без учета регистра, поиск сразу в нескольких свойствах объекта (в зависимости от условий), возможность установить совпадения с определенными ключами и рядом других условий. В прошлый раз эту задачу решил частично. Не все удалось, но реализация была пригодна для использования в рабочем проекте.

Читать дальше

clipboard.js. Как скопировать текст в буфер обмена без помощи Flash


Рубрика: JavaScript -> Программирование
Метки: | | |
Просмотров: 5958
clipboard.js. Как скопировать текст в буфер обмена без помощи Flash

Иногда возникает необходимость реализовать в web-приложении возможность копирования определенного текста в буфер обмена. Например, вы делаете какой-нибудь форматтер текста (вроде jsonformatter) и хотели бы чуточку облегчить вашему пользователю жизнь, позволив путем нажатия одной кнопки, поместить результат преобразования в буфер обмена. Согласитесь, отличный кейс?! Подобные задачи периодически возникают, но не всегда их удается быстро решить. Для ускоренного внедрения возможности работы с буфером обмена, Zeno Rocha создал замечательный модуль clipboard.js.

Читать дальше

Не удаляются помеченные на удаление объекты. Ошибка «DeleteObjects(RemovedList, True, FindedItems)».

Не удаляются помеченные на удаление объекты. Ошибка «DeleteObjects(RemovedList, True, FindedItems)».

Продолжаем на работе внедрять новую типовую конфигурацию и столкнулись со странной проблемой. Пометили несколько десятков документов на удаление и решили их полностью удалить. Открываем стандартную обработку (встроенную в платформу) «Удаление помеченных объектов» («Все функции» -> «Стандартные» -> «Удаление помеченных объектов»), выбираем полное удаление и вместо сообщения об успешном удалении получаем ошибку «DeleteObjects(RemovedList, True, FindedItems); по причине «Нарушение прав доступа!».

Типовая конфигурация состоит из нескольких подсистем, разрабатываемыми независимыми компаниями, поэтому первым делом я подумал, что причина в отсутствии прав на удаление определенных объектов. Проверил учетную запись «Администратор» - все роли были назначены, следовательно, проблема не в этом.

Читать дальше

Немного о субботней усталости и анонсе новых лекций в ШРИ


Рубрика: Без рамки -> Видео
Метки: | | | | | |
Просмотров: 2622
Немного о субботней усталости и анонсе новых лекций в ШРИ

Сегодня особо нечего писать. Потрудился почти весь день и теперь хочется хорошенько отдохнуть. На завтра намечены планы завершения большего дела и очень хочется верить, что сил хватит. Чувствуется, моему организму нужен отдых и пора потихоньку начать его предоставлять. Тем более окулист порекомендовал заняться своими глазами. Эксплуатирую их по полной, и надо бы немного подлечить рабочий инструмент, уменьшив нагрузку. Буду стараться соблюдать указания врача. Меньше работать за компьютером точно не смогу, но хотя бы возьму на вооружение ежегодные курсы лечения капельками. Зрение нужно беречь.

Читать дальше

Эмулятор терминала на JS/HTML/CSS? Вполне реально!


Рубрика: JavaScript -> Без рамки
Метки: | | | |
Просмотров: 5639
Эмулятор терминала на JS/HTML/CSS? Вполне реально!

Кто там считает, что JavaScript несерьезный язык программирования? Посмотрите, что на нем пишут особо креативные разработчики. Hyper.app – эмулятор терминала, созданный при помощи web-технологий. Предвижу вопрос: «Зачем»? Во-первых, показать, что нет ничего невозможного, а во-вторых, дать web-разработчикам возможность самостоятельно разрабатывать плагины, не прибегая к изучению других языков программирования/технологий. Пока «Hyper.app» доступен сугубо для macOS и Linux, но разработчики обещают представить Windows версию в ближайшем будущем.

Пока эта штука больше подходит для демонстрации, но начало положено хорошее. Под катаом коротенький ролик с демонстрацией.

Читать дальше

Борьба с медленными запросами в 1С. Типичные проблемы

Борьба с медленными запросами в 1С. Типичные проблемы

На работе часто приходится проводить ревью кода и разбираться с проблемами в стиле «почему же тормозит запрос». Проблемы подобных тормозов чаще всего вызваны не оптимальными запросами к базе. Так уж получилось, что код нашей конфигурации разрабатывается почти 9 лет и за этот внушительный промежуток времени накопились запросы, которые нужно переписать. Они превосходно решают задачи, но при нынешнем объеме базы данных работают не так быстро, как хотелось бы.

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

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

Читать дальше

Испытал matreshka.js в маленьком проекте


Рубрика: JavaScript -> Программирование
Метки: | | | | |
Просмотров: 3719
Испытал matreshka.js в маленьком проекте

Как-то я уже рассказывал о JavaScript фреймворке с необычным названием – matreshka.js. Я даже брал большое интервью у автора этого проекта (см. Интервью с автором matreshka.js). С тех пор ничего об этом фреймворке не писал, но это не означает, что я его не использую. Матрешка (так писать проще) хороша там, где нужна легкость и скорость.

Недавно у меня была задача разработать простенький front для мобильного кабинета курьеров. По факту нет ничего сложного, главные требования от заказчика были: сделать быстро и качественно, работать должно шустро даже на не сильно производительных смартфонах. Первую версию я запилил достаточно быстро на ванильном JavaScript. Все протестировали, посмотрели производительность и ко второй версии (потребовалось добавить ряд интересных фич) решил перевести проект на метрешку.

Читать дальше