Posts Tagged ‘google’
Free Captchas, Google App Engine and OCR
Captchas are the distorted, almost unreadable strings you have to retype in a web page in order to do a specific action. The purpose of the captcha is to make sure the form has been filled by a human and not a “bot”. Most of the time you will find captchas on login and comment pages.
Wen time arrived to add captchas to my CryptoEditor website I found a service provided by Google called reCaptcha. ReCaptcha takes advantage of the massive number of users using it everyday to digitize printed books. How can that be? It’s very simple!
Instead of showing one combination of letters and numbers to the user, reCaptcha will ask you to resolve two words. One of these is a word reCaptcha already know the digital translation and the other is a word scanned from a printed book that the OCR application has not been able to resolve. Of course you don’t know which is which.
The word reCaptcha already know will be used to allow you or block access to the service and your guess for the other word, the one the OCR was unable to resolve, will be added to a database to train the OCR reading this book.
The integration of reCaptcha in a Google App Engine is quite straightforward. You first download the reCaptcha python API. Then you copy the captcha.py module to your project and adapt it to use the GAE fetchurl module instead of urllib2 to call the reCaptcha server over http.
If you are lazy like I am, you can download an already adapted version of captcha.py from the Joscha Feth blog. This post explains in details how to implement it in your Google App Engine application.
To be able to use the service, you will need to register to the online service. Since it is a Google service, you can use your google login to register your websites to the service. You will be provided with a private and a public key. NEVER publish or exchange your private key.
Visit the reCaptcha wiki site to find information on how to personalize the look and feel of the captcha form using CSS.
Google App Engine Email Service
Help improving Google App Engine, go to the Google App Engine Issues page and vote for the issue 677. This is a big no go for many GAE developpers using the Mail service:
http://code.google.com/p/googleappengine/issues/list
Take a few minutes to read more about the needs of the Google App Engine community.
Philippe Chrétien
SecretQUIZ.com Alpha
I have released a first version of SecretQUIZ.com. This release is in its Alpha stage so it may change considerably in the next few days.
SecretQUIZ allows you to securely share information with your friends with no need of complicated encryption applications. SecretQUIZ is based on the authentification principle. You write a small quiz with questions you know only your friend can answer. Once all questions have been correctly answered, the secret message is delivered.
SecretQUIZ.com has been developed using Google App Engine and Python. This should allow scalability in the Google cloud without having to change my code or to buy new hardware.
I release this application free of any charges. I reserve myself the right to charge for some parts of the service in the future if the adds model can not cover maintenance fees. If you read between the lines, this means “click the adds please”!
Feel free to report bugs and to correct my approximate english here on this blog. I’ll follow up on all your comments.
Visit us at www.secretquiz.com
Thank you,
Philippe Chrétien
Google App Engine 1.2.1
Only two weeks after the release of 1.2.0, Google has released version 1.2.1 of its Google App Engine SDK. This new release includes two great new features, the PyCrypto library and the DataStore Remote API.
PyCrypto now provides strong and fast encryption functionalities. With previous versions, strong encryption such as DES/3DES were not available in the framework. There was some pure Python implementations of DES but that was a lot slower and cost a lot of CPU time.
The other great addition in 1.2.1 is the DataStore Remote API. This new API allows you to write client side application that uses the distributed DataStore. Using this API you can run maintenance and diagnostic code on a remote machine. The bandwidth used is calculated in your in and out bandwidth quota.
More informations on this new release at:
http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes
Philippe Chrétien
Google App Engine
Le “Cloud Computing” gagne chaque jour en popularité. Il est maintenant possible pour une jeune entreprise de développer un site web qui accueil des millions d’usagers et ce à très faible coûts. Google est un leader dans ce domaine avec Amazon et quelques autres compagnies.
Google App Engine (GAE) permet à un développeur de construire une application web dans le cloud de Google et ainsi bénificier d’une capacité de croissance illimitée. Pour y arriver, GAE mets à la disposition des programmeurs une suite d’outils de base qui permettent, si ils sont bien utilisés, de profiter pleinement des possibilitées de croissances du cloud.
Google App Engine est disponible pour Python et, depuis quelques semaines, en Java. Originalement, GAE était disponible seulement pour Python, je recommande donc d’utiliser ce langage plutôt que Java. La communauté Open Source/Python est beaucoup plus dynamique que la très “corporative” communauté Java.
Assez de mise en contexte, venons en aux faits. L’approche proposée par GAE est différente de l’approche traditionnelle du cloud computing où on offre généralement à l’usager la possibilité d’ajouter un nombre illimité de machines virtuelles pour supporter leurs besoins de croissance. GAE va plus loin en proposant de nouveaux outils de programmation qui sont conçus pour profiter pleinement du cloud de Google. Ces outils sont:
- Le DataStore qui remplace les bases de données relationnelles traditionnellement utilisées dans les grands sites
- Le Memory Cache qui permet de garder des données en mémoire et de les rendre disponible à toute l’application
- Le Mail Service qui vous permet d’envoyer des courriels aux usagers.
- Le URL Fetch qui permet d’accéder au contenu de sites externes en GET ou en POST.
- Le Image Service sert à manipuler et modifier des images.
- Le Google Account qui vous permet d’utiliser les comptes Google pour vos usagers.
J’ai commencé à travailler avec GAE au début du mois d’avril. J’ai principalement utilisé le DataStore, Le MemoryCache et le Mail Service. Ces outils sont très simples d’utilisation et, si bien utilisés, vous permettent de développer une application qui pourra croitre sans limite.
Je vous recommande ce petit vidéo pour avoir une idée du cycle de développement d’une application avec GAE:
http://www.youtube.com/watch?v=bfgO-LXGpTM
J’ai aussi développé une petite application web qui permet de faire la gestion d’usagers sans utiliser le Google User Account service. Cette application utilise Django comme web framework. Vous pouvez télécharger le code sur mon Github à l’adresse suivante:
http://github.com/pchretien/gaebase/tree
Vos commentaires sont les bienvenus,
Philippe Chrétien
