вторник, 21 февраля 2012 г.

Печать в PDF для всех пользователей сети

Иногда надо отправить по электронной почте документ не очень широко распространенного формата, наиболее простое и правильное решение - печать в файл .pdf формата и отправка его как вложения по электронной почте. Про виртуальный .pdf принтер doPDF я уже писал раньше, а если надо установить его сразу всем пользователям в локальной сети? Решение - довольно простой .bat файл в автозагрузке. 

@echo off > nul 

rem install virtual pdf printer doPdf 7

if not exist "p:\PDF_printed" md "p:\PDF_printed" 

"\\server\userinst$\Virtual PDF printer\dopdf.exe" /VERYSILENT /NORESTART /SUPPRESSMSGBOXES /NOCANCEL /DefaultLang=REGST /NOICONS /NoInstallIfExists 

rem set doPdf settings 

if exist "%ProgramFiles%\Softland\doPDF 7\dopdf_ok.flg" goto dopdf_ok
regedit /s "\\server\userinst$\Virtual PDF printer\doPDF_setts.reg" 

copy /y "\\server\userinst$\Virtual PDF printer\doPDF v7.nvl" "%APPDATA%\Softland\novaPDF\doPDF v7.nvl" 

copy "\\server\userinst$\Virtual PDF printer\dopdf_ok.flg" "%ProgramFiles%\Softland\doPDF 7\dopdf_ok.flg" 

:dopdf_ok 

exit /b 0 

В папке “\\server\userinst$\Virtual PDF printer” должны быть следующие файлы: 

- dopdf.exe - дистрибутив doPDF принтера; 
- doPDF v7.nvl - файл настроек, скопировать с машины с тестовой установки; 
- dopdf_ok.flg - флаг настроек; 
- doPDF_setts.reg - настройки doPDF из реестра, экспортировать из машины с тестовой установкой, ключ [HKEY_CURRENT_USER\Software\Softland\doPDF\Printers\doPDF v7].

Но после установки остается еще одна проблема - если оставить без внимания папку “p:\PDF_printed”, то в ней через полгода будет гора документов и невозможно будет что-то найти, поэтому надо настроить в этой папке поддержание порядка.Диск p:\ - это сетевой диск на сервере вида \\server\%USERNAME%, реальное расположение - \\server\d$. Общая идея наведения порядка: вечером удаляется папка прошлого дня PreviousDay, документы за прошедший день перемещаются в папку прошлого дня, папка “p:\PDF_printed” остается пустой и готовой к работе на завтра - т.е. всегда есть копия документов за прошлый день. Если выразить это все в виде .bat файла - то получается приблизительно следующее: 

rem @echo off>nul 

rem keep "%%i\PDF_printed" clean 

rem run this on Server (server.main.local) 

cd /d "d:\users" > c:\reports\clean.log 

for /D %%i in (*.*) do ( 

if exist "%%i\PDF_printed\PreviousDay" rd /S /Q "%%i\PDF_printed\PreviousDay" >> c:\reports\clean.log

md "%%i\PDF_printed\PreviousDay" >> c:\reports\clean.log 

move /Y "%%i\PDF_printed\*.*" "%%i\PDF_printed\PreviousDay" >> c:\reports\clean.log 

) 

exit /b 0 

Запуск этого .bat файла - каждый рабочий день после окончания работы, например, в 19-00 (пользователи в основном заканчивают работу в 17-00...18-00). После завершения этих в общем-то нехитрых действий получаем способ получения .pdf документов из чего угодно, а чтобы не было вопросов “А как всем этим пользоваться, я ничего не понимаю...” - пишем коротенькую инструкцию с картинками и выкладываем ее в общедоступном месте. В итоге получаем благодарности от пользователей и больше свободного времени на личное усмотрение.  

понедельник, 13 февраля 2012 г.

Отличное решение для просмотра изображений - IrfanView

 Недавно позвонил пользователь из нашей компании с просьбой открыть .psd файл - ничем встроенным не получилось. Естественно, ставить фотошоп для просмотра смысла нет - нужен легкий и простой просмотрщик, причем как можно большего количества форматов изображений, потому что фантазия пользователей при отправке изображений не имеет границ, и далеко не все ограничиваются .jpg. Встроенная лень и желание сделать “хорошо всем и сразу”, причем желательно побыстрее подсказали, что искать надо что-то бесплатное и легко устанавливаемое. Выбор пал на совершенно прекрасную программу IrfanView. Программа умеет не только просматривать изображения, но и конвертировать изображения из одного формата в другой, сканировать, создавать слайд-шоу, проводить групповую обработку изображений, проигрывать видео и аудио файлы - т.е. именно то, что надо. Кроме того - есть много языков интерфейса, русский в том числе. 

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

В итоге за где-то полчаса у меня получилось следующее: 

1. Скачиваем собственно дистрибутив программы iview432_setup.exe, плагины irfanview_plugins_432_setup.exe, файлы русификации Russian.dll, IP_Russian.lng, файл русской помощи i_view32.chm, складываем на сервере в общедоступной папке.Кроме того - там же создаем флаг-файл irfan_ru.flg с произвольным содержанием - понадобится для контроля русификации;

2. В автозагрузку пользователей добавляем .bat файл со следующим содержанием:(откорректировать согласно своей системы): 

@echo off > nul

rem Check that it's not server

IF EXIST c:\Server.sys goto end
IF /I %COMPUTERNAME%==server goto end
IF /I %COMPUTERNAME%==server_sql goto end
IF /I %COMPUTERNAME%==nav-server goto end

rem installing IrfanView

if exist "%ProgramFiles%\IrfanView\" goto irfan_ok

\\server\userinst$\IrfanView\iview432_setup.exe /silent /allusers=1 /assoc=1 /ini=%APPDATA%\Irfanview

rem installing plugins

\\server\userinst$\IrfanView\irfanview_plugins_432_setup.exe /silent

rem installing russian lang

copy "\\server\userinst$\IrfanView\Russian\Russian.dll" "%ProgramFiles%\IrfanView\Languages\Russian.dll"

copy "\\server\userinst$\IrfanView\Russian\IP_Russian.lng" "%ProgramFiles%\IrfanView\Languages\IP_Russian.lng"
 
copy /y "\\server\userinst$\IrfanView\Russian\i_view32.chm" "%ProgramFiles%\IrfanView\i_view32.chm"

:irfan_ok

rem every user can have separate settings

if exist "%APPDATA%\Irfanview\irfan_ru.flg" goto end
 
if not exist "%APPDATA%\Irfanview" md "%APPDATA%\Irfanview"
 
copy /y "\\server\userinst$\IrfanView\i_view32.ini" "%APPDATA%\Irfanview\i_view32.ini"
 
copy /y "\\server\userinst$\IrfanView\irfan_ru.flg" "%APPDATA%\Irfanview\irfan_ru.flg"
 
:end
 
exit /b 0

На этом, собственно, все. При следующем входе в систему IrfanView установится в тихом режиме, проверит перед этим - а не установлен ли он уже в системе, установятся плагины, в программе будут открываться все файлы изоборажений, для интерфейса и помощи будет выбран русский язык. Кроме того - так как файл настроек i_view32.ini находится в папке профиля пользователя %APPDATA% - то каждый пользователь компьютера может иметь свой набор настроек - в данном случае я против однообразия. 

Что еще радует - у IrfanView совершенно прекрасный FAQ, в котором есть ответы на все возникающие вопросы - правда, на английском языке - но ведь так и должно быть? 

Вывод - отличное решение для просмотра изображений, легкое, быстрое и удобное. 

Про пользователя с .psd файлом - остался доволен, и - на будущее - проблема просмотра изображений решена для всех пользователей сети. 


вторник, 31 января 2012 г.

Отличная утилита для автоматизации - Nircmd

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

Одно из решений - очень удобная утилита Nircmd от программиста по имени Nir Sofer. Вот что он пишет о себе: “... я опытный разработчик с глубоким знанием C++, .NET Framework, Windows API, and Reverse Engineering-а недокументированных бинарных форматов и алгоритмов шифрования.” 

Утилита Nircmd - очень мощный инструмент для управления Windows, гораздо лучше встроенной командной строки. Например, один из вариантов применения Nircmd у меня - запуск IM-клиента Pidgin с выдержкой времени после старта системы. Выдержка нужна для завершения синхронизации с Dropbox, потому что там находятся и исполняемый файл, и профиль Pidgin, и до его запуска должна закончится синхронизация. Для этого я создал в автозагрузке ярлык со следующим содержанием (предварительно скопировав файл nircmd.exe в папку \Windows): 

C:\Windows\nircmd.exe cmdwait 300000 qbox "Want to start Pidgin?" "question" "D:\Yaromax\Dropbox\Sync\Pidgin\pidgin.exe" 

Теперь через 5 минут после старта системы появляется окошко с вопросом - хочу ли я запустить Pidgin, я смотрю - завершилась ли синхронизация Dropbox, и если да - то соглашаюсь, если нет - то жду завершения синхронизации, и потом подтверждаю запуск. Очень удобно, потому что иначе я забывал запустить Pidgin, а теперь точно не забуду. 

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

C:\Windows\nircmd.exe cmdwait 5000 savescreenshot "d:\Temp_Work\screenshots\scr_~$currdate.yyyy_MM_dd$_~$currtime.HH_mm_ss$.png" 

Теперь при запуске будет создан скриншот текущего окна (целиком), и помещен в папку d:\Temp_Work\screenshots\, с именем вида scr_2012_01_27_14_15_25.png. На ярлык можно повесить комбинацию клавиш, и снятие скриншота становится легким и простым. Конечно, если использовать программы снятия скриншотов. то можно добиться большей гибкости, но зато на стороне Nircmd - простота решения. 

Возможности Nircmd очень широки - огромное поле для фантазии и экспериментов. Естественно, осторожность не помешает - а то ведь можно и задеть что-то важное, так что вдумчивое изучение описания обязательно. 

Как всегда - приятно радует отсутствие жадности у автора - утилита бесплатна. 

Успехов и хорошего настроения! 

Страница загрузки Nircmd

среда, 4 января 2012 г.

Убираем торможение компьютера после обновления iTunes

Пару дней назад я обновил на домашнем ноутбуке (Windows XP SP3) iTunes до последней версии 10.5.2. Все прошло безо всяких проблем, iTunes установился, после первого запуска переиндексировал библиотеку (около 20-25 Гб на внешнем USB-диске), после чего ноутбук намертво завис, и практически перестал отзываться на мышь и клавиатуру. “Не было печали - апдейтов накачали” - подумал я и начал разбираться, в чем же дело и почему так тормозит ноутбук. Кое-как добравшись до таскменеджера, я сразу увидел - причиной всему стал процесс APSDaemon.exe, который захватывал 85-95% CPU, естественно, все остальное жутко тормозило и не могло работать. 

После недолгого поиска оказалось, что этот непонятный демон нужен для беспроводной синхронизации с устройствами Apple. С какого перепугу оно запускается вместе с iTunes, когда еще никакие iДевайсы не подключены, да и вообще - я беспроводной синхронизацией не пользуюсь, так что мне от этого демона только вред и никакой пользы. 

Для начала я попробовал отключить автозапуск APSDaemon.exe через msconfig-startup - автоматически стартовать демон перестал, но все равно - после запуска iTunes продолжал все так же запускаться и захватывать весь процессор, что не могло радовать. Отключение зловреда в iTunes никак не предусмотрено, так что решение оказалось не очень красивым, зато “дешево, надежно и практично” - я просто переименовал APSDaemon.exe в _APSDaemon (расположение: c:\Program Files\Common Files\Apple\Apple Application Support\), после чего торможение ноутбука из-за вредного демона прекратилось, и iTunes снова стал удобной программой для управления музыкой и подкастами. Хотя - по итогам поиска решения - проблема есть, и в обновлении ее должны устранить - ждем новой версии iTunes и надеемся на лучшее. 

четверг, 29 декабря 2011 г.

С новым годом!!!

Вот и почти закончился 2011г - он не был простым и легким, как впрочем и всегда, но - все имеет свой конец. Пришло время подвести итоги, поставить новые смелые цели и стремится воплотить их. Но сначала - надо достойно и весело встретить новый 2012г, год Черного Водяного Дракона.

С Новым годом всех, успехов и хорошего настроения в новом году!



вторник, 27 декабря 2011 г.

Беларусь - один день из жизни

Отличное  time-lapse видео про один день из жизни Беларуси. Огромное спасибо авторам (скорее всего их больше одного) за отличную работу - красиво получилось.


вторник, 29 ноября 2011 г.

Бестолково о важном

На выходных попал на общешкольное родительское собрание - вроде как надо иногда зайти в школу, посмотреть, "а судьи, т.е. учителя кто?". Основная тема - "Компьютер в жизни ребенка - польза или вред", по причине довольно близкого общения с компьютерами в количестве сильно больше одного было даже интересно - что же такого могут рассказать про роль компьютера в жизни подрастающего поколения. 

Что приятно удвиило - был даже показ слайдов, управлял презентацией молодой человек явно из старшего класса, с довольно неплохого ноутбука. Сами слайды - набор статистики на тему "Дети и компьютер", сделаны на уровне "мы потихоньку изучаем PowerPoint, так что не судите строго - как смогли, так и сделали".

Но - на этом приятности и закончились. Общее ощущение от доклада - достаточно удручающее, осталось ощущение, что вечером предыдущего дня позвонили из отдела образования и строго-настрого приказали провести собрание на тему высоких технологий в жизни подрастающего поколения. Преподавательский состав привычно-устало ответил "Сделаем", выбрал кому поручить такое ответсвенное дело, после чего была надергана из интернета (компьютер в жизни взрослых преподавателей, да) и собрана какое-то подобие доклада. Ни начала, ни конца, ни середины, общей идеи не обнаружено, равно как и глубокого знания предмета у докладчика, точнее, у докладчицы.

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

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

В конце собрания всем раздали вот такие вот брошюрки и памятки (все фамилии, телефоны и адрес школы убраны, да они и не нужны тут). Где учат такому казенно-педагогическому языку - для меня загадка, возможно, в пединституте?



Боремся с зависимостью:

И памятка родителям:

Если все плохо - то надо срочно звонить (телефоны удалены):



Что интересно - мысли изложены достаточно грамотные, но как-то так, что их ну совсе не хочется читать - это, наверное, тоже вид искусства.

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

Общий вывод - еще очень нескоро компьютер в повседневной жизни и детей, и взрослых станет привычным и удобным инструментом, возможно привести коня к ручью, но невозможно заставить его пить...

среда, 23 ноября 2011 г.

Еще немного про Firefox - убираем торможение

Недавно столкнулся с непонятным поведением Firefox 8 - он работал как-то рывками, иногда довольно заметно подтормаживая, что неприятно. В поисках причины перекопал все, что возможно, даже сделал дефрагментацию системного диска. Оказалось, все гораздо проще - причиной торможения был плагин от Skype, который я недавно поставил. Конфликт Skype-плагина с Firefox известен разработчикам, так что есть смысл дождаться обновления, а пока что лучшее решение - удалить плагин. Мне Skype не особенно нужен, я пока что его полностью удалил, но - если он нужен, то наиболее правильное решение - переустановить его, только в начале установки нажать кнопку "Дополнительно", и отказаться от установки плагина для Firefox. 

Еще - Firefox при работе пишет контрольные точки для восстановления сессии при некорректном завершении работы браузера. Время между точками восстановления определяется параметром browser.sessionstore.interval (как всегда - набираем about:config в строке адреса, обещаем быть осторожными, вводим название параметра в строке поиска). Интервал задается в милисекундах, я изменил значение с 15000 (15с) до 120 000 (2 мин). 

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

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

среда, 9 ноября 2011 г.

Настройка домашнего компьютера для нескольких пользователей

Немного азбучных истин про настройку домашнего компьютера - все очень просто, но иногда из-за неправильной настройки, точнее ее отсутствия возникают проблемы. На написание данного поста натолкнула ситуация на работе - у коллеги отключился клиент ICQ только потому, что дома ребенок включил домашний компьютер, на нем автоматически запустился клиент ICQ, и благодаря врожденной жадности, перетянул внимание на себя, а коллега за рабочим компьютером осталась без обмена сообщениями, что не есть удобно и хорошо. Далее - длинные телефонные объясннения "нажми правой кнопкой вот ту синюю кнопочку, нет, не левой - правой..." и так далее.

 Естественно, на домашнем компьютере всего один пользователь на все случаи жизни, и естественно - с правами администратора - всякая нечисть, которую мог пропустить антивирус, будет просто очень рада повышенным правам.

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

Далее - выбрать наиболее грамотного в компьютерных вопросах члена семьи (обычно это глава семьи, но далеко не обязательно), и назначить его администратором компьютера, причем для администрирования компьютера пользоваться встроенной учетной записью администратора по принципу "вошел под администратором - настроил-поставил все, что надо - вышел". Вся работа за компьютером - только под ограниченными учетными записями, если надо что-то запустить с повышенными правами - вспоминаем про функцию "Запуск от имени", вводим логин и пароль администратора, настраиваем, возвращаемся в ограниченную учетную запись. В Windows 7 контроль безопасности настроен лучше, чем в старой доброй Windows XP, и даже немного напоминает грамотное повышение прав командой sudo в Linux. В итоге получим гораздо более защищенный и стабильно работающий компьютер.

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

Общий итог - один пользователь - одна учетная запись, пароли на все учетные записи кроме ребенка, вся работа на компьютере - под ограниченными учетными записями. Прописные в общем-то истины, но сильно упрощающие жизнь пользователя.

четверг, 3 ноября 2011 г.

Приводим в порядок часовые пояса на компьютере - для Беларуси и Армении

Итак, свершилось - с 2011г. в Беларуси вслед за Россией отменили сезонный переход времени. Хорошо это или плохо - ответить сложно, благодатная тема для размышлений и всяких предположений, но это не так важно. Не-перевод времени, как ни странно, вызвал проблемы с настройкой компьютеров - пользователи вручную корректировали время на компьютерах, но при синхронизации все возвращилось, и возникала разница во времени в один час.

Важно понимать, как работает синхронизация времени в компьютере. Вопрос в том, что синхронизируется UTC (почти оно же GMT) время,т.е. без всяких смещений и часовых поясов, а разница во времени высчитывается по установленному часовому поясу на компьютере пользователя. Иначе синхронизировать время никак не получится - ведь, например, сервер точного времени может находится в Америке, а пользователь со своим компьютером, например, в Австралии - и надо как-то учесть разницу во времени.

Самое грамотное и правильное решение - создание в системе нового часового пояса в соответствии с новыми правилами - в итоге получаются и время, и местоположение правильные. Самый простой вариант решения вопроса для Беларуси был в установке Калининградского времени, UTC+3 - Калининград не переводит стрелки осенью и весной, но это не совсем правильно - желательно указать правильное местоположение.

Самый простой вариант (для самой популярной форточно-оконной операционной системы) - применить скрипт от Дениса Азарова, oszone.ru, который вносит необходимые изменения в реестр - надо просто сохранить его на свой компьютер и запустить с правами администратора - и все станет на свои места - в системе возникает новый часовой пояс Minsk Standard Time, UTC+03, без перехода на летнее время. Для других систем идея остается та же, про реализацию не скажу, потому что негда проверить, но не думаю, что это большая проблема. 

Более подробно прочитать про скрипт и скачать его можно тут. Огромное спасибо Денису Азарову - скрипт работает прекрасно на версиях Windows начиная с XP и позже, возможно применение его и в Windows 2000, но там надо будет перезагрузить компьютер после применения, более новые системы не потребуют перезагрузки.

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