hardkorebob

joined 8 months ago
[–] hardkorebob@programming.dev 0 points 5 months ago* (last edited 5 months ago)

No to Python, Go, Lisp and C to begin. In fact at this level you just need to get a feel for process. You need to start where u feel attracted to. You need to learn principles and not languages nor frameworks. Im surprised not one of the replies gives an accurate picture of what it entails to think like a computer. Computation is not an efficient brain like a humans. It was made to work with the hardware we invented long ago. You have to learn the rudimentary and boring repetition the machine HAS to do so it can appear as a real memorable entity. A practical suggestion is to go install Linux From Scratch. When you complete that journey you will have a taste of some principles. Then I also suggest to simply rewrite character for character kilo.c. Why? So you learn how much a pain and a workout it is to crunch at the keyboard. Learn by doing. Learn by breaking and briking. Go find a game u love with all ur being and reverse engineer it. Who cares what u know at the moment, the goal is the process not the result and besides nothing is ever finished, just get it done. One baby step at a time. Oh and dont ask any more questions. All of those have been asked, its our jobs to find the answer. Please take all this as a simple nudges. None is written with any ill will, trolling nor negativity. Take away the knowledge not the pressumed attitude behind my words. Forget the internet and just dive into it. Another way is to pay some pro to mentor you. Good luck with that since most persons are too busy and are elite. Whatever u want to learn has to be done in the spirit of neglect. You cant care too much about computation. It is just a process for making fragmented business. No one NEEDS software nor money. We all agree to play these nonsensical games. Have fun and be grateful for the process itself. Good journey to you friend! Its a weird one. Ive been at it for 35 years and Im still a newbie.

PS The internet is filled with info. Its your job to determine the knowledge and not the judgement on the worth of the person who posted it. Too much drama and toxicity because everyone at the top of the food chain is pushing that vibe. Everyone everywhere is complaining about our violent ways, how we write to each other online and how we are all being subhuman. Peace to all!

#allerrorsmatter #cod-ape

[–] hardkorebob@programming.dev 1 points 6 months ago (1 children)

Yes my point doesnt need to be made. I deleted that.

[–] hardkorebob@programming.dev -4 points 6 months ago

Your insight is so flawed lol 🧌

[–] hardkorebob@programming.dev -2 points 6 months ago

Also to be fully homoiconic, Meta needs to be able to manipulate its own code. Currently, that is done by REBOL 3. REBOL is homoiconic, and Meta is currently a REBOL 3 format. It will take a lot more to enable Meta to handle its own code, so that will take time. Even though REBOL and Red are homoiconic, they're not implemented in themselves. REBOL has a C interpreter and Red a Red/System interpreter. Meta is two to three orders of magnitude faster and designed to be able to implement itself eventually.

[–] hardkorebob@programming.dev -3 points 6 months ago

Complexity Bias. I had it too. Withers away with time.

[–] hardkorebob@programming.dev -2 points 6 months ago* (last edited 6 months ago)

Red/REBOL are a data format first. Many native data types. Lisp uses Fexpr and Red use a basic token. Each character!

Originally Posted on Hacker News by 9214

Red (and Rebol) are based on research in denotational semantics that Carl Sassenrath did. I'll try to briefly explain the main points.

Everything starts with a UTF-8 encoded string. Each valid token in this string is converted to an internal data representation - a boxed structure 4 machine pointers in size, called a value slot or sometimes a cell.

Value slot is composed of a header and a payload. Header contains various flags and datatype ID, payload specifies exact content of the value. If content doesn't fit in one value slot, then payload contains a pointer to an external buffer (an array of value slots, bytes, or other units + offset and start/end addresses IIRC) with extra data.

So, lexer converts string representation to a tree of value slots (this phase is called loading), which is essentially a concrete syntax tree (CST) — this is the crux of homoiconicity.

https://github.com/red/red/wiki/%5BDOC%5D-How-Red-works,-a-brief-explanation

https://github.com/red/red/wiki/%5BDOC%5D-Guru-Meditations#contexts-and-binding

https://github.com/red/red/wiki/%5BDOC%5D-Function-Evaluation

Who cares if creators cant name things great. Forget names lets use and improve technology.

13
submitted 6 months ago* (last edited 6 months ago) by hardkorebob@programming.dev to c/programming@programming.dev
 

Examples of an interesting computer programming paradigm.

 

Please enjoy my mind contraptions for learning purposes.

pnk.lang is a DSL made in Shell Script that compiles to Python. Abstracting indentation and category of functions into colors[capital letters] using the tag_add method from tkinter. For me it reduces cognitive load and also you write much less Python boilerplate.

shimky is the IDE for pnk.lang built in pnk.lang. It has some vim behaviors/modes/commands and an internal bash shell/command line, an mp3 player[mpv] and a youtube music downloader command line. Paste a URL and hit Ctr-n and you get a refreshed mp3 list with new mp3 renamed for POSIXish.

Here I made a small pnk.lang IDE for Red using shimky. ;)


Get shimky/pnk.lang : https://github.com/dislux-hapfyl/shimky

Get Red: https://github.com/red/red

#allerrorsmatter #hacktheplanet #redlang #ahdahwm

 

A Shell DSL that transforms into Python.

I created this IDE to spin up Tkinter UIs or anything Python with less boilerplate and rich cognitive and efficiency shortcuts: for me, I think this tool helps me prototype GUI apps quicker with less characters typed so less effort.

I would love to take this further if I could get anyone interested. Thanks.

https://github.com/dislux-hapfyl/shimky

PD: Both Titles are Correct

 

A Shell DSL that transforms into Python.

I created this IDE to spin up Tkinter UIs or anything Python with less boilerplate and rich cognitive and efficiency shortcuts: for me, I think this tool helps me prototype GUI apps quicker with less characters typed so less effort.

I would love to take this further if I could get anyone interested. Thanks.

https://github.com/dislux-hapfyl/shimky

 

This code is a highly abstracted and unconventional script that appears to be for generating Python code using Bash shell script constructs within a shell scripting context, translating them into Python code generation. Here's a breakdown of what different parts of the script do:

Function Definitions:

The script defines several functions (ZDimp, ZDas, ZDshebang, etc.) that output Python code. Each function generates specific parts of Python code, like imports, class definitions, and method definitions. Functions like ZFtoorwin, XIcv, and ZDcld are used for generating more complex constructs like class instantiation and method invocation within classes. Control Structures:

It includes shell-based control structures to create conditional (if, elif, else) and looping constructs (for, while) in the generated Python code. The constructs use a mix of direct shell commands and placeholders for Python code, indicating that the script likely works alongside other tools or scripts that provide inputs dynamically. Instance and Function Call Generation:

Functions for setting instance variables (ZIfv, YIfv, etc.) and making function calls (ZFfc, YFfc, etc.) dynamically build Python code that manipulates class instances and calls methods. These functions are versatile, allowing for different indentation levels and conditions to be specified dynamically. Utility Operations:

Functions like XFshsp, XFpyev, and others handle subprocess execution, text manipulation, and variable assignment within the generated Python environment. These functions are intended to be flexible and reusable across different parts of the generated code, indicating a modular approach to code generation. Error Handling and Debugging:

The script includes structures for try-except-finally blocks (XKtry, XKexcp, XKfin), allowing generated Python code to handle exceptions effectively. This suggests that the generated code is expected to run in environments where robust error handling is necessary. In summary, this Bash script serves as a meta-programming tool that dynamically generates Python code. It abstracts Python programming constructs into shell script functions, allowing the script writer to generate complex Python applications using shell command syntax. This approach is unconventional and seems tailored for specific use cases where such a level of abstraction is beneficial, perhaps in automated code generation tools or educational environments where showing the transformation of simple commands into Python code can be illustrative.

 

https://github.com/dislux-hapfyl/shimky

This code is a highly abstracted and unconventional script that appears to be for generating Python code using Bash shell script constructs. It mimics object-oriented programming concepts within a shell scripting context, translating them into Python code generation. Here's a breakdown of what different parts of the script do:

Shebang and Author Information: The script starts with a shebang for Bash, and author details are provided in a comment.

Global Variables:

Various variables are set for use within the generated Python code, such as bg for background color, datenow for the current date and time, px and py for padding values, etc. S, E, and _ are shorthand for self, echo, and expr respectively, simplifying the syntax for commonly used operations. Function Definitions:

The script defines several functions (ZDimp, ZDas, ZDshebang, etc.) that output Python code. Each function generates specific parts of Python code, like imports, class definitions, and method definitions. Functions like ZFtoorwin, XIcv, and ZDcld are used for generating more complex constructs like class instantiation and method invocation within classes. Control Structures:

It includes shell-based control structures to create conditional (if, elif, else) and looping constructs (for, while) in the generated Python code. The constructs use a mix of direct shell commands and placeholders for Python code, indicating that the script likely works alongside other tools or scripts that provide inputs dynamically. Instance and Function Call Generation:

Functions for setting instance variables (ZIfv, YIfv, etc.) and making function calls (ZFfc, YFfc, etc.) dynamically build Python code that manipulates class instances and calls methods. These functions are versatile, allowing for different indentation levels and conditions to be specified dynamically. Utility Operations:

Functions like XFshsp, XFpyev, and others handle subprocess execution, text manipulation, and variable assignment within the generated Python environment. These functions are intended to be flexible and reusable across different parts of the generated code, indicating a modular approach to code generation. Error Handling and Debugging:

The script includes structures for try-except-finally blocks (XKtry, XKexcp, XKfin), allowing generated Python code to handle exceptions effectively. This suggests that the generated code is expected to run in environments where robust error handling is necessary. In summary, this Bash script serves as a meta-programming tool that dynamically generates Python code. It abstracts Python programming constructs into shell script functions, allowing the script writer to generate complex Python applications using shell command syntax. This approach is unconventional and seems tailored for specific use cases where such a level of abstraction is beneficial, perhaps in automated code generation tools or educational environments where showing the transformation of simple commands into Python code can be illustrative.

 

Using Tkinter and Some Ninja CLI Skillz

 

cross-posted from: https://programming.dev/post/12104901

https://github.com/dislux-hapfyl/pynksh

Writing functional shell snake code to improve my sanity.

 

https://github.com/dislux-hapfyl/pynksh

Writing functional shell snake code to improve my sanity.

5
Functional Shell Snake (programming.dev)
submitted 7 months ago* (last edited 7 months ago) by hardkorebob@programming.dev to c/programming_languages@programming.dev
 

In Oct’23 a basic Text widget with Subprocess to run shell commands allowed me to take my command line fu into a different arena because Tkinter gave me special tricks. This tool (shell functions) allows me to type up GUI apps or any Python script with less effort, for my fingers and brain.

wc newide; ksh newide | wc

513 1641 10859 newide [shell functions]

600 1959 29558 newide [python file]

The blocks of color are capital letters colored using tkinter methods (tag_add & tag_configure) with a bg and fg of the same color to make it look like a lego block, it’s all ASCII. On the right, an idle clicker game/toy made with pnk.lang, also just ASCII/UTF-8. The IDE you see in the pic also was coded using functional shell language I call pnk.lang and the original first iteration of this specification is in the legacy folder in the repo below. Just me learning how to code faster in Python but in shell but in neither at this point.

https://github.com/dislux-hapfyl/pynksh

https://www.reddit.com/r/pnk/

Don’t be put off by Ksh because Bash can also interpret it, since it’s just shell functions that print Python code. But I have plans to use an Xbox controller so I can move away from building with the keyboard at piecemeal rates. I will do this by abstracting away identifiers and all data we use as engineers into “dictionaries” to then transform it into a spatial system. I already done this first step! Using a basic grid with a maximum of 10 rows x 3 cols, indexing row[0-9] col[0-2], as you see there on the left side, and by using a letter I then categorize the functions of pnk(shell+python) so I can have 30 x 26[a-z] available slots; a00 b11 k22 and so on…by making it a visual shortcut that reduces cognitive load and typing for me.

Take a closer look at my repo without dismissing it too quickly. It could seem unnecessary but maybe someone else can see what I have made as useful and how we gonna take it to higher levels of abstraction and create a new realm for making computer applications in an abstract game/IDE of art and code. Perhaps it’s that creator effect that happens when you make something for the first time that makes me see its future utility and appeal. All this was made incrementally using my own software I built from scratch. I do have a great vision and would love to speak to anyone who is interested. I also demonstrate the utility of this small tool on youtube[link in repo]. Thanks.

 

It runs!.. it's just a toy.

view more: next ›