Isaiah 5:20-30 King James Version (KJV)

20 Woe unto them that call evil good, and good evil; that put darkness for light, and light for darkness; that put bitter for sweet, and sweet for bitter!

21 Woe unto them that are wise in their own eyes, and prudent in their own sight!

22 Woe unto them that are mighty to drink wine, and men of strength to mingle strong drink:

23 Which justify the wicked for reward, and take away the righteousness of the righteous from him!

24 Therefore as the fire devoureth the stubble, and the flame consumeth the chaff, so their root shall be as rottenness, and their blossom shall go up as dust: because they have cast away the law of the Lord of hosts, and despised the word of the Holy One of Israel.

25 Therefore is the anger of the Lord kindled against his people, and he hath stretched forth his hand against them, and hath smitten them: and the hills did tremble, and their carcases were torn in the midst of the streets. For all this his anger is not turned away, but his hand is stretched out still.

26 And he will lift up an ensign to the nations from far, and will hiss unto them from the end of the earth: and, behold, they shall come with speed swiftly:

27 None shall be weary nor stumble among them; none shall slumber nor sleep; neither shall the girdle of their loins be loosed, nor the latchet of their shoes be broken:

28 Whose arrows are sharp, and all their bows bent, their horses’ hoofs shall be counted like flint, and their wheels like a whirlwind:

29 Their roaring shall be like a lion, they shall roar like young lions: yea, they shall roar, and lay hold of the prey, and shall carry it away safe, and none shall deliver it.

30 And in that day they shall roar against them like the roaring of the sea: and if one look unto the land, behold darkness and sorrow, and the light is darkened in the heavens thereof.

trimming it down

Sovereign Immunity cannot exist in the United States. If it does, then there is no United States.

Constructive Possession is a self-explanatory lie. The name itself demonstrates that the concept of possession has been fabricated and is not actually a fact…

If a government entity/employee commits a crime, being held to a supposedly higher standard as a public servant, why are they punished lighter, not at all, or most commonly, rewarded for their misdeeds? If you’re being held to a higher standard, then you would have to suffer a harsher penalty for the same crime as us mere mortals… But, the opposite of that is what happens.

If the judges keep letting them off, and prosecutors don’t bring charges against their own (to further their judicial slow-burn sedition) for breaking the law, but still applying it to us; there is no law.

The whole point of the Bill of Rights is to place The People above The State. There is no such thing as a (compelling) state interest that is above the Bill of Rights (and definitely not some pansy “Officer Safety” bullshit). Period. Deny this, there is no Bill of Rights.

Failing this order of things, there is no law, there is no United States.

If they don’t have to obey the law, and suffer no consequence for violating it, why should anyone else?

A nation of laws? Bullshit!

This is why cops get shot, and they absolutely deserve it.

This is why the markedly unintelligent with a certain brand of sadistic perversion are chosen and molded as cops. It’s not training, it’s controlled sociopathy. They don’t bother to think through the consequences of doing whatever an America-hating seditious judge will let them get away with. All they care about is their sadistic appetites, and knowing they’ll get away with it no matter what. They have no clue that the judges are using it to dismantle everything that made this country great.

Do fish question water? Of course not. It’s not that they don’t care. They’re just such dumb animals that they can’t grasp the concept to care about it… They can’t care, they don’t know how. They’re mental defectives. Developmentally stunted.

Let me put on my tinfoil hat for a second…

You ever notice the turning point in evil police, and the dismantling of insane asylums, occurred at just about the same time? It’s hard to hire these freaks and give them a badge, gun, and license to kill; if they’re sedated in a padded room where they belong….

These so-called “people” should be chemically castrated, lobotomized, heavily sedated, and kept away from the general population. Instead, our government grants them soveriegn immunity, a wink wink, nudge nudge, and declares them heroes every time they indulge in their sicknesses.

Continue to set them loose on the public, the public are gonna get pissed and start killing them. Perfect excuse to push the gun ban propaganda, eh?

Conservative gun-owners are morons for worshipping cops. Who do they think will perform the confiscation raids?

I can’t vote Republitard anymore. Backstabbing, dumb as shit, moral cowards. Fuck the NRA, too.

Those who make peaceful redress impossible, make violent redress inevitable.

Build those memorials taller, boys. You’re gonna need room for more names… I have no pity for the traitors in blue, or their mourning families. This is what you get for betraying The People you swore an oath to serve and protect. Reap it.

Cops aren’t heroes. They’re (mostly unwitting) collaborators in the judiciary’s plot of slow-burn sedition.

Thoughts on Python3 so far…

I think most of my complaints/frustrations can be summed up in one notion.

I’m accustomed to very literal (CnC/GCode) and very low-level/basic programming languages (PICAXE, Parallax STAMP).

While some of these are remedial in nature, that’s not the source of my frustration.

Python is very, shall we say, flexible. Reality is that it’s been made sloppy to assist the snowflake generation in having a programming language. There are many ways to do the same thing. Some being more “Pythonic” than others. To my mind, the “most Pythonic” option is the one, true option (everyone else is an apostate, so nyah). No, not because I’m a purist, as the snowflakes might contend, but because the path of least bullshit (observer, endured, or generated) is the only acceptable path.

Amiga. PICAXE. Parallax STAMP. CnC machines designed/invented in the 60s/70s.

These all have (very) limited resources. You have to use methods of maximum cleverness and resourcefulness. You can’t afford to waste space, memory, or clock cycles. Before you write a single line of code, you’ve already got not enough of everything… You can’t be stupid or wasteful if you want your project to exist at all.

The primary reason for code bloat (and bad performance) is that newer, snowflake-targeted languages don’t require this. Computing hardware has advanced hundreds of orders of magnitude.

Just as snowflakes live the rest of their lives; inside the box of magic wires, they assume entitlement to inexhaustible resources which can, and should, be squandered flippantly.

…and this they do, with deliberate abandon…

Which is why the infinitely more powerful computers of today are slower and less useful in spite of being infinitely faster, with storage and RAM wildly in excess.

Want to #LearnToCode? Most “tutorials” have become backwards epeen brags from people who just barely know enough to speak on the subject. Documentation is sparse, inaccurate, sloppy, illiterate (sometimes due to the writer’s first language being non-English, which is entirely understandable), outdated, or usually, nonexistent. It’s very hard to learn from people who know next to nothing themselves, but put themselves up as experts just to brag…

The only saving grace is the IoT. Let me be clear, I hate the Internet of Things. But, tiny, embedded computers have forced a revival of actually knowing what the fuck you’re doing, kinda… If the Raspberry Pi hadn’t come along, I’d have likely become a voluntary neophyte.

The monumental mess that the snowflake generation has made from using, but absolutely never understanding (often outright refusing to learn), technology, is monumental. Imagine what else they’ll fuck up… The sky is the limit!

I learned, and very much prefer, the stringent rules and limited options of older technology. It forced intelligence and understanding. Retards simply couldn’t hack it (no pun/dad joke intended).

Much like the Internet at large…

Back in the 1990s, you had to have at least 3/4 of a brain to get on the Internet. Any form of socializing done on the Internet (including online dating) had an automatic filter that kept the trash out. Too stupid/trashy to Internet? Access Denied!

Apple reinvented their brand as a gateway to technology for the morbidly stupid. Android followed suit. The “Internet Appliance” of yesteryear became smartphones and tablets. We used to laugh at AOL and it’s users as the enclave of retards we’re glad aren’t smart enough to escape AOL’s platform…

Thanks to Apple, and after that, Google; brainless trash have infiltrated, taken over, and spread like the pestilence that they are… Facebook. Twitter. Snapchat. Instagram. Reddit. Social Media is Cancer. A monument to useless degeneracy, Humanity’s chronic race to the bottom…

“Platforms” that enable the lazy, stupid trash to do what they otherwise couldn’t… With those natural barriers torn down, the human race is doomed.

some crap with which I’ve been fooling around…

joystickclient.py:

import os
import struct
import array
import socket
import sys

from fcntl import ioctl

try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error:
    print("Failed to connect")
    sys.exit();

print("Socket Created")

remote_ip = [REDACTED]
port = [REDACTED]

print("IP Address: " + remote_ip)

s.connect((remote_ip, port))

print("Socket Connected to " + remote_ip)

#s.close()

# We'll store the states here.
axis_states = {}
button_states = {}

axis_names = {
    0x00 : 'x',
    0x01 : 'y',
    0x05 : 'z',
    0x06 : 'd',
    0x10 : 'hx',
    0x11 : 'hy',
}

button_names = {
    0x120 : 'tr',
    0x121 : 'th',
    0x122 : 't1',
    0x123 : 't2',
    0x124 : 't3',
    0x125 : 't4',
    0x126 : 'b1',
    0x127 : 'b2',
    0x128 : 'b3',
    0x129 : 'b4',
    0x12a : 'b5',
    0x12b : 'b6',
}

axis_map = []
button_map = []

# Open the joystick device.
js = '/dev/input/js0'
jsdev = open(js, 'rb')

# Get number of axes and buttons.
buf = array.array('B', [0])
ioctl(jsdev, 0x80016a11, buf)
num_axes = buf[0]

buf = array.array('B', [0])
ioctl(jsdev, 0x80016a12, buf)
num_buttons = buf[0]

# Get the axis map.
buf = array.array('B', [0] * 0x40)
ioctl(jsdev, 0x80406a32, buf)

for axis in buf[:num_axes]:
    axis_name = axis_names.get(axis, 'unknown(0x%02x)' % axis)
    axis_map.append(axis_name)
    axis_states[axis_name] = 0.0

# Get the button map.
buf = array.array('H', [0] * 200)
ioctl(jsdev, 0x80406a34, buf)

for btn in buf[:num_buttons]:
    btn_name = button_names.get(btn, 'unknown(0x%03x)' % btn)
    button_map.append(btn_name)
    button_states[btn_name] = 0

# Main event loop
while True:
    evbuf = jsdev.read(8)
    if evbuf:
        time, value, type, number = struct.unpack('IhBB', evbuf)

        if type & 0x01:
            button = button_map[number]
            if button:
                button_states[button] = value
                if value:
                    plaintext = button + ":1|"
                    s.send(plaintext.encode())
                    #print(plaintext[:-1])
                else:
                    plaintext = button + ":0|"
                    s.send(plaintext.encode())
                    #print(plaintext[:-1])

        if type & 0x02:
            axis = axis_map[number]
            if axis:
                axis_states[axis] = value
                plaintext = "%s:%i|" % (axis, value)
                s.send(plaintext.encode())
                #print(plaintext[:-1])

stepperserver.py:


import socket
import sys
import Slush
import RPi.GPIO as GPIO

GPIO.setwarnings(False)

# SlushEngine Setup
SlushEngine = Slush.sBoard()

maxspeed = 900

# Motor for X Axis
mx = Slush.Motor(0)
mx.setMicroSteps(1)
mx.setCurrent(25, 25, 25, 35)
mx.setMaxSpeed(maxspeed)
mx.setAccel(13000)
mx.setDecel(13000)

# Motor for Y Axis
my = Slush.Motor(1)
my.setMicroSteps(1)
my.setCurrent(25, 25, 25, 35)
my.setMaxSpeed(maxspeed)
my.setAccel(13000)
my.setDecel(13000)

host = [REDACTED]
port = [REDACTED]

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

print("socket created")

try:
    s.bind((host, port))
except socket.error:
    print("Binding failed: " + socket.error);
    sys.exit();

print("socket binding successful")

s.listen(10)

print("socket is ready")

conn, addr = s.accept()

print("remote connected using " + addr[0] + ":" + str(addr[1]))

while 1:
    data = conn.recv(16384)
    data = data.decode()
    data = data[:-1]
    if "|" in data:
        #print("BUFFER LOADED --> " + data + " <-- BUFFER LOADED")
        overload = data.split("|")
        for item in overload:
            #print(item)
            if item[0] == "x":
                xdata = item.split(":")
                if int(xdata[1]) > 0:
                    mx.run(1, int(xdata[1]) / 32767 * maxspeed)
                if int(xdata[1]) < 0:
                    mx.run(0, abs(int(xdata[1])) / 32767 * maxspeed)
                if int(xdata[1]) == 0:
                    mx.softStop()
            if item[0] == "y":
                ydata = item.split(":")
                if int(ydata[1]) > 0:
                    my.run(1, int(ydata[1]) / 32767 * maxspeed)
                if int(ydata[1]) < 0:
                    my.run(0, abs(int(ydata[1])) / 32767 * maxspeed)
                if int(ydata[1]) == 0:
                    my.softStop()
    else:
        #print(data)
        if data[0] == "x":
            xdata = data.split(":")
            if int(xdata[1]) > 0:
                mx.run(1, int(xdata[1]) / 32767 * maxspeed)
            if int(xdata[1]) < 0:
                mx.run(0, abs(int(xdata[1])) / 32767 * maxspeed)
            if int(xdata[1]) == 0:
                mx.softStop()
        if data[0] == "y":
            ydata = data.split(":")
            if int(ydata[1]) > 0:
                my.run(1, int(ydata[1]) / 32767 * maxspeed)
            if int(ydata[1]) < 0:
                my.run(0, abs(int(ydata[1])) / 32767 * maxspeed)
            if int(ydata[1]) == 0:
                my.softStop()

    if not data:
        break;

conn.close()
s.close()

hardware:

https://www.amazon.com/Extreme-3D-Pro-Joystick-Windows/dp/B00009OY9U?SubscriptionId=AKIAILSHYYTFIVPWUY6Q&tag=duckduckgo-d-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B00009OY9U

https://www.amazon.com/Stepper-Bipolar-Printer-Router-Kelife/dp/B07GNX76VD/ref=sr_1_3?keywords=4pcs+CNC+Stepper+Motor+Nema+17&qid=1556578656&s=gateway&sr=8-3
https://www.amazon.com/Stepping-Motor-Stepper-Bipolar-Printer/dp/B077HSYXZD/ref=sr_1_5?keywords=Stepper+Motor+Nema+17%2C+5pcs+Bipolar&qid=1556578741&s=gateway&sr=8-5

https://roboteurs.com/collections/drivers/products/slushengine-raspberry-pi-hat-stepper-motor-driver

https://www.amazon.com/MENZO-Universal-Regulated-Switching-Computer/dp/B06VWV5YCH/ref=sr_1_fkmrnull_2?keywords=menzo+12v+30a+dc+universal+regulated&qid=1556578814&s=gateway&sr=8-2-fkmrnull

bits and pieces shamelessly plagiarized from:

https://gist.github.com/rdb/8864666

https://github.com/Roboteurs/slushengine/tree/master/examples
https://roboteurs.com/pages/slushengine-advanced-current-driving-of-stepper-motors
https://roboteurs.com/pages/slushengine-moving-a-motor-at-diffrent-speeds
https://roboteurs.com/pages/slushengine-moving-multiple-stepper-motos-at-once-with-raspberry-pi
https://roboteurs.com/pages/slushengine-advance-motor-configuration