awk is a kind of Swiss Army knife for text files. However, some of its limitations are often a bit annoying. I’ve used a simple set of functions to make awk a bit better, although I will warn you: it does require GNU extensions to awk. That is, you must use gawk and not other versions. Your system probably maps /usr/bin/awk to something and that something might be gawk. But it could also be mawk or some other flavor. If you use a Debian-based distro, update-alternatives is your friend here. But for the purposes of this post, I’m going to assume you are using gawk.

Python is one of the modern, multi-purpose, and high-level programming languages. Python is used for various purposes i.e. software development, data science, machine learning, artificial intelligence, deep learning, and back end development. More often, in any programming language, we need to print some data or string on the console. In python, we use the print () function to print the string or any kind of data on the console.

Yesterday I developed an simple program to search chembl_27.fps.gz for records with a Tanimoto similarity of at least 0.7 to caffeine. I started by mentioning the 1986 paper by Willet, Winterman, and Bawden Implementation of nearest-neighbor searching in an online chemical structure search system. As you can read from the title, that paper does a k-nearest neighbor search (k-NN search, also called a top-N search), and compares a Tanimoto similarity search to a cosine similarity search. So really, I'm only halfway there. In this essay I'll go the other half and implement the nearest neighbor search. As before, this code will do almost no error handling, and will only work for the uncompressed chembl_27.fps in the local directory.

Files are used to store and organize data on a disk. We often use files when we need to store data permanently on a hard disk. For example, say we are building a software system that maintains student records. Now, we need to store the student data permanently for future use. For this purpose, we can use files to store data, and later on, we can open these files and access the stored data at any time. Reading and writing files are very common functions in Python. It is easy to create, read, and edit files in Python. Python comes with built-in functions for reading and writing files. You can open, write, and read files using the Python built-in functions.

A string literal is a sequence of characters in a constant array pointer terminated by the nul character, \0. When identified, by a variable, the string literal cannot really reduce or increase in length. Many operations cannot be done on the string literal. So, there is a need for a string class. The C++ string class is for a data structure, a collection of characters in sequence, which allows member functions and operators to act on the characters. The string class allows more manipulations on the corresponding string literal, than just the string literal. You need to have good knowledge of string literal, to understand this article.

Under specific scenarios, you may require different identical copies of your repository. At this point, you are probably thinking about cloning your storage – but there is a better solution. Git offers a better and more reliable workflow model – Git worktree. It gives a perfect copy of your entire repository. In this article, I will explain all you need to know about worktree and how you can use it step-by-step with the Git best practices. And once you know all these basics, Git Worktree will be relatively easy to implement as compared to other practices like cloning with Git Clone your repository.

As editor of I Programmer, I'm keen on the history of computer programming and this week I've come across a new resource - a series of podcasts in which Lex Fridman interviews some of the biggest names in computer science. The Lex Fridman Podcast was formerly known as The Artificial Intelligence Podcast and the first one dates from April 2018. They are all conducted by Lex Fridman, an AI researcher at MIT. Fridman does have some specifically AI-oriented interviews, there's one with Andrew Ng, for example. The one that alerted me to the series, however, was one posted on You Tube a week ago with James Gosling, the creator of the Java Language and is the one hundred and twenty sixth in the series.

Security Leftovers EFF Announces YAYA Malware Management Tool The Electronic Frontier Foundation (EFF) has released YAYA (which stands for Yet Another YARA Automation), an open source tool to help manage multiple YARA rule repositories. The open source YARA tool helps malware researchers identify and classify malware samples. According to the EFF announcement, “YARA lets you create descriptions of malware (YARA rules) and scan files or processes with them to see if they match.”

10 Types of Security Vulnerabilities An unintended or accidental flaw in the software code or any system that makes it potentially exploitable in terms of access to illegitimate users, malicious behaviours like viruses, trojans, worms, or any other malware is called a security vulnerability. The use of software that has already been exploited or the use of weak and default passwords also results in making the system vulnerable to the outside world. These types of security vulnerabilities require patching to prevent hackers from using previously used exploits on them again to gain unauthorized access to the system. A security vulnerability also called security hole or weakness is a flaw, a bug, or a fault in the implementation of code, design, and architecture of a web application and servers, which when left unaddressed can result in compromising of the system and makes the whole network vulnerable to the attack. The people going to be infected include the application owner, application users, and any other person relying on that application. Let’s look at the most dangerous and common security risks to web applications.

Heartbleed Still Found in the Wild: Did You Know That You May Be Vulnerable? It’s been six years since Heartbleed was first discovered, and the OpenSSL vulnerability can still be found and exploited across the internet. As a matter of fact, 19% of global attacks target the OpenSSL Heartbleed vulnerability due to the volume of unpatched public-facing servers. Whether it’s from poor scanning or fear of rebooting production servers, leaving servers open to OpenSSL exploits leaves customers and their data at risk. This article takes a deep dive into Heartbleed and the threat it has on data privacy and compliance. It also discusses how to identify if your processes still use outdated libraries, even if you’ve updated them on disk.