Analitycs

суббота, 19 ноября 2011 г.

Как запустить приложение MacOS X из terminal.app с передаваемым файлом?

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

$ open -a TextMate ./README

Ненавидишь соседей?

"Хочешь я убью соседей, что мешают спать?" (c)

Простенько, функциональненько, иногда может пригодится ;-)

Различные комбинации - в стиле Ссора+Секс, Ребенок с барабаном+Новорожденный заставляют задуматься ;-)

Ну и колоночки с усилителем нужны помощнее ;-)

Короче, вам сюда - FanSwitcher

пятница, 18 ноября 2011 г.

Skyrim vs Fallout

Приехал Skyrim... Xbox, бедняга, будет теперь работать на износ - двое игроков в одной квартире не дадут бедной железке отдохнуть.

Воспитательница в детском саду уже спросила - "что за странную группу вы слушаете? Ребенок напевает какую-то новую музыку и размахивает дрыном" ;-) ;-)

Ну а в целом - весьма нравится. Расписывать не буду - и так везде на каждом сайте описания валяются.

Правда, можно  продолжить старую цитату с башорга - если раньше "запускаешь Fallout 3 - а там Oblivion" (с), то теперь - запустил Skyrim - а там... Fallout New Vegas ;-)

понедельник, 14 ноября 2011 г.

Как реализовать периодические задачи в Twisted? (cron vs LoopingCall)

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

Есть же методически грамотное, ВСТРОЕННОЕ решение - и нашел я его сегодня случайно, когда искал совершенно другую вещь.

from twisted.internet.task import LoopingCall

#==============================================================================
class MySuperServer(MyServer, twisted.web.server.Site):
    '''
    мой собственный веб-сервер, с блекджеком и шлюхами ;-)
    '''

    def __init__(self):
        lp = LoopingCall(self.checkStatus)
        lp.start(1.0) # период в секундах    

    def checkStatus(self):
        #self._log('Looping call')
        pass

пятница, 11 ноября 2011 г.

Chef creating new cookbook - rake aborted! Don't know how to build task

При попытке создания нового cookbook для Chef по некоторым мануалам вываливается ошибка

# rake new_cookbook COOKBOOK=xxx CB_PREFIX=site-
rake aborted!
Don't know how to build task 'new_cookbook'

Причина - прямое использование rake тут было deprecated, потом вообще убрали. Теперь труЪ-путь для подобных операций - только использование knife, командной утилиты Chef.


# knife cookbook create xxx

Вот не люблю ruby за это очень сильно - ведь был же суслик... а теперь его нету. ;-(

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

Синхронизация времени на CentOS/Fedora

Как поправить разошедшееся время на CentOS/Fedora

$ sudo yum update tzdata -y

Проверить/выставить

$ cat /etc/sysconfig/clock 
ZONE="Europe/Moscow" 

И под конец запустить

$ sudo chkconfig --level 345 ntpd on && sudo service ntpd start

Подрезано тут (спасибо sanjek65)

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

PHP header("HTTP/1.0 404 Not Found") показывает пустую страницу

При отправке из PHP скрипта HTTP ошибки 404 - показывается белая страница, хотя в настройках вашего веб сервера явно задана собственная красивая страничка для этой ошибки.

Как лечить?

Просто считать содержимое файла с красивой 404 ошибкой и вывести его HTML в поток - примерно так
if ($is404) {
 $html = file_get_contents(YOUR_ROOT_PATH.'/404.htm');
 header("HTTP/1.0 404 Not Found");
 echo $html;
 exit();
}