пятница, 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 г.

Avgx.Bugslayer

Published Avgx.Bugslayer 1.0.0

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

вторник, 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;

понедельник, 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


среда, 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; # отключаемся от базы данных

четверг, 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