Calculations done by Tristan Hume for a public policy class report.
basic income = $10,000/year
number of adult citizens = 27131010 => 27,131,010 total cost = number of adult citizens * basic income => $271,310,100,000/year
| { | |
| "auto_complete_commit_on_tab": true, | |
| "auto_complete_triggers": | |
| [ | |
| { | |
| "characters": "<", | |
| "selector": "text.html" | |
| }, | |
| { | |
| "characters": ".", |
| # Above goes participant \n condition \n block | |
| # ---------------------------------------- | |
| # Configuration arguments for FittsTaskTwo | |
| # ---------------------------------------- | |
| # ----- | |
| # PARTICIPANT CODE (part of output data file names) | |
| # P21 |
| # Summarizes data produced by my FittsTaskTwo fork | |
| require "csv" | |
| data = [] | |
| Dir["FittsStudy/FittsTaskTwo-P*-C*-B*-sd2.csv"].each do |f| | |
| _, p, c, b = /FittsTaskTwo-P(.*)-C(.*)-B(.*)-sd2\.csv/.match(f).to_a | |
| table = CSV.read(f, headers: true) | |
| tps = table["TP(bps)"].map { |e| e.to_f } | |
| avg_tp = (tps.inject(:+) / tps.size).round(3) unless tps.empty? | |
| data << [c, p, b, avg_tp] |
| // Used to send data from a VMWare VM running the EyeX software | |
| // with a Steelseries Sentry to a Mac OSX host over UDP. | |
| namespace MinimalGazeDataStream | |
| { | |
| using EyeXFramework; | |
| using System; | |
| using System.Net; | |
| using System.Net.Sockets; | |
| using System.Text; | |
| using Tobii.EyeX.Framework; |
| // Reversing notes | |
| // Tristan Hume | |
| // trying to figure out what packets to send to get the lights to turn on for a TheEyeTribe tracker | |
| // Steps so far: | |
| // debug the server so I can figure out how to log all UVC control requests sent using | |
| // the mechanism in https://github.com/HBehrens/CamHolderApp/blob/master/CamHolderApp%2FUVCCameraControl.h | |
| // I've managed to figure out where the IOUSBDevRequestDesc is in registers at one point | |
| // Next step is to create a debugger script that logs it whenever that method is called. | |
| // |
| def ruby_is_great | |
| # times is an ordinary method that acts just like a loop | |
| # it takes a block, which is like a lambda/anonymous function | |
| # except it acts like you would expect a control structure to | |
| 5.times do |i| | |
| # this will return from ruby_is_great not the block | |
| return if rand() < 0.5 | |
| puts i | |
| end | |
| end |
| # Modified Seek&Destroy example that hugs the left side | |
| # Includes commented out experiments in strats | |
| class SeekAndDestroy < RTanque::Bot::Brain | |
| include RTanque::Bot::BrainHelper | |
| def tick! | |
| @desired_heading ||= nil | |
| @rands ||= (1..10).map { rand() * Math::PI * 2 } | |
| @dirn ||= RTanque::Bot::BrainHelper::MAX_BOT_SPEED | |
| # Step-By-Step Gaussian Elimination on Augmented Matrices | |
| # By Tristan Hume | |
| require "rational" | |
| def reduce_down(mat) | |
| # Use each row going down to cancel lower rows | |
| # Each iteration of this loop is one step | |
| rows = mat.length | |
| (0..rows-2).each do |ri1| |
the theoretical maximum for an orthographic chording system based on start+vowels+end
3.2 characters per stroke = 1.49 strokes per word
same as above, but with the ability to type common suffixes is the same stroke
3.46 characters per stroke = 1.38 strokes per word