Dorai’s LearnLog

April 8, 2008

Google App Engine with Python Run-Time

Filed under: Resources, Web App Hosting — dorai @ 10:01 am
Tags: , ,

Just saw this from Google. I think it is pretty cool. It is also cool that they have Python run-time as a part of the engine. I could not get in, but hope to when the program expands. Here is a brief description:

Google App Engine lets you run your web applications on Google’s infrastructure. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow. With App Engine, there are no servers to maintain: You just upload your application, and it’s ready to serve your users.

The cool thing about this facility is the support for Python run-time:

App Engine applications are implemented using the Python programming language. The App Engine Python runtime environment includes a specialized version of the Python interpreter, the standard Python library, libraries and APIs for App Engine, and a standard interface to the web server layer.

Google App Engine is very different from Amazon’s Electronic Cloud even though to some extent, they may compete in the same space.

A few random related thoughts:

  1. This may be ideal hosting facility for OpenSocial apps ( I already know some facebook apps using Python run-time)
  2. What if, Google implements one for a Java run-time as well? Loads of apps can benefit from such a service.
  3. This may be a great resource for hosting open web services
  4. It will be interesting to see Zope, Plone, Twisted and Django move to this environment

Update:

A friend mentioned that the sample apps are in Django and after a bit of browsing, confirmed that. On this general FAQ page, I found this.

For your convenience, Django v0.96.1 is included with the Google App Engine SDK.

Before you jump in and sign up, you may also want to see these limitations (from the same FAQ page)

  • Libraries that maintain databases on disk are not enabled in Python for Google App Engine
  • Sockets are disabled with Google App Engine
  • The system does not allow you to invoke subprocesses, as a result some os module methods are disabled
  • Threading is not available
  • For security reasons, most C-based modules are disabled
  • Other features that are limited:
    • marshal is disabled
    • cPickle is aliased to pickle
    • System calls have been disabled

Also see:

Google App Engine - A First Look

Developers Start Your Engines

App Engine and Open Source

App Engine: Commodity vs Proprietary

August 19, 2007

Links: RDF, Semantic Web Tools

Filed under: Resources — dorai @ 8:43 pm
Tags:

RDF 123 - A mechanism to transform spreadsheets to RDF graphs:

RDF123 is an application and web service for converting data in simple spreadsheets to an RDF graph. Users control how the spreadsheet’s data is converted to RDF by constructing a graphical RDF123 template that specifies how each row in the spreadsheet is converted as well as metadata for the spreadsheet and its RDF translation. The template can map spreadsheet cells to a new RDF node or to a literal value. Labels on the nodes in the map can be used to create blank nodes or labeled nodes, attach a XSD datatype, and invoke simple functions (e.g., string concatenation). The graph produced for the spreadsheet is the union of the sub-graphs created for each row. The template itself is stored as a valid RDF document encouraging reuse and extensibility.

Semantic Web and Related Tools (over 500)

This posting of Sweet Tools — semantic Web and related tools — is now in version 9, with 542 tools, an addition of 42 newly listed tools since the previous version. It was last updated on 6/19/07.

Over 49% of them are Java based.

CWM -A general purpose data processor for the semantic web

Cwm (pronounced coom) is a general-purpose data processor for the semantic web, somewhat like sed, awk, etc. for text files or XSLT for XML. It is a forward chaining reasoner which can be used for querying, checking, transforming and filtering information. Its core language is RDF, extended to include rules, and it uses RDF/XML or RDF/N3 (see Notation3 Primer) serializations as required.

July 10, 2007

Programming Language Trends - July 2007

Filed under: Programming, Resources — dorai @ 6:36 am
Tags:

It interesting to keep an eye on TIOBE’s programming language trends. The position of the language is as interesting as the movement of languages up and down the rank. Lua, D and Ruby moved up, big jumps. You can see the top 20 list here. Here is how the index is computed. Here is an excerpt from TIOBE’s July News Flash.

  • This month, it looks like the month of game programming languages with a functional nature. Lua, particularly known as the implementation language of “World of Warcraft”, has entered the top 20. Now that all the hype around Ruby is cooling down, it seems to be time for a new scripting language. Lua is dynamically typed, with a very small but extendable language definition. It has borrowed a lot of features from the functional world.
  • At the same time Xbox compatible language F# entered the top 50. Everybody expected Scala (currently at #55) or Groovy (#54) to hit the top 50 this month, but F# was to one that really made it. F# is just like Lua a functional-like language. Although F# is still a Research project from Microsoft, it gains a lot of attention already.

I have heard mentions of Scala, but not D. Both may be worth checking out. I am surprised that Haskell does not figure in the list of Top-20 and FoxPro is still hanging in there.

PHP seems to be going down a bit. I am surprised to see that since some of the most scalable web applications - MediaWiki (which powers Wikipedia), WordPress are written using PHP.

So what metrics would you use to pick a language? It depends on what you want to do. If it is jobs, then Java is a good bet for a while. If you want to build rapid web applications then Python, PHP and Ruby are definitely the ones to consider (even though Python/Ruby are very different from PHP). For Windows developers, obviously C# is the language of choice. Game developers seem to like Lua, C++ and Python over other languages.

Even though TIOBE does not consider markup languages in their listing of programming languages, I think XML and RDF will be important ones to learn.

May 6, 2007

Cool Tools/Resources - May 5th 2007

Filed under: Books, Resources, Tools — dorai @ 8:05 am

I changed the title from Cool Tools for the web to broaden it a bit and include the date in the title.

Wink - Tutorial and Presentation Creation Software
Wink is a Tutorial and Presentation creation software, primarily aimed at creating tutorials on how to use software (like a tutor for MS-Word/Excel etc). Using Wink you can capture screenshots, add explanations boxes, buttons, titles etc and generate a highly effective tutorial for your users.
People Search
This is a great way to search for people. If you want to know more about them, check out ZoomInfo too. I only wish they added another field to the search where you can add keywords in addition to name, city etc.

listible - list of web 2.0 products and services
They call it a complete list. I would say “comprehensive list”. Some of the resources listed here come from this list.

Rolobiz - link to your contact information
Make your business cards as vcard to work for you and be remembered by your peers. Your business cards will not go wasted anymore. I like the idea of creating one card and keeping links to it everywhere. vcard is a good choice since it can also be imported/exported from/to several popular address books. But then there is FOAF which in addition to getting your contact information, can also provide a friends network.

Wikibooks
a Wikimedia project that was started on July 10, 2003 with the mission to create a free collection of open-content textbooks that anyone can edit. Since our founding, volunteers have written about 25,219 modules in a multitude of textbooks.


April 8, 2007

One of the Most Valuable Resources for Bloggers

Filed under: Resources, Tools — dorai @ 9:09 am
Tags:

This is one of the most valuable resources for bloggers I have seen, in a while. For some one to take the pains to assemble such a big list and carefully categorize them and list them on a blog, is, simply astounding. But then, this is what blogging is all about - sharing.

I’ve put together a huge list of content resources for you to peruse and investigate for possible blog content. It certainly isn’t a list of all the content, resources, and information out there, but it is designed to get you thinking about all the content, resources, and information out there for you to blog about. And there is a lot out there. If I have missed a favorite resource of yours, please add it below in the comments. I love looking up new avenues of inspiration.

I came to this list by accident. I track several topics using Google Alerts. I received an alert for InfoMinder today. InfoMinder is a product our company provides. I followed the link on the alert and found this blog post. I am glad, I did.

February 16, 2007

Tech Links - Feb 16, 2007

Filed under: Programming, Resources — dorai @ 1:34 pm
Tags:

Dictionary of Algorithms and Data Structures

This is a dictionary of algorithms, algorithmic techniques, data structures, archetypal problems, and related definitions. Algorithms include common functions, such as Ackermann’s function. Problems include traveling salesman and Byzantine generals. Some entries have links to implementations and more information. Index pages list entries by area and by type. The two-level index has a total download 1/20 as big as this page.

This is an invaluable resource to any one programming. I am glad that there is one place we can go to, to get this information.

How Social Sites Reveal What Your Audience Likes

Understanding your audience is the key to success in any business - including blogging. Lately the Read/WriteWeb authors have been discussing what it is that keeps readers coming back here. Our recent poll indicated that most of you come back to this blog for Analysis and Reviews.

I found the next few links from this blog. It is fascinating to watch what people read on your blog too. I wish the blogging packages do a better job of providing this info. You can do some Google Analytics magic to do this yourself.

The Top-100 Alternative Searches

Ask anyone which search engine they use to find information on the Internet and they will almost certainly reply: “Google.” Look a little further, and market research shows that people actually use four main search engines for 99.99% of their searches: Google, Yahoo!, MSN, and Ask.com (in that order). But in my travels as a Search Engine Optimizer (SEO), I have discovered that in that .01% lies a vast multitude of the most innovative and creative search engines you have never seen. So many, in fact, that I have had to limit my list of the very best ones to a mere 100

Silicon Valley Meets American Idol

Yes, something like an “American Idol” for the technorati may be coming to Silicon Valley.
Venture capital firms are considering contests that offer competing engineers and entrepreneurs multimillion-dollar prize purses if they come up with innovative technologies in various industries.

I am a fan of both American Idol and American Inventor. This one has great promise. There is something invigorating about watching creative minds at work. Even the ones that do not win, inspire me.

From Read/Write Web on Search 2.0

You may feel relatively satisfied with the current search offerings of Google, Yahoo, Ask and MSN. Search today is undoubtedly much better than what it was in the second half of the 1990’s. But Internet search is still in its infancy and there’s much room for improvement. Moreover, the super high valuation of Google on NASDAQ pushes investors and researchers to find better search solutions - to be The Next Big Thing. And these wannabes are not only working on discovering better indexing techniques, they’re exploring new horizons like vertical engines, meaning-based search, intent-driven search, new clustering methods, and much more. In this post, we look into latest trends in the search industry.

We have positioned the latest search trends into 3 main categories:

  • UI Enhancements
  • Technology Enhancements
  • Approach Enhancements (Vertical Engines)

In MashupCamp2, I did a session on Next Generation Search Mashups. It is somewhat similar to this. There I divided the search mashups under a different categories:

  • Pre-processing (A set of tools that take searches of different types and convert them to the syntax search engines use)
  • Post-processing (A set of tools that take the search results and massage them to provide different outputs)
  • Extensions (Extensions to search engines themselves to improve search semantics)

November 8, 2006

Articles: Programming

Filed under: Programming, Resources, Software — dorai @ 12:42 pm

A few cool blog entries on programming that I would like to share.

Be Careful Who You Learn From is not only great advice but also provides some very cool links. But your teachers are not the ones who teach you computer science anymore. The internet has opened up many great teachers.

The Power of the Marginal (a link I found from Des Traynor’s blog mentioned above) explores this paradox:

Great new things often come from the margins, and yet the people who discover them are looked down on by everyone, including themselves.

The Python Paradox is a bit about Python but more about software. Paul Graham is one of my favorite authors. His Hackers and Painters was one of the best books I read in 2005. You can find his essays here.

November 2, 2006

Discovered Widgepedia

Filed under: Programming, Resources, Software, Tools — dorai @ 8:43 am

Discovered Widgepedia today (through Ajaxian).  You can sign up and share widgets. Seems like a cool idea.You can get started with a tutorial on how to build widgets.

July 24, 2006

JSON - XML with Anorexia?

Filed under: Programming, Resources — dorai @ 8:01 am
Tags:

Thanks to Jeff for pointing this out. Here is a 3 minute tutorial on JSON.

  1. They are both ’self-describing’ meaning that values are named, and thus ‘human readable’
  2. Both are hierarchical. (i.e. You can have values within values.)
  3. Both can be parsed and used by lots of programming languages
  4. Both can be passed around using AJAX (i.e. httpWebRequest)

I have heard of JSON a while ago, when I was looking at Yahoo SDK for web. It looked cool but I did not spend time using it. I wanted to understand the following before I jump in:

  • Can it be used by languages other than Javascript - the answers seems to be yes.
  • Can I do a lossless transformation of XML to JSON and JSON to XML - I do not know but for the subset of XML it represents, this seems possible.

It is likely to be popular for AJAX apps. However, will it replace XML as payload? Only time will tell.

June 2, 2006

A Useful Resource of Firefox Extensions

Filed under: Resources — dorai @ 7:17 am

Once in a while, I find something very useful and then, I cannot resist posting. Here is a great Firefox Extension Resource, well categorized and with over 200 extensions. 

Here are the top three categories:

  1. Web Development
  2. Personal Productivity
  3. Text Copy/Paste 
Next Page »

Blog at WordPress.com.