Archive for the 'GrazrScript' Category

Amazing GrazrScript app for Flickr

Saturday, August 11th, 2007

Edward Grech (Alto Maltés) has produced a GrazrScript application that lets you browse Flickr photos based on tags. The platform is finally coming together. He wrote the Flickr API logic and OPML generation in GrazrScript, and calls an XSLT script on his server to transform the result into feeds. By delivering the feeds through our widget he automatically has an application that works on the iPhone, Ajax desktops, and Facebook. You can learn more about GrazrScript programming in our tutorial.

Grazr news using Grazr on Grazr.com

Wednesday, March 7th, 2007

If being self-referential is a sign of postmodernism, then Grazr is truly a postmodern Web app. Marjolein Hoekstra has created an OPML file to display news about Grazr. She placed it in a Grazr widget, and posted it on Grazr.com. Maybe we should create a poster with a Grazr widget and the message “This is not a Grazr widget.” As a parental side note, one of my most memorable discussions with my college freshman son came this Christmas break when he spent an hour explaining how I didn’t really understand postmodernism. The best part is that he was absolutely right.

Slowly emerging from CEO mode

Saturday, February 10th, 2007

I’ve been buried in CEO type, corporate stuff for the last month, which totally distracted me from blogging, but that will soon end and I’ll be able to start blogging again. In fact, I have a couple of cool new blogging projects under development. Right now I’m finishing up the details on a Series A funding round, and we’ll have an announcement on that shortly. As a side note, I don’t remember the phrase “funding round” being so prevalent in the past. I suspect it will go down in history as emblematic of this phase of the computer industry, like my favorite phrase from the dotcom, “pre-IPO.” I always loved that one. Everybody was pre-IPO in 1999, until there were no more IPOs.  I guess that is the curse of getting old. Even new trends remind you of old ones. I’ve also been hiring coders, renting a new office, arranging about a dozen types of insurance, and generally living in employee benefits hell. Once again I have come to realize that America is a great country. It takes about 6 different service companies to put together a standard package of employee benefits. Talk about full employment.

When this phase is finally completed in a few weeks, I plan on devoting myself full-time to writing about GrazrScript. We have made a major breakthrough in integrating the Mozilla JavaScript interpreter with GrazrScript. When this is released, you will be able to embed standard JavaScript into any OPML file. This will have a major impact on OPML use, but how to apply it won’t be obvious at first. I want to build tons of examples of accessing feeds and APIs all over the Web with GrazrScript. Eventually these examples will turn into books, but they’ll be posted on this and other blogs as they are completed.

GrazrScript now includes form validation

Monday, December 11th, 2006

We’ve added a new tag to GrazrScript that allows you to add validation rules to your forms. This is done with the rule tag, which takes the form <grazr:rule field=”[field_name]” [rule]=”value” text=”[error message]” />. When a form is submitted, GrazrScript tests the included rules, and returns an error message if any of the rules are violated. For example, you can make sure a field is filled in with the required rule: <grazr:rule field=”subject” required=”true” text=”Please enter keywords for a news search” />. Here is a simple Google News search application with this rule. Try clicking Submit without filling in the input field.

There are currently 4 field rules, but we have plans for more in the future:

  • required - blank entries are not allowed
  • numeric - entry must be a valid number
  • max - maximum value of a numeric entry
  • min - minimum value of a numeric entry

You can find more details and examples of all of these field rules in the GrazrScript Tutorial.

What is the killer app?

Thursday, November 9th, 2006

I spoke to an investor today about GrazrScript, and his first question was “What is the killer app?” I guess this is a good question to ask about any end-user product, but I’m not sure what the answer would be for a programming language. I taught dBASE for many years and I have no idea what the killer app was. People used dBASE for everything from billing to inventory to running the logistics for the US Navy. Just today as I was sitting in the lobby of the Palace Hotel waiting for Web 2.0 to start, someone came up to say hello and describe the apps he built with dBASE for the Pentagon. So was this a defense related application? No, he built a system to manage all the parties they held. I programmed in Perl for a few years at the start of the Dotcom, and it is still one of the leading Web languages. But what is Perl’s killer app? It has been used for every type of application on the Web.

I had a similar problem when I was teaching programming seminars. I’d explain some totally generic technique, like calculating the date one week from today. If you think about it, this is more than adding 7 days. Inevitably, someone would ask, “When would I use that?” I never knew what to say. My only answer was “whenever you need to calculate the date 7 days from the current date.” I do know that this is a common need, but where it would be applied is up to the developer.

I think about GrazrScript the same way. I clearly see a time when there are thousands of feeds a user might have to search and manipulate to find an answer to a specific question. I know they will need an application to help them perform this operation. I also know that aggregators and search engines are generic tools that can’t be harnessed for highly specific applications. What will those applications be? Whatever the user wants them to be. If they are sales people, it will be a sales app. If they are investors, it will be an investment app. If they are sports fans, it will be a sports app.

To me the killer app for a language is being able to perform some programming task with much less work than any other tools. When dBASE appeared, it was many times easier than CBASIC for database programming. PHP was many times easier than Perl for CGI programming. GrazrScript is many times easier than any existing language for building applications built on feeds.

The other problem with killer apps is that by definition they don’t appear until several years after the product is in use. The killer app for Apple was being able to run VisiCalc. That was realised at least 4 years after the first Apple. The killer app for the IBM PC was Lotus 1-2-3, which came out 2 years after the first PC. So maybe in 2 or 3 years we can look back and say the killer app for GrazrScript was video feed programming. But it is just as likely it will be something people want to do with feeds that doesn’t even exist today. That is the purpose of a programming language. It allows new applications to emerge that weren’t possible before, or were too time consuming to build in large numbers.

Maybe the killer app for feeds will be the ability to use them with GrazrScript.

Grazr now installs on Ajax Desktops

Thursday, November 9th, 2006

We just added install code for Google IG (personal home page), Microsoft Live, Netvibes, and Pageflakes to our configuration page. You can now add Grazr to these sites with a single button click. What is interesting is that we now have to think not just as a tool provider, but also as a platform. If we want developers to build applications in GrazrScript, we have to make sure that their applications will work on the widest base possible. Our next big target will be social network sites.

RESTing on other people’s code

Thursday, November 9th, 2006

One of the challenges of demoing any new product is the “but can it also do X?” questions. Software can basically do whatever you can imagine, so one answer to that type of question is “Of course, we have that in our plans.” The architecture of GrazrScript was designed to offer another answer. Whatever GrazrScript can’t do now can be written in any other language and integrated with GrazrScript with a REST interface. This just means that you need a program in any language to accept parameters as part of a URL and return results as feed or OPML data. The heart of GrazrScript is the ability to call any URL, pass it values from a user’s form input, and display the results in Grazr.

So last night I was demoing GrazrScript to a PhD who seemed to think he was still in grad school trying to impress his prof. He kept coming up with really complex database manipulations and asking if we could do that, even though he had already seen that this was a first beta of a new language. The answer was simple. We can’t do that yet, but we can take advantage of anyone’s code that could, whether it was written in Perl, Ruby, Python, or PHP.

The reality is that database programming is easy in the right language, but building a rich user interface in any language is hard when it has to run in all browsers, especially IE. We have already solved the hard problem with Grazr, and now we have made hooking up any other code easy with GrazrScript. Some people use the term “glue language” in a pejorative sense, but I’m proud to say that GrazrScript was designed to act as glue between traditional Web scripting languages and the UI demanding environment of a Web page.

GrazrScript demo

Thursday, November 9th, 2006

I gave a demo of GrazrScript at the Widgets Live conference on Monday, and I’ve also been using this demo while I’m at Web 2.0. It can be a challenge to demonstrate a language, so if you are looking for a quick way of seeing what you can do with GrazrScript, this might be useful.

The power of the URL

Friday, November 3rd, 2006

We just posted the announcement on our home page that the beta version of our new feed programming language, called GrazrScript, is now available in all copies of Grazr. GrazrScript is based on a simple principle. There are now thousands, perhaps hundreds of thousands of feeds available on the Internet that are based on user queries. These appear within search engines, media sharing sites, job sites, government agencies, etc. The one thing they all have in common is that a user query is placed within a URL, and the results are sent back as a standard feed or OPML file.

For example, the following URL will get a feed of Google News items based on a search for “video”: http://news.google.com/news?q=video&output=rss. If you look closely at this URL, you will see that the word “video” is placed after the characters “q=”. This is Google’s way of saying to search for video. If you change the URL to place another word after “q=”, you can search for anything you want. Of course, changing URLs by hand and then reading raw feeds is not the best user interface.

GrazrScript allows you to harness the power of all of these feeds, and publish them on any Web page with a simple to use form and a rich user interface for reading the results. Try typing video into this GrazrScript application and pressing the Enter button. What you are seeing in action is a GrazrScript application based on a Google query for news. You can look at the program here. The key to GrazrScript’s power is that the entire program for this application is just 15 lines in length, almost all of that is the same for every application. In fact, by modifying just one instruction to search in a different URL you can change this application to work with any site that takes a query as a URL and returns a feed.

This post is an excerpt from the GrazrScript tutorial. You can also find a detailed description of the GrazrScript syntax in our 1.0 draft specification. GrazrScript is an extension of OPML 2.0, and carries the same license. Anyone may use the GrazrScript language in their own personal and commercial products for free.