Thursday 29 August 2024

How to Stay Ahead in 2024: Avoid These 10 Dying Programming Languages 🚫

In the ever-evolving world of technology, staying ahead of the curve is crucial. As new programming languages emerge, others fall by the wayside. If you’re a developer or aspiring coder, it’s important to know which languages are becoming obsolete so you can focus your learning on skills that will be relevant in the future. Here’s a guide on the top 10 programming languages to avoid in 2024—and what you should be learning instead! 💻



1. Visual Basic 6 🛑

Once a powerhouse for building Windows desktop applications, Visual Basic 6 has seen its day. Developed by Microsoft in the 1990s, this language was known for its easy-to-use IDE and GUI. However, with the rise of modern frameworks like .NET and the shift towards web-based applications, Visual Basic 6 has become largely outdated.

💡 Learn Instead: Explore C# and .NET for building modern desktop and web applications.


2. Assembly Language 🛠️

Assembly, a low-level programming language, was once crucial for developing operating systems and device drivers. Its ability to produce highly efficient code made it invaluable. However, its complexity and the rise of higher-level languages like C and C++ have led to a significant decline in its use.

💡 Learn Instead: Get started with C++ for a blend of efficiency and ease of use.


3. Fortran 📉

Fortran, developed in the 1950s for scientific computing, is another language that’s losing relevance. Despite its past glory in handling large-scale computations, its complex syntax is no match for modern alternatives like Python and R.

💡 Learn Instead: Dive into Python for a versatile and intuitive approach to scientific computing.


4. Classic ASP ⚠️

Once popular for server-side scripting, Classic ASP has been overshadowed by newer web technologies. Developed by Microsoft in the 1990s, it’s been largely replaced by more modern frameworks like PHP, JSP, and Ruby on Rails.

💡 Learn Instead: Check out PHP or Ruby on Rails for robust web development.


5. Objective C++ 💤

Objective C++ allowed developers to use the best of both Objective C and C++ in a single codebase. However, with Apple’s introduction of Swift, a modern and more efficient language, Objective C++ has faded into obscurity.

💡 Learn Instead: Start learning Swift to develop apps for iOS and macOS with ease.


6. Haskell 🤔

Haskell, known for its pure functional programming paradigm, was once favored for scientific computing. Despite its powerful type system, its complexity and niche appeal have made it less popular than languages like Python and R.

💡 Learn Instead: Explore functional programming in Python or get started with R for data analysis.


7. Smalltalk 🧑‍🏫

Smalltalk, an object-oriented language developed in the 1970s, was revolutionary in its time. Known for its support of the model-view-controller (MVC) architecture, it’s now overshadowed by more modern OOP languages like Java and Python.

💡 Learn Instead: Get familiar with Java or Python for modern OOP development.


8. Perl 📝

Perl, with its powerful text manipulation capabilities, was a go-to for web developers in the early 2000s. However, the rise of Python, with its concise and readable syntax, has pushed Perl into the background.

💡 Learn Instead: Master Python for modern web and software development.


9. Objective C 🕒

Objective C, once the backbone of iOS and Mac development, is now being replaced by Swift. Although it still has a niche following, most new projects are being built with Swift, which offers a more modern and efficient development experience.

💡 Learn Instead: Begin your journey with Swift to stay current in Apple development.


10. COBOL 🏛️

COBOL, one of the earliest programming languages, was designed for business applications in the 1950s. Despite its historical significance, its cryptic syntax and lack of support for modern programming models have led to its decline.

💡 Learn Instead: Transition to Java or Python for more intuitive and flexible programming.


Why Staying Updated Matters 🧠

Keeping your programming skills current is essential in today’s fast-paced tech landscape. While these languages had their time in the spotlight, the shift towards more modern, flexible, and user-friendly languages is undeniable. By focusing on learning the right skills, you can ensure that you remain competitive and relevant in your career.

🚀 Ready to Upgrade Your Skills?
Explore certification programs in cutting-edge domains like Data Science, Cloud Computing, Cybersecurity, AI, Machine Learning, or Digital Marketing. These programs are designed by industry experts and can help you stay ahead of the curve in 2024 and beyond.

👍 Like What You See?
If you found this guide helpful, don’t forget to subscribe to our blog and follow us for more tips on navigating the ever-changing world of programming. Happy coding!

Wednesday 28 August 2024

How ChatGPT Analyzes Emotions from Selfies: A Fun and Insightful Experiment


In today’s fast-paced digital world, the ability to understand and respond to human emotions is an increasingly important skill for AI. Recently, a fun and insightful experiment showcased just how effective ChatGPT can be in this area. Let’s dive into how ChatGPT was put to the test by analyzing a selfie to determine the emotions being expressed.

The Experiment: Can ChatGPT Detect Emotions from a Selfie?

A curious viewer, known as "burito John 78," posed an intriguing question: Can you tell what someone is feeling just by looking at their face? This led to a lively demonstration where the host decided to challenge ChatGPT with this very task.

Initially, there was a humorous mix-up where ChatGPT received an image of a wooden surface instead of the intended selfie. After the initial confusion was cleared up, the AI quickly analyzed the correct image and provided its assessment.

ChatGPT’s Emotional Analysis: A Success!

Once the correct image was shared, ChatGPT identified that the person in the selfie appeared to be happy, cheerful, and possibly excited. The host confirmed that these emotions were spot-on, explaining that the positive vibes were due to a successful presentation about the capabilities of ChatGPT.

This demonstration not only highlighted ChatGPT’s ability to interpret facial expressions but also added a layer of humor and relatability to the interaction, making it a memorable experience for viewers.

Why This Matters

Understanding and reacting to human emotions is a key area where AI like ChatGPT can enhance user experiences. Whether it’s providing emotional support, engaging in friendly banter, or simply understanding the context of a conversation, emotion recognition helps AI become more effective and human-like in its interactions.

The Takeaway

This experiment is a great example of how advanced AI has become in understanding and responding to human emotions. It shows that ChatGPT is more than just a tool for information retrieval—it’s a companion capable of adding value to our daily lives through meaningful interactions.

Whether you’re interested in the technical capabilities of AI or simply looking for a lighthearted demonstration of what ChatGPT can do, this video is a must-watch.

Explore More: Check out the full video here to see ChatGPT in action.

Monday 19 August 2024

Ansible is giving below error - consul1 | UNREACHABLE!

Hello all and welcome again into my DevSecOps Blog!!


am getting the below error while running the ansible consul1 -m ping on my Debian controller and host..

consul1 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to create temporary directory.In some cases, you may have been able to authenticate and did not have permissions on the target directory. Consider changing the remote tmp path in ansible.cfg to a path rooted in \"/tmp\", for more error information use -vvv. Failed command was: ( umask 77 && mkdir -p \"` echo /home/ansible/.ansible/tmp `\"&& mkdir \"` echo /home/ansible/.ansible/tmp/ansible-tmp-1723792189.0846684-1866486-106472010969667 `\" && echo ansible-tmp-1723792189.0846684-1866486-106472010969667=\"` echo /home/ansible/.ansible/tmp/ansible-tmp-1723792189.0846684-1866486-106472010969667 `\" ), exited with result 127",
    "unreachable": true

}

....

As I could figure out a way to result from this - I consulted ChatGPT to help work around this..

Here is My prompt.


Prompt: 

Hey Brian, good morning .. I am getting below error while running the ansible consul1 -m ping on my debian controller and host. consul1 | UNREACHABLE! => { "changed": false, "msg": "Failed to create temporary directory.In some cases, you may have been able to authenticate and did not have permissions on the target directory. Consider changing the remote tmp path in ansible.cfg to a path rooted in \"/tmp\", for more error information use -vvv. Failed command was: ( umask 77 && mkdir -p \" echo /home/ansible/.ansible/tmp \"&& mkdir \" echo /home/ansible/.ansible/tmp/ansible-tmp-1723792189.0846684-1866486-106472010969667 \" && echo ansible-tmp-1723792189.0846684-1866486-106472010969667=\" echo /home/ansible/.ansible/tmp/ansible-tmp-1723792189.0846684-1866486-106472010969667 \" ), exited with result 127", "unreachable": true }" , can you please help me troubleshoot this and suggest me solutions for this problem?  ]


- I have made this GPT Myself and if you are into Code for Ansible you can find it here - Brian YML CODER

Ok, here is the output result.

The error message you're encountering suggests that Ansible is unable to create a temporary directory on the remote host. This issue is often related to permissions or the remote user not having the necessary privileges to create directories in the specified path.

Here’s a breakdown of the possible causes and steps you can take to troubleshoot and resolve this issue:

1. Permission Issues on the Remote Host

  • Issue: The user under which Ansible is executing commands (likely ansible based on the paths) might not have the necessary permissions to create directories in the /home/ansible/.ansible/tmp directory.
  • Solution: Ensure that the remote user has appropriate permissions to write to the /home/ansible/.ansible/tmp directory. You can do this by connecting to the remote host and manually checking the permissions:
    bash
    ssh user@remote_host mkdir -p /home/ansible/.ansible/tmp
    If the ansible user cannot create the directory, adjust the permissions or use sudo as needed.

2. Insufficient Space or Quota Limits

  • Issue: The remote system might be out of disk space, or the user might have hit their quota limit, preventing directory creation.
  • Solution: Check the available disk space on the remote host with:
    bash
    df -h
    Also, check if there are any quota limits set for the user:
    bash
    quota -v ansible
    Ensure that there is sufficient space, and no quota limits are being exceeded.

3. Invalid or Non-Standard Shell Environment

  • Issue: The shell environment might not be set up correctly, or the shell is non-standard, which might cause issues with command execution.
  • Solution: Verify the shell environment for the user, and ensure that it’s a standard shell like bash or sh. You can also check if the shell initialization files (.bashrc, .profile, etc.) are misconfigured or not being executed properly.

4. Change the Remote Temporary Directory Path

  • Issue: The default temporary directory might not be accessible or appropriate.
  • Solution: Change the temporary directory to a path under /tmp in your ansible.cfg. You can do this by adding or updating the following setting in your ansible.cfg:
    ini
    [defaults] remote_tmp = /tmp/.ansible/tmp
    This setting will ensure that the temporary directory is created in /tmp, which is generally accessible by all users.

5. Verbose Output for Detailed Error Information

  • Issue: The error message might not provide enough details.
  • Solution: Run the Ansible command with the -vvv flag for verbose output to get more detailed information:
    bash
    ansible consul1 -m ping -vvv
    This will give you more insight into what’s failing and why.

By following these steps, you should be able to identify the root cause of the issue. Let me know if any particular step is unclear, or if you encounter any additional errors while troubleshooting!


Sunday 18 August 2024

Getting started on My Journey as Ethical Hacker

These are the list of resource, one will need to start a Penetration Testing Course..

Hello everyone, welcome to my Blog, This is Tchize Matias a confessed and Graduated Ethical Hacker turned into DevSecOps Engineer. If sort of thing even exist. I am writing this blog as mean to keep track of my journey into becoming a professional Ethical Hacker ..

This is week, I am sharing my journey as I am preparing myself to take the certification Exam for CEH v11 - Certification from EC-Council - https://www.eccouncil.org/train-certify/certified-ethical-hacker-ceh/ and Offensive Security https://www.coursera.org/articles/ethical-hacking-certifications 



Also here a list of links for cheap sheet for more information on Google Dorks

The links bellow will send you into a Ethical Hacking lab which will assist you in getting on initial setup 
 

Friday 16 August 2024

What does JPEG, PNG A WiFi stands for ??

"In today's digital age, using computer abbreviations like ASAP 🕒, BTW 🤔, and FYI 📝 has become a routine part of our online communication 📱.

We use them to quickly convey messages, save time ⏱️, and make our interactions more efficient 💻.

Whether it's in emails 📧, chats 💬, or texts 📱, abbreviations have become an essential part of our tech-savvy language 🤖.

So, let's get familiar with these handy shortcuts and make our online life easier 😊!"



 

Wednesday 14 August 2024

Setup local git branch and push to origin

How to Setup a local Git Branch, then push to origin be it github, gitlab or else and synch branchs ..

This pipeline will be generic and applicable to a typical project, which could include building, testing, and deploying a project.

Let’s assume your project is a Node.js application that you want to test and deploy using GitHub Actions. You can adapt this example to fit other languages or deployment environments.

1. Directory Structure

First, ensure your project directory is structured as follows:

 

2. GitHub Actions Workflow Configuration

Create the .github/workflows/ci-cd-pipeline.yml file with the following content:

name: CI/CD Pipeline

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout Code
        uses: actions/checkout@v3

      - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '18'

      - name: Install Dependencies
        run: npm install

      - name: Lint Code
        run: npm run lint

      - name: Run Unit Tests
        run: npm test

      - name: Build Application
        run: npm run build

      - name: Upload Build Artifacts
        uses: actions/upload-artifact@v3
        with:
          name: build-artifacts
          path: ./dist

  deploy:
    needs: build
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/main'

    steps:
      - name: Checkout Code
        uses: actions/checkout@v3

      - name: Download Build Artifacts
        uses: actions/download-artifact@v3
        with:
          name: build-artifacts

      - name: Deploy to Production
        run: |
          # Assuming you're deploying to a server or a cloud provider
          scp -r ./dist user@yourserver:/path/to/deployment
          ssh user@yourserver "cd /path/to/deployment && pm2 restart your-app"


.....


 

3. Explanation of the Pipeline

Trigger

  • The pipeline is triggered on every push to the main branch and on pull_request targeting the main branch.

Jobs

  • Build Job: This job runs on an Ubuntu runner and does the following:

    • Checkout Code: Pulls your latest code from the repository.
    • Set up Node.js: Sets up Node.js using the specified version.
    • Install Dependencies: Installs the dependencies specified in package.json.
    • Lint Code: Runs your linter to ensure code quality.
    • Run Unit Tests: Runs the unit tests to ensure your application is working as expected.
    • Build Application: Builds your application (if it’s a frontend project, this typically means creating a production build).
    • Upload Build Artifacts: Saves the build output to be used in the deployment job.
  • Deploy Job: This job runs after the build job and only if the push is to the main branch.

    • Checkout Code: Pulls your latest code.
    • Download Build Artifacts: Downloads the build output from the build job.
    • Deploy to Production: Deploys the application to your production environment. This is a placeholder for whatever deployment method you use, such as SSH to a server, deployment to a cloud provider, etc.

4. Additional Steps

  • Secret Management: Ensure you store any sensitive information like server credentials, API keys, etc., in GitHub Secrets. You can reference these in the workflow using ${{ secrets.YOUR_SECRET_NAME }}.

  • Docker Integration: If your app is containerized, you can add steps to build and push Docker images in the deploy job.

5. Running Locally

You should also be able to run your CI/CD steps locally to catch any issues before committing:

And then deploy manually or via a script if needed.

Conclusion

This pipeline provides a robust starting point for CI/CD, ensuring that your application is linted, tested, built, and deployed automatically whenever changes are made to the main branch. You can extend or modify it to fit the specific needs of your project, such as adding more jobs for integration testing, security scanning, or different deployment strategies.

 

How GitHub Advanced Security for Azure DevOps Saves the Day (and Your Reputation)

Let's face it, developers: we've all accidentally committed a secret (or two) to our code repository at some point. Maybe it was a...