Monday, June 12, 2023

System Design Techniques

1. Read-Heavy System: Consider using a cache.

2. Low Latency Requirement: Utilize cache and CDN.

3. Write-Heavy System: Use message queues for async processing.

4. ACID Compliance: Opt for RDBMS or SQL Database.

5. Unstructured Data: Choose NoSQL Database.

6. Complex Data (Videos, Images, Files): Go for Blob/Object storage.

7. Complex Pre-computation: Use Message Queue & Cache.

8. High-Volume Data Search: Consider search index or search engine.

9. Scaling SQL Database: Implement Database Sharding.

10. High Availability, Performance, & Throughput: Use a Load Balancer.

11. Global Data Delivery: Employ a CDN.

12. Graph Data: Utilize Graph Database.

13. Scaling Various Components: Implement Horizontal Scaling.

14. High-Performing Database Queries: Use Database Indexes.

15. Bulk Job Processing: Consider Batch Processing & Message Queues.

16. Server Load Management: Use a Rate Limiter.

17. Microservices Architecture: Utilize an API Gateway.

18. Redundancy for Single Point of Failure: Implement Redundancy.

19. Fault-Tolerance and Durability: Employ Data Replication.

20. User-to-User Communication: Use Websockets.

21. Failure Detection in Distributed Systems: Implement a Heartbeat.

22. Data Integrity: Use Checksum Algorithm.

23. Efficient Server Scaling: Implement Consistent Hashing.

24. Decentralized Data Transfer: Consider Gossip Protocol.

25. Location-Based Functionality: Use Quadtree, Geohash, etc.

26. Avoid Specific Technology Names: Use generic terms.

27. High Availability and Consistency Trade-Off: Eventual Consistency.

28. Domain Name Query: Mention DNS (Domain Name System).

29. Handling Large Data in Network Requests: Implement Pagination.

30. Cache Eviction Policy: Preferred is LRU (Least Recently Used) Cache.

Credits: Dinesh Varyani. Your leetcode blog was an amazing list down!

Wednesday, January 4, 2023

Product Management Articles

PM interview preparation

1. The only thing that matters by Marc Andreessen : https://lnkd.in/dHYmqkRd

2. Relentlessly resourceful by Paul Graham : https://lnkd.in/d9nGPSFJ

3. Product Management mental models for everyone by Brandon Chu : https://lnkd.in/dzMx4JfW

4. The first principles of product management by Brandon Chu : https://lnkd.in/d4YS_fHi

5. 12 things about product market fit : https://lnkd.in/dyuHB3PC

6. The Minimum Viable Product Manager : https://lnkd.in/d32aBj_y

Design thinking process

1. How would you design an interface for a 1000 floor elevator? : https://lnkd.in/dWx2Khxz

Building great culture as a PM :

1. How to work with engineers by Julie Zhou : https://lnkd.in/dyY6HsYC

2. How to work with designers by Julie Zhou : https://lnkd.in/dbZCH4cm

Execution and Prioritization

1. The time value of shipping by Brandon chu : https://lnkd.in/dvHVpG7D

2. Deadlines by Brandon chu : https://lnkd.in/dNS7ApXh

Defensible growth

1. Do things that dont scale by Paul Graham: https://lnkd.in/dnmJ285n

2. What we look in founders by Paul Graham: https://lnkd.in/dHE45YSq

3. Why paid marketing sucks, Network effects, Viral Growth, and more : https://lnkd.in/d6pe8mYv

Product leadership

1. Why leaders eat last by Simon sinek : https://lnkd.in/dHBmikuX

2. Navigation success for your startup by Sam altman : https://lnkd.in/dSur_KYX

Miscellaneous

1. Titktok and the sorting hat : https://lnkd.in/dcRNTu8D

2. Seeing like an algorithm : https://lnkd.in/dEe8Xtg6

3. Shein the tiktok of commerce: https://lnkd.in/dzhRe_fN


Monday, January 31, 2022

Songs



 


జ్ఞానికే ఎరుక సుజ్ఞానుల మరుగు

అజ్ఞానికి ఏమెరుకా… వారు ఉండే స్థలము సద్గురుడుండే మరుగు… అజ్ఞానికి ఏమెరుకా… వారు ఉండే స్థలము సద్గురుడుండే మరుగు… నానాక రుచులన్నీ… నాల్కకు ఎరుకా నానాక రుచులన్నీ… నాల్కకు ఎరుకా ఇట్లా కుండలెంబడి తిరిగే… తెడ్డుకేమెరుకా జ్ఞానికే ఎరుక సుజ్ఞానుల మరుగు అజ్ఞానికి ఏమెరుకా… వారు ఉండే స్థలము సద్గురుడుండే మరుగు… వనము సింగారంబు… కోయిలకెరుకా వనము సింగారంబు… కోయిలకెరుకా ఇట్లా కంపాలెంబడి తిరిగే… కాకికేమెరుకా జ్ఞానికే ఎరుక సుజ్ఞానుల మరుగు అజ్ఞానికి ఏమెరుకా… వారు ఉండే స్థలము సద్గురుడుండే మరుగు… బాటాసింగారంబు… అశ్వానికెరుకా బాటాసింగారంబు… అశ్వానికెరుకా ఇట్లా గరికా తుట్టెలు తినే… గాడిదకేమెరుకా //జ్ఞానికే ఎరుక// నాగస్వరము మోత… నాగుపాముకెరుకా నాగస్వరము మోత… నాగుపాముకెరుకా ఇట్లా తుంగాలెంబడి తిరిగే తుట్యాకేమెరుకా //జ్ఞానికే ఎరుక// మడుగు సింగారంబు… మత్స్యానికెరుకా మడుగు సింగారంబు… మత్స్యానికెరుకా ఇట్లా కడలా కడలా తిరిగే… కప్పాకేమెరుకా జ్ఞానికే ఎరుక సుజ్ఞానుల మరుగు అజ్ఞానికి ఏమెరుకా… వారు ఉండే స్థలము సద్గురుడుండే మరుగు… సద్గురుడుండే మరుగు… ||4|| ఓ ఓ ఓ ఓఓ… ఓఓ ఓఓ

Tuesday, January 25, 2022

Books



Here are the some of the Best book collections, 
  • High Performance Habits: How Extraordinary People Become That Way , Hardcover 
  • Getting Things Done : The Art of Stress-Free Productivity by David Allen
  • 52 Red Pills
  • You Can't Order Change
  • The 7 Habits of Highly Effective People
  • Rich Dad Poor Dad 
  • The 4 Hour Work Week
  • High Performance Habits
  • Read People Like a Book
  • Getting Things Done
  • The 80/20 Principle
  • Holy Cow

 

Monday, November 11, 2019

sirishg.blogspot.com moving to RightSwift.com

Hi there,
   Thought of converting my personal blog sirishg.blogspot.com to www.rightswift.com. Please stay tuned and feel free to visit my stunning work in progress website www.rightswift.com.

Thank you!

Friday, August 30, 2019

Update sharedLocation in InstallationManager (IBM Sterling B2B Integrator)

First of all the following value has to be unique to each install of Sterling Integrator. If you accidentally used shared location for cluster installation your second node installation not going to work. So here is how we can fix this.

1. Go to user home and move $USERHOME$/IBM/IBMSHARED to new local location.

2. Update the reference in /home/user/var/ibm/InstallationManager/installRegistry.xml

         

That's it. This will fix First node IBMSHARED location and we can proceed with second node installation.

How to verify?
1. Go to InstallManager tools
    cd /InstallationManager/IM_Linux/tools 
2. ./imcl listInstalledPackages -verbose

Validate the output something like below,

[Shared]
Shared resources directory: /opt/ibm/IBMIMShared

[Package group]
Name: Sterling Integrator
Installation directory: /opt/ibm/sfg
Translations:
Architecture: 64-bit

[Package]
Name: IBM Sterling B2B Integrator (com.ibm.sterling.integrator.install.offering)
Version: 5.2.6.1 (5.2.6001.20151220_1540)
Repository: /opt/ibm/media/b2birepo
Features:
    IBM Sterling File Gateway (filegateway.feature)
Fixes:
    None
Rollback versions:
    None

Tuesday, August 13, 2019

Enable CBC Ciphers in B2Bi v5.2.6.4, B2Bi v6.0, SFG v2.2.6.4 and SFG v6.0

Some of the IBM Sterling B2B Integrator(SI) customers wants to avoid SSH handshake using CBC Cipher as it is vulnerable. The link http://www.kb.cert.org/vuls/id/958563 explains that CBC Ciphers are security vulnerable and the solution is to use CTR Cipher instead of CBC Cipher. However, in SI versions 5020602 and 5020603, maverick (the third party api used for SSH/SFTP) version used is 1.4.60 which mandates that CBC Cipher should be present in Client side. Hence, disabling the CBC support using the security property supportCBCCiphers=false will result in SFTP communication failure with key based authentication.

To enforce the use of CTR Cipher in SI, we have introduced two new properties : SSHServerCipherList, SSHClientCipherList
a) security.SSHServerCipherList is the property to restrict the list of server side ciphers. In the SFTP Server adapter, "Preferred Cipher" drop down will pick the values specified in this property list.
b) security.SSHClientCipherList is the property to restrict the list of client side ciphers. In the SSH Remote Profile Configurations, "Preferred Cipher" drop down will pick the values specified in this property list.
The fix also needs the property security.supportCBCCiphers set as true in customer_overrides.properties.
This is how it works :
1. In the server side, SFTP Server Adapter can restrict Cipher as "ctr" by specifying the property value as
   security.SSHServerCipherList=aes128-ctr,aes192-ctr,aes256-ctr
   This will restrict the client to communicate only with "ctr" Ciphers.
2. In the client side, the Business Process should specify Ciphers as "cbr" and "ctr" by specifying the property value as
   security.SSHClientCipherList=aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,aes192-cbc,aes256-cbc
   Also, the PreferredCipher should have the value of "ctr" in BP. This will ensure that the communication happens with "ctr" Cipher.

3. The external client should ensure that it communicates with server adapter with "ctr" Cipher.

In case, if there is a mismatch in client and server side Ciphers, an error message : Failed to negotiate a transport component [aes128-cbc,aes192-cbc,aes256-cbc] [aes256-ctr,aes128-ctr,aes192-ctr] [Unknown cause]:SSH_DISCONNECT_BY_APPLICATION:SFTP session channel closed by server.: should be displayed in SFTP Client Begin Session Service.

NOTE : This fix is available only as a custom ifix for SI versions 5020602 and 5020603. The changes are NOT available in the product.

https://www.ibm.com/developerworks/community/blogs/2f9ef931-1ac3-4d9b-a8ca-6e3f01b13889/entry/IBM_Sterling_B2B_Integrator_Enforce_CTR_Cipher_in_SFTP_Communication?lang=en


Monday, July 1, 2019

PGP - Generate Import Export PGP Keys

Generate PGP Keys

gpg --gen-key

Enter Key details, Email, Expiration etc.,

Export Secret Key

gpg --export-secret-key -a MY_PGP_KEY >> /tmp/MY_PGP_KEY.key

Export Public Key

gpg --export -a MY_PGP_KEY >> /tmp/MY_PGP_KEY.asc

Import Secret Key

gpg --import /tmp/MY_PGP_KEY.key

Import Public Key

gpg --import /tmp/MY_PGP_KEY.asc

Update Key Trust Trust after importing the Key

gpg --edit-key
$trust
$5
$save

Tuesday, April 23, 2019

Update SSH Config to accept ssh-dss Key

Add the following lines of code to the file called config under .ssh folder, If you don't find a file with the name config create one,

.ssh\config

Host *
HostkeyAlgorithms +ssh-dss
PubkeyAcceptedKeyTypes +ssh-dss

Note: When server respond with ssh-dss some ssh clients don't accept the connection. If you get ssh returns “Bad owner or permissions on ~/.ssh/config” then please change the permissions as follows,

chmod 600 ~/.ssh/config

Thursday, March 21, 2019

Generate Self-Sign Certificate with SHA512

openssl req -newkey rsa:2048 -sha512 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
openssl x509 -text -noout -in certificate.pem
openssl pkcs12 -inkey key.pem -in certificate.pem -export -out certificate.p12
openssl pkcs12 -in certificate.p12 -noout -info
openssl pkcs12 -inkey key.pem -in certificate.pem -export -out certificate.p12
openssl pkcs12 -in certificate.p12 -noout -info
openssl pkcs12 -in /tmp/certificate.p12 -nokeys -out sirish_test.cer

Friday, November 2, 2018

Sterling Integrator User, Workflow Queries

Active Worksflows in Sterling Integrator

select DISTINCT NAME , WC2.WORKFLOW_ID, sysdate - START_T AS TIMEDIFF
From WORKFLOW_CONTEXT WC,
(
SELECT MAX(STEP_ID) STEP_ID , MIN(START_TIME) START_T, WORKFLOW_ID
FROM WORKFLOW_CONTEXT
GROUP BY WORKFLOW_ID
) WC2,
WFD
WHERE WC.WORKFLOW_ID = WC2.WORKFLOW_ID
AND WC.STEP_ID = WC2.STEP_ID
AND WC.NEXT_AI_ID != -1
AND WC.WFD_ID = WFD.WFD_ID
AND WC.WFD_VERSION = WFD.WFD_VERSION
AND BASIC_STATUS = 0

Sterling Integrator User & User Associated Groups List 

select YFS_USER.LOGINID, YFS_USER_GROUP.USERGROUP_NAME from YFS_USER, YFS_USER_GROUP, YFS_USER_GROUP_LIST
where YFS_USER.USER_KEY=YFS_USER_GROUP_LIST.USER_KEY
and YFS_USER_GROUP.USERGROUP_KEY=YFS_USER_GROUP_LIST.USERGROUP_KEY

Tuesday, June 5, 2018

SSHKeyGrabber in Sterling Integrator not working

http://www-01.ibm.com/support/docview.wss?uid=swg21628336

Sometimes SSHKeyGrabber don't work when we trying to extract Known Host Key from Sterling Integrator UI. The work around for this is disable StrictHostKeyChecking and download the Key from Linux/Windows and Check in the key to Sterling Integrator.

$ssh -o StrictHostKeyChecking=no user@sftp.host.com -p 22

Above command will save host key to known_hosts file located .~/.ssh/known_hosts

Note: Remove excess content from host key and just keep the key from ssh-rsa followed the key.