Sunday, March 14, 2021

Internet doesn't have to be awful

"This way of thinking has some distinct advantages. Right now companies fight intensely to retain their exemption from “intermediary liability,” guaranteed to them by the now-infamous Section 230 of the Communications Decency Act. This frees them from legal responsibility for nearly all content posted on their platform. Yet striking down Section 230 could mean that the companies will either be sued out of existence or start taking down swaths of content to avoid being sued. Focusing on regulating algorithms, by contrast, would mean that companies wouldn’t be liable for each tiny piece of content, but would have legal responsibility for how their products distribute and amplify material. This is, after all, what these companies actually do: organize, target, and magnify other people’s content and data. Shouldn’t they take responsibility for that?"

https://www.theatlantic.com/magazine/archive/2021/04/the-internet-doesnt-have-to-be-awful/618079/

Sunday, January 17, 2021

Equifax doesn't actually send yearly credit reports

Equifax doesn't actually send an annual credit report. What they will send is a credit report if it has been 365 days since the last time they sent an annual credit report, and since they will not send it on a weekend, if you order one on the same day, you will not always get it if you ask for it on the exact same day.  So some years you actually have to wait more than one year for their "annual" credit year. For me, this year I got a letter from them "We received your request for a copy of your annual free credit report from Equifax. However, our records indicate that a free copy already has been sent to you in the past 12 months." This is BS since I requested it last year on January 1, 2020, and I ordered it this year on January 1, 2021.  (Experian and Transunion do not have this problem.)
Another comment is that it would be better for consumers if the law just required sending a credit report every year instead of every 365 days.

Friday, December 4, 2020

circuitpython example with text

Now with some text as well (and I grant this python code to the public domain as well.)

import time

import board
import displayio
import digitalio

import vectorio
import gamepadshift
import terminalio

BUTTON_LEFT = 128
BUTTON_UP = 64
BUTTON_DOWN = 32
BUTTON_RIGHT = 16
BUTTON_SELECT = 8
BUTTON_START = 4
BUTTON_A = 2
BUTTON_B = 1

print('About to begin.')
for i in range(3,0,-1):
    print(i)
    time.sleep(0.2)


circle = vectorio.Circle(10)
circle2 = vectorio.Circle(6)

display = board.DISPLAY

palette = displayio.Palette(2)
palette[0] = 0x000000
palette[1] = 0xFFFFFF
palette.make_transparent(0)

def get_char_tile(c, x, y):
    g = terminalio.FONT.get_glyph(ord(c))
    tile = displayio.TileGrid(g.bitmap, pixel_shader=palette,  tile_width=g.width, tile_height=g.height, default_tile=g.tile_index, x=x, y=y)
    return tile

def get_string_group(s, x, y):
    text_w, text_h = terminalio.FONT.get_bounding_box()
    group = displayio.Group(max_size=len(s))
    for i, c in enumerate(s):
        group.append(get_char_tile(c, x+text_w*i, y))
    return group


palette2 = displayio.Palette(2)
palette2[0] = 0xFF0000
palette2[1] = 0x0000FF
palette2.make_transparent(0)

vect = vectorio.VectorShape(shape=circle, pixel_shader=palette)
vect2 = vectorio.VectorShape(shape=circle2, pixel_shader=palette2, x=5, y=-5)
s = get_string_group("Hey World!",15,0)
vect3 = vectorio.VectorShape(shape=vectorio.Rectangle(2, 10), pixel_shader=palette2)

move_group = displayio.Group()
move_group.append(vect)
move_group.append(vect2)
group = displayio.Group()
group.append(move_group)
group.append(s)
group.append(vect3)


display.show(group)
#display.show(group2)

group.x = 20
group.y = 20

pad = gamepadshift.GamePadShift(digitalio.DigitalInOut(board.BUTTON_CLOCK),
                                digitalio.DigitalInOut(board.BUTTON_OUT),
                                digitalio.DigitalInOut(board.BUTTON_LATCH))
button = 0
while button != BUTTON_START:
    button = pad.get_pressed()
    if button & BUTTON_UP == BUTTON_UP:
        move_group.y += -1
    if button & BUTTON_DOWN == BUTTON_DOWN:
        move_group.y += 1
    if button & BUTTON_LEFT == BUTTON_LEFT:
        move_group.x += -1
    if button & BUTTON_RIGHT == BUTTON_RIGHT:
        move_group.x += 1
    time.sleep(0.01)
    move_group.x %= display.width
    move_group.y %= display.height


Simple pybadge circuitpython code example

I just got a pybadge, and I was trying to find an example that used the display but only used the core libraries. I couldn't find one, so here it is. I grant this code to the public domain.

import time

import board
import displayio
import digitalio

import vectorio
import gamepadshift

BUTTON_LEFT = 128
BUTTON_UP = 64
BUTTON_DOWN = 32
BUTTON_RIGHT = 16
BUTTON_SELECT = 8
BUTTON_START = 4
BUTTON_A = 2
BUTTON_B = 1

print('About to begin.')
for i in range(3,0,-1):
    print(i)
    time.sleep(0.2)

circle = vectorio.Circle(10)
circle2 = vectorio.Circle(6)

palette = displayio.Palette(2)
palette[0] = 0x000000
palette[1] = 0xFFFFFF
palette.make_transparent(0)
palette2 = displayio.Palette(2)
palette2[0] = 0xFF0000
palette2[1] = 0x0000FF
palette2.make_transparent(0)

vect = vectorio.VectorShape(shape=circle, pixel_shader=palette)
vect2 = vectorio.VectorShape(shape=circle2, pixel_shader=palette2, x=5, y=-5)

group = displayio.Group()
group.append(vect)
group.append(vect2)
display = board.DISPLAY

display.show(group)

group.x = 20
group.y = 20

pad = gamepadshift.GamePadShift(digitalio.DigitalInOut(board.BUTTON_CLOCK),
                                digitalio.DigitalInOut(board.BUTTON_OUT),
                                digitalio.DigitalInOut(board.BUTTON_LATCH))
button = 0
while button != BUTTON_START:
    button = pad.get_pressed()
    if button == BUTTON_UP:
        group.y += -1
    elif button == BUTTON_DOWN:
        group.y += 1
    elif button == BUTTON_LEFT:
        group.x += -1
    elif button == BUTTON_RIGHT:
        group.x += 1
    time.sleep(0.01)
    group.x %= display.width
    group.y %= display.height

  

Sunday, November 8, 2020

How Trump Changed America

 "Seeking to understand rather than be understood requires a suppression of ego that takes practice. Lots of us are out of practice."

https://fivethirtyeight.com/features/how-trump-changed-america/