Naujausi įrašai

Turinys

« 1 2 ... 5 6 »

Birželis22

Twitter OAuthkalipsė artėja

Žymės: oauth,twitter

Pasidalink!

Twitter OAuthkalipsė

Prieš kurį laiką Twitter paskelbė nutrauksianti HTTP Basic autentifikacijos palaikymą ir leisianti prieiti prie Twitter API tik autentifikavus vartotoją OAuth metodu, kadangi HTTP Basic metodas yra nesaugus.

Nors dėl pasaulio futbolo čempionato šis etapas buvo nukeltas, nuo 2010-08-31 visos HTTP Basic autentifikuotos užklausos grąžins HTTP 403 (Forbidden) atsaką.

Apie OAuth jau buvau rašęs anksčiau. Šiuo metodu autentifikuojantis nereikia trečiosioms šalims perduoti savo prisijungimo duomenų. Netgi jei tų tarnybų privatumo politika užtirkina slaptažodžių saugumą, jų nutekėjimo galimybė išlieka labai didelė, ypač naudojantis nesaugiu interneto kanalu.

Taigi jei naudojate ar esatę sukūrę Twitter aplikacijų, naudojančių HTTP Basic autentifikaciją, pereikite prie OAuth jau dabar.

Plačiau apie OAuthkalipsę: http://www.countdowntooauth.com

Taip pat esu sukūręs Twitter OAuth pagrindu veikiančią aplikaciją, kuri kasdien praneša dienos šventes ir varduvininkus į http://twitter.com/sveikinimai

Birželis01

Prezentacija: Social bookmarking in Lithuania (Komentarai 1)

Žymės: social bookmarking,submit.lt,startupjam,open share icon

Pasidalink!

Mano prezentacija apie nuorodų dalijimosi (social bookmarking) situaciją Lietuvoje, tarnybą submit.lt bei atvirą nuorodų dalijimosi ikoną.

Prezentacija buvo skirta renginiui StartupJam 2010.

Gegužė24

Turinio dalijimo ypatumai (Komentarai 5)

Pasidalink!

Nuorodų dalijimasis

Internete socialiai aktyvus asmuo neretai naudojasi keletu įvairių Interneto tarnybų - socialiniais tinklais, mikrotinklaraščiais, tinklaraščiais, socialinio žymėjimo tarnybomis ir pan., tad Interneto turinio (nuorodų) dalijimasis yra įprastas ir dažnas reiškinys.

Nuorodomis dalintis galima tiesiog nukopijuojant Interneto adresą ir įterpiant jį reikiamoje vietoje, naudojantis specialiomis programomis ar naršyklės priedais, arba tinklalapių siūlomomis priemonėmis.

Situacija lietuviškajame Internete

Panagrinėkime, ką siūlo Lietuvos populiariausi tinklalapiai, atsižvelgiant į tai, jog mikrotinklaraščiuose įrašų ilgis yra ribojamas ir reiktų naudoti nuorodų trumpinimą.

Delfi.lt

Delfi

Siūloma dalintis populiariausiose tarnybose, tačiau Twitter nuoroda nesutrumpinama, o iš lietuviškų tarnybų siūloma dalintis nuorodomis tik Frype.lt

Lrytas.lt

Lrytas

Siūloma dalintis nuorodomis Facebook, LinkedIn, Twitter bet Frype.lt tarnybose. Twitter nuoroda sutrumpinama.

Alfa.lt

Alfa

Siūloma dalintis tik Facebook socialiniame tinkle.

Balsas.lt

Balsas

Siūloma dalintis Facebook, Klase.lt bet Twitter tarnybose. Nuoroda netrumpinama.

Kokia situacija populiariausiuose (pagal prenumeratorių kiekį, remiantis loger.lt) lietuviškuose tinklaraščiuose?

Nežinau.lt

Nėra dalijimosi galimybės

Marketer.lt

Nėra dalijimosi galimybės.

Racas.lt

Nėra dalijimosi galimybės.

Qemm.lt

Siūloma standartinė Blogas.lt dalijimosi forma su ShareThis ikona.

Karolis.Pocius.lt

Nėra dalijimosi galimybės.

Cafe.blogas.lt

Nėra dalijimosi galimybės.

PragaroVirtuve.lt

Nėra dalijimosi galimybės.

Radiocool.lt

Siūloma dalintis per Topix.lt

Simonas.Bartkus.lt

Siūloma dalintis Facebook, Delicious, Google, Tumblr tarnybose.

 

Išvados liūdnos - tiek Lietuvos naujienų portalai, tiek tinklaraščiai nėra linkę pasiūlyti įranių dalintis nuorodomis, o lietuviškos tarnybos yra išvis pamirštos, o juk turime ir socialinių tinklų (Klase.lt, Frype.lt, Draugas.lt...), ir mikrotinklaraščių (Blake.lt, Vibe.lt), ir nuorodų dalijimosi tarnybų (Topix.lt, Cut.lt, Hotweb.lt).

Nuorodų dalijimosi sprendimai

Egzistuoja nuorodų dalijimosi tarnybos, kurios siūlo įrankius tiek vartotojams (kaip naršyklės priedus), tiek tinklalapiams.

Sharethis.com

Viena seniausių ir populiariausių nuorodų dalijimosi tarnybų, suteikiančių dalijimosi mygtukus Interneto tinklalapiams, pateikiantis nuorodų statistiką. Vartotojams siūlomas Mozilla Firefox priedas bei bookmarklet'ai.

Addthis.com

Kita labai populiari ir funkcionalumu labai panaši tarnyba, pateikianti dalijimosi mygtuką bei nuorodų statistiką. Vartotojams siūlo Mozilla Firefox, Internet Explorer bei Google Chrome priedus.

Shareaholic.com

Nuorodų dalijimosi kompanija, kuri koncentruojasi į Interneto naršyklių priedų kūrimą, bei prižiūri atviros nuorodų ikonos iniciatyvą bei projektus buzzster.com bei sexybookmarks.net.

Submit.lt

Lietuviška nuorodų dalijimosi tarnyba, orientuota ne tik į užsienio, bet ir  į lietuviškas tarnybas (Klase.lt, Frype.lt, Blake.lt, Topix.lt). Tinklalapių savininkams siūlomas mygtukas su atvira nuorodų dalijimosi ikona bei automatiniu nuorodų trumpinimu mikrotinklaraščiams, vartotojams: IE8 papildukas ir Mozilla Firefox bookmarklet'as.

Atviros nuorodų dalijimosi ikonos

Kaip matėme iš egzistuojančių pavyzdžių, turinio dalijimosi formos tinklalapiuose labai skirtingos. Dėl to atsirado siekis sukurti vieną ikoną, kurią pamatę jau žinotume, kad ji reiškia nuorodų dalijimąsi, kaip dabar žinome, ką reiškia RSS ikona - RSS. Pirma tokia ikona buvo Alekso Kingo sukurta ikona - ShareThis, tačiau vėliau ji buvo parduota ShareThis/Nextumi kompanijai ir apraizgyta patentais.

Buvo pasiūlyta nauja atvira nuorodų dalijimosi ikona - Open Share Icon, kurios naudojimas yra laisvas pagal Creative Commons Attribution-Share Alike 3.0 licenziją.

Visas atvirų ikonų rinkinys (RSS, OPML, OpenShare Icon, GeoTag Icon):

RSS OPML Open Share Icon Geotag Icon

Baigiamasis žodis

Kviečiu visus tinklalapių ir tinklaraščių autorius prisidėti prie nuorodų dalijimosi iniciatyvos, arba papildyti funkcionalumą lietuviškomis tarnybomis bei pradėti naudoti atvirą nuorodų dalijimosi ikoną.

Vartotojams linkiu likti socialiai aktyviais Interneto visuomenės nariais dalintis atrastais Interneto resursais su aplinkiniais, tam pasirinkus tinkamus įrankius.

Kovas01

Sprendimas: Eclipse ar Netbeans lūžta vykdant SVN operacijas

Žymės: svn,subversion,linux,eclipse,netbeans,gnome

Pasidalink!

Jei programuojant Linux aplinkoje su Eclipse ar Netbeans ir, vykdant SVN operacijas, IDE pakimba ar lūžta, problema gali būti Gnome Keyring palaikyme SVN 1.6 versijoje. Kol šis defektas nėra pašalintas, reiktų naudotis problemos apėjimu. Tam reikia ~/.subversion/config faile įrašyti (pakeisti) šias eilutes:

[auth]
### Set password stores used by Subversion. They should be
### delimited by spaces or commas. The order of values determines
### the order in which password stores are used.
### Valid password stores:
###   gnome-keyring        (Unix-like systems)
###   kwallet              (Unix-like systems)
###   keychain             (Mac OS X)
###   windows-cryptoapi    (Windows)
password-stores = 


Tuščia password-stores reikšmė išjungs Gnome Keyring palaikymą ir slaptažodžiai bus saugomi paprastu tekstu, kaip ir ankstesnėse SVN versijose.

Šaltinis: subclipse.tigris.org

Vasaris10

Google Buzz - pasiklydęs socialinis tinklas? (Komentarai 10)

Žymės: google,facebook,twitter,buzz

Pasidalink!

Google Buzz

Šiandien Google pristatė savo naują paslaugą - Google Buzz.

Tai - Twitter bei Facebook sėkmės įkvėpta dalinimosi žinutėmis sistema. Kiekvienas Google paskyrą turintis vartotojas nurodo, kurių vartotojų įrašus (Buzz'us) jis nori matyti. Gautus įrašus vartotojai gali komentuoti, pažymėti, kad pastarieji jam patinka, persiųsti el. paštu.

Visas veiksmas vyksta GMail aplinkoje, o vartotojo žinutės matomos ir vartotojo profilyje, Google Reader aplinkoje matysite sekamų žmonių dalijamus (shared) įrašus.

Taip pat galima automatiškai įtraukti įrašų atnaujinimus iš kitų tinklalapių (Google Reader, FlickR, Twitter, Picasa, Blogger, Youtube, jūsų tinklalapio RSS...).

Tiek teorijos, o ką praktiškai mums duoda Buzz? Kaip jis įsipaišo Google produktų ir kitų Interneto servisų kontekste?

Kuo Buzz skiriasi nuo Twitter?

Buzz leidžia rašyti ne tik trumpas tekstines žinutes, bet ir prisegti nuotrauką ar įkelti nuorodą. Čia nereikia naudotis jokiais idiotiškais URL trumpinimo sevisais. Taip pat galima komentuoti įrašus, taip sukuriant hirarchinį ryšį turintį dialogą, kuo negali pasigirti Twitter. Atrodytų, viskas į vienus vartus, tačiau Buzz neturi jokio API (o gal aš tiesiog nemačiau?), leidžiančio išorinėms aplikacijoms komunikuoti su Buzz. Taip, yra RSS, yra importas iš kitų šaltinių, bet tai ne tas pats. O juk beveik visas Twitter aktyvumas vyksta būtent per išorines aplikacijas, naudojančias API...

Kuo Buzz skiriasi nuo Facebook?

Facebook - pilnavertis socialinis tinklas, su vartotojų profiliais, draugų ryšiais, socialinėmis grupėmis ir t.t. Buzz išpildo tik vieną „Facebook“ dalį - naujienas (News feed), kas šiame socialiniame tinkle yra ir taip gerai realizuota. Matau vienintelį Buzz privalumą - kitų šaltinių importą, kas rodo, jog Buzz yra kur kas atviresnis produktas (Facebook leidžia tik pats įkelti savo žinutes į Twitter, arba reikia naudotis atitinkamomis aplikacijomis).

Kodėl integracija į GMail?

Pastaraisiais metais didiesiems socialiniams tinklams skaičiuojant milijardus lankytojų, Google riekė šiame kepale yra labai plonytė. Ir negalima teigti, jog jie neturi tam įrankių - yra socialinis tinklas „Orkut“, tačiau jis populiarus berods tik Brazilijoje, yra Facebook Connect analogas „Google friend connect“, tačiau jis taip pat nėra pakankamai populiarus, nors naudoja atvirus standartus... Google Wave, kaip atskiras produktas, iš pradžių sukėlęs šurmulį, atrodo, taip pat nesulaukė tokio populiarumo, kokio buvo tikėtasi.

Atrodo, jog vieninteliai pasiteisinę Google produktai - jų paieškos sistema ir GMail. Pakišti „Buzz“ visiems GMail vartotojams po akimis yra teigiamas sprendimas, tačiau aš vadovaučiausi „Friendfeed“ kūrėjo Paul Bucheit išsakyta fraze: „If your product is great it doesn't have to be good“, todėl manau, kad Buzz, kaip (tariamai) pasiteisinusio produkto, vieta - ne kaip GMail vienos iš funkcijų, bet kaip atskiro produkto.

O gal ne viskas taip blogai?

Buzz iš esmės yra geras produkas. Produktas, kokio Google trūko, ir kurio bandoma suklijuoti atskirus Google produktus į vieną visumą.

Vis dėlto, manau, jog Google turi (per) daug atskirų produktų, kurie tiesiog neturi centrinio taško, apie kurį suktųsi visas veiksmas. Liūdna, bet neretai paslaugos viena kitą dubliuoja, užgoždamos viena kitą... Kas tai? Konkurencija viduje, ar nesugebėjimas suvaldyti projektų aukščiausiame lygyje?

Ir atrodo, jog tinkami sprendimai kažkada lyg ir buvo padaryti (turiu omenyje iGoogle, kuris gal ir galėtų būti tuo centriniu tašku), bet dabar juos pamiršus yra bandoma iš naujo išrasti dviratį.

Sausis12

Populiariausios 2009 m. programavimo kalbos (Komentarai 6)

Žymės: php,ruby,java,go,objective-c,tiobe

Pasidalink!

Kompanija „Tiobe“ paskelbė populiariausių 2009 metų programavimo kalbų sąrašą. Šis sąrašas sudaromas pagal Tiobe indeksą, kuris remiasi paieškos sistemų (Google, Google Blogs, MSN, Yahoo!, Wikipedia ir YouTube) rezultatais.

Tiobe indeksas

Labiausiai (1,25%) į viršų pakilo „Google“ programavimo kalba „Go“, kuri, nors buvo pristatyta tik metų gale, Tiobe indekse užėmė 13 vietą. Visgi, kadangi ši programavimo kalba labai nauja, neaišku, ar šis populiarumas yra pelnytas, ar tai buvo vienkartinis susidomėjimas.

12 vietoje atsirado „Objective-C“ programavimo kalba, kuria kuriamos programos iPhone. Natūralu, jog iPhone populiarumas atsispindėjo ir šiame indekse. Ši kalba pagal populiarumą pakilo 1,24%.

Tendencingesnių programavimo kalbų sąraše verta paminėti ir PHP, kuri pakilo 1,19% ir, aplenkusi C++ ir (Visual) Basic, atsidūrė 3 sąrašo vietoje bei Ruby, kuri pagaliau įkopė į dešimtuką, išstūmusi iš jo „Delphi“.

Lyderio pozicijas toliau išlaiko Java, nors jos populiarumas nukrito 1,54%.

Gruodis23

Sveikinimai ir gimtadienių priminimai - patogiau

Žymės: sveikinimai,šventės,kalėdiniai sveikinimai,Kalėdos

Pasidalink!

CARDS.LT

Prieš didžiąsias metų šventes CARDS.LT padariau keletą patobulinimų, kad sveikinti draugus ir artimuosius būtų kur kas paprasčiau nei anksčiau.

Į kontaktų sąrašą įtraukę sau artimus žmones, visus kontaktus turėsite vienoje vietoje, o CARDS.LT pasirūpins, kad nepamirštumėte artimųjų gimtadienių.

Tam, kad galėtume kurti kontaktus, tereikia prisijungti su savo OpenID paskyra. Tam tiks ir Jūsų Google (GMail) ar Yahoo paskyra.

Prisijungę kairėje pusėje esančiame meniu "Vartotojo zona" matysime 2 naujus punktus:

  • Kontaktai - kontaktų kūrimas, redagavimas:

Kontaktų sąrašas

  • Gimtadieniai - kalendorius su Jūsų artimųjų gimtadieniais:

Gimtadieniai

Jei esate patvirtinęs savo el. pašto adresą (tai galima padaryti pasirenkant punktą "Gauti atvirukai"), el. paštu gausite priminimus apie kitos dienos solinezantus:

Priminimas apie gimtadienį

 

Atvirukų kūrimas draugams dar niekada nebuvo toks paprastas. Jums nebereikės galvoti, koks draugo el. pašto adresas - CARDS.LT tuo pasirūpins už Jus, o draugų, turinčių Gravatar'us, bus rodomos ir nuotraukos.

Kontaktų automatizavimas

Gerų švenčių! :)

Spalis22

Komunikacija su Iframe per Javascript bei JQuery

Žymės: html,javascript,jquery

Pasidalink!

Iframe - HTML elementas, leidžiantis tam tikroje tinklalapio vietoje įkelti kito tinklalapio turinį.

Nors HTML5 buvo atsisakyta tradicinių rėmelių (frameset), tačiau Iframe yra plačiai naudojamas ir, panašu, kad ateityje šio elemento naudojimas bus dar intensyvesnis, žinant, jog tiek socialinių tinklų aplikacijų platformų (pvz.: OpenSocial), tiek ir įvairūs Interneto servisai (pvz.: Google Maps) veikimas pagrįstas Iframe pagrindu.

Komunikacija tarp pagrindinio tinklalapio ir Iframe'o Javascript pagalba galima tik tuo atveju, jei abu puslapiai yra užkraunami iš to paties domeno (pvz.: http://www.foo.com ir http://www.bar.com bus negalima). Netgi norint realizuoti komunikaciją tarp skirtingų 3 lygio domenų (pvz.: http://foo.example.com ir http://bar.example.com), būtina abiejuose puslapiuose nurodyti, kad šie abu tinklalapiai priklauso tam pačiam domenui. Tai galima padaryti Javascript komanda:

document.domain = 'example.com';

Norint realizuoti komunikaciją tarp skirtingų domenų, reiktų naudoti Iframe proxy. T.y. skriptas, esantis tame pačiame domene, turėtų tiesiog atvaizduoti kitame domene esančio puslapio HTML turinį.

Komunikaciją tarp pagrindinio puslapio ir į jį įterpto Iframe'o atspindi šie pavyzdžiai.

Pagrindinis puslapis (pvz.: index.html)

<html>
<head>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
    google.load("jquery", "1.3.2");
</script>
</head>
<body>
<iframe id="myIframe" src="iframe.html" width="100" height="100" scrolling="no" frameborder="0" marginwidth="0" marginheight="0"></iframe>
<div id="foo">FOO</div>
<script type="text/javascript">
    // Naudojant skirtingus subdomenus, nurodome bendrą domeną:
    document.domain = 'example.com';
   
    $('#myIframe').load(function()
    {
        // jQuery pavyzdys:
        var frame = $('#myIframe').contents();
        console.log('jQuery: ',frame.find('#bar').html());
       
        // Javascript pavyzdys:
        frame = document.getElementById('myIframe').contentDocument;
        // Jei neveikia contentDocument, galima naudoti contentWindow.document
        console.log('JS: ', frame.getElementById('bar').innerHTML);
    });
</script>
</body>
</html>

Iframe puslapis (iframe.html)

<html>
<head>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
    google.load("jquery", "1.3.2");
</script>
</head>
<body>
<div id="bar">BAR</div>
<script type="text/javascript">
    // Naudojant skirtingus subdomenus, nurodome bendrą domeną:
    document.domain = 'example.com';
   
    // jQuery pavyzdys - ieškome #foo elemento window.parent.document kontekste
    console.log('jQuery: ', $('#foo', window.parent.document).html());
    // Javascript pavyzdys:
    console.log('JS: ', window.parent.document.getElementById('foo').innerHTML);
</script>
</body>
</html>

Šie pavyzdžiai Firebug konsolėje parodys atitnkamų elementų turinius.

Spalis20

PHP loginiai operatoriai ir operatorių eiliškumas

Žymės: php

Pasidalink!

Atliekant veiksmus su loginiais operatoriais ir naudojant juos sąlygos sakiniuose, dažnai tikimasi tokios sąlygos schemos:

if ( <sąlyga> [ == <rezultatas> ] ) <atliekami veiksmai>;

Tačiau naudojant sąlygose loginius operatorius, ši schema negalioja, kadangi operatorių eiliškume palyginimo operatoriai yra aukštesnio prioriteto nei loginiai. Dėl to gauname ne visada tikėtą rezultatą. Pvz.:

$a = 5;
$b = 2;
echo ($a & $b == 0)?'nulis':'ne nulis'; // ne nulis
echo (($a & $b) == 0)?'nulis':'ne nulis'; // nulis

$a = 1;
$b = 2;
echo ($a & $b == 2)?'du':'ne du'; // du
echo (($a & $b) == 2)?'du':'ne du'; // ne du

 

Operatorių eiliškumas iš PHP manual'o.

Associativity Operators Additional Information
non-associative clone new clone and new
left [ array()
non-associative ++ -- increment/decrement
non-associative ~ - (int) (float) (string) (array) (object) (bool) @ types
non-associative instanceof types
right ! logical
left * / % arithmetic
left + - . arithmetic and string
left << >> bitwise
non-associative < <= > >= <> comparison
non-associative == != === !== comparison
left & bitwise and references
left ^ bitwise
left | bitwise
left && logical
left || logical
left ? : ternary
right = += -= *= /= .= %= &= |= ^= <<= >>= assignment
left and logical
left xor logical
left or logical
left , many uses

 

Spalis15

Neversijuotų SVN failų trynimas (Komentarai 3)

Žymės: svn,subversion,linux

Pasidalink!

Dirbant su versijų kontrolės sistema Subversion (SVN) pasitaiko atvejų, kai tenka ištrinti failus, neįtrauktus į versijų kontrolę.

Pavyzdžiui, perjungiant (switch) į kitą šaką (branch), ar turint nereikalingų failų, juos ištrinti galima komanda (veikia Unix sistemose):

svn status --no-ignore | grep '^\?' | sed 's/^\? //' | xargs rm -rf

Ši komanda ištrins net ir tuos failus, kurie buvo direktorijoje su svn:ignore savybe (property), atitnkančia tuos failus.

« 1 2 ... 5 6 »

Įrašų RSS Įrašų RSS