Skip to main content

Posts

How to Understand AppEngine Datastore Under the Hood: Part 2 - The Raw Datastore API

If you haven't yet read the first part of this series, feel free to start from the beginning with Part 1 - An Overview of the Underview Every AppEngine developer is familiar with the module. In Part 1 I introduced what goes on under the hood of this API, to give everyone a better understanding of what they are taking advantage of. Now, in Part 2, I'm going to detail the actual API that is used to utilize the raw entities behind our Model instances. At this time I am unsure if anything in this API is suspect to change, but I doubt anything is subject to drastic flux and I'm fairly confident everything here is safe for actual use, as much as anything else in AppEngine. Module: google.appengine.api.datastore Our main focus here is the Entity class. Everything supports it, from the Get, Put, and Delete functions to the Query class. Their uses are obvious. As previous exposed, each entity is essential a property bag and will take any given properties to the datastore for storag...

How to Understand AppEngine Datastore Under the Hood: Part 1 - An Overview of the Underview

There are a lot of wrong perceptions about the datastore in Google AppEngine. People both familiar and foreign with AppEngine don't really understand what the datastore is. There is a deeper system underneath the nice API we are given. Understanding the guts can help us understand the skin. We may also find there are times when we must shed the skin for new clothing. The biggest misconception about the datastore is the assumption that "kinds" are anything like "tables". You could use a set of entity kinds similar to the way you would use a set of tables, but they simply are different beasts, entirely. A table controls a strict requirement on the structure of its rows. Every entity, on the other hand, is free to hold any properties of allowed types. The published Model API is all an abstraction provided to give us a nice interface on top of an otherwise much looser foundation. Many people would be very surprised to learn that a given kind doesn't actually req...

How to Bubble the Good of Twitter to the Top

The aftermath of the quakes in California saw a lot of talk about Twitter getting the word spread, from the trenches, very quickly. Chris O'Brien heralded it as a sign that NextNewsRoom is doing something right. A lot of people were talking about it. Twitter carried the news before any news agency. First is one thing, but quality control is something else. The flood of messages reached a point that its almost assured no one read every quake tweet that was sent. There were just too many of them. Can anyone imagine the flood that would have been seen if Twitter existed and was popular on the morning of 9/11? It would have been maddening. We can take this situation and ask two questions. How can we form something better from the flood of tiny messages? Do we even want to? Can we find some way of filtering both relevant and "good" posts and could we pull some larger picture from all the little pieces? Of course, doing so would take resources, and those are either iron, eyes...

How to Delay First Impressions of Google App Engine

Most of the buzz about the App Engine has died down, except among the developers actually using the platform. When the first public announcements were made, I was a part of the original group of developers first given access. This privilege was wasted. I did nothing with it. This has changed, which is a topic for a different post. I thought I'd take a moment to make my mark on the "What I think about Google App Engine" wall. A proper review is difficult, for a number of reasons. Namely, there is a very vague understanding of the difference between this "Preview Release" and what we'll have when it launches with all official status and commercial potential. We can only hope that any big changes won't interfere with our existing applications. If that does happen then existing players might turn to AppDrop for help, although any mass migration is highly doubtful. In any case, what everyone is talking about is what App Engine is now , not what it might turn...

How to Defend Twitter's Spam-Fighting Follow Throttling

So, the twittersphere is in an uproar about those dropped follower counts. Is everyone more afraid of the lost high-count vanity or that so many people follow without thought that we might never regain many of the legitimate follows? Either way, there is a lot of complaining about the apparently service mishap from the company that we shell over so none of our hard earned dollars to. The mistake is one thing, but I see quite a bit of sentiment against the very method they undertook to combat the spam problem. I challenge that claim, because I think they're on the right track limiting follows, and I'm going to explain why. For Popular People This Means... You're popular by how many people follow you, not the other way around. You can go on your way, with thousands of people hanging on your every toilet flush, and Twitter can still limit those damn spammers from following you along with ten-thousand other ego filled, txt-fingered masters of the twitterverse. For "Communi...

How To Host Every Language in Every Language

Atul writes: Last week, Scott Petersen from Adobe gave a talk at Mozilla on a toolchain he’s been creating—soon to be open-sourced—that allows C code to be targeted to the Tamarin virtual machine. Aside from being a really interesting piece of technology, I thought its implications for the web were pretty impressive. The next steps Scott took are the most interesting, because he starts using this to build stock Python and Ruby runtimes that are hosted on Tamarin. This is a fascinating solution to one of our biggest itches: more languages on more platforms. Imagining the sheer number of languages (most) this opens up to running on any Tamarin run-time (Flash and Firefox 4) is mind boggling. Go on, let your mind be boggled. Combine this with the basic idea being targetted to other platforms and you've got a lot of possibilities. Target other bytecode, like Java or .Net, and you open up more possible cross-builds than you can count. Platforms begin to fade on the borders. At the same...

How To Destroy the Handheld Game Dominator

I couldn't even pluralize "dominator" because Nintendo won't let Sony in the door. Nintendo has the handheld game market locked tighter than Fork Knox. This won't be the first place to call out the "Apple is entering the handheld gaming market" flag, but I do think I can lay out the steps they would (or should) take that can lend credibility to the idea. If nothing else, I hope someone there is reading. Apple can't do this alone, but they have a very good friend in another company with a name that starts with A: Adobe. The pair would be the ultimate contender into the very tight market and the approach is amazingly simple. Flash is coming to the iPhone and iTouch, and I'll hope they make bookmarking Flash games easy and give us the option to "fullscreen" them on the devices. Explicit offline caching wouldn't hurt either. The next step is obviously to allow flash apps and games to be installed directly for quick access and immediatel...