Most companies have moved their servers in the cloud, as in cloud services provided a platform which included a server, redundancy, many geo-locations, backup, etc.


Thus, a company preferred to use cloud servers than maintain their own servers.

This posed a security risk and initially, many companies did not want to run their software on somebody else’s server.

But actually, the cloud servers were more secure than the company’s own servers.

This was a much cheaper option for companies, since the cloud servers were much faster, had redundancy, were more secure, had multiple locations, etc.

This eliminated the jobs of network specialists (on the operations side).

A new job was created called devops (which was a developer deploying and managing the cloud).

Ultimately, anyway, a developer was responsible for the application, so it makes sense that a developer manage a deployed application.

There was the issue of a developer doing something wrong purposely on the app website, but then this risk earlier was the operations personnel going rogue.

It is much better to make a developer responsible for an application all the way.

This is pertinent to a phone.

I see many websites that use some kind of scripting to essentially disable the back button of your phone.
This is bad design because hardware and phone behavior should not be messed with.

There is a simple workaround for this.

Simply, refresh the page and hit the back button (while the page is loading).

Why does this work?
This is because you are hitting back before the javascript is loaded and takes over.

Recently, there has been a lot of action in the space of VR and AR.

I’ll start with what the 2 are, and their applications.

VR or Virtual Reality is where a user is immersed in an environment created by someone.

AR or Augmented Reality is usually some information put on a real image (usually as seen by a user).  The information is usually in real time. e.g. a user profile superimposed on a person’s face.

Companies bringing VR to the consumers are Oculus (now owned by Facebook). The product is called Rift.

AR is being brought by Google Glass (coming back soon), Holo-lens by Microsoft (whose marketing video is better than the product), etc.

VR has a lot of applications, the main ones being gaming, tourism, data visualization etc.

AR, as I said, might be good for profiles, weather, etc.

So, both technologies are useful and they have their own applications.
Titles like this one are misleading and so do not think they are competing with each other as some media would like you to believe. Developing applications for these is a big market..

Many software developers are looking to develop mobile apps and companies want to jump on the mobile phone bandwagon.

I do not want to debate the reasons; that is a business decision of companies. I want to help fellow developers by talking about the various possibilities; of course the ultimate choice is the developers; only they know the situation they are in.

Unless you live under a rock, the 2 growing platforms out there are iOS and Android. The Windows Phone is the dark horse, but it is a target as of today.

So, here are the possibilities:
In the past, there were only native apps, so a company made 2 or 3 identical version, 1 for Android, 1 for i OS and maybe 1 for Windows.
Companies like Apple, Google, etc. had SDKs, but then you also had to know Java, Objective-C (how quaint) and maybe C#.

Then, along came a company called Xamarin, which enabled to write in C# and output binaries for all major platforms.
This was good because now you did not need to know multiple languages.
But, Xamarin was not cheap.

Then a company introduced Phone Gap as an option, which essentially separated the UI layer from the lower layers. The UI was in HTML, one could use various native clients (that the company provided) that understood HTML. This later became Apache Cordova, and it is offered by the Apache foundation.

So, the first option is Native or HTML?
If Native then should one torture oneself and write in Java, Objective-C, etc?
Or use Xamarin, if the budget allows.

If HTML, then currently Cordova is the only option. Remember, there are some native things of your phone that cannot be accessed via HTML, but these are rare and it finally depends on your app.


It might help the community, that if you have developed a mobile app, to state its name, provide links to it and briefly state the technology you used, in the comments.

Thanks from all of us!

What seems like a simple thing may not be so.

This happened to me, and the whole process got so frustrating that I decided it warranted a post, so I could help you folks too.

For some reason, my Windows system got reset and I started experiencing erratic behavior whenever I typed, and I realized it was because my Dell Touchpad settings went back to the default (I normally disable the pad selection and the pad click).

But a search in Google gave me links that mentioned a Dell Touchpad tab in my mouse settings in the control panel (in windows 7)  and I had none.

I then went to c:\program files and located the Dell folder, which in my case was “DellTPad”. I ran the touchpad exe, which for me was DellTPad.exe,  and it started the touchpad settings application, and I was able to set my settings again.

I run Windows 7 on a Latitude e6510, but this method of mine should work on many Windows versions and on many Dell computer models.

To repeat…

You can first go to Control panel >Mouse.

If that has no Dell Touchpad tab, then go to File Explorer, and navigate to C:\Program Files\DellTPad. once there, run delltpad.exe and set your settings for the touchpad.

There is a design shift as software starts moving to the cloud, from an in-prem situation.

There are a few changes  that you have to make in your design. e. g. the database may not always be available at all times, so retrying a connection makes sense.

One of the side-effects of this is that we can use some design patterns from nature, or the hardware world.
Using Hadoop or (as it it is called) HDInsight in Azure, we can have very simple functional blocks perform very complex things.
This is kinda why Map/Reduce was invented in the first place by Google.

Anyway, what this means for our software design, is to have more modular blocks (or classes and methods), and they should perform a set of tasks very well. They won’t even know of the big picture, and don’t need to.
Any good software design more or less is designed this way but try to make the units kind of self-contained, rather than always having a master-controller somewhere.
Not having a master-controller is the ultimate path to infinite growth, because then each unit does not have to come back to the master.
Only some factory method needs to be able to be called and produce these identical worker units.

More and more, this kind of system resembles of the best examples in nature viz. ants.

Take a look at this article and video here.

I talked earlier about Cloud Services, and many vendors like Amazon, RackSpace, etc. are used more for consumer services and enterprises are generally weary of clouds – part of it being paranoia and might be baseless (because of coming up with a process of doing things differently) and a valid reason being security (authenticating with Active Directory) and not wanting to part with services that are not totally in a business’s control, because this could be a business’s core or its IP.
But, the result is that there big  savings, so it is worth looking into.
So, understand and address all the inhibitions to move to a cloud.

Now, the solutions for these are quite vendor-specific (Azure might have them, while Amazon may not), so I’ll mainly talk about Azure.
I mainly see 2 hurdles in using Azure viz.
1. Authentication
2. Proprietary (in-house) Services

In the case of authentication, IT cannot really move the entire Active Directory to the Cloud (and should not), which means that we need a third-party authentication with Azure (that’s what its called, because Azure does not authenticate you then) and our company.
That is, a user uses Azure, but has to authenticate first and this is done externally on- premises of the company (known as on-prem).
This is known as an on-prem/ off-prem solution in industry parlance.

For this, we can use WCF with the Azure Service Bus.
From the Azure website:

Think of the Service Bus as a way to communicate with Azure, and the communication happens between Azure and your company.
So, via this mechanism, Azure can callback into your company, which addresses both authentication and the services issue.

This also means that you need modular services that can be called by someone, which is anyway a good goal to have.

To inform your IT, Azure also provides the following features:

Virtual Machines— Allows you to move your virtual hard disks (VHDs) back and forth between on-premises and the cloud.
Existing workloads such as Microsoft SQL Server or Microsoft SharePoint can be migrated to the Cloud.
Use your own customized Windows Server or Linux images, or select from a gallery.

Windows Azure Virtual Network— Lets you provision and manage virtual private networks (VPNs) in Windows Azure, as well as securely extend on-premises networks into the cloud.
It provides control over network topology, including configuration of IP addresses, routing tables and security policies and uses the industry-standard IPSEC protocol to provide a secure connection between your corporate VPN gateway and Windows Azure.

Availability in New Countries— As of now (May 2013), availability is expanded to 48 new countries, including Russia, South Korea, Taiwan, Turkey, Egypt, South Africa, and Ukraine, making Windows Azure one of the most widely available cloud platforms in the industry with offerings in 89 countries and in 19 local currencies.

Here are details, and an example for you as a developer –

So, the Cloud is not only for consumer services, and with a little planning, Enterprises can use it as well.