Curl Blog : July 2008

Previous Next
0

I’m constantly amazed at the inventiveness and persistence of hackers at creating and distributing virus, worms, fishing attacks, etc. Isn’t amazing that we are still so easily victimized by these scoundrels? The other day I was looking for software that can rip movies off of my DVDs and put them on my iPhone. When searching Google I found literally dozens of programs that promise to do this. I asked a friend, which program I should try and his reply was, “don’t try any of them.” Apparently many of these free and handy utilities are actually Trojan Horses designed to give you the impression of usefulness while infecting your machine with all sorts of nasty critters. How do they do it? They install natively on your machine so that once installed they have access to your entire system including writing root kits.

This is the dilemma: There are a lot of really great and useful applications out there in the wild but there are also a lot of horrible, wicked applications just waiting to be given access to your system. What should we do? I’m a firm believer that the answer lies in quarantining applications from the start so that they can never access resources outside of a specific directory on your hard drive. This is exactly what Curl does by default; it quarantines the Curl applets you download to a specific directory. It’s actually much better than other RIA solutions because, by default, a Curl applet from the wild can have access to substantial amount of secondary and primary memory. A Curl application that is not signed by a valid certificate of authority cannot access any resources beyond the directory you run it out of. Combine this with the network security access file that was first developed by Curl and is now used by Adobe (their own version of it that is) and you have an outstanding security model.

What does this mean? It means you can download any application you want without concern about having your Windows, Mac, or Linux desktop hacked. Applications cannot access operating system resources beyond their quarantined directory and are therefor far safer than any native application. And because they can access disk space beyond a few kilobytes they can store a decent amount of off line data and are a lot more useful.

Imagine if most, if not all, applications were designed to run in a Curl-like quarantine. The Internet would, in my opinion, be a much safer source place.

0 Comments 0 References Permalink
0

Recently, I interviewed Principal Analyst Ron Rogowski of Forrester Research about the state of RIA technology today. In a five episode pod-cast available hereI asked Ron if RIA is making headway in the enterprise and his opinions about the future of the "Fit Client", enterprise widgets, Ajax, and client-side platforms in general. Ron provides a unique perspective that is both independent and well considered. Check out the the pod caststoday and see what Forrester has to say about the RIA industry. (Note: the first minute and six seconds repeats in each podcast) ..

<font face="Arial, s

0 Comments 0 References Permalink
0

I went out last night and caught the late showing of The Dark Night. I love that Batmobile, but I can’t imagine driving it to work. I would rather drive Bruce Wayne’s Lamborghini! But even the Lamborghini is not exactly a utilitarian vehicle. I mean I can’t imagine taking my wife and four kids on a camping trip in a Lamborghini. I would rather drive my Chevy Suburban.

The Batmobile, Lamborghini and the Suburban all have strengths and weakness depending on the context in which they are used. The fact is you have to choose the right vehicle for the job at hand. This is also true of RIA platforms.

Let say you have to enrich the user experience of a commercial shopping site like Amazon.com or The Gap. You are probably going to use something fairly lightweight like Ajax. On the other hand, if you want to provide a beautiful animation for Disney you’ll use Flex or Silverlight, not Ajax. Flex might be good for one site and Silverlight another. Ajax framework “X” here and Ajax framework “Y” there. You get the picture.

My platform of choice is Curl, a RIA platform that started as a DARPA funded research project at MIT more than a decade ago. As a RIA platform Curl is very mature and extremely powerful, but it’s not appropriate for all use cases. For example, I wouldn’t build a mass consumer web site with Curl because the Curl runtime is not very common. I would use Ajax or Flex instead. At the same time I wouldn’t build a processing intensive data visualization tool or an advanced product configuration interface (think thousands of parts) using Ajax or Flex either. I would use Curl.

Curl is a powerhouse; it is the Batmobile of the RIA platforms. But its most appropriate for enterprise and scientific computing - its not always the best choice for mass consumer applications. For mass consumer applications I would choose Flex, Silverlight or Ajax - these are the Lamborghinis and Suburbans of the RIA platforms. Flex, Silverlight and Ajax are best suited, in my opinion, for every day use (Suburban) or for glitz and glam (Lamborghini), not for mission critical industrial strength jobs (Batmobile). For mission critical industrial strength jobs that require intensive processing and the ability to handle huge data sets I choose Curl.

When you choose a RIA platform you have to consider many things and in many cases Ajax, Flash/Flex, or Silverlight will do the job nicely. But there are occasions when you need something much more powerful and that’s when you should take a serious look at Curl. Don’t drive the Batmobile to work and don’t drive the Suburban into a battle with evil. Use the right platform for the job.

0 Comments 0 References Permalink
0

2009: The Year of Enterprise RIA

Posted by RMH Jul 14, 2008

Jeremy Geelan of Sys-Con just published a great interview with Jnan Dash the Chief Strategy Officer at Curl. It provides insights into why 2009 will the be year of Enterprise RIA as well as providing insights on why Curl is a better enterprise solution and what organizations need to do to get Enterprise 2.0 - ability.

Jnan Dash is one of those guys who know everyone, sits on multiple corporate boards, has been in IT for over 30 years, and has worked on some of the seminal technologies in our industry. You can learn more about Jnan here and read the interview here.

0 Comments 0 References Permalink
0

Curl - a gentle slope language.

Posted by Kamal Jul 13, 2008

I just added an example in our resource center that shows that Curl is a gentle slope language. It is a markup, procedural, scripting and an object oriented language.

To demonstarte it I choose to draw a UPC bar code. Note that in the code I have used flowing text, markup, procedures and objects. This example shows how these things can all be done so seamlessly in Curl.

I have implemented the UPC bar code using two techniques. The first technique uses Rule objects to draw the bars of the bar code. The second technique is more efficient but needs more expertise. It uses the rendering APIs to render the bars of the bar code.

Example: Gentle Slope.


0 Comments 0 References Permalink
0

I just finished listening to RedMonk's weekly PodCast on RIA. Our own Richard Monson-Haefel participated along with Ryan Stewart of Adobe.

Richard did a great job answering many questions including comments on Curl's origin as an MIT Research Project before the start of this decade. Curl Inc., the commercial company, brought out its first product back in 2002 during the difficult time of dot-com bust. Subsequently the Japanese company SCS (Sumisho Computer Systems) acquired it back in 2004 and stayed focused in the Japanese market for 3 years. The result was rapid growth there in several global enterprises (with house-hold names) jumping into the enterprise RIA solution far ahead of their US counterparts.

To a question on an application example, Richard mentioned the deployment at Paisley (Heatmaps) and also at a SaaS delivery of a construction-grade glass company in Japan. The discussion also gets into the need for client-side compilation, specific needs for the enterprise over the consumer kind of applications, etc.

Do listen to it when you get a chance. It also covers general trends in RIA.


0 Comments 0 References Permalink
3

This is my first blog, ever, and I hope that this will just be my first step in the world of blogging with many more to follow.

These are interesting times. The world seems to be moving from the desktop base applications to the Rich Internet Applications by taking the advantage of one of the greatest happenings of our life time, the Internet. A lot of folks are trying to build technologies to make it easier to write applications for the internet. Some of the technologies that immediately come to my mind are Curl, Adobe Flex/Air, Silverlight and REBOL. Each of these technologies are improving by day, and because of the competition they bring in, they are helping each other to be more and more powerful.

Here I am not going to compare these technologies. To be fair, I cannot. I have very superficial knowledge of these except for Curl. I have been associated with Curl since the year 2000 (remember the era of Y2K).

To make a Technology easy to use one must have tools around that technology. If you are developing using Curl then you must know about these tools. I will not go in details as there is already a lot of documentation about these.

1. IDE
- Curl has its own Editor and a powerful Debugger.

Although you can use any text editor to write Curl applications it is not recommended. You miss on syntax highlighting, auto completion, and many, many features that the Curl IDE provides you to write code.

Since you can write your entire client side application using the Curl platform, you can debug each bit of it. That is the best thing I like about using one language to write an entire application. It would be a nightmare to debug it if I had to use other technologies like HTML, JAVA etc. Then the best you could do would be to debug pieces of it only. The same thing is true when doing graphical inspection, profiling, testing, etc.

The IDE also provides you with extensive help. You will find that the Curl help system is very interactive. You can change the code in the example box and hit the "Execute" button and you can immediately see the changes. You do not have to copy these examples to a file and then run it.

In future Curl is going to provide a plugin for Eclipse (it is in Beta stages now) with a lot of features that the current IDE does not have, like error highlighting when writing the code.

2. Graphical Inspector.

If you run a Curl applet, you can do Ctrl+Right click to bring up a context menu. There you can select the "Graphical Hierarchy ..." menu item. This is a very useful tool. Note that this tools lets you inspect the way the graphical objects are arranged. It is a great tool to help you debug and fix a problem and understand how the Applications layout was arranged. Apart from showing the graphical hierarchy, it lets you inspect and change various properties of a Graphic. You can trace the origin of a Graphic and or the height and width preferences and the actual height and width that was give to them by the layout system. It could help you figure out a layout issue.

3. Class Browser.

It lets you browse, navigate, or visualize the class hierarchy.

4. Coverage Viewer.

When ever we write applications, we also write tests against it to make sure that our application works as expected and any future changes to it can help us avoid regression. But how can we be confident about our test suits. Are we testing enough? Coverage tools helps you identify the lines of code that you do not have test cases for.

5. HTTP Monitor.

Helps you investigate the HTTP traffic in your application.

6. Profile Viewer.

Suppose you find that some parts/functionality of your application is taking more time than that you would expect it to take. It will be very difficult if you had to read your code to find that. Curl provides you various ways to profile your application and it also provides you with a UI to analyze the performance data that you collected when doing profiling.

7. VLE (Visual Layout Editor)

It provides you with a visual environment to develop the user interface for your application.

8. Mercury QuickTest professional (QTP) integration.

This facilitates in automated testing.

3 Comments 0 References Permalink
6

Curl announced the first release of the CDK yesterday. This makes the popular SQLite database engine available for use by Curl applets, via the open source Curl Data Kit Project.

It has always made sense to me that rich client applications should be able to enjoy the power of SQL for local data porcessing, so when I became aware the open source SQLite engine early last year, the potential synergy with Curl was clear. SQL is the classic example of a domain specific language, and SQLite is a profoundly impressive implementation of its essence as a lightweight, portable, open source library.

While we're often inclined here towards "Curl all the way down" solutions, because of the power and coherence of the Curl language and platform, it usually makes sense to avoid reinventing the wheel. When useful functionality is available as a library for the host platform, the Curl External Libraries API can be used to "internalize" its functionality as a Curl class, and this was the approach taken with SQLite for the CDK.

This first CDK release exposes most of the SQLite API to Curl, including both the fundamental database and statement functionality, and the extension points including attached databases, notification, progress, authorization, and function definition. It also is fully integrated with the Curl Data Management and Display, so standard Curl techniques for presentation and manipulation of data can be used.

I hope the CDK proves to be useful as the basis for local data storage for Curl applications. There's a wide range of practices (and opinions) about how to bridge the object oriented and relational paradigms, so it will be interesting to see how the demands of those applications drive future CDK product evolution. Please download the CDK, try it out, and let us know what you think.

The focus for Curl Data Kit release 1.0 was to bring the power of SQL to Curl applications. We're looking forward to future CDK releases making further progress for Curl data integration.

6 Comments 0 References Permalink
2

David Kranz the Father of Curl

Posted by RMH Jul 2, 2008

Dr. Dobb's - one of the most esteemed technical publications - just published an interview with our very own David Kranz the Father of Curl. The article asks David: What is the Architect's Role?

David is a great guy and like all founding fathers and mothers (e.g. James Gosling, Larry Wall, Dennis Ritchie, Grace Hopper) he is at once brilliant and humble. He'll be irritated that I called him "brilliant" and he will never admit to being the "Father of Curl" but he is both in my opinion. David was pivotal in the creation of Curl along with Michael Detouzos and Steve Ward and has sheparded its development over the course of more than a decade. As a result Curl is the most powerful RIA platform available today.


Check out the short interview with David Kranz at Dr. Dobb's. It's a great read!

2 Comments 0 References Permalink
7

Paisley, a Curl customer, presented at the Burton Group's annual Catalyst conference yesterday to a large audience.

Prior to that presentation, Burton Group analyst Kirk Knoernschild had a session on the new concept of a "Fit Client" - a combination of the qualities of the thick client (Client-Server)) and the thin client (HTML/HTTP). He enumerated the advantages of both - thick clients brought rich user interface, heavy processing, and stateful applications; and thin clients brought broad reach, high adoption, wide distribution, interoperability, and good management. The "Fit client" encompasses all these characteristics, may not be to the fullest extent to start with. But characteristics like rich UXP (user experience), stateful applications, online/offline, OS integration, central management, and ubiquity will be the hallmark for fit clients.

Kirk further showed a comparison of available platforms under the title "Next Generation UXP - The Enterprise". He compared seven platforms under five categories (offline, browser-free, cross-platform, desktop interface, and mobility). The seven platforms were - Adobe AIR, Silverlight, Java FX, Google Gears, Curl, Slingshot, and Mozilla Prism. Curl got the best score of all with "Yes" in four out of five categories except in mobility. For example, Silverlight scored poorly. Adobe AIR came next to Curl with Linux support in alpha level. Java FX from Sun had "promised" under each category which brought a lot of laughter from the audience. Google Gears, for example, can not run outside the browser, nor does it have many desktop properties.

Jay Dorenkamp, CTO of Paisley, presented an actual deployment example of RIA using Curl. He explained how they migrated a Lotus Notes-based audit application to the RIA using the Curl's capabilities to develop rich user experience via heatmaps. He showed examples of heatmaps and how that has become a distinguishing feature of their product to win many customers over last 4 years. He also said that their SaaS offering since last year is getting rapid market acceptance. Curl is delivered as an underlying platform technology in their application, quite invisible to the end customer.


His example was a good follow-up to the thesis of the "Fit Client" for enterprise RIA.

7 Comments 0 References Permalink