Skip to content

Instantly share code, notes, and snippets.

View BenChung's full-sized avatar

Benjamin Chung BenChung

  • University of Washington
  • Seattle, WA
View GitHub Profile
ParserBean host;
try (InputStream is = new FileInputStream(hostGrammar)) {
host = new CupSkinParser().parse(new InputStreamReader(is), hostGrammar.getName());
} catch (Exception e) {
throw new BuildException(e);
}
ParserBean extension;
try (InputStream is = new FileInputStream(extensionGrammar)) {
ArrayList<Pair<String,Reader>> files = new ArrayList<>();
<h1 id="the-downsides-of-sams">The downsides of SAMs</h1>
<p>A point that I think it’s important to talk about is SAMs and the effectiveness (and cost) thereof. There are some pretty bad SAMs in the game, but the one that I want to focus on is the <a href="https://www.reddit.com/r/worldpowers/comments/3e468y/news_avengers_shield_low_frequency_samads/">Avenger’s Shield</a> system in use by the EF, mostly because I’m in the EF and see a lot of it. I’ll use it as an example of what’s wrong with the common conception of SAM systems in operation, use, and deployment, as well as the physics inherent to the problem.</p>
<h2 id="kinematics">Kinematics</h2>
<p>To understand a lot of the justification for the rest of this, you first have to understand why SAMs have ranges at all. As everyone knows, a missile will stop eventually (mostly, it won’t be able to stay airborne anymore). However, an interesting consequence of this is that as a missile slows down, the amount it can actually turn goes down, as the fins on
@BenChung
BenChung / SAMs-2
Last active August 29, 2015 14:27
doc.md
The downsides of SAMs
===
A point that I think it’s important to talk about is SAMs and the effectiveness (and cost) thereof. There are some pretty bad SAMs in the game, but the one that I want to focus on is the [Avenger’s Shield](https://www.reddit.com/r/worldpowers/comments/3e468y/news_avengers_shield_low_frequency_samads/) system in use by the EF, mostly because I’m in the EF and see a lot of it. I’ll use it as an example of what’s wrong with the common conception of SAM systems in operation, use, and deployment, as well as the physics inherent to the problem.
Kinematics
---
To understand a lot of the justification for the rest of this, you first have to understand why SAMs have ranges at all. As everyone knows, a missile will stop eventually (mostly, it won’t be able to stay airborne anymore). However, an interesting consequence of this is that as a missile slows down, the amount it can actually turn goes down, as the fins on the missile can’t produce enough force to keep the missile pointing up enough
#lang racket
(require redex)
(define-language KafKa
(e x
(call e m e)
(new C e ...))
(t anyt C)
(C m x ::= variable)
#:binding-forms (m (x t_1) t_2 e #:refers-to x)))
[silencedetect @ 0x4b64940] silence_start: 15.856
[silencedetect @ 0x4b64940] silence_end: 20.032 | silence_duration: 4.176
[silencedetect @ 0x4b64940] silence_start: 34.736.57 bitrate=N/A speed=64.9x
[silencedetect @ 0x4b64940] silence_end: 38.912 | silence_duration: 4.176
[silencedetect @ 0x4b64940] silence_start: 47.024
[silencedetect @ 0x4b64940] silence_end: 51.008 | silence_duration: 3.984
frame= 1641 fps=1632 q=-0.0 size=N/A time=00:01:05.92 bitrate=N/A speed=65.5x [silencedetect @ 0x4b64940] silence_start: 80.624
[silencedetect @ 0x4b64940] silence_end: 84.736 | silence_duration: 4.112
[silencedetect @ 0x4b64940] silence_start: 97.136
frame= 2484 fps=1649 q=-0.0 size=N/A time=00:01:39.71 bitrate=N/A speed=66.2x [silencedetect @ 0x4b64940] silence_end: 101.248 | silence_duration: 4.112
(define (parse-silence-detect str)
(define outp
(regexp-match #px"(silence_start: ([\\d\\.]*))|(silence_end: ([\\d\\.]*) \\| silence_duration: ([\\d\\.]*))" str))
(if outp
(map (lambda str
(let ([strb (list-ref str 0)])
(if strb (string->number strb) #f)))
(list (third outp) (fifth outp) (sixth outp)))
#f))
#lang racket
(require video/base)
(require video/render)
(define v2 "PLISS_Jun21_13-42-00.mov")
(define (get-indexed-video source index)
(clip source #:filters (list (mux-filter #:type 'video
#:index index))))
digraph G {
node0 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"anullsink\" '#hash() #f)\n 'video\n (filter \"nullsink\" '#hash() #f))\n '#:props\n '#hash()\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node1 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"anullsink\" '#hash() #f)\n 'video\n (filter \"nullsink\" '#hash() #f))\n '#:props\n '#hash()\n '#:counts\n '#hash((video . 1)))\n"];
node2 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"aevalsrc\" '#hash((\"d\" . +inf.0) (\"exprs\" . \"0\")) #f)\n 'video\n (filter\n \"color\"\n '#hash((\"d\" . +inf.0) (\"c\" . \"0x000000ff\") (\"size\" . \"1280x720\"))\n #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node3 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"asplit\" '#hash((0 . 2)) #f)\n 'video\n (filter \"split\" '#hash((0 . 2)) #f))\n '#:props\n '#hash((\"width\"
digraph G {
node0 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"aevalsrc\" '#hash((\"d\" . +inf.0) (\"exprs\" . \"0\")) #f)\n 'video\n (filter\n \"color\"\n '#hash((\"d\" . +inf.0) (\"c\" . \"0x000000ff\") (\"size\" . \"1280x720\"))\n #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node1 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"asetpts\" '#hash((\"expr\" . \"PTS-STARTPTS\")) #f)\n 'video\n (filter \"setpts\" '#hash((\"expr\" . \"PTS-STARTPTS\")) #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node2 [label="(sink-node\n '#:file\n #<path:C:\\Users\\Ben Chung\\Videos\\PLISS\\composite.mov>\n '#:props\n '#hash()\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node3 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"anullsink\" '#hash() #
digraph G {
node0 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"aevalsrc\" '#hash((\"d\" . +inf.0) (\"exprs\" . \"0\")) #f)\n 'video\n (filter\n \"color\"\n '#hash((\"d\" . +inf.0) (\"c\" . \"0x000000ff\") (\"size\" . \"1280x720\"))\n #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node1 [label="(filter-node\n '#:filters\n (hash 'video (filter \"scale\" '#hash((\"width\" . 1280) (\"height\" . 720)) #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node2 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"atrim\" '#hash((\"end\" . +inf.0) (\"start\" . 0)) #f)\n 'video\n (filter \"trim\" '#hash((\"end\" . +inf.0) (\"start\" . 0)) #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video