-
Notifications
You must be signed in to change notification settings - Fork 4
/
index.html
1151 lines (1042 loc) · 39.7 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"
/>
<!-- <link rel="stylesheet" href="node_modules/reveal.js/dist/reset.css" />
<link rel="stylesheet" href="node_modules/reveal.js/dist/reveal.css" />
<link rel="stylesheet" href="node_modules/reveal.js/dist/theme/white.css" />
<link
rel="stylesheet"
href="node_modules/reveal.js/plugin/highlight/zenburn.css"
/> -->
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/reset.min.css"
integrity="sha512-Mjxkx+r7O/OLQeKeIBCQ2yspG1P5muhAtv/J+p2/aPnSenciZWm5Wlnt+NOUNA4SHbnBIE/R2ic0ZBiCXdQNUg=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
/>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/reveal.min.css"
integrity="sha512-ITH3NSfntO7uI5n+BnxGNXpzDUoOsmAXuG37UDONLxNYIdc0EBBOOQ1xyc+t9ag9ETSuBXFApx+Rod0uURfDYw=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
/>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/theme/white.min.css"
integrity="sha512-RoEy1xOWgzryoplQ1g0eNHizP2BRqEq8eLGpRyI6OvM2FvmxpUyiPotvW4rp/I67VN6eFq4DDXQNcFKbNZ5Rrg=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
/>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/plugin/highlight/zenburn.min.css"
integrity="sha512-JPxjD2t82edI35nXydY/erE9jVPpqxEJ++6nYEoZEpX2TRsmp2FpZuQqZa+wBCen5U16QZOkMadGXHCfp+tUdg=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
/>
<style>
.slides section,
.slides h1 {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
text-align: left;
width: max-content;
}
.reveal h1 {
text-transform: none;
border-bottom: 3pt solid #fc3d21;
}
.reveal h2 {
text-transform: none;
}
.nasa-red,
.no-red,
.reveal h2 {
color: #fc3d21;
}
.nasa-blue {
color: #0b3d91;
}
.yes-green {
color: #009900;
}
.image-and-caption {
display: grid;
grid-template-columns: max-content auto;
}
.image-and-caption * {
align-self: center;
}
.split-column {
display: grid;
grid-template-columns: repeat(2, 50%);
column-gap: 2em;
}
.why-switch th img {
width: min-content;
height: 1li;
transform: scale(1.75);
margin-right: 10px;
vertical-align: bottom;
}
.why-switch td {
font-size: xx-large;
}
.conclusion-links {
padding-top: 2em;
display: grid;
grid-template-columns: repeat(3, 1fr);
column-gap: 2em;
}
.conclusion-links img {
width: min-content;
height: 1li;
transform: translateX(50%) scale(3);
margin-right: 30px;
vertical-align: bottom;
}
</style>
<title>GCN: General Coordinates Network</title>
<div class="reveal">
<div class="slides">
<section>
<div style="text-align: right">
<small style="vertical-align: middle">
National Aeronautics and<br />Space Administration
</small>
<img
src="img/nasa-logo.svg"
width="150"
alt="NASA logo"
style="
vertical-align: middle;
border-left: 2pt solid #666;
padding-left: 6pt;
margin-left: 6pt;
"
/>
</div>
<h1>General<br />Coordinates<br />Network</h1>
<p>NASA’s Next Generation Time-Domain and Multimessenger Alert System</p>
<p>
<small
>A service of the
<a href="https://science.gsfc.nasa.gov/astrophysics/">
Astrophysics Science Division
</a>
at
<a href="https://www.nasa.gov/">NASA</a>’s
<a href="https://www.nasa.gov/goddard">
Goddard Space Flight Center
</a>
</small>
</p>
<p><a href="https://gcn.nasa.gov/">https://gcn.nasa.gov</a></p>
</section>
<section data-markdown>
<textarea data-template>
# Gamma-ray<br>Coordinates<br>Network
</textarea>
</section>
<section>
<div class="image-and-caption">
<div>
<h2>Realtime Alerts Born of Necessity</h2>
<img
src="img/cgro-with-batse-diagram.jpg"
alt="CGRO with BATSE Instrument"
width="1024"
/>
</div>
<div data-markdown>
<textarea data-template>
* The Compton Gamma-Ray Observatory’s onboard recorder failed in 1992
* The need to downlink events as they occurred created an opportunity for realtime follow-up
* BAtse COordinates DIstribution NEtwork (BACODINE) was built to receive and distribute those alerts worldwide
</textarea>
</div>
</div>
</section>
<section data-markdown data-template>
<textarea data-template>
## Early History of GCN
<img
src="img/gcn_history.png"
alt="GCN history timeline"
width="1700"
/>
* BACODINE provided new alert formats (phone, email, socket, and pager)
* New instruments and transient types led to the Gamma-ray Coordinates Network
</textarea>
</section>
<section>
<h2>GCN Enabled Seminal Breakthroughs in Astrophysics</h2>
<div class="image-and-caption">
<img
src="img/GCN_classic_logo.gif"
alt="GCN Classic Logo"
width="700"
/>
<div data-markdown>
<textarea data-template>
The GCN community enabled worldwide follow-up observations that revealed the nature of gamma-ray bursts:
* Afterglows and redshifts confirmed their distant, extragalactic origin
* Supernova-GRBs established massive stellar deaths as the cause of long GRBs
* Afterglow and host studies established neutron star mergers as the cause of short GRBs
</textarea>
</div>
</div>
</section>
<section>
<h2>There are two kinds of GCN data products:</h2>
<div class="split-column">
<div data-markdown>
<textarea data-template>
### GCN Notices
<img
src="img/gcn_notice_example.svg"
alt="GCN Notices Example"
width="600"
/>
* By and for machines
* Fixed, predefined format
* Schema specific to each notice type
</textarea>
</div>
<div data-markdown>
<textarea data-template>
### GCN Circulars
<img
src="img/gcn_circular_example.svg"
alt="GCN Circulars Example"
width="600"
/>
* By and for humans (some automated)
* Freeform text (with established style)
* Citable (but not peer-reviewed)
</textarea>
</div>
</div>
</section>
<section>
<h2>The Changing Scientific Landscape</h2>
<div class="image-and-caption">
<div>
<img
src="img/NeutronStarMerger.png"
alt="Neutron Star Merger"
width="700"
/>
</div>
<div data-markdown>
<textarea data-template>
GCN is constantly evolving to serve new transients, messengers, and observatories:
* Gravitational wave events (GW150914, GW170817)
* High-energy neutrinos (IC170922A)
* Tidal disruption events (Swift J1644+57)
* Magnetar giant flares (200415A)
</textarea>
</div>
</div>
</section>
<section>
<h2>The Changing Technological Landscape</h2>
<div class="image-and-caption">
<img src="img/rubin.png" alt="Vera C. Rubin Observatory" width="700">
<div data-markdown>
<textarea data-template>
* Internet standards have led to new, better ways to serialize astronomy data ([VOEvent](https://wiki.ivoa.net/twiki/bin/view/IVOA/IvoaVOEvent), JSON, [Avro](https://avro.apache.org), etc.)
* Encryption is necessary on the modern Internet (e.g. https)
* Industry has developed general time-series databases and streaming frameworks
* The [Vera C. Rubin Observatory](https://www.lsst.org) will use Apache Kafka to distribute [transient alerts as its primary data product](https://www.lsst.org/scientists/alert-brokers)
* Many other experiments are following suit: [Zwicky Transient Facility](https://arxiv.org/abs/1902.02227), [LIGO/Virgo/KAGRA](https://emfollow.docs.ligo.org/)
</textarea>
</div>
</div>
</section>
<section>
<h1>Introducing<br>the new GCN</h1>
</section>
<section>
<section>
<div class="image-and-caption">
<img
src="img/streaming-methods.svg"
alt="GCN streaming methods"
width="1024"
/>
<div data-markdown>
<textarea data-template>
## The New GCN is built on Kafka
* **GCN Classic** provides three formats over _three custom protocols_
* **GCN Classic over Kafka** provides all three formats over _one standard protocol_: Apache Kafka
* **GCN Kafka** will transition over the next few years to streaming all data in JSON format over Kafka (Notices and Circulars)
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img
src="img/Apache_kafka.svg"
alt="Kafka"
width="512"
/>
<div data-markdown>
<textarea data-template>
## What is Kafka?
*Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.*
— from https://kafka.apache.org/
</textarea>
</div>
</div>
</section>
<section>
<div data-markdown>
<textarea data-template>
## Kafka is widely used at NASA
* Existing Kafka applications at NASA include:
* GCN (Goddard Space Flight Center)
* Complex Event Processor - Deep Space Network (Jet Propulsion Laboratory)
* Enterprise Business Information Services (Jet Propulsion Laboratory)
* Federated Airspace Management Framework (Ames Research Center)
* ...plus many other applications in other Federal agencies
* All Federal agencies are using self-managed Kafka brokers, either Apache Kafka or Confluent Platform
* GCN is sponsoring [FedRAMP](https://www.fedramp.gov) authorization for [Confluent Cloud](https://www.confluent.io/confluent-cloud) to make it easy for NASA and other federal agencies to deploy Kafka software-as-a-service
</textarea>
</div>
</section>
<section>
<div data-markdown>
<textarea data-template>
## What is special about GCN's Kafka cluster?
**It's special because it's so ordinary!** It's a plain 3-broker Kafka cluster
* No custom auth extensions to side-load into the server
* No vendor lock-in: we use [Confluent Platform](https://www.confluent.io/product/confluent-platform/), but we could use open-source [Apache Kafka](https://kafka.apache.org) or fully managed solutions like [Confluent Cloud](https://www.confluent.io/confluent-cloud/) or [Amazon MSK](https://aws.amazon.com/msk/)
We use standard [OpenID Connect (OIDC)](https://openid.net/connect/) for single sign-on
* We use [Amazon Cognito](https://aws.amazon.com/cognito/), one of many off-the-shelf OIDC auth solutions
* We use the same auth system across our web site and our Kafka broker
* We have a straightforward path to adopting [SciTokens](https://scitokens.org) (an HPC single sign-on infrastructure based on OpenID Connect, adopted by LIGO)
</textarea>
</div>
</section>
</section>
<section class="why-switch">
<h2>Why switch to the new GCN?</h2>
<table>
<thead>
<tr>
<th></th>
<th>GCN Classic</th>
<th>GCN Classic over Kafka</th>
</tr>
</thead>
<tbody>
<tr>
<th>
<img src="https://cdnjs.cloudflare.com/ajax/libs/uswds/2.13.3/img/usa-icons/account_box.svg" alt="">
Self-service
</th>
<td>
<strong class="no-red">NO.</strong> Users need to contact
administrator in order to make account and subscription changes
</td>
<td>
<strong class="yes-green">YES.</strong> Manage your own
account and subscription settings through the web site
</td>
</tr>
<tr>
<th>
<img src="https://cdnjs.cloudflare.com/ajax/libs/uswds/2.13.3/img/material-icons/connect_without_contact.svg" alt="">
Open standards
</th>
<td>
<strong class="no-red">NO.</strong> Notices are sent using
three custom protocols
</td>
<td>
<strong class="yes-green">YES.</strong> Notices are sent using
one standard protocol,
<a href="https://kafka.apache.org" rel="external" class="usa-link"
>Apache Kafka</a
>
</td>
</tr>
<tr>
<th>
<img src="https://cdnjs.cloudflare.com/ajax/libs/uswds/2.13.3/img/usa-icons/github.svg" style="width: 24px;height: 24px;" alt="">
Open source
</th>
<td>
<strong class="no-red">NO.</strong> Custom software needed
to receive notices
</td>
<td>
<strong class="yes-green">YES.</strong> Receive notices
using open-source software
</td>
</tr>
<tr>
<th>
<img src="https://cdnjs.cloudflare.com/ajax/libs/uswds/2.13.3/img/usa-icons/cloud.svg" alt="">
Highly available
</th>
<td>
<strong class="no-red">NO.</strong> Notices are broadcast
by a single server
</td>
<td>
<strong class="yes-green">YES.</strong> Notices are
broadcast by a cluster of highly-available Kafka brokers in the
cloud
</td>
</tr>
<tr>
<th>
<img src="https://cdnjs.cloudflare.com/ajax/libs/uswds/2.13.3/img/usa-icons/security.svg" alt="">
Secure
</th>
<td>
<strong class="no-red">NO.</strong> Notices are sent as
plaintext
</td>
<td>
<strong class="yes-green">YES.</strong> Notices are
protected with SSL/TLS
</td>
</tr>
</tbody>
</table>
</section>
<section>
<section>
<div class="image-and-caption">
<img
src="img/landing-page-screenshot.png"
alt="Screen shot of new web site"
width="1024"
/>
<div data-markdown>
<textarea data-template>
## New GCN web site
at https://gcn.nasa.gov
* Updated look and feel
* More accessible, based on [US Web Design System](https://designsystem.digital.gov)
* Single sign on with:
* email and password
* Google
* Facebook
* LaunchPad (for NASA employees and affiliates)
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img
src="img/tech-stack.svg"
alt="Tech Stack"
width="800"
/>
<div data-markdown>
<textarea data-template>
## What is our tech stack?
* [NASAWDS](https://github.com/bruffridge/nasawds) style framework, based on the [US Web Design System](https://designsystem.digital.gov)
* Emphasizes accessability
* Used by most Federal agencies
* 100% [TypeScript](https://www.typescriptlang.org)
* Asynchronous & scalable
* Single codebase for server & client
* Early adopters of [Remix](https://remix.run/), a full-stack [React](https://reactjs.org) framework
* Continuously deployed on [AWS Lambda](https://aws.amazon.com/lambda/) using [GitHub Actions](https://docs.github.com/en/actions) and [Architect](https://arc.codes)
* 100% open source — contributions welcome! https://github.com/nasa-gcn/gcn.nasa.gov
</textarea>
</div>
</div>
</section>
</section>
<section>
<div class="image-and-caption">
<img
src="img/screen-shot-email.png"
alt="Screen shot of email notification form"
width="1024"
/>
<div data-markdown>
<textarea data-template>
## Self-service email alerts
Email is still the most popular way to receive GCN Notices.
* Previously, users had to contact the GCN Team to create or modify their subscriptions manually.
* Now, you can manage your email subscriptions yourself through our new web site.
* **Note**: to cancel legacy email subscriptions on the old web site, [contact us](https://heasarc.gsfc.nasa.gov/cgi-bin/Feedback?selected=gcnclassic).
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img
src="img/screen-shot-circulars-archive.png"
alt="Screen shot of GCN Circulars archive"
width="800"
/>
<div data-markdown>
<textarea data-template>
New and improved:
## ✨GCN Circulars✨
at https://gcn.nasa.gov/circulars
* Browse and search our new [archive](https://gcn.nasa.gov/circulars).
* Manage your own email subscriptions.
* Enroll yourself and your colleagues to submit Circulars with arXiv-style peer endorsements.
* Submit Circulars with our [new Web form](https://gcn.nasa.gov/circulars/new), or continue to submit by email.
[(skip ahead for more on GCN Circulars)](#the-new-gcn-circulars)
</textarea>
</div>
</div>
</section>
<section data-markdown>
<textarea data-template>
## What’s staying the same?
GCN Classic is not going away any time soon. The following are still fully supported:
* GCN Notices legacy delivery mechanisms (email, socket, VOEvent Transport Protocol) of all current notice types
* GCN Circulars submission and delivery via email
* The old GCN Classic web site, https://gcn.gsfc.nasa.gov
* The live archives of [GCN Notices](https://gcn.gsfc.nasa.gov/burst_info.html) on the old web site
However, new features and notice types are only available on the new web site and GCN Kafka.
</textarea>
</section>
<section>
<h1>Streaming GCN<br>Notices in Python</h1>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-streaming-notices-00-landing.png" width="900" alt="Screen shot">
<div data-markdown>
<textarea data-template>
## Launch quick start
Go to https://gcn.nasa.gov and click [Start streaming GCN Notices](https://gcn.nasa.gov/quickstart)<br>
<br>
<a href="#skip-demo">(skip past demo)</a>
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-streaming-notices-01-step-1.png" width="900" alt="Screen shot">
<div data-markdown>
<textarea data-template>
## Step 1: Sign in / Sign up
Click "Sign in / Sign up" to create a GCN account.
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-streaming-notices-02-sso.png" width="900" alt="Screen shot">
<div data-markdown>
<textarea data-template>
## Choose how to sign up
Choose any one of the following methods to sign up:
* Email and password
* Google
* Facebook
* (for NASA employees and affiliates) LaunchPad
**Important: make sure you sign in the same way each time.**
Accounts are *not* linked.
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-streaming-notices-03-step-1-complete.png" width="900" alt="Screen shot">
<div data-markdown>
<textarea data-template>
## Step 1 is done
Click "Next" to continue
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-streaming-notices-04-step-2.png" width="900" alt="Screen shot">
<div data-markdown>
<textarea data-template>
## Step 2:<br>Select Credentials
Client credentials allow your scripts to interact with GCN on your behalf.
1. Choose a name for your credential.
2. Complete the CAPTCHA.
3. Click "Create New Credentials" to go to the next step.
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-streaming-notices-05-step-3.png" width="900" alt="Screen shot">
<div data-markdown>
<textarea data-template>
## Step 3: Customize Alerts
Select one of these alert formats.
* Text: plain text key-value pairs separated by newlines.
* VOEvent: [VOEvent XML](http://ivoa.net/Documents/latest/VOEvent.html).
* Binary: 160-byte binary format. Field packing is [specific to each notice type](https://gcn.gsfc.nasa.gov/sock_pkt_def_doc.html).
* JSON: key-value pairs and arrays, allows embedding attachments.
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-streaming-notices-06-step-3-select-notice-types.png" width="900" alt="Screen shot">
<div data-markdown>
<textarea data-template>
## Step 3 Continued: Choose Notice Types
Select the missions that you want to subscribe to. Expand a mission to fine-tune notice types.
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-streaming-notices-07-step-4.png" width="900" alt="Screen shot">
<div data-markdown>
<textarea data-template>
## Step 4:<br>Get Sample Code
Copy and paste Python client code or download it to your computer to run.
Client sample code is also available in Node.js (ESM or CommonJS), C/C++, C#.
</textarea>
</div>
</div>
</section>
<section data-markdown>
<textarea data-template>
## Install Python client
Run this command to install with [pip](https://pip.pypa.io/):
```
pip install gcn-kafka
```
or this command to install with with [conda](https://docs.conda.io/):
```
conda install -c conda-forge gcn-kafka
```
---
## Connect to Kafka
```python
from gcn_kafka import Consumer
consumer = Consumer(
client_id='fill me in',
client_secret='fill me in'
)
```
---
## Subscribe to topics and receive alerts
```python
consumer.subscribe([
'gcn.classic.text.LVC_INITIAL',
'gcn.classic.text.LVC_PRELIMINARY',
'gcn.classic.text.LVC_RETRACTION',
'gcn.classic.text.LVC_UPDATE'
])
while True:
if message.error():
print(message.error())
continue
for message in consumer.consume(timeout=1):
print(message.value())
```
</textarea>
</section>
<section data-markdown id="skip-demo">
<textarea data-template>
# The New GCN Circulars
</textarea>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-circulars-detail.png" width="800" alt="Screen shot of a GCN Circular">
<div data-markdown>
<textarea data-template>
## Improvements to Circulars
The new GCN Circulars are:
* **Self service**: Manage your own subscriptions and settings.
* **More inclusive**: It's easy to join the community and submit a GCN Circular.
* **Fast**: Email notifications are distributed in parallel to all users within seconds.
* **Robust**: Circulars run on highly available, distributed cloud services.
* **Sustainable**: GCN Circulars are robustly funded by NASA and are part of the open source GCN project.
</textarea>
</div>
</div>
</section>
<section data-markdown>
<textarea>
## Migrating GCN Circulars from GCN Classic
On April 17, 2023, GCN Circulars moved from the old site to the new one. If you had an account on the old system, then you already have an account on the new one!
### GCN Circulars Migration Cheat Sheet
<table class="why-switch">
<thead>
<tr>
<th></th>
<th>Old</th>
<th>New</th>
</tr>
</thead>
<tbody>
<tr>
<th>
<img src="https://cdnjs.cloudflare.com/ajax/libs/uswds/2.13.3/img/usa-icons/local_library.svg" alt="">
Web archive
</th>
<td><a href="https://gcn.gsfc.nasa.gov/gcn3_archive.html">https://gcn.gsfc.nasa.gov/<wbr>gcn3_archive.html</a></td>
<td><a href="https://gcn.nasa.gov/circulars">https://gcn.nasa.gov/<wbr>circulars</a></td>
</tr>
<tr>
<th>
<img src="https://cdnjs.cloudflare.com/ajax/libs/uswds/2.13.3/img/usa-icons/mail.svg" alt="">
Emails come from
</th>
<td>[email protected]</td>
<td>[email protected]</td>
</tr>
<tr>
<th>
<img src="https://cdnjs.cloudflare.com/ajax/libs/uswds/2.13.3/img/usa-icons/send.svg" alt="">
Submit Circulars by email to
</th>
<td><a href="mailto:[email protected]">[email protected]</a></td>
<td>
<div><a href="mailto:[email protected]">[email protected]</a></div>
<div><a href="mailto:[email protected]">[email protected]</a> <small style="vertical-align: baseline">(recommended)</small></div>
</td>
</tr>
<tr>
<th>
<img src="https://cdnjs.cloudflare.com/ajax/libs/uswds/2.13.3/img/usa-icons/language.svg" alt="">
Submit Circulars by web form
</th>
<td><span style="color: gray">(not supported)</span></td>
<td><a href="https://gcn.nasa.gov/circulars/new">https://gcn.nasa.gov/circulars/new</a></td>
</tr>
</tbody>
</table>
</textarea>
</section>
<section>
<h1>Tutorial:<br/>Receiving GCN Circulars</h1>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-signin-01.png" width="900" alt="Screen shot of a GCN Circulars sign in">
<div data-markdown>
<textarea data-template>
## Step 1: Sign in / Sign up
Click "Sign in / Sign up" to sign in to your GCN account or to sign up.
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-streaming-notices-02-sso.png" width="900" alt="Screen shot">
<div data-markdown>
<textarea data-template>
## Choose how to sign up
Choose any one of the following methods to sign up:
* Email and password
* Google
* Facebook
* (for NASA employees and affiliates) LaunchPad
**Important: make sure you sign in the same way each time.**
Accounts are *not* linked.
**Legacy GCN Classic Circulars users**: Select “Sign up” not “Sign in” on first login to migrate your settings.
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-signin-02.png" width="900" alt="Screen shot">
<div data-markdown>
<textarea data-template>
## Step 2: Go to Email Notifications settings
* Select the user menu from the navigation bar.
* Choose **Email Notifications** from the user menu.
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-email-notifications.png" width="900" alt="Screen shot">
<div data-markdown>
<textarea data-template>
## Step 3: Toggle Email Notifications
Toggle Circulars **On** or **Off** to enable or disable email notifications.
- Circulars are sent to the email address that is associated with your GCN account.
- **Users migrated from GCN Classic**: If you were subscribed to GCN Circulars in the old system, then you are subscribed in the new system automatically.
</textarea>
</div>
</div>
</section>
<section>
<h1>Tutorial:<br/>Submitting GCN Circulars</h1>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-circulars-archive.png" width="900" alt="Screen shot of a GCN Circulars archive">
<div data-markdown>
<textarea data-template>
## Step 1: Go to New Circular web form
1. Navigate to the GCN Circulars archive by tapping on **Circulars** in the navigation bar.
2. Tap the **New** button.
***—or—***
Go to https://gcn.nasa.gov/circulars/new
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-circulars-submit-sign-in.png" width="900" alt="Screen shot of a GCN Circulars submit sign in">
<div data-markdown>
<textarea data-template>
## Step 2: Sign in / Sign up
If you are not already signed in, then you will be prompted to sign in.
Tap **Sign in**, then follow the instructions to create a GCN account or sign in with an existing one.
<small>(These are the same accounts used for receiving GCN Circulars, using Kafka, etc.)</small>
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-circulars-peer-endorsement-00.png" width="900" alt="Screen shot of a GCN Circulars peer endorsement process">
<div data-markdown>
<textarea data-template>
## Step 3: Get a Peer Endorsement
**New users**: once you have signed in to GCN, you will be prompted to start the peer endorsement process. Tap **Get a peer endorsement**.
**Users migrated from GCN Classic**: If you were authorized to submit GCN Circulars in the old system, then you are already authorized to submit Circulars and can endorse others once you have signed in to the new web site.
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-circulars-peer-endorsement-01.png" width="900" alt="Screen shot of a GCN Circulars peer endorsement process">
<div data-markdown>
<textarea data-template>
## Step 4: Find a Peer Endorser
Find an endorser by name or email.
This should be someone who you know and who knows you: a fellow
researcher, an advisor, or instructor.
**Note**: Endorsers are users who already can submit Circulars _and_ have logged in to the new GCN system at least once.
[Contact us at https://gcn.nasa.gov/contact](https://gcn.nasa.gov/contact) if you can't find an endorser.
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-circulars-peer-endorsement-02.png" width="900" alt="Screen shot of a GCN Circulars peer endorsement process">
<div data-markdown>
<textarea data-template>
## Step 5: Submit Peer Endorsement Request
Tap **Request**.
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-circulars-peer-endorsement-03.png" width="900" alt="Screen shot of a GCN Circulars peer endorsement process">
<div data-markdown>
<textarea data-template>
## Step 5 (continued)
You can find this page again to see the status of your requests by tapping **Peer Endorsements** in the user menu.
* Both you and the person that you selected will receive an email notification for the request.
* When your selected endorser approves your request, you will be notified again.
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-circulars-peer-endorsement-04.png" width="900" alt="Screen shot of a GCN Circulars peer endorsement process">
<div data-markdown>
<textarea data-template>
## Step 6: Approve Peer Endorsements Yourself
Congratulations! Now you can post GCN Circulars and you can also approve new users yourself.
When a new user requests an endorsement from you, the request will appear on this same page.
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-profile.png" width="900" alt="Screen shot of a GCN Circulars submit">
<div data-markdown>
<textarea data-template>
## Step 7: Update your Profile and Review the Style Guide
Prepare to submit your first Circular:
* Review the community's [Circulars style guide](https://gcn.nasa.gov/docs/circulars/styleguide).
* Update your name and optional affiliation as they will appear in Circulars by selecting **Profile** from the user menu.
</textarea>
</div>
</div>
</section>
<section>
<div class="image-and-caption">
<img src="img/screen-shot-circulars-submit.png" width="900" alt="Screen shot of a GCN Circulars submit">
<div data-markdown>
<textarea data-template>
## Step 8: Post a Circular
Submit a Circular in exactly _one_ of the following ways:
* By web form: click **New** button on the GCN Circulars archive
* By email: send to [email protected]
* By email (legacy): send to [email protected]