My D's P's L's Js _ Day3 _ Git & GitHub (3); Open Source (3); Other Developments (3).

My D's P's L's Js _ Day3 _ Git & GitHub (3); Open Source (3); Other Developments (3).

Daily's Programming's Learning's Journey

·

8 min read

Note : You can search the assigned tags on the page through search on page by simply searching for #.

Let's Begin...

Git and GitHub {3} _

Working with Git (3) :

Git is version control system.
Git helps you keep track of code changes.
Git is used to collaborate on code.

  • the command to check which version of Git (if any) is installed.
    git --version (Command Line)
    **git version 2.44.0.windows.1
    (Response)

Git commands can be run from several different places, depending on the operating system and the tools you have installed.

  1. We run such git commands generally on Git Bash. which is a Bash emulator provided as part of the Git installation on Windows. giving you a command-line interface to run Git commands.

  2. On Windows, you can also run Git commands directly from the standard Command Prompt (cmd.exe) application. However, the Command Prompt has a more limited set of features compared to Git Bash, so Git Bash is generally the preferred option for Windows users.

  3. PowerShell is an alternative command-line interface on Windows that also supports running Git commands. PowerShell provides a more advanced scripting environment and can be used as an alternative to Git Bash or the standard Command Prompt.

  4. Integrated Development Environments (IDEs): Many popular IDEs, such as Visual Studio Code, IntelliJ IDEA, and others, have built-in support for Git, allowing you to run Git commands directly from the IDE's user interface. This can be a convenient option, especially for developers who work primarily within an IDE.

Regardless of the specific platform or tool you use, the Git commands themselves remain the same. The choice of where to run the Git commands often comes down to personal preference, familiarity with the tool, and the specific features and capabilities required for your workflow.

Git Bash?

  • Bourne Shell (sh)
    The Bourne Shell (sh) was the original Unix shell, developed by Stephen Bourne at Bell Labs in the 1970s. It laid the foundation for modern shell scripting, but its limited functionality and scripting capabilities soon became apparent as software development and system administration tasks grew in complexity.

  • Bourne-Again SHell (Bash)
    To address these limitations, the Bourne-Again SHell (Bash) was created in 1989 by Brian Fox as a free software replacement for the Bourne Shell. Bash introduced a range of enhancements, such as command-line completion, command history, and advanced scripting capabilities, making it a more user-friendly and powerful shell. These improvements were crucial as the demands on software development and system administration continued to evolve.

  • Git
    Meanwhile, the need for efficient version control tools became increasingly pressing, especially for large-scale, distributed software projects. Linus Torvalds recognized these challenges and developed Git in 2005, primarily to manage the complex and distributed development of the Linux kernel. Git's distributed architecture and powerful features revolutionized version control, quickly becoming the industry standard for software development.

  • Git Bash
    However, Windows users faced challenges in integrating with the Unix-centric software development ecosystem. To address this, the Git for Windows project introduced Git Bash, which provided a Bash emulator and a set of tools for running Git and other Unix-like commands on Windows. This allowed Windows users to bridge the gap between the Windows and Unix-like environments, enabling them to work seamlessly with Git and other command-line tools.

Little More ...

  • Initially, the Bourne Shell (sh) was the default shell on many early Linux distributions, providing a familiar and consistent experience for users transitioning from Unix to Linux.

  • A shell is a command-line interface (CLI) and scripting environment that provides a way for users to interact with an operating system. It serves as the primary means for users to execute commands, navigate the file system, and automate various tasks.

  • In 1964, for the Multics operating system, Louis Pouzin conceived the idea of “using commands somehow like a programming language” and coined the term “shell” to describe it. This pivotal moment in computing history gave birth to the concept of a shell.

  • Command-line Interface(CLI): The shell provides a text-based interface where users can type in commands and receive output. (This allows for efficient and programmatic interaction with the operating system, without the need for a graphical user interface (GUI).)

  • Shells typically support scripting, which enables users to write and execute shell scripts. (Shell scripts are text files that contain a series of commands, allowing users to automate repetitive tasks, write custom utilities, and build complex workflows.)

  • When a user types a command in the shell, the shell interprets and executes that command, interacting with the underlying operating system. (The shell's command interpretation capabilities allow users to navigate the file system, manage files and directories, and run various system utilities and applications.)

  • Shells maintain a set of environment variables that store information about the user's session, system configuration, and other relevant data. (These environment variables can be accessed and modified by the user, enabling customization of the shell environment.)

  • Most shells provide a command history feature, allowing users to recall and reuse previously executed commands. (Many shells also offer command-line completion, where the shell can automatically complete partially typed commands or file names, improving efficiency and reducing typing errors.)

  • The most widely used shells include:
    Bourne Shell (sh)
    Bourne-Again SHell (Bash)
    Korn Shell (ksh)
    Z Shell (zsh)
    Fish Shell (fish)

Each shell has its own set of features, capabilities, and differences, but they all share the core functionality of providing a command-line interface and scripting environment for interacting with the operating system.

Open Source {3}_

Introduction to Open Source (3) :

(The last topic covered (yesterday) was, "where did open source come from?" and commencing line was "Christine Peterson, an employee of Foresight Institute, is credited with proposing the term "open source," which has since become synonymous with the collaborative and transparent development of software.")

Open Source Now
The open source software market has experienced remarkable growth in recent years, driven by the increasing demand for customizable and cost-effective solutions, as well as the collaborative power of open source communities.

To put this growth into perspective, in 2023, the global open source software market was valued at a staggering $23.6 billion. This figure is projected to almost double by 2028, reaching $50.2 billion, representing a compound annual growth rate (CAGR) of 16.3%.

One of the key factors behind this explosive growth is the rise in the adoption of open source software by businesses. A recent study found that a staggering 78% of companies now run open source software, a clear indication of the widespread acceptance and integration of these technologies.

For example, many businesses have turned to open source content management systems like WordPress, Drupal, or Joomla to build their websites and web applications. These platforms provide a flexible and customizable foundation, allowing companies to tailor the software to their specific needs without the high cost of proprietary solutions.

Another example is the widespread use of open source operating systems, such as Linux, which power a vast array of devices, from servers and supercomputers to smartphones and IoT (Internet of Things) devices. The collaborative nature of the open source community has led to the continuous improvement and expansion of these operating systems, making them increasingly robust and feature-rich.

Furthermore, the open source revolution has also empowered developers to contribute to the advancement of technology. A study revealed that 55% of developers actively contribute to open source projects, driven by the opportunity to showcase their skills, collaborate with peers, and shape the future of the technological landscape.

In summary, the open source ecosystem is experiencing exponential growth, driven by the increasing demand for customizable, cost-effective solutions and the collaborative power of open source communities. This surge in adoption and contribution is transforming the way businesses and developers approach technology, paving the way for a more innovative and collaborative future.

Other Developments {3} _

Ques, Other notes & Others(open) :

  • Que: CVS struggled with handling concurrent changes from multiple developers, leading to conflicts and complexities ?

  • Q: Concurrent changes ?

  • Linux kernel ?

  • Should I Read the book named _ "The Computer Book: From the Abacus to Artificial Intelligence, 250 Milestones in the History of Computer Science" seems interesting though by title. #Book.

  • You can search the assigned tags on the page through search on page by simply searching for #.

How #Tags are used in general context :

  • Hashtags on Social Media:
    Social media platforms use hashtags to categorize and group related content.
    For example, on Twitter, users can search for or click on hashtags to find tweets related to specific topics (#technology, #travel, etc.).

  • File System Tags:
    Some operating systems allow users to tag files and folders for better organization.
    For instance, on macOS, you can add tags to files in Finder (e.g., “Work,” “Personal,” “Important”).

  • Content Management Systems (CMS):
    CMS platforms (like WordPress) use tags to organize blog posts and articles.
    Writers assign relevant tags to their content, making it easier for readers to find related articles.

  • Email Filters and Labels:
    Email services (such as Gmail) allow users to apply labels (similar to tags) to emails.
    Labels help users categorize and filter their emails (e.g., “Work,” “Family,” “Travel”).

  • Library Catalogs:
    In libraries, tags (or subject headings) are used to classify books and other resources.
    For example, a book about astronomy might have tags like “Science,” “Space,” and “Planets.”

  • HTML Tags:
    In web development, HTML (Hypertext Markup Language) uses tags to structure and present content on web pages. Here are some examples: < h1> to < h6> ; < p> ; < a> ; < img> ; < ul> < ol> ; < table> etc.

Remember that tags serve as powerful tools for organization, searchability, and content discovery across various platforms! 🏷️