Jul 07 2010

Казвай веднага ‘щот ще те боли много!

Category: Нонсенс,СоциалниLucho @ 13:10

Явно МВР-Пикчърс не са си взели поука при изготвянето на прес-материали и по-точно монтажа им. След поредната гръмка акция (в което няма нищо лошо, де) утре пак по всички телевизии ще се говори за “Полицейски произвол” и “Полицейска държава”.

Повода е горният видео-маетриал – 27-32 секунда от  клипчето (видеото е публикувано на този адрес http://news.ibox.bg/news/id_186916563), където някое спец-ченге пита задържан “Какви са тия неща? Казвай веднага… казвай ‘щот ще те боли много!”. Малко преди да се смени кадъра, полицаят явно си изпуска нервите и извиква силно “Ка…” (иска да каже “Казвай…” вероятно).

Вярно е, че точно тези хора (наркодилърите) заслужават такова отношение, но защо трябва да ни го навират в лицето?! Защо трябва открито да ни заявяват, че полицията трябва да е също толкова брутална колкото и престъпниците?! Някак си е неестествено единия ден Веско Маринов да пее смешни милиционерски песнички с танцуващи униформени, а на следващия ден да гледаме такива материали.

Разбирам да има отделни случаи на прокурори, които да определят кой е престъпник и кой не, разбирам да се действа силово в някои случаи… но си мисля, че това не трябва да е всеки ден и при всяка акция – не е нормално. Не е нормално да се показва на обикновените хора. Това не всява респект, а по-скоро страх у тях.

П.П. Ако някой от МВР-Пикчърс го прочете това… МОЛЯ ВИ, научете се как да монтирате видео!!! Сигурно децата в детската градина биха се справили по-добре 😀

Ъпдейт: МВР са се опитали да замажат положението, но всичко лъсва в тази статия: http://www.dnevnik.bg/bulgaria/2010/07/07/929384_mvr_promeni_video_za_arest_na_narkodiluri_sled_mediina/?ref=miniurl


Jun 29 2010

HTML5 – Предисторията

Category: HTML5,WebLucho @ 15:44

Тази публикация е първата от поредица статии за HTML5. Пиша ги основно по две причини – обичам HTML5 стандарта и искам да помогна за популяризирането му. Дано ви харесат и приятни занимания с HTML5 😉

Веднага след като W3C завършиха стандарта HTML 4, се заеха с разработката на напълно нов уеб език – XHTML 2, който макар и да е “XHTML” няма нищо общо с XHTML 1.0 или 1.1, а на всичкото отгоре не е съвместим и с тези предни версии. По този начин браузър-вендорите трябваше рано или късно да започнат да поддържат два езика за структуриране и представяне на уеб страници, които нямат много общо по между си. Естествено никой не се съгласи на това безумие и след като до 2004 година, никой от водещите браузъри не беше имплементирал абсолютно нищо от XHTML 2, a W3C не желаеше да отстъпи и да прекрати разработката на стандарта, производителите на браузъри (Microsoft, Apple, Mozilla и Opera) просто се оттеглиха и създадоха собствен работна група – WHATWG, чиято цел бе да разработи нов HTML стандарт, който да е съвместим с предни версии и да предлага нови функционалности, достъп до периферни устройства и по-лесно и уеднаквено разработване на уеб приложения. Няколко години след това W3C най-накрая забелязват, че никой не се вълнува от съдбата на XHTML 2, но пък WHATWG доста напредват с новия неофициален стандарт, и след като самият Тим Бърнърс-Лий пише в блога си, че нещата около XHTML 2 не вървят, W3C най-накрая се вразумяват. През 2007 година W3C официално решават да прекратят работа по XHTML 2 и да се обединят с WHATWG, за да разработят заедно новия стандарт – HTML5.

С течение на времето стандарта става все по-голям и по-разнообразен като до 2010 година в него вече влизат функционалности за запис и възпроизвеждане на видео и звук, няколко варианта за двупосочна връзка между потребителския клиент и уеб сървъра, няколко вида офлайн съхранение на данни в браузъра (вкл. и с база данни), възможност за чертаене на екрана, възможност за директно внасяне на MathML и SVG код в HTML документа, полета за въвеждане на специфични данни (например телефон или e-mail), един куп нови елементи, подобрена семантика в структурата на уеб страниците, нов стандартизиран начин за токенезиране и построяване на дървото от елементи в браузъра. Последното ще накара производителите на браузъри да не си измислят сами как да се интерпретира невалидния HTML5 код, а да следват ясно зададен алгоритъм, така че страниците да изглеждат еднакви на всички браузъри.

До тук всичко е повече от красиво, но следва една обезпокоителна новина – HTML5 ще бъде записан като задължителен стандарт през 2022 година, а като препоръчителен стандарт едва през 2012. Това значи, че на теория производителите на браузъри могат да си седят кротко и да се ослушват до 2022 година, с което да пречат на цялата работа по внедряването на стандарта в уеб пространството. Реално обаче това не е така, тъй като  всяка нова версия на популярните браузъри поддържа все повече и повече от новия стандарт. Очакванията са, че паралелно с официалното завършване на HTML5 (2012г.) повечето браузъри ще са го имплементирали. Това е напълно разбираемо, защото в крайна сметка хората, които пишат стандарта са хората, които правят и уеб браузърите.

Аз се запалих по HTML5 лятото на 2009 година, когато за първи път видях частична поддръжка на стандарта (Canvas елемента) в Firefox 3.5. Бях меко казано изненадан от това, което предлагаше и реших да експериментирам с едно малко уеб приложение – ScreenShotMe, което да предлага минимална редакция и ъплоуд на изображение от клипборда. Написването на кода (макар и без много примери в нета) беше лесно, като в резултат с малко код се постигна прилична функционалност. Следващото нещо, което ми направи силно впечатление бе появата на WebSocket-ите в Google Chrome през декември 2009, като те предлагаха дуплексна връзка между клиента и сървъра. Opera пък поддържат HTML5 Forms – нови потребителски контроли като слайдер, color picker и др. Само тези няколко нови функционалности загатват за десетките нови онлайн приложения, които може да видим скоро на белия свят. Например директна редакция на снимките във Facebook, Skype в браузъра, офлайн достъп до електронната поща и др.

Макар че HTML5 e още чернова и e далеч от поява на белия свят, горещо препоръчвам уеб дивелопърите да не чакат 2012 или 2022 година, за да се запознаят по-детайлно с HTML5, защото този нов стандарт ще отвори вратите за един куп нови и интерактивни уеб приложения!

Tags: , , , , ,


Jun 25 2010

Какво ново около Firefox 4.0 и HTML5

Category: Firefox,HTML5Lucho @ 23:02

В последно време покрай изпити, състезания и разни други неща изпуснах дирята на развитие на HTML5 съпортa от страна на Firefox. За всеобща радост обаче, Twitter ме осведомява прилично тъй като следвам доста Firefox контрибютъри. Та, от там знам че от скоро вече има работещo Web Socket API в нощните билдове на браузъра. Това значи че за FF4.0 (да, FF3.7 няма да има), който излиза през ноември 2010, ще можем да се поздравим с едно от най-нужните неща в съвременния web – истинска двупосочна връзка. С това огнената лисица ще стане втория браузър след Chrome, който поддържа Web Socket-и и мисля, че няма нужда да ви казвам колко много развързва ръцете на дивелопърите наличието на дуплексна връзка!

С това обаче добрите вести не свършват, оказва се че и по HTML5 Forms работата върви с пълна пара, но какво точно ще видим в следващата версия на браузъра е трудно да се каже на този етап.  Пълен списък с прогреса по различните елементи и атрибути има тук: https://wiki.mozilla.org/User:Mounir.lamouri/HTML5_Forms

Последното нещо, с което ще ви занимая е един доста впечатляващ експеримент – Smoke Screen . Накратко това дава възможност на вашия HTML5 браузър да показва Flash анимации без да ползва Flash player… ъ-ъ-ъ странно нали 🙂 . В случая цялата работа се извършва от Javascript + Canvas  елемент и преди да възкликнете “За какво би било полезно това, при положение че Flash плейърът е фрий”, ще ви напомня че  много съвременни смартфони не поддържат Flash (iPhone) и някои от CEO-тата на компаниите производители (Стив Джобс) публично се заклеха, че съпорт за Flash няма да има НИКОГА!

Та така, Web-a си върви, кучетата си лаят и определено ни чакат интересни месеци до излизането на Firefox 4.0 🙂

Tags: ,


Jun 04 2010

Game Edutainment – Second place on the JA’s contest “Best Graduate Company 2010”

Category: За автора,НонсенсLucho @ 12:42

Game Edutainment – Second place on the JA’s contest “Best Graduate Company 2010”



Mar 22 2010

Бъдещето на телекомуникациите – Web Sockets

Category: Dev,HTML5,WebLucho @ 15:06

Най-голямата спънка при разработката на богати уеб приложения до сега е липсата на двупосочна връзка – от клиента към сървъра и от сървъра към клиента. Решението на този проблем винаги е било голяма болка и страдания, като най-общо се ползват чести запитвания към сървъра, на които той в 90% от времето  връща празен response или Comet (познато още като long polling най-общо). И двата начина са тромави и ресурсоемки… даже бих ги определил като законни DoS атаки. И всичко това за да се симулира нещо подобно на двупосочна връзка.
Е, дните на безсмислени request-и и празни response-и отминаха, защото HTML5 предлага няколко варианта за решение на този казус. Ще се спра само на един от тях, на тъй наречените Web Socket-и. Както сигурно се досещате става въпрос за сокет съединения, макар и леко модифицирани и орязани, които могат да се създават и управляват чрез Javascirpt. Освен че тези web socket-и могат само да започват връзка, но не и да стоят и да слушат за постъпване на такава, те имат и собствен допълнителен протокол, с който си комуникират със сървърното приложение. Важното в случая е че дуплексна връзка има и то на много ниска цена (от към писане на код). При създаване на сокет се оказват callback функции за четене, възникване на грешка и отваряне/затваряне на връзката, така че когато някое от изборените събития се случи, тези callback функции се извикват и обработката на данни пада във вашите ръце. Това намалява драстично главоболията породени от блокиращи/неблокиращи сокети, безкрайни цикли, exception-и и какво ли още не.
От сървърна гледна точка нещата също са прости, кодът който е нужен за успешна комуникация с клиента е съвсем стандартен за сървърно сокет приложение, с изключение на едни служебни съобщения, които Web Socket-ите очакват и от които не може да се бяга.

Понеже всичко до сега звучи прекалено хубаво, ще се наложи да ви приземя малко, защото Web Socket-и за сега се поддържат само от Google Chrome, но рано или късно и другите browser vendor-и ще се усетят откъде духа вятъра. И понеже вече се приземихте ето и едно примерно приложение, което сглобих – MultiDraw. Идеята е чрез HTML5 Canvas елемента и Web Socket-и да се постигне паралелно рисуване от множество клиенти върху платно. Сървърната част е на Python 2.6 и ползва модула asyncore от стандартната библиотека, който симулира асинхронно четене и писане от сокети.

Ето кодът, който се отнася до web socket-ите при клиента:

var s = new WebSocket("ws://" + document.location.host + ":6789/");
// създаване на сокет съединение на порт 6789
s.onopen = function(e) { document.title = 'MultiDraw - Online'; }
// функция, която да се изпълни при установена връзка
s.onclose = function(e) { document.title = 'MultiDraw - Offline'; }
// функция, която да се изпълни при прекратяване на връзка
s.onmessage = function(e) {
// функция, която да се изпълни при пристигане на съобщение (съобщението е в e.data)
    var data = e.data.split(" "); // обработваме съобщението...
    draw(data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7]); // ... и чертаем върху Canvas-а
}
...
s.send([x, y, e.pageX, e.pageY, color, brushSize, lineCap, lineJoin].join(' ')); // изпращане на съобщение

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

Кодът на клиента и сървъра е тук – http://gist.github.com/339983 .

Happy Web Socketing 😉

P.S. Незнам дали забелязахте, ама редакторът на спецификацията за Web Socket-ите е “Ian Hickson, Google, Inc.”, така че няма нищо странно, че  тези чудесии се появяват именно в Chrome за първи път 😛

Tags: , ,


Mar 10 2010

FarmBot… или какво да правим докато нямаме личен живот

Category: Dev,Web,НонсенсLucho @ 16:34

В последно време не съм писал нищо (става въпрос за писане на код) и взе да ми липсва… което май е нормално имайки предвид, че съм Софтуерен Инженер :-). Та, много умувах какво да направя, първо бях решил да разширя ScreenShootMe с четка и възможност за писане, обаче това в някаква степен измества фокуса от основната идея на приложението и е трудоемко, а и искам FF да почне да поддържа colorpicker и slider функционалностите от HTML5, за да си спестя ненужни мъки. Впоследствие разбрах, че една колежка е 40 левъл в FarmVille… не че тя е единствената колежка, която играе FarmVille, но определено е висок левъл :-D. Понеже и аз имам фермичка се сетих, че всъщност в timeline-a на ФБ постоянно излизат съобщения за бонуси в FarmVille и част от тях си заслужават, но е досадно да си проверяваш нон-стоп ФБ за FV бонуси и да цъкаш по тях като ненормален. За това естествено тръгнах да мисля начин за автоматизация на процеса… за БОТ.

След нетолкова кратък рисърч, стигнах до извода че ФБ API-то може и да е удобно и лесно за ползване, но определено би отнело известно време, за да се свикне с него и за да се напише нещо такова, а и писането на PHP или друг скриптов език означава допълнителни constraints за обикновения юзър, който не е виждал програмен език в живота си или пък няма инсталиран нужния софтуер, за да подкара бота. От тук вече избора съвсем се стесни до… хм… Javascript и браузър.

v.0.1: Тръгнах да пиша един html файл, който да отваря ФБ в един фрейм и да парсва линковете за FarmVille… е не стана, незнам дали заради фроуд детекшън или заради нещо друго, но браузърите вече не дават да се бърника/чете html кода на страници в различни от настоящия домейн.

v.0.2: Същото важи и за отваряне на child прозорци и бърникане по техния код… god damn it… X_X

v.0.3: Докато търсех инфо за ФБ API-то попаднах на sandbox, в който може да се тестват разни функционалности – http://developers.facebook.com/tools.php и едно от нещата, които ми направиха впечатление, е че за изпълнение на request се ползва AJAX, a не просто постбек. Това естествено значи, че мога да напиша js код, който да се слага в addressbar-а или като bookmarklet и да обновява информацията през определено време, да я парсва и да отваря част от линковете в нови iframe-ове, което изпълнява целта напълно!

Моля, запишете си нужните продукти за да сготвиме бота 🙂

1.  Логвате се в ФБ по стандартния начин

2. Отивате тук – http://developers.facebook.com/tools.php и избирате от падащото меню на Method > stream.get (това извежда timeline-a ви)

3. Copy/Paste кода по-долу в addressbar-a (за всички, които виждат браузър за първи път – после натиснете Enter)

javascript:
visited = {};

function process() {
    var code = document.getElementById('trace').innerHTML;
    var m = null;
    while (m = /\<href\>(http:\/\/apps\.facebook\.com\/onthefarm\/.+?)\<\/href\>/gi.exec(code)) {
        if (!visited[m[1]]) {
            var ifr = document.createElement('iframe');
            ifr.src = (m[1].replace(/&/g, '&')).replace(/&/g, '&');
            container.appendChild(ifr);
            visited[m[1]] = true;
        }
    }
    setTimeout('container.innerHTML = \'\'', 60*1000);
}

function refresh() {
    callMethod();
    setTimeout(process, 5*1000);
}

container = document.createElement('div');
document.getElementsByTagName('body')[0].appendChild(container);
setInterval(refresh, 120*1000);
void(0);

И така вашия бот би трябвало вече да е напълно оперативен (на български не звучи добре)!!!

Накратко какво прави кода – на всеки 2 минути обновява timeline-а и проверява дали има нови url-и, които да са за FarmVille. Ако има такива ги отваря в iframe-ове (все едно вие сте  цъкнали на “Get bonus” линковете в ФБ). Може да го задействате навсякъде напрактика (освен ако не ползвате Mosaic) и да си събирате колектабълс или нафта или там каквото още имаше.

В заключение ще кажа, че докато четох повторно поста си осъзнах, че явно обичам да пиша глупави, безсмислени и непотребни приложения… или по-скоро ако трябва да избирам между направата на нещо смислено и нещо глупаво, май-май ще се спра на второто :-D… но пък това е в духа на блога ми все пак 😛


Mar 08 2010

Честит осми март… и долу филмите за смърфове!

Category: Нонсенс,СоциалниLucho @ 15:59

Първо да честитя на всички дами техния празни – ЧЕСТИТО и приятно празненство 🙂

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

Второ, най-накрая Академията се усети, че да раздаваш Оскари на филм с половин милиард долара бюджет е ужасно глупаво и комерсиално. Хората възприемат и се радват повече на ефектни и красиви продукции, с много воюващи и умиращи хора… а ако са смърфове даже още повече се кефят (Аватар). Работата е там, че кинокритиците не са “хората”, не са средностатистическия американец и не трябва да са! Академията трябва да е критична, да гледа професионално на филмите, които оценява, а не да дава Оскари пропорционално на бюджета на филмите (визирам Матрицата и Властелинът).

Очаквам с нетърпение разгневени коментари от нежния пол и феновете на бозави филми, моля заповядайте 😛


« Previous PageNext Page »