Tools -> Options...
четверг, 3 мая 2012 г.
вторник, 24 апреля 2012 г.
CryptoPP hang on linux
After porting some code that use cryptopp from windows to slackware linux it hangs.
The hang code:
AutoSeededRandomPool rng(true);
The reason was that AutoSeededRandomPool use /dev/random which blocks until the data become available.
The problem was resolved using default constructor, which use /dev/urandom:
AutoSeededRandomPool rng;
The hang code:
AutoSeededRandomPool rng(true);
The reason was that AutoSeededRandomPool use /dev/random which blocks until the data become available.
The problem was resolved using default constructor, which use /dev/urandom:
AutoSeededRandomPool rng;
понедельник, 9 апреля 2012 г.
Build 2.6.38.8 kernel for Slackware 13.37
extract kernel to /usr/src/linux-2.6.38.8
copy your .config to /usr/src/linux-2.6.38.8
cd to /usr/src/linux-2.6.38.8
make prepare
make scripts
make -j4 modules
make -j4 bzImage
make modules_install
make install
reboot
copy your .config to /usr/src/linux-2.6.38.8
cd to /usr/src/linux-2.6.38.8
make prepare
make scripts
make -j4 modules
make -j4 bzImage
make modules_install
make install
reboot
среда, 14 марта 2012 г.
HTML parsing with Perl
#useful libraries
apt-get install libwww-perl
apt-get install libfile-slurp-perl
apt-get install libjson-xs-perl
для работы с базой данных
apt-get install libdbi-perl
apt-get install libdbd-sqlite-perl
#header and link modules
#!/usr/bin/perl -w
use strict;
use warnings;
use utf8;
require JSON::XS;
use HTML::Entities;
require LWP::UserAgent;
use HTML::TreeBuilder;
use File::Slurp;
use URI::Escape;
use Encode;
use DBI qw(:sql_types);
#to get modules versions
print "CGI::VERSION ".$CGI::VERSION."\n";
print "JSON::XS::VERSION ".$JSON::XS::VERSION."\n";
print "HTML::Entities::VERSION ".$HTML::Entities::VERSION."\n";
print "LWP::UserAgent::VERSION ".$LWP::UserAgent::VERSION."\n";
print "HTML::TreeBuilder::VERSION ".$HTML::TreeBuilder::VERSION."\n";
print "File::Slurp::VERSION ".$File::Slurp::VERSION."\n";
print "URI::Escape::VERSION ".$URI::Escape::VERSION."\n";
print "Encode::VERSION ".$Encode::VERSION."\n";
print "DBI::VERSION ".$DBI::VERSION."\n";
#for utf-8
binmode(STDIN, ":encoding(utf-8)");
binmode(STDOUT, ":encoding(utf-8)");
#variables
$theVariable;
@theArray;
%theHash;
#to download the html page
sub get_url
{
my $url = "http://www.ya.ru";
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
my @ns_headers =
(
'User-Agent' => "Mozilla/5.0",
'Accept' => '*/*',
'Accept-Charset' => 'utf-8,*',
'Accept-Language' => 'ru-RU',
);
my $response = $ua->get("$url", @ns_headers);
if($response->is_success)
{
my $decoded_content = $response->decoded_content;
return $decoded_content;
}
else
{
return $response->status_line;
}
}
#to search in html tree
sub search_parse($$)
{
die "Wrong number of args" if (scalar(@_) != 2);
my($search_url, $content) = @_;
my $root = HTML::TreeBuilder->new_from_content($content);
print $search_url;
my $search_results = $root->look_down(
'_tag' => 'div',
'class' => qr//,
sub
{
$_[0]->attr('class') =~ /search_results_last/;
}
);
my @items2;
if($search_results)
{
my @elements = $search_results->look_down(
'_tag' => 'div',
'class' => 'element'
);
for my $element (@elements)
{
$element->dump();
print "---------------\n";
}
}
}
#for work with sqlite, the good howto:
# from http://2lx.ru/2009/04/working-with-sqlite-in-perl/
#!/usr/bin/perl -w
# Пример работы с СУБД SQLite в Perl
use DBI;
@user_names = ("Alex", "Arthur", "Boris", "Bred", "Clay", "Caren"); # массив пользователей, которых будем сохранять в базу данных
$db = DBI->connect("dbi:SQLite:dbname=users.db","","",{AutoCommit => 0}); # подключаемся к базе данных. Если файла users.db не существует, то он будет создан автоматически
$db->{unicode} = 1;
$db->do("create table users (user_name text);"); # Создаем новую таблицу в базе данных
foreach my $user (@user_names){
my $query = $db->do("INSERT INTO users VALUES('$user')");
$query > 0 ? print "$user added\n" : print "$user not added\n"; # если в результате запроса затронуто больше 0 рядов, значит запрос выполнен успешно, а если нет, то неудачно.
}
#$db->rollback;
$db->commit;
print "-"x10,"\n";
# Получаем количество записей, которые будут возвращены запросом
#($query) = $db->selectrow_array("SELECT count(*) FROM users WHERE (user_name LIKE 'A%')");
$query = $db->prepare("SELECT count(*) FROM users WHERE (user_name LIKE 'A%')");
$query->execute() or die($db->errstr);
($users_count) = $query->fetchrow_array;
print "Query will return $users_count records\n\n";
# --------------------------------------------------------------
$query = $db->prepare("SELECT * FROM users WHERE (user_name LIKE 'A%')"); # Формируем запрос на выборку
$query->execute() or die($db->errstr); # Выполняем запрос. В случае неаозможности выполнения запроса умираем с выводом причины
#
while (($user) = $query->fetchrow_array()){
print $user."\n";
}
$db->disconnect; # отключаемся от базы данных
apt-get install libwww-perl
apt-get install libfile-slurp-perl
apt-get install libjson-xs-perl
для работы с базой данных
apt-get install libdbi-perl
apt-get install libdbd-sqlite-perl
#header and link modules
#!/usr/bin/perl -w
use strict;
use warnings;
use utf8;
require JSON::XS;
use HTML::Entities;
require LWP::UserAgent;
use HTML::TreeBuilder;
use File::Slurp;
use URI::Escape;
use Encode;
use DBI qw(:sql_types);
#to get modules versions
print "CGI::VERSION ".$CGI::VERSION."\n";
print "JSON::XS::VERSION ".$JSON::XS::VERSION."\n";
print "HTML::Entities::VERSION ".$HTML::Entities::VERSION."\n";
print "LWP::UserAgent::VERSION ".$LWP::UserAgent::VERSION."\n";
print "HTML::TreeBuilder::VERSION ".$HTML::TreeBuilder::VERSION."\n";
print "File::Slurp::VERSION ".$File::Slurp::VERSION."\n";
print "URI::Escape::VERSION ".$URI::Escape::VERSION."\n";
print "Encode::VERSION ".$Encode::VERSION."\n";
print "DBI::VERSION ".$DBI::VERSION."\n";
#for utf-8
binmode(STDIN, ":encoding(utf-8)");
binmode(STDOUT, ":encoding(utf-8)");
#variables
$theVariable;
@theArray;
%theHash;
#to download the html page
sub get_url
{
my $url = "http://www.ya.ru";
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
my @ns_headers =
(
'User-Agent' => "Mozilla/5.0",
'Accept' => '*/*',
'Accept-Charset' => 'utf-8,*',
'Accept-Language' => 'ru-RU',
);
my $response = $ua->get("$url", @ns_headers);
if($response->is_success)
{
my $decoded_content = $response->decoded_content;
return $decoded_content;
}
else
{
return $response->status_line;
}
}
#to search in html tree
sub search_parse($$)
{
die "Wrong number of args" if (scalar(@_) != 2);
my($search_url, $content) = @_;
my $root = HTML::TreeBuilder->new_from_content($content);
print $search_url;
my $search_results = $root->look_down(
'_tag' => 'div',
'class' => qr//,
sub
{
$_[0]->attr('class') =~ /search_results_last/;
}
);
my @items2;
if($search_results)
{
my @elements = $search_results->look_down(
'_tag' => 'div',
'class' => 'element'
);
for my $element (@elements)
{
$element->dump();
print "---------------\n";
}
}
}
#for work with sqlite, the good howto:
# from http://2lx.ru/2009/04/working-with-sqlite-in-perl/
#!/usr/bin/perl -w
# Пример работы с СУБД SQLite в Perl
use DBI;
@user_names = ("Alex", "Arthur", "Boris", "Bred", "Clay", "Caren"); # массив пользователей, которых будем сохранять в базу данных
$db = DBI->connect("dbi:SQLite:dbname=users.db","","",{AutoCommit => 0}); # подключаемся к базе данных. Если файла users.db не существует, то он будет создан автоматически
$db->{unicode} = 1;
$db->do("create table users (user_name text);"); # Создаем новую таблицу в базе данных
foreach my $user (@user_names){
my $query = $db->do("INSERT INTO users VALUES('$user')");
$query > 0 ? print "$user added\n" : print "$user not added\n"; # если в результате запроса затронуто больше 0 рядов, значит запрос выполнен успешно, а если нет, то неудачно.
}
#$db->rollback;
$db->commit;
print "-"x10,"\n";
# Получаем количество записей, которые будут возвращены запросом
#($query) = $db->selectrow_array("SELECT count(*) FROM users WHERE (user_name LIKE 'A%')");
$query = $db->prepare("SELECT count(*) FROM users WHERE (user_name LIKE 'A%')");
$query->execute() or die($db->errstr);
($users_count) = $query->fetchrow_array;
print "Query will return $users_count records\n\n";
# --------------------------------------------------------------
$query = $db->prepare("SELECT * FROM users WHERE (user_name LIKE 'A%')"); # Формируем запрос на выборку
$query->execute() or die($db->errstr); # Выполняем запрос. В случае неаозможности выполнения запроса умираем с выводом причины
#
while (($user) = $query->fetchrow_array()){
print $user."\n";
}
$db->disconnect; # отключаемся от базы данных
четверг, 23 февраля 2012 г.
установка и настройка debian 6.0.4
# get the installer
debian-6.0.4-i386-xfce+lxde-CD-1.iso
# add to /etc/apt/sources.list
#main
deb http://ftp.ru.debian.org/debian squeeze main contrib non-free
deb-src http://ftp.ru.debian.org/debian squeeze main
#multimedia
deb http://www.debian-multimedia.org stable main
deb ftp://ftp.debian-multimedia.org stable main
deb http://www.debian-multimedia.org testing main
deb ftp://ftp.debian-multimedia.org testing main
# Main packages
deb http://debian.mirror.vu.lt/debian/ stable main contrib non-free
deb-src http://debian.mirror.vu.lt/debian/ stable main contrib non-free
# Debian Backports
deb http://debian.mirror.vu.lt/debian-backports/ squeeze-backports main contrib non-free
# Debian Updates / ex-volatile
deb http://debian.mirror.vu.lt/debian/ stable-updates main contrib non-free
# Debian Security updates
deb http://debian.mirror.vu.lt/debian-security/ stable/updates main contrib non-free
deb-src http://debian.mirror.vu.lt/debian-security/ stable/updates main contrib non-free
# install soft
apt-get update
apt-get install mc
apt-get install vsftpd
/etc/init.d/vsftpd restart
# configure default editor for mc
update-alternatives --config editor
apt-get install google-chrome-stable
apt-get install mercurial
apt-get install meld
# libraries for perl
apt-get install libwww-perl
apt-get install libfile-slurp-perl
apt-get install libjson-xs-perl
debian-6.0.4-i386-xfce+lxde-CD-1.iso
# add to /etc/apt/sources.list
#main
deb http://ftp.ru.debian.org/debian squeeze main contrib non-free
deb-src http://ftp.ru.debian.org/debian squeeze main
#multimedia
deb http://www.debian-multimedia.org stable main
deb ftp://ftp.debian-multimedia.org stable main
deb http://www.debian-multimedia.org testing main
deb ftp://ftp.debian-multimedia.org testing main
# Main packages
deb http://debian.mirror.vu.lt/debian/ stable main contrib non-free
deb-src http://debian.mirror.vu.lt/debian/ stable main contrib non-free
# Debian Backports
deb http://debian.mirror.vu.lt/debian-backports/ squeeze-backports main contrib non-free
# Debian Updates / ex-volatile
deb http://debian.mirror.vu.lt/debian/ stable-updates main contrib non-free
# Debian Security updates
deb http://debian.mirror.vu.lt/debian-security/ stable/updates main contrib non-free
deb-src http://debian.mirror.vu.lt/debian-security/ stable/updates main contrib non-free
# install soft
apt-get update
apt-get install mc
apt-get install vsftpd
/etc/init.d/vsftpd restart
# configure default editor for mc
update-alternatives --config editor
apt-get install google-chrome-stable
apt-get install mercurial
apt-get install meld
# libraries for perl
apt-get install libwww-perl
apt-get install libfile-slurp-perl
apt-get install libjson-xs-perl
суббота, 31 декабря 2011 г.
Projects of 2011
Knowledge area of the year:
- ASP.NET MVC
- Linux
- Video
- add audio stream selection to nginx's mp4 streaming plugin - c, linux
- asp.net mvc project for restaurant booking - asp.net mvc, jquery, entity code-first
- DVR (video server) - slackware linux based, mono, linux-live, gsoap, integrate usb device with libhid
- asp.net mvc project as web UI for face recognition service - asp.net mvc, jquery
- winforms application - UI for people psychology compatibility service. - winforms, bltoolkit, sqlite, custom controls, custom design applied.
- ffmpeg scripts: for video conversion to stream for iOS devices, to add watermark, to add overlays
- media-player-classic fork that can view customers video format
пятница, 18 ноября 2011 г.
bash howto's 3
#This will remove leading spaces...
echo " 1233 test " | sed 's/^ *//g'
#This will remove trailing spaces...
echo " test 543453 " | sed 's/ *$//g'
#Make the following XML file available under http://127.0.0.1:5555/
(printf "HTTP/1.1 200 OK\\r\\nContent-Type: text/xml\\r\\n"; \
printf "Content-Length: $(cat "response.xml"|wc -c)\\r\\n\\r\\n"; \
cat response.xml") | nc -l -p 5555 >/dev/zero 2>&1 &
Подписаться на:
Сообщения (Atom)