Posts

Latest Post

Visualizing your SBOMs via graph...

Introduction   pyspdxtools is a Python library and command-line tool that provides utilities for working with Software Bill of Materials (SBOM) files in the SPDX (Software Package Data Exchange) format. SPDX is a widely adopted standard for documenting the open-source software components used in a project, along with associated metadata such as licenses, copyrights, and relationships between components.  Why Generate a Graph from an SBOM?    Visualizing an SBOM as a graph helps you quickly understand the relationships between components, dependencies, and packages. By generating a graph, you can: -  Identify Key Dependencies : Easily spot core libraries or components that are crucial to the software.  Understand Relationships : Visualize how different packages are connected, including dependencies and sub-dependencies. With this tutorial, you’ll be able to generate such a graph from your SPDX SBOM using `pyspdxtools`, making it easier to analyze and presen...

Understanding NTIA's Minimum Elements for SBOMs: A Comprehensive Guide

Image
  Purpose SBOMs provides the foundation for transparency in software supply chain. Overview of NTIA and SBOM Intiatives The National Telecommunications and Information Administration(NTIA) is a U.S. government agency within the Department of Commerce, established to advise on telecommunication and information policy issue. In response to rising software supply chain threats, President Biden signed an Executive Order  in 2021. This step taken to being the "minimum elements" for a Software Bill Of Materials(SBOM).  The motive behind the initiative to bring a transparency in the complex modern software world. What is SBOM ? An SBOM is detailed description of all the dependencies on which your main software relies on. It provides two important information. One is supply chain relationship for your software. To be more precise, it let you know what all are the dependencies are present in your software. Second is information of each dependency in detail. From it's name, version...

Why Virtual Memory is Crucial Despite Having Real Memory ??

 Why Virtual Memory is Crucial Despite Having Real Memory ??  In the early days of computing, programs directly used real memory, also known as RAM. This approach led to two major problems: external fragmentation and internal fragmentation. Understanding Fragmentation: Imagine memory as a large whiteboard where programs can write their instructions. Fragmentation occurs when this whiteboard gets divided into unusable chunks. External Fragmentation: This happens when free memory becomes scattered across the whiteboard in small pockets. Even though the total free space might be enough for a new program, its non-contiguous nature makes it unusable.  Internal Fragmentation: This occurs when memory is allocated in fixed-size blocks. Suppose a program needs 101 KB, but the smallest allocation size is 128 KB. The remaining 27 KB becomes unusable, creating internal fragmentation. Virtual Memory to the Rescue To overcome these limitations, virtual memory was introduced. It acts as...

Build a Slack activity dashboard with Metabase

Image
Introduction In this article, we will be leveraging Airbyte - an open-source data integration platform and Metabase - an open-source way for everyone in your company to ask questions and learn from data - to build the Slack activity dashboard above. Airbyte provides us with a rich set of source connectors, and one of those is the Slack connector which allows us to get data off a Slack. We are going to use this connector to get the data of the Slack Workspace and copy them into a Postgres database destination. And then will connect Postgres database with Metabase in order to create the activity dashboard. Pre-requisites: Git Docker Docker Compose Airbyte Postgres Database Metabase Slack Step 1: Replicating data from Slack to Postgres with Airbyte Deploying Airbyte There are several easy ways to deploy Airbyte, as listed here. For this tutorial, I will just use the Docker Compose method from my workstation:  ``` $ git clone https://github.com/airbytehq/airbyte.git $ cd airbyte $ d...