Skip to content

nodef/nodef.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Packages made with JavaScript for 🐚 Bash, 🖥️ Command prompt, 📦 Node.js, and 🌐 Web.


Bash / Command prompt (CLI)

Package Description
🐚 cls.sh Clear screen and scrollback on Linux.
🖥️ clear.cmd Clear screen like Unix in Windows Command prompt.
🖥️ sleep.cmd Sleep for specified time in Windows Command prompt.
🐚 extra-cd Change the working directory, with shortcuts and listing.
🐚 extra-bel.sh Produce BEL sound in Linux Terminal.
🐚 nvgraph.sh CLI for nvGraph, which is a GPU-based graph analytics library written by NVIDIA, using CUDA.
🐚 snap-data.sh CLI for SNAP dataset, which is a collection of more than 50 large networks.

Node.js / Web

Package Description
🌐 extra-boolean Boolean data type has two possible truth values to represent logic.
🌐 extra-bit The bit is a basic unit of information in information theory, computing.
🌐 extra-integer A 32-bit integer can store values from −2^31 to 2^31 − 1.
🌐 extra-number A number is a mathematical object used to count, measure, and label.
🌐 extra-bigint A BigInt can represent whole numbers larger than 2⁵³ - 1.
🌐 extra-math Mathematics is the classification and study of all possible patterns.
🌐 extra-function A function is a set of statements that performs a task or calculates a value.
🌐 extra-async-function An async function is a function that delivers its result asynchronously (through Promise).
🌐 extra-array An Array is a collection of values, stored contiguously.
🌐 extra-iterable An iterable is a sequence of values.
🌐 extra-object An Object is a collection of properties (entries), each with a name (key) and a value.
🌐 extra-set A Set is a collection of unique values.
🌐 extra-map A Map is a collection of key-value pairs, with unique keys.
🌐 extra-entries Entries is a list of key-value pairs, with unique keys.
📦 extra-child-process Useful additions to inbuilt child_process module.
🌐 extra-path Useful additions to inbuilt path module.
📦 extra-fs Useful additions to inbuilt fs module.
🌐 extra-sleep Sleep for specified time.
🌐 extra-jsdoc-text Utilities for processing JSDoc text.
🌐 extra-javascript-text Utilities for processing JavaScript text.
🌐 extra-markdown-text Utility methods for Markdown text.
📦 extra-build Common build tools for extra-* packages.

Busy state

Package Description
🌐 extra-lists Lists is a pair of key list and value list, with unique keys.
🌐 extra-string A collection of common string functions.
🌐 extra-wordnet WordNet is a lexical database of semantic relations between words.
🌐 extra-sorted-array A sorted array is a collection of values, arranged in an order.


My Story

During my research work (2021-23), I develop a CLI for nvGraph - a GPU-based graph analytics library by NVIDIA, using CUDA; and a CLI for SNAP dataset - a collection of more than 50 large networks. To minimize manual work, I write scripts to Shorten author, editor, journal, and booktitle in a BibTeX file, another to Get publications list from DBLP as a table in LaTeX or in BibTeX for references, one to Make a gist secret by creating a new secret gist, and deleting the old one, and another to Sync a file to a Git repository (such as GitHub Gist) periodically in Node.js. For a short-term course on Distributed Systems, I design of a simple UDP/datagram based NTP-like client and server using Node.js to simulate the effect of transmission delays in a local, intra-continental, and inter-continental network. In 2015-16, I design a few Windows applications. These include a Countdown timer for Windows, a tool to Calculate an 8-bit hash of a given string using XOR+ROR method, another to Terminate unnecessary/unused processes in Windows, and one to Determine the IP address of a Website from its URL. I also write an Intel 4004 assembler in Node.js that converts a plain assembly language file to binary. While working at Verizon Hyderabad with Prashant Pathak, we develop a Wireless RFID-based Snacks Ticketing System using a Raspberry Pi with a Weigand based HID reader.

I also write and maintain a diverse range of Open source packages for Node.js. These include tools to Tunnel web server from private IP, perform automated trades with a Javascript interface for FYERS API, get Insightful quotes on a topic, and get SPDX License text. In 2018-19, I note the release of Google's new WaveNet based Text-To-Speech (TTS) engine. I use this opportunity to write a tool that Crawls Wikipedia pages and uploads TTS to YouTube. These videos are available upon searching "wikipedia audio article". To support this, I write tools to get GCP/AWS config, use long text with Google TTS/Amazon Polly through a Common tool, Interface with FFMPEG, Generate still video from an audio and image file, Modify Ian Bishop's YouTube Uploader to handle captions, and Interface with the modified YouTube uploader from Node.js.

In 2017-18, I use full-text search in PostgreSQL to build a hand-crafted Natural Language Query System for Indian Food Composition Tables 2017 (IFCT2017). IFCT2017 is published by T. Longvah, R. Ananthan, K. Bhaskarachary, and K. Venkaiah from National Institute of Nutrition (NIN). It contains detailed nutrient composition of 528 key foods in India. I use a PDF to Excel converter to read data in tables of each page, merge them together, fix conversion issues through manual checking, and convert it to CSV. Further, I adjust the units used for each nutrient to grams, and add additional relevant high-level columns. Finally I write a Node.js package to get Programmatic access to this Compositions data. Data from a number of additional tables, including the compositions data, is available in the Main package. To support natural language queries, I convert the English language query to an informal SQL first, perform Named Entity Recognition (NER) with Promised Map interface for Table in PostgreSQL, and then convert Informal SQL SELECT to formal SQL. Testing required constant resetting and provisioning of new databases. For this, I write a script to Manage Addon Pool of an App in Heroku. I also prepare CLI tools to convert E numbers and INS numbers of food additives to their respective full names.

I also maintain collections of functions for in-built types in Node.js, such as, Arrays, Sets, Maps, Objects, Iterables, Entries, Lists, IEntries, ILists, Sorted Arrays, Array Views, Booleans, Bits, Integers, Numbers, Strings, BigInts, Functions, and Async Functions. In addition, I extend in-built modules, such as, File System (FS), Child Process, Path, and Math. To support the automated building, testing, and documentation generation, I write and use a special Build tool - this requires utilities for processing JavaScript, JSDoc, and Markdown text. Building documentation for some packages requires the use of a Custom TypeDoc theme. To generate ASCII videos of examples automatically, an Asciinema-based tool can be used. To delete old/unused packages automatically, I write a tool to Delete NPM packages in an organization using Puppeteer. I originally conceived of maintaining Open source code as a potential business venture - which allows me to make passive money through donations. However, the market was already bustling with utility packages. Despite meticulous documentation and detailed list of functions, differentiation proved elusive.



ORG