How perf works: good link: http://sandsoftwaresound.net/perf/perf-tutorial-hot-spots/
If I have eight hours for cutting wood, I spend six sharpening my axe.
Tuesday, March 2, 2021
Saturday, February 27, 2021
Friday, December 4, 2020
DOS Attack (Denial Of Service)
https://www.cloudflare.com/learning/ddos/what-is-a-ddos-attack/
A distributed denial-of-service (DDoS) attack is a malicious attempt to disrupt the normal traffic of a targeted server, service or network by overwhelming the target or its surrounding infrastructure with a flood of Internet traffic
From a high level, a DDoS attack is like an unexpected traffic jam clogging up the highway, preventing regular traffic from arriving at its destination.
Thursday, November 5, 2020
Kernel Threads
- kthreadd (pid = 2) created by kernel (pid = 0) during boot
- kthreadd helps in creating other kernel threads which are required to run periodically/asynchronously
- "ps" shows kernel threads
- Everything under [square bracket] are kernel threads
sw0:FID128:root> ps -eaf
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 01:21 ? 00:00:00 init [5]
root 2 0 0 01:21 ? 00:00:00 [kthreadd]
root 3 2 0 01:21 ? 00:00:00 [ksoftirqd/0]
root 4 2 0 01:21 ? 00:00:00 [kworker/0:0]
- All calls from user-space to create a new process (including "create_thread" in kthreadd), will end up in do_fork call which internally calls copy_process
Thursday, August 27, 2020
High Mem vs Low Mem
https://linux-kernel-labs.github.io/refs/heads/master/labs/memory_mapping.html
kmalloc: uses low-memory
vmalloc: uses high-memory
Thursday, May 28, 2020
CSS (Cascading Style Sheets)
https://classroom.udacity.com/courses/ud001/lessons/7473321627/concepts/74276264120923
CSS Tricks: https://css-tricks.com/almanac/
CSS: how the content should look in the webpage (layouts, colors etc)
HTML: the actual contents
[Without CSS, HTML allows basic formatting such as bold, italic etc, but nothing more. To use various layouts, use CSS]
NOTE: without CSS, browser also can apply default styling settings.
Youtube without CSS is something that would look like when the internet connection is slow.
CSS Tricks: https://css-tricks.com/almanac/
CSS: how the content should look in the webpage (layouts, colors etc)
HTML: the actual contents
[Without CSS, HTML allows basic formatting such as bold, italic etc, but nothing more. To use various layouts, use CSS]
NOTE: without CSS, browser also can apply default styling settings.
Youtube without CSS is something that would look like when the internet connection is slow.
- CSS has rule-sets.
- And a rule-set is nothing but rules on how to render the tags
- For ex: div : {color: blue} => would mean, render everything under 'division' in body in blue color
- Hence it has 2 parts: tags and the declarations.
- CSS rule-sets are written inside <style></style> tags inside <head> tags
- Comments inside CSS is same as C or C++: /* CSS comments */
- NOTE: Comments inside html is different <!-- comment here -->
- attributes and classes:
- p { colors: red }; => will change all the paragraph colors to red.
- but if we want to change a particular paragraph (id) or a group of paragraphs (classes) to a color, we need id and classes.
- while declaring a tag in <body> include the id (id is similar to a variable in C) or classes (group of tags marked to apply a particular setting)
- <p id="site-description">check out my site description</p>
- <p class="book-summary another-class">Algorithms</p>
- NOTE: an html tag can belong to multiple classes (multiple groups/selectors)
- And in CSS styles,
- <style>
- .book-summary { => classes starts with '.'
- colors:red
- }
- #site-description { => id (variables/attributes) starts with #
- colors:pink;
- }
- Colors:
- .sidebars {
- color: rgb(0, 0, 225) => blue
- color: blue => blue
- color: #0000ff => blue
- color: #00f => blue (short-hand representation of 0000ff)
- Selectors:
- Basics: Tags, classes and IDs.
- More complex selectors: https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Selectors
HTML tags (trees)
Elements Link: https://developer.mozilla.org/en-US/docs/Web/HTML/Element
- Each page should contain: head + body
- head elements are not displayed; mainly used for title, references, meta-data, CSS-styles etc
- Body elements are displayed.
- Each page should have only one body
- Inside body we can have: divisions, header strings, links, images, buttons, paragraphs, sub-strings, super-strings, spans etc.
- divisions: <div></div>: Inside divisions, you can organize header strings, buttons etc. A body can have multiple divisions
- header strings: <h1-6> </h1-6>: h1 is the highest
- links: <a href="https://www.gmail.com">GMAIL</a>: a means anchor here
- images: <img src="https://page-containing-image" alt="some description"> [NOTE: images are similar to links: instead of href, we have src. But images dont have end tags </img>; hence, they are one of type called "void elements"
- <figure>and <figcaption>=> can be used along with image to provide figure section
- For ex:
- <figure>
- <img src="local_file.jpg" alt="description">
- <figurecaption>Caption for the image which will be displayed below the image</figurecaption>
- </figure>
- <em></em> => for italic
- <strong></strong> => for bold
- <ul><li>option1</li><li>option2</li></ul> => unordered list
- <ol> with numbers by default
- Comments inside html: <!-- comment here -->
- NOTE: Comments inside CSS is same as C: /* CSS comment */
- sdf
Monday, October 7, 2019
Fetching Price of a product online
import requests from bs4 import BeautifulSoup import smtplib import getpass def get_price(): ''' the url from which u need the product details '''URL = 'https://www.amazon.in/JBL-Splash-Proof-Portable-Wireless-Bluetooth/dp/B0125QA4IO?ref_=Oct_DLandingS_PC_a25847b7_13' ''' user-agent involved: search for 'my user agent' in your browser to get this info '''headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36'} ''' get the whole page; if u print 'page' it will be nasty and big '''page = requests.get(URL, headers = headers) ''' parse the page (using html parser) '''soup = BeautifulSoup(page.content, 'html.parser') ''' find the id (aka variable) used in browser that holds product info '''product = soup.find(id = 'productTitle').get_text().strip() ''' similarly get the price '''price = soup.find(id = 'priceblock_ourprice').get_text().strip() print (product) print (price) ''' some manipulation needed to get the price in value (instead of string) '''converted_price = price.strip('₹').strip() converted_price = float(converted_price.replace(',', '')) print (converted_price) return converted_price def send_mail(mailid, password, current_price): ''' get the SMTP object '''server = smtplib.SMTP('smtp.gmail.com', 587) ''' extended hello '''server.ehlo() ''' put the smtp connection in tls mode; this to get encrypted connection '''server.starttls() server.ehlo() ''' login using your credentials '''server.login(mailid, password) #subject = 'Hey, the price fell down to ₹ {}/-'.format(current_price).encode('utf-8')#subject = 'Hey, the price fell down to ₹ %s' % (str(current_price)).encode('utf-8')subject = 'Hey, the price fell down' body = 'Check the amazon link for more details: https://www.amazon.in/JBL-Splash-Proof-Portable-Wireless-Bluetooth/dp/B0125QA4IO?ref_=Oct_DLandingS_PC_a25847b7_13' msg = f"Subject: {subject}\n\n{body}" server.sendmail('hkumar.sekar@gmail.com', 'harish.sekar@broadcom.com', msg) ''' don't forget to delete the smtp object aka. close connection '''server.quit() print ("Hey, the price dropped. Mail is sent") def main(): mailid = input('Enter your email ID: ') p = getpass.getpass() current_price = get_price() if current_price < 6000: send_mail(mailid, p, current_price) if __name__ == '__main__': main()PROGRAM OUTPUT:C:\Users\hs411053\PycharmProjects\scraper\venv\Scripts\python.exe C:/Users/hs411053/PycharmProjects/scraper/scraper Enter your email ID: hkumar.sekar@gmail.com Password: JBL Flip 3 Portable Wireless Speaker with Powerful Sound & Mic (Blue) ₹ 5,599.00 5599.0 Hey, the price dropped. Mail is sent Process finished with exit code 0And the Mail would have been sent.
Sunday, October 6, 2019
How to Print in Makefile
Source: https://stackoverflow.com/questions/11775733/how-can-i-print-message-in-makefile/11776179
15 # for TRACEGEN
16 include $(MAKEDIR)/Tools.make
17
18 ifeq ($(CONFIG_SOMETHING),y)
19 EXTRA_CFLAGS += -fsanitize=kernel-address
20 $(info ************ TEST VERSION ************)
21 else
22 $(info ************ ELSE VERSION ************)
23 endif
$(info your_text) : Information. This doesn't stop the execution.$(warning your_text) : Warning. This shows the text as a warning.$(error your_text) : Fatal Error. This will stop the execution.
To print a variable in Makefile:
18 $(info $$CONFIG_VAR1 is [${CONFIG_VAR1}])
19 $(info $$CONFIG_VAR2 is [${CONFIG_VAR2}])
Subscribe to:
Posts (Atom)

