msiexec /i пакет.msi /L*V имя_файла_журнала.log
воскресенье, 8 мая 2016 г.
msiexec: журналирование
Оказывается, при инсталляции пакета .msi можно включить журналирование. Делается это так:
воскресенье, 10 апреля 2016 г.
vim: небольшая шпаргалка
Vim при запуске читает настройки из файла ~/.vimrc. Если хочется, чтобы для каждого проекта эти настройки были свои, нужно в ~/.vimrc прописать:
Так или иначе, теперь vim будет сперва искать и подхватывать файлы .vimrc, находящиеся в текущей директории. Например, с таким содержанием:
set exrc set secureВторая строка тут вроде как отключает в vim возможность выполнять из-под себя команды оболочки.
Так или иначе, теперь vim будет сперва искать и подхватывать файлы .vimrc, находящиеся в текущей директории. Например, с таким содержанием:
syntax off set shiftwidth=4 set tabwidth=4 set expandtabНу перестала мне с каких-то пор нравиться подсветка синтаксиса. Это, конечно, сильно упрощало бы чтение кода и ускоряло бы разработку, но я стал совсем казуалом, так что подобные штуки уже непринципиальны.
вторник, 5 апреля 2016 г.
Windows: сбросить лишние терминальные сессии
Если при попытке прицепиться к терминальному серверу по RDP, например, командой
Как оказалось, делается это достаточно просто:
1. Авторизуемся на сервере командой:
2. Просматриваем список терминальных сессий командой:
3. Прибиваем лишние сеансы командой:
mstsc /v:myServerвыдаётся ошибка "Превышено максимальное допустимое количество подключений", то остаётся только одно: выкинуть кого-нибудь из уже подключенных пользователей.
Как оказалось, делается это достаточно просто:
1. Авторизуемся на сервере командой:
net use \\myServer
2. Просматриваем список терминальных сессий командой:
qwinsta /server:myServer
3. Прибиваем лишние сеансы командой:
rwinsta /server:myServer <id сессии>
понедельник, 28 марта 2016 г.
Linux: cron и mpg123
Обновился с ubuntu 14.10 до 15.10 - отвалился будильник.
Ну, то есть, в crontab была строчка:
После обновления эта строчка перестала подавать признаки жизни, зато в /var/log/syslog появились такие интересные сообщения:
Не знаю, что это такое, но побороть как-то удалось. Правда, теперь вышеупомянутая строчка выглядит так:
Ну, то есть, в crontab была строчка:
30 07 * * 1-5 huhmuh /home/huhmuh/budilnik.shкоторая успешно выполняла скрипт budilnik.sh:
#!/bin/sh mpg123 -l 0 "/home/huhmuh/budilnik.mp3"возвращавший меня в реальность каждое утро.
После обновления эта строчка перестала подавать признаки жизни, зато в /var/log/syslog появились такие интересные сообщения:
pulseaudio[12765]: [pulseaudio] source.c: Default and alternate sample rates are the same. pulseaudio[12765]: [pulseaudio] socket-server.c: bind(): Адрес уже используется pulseaudio[12765]: [pulseaudio] module.c: Failed to load module "module-esound-protocol-unix" (argument: ""): initialization failed. pulseaudio[12765]: [pulseaudio] main.c: Module load failed. pulseaudio[12765]: [pulseaudio] main.c: Не удалось инициализировать демон. pulseaudio[12762]: [pulseaudio] main.c: Не удалось запустить демон.
Не знаю, что это такое, но побороть как-то удалось. Правда, теперь вышеупомянутая строчка выглядит так:
30 07 * * 1-5 huhmuh export XDG_RUNTIME_DIR=/run/user/1000 && /home/huhmuh/budilnik.sh(конкретное значение переменной окружения XDG_RUNTIME_DIR подсмотрел командой printenv)
понедельник, 25 января 2016 г.
пятница, 22 января 2016 г.
мало ли, вдруг пригодится...
- Видишь ли, - сказал храбрый Рыцарь своему верному Оруженосцу, - дракона победить совсем не просто. Никто не помнит, когда появились эти зверюги, никто не знает, зачем им принцессы, и никто никогда не видел мертвого дракона. Но есть секрет...
- И какой же? - с интересом спросил Оруженосец.
Рыцарь немного помолчал.
- Он передаётся из поколения в поколение. Я его услышал от своего отца, тому рассказал мой дед, и так далее. Если у дракона количество голов больше количества лап, то это - неправильный дракон. Он с лёгкостью отдаст нам принцессу - а, может даже, и не одну, и будет отдавать их до тех пор, пока не станет правильным драконом. Каждый раз, когда такой дракон выпускает принцессу, число его голов уменьшается на количество его лап. Такая вот интересная закономерность.
- То есть, - оживился Оруженосец, - если мы встретим, например, шестиглавого четырехлапого дракона, то... м-м-м, получим одну принцессу, а дракон станет двуглавым?
- Совершенно верно.
- А если дракон будет тринадцатиглавым и трёхлапым, то мы обзаведёмся гаремом из четырех принцесс, а одноглавый дракон станет правильным? Вот это чудеса!
- Да, если папа не врал. А у меня нет причин ему не верить. По крайней мере, мама и тётя Марта всегда подтверждали его слова.
- Хм-м, постойте, господин, а вдруг дракон окажется, скажем, десятиглавым и пятилапым?
Рыцарь задумался.
- Вообще-то, об этом не принято говорить вслух, но дракон куда-то пропадает, а вместо него мы получаем двух принцесс.
- О-чу-меть! Надо же, какая загадочная зверюга. Прожорливая, небось?
- Ужасно прожорливая. Хорошо, что травоядная. Пощиплет травку, смотришь - а число голов удвоилось, ну и лап тоже. Только что бегал по лужайке на семи ногах и жрал одуванчики в одну пасть, а тут, глядь: уже лап четырнадцать и две башки поглощают флору гораздо шустрее. Или три головы на двадцати одной лапе... Зависит, в общем, от объёма переваренного силоса.
- И что же, никак его не убить?
- Никак. Разве что сократить, да и то не всех.
- Не понял, господин. Это как "сократить"?
- Ну, сам я не пробовал. Но Жан - ты знаешь его, он живёт во дворце на Серых Холмах - рассказывал, что однажды на него напал огромный двуглавый двенадцатилапый дракон. И что делать - непонятно. Убить нельзя, убежать - тоже како-то несолидно. Тогда Жан достаёт свой меч-кладенец, посильнее размахивается, и р-р-аз! отполовинивает число голов. Тут же каким-то чудом число ног тоже уменьшается в два раза, и чудовище, ставшее одноглавым шестилапым - не больше таракана - шустро исчезает в ближайших кустах.
- И это у всех так?
- Да, во сколько раз уменьшается число голов, во столько раз становится меньше число ног.
... Будильник трещал не переставая. Иванов с трудом оторвал чугунную голову от подушки, оказавшейся учебником математики за 6-й класс, но ещё не до конца понимая, откуда в его спальне парты, и почему он в школе, и куда все подевались. Будильник постепенно превратился в школьный звонок и заткнулся. Иванов протёр глаза, сладко потянулся и понял, что за окном вечер и пора идти домой. В пустой башке продолжали ворочаться рыцари и какие-то неправильные сократимые драконы. Иванов подхватил портфель. сунул в него свою "подушку" и, продолжая думать над тайнами высшей математики, вышел из класса.
- И какой же? - с интересом спросил Оруженосец.
Рыцарь немного помолчал.
- Он передаётся из поколения в поколение. Я его услышал от своего отца, тому рассказал мой дед, и так далее. Если у дракона количество голов больше количества лап, то это - неправильный дракон. Он с лёгкостью отдаст нам принцессу - а, может даже, и не одну, и будет отдавать их до тех пор, пока не станет правильным драконом. Каждый раз, когда такой дракон выпускает принцессу, число его голов уменьшается на количество его лап. Такая вот интересная закономерность.
- То есть, - оживился Оруженосец, - если мы встретим, например, шестиглавого четырехлапого дракона, то... м-м-м, получим одну принцессу, а дракон станет двуглавым?
- Совершенно верно.
- А если дракон будет тринадцатиглавым и трёхлапым, то мы обзаведёмся гаремом из четырех принцесс, а одноглавый дракон станет правильным? Вот это чудеса!
- Да, если папа не врал. А у меня нет причин ему не верить. По крайней мере, мама и тётя Марта всегда подтверждали его слова.
- Хм-м, постойте, господин, а вдруг дракон окажется, скажем, десятиглавым и пятилапым?
Рыцарь задумался.
- Вообще-то, об этом не принято говорить вслух, но дракон куда-то пропадает, а вместо него мы получаем двух принцесс.
- О-чу-меть! Надо же, какая загадочная зверюга. Прожорливая, небось?
- Ужасно прожорливая. Хорошо, что травоядная. Пощиплет травку, смотришь - а число голов удвоилось, ну и лап тоже. Только что бегал по лужайке на семи ногах и жрал одуванчики в одну пасть, а тут, глядь: уже лап четырнадцать и две башки поглощают флору гораздо шустрее. Или три головы на двадцати одной лапе... Зависит, в общем, от объёма переваренного силоса.
- И что же, никак его не убить?
- Никак. Разве что сократить, да и то не всех.
- Не понял, господин. Это как "сократить"?
- Ну, сам я не пробовал. Но Жан - ты знаешь его, он живёт во дворце на Серых Холмах - рассказывал, что однажды на него напал огромный двуглавый двенадцатилапый дракон. И что делать - непонятно. Убить нельзя, убежать - тоже како-то несолидно. Тогда Жан достаёт свой меч-кладенец, посильнее размахивается, и р-р-аз! отполовинивает число голов. Тут же каким-то чудом число ног тоже уменьшается в два раза, и чудовище, ставшее одноглавым шестилапым - не больше таракана - шустро исчезает в ближайших кустах.
- И это у всех так?
- Да, во сколько раз уменьшается число голов, во столько раз становится меньше число ног.
... Будильник трещал не переставая. Иванов с трудом оторвал чугунную голову от подушки, оказавшейся учебником математики за 6-й класс, но ещё не до конца понимая, откуда в его спальне парты, и почему он в школе, и куда все подевались. Будильник постепенно превратился в школьный звонок и заткнулся. Иванов протёр глаза, сладко потянулся и понял, что за окном вечер и пора идти домой. В пустой башке продолжали ворочаться рыцари и какие-то неправильные сократимые драконы. Иванов подхватил портфель. сунул в него свою "подушку" и, продолжая думать над тайнами высшей математики, вышел из класса.
понедельник, 18 января 2016 г.
MS Excel - посчитать разность дат
Ексель полон сюрпризов. Помнится, то ли в 2000, то ли в 2003 там в качестве пасхалки присутствовали даже гоночки. А теперь это.
Потребовалось рассчитать возраст человека на определенную дату. На первый взгляд, подходящей функции в екселе нет. Однако, оказывается, это не так:
=РАЗНДАТ(B1;A1;"y") - количество полных лет
=РАЗНДАТ(B1;A1;"ym") - количество полных месяцев свыше полных лет
=РАЗНДАТ(B1;A1;"md") - количество дней свыше полных месяцев
Подсмотрел тут:
http://www.planetaexcel.ru/techniques/6/105/
http://www.excel-office.ru/formulivexcel/schitaemvosrastvexcel
Потребовалось рассчитать возраст человека на определенную дату. На первый взгляд, подходящей функции в екселе нет. Однако, оказывается, это не так:
=РАЗНДАТ(B1;A1;"y") - количество полных лет
=РАЗНДАТ(B1;A1;"ym") - количество полных месяцев свыше полных лет
=РАЗНДАТ(B1;A1;"md") - количество дней свыше полных месяцев
Подсмотрел тут:
http://www.planetaexcel.ru/techniques/6/105/
http://www.excel-office.ru/formulivexcel/schitaemvosrastvexcel
Подписаться на:
Сообщения (Atom)