Posts

С обновлением Ubuntu 20.04 на 22.04 пропала возможность запуска целой кучи маленьких полезных виндовых программулек. Причина – не инсталлится Wine.

$ sudo apt install --install-recommends winehq-stable wine-stable
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libgphoto2-6:i386 : Depends: libgd3:i386 (>= 2.1.0~alpha~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Пришлось нормально так попотеть, чтобы понять в чём проблема и найти решение.

Примерно раз в месяц, в течение года я возвращался к этому вопросу вноь и вновь, но оно всё не находилось. Решения которые предлагались, в том числе в интернетах, пытались снести все пакеты которые используют libgd3, переустановить её и по-новой вернуть софт. Что-то стрёмно, на этот риск я пойтить не решался.

И вот спустя почти год заприметил возможность деградировать версию либы. И всё сложилось. Магия в следующей строке.

$ sudo apt-get install libgd3=2.3.0-2ubuntu2 libgd3:i386=2.3.0-2ubuntu2
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libgd3 is already the newest version (2.3.0-2ubuntu2).
The following packages were automatically installed and are no longer required:
  libavif13 libgav1-0 libyuv0
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  libdeflate0:i386 libexpat1:i386 libfontconfig1:i386 libjbig0:i386 libjpeg-turbo8:i386
  libjpeg8:i386 liblzma5:i386 libtiff5:i386 libuuid1:i386 libwebp7:i386 libxpm4:i386 libzstd1:i386
Suggested packages:
  libgd-tools:i386
The following NEW packages will be installed:
  libdeflate0:i386 libexpat1:i386 libfontconfig1:i386 libgd3:i386 libjbig0:i386 libjpeg-turbo8:i386
  libjpeg8:i386 liblzma5:i386 libtiff5:i386 libuuid1:i386 libwebp7:i386 libxpm4:i386 libzstd1:i386
0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,508 kB of archives.
After this operation, 4,651 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
...
...
...
Complete.

Теперь делаем всё как обычно и получаем работабщий WineHQ.

$ sudo apt install --install-recommends winehq-stable wine-stable
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
...
Complete.

Кто сегодня молодец? Я молодец. Взял с полки не просто пирожок, а ПИРОЖОК.

Saves list of media files, square is less than 100000 pixels.

( find jpg_renamed/ -name '*.jpg' | xargs -L1 identify -format "%[fx:w*h] %d/%f\n" | awk '$1 < 100000 { print $2 }' > to_delete.txt ) 2> errors.txt

Если неопознанные как графика файлы не нужны, можно обойтись только тем что в скобках

This content is password protected. To view it please enter your password below:

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

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

Откройте файл настроек mysql, например:

sudo nano /etc/mysql/my.cnf

Самые распространенные параметры, которые следует подстроить под нужды Вашего проекта и конфигурацию железа приведены ниже.

key_buffer_size

Если Вы используете только MyIsam таблицы, устанавливайте это значение в 30%…40% всей доступной оперативной памяти на сервере. MyIsam использует кеш операционной системы для данных, поэтому учтите, что оставшаяся свободная память понадобится именно для этого. Если же MyIsam таблиц у Вас немного и их совокупный размер маленький — оставьте это значение в пределах 32M.

innodb_buffer_pool_size

Если Вы используете только InnoDB таблицы, устанавливайте это значение максимально возможным для Вашей системы. Буфер InnoDB кэширует и данные и индексы (а кеш операционной системы не используется), поэтому значение этого ключа стоит устанавливать в 70%…80% доступной памяти.

Если Ваш сервер работает на Линуксе или Юниксе, не забудьте установить параметр innodb_flush_method в значение “O_DIRECT”, чтобы избежать избыточного кеширования на уровне ОС.

innodb_log_file_size

Обратите внимание на этот параметр, если у Вас предусматривается большой показатель записей. Чем больше размер этого ключа, тем более эффективно будет происходить запись данных. Но учтите, что при этом увеличится время восстановления системы! Этот параметр обычно устанавливают в 64M-512M.

innodb_flush_log_at_trx_commit

Этот параметр в значительной степени влияет на скорость работы (записи) innoDB таблиц. Значение “1” означает, что любая завершенная транзакция будет синхронно сбрасывать лог на диск. Значение “2” делает то же самое, только сбрасывает лог не на диск, а в кеш операционной системы. Это значение подойдет в большинстве случаев, т.к. не выполняет дорогой операции записи после каждой транзакции. При этом лог пишется на диск с задержкой в несколько секунд, что весьма безопасно с точки зрения сохранности данных. Значение “0” даст наибольшую производительность. В этом случае буфер будет сбрасывать в лог файл независимо от транзакций. Устанавливайте этот параметр в “0” на свой риск, т.к. в этом случае риск потери данных возрастает.

table_cache

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

thread_cache_size

Этот параметр помогает избежать операций создания/уничтожения потоков при соединении к серверу. Установите этот параметр в 16 и наращивайте по мере потребности. Проверяйте показатель “Threads_created”, идеально он должен быть равным нулю:

mysql> show status like 'threads_created';
+-----------------+--------+
| Variable_name | Value |
+-----------------+--------+
| Threads_created | 423312 |
+-----------------+--------+

query_cache_size

Значение этого параметра определяет сколько памяти стоит использовать под кеш запросов. Не увлекайтесь установкой огромных значений. Кеш запросов не должен быть большим, т.к. mysql будет съедать ресурсы на управление данными в кеше. Начните с 32М…128М, и увеличивайте по мере необходимости.

Самое важное

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

Источник ruhighload.com

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

Linux:

dmesg | grep -i hypervisor

Windows:

systeminfo | findstr /i model

There was ability to turn off touchpad, that disturbs me sometimes when i am typing on Dell Lattitude notebook. It was simple combination of Fn key with one of numeric. Authors of Dell Inspiron 13 7000 forgot to implement it. Additionnaly, now we have touch screen that client always tries to touch while point me something on screen. Anyways, i want to disable that features sometimes, and i want to make it in Ubuntu.

Googling this sublect gave me few commands. Not all of them works on my notebook, here is what is works:

$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech M705 id=10 [slave pointer (2)]
⎜ ↳ ImPS/2 Elantech Touchpad id=15 [slave pointer (2)]
⎜ ↳ DLL06FD:01 04F3:300F UNKNOWN id=13 [slave pointer (2)]
⎜ ↳ ELAN Touchscreen id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Integrated_Webcam_HD id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
↳ Dell WMI hotkeys id=16 [slave keyboard (3)]

$ xinput disable 12
$ xinput disable 13

Thsis is how i found necessary devide and turned it off.

It's time now to put it to a better place, make usable and allow toggle between on/off. Let's create script /usr/bin/touch-toggle with contents:

#!/bin/sh
# This shell script is PUBLIC DOMAIN. You may do whatever you want with it.

TOGGLE=$HOME/.touch-toggle

if [ ! -e $TOGGLE ]; then
touch $TOGGLE
xinput disable 12
xinput disable 13
notify-send -i /usr/share/icons/HighContrast/256x256/status/touchpad-disabled.png "Touch toggle" "Disabled Touchpad and Touchscreen"
else
rm $TOGGLE
xinput enable 12
xinput enable 13
notify-send -i /usr/share/icons/HighContrast/24x24/devices/input-touchpad.png "Touch toggle" "Enabled Touchpad and Touchscreen"
fi

Set execute permission and try it.

$ sudo chmod a+x /usr/bin/touch-toggle
$ touch-toggle
disabled-touch-devices

In System settings / Keyboard settings / Shortcuts i am adding new shortcut with name "Touch Toggle" and a command touch-toggle.

disabled-touch-devices-2

It's much better now.

Обычно я так не делаю, но вот приключилось. Ситуа: после долгого рабочего дня перенасыщенной событиями рабочей недели, решаю наконец сделать коммит многострадального нового функционала.

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

git add .
git commit (aborted, что-то лишнее добавил)
(добавил это что-то в gitignore)
git rm -r -f . (на автопилоте ляпнул -f вместо --cached)

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

И тут меня осенило: Local history в IDE – функция которая есть и в Netbeans и в Idea, которая просто существует и никогда особо не используется. В один момент всё было восстановлено при помощи неё, уровень адреналина медленно спадает, с этим приходит блаженство и счастье.

PS: Это была история из разряда “как делать не нужно”, о том “как быть в случае”. Поскольку выход из ситуации не явный решил об этом написать, возможно кого-то это спасёт.

А вообще, почаще делайте коммиты и отдыхайте.

en_USEnglish