Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - spoon

Pages: [1] 2 3 ... 17  Next >
1
Philosophy, Religion & Society / Re: 2016 US Presidential Race
« on: October 15, 2016, 12:38:15 AM »
Donallary Trunton ~Versus~ Hillanald Clump

Who wins in an internationally televised rap battle?

2
Arts & Entertainment / Re: Just Watched
« on: January 27, 2016, 05:56:22 AM »
I have been watching Dragonball Z Kai for the past few nights.

Although I didn't expect to enjoy it, I find its universe compelling in a goofy way. 7.5/10

3
Philosophy, Religion & Society / Re: On the notion of Investing
« on: December 23, 2015, 04:33:17 PM »
Man, the crash of 2015 sure hit us hard.
You speak too soon, American spending at Christmas time could literally break the world economy at any moment.

4
Arts & Entertainment / Re: Just Watched
« on: December 23, 2015, 03:07:25 PM »
I have watched the first six seasons of X-Files this semester in preparation for the reboot this january, still got 3 seasons to watch in a month, shouldn't be too bad.

Anyways, I went in with low expectations, not a huge fan of shows you can pick up at any episode in any season, but X-Files isn't exactly that. There are a few plot arcs stretched over top of Scully and Mulder hunting down monsters and murderers. Apparently, this was an accident. It was supposed to just be a "monster of the week" show, but Gillian Anderson got pregnant, and so the writers had to add some depth to the series.

I am now deeply vested in the series, very content with the ratio of plot to non plot episodes. While far from genius, the writing is entertaining enough to keep me coming back. That, and my growing hardon for Gillian Anderson. However, I'm afraid my love for the series will fade much like Scully has in the past 15 years.

8.43/10

5
Arts & Entertainment / Re: Just Watched
« on: June 05, 2015, 10:27:23 AM »
Assault on Precinct 13 (John Carpenter, 1976)

I unfortunately dozed throughout the second half of this movie, but what I remember was good. John Carpenter is bae <3

6
Flat Earth Community / Re: Multiple questions
« on: May 22, 2015, 02:18:03 PM »
http://math.ucr.edu/home/baez/physics/Relativity/SR/acceleration.html

Literally google search "relativity acceleration", you will find countless legit sources. This one isn't long, and it completely supports what jroa said.

7
Flat Earth Theory / Re: Falsification of FET
« on: May 14, 2015, 04:57:32 PM »
I wasn't aware of any.

There definitely are. For example, according to the predicted altitude and size of the FE sun, it should never reach the horizon. On the other site there is a thread that goes through this authored by rottingroom.

You really need to read up on bendy light.

8
Arts & Entertainment / Re: Now Playing (the Video Game Version)
« on: May 14, 2015, 04:53:30 PM »
Tried Dark Souls, died a bunch, stopped.

9
Arts & Entertainment / Re: Just Watched
« on: May 13, 2015, 04:09:03 AM »
Touch of Evil (Orson Welles)

Welles's classic film noir is fucking weird. Everyone stumbles around doing weird shit, Charlton Heston plays a Mexican, Orson Welles garbles ever other line in one of the most bizarre and intentionally off-the-rails performances I've ever seen, and Henry Mancini's score swaggers its way into the action and lingers around like a drunken onlooker. Right from the start, with one of the best tracking shots I've ever seen, I was drawn into the film's strange border world between Mexico and the US, where the people are crazy and Orson Welles is crazier. Easily in the top two best films I've seen so far this year.

I watched the opening shot of that about a week ago. It's incredible. I need to see it.

10
Technology & Information / Re: cool fun programming stuff
« on: May 09, 2015, 09:11:21 PM »
Use Vidle, not Idle.

11
Arts & Entertainment / Re: FES Book Club
« on: May 04, 2015, 06:37:10 PM »
The Children's Blizzard, David Laskin

History written as a novel. Captivating narrative, I learned several ways people could die in the cold.

12
Technology & Information / Re: cool fun programming stuff
« on: May 04, 2015, 05:30:35 AM »
Code: [Select]
from __future__ import division
from visual import *
from random import *
from visual.graph import *

#define constants and other parameters
number = 9 #number of charges
q = 1.6e-19 #1 unit of charge (charge of an electron)
k = 9e9 # k (1/4piEnaught)
rad = 100 #radius of spherical region
shrink = 1.75 #used to make sure all charges begin within the sphere
zero = vector(0,0,0) #used for declaration purposes
electrons = 7e11*(1/number) #puts a lot of charge on each charge carrier
KE = 0 #kinetic energy of the system
t = 0 #time
f1 = gcurve(color=color.cyan) # a graphics curve

#generate translucent spherical region
item1 = sphere(pos = (0,0,0), radius = rad, color = color.white, opacity = .3)

#generate axes for clarity in charge position and depth within the sphere
xaxis = curve(pos = [(-1.5*rad,0,0),(1.5*rad,0,0)], color = color.blue, radius = rad/100)
yaxis = curve(pos = [(0,-1.5*rad,0),(0,1.5*rad,0)], color = color.blue, radius = rad/100)
zaxis = curve(pos = [(0,0,-1.5*rad),(0,0,1.5*rad)], color = color.blue, radius = rad/200)

#Create a list and fill it with charge carriers in random locations in the spherical region.
charges = []
for i in arange(number):
    charges.append(sphere(pos = ((randrange(-rad*100,rad*100)/(shrink*100)),(randrange(-rad*100,rad*100)/(shrink*100)),(randrange(-rad*100,rad*100)/(shrink*100))), radius = rad/33, charge = electrons*q, force = zero, velocity = zero, color = color.red))
#charges[0].charge = *electrons*q

#This list will be used to make arrows and spheres and what have you.
objects = []

#This function is used to find the distance between points, which is needed to calculate electric field. a and b are charge carriers from 'charges'.
def getDistance(a,b):
    distance = mag(charges[a].pos-charges[b].pos)
    return distance

#This function calculates net force. a = which charge is having calculations done on it. b = the charge whose field is contributing a force to a. c = distance from getDistance function.
def getNetForce(a,b,c):
    direction = charges[a].pos - charges[b].pos
    charges[a].force = (((k*charges[b].charge)/(c**2))*norm(direction))
    return charges[a].force

#click to start moving charges
scene.waitfor('click')

#This chunk updates force, velocity, and position for each charge carrier.
for i in arange(number):
    while mag(charges[i].pos) < 2 * rad:
        t = t + 1 #increment time for kinetiv energy graph
        if scene.mouse.clicked: #click to break from loop and draw lines between charges
            break
        for a in arange(number): #This for takes a charge carrier and compares it to...
            for b in arange(number): #... a charge carrier in this loop.
                if a < b: #This if statement gets rid of overlap so the same calculation is not made twice.
                    distance = getDistance(a, b) #get distance between charge carriers
                    charges[a].force = getNetForce(a, b, distance) #get force on a due to b...
                    charges[b].force = getNetForce(b, a, distance) #... and on b due to a
                    #Is this the best way to update velocity?
                    charges[a].velocity = charges[a].velocity + charges[a].force #update...
                    charges[b].velocity = charges[b].velocity + charges[b].force #...velocity
                    sizeA = mag(charges[a].pos) #distance of first charge carrier from center...
                    sizeB = mag(charges[b].pos) #... and the second
       
                    #This makes the charges "bounce off the inside of the wall by using the Rodrigues rotation formula.
                    if sizeA >= rad:
                        charges[a].pos = .999 * rad * norm(charges[a].pos) #moves charge carrier just inside sphere to avoid the charge getting "stuck"
                        posUnit = norm(charges[a].pos) #unit vector in direction of charge position
                        projection = proj(charges[a].velocity, charges[a].pos) #projection of velocity vector onto position vector
                        charges[a].velocity = -.9 *((charges[a].velocity * cos(pi)) + (cross(posUnit, charges[a].velocity) * sin(pi)) + (projection * (1 - cos(pi)))) #Rodrigues' rotation formula
                    if sizeB >= rad:
                        charges[b].pos = .999 * rad * norm(charges[b].pos) #moves charge carrier just inside sphere to avoid the charge getting "stuck"
                        posUnit = norm(charges[b].pos) #unit vector in direction of charge position
                        projection = proj(charges[b].velocity, charges[b].pos) #projection of velocity vector onto position vector
                        charges[b].velocity = -.9 *((charges[b].velocity * cos(pi)) + (cross(posUnit, charges[b].velocity) * sin(pi)) + (projection * (1 - cos(pi)))) #Rodrigues' rotation formula
                       
    #displays force arrow with each update. Change it so old arrows disappear. also traces position with dots.
        #for i in arange(number):
            #objects.append(arrow(pos=charges[i].pos, axis=charges[i].force, color=color.yellow)   
            #objects.append(sphere(pos=charges[i].pos, radius = rad / 50, color=color.yellow, opacity = .1))

        #update position of charges 
        for a in arange(number):
            rate(300)
            charges[a].pos = charges[a].pos + charges[a].velocity
            for i in arange(number):
                KE = KE + mag(charges[i].velocity)**2   
            f1.plot(pos=(t,KE,0))
            KE = 0
           
#This loop draws lines between each charge carrier after the second click.
for a in arange(number):
    for b in arange(number):
        if a < b:
            curve(pos = [charges[a].pos, charges[b].pos])

#This loop creates a convex solid out of the charges' positions and makes charges transparent.   
scene.waitfor('keydown')
a = convex(color = color.white)
for i in arange(number):
    a.append(pos = charges[i].pos)
    charges[i].opacity = 0
   
#make other objects transparent
item1.opacity = 0
xaxis.pos = [zero, zero]
yaxis.pos = [zero, zero]
zaxis.pos = [zero, zero]

Basically finished product, with added functionality. Now, after viewing the beautiful symmetry created by the lines between each vertex, you can view the solid created by those vertices. I think it's gorgeous stuff.

With a high number of charge carriers, the solid created begins to resemble a geodisic sphere.

You also get a graph that shows the kinetic energy of the system with respect to time. woo

13
Arts & Entertainment / Re: Just Watched
« on: May 02, 2015, 09:56:20 PM »
Being There (Hal Ashby)

By far the best movie I have seen this year. Peter Sellers' performance was spectacular; he made the ridiculous story line seem plausible.

9/10


14
Arts & Entertainment / Re: Now Playing
« on: April 30, 2015, 03:49:12 AM »

15
Flat Earth Theory / Re: I made a Triangle (Not Literally)
« on: April 30, 2015, 03:13:10 AM »
I want legit mathematical proof that debunks my question:

"If you walked 10,000 km in a straight line, turned 90 degrees and did the same thing two more times, you would have walked in a triangle. This is impossible on a flat surface."

Well, this isn't a question.

Also, if you had done a simple search, you would have found several threads on this topic. One thing you would have noticed in these threads is that they are generally pretty short. This is because there isn't much ground to be made by either side of the debate by discussing it.

16
Technology & Information / cool fun programming stuff
« on: April 27, 2015, 03:20:30 AM »
Code: [Select]
from __future__ import division
from visual import *
from random import *


#define constants and other parameters

number = 8 #number of charges
q = 1.6e-19 #1 unit of charge (charge of an electron)
k = 9e9 # k (1/4piEnaught)
rad = 100 #radius of spherical region
shrink = 1.75 #used to make sure all charges begin within the sphere
zero = vector(0,0,0) #used for declaration purposes
electrons = 7e11*(1/number) #puts a lot of charge on each charge carrier
d = .5 #damping effect the inside of the sphere has on the charges (not used)

#generate translucent spherical region
item1 = sphere(pos = (0,0,0), radius = rad, color = color.white, opacity = .3)

#generate axes for clarity in charge position and depth within the sphere
xaxis = curve(pos = [(-1.5*rad,0,0),(1.5*rad,0,0)], color = color.blue, radius = rad/100)
yaxis = curve(pos = [(0,-1.5*rad,0),(0,1.5*rad,0)], color = color.blue, radius = rad/100)
zaxis = curve(pos = [(0,0,-1.5*rad),(0,0,1.5*rad)], color = color.blue, radius = rad/200)

#label axes
text(text = 'x', pos = (1.6*rad,-rad/30,rad/50), height = rad/15, depth= -rad/25, color=color.white)
text(text = 'y', pos = (-rad/20,1.6*rad,rad/50), height = rad/10, depth= -rad/25, color=color.white)
text(text = 'z', pos = (-rad/20,-rad/20,1.6*rad), height = rad/10, depth= -rad/25, color=color.white)


#Create a list and fill it with charge carriers in random locations in the spherical region.
charges = []
for i in arange(number):
    charges.append(sphere(pos = ((randrange(-rad*100,rad*100)/(shrink*100)),(randrange(-rad*100,rad*100)/(shrink*100)),(randrange(-rad*100,rad*100)/(shrink*100))), radius = rad/33, charge = electrons*q, force = zero, velocity = zero, color = color.red))
   
#This list will be used to make arrows and spheres and what have you.
objects = []

#This function is used to find the distance between points, which is needed to calculate electric field. a and b are charge carriers from 'charges'.
def getDistance(a,b):
    distance = mag(charges[a].pos-charges[b].pos)
    return distance

#This function calculates net force. a = which charge is having calculations done on it. b = the charge whose field is contributing a force to a. c = distance from getDistance function.
def getNetForce(a,b,c):
    direction = charges[a].pos - charges[b].pos
    charges[a].force = (((k*charges[b].charge)/(c**2))*norm(direction))
    return charges[a].force


scene.waitfor('click')

#This chunk updates force, velocity, and position for each charge carrier. 
for i in arange(number):
    while mag(charges[i].pos) < 2 * rad:
        for a in arange(number): #This for takes a charge carrier and compares it to...
            for b in arange(number): #... to a charge carrier in this loop.
                if a < b: #This if statement gets rid of overlap so the same calculation is not made twice.
                    distance = getDistance(a, b) #get distance between charge carriers
                    charges[a].force = getNetForce(a, b, distance) #get force on a due to b...
                    charges[b].force = getNetForce(b, a, distance) #... and on b due to a
                    charges[a].velocity = charges[a].velocity + charges[a].force #update...
                    charges[b].velocity = charges[b].velocity + charges[b].force #...velocity
                    sizeA = mag(charges[a].pos) #distance of first charge carrier from center...
                    sizeB = mag(charges[b].pos) #... and the second

                    #Charges near boundary, take two: Newtonian approach. This makes the charges "bounce off the inside of the wall by using the Rodrigues rotation formula.
                    if sizeA >= rad:
                        charges[a].pos = .999 * rad * norm(charges[a].pos) #moves charge carrier just inside sphere to avoid the charge getting "stuck"
                        posUnit = norm(charges[a].pos) #unit vector in direction of charge position
                        projection = proj(charges[a].velocity, charges[a].pos) #projection of velocity vector onto position vector
                        charges[a].velocity = -.9 *((charges[a].velocity * cos(pi)) + (cross(posUnit, charges[a].velocity) * sin(pi)) + (projection * (1 - cos(pi)))) #Rodrigues' rotation formula
                    if sizeB >= rad:
                        charges[b].pos = .999 * rad * norm(charges[b].pos) #moves charge carrier just inside sphere to avoid the charge getting "stuck"
                        posUnit = norm(charges[b].pos) #unit vector in direction of charge position
                        projection = proj(charges[b].velocity, charges[b].pos) #projection of velocity vector onto position vector
                        charges[b].velocity = -.9 *((charges[b].velocity * cos(pi)) + (cross(posUnit, charges[b].velocity) * sin(pi)) + (projection * (1 - cos(pi)))) #Rodrigues' rotation formula
                       
    ## Clunky clode that deals with charges near boundary. Doesn't work well at all, sometimes glitchy. physics inconsistent
    ##
    ##                if sizeA > rad:
    ##                    radialDirectionA = norm(charges[a].pos)
    ##                    charges[a].pos = radialDirectionA * rad
    ##                    crossA = cross(charges[a].pos, charges[a].force)
    ##                    newForceDirA = cross(crossA, charges[a].pos)
    ##                    angleA = diff_angle(charges[a].pos,charges[a].force)
    ##                    #fixed so it doesn't get glitchy, but doesn't redistribute charges evenly on surface.
    ##                    charges[a].force = mag(charges[a].force) * sin(2 * (pi - angleA)) * norm(newForceDirA) * d
    ##                    charges[a].velocity = charges[a].force
    ##                if sizeB > rad:
    ##                    radialDirectionB = norm(charges[b].pos)
    ##                    charges[b].pos = radialDirectionB * rad
    ##                    crossB = cross(charges[a].pos, charges[a].force)
    ##                    newForceDirB = cross(crossB, charges[a].pos)
    ##                    angleB = diff_angle(charges[a].pos,charges[a].force)
    ##                    #fixed so it doesn't get glitchy, but doesn't redistribute charges evenly on surface.
    ##                    charges[b].force = mag(charges[b].force) * sin(2 * (pi - angleB)) * norm(newForceDirB) * d
    ##                    charges[b].velocity = charges[b].force





    #Optional section that displays force arrow with each update. Change it so old arrows disappear. also traces position with translucent balls.
        #for i in arange(number):
            #objects.append(arrow(pos=charges[i].pos, axis=charges[i].force, color=color.yellow)   
            #objects.append(sphere(pos=charges[i].pos, radius = rad / 33, color=color.red, opacity = .1))
           
        for a in arange(number):
            rate(100)
            charges[a].pos = charges[a].pos + charges[a].velocity #update position of charges...
           
        #print mag(charges[0].force)   
        #print mag(charges[0].velocity)

Above is a program I am writing in vpython to study geometry by simulating the electric force! Placing n like charge carriers in a hollow, neutral, insulating sphere, one would expect the to disperse among the surface of the sphere in such a way that equilibrium is reached.  My supposition was that for charge carriers > 3, equilibrium would only be reached if the number of charges corresponded to the number of vertices in a platonic polyhedral. This supposition was based on intuition and a limited understanding of geometry in 3 space.

I was pleasantly surprised. For every number of charge carriers I have tried, equilibrium is reached, sometimes in fascinating ways. My favorite is 8. Instead of forming a cube, the charges form a polyhedral with two parallel square bases, rotated such that  it has 8 other faces that are equilateral triangles. Obviously, this is the orientation that results in a net force on each charge of zero, but it also seems correct to say that the same would be true for a cube. Each vertex on a cube is the same average distance from any other vertex.

This is still a work in progress, I need to streamline it and clean it up, but it is functional. Over the next few days, I am going to do some more research into this sort of geometry and see what I can find. In the mean time, feel free to copy/paste this into the most recent version of vpython and give it a whirl! Other cool things to do would be changing the charge on one or more charge carriers. If you have any ideas or insights, let me know.

Also, this can be a general thread for fun programming adventures.

Also, lol at everything being bold from calling "b" from a list "charges[]"

*thanks parsifal

17
What the fuck is "G-d"?

19
Arts & Entertainment / Re: Just Watched
« on: April 12, 2015, 10:09:07 PM »
I couldn't devil's advocate criticize this movie even if I wanted to. The characters were good, the science was astute, the plot offered real problems the entire time other than manufactured nonsense and for the first time ever the AI robots didn't end up being evil assholes.


gr7 b7 m7

20
Arts & Entertainment / Re: Just Watched
« on: April 07, 2015, 03:23:30 PM »
Interstellar (Christopher Nolan)

Finally got around to watching it. I enjoyed it, but it certainly did not live up to the hype. A friend of mine touted its scientific realism, which, having seen the movie, annoys me. Sure, it was fun, but it was sci-fi to the core.


8 1/2 (Federico Fellini)

A very fun movie. Dramatic and melancholy at the surface, but comedic at the heart. I have more Fellini to watch, but I think I should have watched others before this.

Pages: [1] 2 3 ... 17  Next >