Must Read Guest Post – Electrical Concepts in Bollywood

I always wanted to share this story with you all. The story is about the analogies, or to be precise Latch-On, I’ve made for electrical concepts. This happened, when I was pursuing my Diploma in Electrical Engineering, on a Teacher’s day, one of my teachers asked me to teach something to the students. And rashly, I thought of this story and everyone liked it. Now, I always make such latch-ons for everything which I want to remember for life.

In electrical, we talk a lot about positive terminal, negative terminal, potential difference, direction of current, and direction of electrons, resistance and what not. Let’s see, how our Bollywood movies represent electrical engineering.

In a typical Bollywood film, there is this Hero, Shahrukh Khan (A Positive terminal or pole), who is always attracted to this heroine called Kajol (A Negative terminal or pole). And as you know, guys always run behind girls. Just like that Shahrukh was always running behind Kajol. Yes, you can see lots of movies of them, K3G, KKHH, DTPH, DDLJ and many more. If you’re a movie freak, you’ll understand what I mean when I say K3G.

And here in electrical engineering current flows from positive terminal towards negative terminal.

Now, there are some movies, in which Shahrukh had a one sided affection towards Kajol and Kajol was not at all interested in him. This is doleful one sided affair. And can be found in movies like Anjam, Darr, etc… In case of electrical engineering, Diode represents this one side affection. When Diode is used, current can flow ONLY in one direction. Either Hero loves a Heroine OR Heroine loves a Hero. No two sided traffic is allowed.

However, there were some movies like Sapaney (at that time called as Right Angled Triangle of Love) and Duniya Dilwalon Ki (at that time known as Equilateral Triangle of Love), which has one heroine and two heroes chasing her. No wonder, I find the similarities in Transistor, which is a three terminal (P-N-P) device. And may be sometime N (heroine in this case) more infatuated with left P (Prabhudeva) or sometimes left P (Arvind Swami).

Now, in typical Bollywood film, there is villain, ladaki ka baap. Yes, girl’s father is always against the love life of these kids. In electrical engineering we have same effect called Resistance, which actually resists OR opposes the flow of current i.e. from hero chasing his dream girl or vice a versa.

Now, there are some effects of electric current. These effects are magnetic effect and heating effect. Well, as hero and heroine are attracted towards each other, represents the magnetic effect of their current, oops, should I say love? And for heating effect, I better close my mouth over here and give you an opportunity to think about. And build more concepts from here. :P

Seriously, my funda is if you want to learn something, you need to make it look like with your daily life. Or at least with the things you enjoay, may be its food, movies, whatever you enjoy the most. Just like I made this resemblance of Bollywood and Electrical, I’ve another analogy of Microsoft .NET framework and hotel industry. You can check it out in my previous posts.

You need to make it weird; you need to make it simple. This will help you to clear your concepts and understand the things more transparently. Mugging up is not the solution.

I hope you enjoyed it.

Namaste

Mayur Tendulkar http://www.mayurtendulkar.com/

Revisiting – Device Development

Technology is amazing and has changed itself and our life – significantly. We’ve seen computers filling entire room and heating up like hell. In this day and age, we call them Personal Computers (PC), sometimes which can be carried anywhere in a form of Laptop, Personal Digital Assistant (PDA) or even a small embedded ‘smart-device’. These devices also include mobile phones, PDAs, ATM machines, Kiosks, Tablet PCs, Robots, Electronic toys, Music systems, digital cameras and what not. And these small devices are capable of doing lots of things and that too within a fraction of a second. You just need to wish (or should I say ‘program them’) and these devices will obey the command.

Programming these smart-devices is exigent task. Developers don’t have that luxury of GBs of RAM OR TBs of hard-drive space OR GHz of Processing power with 32 OR 64 bit addressing space from a desktop OR even millions of pixels and thousands of colors hogging up screen OR even 24x7x365 broadband connectivity.

When it comes to smart-device programming, developers need to mull over many scenarios. Most of the today’s smart-devices still have 100-200 MHz processing power or even less with small addressing space like 8-bits OR 16 bits. These devices don’t have hard-drive and by and large they depend upon flash memory of MBs and termed as ROM. These devices also have a constraint on RAM. Mostly these devices don’t have a display screen (called as headless device) or if they do have, then it might be in a size of 240×320 with only selected color scheme. Even these specifications change from device to device and according to the position in which device is held like horizontally OR vertically. Sometimes, these devices have limited connectivity like Wi-Fi, Infrared, Bluetooth, GPRS, Cellular network or sometimes no connectivity at all. And as a developer, we need to think about how the application will behave in these scenarios.

There are lots of technologies out there to help us command these devices and address these scenarios. Depending on the type of device, its working process model, environment conditions, cost and risks associated, development process, time to market these devices and last but not least – interest of manufacturer, developers can choose any technology which suits and interests them.

These devices can be powered by technologies like Microsoft Windows Embedded family, Linux, Symbian, iPhone, Android, etc. and can be programmed by C, C++ and Java. And nowadays developers can choose VB.NET or C# as well – whichever is perfect for them.

There is subtle difference between writing applications for desktop/web and these devices. Developers build apps for desktop OR web and just deploy it. But in case of smart-device, if the device is a brand new custom made device, perhaps developers would need to have their own operating system running on it e.g. Kiosks, ATM machines have a custom made OS. And then, developers will write an application which will run on top of it. After all this, what if developers don’t have access to a real device?

Does it look pretty complicated? Well, it’s easy once we get our hands dirty with some practical stuff.

In next few blog-posts, I’m planning to share my understanding of Windows Mobile, Windows Embedded, Symbian, Android and iPhone with you.

So, stay tuned and keep looking for further updates on technological world.

Namaste!

Mayur Tendulkar

LINQ – Introduction to Language INtegrated Query

Envisage a situation where, there are 20 people in a room and all of them are from diverse places. They don’t understand any common language and now – you’ve to address them. Same ways, now visualize, there are many different platforms – which doesn’t have anything in common – and you need to build one solution which will run on all of these platforms. Well, there are many ways to handle these kind of scenarios. You can call translators/interpreters OR ask everyone in the room to learn, English. The second option looks logical. In case of different platforms – we already have solutions as Sun J2EE OR Microsoft .NET. These technologies provides an abstraction layer like mechanism, to write code on one platform, which can run on other platform.

Now, we have handled these 20 people scenario and different platform scenario – but world doesn’t end over here.

There are many issues with traditional systems and LINQ tries to surmount them. Lets understand those issues first, so we’ll know WHY we need LINQ.

  • As we all have some familiarity with software application development we comprehend that every software we develop, deals with data. This data can be in any form – it can be variables, array of variables, files OR file system, databases OR data-stores, Windows Management Instrumentation (WMI) Store, web services and what not. Now, even this can become more finicky like, whether its NTFS File System OR FAT32? Whether its SQL, Oracle, MySQL database? Whether its XML or a simple Access File or flat file? And as we know, dealing with different technologies means learning it from scratch – once again. If we want to access data from files, we need to learn file system APIs. If we want to access data from SQL Database, we need to learn data access APIs contained within ADO.NET. Likewise, different APIs for different technologies. So the first annoyance with dealing with software development is – learn different data access APIs related to different data access technologies.
  • Even though, we have ADO.NET, to access data from various data-sources, the APIs deals with connections , tables, rows, columns, records, but languages that we use deals with Objects. So, both database systems and programming languages have different paradigm of programming. This in short means a lot of niggling stuff between database and programming languages.
  • Developers, by default, are master in a particular language. It can be C/C++, C# or someone will be like me who simply loves VB. All of these languages have different syntax. Many times, it’s not possible for developers to learn all these languages OR master their syntax. And learning a new language is a big task. It becomes tedious to learn different languages which deals with data like T-SQL in general and learn another language which deals with objects.
  • Now, as we deal with different data sources, we need to deal with data-type mismatch. The length of string in SQL Server will be different than that of in C# likewise there are many more different data types and suppose we change database server (from Oracle to SQL Server) then it becomes more hectic as we might need to change almost all portion of Data Access Layer (if system architecture is not designed to deal with it) hence many data sources and object oriented languages have different set of data-types.

Like these, there are many issues with existing systems when we talk about accessing OR manipulating data. LINQ tries to overcome all these limitations by providing

  • Uniform mechanism for dealing with any data source – whether its Array, SQL Server Database, XML Dataset, XML file, or any other data source
  • Object-Relationship Mapping – which maps tables in database with Objects in applications
  • Language Integrated Support – syntax for accessing/manipulating data is integrated with your favourite language.

There can be numerous advantages to LINQ – but as per my point of view (OR as developer point of view because I’m also a developer J) these three are the major advantages of LINQ.

In next few posts – I’ll explain how we can use LINQ in our applications i.e. a practical approach.

Happy Coding | Mayur Tendulkar