Ех, припомних си отминалите времена , когато бях добър на C . И май още съм добър, въпреки омразата ми към програмирането.

Пиша много бавно, щото много мисля преди това , но ефекта е поразителен.

Събрах три функции (около 60 120 реда код) на един колега в един единствен ред :) :

var DA = String.fromCharCode(parseInt(addr.substring(0,1),16)*16) + String.fromCharCode(parseInt(addr.substring(1,2),16)) ;

Comments 2 Comments »

1. Синята коалиция ? - смЕх в залата. Погледнете им само листата за Кюстендилска област. Алоо - “десните” - да сте чували нещо приказката за новия бардак и старите курви ?

Евгени Чачев - мажоритарен кандидат ? Майко мила . Ако събере и 1000 гласа пак ще е добре. Ами останалите ? Да им бяхте сложили поне по една снимка, щом като такива подробности като биография например са излишни ! Напълно непознати хора. Май имах суъченик Стоян Шушков навремето , ама щом не съм сигурен :) . Къде е председателя на СДС Дупница ?

Айде имате много здраве от мен. До следващите избори.

2. Герб . Листата е много добре представена . Втория човек - Емил Гущеров е от Дупница и го познавам лично. Май става за депутат, поне в сравнение с т.нар. “десни” и “сини” .

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

Та в крайна сметка се очертава да гласувам пропорционално за ГЕРБ, въпреки, че бат Бойко не ми е от любимите личности.

Такаааа.. , идваме на интересния въпрос за кого да гласувам мажоритарно ? Честно да си кажа, изкушавам се да пратя “брат” Галев там, където му е мястото - в парламента :) Щом и “запалката” ще е там, няма нищо лошо. Всъщност мненията в града са точно в тази посока - да го изпратим в София. Току виж отучил останалите да крадат :)

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

Comments 1 Comment »

Първо ЧЕЗ ми скапаха root партишъна на домашния ми комп. (Мамицата ви ЧЕЗ - не съм ви “благославял” отдавна) . Възстанових го , въпреки изтръпването и изправянето на косата. Добре, че /home е не само на друг партишън , ами и на друг диск.

Второ - изгоря ми bluetooth джиджавката , а тя ми е върло необходима на последък - интерфейса към ония powerline devices е RS 323 over bluetooth .

И трето - “великото” IDE на Филипс за прословутите дистанционни ми затри последната версия на кода ( и аз не разбрах как и защо) . Добре, че няколко часа преди това го бях постнал тук :) , иначе трябваше да пиша на ново. А аз пиша хем бавно, хем с много грешки , т.е. щах да утрепя поне половин ден.

Последно - оказа се че имам само изгорели АП-та , та сега се налага да пускам микротик на едно ПЦ , та да имам wireless ( щото онова дистанционно на Филипс има wireless)

Добрите новини : Сложих 2 USB конектора в колата (то вече напоследък всичко ползва USB за захранване)  и си оправих “mp3 плеара + FM трансмитер + bluetooth handfree” - то да не забива при палене на двигатела. Китайците бяха направили ебати икономиите във захранването му. С новото захранване вече пее и не забива.

Comments 1 Comment »

Е не е истина просто :) . Пиша протоколен стек за протокол, които едва познавам, на език от който пък си нямам грам представа :)

Задачата е да се четат пакети на MAC ниво и да се извлекат данни, които са капсулирани във два вложени един над друг протоколи :) . И тва на JavaScript . Мъкааа , мъка . Абе май вложените протоколи са повечко : Powerline във RS323 във IP . Както се вика три в едно :)

Трябва малко пояснение : Благодарение на ето този пост. започнах работа във една фирма за домашна автоматизация. Всъщност малко е сложно - фирмата тепърва мисли да се занимава с това, като ще продават и внедряват продуктите на една друга фирма . Другата фирма пък иска да интерфейсне системата си към едни дистанционни на Филипс (там всъщност ще се изпълнява JavaScript-a) .

Всъщност, докато преговаряхме, изобщо не стана дума за програмиране ( аз щях да откажа, щото мразя да програмирам) , пък и видях, че търсеха и програмист отделно, но някак си тоя товар с JavaScript-а дойде на мой гръб. Но твърдо смятам това да са последните редове код, които пиша на тоя измислен език.

Та ето какво сътворих дотук . Има още работа, но общи линии кода работи. Добре, че Филипс бяха написали наготово TCP клиент ( на JavaScript , хехе)

System.setDebugMask(9) ;

var testFrame =
“\x55\xC1\xF0\x01\x00\x00\x5A\x00\x00\x10\x0B\x40\x08\xB0\x06\x5A\xA0\x0B\x00\x00\x00\x0B\x00

\x00\x10\x00\x00\x00\xA0\x0D\x00\x00\xC0\x08\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x06

\x00\x00\x40\x07\x00\x00\x10\x0E\x00\x00\xC0\x00\x00\x00\x40\x00\x00\x00\x00\x01\x00\x00\x10

\x04\x00\x00\x30\x03\x00\x00\xD0\x0B\x10\x00\xAA”;

eval(CF.widget(”TCPCLIENT”, “SCRIPTS”).label);
var wSTATE_VALUE1 = widget(”STATE_VALUE1″);
var trace = com.philips.trace;
var traceHex = com.philips.traceHex;

var Delimiter = “\xAA”;
var IP = CF.widget(”IP”, “PARAMETERS”).label;
var Port = CF.widget(”PORT”, “PARAMETERS”).label;
intervalTMP = 500; //parseInt(CF.widget(”UPDATE”, “PARAMETERS”).label, 10);
var updateInterval = intervalTMP > 100 ? intervalTMP:intervalTMP*1000;
var Client = null;
var timeStamp = new Date();
var AWAKENING_SAFETY_TIMEOUT = 5000;

// test na simulatora , da se mahne w krajnija wariant
processPacket(testFrame);

function processPacket(data)
{
var obj ; // za da definiram obekt, trjabwa da se def funkcia, oba4e kakwa ?, zasega karame samo s promenivi
traceHex(data, 500); // tuk polu4avame celiq paket
var interface_code = (data.charCodeAt(2) | data.charCodeAt(3));
System.print(”Iface Code: ” + interface_code.toString(16));
var service_selector = (data.charCodeAt(4) | data.charCodeAt(5));
System.print(”Service_sel: ” + service_selector);
// only if 0xF1 interface AND SERVICE SELECTOR = 0 , else discard packet
if( interface_code == 241 && service_selector == 0 )
{
var index = data.lastIndexOf(’\x5A’);
index++ ;
var field2 = data.substring(index);
index=16; // first address byte
var Addr = (field2.charCodeAt(index) | field2.charCodeAt(index+1));
System.print(”Address: ” + Addr.toString(16));
index=index+16 ; //HEADER
var header = (field2.charCodeAt(index) | field2.charCodeAt(index+1));
System.print(”Header: ” + header.toString(16));
var suaPresent = header & 3; // HEADER AND 11
var ssua = 0;
switch(suaPresent)
{
case 0 : { index=index+4; ssua = (field2.charCodeAt(index) | field2.charCodeAt(index+1)); index=index+4;break;}
case 1 : {index=index+4; break;}
case 2 : {index=index+4; break;}
}
System.print(”SSUA: ” + ssua.toString(16));
index = index + 12; //SERVICE
var service = (field2.charCodeAt(index) | field2.charCodeAt(index+1));
System.print(”Service: : ” + service.toString(16));
if (service == 64 || service == 32 ) // if service = 0×40 (READ) = 0×20(INF. REPORT), else discard packet
{
index = index+4; // first byte of DATA_LENGHT
var data_lenght = (field2.charCodeAt(index) | field2.charCodeAt(index+1));
System.print(”Data_lenght: ” + data_lenght);
index = index+4; // first byte of DATA

var obj_data=”"; //APPLICATION_DATA

//READ APPLICATION_DATA +++++ PROBLEM S STRINGA ++++++ SOLVED ++++
while(data_lenght)
{
//System.print(”iteration: ” + data_lenght);
obj_data += String.fromCharCode(field2.charCodeAt(index) | field2.charCodeAt(index+1));
index=index+4;
data_lenght–;
}

traceHex(obj_data);
System.print(”Data : ” + obj_data);
updateScreen(Addr,obj_data);
}
}
}

function ioError()
{
Diagnostics.log(”io error”);
}

Client = new com.philips.TCPClient(processPacket, ioError, Delimiter, IP, Port);
//enableMAC();
//requestStatus();

function enableMAC()
{
trace(”Request enable MAC”);
Client.execute(”\x55\xE0\xF0\x00\x00\x00\xAA”);
}

function requestStatus()
{

Client.execute(”\x55\xE0\x80\x08\x00\x00\x00\x07\x40\x00\x00\x00\x00\x00\x10\x0E\xC0\x00\x40\x00\x00\x00″);
Client.execute(”");
Client.execute(”");
Client.execute(”\x5A\xC0\x08″); // tuk individualen adres
Client.execute(”\x5A\x00\x01\x5A\x00\x00\x5A\xA0\x0B\x00\x0B\x5A\x10\x00\xAA”);

System.delay(140);

// REPEAT FOR ALL ADDRESSES

}

function keepAlive()
{
var tmpTime = new Date();
var interval = tmpTime - timeStamp;
if ( interval > (updateInterval + AWAKENING_SAFETY_TIMEOUT))
{
//In this case the Pronto comes out of sleep and a sync function will have to be called
trace(tmpTime + ” - ” + timeStamp + ” = ” + interval);
trace(”perodic request! ” + interval);
requestStatus();
}
timeStamp = tmpTime;
scheduleAfter(updateInterval, keepAlive);
}

function updateScreen(adr,val)
{

System.print(”Data_len: ” + val.length);
if(val.length == 1) //INDIVIDUAL RESPONSE
{
System.print(”Data 2 : ” + val.charCodeAt(0));
switch(adr)
{
case 200 : { wSTATE_VALUE1.label = val.charCodeAt(0) + ” %” ; return;}
//case adr2: {wSTATE2_VALUE.label = val ; return;}
//case adr3: {wSTATE3_VALUE.label = val ; return;}
//case adr4: {wSTATE4_VALUE.label = val ; return;}
}

} else

{
//group request response - data >1 , ne se znae kakwo

}

}

Comments No Comments »

Отдавна се бях зарекъл да направя карта на засадите на Дупнишките катаджии :) .

Ето тук е това общественополезно дело .

По късно ще ги направя и във файл за GSP навигации.

42.349100, 23.095100

Comments 8 Comments »

Аз, като чуя фамилията Шушулов , направо ми се драйфа. А от няколко дена по медиите се шуми, как Шушулов щял да “намали” цената на тока.

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

Взимам за база фактурата от зимния период :

Дневна енергия : 2547 кв

Нощна енерия : 1542 кв

Обща платена сума : 525.95 лв.

Сега, да пресметнем колко ще е сметката по новите , “по-ниски” цени :

2547 * 0.174 = 443.18 лв

1542 * 0.12 = 185.04 лв.

Обща сума за плащане = 628.22 лв .

И какво да видя -  почти  20%  “намаление” , ще плащам СТО ЛЕВА ПОВЕЧЕ !.

Ще перефразирам един стар известен виц.

“Алооо , Шушулов ли е на телефона ?” , “Не , енергото е” .

” Аааа, да ВИ ЕБА МАЙКАТА И НА ВАС !”

Comments 2 Comments »

Гласувайте днес за когото прецените , но в никакъв случай за БСП,

ако не искате да ви слухтят телефоните и интернет комуникациите без съдебна санкция,

ако не искате да бият протестиращи деца и младежи,

а (МаджоВикаРумен) да охранява Маджо по-добре и от президента на САЩ ,

ако не искате в арестите на МВР да умира по един човек месечно,

ако не искате МВР да убива при “задържане” и след това да няма виновни,

ако не искате убийците (на студента в Париж) да се разхождат все още на свобода .

Списъка е безкраен.

Гласувайте ПРОТИВ БСП.

thumb_sredna_35165

Comments 5 Comments »

Да пробваме братята китайци :) . Паричния трансфер стана точно за 30 минути .

Да видим кога и дали ще пристигне пратката. Слабото място във веригата разбира се са българските пощи :( / мамицата им - писмата от данъчните пристигат винаги (донасят ги на адреса), а всичко останало - ако имаш късмет/

Като дойде пратката, ще пиша какво е .

Jun. 4, 2009 Payment To cai hong ling Completed -$xxxxx USD
Jun. 4, 2009 Payment From OANDA Corporation Completed $xxxxx USD

Comments 9 Comments »

От доста време не бях ходил до градския парк. Разбутали са го основно и се работи здраво. Ще стане много добре. Ето малко снимки.

park1

На входа на парка - вижда се едно от няколкото игрища.

park2

Река Бистрица.

parka3

Бъдещата зона за похапване :)

parka4

Вече готовата долна част.

parka5

Пак готовата част.

az

Моя милост , качил 15-на кила за една година и загубил всякаква форма.

От понеделник започвам да тренирам :)

Между другото, сегашния кмет е първия от 20 години, който направи нещо за града - основен ремонт на парка , основен ремонт на градската градина, основни ремонти на главните улици - изцяло асфалтирани и с нови тротоари. Абе работи човека, не е като предишните.

Comments 4 Comments »

Като ми прибирате по 200 лв на месец за ток,  поне го осигурявайте !

А не като валне малко дъжд и да го отняма.

Алчни некадърници.

Comments 2 Comments »