<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Software-engineerings on Sadman Kabir Soumik</title>
    <link>https://blog.sksoumik.com/software-engineering/</link>
    <description>Recent content in Software-engineerings on Sadman Kabir Soumik</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>Copyright © 2022, Sadman Kabir Soumik</copyright>
    <lastBuildDate>Sun, 26 Feb 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.sksoumik.com/software-engineering/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Brute-Force to Optimized Python Solutions for All LeetCode Blind-75 Problems</title>
      <link>https://blog.sksoumik.com/software-engineering/optimized-python-solutions-blind-75-leetcode/</link>
      <pubDate>Sun, 26 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/optimized-python-solutions-blind-75-leetcode/</guid>
      <description>
        
          
            Blind-75 is a curated list of 75 LeetCode problems compiled by Yangshun Tay. The list can be accessed at this link.
Initially, I solved each problem using a brute-force approach, which often resulted in a Time Limit Exceeded (TLE) error. Then, I solved each problem with an optimized method that was accepted on LeetCode. For every problem on the list, I have provided both the naive brute force solution and an optimized solution.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Building an Instagram Auto-Liker Bot - A Step-by-Step Guide</title>
      <link>https://blog.sksoumik.com/software-engineering/building-automated-instagram-liker-bot/</link>
      <pubDate>Thu, 12 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/building-automated-instagram-liker-bot/</guid>
      <description>
        
          
            Goal of The Project The project aims to build an Instagram bot that will auto-scroll pages down and Like/Love posts automatically. We must log in to Instagram from our web browser and then run the program.
You will find all the source code in this GitHub repository.
Dependencies 1pip install pyautogui 2# if you are on Linux, you also need to install scrot 3sudo apt-get install scrot Task 1 At first, we need to find the exact RGB value of the love sign on Instagram when the post has already been liked, so that our program doesn&#39;t click on the posts that has been already liked.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Cracking the LeetCode Two Sum Variations - All 5 Problems</title>
      <link>https://blog.sksoumik.com/software-engineering/all-leetcode-two-sum-problem-variations-with-python-solutions/</link>
      <pubDate>Fri, 21 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/all-leetcode-two-sum-problem-variations-with-python-solutions/</guid>
      <description>
        
          
            Author: Sadman Kabir Soumik
Original Two Sum Problem Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not use the same element twice. You can return the answer in any order.
1Example 1: 2Input: nums = [2,7,11,15], target = 9 3Output: [0,1] 4Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].
          
          
        
      </description>
    </item>
    
    <item>
      <title>Working with Elasticsearch on Linux Using Python Client</title>
      <link>https://blog.sksoumik.com/software-engineering/elasticsearch-python-client-tutorial/</link>
      <pubDate>Fri, 19 Aug 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/elasticsearch-python-client-tutorial/</guid>
      <description>
        
          
            Elasticsearch Elasticsearch is a distributed, open-source search and analytics engine based on the Apache Lucene search library. It&#39;s designed to provide fast and scalable search and analysis capabilities for large volumes of data.
At its core, Elasticsearch is a document-oriented database that stores data in JSON format. This allows it to index and search through data quickly and efficiently. Elasticsearch uses a powerful query language called Elasticsearch Query DSL to perform complex search queries on this data.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Core Concepts of System Design in Software Engineering</title>
      <link>https://blog.sksoumik.com/software-engineering/system-design-fundamentals-software-engineering/</link>
      <pubDate>Wed, 20 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/system-design-fundamentals-software-engineering/</guid>
      <description>
        
          
            What is System Design in Software Engineering? System design in software engineering is defining the structure, components, connections, and information for a system that meets specific needs. It is a vital step in software development as it outlines how the system will work and be structured. A team of developers usually performs this process with input from business analysts and end-users.
Process of Designing a System To create a good software system, we need to follow these steps:
          
          
        
      </description>
    </item>
    
    <item>
      <title>All 6 Best Time to Buy and Sell Stock Problems Using The Same Formula</title>
      <link>https://blog.sksoumik.com/software-engineering/best_time_to_buy_all_sell_stocks_all_problems/</link>
      <pubDate>Wed, 15 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/best_time_to_buy_all_sell_stocks_all_problems/</guid>
      <description>
        
          
            122.Best Time to Buy and Sell Stock II You are given an integer array prices where prices[i] is the price of a given stock on the ith day.
On each day, you may decide to buy and/or sell the stock. You can only hold at most one share of the stock at any time. However, you can buy it then immediately sell it on the same day.
Find and return the maximum profit you can achieve.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Bypass reCAPTCHA And Prevent IP Blocking Using Tor Proxy</title>
      <link>https://blog.sksoumik.com/software-engineering/rotate-ip-with-every-http-request-bypass-recaptcha-tor-proxy/</link>
      <pubDate>Wed, 09 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/rotate-ip-with-every-http-request-bypass-recaptcha-tor-proxy/</guid>
      <description>
        
          
            When we run web crawlers, sometimes we get blocked by the target site. Sometimes we get reCAPTCHA to solve, and crawling gets interrupted. We can rotate the IP address with each request to avoid these issues, which solves the IP blocking and reCAPTCHA issues.
This blog is the written version of the video content I published on YouTube. If you prefer watching videos than reading blogs, then you can watch the video.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Be a Master at Python Through Some Cool Code Snippets</title>
      <link>https://blog.sksoumik.com/software-engineering/python-code-snippets-tricks-tips/</link>
      <pubDate>Sun, 27 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/python-code-snippets-tricks-tips/</guid>
      <description>
        
          
            Combine two lists as a dictionary | dict(zip) Program
1keys = [&amp;#39;a&amp;#39;, &amp;#39;b&amp;#39;, &amp;#39;c&amp;#39;] 2values = [1, 2, 3] 3dictionary = dict(zip(keys, values)) 4print(dictionary) Output
1{&amp;#39;a&amp;#39;: 1, &amp;#39;b&amp;#39;: 2, &amp;#39;c&amp;#39;: 3} Program
1keys = (&amp;#39;name&amp;#39;, &amp;#39;age&amp;#39;, &amp;#39;location&amp;#39;) 2values = (&amp;#39;Soumik&amp;#39;, 26, &amp;#39;Bangladesh&amp;#39;) 3 4new_dict = dict(zip(keys, values)) 5print(new_dict) Output
1# output 2{&amp;#39;name&amp;#39; : &amp;#39;Soumik&amp;#39;, &amp;#39;age&amp;#39; : 26, &amp;#39;location&amp;#39; : &amp;#39;Bangladesh&amp;#39;} Create nested directory Program
1from pathlib import Path 2 3Path(&amp;#34;father/child&amp;#34;).mkdir(parents=True, exist_ok=True) We can also the os module.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Python Collections Module Tutorial</title>
      <link>https://blog.sksoumik.com/software-engineering/tutorial-on-python-collections-module/</link>
      <pubDate>Fri, 23 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/tutorial-on-python-collections-module/</guid>
      <description>
        
          
            Python&#39;s collections module implements specialized container datatypes providing alternatives to Python’s general purpose built-in containers, dict, list, set, and tuple.
This module has the following containers:
11. Counter() 22. namedtuple() 33. deque() 44. defaultdict() 55. OrderedDict() 66. UserDict() 77. UserString() 88. UserList() 99. ChainMap() In my experience, out of all of these modules Counter, defaultdict, OrderedDict, and deque are the most useful ones. The following section explains how Counter, defaultdict, OrderedDict, and deque works.
          
          
        
      </description>
    </item>
    
    <item>
      <title>13 Reasons Why Linux Is Better Than Windows</title>
      <link>https://blog.sksoumik.com/software-engineering/benefits-of-linux-over-windows/</link>
      <pubDate>Thu, 21 Jan 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/benefits-of-linux-over-windows/</guid>
      <description>
        
          
            Security Linux tends to be a highly reliable and secure system than any other operating system (OS). Linux and Unix-based OS have fewer security flaws, as many developers constantly review the code. And anyone has access to its source code. So, you won’t need any anti-virus software to protect your PC from malware and viruses. The reason it’s secure is that it’s open-source, which means you can see its source code.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Lambda, Map, Filter, and Reduce in Python</title>
      <link>https://blog.sksoumik.com/software-engineering/lambda-map-filter-reduce-python/</link>
      <pubDate>Fri, 11 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/lambda-map-filter-reduce-python/</guid>
      <description>
        
          
            Lambda The Lambda function, also known as an anonymous or inline function, is a way to create a function without giving it a name. This can be useful when you need to define a function that will only be used once, or when you want to pass a function as an argument to another function.
Here is an example of using a Lambda function in Python:
1# Define a Lambda function that takes two arguments and returns their sum 2sum_func = lambda x, y: x + y 3 4# Call the Lambda function 5result = sum_func(1, 2) # Returns 3 Map The Map function in Python applies a function to each element in a sequence of data.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Unleashing the Power of Bit Manipulation in Computer Science</title>
      <link>https://blog.sksoumik.com/software-engineering/bit_manupulation_in_python/</link>
      <pubDate>Fri, 12 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/bit_manupulation_in_python/</guid>
      <description>
        
          
            Bit Manipulation Bit manipulation is a technique used in computer science to manipulate data at the level of its binary representation. This can be useful for a variety of tasks, such as low-level optimization, data compression, and cryptography.
At its core, bit manipulation involves working with individual bits, rather than larger units of data such as bytes or words. This is typically done using bitwise operators, which perform operations on the individual bits of a number.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Comparing REST API and gRPC - Choosing the Right Web API</title>
      <link>https://blog.sksoumik.com/software-engineering/choosing-right-web-api-rest-grpc/</link>
      <pubDate>Fri, 10 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/choosing-right-web-api-rest-grpc/</guid>
      <description>
        
          
            REST (Representational State Transfer) and gRPC are two different techniques for creating web APIs (Application Programming Interfaces).
What is REST API? A popular architectural design for developing web APIs is REST. It is built on the HTTP (HyperText Transfer Protocol) and operates on resources defined by URLs using common HTTP methods including GET, POST, PUT, and DELETE. REST APIs are simple to use with a variety of programming languages and tools since they exchange data using the JSON (JavaScript Object Notation) format.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Compiler vs Interpreter - A Simple Guide for Beginners</title>
      <link>https://blog.sksoumik.com/software-engineering/compiler-vs-interpreter-in-simple-terms/</link>
      <pubDate>Tue, 21 Jan 2020 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/compiler-vs-interpreter-in-simple-terms/</guid>
      <description>
        
          
            Imagine you’ve written a letter in English, but your friend only speaks Spanish. You’d need someone (or something) to translate it for them, right? In programming, your code is like that letter, and the computer only understands a special language called &amp;quot;machine language&amp;quot; (all 0s and 1s). A compiler and an interpreter are like translators that help the computer understand what you’ve written in languages like Python, C++, or Java.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Dynamic Programming - Step by Step Guide with Examples</title>
      <link>https://blog.sksoumik.com/software-engineering/dynamic-programming-step-by-step-explanation/</link>
      <pubDate>Mon, 23 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/dynamic-programming-step-by-step-explanation/</guid>
      <description>
        
          
            Dynamic programming is a method for solving complex problems by breaking them down into smaller subproblems. It is a mathematical optimization technique that is mainly used for solving problems that exhibit the properties of overlapping subproblems and optimal substructure.
The basic idea behind dynamic programming is to solve a complex problem by breaking it down into smaller subproblems, solving each of those subproblems just once, and storing their solutions. The solutions to the subproblems are then used to solve the original problem.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Multi-Threading vs Multi-Processing</title>
      <link>https://blog.sksoumik.com/software-engineering/multi-threading_vs_multi-processing/</link>
      <pubDate>Sun, 24 Nov 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/multi-threading_vs_multi-processing/</guid>
      <description>
        
          
            Let&#39;s say you&#39;ve got a big school project to do. You need to write a report, paint a picture, and build a model. Here&#39;s how you might tackle the project under different scenarios:
Multi-processing This is like having multiple copies of yourself, each working independently on a different part of the project. One of you is writing the report, another one is painting the picture, and the third one is building the model.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Understanding Logarithm Function</title>
      <link>https://blog.sksoumik.com/software-engineering/understanding-logarithm-function-computer-science/</link>
      <pubDate>Tue, 06 Aug 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/understanding-logarithm-function-computer-science/</guid>
      <description>
        
          
            Logarithms are mathematical operations that are the inverse of exponentiation. In other words, if we have a base b and an exponent x, the logarithm of the resulting number y to the base b is x. This can be written as log_b(y) = x.
For example, the logarithm of 1000 to base 10 is 3, because 10^3 = 1000. Similarly, the logarithm of 100 to base 10 is 2, because 10^2 = 100.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Decorators in Python</title>
      <link>https://blog.sksoumik.com/software-engineering/decorators_in_python/</link>
      <pubDate>Mon, 20 May 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/decorators_in_python/</guid>
      <description>
        
          
            Decorator is a design pattern to extend the functionality of a function without modifying the structure of the original function. Decorators are usually applied to functions using the @decorator syntax, immediately before the function definition.
Example of how to use a decorator to extend the functionality of a function:
1def my_decorator(func): 2 def wrapper(*args, **kwargs): 3 # Do something before the function is called 4 result = func(*args, **kwargs) 5 # Do something after the function is called 6 return result 7 return wrapper 8 9@my_decorator 10def add(x, y): 11 return x + y The add function is decorated with the my_decorator function.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Understanding Graph Traversal - BFS vs DFS</title>
      <link>https://blog.sksoumik.com/software-engineering/understanding-graph-traversal-bfs-dfs/</link>
      <pubDate>Tue, 12 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/understanding-graph-traversal-bfs-dfs/</guid>
      <description>
        
          
            Breadth-first search (BFS) and depth-first search (DFS) are two algorithms for traversing graphs. These algorithms are used to search for specific nodes or to find the shortest path between two nodes in a graph.
BFS The breadth-first search (BFS) algorithm is a graph traversal algorithm that explores all of the neighbors of a starting node before moving on to any of the neighbor&#39;s neighbors. It is called a &amp;quot;breadth-first&amp;quot; algorithm because it explores the neighbors at each level of the graph before moving on to the next level.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Basic Coding Problems You Must Be Able to Solve As a Computer Science Graduate</title>
      <link>https://blog.sksoumik.com/software-engineering/basic_coding_problems_that_you_must_know_as_a_cse_graduate/</link>
      <pubDate>Fri, 22 Feb 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/basic_coding_problems_that_you_must_know_as_a_cse_graduate/</guid>
      <description>
        
          
            Check Prime Number A prime number is a positive integer greater than 1 that has no positive integer divisors other than 1 and itself. For example, the first six prime numbers are 2, 3, 5, 7, 11, and 13.
The number 6 is not a prime number because it has more than two positive integer divisors. In fact, the divisors of 6 are 1, 2, 3, and 6.
To determine if a number is prime, you can check if it has any positive integer divisors other than 1 and itself.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Learning the Django Framework Fundamentals</title>
      <link>https://blog.sksoumik.com/software-engineering/understanding-django-framework-python/</link>
      <pubDate>Sat, 05 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/understanding-django-framework-python/</guid>
      <description>
        
          
            What&#39;s the architecture of Django framework? The architecture of Django is based on the Model-View-Controller (MVC) pattern, which is a way of organizing code in a web application. In Django, this pattern is modified slightly and is referred to as Model-View-Template (MVT).
Here&#39;s a simple explanation of each component in Django&#39;s architecture:
Model: This component represents the data and database schema of your web application. Models define the structure of your data and provide an API for querying and manipulating that data.
          
          
        
      </description>
    </item>
    
    <item>
      <title>Understanding Dependency Injection - Real-World Examples and Advantages</title>
      <link>https://blog.sksoumik.com/software-engineering/dependency-injection-real-world-examples-advantages/</link>
      <pubDate>Sat, 10 Feb 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.sksoumik.com/software-engineering/dependency-injection-real-world-examples-advantages/</guid>
      <description>
        
          
            Dependency injection is a design pattern that is widely used in software development to promote good software design and make code more flexible and easier to test. In this blog post, we will take a closer look at what dependency injection is, how it works, and its advantages.
What is Dependency Injection? Dependency injection is a technique that allows an object to receive its dependencies (other objects it needs to function) from the outside, rather than creating them itself.
          
          
        
      </description>
    </item>
    
  </channel>
</rss>
