Monday, August 27, 2012

New BUZZ words in programming for a traditional .Net developer

Languages & technologies

If you are developer like me who struck in MSFT .Net technologies and didn’t update your resume for long, you might not have heard about the below new buzz words happening in the software development world. Or if you had heard these words you might not have understood why all these are there where .Net+IIS+SQL combination can do everything for me. Here is just an attempt to collect all these technologies with a small description.

Hadoop

A technology to achieve distributed computing. You can execute your long running process in different machines .This uses Map-Reduce algorithm to distribute tasks and collect the results.

Cloud Computing

Cloud refers to server environment where you don’t need to worry about the server software,infrastructure scaling etc…You will be charged only for the usage of your application.

Node.JS

A server side technology which allows you to write Javascript at server side. Node.JS is really fast and suitable for server side of mobile applications and simple web sites where there is no CPU intensive processing.

Google Go

A new programming language from Google which mainly focus on concurrency and speed of compilation.

WinRT

New programming model from Microsoft for Windows 8 and future versions. The applications called Metro style apps run in a sandboxed environment. It support C++ COM oriented programming .But now there is another layer on top of that to support .Net and its languages.

NuGet

A package management mechanism for .Net applications. You can download nuget packages via Visual Studio and add to your projects. It does the versioning of the libraries as well.

New relic

This is one place to monitor performance of all the technology stacks used in the application. It supports .Net or Java  application monitoring, SQL performance, transaction tracing etc...

Storage & Database

NOSQL

General term to denote the databases which don’t need SQL queries to access data. These are focused on fast retrieval rather than ACID.

MongoDB

This is a document database which uses NOSQL. Supports indexing, replication & load balancing.

HBase

HBase is an open source, non-relational, distributed database modeled after Google's BigTable .It is used by Facebook for messaging messaging.

CouchDB

Another NOSQL database which uses JSON to store data. CouchDB supports ReST API and mainly targeted for offline usage.

Redis

This is a key value pair stored in memory. Redis can be accessed from network as well which makes it a caching mechanism.

Hope I can add more. The reason for this post is I got inspired by the technology radar by thoughtworks and thought of adding some description to the words where you will not get the details about technologies from their image.

Monday, August 13, 2012

Computer is a Turing machine

Some fact about Turing machine

  • It is a machine which can manipulate data based on instructions given.
  • If a machine can act like or simulate any other Turing machine by accepting different instructions, it is known as Universal Turing Machine.
  • Today’s computers are all works on the above principle except they manipulate data in high speed and parallel.
  • This machine was first described by Alan Turing in 1936.He is known as “Father of computer science”
  • Alan Turing described the machine using tape and head where the tape contains data and a head can move the tape and modify tape contents according to the rules. The difference with modern computers is tape is replaced by main memory (RAM) and head replaced by Processor.
  • Alan Turing also expected that at some time in future there will be intelligent Turing machines (AI machines) and he suggested a test to prove whether its actually intelligent known as Turing test.
  • The above test  can only be conducted by a human.
  • You can see a small Turing machine in action online here.

This is a must have knowledge for every software engineer to create better machine friendly applications.

Tuesday, August 7, 2012

Useful links to HTML5

I don't think you have any doubt about HTML 5 as future technology. Below are some links which I think useful for HTML5 learners.
Tutorials
Browser compatibility
Now the HTML5 is in evolving phase so we cannot expect every browser to render the tags properly.Sometimes the browser may not have the support for that tag. Below are some links to deal with that
HTML5 slide show technologies
HTML 5 is really good to create stunning presentations like Microsoft Powerpoint. I can strongly say that at some point in future the HTML5 will replace the Microsoft Powerpoint. Hope the next version of Power point itself will have "Save As HTML 5 slide show" menu option :-)

The main advantage is we can host the html page in web and share easily without a need for extra application.ie simply web based slide show

Q&A
 Hope I can add more...