10 Fastest-Growing Languages on GitHub Offer Some Surprises (Dice)

This is not an advert.

According to Dice and GitHub, the fastest growing language is Hashicorp Configuration Language (HCL).

I don’t think I’ve ever heard of HCL for Terraform.

“an open-source infrastructure as code software tool that enables you to safely and predictably create, change, and improve infrastructure”

If interested in this language, refer to the following links.

  1. https://github.com/hashicorp/hcl
  2. https://developer.hashicorp.com/terraform/language/syntax

NSA Releases Guidance on How to Protect Against Software Memory Safety Issues

The National Security Agency (NSA) has released a report of what programming languages people should use because of memory safety (leaks, exploits, etc.).

The “Software Memory Safety” Cybersecurity Information Sheet highlights how malicious cyber actors can exploit poor memory management issues to access sensitive information, promulgate unauthorized code execution, and cause other negative impacts.
https://www.nsa.gov/Press-Room/News-Highlights/Article/Article/3215760/nsa-releases-guidance-on-how-to-protect-against-software-memory-safety-issues/

The report goes into some detail pointing out that older languages may be exploited.

Memory issues in software comprise a large portion of the exploitable vulnerabilities in existence. NSA advises organizations to consider making a strategic shift from programming languages that provide little or no inherent memory protection, such as C/C++, to a memory safe language when possible. Some examples of memory safe languages are C#, Go, Java, Ruby™, and Swift®. Memory safe languages provide differing degrees of memory usage protections, so available code hardening defenses, such as compiler options, tool analysis, and operating system configurations, should be used for their protections as well. By using memory safe languages and available code hardening defenses, many memory vulnerabilities can be prevented, mitigated, or made very difficult for cyber actors to exploit.
https://media.defense.gov/2022/Nov/10/2003112742/-1/-1/0/CSI_SOFTWARE_MEMORY_SAFETY.PDF

The Memory Safety (Internet Security Research Group) has a list of languages that are memory safe.

Memory safe languages include Rust, Go, C#, Java, Swift, Python, and JavaScript.
https://www.memorysafety.org/docs/memory-safety/

This means that we should learn and use the following languages.

  1. C# (Microsoft)
  2. Go (Google)
  3. Java (Oracle)
  4. JavaScript (Oracle)
  5. Python (Python Software Foundation)
  6. Ruby (Yukihiro Matsumoto)
  7. Rust (Rust Foundation)
  8. Swift (Apple)

Introduction to Structured Query Language for Data Analytics (SF22SQL1001) — Day 8

We are two (2) more sessions away from the SF22SQL1001 final.

We have covered lots of material —

  1. getting data from tables/views (SELECT... FROM...),
  2. joining tables/views (INNER|LEFT|RIGHT JOIN) to make larger datasets,
  3. filtering the output of queries (WHERE),
  4. ordering the output of queries (ORDER BY),
  5. grouping the output of queries when using aggregate functions (GROUP BY),
  6. adding logic to queries (CASE... WHEN... THEN... END),
  7. pushing new values into tables (INSERT INTO),
  8. deleting selected rows (DELETE FROM) from a table,
  9. deleting all rows (TRUNCATE) from a table,
  10. making data objects (CREATE),
  11. deleting objects (DROP)
  12. modifying objects (ALTER)
  13. and much more.

I hope you have been having lots of fun.

Download the class notes for day 8 — 22 pages’ worth of material.

Introduction to Structured Query Language for Data Analytics (SF22SQL1001) — Day 4

We continue working with functions. Some affect strings (RIGHT, LEFT, SUBSTRING, etc.) while others affect numbers (TIME, DATE, FORMAT, etc.) as well as aggregate functions, which need the GROUP BY clause.

    SELECT field1,
      aggregate_function(field2),
      field3
       -- other fields if any
    FROM table1
    INNER|LEFT|RIGHT JOIN table2
      ON table1.shared_data1 = table2.shared_data2
        AND table1.shared_data2 = table2.shared_data2
       -- other tables if any
    WHERE condition1
      AND|OR condition2
      -- other conditions if any
    GROUP BY field1
    ORDER BY field1 ASC|DESC,
      field2 ASC|DESC,
      field3 ASC|DESC,
      ...; -- other fields if any

Download the class notes for day 4.