Официальная возможность получить лицензионный софт бесплатно.
Giveaway of the Day
Это не реклама!

Щелкните для получения прогноза по Биробиджану


среда, 29 апреля 2020 г.

Word и перенос заголовка таблицы

Есть у меня хитрый документ .docx с длинной таблицей. Для первой строки задано "показывать как заголовок на каждой странице".
Открываю документ в OOo/LOo - всё нормально. Открываю в MSO 2016 - на первой странице заголовок есть, на остальных - нету. Флажок "повторять" на месте, но не повторяется.
В общем, надо снять галку "обтекание таблицы". Почему этого не требуется в свободных офисах - без понятия.

https://forum.dwg.ru/showthread.php?t=127389

понедельник, 16 марта 2020 г.

Bash: разница в днях между двумя датами

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

echo $(( ( $(date +%s -d 4/13/2020 ) - $(date +%s -d 3/23/2020 ) )/86400 ))

Функция вычислений $(( выражение ))
Вывод команды $( команда )
Арифметическое операторы и скобки (-/)
Перевести дату, заданную параметром -d в формат UNIX-date (число секунд с начала эры) +%s
Начальная дата в формате mm/dd/yyyy 4/13/2020
Конечная дата в формате mm/dd/yyyy 3/23/2020
Разницу между датами делим на число секунд в сутках 86400

Есть и другие способы такой арифметики, но именно этот первым пришел в голову. Данная команда выдает результат "21", то есть, между 13 апреля 2020 года и 23 марта 2020 года 21 день

По арифметике с временами у меня есть более ранний пост.

пятница, 14 февраля 2020 г.

Этикетки в OpenOffice - без слияния

Или: учимся работать с косвенной адресацией ячеек в электронных таблицах. Основная цель этого поста - показать возможности функции indirect(), ну а выбранный пример - это последний, где я ее применил

В большинстве офисных пакетов предусмотрена такая штука как "рассылка писем", "стандартные письма", "печать слиянием" и т.п. Имеется в виду, что существует некий табличный список, например:

SysName IT# AssetTag Ordinal
cnt300901 18006 JR0046780 1
cnt300911 18007 JR0046781 2
cnt300921 18008 JR0046782 3
cnt300931 18009 JR0046783 4
cnt300941 18010 JR0046784 5
cnt300951 18011 JR0046785 6
cnt300961 18012 JR0046786 7
cnt300971 18013 JR0046787 8
cnt300981 18014 JR0046788 9
cnt300991 18015 JR0046789 10

Где SysName - сетевое имя компа, IT# - внутренний номер для службы ИТ, AssetTag - инвентарный номер, Ordinal - порядковый номер.
(последнее поле по логике должно быть крайним слева, но я в реальном документе добавил его в последний момент, и чтобы не сломать форматирование, добавил справа. впрочем, на теоретические основы этого поста сей факт не влияет)

вторник, 24 декабря 2019 г.

bash: сравнение двоичных файлов с комфортом

Выкачал я с корпоративного FTP установочный образ винды. Не, всё легально - свежая официальная версия для установки внутри конторы. Копирую его на верный Zalman VE-300, гружусь с него на целевом компе и начинаю установку. Получаю славную ошибку 80070570 - "файл поврежден" или как-то так.
Не вдаваясь в лишние подробности, скажу, что образ действительно получился битый и md5 на ftp и у меня не совпали. Сегодня ночью с того же ftp скачался тот же (или перезалитый, чтобы скрыть повреждения?) образ, md5 совпали и я нормально установился с него.
Однако, всё это некрасивая лирика, а мне захотелось прекрасного. Например, как было в далёком DOS-овском детстве, можно было с помощью PCTools или Norton Utilities побайтно сравнивать файлы с большим комфортом, чем позволял штатный fc или cmp. Штатной приблуды в стандартной поставке "искаропки" нет, но свет не без добрых людей... Аж в 2010 году кто-то заинтересовался вопросом и получил на него интересные и полезные ответы.

--
diff  + xxd
Try diff in the following combination of zsh/bash process substitution:
diff -y <(xxd foo1.bin) <(xxd foo2.bin)
Where:
  • -y shows you differences side-by-side (optional).
  • xxd is CLI tool to create a hexdump output of the binary file.
  • Add -W200 to diff for wider output (of 200 characters per line).
  • For colors, use colordiff as shown below.

colordiff + xxd

If you've colordiff, it can colorize diff output, e.g.:
colordiff -y <(xxd foo1.bin) <(xxd foo2.bin)
Otherwise install via: sudo apt-get install colordiff.
binary file output in terminal - diff -y <(xxd foo1.bin) <(xxd foo2.bin) | colordiff
--
There's a tool called DHEX which may do the job, and there's another tool called VBinDiff.
For a strictly command-line approach, try jojodiff.
--

четверг, 10 октября 2019 г.

#!/bin/bash: поиск дубликатов файлов с выводом в csv

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



На выходе получаем CSV (разделитель полей - точка с запятой) в UTF8. Excel в этом плане туп и открывает его в 1251. Решение: в новой книге сделать импорт данных "из текста", задав нужные параметры.
Open/Libre-office сразу предлагают окно настроек и открывают в правильной кодировке.

воскресенье, 29 сентября 2019 г.

MySQL Workbench: read-only результаты запроса и safe update

Иногда при выборке из таблицы, причем без всяких выкрутасов, результат получается только для чтения потому что "To edit table data, the SELECT statement must include the primary key column(s)"



среда, 18 сентября 2019 г.

OpenOffice/LibreOffice - как скопировать сводную таблицу

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

На исходной таблице жмём "Изменить макет", там жмём "Еще" и выбираем новый лист в качестве места назначения: