1с: Еще раз о сортировке массива структур

Уже не однократно поднимал в своём блоге вопрос о методе сортировки массива структур по какому то ключу. В конце концов остановился на самом медленном, но зато самом менее трудоёмком методе. Для нескольких тысяч записей пойдет. Для нескольких десятков тысяч записей уже нет, ибо памяти не хватит. Общая методика такова:

  1. Преобразуем массив структур в таблицу значений
  2. Отсортируем штатными средствами таблицу значений по ключевому полю
  3. Далее используем еже не массив структур, а именно таблицу значений, чтобы уменьшить накладные расходы на обратные преобразования

Использование:

Автоматизация пережатия pdf файлов

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

Решение: напишем соответствующий скрипт на Bash

Что делает этот скрипт? А просто ищет все файлы созданные в указанном диапазоне дат. Далее последовательно пытается пережать каждый файл, и если это происходит успешно, то заменяет оригинал на получившийся пережатый файл. Опции dPDFSETTINGS:

/screen Более низкое качество и меньший размер. (72 т/д)
/ebook Лучшее качество, но чуть больший размер (150 dpi)
/prepress Вывод имеет более высокий размер и качество (300 dpi)
/printer Качество вывода подходит для принтерной печати (300 dpi)
/default Выбирает вывод, который подходит для нескольких целей, однако может создавать большие PDF-файлы.

Update: со временем скрипт чуть изменился. А именно добавил проверку «а помогло ли сжатие». Если эффекта нет, то и не заменяем пережатый файл

WordPress: просмотр pdf с параметром FitH

В WordPress есть возможность разместить на странице pdf файл в контейнере object, при помощи стандартного блока «Файл». Но есть нюанс — из настраиваемых параметров размера — только высота в пикселях. Ширина автоматически при просмотре подразумевается 100%.. Соответственно файл встраивается в страницу с автоматическим параметром отображения (т.е. не на всю ширину страницы). Для того чтобы страница растянулась на всю ширину экрана, нужно добавить параметр view, например чтобы было примерно так:

Но, к сожалению после редактирования html кода блока, он ломается. Поэтому одним из решений является написание плагина, который ищет на страницах размещенный pdf файл, и добавляет ему соответствующий параметр. Вот как это реализовано у меня:

Добавляем веб хук:

Функция:

Arduino: подключение дисплея ST7735s

Данный дисплей как оказалось с некими особенностями. У части страждущих, после подключения по стандартной схеме с 5в, экран рябит, и покрывается полосами, поэтому приходится подключать его через резисторы в 1кОм, по схеме:

Однако у меня, прокатило и без этого, хотя тоже помучался немножко, но как оказалось просто не пропаял нормально контактную площадку на дисплее. Кроме того, в моём случае необходимо было оставить свободными часть пинов, в том числе 13 и 11, для других устройств, поэтому пришлось переключатся на «софтварную» реализацию функционала MISO/MOSI/SCK. В моём случае схема подключения следующая:

  • vcc — 5v
  • gnd — gnd
  • scl — 8
  • sda — 7
  • res — 5
  • dc — 4
  • cs — 6
  • blk — не используется

Ну и инициализация дисплея следующая соответственно:

Из минусов — медленная отрисовка на экране. Однако в моём случае это не критично.

Стандартная же схема подключения следующая:

Дисплей на ST7735SArduino
GNDGND
VCC5V
SCL13 (sck)
SDA11 (mosi)
RES9
DC8
CS10 (ss)
BL3.3V

Arduino: как опросить много кнопок по трём проводам

Собственно возникла задача, как опросить много кнопок, используя как можно меньше проводов. В итоге задача решается при помощи обычных резисторов: 100кОм подтягивающего, и по 1 кОм на каждую кнопку (кроме первой) для уменьшения напряжения. Читать соответственно будем через аналоговый вход. Принципиальная схема подключения выглядит примерно так (потенциально расширяема до примерно 500 кнопок):

как опросить много кнопок по трём проводам

Ну и скетч соответственно:

Из потенциальных проблем вижу сложности с обработкой нажатий нескольких кнопок одновременно и возможные изменения значений кнопок при «просадке» напряжения на плате.

1 2 3 293