Accelerate: The Science of Lean Software and DevOps by Nicole Forsgren, Jez Humble, and Gene Kim is a game-changing book according to me. The authors identify key practices that help organizations achieve high performance in software development and delivery. Something we don't have to re-invent but rather adopt. I can say several factors are already in full fledge in my organization which I am proud about.
Search This Blog
The Art of the Deal - Learning Reference
Building Scalable Systems - Handling Hyper-Growth
I’ve seen businesses stumble not because of a lack of ambition or potential but due to difficulties in planning effectively for future needs. Is this because long-term planning is inherently complicated? Absolutely not.
The Phoenix Project - My Thoughts
Here are some key takeaways and reflections from the book that I’d like to share.
Embrace Systems Thinking: Optimize the Entire System
Quantum Computing in Simple Terms
Imagine you have a really hard puzzle to solve, like figuring out the fastest way to visit a bunch of cities. A regular computer would try one solution at a time, moving step by step until it finds the best answer. This works, but as the puzzle gets more complicated, it takes a very long time.
UK Payroll Processing Steps
The Idea of #Decentralizing the #SocialMedia
Low Code Application Development in 2023
A few years ago, I was introduced to low-code application development (LCAD) with Oracle APEX and instantly liked the concept of coding less. The product stint did not last long because the product lacked key critical features at the time. I felt it was easier to code with the known frameworks than foray into a product with restrictions.
Extract Table Data Using Python
This is a very simple example. But you will know the dynamics to alter for achieving the right results.
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
options = Options()
options.headless = True
driver = webdriver.Chrome(options=options)
driver.maximize_window()
driver.get('https://www.w3schools.com/html/html_tables.asp')
# Make Python sleep for some time
sleep(2)
rows = len(driver.find_elements("xpath","/html/body/div[7]/div[1]/div[1]/div[3]/div/table/tbody/tr"))
# Obtain the number of columns in table
cols = len(driver.find_elements("xpath","/html/body/div[7]/div[1]/div[1]/div[3]/div/table/tbody/tr/td"))
# Printing the data of the table
for r in range(2, rows+1):
for p in range(1,4):
#obtaining the text from each column of the table
value = driver.find_element("xpath","/html/body/div[7]/div[1]/div[1]/div[3]/div/table/tbody/tr["+str(r)+"]/td["+str(p)+"]").text
print(value)
Execute Selenium in Jupyter Notebook - Headless Mode
In the previous example, when you run the script, you will be able to see the chrome browser getting activated and follows the command in the script.
Headless mode runs the code without the need of the physical browser. It executes the same script behind the scenes, without opening the browser window at all.
This makes automation much easier and efficient in a way. Speed and performance is amazing in this scenario. You can run multiple tests in parallel without the overhead of multiple browsers being open all through the execution time frame.
Below is what how you can run the code from the previous post in the headless mode.
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
options = Options()
options.headless = True
driver = webdriver.Chrome(options=options)
driver.maximize_window()
driver.get('https://google.com')
driver.find_element("name", "q").send_keys("Elon Musk")
driver.find_element("xpath","/html/body/div[1]/div[3]/form/div[1]/div[1]/div[4]/center/input[1]").send_keys(Keys.ENTER)
print(driver.find_element(By.XPATH,"/html/body/div[7]/div/div[11]/div[3]/div[2]/div/div/div[2]/div/div/div/div[1]/div/div/div/div/span[1]").text)
sleep(3)
driver.close()Result will be the same, but no browsers are opened.
Execute Selenium in Jupyter Notebook
Installing and running selenium is so simple with Jupyter Notebook. Follow the below steps to create a sample program. Creating POCs will be superfast with this method. Steps to run Selenium with Python on Jupyter notebook below:
Install Selenium in Jupyter
!pip install seleniumInstall Chrome Webdriver
Install from this link: https://chromedriver.chromium.org/Run the sample program below
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://google.com')
driver.find_element("name", "q").send_keys("Elon Musk")
driver.find_element("xpath","/html/body/div[1]/div[3]/form/div[1]/div[1]/div[4]/center/input[1]").send_keys(Keys.ENTER)
print(driver.find_element(By.XPATH,"/html/body/div[7]/div/div[11]/div[3]/div[2]/div/div/div[2]/div/div/div/div[1]/div/div/div/div/span[1]").text)
sleep(3)
driver.close()
Access PeopleSoft (or anything) from Slack
Continuous, non-interrupted and managed communication.
De-orchestrated productivity
This isn't going to happen without the team effort and, is something that I like within the team to it's best. Productivity shot up by 40%.
Below is one example. The integration team, who is new to the PeopleSoft world, had a query about a PeopleSoft record. Using PS_ is a part of the PeopleSoft life, but not for any other teams and might end up in a query which says, "table doesn't exist".
This is what the integration does:
- Slash command triggers the event
- Post the request to the server
- Server reads the request
- Triggers PeopleSoft Rest API for fetching the information and parse the response
- goog_2079004393Respond back to Slack using Web Hooks
Let's take another example. Tracking the PeopleSoft scheduled job information within the slack channel. You will get notified on the program start and end timings with any other information, say, quick log access with Success and Error counts etc.
.png)


