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.
04 January 2008
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.
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.
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!
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
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
30 April 2007
The Complexity Proponents Run IT
Its been a busy two months since last I blogged here. I've been working with several Fortune 100 companies as usual (yes well within the F 1000) and the complexity mantra was reinforced again. Why is it when faced with complexity the response is often more complexity? Complexity to fight complexity?! I confess that I don't get it, there may be some organizational psychology or sociology that can explain it, to me its just plain idiocy.
The challenges and problems facing large IT shops are difficult, varied and complex but not insurmountable, unless you don't have an organization equiped to handle it. Unfortunately, as is often the case, most organizations are not prepared to change their thoughts and approach. They will choose complexity. Adding more compexity to meet these issues is not the solution. Most IT solutions are needlessly complex, insufficient for their purpose, difficult to change, manage: overengineered. Instead of overengineering, design in cost effective change enablement and empower end users. (this will be a future blog topic I'm sure!)
There are simple approaches and technologiess that can help, but those aren't used. Instead, the enterprise IT tool of choice is SOA. Complex, standards bound, political, expensive...you name it, it is complexity to solve complexity. Now, I think SOA is good, valid approach however in the hands of the typical enterprise IT shop it quickly gets mired in politics and complexity. Heterogenous IT shops with their various factions, will dilute, fragment and fracture SOA to the point where it will fail to deliver. In practice, SOA's core simplicity is lost, and its complexity becomes the sustaining driver. Each iteration within the political and architectural circles of the enterprise makes the situation worse.
Meanwhile, there's Web 2.0 and simplicity available. It is so comparatively easy in fact, I think that is why it isn't going to be adopted by many IT shops. If its that easy, who needs all these cost-center employees then? IT departments want to simplify but they can't actually bring themselves to actually do it. If and when an IT shop actually does apply easy-to-use technologies successfully, they will be in a position to out manuevre their competition.
Where do you start? Get a Web 2.0 team, from outside, and have them perform a bake-off with your IT department using their tools and technologies. When the Web 2.0 team hits it out of the park, ask your IT department what their problems are, and listen for the excuses. None are valid, it is purely self serving, self protecting doubletalk. They used complexity to address complexity, and that approach failed outright, cost more and underdelivered or some other partial success story.
Is Web 2.0 perfect? Absolutely not, but its premise is based on simplicity and high value. Used with sound (not old school complexity) architectural principles and design aesthetics that focus on simplicity of form and function, Web 2.0 will be better, cheaper and faster than anything the compexity proponents can provide.
How well did your organization adapt to and adopt Web technology (aka Web 1.0)? How about CORBA and/or DCOM? OO? If you didn't get the value you expected from these, you will likely not get the value from SOA you anticipate. What to do?
Go Web 2.0, of course! You need the right team (beware, they could be complexity mavens in disguise!), that can effectivel leverage the tools and technologies that are available in a blend of art, science and engineering simplicity and economy.
Well, what's to worry? Your organization won't do it (no real incentive) and your competitors won't do it either, so you'll all use the status quo vendors and technologies, employ high-cost complex technologies and IT experts and complain or worse offshore to lower the costs (and increase complexity again). Remember:
"Insanity: doing the same thing over and over again and expecting different results."
- Albert Einstein
So, is your IT approach insane? If you are a large enterprise IT shop, the answer is probably Yes!
The challenges and problems facing large IT shops are difficult, varied and complex but not insurmountable, unless you don't have an organization equiped to handle it. Unfortunately, as is often the case, most organizations are not prepared to change their thoughts and approach. They will choose complexity. Adding more compexity to meet these issues is not the solution. Most IT solutions are needlessly complex, insufficient for their purpose, difficult to change, manage: overengineered. Instead of overengineering, design in cost effective change enablement and empower end users. (this will be a future blog topic I'm sure!)
There are simple approaches and technologiess that can help, but those aren't used. Instead, the enterprise IT tool of choice is SOA. Complex, standards bound, political, expensive...you name it, it is complexity to solve complexity. Now, I think SOA is good, valid approach however in the hands of the typical enterprise IT shop it quickly gets mired in politics and complexity. Heterogenous IT shops with their various factions, will dilute, fragment and fracture SOA to the point where it will fail to deliver. In practice, SOA's core simplicity is lost, and its complexity becomes the sustaining driver. Each iteration within the political and architectural circles of the enterprise makes the situation worse.
Meanwhile, there's Web 2.0 and simplicity available. It is so comparatively easy in fact, I think that is why it isn't going to be adopted by many IT shops. If its that easy, who needs all these cost-center employees then? IT departments want to simplify but they can't actually bring themselves to actually do it. If and when an IT shop actually does apply easy-to-use technologies successfully, they will be in a position to out manuevre their competition.
Where do you start? Get a Web 2.0 team, from outside, and have them perform a bake-off with your IT department using their tools and technologies. When the Web 2.0 team hits it out of the park, ask your IT department what their problems are, and listen for the excuses. None are valid, it is purely self serving, self protecting doubletalk. They used complexity to address complexity, and that approach failed outright, cost more and underdelivered or some other partial success story.
Is Web 2.0 perfect? Absolutely not, but its premise is based on simplicity and high value. Used with sound (not old school complexity) architectural principles and design aesthetics that focus on simplicity of form and function, Web 2.0 will be better, cheaper and faster than anything the compexity proponents can provide.
How well did your organization adapt to and adopt Web technology (aka Web 1.0)? How about CORBA and/or DCOM? OO? If you didn't get the value you expected from these, you will likely not get the value from SOA you anticipate. What to do?
Go Web 2.0, of course! You need the right team (beware, they could be complexity mavens in disguise!), that can effectivel leverage the tools and technologies that are available in a blend of art, science and engineering simplicity and economy.
Well, what's to worry? Your organization won't do it (no real incentive) and your competitors won't do it either, so you'll all use the status quo vendors and technologies, employ high-cost complex technologies and IT experts and complain or worse offshore to lower the costs (and increase complexity again). Remember:
"Insanity: doing the same thing over and over again and expecting different results."
- Albert Einstein
So, is your IT approach insane? If you are a large enterprise IT shop, the answer is probably Yes!
07 February 2007
REBOL 3.0
It looks like REBOL 3.0 will be here soon!
First, there is a high-level component architecture overview document here...
... a list of 2007 priorities here...
...and if you follow the link to the REBOL Developer Conference, the program states "Introducing REBOL 3.0" by Carl Sasserath.
Can we hope to see REBOL 3.0 released and available this summer? I can't wait!
First, there is a high-level component architecture overview document here...
... a list of 2007 priorities here...
...and if you follow the link to the REBOL Developer Conference, the program states "Introducing REBOL 3.0" by Carl Sasserath.
Can we hope to see REBOL 3.0 released and available this summer? I can't wait!
Labels:
Internet,
lightweight scripting,
programming language,
REBOL,
technology
Good for you, not for me
Now I'm a big Steve Jobs and Apple fan, but I'm not a fan of something that appears to be hypocritical. I ceratainly don't like "Hollywood" and the rest of the entertainment industry at all, but that 's outside this topic.
Steve's recent open letter on music calling for copyright holder to eliminate DRM is interesting. So Steve, the record companies should eliminate DRM and allow music to be shared and copied however consumers wish? How about Apple doing that with Mac OS X Leopard, let consumers install your OS on any machine they want and as many machines as they want, or even share their copy of your OS with their friends and families? Sounds like "do as I say, not as I do".
I have a few Mac's, can I go and buy one copy of Leopard and install it on all of my Macs? I have a few Intel boxes running Linux, can I install Leopard on them too, using my one copy? I have friends and family that would also like to run Leopard, should I let them use my single copy that I paid for? Of course not, I'm not allowed to do that. Apple would see that as a breach of contract or violating their ownership rights or something of that sort, that is, it is not legal for me to do so. In fact, even if I purchase a separate copy for each machine I own, it is illegal for me to install Mac OS X on a non-Apple machine.
Tell us why should any digital content owner (movie studios, music labels and other publishers, etc.) allow someone to buy their content once and copy it anywhere and everywhere, to any / as may devices (e.g., computers, mp3 players, phones, PDAs, etc.) and share it with anyone they wish?
When Apple relaxes or eliminates its software digital rights, its licensing and usage requirements and constraints on its software (not just the OS), then they can take the "moral" high-ground position and ask others to do the same, not before.
So Steve, when do you plan to allow consumers unlimited copy and unlimited use digital rights for each single copy of Apple software that they purchase? When will consumers be allowed to install Mac OS X on non-Apple hardware?
Steve's recent open letter on music calling for copyright holder to eliminate DRM is interesting. So Steve, the record companies should eliminate DRM and allow music to be shared and copied however consumers wish? How about Apple doing that with Mac OS X Leopard, let consumers install your OS on any machine they want and as many machines as they want, or even share their copy of your OS with their friends and families? Sounds like "do as I say, not as I do".
I have a few Mac's, can I go and buy one copy of Leopard and install it on all of my Macs? I have a few Intel boxes running Linux, can I install Leopard on them too, using my one copy? I have friends and family that would also like to run Leopard, should I let them use my single copy that I paid for? Of course not, I'm not allowed to do that. Apple would see that as a breach of contract or violating their ownership rights or something of that sort, that is, it is not legal for me to do so. In fact, even if I purchase a separate copy for each machine I own, it is illegal for me to install Mac OS X on a non-Apple machine.
Tell us why should any digital content owner (movie studios, music labels and other publishers, etc.) allow someone to buy their content once and copy it anywhere and everywhere, to any / as may devices (e.g., computers, mp3 players, phones, PDAs, etc.) and share it with anyone they wish?
When Apple relaxes or eliminates its software digital rights, its licensing and usage requirements and constraints on its software (not just the OS), then they can take the "moral" high-ground position and ask others to do the same, not before.
So Steve, when do you plan to allow consumers unlimited copy and unlimited use digital rights for each single copy of Apple software that they purchase? When will consumers be allowed to install Mac OS X on non-Apple hardware?
Subscribe to:
Posts (Atom)