Moved

I have put down my experience of moving from WordPress.com to my new home. Overall it was not very difficult, at most irritating sometimes. The WordPress exporters and importers do most of the work, you have to follow it up with some cleaning.

I am going to keep writing on this blog, less frequently though. I will also change the sidebar content a bit to reflect fresh content from my new blog. If you have sill not update all your bookmarks using this information. I am still not getting used to not seeing WordPress.com top posts in the dashboard. I will try and see if I can hack it to do it. I realise the importance of being part of a community!

Technorati tags:

Copyright Abhijit Nadgouda.

Posted in this. 2 Comments »

Moved, But Still Unpacking

So this blog has found its new home! It is hosted on BlueHost, selected out of three that I was considering.

Basic setup of the blog is done – posts, pages and comments imported, and functional theme is set. However, it is just that – functional right now. I still have to import links. I will need some more time to fix some things and make sure that the CSS is not bulky or bundled up. I will write a detailed post on things I had to do to move things from here.

That being said, you can take a look at the blog today and see if you like it. Feel free to throw brickbats or if you feel, bouquets at it.

Please update your bookmarks, blogrolls and feeds to the following addresses:

Blog address: http://ifacethoughts.net/
Blog posts feed: http://feeds.feedburner.com/ifacethoughts/entries
Blog comments feed: http://feeds.feedburner.com/ifacethoughts/comments

I know it is too much trouble to update these thing and I sincerely wish that I could automate this for you. But it is not happening, please take the trouble of updating the information. I will writing at the new blog. I plan to keep writing on this blog to write specifically about wordpress.com, and keep using the excellent and first-to-be-updated blog system here.

I will do one more post when the new home is completely setup and will include a reminder in that. Thanks for reading.

Technorati tags: , .

Copyright Abhijit Nadgouda.

Posted in this. 2 Comments »

To Move Or Not To Move

I am contemplating moving to a self-hosted blog. Not because WordPress.com falls short of anything, just that I have become greedier. I want to control more and want to experiment more.

I will definitely continue with WordPress. It has achieved the privileged milestone of one million downloads and is coming up with some dynamic features. WordPress.com too has seen massive growth, it hosts 310 thousand blogs on its first birthday. WordPress.com has time and again shown that it is one of the highest quality blogging sites, with lot of high traffic and slashdottable blogs.

I want to dig deeper now, get more control and start some experiments. The new avataar will also host some projects and some personal stuff. After some research I have narrowed down to bluehost.com, dreamhost.com and mediatemple.net for hosting with a bias towards bluehost. Feel free to suggest if you have any information regarding this. I am looking at PHP, Ruby and Python support. Any kind of guidance will be appreciated.

I am trying to evaluate the costs of moving, some are apparent and I am sure some will raise their head later. Right now though, none of the disadvantages are heavy enough to outweigh the basic advantage of being able to do more with self-hosted WordPress for me.

Technorati tags: , , ,

Copyright Abhijit Nadgouda.

Solutions Through Open Source Is The Solution For Open Source

Eric Raymond, who re-invented, or rather founded the open source movement, warned the community against open source losing its users. Participating in a panel at LinuxWorld, ESR called for compromising to appeal and be useful to the newer generation. He used Linux, the pioneer in open source world, to exemplify where open source was lagging.

Raymond, a champion of all things open, said it is vital to the future uptake of Linux that the community compromise to win the new generation of non-technical users aged younger than 30. This group is more interested in having Linux “just work” on their iPod or MP3 player and “don’t care about our notions of doctrinal purity”,

“We have a serious problem. Whenever I try to pitch Linux to anyone under 30, the question I get is: ‘Will it work with my iPod?,” he said. “We are not yet as a community making the painful compromises need to achieve widespread desktop market share. Until we do, we will get locked out of more hardware.”

Using proprietary and closed source binary drivers has been a controversial topic for Linux. These binaries, without their source code, fall in the opposition party and are immediately rejected. However, it cannot be ignored that they provide value today to the users. To be able to useful to these users, who want their computers to work with different gadgets, Linux should make a compromise and include them. He calls them necessary evil.

Users require Solutions

I think this compromise is just a small hurdle in the path. To be able to be accepted by the common man, especially the newer generation, open source should offer solutions to them. Open source has mostly been the object of fascination for the geeks and the object of ideology for the believers. However, now it has to move out of this and enter the realm of everyday use of the common man.

The challenge is that requirements of the common man will keep changing. A decade back he wanted a decent browser, today he wants the computer to work with other gadgets, tomorrow it can be used even in trivial tasks. For this open source has to do two things:

  • Provide solutions rather than open source flagship products
  • Talk to the common man

To be able to do this open source movement should graduate from just competing with the proprietary counterparts to actually identify and solve the user’s problems. Unless this is done it is not going to be popular, it will be seen only on the desks of geeks. To address problems and issues of the users open source has to provide direct value and use their language. It should not be used only to scratch the technical itch any more, it should satisfy the wants of the non-technical. And on the way, the open source movement might have to do compromises. Linus Torvalds, the creator of Linux, thinks software patents and legalities are harmful to the open source movement. It definitely is, but I think identifying and delivering value to the user is more challenging and imminent. What I understand from Eric’s message is that open source can neither postpone nor slow down being useful and reaching the common man. It is time, or else it might get locked out!

Technorati tags: , ,

Copyright Abhijit Nadgouda.

*OA – The Different Web Programming Paradigms

Update: A Spanish translation of this post is available, thanks to Adrián Moreno Peña.

Web has been the apex of networking, both from software and social perspective. The extreme software networking has turned Web into communication, social networking, collaboration, publishing platform as media and application programming platform. However, as mentioned earlier, Web was originally designed for documents as a way of information sharing. To be able to do what we wanted to do with Web, we had to make it programmable.

Programming The Web

The Web today is programmable. It can be programmed for various purposes, some of which we have mentioned in the beginning. This programmability is derived from the mature generic software programming principles. We need to have an architecture, a design and an implementation. The generic software programming has evolved through a lot of changes, some of which can qualify as improvements. From the programming styles like procedural programming the focus has moved on to architecture and design to produce techniques like OOP and the new Agile and Model Driven Architectures. On similar lines today the Web is full of upcoming architectures and approaches. Lets mull over some of them here.

Services

The concept of service was created to emphasize on loose coupling and a client-server relationship. The pre-Web software was usually tied to the hardware and the associated platforms. Web, being so open and ubiquitous, cannot afford to do that. Web was meant for sharing, irrespective of these restrictions. Hence came up the concept of service. A service is a function with a purpose, serves all the clients without any restriction on their implementation details.

Service Oriented Architecture (SOA)

Such collection of services were exposed that the clients could avail of and termed as Service Oriented Architecture (SOA). These services communicated with each other, some collaborated and some were standalone.

To be able to do a handshake, the clients had to obey the protocols mentioned by the service. These most popular ones were XML-RPC, SOAP. They focused on abstracting Web for applications and domains. A different approach was taken with REST which focused on using the Web as it is, by following its basic principles.

The advantage of SOA was that now businesses could choose between services without being hindered by technology or organizational boundary. Neither the definition nor the specifications of SOA were limited or dependent on Web. SOA could allow interesting mashups and integrations. SaaS is completely based on this and has been able to bring analogical outsourcing concept in businesses.

However, there are some key disadvantages of this approach. The biggest being that in an effort to be platform agnostic and portable, SOA is buried under a load of specifications. Increasingly it is getting difficult and costly to be able to comply with the protocols and talk to a service. Another disadvantage, which need not be severe sometimes, is that the services are not discoverable. Knowledge of the services is required to be able to use the service which mandates a directory of services. Since Web is boundless by nature, it is impossible to keep such a directory. This makes SOA less reachable.

Web Oriented Architecture (WOA)

To make SOA lighter and more popular came WOA. It is essentially a subset of SOA which recommends using REST over heavier counterparts like SOAP. The philosophy of REST to differentiate between network programming and desktop programming makes it simpler to use for the former.

WOA is more customized for Web by including REST. And by specializing it can strip off the heavy abstractions that make you all-inclusive.

Resource Oriented Architecture (ROA)

Here comes a radical approach, well, radical from the SOA perspective. Alex Bunardzic introduced ROA. While WOA is conceptually still SOA, ROA is a rebel for a good reason. Alex points out that the concept of services might not apply to the Web. As mentioned earlier, services cannot be discovered and it is not possible to maintain a catalog. This is where it goes against the Web, ROA believes that Web is exploratory by nature.

Because of the uniqueness of the web as a medium, the only abstraction that does it true justice is resource. The web is a collection of resources. These resources are astronomically diverse, and it would be mathematically impossible to maintain any semblance of a reasonable inventory of web resources.

Each resource on the web, no matter how unique and complicated it may be, obeys only one protocol. This protocol has three major aspects to it. In no particular order, these aspect are:

  1. Each resource knows how to represent itself to the consumer
  2. Each resource knows how to make a transition from one state to another state
  3. Each resource knows how to self-destruction

ROA is more of a paradigm than an architectural approach thats considers resources to be the elements of Web. The key part however, is that they can be discovered, and once they are discovered they can represent themselves. There is no requirement of prior knowledge of the resource to start a conversation, as against knowing capabilities of a service in SOA. ROA is completely based on REST and basks in its advantages – simplicity, minimal technical requirements and URI for every resource. The use of the basic elements of the original WWW makes it easy for a resource to talk to another resource.

The only disadvantage I see of ROA is that it is well defined for Web. Although there can be analogical implementations in other areas, like SOA it is not conceptualized on non-Web platforms. There are new developments happening in this area, but it is still not as mature as SOA.

Epilogue

If analyzed, all these focus on having a standardized interface. ROA is simpler than SOA and uses the hyperlinks effectively to reach a wider base. But whether that is a requirement will be determined by the business need.

As a software developer what is in store for me in all this? Well, these paradigms are about to define the direction in which Web programming will head in the future. The one that dominates will survive. However to be dominant it will have to prove itself to be loyal to Web and loyal to businesses. If both co-exist, it will be critical to identify applicability of each of these. If not, then there will have to be preparations to handle its disadvantages. Either way, these will affect the businesses in which they are being used. And with Web playing a very important role today, this impact will not be ignorable!

More readings on this:

Technorati tags: , , , , , ,

Copyright Abhijit Nadgouda.

Posted in design, web. 2 Comments »

Should The Web REST Its Case?

Today the Web is being treated as an application and messaging platform, as a publishing platform and as a medium. However, the initial intent and hence the design of Web was to host documents and make them available to everyone. Here is an excerpt from the summary of World Wide Web by Tim Berners-Lee:

The WWW world consists of documents, and links. Indexes are special documents which, rather than being read, may be searched. The result of such a search is another (“virtual”) document containing links to the documents found. A simple protocol (“HTTP”) is used to allow a browser program to request a keyword search by a remote information server.

The web contains documents in many formats. Those documents which are hypertext, (real or virtual) contain links to other documents, or places within documents. All documents, whether real, virtual or indexes, look similar to the reader and are contained within the same addressing scheme.

In a nutshell, the Web was intended for documents so that information can be shared. The design of the Web and underlying techniques like the HyperText Transmission Protocol (HTTP) and HTML target these hyperlinked documents and exclude the modern connotations.

Protocols

SOAP and XML-RPC

To be able to do more with the Web, a layer of abstraction was introduced. This layer introduced new protocols and data structure formats and new rules to abide by. XML-RPC is a product of this attempt and later evolved into SOAP to handle enterprise scenarios. Lets club both of them together for our purpose. The purpose of these protocols was to ensure communication between disparate machines with disparate platforms with disparate programming environments. That they did to the fullest extent. The utilities were offered as services, which the clients could use by requesting using the protocols. SOAP has now evolved to get more and more inclusive and stricter and tedious. A lot of specifications were developed which caused the effort and the cost of being able to use a service to climb up.

There are two problems with SOAP. One was that as Web was being used for all kinds of things, a lot of which were not enterprise or corporate. SOAP started getting oversized and bulky for them. Secondly, SOAP uses POST method of HTTP. (HTTP provides two commonly used methods – GET and POST. GET lets you retrieve information and provides a Uniform Resource Identifier (URI) for that. This URI can be used as an identifier for that information or resource. For using POST, a package has to be sent to the web server, a simple URI does not work.) Using POST meant SOAP had to do away with the URI and the associated basic benefits of simplicity, convenience and caching.

REST

So came in a new perspective REST – Representational State Transfer. REST, coined by Roy Fielding in Architectural Styles and the Design of Networkd-based Software Architectures takes an approach contrary to SOAP. Instead of building over the basics of Web, it tries to optimise it as it is. It uses GET to request information, and idetnfiies every single resource with a URI. This URI can now be used by anyone anywhere, a simple string that can identify and locate a resource on the Web. Not additional protocols other than HTTP and use the URIs that form the hyperlinks. Keep it simple and keep it accessible, very much goes with the ideology behind the WWW summary.

With the emergence of Web 2.0, there was search for an easier and open paradigm for using Web, which was found in REST. I am with REST for now. However I am not sure if it will be an over simplification for some problems. Only time will tell!

The RSS Blog has a good illustration of all the three protocols. I sometimes wonder if a combination of these protocols would provide a better solution in some cases. A lot of discussions end up in flaming and finger pointing. However there are some good thoughts on these:

Non-participation by W3C

It would be better if the World Wide Web Consortium (W3C) participates in creation of these paradigms and protocols. W3C is the authority and can play the role of keeping the integrity of basic principles of Web. Existence of multiple protocols is a bigger problem than just development inconvenience. It can divide the Web into incompatible parts which will ultimately be the failure of WWW.

Technorati tags: , , , , ,

Copyright Abhijit Nadgouda.

Posted in design, web. 3 Comments »

month

Just like weekday, WordPress uses month global variable to store the month names. It is a single dimensional array set in [wordpress root folder/wp-includes/locale.php]. It stores the localized values of the month names.

Plugin and theme developers can access this global variable, however, to retrieve time and date information about posts within a loop the functions mentioned in weekday can be used.

Back to full list of global variables.

Technorati tags:

Follow

Get every new post delivered to your Inbox.