• OK, it's on.
  • Please note that many, many Email Addresses used for spam, are not accepted at registration. Select a respectable Free email.
  • Done now. Domine miserere nobis.

What is the best programming tool?

Black Rose

An unbreakable bond
Local time
Today 4:31 PM
Joined
Apr 4, 2010
Messages
11,431
-->
Location
with mama
I tried to use NetBeans 20 for Java on my computer.

No programs I made worked, windows said: virus detected.

So I had to uninstall Java.

-

I know three things: OOP is calculus, loops exist, and variables hold things.

All I want to do is get a tool that lets me do stuff.

Basic stuff where I can create my own libraries.

I cannot use Java, not at all.

The interface is the most important part.

I need to input and output files.

-

I need to do things with files the size of 2 gigabytes and 2 trillion ops.

my computer has a GPU

I have no money.
 

dr froyd

__________________________________________________
Local time
Today 11:31 PM
Joined
Jan 26, 2015
Messages
1,335
-->
have you tried Python

oh and btw - if you want to 'get stuff done' as a programmer, you can't use windows. Windows is designed to prevent you from doing anything on your computer except what microsoft sees fit. It's a time investment but I would recommend switching to Linux
 

scorpiomover

The little professor
Local time
Today 11:31 PM
Joined
May 3, 2011
Messages
3,341
-->
I tried to use NetBeans 20 for Java on my computer.

No programs I made worked, windows said: virus detected.

So I had to uninstall Java.
I've had Java on my PC since it came out, and it never said that.

Plenty of IDEs for Windows.
Eclipse for Java is a popular one.
You can install Visual Studio and then Java in Visual Studio.

Both are free. However, they have to make money to exist. So they encourage you to use the paid version, by offering much better features in the paid versions.

So you have to put in some effort. There's a learning curve, and sometimes things happen that are unexpected.

You don't even need an IDE: you can just edit files in Notepad and use a cmd window to run code.

Or you can install Notepad++ which is great for editing, and then use a cmd window.

Basic stuff where I can create my own libraries.
Creating your own libraries is seriously advanced coding. That comes later, when you've become an experienced coder.

First learn to code, and then do projects without your own libraries.

I cannot use Java, not at all.
Coding takes a lot of thinking, a lot of remembering, and a lot of mental effort. If you want to learn to code, you need to get your brain used to solving several puzzles every day.

I suggest you start by attempting to solve a puzzle for 10 minutes a day.
Then move on to 20 minutes.
Then longer, and longer, until you enjoy solving puzzles and you can do them all day long.

Or, look at coding as solving puzzles.

Or use a different language.

The interface is the most important part.
It usually is for everyone.

I need to input and output files.

I need to do things with files the size of 2 gigabytes
That's the maximum a modern computer can handle. You'll probably need to only read tiny parts of those files at a time.

Anyway, using files that size will probably crash most computers after a short time. I recommend breaking those files up into lots of smaller files.

and 2 trillion ops.
Modern CPUs that run at 2GHz, can do 2 billion ops a second. So then your code would need to run for 500 seconds, or 8 minutes and 20 seconds.
 

Cognisant

Prolific Member
Local time
Today 11:31 AM
Joined
Dec 12, 2009
Messages
10,947
-->
Look up tutorials for "Little Man Computer".

This is programming at its most basic. Python may be easier to learn but that's because it handles a lot of the details, in your case I don't think that's going to help.

Once you make a dozen or so different programs in LMC your mind will be prepared to learn something useful like C#.

Learning LMC is going to be painfully boring and incredibly frustrating.
 

dr froyd

__________________________________________________
Local time
Today 11:31 PM
Joined
Jan 26, 2015
Messages
1,335
-->
  • Java: horrendously bloated and pure-OOP language that grew out of the early 2000s tech boom, designed for businesses to make tech employees easily replaceable. Not good for anything in particular.
  • C++: the language that Java tried to emulate. Good for a combo of high performance, OOP if you need it, and various built-in libraries like std.
  • C: thin wrapper around Assembly, the only real option if you want to do really high-performance stuff. Built-in libraries mostly don't exist, and you have to write a lot of things from scratch. Very useful for learning how computing actually works (basically everything is ultimately based on C (including the Java virtual machine))
  • Python: high-level general-purpose scripting language that has both OOP and imperative. Quite slow and doesn't allow multi-threading, but has good libaries like numpy for fairly efficient numerical commutation, linear algebra, etc. Most of the big machine-learning libraries have a Python API, which is probably why it has grown in popularity recently.
if you want to learn something that will last for the rest of your life and is not dependent on the trends of the market, it would be C.

if you want to get into programming from a near-beginner level, you probably want something more high-level and something that has a big community where you can ask stuff. So that would be Python. If you want to operate on data, train machine-learning algos and whatnot, this would also be a good reason to do Python.

and btw 2GB is not a big file - unless this is super compressed data. Even basic retail laptops have a RAM of 8GB
 

Black Rose

An unbreakable bond
Local time
Today 4:31 PM
Joined
Apr 4, 2010
Messages
11,431
-->
Location
with mama
C++: the language that Java tried to emulate. Good for a combo of high performance, OOP if you need it, and various built-in libraries like std.

I thought about using C++ at one time, but I had heard that one wrong function call would delete your hard drive or some kind of bug would crash everything.

I heard about CUDA for GPUs - Current GPUs can do 1 petaflop a second (Grace -Hopper chipset) and I am saving money for that configuration in summer / fall 2024.

In machine learning, models are files sized about 2 gigabytes all operating in parallel on the GPU.

I do not know how Pytorch would work with CUDA nor how TensorFlow would work with CUDA.

At basic I have 30 gigabytes and 23 thousand files on my computer. I don't have time to learn file extensions or put all the file names into a machine-learning tool.

I once asked Cog if I could do something like build a model via meta-reinforcement learning but he said it would just be a glorified search engine lookup table.

I also want to make my blog into an A.I. but have no idea how.

The point is I have ideas, ideas I cannot do because I cannot code stuff because it is all bloatware legacy systems and I do not know where to start. If I had the money I could pay people but that might take 2 years and I am bored right now.

All the simple tools for machine learning do not exist unless you pay Microsoft or Google to do it in their pipelines.

hD715CQ.png


AVFcRph.png
 

dr froyd

__________________________________________________
Local time
Today 11:31 PM
Joined
Jan 26, 2015
Messages
1,335
-->
you can run machine learning on a $200 laptop. It's a matter of dataset size and speed.

anything that can be computed on a GPU can also be computed on a CPU, it's also just a matter of speed, and a GPU is usually not required
 

Black Rose

An unbreakable bond
Local time
Today 4:31 PM
Joined
Apr 4, 2010
Messages
11,431
-->
Location
with mama
In 2011 Google was doing something called: Gradient boosting in machine vision.

I had a Picasa account and some photos from a field trip.

In it, I could classify hats, shirts, and things, and it started doing it itself, putting them in folders.

So it begins with a tree of each category and finds the features in a federated manner and what picture holds each class. It creates miniature models in real-time by the labels.

If I saw a hat in the wrong category I could relabel it and the results "federated" through the entire model. All pictures got recategorized, making the loss function less and less.

After that, I got paranoid and tried to delete stuff and my computer crashed.

The problem with models today is that they are pre-trained (Generative Pre-trained Transformer) You cannot change them or improve them.

What I want to do is something like a real-time training model. Like what the model I saw in 2011 did in a multi-modal form.

I would be able to take an image and tell the model what it is and then it could look at other images and talk about them. And I could correct it.

Basically, an automatic annotator but can be corrected in the form of a model that gets better and better. Like with the hats in Picasa in real-time.

It would have an abstract layer and layers for the smaller assemblies.

A model is just a compression of abstract layers in a graph network.
 

dr froyd

__________________________________________________
Local time
Today 11:31 PM
Joined
Jan 26, 2015
Messages
1,335
-->
then you should break it down in smaller steps and do them one by one

step 1 would be to install python and learn to use some of the machine-learning libraries
 

Black Rose

An unbreakable bond
Local time
Today 4:31 PM
Joined
Apr 4, 2010
Messages
11,431
-->
Location
with mama

Black Rose

An unbreakable bond
Local time
Today 4:31 PM
Joined
Apr 4, 2010
Messages
11,431
-->
Location
with mama
ok, so I do not know what I am doing.

I downloaded Microsoft Visual Studio Code.

First I need to make a window and second I need to place numbers in the window.

The last time I did this in Java I could not do buttons only pixels and a single thread. When I did the thread in Java I copy pasted from another program and placed my stuff inside it. The thread ran continuously until the window closed.

The pixels would change colors by the numbers in the arrays and the algorithm I made modified the numbers in the arrays in nested loops.

I do not know how the do any of that in Python.

Python Program:
import tkinter as tk

def main():
    window = tk.Tk()
    window.mainloop()

    label = tk.Label(window, text="Hello, world!")

    entry1 = tk.Entry(window)
    entry2 = tk.Entry(window)
    entry3 = tk.Entry(window)

    entry1.insert(0, "1", "1", "1")
    entry2.insert(0, "1", "0", "1")
    entry3.insert(0, "1", "1", "1")

    label.pack()
    entry1.pack()
    entry2.pack()
    entry3.pack()

main()
 

Black Rose

An unbreakable bond
Local time
Today 4:31 PM
Joined
Apr 4, 2010
Messages
11,431
-->
Location
with mama
The problem with me is I have to see where everything goes, I am a visual learner.

I cannot memorize things.

The basis of computers in the turning machine.

I do not know what the dot means or the () means unless it happens in an order.

And I do not know what order happens when using words like window and package.

Why can't there just be the order of operations like in algebra and calculus?

Operating systems just work with the kernel but languages need complicated names.

Kernels look something like this:

nnQPm4C.jpeg


but you need to learn 10,000 words to do basic coding in any language before you can do basic work.

I cannot do that.
 

Black Rose

An unbreakable bond
Local time
Today 4:31 PM
Joined
Apr 4, 2010
Messages
11,431
-->
Location
with mama
Kernal also looks like this.

Lists of numbers.
They do 64 bits at a time now.
32-bit systems hold 32 zeros and ones.

1:[nx][nx][nx][nx]
2:[nx][nx][nx][nx]
3:[nx][nx][nx][nx]
4:[nx][nx][nx][nx]
5:[nx][nx][nx][nx]
6:[nx][nx][nx][nx]

languages require 10,000 "words".
 

Black Rose

An unbreakable bond
Local time
Today 4:31 PM
Joined
Apr 4, 2010
Messages
11,431
-->
Location
with mama
Can you make algorithms in Python?

It took me 13 years to make one algorithm in Java.

I cannot wait that long again.
 

dr froyd

__________________________________________________
Local time
Today 11:31 PM
Joined
Jan 26, 2015
Messages
1,335
-->
yes, so if you don't want to wait that long you should ask yourself: what's the simplest and most elegant way of solving a particular problem

if you want to replicate your Java program, you definitely do not need to mess around with GUIs. All you need is to update a 2d image in a loop. I haven't done much graphical stuff in python but this seems pretty close:

another thing with your program is that you don't actually need a multithreaded application. You can update the image matrix and then update the image in sequence, like this:

Code:
while (condition):
    update matrix
    update image
 

scorpiomover

The little professor
Local time
Today 11:31 PM
Joined
May 3, 2011
Messages
3,341
-->
The problem with me is I have to see where everything goes, I am a visual learner.
Most coding tools are now oriented towards GUIs and coding visually. Some coding tools are known as "low coding" meaning that they basically use almost no code whatsoever.

I do not know what the dot means or the () means unless it happens in an order.
Google "operator precedence". It has to happen in an order. Without a specific order, the computer doesn't know which one to do first, and will simply stop.

And I do not know what order happens when using words like window and package.
You can Google this. Even ChatGPT and other AIs will be able to answer you these sorts of questions.

Why can't there just be the order of operations like in algebra and calculus?
There is. Where there isn't, the computer doesn't know what to do, and stops. Google "operator precedence", or "operator order". Or, just ask ChatGPT.

Operating systems just work with the kernel but languages need complicated names.
Operating systems and kernels are all written in languages.

but you need to learn 10,000 words to do basic coding in any language before you can do basic work.

I cannot do that.
Most programming languages only have about 30 reserved words and 10 symbols.

The rest are libraries. You only need to remember the words for the functions you use in those libraries, when you won't use most of those functions in the first place. You probably need about 1,000 words.

Besides, you can look them up on Google. Even if you forget them, you can look them up again on Google. Even if you can't remember what word to use, that's the sort of information you are bound to be able to ask ChatGPT.

Anyway, you talk so much about AI and all sorts of things, that it's pretty clear that you have an extensive vocabulary. So you wouldn't have a problem that way.

The main things you need to remember are all the variables and fields you use in the code you write, and to keep them straight, so you use them consistently. Otherwise, your code will make sense to the compiler, but will not do what you intended.

You only need to understand that computers were designed to be very fast idiots who will do exactly what you say, no more and no less. If you can tell an idiot how to make dinner in such a way that he will follow your instructions perfectly, then coding is easy.

Or as Grace Hopper said, "programming is no harder than planning a dinner party".
 

dr froyd

__________________________________________________
Local time
Today 11:31 PM
Joined
Jan 26, 2015
Messages
1,335
-->
did a small example that animates changes to a matrix of cell values. To replicate your Java script you would just need to change the output of the animate() function

if you have python installed, just save this as a file, e.g. "dr_froyd.py" then open a command line, go into the directory with the file and run "python dr_froyd.py" or more likely "python3 dr_froyd.py" if you have python 3 installed. Alternatively use an IDE although I have never used those

example:
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
from random import randint
from random import uniform

nx = 20
ny = 20

## matrix with cell values
data = np.zeros((nx, ny))

fig = plt.figure()
im = plt.imshow(data, cmap = 'gist_gray_r', vmin = 0, vmax = 1)

def init():
    im.set_data(np.zeros((nx, ny)))

## changes one random cell at a time.
def animate(i):
    xi = randint(0, nx - 1)
    yi = randint(0, ny - 1)
    data[xi, yi] = uniform(0, 1)
    im.set_data(data)
    return im


anim = animation.FuncAnimation(
    fig,
    animate,
    init_func = init,
    frames = 100,
    interval = 50)

plt.show()
 

Black Rose

An unbreakable bond
Local time
Today 4:31 PM
Joined
Apr 4, 2010
Messages
11,431
-->
Location
with mama
I tried to do my program in Python in 2015 but I could not make the GUI work.

Since I completed the Java program in 2023 I no longer need to do it the same as I did before, it was just an experiment. I do not need to transfer it to Python code.

The reason I switched to Python again is because that is the standard for machine learning right now. Ony that no tools exist I can use in the way I think. I do not think the same as other people so I cannot find the right tools. No tools exist where I can just input my data sets and do experiments? Those tools cost money and are only available via cloud platforms.

Anyway, here is the Python program I tried to make in 2015.

python ai:
import random

def j():
  return random.randrange(0, 10000, 1)

def p():
  return random.randrange(0, 255, 1)

node_state = []
def set_node_state():
    node_state = []
    for i in range(1, 10000):
        node_state[i] = 0

input_x = []
output_x = []
def set_input_x(input_x):
    for i in range(1, 100):
        input_x[i] = (1 / 256) * p()
    return input_x

input_node_set = []
output_node_set = []
def input_output():
    for i in range(0, 100):
        input_node_set[i] = j()
        output_node_set[i] = j()

cset = []
def set_csets(cset):
    for i in range(0, 100):
        cset[i] = j()
    return cset

connection_set1 = []
connection_set2 = []
def set_connection_sets():
    for i in range(0, 10000):
        cset = []
        connection_set1.append(set_csets(cset))
        cset = []
        connection_set2.append(set_csets(cset))

def thalamus():
    modulation = 0
    for i in range(0, 10000):
        modulation += node_state[i]

    modulation = modulation / 10000

    for i in range(0, 100):
        input_x = []
        node_state[input_node_set[i]] = (set_input_x(input_x[i]) + modulation) / 2
        output_x[i] = (node_state[output_node_set[i]] + modulation) / 2
        node_state[output_node_set[i]] = (node_state[output_node_set[i]] + modulation) / 2

def cortex():
    sum1 = []
    sum2 = []
    connection_values1 = []
    connection_values2 = []
    new_node_state1 = []
    new_node_state2 = []

    for i in range(1, 10000):
        for q in range(1, 100):
            connection_values1[i] += node_state[connection_set1[i:[q]]]

    for i in range(1, 10000):
        for q in range(1, 100):
            connection_values2[i] += node_state[connection_set2[i:[q]]]

    for i in range(0, 10000):
        sum1[i] = connection_values1[i] / 100
        sum2[i] = connection_values2[i] / 100
        new_node_state1[i] = sum1[i] / sum2[i]
        new_node_state2[i] = sum2[i] / sum1[i]

    for i in range(1, 10000):
        for q in range(1, 100):
            if (sum1[i] / node_state[connection_set1[i:[q]]]) < new_node_state1[i]:
                connection_set1[i:[q]] = j()

    for i in range(1, 10000):
        for q in range(1, 100):
            if (sum2[i] / node_state[connection_set2[i:[q]]]) < new_node_state2[i]:
                connection_set2[i:[q]] = j()

    for i in range(0, 10000):
        node_state[i] = (new_node_state1[i] + new_node_state2[i]) / 2
 

dr froyd

__________________________________________________
Local time
Today 11:31 PM
Joined
Jan 26, 2015
Messages
1,335
-->
well it looks like you already have a good start, just keep going

there's like a gazillion machine-learning libraries you can install on your machine and run on whatever data you like. Most of of them take a few minutes/hours to train on any moderately sized dataset (like a few million datapoints). There's no need for cloud machines unless you have like terrabytes of data and need to to do distributed computing
 

Grayman

Soul Shade
Local time
Today 3:31 PM
Joined
Jan 8, 2013
Messages
4,417
-->
Location
You basement
Why not just use Microsoft Visual Studio? It's free, supports multiple languages and can make cross platform applications so that you can use them on your phone, desktop etc...
Also since it's so widely used you will find a lot of helpful examples online. Bing search engine is especially targeted rmto finding code via visual studio.


Also it integrates well with SQL if you need a database. It also works well with azure.
 

Grayman

Soul Shade
Local time
Today 3:31 PM
Joined
Jan 8, 2013
Messages
4,417
-->
Location
You basement
I tried to use NetBeans 20 for Java on my computer.

No programs I made worked, windows said: virus detected.

So I had to uninstall Java.
I've had Java on my PC since it came out, and it never said that.

Plenty of IDEs for Windows.
Eclipse for Java is a popular one.
You can install Visual Studio and then Java in Visual Studio.

Both are free. However, they have to make money to exist. So they encourage you to use the paid version, by offering much better features in the paid versions.

So you have to put in some effort. There's a learning curve, and sometimes things happen that are unexpected.

You don't even need an IDE: you can just edit files in Notepad and use a cmd window to run code.

Or you can install Notepad++ which is great for editing, and then use a cmd window.

Basic stuff where I can create my own libraries.
Creating your own libraries is seriously advanced coding. That comes later, when you've become an experienced coder.

First learn to code, and then do projects without your own libraries.

I cannot use Java, not at all.
Coding takes a lot of thinking, a lot of remembering, and a lot of mental effort. If you want to learn to code, you need to get your brain used to solving several puzzles every day.

I suggest you start by attempting to solve a puzzle for 10 minutes a day.
Then move on to 20 minutes.
Then longer, and longer, until you enjoy solving puzzles and you can do them all day long.

Or, look at coding as solving puzzles.

Or use a different language.

The interface is the most important part.
It usually is for everyone.

I need to input and output files.

I need to do things with files the size of 2 gigabytes
That's the maximum a modern computer can handle. You'll probably need to only read tiny parts of those files at a time.

Anyway, using files that size will probably crash most computers after a short time. I recommend breaking those files up into lots of smaller files.

and 2 trillion ops.
Modern CPUs that run at 2GHz, can do 2 billion ops a second. So then your code would need to run for 500 seconds, or 8 minutes and 20 seconds.

I don't think making your own libraries is advanced coding just good organization. VS practically makes them for you anyway, and you can include them in other code easily.

But if we are talking about native coding VS just simple class libraries maybe that's the difference.
 

scorpiomover

The little professor
Local time
Today 11:31 PM
Joined
May 3, 2011
Messages
3,341
-->
I don't think making your own libraries is advanced coding just good organization. VS practically makes them for you anyway, and you can include them in other code easily.
Visual Studio doesn't give much of an advantage by writing your own libraries, for a few reasons:

1) VS doesn't really use libraries anymore. Everything is done using packages. Instead of adding a reference to a library, you install the packages into each project, which copies all the code into your project folder.

2) VS allows you to easily open Windows Explorer, and simply copy the code files into your project folder. It even lets you copy entire folders into the project folder. VS then auto-detects the extra files and automatically includes them.

You only need to either amend the code files to change the namespace, or add a "using" statement at the top of the files where you use the functions, which is much easier and quicker to write, than actually writing the function calls themselves.

3) VS keeps updating the frameworks so often, that if you've written some code 6 months ago, your code generates errors because it references functions that have already been deprecated. So you end up having to re-write a lot of the code for your new project anyway. There's no point in re-writing the code in the old library, because then your old project won't work unless you re-write the function calls in the old project. So it's almost like you have to re-import the old code and then amend it in the new project.

So unless you want to upload your library to Github and open it up for public use for everyone to use, there's no real advantage to writing your own libraries anymore.

Well, that has been my experience, anyway.

But if you have something to add to that, that I don't know or realise, feel free to correct me, as then I will have learned something that might be useful to me later on.

But if we are talking about native coding VS just simple class libraries maybe that's the difference.
Native coding is too much of a pain with something like VS. It would make the code too dependent on an exact CPU and other OS calls. I've had major problems with that before, like code that only works on x86 chips, but won't work on x64 chips, especially since VS 2019 allows code for x86 chips AND x64 chips, but VS 2022 only allows code for x64 chips.

Native coding is good for coding for microcomputers like the ESP32 and Arduino. But it's not good for modern PCs, not anymore.

I could see the advantage if you want to write in assembler for very high performance. But you have to be really clever for that, especially with the complexity of instruction sets for modern CPUs, and there's a HUGE amount to learn when it comes to modern instruction sets. VERY complicated.
 

dr froyd

__________________________________________________
Local time
Today 11:31 PM
Joined
Jan 26, 2015
Messages
1,335
-->
using IDEs (like VS) is like you trying to learn to walk but then someone puts you in a wheelchair and drives you around in it. It looks so easy and efficient at first, but then later you realize you have no clue how to walk and that you need a wheelchair to do even the most basic things
 

scorpiomover

The little professor
Local time
Today 11:31 PM
Joined
May 3, 2011
Messages
3,341
-->
using IDEs (like VS) is like you trying to learn to walk but then someone puts you in a wheelchair and drives you around in it. It looks so easy and efficient at first, but then later you realize you have no clue how to walk and that you need a wheelchair to do even the most basic things
When I first started with BASIC, BASIC came with command-line tools on the ZX81 and the BBC micro. But that was back in the 1980s.

Then when I downloaded Java in the 1990s, that came with command-line tools.

But all the programming languages that I have downloaded for the last 20 years, have all been IDEs. Command-line tools were offered a few years later, which turned out to be wrappers for the IDE code.

So it's like humans were walking on roads for the past 200,000 years, but in the last 20 years, all the roads were re-paved and re-designed so you need a wheelchair to use them, and even the roads that have options for walkers, still require a zimmer-frame on wheels attached to your legs that acts as a glorified wheelchair anyway.
 
Top Bottom