2009-03-05

Демон на Питоне

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

server.py > logfile &

Однако хочется чтобы наш сервер запускался автоматически после того как сервер был рестартован, для этого нужно создать скрипт запуска в директории /etc/init.d

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

 

Коментариев: 2

 
  2009-03-04

как поставить заголовок Return-Path к письму посылаемому командой mail

я уже писал в блоге что можно поправить php.ini добавив

mail.force_extra_parameters = "-f your@emailaddres.ru"

но более удобно использовать пятый аргумент функции mail:

$email    = "mail@yourdomain.ru";
$return_path = "mail@yourdomain.ru";
$from_path = "admin@yourdomain.ru";
$subject  = "text message";
$content  = "content of email"; 
$headers  = "Content-Type: text/plain;\n";
$headers .= "Content-Transfer-Encoding: 7bit;\n";
$headers .= "Return-Path: <".$return_path.">\n";
$headers .= "From: <".$from_path.">\n";
$extra = '-f '.$return_path;
mail($email, $subject, $content, $headers, $extra);
 

Оставить комментарий

 
  2009-03-02

Как сделать скриншот из flv файла

1. Ставим на сервер ffmpeg
    > svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ./ffmpeg
    > cd ./ffmpeg
    > ./configure
    > make
    > make install

2. Для создания GD картинки можно использовать, например вот такую функцию:

function Video2GD($filename){
  $descriptors = array(
    0 => array("pipe","r"),
    1 => array("pipe","w"),
    2 => array("pipe","w")
  );
  $cmd = 'ffmpeg -i '.$filename.' -vframes 1 -f image2 /dev/stdout';
  $cwd = '/tmp';
  $env = array();
  $process = proc_open($cmd, $descriptors, $pipes );

  if (is_resource($process)) {
    fclose($pipes[0]);
    $data = stream_get_contents($pipes[1]);
    fclose($pipes[1]);
    $error = stream_get_contents($pipes[2]);
    fclose($pipes[2]);
    return imagecreatefromstring($data);
  }
  return false;
}

пример использования функции Video2Gd:

    $im = Video2GD('/yourvideofile.flv');
    header('Content-Type: image/png');
    imagepng($im);
 

Коментариев: 2

 
  2009-02-27

Третья сигнальная

Если естественный язык свойственный представителям homo sapiens называют второй сигнальной системой, то можно ли рассматривать языки программирования как третью сигнальную?

 

Коментариев: 1

 
  2009-02-27

Перегрузка операторов в Python

Оказывается перегрузка операторов есть не только в C++, но и в Питоне тоже...

A class can implement certain operations that are invoked by special syntax (such as arithmetic operations or subscripting and slicing) by defining methods with special names.This is Python's approach to operator overloading, allowing classes to define their own behavior with respect to language operators.

 

 

Оставить комментарий

 
  2009-02-26

Как разрезать а потом склеить

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

сначала пакуем tar

tar -xzf arhive.tgz ./folder_to_copy/

затем разрезаем

split -b1000000000 arhive.tgz part

затем перекачиваем эти гигабайтные куски на другой сервер, где и собираем:

cat part* > arhive.tgz

просто и красиво :)

правда, как потом оказалось что через ftp можно и восемь гигов преспокойно передать, без всякой резки.

 

Коментариев: 2

 
  2009-02-24

HOUSE md

В выходные докачал из торентов пятый сезон доктора Хауса. Оказался на аглицком языке, что в конечном итоге мне так понравилось что я просмотрел запоем все двенадцать серий сезона.

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

Во вторых сюжеты захватывают так, что не оторвешся.

Во втретих игра актеров в наших сериалах на порядок хуже - все эти Папины почки, Моя прекрасная Маня, и Кремлевские Куранты - это просто утренник в детском саду какойто...

 

Оставить комментарий

 
  2009-02-16

Метатег для автообновления страницы

<meta http-equiv="Refresh" content="30">
 

Оставить комментарий

 
  2009-02-15

Отладка PHP скриптов

Оказывается отлаживать приложения на PHP возможно если вы используете Eclipse c PDT, для этого необходимо скачать Studio Web Debugger - эта штука ставится как расширение PHP и позволяет эклипсу останавливаться на ваших точках остановки, проходить приложение по шагам, смотреть значения переменных и еще много чего. Радует то, что как Eclipse, так и Debugger доступны для различных платформ, и совершенно бесплатны, вот уж где коммунизм наступил...

 

Оставить комментарий

 
  2009-02-05

А вроде солидный банк...

Вчера звонят из Экономбанка которому мы несколько месяцев назад сделали сайт, дают ссылку и спрашивают WHF?

сайт Экономбанка сайт банка Синергия

Не знаю, по моему не сильно похоже... По моему, совершенно разные сайты - сайт Синергии похож на сайт Экномбанка как наша девятка похожа на DeLorean DMC-12 (машина из "Назад в Будущее")...

 

Коментариев: 4