пятница, 30 марта 2012 г.

ubuntu 11.10 и flash player 11.2 r202

После вчерашнего обновления заглючил по-черному флэшплеер. Решение пока помогло такое:
1. Удалить Flash player 11
2. Инсталлировать flashplugin-installer при помощи команды sudo apt-get install flashplugin-installer
3. Загрузить Flash Player 11.1.102.63 (174 метра). Там будет архив с плеером для разных операционок, из которого нужно извлечь подходящий libflashplayer.so
4. Скопировать извлеченный libflashplayer.so в папку /usr/lib/flashplugin-installer/

четверг, 29 марта 2012 г.

Для борьбы с обфускацией

Отличный сайт: http://jsbeautifier.org/. Форматирует код javascript в удобочитаемый вид.

понедельник, 26 марта 2012 г.

Всякая всячина о Python

Модули


Q: Как получить список загруженных модулей?
A:
outText = ""
for key in sys.modules.keys():
outText += key + "\n"


Q: Как загрузить модуль, который лежит не в папке скрипта?
A:Добавить путь поиска модулей:
sys.path.append('/mypath')
Но это не очень хороший способ. Если в другом проекте нужно будет использовать другой модуль с тем же именем, начнется каша.

Q: Как загрузить модуль с именем, содержащим недопустимые символы?
A:
module=__import__('my-module-name')
my_module_name = getattr(module, 'my-module-name')


Q: Как удалить модуль из списка загруженных?
A:
try:
del sys.modules['my_module_name']
except:
pass


Q: Как загрузить модуль с нетривиальным именем, находящийся в нетривиальном месте?
A:Воспользоваться вот такой милой процедурой:
import imp

def import_module(name, path):

# Fast path: see if the module has already been imported.
try:
return sys.modules[name]
except KeyError:
pass

# If any of the following calls raises an exception,
# there's a problem we can't handle -- let the caller handle it.
fp, pathname, description = imp.find_module(name, path)

try:
return imp.load_module(name, fp, pathname, description)
finally:
# Since we may exit via an exception, close fp explicitly.
if fp:
fp.close()


mod_python


Q: Как получить реальный путь до скрипта на сервере?
A:
def index(req):

import os
from mod_python import apache

req.add_common_vars()
pathname = os.path.dirname(req.subprocess_env['SCRIPT_FILENAME'])
return pathname


Q: Как посмотреть доступный список переменных окружения на сервере?
A: С помощью такого скрипта:
# -*- coding: UTF-8 -*-

from mod_python import apache

def index(req):

req.add_common_vars()

result = ""
for key in req.subprocess_env.keys():
result += key + "=" + req.subprocess_env[key] + "\n"
return result

среда, 21 марта 2012 г.

1С Предприятие 8.1: настройка прокси-сервера

Оказывается, в этой замечательной программе некоторые справочники (банки, курсы валют) можно обновлять по HTTP-протоколу из интернета. Единственная проблема - если контора находится за прокси, нужно этот прокси где-то указать. Оказывается, это делается так: на рабочей станции в каталоге C:\Program Files\1cv81\bin\conf создается файл inetcfg.xml, в нём прописывается следующее:
<InternetProxy 
protocols="http=myProxyServerAddress1:8080 myProxyServerAddress2:8080"
user="proxyUser"
password="proxyPassword"
bypassOnLocal="true"
bypassOnAddresses="127.0.0.1 *. master"
/>
и перезапускается 1С.

Небольшая тонкость: авторизация NTLM с учетной записью, отличной от текущего пользователя, похоже, не срабатывает, т.е. указание user="domain\user" нужного эффекта не дает. Однако, если вообще снести user=... и password=..., то 1С на прокси авторизуется с текущей доменной учетной записью без проблем.

понедельник, 19 марта 2012 г.

Remote Control is disabled

Неожиданно при попытке подконнектиться к удаленной машине при помощи Configuration Manager Remote Control стало после окошка с авторизацией выскакивать сообщение "Remote Control is disabled". Не знаю уж отчего такое произошло, но в моем случае помогла правка реестра:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Client\Client Components\Remote Control]
"Enabled"=dword:00000001

воскресенье, 18 марта 2012 г.

Доступ к папке принтеров из командной строки Windows XP

Как известно, всякие настройки можно вызывать из командной строки. Вот, например, для принтеров:
control.exe printers


Однако, если мы хотим использовать это в связке с командой runas, возникают трудности. Например, с теми же принтерами команда:
runas /user:domain\admin "control.exe printers"
ничего не отображает.

Оказалось, что "Принтеры" - это специальная папка, открывается она при помощи explorer.exe, её можно открыть вообще "в лоб" вот так:
%windir%\Explorer.exe ::{2227A280-3AEA-1069-A2DE-08002B30309D}

А explorer.exe, похоже, по умолчанию не создает отдельный процесс с нужными правами, а либо подживается к уже существующему, либо просто тихо дохнет. Чтобы его от этой вредной привычки отучить, требуется при помощи редактора реестра прописать для админской учетки параметр HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\SeparateProcess равным 1.
UPD 13-05-28: Есть еще вариант запуска с хитрым ключом:
explorer /separate

То есть последовательность действий такова:

1. запускаем regedit.exe командой:
runas /user:domain\admin regedit.exe
Правим там параметр HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\SeparateProcess = dword:00000001

2. Получаем на экран папку с принтерами:
runas /user:domain\admin "control.exe printers"
И делаем там своё чёрное админское дело...

Решил поделиться с миром своим опытом работы в Adobe Flex

Сами статьи будут пока лежать тут: http://xdy-ydx.ru/flex. Сплошное графоманство и дилентантизм, конечно. Не знаю, хватит ли энтузиазма, и получится ли из этого что-нибудь, но ещё интересно. 8-)

Как подсмотреть список доступных переменных окружения в mod_python

Всё-таки в PHP было удобно. Пишешь файлик, содержащий <?php phpinfo();?>, и - вуаля - всё как на ладони. Для питона конструкция сложнее:
# -*- coding: UTF-8 -*-

from mod_python import apache

def index(req):

req.add_common_vars()

result = ""
for key in req.subprocess_env.keys():
result += key + "=" + req.subprocess_env[key] + "\n"
return result

понедельник, 12 марта 2012 г.

Установить VLC 2.0 в Ubuntu

Давеча выяснилось, что цельнотянутая с инета анимашка не хочет проигрываться. Даже в VLC. Это показалось странным. Видимо, дело в x264, который то ли сильно свежий, то ли плеер сильно старый, в общем, так или иначе, а что-то нужно будет обновить. Оказалось,что вышел VLC 2.0, для установки которого в убунте 11.10 пришлось выполнить следующие команды:
sudo add-apt-repository ppa:n-muench/vlc
sudo apt-get update && sudo apt-get install vlc

И, надо отметить, помогло.

понедельник, 5 марта 2012 г.

Linux: Восстановить разрешение экрана xfce

После запуска и некорректного завершения некоторых игрушек под wine, переключающих разрешение экрана в 800x600, хочется научиться восстанавливать "всё как было", что называется, в один клик.

Оказывается, для этих целей подходит команда xrandr. Будучи запущена без параметров, выводит список доступных разрешений экрана. Чтобы сменить разрешение, нужно выполнить, например:
xrandr -s 1024x768

воскресенье, 4 марта 2012 г.

Windows: Служба "Служба профилей пользователей" препятствует входу в систему

Q:При попытке залогиниться на компе с Windows 7 под доменной учеткой выдается сообщение: Служба "Служба профилей пользователей" препятствует входу в систему. Невозможно загрузить профиль пользователя."
A: Помогло следующее (цитата):
Заходим под другой учеткой с наличием администраторских прав. В ресстре идем по ветке HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\ Там уже раздел с ID нужного нам пользователя (нужный нам раздел можно найти по ключам, указывающим путь к профилям). Оказывается, что правильный раздел был с именем вида <идентификатор>.bak + к тому же существовал раздел с таким же идентификатором, но без .bak, в котором путь к профилю был указан ошибочно. Итак, удаляем раздел с ошибочным путем, переименовываем правильный раздел, удалив в нем .bak и перелогиниваемся уже под той учеткой, под которой войти не удалось.