Слава нації
#StandWithUkraine

Роман Теличко

Блог з програмування, оптимізації та адміністрування систем

Конвертирование ID3-тэгов в mp3-файлах с кодировки windows-1251 (cp1251) в utf-8

// 21 Лютого, 2012 | 897 переглядів

Запускаем так

find . -iname "*.mp3" -print0 | xargs -0 mid3iconv -e CP1251 -d --remove-v1

Для работы необходим python-mutagen.
Ставится так

sudo apt-get install python-mutagen

CCZE. Просмотр логов в цвете

// 20 Лютого, 2012 | 562 переглядів

Ставим, если ещё нет

sudo apt-get install ccze

Смотирим так

cat /var/log/syslog | ccze -A

Или так (экспорт в HTML)

ccze -h < /var/log/syslog > ~/syslog.html

Fdupes. Нахождение и удаление дубликатов (картинок, видео и прочих файлов)

// 20 Лютого, 2012 | 728 переглядів

Устанавливаем, если ещё нет

sudo apt-get install fdupes

Ищём и удаляем

fdupes -r -d -N /path/to/dir

При данных опциях fdupes рекурсивно (-r) в директориях ниже заданной (/path/to/dir) удалит (-d) все дубликаты ВСЕХ файлов, не переспрашивая на каждом файле (-N).

PostgreSQL. InitDB в русской/украинской локали

// 20 Лютого, 2012 | 4596 переглядів

Для украинской локали

initdb --locale=uk_UA.UTF-8 --lc-collate=uk_UA.UTF-8 \
--lc-ctype=uk_UA.UTF-8 --encoding=UTF8 -D /db/postgresql

Для русской локали

initdb --locale=ru_RU.UTF-8 --lc-collate=ru_RU.UTF-8 \
--lc-ctype=ru_RU.UTF-8 --encoding=UTF8 -D /db/postgresql

Ubuntu. Удаление ненужных служб

// 20 Лютого, 2012 | 3129 переглядів

bluetooth:

sudo apt-get purge bluez

cups:

sudo apt-get purge cups

Мой ~/.bashrc

// 20 Лютого, 2012 | 169 переглядів

cat ~/.bashrc
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias more='less'
alias ..='cd ..'
alias xs='cd'
alias vf='cd'
alias kk='ll'
alias gerp='grep'
alias lll='ll'
 
alias up='sudo apt-get update && sudo apt-get -y --force-yes upgrade && sudo apt-get dist-upgrade'
 
alias ph='sudo service php5-fpm restart'
alias ng='sudo service nginx restart'
alias po='sudo service postgresql restart'
alias my='sudo service mysql restart'
 
alias aps='aptitude search'
alias api='sudo aptitude install'                                                                                                                                                                                                              

Ubuntu/Xubuntu. Софт для инсталляции

// 20 Лютого, 2012 | 488 переглядів

sudo apt-get install \
aptitude pidgin rar unrar p7zip safe-rm sshfs pwgen imagemagick msttcorefonts
sqlite3 mc openssh-server tmux screen htop atop meld cabextract gthumb fdupes mplayer vlc
samba skype chromium-browser easytag audacious audacity
flashplugin-installer rsync nautilus pcmanfm gedit guake
libreoffice usb-creator-gtk gparted 

xfce4-goodies mtpfs
python-mutagen sensors-applet libnotify-bin acpi

php5 php5-cli php5-fpm php5-common php5-curl php5-dev
php5-gd php5-imagick php5-json php5-mcrypt php5-mhash php5-mysql 
php5-pgsql php5-sqlite php-apc

mysql-server phpmyadmin
postgresql postgresql-contrib pgadmin3
sudo apt-get remove abiword gnumeric

Правильный запуск PHP-скриптов в бекграунде

// 2 Лютого, 2012 | 190 переглядів

php -q script.php < /dev/null > script.log &

Скорость реакции

// 25 Січня, 2012 | 162 переглядів

Пересматривая свои старые проекты на своём первом языке Visual Basic я натолкнулся на эту программу.

Предыстория следующая. На курсах вождения, ещё в 2003, у нас была большая картонка с 16 цифрами, расположенными в случайном порядке. Было несколько таких картонок. И нужно было найти глазами подряд все числа от 01 до 16, засекая потраченное время. После чего это время делилось на 16 и получалось среднее время реакции.

Так и получилась эта программка на Visual Basic.
А вот сегодня я решил её переписать на HTML+JavaScript, продлив тем самым её жизнь и заодно показав общественности.
Читати далі…

Перепост: Битовые операции в PHP на примерах

// 13 Грудня, 2011 | 329 переглядів

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

Например, встречались такие варианты:

if ($error['type'] == E_ERROR || $error['type'] == E_PARSE || $error['type'] == E_COMPILE_ERROR) { ... }

или

if(in_array($error['type'], array(E_ERROR, E_PARSE, E_COMPILE_ERROR)) { ... }

В связи с этим решил написать небольшую статью о битовых операциях с примерами их использования.
Читати далі…