Tuesday, July 12, 2016

Preschools & Daycares in Colombo

NameAreaAddressWeb presencePhone NumMin accepted age
Little Learners Montessori PreschoolBattaramulla/PelawatteNo. 27, 1st Lane, Church Road, Pelawatte, Battaramullahttps://www.facebook.com/littlelearnersmp/ http://littlelearnersmontessori.net/077 296 6054
First Step preschool & child development programBattaramulla/Pelawatte447/2 Lake Road, By Road 02, Pelawatte, Battaramullahttps://www.facebook.com/First-Step-preschool-child-development-program-313430915437534
077 717 2683
Little Einsteins MontessoriBattaramulla/Pelawatte969, School Lane, Thalangama South,https://www.facebook.com/littleeinsteinsmontessorilka http://littleeinsteinsweb.blogspot.com/ http://littleeinsteinsweb.org/011 2 786928
British Early Learning BellsBattaramulla/PelawatteNo: 234A, Pahalawela Road , Pelawatte, Battaramullahttp://www.britishels.com/ https://www.facebook.com/britishearlylearning.bells011 433 6130, 071 8438016/ 077 6852323
Guiding stepsBattaramulla/PelawatteNo: 449/3, William Place, Pannipitiya Road, Pelawattehttps://www.facebook.com/PreSchool.LK/?fref=ts http://preschool.lk/011 2 786539
The Little HouseBattaramulla/PelawattePelawattehttp://www.tlh-playgroup.com/077 612 4117
Angel KeepersColombo8 Kalinga Place (Off Suleiman Avenue), Jawatte Road, Colombohttps://www.facebook.com/angelkeeperslanka
071 779 07903 months
LittlemoreColombo487/16 Thimbirigasyaya Road, Colombohttps://www.facebook.com/Littlemorepreschoolanddaycare/2582755 & 0773740391
Mighty Minds MontessoriColombo64/2 Chitra Lane, Colombohttps://www.facebook.com/Mighty-Minds-Montessori-190442444652392/
American MontessoriColombo10th Lane, Colombohttps://www.facebook.com/americanmontessorisrilanka/077 357 5145
Little Ark International MontessoriColombo859, Bloemendhal Road, Colombohttps://www.facebook.com/Little-Ark-International-Montessori-467788239954648/077 367 9516
Happy KidsColombo 13New chetty street,colombo-13https://www.facebook.com/Happykidscolombo/
077 753 9619
Joyce Goonesekera Montessori House of ChildrenColombo 3No. 51/5, Dharmapala Mawatha, Colombo 03.https://www.facebook.com/joycegoonesekeramontessori.houseofchildren http://www.joycemontessori.com011-2339215 , 077 5460967
Visakha NurseryColombo 4135, Vajira Road, Colombo 04http://visakhanursery.lk/nursery/011 2584003, 011 45122962 years
Sam's PlaceColombo 5251/33 Talgahawatta Road, Kirula Road, Colombo 5https://www.facebook.com/Sams-Place-121784874592209/?fref=ts http://www.samsplacesl.com/0112504534 , 07773742484 months
Kinder CareColombo 5No.26, Elibank Road, Colombo 05http://www.kindercaresl.com/011 2502590
ACE Montessori & Day careColombo 6543/3, Galle Road, Colombo - 6011 523 0315/7
Deanna Pre SchoolColombo 730/63H Longden Place, Colombohttp://www.deannaschoolofdance.com/
Bankhill EducareColombo 7169, Pahalawela Road, Pelawatte, Battaramulla
82, Barnes Place, Colombo 7
https://www.facebook.com/BankhillEducare/ http://bankhill.lk/0112787410, 0777278741, 011 2695034
CeeBees PreschoolColombo 755B Bullers Lane, Colombo 7http://ceebees-preschool.blogspot.com/
Learnium InternationalColombo 7945/8A, Morris Rajapaksha Mawatha, Ethul Kotte
76, Ward Place, Colombo 7
http://www.lis.lk/ https://www.facebook.com/learnium/?fref=ts011 2 888284
International House of Montessori for ChildrenColombo 713 1/1, Horton Place, Colombo 07
International Children’s HouseColombo 7410/34 Bauddhaloka Mawatha, Colombo 7http://ichcolombo.com/011 269 6236, 077 343 1285 / 077 343 20486 weeks
Little AmigosColombo 730/51A Longdon Place, Colombo 7http://www.littleamigos.org/071-424-3569, 071-417-0189
Little Explorers AMI Montessori House of ChildrenColombo 827 Fairfield Gardens, Colombo 08http://www.littleexplorersami.com/0714949033 / 26918391.5 Years
Mystical Rose International InstituteEtul KotteNo.941/30, Kotte Road, Etul Kottehttp://www.mysticalinternational.com/0112864495 / 0114938335
Bridges to Learning Montessori & DaycareKotte945/3, Morris Rajapaksha Mawatha, Sri Jayewardanepura Kottehttps://www.facebook.com/Bridges-to-Learning-Montessori-Daycare-461093913950453/ http://www.daycare.lk/0777 787870 , 0112863689 , 0773355000
Horizon College DaycareMalabeMalabe1 year
Immy KidsNawalaNawalahttps://www.facebook.com/ImmyKids/?fref=ts011 2 876611
Mother’s Touch Preschool and DaycareNawalaNo: 06, Walter Gunesekara Mawatha, Nawala,https://www.facebook.com/MothersTouchLK http://www.motherstouchlk.com/777572358
Little VIP’s MontessoriNawala17, Krimandala Mawatha, Nawalahttp://littlevipsmontessori.com/0 11 2878 863, 0773 113 999, 077 685 2525
Educare Early Learning and Day Care CenterNawala61/3 Old Nawala Road,Nawalahttps://www.facebook.com/EducareEarlyLearningAndDayCareCenter/?fref=ts077 726 3788
Miracle HandsNugeodaMH1- 120 Stanley Thilakaratne Mw MH2 - 75 Jambugasmulla Road, Nugegodahttp://www.miraclehands.lk/ https://www.facebook.com/miraclehandspreschool02821068/ 2 824611/ 077 77 33 9031.5 years
Kops MontessoriNugeoda132A, Kurulubedda, Nawala Road, Nugegodahttps://www.facebook.com/kingdomofpreschoolers.kops?fref=ts077 303 9366
Little Feet Montessori and Day CareNugeodaNo – 17, Mirihana Road, Nugegodahttp://littlefeet.lk/0777593396, 01150129744 months
Busy Bees Montessori & Day Care CentreNugeoda362, High Level Road, Nugegodahttp://busybees-srilanka.com/
Kidsdom Preschool ColomboNugeoda136/B1, Stanley Thilakarathne Mawatha, Nugegodahttps://www.facebook.com/kidsdompreschoolcolombo112820012 / 0777392306
Smarties - Holiday and After School CareNugeoda42 Old Kesbewa Road, Nugeodahttps://www.facebook.com/SmartiesNugegoda/ http://www.smarties.lk/071 436 36363 years
Childrens' House MontessoriRajagiriya562/10 Welikada Terrace, Nawala Road, Rajagiriyahttps://www.facebook.com/ChildrenshouseRajagiriya0112862033 / 0777763221 / 0723298404

Tuesday, June 28, 2016

We want to have QA in our company! ookkkk

A friend of mine who is new to the IT industry called me today with a question.
We’re a new startup and we want to set up QA in our company. What are the things we need to know?

Ooops, I did give an answer but was worried if I had confused the poor guy. Then I did the obvious thing and Googled to see if someone else has written something that would sum up what I wanted to say. There was just too much information but I couldn’t find what I wanted.
So here I go, writing my own answer.
First be open to the idea, that there is no clear cut/standardized process on how the QA team/department has to function. It varies from company to company, project to project and also from time to time.

As a small start-up you can let it grow organically based on what needs to be tested and the expectations of your customers. Start small with excel and few open source tools.
You MUST have a Defect/Bug tracking system. I’ve used Jira(Commercial), Bugzilla(Open Source) and even an in-house developed tool.

Jira is not only for defects, it covers the whole agile cycle. You can capture requirements, assign tasks to everyone in the team (including, but not limited to bugs), can be linked with other systems and gives a ton of features.

Test case writing start from the beginning. I’ve seen QA teams using excel sheets to capture test cases. They break down the requirements to individual use cases. They have to be precise and detailed. You need to specifically mention the input data, step to follow etc and the expected outcome. Doing this usually helps with clearing up any issues with requirements as well.  (In Jira, we can write the requirements in the above format, so there is no requirement document or test case. There are “stories” entered in Jira and developers implement and QAs test and enter bugs against these stories. It’s a very agile approach which we tried out recently)

Based on the product you are testing, you can do various types of testing. I’d say this is primarily determined by the requirements. Say for example a product can have functional requirements as well as performance requirements and the QA team is expected to do performance testing as well. And there can be multiple products/ modules that work as a system, so have to do integration testing to ensure they work together as expected.
A smoke test can be used as an acceptance test prior to introducing a build of software to the main testing process.
User acceptance testing (UAT) consists of a process of verifying that a solution works for the user. Software vendors often refer to this as "Beta testing". They are also known as Customer Acceptance testing (CAT)
Testing process can have various stages. For a large project there can be separate testing teams who are in charge of these stages.

Found the following list on Wikipedia.
Functional testing
Integration testing
System testing
Usability testing
Performance testing
Load testing
Installation testing
Regression testing
Stress testing
Acceptance testing
Beta testing
Volume testing
Recovery testing

How do we conduct tests? Again no one simple answer. Again it depends on what we need to test. There can be manual testing where you test like an actual user, by manually doing each and every step. Or you automate tests using a tool/programming language. When you automate a test suite, there is significant investment of effort at the beginning but it pays off in the long run.
Here are some tools I’ve come across. JMeter is a load testing tool used mainly for web applications. soapui can be used to test web applications as well. Selenium is a popular open source set of tools that serves many purposes. In fact there is an overwhelming number of tools catering to various testing requirements.

Continuous integration/build management is another thing to consider. Jenkins is what we use currently. It can be configured to build and deploy the product and run an automated test suite on it.  The process is repeated when new releases arrive.

You can’t ignore metrics and reports. You may start small with a few excel generated statistics and graphs and once you get the hang of it may move to a more sophisticated approach. A monitor hung on the wall with a dashboard of current status which gets updated real time is not uncommon.
Another point to note is that in today’s agile world, where TDD (Test Driven Development) is popular, is that developers are expected to be more and more involved in testing. Ideally in TDD developers are expected to write the tests before they start implementing. In some extremely agile projects test suites are jointly contributed by both dev and QA teams and the number of QA personal required can be less.

Hope this is a good starting point.
Finally know that I’ve been a dev and not a QA. So do get the opinion of a QA :)

Monday, September 28, 2015

Evolution of Wireless Communication Technologies

0 G
Mobile radio telephone
These systems preceded modern cellular mobile telephony technology.
Technologies included the Push to Talk (PTT or manual), Mobile Telephone System (MTS), Improved Mobile Telephone Service (IMTS), and Advanced Mobile Telephone System (AMTS) systems.

Network used analog radio signals.
Fully automated on the carrier's end without requiring any human operator intervention, and used electronics that could be miniaturized enough to fit into smallish packages
AMPS in the US & TACS and NMT in Europe

  • not very scalable
  • security was very poor

IS-95 CDMA/ cdmaOne
Network used digital radio signals.
2G cellular telecom networks were commercially launched on the GSM standard in Finland.

Three primary benefits of 2G networks over their predecessors
  1. Phone conversations were digitally encrypted
  2. Significantly more efficient on the spectrum allowing for far greater mobile phone penetration levels
  3. Introduced data services for mobile like SMS, MMS.
Supported CSD that allowed you to place a dial-up data call digitally.

Main 2G Standards
  • GSM (TDMA-based)
  • IS-95 aka cdmaOne (CDMA-based)
  • Spectrum limitations
  • Low data rates
Permitted "always-on" data services. No dial-up.
Operators could effectively bill by the kilobyte, rather than by the minute.
Virtually every GSM operator in the world deployed it
Wasn’t fast enough to meet 3G required speeds, hence the term 2.5G.
Allowed more speed without investing a lot on UMTS hardware upgrades and spectrum.
With an EDGE-compatible phone, you could get speeds over double what you got on GPRS
ITU refer EDGE as an ITU-2000 Narrowband technology

Component of IMT-2000 Standard  by ITU
Developed and maintained by the 3GPP
IS 2000
CDMA 2000

Improved 3G using W-CDMA protocols.
Amalgamation of two mobile telephony protocols,
  • HSDPA: 14.4Mbps
  • HSUPA: 5.76Mbps
DC-HSPA+ HSPA+ Evolution
Mobile WiMAX
LTE Advanced
IMT-Advanced Standard  by ITU calls for
4G technologies to deliver downlink speeds of 1Gbps when stationary and 100Mbps when mobile, roughly 500-fold and 250-fold improvements over IMT-2000, respectively.
LTE doesn’t meet it, LTE advanced does(only 1 network in the world)
Lack a dedicated voice network -- 100 percent of their spectrum is used for data services, voice calls are treated as VoIP.

Diameter for Dummies

Diameter protocol is the successor of the Radius protocol. Somebody thought it’d be interesting to call the feature rich successor  of RADIUS (which of course is an acronym that stands for Remote Authentication Dial-In User Service) as diameter.

Diameter is a AAA protocol for computer networks. (AAA = authentication, authorization, and accounting)

There is a base diameter protocol and protocols that extend the base protocol. The base protocol provides basic mechanisms for reliable transport, message delivery, and error handling.

Diameter Applications

Extended ones are called Diameter Applications. Don’t be deceived by the word application. They are just some more protocols defining new command codes and/or new mandatory AVPs. (More on AVPs later)  For example Diameter Credit-Control Application
is a protocol that can be used to implement real-time credit-control for a variety of end user services such as network access, Session Initiation Protocol (SIP) services, messaging services, and download services.
Each application relies on the common functionality provided by of the base protocol.

Diameter Mobile IPv4 Application
Diameter Network Access Server Application
Diameter Extensible Authentication Protocol Application
Diameter Credit-Control Application
Diameter Session Initiation Protocol Application

Diameter Message

Diameter is a byte based protocol. Each message has a fixed structure, which consists of two parts: header and payload. There are two types of messages, Requests and Answers. Every answer message carries a Result-Code AVP.

A Diameter message looks like this.

Message Headers

Indicates the Diameter protocol version. This value is always set to 1.
Message Length
Indicates the Diameter message length, including the header fields.
Composed by eight bits, to provide information regarding the message. T he first four bits in the
flags octet have the following meaning:
The message is a request
The message is an answer
The message is proxiable and may be proxied, relayed or redirected
The message must be processed locally
Error message
Regular message
Message is potentially being re-transmitted
Message is being sent for the first time

The last four bits are reserved for future use, and should be set to 0.
Command Code
Indicates the command associated with the message.
Command Code in diameter message is used to determine the action that is to be taken for a particular message.

Identifies the application to which the message is applicable for. The application is an authentication, accounting, or vendor specific application. The application-id in the header must be the same as what is contained in any relevant AVPs in the message.
Hop-by-Hop ID
A unique ID, which is used to match requests and answer. The header field of the answer message must contain the same value present in the corresponding request. This is how answers are routed back to the peer that sent the message.
End-to-End ID
A time-limited unique ID that is used to detect duplicate messages. The ID must be unique for at least four minutes. The answer message originator must ensure that this header contains the same value present in the corresponding request.

AVPs, Attribute-Value Pairs, are used to send across information in a Diameter message and are included in the message payload. Apart from the standard AVPs that are defined in diameter base protocol and diameter applications, custom AVPs can be defined making diameter easy to extend.

AVP Code
Uniquely identifies the AVP. AVP numbers 1 to 255 are reserved for RADIUS backwards compatibility.
Flags octets have the following structure: V M P r r r r r.
V:  Vendor Specific
M: Mandatory
P: Protected
The last 5 bits are reserved for future use, and should be set to 0.
AVP Length
Indicates the number of octets in the AVP.
An optional octet that identifies the AVP in application space. AVP code and AVP Vendor-ID create a unique identifier for the AVP.

Each AVP has a similar structure: a header, and encoded data and data can be various data types.
Diameter defines data types of;

A Grouped AVP is an AVP whose data is a sequence of AVPs.

Following derived data formats are also defined.

Every Diameter message carries the Diameter Identity of the originating Diameter process in the Origin-Host AVP and the realm of the originating Diameter process in the Origin-Realm AVP.

Message Flow
A Diameter node is a host process that implements the Diameter protocol and acts as either a client, an agent, or a server. Two Diameter nodes sharing a direct TCP or SCTP transport connection are called Diameter peers.

The communication between two diameter peers starts with the establishment of a transport connection (TCP or SCTP). The initiator then sends a Capabilities-Exchange-Request (CER) to the other peer, which responds with a Capabilities-Exchange-Answer (CEA).
Diameter security is provided by IPsec or TLS. If TLS (Transport Layer Security) is used TLS negotiation will happen as well.

The connection is then ready for exchanging application messages.

If no messages have been exchanged for some time either side may send a Device-Watchdog-Request (DWR) and the other peer must respond with Device-Watchdog-Answer.

Either side may terminate the communication by sending a Disconnect-Peer-Request (DPR) which the other peer must respond to with Disconnect-Peer-Answer. After that the transport connection can be disconnected.