Всеки може да отстъпи, само смелите продължават.

На shared hosting в host.bg

Автор bliznaka | 29.09.2009 | Категория Проекти

В понеделник преместих сайта на shared hosting пакет в host.bg. От години ползвам услугите им за домейните си и винаги ми е правило впечатление добрия съпорт, рядко срещана услуга в родната ни страна… и този път не ме разочароваха. Помолих ги да инсталират aspell с BG поддръжка и ми обещаха, че ще компилират приложението в ранните часове на следващия ден, да ама не… още след 25 мин. ми отговориха, че са инсталирали приложението като дори са добавили EN езиковите библиотеки.

Сайтът се държи много добре дори ми се струва, че е по-бърз отпреди… макар в логовете да не забелязвам кой знае какви разлики във времената, но все пак по-важното е че всичко е ок. За последните 9 месеца го местя за 3-ти път и направо ми писна, надявам се този път да се позадържим.

Реклами в СтиховеБГ

Автор bliznaka | 04.08.2009 | Категория Проекти

От 24 часа насам, вече е възможно всеки автор в сайта да рекламира собствените си творби. Това става посредством избор на рекламна позиция и избор  на творби (3 или 5 в зависимост от избраната позиция) и рекламата е създадена по шаблон. За да се активира услугата се праща СМС-че на даден кратък номер за всички мобилни оператори и след въвеждане на кода от обратния СМС, рекламата започва ротация в сайта. Елементарно нали… настина е и при това супер бързо.

За момента не е възможно отчитането на кликовете, но предвиждам да поработя по въпроса в най-скоро време. От СМС-и печалбата е малка, но това е най-лесния и бърз начин за разплащане, освен това българина вече свикна достатъчно с този модел на плащане. Някои вече пробваха и повториха, да видим дали ще има дълготраен интерес.

Funambol инсталация с MySQL база данни под CentOS 5.3

Автор bliznaka | 16.05.2009 | Категория Направи си сам

Може би първо да кажем какво е Funambol… Целта на Funambol е да направи лесно синхронизирането на смарт телефоните с Интернет пространството, email системите, персоналните компютри и други видове системи. Те постигат това чрез open source софтуер, като предлагат свобода, съвместимост с множество мобилни устройства, контрол, гъвкавост и намаляване на рисковете. За целта трябва да използвате техния open source сървър, който е написан на Java и е базиран на SyncML протокола.

В статията ще разгледам стъпките при инсталирането на Funambol DS сървъра и последващата му конфигурация с MySQL база данни, за да може после лесно да манипулирате данните.

Изтегляне на Funambol сървър:

1. Свалете Linux версията от https://www.forge.funambol.org/download/ в /tmp директорията.

Инсталация на Funambol сървър:

1. Отидете в /tmp директорията

# cd /tmp

2. Стартирайте инсталирането:

# sh funambol-<version number>.bin

При мен е 7.1.1 версия, затова пиша: sh funambol-7.1.1.bin

3. Ще ви бъдат показани условията за ползване, след което ще бъдете попитани дали сте съгласни, изписвате yes и натискате ENTER.

4. Ще бъдете попитане за директорията, в която да се разархивира Funambol, по подразбиране е /opt, ако желаете друга директория може да напишете пътя до нея и в двата случая накрая натиснете ENTER.

5. Инсталаторът ще довърши инсталацията и накрая ще ви попита дали да стартира Funambol, напишете no и натиснете ENTER.

Инсталация на MySQL сървър:

1. Като root потребител инсталирайте mysql сървър:

# yum install mysql-server

2. Създайте дефолтните бази данни на mysql сървър:

# mysql_install_db

3. Стартирайте mysql сървъра:

# /etc/init.d/mysqld start

Създаване на база данни и необходимите потребители в MySQL:

1. След като имаме вече работещ mysql сървър, нека се логнем в него:

# mysql -uroot

2. Добре е да сложите парола на root потребителя, но не това е целта на занятието, затова направо към създаването на необходимата ни база данни:

mysql> CREATE DATABASE funambol;

3. Избираме създадената база данни:

mysql> USE funambol;

mysql>GRANT ALL ON funambol.* TO funambol IDENTIFIED BY ‘funambol’;

mysql> FLUSH PRIVILEGES;

mysql> QUIT

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

Конфигуриране на Funambol за работа с MySQL база данни:

1. Тъй като Funambol е писан на Java се нуждаете от java кънектор за mysql, може да свалите такъв от http://www.mysql.com/ в папката /opt . Разархивирайте го и копирайте mysql-connector-java-<java-version>-bin.jar файла в папката: /opt/Funambol/tools/jre-<java-version>/lib/

Важно е да заместите <connector-version> и <java-version> с вашите версии, така че името на файла и пътя до папката да са верни. Копирането става така:

# cp mysql-connector-java-<connector-version>-bin.jar /opt/Funambol/tools/jre-<java-version>/lib/

2. Време е да настроим Funambol да ползва MySQL сървъра за storage. Отворете с текстове редактор следния файл: /opt/Funambol/ds-server/install.properties , аз ползвам VI чрез следната команда: vi /opt/Funambol/ds-server/install.properties

Сега откоментирайте следните редове:

jdbc.classpath=/usr/share/tomcat5/common/lib/mysql-connector-java-5.0.4-bin.jar
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/funambol
jdbc.user=funambol
jdbc.password=funambol

като заместите с вашите данни, в случая при мен данните ще изглеждат така:

jdbc.classpath=/opt/Funambol/tools/jre-<java-version>/lib/mysql-connector-java-<connector-version>-bin.jar
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/funambol
jdbc.user=funambol
jdbc.password=funambol

Коментирайте по-долните редове, според които досега Funambol е ползвал hypersonic база данни:

#jdbc.classpath=../tools/hypersonic/lib/hsqldb.jar
#jdbc.driver=com.hsqldb.jdbcDriver
#jdbc.url=jdbc::hsql://localhost/funambol
#jdbc.user=sa
#jdbc.password=

Запаметете данните и излезте от редактора.

3. Сега трябва да преинсталираме Funambol, така че новите промени да влезнат в сила:

# cd /opt/Funambol/

# sh bin/install

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

4. Отново като root потребител през конзолата рестартирайте машината:

# reboot

5. След като се стартира машината и се логнете стартирайте Funambol сървъра:

# cd /opt/Funambol

# sh bin/funambol start

Това е всичко, след около минута ще се се стартирал напълно tomcat сървъра и може да пробвате да се логнете през браузъра си на адрес: http://localhost:8080/funambol

На сайта на Funambol www.funambol.com има достатъчно допълнителна информация, за тестване и настройка на сървъра. Успех на всички ентусиасти.

SOAP, WSDL с PHP5

Автор bliznaka | 08.02.2009 | Категория Направи си сам

Наскоро ми се наложи да преработя един импортер на продукти, тъй като клиентите ползват Java, а импортерът ми беше на PHP. За да комуникират помежду си трябваше някакво междинно ниво… SOAP беше това от което се нуждаех.
Паралелно ще давам PHP код и обяснения:

Тъй като клиентите имаха basic authentication трябваше да задам следните параметри, които преди това запазвам в масив:

// Basic Authentication, exceptions and tracing settings
$params = array(
“login” => ‘потребителско-име’,
“password” => ‘потребителска-парола’,
“trace” => 1,
“exceptions” => 1
);

След това правим връзка към SOAP услугата на клиента:

// WSDL връзка за достигане до XML данните
$client = new SoapClient(”http://example.com:12345/?wsdl”, $params);

Задаваме namespace-а на услугата като нов хедър:

$namespace = ‘http://example.com/’;
$name_header = new SoapHeader($namespace, ‘name’, ‘ExampleBinding’);

Запазваме всички хедъри (в случая е само един) в масив, който подаваме като параметър на метод за сетване на хедъри:

$headers = array($name_header);
$client->__setSoapHeaders($headers);

След това създаваме масив, съдържащ всички параметри и стойностите им, които очаква функцията на клиента. В случая клиентската функция getData очаква първи параметър ids и втори параметър type:

$params1 = array(’ids’ => $stock_id, ‘type’ => ‘csv’);

След това благодарение на WSDL може директно да извикаме клиентската функция като метод на нашия обект $client, $client->getData($params1), като не забравяме да подадем масива с очакваните параметри:

try {
$data = $client->getData($params1);
if (!empty($data->details)) {

// следва логика за обработка на данните

}
} catch (SoapFault $exception) {
echo $exception;
}
// WSDL.

Ако има някакъв exception, то той бива показан.

Това е PHP клиентската част на SOAP (WSDL) услугата. В следващата статия ще покажа как да създадете сървърна услуга, но отново на PHP, което значи че клиентската част може да е на JAVA или друг език, поддържащ SOAP (WSDL).

Zeitgeist II Addendum

Автор bliznaka | 01.02.2009 | Категория Видео на седмицата

Това е втората част на Zeitgeist – The movie

Смяна на колация на mysql база данни

Автор bliznaka | 24.01.2009 | Категория Направи си сам

Преди около година ми се наложи да сменя колацията на база данни. Използваше се MySQL сървър, а базата данни беше малко над 200 MB с над 80 таблици. Първото нещо което ми дойде на ум беше да направя скрипт, с който да извлека данните от всяка таблица и да ги вкарам в таблици с подходщшата колация в новата база данни. Дотук добре, но при условие че нямах толкова голяма база данни, а и не толкова много таблици… мързела ми се обади и реших да направя един research в google. Не след дълго намерих нещото, което определено улесни живота ми. За да можете да направите следващите стъпки трябва да имате ssh достъп до сървъра или да направите пълен backup на базата си данни посредством phpmyadmin. Ето и стъпките:

1. Логвате се през ssh използвайки потребителското си име и парола

2. Правите пълен експорт на данните си, като ползвате mysqldump инструмента

mysqldump -uroot -p –default-character-set=latin1 my_database > my_database.sql
- заменете -uroot с -uпотребителско_име;
- заменете –default-character-set=latin1 с –default-character-set=сегашната_колация_на_базата_ви;
- заменете my_database с името на вашата база данни;
- заменете my_database.sql с името на желания изходен файл, в който ще се експортнат данните ви;
(т.1 и т.2 може да ги пропуснете, ако нямате ssh достъп и сте направили експорт през phpmyadmin-а)

3. Конвертирайте експортнатите данни в нов файл с желаната колация

iconv -c -f cp1251 -t utf8 my_database.sql > my_new_database.sql
- за целта се ползва iconv;
- входната колация на данните е cp1251, тъй като базата данни има кирилски символи;
- избраната от мен изходна колация е utf8;

4. Заменяне на всички стари колации с новите

perl -pi -e “s/SET NAMES latin1/SET NAMES utf8/” my_new_database.sql
perl -pi -e “s/latin1/utf8/g” my_new_database.sql
- с първия ред заменяме всички SET NAMES latin1 с SET NAMES utf8 в новия файл;
- с втория ред заменяме всяко срещнато latin1 с utf8;

5. Вече сме готови да вкараме данните в новата база данни

mysql -uroot -p my_new_database < my_new_database.sql
- тук my_new_database е името на новата ни база данни;
- my_new_database.sql е името на нашия нов файл с данни, с правилна колация;

За точки 3, 4 и 5 ви е необходима линукс базирана операционна система, ако нямате такава просто отворете файла с експортнатите данни и заместете старите колации с новите, запаметете файла и след това импортнете файла през phpmyadmin-а на хост-а ви. Този вариант за съжаление е доста по-бавен, но пак ще постигнете крайния резултат.

Да се забавляваш в офиса…

Автор bliznaka | 24.01.2009 | Категория Из офиса

Големият хели

Наскоро си взех едно малко RC хеликоптерче (735 SET 3-канален мини хеликоптер), твърдят че е един от най-малките такива, които се продават. Честно казано наистина е малък, ето и параметрите му:

Размери: 18 х 8,1 х 4,5 см
Дистанционно: инфрачервена връзка, 3 канала, 10m обхват

Според производителя издържа от 5 до 10 мин. в полет с едно зареждане, аз постигам около 6-7 мин., което е в границите на нормалното, като се има в предвид “голямата” му батерия от 75mA/h. Зарежда се директно от дистанционното, което работи със шест батерии AA. С алкалните Duracell издържа около 10 полета, което е супер.

Доста здрава машинка е, макар и с тегло под 30 грама. Какви катастрофи правя… и нищо му няма.

Колегата Краси направи upgrade на дистанционното и сега може да се зарежда от трансформатор и определено ще падне летене…

Препоръчвам го на всеки, който желае да се посмее от сърце и да се забавлява, макар и за 5 минути. Ето и едно клипче, на което не се представих никак добре, но за 10 полета толкова… важното е майтап да става.