Tag-Archive for » google «

kedd, november 02nd, 2010 | Author:

In the last three days (or I should probably say evenings) I was working on an app for Android, specifically the part which logs in to my Google App Engine app with Client Login. It was an interesting journey, and I thought that other people may be able to learn from my mistakes, so here it is:

For GAE, Client Login works like this:
- Get the Auth string from “https://www.google.com/accounts/ClientLogin” with a post
- Using the Auth string, get the cookie from “http://myapp.appspot.com/_ah/login” using the abovementioned auth string as a get param, (and add a “continue” param too)
- Use the cookie for subsequent calls

When I tried the second part, I got this:

500 Server Error

Error: Server Error

The server encountered an error and could not complete your request. If the problem persists, please report your problem and mention this error message and the query that caused it.

The solution:
Someone showed me this: SyncProxy.java

So I inlined the get parameters, like in the code above, or this:
HttpGet get = new HttpGet("http://yourapp.appspot.com/_ah/login?continue=" + URLEncoder.encode("http://yourapp.appspot.com/") + "&auth="+auth.substring(5));
(Where auth is the String from the first request, starting with: “Auth:”)
And it was working.

A few other possible pitfalls I’ve seen:
- If the first url is wrong (should be: https://www.google.com/accounts/ClientLogin) you will get cookies in the reply, a well known one is “PREF=ID=..”
- The information that you send in should be the body of the “post” call for the first request, and “get” parameters in the second.
- The Auth string from the first call comes back as content (in the body), not as header/cookie
- For the second call, it’s better to turn off redirect following
- You don’t need a CookieManager to capture the cookie. You can just look for “Set-Cookie” in the headers
- You can send the cookie as a “Cookie” header field, containing the same content.
- The expiry date of the cookie depends on your GAE app settings. The default is one day, you can change it to 1 or 2 weeks.

szerda, február 10th, 2010 | Author:
2010 feb. 11

2010 feb. 10

For English please go here.

 

Az idei Google AI Challenge feladata, hogy irj egy botot, ami Tront jatszik. Mas botok ellen. Batyam, tudva, h erdekel az ilyesmi, adott egy linket.

Fejest ugrottam bele. Nem erdekeltek a strategiai guide-ok, mivel eleg jol ertek hozza, raadasul nem is nyerni akartam, hanem kicsit kiserletezgetni. Termeszetesen a kiserletezgetes egyik fokmeroje az, hogy milyen eredmenyt erek el, es ebben sokat segit, hogy folyamatosan versenyeztetik a botokat, bar a konkret verseny csak valamikor a honap vegen zajlik majd.

Nehany eve mar erlelgetem magamban a tobb retegu AI gondolatat, ahol a lenyeg az, hogy a donteshozas tobb, kulonbozo szerepkort illetve nezopontot megvalosito retegen fut keresztul, amik hozzaadnak es elvesznek lehetosegeket, illetve sulyozzak a meglevoket. (ertelemszeruen: az elso retegek osszegyujtik, az utana kovetkezoek megszurik oket.) Ezt az alap0tletet hasznaltam most fel, amikor megirtam a botomat.

Mivel stilusdijra is gyurok (nem mintha lenne ilyen) a botom kodja azt az elkepzelest tartja a kozeppontban, hogy a kiraly akar egy falat epiteni, es mindig, amikor elkeszul egy resze a falnak, akkor tanacskozik a tanacsosaival, hogy a kovetkezo lepest merre tovabb. A kovetkezo megjegyzesben mutatok erre kodot is, itt csak az alapstrukturat irom le:

- Az elso reteg a Master of War. Tisztaban van vele, hogy messzirol nem lehet harcolni, de tul kozel sem akar menni, igy aszerint sulyozza a lehetosegeket, hogy mindig egy bizonyos tavolsagra legyen a masik falepitotol. (elvegre ot szeretnenk letolni a terkeprol.)

- A masodik reteg (bar lehetne az elso is) a Master of Geography. O az, aki kikuldi a felderitoket, hogy kitalaljak, merre all sok hely a rendelkezesunkre. A korabbi valtozata csak felment a hegytetore es korulnezett egy latcsovel, de ez nem mukodott olyan jol, ugyhogy ot kirugta a kiraly.

- A harmadik reteg a Master of Spies. O az ellenfel mozgasat figyeli, es probalja kitalalni, hogy hogyan zarhatnank ot el magunktol.

A kiraly bolondjat kirugtak. O csak annyit akart, hogy februar 14-en rajzoljunk egy szivet, de ez nem tunt megvalosithatonak a rendelkezesre allo terulet jellege miatt.

Jelenleg a 91. vagyok a korulbelul 600-bol. Magyarazat a fenti diagrammhoz: Az elejen az alapcsomag volt csak benevezve, ami, ahogy nott a nevezok szama es megszulettek az elso igazi botok, szepen vesztett a helyezesebol. Feb 8-an beneveztem az elso kesz valtozatot a botombol (meg a regi Master of Geography-val) ekkor szepen felugrottam a 250. hely kornyekere. Ott el is vegetalgattam egeszen ma reggelig, amikor is feltoltottem az uj verziot – ami tegnap este kesz volt mar, de egy oran keresztul hiaba probaltam feltolteni, technikai okok miatt nem sikerult. Az uj verzio a felderitokkel lathatoan sokkal jobb eredmenyeket er el, miota feltoltottem, a 90-100. hely kornyeken vagyok.

Category: Hobbi  | Tags: ,  | 2 Comments
csütörtök, január 14th, 2010 | Author:

Az egyik ok, amiért szeretnék a Google-nél dolgozni.. az az, hogy pet project, már ha ez nem csak egy urban legenda, de most a másik okról fogok írni. Már pár napja érlelgetem magamban ezt a gondolatot, és témában is ide illik, szóval itt van:
Azért szeretnék a Googlenél dolgozni, mert ők fogják megalkotni az első Mesterséges Intelligenciát. Igen, így nagy betűvel. Az “első” szó igazából félrevezető, de erre mindjárt visszatérek.
Nem feltétlenül tudatosan törekednek erre, bár szerintem igen. Azt sem állítom, hogy mindent csak ezért csinálnának, de sokmindent igen.
A jelek, ami miatt így gondolom:
- A keresőmotorjuk asszociatív
- Rengeteg adatod gyűjtenek, mégpedig összefüggéseiben. Nem csak a keresésre gondolok, hanem a gmailes levelekre, gtalkos és wave-es csevegésre
- Gyakorlatilag minden platformon van valami Google termék, ahol proci van
- Marha sok nagy koponya dolgozik nekik
- A Go egyik igazán erős oldala a párhuzamosság

Az egyik ellenérv, ami viszont elgondolkoztatott, az a Google Games teljes hiánya. Nem csinálnak játékokat.. de miért? Hiszen annyit hallunk a játékok AI-járól..
Csak azokról azt tudni kell, hogy a valóságban az sokkal inkább szimulált viselkedések halmaza, mint valódi intelligencia. Továbbá, nem az a feladatuk, hogy győzzenek, hanem az, hogy kihívást nyújtsanak.
Egyébként, ha van/lesz a googlenek AI-ja, az fog játszani. És arra fog törekedni, hogy nyerjen.

Ja, még egy gondolat: Miért? Képzeljünk el egy entitást, ami mindenütt ott van, minden telefon, fax, számítógép a része. Folyamatosan figyel, hogy ne rosszalkodjunk. Nem korlátoz meg mindent, csak óv bennünket egymástól. Mint a jó szülő – hagyja a gyereket önállóan cselekedni, amíg az nem veszélyezteti magát vagy másokat.
Erre jó az ő AI-juk. Tulajdonképpen talán az egyetlen AI, ami mindenhol ott lesz.

Category: Hobbi  | Tags:  | Leave a Comment