Monday, March 05, 2012

Smart phone is hot, what about smart car?

Mobile is too hot to talking about next?


The mobile computing is boiling hot, white hot at this moment.  With Apple's capitalization surges over $500 billion, all the companies in technology are scramble to catch the mobile frenzy train. Products are debuting the market almost in a daily basis. It is an industry phenomenon, much like the DOT COM bubble in 2000, and house market in 2006.

Given the mobile computing is still churning under the boiling surface, then is it too early to talking about the next big thing in technology?

For mobile, there is pretty much a settled scene, with Apple leading with devices update each year. It is hard to imagine anything "revolutionary" as the iPad, iPhone, iPod trios.  It is now pretty much a routine job of Apple to renew is devices in a yearly basis, much like the PC industry does in the past 30 years. Further integration might happen in the living room, with the more advanced Apple TV like devices play within the OLED TV itself.

Other than that, where should we look for the excitement?

What's next big hit after mobile?


I saw the Car industry. For a device that people spend at least 20% or more of their  wake time, car is not as technologically advanced as it should be. At this moment, the technology within a car is very shabby, with Luxury cars carry such "boast-worthy" technology as Blue Tooth, Reverse camera, and DVD player. All these are far from integrated.

A smart car - really smart


It is time that cars getting a technology make up. With the latest mobile computing capability, it is now a non-luxury to have a car doing the following. With these functions, a car would be a killer application, and you can be assured to sell lots of cars!!

0. entertainment - sync and play my music, video etc from the car.
00. tracking where is my car from my iPhone (auto-reporting position of car)
1. up-to the minute traffic with GPS recommendations (android system?)
2. my trip information integration with Cloud and Google map
3. information of my surroundings, a wiki-like information mesh up based on where I am
4. alert of empty gas tank, together with when and where to fill the "best" tank of gas. (cheap, safe)
5. trip plan - plan ahead of my driving, and with my car monitor my plan progress.
6. car recommend to me Hotel, food, and rest areas according to my trip plan
7. alert of car maintenance
8. alert of my driving context: cross lane, too close to car, too fast, too slow, etc.
9. finger print based entry and start systems.
10. automatic settings based on driver height and stored in memory system.
11. new telecom service: 2sim -> 1phone#   integrated phone service, this requires that telecom company allow user to have more than two lines for one single phone number?



A computer with mobile OS (android?) as the Brain of the smart car
One way to make the car smart, is to install a brain to the car. This requires that the car not only has an on-board computer with the telecom service, but also that the software OS has to be retrofitted for the smart car usage.
1. wired to the steering wheel, door, entertainment system and lights
2. GPS
3. touch screen
4. telecom services
5. android based car OS
6. provide bluetooth
7. provide 802.11 links for in-car communication
8. siri or digital assistant on-board for interaction

With these features, the car will be truly smart and ready to drive!


A smart phone as the "Big Brain" of the Smart Car
Another "cheap" way is having the phone talking with the car computer, and let iPhone acting as the brain of the car.  And a car is just an app on the iPhone. There is great benefits for this.
1. take advantage of mature mobile devices technology
2. simplifying the architecture, and reduce cost to build a car.
3. the phone is mobile, so you save the potential telecom services cost, as you already paid your phone
4. conveniently locating where is my car?

The draw back is that the pairing of car and the iPhone may not have fast enough link. Nowadays, the blue-tooth speed is top at 700Kb/s. This means some application requires an extra 802.11 link on-board. Another issue is that different car may have different interface, but I am anticipating that each type of car has at least two apps available for iPhone and Android.



Tuesday, February 08, 2011

start/stop IdM components

OID / OVID / http: opmnctl startall

ODS - wls_ods1 directory services
OIdM - wls_soa1 Id manager
OAM - wls_oam1/2 access manager
OAAM - wls_oaam1/2 adaptive access manager
OIF - wls_oif1/2 id federation


Expanding the cluster?!

/u01/app/oracle/product/fmw/idm/bin/config.sh
> copy applications, set cluster/etc.

Monday, February 07, 2011

"Migrating WLS Policy and Credential Stores"


  • From IDMHOST1, start the wlst shell from the ORACLE_COMMON_HOME/common/bin directory. For example:

    ./wlst.sh 
  • Connect to the WebLogic Administration Server using the wlst connect command shown below.

    connect('AdminUser',"AdminUserPassword",t3://hostname:port') 

    For example:

    connect("weblogic,"welcome1","t3://idmhost-vip.mycompany.com:7001") 
  • Run the reassociateSecurityStore command as shown below:

    Syntax:

    reassociateSecurityStore(domain="domainName",admin="cn=orcladmin", password="orclPassword",ldapurl="ldap://LDAPHOST:LDAPPORT",servertype="OID", jpsroot="cn=jpsRootContainer")
  • Friday, January 07, 2011

    Digital media consumption and storage

    Where do store my media so I can
    1. access anywhere
    2. anytime
    3. secure
    4. share
    5. low cost
    6. speedy!
    7. easy!

    How can I consume my media scattered within Cloud so that
    1. locate
    2. search
    3. format
    4. stream
    5. seamlessly
    6. to my TV, handset, computer?

    Friday, August 27, 2010

    intuitive - future computing...

    If you think of lenovo thinkpad  or  apple products, you see that people pay premium for the last mile to gain intuitive.

    For thinkpad:  the thinkvantage is making finger-print so useful. My experience of FP with Dell is so horrible, that I almost think that it is a bad idea. Thank god that Lenovo changed the wrong perception.

    Dell:  finger-print for login only. It takes almost dozen steps before it is setup for fingerprint login. Then the whole process is so awkward, that I hate my login screen. Not mention that it takes so long to login with finger print, almost totally defeat the purpose of FP - simple, convenient and speed-up process.....

    With Lenovo, you just need to:
    1. run fingerprint from ThinkVantage (button);  done with fingerprint!!
    2. a client security solution created a hard-ware supported "password vault".
    if some 3rd party messed with your ThinkVantage, re-install TPM

    Monday, September 21, 2009

    smartphone market 5/2009

    - The iPhone OS had 8% of the smartphone market, but generated 43% of mobile Web requests and 65 percent of HTML usage.

    - The Android OS share of the smartphone market was less than 1%, but generated 3% of mobile Web requests and 9% of HTML usage.

    - The Symbian OS had 52% of the smartphone market, but generated only 36% of mobile Web usage and 7% of HTML usage.

    - Usage of mobile Web sites greatly out paces usage of HTML sites on smartphones running the Symbian and RIM Operating System (OS).

    - 24% of US requests were made over a Wi-Fi network. The top five Wi-Fi devices in terms of usage were the iPhone, iPod touch, Sony PSP, HTC Dream (G1), and HTC Dash.

    Saturday, September 19, 2009

    Bayeux protocol data structure

    /**/
    /* Bayeux protocol definition version 1.01, in language- */
    /* independent JSON form. */
    /* */
    /* GloriaJW 2008-01-03 */
    /* */
    /* This is a JSON dictionary of all Bayeux structures and their */
    /* possible values, vtypes and rtypes. */
    /* */
    /* The four value types (vtypes) are: */
    /* (1) Single Value from a Fixed list of values (SVF), */
    /* (2) Single Value which is Variable (SVV), */
    /* (3) Multiple Values from a Fixed list of values (MVF), */
    /* (4) Multiple Values which are Variable (MVV) */
    /* */
    /* These vtype fields begin with 'vtype_' and can be used as */
    /* visual aids, or assert() fixed and single/multiple value */
    /* checking. These fields are "advice" fields, not to be passed */
    /* in the bayeux protocol, but ONLY to be used for either */
    /* automated or manual evaluation of field values. */
    /* */
    /* The seven (optional) restriction types (rtypes) are: */
    /* (1) Sent from Client only (CZ) */
    /* (2) Sent from Server only (SZ) */
    /* (3) Sent from Client only, and only upon failure: (CE) */
    /* (4) Sent from Server only, and only upon failure: (SE) */
    /* (5) Sent from Client only, optional: (CO) */
    /* (6) Sent from Server only, optional: (SO) */
    /* (7) Optional in both directions: (BO) */
    /* */
    /* These rtype fields are optional, and only appear when there */
    /* is an applicable restriction on a field. They begin with */
    /* 'rtype_' and can be used as visual aids, or assert() */
    /* client/server and error checking. These fields are "advice" */
    /* fields, not to be passed in the bayeux protocol, but ONLY to */
    /* be used for either automated or manual evaluation of field */
    /* values. */
    /* */
    /**/
    {
    "handshake":{"channel":"/meta/handshake",
    "vtype_channel":"SVF",

    "version":"1.0.1",
    "vtype_version":"SVF",

    "supportedConnectionTypes":["iframe", "flash","callback-polling","long-polling"],
    "vtype_supportedConnectionTypes":"MVF",

    /* response only */
    "clientId":"alphanumeric1234",
    "vtype_clientId":"SVV",
    "rtype_clientId":"SZ",

    /* response only */
    "successful":["true","false"],
    "vtype_successful":"SVF",
    "rtype_successful":"SZ",

    /* failure only, response only */
    "error":[000,"optional error arguments","Some Error String"],
    "vtype_error":"MVV",
    "rtype_error":"SE",

    /* optional */
    "minimumVersion":"1.0",
    "vtype_version":"SVF",
    "rtype_version":"BO",

    /* optional */
    "id":"alphanumeric1234",
    "vtype_id":"SVV",
    "rtype_id":"BO",

    /* optional, response only */
    "authSuccessful":["true","false"],
    "vtype_authSuccessful":"SVF",
    "rtype_authSuccessful":"SO",

    /* optional, response only */
    "advice":{"reconnect":["retry","handshake","none"],
    "vtype_reconect":"SVF",
    "rtype_reconect":"SO",

    "interval":[1000,-1000],
    "vtype_interval":"SVV",
    "rtype_interval":"SO",

    "multipleClients":["true","false"],
    "vtype_multipleClients":"SVF",
    "rtype_multipleClients":"SO",

    "hosts":["SomeHostname","192.168.1.1","localhost","127.0.0.1"],
    "vtype_hosts":"MVV"
    "rtype_hosts":"SO"

    "authenticate":{"authtype":["htpasswd","OpenId"],
    "vtype_authtype":"MVF",
    "rtype_authtype":"SO"
    },

    "guaranteedDelivery":["true","false"],
    "vtype_guaranteedDelivery":"MVF",
    "rtype_guaranteedDelivery":"SO"

    }

    /* optional, client (initiator) only */
    "ext":{"authenticate":{"authtype":["htpasswd","OpenId"],
    "vtype_authtype":"SVF",
    "rtype_authtype":"CO",

    "user":"some user id",
    "vtype_user":"SVV",
    "rtype_user":"CO",

    "password":"youch if clear text!",
    "vtype_password":"SVV",
    "rtype_password":"CO"
    },

    "guaranteedDelivery":["true","false"],
    "vtype_guaranteedDelivery":"SVF",
    "rtype_guaranteedDelivery":"CO"
    }
    },

    "connect":{"channel":"/meta/connect",
    "vtype_channel":"SVF",

    "connectionType":["iframe", "flash","callback-polling","long-polling"],
    "vtype_connectionType":"SVF",

    "clientId":"alphanumeric1234",
    "vtype_clientId":"SVV",

    /* response only */
    "successful":["true","false"],
    "vtype_successful":"SVF",
    "rtype_successful":"SZ",

    /* failure only, response only */
    "error":[000,"optional error arguments","Some Error String"],
    "vtype_error":"MVV",
    "rtype_error":"SE",

    /* optional */
    "id":"alphanumeric1234",
    "vtype_id":"SVV",
    "rtype_id":"BO",

    /* optional, response only */
    "timestamp":"YYYY-MM-DD\thh:mm:ss.ss",
    "vtype_timestamp":"SVV",
    "rtype_timestamp":"SO",

    /* optional, server response only */
    "advice":{"reconnect":["retry","handshake","none"],
    "vtype_reconect":"SVF",
    "rtype_reconect":"SO",

    "interval":[1000,-1000],
    "vtype_interval":"SVV",
    "rtype_inderval":"SO",

    "multipleClients":["true","false"],
    "vtype_multipleClients":"SVF",
    "rtype_multipleClients":"SO",

    "hosts":["SomeHostname","192.168.1.1","localhost","127.0.0.1"],
    "vtype_hosts":"MVV",
    "rtype_hosts":"SO"

    "authenticate":{"authtype":["htpasswd","OpenId"],
    "vtype_authtype":"MVF",
    "rtype_authtype":"SO"
    },

    "guaranteedDelivery":["true","false"],
    "vtype_guaranteedDelivery":"MVF",
    "rtype_guaranteedDelivery":"SO"

    }

    /* optional, client (initiator) only */
    "ext":{"authenticate":{"authtype":["htpasswd","OpenId"],
    "vtype_authtype":"SVF",
    "rtype_authtype":"CO",

    "user":"some user id",
    "vtype_user":"SVV",
    "rtype_user":"CO",

    "password":"youch if clear text!",
    "vtype_password":"SVV",
    "rtype_password":"CO"
    }
    },
    "guaranteedDelivery":["true","false"],
    "vtype_guaranteedDelivery":"SVF",
    "rtype_guaranteedDelivery":"CO"
    },

    "disconnect":{"channel":"/meta/disconnect",
    "vtype_channel":"SVF",

    "clientId":"alphanumeric1234",
    "vtype_clientId":"SVV",

    /* response only */
    "successful":["true","false"],
    "vtype_successful":"SVF",
    "rtype_successful":"SZ",

    /* failure only, response only */
    "error":[000,"optional error arguments","Some Error String"],
    "vtype_error":"MVV",
    "rtype_error":"SE",

    /* optional */
    "id":"alphanumeric1234",
    "vtype_id":"SVV",
    "rtype_id":"BO"

    },

    "subscribe":{"channel":"/meta/subscribe",
    "vtype_channel":"SVF",

    "clientId":"alphanumeric1234",
    "vtype_clientId":"SVV",

    "subscription":["/foo/**","/channel_b","/channel_c/x"],
    "vtype_subscription":"MVV",

    /* optional, response only */
    "timestamp":"YYYY-MM-DD\thh:mm:ss.ss",
    "vtype_timestamp":"SVV",
    "vtype_timestamp":"SO",

    /* response only */
    "successful":["true","false"],
    "vtype_successful":"SVF",
    "rtype_successful":"SZ",

    /* failure only, response only */
    "error":[000,"optional error arguments","Some Error String"],
    "vtype_error":"MVV",
    "rtype_error":"SE",

    /* optional */
    "id":"alphanumeric1234",
    "vtype_id":"SVV",
    "rtype_id":"BO",

    /* optional, server response only */
    "advice":{"reconnect":["retry","handshake","none"],
    "vtype_reconect":"SVF",
    "rtype_reconect":"SO",

    "interval":[1000,-1000],
    "vtype_interval":"SVV",
    "rtype_interval":"SO",

    "multipleClients":["true","false"],
    "vtype_multipleClients":"SVF",
    "rtype_multipleClients":"SO",

    "hosts":["SomeHostname","192.168.1.1","localhost","127.0.0.1"],
    "vtype_hosts":"MVV",
    "rtype_hosts":"SO",


    "authenticate":{"authtype":["htpasswd","OpenId"],
    "vtype_authtype":"MVF"
    "rtype_authtype":"SO"
    },

    "guaranteedDelivery":["true","false"],
    "vtype_guaranteedDelivery":"MVF",
    "rtype_guaranteedDelivery":"SO"
    }

    /* optional, client (initiator) only */
    "ext":{"authenticate":{"authtype":["htpasswd","OpenId"],
    "vtype_authtype":"SVF",
    "rtype_authtype":"CO",

    "user":"some user id",
    "vtype_user":"SVV",
    "rtype_user":"CO",

    "password":"youch if clear text!",
    "vtype_password":"SVV",
    "rtype_password":"CO"
    }
    },
    "guaranteedDelivery":["true","false"],
    "vtype_guaranteedDelivery":"SVF",
    "rtype_guaranteedDelivery":"CO"
    },

    "unsubscribe":{"channel":"/meta/unsubscribe",
    "vtype_channel":"SVF",

    "clientId":"alphanumeric1234",
    "vtype_clientId":"SVV",

    "subscription":["/foo/**","/channel_b","/channel_c/x"],
    "vtype_subscription":"MVV"

    /* response only */
    "successful":["true","false"],
    "vtype_successful":"SVF",
    "rtype_successful":"SZ",

    /* failure only, response only */
    "error":[000,"optional error arguments","Some Error String"],
    "vtype_error":"MVV",
    "rtype_error":"SE",

    /* optional */
    "id":"alphanumeric1234",
    "vtype_id":"SVV",
    "rtype_id":"BO",

    /* optional, server response only */
    "advice":{"reconnect":["retry","handshake","none"],
    "vtype_reconect":"SVF",
    "rtype_reconect":"SO",

    "interval":[1000,-1000],
    "vtype_interval":"SVV",
    "rtype_interval":"SO",

    "multipleClients":["true","false"],
    "vtype_multipleClients":"SVF",
    "rtype_multipleClients":"SO",

    "hosts":["SomeHostname","192.168.1.1","localhost","127.0.0.1"],
    "vtype_hosts":"MVV",
    "rtype_hosts":"SO",

    "authenticate":{"authtype":["htpasswd","OpenId"],
    "vtype_authtype":"MVF",
    "rtype_authtype":"SO"
    },

    "guaranteedDelivery":["true","false"],
    "vtype_guaranteedDelivery":"MVF",
    "rtype_guaranteedDelivery":"SO"

    }

    /* optional, client (initiator) only */
    "ext":{"authenticate":{"authtype":["htpasswd","OpenId"],
    "vtype_authtype":"SVF",
    "rtype_authtype":"CO",

    "user":"some user id",
    "vtype_user":"SVV",
    "rtype_user":"CO",

    "password":"youch if clear text!",
    "vtype_password":"SVV",
    "rtype_password":"CO"
    }
    "guaranteedDelivery":["true","false"],
    "vtype_guaranteedDelivery":"SVF",
    "rtype_guaranteedDelivery":"CO"
    }
    },

    "publish":{"channel":"/some/channel",
    "vtype_channel":"SVV",

    "data":"some JSON dict or raw string",
    "vtype_data":"SVV",

    /* optional */
    "clientId":"alphanumeric1234",
    "vtype_clientId":"SVV",
    "rtype_clientId":"BO",

    /* optional */
    "id":"alphanumeric1234",
    "vtype_id":"SVV",
    "rtype_id":"BO",

    /* optional */
    "ext":{"authenticate":{"authtype":["htpasswd","OpenId"],
    "vtype_authtype":"SVF",
    "rtype_authtype":"BO",

    "user":"some user id",
    "vtype_user":"SVV",
    "rtype_user":"BO",

    "password":"youch if clear text!",
    "vtype_password":"SVV",
    "rtype_password":"BO"
    }

    "guaranteedDelivery":["true","false"],
    "vtype_guaranteedDelivery":"SVF",
    "rtype_guaranteedDelivery":"BO"
    }

    /* response only */
    "successful":["true","false"],
    "vtype_successful":"SVF",
    "rtype_successful":"SZ",

    /* failure only, response only */
    "error":[000,"optional error arguments","Some Error String"],
    "vtype_error":"MVV",
    "rtype_error":"SE"
    },

    "deliver":{"channel":"/some/channel",
    "vtype_channel":"SVV",

    "data":"some JSON dict or raw string",
    "vtype_data":"SVV",

    /* optional */
    "clientId":"alphanumeric1234",
    "vtype_clientId":"SVV",
    "rtype_clientId":"BO",

    /* optional */
    "id":"alphanumeric1234",
    "vtype_id":"SVV",
    "rtype_id":"BO",

    /* optional */
    "advice":{"reconnect":["retry","handshake","none"],
    "vtype_reconect":"SVF",
    "rtype_reconect":"BO",

    "interval":[1000,-1000],
    "vtype_interval":"SVV",
    "rtype_interval":"BO",

    "multipleClients":["true","false"],
    "vtype_multipleClients":"SVF",
    "rtype_multipleClients":"BO",

    "hosts":["SomeHostname","192.168.1.1","localhost","127.0.0.1"],
    "vtype_hosts":"MVV",
    "rtype_hosts":"BO",


    "authenticate":{"authtype":["htpasswd","OpenId"],
    "vtype_authtype":"MVF",
    "rtype_authtype":"BO"
    },

    "guaranteedDelivery":["true","false"],
    "vtype_guaranteedDelivery":"MVF",
    "rtype_guaranteedDelivery":"BO"
    }

    /* optional, client (initiator) only */
    "ext":{"authenticate":{"authtype":["htpasswd","OpenId"],
    "vtype_authtype":"SVF",
    "rtype_authtype":"CO",

    "user":"some user id",
    "vtype_user":"SVV",
    "rtype_user":"CO",

    "password":"youch if clear text!",
    "vtype_password":"SVV",
    "rtype_password":"CO"
    }

    "guaranteedDelivery":["true","false"],
    "vtype_guaranteedDelivery":"SVF",
    "rtype_guaranteedDelivery":"CO"
    },

    /* response only */
    "successful":["true","false"],
    "vtype_successful":"SVF",
    "rtype_successful":"SZ",

    /* failure only, response only */
    "error":[000,"optional error arguments","Some Error String"],
    "vtype_error":"MVV",
    "rtype_error":"SE"
    },

    "lsService":{"channel":"/service/local/ls_tmp", /* an example of a local service */
    "vtype_channel":"SVF",

    "clientId":"alphanumeric1234",
    "vtype_clientId":"SVV",

    /* response only */
    "response":"some potentially long string",
    "vtype_response":"SVV",
    "rtype_response":"SZ",

    /* response only */
    "successful":["true","false"],
    "vtype_successful":"SVF",
    "rtype_successful":"SZ",

    /* failure only, response only */
    "error":[000,"optional error arguments","Some Error String"],
    "vtype_error":"MVV",
    "rtype_error":"SE"

    },

    "urlService":{"channel":"/service/url", /* bayeux_config file endpoints are attached here. */
    "vtype_channel":"SVF",

    "clientId":"alphanumeric1234",
    "vtype_clientId":"SVV",

    /* response only */
    "response":"some potentially long string",
    "vtype_response":"SVV",
    "rtype_response":"SZ",

    /* response only */
    "successful":["true","false"],
    "vtype_successful":"SVF",
    "rtype_successful":"SZ",

    /* failure only, response only */
    "error":[000,"optional error arguments","Some Error String"],
    "vtype_error":"MVV",
    "rtype_error":"SE"

    }
    }

    Monday, September 14, 2009

    wls pubsub server

     IT trends 2010 series (2)
    com.bea.httppubsub.BayeuxMessage

    Develop steps
    1. weblogic.xml library-ref
    2. weblogic-pubsub.xml  (weblogic-pubsub.xsd)

    3. PubSub API for publish, filter, dynamic channel (optional)
      lookup pubsub server & create local client
              publish to channel
              subscribe (listener register)
              filter chain (filter class, config chain)
      APIS:
              com.bea.httppubsub.PubSubServer
              LocalClient
              ClientManager
              MessageFilter
              DeliveredMessageListener
              BayeuxMessage

    4. Add Dojo to jsp/html for publish/subscribe msg.
      //Initialize the Dojo cometd environment
      dojo.io.cometd.init({}, "/context/cometd");
          cometd - matching default pubsub war web.xml

      //Publish a message to a channel
      dojo.io.cometd.publish("/a/channel", "message content");   //publish text msg
      dojo.io.cometd.publish("/a/channel", {"data": "content"}); // JSON object

      //Subscribe to a channe
      dojo.io.cometd.subscribe("/a/channel", null, "onUpdate");

              //JS function for call back
              function onUpdate(message) {
                if (!message.data) {
                  alert("bad message format "+message);
                    return;
                }
                // fetch the data published by other clients
                var data = message.data;
              }
    5. Deploy web-app; pubsub war library  WL_HOME/common/deployable-libraries
    6. Other aspects

      • Persistent Channelsweblogic-pubsub.xml  persistent-client-timeout-secs
      • JMS as provider for cluster support weblogic-pubsub.xml

               t3://localhost:7001
               ConnectionFactoryJNDI
               TopicJNDI
      • Requiring SSL for pub-sub Via web.xml INTEGRAL
      • AuthCookieEnabled to Access SSL resources
        _WL_AUTHCOOKIE_JSESSIONID created (cookie or URL rewrite). This is default behavior
      •  Locking Down the Pub-Sub Server (5-*)
      *Configure SSL for pub-sub.
      *Require authentication (BASIC, FORM, and so forth.)
      *Ensure auth-cookie is enabled.
      *Ensure that all the channels are constrained in the weblogic-pubsub.xml file.
      *Lock subscribe operations, which are allowed by default.

    AJAX - technology

     IT trends 2010 series (1)

    AJAX - Async-JavaScripts and XML

    Web development that uses JSON or XML for data exchange,  DOM.XMLHttpRequest for protocol access,  JavaScript for operations, and HTML/CSS for display.

    Competing technologies: Java Applet / Web start,  Flash,  ActiveX

    Technology selection:
    framework: DOJO, GWT, ADF
    push: CometD, IceFace
    server support: GWT, WLS pub/sub server


    Usability
          Use Ajax, a page can be created by tiles, and reload only the part that's changing. This and async interaction with server also enhances usability. Meanwhile, page states is maintained within js.
    1. suggestion while typing
    2. loading partial changed tile
    3. responsive - e.g: pre-factch data
    4. ajax push
    5. offline(?)
    6. visual - virtual reality

    Drawback
          There may be more frequent requests to server. Dynamic page updates causes browser bookmar, history buttons and search engine difficulties. Other issues including security and development efforts.

    • Scripting language - language augment a system/GUI to achieve automation by non-experts.
    •  Client side enabling for RIA application
    • JSON - javascript and ECMA scripts
    Ajax Push
           Push framework using Ajax, has a set of technologies supporting it. Bayeux protocol, implemented as CometD, from DOJO.
     

    Ajax Framework includes: DOJO, ADF, Google web toolkit, iceFace, MooTools/Ape, Yahoo UI library, jQuery

    Tuesday, April 28, 2009

    cloud computing

    If SaaS, PaaS, IaaS is to benefit a company, the scale of economy has to take into play. For a large enterprise, for example, WalMart, it's IT infrastructure is so huge and so big, it just make sense to have its own private cloud. It is not imaginable for a company as big as GE to outsource it's infrastructure to Google.

    The shared services will provide scale of economy by its own IT.

    If google or others hosting this for them, it might just cost too much for the service.

    Private cloud for small and medium business may not make much sense, they can use Google for scale of economy. But as the company grow, the steady flow of cash toward google might have to be stopped. 

    Friday, April 24, 2009

    Cloud computing - outsource part of IT

    Why?
    • Reduce IT, focus on core
    • Fast/cheap IT
    • Expertises
    While maintain IT for competitve edge and customization.



    Clouding computing:

    salesforce.com - SaaS
    amazon.com


    google appengine - PaaS (limited)
    azure
    rackspace managed hostings - IaaS

    Tuesday, November 07, 2006

    Computer 2068

    Will the computer in the year of 2068 be able to perform "creative work"?

    To answer this question, we have to clarify the following:
    1. What considered "creative"?
    2. How to judge the results?

    If a computer can evolve itself from a certain "start point", and can self-improve over time/space, then it is creative. Here "self-improve" need to be clarified as "creative".

    1. What is self-improve?
    2. Is it objective?

    For a computer, self-improve is result satisfying the following:
    1. Same job faster
    2. Same job with less less resources consumption
    3. Add new capabilities
    4. New solutions that satisfy one or all criteria above: 1-2-3

    If all these happens, a computer will be able to invent, and thus, substitute human thinking!


    Here is how:

    Over the process, the computer will be "smarter" by acquire new capabilities, be "more efficient" by consume less resources, be it energy or space or raw material, and in the same time, provide new solutions, new creation, and make the world a better place to live...