Friday 20 November 2020

Software Design Patterns

What is the use of  Software Design Patterns ? And why should one consider using them during their application development ?

Software design pattern provides you a general reusable solution for the common problems which occurs in software design. The idea behind using software design pattern is to speed up development process by providing a solution which is well tested, proven development/designs, they are also widely accepted to solve software design problems OR to avoid any future software design problems which may arise late at the end of software development life cycle.
 
Types of Design Patterns in Software Engineering:
 
1. Creational Patterns
 
i. Abstract Factory
    Lets you produce similar related objects without specifying their concrete classes.
 
ii. Factory Method
   
iii. Singleton
     This pattern ensures that a class has only one instance, and the same instance is referred when required.

2. Structural Patterns
 
i. Decorator
 
ii. Adapter
 
3. Behavioural Patterns
 
i. Iterator
 
ii. Observer
 
iii. Visitor

Sunday 31 May 2020

Verifone SDK vs Ingenico SDK



As already mentioned in my previous post, Verifone & Ingenico are the oldest & best POS products solution providers in market. But which device would you choose for building your POS payment application ?

Both Ingenico & Verifone SDK have all features to develop apps with any latest payment technology,
be it Magnetic Strip card, EMV Chip card, NFC card, NFC Mobile wallet etc.
Lets compare their SDK capabilites in more detail, may be that will help you decide which POS device to go with for your project.




VERIFONE SDK
INGENICO SDK
EMV Library:
Available
Available
NFC Library:
Available
Available
Magnetic Strip Card API:
Available
Available
Connectivity:
(options may differ depending on POS Hardware model)
Wifi, Bluetooth, GPRS, PSTN, Ethernet
Wifi, Bluetooth, GPRS, PSTN, Ethernet
Debugging code:
Tracing using log files can be done. Cannot debug directly since not integrated with any IDE.
Tarcing using log files. Add debug break points in IDE & watch variables possible via IDE - Ingedev
IDE:
There was a Visual Studio IDE support using a Verifone plugin for Vstudio earlier till 2011. Verifone stopped supporting Visual Studio Project Wizard Plugin.
There is no IDE for Verifone development for now.
Ingenico has its own customised IDE made of Eclipse. Named as Ingedev. All IDE features are similar to the open source Eclipse IDE.
Display Fonts:
Verifone provides you with customisable fonts option. You can create your own fonts style & use it in your application.
There are very limited options available in font style & size in ingenico SDK.
make file:
need to make manual changes in make file, to add library, source code file, includes etc.
Changes can be easily made from project settings in IDE
SSL Certificates  support for communication:
Available
Available
Color Display UI Supporting Libs:
Available
Available
Timers:
Available
Available
Event handling:
Available
Available
Encryption Supported:
3DES, MD5, DES, RSA , AES
3DES, MD5, DES, RSA , AES
 Interapplication communication:
Available
There are total 15 slots available. Of which you can place your credit, debit, gift card application in 2nd-to-14th slot. 15th slot is for shared libraries to use between different applications. 1st slot is for application manager.
Available
Receipt Printer
Thermal Printer APIs Available.

( Mostly POS models having receipt printers are thermal printers. Receipt is printed using a thermal printer. No printer ink required, since text on receipt paper is printed with heat from printer - hence the name thermal printer. )
Thermal Printer APIs Available.
Secure Memory Location for PIN, Card Number - for PCI DSS compliance
Available
Available
SDK Help Documents:
 Verifone has multiple pdf documents for SDK help. Which makes it difficult to search through all the different pdfs. But topics are categorized in these document. It would have been good if all pdfs were consolidated into a single pdf or chm file.
All API documentation is present in a .chm file. Which is easy to navigate & search topics or words.
Also you can access this .chm help file from the IDE help for different SDK versions.
Final comparison view based on all points above:
Verifone SDK is good, but developer must be comfortable to work without an IDE.
Verifone SDK has all the features required to develop a full POS system.
Developer is given freedom to have fonts, or make file format the way he wants.
Ingenico SDK has a plus point with an Eclipse IDE available, making developers life easy.

Note:
The comparison values may change with new product series and new SDK versions launched by these companies.

The above comparision is based on following series of devices.
Verifone: Vx5XX series
Ingenico: iCT, iWL, iSC series.

There are other POS manufacturers as well which are good (example Hypercom, PAX, Beetle, etc.  local POS manufacturers are also available ), but you need to find out if they support the payment technology, certifications, are their products and SDK robust enough for your project requirements. If yes then you can select those as well for your project.

Saturday 23 May 2020

Google Chromecast vs Amazon Fire TV stick


Writing this product comparison since i hope it may help you too in finalizing on your decision, like
one of my friend who was in a dilemma, whether to upgrade to new Android Smart TV or wait for smart TV prices to fall?


My suggestion I would said, "I have an better option which goes easy on your pocket and also achieves converting your old TV into smart TV."

SOLUTION : Attach Google Chromecast or Amazon Fire TV Stick to your old TV HDMI socket.

What can you achieve by attaching any of these products to your old TV.


  1. Watch Youtube, Hotstar, Netflix videos on your TV easily, without lag.
  2. Cast your Whatsapp or any app video calls from phone to TV by inbuilt android screen casting option.
  3. Play games on TV using mobile as remote controller or Fire TV stick remote as controller.
  4. Cast your MS Powerpoint Presentation slides directly on large screen TV from mobile.
  5. Cast any video present locally in  your phone to TV using VLC media player.
  6. Display wallpapers on TV which change after specific interval, or even have photos of your family/friends using chromecast.
  7. Cast Mi Security camera video from camera to TV screen via chromecast. 
  8. Search or navigate Youtube, Hotstar, Netflix content using Amazon firestick remote & audio even when your mobile phone is not around. 
  9. In some cases despite having a smart TV you may face trouble to seamlessly stream content from your phone screen on to the TV, may be due to smart TV firmware bugs or some other unknown issues. But these products can save your time & mood.
Below is a detailed comparison between Chromecast and Fire TV Stick product i used for over a year. Go through the comparison and then decide which one of them is best suited for you:




Google Chromecast
Amazon Fire TV Stick
Watching Youtube/NetFlix/Hotstar Content:

Watching Youtube, NetFlix, Hotstar, Amazon Prime from your mobile is easy.

Only problem is you need to have your mobile phone with you.

You need to use your phone to navigate and select content before casting it on to your TV.

Watching Youtube, NetFlix, Hotstar, Amazon Prime from your mobile is easy.

Here you don't need to have mobile phone around you to view content from these sources.

The FireTVTick has memory to store these apps.

And you can use the Fire TV bluetooth Remote to navigate through the content displayed & launching it.

* Fire TV Stick is winner in this category.
Casting / Mirroring Mobile Content:
Casting any content from your mobile phone to TV via Chromecast is a breeze. Hence the name Chromecast !!

Cast - PPT Presentations, local videos present on your phone using VLC player or MX Player app. 

Slide show Photos from Google Photos.

Have changing wallpapers on TV screen even when mobile is not around. Wallpapers can have your personal photos as well.

* Chromecast is winner in this category

Phone screen mirroring is possible but you need to install separate mirroring apps for this.

Connecting Pendrive / HDD:

We cannot connect pendrive or HDD directly to Chromecast.

You need to attach it to your Phone using OTG & then use to explore and watch content. 

Using ESExplorer app you can search local files from pendrive or HDD attached to FireTVStick & launch local videos or watch photos.
Only problem is you need to purchase a separate connector with which will allow you to connect usb power supply  & also allow you to connect Pendrive or HDD at the same time.
you can also use the same connector to attach Bluetooth Keyboard or Game Controller.

* Winner Fire TV Stick
Searching  Content:
 
With Chromecast you require to open different apps on your phone, and manually look for what you want to watch.

Searching & getting good indexed content is easy here, but phone being near you is mandatory.






* Winner is a Tie

 

Fire TV Stick has a dedicated search tab, where you can type in what you’re looking for. But typing using the bluetooth remote can be difficult.

You also hold down the voice button on the bluetooth remote, and say your query.
You can only use it to search for any Prime Video title or an app name.

But Fire TV Stick Remote come handy when you don't want to use phone.

* Winner is a Tie

Apps Supported:
Chromecast enjoys a much wider apps support base, with Google claiming around 20,000 apps compatible with chromecast.

 * Winner is a Tie - quality & usefullness of apps may differ.

Amazon claims it has 3,000 apps, games, and services for the Fire TV Stick
  * Winner is a Tie - quality & usefullness of apps may differ.
Games:
Google Play Store has many free chromecast ready games, following are the ones i liked & were good: 

Alien Invaders - by Trapps City

Angry Birds Friends - by Rovio

Just Dance Now - by Ubisoft Entertainment

Cast Bowling

Tennis Clash 3D

Fire TV Stick also offers many compatible games app you can play.
You can connect any xbox or PS4 Bluetooth Game Controller & play gmes like

Asphalt
Retro games etc.



*Winner Amazon Fire TV Stick. The games in chromecast lag a bit. 
Price:
 INR 3499
(can purchase at 2499 during online discounted sales)

INR 3999
Links to Purchase:





Amazon’s Fire TV Stick gives you more of a traditional living room experience, where you can browse around different channels. While the Chromecast gives us a different approach and flexibility in terms of what you can do with it.  I hope above comparison helps you finalize whats best for you, depending on whats your requirement & what you want to achieve.

If you are considering upgrading your old TV to a smart TV i think Amazon Fire TV Stick will be the winner here which does more than just casting your phone to the TV.