Tried it and its gold!
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
Yes my point doesnt need to be made. I deleted that.
Your insight is so flawed lol 🧌
Meta is for people with an open mind who want to make an effort to improve. You also need to be able to handle the fact that Meta is a work in progress. It's good, but not perfect. Everyone will find in our projects what they are looking for. If you come to them with a preconception that they can't be any good, or that they should be the same as other products, your brain will trick you into interpreting everything we say negatively and you will imagine to have confirmed your preconceptions. Something can't be an improvement or innovative without being different. On the other hand, if you are curious and of good will and make an effort to understand what we are saying, you will find a lot to enjoy and use. You must be willing to have your thinking changed by Meta.
We aim to transcend a narrow focus on a specific audience. Meta is a project for developers who need power from their language, but also for occasional programmers who don't have the time to juggle many arcane details, and for people who want to learn programming and are looking for an easier language. It's a project for REBOL fans, but we also welcome programmers from other languages who want to expand their horizon. It's a project for Atari and Syllable enthusiasts, but also for all the other platforms. Meta is for fun and for profit. We don't believe in fundamental contradictions between these uses, and we don't want to create artificial limitations. We believe that, when embraced, these uses will reinforce each other.
We make this possible through Meta's unique combination of properties. Its human-friendly focus and high-level properties reduce the cognitive load on your brain. This brings the language within reach of beginning and occasional programmers, but also frees advanced developers to spend their energy on their application logic, instead of babysitting the language.
Meta's low-level properties and raw performance enable it to run on more diverse platforms than most other languages, and allow advanced developers to still babysit the language when they need to.
Now this does require some mutual understanding from everyone involved. We will build an inclusive community, where anyone with good intentions can feel welcome. The project materials will cater to all knowledge levels, so that people can grow through them.
Not everyone is willing to make the effort to learn to understand Meta and the principles it is based on. This is usually not because they are not capable of doing so, but because they are already used to other computer languages based on different principles. Some of them even fiercely resist the notion that Meta could be rational and useful, in spite of the more than half a century of scientific and practical history in related languages that are highly influential on many modern computer languages and systems. To understand why this happens, read these articles:
The Backfire Effect, by The Oatmeal
Theory of Bounded Rationality
The Blub Paradox
Meta is outside their bounds of rationality, leading them to rationalisations that are bizarre to those who do understand Meta. While this is unfortunate, it also shows that Meta is a real innovation that pushes these bounds, towards greater rationality. If you want to give it a positive spin, it is also a clear way to outcompete them. We need to focus on those for whom Meta is within their bounded rationality, so they can achieve the results that show others the progress.
An odd consequence of this is that Meta needs a two-pronged approach of focusing on both beginning and advanced programmers. Beginning programmers haven't invested much yet in different languages, so they may as well try Meta. Advanced programmers have the insight to see that Meta solves several pervasive problems in programming, and the mental capacity to learn a different language. Of course, this also makes Meta suitable for medium-level programmers, but that is not in our hands: it depends on their mental agility. One can lead a horse to water, but one can't make it drink.
If you find yourself in the middle group, and you do want to make an effort to learn Meta, but you can't get your head around it, it is very useful to read the following essays. They are about Logo, Lisp and Scheme, but much the same fundamental principles apply to Meta. The second essay explains them in terms of different, popular programming and data languages such as XML, SQL, C and its preprocessor, C++, Java and C#:
High School Computing: The Inside Story
The Nature of Lisp
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.
That makes no sense. Wth is up with all y'alls biased minds? LOL I admit I never done anything productive in my life. Are you feeling better that I agree with your so keen wise insight on my life's work, history and activities? Interesting skill you have. You are wasting it replying to me. You could be making $$$ helping companies with that mighty skill of keen life reading ability. Very impressive!
PS: If programmers can't find shit and complain then unlabel yourself as one. I never claimed to be one anyways smartalec.
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.
Meta is for people with an open mind who want to make an effort to improve. You also need to be able to handle the fact that Meta is a work in progress. It’s good, but not perfect. Everyone will find in our projects what they are looking for. If you come to them with a preconception that they can’t be any good, or that they should be the same as other products, your brain will trick you into interpreting everything we say negatively and you will imagine to have confirmed your preconceptions. Something can’t be an improvement or innovative without being different. On the other hand, if you are curious and of good will and make an effort to understand what we are saying, you will find a lot to enjoy and use. You must be willing to have your thinking changed by Meta.
We aim to transcend a narrow focus on a specific audience. Meta is a project for developers who need power from their language, but also for occasional programmers who don’t have the time to juggle many arcane details, and for people who want to learn programming and are looking for an easier language. It’s a project for REBOL fans, but we also welcome programmers from other languages who want to expand their horizon. It’s a project for Atari and Syllable enthusiasts, but also for all the other platforms. Meta is for fun and for profit. We don’t believe in fundamental contradictions between these uses, and we don’t want to create artificial limitations. We believe that, when embraced, these uses will reinforce each other.
We make this possible through Meta’s unique combination of properties. Its human-friendly focus and high-level properties reduce the cognitive load on your brain. This brings the language within reach of beginning and occasional programmers, but also frees advanced developers to spend their energy on their application logic, instead of babysitting the language.
Meta’s low-level properties and raw performance enable it to run on more diverse platforms than most other languages, and allow advanced developers to still babysit the language when they need to.
Now this does require some mutual understanding from everyone involved. We will build an inclusive community, where anyone with good intentions can feel welcome. The project materials will cater to all knowledge levels, so that people can grow through them.
Not everyone is willing to make the effort to learn to understand Meta and the principles it is based on. This is usually not because they are not capable of doing so, but because they are already used to other computer languages based on different principles. Some of them even fiercely resist the notion that Meta could be rational and useful, in spite of the more than half a century of scientific and practical history in related languages that are highly influential on many modern computer languages and systems. To understand why this happens, read these articles:
The Backfire Effect, by The Oatmeal
Theory of Bounded Rationality
The Blub Paradox
Meta is outside their bounds of rationality, leading them to rationalisations that are bizarre to those who do understand Meta. While this is unfortunate, it also shows that Meta is a real innovation that pushes these bounds, towards greater rationality. If you want to give it a positive spin, it is also a clear way to outcompete them. We need to focus on those for whom Meta is within their bounded rationality, so they can achieve the results that show others the progress.
An odd consequence of this is that Meta needs a two-pronged approach of focusing on both beginning and advanced programmers. Beginning programmers haven’t invested much yet in different languages, so they may as well try Meta. Advanced programmers have the insight to see that Meta solves several pervasive problems in programming, and the mental capacity to learn a different language. Of course, this also makes Meta suitable for medium-level programmers, but that is not in our hands: it depends on their mental agility. One can lead a horse to water, but one can’t make it drink.
If you find yourself in the middle group, and you do want to make an effort to learn Meta, but you can’t get your head around it, it is very useful to read the following essays. They are about Logo, Lisp and Scheme, but much the same fundamental principles apply to Meta. The second essay explains them in terms of different, popular programming and data languages such as XML, SQL, C and its preprocessor, C++, Java and C#:
High School Computing: The Inside Story
The Nature of Lisp
Fukin rage somewhere else. What is it with anger and programming? What in the flying hell is up with most of you keyboard junkies?
Complexity Bias. I had it too. Withers away with time.
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/[DOC]-How-Red-works,-a-brief-explanation
https://github.com/red/red/wiki/[DOC]-Guru-Meditations#contexts-and-binding
https://github.com/red/red/wiki/[DOC]-Function-Evaluation
Who cares if creators cant name things great. Forget names lets use and improve technology.
Meta [
Title: {Fizz Buzz math "game"}
Author: "Kaj de Vos"
Rights: "Copyright (c) 2021,2022 Kaj de Vos"
License: {
PD/CC0
http://creativecommons.org/publicdomain/zero/1.0/
}
Notes: {
https://en.wikipedia.org/wiki/Fizz_buzz
https://wiki.c2.com/?FizzBuzzTest
https://www.rosettacode.org/wiki/FizzBuzz
}
]
For counter 100 [ ; Count to 100
Third?: unless modulo counter 3 [write "Fizz"] ; Display "Fizz" every third count; remember whether we did
Any [
unless modulo counter 5 [write "Buzz"] ; Display "Buzz" every fifth count
third? ; Remember earlier result
write counter ; Display the number if not third or fifth
]
Write " " ; Separate the displayed items
]
Write new-line
Awesome! Much better layout than the other post made ;) Thanks for the assist.
Meta Lang https://language.metaproject.frl/ Examples - dislux-hapfyl/meta-lang-examples
Examples of an interesting computer programming paradigm.
YouTube Video
Click to view this content.
Part I is 1hr of this loading....
git clone https://github.com/jart/blink && cd blink
https://www.rebol.com/downloads.html
https://www.red-lang.org/p/download.html
https://github.com/dislux-hapfyl/shimky
Hey thanks a lot. You have tremendous amount of resources. Great work!
Um no they dont. I installed with a wireless mouse just fine.
YouTube Video
Click to view this content.
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
Woeks well on:
OS: Fedora Linux 40 (Forty) x86_64 :: i3 Edition
Host: OptiPlex 9010
Kernel: 6.8.5-301.fc40.x86_64
CPU: Intel i7-3770S (8) @ 3.900GHz
GPU: AMD ATI Radeon RX 470/480/570/570X/580/580X/590
Memory: 1955MiB / 19862MiB
Runs Ghostrunner on Steam very well for old hardware.
Fork it and Make Pull Request. 👍
YouTube Video
Click to view this content.
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
YouTube Video
Click to view this content.
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
YouTube Video
Click to view this content.
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.
YouTube Video
Click to view this content.
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.
YouTube Video
Click to view this content.
Using Tkinter and Some Ninja CLI Skillz
YouTube Video
Click to view this content.
cross-posted from: https://programming.dev/post/12104901
> https://github.com/dislux-hapfyl/pynksh > > Writing functional shell snake code to improve my sanity.
YouTube Video
Click to view this content.
https://github.com/dislux-hapfyl/pynksh
Writing functional shell snake code to improve my sanity.
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.
>
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
It runs!.. it's just a toy.
ksh python "transpiler" - write shell > python. Contribute to dislux-hapfyl/pynksh development by creating an account on GitHub.
korn shell wrapper that outputs python code: you write shell > out comes the snake
ksh python transpiler. Contribute to dislux-hapfyl/pynksh development by creating an account on GitHub.
https://discord.gg/JT6RMMfP