07 May 2023

Architecture Patterns

An architecture pattern is a reusable solution to a commonly occurring problem in software design and architecture. It is a general, high-level blueprint or template for designing the structure and organization of a software system. It provides a proven way to address specific design and implementation challenges, and can guide the overall structure and organization of a software system. Architecture patterns are used to address common concerns such as performance, scalability, security, maintainability, and reliability.

By using architecture patterns, developers can create software systems that are more modular, scalable, and maintainable, and that can be easily adapted to changing requirements over time.

There exists many different architecture patterns. These patterns has their own strengths and weaknesses. They are often categorized based on their purpose or the type of system they are designed. Some common architecture patterns include layered architecture, AI domain based architecture, client-server architecture, microservices architecture, event-driven architecture, and many many more.


17 February 2023

Architects in software industry

As software industry is getting matured, the softwares are becoming more and more complex. There are hardly any fields remaining where computer software is not being used. As the dependency is increasing so as the complexity is also increasing. To handle such a diverse complex needs, different type of architect roles are getting introduced. Below are few of them

  1. Enterprise Architect: An enterprise architect is responsible for the overall technology strategy and long term architectural goals of an organization. They are focused on designing and overseeing the implementation of systems that are aligned with the company's objectives.
  2. Technical Architect: The role of a technical architect is to design, plan, and oversee the implementation of technology solutions in an organisation. They are responsible for ensuring that the technology architecture meets the current and future needs of the organisation, and that it is efficient, scalable, and secure.
  3. Solution Architect: A solution architect is responsible for designing a specific software solution for the business needs. they are more focused on meeting the requirements of a particular project or system. They work closely with development team and project manager/ business owner to ensure that the solution is delivered in stipulated time.
  4. User Experience (UX) Architect: A UX architect is focused on the user experience for using the  software applications. They work to ensure that the application is simple, intuitive and meets the needs of its users. 
  5. Application Architect: An application architect is responsible for a single application. It can be a standalone application or a part of larger system. They work closely with developers and stakeholders to ensure that the application meets the needs of its users. Application is built to integrate with other systems and scalable for future growth.
  6. Security Architect: A security architect is responsible for the design and implementation of an organisation's security systems and protocols. They work closely on defining the entry points for the organisations network. They keep an eye on very dynamic area of security and protect organisation from frequent threats.
  7. Data Architect: A data architect is responsible for the design and management of an organization's data. They design databases and other data storage systems. The primary focus is to ensure that data is stored, managed, and accessed in a secure and efficient manner. 
  8. Infrastructure Architect: An infrastructure architect is responsible for the design and implementation of an organization's technology infrastructure, including networks, servers, and storage systems.  This role overlaps with Data Architect. They ensure that the infrastructure is reliable, scalable, and secure. They system resiliency is key for them.
  9. Cloud Architect: A cloud architect is responsible for cloud strategy, design and selection. They also focus on cloud security, deployment and bandwidth management. 
These are just a few of the many types of architects in the software industry. The specific roles and responsibilities of an architect may vary depending on the organisation and the project at hand.

30 January 2023

My random ideas

 It is said that when in any mind an innovative idea strikes, the same idea is already been strike to 1000 other minds. Out of these 100 minds have put down those ideas and discussed with others. Still only 10 minds actually work to put them in reality partially or fully. And only 1, may be, have successfully implemented it. Then other minds (followers) comes in the action and they adds variations (inspirations) and capitalises on it. 

I read in some book or discussed in conversation about another interesting theory about an idea. The best ideas were burned or buried in the cremation places. It happened because those ideas were never shared with anyone else when bearer was alive. 

In my mind also many ideas rises and sets periodically. I thought of taking 1st step towards implementation i.e. writing them down. Here are some ideas/ inspirations and some details

  1. Mobile App: Compare Kar: 12 Jan 2017
    1. The app allows user to compare anything with its peers. It's initial release is to focus on the products of daily life like food items, groceries, etc across different stores, local vendors, etc. The potential of this app unlimited. It can be used to compare anything from a pin to spacecraft and henchman services to medical services. It will also integrate with online shops and help ordering or preorder to maintain the threshold inventory. 
  2. Business Idea: Converse with Universe service: 7 Dec 2022
    1. With the growing technology, humans are well connected to each other over a long distance. However it also created long distances within the family members staying in the same house. Family/ fiends staying in the same 
  3. Novel: An Obliterated Village: 26 Jan 2021
    1. This is a fiction novel. This is a story of a village of warriors which was wiped off from the face of the earth as a king's wish. The story talks about the rise, glory, decline and demise of the village. This was the era of few decades post the great war of Mahabharata was over. It talks about the life style and the values of ancient India. The timeline of the novel is inter-mingled to make the story enjoyable.
  4. Novel: Shikari: 20 Jan 2023
    1. This is a fiction novel. The plot revolves around 3 individuals from India and Kenya and Australia. It is a journey of these strangers in search of justice for the gruesome acts performed by high ranking british officials under the british raj. The story starts with Bhagat Navroji from India who was devastated in India-Pakistan partition. Novel continues with Baasim Maghanga, survivor of Hola Camp in Kenya. Third individual Christine Lowanna whose family has suffered great losses due to british controlled foreign policies. They unite their forces to bring these british officials to justice. This idea came to my mind after seeing Hunters TV series.
  5. Mobile App: Deprofiler: 15 Aug 2019
    1. This mobile App will confuse the profiler websites like youtube, facebook, etc. It will fire unrelated searches on profiler websites. It will show systematic shift of ideology from one side to another like front left to right. 
  6. Mobile App: Message Striker: 15 Sep 2022
    1. This mobile app will help user to push messages to different messaging  applications like whatspp, telegram, emails, SMS, etc.. It will allow user to create templates with some dynamic placeholders. These placeholders will be replaced just before sending the message from information from contact list, system, place, environment, etc.. 

In case you liked the idea and want to implement it, please go ahead. Just a request, keep me in loop (vikrant.korde@gmail.com). In case there is something in my mind and which is not added in the page, it can be shared.  

09 December 2022

Converse With Universe

 It is a service which allows you to talk with our representatives. You can converse anything that you want.

13 May 2022

बेल्जियममध्ये घरगुती खारी...

खारी म्हणजे काय?

खारी हे पीठ आणि लोणी यापासून बनवलेले हलके आणि फ्लफी बिस्किट असतात. पीठ आणि लोणी मळून घेऊन तयार झालेली कणीक सोनेरी रंगाची आणि कुरकुरीत होईपर्यंत बेक केली जाते. अतिरिक्त चवसाठी खारी बनवताना विविध मसाले टकता येतात. हा एक प्रकारचा पदार्थ (स्नॅक्स) आहे जो भारतीय घरांमध्ये चहा सोबत खाल्ला जातो. हे परिपूर्ण डिपर आहेत आणि चांगल्या चहाची चव अधिक समृद्ध करते. हे टोस्ट, बन पाव, ब्रेड इत्यादीसारख्या बेकरी पदार्थांपैकी एक आहे.

मी सध्या बेल्जियममध्ये आहे. मला चहासाठी टोस्ट (रस्क) सापडला पण खारी नाही. इथे बिस्किटे, ब्रेड, केकचे भरपूर पर्याय आहेत. पण या पर्यायांमुळे चहाची चव खारीइतकी समृद्ध होत नाही (अर्थातच हे वादातीत विधान आहे).

काही आठवड्यांपूर्वी जवळच्या पार्कमध्ये पिझ्झा (होममेड) पार्टी दरम्यान ही कल्पना सुचली. बेल्जियममध्ये अनेक प्रकारचे ताजे पीठ उपलब्ध आहे जसे की पिझाडीग, ब्लॅडरडीग इ. या रेसिपीसाठी मी ब्लादरदीग (पफ पेस्ट्री) बेसचा संदर्भ देत आहे. यातून तुम्ही चांगली खारी बनवू शकता. खाली कृती देत आहे

१. आल्डी, कोलरुट, दल्हेज, इत्यादी किराणा दुकानातून ब्लादरदीग आणा.

२. हलक्या हाताने ते एका सपाट पृष्ठभागावर पसरवा. जास्त जोरात दाबू नका फक्त समान रीतीने पसरवा.

३. पिझ्झा कटर घ्या आणि त्याचे उभ्या पट्ट्यामध्ये भाग करा. रुंदी सुमारे 4 सेमी असावी. आपण भिन्न रुंदी वापरून पाहू शकता.


४. एकमेकांवर २ पट्ट्या ठेवा. आपण ३ किंवा ४ स्तर देखील वापरून पाहू शकता.

५. त्यांना एकमेकांपासून वेगळे करा जेणेकरून ते एकमेकांना चिकटणार नाहीत.

६. ओव्हन/मायक्रोवेव्हमध्ये ठेवा. मी ओव्हन वापरले, २५० डिग्री सेल्सिअसवर १५ मिनिटे बेक केले.

७. तुम्हाला सोनेरी रंग आणि फुललेली खारी दिसली की खारी बाहेर काढण्याची वेळ आली आहे असे समजा.

८. खुल्या हवेत ठेवा आणि थंड होऊ द्या.

९. आहा... तुमच्याकडे कुरकुरीत, कुरकुरीत, घरगुती खारी तयार झालेली आहे.

मस्त पैकी चहा बनवा आणि त्यात बुडवून खाऊन पहा आणि तुमचा अनुभव खाली कमेंट करुन सांगा

चिराग इंडियन ग्रोसरी, गेट ग्रोसरी, इंडियन स्पाइसेस, विटा नॅचरल इत्यादी सारख्या बेल्जियममधील भारतीय किराणा मालाच्या दुकानातून खरेदी करणे हा दुसरा पर्याय आहेच...   






  

  





23 April 2021

Homemade Khari in Belgium...

What is Khari?


Khari is a light and fluffy biscuit that is made from flour and butter. This is plain puff pastry. Dough made from flour and butter is baked until it becomes golden in color and crunchy. Khari can be made plain or sprinkled with spices for extra flavour. It is one of the snacks which is often served in Indian homes with Chai (tea). These are perfect dippers and taste enricher for a good cup of Tea. This is one of the bakery item like toast, bun pav, bread, etc..


I am currently in Belgium. I found Toast (Rusk) for Tea but not Khari. There are ample options of Biscuits, Breads, Cakes. But these options do not enriches taste of tea as much Khari (of course this is debatable statement and there are exceptions). 


Some weeks back during Pizza (homemade) party in nearby park, this idea struck. There are many types of fresh dough available in Belgium like Pizaadeeg, Bladerdeeg, etc. For this recipe I am referring to Bladerdeeg (puff pastry) base. You can make a good Khari out of this. Here are the steps


1. Get Bladerdeeg from grocery stores like Aldi, Colryut, Delhaize, etc..




2. Spread it on plane surface. Make it proper flat so there are no cuts in it. Do not press too much just spread it evenly.




















3. Take a pizza cutter and cut it in strips. Width should be around 4 cm. You can try different widths.



4. Place 2 strips on each other. You can try 3 or 4 layers.

5. Separate them from each other so that they don't get mixed up.


 

6. Put it in the oven/ Microwave. I used Oven, baked it for 15 mins at 200 degree Celsius.


 


7. You will see golden color and puffed Khari, it is a time to take out.
8. Keep it in open air and let it cool down. 
9. Taa-Daa you have crunchy, crispy, home-made Khari ready.  


Other option is to buy it from Indian grocery stores like Chirag Indian Grocery, Get Grocery Indian SpicesVita Natural, etc...


22 March 2021

शेअर मार्केटमध्ये दीर्घकालीन मालमत्ता कशी तयार करावी ??

(English Version)

गुंतवणूकीसाठी शेअर मार्केट हे खरोखर उत्तम परतावा देणारे आणि उच्च जोखीमचे क्षेत्र आहे. मी माझ्या बर्‍याच मित्रांसह (नकुल, योगेश, मनोज आणि इतर) शेअर मार्केटमध्ये दिर्घकालिन मालमत्ता तयार करण्याच्या कल्पनेवर चर्चा करीत होतो. एका म्हणीनुसार, मोठ्या गोष्टी एका रात्रीत तयार होत नाहीत, त्याचप्रमाणे मोठी मालमत्ता एका दिवसात किंवा अगदी अल्प कालावधीत तयार केली जाऊ शकत नाही. दीर्घकालीन मालमत्ता तयार करण्याचे बरेचे मार्ग आहेत, सगळ्यात जास्त वापरला जाणारा एक मार्ग म्हणजे घर/ जमिन/ दुकान (स्थावर मालमत्ता) विकत घेणे. माझ्या मते ते एक फार मोठे दायित्व आहे. आपण एकदा ते विकत घ्या आणि दीर्घ मुदतीसाठी खर्च करत रहा उदा, कर्जाचे हप्ते, नगरपालिकेचा मालमत्ता कर, मासिक देखभाल खर्च आणि नंतर बऱ्याच कालावधीनंतर ती मालमत्ता स्वतःच्या मालकीची होते. इतरही मार्ग आहेत जसे की छोटी रक्कम बऱ्याच मोठ्या कालावधीत गुंतवत रहा उदा म्युचुअल फंड, बॅंकेत आवर्ती ठेव (रिकरिंग डिपॉजीट). ह्या ब्लॉगमध्ये मी ह्या मार्गांवर काही भाष्य करु इच्छित नाही.


शेअर बाजारासारख्या उच्च-जोखमीच्या क्षेत्रात दिर्घकालिन मालमत्ता तयार करणे शक्य आहे काय?

आपण हुशारीने वागल्यास, होय हे शक्य आहे. त्यातही हे करण्याचे बरेच मार्ग आहेत. त्यापैकी एक मार्ग खालील प्रमाणे मी सुचवू इच्छितो.

मी एशियन पेंट्सचे २५ शेअर्स प्रत्येकी १३७० रु. किमतीने मे २०१९ मध्ये विकत घेतले. डिसेंबर २०२० पर्यंत या शेअर्सची किंमत प्रत्येकी २७७० इतकी झाली. तस पाहिले तर ही वाढ १००% पेक्षा जास्त आहे. टीपः मी काही फार चांगला शेअर बाजारातील गुंतवणूकदार नाही. या कंपनीच्या धंद्याची मूलभूत माहिती असल्यामुळे आणि हे समभाग १ वर्षापेक्षा अधिक काळ धरून ठेवल्यामुळे मला हा परतावा मिळाला. माझे सर्वच समभाग काही इतका छान परतावा देत नाहीत.

डिसेंबर २०२० मध्ये मी प्रत्येकी २७०० या भावाने १३ समभाग (शेअर्स) विकले. त्यातून मला रु. ३५००० मिळाले. मे २०१९ मध्ये मी कर आणि दलालीची रक्कम धरुन एकुण रु. ३४४५० मध्ये २५ समभाग घेतले होते. आता माझ्याकाडे १२ शेअर्स उरले आहेत आणि खरतर त्यासाठी मी एकही रुपया भरलेला नाही. या पुढे १५-२० वर्षांसाठी हे १२ समभाग मी विकणारच नाही. हे समभाग एका मालमत्तेप्रमाणे कार्य करतील. यांची किंमत वाढतच जाईल असा अंदाज आहे.

जर एखाद्याने असे समभाग (शेअर्स) स्वतःच्या पोर्टफोलिओमध्ये गोळा करुन ठेवले तर १५-२० वर्षाच्या कालावधीत शेअर मार्केटमध्ये अशाप्रकारे दीर्घकालीन मालमत्ता निश्चितच तयार केली जाऊ शकते.


यावरील अधिक विचार

  1. काय मी त्या समभागांचा मागोवा घ्यायला पाहिजे?
    • शेअर बाजारासारख्या उच्च जोखमीच्या क्षेत्रात, स्टॉप-लॉस खूप महत्वाचे आहे. शेअर बाजार वाढतच जाईल पण हा समभाग वाढतोय की नाही हे पहाणे स्वतःचे काम आहे. गुंतवणूकीतून कधी बाहेर पडायचे हे देखील महत्वाचे आहे. शेअर बाजारात काहीही बंद डोळ्यांनी ठेवू नये. किंमतीचा मागोवा नक्किच करत रहावा. जर किंमत खाली पडली किंवा कंपनीची मूलभूत तत्त्वे नष्ट होत असतील तर समभाग विका आणि त्यातून बाहेर पडा. जरीही वर सांगितल्यानुसार मी काहीही रक्कम दिलेली नसेल तरीही किंमत कमी झाल्यास समभाग विकुन पैसे काढणे महत्वाचे आहे.
  2. समभाग विकण्यासाठी योग्य किंमत किती असायला हवी?
    • यासाठी कोणतेही एकच उत्तर नाही. जेव्हा आपल्याला स्वतःला वेळ योग्य वाटेल तेव्हा त्यातून बाहेर पडा. महागाईच्या दराने तुम्ही किंमत ठरवू शकता. तुम्ही १०० रुपायांचे समभाग २०२० मध्ये वरील पध्दतीने जमा केले होते. समजा ८% महागाईचा दर आहे. १० वर्षानंतर चक्रवाढ व्याजानुसार याची किंमत २१६ रुपये झाली पाहिजे. जर का समभागांची किंमत जास्त असेल तर विकु नका पण जर कमी असेल तर नक्कीच विचार करा. पणा हा निर्णय सर्वस्वी तुमचाच असला पाहिजे. 

 

19 January 2021

Backstage on Docker

This is WIP POST

 

I followed below steps (https://roadie.io/blog/backstage-docker-service-catalog/) to install backstage on docker on Mac machine

Pre-requisite

  1. Installed Docker for Mac using https://docs.docker.com/docker-for-mac/install/ 
    1. Once installed, verify by running "docker" command on terminal. 
    2. you will also need Docker compose which is a part of Docker desktop for Mac. 
    3. Validate it is available by running "docker-compose" command on terminal
  2. Install node.js on Mac machine
    1. verify the insalled version by running "node -v" command on terminal.
  3. Install yarn on mac machine
    1. Verify installed version by running "yarn" command on terminal. 

Step 1 - Scaffold a Backstage application


  1. Create a scaffold app
    1. Run "npx @backstage/create-app --version"
    2. Run "npx @backstage/create-app"
    3. Enter name of application "first-app"
    4. Use Database as "PostgreSQL"
    5. It will show "Successfully create first-app"

Step 2 - Building a Docker image

Now we will create docker image

  1. Go to packages directory of first-app
    1. run "cd first-app/packages"
  2. Here you will see 2 folders
    1. app
    2. backend
  3. Run command "yarn workspace backend build-image"
    1. This will take around 120 seconds. it will change based on internet speed. 
  4. Check if docker image is created
    1. Run "docker images" command
    2. You should see repository "backstage" with 1.1Gb size.   
  5. Now run this image
    1. Run "docker run backstage" command
    2. Here you will get an error about unable to connect "127.0.0.1:5432". It is expected as we have not started postgreSQL 


Next step is to integrate backstage with LDAP. 
There is no straight road to this solution. The details are discussed at https://github.com/backstage/backstage/issues/1807 page. In here they have discussed LDAP integration via keycloak (https://www.keycloak.org/). Below steps are followed to implement this
  1. Create docker image for keyCloak
    1. It is simple and mentioned https://www.keycloak.org/getting-started/getting-started-docker 
    2. Run command "docker run -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:12.0.1"
    3. This will download and start the local docker for KeyCloak. The above command will take around 1 min to start image. 
    4. You should be able to see admin panel
      1. http://localhost:8080/auth/admin 
    5. Login with admin user with password as admin. This information is given while starting KeyCloak docker image. 
    6. Create realm
      1. Enter the name and click on Create button
      2. This will redirect you to this new realm. 
    7. Create User
      1. Click "users" in left hand menu
      2. Click on Click Add user (top-right corner of table)
      3. Fill in the form with the following values:
        1. Username: Vikrant
        2. First Name: Your first name
        3. Last Name: Your last name
      4. Click Save
    8. Create User Credential. The user will need an initial password set to be able to login. To do this:
      1. Click Credentials (top of the page)
      2. Fill in the Set Password form with a password (Test123)
      3. Click ON next to Temporary to prevent having to update password on first login
      4. Clock on "Set Password" button
      5. On creation you still see a new row with type password
    9. As user is created successfully, lets try to login with this new user
      1. open the realm which you have created above. Make sure the realm name is properly entered in URL. 
      2. http://localhost:8080/auth/realms/InfosysKeyCloak/account
      3. enter username and password
      4. This should show you the home page for this user. 

Create local image for OpenLDAP
  1. Get the "docker-compose.yml" file from https://github.com/osixia/docker-openldap/tree/stable/example location
  2. Store this file locally in a directory
  3. Open terminal. Navigate to the above directory. 
  4. Run "docker-compose up" command. First time it will take couple of minutes to download the files and start 2 dockers
  5. You may face an issue of port for phpldapadmin container. Its port can be changed by modifying port under "phpldapadmin" image configuration.
    1. I have changed port to 8081
  6. Using the instructions mentioned on https://scytalelabs.com/setup-and-configure-openldap-using-docker-image-on-ubuntu-16-04/ page setup some configuration in openLdap
  7. Open php ldap admin
    1. open url : http://localhost:8081/
  8. Enter credentials
    1. username: cn=admin,dc=example,dc=org
    2. password: admin


Integrate keyCloak with Ldap serer
  1. For this i am following steps mentioned https://www.janua.fr/ldap-integration-with-keycloak/ page. 











31 December 2020

Long-term asset creation in Share Market

(मराठी आवृत्ती)

Share market is indeed high-risk area for investment. I have been discussing an idea to create assets in share market with many of my friends (Nakul, Yogesh, Manoj and many). As the saying said, Big things can't be built overnight, similarly asset can not be created in a single day or even in short term. One of the traditional way of creating long term asset is buying a house. In my opinion it is a huge liability, you buy it once and keep paying over a long term (home loan) plus taxes, maintenance and then you get a house. 

Is it possible to create an asset in high-risk area like share market?

If you act smartly, yes it is possible. There are many different ways to do it. One of the way is as below

I bought 30 shares of Asian Paints @1370 Rs. in May 2019. As of Dec 2020, the share reached to Rs. 2770. It is more than 100%. Side note: I am not a good share market investor. Somehow due to strong fundamentals and holding it more than 1 year it gave me these returns. Not all my share decisions were such a good decision. 

I sold 13 shares @2700 in Dec 2020. It gave me back Rs. 35000. In May 2019 I had invested Rs. 34250. The tax and brokerage amount is already adjusted. Now I have left with 12 shares for which I have not paid a single Rupee. These 12 shares has to be locked in the account for next 20 years. This will work like an asset. 

If one can collect such shares in the portfolio, one can definitely create long term asset in share market. 


Few after thoughts

  1. Should I not track those shares? 
    1. In high risk area, stop-loss is very important. Share market will keep on rising but when to exit from investment is also important. Nothing in share market should be kept with closed eyes. Keep tracking the price. If it falls drastically or fundamentals of company is shattered. simply sell the stocks and get out of it
  2. What is the right price to exit?
    1. There is no single answer for this. Whenever you say the time is right, get out of it.   

28 June 2020

Serverless ??

If you are a software developer then you must have heard "Serverless" word. You might have heard in context with serverless application, serverless architecture, serverless computing, serverless framework, etc.. Let me start with word serverless, it is little distracting compared to literal meaning of serverless. My first impression was serverless means "no server". On 2nd thought, how can an application like a website or a web-service can be serverless. Have they really came up with an idea to go away from server ?? On further reading I realized that serverless means you will not be owning the server but only the code. Serverless do not meant that there is no server but more like someone else's server. But then why to use word serverless, actually i didn't find the reason. They could have used word like "someone else's server" or "Server is not my headache" or "I worry only my code" or any other set of words. May be they are following a strategy "if you can't convince then confuse" and attract an attention. For sometime initially i incorrectly assumed "embedded server" with "serverless".

To make understand easier, let compare the situation with a car production plant. In it we have a  manager (factory incharge), workers which are spread acrosss different skill sets and buyer who buy the car. Comparing this situation with a Web application like shopping website, the factory manager is like a server (Tomcat, WildFly, Weblogic, etc..), back end API + pages are like workers and car buyers are the end users which are buying products from website. For simplicity assume car is built immediately as soon as car buyer places an order same like page is visible to shopper while browsing a website. As car buyer asks for car, factory manager asks worker to start working and starts creating car. In car factory each worker is specialized for a specific car and there are multiple workers available, kind of a queue. As a factory owner i need to keep on paying to factory manager, workers to make sure they are available. Even if there are no buyer, i have to keep them available.

In serverless paradigm below changes will incur.

  1. I will take my workers to a place where manager and factory setup is owned by someone else like a mass producer (cloud provider) who will manage my workers and give me car as per need. Similarly I will put my code in cloud provider setup where hardware and server will be provided by cloud provider
  2. I will pay to mass producer only for the time my workers are busy and using his setup to produce a car. Similarly I will pay to cloud provider only for the time my code is running on server a span of few milliseconds. For remaining time my workers will be sleeping i.e. code will be idle.  
  3. I do not need to maintain a seperate manager and factory setup for my workers. I do not need to maintain server and keep maintaining it, securing it, etc. 
To rip the maximum outcome of this way of working I can make few changes in workers (code).

04 June 2018

Marathi Language Alphabets

I like to support articles in Marathi language. However a common issue I face is for typing. I tried different keyboards, all of them gives Unicode characters which is good, however they fail when it comes to complex formation. So I started keeping characters typed in Notepad++ editor. Later on I realized that it became computer specific. So thought of putting my compilation on Blog so that I can use it from anywhere and anyone can also use it if they like it.
० १ २ ३ ४ ५ ६ ७ ८ ९
अ आ इ ई उ ऊ ए ऐ ओ औ अं अः ऋ  ऍ अॅ ऑ
क्  क का कि की कु कू के कै को कौ कं कः कॅ कां
ख् ख खा खि खी खु खू खे खै खो खौ खं खः खां खॉ खॉं खों
ग् ग गा गि गी गु गू गे गै गो गौ गं गः गां गें गों गॅ गॅं गॉ गॉं
घ् घ घा घि घी घु घू घे घै घो घौ घं घः घां घें घों घॅ घॅं घॉ घॉं
च् च चा चि ची चु चू चे चै चो चौ चं चः चां चें चों चॅ चॅं चॉ चॉं
छ् छ छा छि छी छु छू छे छै छो छौ छं छः छां छें छों छॅ छॅं छॉ छॉं
ज् ज जा जि जी जु जू जे जै जो जौ जं जः जां जें जों जॅ जॅं जॉ जॉं
झ् झ झा झि झी झु झू झे झै झो झौ झं झः झां झें झों झॅ झॅं झॉ झॉं
ट् ट टा टि टी टु टू टे टै टो टौ टं टः टां टें टों टॅ टॅं टॉ टॉं
ठ् ठ ठा ठि ठी ठु ठू ठे ठै ठो ठौ ठं ठः ठां ठें ठों ठॅ ठॅं ठॉ ठॉं
ड् ड डा डि डी डु डू डे डै डो डौ डं डः डां डें डों डॅ डॅं डॉ डॉं
ढ् ढ ढा ढि ढी ढु ढू ढे ढै ढो ढौ ढं ढः ढां ढें ढों ढॅ ढॅं ढॉ ढॉं
ण् ण णा णि णी णु णू णे णै णो णौ णं णः णां णें णों णॅ णॅं णॉ णॉं
त् त ता ति ती तु तू ते तै तो तौ तं तः तां तें तों तॅ तॅं तॉ तॉं
थ् थ था थि थी थु थू थे थै थो थौ थं थः थां थें थों थॅ थॅं थॉ थॉं
द् द दा दि दी दु दू दे दै दो दौ दं दः दां दें दों दॅ दॅं दॉ दॉं
ध् ध धा धि धी धु धू धे धै धो धौ धं धः धां धें धों धॅ धॅं धॉ धॉं
न् न ना नि नी नु नू ने नै नो नौ नं नः नां नें नों नॅ नॅं नॉ नॉं
प् प पा पि पी पु पू पे पै पो पौ पं पः पां पें पों पॅ पॅं पॉ पॉं
फ् फ फा फि फी फु फू फे फै फो फौ फं फः फां फें फों फॅ फॅं फॉ फॉं
ब् ब बा बि बी बु बू बे बै बो बौ बं बः बां बें बों बॅ बॅं बॉ बॉं
भ् भ भा भि भी भु भू भे भै भो भौ भं भः भां भें भों भॅ भॅं भॉ भॉं
म् म मा मि मी मु मू मे मै मो मौ मं मः मां में मों मॅ मॅं मॉ मॉं
य् य या यि यी यु यू ये यै यो यौ यं यः यां यें यों यॅ यॅं यॉ यॉं
र् र रा रि री रु रू रे रै रो रौ रं रः रां रें रों रॅ रॅं रॉ रॉं
ल् ल ला लि ली लु लू ले लै लो लौ लं लः लां लें लों लॅ लॅं लॉ लॉं
व् व वा वि वी वु वू वे वै वो वौ वं वः वां वें वों वॅ वॅं वॉ वॉं
श् श शा शि शी शु शू शे शै शो शौ शं शः शां शें शों शॅ शॅं शॉ शॉं
ष् ष षा षि षी षु षू षे षै षो षौ षं षः षां षें षों षॅ षॅं षॉ षॉं
स् स सा सि सी स सस स स सु सो सौ सं सः सां सें सों सॅ सॅं सॉ सॉं
ह् ह हा हि ही हु हू हे है हो हौ हं हः हां हें हों हॅ हॅं हॉ हॉं
 क्ष क्षा क्षि क्षी क्षु क्षू क्षे क्षै क्षो क्षौ क्षं क्षः क्षां क्षें क्षों क्षॅ क्षॅं क्षॉ क्षॉं
त्र् त्र त्रा त्रि त्री त्रु त्रू त्रे त्रै त्रो त्रौ त्रं त्रः त्रां त्रें त्रों त्रॅ त्रॅं त्रॉ त्रॉं
ळ् ळ ळा ळि ळी ळु ळू ळे ळै ळो ळौ ळं ळः ळां ळें ळों ळॅ ळॅं ळॉ ळॉं

25 February 2018

Oracle BPEL Request-Reply JMS bridge

Scenario:
The system needs to be integrated asynchronously with other system using JMS Queues. The BPEL system will send a message in one queue (Q1). The other system will listen to Q1, processes the message and push the result in other queue (Q2). The BPEL instance should wait once it pushes message in Q1 and should continue when the reply for this message appears in Q2.

To satisfy this scenario, i followed these steps







  • I created one BPEL with SOAP service and JMS of type request-reply
  • In the BPEL, i have not added much business logic, just the assign operations


  • To check the behavior, I did below steps
    1. I invoked the SOAP service. 
    2. It created one instance in the BPEL. It also pushed one message in request queue (Q1).
    3. I repeated this for 2 more times. This created total 3 instances in BPEL and 3 messages in Q1. 
    4. Now I opened the Q1 in wewblogic and copied the message created by instance #2 and pushed that message in Q2. 
    Expected Result:
    The instance #2 should be completed and other instances #1 and #3 should be in running state.

    Actual result: 
    I see the instance got created in BPEL with failed status with error "Cannot complete callback since unable to retrieve SourceURI/Wire from Correlation store. Either Instance Tracking is disabled or no corresponding Request succeeded prior to this callback" and all 3 instances are still in running state.

    I found the the reason behind error, which was easy to find. It was failing because it was not finding any listening instance as the correlation ID was not matching. I was not setting any correlation ID so by default JMS adapter was using message ID as correlation ID. To validate the understanding I pushed one message in Q2 with message ID of instance 3. (this message id was copied from Q1). 
    Check the details in below screen shots

    Message from Q1






    New Message in Q2

    After this the respective instance got completed.

    The message ID is generated on the fly and it is a random value. So this value can;t be predicted. To make it predictable, I thought of using a unique value from the payload and set it in the correlation ID specifically through BPEL. As it is a part of message, it will be present in queue and the program reading it and pushing a message in Q2 will also have it so that it can be set in Q2 message too.
    To set the value of correlation ID in Q1, i made the changes in BPEL as below.

    This way we will be sure about correlation ID. This value can be seen in Corr ID in message queue Q1.









    12 May 2017

    WebCenter Imaging web services

    I wanted to invoke WebCenter Imaging (WCI) web services to export the documents to folder. On oracle docs you can find the code at Retrieve Document Sample.
    Even on internet you will find the code snippet with detailed explanation at many places. However the most irritating & equally frustrating part I faced was to find the jar files. Some the classes are not standard and you won't find the entries in the www.findjar.com site. 

    Below are the places where you could find the jar file for this program to run
    1) <Middleware_Home>/wl_Server/server/lib
    2) <Middleware_Home>/Oracle_ECM1/ipm/lib

    Even after adding the Jar files from these locations it fails at the login service i.e. below line. 

    ServicesFactory servicesFactory = ServicesFactory.login(credentials, Locale.US, "http://vikrant.ipm.com:16000/imaging/ws");

    To make it work you need to add few more jar file. Below is the complete list of Jar files. All these jar files are available at JarFiles.
    1. gmbal-api-only.jar
    2. imaging-client.jar: This file must be from WCI server to which you will be connecting. For me the size was 835458 B 
    3. itextpdf-5.0.6.jar
    4. javax.persistence.jar
    5. jaxb-core-2.2.11.jar
    6. jaxb-impl.jar
    7. jaxws-rt.jar
    8. policy.jar
    9. stax-ex.jar
    10. streambuffer.jar
    11. ws.api.jar

    15 October 2016

    What is better, buying car on loan or on cash?

    Last few days I was searching for options to buy a car. I was ready to pay the total cost from my savings. Just today i had a discussion with Nilesh (my reporting manager) about this decision. I generally discuss the financial decisions with him. He gave me an interesting calculation which stun me. There were 2 options
    Option 1: Pay 10 Lakhs as a down payment and purchase the car.
    Option 2:  Put 10 Lakhs in FD and take a car loan for 10 Lakhs

    Here assumptions are you have Rs. 10 Lakh and you also have capability to pay EMI. Both the things are achievable only then below options are viable.

    Option 1 is straight forward. You have money and your paid it
    Option 2 I take a loan of 10 Lakh Rupees for 5 years @ 9.8% interest per year, then EMI I need to pay  will be Rs. 20,977. In total 60 installments I will be paying. As car loans do not have pre-payment option I am bound to pay 20977 * 60 = Rs. 12,58,620. Simultaneously I put the amount which i have in my saving i.e. 10 Lakh in fixed deposit (the 2nd worst investment option, first is keeping money in saving account) @ 7.25% per year. Then due to compounding interest calculation I will get 1000000 * (1.0725)^5 = Rs. 14,19,013. This figure is more than what I will be paying over 60 months. Moreover I have the amount at my disposal. I can take out the money from FD and use it. At end of 5 year I will be saving Rs. 1,60,393 in option 2. isn't this amazing?



    Then Lalit (friend sitting on next seat) jumped in the discussion. He said that in the above calculation we are not taking EMI amount in calculation. It was a valid point. If I pay all amount at once then I have EMI amount which should be invested. So we choose an option of creating Recurring Deposit (yet another worst option of investment better than FD) so 7.25% for 5 years with RD amount 20977 will give the Rs. 15,18,953. This created 3rd option.

    Option 3: Pay 10 Lakhs and create RD of 20977 for 5 years. This will give Rs. 15,18,953 at end of 5 years.

    Looking at the comparison it is clear to opt for option 3 of paying 10 Lakhs and buy a car. The catch here is one must create RD else the benefit is lost. If want to earn more profit, go for better investment options like mutual funds, corporate FDs, blue chip shares, etc..

    To summarize it below are the options and benefits

    Option 1: Pay 10 Lakhs as a down payment and purchase the car.
    Option 2: Keep 10 Lakhs in FD which will give you Rs. 14,19,013 and take a loan of 5 Years & pay Rs. 12,58,620. Effectively at end of 5th year you will have Rs, 1,60,393. 
    Option 3: Pay 10 Lakhs and create RD of 20977 for 5 years. This will give Rs. 15,18,953 at end of 5 years. Effectively you will have Rs. 5,18,953.

    Moral of the story, best is option 3, but if you don't invest EMI amount then option 2 is better. 


    07 May 2014

    Instance state in EM Console


    Instance state in EM Console

    Problem:
    Instance state of the instances is not shown proper message instead it shows “?  ---”. When we click on it, it shows below message.

    The instance state is not available. You can enable capturing of state for the new instances by modifying the SOA Infrastructure Common Properties.


    This state is not adding any value. We need to see proper state of the instance.



    Solution:
    1.       Login to EM console
    2.       Traverse the left side tree so that it will display “soa-infra” under SOA
    3.       Right Click on “soa-infra”
    3.1.    Then go to “SOA Administration”  -> “Common Properties”





    4.       This will show “common properties” page.


    4.1.    To enable the proper state display, mark the check box “Capture Composite Instance State”.
    4.2.    It will display a message that it may slow down the system. But it is a small Trade-off you need to do. So click on “OK”
    4.3.    Apply the changes.

    Verify the changes
    1.       Create a new instance in the composite.
    2.       Observe the instance state. It will be meaningful.


    17 September 2013

    Few tips for First time US visitors

    After a career of around 12 years I got a chance to travel out of India to United States of America. I have been interacting with client for a long time and it was never an issue for tackling client/ technology challenges. The main challenge i was worried about was the social life and getting used to their day-to-day customs. I will be putting some of them in the post below.

    Packing Bags:
    First thing check the luggage allowed by your airline. Make sure the same baggage is allowed till your final destination. Sometimes it may happen that the flight after port of entry may have less allowed baggage and you may have to pay extra. Check specifically for
    1. Number of bags allowed, check-in and hand bag
    2. Weight limit per bag, for check-in and hand bag
    3. Dimensions for bag, for check-in and hand bag.

    Vehicle Driving style:
    Unlike in India, they have drive on the right side of the road. A good information on this topic can be found "http://en.wikipedia.org/wiki/Right-_and_left-hand_traffic". This was very confusing while I was on road, on the walk or even sitting in the vehicle. As I was not having International driving license, I couldn't have rent a car there. You should check if the state (in which you are travelling) has any specific rule. Some of the states do allow you to drive on your Indian license, it must be in English so that officer can read it. So most of the time I was walking on the pathways (side-walk)or sitting next to friends who were driving. It is confusing where to look when you are crossing the road. The simple rule I made for myself is to wait for at least 15 seconds on the side-walk (Foot path) before I start crossing the road and judge the traffic by looking on both the sides, front, back, basically everywhere where I can see the road. Only then I could figure out in which direction I should see first half and then on opposite side in second half. On most of the cross roads they have a push button for walkers so that the signal will be made available for them. I was expecting that the vehicle drivers will obey/ respect this signal. But it was not a case for all the time. So one must be careful before crossing the road. They say, in US vehicles will never run over you, but I faced some incidents, like while taking right turn drivers are not much concern about the signal. If you are crossing the road and driver could not see you, he may proceed. But definitely will not run over you.

    Drinking Water
    Nothing is free in US. You have to pay even for water. Unlike India, the cost is as much as soft drinks like Coke or Pepsi. Trust me nothing can replace water. For having a water during your travel, you should keep bottle that gives you in the plane. in transit, before security check make sure that you empty that completely. After security check, you will see water fountain for drinking water. Get that bottle filled. For having a water in you US stay, you should pack empty water bottle in your check in baggage. If you are on business (staying in Hotel) then your hotel will have water fountains near gym area and Ice machine. Get the ice and melt it to fill your empty bottle. If your hotel do not have any of them then probably you should grab drinking water bottles from grocery store in bulk. It will cost you ~4$ for 10 liter. You may also see water dispensers in malls. which will be another cheaper option. The last one, if you do not belong to "Hand Sanitizer" generation then you can have a tap water. Many a times it is much cleaner compared to India. 

    26 February 2013

    List of Apps for iPod Touch 1G


    I have an iPod Touch 1G 8 GB, got it in year 2007 and also agree that it is way way old. It is working great so i have not plan to dump it in near future. I got this upgraded to iOS 3.1.3. The problem I face is to get new apps from the iTune Store. I could download it from it but it couldn't get Sync with iPod. Great iTune team also do not show any error or message for it. In iTunes Store there is no way where you can search apps which are only compatible with your device (basis iOS, generation, etc). You need to take a pain to go through all the apps and check the requirements tab if those are compatible with your device or not. I tried searching net for the list where such apps are available, but couldn't find one. So i thought to create it myself.

    This is a list of apps which i have tested or visited myself. This will keep on growing as and when i found new apps.

    Games:
    Spy Mouse: http://itunes.apple.com/in/app/spy-mouse/id445992465?mt=8


    05 June 2012

    Weblogic Domain Creation - When to choose "for Developers" option

     
    First step in creating the SOA Weblogic domain is to select "Oracle SOA Suite" product. The dilemma that I face is whether to select "Oracle SOA Suite" or " Oracle BPM Suite for developers".

    Oracle documentation says about developers suite that it do not create an Managed Servers instead it creates only a single Administration Server. As a general practice, Managed servers are created in production and in case of development, single admin server is used for deployment.

    Below are few advantages of having managed server over non-managed server.
    • It is independant server which will keep on working even if the admin server fails.
    • Production environments that require increased application performance, throughput, or availability should configure two or more of Managed Servers as a cluster.
    Now the question arrises is what are the benefits of not having managed server in development mode?
    • Multiple managed servers means multiple JVMs which inturn needs more memory.
    • Having multiple managed servers will create an additional task to start that server after admin server is started. If the SOA server is a part of admin server then just start of server will also start SOA server i.e. it will start port 8001 and 7001 both. 
    In short, there is no significant difference in developer mode and non-developer mode. So it is your decision to go with managed server mode or with developer mode. My suggestion would be
    • For 32 bit machine which will have RAM restriction of 2^32 Bytes i.e. 4 GB, you should go for developer mode.
    • Now days most of the machines are 64 bit and will support 2^64 Byes i.e. more than 18 quintillion, you should go for managed server mode.
    Let me know if there are any points i have not considered. Comments appriciated.
       

    11 May 2012

    Link between Worklistapp and Enterprise Manager console

    Problem Description
    I want to trace the instance of BPM worklist in Enterprise manager.
    Using search option given in the BPM worklist, we can easily search a specific instance in BPM worklist. But if it is faulted then how can we trace its corresponding instance in Enterprise manager console?

    BPM Worklist

    Enterprise Manager Console

    Alternate work around:

    I tried printing instance ID in BPM worklist using a form but there is not relevance of instance id between BPM worklist and the instance ID from Enterprise Manager.

    The other way is by looking at the date-time stamp, but it is really painful process to track the exact instance in Enterprise manager.

    Better work around:
    The following query gives other details about the task basis task number from BPM worklist.
    SELECT
    TASKNUMBER, COMPOSITEINSTANCEID, INSTANCEID, TASKID,
    ASSIGNEES, ASSIGNEESDISPLAYNAME, CALLBACKID, PROCESSID,
    PROCESSNAME, PROCESSVERSION, ASSIGNEDDATE, CREATEDDATE,TITLE, USERCOMMENT
    FROM wftask
    WHERE TASKNUMBER = <task_number>;


    Where <task_number> is the task number of BPM worklist. Using this you can easily locate the composite instance for a given task number.
    In this query we get COMPOSITEINSTANCEID which is instance ID of PROCESSNAME and PROCESSVERSION which can be found in EM console under soa-infra -> default -> PROCESSNAME[PROCESSVERSION]
    However INSTANCEID can be used to track down the instance in right click on soa_infra -> Service Engines -> BPEL. In the screen click on “Instances” tab. Enter the value in this and you will get the instance and other details.
    Solution:
    I am still looking for the easier way to trace EM instance from BPM task.