shoorick: (Рыжий)
Сваленные в кучу файлы можно сгруппировать по их расширению — например, такой командой:
find . -type f \
| perl -MFile::Copy -MFile::Path -nle \
'/\.([^\.\/]+)$/ and $ext = $1; print $ext; File::Path::make_path "../$ext"; move $_, "../$ext"'

http://shoorick.ru/2015/04/08/bulk-grouping/
shoorick: (Рыжий)
Для подсчёта количества байт, символов, слов и строк в юникосоподобных операционных системах предназначена программа wc. Иногда хочется запускать её, например, раз в секунду, чтоб следить за выполнением какого-нибудь долгого процесса.

Сделал по-быстрому скрипт, который просто вызывает wc и выводит его результат, пока пользователю не надоест и он не нажмёт Ctrl+C
#!/usr/bin/perl

print STDERR "Press ^C to exit\n";
my $cmd_line = 'wc ' . join ' ', @ARGV;
my $out;
while (1) 
    $out = `$cmd_line`;
    chomp $out;
    print "\cM$out";
    sleep 1;

Запустить можно, например, так:
wcloop -l some-big-file.txt

http://shoorick.ru/2014/11/18/watch-for-filesize-in-infinite-loop/


upd/15:48: товарищ подсказывает:
watch -n 1 wc -l?
И верно ведь посдказывает!
shoorick: (Рыжий)
При экспорте лилипондовых нот в формат PNG происходит странный сбой, наблюдающийся в юниксоподобных опрационных системах — внутри добавочных линий появляются вытянутые белые треугольники. Оказывается, баг известен и его сваливают на кривизну гостскрипта, используемого для преобразования готовых нот из векторных форматов в растровые.

Один из способов обхода (есть всякие) — добавить к команде вызова лилипонда параметр -dpixmap-format=pngmono — он заставит лилипонд выводить безглючную монохромную картинку вместо серой. В случае с низкой разрешающей способностью получится, наверное, коряво. Но если выставить разрешающую способность побольше, например, в 600 dpi — получается вполне хорошо.
shoorick: (Рыжий)
После нескольких неудачных попыток прилогиниться к сайту, сделанному на друпале 7.15, пользователь натыкается на сообщение:
Sorry, there have been more than 5 failed login attempts for this account. It is temporarily blocked. Try again later or request a new password.
Насколько позже стóит повторить попытку — непонятно.

Полез в БД — в таблице `users` никакой информации об активности пользователей. А вот в таблице `flood` — есть: в поле `event` — название события, `identifier` — идентификатор: IP либо строка вида UID-IP для попыток залогиниться, если логин существует, `timestamp` и `expiration` — время попытки входа и истечения бана (в секундах с начала эпохи). Продолжительность бана — 3600 секунд (час) для случаев, когда UID не указан и 21600 секунд (6 часов) — для пары UID-IP.

Если удалить из таблицы `flood` лишние записи — вход открывается.

P. S. Узнать текущее время в секундах с начала эпохи в юниксоподобных операционных системах можно командой
date +%s
в MySQL для этого есть функция UNIX_TIMESTAMP.
shoorick: (Default)
В мануале на геттекст пишут, что есть несколько переменных окружения, на которые смотрит геттекст, принимая решение о выборе языка

In the function dcgettext at every call the current setting of the highest priority environment variable is determined and used. Highest priority means here the following list with decreasing priority:

  1. LANGUAGE
  2. LC_ALL
  3. LC_xxx, according to selected locale category
  4. LANG
Под FreeBSD (в попадавшихся мне серверах) переменная LANGUAGE была неопределена — можно было смело использовать более короткую LANG. Под убунтой такой фокус не проходит.

Если же задавать язык в переменной LANGUAGE — работает в обоих случаях.
shoorick: (Default)
В интернетах рекомендуют перломодули ставить не через cpan или perl -MCPAN -eshell, а тем путём, что более правилен для используемой ОС.

Под фрёй это значит, что можно попытаться поставить модуль из портов: для множества популярных модулей есть соответствующие порты с именами p5-Module-Name. В мандриве, если правильно помню, пакеты назывались perl-Module-Name. В убунте ещё веселее: libmodule-name-perl.
shoorick: (Default)
Обнаружил у mc неприятное свойство: при копировании файлов через SSH он создаёт в /tmp/mc-$USER кучу копий обрабатываемых файлов с именами fishмусорfilename.ext, не удаляя их после копирования. То есть, после копирования всей кучи он этот мусор удаляет, но пока копирование не завершено, файлы копятся.

Сейчас, например, при попытке скопировать несколько сот метров регулярно выскакивало:
/tmp: write failed, filesystem is full
Приходилось вручную стирать лишние файлы.
shoorick: (Default)
Дано — весы напольные бытовые безмозглые без памяти.
Хочется — где-то хранить результаты взвешиваний: время и вес. Голова не подходит — ей подобные данные ни к чему. КПК и бумажные блокнот тоже
Возможное решение — хранить данные на компьютере. Причём, сохранить надо быстро, а обработать сохранённое (например, построить по ним график) — можно позже. Простейший из методов — системными командами, без излишнего программизма:
echo `date '+%s%t'` $1 >> ~/.weight/data
В файл пишется время и вес. Разедлитель полей — символ табуляции. Дёшево и сердито. Обработка данных — в следующей серии.

vi

Sep. 15th, 2009 10:43 pm
shoorick: (Default)
Осваиваю vi. Некоторые клавиатурные команды — для поиска и перемещения — такие же, как в less. Cкладывается ощущение, что less — это read-only vi: он даже тильды рисует вместо строк, находящихся после конца файла.

Хотя, конечно, начинать использовать vi после почти двенадцатилетнего знакомства с BSD-шными ОСями — это, наверное, верх неторопливости.
shoorick: (Default)
Поставил на домашнем ноутбуке LXDE, зашёл — вроде, работает. Запустил Google Earth — тоже работает. Причём существенно быстрее, чем из-под KDE4 и приятнее: на клавиши и мышку реагирует резво, глобус крутит плавно. Тормозилла хоть и тормозит, но тоже, вроде бы, стала пошустрее.

Поставил ещё для сравнения GNOME — вечером сравню и с ним.

Лет пять назад я пытался перевести домашнюю машину под FreeBSD (тогда фря у меня была резервной второй ОС на случай подыхания винды, которые случались время от времени) и тогда мне гном нравился больше кед.

Года два назад, когда я всё-таки переехал под фрю, на всех моих машинах прописались кеды. Теперь пришло время линять обратно? Или не пришло? Или, как ряд товарищей, вообще жить без иксов? :-)

P. S. Сегодня, пока менял забытый рутовый пароль на линуксовых машинах, вынужден был редактировать файлы с помощью vi, потому что больше ничего под рукой не было. Теперья знаю не только :q!, а и несколько других команд.
shoorick: (Default)
Практика показала, что результат от приведения к единому виду софтин, написанных на GTK и Qt, сделанного выбором пункта «Use my KDE style in GTK application» в KDE Control Center → Appearence & Themes → GTK Styles and Fonts, нельзя признать удовлетворительным: GTK-шные программы (особенно Firefox и Thunderbird) становятся страшными и не очень похожими на KDE-шные. Более аккуратный вид достигается, если всё-таки использовать какую-нибудь тему, сделанную специально для GTK. Если поискать внимательно, можно найти темы, существующие и для GTK, и для Qt.

Например, тема QtCurve существует в нескольких вариантах, поставив её можно добиться схожести внешнего вида приложений:

KDE Control Center и GIMP

А ещё можно, путём ковыряния в настройках темы, существенно поменять её внешний вид.
shoorick: (Default)
Надоело для перемотки на нужную песню писать mpc playlist и искать, где же она спряталась. Оптимизировал, написав скриптик:
mpc playlist | grep $* | perl -ne '/(\d+)/ && print $1' -0777 | xargs mpc play
Ищет в проигрываемом списке первую попавшуюся песню, содержащую в названии (либо имени исполнителя) искомое слово.
shoorick: (Default)
Зная номер порта, на котором работает каталистовый отладочный сервер, все его экземпляры легко можно загасить без использования мыши и ручного набора PIDов:
ps -ax | grep p\ номер_порта | grep -v grep | cut -f1 -d' ' | xargs kill -сигнал

Чпукс

Sep. 3rd, 2008 11:03 am
shoorick: (Default)
Беседуя недавно с коллегами, работающими с разными ОС, услышал пару раз от них слово «чпукс». Задумался, но виду не подал. Лишь потом, часа через полтора дошло, что такое «чпукс» — это HP-UX.
shoorick: (Default)
cd `whereis имя_порта | awk '{ print $2 }'`
shoorick: (Default)
GTK-шные приложения мне не нравятся, в первую очередь, потому, что в них неудобные диалоги выбора файла:
  • там ~ не преобразовывается в $HOME (кстати, в адресной строке файрфокса та же фигня)
  • там нельзя указать какой-нибудь протокол, например, ftp://, http://, fish://, smb://
  • там нет истории ввода
Но всё равно приходится пользоваться: firefox, thunderbird, inkscape, gimp, xaralx — GTK-шные.

P. S. Да ещё и монтирование FAT32- и NTFS-партиций сдохло после апгрейда системы :-(
shoorick: (Default)
Время от времени звук пропадал:
/dev/dsp: device busy
Видимо, шла нешуточная борьба за девайс: и mpc хотел в него попеть песни, и aRts хотел туда посвистеть всякие звуки. Но выход есть, он достаточно прост и описан во фрёвом руководстве:

7.2.3. Использование нескольких источников звука

ещё буквы )
Проверил — работает: теперь звук есть всегда. Можно даже две песни одновременно слушать.
shoorick: (Default)
Обнаружил у subversion неприятный баг: виндовый клиент (например, TortoiseSVN) не понимает, что бывают не только обычные файлы, но и симлинки, после чего симлинк при ближайшем коммите заменяется файлом, на который этот симлинк ссылается, после чего у svn срывает крышу, каталог блокируется и никак не желает разблокироваться. Попытка заменить проблемный файл его древней версией тоже ни к чему не приводит: хоть файл и меняется, закоммитить его не удаётся (ибо этот файл out of date). С удалением — то же самое.

Погуглил: похоже, проблема известная — народ с подобным сталкивался. Гуглю дальше, ищу методы решения…

upd/14:30: Решается удалением проблемного файла непосредственно из хранилища:
svn delete URL_to_repo/path/file
shoorick: (Default)

Я как-то писал, что для набора нот true юниксоидам GUI не нужен, ибо есть, например, lilypond. Но вчера я всё-таки очередной раз попробовал гуёвое средство — Denemo. И, вроде, не без успеха.

Скорость набора в денеме весьма высока, ибо без мыши вполне можно обойтись: используются, большей частью лишь пара десятков клавиш: стрелки либо hjkl для передвижения курсора, abcdefg,' — для выбора высоты ноты, 012345 — для непосредственного ввода ноты нужной длительности (0 — целая, для четвертей можно вместо двойки лупить по пробелу), +- — для сдвига уже введённой ноты на полтона, . — для увеличения длительности уже введённой ноты в полтора раза. Практика показала среднюю скорость до 1 ноты в секунду. Но, увы, остальное так же быстро сделать не получилось: пришлось тыкаться в менюшки и, выгнав набранное в лилипондовый формат, ковырять уже его, попутно ковыряя доку.

В результате из файла весом в полтора кило:

% LilyPond file generated by Denemo version 0.7.6

%http://denemo.sourceforge.net/

\version "2.10.33"
\header{
	title = "Вокализ"
	composer = "С. Прокофьев"
}

#(set-global-staff-size 16)
#(set-default-paper-size "a4")

TenorI = \context Voice = TenorI {
	\time 3/4
	\stemUp
	\repeat volta 2	{ 
	c''8 d'' e''4 g' |
	e''8[ f''] f''[ e''] e''4 |
	d''8[ c''] e''[ c''] b'[ c''] |
	g'2 a'8 b' |
%5
	a' c'' c''4 d''8 e'' | }
	\alternative {
		{	d''4 f'' e'' |	e''2. | }
		{	d''4 f'' e'' |	g''2.\fermata }
	}
}
TenorII = \context Voice = TenorII {
%!Nonprimary Voice
	\stemDown
	\repeat volta 2	{ g'2. |
	c''2 c''4 |
	g'2 g'4 |
	g'2 a'8 b' |
%5
	a'4 a' a' |	}
	\alternative {
		{	a' c'' b' |	c''2. |}
		{	a'4 f'' e'' | e''2._\fermata }
	}
}
Bariton = \context Voice = Bariton {
	\stemUp
	\repeat volta 2	{ g8 f e4 e |
	g8[ a] a[ g] g4 |
	f8[ e] g[ e] e4 |
	e2 e8 ees |
%5
	d4 e f |}
	\alternative {
		{f f g | g2. |}
		{f4 c' b |	c'2.\fermata }
	}
}
Bass = \context Voice = Bass {
%!Nonprimary Voice
	\stemDown
	\tieDown
	\repeat volta 2	{ 
	c2. ~ |
	c2. ~ |
	c2 b,8 c |
	g,4 e, a, |
%5
	f,2. ~ | }
	\alternative {
		{ f,4 d g, | c2. | }
		{ f,4_\repeatTie d g |	c'2._\fermata }
	}
}
\score {
<< 
	 \new StaffGroup <<
		\new Staff = Tenor <<
			\TenorI
			\TenorII
		>>
		\new Staff = Bass <<
			\clef bass
			\Bariton
			\Bass
		>>
	>>
>>
}
получается такая картинка:
Ноты

Только я одного не пойму: какого $%#@ в портах всё ещё (я об этом уже писал) лежит версия 2.2.2 семилетней давности (ругающаяся на сгенерённое денемой), а более свежая 2.10.33, выложенная на сайте разработчика, сделана как самораспаковывающийся архив, ставится в /usr/local/lilypond и не содержит никакого хелпа — ни man, ни info, который был доступен в версии 2.2.2. Непорядок!

shoorick: (Default)
Лет двенадцать назад пробегал мимо меня IBM PC AT 386. Пробегая, несколько недель, он поработал у меня дома. В те стародавние времена я жил под ДОСом, изредка включая Windows 3.11 — да и то лишь для того, чтоб под ней запустить параллельно несколько досовых программ: например, турбо паскаль и дос навигатор...

Что мы видим сейчас? На компьютере установлена FreeBSD, поверх которой — KDE. А ужё в кедах — dosbox, в котором запущен всё тот же DOS Navigator. Который работает. И скринсейверы его: что текстовые, что графические — тоже работают. Фантастика! Найти, что ль, старых досовских игрушек?

Profile

shoorick: (Default)
shoorick

December 2016

S M T W T F S
    1 23
45678910
11121314151617
18 19 2021222324
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 28th, 2025 12:11 am
Powered by Dreamwidth Studios