My Mind Leaks

Software, Programming, Architecture & More

  • Home
  • My Works
  • Archives
  • About
  • Personal

Tamil dictionary for the Computer Words

Posted by Maheshwaran Subramaniya on July 10th, 2010  
Leave comment
Posted in: Articles on Computer Science     

I had a tamil dictionary for the Computer Words, just thought of sharing it. This one is prepared by Anna University ( Valarmathi mandram ) in 1998.

http://www.mymindleaks.com/wp-content/uploads/2010/07/2421484-Tamil-Technical-Computer-Dictionary.pdf

Computing the Services – Part 2: Characteristics

Posted by Maheshwaran Subramaniya on April 20th, 2010  
Leave comment
Posted in: Articles on Computer Science     

Continuing with the Computing the Services Part – 1, We shall take a look at what each characteristics of services means in the computer world. Defining characteristics is very important aspect in any design. You have to define your design, to work in the way you describe and you expect to it.

The characteristics can be further grouped into

  • Structural characteristics allow you to make sure that you create services which are well maintainable and re-usable
  • Operational characteristics allow you to make sure that the services are quick, fail-proof and responsive.

Our HiTech bank needs a enterprise application to be designed, which obviously requires a lot of design. But our HiTech bank will provide basic services like withdrawal and deposits, via various interfaces like Online, ATM and Card Readers.

Granular

The services defined should be granular in nature. Granularity comes when comes the matter of re-usability and maintainability. More granular is the service, more the re-usability and maintainability.Consider the services which does the deposit & withdraw transaction in our HiTech Bank.

Bank.deposit( username, password, PIN, deposit-amount, account# ):
   if PIN = BLANK  //Online mode
    Check if the username, password is valid
    Check if the username, password is valid for account#

  if PIN IS NOT BLANK
    Check if PIN is valid for the account
    Open #account
    Add deposit-amount to the existing amount in #account
    Close #account
Bank.withdraw( username, password, PIN, withdraw-amount, account# ):
    if PIN = BLANK:  //Online mode
        Check if the username, password is valid
        Check if the username, password is valid for account#

    if PIN IS NOT BLANK:
        Check if PIN is valid for the account
        Open account#
        Reduce withdraw-amount to the existing amount in #account
        Close account#

The above code is not granular and not re-usable. The reason is, lets assume that in future the HiTech bank is adding more user interface devices and has different authentication system, say biometrics. Now, you are ought to change the authentication code in your module. Now, you can feel the pain of modifying it.Also, the transaction are tied with the authentication process, which logically shouldn’t be. Because, transaction is a separate Unit of Work. If you transaction fails, it’s not necessary that your authentication also fails.

computing the services class restructure1 thumb21 Computing the Services   Part 2: CharacteristicsFig 1. Decomposing the methods to create more granular methods.

Bank.authenticate( username, password, PIN, account#) :
    if PIN = BLANK :  //Online mode
        Check if the username, password is valid
        Check if the username, password is valid for account#
      if PIN IS NOT BLANK :
        Check if PIN is valid for the account

Bank.deposit( deposit-amount, account# ):
    Open account#
    Add deposit-amount to the existing amount in #account
    Close account#

Bank.withdraw(  withdraw-amount, account# ):
    Open account#
    Reduce withdraw-amount to the existing amount in #account
    Close account#

Bank.doTransaction( transaction, account, amount, username, password, PIN ):
    Bank.authenticate( username , password, PIN)
    if transaction = Deposit
        Bank.deposit( amount, account# )
    if transaction = Withdraw
        Bank.withdraw( amount, account# )

This is the how you make granular services. The advantages of this is you have good maintainability, easy code modification and more re-usability. In future, you change the authentication code to authenticate with another device / interface, no matter what you change , your change is evenly applied across the service.

Interface

An Interface will enable a device or program enabling a program to communicate with another program. In UNIX, one of the cool interface is the “|” pipe symbol. You can combine more than one UNIX command via the “|” ( pipe ). Pipe acts as an interface between two programs.

cat *.java | grep “String.to”

It is one of the most important characteristics to define. When a service is defined, make sure that it has proper interface to communicate to the business services. In our bank ( HiTech Bank) banking situation, you need services to authenticate the user / customer before accessing the account. You should at least define these service, which in turn does the appropriate authentication.

Human Interface Services Interfaces Contract between Service & Interface Matches?
ATM Machine / Card Reader Bank.authenticate ( PIN , account# ) BankInterface.authenticate ( PIN, Name ) The contract doesn’t match
Online / Mobile app Bank.authenticate ( username, password, account# ) BankInterface.authenticate( username,password, account#) Contract matches

If the HiTech Bank haven’t defined a proper interface to read the card but just to type in the PIN, the customers will not be able to use the ATM machines / Card readers even if the service to authenticate is available.

computing the services class bank interaction1 thumb12 Computing the Services   Part 2: CharacteristicsFig 2. Bank implementing Bank Interface and other User Interfaces using the bank interface

We shall continue with the remaining characteristics in the next post.

Numbers in Tamil language – Why zero might not be important

Posted by Maheshwaran Subramaniya on April 4th, 2010  
3 Comments
Posted in: Articles on Mathematics     

Every civilization had their own representation of numbers in their age. Like what we have now , the Arabic Numerals 1 2. This representation is no more in use as universally as the arabic numerals that are taught now. Though different civilizations had different glyphs to represent number, everyone have understood the importance of numbers and found a way to represent them and did known how to handle it.

In Tamil, Number is called as “EN” ( Tamil:???) and “Digit” is called as Illakangal ( Tamil: ??????? )

Numbers in Tamil

Tamil language instructs to write numbers based on how the pronunciation is made rather than how the digits are spelled.

number pronounce spell1 thumb Numbers in Tamil language   Why zero might not be importantFig 1. How a number is spelled and pronounced

Below list maps the modern number we use, to the tamil glyphs that was used by the Tamils. It is interesting to find that the list doesn’t contain a tamil representation for equivalent for zero. I’m wondering why the tamil havent created any glyph for “ZERO”. Did they think that it’s not mandatory that one should require ZERO to write down numbers? or did they find ZERO is ‘evil’? or ZERO is not necessarily to write down any number in this world, other than ZERO.

list numbers tamil1 thumb Numbers in Tamil language   Why zero might not be importantFig 2. Listing the tamil glyphs for modern numbers we use

ZERO, un-important in Tamil numbers?

Even in our modern world, we don’t use zero when we pronounce the number. We don’t say , “One Hundred Zero Three” for 103. If that is the text, it would literally means “One followed by Hundred Zeros and a Three“. So, we are accustomed to say, “One Hundred and Three“. We can see that we don’t require ZERO when we say a number. It’s only required when we spell the number. But Tamils haven’t or ‘didn’t wanted’ to have two formats to say a number ( pronouncing & spelling ). This could be one reason that I can think of why ZERO is missing in the number set.

INFITT ( International Forum for Information Technology in Tami) aka “??????? (Uttamam)” have made proposal to include ZERO into the tamil number glyph’s list and createa UNICODE symbol for it in the tamil language font.

I tried to translate few numbers from arabic to tamil 3and here is on how to write numbers in tamil. You can also try few and if possible share it.

how to write numbers in tamil1 thumb Numbers in Tamil language   Why zero might not be importantFig 3. Some sample on how to write a number

One thing I could realize is that, in olden days people in any civilization ( not Babylons ) who didn’t had ZEROs in their set, to write / speak about any number.

  1. The Story of Mathematics – Richard Mankiewicz ↩
  2. Number System – http://www.math.wichita.edu/history/topics/num-sys.html ↩
  3. Tamil Unicode List – http://www.unicode.org/notes/tn21/tamil_numbers.pdf ↩

Computing the Services – Part 1: Introduction

Posted by Maheshwaran Subramaniya on March 31st, 2010  
1 Comment
Posted in: Articles on Computer Science     

In my team we were talking about services and then the web services, and when I was talking to a friend of mine about the services stuff, he posted a blank question. “What is a service? and how different is that from a method”. His question is correct, I feel that most of the people who design services in this complex computing world are not still clear what is a service and not sure of how different is a programming language methods from the service and what it is intent to do?

What is a service?

interaction client service Computing the Services   Part 1: Introduction Lets start exploring the service. Let me take you to the understanding of what does a service means in the real world and how is that transformed into the computing world. Consider a simple banking situation, where the customer is willing to get some service to fulfil his / her needs. interaction between a customer and the service provider A person needs to deposit some money into the account of the person. Hence , deposit is a service provided by the bank to make customer safe guard the money into the bank’s vault. Similarly, withdrawal, money transfers etc., are some of the service provided by a service provider i.e bank.

In layman’s term , A service is “an act of assistance”.

But some service oriented company, does exactly same job as this.

dealer Computing the Services   Part 1: Introduction

source: dealer refresh

So, you place computers in the place of humans. But still, how do you make sure that the computers perform the same task as of humans ( of-course, not the one like above ) and deliver the expected service as good as a human ( is it?? ). Hence this will lead to define some of the characteristics of good service.

Characteristics of a good service.

This table give you an complete idea on how a delivered service should be. Just gathering together.

What do the customer expect

What does it mean in the computer world

Provide a well defined mode / way to receive the data to start the service Interface
Information collected to process the request should be minimal Granular
Ability to process information without asking too much questions Mostly stateful & sometimes stateless
Ability to finish the process as quick as possible and respond back to customer Speed
Should finish the requested transaction flawless Correct
Should finish the requested transaction without any interruption Robust
Should finish the transaction successfully and completely Complete

I will detail out the each of the characteristics in the next article.

[ Updated: Updated the description of the “State” of the service ]


My Mind Leaks plugged out Bluehost and plugged in Webfaction

Posted by Maheshwaran Subramaniya on January 14th, 2010  
Leave comment
Posted in: Blog     

I wanted to write about my migration to new hosting. I write this post to say that why I’m leaving Bluehost and why did I chose Webfaction. Loyal Bluehost hosters dont get furious, this is my personal opinion on why I switched. Now, this blog is powered by Webfaction. Moving a blog to a new hosting provider is  as exiting as moving to a new city.  Today I completely moved my blog from Bluehost to Webfaction. Believing Change is always constant, I keep on looking for some kind of change. Now, it’s time to change my blog’s hosting provider.

So, why did I change?

There is a strong intention for moving out from Bluehost. Despite a fairly a good service and good customer support, Bluehost is still failed to cater my needs. Bluehost supports PHP, Ruby, Python, Rails etc., but not good enough web frameworks except Rails.
I wanted Python and Django web-framework. Though you can still build Django framework with some spoof [http://www.bluehostforum.com/showthread.php?t=715],  it’s still makes you feel like you are doing the olden days “Content-Scraping“, i.e you are forcing the system to get you what it is not supposed to give you. Also, the fcgi script which is inserted between the python process and web request is not sure how it can handle the loads.

Also, when I first took the Bluehost, I was impressed with the following items

  • Unlimited Space
  • Unlimited Bandwith
  • Lots of tools, scripting language etc.,
  • WordPress

But, after a quite an amount of time, when I look back and see, I haven’t used those features to full extend. So, I’ve jotted few questions.

  • Am I really making use of the  ‘Unlimited’ marketing terms?
  • Does the hosting provider solve my programming needs? Am I using all the tools he gives?
  • Will I be able to host self-developed apps?
  • What about the system Performance? Am I compromising with Unlimited ‘blah-blah’?
  • Are the hosting service ready to setup the web framework I am asking for?
  • At-last, am I happy with my current hosting provider?

Am I really making use of the  ‘Unlimited’ marketing terms?

To my perspective the Unlimited bandwidth and Unlimited disk space is kind of a marketing strategy compared to the real usability perspective. Its real hard for a single blog to fill a more than 200 GB if he writes 10 posts per day, 365 days for 50 years and each post is of size 1000 KiloBytes.

So, for a blog having a unlimited diskspace is just a too much. For bandwidth, a site with 200,000 hits per month viewing 1000 KiloBytes of data on an average would just occupy ~200 GB of bandwidth. Hence I’m satisfied with Webfaction, as my blog is not a top hit blog to get 200,000 hits per month.

So, Webfaction have given me a satisfiable and stomach full of disk-space and bandwidth to survive with.

Does the hosting provider solve my programming needs?

Yes and No. Yes Bluehost gives a set of tools like PHP, Python, Ruby, MySQL / PostgreSQL. Really appreciate it. Except rails, they aren’t providing any web frameworks namely Django  or any other framework etc., Also, power programming includes, access to most of the tools via shell. Having access to most of the utils like gcc, emacs etc., provides a good interface to develop any utilities and use them as CGI service. Even though you have PHP, still I was not given access to configure the PHP to solve my programming needs.  And, I failed to love Bluehost for not providing one of my cool tool ‘wget’.

Will I be able to host self-developed apps?

Yes only if you have developed the application in PHP / Rails. No other programming language framework was supported by Bluehost. You can write script, but not a full scale application except PHP / Rails. Now, looking at Webfaction, I could host applications developed in the following frameworks.

  • CherryPy
  • Django
  • Drupal
  • Pylons
  • Python (Apache with mod_python or WSGI)
  • Ruby on Rails
  • Static/CGI/PHP
  • TurboGears
  • WordPress
  • Zope

So, I have enough framework on my plates to play with it. Bluehost again fails in this. They provide excellent blog support ( WordPress, Drupal, Joomla, Wiki ), but no frameworks.

What about the system Performance? Am I compromising with Unlimited ‘blah-blah’?

In the beginning, I was never worried about the performance of the system provided, due to the magic-sweet-googly-woogly word ‘Unlimited blah-blah’. That magic word makes the customer, forget about few important aspects of the service, i.e PERFORMANCE. Bluehost provides a standard Quad-Core machine, on a sharing basis. Webfaction provides a slice of CPU & Computing Memory whatever the load be. So, you always get that processing speed irrespective of your neighboring host apps processing in the same server.

Since, Bluehost aren’t able to provide slices / VPS kind of service, I believe they are reluctant on providing web frameworks or application frameworks, which deeply affects the performance.

Are the hosting service ready to setup the web framework I am asking for?

Yes, Webfaction openly welcomes to ask for any specific tools which they can install and make their customer happy. Bluehost, has most of the tools already built in, but they should expand up their services to provide web frameworks.

With the above mentioned items, I’m satisfied with the Webfaction’s service and happy to host with them. More over their monthly billing support was one of the good feature to attract customers. Their pricing is also very comfortable for people who have limited fund to run and still get good performance, disk space, band width and more. Webfaction, seems to be happy welcoming customers and make customers happy even when they leave Webfaction, which is most important. But, still Webfaction is still lacking few things, like Little Knowledge base, No UI for file manager, Cron Jobs etc.,

Some alternatives to Webfaction

  1. Slicehost
  2. Rackspace
  3. Media Temple
     Page 1 of 13  1  2  3  4  5 » ...  Last » 

    Search  My Mind Leaks

    Connect to  My Mind Leaks

    • My Mind Leaks - Facebook
    • Maheshwaran Subramaniya - Facebook
    • Twitter - @mymindleaks
    • RSS
    • Subscribe by Email

    Recent In My Mind Leaks

    Tamil dictionary for the Computer Words
    Computing the Services – Part 2: Characteristics
    Numbers in Tamil language – Why zero might not be important
    Computing the Services – Part 1: Introduction
    My Mind Leaks plugged out Bluehost and plugged in Webfaction
    Does pretty links & SEO URL really sensible for search engines?
    Firefox bug reports – Some interesting facts
    Firefox 3.5 beta “Restore Session” has got smarter
    Know it: Terms of Service
    Google Book Tip: Manage Your Library via Barcode

    Articles on Software & Programming

    Tamil dictionary for the Computer Words
    Computing the Services – Part 2: Characteristics
    Computing the Services – Part 1: Introduction
    Does pretty links & SEO URL really sensible for search engines?
    Object Oriented Programming – Encapsulation is not just hiding data!
    Object Oriented Programming – Abstraction
    Big Code, Good Code!

    Stories on Enterprise Software

    Resources In My Mind Leaks

    Best Apple iPhone Apps
    Object Oriented Programming – Encapsulation is not just hiding data!
    Use Shell: for quick Windows XP & Vista Run Commands
    Free Online File Storage & Sharings Services
    9 Must have Mozilla Songbird Plugin
    113 Useful Windows Commands
    Hack GMail Search – Part 1
    14 Tools that a blogger cannot live without these
    How to Request a New IP address?
    Hack Samsung Mobile Codes

    Popular Tags

    advantages of Web 2.0 Apple Article blogosphere bookmaking Browser collaboration commands Computer articles Featured firefox Firefox 3 GMail Google Google Adsense certificate error google docs Google Reader guide hackers Hacks howto Know-It Mac Microsoft Mozilla Songbird object oriented programming Programming pull technology push technology Resources Run Commands Safari Search Engine Optimization seo Service oriented computing Shell Command SOA Songbird Songbird Plugins statistics Tips tips-tricks tutorial windows Windows XP
    ©2006-2010 My Mind Leaks
    Disclaimer: All the contents in this blog is fully copyrighted to My Mind Leaks. Original work of mine can be copied from this blog with prior permission. Also, all the views expressed in this blog are no where connected to my employer. All the comments are views of the respective authors.
    The Forte theme by Moses Francis