Tuesday, October 2, 2012

Why VoLTE (Voice over LTE) might take really long

There was an interesting article today at the Reg explaining VoLTE (Voice over LTE – Long Term4G_LTE_Logo Evolution or 4G LTE) in their WTF series of articles. I’ve been following this interesting phenomenon that over the last few months many telecom operators are rolling-out 4G networks, but not fully utilising the features that 4G networks bring for Voice-Over-IP (VOIP).

So to give a bit of background on LTE and its advantages that I’m talking about. LTE being a purely IP network has the advantages of managing just one kind of data packet. This means that we can build tools around only managing IP and data packets. So all your gateways and routers could be optimized to lessons that have been learnt from using internet firewalls, messaging routers and what have you… Voice is also sent as data packets instead of having a different frequency for voice. GSMA puts some advantages to VoLTE:

  1. Single implementation promotes scale
  2. Single implementation reduces complexity
  3. Single implementation enables Roaming

But as you’ll see, its not as simple to move an existing infrastructure to another one. We’ve seen this in the case of IPv6 as well. Information Infrastructure  theory discusses in length the challenges of evolving/moving infrastructures. They don’t happen overnight, nor is there an obvious/expected path to how it’ll evolve! A couple of months back we heard Verizon’s deployment of 4G LTE, “there’s no rush for VoLTE”. If not using VoLTE, one can re-route the voice calls to the old-style Circuit-Switched (CS) network. But this handover between the network creates a lag of 3-4 secs, and my guess is that on heavy traffic could take longer. Investing in this handover might be another headache for the telecom operator, but that seems to be the path most of the operators are taking. The Reg article asks an important question “Are phone users - most of the population these days, though rather fewer of them will be 4G early adopters - going to put up with the pre-call lag? Will they accept a lesser experience than they're used to?”. An important question and the answer could be that operators will use 4G for data services and 3G connection for voice. So they’ll not move to 4G completely and still have their 3G equipment.

There is path dependency that the operators will take and this will result in much slower adoption of VoLTE. So while the operators think it might be fine to make the users wait a few seconds to get on the call, I don’t think users will appreciate that… I hate listening to some stupid beeps or never connecting the call on CDMA networks in India when making an urgent call!! We want 4G for the data speeds, but we decrease usability through the route which operators are taking. Why not get into VoIP apps through which calls can be made? Monetize that instead? Forget the fear that you’ll lose money from voice calls. Increasing volumes on data services will help. As an operator, you can always bundle cheap calls when using that VoIP app that you install as part of the SIM card.

Friday, September 28, 2012

Insourcing for Development – A Networks of Action Approach to GSD

When presenting “The Research Agenda for IT impact sourcing”, Heeks places Ethical outsourcing and Social outsourcing within the scope of what can be broadly referred as the use of outsourcing for development. In the BoP (Business Operation Process) outsourcing continuum he differentiates these from Exploitative Outsourcing and Commercial Outsourcing. You can read about these terms in depth on his blogs. The focus of Social Outsourcing is on contracting out goods and services into social enterprises. In their paper, Heeks & Arun (2010) highlight that social outsourcing has the potential to deliver development benefits to marginalized groups.

In the IT impact sourcing model the idea is to create sustainable jobs in communities where opportunities are low and can act as income improvements. While this is a useful and more common way to look at developmental impacts of outsourcing, there is another way to use IT for Development. And that is through the view of offshore insourcing.

Global Software Development (GSD) is a fairly common practice in large software projects. As an arbitrage in globalized markets, it is more common practice to contracting with a wholly owned subsidiary located in another country. This is offshore insourcing. While insourcing in itself might be offshore or in-country and there has been a recent push at GM towards insourcing, offshore insourcing has many advantages that are seldom described in research. This is what I’d like to add to the research agenda for IT impact sourcing.

Titlestad, Staring and Braa (2009) highlight how the design of health information in the global south has been co-ordinated in a GSD fashion. The project’s core development on what is referred to as global release happens at the Univ of Oslo, Norway, but the requirements for this comes from different local teams based in the “global south”, as can be summarized from their paper below:


Since this is an open-source project (DHIS2), the idea of wholly-owned subsidiary might be unconventional to think about, but being part of the same global research network (HISP), each of the local nodes actually act similar to what would happen in a large global software corporation. Thus, the local software requirements, design and use happens in different countries in the “global south”, but most of the global/generic software development happens in Norway. This type of offshore insourcing is done to keep “generativity” (Gizaw, 2013) of the software intact, such that it can be “ready-for-customization” and be “flexible”, which does not have the features that are specific to a country implementation. This allows new implementers or new country to use DHIS2 without any costs to software development, although only customizations to the context need to be done. Even then, the generic features are available at a much lower cost (following the principles of libre software) for the new implementations than it would, if they were to develop the features from scratch.

How the GSD model has contributed to developmental impacts in many countries in “global south” has been discussed through many research articles. Staring & Titlestad (2008) describe the global software development and commons-based peer production of DHIS2. Through practical examples of the project they discuss the software development practices that are aimed at improving public health sector in the south. Many other researchers in the HISP network over the years have shown the developmental impacts resulting from the project and its use in developing countries. This action-research approach of the HISP network has been referred to as “Networks of Action”, where the method of action research has been shown to have sustainable developmental impact in the “global south”. Combining these concepts of Insourcing for the purpose of development using the Networks of Action approach is what should become part of the IT impact sourcing research agenda.

This blog post is just to introduce the idea that instead of focusing on outsourcing alone, “IT impact sourcing” can also cover insourcing and development through insourcing. Much more detailed analysis and discussion on this will be part of an upcoming research paper.

Wednesday, September 26, 2012

NetCAT 7.2 goodies and 7.3 just got started

The Netbeans Community Acceptance Testing (NetCAT) for v7.2 concluded at the end of July 2012. It was a very productive testing process for the Netbeans community. Details about the NetCAT 7.2 are here. Beyond improving the quality of our favourite IDE, depending on how much you have contributed, Oracle also gives out goodies to the participants.


The goodies I received this time around includes a very large towel, a nice t-shirt, 2GB memory stick, notebook and pen, an acknowledgement letter detailing my contributions and points to the program and this new Oracle-branded mint!! Strong mint!! At least from the envelope, Sun is still alive… Hurray!!

If you’d like to get similar goodies or just improve the quality of Netbeans, participate in the NetCAT 7.3 which started 10 days back. Its not too late to participate. Signup to the mailing list and add yourself to this wiki page. You’ll get points for participating in discussions over email/forums, reporting bugs, participating in surveys and following a manual testing script by being part of Tribes that test specific functionality. So its not very hard… you just have to simply use the daily or beta builds and give feedback to the developers. Go for it!!

Tuesday, September 25, 2012

Limits to growth?–waiting for the 40yr update

While dabbling around arguments on how development hasn’t reached everyone, especially looking at the cases in India and Gujarat, I’ve also been reading the book Limits to growth – the 30yr update (thanks dada!!). This post is mainly to say that I desire to read the next update of this masterpiece of work that has been updated over the years since it was first released in 1972. Hunter Lovins says “If you only read one book…make this it!”. I’d say the next one “40-yr update” will be more interesting, given the global financial crisis!!

Just last night I watched, Michael Moore’s exaggerated critique on Wall Street – “Capitalism – A Love Story” and that made me think how different would the world be today, if as the movie puts it, we had a love story with Democracy instead of Capitalism. Instead of Socialism, he suggests it should be called Democracy… I wonder though if economics can be simply governed through a set of political principles. I know Adam Smith talked about political economy some centuries ago, but was his perspective too simplistic to look at the globalized world that we live in today? Would we be able to label China as a non-democratic Capitalism or FDI in India as global capitalism and not Socialism? Its hard to argue for any of these labels; to look through Marx or Smith’s worldview. Because in my opinion, the complexities around globalized economies makes it much harder to box political economies any more. The US Wall street has much more effect on the farmer suicides in Maharashtra or Andhra Pradesh than what Smith or pure Capitalists or free-enterprisers would have us believe. As Meadows said in 1972, we have “overshot”. We haven’t prepared ourselves better before globalizing. The three causes as they say for overshoot are the same, whether personal or planetary -

  • There is growth, acceleration and rapid change
  • Some limit, some barriers beyond which the system may not safely go
  • Delay or mistake in perceptions and responses that strive to keep the system in limits

Growth is believed to be necessary for employment, upward mobility and technical advancement. For places with poverty, growth is believed to provide resources out of poverty. Growth can solve some problems, but it creates others. That is primarily because of limits and the book highlights the limits very nicely. The book was written 10yrs back before sub-prime crisis, debt problems etc. that have affected nearly all of the world’s interconnected populations. Greed, overshoot, delay in perception or response, whatever you may call it… it has highlighted that there are limits to growth and how we can’t sustain this single-minded approach to achieve growth

I’m a bit sceptical on how World3 (their model) bases itself on the central assumption that population and capital are structurally capable of exponential growth. They cite examples of different countervailing pressures that they’ve added as feedback to the model, but I’m less convinced that they’ve had enough considerations on emigration, where people are moving back to growing economies as soon as things have started to slowdown in rich countries.

What is brilliantly highlighted in the book - that growth in the way in which it has happened since 1930s has created enormous disparity. A fourteenfold increase in world industrial output since 1930s has created more disparity and hasn’t ended poverty. Another fourteenfold increase (if possible with earthly limits) would not change it either if we continued in the same way… Running the system harder or faster will not change the pattern as long as the structure is not revised. And over the last 10yrs, since they wrote the book, if anything, we see increasing disparity and faster running on this non-sustainable system.

While the book and World3 model supposes many ways to collapse, it also in Chapter 7, shows a model that can lead the world to not collapse. They call this “Sustainable System”. In Chapter 8, they suggest “Tools for the Transition to Sustainability”. They mention that “Everywhere we find folks who care about the earth, about other people, about the welfare of children and grandchildren”. Not just their own, but of others. The problem is are these folks doing enough to change the model? Are we so many and doing so much as to move towards sustainability? They say the next revolution has to be Sustainability, just as the previous 2 revolutions were Agricultural and Industrial. I wonder though will all those who have not been touched by the previous 2 revolutions be able to “leap-frog” to the third revolution? What tools do we have to reach a sustainable system – Visioning, Networking, Truth-telling, Learning, Loving. Sounds like the Buddha??

Though there is no way of knowing for sure, other than to try it.

Friday, June 29, 2012

Gigabit Wireless Router from Cisco

Today while I was browsing through the Cisco website, found out that they’ve started taking pre-orders for Gigabit Wireless router based on the 802.11ac draft spec. The model is Linksys EA6500 scheduled to release in August 2012. This means that speeds upto a Gb/s is achievable using off-the-shelf consumer routers already. They are listing “Ultimate Speeds upto 450 + 1300Mbps*”. Seriously wow!! Dual Band, so you get the 450Mbps from the n-spec and 1300Mbps from draft-ac spec.

Now, most of you would wonder why the hell do we need that much speed… I was recently trying to stream my favorite BD-Rip Avataar 3D through the XBox 360 on to my TV. But alas, I had to transcode to lower quality because my wireless-n router at 300Mbps was not good enough Sad smile. So, we definitely need this soon as more and more content is available in full HD and we want to start streaming and communicating between the different devices in our household.

Another interesting thing, is that router has built-in NFC (Near Field Communication), which can use a phone (which has NFC) for transmitting configuration. But this feature sounds like just using a technology for the heck of it. How hard is it to type a passphrase or open the router page on the browser and configure. Nevertheless, some nice technologies packed into one experimental device. And then there is also an Acer router with similar 5th gen Wifi stuff…

Saturday, January 28, 2012

Making Love to Webkit

I just viewed Steven Wittens Acko.net and it is just awesome. You have to click here, to see the amazing stuff done with CSS 3D on the website. Don’t forget to click on the Load Scene, a little down in the post and then using the mouse to drag the scene. Classic Stuff!!

The site has used mrdoob’s JavaScript 3D library that also has some amazing examples to look at. It is very interesting to see how 3D in JavaScript is coming along in Webkit. People have been making Love to Webkit and it all looks so aesthetically pleasing and romantic…

Friday, January 27, 2012

NetCAT goodies

Some people might have followed on the blog that I had been participating in the NetbeansDSC00501 Community Acceptance Test (NetCAT) program for the 7.1 release. The release in my opinion is one of the most stable versions of Netbeans ever. This should be attributed to the co-operative effort between the developers, quality managers, community of testers and Jiri Kovalsky, who manages the NetCAT program.

There are some points for bugs, fixes, RFE, feedback, surveys etc. during the alpha and beta phase of the development and the NetCAT final tally for 7.1 is here. The best part in my opinion during this NetCAT release compared to earlier years was the quick bug fixes delivered by the Netbeans Engineering Team.

I also got some goodies for participating in NetCAT.

Thursday, January 26, 2012

Why REST with JSONP when you can CORS?

JSONP (JSON with padding) is a hack used by JavaScript developers by wrapping a JSON (JavaScript Object Notation) document within a function call. So, if the JSON document looked like {"givenName":"John", "familyName":"Smith"}, the JSONP for the same would be callback({"givenName":"John", "familyName":"Smith"}) (callback being the commonly used wrapper function). So, if you are familiar with JSONP, you will realize that it is used to make Cross-Domain calls where JSON is not accepted by the browsers if they come from another domain. Thus, AJAX requests across a different domain was not possible through JSON and hence using JSONP was the common hack.

The problem with using JSONP is that it is called as a JavaScript function response and hence CORS-supportyou will not be able to use it as normal HTTP calls. That means you would not be able to send HTTP headers and that can be a problem at many places. There are hacks to deal with the problem, but these are best described as hacks. Another limitation of the JSONP hack was that you could only make GET requests and nothing more. Hence to make a standard, W3C created the CORS (Cross-Origin Resource Sharing) standard which nearly all modern browsers support.

The main issue with using JSON or AJAX (XHR – XMLHttpRequest) across domain was that browsers would not be able to acknowledge if the response was malicious or in response to the request that they made. The same-origin-policy, prevented making cross-domain requests. Then came CORS, a technique by browsers to check the origin policy first and then accept responses. So a server that wants to allow getting any type of HTTP request from another domain would list the domain or * in its HTTP response header as follows:

Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: http://example.com:8080 http://foo.example.com

This means that there is some modification to be done on the server-side resource to add these headers to the response. Another point to note is that it works with XHR requests as well as client errors (4xx) and server errors (5xx).

Excellent examples on how to use CORS can be found at HTML5Rocks. On the server-side of things, you can find resources to enable CORS.

In Tomcat for a Java web application, you can enable CORS using the CORS Filter library. Basically you copy the jar file into Tomcat lib or WEB-INF/lib of your application and then add filters in your application’s web.xml or tomcat’s global conf/web.xml. For a resource which requires Basic Authentication and Cookies can be configured as follows:

        <param-value>GET, POST, HEAD, PUT, DELETE</param-value>
        <param-value>Content-Type, Last-Modified</param-value>

Instructions for Cookies in Safari can be challenge. A nice post to workaround can be found here.

Wednesday, January 25, 2012

Difference between iPad2’s Safari and Desktop Safari

Since we are targeting the Raxa EMR for JSS for Webkit-based browser, it is important that the team understands the subtle differences between the Desktop shipped Safari and the version of Safari shipped for iPad2. The differences with Chrome are quite a few, so I won’t list those here.

Following are some of the differences to remember:

  • No Flash support
  • Safari iPad does not support position:fixed in CSS
  • Safari iPad creates link for 10-digit numbers automatically
  • Safari iPad does not allow scrolling over textareas and iframes
  • Safari iPad has issues with CSS Animations that cause flickering. Use JavaScript animation or hacks in CSS -webkit-backface-visibility:none; and -webkit-perspective:1000;
  • Safari iPad greys the upload button

Things have been improving compared to the first iPad and iPad2 and the differences are minimizing.

Saturday, January 7, 2012

EMR at JSS Bilaspur – In pursuit of happyness

Over the last 3yrs, I have travelled across the world and looked at 100+ health facilities of different scales. My last encounter with a health facility in rural Bilaspur was very different. Having looked at systems of practice in a variety of health facilities including subcenters, private clinics, primary health centers, community health centers, district hospitals, tertiary hospitals and super-specialty hospitals, each of these places have different characteristics. What makes Jan Swasthya Sahyog (JSS), situated in rural Bilaspur in Chattisgarh special is the motivation levels among all the staff at the health facility. This includes clinicians, nurses, technicians and computer operators… And the motivation of these people stems from the fact that they still believe in care, rather than just providing health services. I use “still” because in my worldview of health facilities, most often I see people missing out on the “care” from the notion of health-care.

My visit to JSS was for volunteer work that I have been doing over the last few months to see an Electronic Medical Record (EMR) system to be setup at JSS. Over 100 volunteers across the world have come together in this pursuit to build an EMR system that is easy to use, suited to low-resource settings and can help improve work of the providers as well as help provide better services to patients. JSS was founded 15yrs back by post-graduates doctors of All India Institute of Medical Sciences (AIIMS), India’s most prestigious medical school and hospital to provide healthcare to people who are deprived from it because of poverty, neglect and lack of development. And when I visited JSS on Christmas 2011, I could see the savior work done by JSS for the many people who come from far-flung places because they are treated with dignity and care.

The EMR system broadly from interviews and discussions with some doctors, nurses, other staff and my interpretation of the context needs to do the following:

  1. Help to improve efficiency in use of resources and providing patient care
  2. Help to maintain correct medical practices through validations
  3. Help to understand who, what, why is being treated at JSS

EMRs or for that matter any computerization process advertises many-fold benefits. Technology is most often considered the silver bullet that will solve all problems. From my experience this is rarely the case. So these 3 points might provide a guiding path to decisions that we make in the design of the EMR. In the design of the EMR, just like JSS we have to put “care” at the forefront of our efforts rather than technology prowess. Thus, this system is envisaged to be a point-of-care systems where providers will look up records and use the system to provide “care”.

The other very unique thing about JSS is that is it rooted in the locale of the context. Having seen other health facilities setup by “change-makers-coming-from-the-outside”, JSS is uniquely very much part of the context. This is one of the reasons I see why people come from more than 100kms away to JSS for treatment. People view JSS as locals and one among their own. This is one aspect that I think the EMR system should incorporate. It should embody in itself the locale. By locale, I mean the local practices, language, usability… among other things.

I would say we have some lofty goals for the EMR. One that the project lead calls as “Linux of EMRs”, but in my opinion even if we achieve more humble ends, like not causing burden to providers and patients that would make me happy. It is this pursuit that drives me to work towards this cause. I call it a pursuit because I realize this is not something that is a stagnant phenomenon. It will change with every small change that we make. Every morning it is this pursuit of happyness that drives me to understand what an EMR system would be of use at JSS.