Merge branch 'master' of git.xpub.nl:/var/www/git.xpub.nl/repos/tgc3

master
ugrnm 8 years ago
commit 0b6435cbeb

BIN
.DS_Store vendored

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

@ -1,12 +0,0 @@
#N canvas 296 315 450 300 10;
#X obj 37 104 osc~ 440;
#X obj 37 146 dac~;
#X obj 161 74 loadbang;
#X msg 161 111 \; pd dsp 1;
#X obj 37 36 netreceive 3000;
#X obj 46 62 print;
#X connect 0 0 1 0;
#X connect 0 0 1 1;
#X connect 2 0 3 0;
#X connect 4 0 5 0;
#X connect 4 0 0 0;

@ -1,12 +1,7 @@
#!/usr/bin/env python
import os, random, time
while True:
freq = str(random.randint(0,10)*110)
print(freq)
os.system('echo "'+freq+';" | pdsend 3000')
time.sleep(0.25)
import subprocess
subprocess.call(["scripts/voiceguide.sh"], cwd="/media/floppy")

@ -5,7 +5,10 @@ import cgitb; cgitb.enable()
from jinja2 import Template
# Directory => ITEMS list (all files with a timestamp name, grouped)
ff = os.listdir("clips")
try:
ff = os.listdir("/var/www/static/gait")
except OSError:
ff = []
tpat = re.compile(r"^(\d\d\d\d)-(\d\d)-(\d\d)-(\d\d)-(\d\d)-(\d\d)")
items = {}
for f in ff:
@ -34,6 +37,7 @@ print ""
print Template(u"""<html>
<head>
<title>ADOPT A WALK</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="../styles/main.css">
</head>
<body>

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

@ -1 +1,8 @@
GREAT JOB!
<html>
<head>
<meta http-equiv="refresh" content="0;url=/cgi-bin/index.cgi" />
</head>
<body>
<a href="/cgi-bin/index.cgi">start</a>
</body>
</html>

@ -1,6 +1,6 @@
@font-face: {
font-family: "sporting_grotesque_gras-webfont";
src:"../fonts/sporting_grotesque_normal.otf";
font-family: "Sporting Grotesque";
src: url("/fonts/sporting_grotesque_normal.otf");
}
body {

@ -4,6 +4,8 @@ from __future__ import print_function
import cv2, os, sys, time
import numpy as np
from argparse import ArgumentParser
from picamera.array import PiRGBArray
from picamera import PiCamera
p = ArgumentParser("")
@ -32,16 +34,22 @@ if args.output:
else:
out = None
while True:
ret, prev = cam.read()
prevgray = cv2.cvtColor(prev, cv2.COLOR_BGR2GRAY)
if prevgray.shape == (args.height, args.width):
break
print ("Starting camera", file=sys.stderr)
cam = PiCamera()
framesize = (160, 128)
cam.resolution = framesize
cam.framerate = 32
rawCapture = PiRGBArray(cam, size=framesize)
# allow the camera to warmup
time.sleep(0.25)
count = 0
try:
while True:
ret, frame = cam.read()
# while True:
# ret, frame = cam.read()
for frame in cam.capture_continuous(rawCapture, format="bgr", use_video_port=True):
# print "GRAB FRAME"
frame = frame.array
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
ret, t= cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
@ -49,6 +57,9 @@ try:
# flow = cv2.calcOpticalFlowFarneback(prevgray, gray, 0.5, 3, 15, 3, 5, 1.2, 0)
# prevgray = gray
# clear the stream in preparation for the next frame (important for picamera!)
rawCapture.truncate(0)
if out != None:
out.write(frame)
count += 1

@ -0,0 +1,73 @@
#!/usr/bin/env python
from __future__ import print_function
import cv2, os, sys, time
import numpy as np
from argparse import ArgumentParser
p = ArgumentParser("")
p.add_argument("--video", type=int, default=0, help="video, default: 0")
p.add_argument("--output", default=None, help="path to save movie, default: None (show live)")
p.add_argument("--width", type=int, default=640, help="pre-detect resize width")
p.add_argument("--height", type=int, default=480, help="pre-detect resize height")
p.add_argument("--fourcc", default="XVID", help="MJPG,mp4v,XVID")
p.add_argument("--framerate", type=float, default=25, help="output frame rate")
p.add_argument("--show", default=False, action="store_true")
p.add_argument("--frames", type=int, default=100)
args = p.parse_args()
fourcc = None
cam = cv2.VideoCapture(args.video)
cam.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, args.width)
cam.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, args.height)
if args.output:
try:
fourcc = cv2.cv.CV_FOURCC(*args.fourcc)
except AttributeError:
fourcc = cv2.VideoWriter_fourcc(*args.fourcc)
out = cv2.VideoWriter()
out.open(args.output, fourcc, args.framerate, (args.width, args.height))
else:
out = None
while True:
ret, prev = cam.read()
prevgray = cv2.cvtColor(prev, cv2.COLOR_BGR2GRAY)
if prevgray.shape == (args.height, args.width):
break
count = 0
try:
while True:
ret, frame = cam.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
ret, t= cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
frame = cv2.cvtColor(t, cv2.COLOR_GRAY2BGR)
# flow = cv2.calcOpticalFlowFarneback(prevgray, gray, 0.5, 3, 15, 3, 5, 1.2, 0)
# prevgray = gray
if out != None:
out.write(frame)
count += 1
if args.show:
cv2.imshow('display', frame)
if cv2.waitKey(5) & 0xFF == ord('q'):
break
if args.frames != None:
if (count >= args.frames):
break
except KeyboardInterrupt:
pass
print ("\nCleaning up... Wrote", count, "frames")
if out:
out.release()
if args.show:
cv2.destroyAllWindows()

@ -1,3 +1,6 @@
# ensure the record folder exists
mkdir -p /var/www/static/gait
v=-v en-gb+f5 -s 150
espeak "Tetra Gamma Gait Analysis " -v en-gb +f5 -s 150
sleep 1
@ -16,7 +19,7 @@ sleep 0.2
mpv sweep_up.wav
basename=clips/$(date +%Y-%m-%d-%H-%M-%S)
basename=/var/www/static/gait/$(date +%Y-%m-%d-%H-%M-%S)
echo recording $basename.avi...
python scripts/recordwalk.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240
# convert to mp4

@ -1,58 +1,74 @@
#N canvas 553 37 553 723 10;
#X declare -lib unpackOSC;
#X obj 34 92 unpackOSC;
#X text 360 432 attack;
#X text 431 433 release;
#X obj 362 569 line~;
#X obj 179 589 *~;
#X obj 361 452 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
#N canvas 398 23 553 723 10;
#X declare -lib OSC;
#X declare -lib net;
#X text 372 516 attack;
#X text 443 517 release;
#X obj 374 653 line~;
#X obj 176 638 *~;
#X obj 373 536 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 435 455 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
#X obj 447 539 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 371 480 stop;
#X msg 383 564 stop;
#X text 70 455 #ikstem;
#X text 188 454 #gestemd;
#X obj 179 685 dac~;
#X obj 176 693 dac~;
#X obj 34 142 unpack s s s;
#X obj 19 243 print;
#X obj 133 345 select #ikstem both;
#X text 264 345 #gestemd;
#X obj 175 539 osc~ 450;
#X obj 361 503 del 50;
#X msg 432 526 0 250;
#X msg 296 503 30 30;
#X obj 476 483 del 50;
#X msg 361 527 1 500;
#X msg 195 477 400;
#X msg 68 480 150;
#X obj 373 587 del 50;
#X msg 444 610 0 250;
#X msg 308 587 30 30;
#X obj 488 567 del 50;
#X msg 373 611 1 500;
#X obj 212 198 loadbang;
#X obj 364 23 import unpackOSC;
#X msg 211 244 \; pd dsp 1;
#X text 16 34 comment;
#X text 176 446 comment;
#X obj 34 48 mrpeach/udpreceive 127.0.0.1 4000;
#X connect 0 0 11 0;
#X connect 3 0 4 1;
#X connect 4 0 10 0;
#X connect 5 0 18 0;
#X connect 5 0 16 0;
#X connect 5 0 19 0;
#X connect 6 0 17 0;
#X connect 6 0 7 0;
#X connect 7 0 16 0;
#X connect 11 1 12 0;
#X connect 11 1 13 0;
#X connect 11 2 12 0;
#X connect 13 0 22 0;
#X connect 13 0 5 0;
#X connect 13 1 21 0;
#X connect 13 1 5 0;
#X connect 15 0 4 0;
#X connect 16 0 20 0;
#X connect 17 0 3 0;
#X connect 18 0 3 0;
#X connect 19 0 17 0;
#X connect 20 0 3 0;
#X connect 21 0 15 0;
#X connect 22 0 15 0;
#X connect 28 0 0 0;
#X obj 118 585 *~ 10;
#X obj 34 48 udpreceive 127.0.0.1 4000;
#X obj 34 92 unpackOSC;
#X obj 364 23 import OSC;
#X obj 365 55 import net;
#X obj 149 148 print;
#X obj 182 539 osc~ 880;
#X msg 195 477 880;
#X obj 271 500 line~;
#X msg 266 434 1 10;
#X msg 318 494 0 30;
#X obj 318 451 b;
#X obj 318 473 delay 10;
#X msg 68 480 220;
#X text 16 34;
#X connect 3 0 9 0;
#X connect 3 0 9 1;
#X connect 4 0 16 0;
#X connect 4 0 14 0;
#X connect 4 0 17 0;
#X connect 5 0 15 0;
#X connect 5 0 6 0;
#X connect 6 0 14 0;
#X connect 10 1 12 0;
#X connect 12 0 35 0;
#X connect 12 0 31 0;
#X connect 12 1 29 0;
#X connect 12 1 31 0;
#X connect 14 0 18 0;
#X connect 15 0 2 0;
#X connect 16 0 2 0;
#X connect 17 0 15 0;
#X connect 18 0 2 0;
#X connect 19 0 20 0;
#X connect 23 0 24 0;
#X connect 24 0 10 0;
#X connect 24 0 27 0;
#X connect 28 0 22 0;
#X connect 28 0 3 0;
#X connect 29 0 28 0;
#X connect 30 0 3 1;
#X connect 31 0 30 0;
#X connect 31 0 33 0;
#X connect 32 0 30 0;
#X connect 33 0 34 0;
#X connect 34 0 32 0;
#X connect 35 0 28 0;

@ -17,8 +17,8 @@ msg.setAddress("/twitter-ikstem")
#msg.append('hello from python')
#client.send(msg)
#os.system('xzcat /media/floppy/twittersonification.csv.xz > /tmp/twittersonification.csv') #floppydisk
os.system('xzcat twittersonification.csv.xz > /tmp/twittersonification.csv') #lokaal
os.system('xzcat /media/floppy/twittersonification.csv.xz > /tmp/twittersonification.csv') #floppydisk
#os.system('xzcat twittersonification.csv.xz > /tmp/twittersonification.csv') #lokaal
@ -42,7 +42,7 @@ with open('/tmp/twittersonification.csv', 'rU') as csvfile:
if then:
ti = (now-then).total_seconds()
#print ti/100
sleep_time = ti/1000
sleep_time = ti/40
print ("5.msg stderr", file=sys.stderr)

@ -0,0 +1,13 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
March 2017
Copyright (C) 2017 Nadine Rotem-Stibbe <nadine@rotem.eu>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

@ -0,0 +1,10 @@
Author: Nadine Rotem-Stibbe
Date: 2017
Title: Drone Oddity #1
Description:
What you are hearing is a score made from the 'Watchlisting Guidance' table of contents using Pure Data.
This document was written by the National Counterterrorism Center (NCC).
You can access it here: https://theintercept.com/document/2014/07/23/march-2013-watchlisting-guidance/

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 931 KiB

After

Width:  |  Height:  |  Size: 266 KiB

File diff suppressed because one or more lines are too long

@ -0,0 +1,362 @@
Chapter 1
section 1
sub 1
foot 1
sub 2
foot 1
foot 2
sub 3
sub 4
section 2
sub 1
foot 1
sub 2
foot 1
foot 2
sub 3
foot 1
sub 4
sub 5
foot 1
foot 2
subsub 1
sub 6
sub 7
foot 1
sub 8
sub 9
sub 10
foot 1
subsub 1
subsub 2
subsubsub 1
subsubsub 2
subsubsub 3
sub 11
sub 12
sub 13
foot 1
foot 2
sub 14
foot 1
section 3
sub 1
foot 1
subsub 1
subsub 2
subsub 3
subsub 4
sub 2
section 4
sub 1
foot 1
sub 2
foot 1
sub 3
section 5
sub 1
subsub 1
subsub 2
foot 1
section 6
sub 1
sub 2
sub 3
sub 4
sub 5
foot 1
sub 6
foot 1
sub 7
sub 8
sub 9
foot 1
section 7
sub 1
sub 2
foot 1
sub 3
sub 4
section 8
sub 1
sub 2
sub 3
subsub 1
subsub 2
subsub 3
foot 1
sub 4
sub 5
foot 1
sub 6
subsub 1
subsub 2
subsub 3
subsub 4
foot 1
subsub 5
subsub 6
subsub 7
subsub 8
subsub 9
sub 7
sub 8
sub 9
section 9
sub 1
foot 1
sub 2
subsub 1
subsub 2
subsub 3
foot 1
subsub 4
sub 3
sub 4
sub 5
sub 6
subsub 1
subsub 2
sub 7
subsub 1
subsub 2
foot 1
subsubsub 1
foot 1
subsubsub 2
subsubsub 3
subsubsub 4
subsubsub 5
sub 8
sub 9
foot 1
sub 10
foot 1
subsub 1
foot 1
subsub 2
subsubsub 1
subsubsubsub 1
subsubsubsub 2
subsubsubsub 3
subsubsubsub 4
subsubsubsub 5
subsubsubsub 6
subsubsubsub 7
subsubsub 2
sub 11
sub 12
subsub 1
censored 2
subsub 2
subsub 3
subsub 4
sub 13
subsub 1
subsubsub 1
subsubsub 2
subsubsub 3
subsubsub 4
subsub 2
subsub 3
subsub 4
subsub 5
subsub 6
sub 14
sub 15
sub 16
section 10
sub 1
sub 2
sub 3
subsub 1
subsub 2
subsub 3
foot 1
sub 4
sub 5
section 11
sub 1
sub 2
foot 1
sub 3
sub 4
sub 5
section 12
sub 1
Chapter 2
section 1
sub 1
section 2
sub 1
subsub1
sub 2
sub 3
sub 4
subsub 1
subsub 2
subsubsub 1
subsubsub 2
subsubsub 3
subsubsub 4
foot 1
subsubsub 5
foot 1
subsubsub 6
subsub 3
foot 1
subsubsub 1
subsubsub 2
subsubsub 3
subsubsub 4
subsubsub 5
subsubsub 6
subsubsub 7
subsubsub 8
subsubsub 9
subsubsub 10
section 3
sub 1
sub 2
subsub 1
subsub 2
subsub 3
subsub 4
subsub 5
subsub 6
subsub 7
Chapter 3
section 1
sub 1
sub 2
section 2
sub 1
sub 2
sub 3
sub 4
sub 5
sub 6
sub 7
subsub 1
subsub 2
subsub 3
subsub 4
section 3
sub 1
subsub 1
subsub 2
sub 2
subsub 1
subsub 2
subsub 3
subsub 4
section 4
sub 1
subsub 1
sub 2
subsub 1
subsub 2
subsub 3
subsub 4
subsubsub 1
subsubsubsub 1
subsubsubsub 2
subsubsubsub 3
subsubsubsub 4
subsub 5
subsubsub 1
subsub 6
subsub 7
subsub 8
subsubsub 1
subsub 9
subsubsub 1
subsub 10
subsub 11
subsub 12
subsub 13
section 5
sub 1
subsub 1
subsubsub 1
subsubsubsub 1
subsubsubsub 2
subsubsub 2
subsubsub 3
subsub 2
subsub 3
subsub 4
subsub 5
subsub 6
subsubsub 1
subsubsub 2
subsubsub 3
subsubsub 4
subsubsub 5
subsub 7
section 6
sub 1
subsub 1
subsubsub 1
subsubsub 2
subsubsub 3
subsubsub 4
subsub 2
subsub 3
sub 2
subsub 1
sub 3
subsub 1
subsubsub 1
subsubsub 2
subsub 2
section 7
sub 1
subsub 1
subsub 2
subsub 3
subsub 4
subsub 5
subsub 6
subsub 7
subsub 8
subsub 9
subsub 10
subsub 11
subsub 12
subsub 13
subsub 15
subsub 16
subsub 17
subsub 18
subsub 19
subsub 20
subsub 21
subsub 22
subsub 23
subsub 24
subsub 25
subsub 26
subsub 27
subsub 28
subsub 29
subsub 30
subsub 31
subsub 32
subsub 33
subsub 34
subsub 35
subsub 36
subsub 37
subsub 38
subsub 39
subsub 40
subsub 41
subsub 42
subsub 43
subsub 44
subsub 45
subsub 46
Chapter 4

@ -0,0 +1,13 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
March 2017
Copyright (C) 2017 Nadine Rotem-Stibbe <nadine@rotem.eu>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

@ -0,0 +1,11 @@
Author: Nadine Rotem-Stibbe
Date: 2017
Title: Drone Oddity #2
Description:
What you are listening to is the of­fi­cial U.S. mil­it­ary tran­script of the ra­dio trans­mis­sions and cock­pit con­ver­sa­tions that day, ob­tained by the Los Angeles Times through a Free­dom of In­form­a­tion Act re­quest.
On Feb. 21, 2010, a con­voy of vehicles car­ry­ing ci­vil­ians headed down a moun­tain in cent­ral Afgh­anistan. Amer­ic­an eyes were watch­ing. For more than four hours, the U.S. mil­it­ary — in­clud­ing a Pred­at­or drone crew in Nevada, video screen­ers in Flor­ida, an AC-130 air­plane crew in the sky and an Amer­ic­an spe­cial op­er­a­tions unit on the ground nearby — tracked the con­voy, try­ing to de­cide wheth­er it was friend or foe.
you can access the document here: http://documents.latimes.com/transcript-of-drone-attack

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 KiB

Before

Width:  |  Height:  |  Size: 970 B

After

Width:  |  Height:  |  Size: 970 B

@ -0,0 +1,44 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="style.css">
<script src="jquery-3.2.0.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<title>Drone</title>
</head>
<body>
<header>
<div class="title">Drone Oddity <br>#2</div>
<p class="instructions">Please remove your shoes, put your head back and enjoy the conversations behind the piloted&nbsp;drones!</p>
</header>
<div class="transcript" id="transcroll">
<embed id="watchlist" scrolling="yes" src="transcripts-drone-attack.txt" height="500px"></embed>
</div><!-- /end transcript -->
<div><a href="http://www.warrug.com"></a>Buy war rugs here...</div>
<!-- <img src="img/drone1.svg" alt=""> -->
<img src="img/drone2.svg" alt="">
<!-- <img src="img/drone3.svg" alt=""> -->
<footer>
<div class="subtitle">
Transcripts of U.S. drone attack <br> from the <a href="http://documents.latimes.com/transcript-of-drone-attack/" target="_blank">LA Times</a>
</div>
<p>On Feb. 21, 2010, a con­voy of vehicles car­ry­ing ci­vil­ians headed down a moun­tain in cent­ral Afgh­anistan. Amer­ic­an eyes were watch­ing. For more than four hours, the U.S. mil­it­ary — in­clud­ing a Pred­at­or drone crew in Nevada, video screen­ers in Flor­ida, an AC-130 air­plane crew in the sky and an Amer­ic­an spe­cial op­er­a­tions unit on the ground nearby — tracked the con­voy, try­ing to de­cide wheth­er it was friend or foe.
This is the of­fi­cial U.S. mil­it­ary tran­script of the ra­dio trans­mis­sions and cock­pit con­ver­sa­tions that day, ob­tained by the Los Angeles Times through a Free­dom of In­form­a­tion Act re­quest.</p>
</footer>
<script type="text/javascript">
$('#transcroll,body,html').animate({ scrollTop: $('body').height() }, 500000);
</script>
</body>
</html>

File diff suppressed because one or more lines are too long

@ -0,0 +1,146 @@
body{
background-image: url("img/carpet.jpg");
background-attachment: fixed;
background-position: center;
background-size: 100%;
font-family: 'Roboto Mono', monospace;
margin: 0 !important;
}
@font-face {
font-family: 'Roboto Mono', monospace;
src: url(RobotoMono-Regular.ttf);
}
header{
height: 400px;
background: black; /* For browsers that do not support gradients */
background: -webkit-linear-gradient(black, transparent); /* For Safari 5.1 to 6.0 */
background: -o-linear-gradient(black, transparent); /* For Opera 11.1 to 12.0 */
background: -moz-linear-gradient(black, transparent); /* For Firefox 3.6 to 15 */
background: linear-gradient(black, transparent); /* Standard syntax (must be last) */
margin:-10px;
padding-top: 60px;
}
.title {
padding-top: 40px;
text-align: center;
font-size: 70px;
color: white;
margin:auto;
font-weight: 700;;
padding: 6px;
}
.title a {
color:black;
text-decoration: underline;}
a{ text-decoration: none;}
.instructions{
text-align: center;
max-width: 39%;
line-height: 26px;
font-size: 20px;
padding: 10px;
margin: auto;
font-weight: 500;
color: white;
/*background-color: rgba(0,0,20,.85);*/}
.wrap{width: 100%;
}
.transcript{
width:40%;
margin:auto;
height:4050px;
overflow: hidden;
/*border: 4px solid;*/
}
.title-transcript{
margin-top: 0;
margin-bottom: 0;
padding: 35px;
color: white;
background-color: rgba(0,0,20,.9);
font-weight: 500;
font-size: 18px;
}
.title-transcript a{ text-decoration: none;
color: white; }
.transcript embed{
background-color: rgba(255,255,255,.9);
height:4050px;
width: 100%;
}
footer{
height:1000px;
background: black; /* For browsers that do not support gradients */
background: -webkit-linear-gradient(transparent, black); /* For Safari 5.1 to 6.0 */
background: -o-linear-gradient(transparent, black); /* For Opera 11.1 to 12.0 */
background: -moz-linear-gradient(transparent, black); /* For Firefox 3.6 to 15 */
background: linear-gradient(transparent, black); /* Standard syntax (must be last) */
margin:-10px;
padding: 20px;
}
footer p {
color: white;
max-width: 70%;
padding-top: 40px;
margin:auto;
line-height: 1.5em;
font-size: 26px;}
.subtitle{
margin-top: 270px;
text-align: center;
font-size: 46px;
color: white;
font-weight: 700;;
}
.subtitle a{
text-decoration: none;
color: white;
}
embed::-webkit-scrollbar-track
{
/*border: 1px solid black;
*/ background-color: #F5F5F5;
}
embed::-webkit-scrollbar
{
width: 3px;
background-color: #F5F5F5;
}
embed::-webkit-scrollbar-thumb
{
background-color: #000000;
}
/*////////mobile///////*/
@media screen and (max-width:767px) {
.title{font-size: 30 px;
max-width: 90%;}
.instructions{max-width: 90%;}
.transcript{
margin-top: 50px;
width:90%;
height: 6400px;
}
.transcript embed{height: 6400px;}
.header{margin-bottom: 20px;}
.footer{height: 600px;}
.subtitle{
margin-top: 270px;
font-size: 26px;}
footer p {max-width: 80%;
font-size: 15px;}
}/*end of 767*/

@ -0,0 +1,184 @@
00:59 (Pilot): Can you zoom in a little bit man, let em take a look
00:59 (Sensor): at least 4 in the back of the pickup
00:59 (Pilot): what about the guy under the north arrow, does it look like he is hold'n something across his chest
00:59 (Sensor): yea it's kind of weird how they all have a cold spot on their chest
00:59 (Pilot): It's what they've been doing here lately, they wrap their *expletive* up in their man dresses so you can't PID it
00:45 (Pilot): Is that a *expletive* rifle?
00:45 (Sensor): Maybe just a warm spot from where he was sitting; can't really tell right now, but it does look like an object
00:45 (Pilot): I was hoping we could make a rifle out, never mind
1:05 (Sensor): that truck would make a beautiful target, ok that's a Chevy suburban
1:05 (Pilot): yeah,
1:05 (Sensor): yeah
1:07 (MC): screener said at least one child near SUV
1:07 (Sensor): bull *expletive* …where!?
1:07 (Sensor): send me a *expletive* still, I don't think they have kids out at this hour, I know they're shady but come on.
1:07 (Pilot): at least one child… Really? Listing the MAM, uh, that means he's guilty
1:07 (Sensor): well maybe a teenager but I haven't seen anything that looked that short, granted they're all grouped up here, but.
1:07 (MC): They're reviewing
1:07 (Pilot): Yeah review that *expletive* …why didn't he say possible child, why are they so quick to call *expletive* kids but not to call *expletive* a rifle
1:08 (MC): two children were at the rear of the SUV… I haven't seen two children
1:08 (Sensor): The SUV just started,
CLASSIFIED (info 2 lines)
01:47 (MC): Looks kinda like blankets, they were praying, they had like…
01:47 (Pilot): JAG25 KIRK97We get a good count, not yet?
01:47 (Sensor): They're praying, they are praying.
01:47 (Jag25): KIRK97 JAG25
01:48 (Pilot): JAG25 just want to confirm that you copied we have about 20 pax dismounted, they are
outside the trucks praying at this time and we're 3 ½ miles from the friendly location.
01:48 (Jag25): Roger good copy, from SOTF, we should have A10's and OH58's that are on standby…*garbled*
01:48 (Sensor): A10's as well, that's consistent with the vehicle capacity, 2425 people. This is definitely
it, this is their force. Praying? I mean seriously, that's what they do.
01:48 (MC): They're gonna do something nefarious.
01:50 (MC): Adolescent near the rear of the SUV.
01:50 (Sensor): Well, teenagers can fight.
01:50 (MC): Pick up a weapon and you're a combatant, it's how that works.
01:51 (Pilot): Will you tell the screener that we have passed that, so he doesn't freak out when the A10's strafe these guys or something. Just to keep him in the loop
01:51 (MC): Yeah, I let him know. Yeah, we get a good shot of that adolescent metadata off real quick, so I can tell…
01:51 (Sensor):He already got in the vehicle they said.
01:51 (MC): Yeah, as soon as they get out and we can see them again.
01:52 (Sensor): One guy still praying at the front of the truck.
01:52 (Pilot): JAG25 KIRK97 be advised, all pax are finishing up praying and rallying up near all 3 vehicles
at this time.
01:52 (Sensor): Oh sweet target. I'd try to go through the bed, put it right dead center of the bed.
01:53 (MC): Oh that'd be perfect.
02:41 (Sensor): Well sir, would you mind if I took a bathroom break real quick?
02:41 (Pilot): No, not at all, dude
CLASSIFIED
03:17 (Unknown): what's the master plan fellas?
03:17 (Pilot): I don't know, hope we get to shoot the truck with all the dudes in it
03:17 (Sensor): yea
03:48 (Jag25): Kirk97, Good copy. If they close distance with our location at Kohd base, and at Ground force commander's orders we may have them come up, action those targets, and let you use your hellfire for cleanup shot
03:49 (Pilot): Kirk97,Good copy on that, sounds good.
04:01 (Sensor): Sensor is in let the party begin.
04:01 (Pilot): What's up dude. Uh… We are just waiting man. Got one poppa sleeve on the left hand side set up to go off first cause that is all we got and their waiting for these guys to turn east and head towards the friendlies and their tracking these guys via ICOM chatter. It's basically it man.
04:01 (Sensor) :Tell you what they could have had a whole fleet of preds up here.
04:01 (Pilot): Oh dude.
04:01 (Sensor):
04:01 (Pilot): It would have been awesome.
04:02 (Sensor) : We were talking about it. I'm like, well, what if we just.
04:02 (Pilot) : Yeah.
04:02 (Sensor) :
04:02 (Pilot) : Dude that would be awesome.
04:02 (Sensor) :
CLASSIFIED
CLASSIFIED
CLASSIFIED
CLASSIFIED
CLASSIFIED
04:06 (Pilot) : As far as a weapons attack brief goes, man, we're probably going to be chasing dudes scrambling in the open, uh, when it goes down, don't worry about any guidance from me or from JAGUAR, just follow what makes the most sense to you. Stay with whoever you think gives us the best chance to shoot um at them. And I'm with you on that. So, I'll brief you up on the launch profile, we'll hit a weapons attack brief when we know what we're going to shoot.
CLASSIFIED
CLASSIFIED
04:07 (Sensor) : We're gonna look like we're gonna be looking at 421.
04:07 (Pilot) : Yeah
04:07 (Sensor) : For a hostile intent and... initial plan without seeing how they break up, follow the largest group.
04:07 (Pilot) : Yeah, sounds good. When it all comes down, if everybody is running in their separate direction, I don't care if you just follow one guy, you know like whatever you decide to do I'm with you on it.
04:08 (MC) : Yeah their trying to confirm which vehicle has the kids in it oh the adolescents in it. But JTAC already said that well they can grab a gun... so.
04:09 (Sensor) : Hey you know what? Those mujadeen 13 years old.
04:09 (Pilot) : Yeah, well that's what we were talking on this. I was talking to the JTAC he said the exact same thing man. Um they called them an adolescent. We called it you know... most likely double digits age range. And he was like that's old enough to be dangerous.
04:09 (Sensor) : Yep.
04:09 (Pilot) : Which is true.
04:09 (MC) : I mean he was helping them load stuff earlier. DGS called it out. Helping load things into a back of a truck. When we first got on station. That's when that AC130 was like please give me PID. I was like... we can't.
CLASSIFIED
04:11 (Bam Bam41): Kirk97, Bam Bam four one has you loud and clear
04:12 (Pilot): Ok, Bam Bam41, Kirk97 have you loud and clear as well. Understand you are tracking our three vehicles, do you need a talk on or do you have them?
04:12 (Bam Bam41): 41 has them just south side of the pass of the reported grid, white highland followed by two SUVs
04:12 (Pilot): Kirk97, that's a good copy. Those are your three vehicles be advised we have about twenty-one MAMs, about three rifles so far PIDed in the group and ah these are your three
04:13 (Pilot): It's a cool looking shot
04:13 (Sensor): Oh, awesome
04:13 (Bam Bam 41): (unintelligible) weapons and ICOM chatter with tactical maneuver. Break. Um, understand we are clear to engage.
04:13 (Pilot): Okay, he's clear to engage so he has Type Three. I'm going to spin our missiles up as well.
04:16 (Sensor): Roger. And, oh ... and there it goes! Have another guy ... did they get him too? Yep.
04:16 (Pilot): They took the first and uh the last out. They're going to come back around
04:17 (MC): Do we want to switch back to other frequency?
04:17 (Pilot): I tried, nobody was talking to me over there
04:17 (Sensor): Looks like they're surrendering. They're not running.
04:18 (Sensor): That guy's laid down? They're not running.
04:18 (Safety Observer): Dude, this is weird
04:18 (Sensor): They're just walking away
04:18 (Safety Observer): You want to see if there's anybody at the back?
04:18 (Unknown): Yeah (unintelligible) outline
04:18 (Safety Observer): By that third wreck
04:18 (Sensor): A couple - two or three
04:18 (Sensor): Yeah, they're just chilling
04:18 (Pilot): Zoom in on that for a second for me. The third one.
04:18 (Sensor): The third one?
04:18 (Pilot): Yeah. Did they blow that up? They did, right?
04:18 (Safety Observer): They did, yeah
04:18 (Sensor): No they didn't
04:18 (Pilot): They didn't
04:18 (Sensor): They didn't
04:18 (Sensor): No, they're just out there
04:18 (Pilot): Yeah, that thing looks destroyed, though, doesn't it?
04:18 (Safety Observer): Yeah, they hit it. There's some smoke
04:18 (Sensor): They hit it. You (unintelligible) ... These guys are just ... (rocket attack on middle vehicle)
04:18 (Unknown): Oh!
04:19 (Pilot): Holy *expletive*
04:22 (Sensor): PID weapons, I don't see any ...
04:22 (Saftey Observer): Got something shiny on the one at the right
04:22 (Sensor): Right
04:22 (Sensor): That's weird
04:22 (Pilot): Can't tell what the *expletive* they're doing
04:23 (Sensor): Probably wondering what happened
04:23 (Safety Observer): There's one more to the left of the screen
04:23 (Sensor): Yeah, I see them
04:23 (Safety Observer): Are they wearing burqas?
04:23 (Sensor): That's what it looks like
04:23 (Pilot): They were all PIDed as males, though. No females in the group
04:23 (Sensor): That guy looks like he's wearing jewelry and stuff like a girl, but he ain't ... if he's a girl, he's a big one
4:32 (Safety Observer): One of those guys up at the top left's moving.
04:32 (Sensor): Yeah, I see him. I thought I saw him moving earlier, but I don't know if he's...is he moving or is he twitching?
04:32 (Safety Observer): Eh, I think he moved. Not very much, but.
04:32 (Sensor): Can't, can't follow them both.
04:32 (MC): There's one guy sitting down.
04:32 (Sensor): What you playing with? (Talking to individual on ground.)
04:32 (MC): His bone.
04:33 (Safety Observer): Oh, shit. Yeah, you can see some blood right there, next to the...
04:33 (MC): Yeah, I seen that earlier.
04:36 (MC): Is that two? One guy's tending the other guy?
04:36 (Safety Observer): Looks like it.
04:36 (Sensor): Looks like it, yeah.
04:36 (MC): Self-Aid Buddy Care to the rescue.
04:36 (Safety Observer): I forget, how do you treat a sucking gut wound?
04:37 (Sensor): Don't push it back in. Wrap it in a towel. That'll work.
04:38 (Pilot): They're trying to *explicative* surrender, right? I think.
04:38 (Sensor): That's what it looks like to me. 04:38 MC: Yeah. I think that's what they're doing.
04:40 (Sensor): What are those? They were in the middle vehicle.
04:40 (MC): Women and children.
04:40 (Sensor): Looks like a kid.
04:40 (Safety Observer): Yeah. The one waving the flag.
04:42 (Safety Observer): I'd tell him they're waving their...
04:43 (Sensor): Yeah, at this point I wouldn't...I personally wouldn't be comfortable shooting at these people.
04:43 (MC): No.

@ -0,0 +1,13 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
March 2017
Copyright (C) 2017 Nadine Rotem-Stibbe <nadine@rotem.eu>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

@ -0,0 +1,12 @@
Author: Nadine Rotem-Stibbe
Date: 2017
Title: Drone Oddity #3
Description:
What you are hearing are the details of attacks by NATO forces/predators in Afghanistan
The data is collected and researched by a team from 'The Bureau of Investigative Journalism'.
The Bureau has notably undercounted US air strikes in Afghanistan because most air attacks go unreported in open sources including news media.
you can access the document here: https://www.documentcloud.org/documents/1010104-tbij-fata-doc-redacted1.html

@ -0,0 +1,212 @@
number 1.
date: thirteenth of January 2006.
location: Damadola Bajaur Agency.
dead: 16.
injured: 0.
local: 16.
non-local: 0.
remarks: 5 children, 5 women, 6 men, all civilians.
number 2.
date: 30th of October 2006.
location: Attack on a seminary at village Chinagai.
dead: 81.
injured: 0.
local: 81.
non-local: 0.
remarks: 80 children, 1 man, all civilian.
number 3.
date: 29th of January 2008.
location: Attack on Village Khushal, Tehsil Mirali.
dead: 12.
injured: 2.
local: 12.
non-local: 0.
remarks: Civilian.
number 4.
date: 28th of February 2008.
location: Attack on Kalosha/Azam Warsak, South.
dead: 10.
injured: 6.
local: 4.
non-local: 6.
remarks: none.
number 5.
date: 16th of March 2008.
location: Attack on Village Doag Wana proper, South Waz. Agency.
dead: 18.
injured: 7.
local: 0.
non-local: 18.
remarks: 0.
number 6.
date: 14th May 2008.
location: Attack on a Madrassa at Damadola,Bajaur Agency
dead: 18
injured: 18
local: 18
non-local: 0
remarks: Civilian
number 7.
date: 11th of June 2008.
location: Attack on ANA at Gorraparai FC Post in Mohmand Agency. Nato Aircraft attacked the same post causing killing/injuries to LEAs and civillians.
dead: 18.
injured: 18.
local: 18.
non-local: 0.
remarks: Civilian.
number 8.
date: 15th of June 2008.
location: Firing of 03 missiles at Nawaz Kot Makeen 01 01 01 civilian
area Makeen SWA.
dead: 1.
injured: 0.
local: 0.
non-local: 1.
remarks: civilian.
number 9.
date: 28th of July 2008.
location: Attack on Village Azam Warsak, South. Waz: Agency 7.
dead: 7.
injured: 0.
local: 0.
non-local: 7.
remarks: none.
number 10.
date: 12th of August 2008.
location: Attack on Village Azam Warsak, South.
dead: 12.
injured: 0.
local: 12.
non-local: 0.
remarks: none.
number 11.
date: 20th of August 2008.
location: Attack on Zeri Noor Colony, SWA.
dead: 6.
injured: 0.
local: 0.
non-local: 6.
remarks: none.
number 12.
date: 31th of August 2008.
location: Attack on village Tapai, Dawar, NWAs Agency.
dead: 11.
injured: 1.
local: 0.
non-local: 11.
remarks: 3 female, 4 children, non local 1 wife + 1 daughter of Ihsanullha local died.
number 13.
date: 30th of August 2008.
location: Missile Attack at the house of CLASSIFIED at Karez Kot Gangi Kshel Tehsil Datta Khel Miranshah.
dead: 18.
injured: 18.
local: 18.
non-local: 0.
remarks: Civilian.
number 14.
date: 2nd of September 2008.
location: Dropping of four bombs by
forces on Baghar area of Tehsil Birmal
Wana, S.Waz: Agency
dead: 1.
injured: 1.
local: 1.
non-local: 0.
remarks: none.
number 15.
date: 3rd of September 2008.
location: Attack by Foces at_4-houses in
village Jalol Khel Toji Khel Angoor _Adda
Tehsil Birmal Wana
dead: 18.
injured: 3.
local: 18.
non-local: 0.
remarks: none.
number 16.
date: 3rd of September 2008.
location: Attack by Foces at_4-houses in
village Jalol Khel Toji Khel Angoor _Adda
Tehsil Birmal Wana
dead: 5.
injured: 4.
local: 5.
non-local: 0.
remarks: civilian.
number 17.
date: 8th of September 2008.
location: 5 Missile fired by Drones on the
Madrassa of Jalalud Din Haqqani at
Danday Darpa Khel, Tehsil Miranshah
NWA
dead: 5.
injured: 4.
local: 5.
non-local: 0.
remarks: 8 female, 5 children, 7 male, all civilian.
number 18.
No information provided
number 19.
No information provided
number 62.
date: 9th of May 2009.
location: US Drone fired four missiles and hit the house of CLASSIFIED Miami Kabul Khel, DreNashtar Tehsil Shawal on the boundary of North and South Waziristan Agencies.
dead: 5.
injured: 0.
local: 5.
non-local: 0.
remarks: none.
number 65.
date: 19th of June 2009.
location: Five Missiles were fires from Drone at Markaz of Gangi Khel Taliban commander.
dead: 18.
injured: 0.
local: 8.
non-local: 10.
remarks: reportedly among the dead 1 non local 2 afghanis 4 arabs 3 Turkamans are included.
number 101.
date: 15th of January 2010.
location: At 21.00 hours, a residential
compound was targeted with four
guided missiles from US Drone at
Nishpa Mir _Khunai area of Tehsil
Ladha, S.W.Agency.
dead: unknown.
injured: unknown.
local: unknown.
non-local: unknown.
remarks: Details are awaited.
The list continues.
Current Statistics from Drone Strikes in Afghanistan.
1,508 MINIMUM CONFIRMED STRIKES.
2,536 upto 3,268 TOTAL KILLED.
142 200 CIVILIANS KILLED.
24 upto 49 CHILDREN KILLED.
The figures above are running totals of US actions and resulting deaths since the Bureau began recording data.
Most Recent Strike: 20th of March 2017

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,46 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="style.css">
<script src="jquery-3.2.0.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<title>Drone</title>
</head>
<body>
<header>
<div class="title">Drone Oddity <br>#3</div>
<p class="instructions">Please remove your shoes, put your head back and enjoy the sound of death&nbsp;figures!</p>
</header>
<div class="transcript" id="transcroll">
<embed id="watchlist" scrolling="yes" src="detail_of_attack.txt" height="500px"></embed>
</div><!-- /end transcript -->
<div><a href="http://www.warrug.com"></a>Buy war rugs here...</div>
<!-- <img src="img/drone1.svg" alt="">
<img src="img/drone2.svg" alt=""> -->
<img src="img/drone3.svg" alt="">
<footer>
<div class="subtitle">
<a href="https://www.documentcloud.org/documents/1010104-tbij-fata-doc-redacted1.html" target="_blank">Detail of attacks</a> by NATO forces/predators in Afghanistan
</div>
<p>
The data is collected and researched by a team from 'The Bureau of Investigative Journalism'.
The Bureau has notably undercounted US air strikes in Afghanistan because most air attacks go unreported in open sources including news media.
</p>
</footer>
<!--
<script type="text/javascript">
$('#transcroll,body,html').animate({ scrollTop: $('body').height() }, 400000);
</script>
-->
</body>
</html>

File diff suppressed because one or more lines are too long

@ -0,0 +1,149 @@
body{
background-image: url("img/carpet.jpg");
background-attachment: fixed;
background-position: center;
background-size: 100%;
font-family: 'Roboto Mono', monospace;
margin: 0 !important;
}
@font-face {
font-family: 'Roboto Mono', monospace;
src: url(RobotoMono-Regular.ttf);
}
header{
height: 400px;
background: black; /* For browsers that do not support gradients */
background: -webkit-linear-gradient(black, transparent); /* For Safari 5.1 to 6.0 */
background: -o-linear-gradient(black, transparent); /* For Opera 11.1 to 12.0 */
background: -moz-linear-gradient(black, transparent); /* For Firefox 3.6 to 15 */
background: linear-gradient(black, transparent); /* Standard syntax (must be last) */
margin:-10px;
padding-top: 60px;
}
.title {
padding-top: 40px;
text-align: center;
font-size: 70px;
color: white;
margin:auto;
font-weight: 500;;
padding: 6px;
}
.title a {
color:black;
text-decoration: underline;}
a{ text-decoration: none;}
.instructions{
text-align: center;
max-width: 39%;
line-height: 26px;
font-size: 20px;
padding: 10px;
margin: auto;
font-weight: 500;
color: white;
/*background-color: rgba(0,0,20,.85);*/}
.wrap{width: 100%;
}
.transcript{
width:40%;
margin:auto;
height:3400px;
overflow: hidden;
/*border: 4px solid;*/
}
.title-transcript{
margin-top: 0;
margin-bottom: 0;
padding: 35px;
color: white;
background-color: rgba(0,0,20,.9);
font-weight: 500;
font-size: 18px;
}
.title-transcript a{ text-decoration: none;
color: white; }
.transcript embed{
background-color: rgba(255,255,255,.9);
height:3400px;
width: 100%;
}
footer{
height: 500px;
background: black; /* For browsers that do not support gradients */
background: -webkit-linear-gradient(transparent, black); /* For Safari 5.1 to 6.0 */
background: -o-linear-gradient(transparent, black); /* For Opera 11.1 to 12.0 */
background: -moz-linear-gradient(transparent, black); /* For Firefox 3.6 to 15 */
background: linear-gradient(transparent, black); /* Standard syntax (must be last) */
margin:-10px;
padding: 20px;
}
footer p {
color: white;
max-width: 70%;
padding-top: 40px;
margin:auto;
line-height: 1.5em;
font-size: 26px;}
.subtitle{
margin-top: 250px;
max-width: 80%;
margin:auto;
text-align: center;
font-size: 46px;
color: white;
font-weight: 700;;
}
.subtitle a{
text-decoration: none;
color: white;
}
embed::-webkit-scrollbar-track
{
/*border: 1px solid black;
*/ background-color: #F5F5F5;
}
embed::-webkit-scrollbar
{
width: 3px;
background-color: #F5F5F5;
}
embed::-webkit-scrollbar-thumb
{
background-color: #000000;
}
/*////////mobile///////*/
@media screen and (max-width:767px) {
.title{font-size: 30 px;
max-width: 90%;}
.instructions{max-width: 90%;}
.transcript{
margin-top: 50px;
width:90%;
height: 3900px;
}
.transcript embed{height: 3900px;}
.header{margin-bottom: 20px;}
.footer{height: 600px;}
.subtitle{
margin-top: 40px;
font-size: 26px;}
footer p {max-width: 80%;
font-size: 15px;}
}/*end of 767*/

@ -0,0 +1,35 @@
#! /usr/bin/env python
import re, subprocess, random
from time import sleep
# requires: espeak to be installed
dic={
"narrator": "en-us",
}
f=open("detail_of_attack.txt","r")
txt=f.readlines()
for line in txt:
print line
# play time
subprocess.call(["espeak", "-v", dic['narrator'], "-p", "20"]) # narrator speaks: time and character
sleep(0.5) #short pause before sentence
print sentence
if "*CLASSIFIED*" in sentence: #"*expletive*" in sentence is True:
sentence_parts=re.split(r"(\*\w+\*)", sentence)
print sentence_parts
for part in sentence_parts:
if part == '*CLASSIFIED*':
print 'EXPLETIVE', part
subprocess.call(["aplay", 'swear.wav'])
else:
print 'SPEECH', part
subprocess.call(["espeak", part, "-v", voice]) # character speaks: his
sleep(float(random.randint(1,10))/100)
else: # line w/out time or character (narrator)
print "NARRATOR"
subprocess.call(["espeak", line, "-v", dic['narrator'], "-p", "20"])
sleep(1) # make pause after each text line
Loading…
Cancel
Save