пятница, 7 декабря 2012 г.
RaspberryPi && SDR
1. prepare
#prepare os (there was an old raspbian)
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
sudo raspi-config
#overclock to medium
#don't load DM on start
#minimize video memory
#without this step there were gaps in sound for a half a second every second
#prepare soft
sudo apt-get install git libusb-dev libusb-1.0 libtool cmake pkg-config
git clone git://git.osmocom.org/rtl-sdr.git
2. compile rtl-sdr
cd rtl-sdr/
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig
sudo make install-udev-rules
3. run
rtl_tcp -a 192.168.1.3
4. listen to music
#i've used sdr# (http://sdrsharp.com/) from my laptop
#but it is possible to use rtl_fm and aplay directly from raspi
rtl_fm -f 103700000 -s 48000 -g 9 -l 10 - | aplay -t raw -r 48000 -c 1 -f S16_LE
пятница, 14 сентября 2012 г.
Howto put your package to nuget (local build)
1. read manual @ http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package
2. create repository @ bitbucket for your sources
3. register @ nuget.org
use nuget.exe in Package manager console of you project:
1. nuget SetApiKey XXXXX-XXXXXXX... (it can be read from your's nuget.org account)
2. nuget spec (then edit the MyProject.nuspec file)
3. nuget pack MyProject.csproj (will create MyProject.1.0.0.nupkg)
4. nuget push MyProject.1.0.0.nupkg (will upload @ nuget.org)
понедельник, 2 июля 2012 г.
Getting started with Raspberry Pi...
Hardware:
1. Raspberry Pi Model B (+ delivery from element14.com) - 2000RUR
2. Hama кабель HDMI M-M - 310RUR
3. Transcend SDHC Class 10 32GB - 1275RUR
4. Onext universal charger 1000mA - 300RUR
5. HDMI-DVI-D VC-004G - 270RUR
6. USB 2.0 А - microUSB B - 75RUR
---
Total: 4230RUR
Software:
http://distribution.hexxeh.net/raspbian/raspbian-r3.zip
Doesn't work yet. The red pwr lights on, green ok lights then flashes some times then again lights. But no any output on the monitor (Samsung SyncMaster 930BF).
--
UP:
To make the monitor works change confix.txt to
hdmi_force_hotplug=1
hdmi_drive=1
hdmi_group=2
hdmi_mode=35
config_hdmi_boost=1
test_mode=1
--
For no-monitor configuration:
Set config.txt to empty
Find r-pi with Advanced Port Scanner v1.3
connect to ssh with putty
to login use root:hexxeh
If there is no DNS resolvings (fixed in later distribution versions):
the default dns records in /etc/resolv.conf is 8.8.8.4 (google)
I use akado internet provider,
so i need to add DNS-servers of akado:
ns01.comcor-tv.ru (217.10.32.5)
ns02.comcor-tv.ru (217.10.35.5)
dns01.catv.ext.ru (217.10.44.35)
dns02.catv.ext.ru (217.10.36.5)
dns03.catv.ext.ru (217.10.32.4)
dns04.catv.ext.ru (217.10.39.4)
then install some software for development with apt-get
sudo apt-get install mc
среда, 6 июня 2012 г.
LXDE for Astra linux
1. add repository
~#cat >>/etc/apt/sources.list << EOF
deb http://mirror.yandex.ru/debian/ sid contrib non-free
EOF
2. update repository
~#apt-get update
3. install packages
~#apt-get install lxde
~#cat >>/etc/apt/sources.list << EOF
deb http://mirror.yandex.ru/debian/ sid contrib non-free
EOF
2. update repository
~#apt-get update
3. install packages
~#apt-get install lxde
четверг, 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
Подписаться на:
Сообщения (Atom)