Skip to main content

Posts

Showing posts from April, 2009

Internet 2.0 service models: continuous versus limited value

The last few months have been quite an interesting ride into the rise of an internet 2.0 darling. Twitter, the nombre du jour of the internet 2.0 crop of quickly built but toughly scaled web applications without any revenue has exploded onto the public scene thanks to its high profile use during the recent American elections and more recent use by various media pundits in live segments as a means of extracting real time opinions from the viewing audience. The growth curve of the companies user base has been extraordinary and has easily outpaced the growth curve of previous internet darlings like 1.0 stalwart (some would say first 2.0) Google, Youtube and others. Twitter is plotting an amazing hockey stick , particularly in the last few weeks as talk of a competiton to 1,000,000 users was joined between actor Ashton Kushner and CNN! However, despite the short term apparent success of the service in gaining users, it is still without revenue and is operating at an amazing accelerating b...

Static polymorphism

The AgilEntity framework has a db vendor agnostic sub api that allows the client code for the platform to interact with the clusters loaded database without knowing the specific vendor type of the system in place. This enables the client programmers to write standard ANSI compliant SQL to perform calls on the the various tables added to the datastore. The design of the datastore promotes a relational model between Entities that are managed in an Entity relations table. Other Entities have specific mapping relationships as well but all db access occurs through the API. This is done using an abstraction of the db accessing methods through a class called CreateTable. The CreateTable base class , which is abstract as defined using the java OO syntax is extended by sub classes that implement the specific functionality that is required to mediate specific vendor databases. The base class enforces implemenations for methods that perform several of the following functions that tend to be data...

Social Networks: The power of symmetric relationships

A recent post on the bokardo.com blog by Joshua Porter, highlights the difference between relationships on Facebook and those on Twitter. Essentially on Facebook, relationships are made when a request for friendship is accepted by a person, adding both on each others contact list. If in time one person removes the other, the relationship is broken as the other will notice they are unable to contact the former friend without sending another friend request. This is a symmetrical relationship as it goes both ways, the other type of relationship is the assymetrical type that Twitter uses, you can follow some one without them following you, this allows people to expand their follow network without having to wait for confirmed friend requests, similarly others can follow you without requiring explicit confirmation. Essentially the default nature of Twitter conversations is as a broadcast to ALL that care to listen, where as with Facebook, the broadcast is to those who reciprocally wish to ...

AgilEntity Architecture: Action Oriented Workflow

Permissions, fine grained versus management headache The usual method for determining which users can perform a given function on a given object in a managed system, employs providing those Users with specific access rights via the use of permissions. Often these permissions are also able to be granted to collections called Groups, to which Users are added. The combination of Permissions and Groups provides the ability to provide as atomic a dissemination of rights across the User space as possible. However, this granularity comes at the price of reduced efficiency for managing the created permissions and more importantly the Groups that collect Users designated to perform sets of actions. Essentially the Groups serve as access control lists in many systems, which for the variable and often changing environment of business applications means a need to constantly update the ACL’s (groups) in order to add or remove individuals based on their ability to perform cert...