Archive for the ‘Programiranje’ Category

11 November, 2009

Gde naći Wave ID i kako povezati Wave sa sajtom?

Ako ste web developer, verovatno ste se već dokopali Google Wave invejta i krenuli u testiranje nove igračke. Posle upoznavanja sa osnovnim funkcijama trenutne implementacije Wave protokola, logičan sled događaja je da probate da povežete Wave sa vašom web stranicom.

Povezivanje Wave sa sajtom

Na Google Wawe API tutorijalu, imate uputstvo za uključivanje wave-a u HTML stranicu, počevši od najosnovnije stvari: Hello World primer za Google Wave. Primetićete da se dotično uputstvo odnosi na Developer naloge koji rade u posebno izdvojenom wave okruženju (wavesandbox.com) kome pristup imaju samo ljudi koji testiraju i razvijaju dodatke za Wave. No isto se lako može prepraviti i za regularne civilne Wave naloge.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google Wave Embed API Example: Hello BRANKKO! :]</title>
    <script src="http://wave-api.appspot.com/public/embed.js" type="text/javascript">
    </script>
    <script type="text/javascript">
    function initialize() {
      var wavePanel = new WavePanel('http://wave.google.com/wave/');
      wavePanel.loadWave('googlewave.com!w+xGzeu4LAC');
      wavePanel.init(document.getElementById('waveframe'));
    }
    </script>
  </head>
  <body onload="initialize()">
    <div id="waveframe" style="width: 500px; height: 100%"></div>
  </body>
</html>

Sve što je potrebno je da u WavePanel objekat umesto sandbox adrese:

http://wave.google.com/a/wavesandbox.com/

unesete adresu običnog Google Wave-a koja glasi:

http://wave.google.com/wave/

Google Wave ID

Sledeća stvar koja vam je potrebna je Wave ID. U sandbox developerskim nalozima, do Wave ID-ja se dolazi relativno lako. U meniju odaberete opciju Debug->Get Current Wave ID.

How to get Wave ID in sandboxwave accountMeđutim, u običnim nalozima je ta opcija ne postoji. Zapravo ne postoji ceo Debug meni. Ali se do Wave ID-a može doći na sledeći način:

  1. Dodajte robot kontakt sa adresom embeddy@appspot.com
  2. Kreirajte novi Wave i ubacite kontakt koji ste prethodno dodali. U istom Wave-u automatski će biti generisan HTML kod sa IFRAME-om koji možete ubaciti na vaš sajt. Jedino što i dalje nedostaje je Wave ID.
  3. Napravite novi Wave koji želite da postavite na sajt (ili gde god hoćete) i iz URL-a browsera iskopirajte deo desno od wave:

How to get Wave ID from Wave PrevievDotični string predstavlja kodirani Wave ID. Možete ga dekodirati ručno uz pomoć tabele ili se možete poslužiti nekom besplatnom online alatkom. Dva puta dekodirajte deo URL-a (ono što je pisalo desno od wave: u adresi)  koji ste iskopirali i dobićete konačan Wave ID oblika: “googlewave.com!w+xGzeu4LAC“.

Napravite javni (public) Wave

Još jedna stvar koja vam je neophodna da bi ljudi mogli da ostvare interakciju preko vašeg Wave-a je da isti bude javan (public) jer će u suprotnom objavljenom wave-u imati pristup samo oni koje ste dodali u konverzaciju.

Da bi vaš Wave bio javan potrebno je uraditi sledeće:

  1. Dodajte kao kontakt public@a.gwave.com (zanemarite što piše “User does not have a Google Wave account“, samo pritisnite [enter])
  2. Dodajte kao kontakt i easypublic@appspot.com (prethodni zna da ne radi kod nekih korisnika)
  3. Kreirajte novi Wave i kao sagovornike izaberite kontakt (probajte prvo jedan pa drugi, pošto nekima radi jedan nekima drugi) koje ste upravo dodali.
  4. Pokupite Wave ID ovog Wave-a i ubacite ga na sajt

Sada imate sve što vam je potrebno za povezivanje Wave-a sa sajtom, pa se upustite u testiranje i zanimaciju. Ako smislite nešto zanimljivo, budite slobodni da ostavite komentar na moju stranicu za testiranje implementacije Google Wave na adresi http://www.plagosus.net/wave/

14 April, 2009

Ispravljanje krive Drine

Prošle noći sam izgubio 4h na debagovanje i modifikaciju koda koji je bio ispravan, ali nije radio – a ja sam jedva provalio o čemu se radi. Glavni krivac bio je Windows, a šta se desilo, kako sam otkrio o čemu se radi i kako sam problem rešio, saznaćete vrlo brzo :) Naime, razrešenje ove misterije nije išlo gore pomenutim redosledom, pa upravo zato i reših da svoje iskustvo podelim sa ostatkom svet.

Pretprošle noći krenuh u realizaciju jednog mog mini WEB projekta. Kako su pitanju XHTML/CSS + PHP/MySQL tehnologije, krenuo sam sa radom u lokalu. Startovah LAMP pa se bacih na izradu baze i back panel-a. Zaključno sa sistemom za logovanje korisnika, privedoh rad kraju za taj dan (noć zapravo) pa sam sve do tada urađeno okačio na server. Probao sam skriptu i sve do tada implementirano je radilo bez ikakvih problema.

Onda prošle noći reših da malo sredim kod, formatiranje i komentare, pa sam sve ponovo svuk’o u lokal, sredio i vratio online. Jedina razlika bila je što sam ovog puta radio sa WAMP-om na mašini sa Windowsom. Ništa značajno nisam menjao što se koda tiče, ali ipak reših da još jednom proverim da li je sve ok. Kad imam šta i da vidim: na svakom fajlu pucaju neke funkcije (2-3 uproseku). Od svega su se najviše bunile sesije (kreiranje i promena podataka). Tu je krenulo 4h pakla sa istraživanjem šta tačno ne radi i zašto se od jednom buni, a prethodnog dana je radilo.

Probao sam sve i svašta. Čak sam i potpuno promenio sistem za logovanje. Menjao pamćenje nekih stvari u cookie umesto u sesiju i svašta drugo što mi je palo na pamet. No na kraju je ipak negde pucalo. Onda reših da sklonim komentare sa početka fajla, jer sam čitao da neke PHP funkcije moraju biti apsolutno na početku koda (iako su u demo primerima, čak i u dokumentaciji, radile i ako pre njih ima belina ili komentara). Iz web-editora sam otvorio, izmenio i sačuvao svaki fajl ponaosob, posle čega je, na moje zaprepašćenje, sve ponovo proradilo bez ikakvih grešaka. U neverici sam ponovo vratio komentare, kako bih bio siguran da je do toga, no i dalje je sve radilo. Nekoliko minuta sam gledao u kod i češkao se po glavi dok se nisam setio sličnih problema jednog prijatelja. Branku je pucao IE7 prilikom izvršavanja JavaScript-a pisanog na Windows platformi, pa sam pomislio da i ovde CR-LF pravi probleme.

Ovu teoriju sam eksperimentalno dokazao na sledeći način: Prvo sam sve fajlove upload-ovao preko FTP-a (text-modom) gde sistem autoamtski sređuje EOL. Pokrenuo sam skriptu sa servera i nije bilo nikakvih grešaka. Zatim sam iste fajlove arhivirao i ponovo upload-ovao (ovaj put kao jednu arhivu, binarnim modom) pa otpakovao na serveru. Prilikom pokretanja skripte, ponovo su se javile misteriozne greške o nemogućnosti pokretanja sesija.

Suma sumarum: Ukoliko se bavite WEB development-om i radite pod Windows-om, imajte na umu da je većina WEB servera pod nekim UNIX-olikim operativnim sistemom (Linux, BSD, Solaris, MacOS…) te da je preporučljivo da svoje fajlove spakujete u odgovarajući format kako ne bi dolazilo do ovakvih problema. Sa druge strane, ako radite u Linux okruženju, a koristite komponente koje su razvijala treća lica, obavezno proverite da li su sami fajlovi sačuvani na odgovarajući način. Na taj način uštedećete vreme i sebi i drugima ukoliko dođe do ovakvih problema.