Показаны сообщения с ярлыком tricks. Показать все сообщения
Показаны сообщения с ярлыком tricks. Показать все сообщения

пятница, 24 января 2014 г.

Вывод локальных переменных функции с ошибкой

Иногда бывает необходимость посмотреть локальные переменные функции в python, которая вызвала Exception в самом верху стека вызовов.

Проще всего сделать это, воспользовавшись штатным модулем inspect внутри блока except:

inspect.trace()[-1][0].f_locals

среда, 18 июля 2012 г.

Ввод русских символов в Terminal.app

Если вам потребовалось вводить русские символы в терминале OS X, то сделать это довольно легко:


$ cat >>~/.bash_login
export LANG=ru
export LC_ALL=ru_RU.utf-8
alias ls='ls -vFlaG'

Нажимаем Cmd + .

$ cat >>~/.inputrc
set meta-flag on
set input-meta on
set convert-meta off
set output-meta on

Нажимаем Cmd + .

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

Сниппет для быстрого удаления svn-файлов


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


find ./ -name ".svn" | xargs rm -Rf

среда, 19 октября 2011 г.

Сохраняем пароль для подключения по SSH в OSX

Думаю, всех утомляет каждый раз вбивать пароль при подключении к серверу по SSH. Нормальных приложений для менеджмента паролей к SSH под OSX нет (или они настолько непопулярны, что найти их просто невозможно), поэтому воспользуемся любимым терминалом.

Для начала стоит сохранить шорткат для нашего подключения, чтобы каждый раз не вбивать пользователя и пароль ssh. Открываем терминал, вбиваем:
nano .profile
Сохраняем алиас для подключения (естественно, заменяем user и host.com на нужные имена пользователя и название сервера, а ssh_my_server на тот алиас, который вам нравится).
alias ssh_my_server='ssh -2 -p 22 user@host.com'
Сохраняем профайл и открываем новое окно терминала, чтобы .profile выполонился (ну или вбиваем в терминале source .profile)

Генерим приватный и публичный ключи (оставляем passphrase пустым - просто жмакаем на enter)
ssh-keygen
Копируем публичный ключ на удаленный компьютер (user и host ставим свои):
scp -P 22 ~/.ssh/id_rsa.pub user@host:~/
 Логинимся на удаленный компьютер:
ssh_my_server
Создаем в корне домашней папки папку .ssh, если ее вдруг нет:
mkdir .ssh
Присоединяем к файлу наш ключ:
cat id_rsa.pub >> ~/.ssh/authorized_keys
Файл с публичным ключом теперь можно удалить - он больше не нужен:
rm -f id_rsa.pub
Уходим с сервера:
exit

Все. Теперь можно логиниться, не вводя пароль:
ssh_my_server

вторник, 20 сентября 2011 г.

Подлючение Flixel при работе с Flash IDE

Flixel - замечательный фреймворк для написания игр. Будучи бесплатным, написан он специально для pure-actionscript, но это не значит, что при создании игры на нем нельзя использовать Flash IDE.

Все, что нужно сделать, это сгенерировать темплейт для вашей игры при помощи вложенного в комплект поставки Flixel скрипта flx.py, после чего назначить созданный as-файл Document-классом вашего fla-файла. Если после этого ваша шаблонная игра скомилируется, то можно больше ничего не делать. Если же нет (к примеру, у вас не Flash CS5.5, а Flash CS4, как в случае с моим макбуком), то придется пройти еще один шаг.

Открываем класс org.flixel.FlxGame и находим там вот такую строку (скорее всего, под номером 33):

[Embed(source="data/nokiafc22.ttf",fontFamily="system",embedAsCFF="false")] protected var junk:String;

И комменируем неподдерживаемый параметр embedAsCFF:

[Embed(source="data/nokiafc22.ttf",fontFamily="system"/*,embedAsCFF="false"*/)] protected var junk:String;

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

Warning: 1090: Migration issue: The onMouseDown event handler is not triggered automatically by Flash Player at run time in ActionScript 3.0. You must first register this handler for the event using addEventListener ( 'mouseDown', callback_handler).

Находим файл /Applications/Adobe Flash CS4/en/Configuration/ActionScript 3.0/EnabledWarnings.xml

В нем находим строку

<warning id="1090" enabled="true" label="kWarning_DepricatedEventHandlerError">EventHandler was not added as a listener.</warning>

и меняем enabled на false

<warning id="1090" enabled="false" label="kWarning_DepricatedEventHandlerError">EventHandler was not added as a listener.</warning>

Наслаждаемся.


воскресенье, 10 июля 2011 г.

Экспорт SWF в MOV и мувиклипы

Давно не приходилось экспортировать собранные swf-файлы в видео, а тут понадобилось - заказчику требовалось открыть получившийся анимированный логотип в Final Cut. Помнится, раньше (наверное, это было еще в Flash 5 - давно я не экспортировал видео) с экспортом swf в видео часто бывали проблемы - ролик получался с непроигрывающимися мувиклипами, застывшими на первом кадре и иногда даже неработающими фильтрами.

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

Но тут обнаружилось, что флеш теперь прекрасно экспортирует видео, но есть одна особенность - по умолчанию он проигрывает видео в памяти до последнего кадра главного таймлайна и останавливает запись. Соответственно, если в главном таймлайне у вас всего один кадр и в нем мувиклип кадров на шестьсот, то видео у вас все равно получится длиной в один кадр. Но есть и решение - смотрим длину мувиклипа по времени и выставляем его в настройках экспорта в  mov (на изображении ниже выставлено шесть секунд):


Теперь видеозахват не закончится, пока не проиграется ваш мувиклип.