Избягал котарак, който си е намерил нова къща. За малко да го прибера и него, ама е голям и сигурно ще избяга отново.
Избягал котарак, който си е намерил нова къща. За малко да го прибера и него, ама е голям и сигурно ще избяга отново.
Знаех, е по някакъв начин google има приблизителните координати на повечето ГСМ клетки , но до днес нямах идея как и от къде имат такава информация.
Отговора е супер елементарен – ние самите (по точно тия със сматфоните) му ги изпращаме.
Всичко започна от това, че като цъкнах тоя адрес :
http://test-geolocation.appspot.com/
гугъла изплю МАК адреса на домашното ми AP . Освен това google latitude на нокията изпращаше приблизително точни координати дори без да използва GPS-a . Разбира се бях я закачил безжично към АП-то.
Та начина е следния :
Смарфон се закача към wifi AP , прочита координатите от GPS-a и ако има инсталирано latitude, изпраща МАК адреса и координатите на гугъл. А гугъла помни, и никога не забравя. По същия начин се процедира и с GSM клетките , всяка клетка си има уникален идентификатор. И latitude изпращатоя идентификатор + координатите от GPS-a на гугъл. И той помни…. коя клетка къде се намира.
Процеса е сравнително бавен, но пък за сметка на това – сигурен. Гугъл събира огромна база с координатите на всички wifi AP и по-важното – на всички GSM клетки.
В близко бъдеще няма нужда да имате GPS , само някакво гугъл приложение (подозирам че дори gmail е достатъчно) и гугъл вече ще знае къде сте с доста голяма точност.
Да не говорим, че всеки , който не ви мисли доброто е достатъчно да инсталира едно приложение на сматфона ви и да не се хаби да ви наблюдава постоянно.
Данни за изминалите 12 месеца :
Изминати километри : 30 540 км.
Гориво : 4260 лв (2208 л.)
Цена на километър : 17 ст.
Общо разходи : 5131 лв
Амортизацията не е включена. Месечни разходи : 427 лв.
Друго интересно свързано с автомобила . Разстоянието Захарна фабрика – Младост 2 в пикови часове ми отнема един час , а Захарна фабрика – Дупница – час и половина . Когато пуснат магистрала Люлин , до Дупница ще ми отнема по-малко време, отколкото до Младост 2 !!! . Затова съм решил да си купя къща в Старо село – на средата между София и Дупница.
Slack не се поддържа. Ще го лъжем….
Да инсталирам Вин версията е под достойнството ми , дори само за разучаване. Пък и смятам да прехвърля WP от MySQL на Oracle.
Засега :
root@web2:/opt#
root@web2:/opt# rpm2tgz or.rpm
root@web2:/opt# w
04:23:58 up 40 days, 3:33, 2 users, load average: 1.75, 1.26, 0.60
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/2 78.40.140.9 04:12 3:49 1:08 0.00s /bin/sh /usr/bin/rpm2tgz or.rpm
root pts/3 78.40.140.9 04:16 0.00s 18.61s 0.00s w
root@web2:/opt#
Малко поумряхме…
root@web2:/opt# pkgtool
И готово. Сега да видим дали ще потегли.
Настъпих няколко мотики… като например, че oracle не може/не трябва да се стартира с root потребител.
В райна сметка :
обаче /apex липсва , хм.. Ще го търся утре, тъкмо и ще допиша инсталацията.
Снимките са от неуспешен опит за покоряване на яз.Калин – 2400м. височина. До него има път, строен още от германците – бетонен и все още в сравнително добро състояние.
В началото.
Някъде към 1700 м височина.
Около 2000 метра височина – рекичката от язовира.
Тъй като преди няколко дена разтегнах мускул и не мога да правя нищо друго , освен да лежа, взех та поразгледах до къде е стигнала Java-та. Ами – до много напред :) , tomcat-a вече е старо нещо. Вече има апликейшън сървъри като например GlassFish.
А най-хубавото за мен е края на писането на HTML в Java (както при сървлетите). Java EE 6 предлага т.нар JSF(java server faces) и Java facelets.
И тъй като само с четене не става, реших да го видя на живо. Инсталирах рибата тук :
Чудото има много по-добра web администрация в сравнение с котака , тя е стандартно на порт 4848 :
Сега вече разбирам защо се нарича Java EE (ентърпрайз едишън) , ами щото иска ентърпрайз машини :) . Любителския ми хардуер почти умря. И има зор при инсталация без X сървър , трябва да се свали *.zip архива, другия не става.
Както писах, за мен най-голямото предимство е чистото разделяне на логиката от интерфейса , т.е. java кода от HTML кода при JSF.
Деплойнах набързо една тестова програмка :
http://ss7.dupnica.net:8888/jsfDemo
А ето и извадки от кода : (Баси как да направя тоя боклук WP да показва html код?)
На html-a (UI) :
И на същинската част (логиката) :
public String getResponse() {
if ((userNumber != null) && (userNumber.compareTo(randomInt) == 0)) {//invalidate user session
FacesContext context = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
session.invalidate();return “Yay! You got it!”;
} else {return “Sorry, ” + userNumber + ” isn’t it.”
+ “Guess again…” + “number is: ” + randomInt;
}
}
п.с.
Има много хубаво IDE за разработчици. Навремето как съм се мъчил като грешен дявол само аз си знам. Сега само build , deploy и готово. Песен.
Доста отдавна (около преди 10-на години) се сблъсках с тази екзотична (за времето) технология . Използвал съм може би първия излязъл релииз. Още от тогава беше многообещаваща с единствения недостатък, че за адекватно бързодействие беше необходима многопроцесорна UltraSparc машина , струваща 50-на хиляди долара (тогава). Но все пак и задачите бяха cpu-емки.
Котаракът позволява server side изпълнение на Java програмки, нещо като Java CGI , ама по-сложно :) И това по времето, когато тук програмистите масово използваха Borland Pascal (ах тоз велик език – мда подигравам се) за да пишат приложения.
Напоследък обаче, с наличието на евтини и бързи процесори, Java е станала доста актуална и сред програмистите и в бизнеса. Напълно заслужено всъщност.
Та реших набързо да си припомня инсталацията и конфигурирането на това животно (хищник всъщност).
Първата работа е да проверим дали има Java на съответната машина :
root@web2:~# java -version
java version “1.6.0_06”
Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)
root@web2:~#
Имаа.. . А дали е нужната версия ще видим в процеса на инсталация, че сега ме мързи да чета документацията. В краен случай ще инсталирам нужната.
Така, следващата стъпка е да сложим connector-a , т.нар. mod_jk и да пипнем съответните конф. файлове …….
Сваляме mod_jk от тука :
http://tomcat.apache.org/connectors-doc/ (по забутано място няма на сайта)
и го слагаме в lib/httpd/modules (при мен на slack-a , или там дето са модулите на апача)
След това пипваме httpd.conf , така че да се зареди одумвания модул :
LoadModule jk_module lib/httpd/modules/mod_jk.so
JkWorkersFile “/etc/httpd/workers.properties”
JkLogFile “/var/log/jk.log”
Важно е да не се забрави за лог файла , щото апача гърми с грешка и не тръгва. Също така и правата на mod_jk.so
workers.properties е конф файла на mod_jk , създаваме го в /etc/httpd/ (или където са конф файловете на апача)
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=77.77.44.26
worker.worker1.port=8009
Т.е. tomcat ще е на същата машина (дано не умре дъртия celeron) . Гледам вече се поддържа и loadbalancer , навремето нямаше, та се наложи да пиша клъстър на Java. Но за него – друг път. Забележете обаче, че tomcat може да е инсталиран (и да работи) на произволна машина, а не само там дет е web сървъра, като добавим и load balancer , нещата стават интересни. В последствие ще го инсталирам на съседния (доста по бърз) сървър.
След като конфигурирахме апача, следва най-важното – да инсталираме котарака. Избрах v.6 . :
root@web2:/opt#
root@web2:/opt# wget -c http://apache.cbox.biz/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0.26.tar.gz
–2010-07-02 23:58:52– http://apache.cbox.biz/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0.26.tar.gz
Resolving apache.cbox.biz… 87.118.140.10
Connecting to apache.cbox.biz|87.118.140.10|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 6123410 (5.8M) [application/x-gzip]
Saving to: `apache-tomcat-6.0.26.tar.gz’100%[============================================================================>] 6,123,410 4.12M/s in 1.4s
2010-07-02 23:58:54 (4.12 MB/s) – `apache-tomcat-6.0.26.tar.gz’ saved [6123410/6123410]
root@web2:/opt# tar zxvf *tar.gz
apache-tomcat-6.0.26/bin/catalina.sh
apache-tomcat-6.0.26/bin/digest.sh
apache-tomcat-6.0.26/bin/setclasspath.shcd bin
./startup.sh
And voila :
Тръгна учудващо бързо. Навремето се борих много повече, особено с conector-a .
Накрая, за да вържем апача с котака , слагаме следния ред в дадения vhost :
JkMount /examples/* worker1
И се получава ето това :
Е , изписа се достатъчно последните дни. Не виждам смисъл да се хабя.
Интересното е, че колегата е решил да им подари един сървър :) . Пък ако вземат та сбъркат сървърите, ще ги съдя до дупка.
Хаха, сървърите са на покрив естествено.
Не е лоша идеята съдържанието да се достъпва през NFS , или пък да има някаква шашма с dst-nat , та да им гледаме акъла , особено ако dst-nat се прави от МТ с флаш диск или още по-добре routerboard :)