Terminology 1/1 (Interim Title)

Initial Post Date: 22/05/09 8:00am
Update Date: 22/08/19 11:42am

Tags/Keywords: General, Definitions, Reference, Terminology, Meta

Short Description: A list of words/terms, my own definitions I have for them, and their applications.

Rather than their normal definitions, I use my own, there would be the issue if anyone references my definition rather the real definition. It’s useful to have terms for things to make it easier to wrap your head around them. “Why waste time say lot word when few word do trick” – Kevin Malone

Todo list for this blog post

  • Cleanup and organize post content.
  • Organize/sort/group terms in a logical way.
  • Create Table of Contents
  • Linkify Tags
  • Link to relevant posts/pages to make it easier to come across.
  • (Is there a better title for a post like this?)
  • (Do section headers need to be underlined?)
  • Emphasize Noise, Work, and Potential Energy.
  • Create new post for Powershell content.

(Temporary Notes)

Code Notes

  • In what general location should variables that are expected to be changed manually be defined in code?
    • near the top of the first code block or where the variables are first used?
    • Changed once or more than a couple times?
    • It may be easier to find specific variables if they are defined where they are first used when looking at the code at a later time.
    • If defined at the top of the code, if there are many “variable” variables, it may become a messy place to find variables.
      • Like finding a specific hardware tool that is only used for a very specific part of the house.
  • Selective regular expressions
    • internal memory/storage for a regex, remembering a sequence of characters, remembering exact characters matched with characters classes.
    • This doesn’t seem very complex to explain or understand.
    • /(aa)(bb)(cc)\1(\1)\2(\2)) //something similar to this.
  • Regular Expression Issues
    • There is an issue with || in a regex, such as /a||b/i, as it appears to catch all positions between every single character.

Blog Notes

  • Post Work
    • overstate, prioritize, brainstorm, bring attention to: Noise, Work, and Potential Energy.
    • There are pros and cons to everything.
    • Random thoughts can noise that distract you. May help you think of ways to improve things however (pros and cons)
  • A post is content created for the blog, a page is more standalone compared to a post.
  • (Meta, utility for blog writing) Make a copy sheet to paste tag keywords as links saved as html code.
    • This is reference in making posts more wiki like with pages linking to eachother.
  • Thinking of carrying the “1/1” part of title naming to make counting post types easier.
    • 1/1 refers to that this post is Post 1 of 1 Posts.
    • Increases the overhead of making new posts.
  • Avoid using the word “you” and I, try to stay in third person.

Organization/Productivity Notes

  • Keep things clear and concise.
    • More words isn’t better, more words can be more work for both writer and reader.
    • It came to the point where everything was identified as work, with the word “work” itself having a negative association.
    • A potential solution would be disassociating activities to work.
    • Creating notes for every small thought is probably overkill and generates too much noise.
    • This is probably the issue of overanalysing things.
  • Don’t think too much about things.
    • Too general a statement as both good things and bad things can come from it.
    • It can help clear out the mind or make a mess in there, It may depend on how you do it with methods that do the former better.
  • Too much noise is distracting. Applying priorities can help but creating too much noise is the same as creating more work.
    • Such as too much words, long pages -> time spent scrolling, too much pages.
  • Concept of “Rule of 2”
    • Simplifies things, Divide and conquer, could be a bad thing in creating an extra small step is tracking things, can initiate grouping/organization. (pros and cons)
    • Tags: organization, productivity.
  • Limiting your scope can help you focus on what you want to focus on.
  • Just jump into it, start working on anything. Don’t think about it too much.

Programming Terms

  • Context: Related additional information about an object.
    • AutoControl has this as a setting for custom shortcuts, I want to look into it more.
  • Object: A thing with any number of details attached to it.
    • Includes intangible things like events and thoughts.
  • Intangible: Non-physical, cannot be perceived by senses.
  • Tail: The second head of a list, not just the final item of a list.
  • Buffer: Temporary Storage for information/data that is needed to be used or transferred elsewhere.
    • Can be applied in real life when generally sorting.
  • Bandwidth: The amount of a data transferred from one point to another.
    • Somewhere similar or the same to the speed/rate of how things move.
    • Also related to words: Limit and Capacity.
  • Sandbox:
    • A location/defined area to test things.
    • A common term in videogames but is used programming.
    • Trying something new: a priorities folder with note tokens for each task/goal.
    • A sandbox can be copy-able instance with tools attached to it.
  • Streamlined: Changed to be more efficient.
  • Tuple: 2 items/values that are together. Related to Data Structures.
  • Divide and Conquer: Split large groups into smaller groups until the smaller groups are manageable. Computer science term.
  • Modular: Related to Divide and Conquer.
  • Daemon: (I think is or similar to a background process)
    • Mostly thought of the word because it’s a fun word.
  • Greedy Method: Always choose the best available option first. Used in decision algorithms.
  • Quality of Life
  • Heatmap
  • Robustness: how well a program covers a a large variety of cases.
  • Edge Case: uncommon or rare cases that may cause an error or bug to occur. Sometimes difficult to account for.

UI/UX

  • Potential Energy: Energy stored in a object based on the energy to place it and the energy needed to access it.
  • Related to the location of where it was placed and other object contexts.
  • Heavier/complex/larger items have higher potential energy. Also the energy involved if the object or any functions related to it breaks or stops working. Placing/changing this object also affects the potential energy of objects around it.
  • This is me applying my own definition to a known term (introduced to me in Physics class), as I do with other terms. (As I enjoy doing so.)
    • Mostly concerning energy and time spent in the future.
    • I’ve likely rolled up multiple concepts into this one.
    • Organization, grouping, and prioritizing reduces “negative” potential energy. (Internal Note: define: negative potential energy)
    • Positive potential energy: Being quick to find and within close proximity reduces potential energy. Positive equals good. (Probably need to rethink/ not use positive/negative).
    • Things next to your desk, on top of a table, near your bed = needing less energy to obtain.
    • Things in a box, things in your bottom drawer, in the closet, on top of your highest shelf = needing extra energy to obtain.
    • General Sorting: The time and energy to a find/obtain a specific item is also part of the potential energy.
    • Revisited concept found in the video game stream of Zero Escape: Virtue’s Last Reward (video game streamer: RevScarecrow)
    • Additional potential energy may also be stored when not doing a specific action right away, where the probably future action may consume more energy/time than the missed specific action would consume.
    • Programming obviously takes away a lot of the overhead and repetitive work. Like artwork, some code can be improved and worked on for a very long time. It takes some additional energy/time to do the programming. (Internal: but it’s so satisfying.)
    • Related words/phrases are Stored Energy and Required Energy but not necessarily the same. also the word “Work”.
    • Actions on an object may change its potential energy.
    • The movement of an object changes the potential energy of those around it.
    • Something about potential energy and the size of their containers. Large containers have higher energy due to their size. Inside large containers however, items might have less protentional energy in the case that there aren’t too many other items around it or to shuffle through. This has some implications with the usage of note tokens. There could be a thing like an “effective limit” (vocab: effective limit)
  • Noise (Visual, Auditory, Mental): Things that distract you from what you’re focusing on or searching for.
    • Related to my definition of potential energy and overhead.
    • Noise may not immediately distract you, but it can be something that may take like a fraction of a second for you to process/think about.
    • It may be something you can remove or improve.
  • Scan Time: The amount of time it takes to find/move to a certain item/position.
  • Responsive

Inbetween/Unclassified Terms

  • Meta: Information about the object itself, at a higher level, self referential.
    • Kind of a complex concept for me to wrap my head around. This would help in classifying a set of thoughts.
  • Overhead:
    • Similar to Potential Energy and my own definition is that it involves all the functions connected to the object, and the work needed to change this object.
    • I’ve generally included background thoughts and questions in my head as overhead. It’s probably better to have those thoughts than not I suppose.
  • Scope: A defined and limited range of topics or area. Introduced in computer science.
    • I think I tend to travel out of scope as I don’t usually define it or define boundaries.
  • Foresight, Hindsight: Related to my definition of potential energy.
  • Gameification

General Thoughts (Non-programming/non-organization/philosophical notes)

  • A maximum of 1 general thought at the top of a post to reduce clutter.
  • DO NOT FEAR.
    • Fear is a safety mechanism that can be useful but it can keep things too safe and stagnant.
  • If it is not heard, they do not hear it. (philosophical)
  • Be content with what you have and don’t have, be content with what you get and don’t get. (philsophical)
    • I think this is very very vaguely related to something in Buddism, have nothing, want nothing, seek nothing, be nothing, and (achieve complete peace or something).
    • A different general thing: everything in moderation.
  • More Importantly, Know your worth, don’t settle for less. Don’t live your life doing things that you don’t enjoy. Your life is yours, only you can live it. You (maybe) only have this short life.
  • And I’m really not a fan of things about your own (or others) end of life, gets too dark easily.

General/Organization Terms

  • Scientific Method
    • Structured method of exploring/observing the world.
    • I haven’t used this yet, it just came to mind when watching a twitch video game stream of Undertale and a comment was made about the character, Alphys. This method could be useful in things that are like experiments. (video game streamer: Limes)
  • Thesis, Hypothesis, Antithesis, Synthesis
    • Some of the steps in experiments/tests in constructing the basis for theories.
    • No applications as of yet. Thought to use such a system to take a deeper look at the things I do to see if there is anything that can be improved.
  • Zen
  • Feng Shui: I may be able to apply some principles to be more organized and efficient.
  • Cavet: An exception, there are a number of words with similar meanings.
  • Focus on a single point or attack at multiple points. Casting a wide net. Don’t have a good term for this concept.
  • Anal Personality/Obsessive Compulsive Personality Disorder: Excessive need for orderliness, and neatness. I feel that this best describes me currently.

Powershell: Drag and Drop, Parameters within Shortcuts (Temp Section)

  • Passing Parameters with a Shortcut
    • Passing a specific string, or a set of strings can let you control what a script does. (Rather obvious and basic but it feels noteworthy to say.)
    • I’ve used to this to add simple notes/tags to file names or make a note token with a certain prefix.
    • Being able to pass a string through the shortcut reduces the overhead of needing into the code itself.
    • Reusuabilty.
  • You can drag and drop a file to a shortcut to have the script only work on that file.
    • I have a set of shortcuts pointing to the same script that prepends different tags to the filename, all in a single folder, somewhat of a toolkit folder or a labeler.
  • I’ve combined these mechanics to make a shortcut to a script that makes shortcuts.
  • Is there more natural functionality if I execute powershell scripts from “.bat” files?
  • I haven’t touched much libraries yet, I have done so about once or twice.
  • I want more robustness with being able to use relative paths instead of exact paths, I’ve glanced a bit that a “.bat” file could maybe do that.
  • A place to focus my energy and time to go deeper into the complexities of programming.
  • I like the complexity, creating solutions, improving and optimizing things.

Quick Notes: Java

Main Notes

  • Class-based, Object-Oriented
  • Commonly used for Client-Server Web Applications.
  • Portability
    • Designed to have as few implementation dependencies as possible.
    • “Write once, run anywhere”: Compiled code can be run be run on all platforms without recompilation.
    • Compiled to Java bytecode that can be run on any Java virtual machine.
  • Principles
    • It must be simple, object-oriented, and familiar.
    • It must be robust and secure.
    • It must be architecture-neutral and portable.
    • It must execute with high performance.
    • It must be interpreted, threaded, and dynamic.
  • Designed in terms of nouns(classes) interacting with eachother with verbs(methods) as operations on and between them.
  • Automatic Garbage Collector: Collects memory when objects no longer referenced for security and safety.
  • All code is within classes.

Criticism

  • Overhead of interpreting bytecode generally slower than native executables.
  • Possibly slower and requiring more memory than programs written in C++.

Variables

  • Every variable is an object excluding primitive data types.
  • Primitive data types: integers, floating-point numbers, booleans, characters.

Functions

  • Does not support operator overloading.
  • java launcher calls the main method to pass control to the program.

Syntax

Similar syntax to C and C++.

Libraries/Dependancies

  • Standard libraries provide access to host-specific features such as graphics, threading and networking.
  • Comments: single line: \\ preceding the comment, /* */ for multi-line comments.

(Wikipedia: Java (programming language))

Quick Notes: Python

Main Notes

  • Philosophy: “There should be one obvious way to do one thing.”
  • Zen of Programming:
    • Beautiful is better than Ugly
    • Explicit is better than Implict
    • Simple is better than Complex
    • Complex is better than Complicated
    • Readability Counts
  • Multi-Paradigm Language

Variables

  • Variables hold value by reference, and are called “names” instead of variables.
  • Variables are dynamic, meaning the same variable can be set to different types.
  • Comparisons are done with values but can be done with references as well.
  • Variable Unpacking: multiple variables can be set in one expression.

Data Structures

def foo(a,b,c):
  baz = a + b + c
  print(baz)
bar = [1,2,3]
foo(*bar) #prints 6

The tuple bar is unpacked to the function foo as bar by itself would give a type error.
(GeeksforGeeks: Packing and Unpacking Arguments For Python)

Functions

  • All functions return a value.

Syntax

  • Python just has one way to write comments, with the # character preceding the comment, not working in strings.
  • Blocks are delimited by white space characters instead of parenthesis.
  • Quote (‘) and double quote (“) can be used interchangeably, triple quotes denotes multi-line strings.

(Wikipedia: Python (programming language))
(Microsoft | Vistual Studio Docs: Python In Visual Studio)

Quick Notes: Javascript

Main Notes

  • Used for dynamic content, to manipulate the DOM on web pages
  • Mostly known to function “client-side” but there are other implementations.
  • Run-Time Environment is on web browsers.
  • Supported by pretty much all browsers.
  • Multi-Paradigm
  • Mostly Object-Oriented

Other Notes

  • Uses html to include other scripts.
  • No natural facilities for input/output, networking, and storage but uses these services from the host environment.
  • console.log() used for output usually.
  • Hoisting: function and variable definitions are moved to the top of their scope before code execution. (1)
  • Hoisting only applies to var and function, not let and const. (2)
  • Semicolons are optional.(3)

1. Scotch: Understanding Hoisting in JavaScript by Mabishi Wakio
2. Don’t Use JavaScript Variables Without Knowing Temporal Dead Zone by Dmitri Pavlutin
3. Semicolons in JavaScript by Flavio Copes

Variables

  • Keyword ‘var’: function scope, re-assignable.
  • Keyword ‘let’: block scope, re-assignable.
  • Keyword ‘const’: block scope, not re-assignable.
  • variables 0, empty strings, undefined and null are equal to boolean false.

(Digital Ocean: Understanding Variables, Scope, and Hoisting in JavaScript )

Functions

  • When a function is called as a method on an object, the object is set as a local variable keyword “this”.
  • Function arguments are set in the local variable array “arguments”.
  • Function parameters are optional where they are set to undefined or set in the function itself.

Objects

  • Built in objects: Date, Function, Regex, etc.
  • Uses prototypes for inheritance.

(Wikipedia: Javascript)

Define: Programming Overview

Terms: Programming Paradigm, Object Oriented Programming, Functional Programming, Structured Programming

Languages, Libraries, etc: Java, C, C++, jQuery, HTML, XML, SQL, PHP, Node.js, WordPress, CMS, API, cURL, AJAX, Lisp, PERL.

Some of these terms may deserve their own page. I will need a common methodology in comparing these languages such as what’s different between them, what’s similar, and their general structures.

Programming Paradigm

A way of thinking of software production based on fundamental, defining principles. (1)

Object Oriented Programming

  • Data structures and functions have defined data types.
  • Objects are data structures with functions that operate with that specific object.
  • Objects may have relationships with each-other such as inheriting functions and variables.

(webopedia: OOP)

Functional Programming

  • “Declarative” instead of “Imperative”. (1)
  • Avoids shared state, mutable data, and side-effects. (1)
  • Focus on “what to solve” instead of “how to solve”. (2)
  • Expressions instead of statements. Expressions are evaluated to produce a value. (2)
  • Uses Pure Functions. Given the same input, always return the same output. Has no side-effects. (1)

Sources and References

(1. Medium: Master the JavaScript Interview: What is Functional Programming?)
(2. GeeksforGeeks: Functional Programming Paradigm)

Define: Linux, Unix, Command Prompt

Terms: Unix, Linux, Kernel, POSIX, Command Prompt, PowerShell, Web API.

A number of terms and phrases that I’ve heard of and probably used but haven’t clearly defined them for myself. I expect to make multiple posts looking up definitions for a number of terms. A wiki would help in sorting these terms should I ever decide to make one.

I want to summarize just the important points.

Unsorted
Command Line, Web API.

Unix

  • A type of operating system that includes a number of modern operating systems.
  • Small, modular utilities that do one thing and that one thing well.
  • “everything is a file”, everything such as resources and functions, are treated, organized, and accessed like files.
  • The other major type is Microsoft’s Windows NT-based OS.

(HTG)

Linux
A kernel. A Unix clone written by Linus Torvalds and people across the net. Free open-source and “aims towards POSIX compliance.” (nixcraft)

Kernel
A program that serves as the core of a operating system. One of first programs to load after the bootloader. (Wikipedia)

POSIX
IEEE standard for compatibility and portability between operating systems. Not just for UNIX systems. (Linux Hint)

Command Prompt
“Default command line interface provided by Microsoft”(maketecheasier)

Web API
I’ll look up definitions at a later date, this post will just reference them for now.

General 01: Blog, Definition/difference between code, script, program

“General 02” has been deleted as it was combined with another “General” blog post.

The first of hopefully many blog posts containing notes on anything related to technology.

As I look up answers on google on things I want answers to, I want to add a short reference immediately after the thought/answer in parentheses.

In considering on what platform to store and share my thoughts, I chose wordpress over blogger as it may have more features and it feels more polished. I’ve just recently thought that a Wiki might be another good option to share information based on how many people access and maintain them at this day of age of technology. Wikipedia created the groundwork and standard of how data could be organized.

I looked up the definitions of words: code, script, and program as I wasn’t too clear on the differences. They could be used interchangeably but I’m thinking that a script is code that doesn’t need compiling, generally. Scripts are also specific to certain languages. (Quora: Answer by Preshant Serai) Though it has been a while since I compiled anything (compiling is an annoying extra step after all), code can be un-compiled while a program is usually a finished project.