30 September 2011

Wow! What a wild ride the last few years! Digging into my old web presence I found this blog. I haven't used it since 2008, and I'm surprised to see it is still here. Then, I was involved in Semantic Web solutions; since then, I refocused on realtime web solutions which are also amenable to the Cloud.

The last few years have been a wild ride technology-wise and I have an updated perspective on the web...nothing earth shattering or paradigm shifting if you already know this stuff...here is a high-level summary:

  • Microformats are a very good thing; the tactical, practical semantic web (lower case)
  • JavaScript is a wonderful programming language, in spite of it being forced into the HTML DOM
  • jQuery is an amazing and useful framework.
  • REST is all you need for distributed web architectures (sure, there are a few more foundational standards)
  • Realtime web is viable, but not well-known in terms of value and technologies to most mid-large size organizations who stick with their big name, high cost technology solution providers and bloatware.
  • Realtime web solutoins can be designed to use a small set of common standards and wide range of open source software.
  • Enterprise architecture - where's the value realization? For those who have embarked on enterprise architecture initiatives, have large teams of enterprise architects with all the necessary certifications (and/or consultants too) have you seen real ROI? Have you broken even? Are you even tracking this?
  • WOA > SOA
  • Artificial Intelligence and Knowledge Engineering provide implicit value but don't sell well if stated explicitly and directly.  One needs to use more popular buzzwords and euphemisms.
Going forward, I will focus on my experience and findings regarding WOA and realtime web architectures, designs, technologies, web standards, as well as using the same for server-side with mobile and desktop clients (web, native); JavaScript and related frameworks, server-side JavaScript. Of course, I will continue to ask for information on enterprise architecture value realization and ROI.

Thanks for reading!
Siorc

28 July 2008

Semantic Web Open Source Software Hole?

If you have been working or playing with any of the open source software (OSS) efforts that implement the W3C standards, you may have noticed there is a major hole: thread safety and concurrency! Most of the OSS software is very good for learning, experimenting or creating single user solutions, but beyond that, you are out of luck.

That is, if you want to use semantic OSS libraries or code, you have to provide the multi-threading support. Impossible? No, of course not, but to do so, you have to provide a threadsafe / concurrent environment or get the OSS source code and rewrite it. Neither of these options are appealing. This is work, a means to an end, and its extra. If you want to provide an OSS-based semantic solution on a website where there is a possibility of two or more concurrent users ;) you will need to do some work.

Of course, buying a commercial product is an option if you can afford it, and are willing to work at the vendor's release pace and no access to source code, etc., that's fine...but then, you aren't using OSS now either.

If you are going to provide open source software for semantics, or just about anything else, and you want your software to become popular and enjoy widespread use in the "real world" - you need to provide thread safety, concurrency and even consider multi-user environments (e.g., like a web server!). If not, then your OSS will not likely see much use or notice.

I think the main reason for the slow uptake of semantic technology (and some other advanced technologies) on the web is not complexity, standards or usefulness of the concept, but rather the state (or rather the lack of state management / thread safety and concurrency) of Semantic Technology OSS and the cost of commercial semantic technology.

Its time many OSS projects recognize the realities of software for the web: multi-user environment support is a good place to start.

What do you think?

10 January 2008

REBOL 3, where art thou?

Nearly a year since I blogged about my anticipation of REBOL 3 and its imminent release, and I'm still waiting. Anyone else waiting too? The latest status update was last October. Now the reason things "appear" to be so quiet on REBOL 3 is simple. Since I'm not an active participant in the development of REBOL 3, I don't have access to the information flow. This cuts down the noise the actual, active developers need to deal with, and the promise of new, open AltME worlds once 3 is released all makes sense.

As I was waiting looking in from the outside, I took a quick look around the REBOL sites and found (from here) the alpha is available. (scroll to the bottom of the blog entry to get the link). Kudos to the REBOL 3 team! (and many thanks too!)

04 January 2008

Sun's Lively Kernel - Old Tech Refresh

Sun ( I used to work there for many years) has a Labs project called Lively Kernel which builds on old OO technology that is very advanced compared to much of what is out there today. The heritage is Self, Morphic and Squeak. Self is one of the best unknown languages ever....from Sun Labs who has taken this early 80's language and updated it a few times this century.  Lively Kernel takes these advanced OO concepts and blends them with JavaScript for a very rich internet Web 2.0 solution.

Self is a prototype-based with traits language. Very different.  Follow the Self link above for more info on the language and actually download it (if you don't have a Mac OS X or Solaris SPARC(tm) machine, oh well, but you can read about it. If you are a smalltalker or squeaker, it will be interesting for you!)

It is great to see these concepts refreshed for the Web, where hopefully many developers will find value for the mainstream.

Native Web Apps

Here is an example of taking Web Apps native on the Mac. Its called Fluid. It uses a concept called Site Specific Browsers (SSBs) to run web apps as separate desktop apps. A bit of an inverse to what I was describing in my last blog entry. It requires Leopard which I have not had a chance to migrate to :(  So at least I can take my Web apps native, now I need a tool or framework to make lightweight native apps that work like Web Apps!

Another interesting project that I have used in real life (and been following for a long time) is for Java (the .Net version is lagging), is Naked Objects.  Your domain model objects (POJOs) are reflected to generate the UI which is user customizable. The Model (that contains behavior) is used to generate the View and Control. Works great for internal apps for knowledge workers that know their domain. You can easily switch from client app to web app. It has come a long way. Very RAD! A good framework to have in your Java toolbox.

Rich Internet Applications: They're Great! But Not Enough

The Rush to the Web is really amazing. Google Apps, gadgets, Yahoo pipes, and a plethora of RIA (Rich Internet Apps) technologies are making great strides in making the Web experience as rich and powerful as native, local applications. This is great if you live in technology metro-centers where you always have a connection. Without a connection, you are out of luck. There are a few people out there making the Web experience work offline...which begs the question: If I'm working offline, why am I using Web apps? There are many good reasons to do this, for me the most important is seamless user experience: there is little visible difference from working online vs. offline other than the obvious lack of connection.

Still, there is the contrarian curmudgeon in me that says there is something amiss with this. And, as a P2P practitioner there is another model. Smart apps for the local machine / OS...or Java, etc., if you want cross platform. Why not use the power of the local application environment with all the look and feel comfort of the local OS not to mention the computing power of the local machine. I have a tough time making this case for Windows, but it certainly works for UNIX, Linux, BSD and most especially for the Mac. I mean, I paid top dollar for the Mac experience and now I'm limited to what I can run in Safari? Not enough, thanks.

My Macs, combined with a .Mac account provide what I need and want to use. What I want is an easy way (dev tool) to mash-up (and consume, process, apply logic, etc.) data from various sources across the Web and my local machine / machines on network (ala Bonjour) using an easy-to-create native UI toolset for Mac OS X. 

The closest thing I've found to gather the data is RSSBus Desktop. Unfortunately, it is .Net centric. It also doesn't offer a native UI builder either, which is what I want...for the Mac.

A prime example of a rich local application that works connected or not is iTunes. Many Widgets in OS X work the same way. I can build my own special client-side apps using Xcode but that is more heavyweight ( a real programming IDE ) than what I want and need for simple apps. So, how do you build local client UI applications for Mac OS X without Xcode that can mashup data sources using a lightweight Web 2.0 toolset approach? If you know of any tools (preferably open source!) please let me know!

Web 2.0 web-based rich Internet applications hosted on remote servers are fine and valuable but I also want something richer and more native to my Mac that takes advantage of my investment in my local machines. I want it all!

11 May 2007

Mashed up data (sounds like mashed potato)

Data is a necessary piece of nearly every software solution (I'm sure we can all think of exceptions, but there is data there too). Web 2.0 via mashups makes data integration from various sources relatively easy. Applying the MVC pattern to Web 2.0 we have view and control provided by Flex, AJAX / JavaScript / wikis / feed readers / browser, etc. and the model JSON or just raw data in syndication format. The formal nuances of data, its structure and relations, etc. are not the focus of mashups but rather pulling out relevant information fragments from various sources into a new whole (aggregation, composition, integration, etc.) creates a new information model, that requires new controllers and new views (unless you can reuse those from elsewhere too, but by and large you are pulling in data, aggregating and defining a new format, contollers and views. That's it. So why do IT departments seem to make it soooooo difficult? Job security and FUD.

Web 2.0 is, and provides, RAD (Rapid Application Development) for the Web. (RAD came out of the client server era, and in many IT shops today the term or concept are never used due to negative connotations and associations of an historic nature). RAD was cool and good back in the day as it empowered less skilled application developers to be more productive...today Web 2.0 technologies allow both developers and non-developers to create powerful, compelling softwware solutions with minimal effort. Minimal effort means a faster time to market as well as lower entry costs, redo, scrap, do over, change all become more cost effective and viable (and faster too).

To see how effective web 2.0 can be for you here are few cool tools that I find valuable. Note, I am not affiliated with these companies, developers or communities in any formal business or even friendship manner; I simply like what they have to offer and I think you will too:

First, for any IT people reading this, you should go have a look at ActiveGrid. I blogged about AG before, and will do so again in the future. If I was in charge of a small IT shop (or a team in a large IT organization) that needed to provided higher value, reduced costs and enable greater agility, this is where I would start. I'd build and deploy new apps on AG, retool my IT employees and start a migration plan for existing applications. I'd also start with the open source version until I was nearly ready to go to production and would give careful consideration to a commercial license based on the information available to me. ActiveGrid would be a foundational technology platform upon which I would rebuild my IT infrastructure. Period, end of story.

These other products and technologies could be leveraged by IT too, but are more focused on business people that need to get business done rather than IT who are in the business of supporting business, i.e., they are more usable for non-IT business users.

RSSBus. Just go and have a look, they do a great job of splainin' (explaining) what they do. Basically, you take data from all kinds of sources, aggregate it and create new scripts to act on it, and you can do this recursivley; building up your own catalog of feeds and scripts and using those provided by others. Of course, you are encouraged to submit yours for use by others. Great way to pull all the data you need in one place with a very easy toolset. Kudos to the RSSBus team! I will have more to say about this technology in the future too.

You can combine RSSBus and ActiveGrid in many complimentary ways.

Another technology I wanted to mention is OpenKapow. They claim "mashups in minutes" and its very accurate and true.

There are also Yahoo Pipes and Google Gadgets.

There are some overlaps in these and complimentary combinations too. Please let me know if you are using any of these and where, or if you are using other Web 2.0 tools, I'd like to learn about what else is out there. These are the tools that I would look to use if I was in charge of IT direction at any company. I'm sure there are many others...what they all have in common is simplicity and utilization of core technologies available to everyone on the Web.

Now have a look at what some IT industry heavyweights are proposing for business application development: big, complex, costly and heavyweight solutions that are so last century. I noticed that many of the products of these large vendors are consistent with their own size and complexity, the bigger the vendor the more complex their solution strategy it seems. There is an easier, faster and cheaper way to provide technology solutions to business, its Web 2.0. So easy its almost magic ;)

Thanks for reading