Архив

Статии по ключова дума: ‘B8’

Нов проект "Ново 10" -- Новини на български ( www.novo10.com )

30 август, 2010 Няма коментари

Днес стартирахме нов проект “Ново 10” ( www.novo10.com ) които обединява всички новини на български.
В този проект сме разделили публикациите на няколко категории:

  • България – Всичко което се случва в нашата родна страна
  • Свят- Случилото се в световен мащаб
  • Спорт – Спортните новини в България и Светът
  • Бизнес – Бизнес новини за всеки
  • Регионални – Всички случващи се събития за всеки град
  • Технологии – Технологични новини за техничарите
  • Любопитно – Любопитни новинки за любопитните
  • Блогосфера – Последните публикации от българските блогове

Два въпроса които ми зададе един приятел и реших да споделя на всички:

1. Защо да ползвам novo10.com ?
С отварянето на novo10.com може да се прегледат всички новини и когато някои ви заинтересува тогава да се влезе в сайта източник за да се прочете пълната новина. По този начин пестите време като не се налага да влизате във 10 сайта на ден както правят повечето хора, а само в един -- www.novo10.com .

2. Какво печелят сайтовете които предоставят RSS емисия(по този начин се визуализират новините на novo10.com ) ?
Печелят таргетиран трафик от ново10.ком, линк билдинг към техните авторски публикации както и брандиране.

Малко новинки от кухнята:

  • Стараем се да промотираме новините със снимки за целта на първите места излизат тези със снимка. Скоро ще ускорим още бързодействието на сайта понеже все още е в доста тестов период.
  • Новините се обновяват на всеки 30 минути.
  • Решихме леко да го промотираме за да изчистим по- бързо някои непредвидени грешки.
  • Ще добавим няколко секции освен новините които са до момента, но секциите ще оставим в тайна на този етап.
  • Добавили сме RSS емисия на последните новини които са публикувани във novo10.com . Ако желаете да я ползвате- http://www.novo10.com/feed/posledni_novini.xml

PS: Всички новини които са на български се предоставят чрез RSS като на всяка новина има връзка към авторската публикация.

новини на български

Публикации за GNU/Linux от семинара преди години

26 май, 2010 Няма коментари

Преди 4-5 години с приятели направихме в гр. Добрич GNU/Linux семинар на тема "GNU/Linux? Да той е чудесен за работна станция" и щяхме да публикуваме подготвените материали от нас за семинара, но така и не го направихме. Днес в един форум (уебмастербг) видях един пич които беше заинтересуван и това реално ме проворика да ги издиря и публикувам за да са полезни на него и всички които търсят информация(Надявам се да бъдат полезни. Макар и малко старички някои неща от тях не остаряват като рибите).

Реших да ги публикувам в kakvo.org за да бъдат прочетени от повече хора и надявам се повече хора да мигрират към свободата. Ето ги и материалите:

GNU/Linux -- автор Мартин Петров
GNU/Linux Дистрибуции -- автор Мартин Петров
Умения за инсталиране на Gnu/Linux -- автор Мартин Петров
Основните команди за работа с Гну/Линукс -- автор Мартин Петров
KDE- автор Милен Неделчев
Графични среди под GNU/Linux - автор Георги Георгиев
Примерна инсталация на Fedora Core 4- автор Андон Николов
GNU Движение за Отворен код/ Въведение в свободният софтуер. - автор Георги Георгиев
Положителни и отрицателни черти на Gnu/Linux - автор Мартин Петров
Историята на GNOME - автор Георги Георгиев

Снимки от семинара(реших и тях да публикувам): Снимки от семинара

PS: Ако съм объркал някои като автор Андо, Гоше, Миленски кажете ще го фиксна веднага!.

php функция за съкращаване на url

25 март, 2010 2 коментари

Преди ползвах простия метод за съкращаване на URL, чрез http://is.gd или  с PHP изпълнено изглежда така:

$short_url=file_get_contents("http://is.gd/api.php?longurl=".$post_url);

Но забелязах, че във facebook този редирект (is.gd) е репортнат от потребителите за извършени злоутпореби и заради това Facebook не позволяват тези линкове(т.е. позволяват да се добавят в постовете, но не можеш да ги отвориш). За целта реших да премина на друг редиректор които да си работи(btw: този is.gd работи в twitter и edno23, но не и във facebook).
Преминах към http://bit.ly . Направих си регистрация (прави се за секунда) и понеже ше правя ключове от PHP си взех APP ключа от ТУК . След това още от първия сърч видях, че има написана проста функция за съкращане на урл, чрез bit.ly . Ето я и функцията:

function make_bitly_url($url,$login,$appkey,$format = 'xml',$version = '2.0.1')
{
//create the URL
$bitly = 'http://api.bit.ly/shorten?version='.$version.'&longUrl='.urlencode($url).'&login='.$login.'&apiKey='.$appkey.'&format='.$format;

//get the url
//could also use cURL here
$response = file_get_contents($bitly);

//parse depending on desired format
if(strtolower($format) == 'json')
{
$json = @json_decode($response,true);
return $json['results'][$url]['shortUrl'];
}
else //xml
{
$xml = simplexml_load_string($response);
return 'http://bit.ly/'.$xml->results->nodeKeyVal->hash;
}
}//End of function make_bitly_url($url,$login,$appkey,$format = 'xml',$version = '2.0.1')

/* usage */
//$short = make_bitly_url("УРЛ_което_ще_се_съклращава","Потребителско_име","APP ключ","json");
//Примерни реални данни
//$short = make_bitly_url("http://nishto.net","mpetrov_net","R_123ghh7b0db18a42ab1e050e13461551","json");
//echo 'The short URL is:  '.$short;

Хубав ден :)

По- близки впечатления от Iphone

15 март, 2010 8 коментари

Днес се сдобих с Iphone и в публикацията мисля да споделя няколко мои идеи, съвети и наблюдения които имам за Iphone. Моят модел е Iphone 3G 8G. Този телефон си избрах като модел понеже са ми необходими само следните приложения: ssh клиент, Browser (Safari), GPS Navigator (Igo My Way 2009).
Моят Iphone е със Version: 3.1.3(7E18), Modem Firmware или Baseband: 05.12.01 .Това го пиша понеже бих искал да си jailbrake телефона. Все пак искам пълен контрол или почти пълен контрол върху телефона СИ.  Преди да започна може би ще възникне въпроса как ще си ънлокна телефона ? Няма да го отключвам защото си взех Iphone neverlock които не изисква отключване. Разликата между Iphone neverlock и Iphone unlocked е следната:

Iphone neverlock -  Никога не е бил заключван
Iphone unlocked -  Бил е отключен
По този начин когато е neverlock няма да се притеснявам при следващи упдейти на baseband-а или фърмуера на модема.

Сега ще пробвам да го jailbrake. След като изчетох куп неща успях да го jailbrake (Полезна информация има в един Български форум за Iphone- http://iphone-bulgaria.com/) След като вече е jailbrake усещам малко по- голяма свобода и контрол в/у телефона.

Сега ще си направя акаунт в iTunes Store и ще си закупя няколко приложения :)
Приложенията които имам и използвам на телефона си:

Jaadu VNC -- VNC клиент с които мога да се свързвам към Windows/Linux/MAC машини със VNC сървър
iSSH -- SSH клиент с които мога да се вързвам към ssh сървъри
Safari -- Страхотен интернет браузър
Terminal -- Локален терминал към телефона
I go My Way 2009 -- GPS навигатор развит от унгарци страхотен за Европа
Cydia -- Приложението идва със jailbrake (подобно е на apt при дебиан така да се каже)
QuickOffice -- Офис с които могат да се отварят Word, Excell, PDF, Photo файлове
BrainChallenge -- Доста забавна игричка за развиване на логиката
MS PAC-MAN -- Отново забавна игричка или т.н. PAC MAN :)
Starmap -- Това приложение страхотно. Показва всички съзвездия
Skype - Без Скайп не може :)
WeDict -- Речник от Български <-> Английски

Инсталирането на всичките приложения става много лесно от iTunes Store :) . Просто всичко е устроено доста логично и лесно.

Други интересни наблюдения за Iphone са, че ако телефона е заключен(заключва се когато се натисне веднъж бутона  горе) и някои ви звънне освен, че имате възможност да му вдигнете, чрез "Slide to answer" и да му затворите като натиснете два пъти бутона за заключване "бутона горе".

Тествах и гледането на филми и слушането на музика- Страхотно е. Това е може би една неизменна част от всяко едно пътуване (без да шофирам разбира се). Трябва да се знае, че музиката може да е в MP3 формат, но филмите трябва да се конвертират от познатите ни DivX филми към Iphone формат (mp4). Все пак да не забравяне, че Iphone си е Ipod .

Друго любопитно нещо е GPRS/Edge интернет които имам активиран в моята карта. Един вид ако нямам Wireless интернет а искам да ползвам приложения изискващи интернет като Safari автоматично ми се включва GPRS и страницата ми се отваря :) . Страхотно, но и тарифите за GPRS в България са доста неизгодни за повечето хора затова го казвам. Ако някои прецени, че не иска GPRS/Edge интернет може да го деактивира като отиде в офиса на съответния оператор или да се обади на безплатния телефон за целта. Ако след това желаете да активирате своя GPRS/Edge е необходимо отново да се обадите на оператор или да отидете да офиса на оператора си и да им кажете, че искате GPRS/Edge и ще бъде активен до 2 часа.

Още нещо интересно са протекторите. Ако искате да го смените струва около 5-20 лв. Когато изтъркате своя протектор може да си го смените и телефонът ви да изглежда напълно нов :) Препоръчително е да оставите тази задача на някои магазин за телефони понеже се предполага, че имат повече опит с поставянето на протектори или на собствена отговорност да си го поставите.

А знаете ли, че от долната страна на Iphone има две мембранки като лявата е говорителя, а дясната микрофона. Това го казвам понеже се шашнах защо десния ми говорител не работи, а то било микрофон :) Казвам го за хората които също може да се притеснят.

Междо другото някои си дупчат умишлено лявата мембрана за да повишат силата на звука на телефона (повишавало се със 20-75%), но аз лично не го препоръчвам. Ето и линкче, към трика за увеличението на звука: http://www.iphoneincanada.ca/tips-tricks/170/

Саундът на телефона е страхотен, а със слушалки(нормални слушалки) е унищожителен :) . Хубавото е, че може да се ползват нормални компютърни слушалки, а не някакви специални за телефони :)

За момента Iphone си заслужава цената, дори и отгоре. Надявам се не съм го прехвалил и дано излезе сполучлив.

Какво е Wardriving и как да го направим (Kismet + Festival + Gpsd + Gpsdrive)

4 февруари, 2010 1 коментар

При Wardriving идеята е да се засекат wireless мрежи и да бъдат картографирани. Според нашият закон или това което четох това не е нелегално(освен ако не се използват тези мрежи с лоши намерения). Все пак аз съм го направил с цел познание и идеята на тази публикация е да споделя знание.

Преди да започнем ще опиша какво ще ни трябва:
Устройства(Gps Reciever с bluetooth, bluetooth на самия лаптоп),
Приложения (gpsdrive,gpsd,bluez-utils,festival,mysql-server,kismet)

След като имаме устройствата ще инсталираме приложенията. Аз лично ползвам Holux 240 slim, но е доста бъгав. От време на време сам решава да се бъгне и да не показа кординатите, а двойчни глупости. За да го върнем в NMEA режим трябва да му извадим батерията с което се връща на първоначални настройки(голямо решение няма що. Има и друго ползвайте друг gps reciever).

Инсталиране на приложенията:
apt-get install gpsdrive gpsd festival mysql-server-5.0 kismet bluez-utils

Сега влючваме нашият GPS Reciever
Изпълняваме "hcitool scan" и виждаме:

Scanning …
00:0B:0D:6D:A1:E8   HOLUX GPSlim240

Ето го и търсеният от нас MAC адрес на Holux Slim 240

Редактираме конф. файлове от bluez-utils в /etc/bluetooth

/etc/bluetooth/hcid.conf

Променяме нашият пин ето тук(в случая е 0000):
passkey "0000"

Сега редактираме /etc/bluetooth/rfcomm.conf

rfcomm0 {
bind no;  # Automatically bind the device at startup
device 00:0B:0D:6D:A1:E8; # Bluetooth address of the device
channel 1; # RFCOMM channel for the connection
comment "My GPS device 00:0B:0D:6D:A1:E8"; # Description of the connection
}

Става ясно, че описваме mac адреса на нашият gps reciever

След това вдигаме нашият интерфейс:
hciconfig hci0 up

Свързваме се към нашето устройство Holux:
hcitool cc 00:0B:0D:6D:A1:E8

Отваряме канал
sdptool add --channel=1 OPUSH

и след това биндваме rfcomm0
rfcomm bind rfcomm0 00:0B:0D:6D:A1:E8

За да проверим, че получаваме данните коректно(данните са в текстов вид NMEA) изпълняваме това:
cat /dev/rfcomm0

Ако се вижда нещо от рода:
$GPGGA,235955.065,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*4D
$GPRMC,235955.065,V,0000.0000,N,00000.0000,E,,,150406,,,N*7E
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,235956.059,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*41
$GPRMC,235956.059,V,0000.0000,N,00000.0000,E,,,150406,,,N*72
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,235957.059,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*40
$GPGSA,A,1,,,,,,,,,,,,,,,*1E

То нашият GPS Reciever още не си е намерил сателитите и трябва да го изчакате известно време(на открито). След като си ги намери тези нули се превръщат в кординати разбира се.

Сега ще стартираме и gpsd които да обработва данните от rfcomm0

gpsd /dev/rfcomm0

Можем да проверим дали правилно приема данните със следната команда:

gpspipe -r

След като пуснахме основните приложения сега ще пуснем и Kismet. Неговата задача е да следи wireless мрежите и да ги записва във файл с техните кординати.

За да стартираме kismet като сървър трябва да укажем source type, а ако не го направим ще ни излезе следната грешка:

FATAL: Please configure at least one packet source.  Kismet will not function if no packet sources are defined in kismet.conf or on the command line.  Please read the README for more information about configuring Kismet

Това е защото не е зададен capture source type. За целта редактираме /etc/kismet/kismet.conf , ред "source":

source=iwl3945,wlan0,wlan0

Важен е първия аргумент където указваме какъв модул се зарежда за wireless картата, а в този случай е iwl3945

Сега ще накараме Kismet да логва всички wireless мрежи които намери + техните координати. За целта трябва да редактираме /etc/kismet/kismet.conf

waypoints=true
# GPSDrive waypoint file.  This WILL be truncated.
waypointdata=~/.gpsdrive/way.txt

Следващата стъпка е да накараме Kismet освен да логва и да говори.
Сега ще направим един малък тест на festival

echo "Hi from mpetrov.net -- Festival test"|festival --tts

Ако ви изплюе следната грешка "Linux: can't open /dev/dsp" то тогава извършете това по- долу:

Решение на проблема по- горе:

Редактира се файл (.festivalrc) или (/usr/share/festival/festival.scm):
vim ~/.festivalrc
и се добавя това:
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")

Сега след като имаме инсталиран и работещ festival ще направим промени в конфигурационния файл на kismet.
kismet.conf(за сървъра)

#Променя се от false на true
Speech=true
#Променя се от nato на speech
speech_type=speech

Ако не искаме да говори kismet сървъра, а нашият kismet клиент правим същите промени, но за "kismet_ui.conf"

Сега ще стартираме и gpsdrive. Неговата цел е да взима данните от Kismet ~/.gpsdrive/way.txt , да ги записва в MySQL базата(която ще създадем след малко) и да визуализира текущото ни местоположение на картата.

Първо трябва да създадем нашата база с таблиците които ще ползва gpsdrive изпълняваме:
geoinfo --create-db geoinfo --db-name geoinfo --db-user gast --db-password gast

Стартираме gpsdrive и какво ? Данните се записват и всичко е страхотно :)

Но на мен лично тази карта не ми допада особено и искам всичко това да го преместя в/у картата на GoogleEarth. За целта използвах едно готово python скриптче, което не работеше (нямаше и автор) и трябваше да пренапиша. Може да бъде изтеглено от тук: gpsdriveToGoogleEarth_mpetrov_net.py

изпълняваме python скриптчето което трябва да конвертира от gpsdrive към GoogleEarth:

python gpsdriveToGoogleEarth_mpetrov_net.py

Получавам следната грешка"
#:/tmp# python gpsdriveToGoogleEarth_mpetrov_net.py
Traceback (most recent call last):
File "gpsdriveToGoogleEarth_mpetrov_net.py", line 1, in <module>
import MySQLdb
ImportError: No module named MySQLdb

Това е защото очевидно нямам mysql модул за python. Сега ще го инсталирам:

apt-get install python-mysqldb

Сега като го изпълним и ще се генерира файл wireless_mpetrov_net.kml които ще вкараме в Google Earth, чрез импорт. Виждаме мрежите които сме картографирали по- рано.

В интерес на истината написах едно простичко bash скриптче което прави някои неща автоматизирано. То може да бъде изтеглено от тук:  War Driver 1.0

Потенциален проблем които може да възникне при употребата на Kismet
Проблем при стартиране на Kismet:

ERROR:  Unable to find room for logging files within 100 counts.  If you really are
logging this many times in 1 day, change log title or edit the source.
WARNING: Error disabling monitor mode: Failed to set channel 0 22:Invalid argument
WARNING: wlan0 (wlan0) left in an unknown state.  You may need to manually
restart or reconfigure it for normal operation.
WARNING: Sometimes cards don't always come out of monitor mode
cleanly.  If your card is not fully working, you may need to
restart or reconfigure it for normal operation.
Trying to wake networkmanager back up…
Kismet exiting.

Решението е :
rm -fr /var/log/kismet/*

Идеята на тази публикация е с учебна цел. Аз като автор не нося никаква отговорност за причинени от нея щети.

PS: Моля слагайте си WPA2 пароли с максимална дължина и сложност поне като минимално нещо което трябва да направите за свойте wireless мрежи.

Аудит на wpa парола, чрез aircrack и sqlite(80 000 пъти по- бързо)

25 януари, 2010 16 коментари

Понеже доста съм писал по- долу ще обясня с едно изречение каква е идеята. Ако се ползва aircrack за нормален аудит (в моята машина дву процесорна на 2×3Ghz) ще тества по 500 ключа в секунда, а по- този метод по- долу aircrack + sqlite ще тества по 40 000 ключа в секунда.

Преди да компилираме aircrack с поддържка на sqlite трябва да го инсталираме както и неговия  development пакет:

apt-get install libsqlite3-dev sqlite3

Сега ще изтеглим aircrack и ще го компилираме със sqlite3 поддръжка:

cd /root/
mkdir testing;
cd testing;
mkdir aircrack_compile
cd aircrack_compile;

wget http://download.aircrack-ng.org/aircrack-ng-1.0.tar.gz
tar zxvf aircrack-ng-1.0.tar.gz
cd aircrack-ng-1.0

make sqlite=true unstable=true
make sqlite=true unstable=true install

Необходимо е да изпълним следната команда за да се изтегли OUI файла:

airodump-ng-oui-update

Излиза следното съобщение:

[*] Downloading IEEE OUI file…
[*] Parsing OUI file…
[*] Airodump-ng OUI file successfully updated

Сега ще тестваме компилираният от нас aircrack като използваме wordlist без Sqlite:

Преди това може да видим каква е машината и забелязваме, че е двупроцесорна като всеки процесор е 3Ghz със 2 GB памет.

Сега ще тестваме с wordlist от 75000 ключа:

aircrack-ng -w /root/testing/wordlist.txt /root/testing/wireless_packets/wpa-01.cap


Забелязваме, че средно тества между 500-600 ключа за секунда

Което означава, че за да се тестват всичките ключове ще са необходими 75000/500=150 секунди=2.5 мин.

След като имам готов wordlist трябва да направя и ssidlist.txt където да опиша ssid-а на които ще правим аудит:

vim ssidlist.txt

Сега ще подготвим нашата sqlite база за да тестваме aircrack със sqlite поддръжка.

След като вече компилирахме aircrack е необходимо да импортнем ssid-овете и списъка с пароли които ще тестваме в sqlite базата mpetrov:

airolib-ng mpetrov1 --import essid /root/testing/ssidlist.txt
airolib-ng mpetrov1 --import passwd /root/testing/wordlist.txt
airolib-ng mpetrov1 --stats
airolib-ng mpetrov1 --clean all
airolib-ng mpetrov1 --batch (Бъдете търпеливи :) )
airolib-ng mpetrov1 --verify all

След като подготвихме базата ще направим тест на aircrack със sqlite

aircrack-ng –r mpetrov1 /root/testing/wireless_packets/wpa-01.cap

Опа. Забелязваме, че aircrack в комбинация със sqlite тества по 40 000 ключа за секунда или времето което е необходимо за превъртането на този wordlist е по- малко от 2 секунди.

Разликата между нормален aircrack (2.5 мин.) и aircrack със sqlite поддържка (< 2 сек.) е повече от ясна :)

Идеята на тази публикация е да направите аудит НА СОБСТВЕНАТА СИ WIRELESS МРЕЖА, А НЕ ДА ЗЛОУПОТРЕБЯВАТЕ!

Автоматично SSH логване с PuTTY

22 януари, 2010 Няма коментари

Здравейте казвам се Мартин Петров и съм създал тази демонстрация единствено и само с учебна цел.

В тази видео демонстрация ще обясня как да генерирате и използвате частните и публични двойки ключоче за да се логвате през SSH с PuTTY. PuTTY е SSH клиент които работи на Windows и Linux, но най- често е употребяван за Windows. Идеята на ключово базираните SSH логини е да не се налага да въвеждате всеки път потребителско име и парола, а автоматично да влизате в отдалечената система в която имате достъп .

Хайде да започнем демонстрацията.

1. Преди всичко трябва да имаме SSH достъп до отдалечена GNU/Linux машина в случая при нас това е машина с IP адрес 10.10.10.1, а ние имаме достъп

2. След това трябва да изтеглим необходимите приложения за Windows, които в случая съм изтеглил

2.1 PuTTY (http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe)
2.2 PuTTY Gen (http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe)
2.3 PageAgent (http://the.earth.li/~sgtatham/putty/latest/x86/pageant.exe)

След като вече ги имаме сега ще генерираме публичен и частен ключ за съответния логин в машина 10.10.10.1 като използваме приложението puttygen
Стартираме го и поглеждаме в менюто "Keys" за да сме сигурни, че са избрани SSH-2 RSA key

След това натискаме "Generate" за да  генерираме нашият ключ и въвеждаме наша парола на ключовете. За да го генерираме се изисква да местим по- бързо мишката понеже движението се използва за генерирането на ключа.

След като публичния ключ е генериран ще го копираме на отдалечената машина 10.10.10.1.
Трябва да копираме текста от секция "Public key for pasting into OpenSSH authorized_keys file:" и да се логнем в машината. Сега трябва да създадем директория(ако не съществува) .ssh и да поставим предварително копирания текст във файл authorized_keys

След това генерираме личен ключ от PuTTY Key Generator като натиснем бутона "Save Private key" и за тваряме приложението.

Сега отваряме приложението pageant (Search PuTTY SSH authentication Agent) и зареждаме нашият личен ключ като идеята на това приложение е да не се налага запомнянето на ключовите фрази.

След като подготвихме всичко това сега остава да си направим един PuTTY профил.
В Host Name (or IP Address) въвеждеме адреса на машината в която имаме достъп 10.10.10.1, а на порт оставяме подразбиращият се 22. Избираме си и име на сесията или профила "Saved Sessions" autop

В секция "Connection" -> "Data", поле "Auto-login username" трябва да въведем нашето потребителско име, което  в случае е: autop .
Сега трябва да заредим нашият личен ключ в секция "SSH"->"Auth" в "Private key file for authentication"

След всичко това остава да запазим настройките на своя профил като натискаме бутона "Save"

Тук виждаме, че можем да се логваме в машината 10.10.10.1 без да се изисква въвеждането на потребителско име и парола.

Може да гледате видео демонстрацията от Youtube: Автоматично SSH логване с PuTTY
Демонстрация във vbox7: Автоматично SSH логване с PuTTY

Видео уроци как да се ползва най- оптимално www.kakvo.org

4 ноември, 2009 Няма коментари

QuestionСлед внимателно наблюдаване на доста потребители как ползват www.kakvo.org установих, че повечето от тях не го ползват оптимално или напълно неправилно. Смятам, че сайта има цялостно изчистена или минималистична концепция която много добре предразполага за бързото му разбиране. Идеята беше когато потребител влезе в сайта от първия миг да разбере каква е идеята, но очевидно има потребители които са затруднени. За целта реших да направя няколко видео урока за това как се ползва безплатния речник- www.kakvo.org. Уроците съм ги качил във vbox7.com както и във youtube.com

Клипове във vbox7.com:
- Безплатен Синонимен речник -- www.kakvo.org
- Безплатен Компютърен речник -- www.kakvo.org
- Правописен речник -- www.kakvo.org
- Безплатен Съновник -- www.kakvo.org
- Безплатен Превод от Английски на Български -- www.kakvo.org
- Безплатен Превод от Български на Английски -- www.kakvo.org
- Форум за всеки и всичко -- www.forum.kakvo.org

Клипове  във youtube.com:

- БЕЗПЛАТЕН Превод от Английски на Български- www.kakvo.org
- БЕЗПЛАТЕН Превод от Български на Английски- www.kakvo.org
- БЕЗПЛАТЕН Български Тълковен речник- www.kakvo.org
- БЕЗПЛАТЕН Български Съновник
- БЕЗПЛАТЕН Български Правописен речник- www.kakvo.org
- БЕЗПЛАТЕН Български компютърен речник
- БЕЗПЛАТЕН Български синонимен речник- www.kakvo.org
- Форум за всеки и всичко

Често срещани проблеми с encoding при php

19 октомври, 2009 2 коментари

Случвало ли ви се е да имате стринг които е написан с cp1251 и които да искате да конвертирате в utf-8. Най- вероятно да, но случвало ли ви се е да имате стринг които е написан или на cp1251 или на utf-8 предполагам, че на доста няма да им се е налагало затова реших да напиша тази публикация за лесното на следващите след мен.
Имаме стринг "Това е текст" но незнаем на какъв енкодинг е. Преди да го конвертираме в utf-8 или cp-1251 първо трябва да знаем какъв е и след това е ясно. Ето разиграно решение:

<?php

$s_utf8=iconv("CP1251","UTF-8","Това е текст- ЮТФ-8");
$s_cp1251="Това е текст- ЦП1251";

$check1=mb_detect_encoding($s_utf8,'UTF-8,CP1251');
$check2=mb_detect_encoding($s_cp1251,'UTF-8,CP1251');

echo "[$s_utf8 <-><b>$check1</b>] -- [$s_cp1251 <-> <b>$check2</b>]";

?>

Ето примерен проблем при конвертиране с iconv:

<?php
iconv("UTF-8","CP1251",$s_cp1251);
iconv("CP-1251","UTF-8",$s_utf8);
?>

В горното казваме, че искаме да конвертираме UTF-8 към cp-1251, но това няма как да се реализира понеже стринга е CP1251. Същата тази грешка се получава и при следващото . Именно поради тази причина преди да се конвертира даден стринг към друг енкодинг трябва да се знае какъв е бил преди и какъв да бъде след.

Ето ви две функции за конвертиране от UTF8 към CP1251 и втората отново за конвертиране на CP1251 към UTF8, но с проверка за текущия входящ стринг. При тези две функции може да конвертирате без наличие на iconv.

function cp1251_to_utf8($s)
{
function detect_encoding($string)
{
static $list = array('utf-8', 'windows-1251');
foreach ($list as $item)
{
$sample = iconv($item, $item, $string);
if (md5($sample) == md5($string))
return $item;
}
return null;
}

if ( (detect_encoding($s)) == "windows-1251")
{
$c209 = chr(209); $c208 = chr(208); $c129 = chr(129);
for($i=0; $i<strlen($s); $i++)
{
$c=ord($s[$i]);
if ($c>=192 and $c<=239) $t.=$c208.chr($c-48);
elseif ($c>239) $t.=$c209.chr($c-112);
elseif ($c==184) $t.=$c209.$c209;
elseif ($c==168)    $t.=$c208.$c129;
else $t.=$s[$i];
}
return $t;
}
else
{
return $s;
}
}//End of function cp1251_to_utf8($s)

function utf8_to_cp1251($s)
{
if ((mb_detect_encoding($s,'UTF-8,CP1251')) == "UTF-8")
{
for ($c=0;$c<strlen($s);$c++)
{
$i=ord($s[$c]);
if ($i<=127) $out.=$s[$c];
if ($byte2)
{
$new_c2=($c1&3)*64+($i&63);
$new_c1=($c1>>2)&5;
$new_i=$new_c1*256+$new_c2;
if ($new_i==1025)
{
$out_i=168;
} else {
if ($new_i==1105)
{
$out_i=184;
} else {
$out_i=$new_i-848;
}
}
$out.=chr($out_i);
$byte2=false;
}
if (($i>>5)==6)
{
$c1=$i;
$byte2=true;
}
}
return $out;
}
else
{
return $s;
}
}

Страхотен руски анти радар

8 октомври, 2009 5 коментари

anti_radar_saverПреди месец едни приятели които имат магазин за авто части ми препоръчаха руски ниско бюджетен еквивалент на анти радар Cobra, а именно Saver. Много ме заинтригува понеже силно вярвам в по- скъпите неща понеже при повечето има логика да са така скъпи. След като ме убедиха си го купих за 35 лв.(Анти радарите Кобра струват 200-300 лв.) просто за пробата. Измина близо месец и след много каране не успях да разбера дали работи("Проблема" беше, че не карам вечер, а именно тогава има много наблюдатели от КАТ :) ). Тази вечер се пребирам и Анти радара Saver започна да бибитка малко по малко след няколко секунди бибиткането зачести и след няколко секунди започна да бибитка в права линия. Предположих, че ми сигнализира за сканиране с анти радар и Voilah имаше наблюдатели които ми навлизаха в личното пронстранство с тези лъчи. Междо другото не беше необходимо да намалявам скоростта понеже карам с нормална скорост, а и там нямаше как да карам с по- висока понеже беше наклон нагоре затова и сигнализирането не беше много време по- рано.

Тук е момента да приложа как се ползва:

Приборът АНТИРАДАР  Север G-213 е с гаранция ,предназначен за откриване на радари, фиксиращи скоростта. Той не пречи на  полицейските радари и не е забранен за ползуване.

Този модел антирадар е един от най-ефективните прибори за откриване на радарно облъчване. АНТИРАДАРЪТ работи в автоматичен режим и не изисква каквито и да е настройки.
Конструкцията на АНТИРАДАРА и употребяваните вносни възли гарантират безотказната работа в продължение на много години.

2. Поставяне на антирадара

За постигане на максимална ефективност на работа се препоръчва поставяне на радар-детектора в един от двата варианта.

2.1. На защитената от слънце козирка с използване на пружинна скоба. закрепването на скобата става като я поставяте в прореза на долната част на уреда до упор, при това трябва да се следи за появяването на пружинката в улея на корпуса. При необходимост, да се прибере пружината, просто трябва да се изтегли.

2.2. Чрез закрепване върху приборния панел.

Внимание! Между външния радар измерващ скоростта и приемателната повърхност на радар- детектора не трябва да има слънце защитни, метализирани лепенки, възможно е да отслабят или блокират напълно входящия сигнал. Включването на радар-детектора в електро-мрежата на автомобила става с помощта на специален кабел с два щекера.

Внимание! Забранява се оставянето на кабела под напрежение при снет уред. При подаване на напрежение се включва зеления индикатор “PWR”. При всяко включване, става автоматично тестването на прибора.

3. Работа на прибора

При приближаване на Вашият автомобил към зоната на радарния контрол на скоростта, детектора Ви известява със звуков и светлинен сигнал. Вие можете да намалите скоростта по-рано, преди да стане известна на КАТ.
Докато се приближавате към радара, честотата на звуковия сигнал се увеличава и по ред се запалват червените индикатори. В зоната на пряка видимост, сигналът звучи непрекъснато и светят три червени индикатори. Моделът има два режима на работа: “ГРАД” и “ТРАСЕ”.

В режим “ГРАД” (свети зелен индикатор “City”) приборът обезпечава максимална защита от лъжливи сработвания от многочислени източници на излъчване (TV, телефонни връзки, различни сигнализации и др.) Звуковия сигнал в режим “ГРАД” се появява само с второто ниво на индикация (светят два или три червени индикатори).

В режим “ТРАСЕ” детекторът осигурява максимална далечина. Превключването на режима се осъществява с последователно натискане на бутона “City”.

Забележка: При режим “ТРАСЕ” вследствие на високата чувствителност са възможни кратковременни сигнали за тревога в места със силно електромагнитно поле, а така също от приемане на паразитни излъчвания на радар-детектори, поставени на насрещните автомобили.
Пояснение: Болшинството чужди радар-детектори имат паразитно излъчване, като създават смущения във всички радар-детектори в насрещните или редом движещи се автомобили.

Предлагания модел G-213 не създава, каквито и да е излъчвания и радио-смущения и не пречи на работата на полицейските радари.

G-213, това е чист приемник на CB4 – облъчвания, който не може да бъде открит от каквото и да било разстояние.

Наличието на детектора във Вашия автомобил не може да се явява причина или санкции от страна на КАТ.

За повишаване на комфорта при ползване на прибора, може да се приглуши звуковия сигнал. Затова трябва да се натисне бутонът “MUTE” (светва зеления индикатор “MUTE”) като светлинната индикация работи без изменение.

При всяко включване на уреда – радар-детекторът автоматично се установява в режим “ТРАСЕ” и “ПЪЛНА ЗВУКОВА МОЩНОСТ”.

Технически характеристики

Диапазон на работни честоти 10,500 – 10,550

Максимална далечина откриваща радара в километри 5,0
Напрежение на захранване 12; +4,0; -1,5
Ток работен мАмпера не повече от 30
Диапазон на работна температура от -20 до + 50
Тежина в грама 120

Обслужваното разстояние (далечината) зависи от много фактори (релеф на местността, метео-условия, ниво на електромагнитните смущения) и може да се намали. Разбира се от същите условия зависи и дължината, на която е възможно измерване на скоростта на Вашия автомобил. Ето защо, радар-детектора поставен на Вашия автомобил постоянно обезпечава предимството пред полицейския радар.