Reading, writing & coding


Recently I read an interesting news in Times of India. It is about all the software tools useful for kids. So let me share it along with relevant URL

Times of India Article on May 13, 2014, Bangalore edition. Reading, Writing and coding

  1. Gamestar Mechanic : Home page: https://gamestarmechanic.com/ Wikipedia article: http://en.wikipedia.org/wiki/Gamestar_Mechanic Learning Guide Click here
  2. Tynker : Home page: http://www.tynker.com/ 
  3. Scratch : It is available with offline version too. Home page: http://scratch.mit.edu/ Wikipedia article : http://en.wikipedia.org/wiki/Scratch_(programming_language) TED Talk on Scratch. Click here
  4. Move the Turtle : OS : iOS, Home page : http://movetheturtle.com/ 
  5. Hopscotch Home page: https://www.gethopscotch.com/ Wikipedia Article : http://en.wikipedia.org/wiki/Hopscotch_(programming_language) 
  6. Daisy the Dinosaur Home page: http://www.freetech4teachers.com/ 
  7. Cargo-Bot Home page : http://twolivesleft.com/CargoBot/

As per Wikipedia there are few more educational programming languages include:

Here is list of references where you get to know about more such programming languages


Happy Parenting


Today, Let me share my notes about a session on Parenting in my office Aricent At the end, I have captured few more useful resources about parenting specially for readers of this blog "Express YourSelf !

As parents we always have many basic expectations from our kids. For example, he should brush his teeth before sleep. He should eat at his own. He should go to bad on time at 10 PM. He should not eat chocolates. He should do his homework. He should perform well in examinations.  The list is long and difficult to achieve. However all these things are achievable and possible. Parents should keep showing responsibility to their children. 

However, as parents we often commit few common mistakes as below. 


Blaming children. 
Accusing children.  
We even threaten our kids. 
We command them. 
We delivered a big lecture to our children about dos and donts. 
We give warning. 
We compare them with other kids. 
Sarcasms: We say, “You and homework? Never” 

All the above mentioned acts, brings down self-esteem of children drastically. It creates inferiority complex.  All parents want, their kid to become a successful citizen. They want their kid to be independent as well as sensible. Self – esteem is very crucial to become independent.  We all know that, self esteem does not come naturally. A very successful person once, quote that his 3/4th life is empty. How surprising such statement is !! As we the people are looking at successful person as a role model. However, without self-esteem, success is nothing. Today’s education system is not sufficient to make a child, independent, responsible and with full of self-esteem. The self-esteem is much more important than academic knowledge he receives in 24 years from school and college. 

Maria Montessori observed four distinct periods, or "planes", in human development. To know more details, click here

1. From birth to six years, 
2. From six to twelve, 
3. From twelve to eighteen, and 
4. From eighteen to twenty-four. 

She saw different characteristics, learning modes, and developmental imperatives are active in each of these planes, and called for educational approaches specific to each period. At the age of six months, a kid started noticing and observing the mouth / leaps movement, when one speaks.  For the first two years of life, all kids are just observing the surrounding environment and listening to various sounds. First two years are very important for the overall development of a child.

As per Montessori education approach, each child is unique. Parents can influence the child at very large extent. Parents play a major role consciously or unconsciously for the development of child. We as parents should create right environment for the kid. We should take following actions for that. 

1. Encourage independence

Parent should encourage independence as much as possible for 3 to 5 years old kid. The kid should able to take his food himself, with his fingers/hands at age of 2.5 years. Then, we should allow doing their work themselves. Allow your kid to press lift button. We should feel proud that they have tried. Show respect and appreciate for a child’s struggle/efforts. Do not instantly give answer. Give sources. By all means, we should provide them independence mentally and physically. Kid may get longer time to become independent, in the presence of made or grand parents. We can give them their own room, so they feel more independent, may be at age of 2 years. 

In our day to day life, we should never deal with situation on behalf of our child. Let the child handle himself or herself. Otherwise, his/her personality does not unfold. Let them deal their situation themselves. Suppose, it complaints that his friend has beaten him. Then ask him, “What you want to do?”  As parents, we should never fight with his friend or his friend’s parents. We should educate our kid, to accept the fact and ask him, now, what he want to do. Then your kid will start thinking independently.  

Just Remember, the child cannot become exactly like you. He has his own life, own way of thinking. Sometimes, we as parents deal his situation as per our thinking. 

2. Freedom within limits

Make your kids, mentally independent. Treat them as individual to make choice.  

Suppose, you are going out for party. Do not make choice for him about what he should put on. Ask him what he wants to put on. He may choose night dress !. Then just repeat the options.  Educate with patience about party dress and night dress. 

Same applies for food alternatives. Suppose you all go to a restaurant. Then allow the kid to make choice for himself to order. Yes, due to ignorance, he may make wrong choice and waste food. Just remind him about such incident from past. 

Sometime the kid may have difference of opinion. First ask why? Try to understand his point of view.  The interaction/dialogue is important. 

3. Rewards are external motivation. 

Children are intrinsic motivated. Do not kill that motivation. Child has no value for external rewards, initially. It is shocking, that nowadays parents gifts iPad to kid just for good performance in LKG !!

If you attach performance with outside reward, he will perform just because of reward. It creates dependency on external motivation. We are also removing that Eureka moment.  You can slowly delink the reward and performance for the kid. Like just say, “If you do that, you, yourself will be so happy.”

4. Punishment

It causes more harm. It instills fear in child. It ruined his self esteem. Once a child commit some mistake in school and hide himself inside bench. He was not ready at all to come out. He had fear of punishment from parents. 

Alternative of punishment
  • Get healthy relationship with mistake. “It is ok” 
  • Express disapproval. “I am sorry this is not the way to talk with adult.” Just focus exactly on the problem. Not consequences. 
  • State expectations clearly.
  • Take some visible action. Like declare you will not take him for a picnic/circus/exhibition/movie. Then stick to your words and as punishment do not take him with you. 

5. How to praise?

As parents, we must appreciate and praise the kid for his good behavior, without any reward.  It must not be blanket praise. Describe what you see. Describe what you feel. Giving a word what the kid is. For Example, “Wow! You already started.” “ My goodness you have done it.” Etc.

6. Being a role model

The parents are the most biggest figure for child. He observer daily that, how independent his parents are. They can choose their cloth, food. They can go wherever they wish. So behave nicely in front of kids. Do not get defensive when your child caches your misbehaving. Suppose you said sorry for yelling at him and continue habit of yelling then there is no meaning. 

Do not accuse child in front of him. Do not talk negative aspects in back also. Sometimes, kids/teenagers get shocked, “How can my parents say this to me?” 

There is a very good book, ‘How to talk so kids will listen and how to listen so kids will talk’. The book describes five essential skills about talking with children. 
  1. Describe
  2. Give information: Keep repeating the same. Feel have a choice
  3. Say it with a word. A kid cannot make sense of lots of word, particularly when he is crying or angry.  Let him calm down. Just say one word, “Stop”, then you can talk. 
  4. Talking about your feeling. For example, “I do not like it.”
  5. Writing a note: to remind the kid. 
For details please refer the Powerpoint slidedeck. 



Now let’s examine two scenarios, closing matching with real life incidents. 

Scenario 1. In the morning a Kid named A spilled milk. His mother shouted him and blamed him he always do such mistakes. His mother did cleaning. The kid got late. Somehow he could catch the school bus and reached the school. 

Scenario 2. In the morning a Kid named B spilled milk. His mother smiled and informed him, “there is a mob”. The kid cleaned the floor. He also got late. Somehow he could catch the school bus and reached the school. 

Now, at school, teacher asked someone to become a volunteer for a task. Obviously the kid B will stand up. As he grow, he will take more responsibility and grow up. 

Summary: 

Involve kids in decision making. Give then environment to grow to develop, that is your task. Give them independence, freedom within limits. Child will create his work himself. Just have respect for a child’s natural psychological development. A kid can do self-evaluation: “This is my best for today but not best for ever”

Question and Answer

What to do, if two kids are fighting?
This is called “Sibling rivalry” It is quite common.  It automatically result in competition. The fighting  should not be physical or verbal.  Make sure, you do not introduce it. Just ignore it. Sometime the elder one may feel frustration. Many times child scare to express. Give them words. Ask the younger one to speak , “Do not bit me up”

The kid have limited vocabulary. Sometime they do not distinguish between what and why. They may keep asking the same question.  They may not understand our answers. Next time, you can give different answer. 

About gadgets. 
Make sure, not to give cellphone to 2.5 to 3 year old kid. At 3 years kid may hooked up to game in cellphone. No game till 8 years. Make sure, they do not glue to TV either. Particular watching TV and eating.  No TV, No cellphone, No computer while eating. Even learning CD, games for kid with age of less than 8 years is not good. Just introduce to book and many other things. Not to computer. 

Handling non-genuine demand. 
Have more humor/fun . Say that, “I do not deny your wish. Sometime we will.” Be more relaxed. 

Son is rebellious, at 3 years saying “I am going out”
He is just seeking for attention.  If you punish to stand in a corner, then after a while, the corner does not serve any purpose. You just say “Stop” firmly. Just spend quality time with kids. Here quality time means undivided attention.

Yes, parenting is a tough job. Not easy. Particularly for first 10 years. After then they will be at their own. Irrespective, of you know skill of parenting or not, children will grow up. However with some skill, some techniques, some knowledge, you will enjoy parenting. Sometime parents scared by their Teenage son/daughter. There nothing to scare. The teenagers are like source of enthusiasm and energy. 

Wishing you "Happy Parenting."

Notes: 


  • This article is result of a session by Ms. Parul, from Formative Age at our Aricent office during September 2012. 
  • Ms. Parul has passion for better parenting.  She has been a child development counselor and consultant for 8 years. She is currently working with Learning Time. She is engaged in parenting workshop for corporate employees. One can reach her at parul@learningtime.co  +91 9845799228
  • Learning Time is the fastest developer and promoter of early education products for last 17 years and it has presence in 10 countries. Learning Time has tie up with psychologists from across the globe who deal with child psychology. 
  • I come across few interesting books. 
  1. There is a book-cum-diary published by BAPS. It is a book. It explains various topics on parenting with facts and figure. Each topic content is limited to single page. After reading a page, parents can discuss and note down their resolution in a blank page. So it is a diary too. To find more details click here
  2. Discovery of the Child by Maria Montessori
  3. Secret of Childhood by Maria Montessori
  • I come across few interesting websites
  1. Guj Mom in Gujarati http://gujmom.com/
  2. Parentree http://www.parentree.in/
  3. many website links are captured about educational resources on this blog. Education Resources 
  • You may like one interesting article about my daughter Ojasvini
Disclaimer: 
  • This is not a verbatim of the speech. The content is reorganized to provide logical flow. 
  • For simplicity I have used pronoun “He/His/Him/Himself” for the kid. However this article is equally applicable for daughter and son both.
  • The article is not for debate or for creating any controversy. This is just my understanding of an old session. The content may useful for parents.

Productive Usage of Eclipse IDE


  1. Abstract

A typical software company uses different tools and templates for various stage of software development life cycle to ensure quality, like different tools for requirements management, coding, static code analysis, configuration management, unit testing, defect tracking, templates for review process etc. This paper attempts to present an alternative to combine most of the tools access under single umbrella of Eclipse IDE. The Eclipse IDE can be extended with various plug-ins available at Eclipse Market place. This paper proposes an Eclipse IDE as an integrated solution to invoke various tools during various stage of software development. So it provides simplicity, productivity and adherence to quality process.

  1. Introduction

Bangalore, India is an IT hub. Here, many IT company focusing on software product development and software services, serving many international client. The Indian software industry is quite mature and following all CMMI standard quality processes. The software development life cycle is divided among various stages like requirement gathering, analysis, design, coding, testing, deployment and maintenance. Each stage has well-defined entry and exit criteria. The quality assurance department deploys various tools, to adhere to quality standards. They are diverse set of tools, specific to organization. Many times, some projects within organization take deviation and use another tools to suite the customers’ requirement. Many times, specific tools are developed in-house.

Here an attempt has been made to put all such tools under single umbrella of Eclipse IDE, with special focus on telecom product.

TABLE I.          Abbreviations & Terminology

CDT
C/C++ Development Tooling
CMMI
Capability Maturity Model Integration
COBOL
COmmon Business-Oriented Language
FAQ
Frequently Asked Question
PHP
Hypertext Preprocessor
SCM
Software Configuration Management
XML
eXtensible Markup Language

  1. Solution Overview

There is common (mis-)belief prevails that Eclipse is an IDE to develop primarily Java applications and sometime C++ also with additional CDT plugin. Eclipse is much more than mere IDE. Its runtime system is based on Equinox. Equinox is an implementation of OSGi core framework specification. This architecture equips Eclipse with many extensible plugins to customize its environment and enhance its functionality. This paper shed lights on hidden features of Eclipse IDE from the perspective of productivity, usefulness and quality process. The next section describes some common features of Eclipse IDE and then subsequent section is about specific feature for telecom application development over Unix like environment.

  IV.        Solution details

                      i.        Design

The Eclipse Modeling Project [reference 1] focuses on the evolution and promotion of model-based development technologies. It provides a unified set of modeling frameworks, tooling, and standards implementations. It includes many tools for software design (like UML), auto code skeleton generation and reverse engineering feature to keep code and design synchronized.

                     ii.        Static Code Analysis

Eclipse has many plugins for checking code style, and static analysis. The popular tools SonarQube and Klocwork both have supports for Eclipse plugin. [references 2 and 3]

                    iii.        Code Review

Jupiter Eclipse Plugin, CodeCollaborator, AgileReview, ReviewMate etc are some of the popular plugins for code review. [reference 11, 12, 13, 14] They have some very useful features like:

1.     The reviewers and author can comment on the code and discuss the same. It creates threaded and contextual conversations.
2.     The review can be either asynchronous or synchronous like chatting.
3.     XML format data storage to simplify use and re-use.
4.     Collects metrics, maintains an audit trail and provides customizable reports
5.     PeerReview Complete is for document review. [reference 15]

                    iv.        SCM : Version Control

Eclipse IDE can be integrated with many software configuration management system. CVS is supported out of the box from Eclipse. Here is list of other such plugins.

TABLE II.         Eclipse plugins for SCM

No.
Version Control System
Popular plugins
1
SVN
Subclipse, Subversive
2
Git
EGit
3
Mercurial
MercurialEclipse

For other SCMs See the Eclipse Marketplace list of plugins on SCM [reference 16]

                     v.        Testing

Eclipse has built in support JUnit for Java-based project. Eclipse CDT release (juno) has built-in support for C/C++ unit testing framework integration. ‘Selenity - Selenium Grid Eclipse Plug-in 1.0.0’ makes easy using Selenium Grid inside Eclipse and running the System tests. [reference 4]

                    vi.        Task Management

Mylyn is a subsystem of Eclipse for task management. It is an open source API implementation of the Task-Focused Interface. It helps a developer work efficiently with many different tasks such as bugs, problem reports or new features. The Mylyn keeps track of all files related to the current task. It focuses on improving productivity by reducing searching, scrolling, and navigation. It also facilitates multitasking, planning, reusing past efforts, and sharing expertise. [reference 6]

In case, Mylyn is not used, then also, Eclipse can be configured with almost all bug tracking system like bugzilla, JIRA etc.






Fig. 1.      Mylyn screenshot


                   vii.        Launching of external application.

Eclipse IDE allows invoking any external tools from drop down menu. The possible common tasks need to be invoke from Eclipse can be

1.     Generate docs using Doxygen
2.     Upload binaries to target platform
3.     Run Lint tools
4.     Translate XML to API Docs. Etc. [reference 7]

    V.        Typical Use case

A telecom project can get benefits of all such useful Eclipse feature. This section highlights additional key features relevant to a C/C++ project, particularly on Unix like system.  

                      i.        VI/emac Editor

Most of the telecom software running on different switches, controller and network elements are developed using C/C++. Many developers prefer simple VI editor for coding and avoid rich GUI.

Eclipse can be enhanced for VI support with Vrapper, VIPlugin etc. [reference 8 and 9] Eclipse has built-in key-binding configuration to emulate emacs. [reference 10] With eclipse, a developer can take advantage of many code editing features like syntax highlighting, code folding etc. Eclipse supports many programming language including C, C++, Python, COBOL, Eiffel, PHP, Ruby, and C#  etc. with additional plugins.

                     ii.        Call-Hierarchy
Sometimes, while coding, one needs to navigate through code to know list of other functions who are calling a particular function. Just right Click on the function and select Open Call Hierarchy. The keyboard shortcut is Ctrl + Alt + H (H for Hierarchy). [reference 17]



Fig. 2.      A typical call-hierarchy screenshot

                    iii.        Build

Generally for a telecom project, software binaries are built using command line make utility. One can set project properties as Makefile project, option as C/C++ build and specify appropriate build command.  Eclipse allows to build application using normal short cut, menu and toolbar. The build output is redirected to console view and at the end of successful build, Project Explorer Build is populated with generated binaries. [reference 18 and 22]

There is list of FAQ for CDT, to get familiarized with it. [reference 19]. For step by step instruction, please refer webinar on “Developing C/C++ Applications with the CDT” [reference 23]

                    iv.        Profiling and tracing

Many developers still prefer Linux/Unix and VI editor combination to build an optimized application using GNU profiling (gprof) and code coverage (gcov) tools.  Eclipse Kepler has Linux Tools. Its profiling framework contains several popular profiling tools into a single location. Its generic call stack view allows users to visualize the call stack per thread over time. Kernel space and user space traces can be analyzed and visualized graphically using LTTng.



Fig. 3.      Linux Tools screenshot

  1. Open Issues

Open issues are yet to be identified. So far not any known issue to implement Eclipse tool for telecom domain.

  1. Conclusion

This paper focus more on typical C/C++ based telecom product. However, Eclipse can address many other domains like mobile application development for Android/ iOS, web based applications, enterprise application, embedded application, cloud based applications development etc. For Visual C++ based application, It is possible to replace Microsoft Visual Studio IDE. [reference 25].

Eclipse IDE is a very wide area. Eclipse has many tools for different programming languages and for different purposes.  The complete list please refer Eclipse Tools Project page. [reference 21] This paper just focused on how to reap benefits of Eclipse for a typical telecom application written in C/C++. Many useful Eclipse IDE features are highlighted with emphasize on quality processes and productivity.

  1. References / Appendix

1.     Eclipse Modeling Project http://www.eclipse.org/modeling/
2.     Klocwork Insight 10.0 Eclipse plugin http://marketplace.eclipse.org/content/klocwork-insight
3.     SonarQube Eclipse plugin
4.     Selenity - Selenium Grid Eclipse Plug-in 1.0.0
5.     Eclipse Marketplace
6.     Mylyn
7.     External tools in eclipse
8.     Vrapper (vim) 0.38.0 https://marketplace.eclipse.org/content/vrapper
9.     viPlugin 2.12.0
10.  Eclipse key binding
11.  Jupiter Eclipse plugin
14.  ReviewMate plugin
15.  Peer Review Complete plugin http://marketplace.eclipse.org/content/peerreview
16.  SCM: Eclipse plugins, bundles and products.
17.  Call – Hierarchy
18.  Externally managed build
19.  FAQ on CDT
20.  Linux Tools

21.  Eclipse Tools Project http://projects.eclipse.org/projects/tools

Ad-Hoc Amplifier Again



I already explained ad-hoc amplifier. I also explained Live Audio cast This idea is combination of both of them. 

Innovation Name: Ad-hoc amplifier. 

Intent : To establish public announcement system, in open ground. where there is no electricity. 

Context:  Yesterday, I saw a useful application. It is again an ad-hoc amplifier. It is just present of mind. The event was long Sudarshan Kriya at open groud, where Guruji (Sri Sri Ravishankarji) is going to come on 29th April, near Bellendur, Bangalore. After Kriya, there was a short speech from Swamiji about Guruji's upcoming visit. There was power cut. So the amplifier, speakers, public announcement system stopped working. Open ground. The audience sitting at back side was hardly able to hear anything.  

Applicability:
  • This idea can develop ad-hoc public announcement system with available resources, particularity in open ground. 
Accessories

Two mobiles, A car with audio system. 

Implementation

GSM provides voice call between two mobile. Mobile output can be connected to audio system of car. Car is automobile, we can drive it, anywhere. 

Connect one mobile to car audio system. We can use either bluetooth OR we can connect mobile with 3.5 mm audio cable to auxiliary input of car audio system. 

Another mobile give to speaker, who is delivering speech at stage. Establish GSM voice call between two mobiles. 

Make the car audio system volume full. Drive the car to backside, so all audience can able to hear. 

Known Uses:

The possible usage can be as follows. 
  • In case of unexpected power cut. 
  • For small gathering
  • Election promotion. 
  • Satsang
  • Speech
Limitation
  • Not scalable. For larger audience, we cannot deploy multiple car. 
  • We need to mute the phone inside car. 
  • GSM network adds few milisecond of voice latency. So if car is near stage then too much echo effect. 
  • For longer duration, this solution is not suitable as car audio system and mobile all are running on battery. 
  • For speaker, who delivers speech,he/she will hold mobile, not a microphone. 
  • Well suited for human speech. However, for dance programme, GSM network will not handle the quality music over voice call. 
Future Scope

More than one car can be connected to ongoing call, with multiparty call feature. It will increase the cost of voice call. All operators may not provide this service OR all operators may not enable this service as and when needed. 

One can book teleconference bridge, to make the solution further scalable. 

Related Solution 

"3 Idiot" movie suggest another alternatives to use battery of all cars, converts DC to AC and bring back the electricity