9,000th post milestone 4/22/2021

This is just a post for myself as a marker for my 9,000th post. It only took 8 years and 11 months. As far as I remember, each post was to answer a question or to post something useful. At least I hope it was useful. I wasn’t posting just to build up my post count. Hopefully me and Codea will be around for another 9,000 posts.

obligatory “it’s over 9000!!!” meme

@skar Nice meme.

Congratulations!

@dave1707 - well done and thanks. Have you worked out how much time you’ve spent/contributed to the forum? How many projects you’ve made, pads you’ve used, recharges made (batteries replaced) and , as in my case, hair you’ve lost pulling it out in frustration. - thanks again we need the support.

Dear Dave Thank you very much for your 9000 contributions. I’m 90 years old and I am happy every time a contribution starts with Dave. I learned a lot from it. One question, how old are you?

@dave1707 putting me to shame - I also joined in May 2012, but have only managed a meagre 801 posts! Thanks for all your support on the forums over this time!

@matox WOW, 90, that’s great. I hope to make it there some day. I’m 74 and been coding since I was about 25. I started on a programmable calculator and eventually switched at work from a computer operator to programming. The first time I got into windows type programming was on an HP Jornada 540 Pocket PC that I picked up second hand somewhere for a few dollars. I was able to put Pocket C on it and was able to write C code to create windows type buttons and stuff. It still works and I pull it out every now and then to play with it. I tried to post a picture of it, but the pic is too big to post.

PS. Here’s a picture. It’s not too good because I had to cut the resolution so it would post.

@dave1707 - ditto !!!

@Bri_G I mentioned somewhere else that I only code while watching TV. With the iPad sitting next to me, I’ll normally pick it up and check the forum during a TV commercial. If someone needs something answered, I’ll usually key something. If the TV show isn’t that interesting or I can’t find anything else worthwhile to watch, I’ll start writing code while loosely watching whatever is on. Codea is always the highest % app that I use.

@Bri_G We’re you able to do any programming on your Pocket PC.

@dave1707 - to be honest with you I can’t remember what I did beyond the diary, contacts and calculations. I was using database software to record work progress and toxicity classification data at the time, can’t remember what packages. Need to power it up to check.

@Bri_G Here’s a better image of my Pocket PC showing a program with input areas and buttons. I wrote this to list every file on the device based on what I keyed in to search for. This was a lot of fun to program on. But then the iPad came along and Codea.

PS. I have a 1 GB compact flash card in it for more memory. I’m not sure how big of a compact flash card it will support.

PSS. Pocket C wasn’t included on the Jornada. I got it off the internet and installed it on there.

@dave1707 I had that exact same model Pocket PC, HP Jornada 540. I remember playing Solitaire on it mostly!

Congratulations on your 9,000th post!

@Simeon I played Solitaire on it a lot also. There wasn’t too much other things that I did on it until I loaded Pocket C. After that the only thing I did on it was write code.

@dave1707 this may be an impossible question to answer, but what’s been your favorite of all the things you’ve posted?

If it’s too hard to choose just one, which ones are in the running?

I kind of like this one, it’s fun to watch. I also liked writing the code to calculate digits of Pi. I was able to calculate and print 250,000 digits of Pi. It took 340 seconds.

PS. In 1966 it took 28 hours to calculate 250,000 digits on an IBM 7030 computer.

viewer.mode=FULLSCREEN

function setup()
    x1=20
    y1=30
    local tTab={} 
    local xs=1/(x1-1)
    local ys=1/(y1-1)
    for x=0,x1-2 do
        for y=0,y1-2 do
            table.insert(tTab,vec2(x*xs,y*ys))
            table.insert(tTab,vec2(x*xs+xs,y*ys))
            table.insert(tTab,vec2(x*xs+xs,y*ys+ys))            
            table.insert(tTab,vec2(x*xs,y*ys))
            table.insert(tTab,vec2(x*xs,y*ys+ys))
            table.insert(tTab,vec2(x*xs+xs,y*ys+ys))
        end
    end
    local size=30
    dx,dy=0,0
    tab={}
    for x=1,x1 do
        tab[x]={}
        for y=y1,1,-1 do
            local r=physics.body(CIRCLE,0)
            r.x=100+x*size
            r.y=y*size
            r.gravityScale=.5
            if x==1 and y==y1 then
                r.type=STATIC
            end 
            if y==y1 then 
                r.type=STATIC
            end
            tab[x][y]=r
            r=nil
        end
    end
    jVert={}
    for x=1,x1 do
        for y=2,y1 do
            local j=physics.joint(ROPE,tab[x][y-1],tab[x][y],
                tab[x][y-1].position,tab[x][y].position,size)
            table.insert(jVert,j)
            j=nil
        end
    end
    jHorz={}
    for x=2,x1 do
        for y=1,y1 do
            local j=physics.joint(ROPE,tab[x-1][y],tab[x][y],
                tab[x-1][y].position,tab[x][y].position,size)
            table.insert(jHorz,j)
            j=nil
        end
    end  
    m=mesh()
    m.texCoords=tTab
    m.texture="Cargo Bot:Startup Screen"   
    m.vertices=tTab
    buf=m:buffer("position")
end

function draw()
    background(192, 224, 225, 255)
    fill(255)
    stroke(0, 161, 255, 255)
    strokeWidth(2)
    local n=1
    for x=1,x1-1 do
        for y=1,y1-1 do
            buf[n]=vec2(tab[x][y].x,tab[x][y].y)
            buf[n+1]=vec2(tab[x+1][y].x,tab[x+1][y].y)
            buf[n+2]=vec2(tab[x+1][y+1].x,tab[x+1][y+1].y)                              
            buf[n+3]=vec2(tab[x][y].x,tab[x][y].y)
            buf[n+4]=vec2(tab[x][y+1].x,tab[x][y+1].y)
            buf[n+5]=vec2(tab[x+1][y+1].x,tab[x+1][y+1].y) 
            n=n+6           
        end
    end  
    m:draw()
    pushStyle()
    stroke(255,0,0)
    fill(255,0,0)
    ellipse(tab[1][y1].x,tab[1][y1].y,10)
    text("Cloth example",WIDTH/2,HEIGHT-10)
    text("Slide your finger to move the red dot",WIDTH/2,HEIGHT-40)
    text("Rate  "..1/DeltaTime//1,WIDTH/2,HEIGHT-70)
    text("KB Memory used  "..collectgarbage("count")//1,WIDTH/2,HEIGHT-100)
    popStyle()
end

function touched(t)
    if t.state==MOVING then
        for z=1,x1-1 do
            tab[z][y1].type=DYNAMIC
        end
        dx=dx+t.deltaX*100
        dy=dy+t.deltaY*100
        tab[1][y1].linearVelocity=vec2(dx,dy)
    end
    if t.state==ENDED then
        dx,dy=0,0
        tab[1][y1].type=STATIC
    end    
end

I agree, that’s fun to watch. The original settings didn’t fully work for iPhone, because I couldn’t see the red dot, so I’m attaching a version where the red dot’s visible on iPhones. I just clumsily adjusted the first couple variables until I could see what was going on—I’m sure there’s a better way to do it though.