# 2019/12/09: YOW! Melbourne 2a

by Gene Kim on

#Yow19

2019/12/09: YOW! Melbourne 2a

Up: Chris Read: Bare Metal Cloud (@cread!) Woot! #yow19

  • @cread: "
  • @RealGeneKim: RT @lizthegrey: The move keyword is kind of cool! It means that you don't have to manually adjust closure capture of fields you reference, unlike common gotcha in Golang where you fail to pass values into the params of go func(x, y, ...) {}(x, y, ...) causing them to accidentally share. #YOW19
  • @RealGeneKim: RT @unixbigot: Rust, says Erik, looks deceptively simple. However you will find huge compiler errors will baffle you initially until you understand how to do things idiomatically. The compiler is enforcing safe memory access using some trick rules that will begin to make sense soon. #yow19

Erik’s Rust genetic programming problem was 30x faster than Clojure and just as safe and function-y. Then he optimized to make it 250x faster. In there was more to optimize. #yow19

  • @RealGeneKim: RT @lizthegrey: And the Rust compiler aims to be Super Helpful with colorful ASCII art, links to the documentation, etc.; however the borrow checker will quickly become your nemesis as it tries to keep you safe. #YOW19
  • @RealGeneKim: RT @lizthegrey: Okay, I think I'm starting to understand why Rust is more spiritually like C++ but safer, whereas Go has gone entirely off in its own direction... #YOW19

  • @cread describing horrendous problem resulting in timeouts and SLA failures for data loads. The problem? "SDN provider throttled their network to 100Mb/sec b/c of a software or config problem. Hid all the errors, preventing easy resolution." (Horrors!)

  • @RealGeneKim: #Yow19 @cread describing horrendous problem resulting in timeouts and SLA failures for data loads. The problem? "SDN provider throttled their network to 100Mb/sec b/c of a software or config problem. Hid all the errors, preventing easy resolution." (Horrors!) https://t.co/wfMjfD8jDc

  • @cread: "

  • @unixbigot: I think (40mins in) I’m starting to get what @hillelogram is talking about. A specification language that presumes that any process can crash at any time, and then (I expect) finds the edge cases you didn’t consider. Even weird edge cases that require a chain of errors. #yow19

  • @damovisa: "Who here has heard of someone checking in an auth token to their public repo?" -@cread at #YOW19

Yes... Uh, I've heard of that... https://t.co/WJ8TI6b77I
- @BinaryVixen899: Again you're not going to see this stuff without tools like TLA+, you can hit an error that you would never see unless the stars magically aligned. Something you don't see in code, don't see on paper, and, as @hillelogram notes "You've lost a customer" #YOW19
- @RealGeneKim: RT @BinaryVixen899: Again you're not going to see this stuff without tools like TLA+, you can hit an error that you would never see unless the stars magically aligned. Something you don't see in code, don't see on paper, and, as @hillelogram notes "You've lost a customer" #YOW19

  • @cread: "Many people are using EBC (AWS Elastic Block Storage) have lost lots of data, b/c they assumed that it wouldn't fail like a typical hard drive. They didn't read the docs."
  • @cread: "until recently, the AWS max TCP thruput was 2.5Gb/sec; that's for all your network, storage, and interacting with your users; often, you may hit those limits" (at inopportune times)

  • @cread: "We had instance for 6 weeks where AWS wouldn't spin up certain instance type; just showed up as PENDING; it was due to some BIOS error that made this instance type unavailable" (!!)

  • @cread: "

  • @cread on cloud costs: "Public cloud: it's cheaper (esp spot instances, sig savings), but devs will find cool/expensive features to use (ha!), beware data egress fees, add $$$ to your monitoring/alerts; there's no depreciation; Private cloud: it's more expensive; find hidden costs

Up: JavaScript: Skeletons in the Closet: Allen Wirfs/Brock (@awbjs) (!!!)

  • @awbjs: "Stack Overflow 2019 Dev Survey: 70% of professional devs us JavaScript"

  • @awbjs: "hopefully this time next year, this paper 'JavaScript: the first 20 years' paper will be published, co-authored with Branden Eich" (!!). (185 pages?)

  • @awbjs: "How did a scripting language written in 10 days become the world's most used programming language?"

  • @awbjs: the aforementioned paper to be

  • @awbjs: "JavaScript prehistory: 1990 - 1995"

  • @ryangribble_: Whilst we've thrown out large up front design, too often teams make the dumb choice to do NO design!
    @simonbrown tells us we should do SOME design up front, and evolutionary design throughout #YOW19 https://t.co/a6BvMJduNg

  • @awbjs: "1995; JavaScript Year 0; when browsers could finally run programs; Eich hired to implement Scheme inside of Netscape Navigator"

  • @awbjs: "Eich starts just when Sun announces Java; Netscape licenses Java for browser; Eich tries to figure out if they still need Scheme in browser.. Continuous fear of what Microsoft will do

  • @awbjs: "Eich used to be Unix kernel hacker; never wrote professional language before... Java seemed misfit for web programmers, who typically weren't programmers, who primarily did HTML... Office Visual Basic seemed good comparable model

  • @awbjs: "May 6-15, 1996: Eich gets go-ahead to build scripting language; parser; byte code interpreter; decompiler, browser REPL; 10 days"

  • @RealGeneKim: #Yow19 @awbjs: "May 6-15, 1996: Eich gets go-ahead to build scripting language; parser; byte code interpreter; decompiler, browser REPL; 10 days" https://t.co/l0urEnK5ZB

  • @awbjs: "...10 days later, here's what Eich demoed to Netscape execs; REPL at bottom, alert box" (no DOM yet, only thing to do is alert box!)

  • @RealGeneKim: #Yow19 @awbjs: "...10 days later, here's what Eich demoed to Netscape execs; REPL at bottom, alert box" (no DOM yet, only thing to do is alert box!) https://t.co/IdFzkIdH1m

  • @awbjs: "People said 'Cool! Ship it!'; 3 months to get it for next Netscape beta; he then started building the DOM, so JavaScript could manipulate it; code name Mocha -> LiveScript -> JavaScript (after licensing deal w/Sun)

  • @RealGeneKim: #Yow19 @awbjs: "People said 'Cool! Ship it!'; 3 months to get it for next Netscape beta; he then started building the DOM, so JavaScript could manipulate it; code name Mocha -> LiveScript -> JavaScript (after licensing deal w/Sun) https://t.co/H24AfwzA4Q

  • @awbjs: "Microsoft responds; realizing they're being left behind; they ship IE 1.0; months later, IE 2.0; Windows 95 ships; announces Visual Basic will be language for the web" (!!)

- @RealGeneKim: #Yow19 @awbjs: "Microsoft responds; realizing they're being left behind; they ship IE 1.0; months later, IE 2.0; Windows 95 ships; announces Visual Basic will be language for the web" (!!) https://t.co/IorDTuOKmo

  • @RealGeneKim: #Yow19 @awbjs: "Microsoft responds; realizing they're being left behind; they ship IE 1.0; months later, IE 2.0; Windows 95 ships; announces Visual Basic will be language for the web" (!!) https://t.co/IorDTuOKmo

  • @awbjs: "Eich's new marching orders: 'Make it look like Java!'; Features came from C, ask, scheme/self, Java Date, perl, python

  • @awbjs: "Eich wasn't allowed to make language too sophisticated; that was reserved for Java"

  • @RealGeneKim: #Yow19 @awbjs: "Eich wasn't allowed to make language too sophisticated; that was reserved for Java" https://t.co/sarjIx3tS7

  • @awbjs: "Here's how == and coercion came around, which we've all been bitten by; a big reason was Netscape HTTP server team, and need to compare 404 strings" (!!)

  • @RealGeneKim: #Yow19 @awbjs: "Here's how == and coercion came around, which we've all been bitten by; a big reason was Netscape HTTP server team, and need to compare 404 strings" (!!) https://t.co/lOLhxg2682

  • @awbjs: I'm reeling, listening to birth of == problems; it was to help early programmers deal with error

  • @jchyip: You can’t do arithmetic operations on HTTP status codes; they’re not numbers. #yow19

  • @janellekz: Wow. This is pretty great...

Did you know == type coercion was originally a feature? Heh.

@awbjs #YOW19 https://t.co/YnhPsi9NA6
- @janellekz: Wow. This is pretty great...

Did you know == type coercion was originally a feature? Heh.

@awbjs #YOW19 https://t.co/YnhPsi9NA6

  • @awbjs: "1996: IE 3.0 included JScript and VBScript; Netscape 3.0 ships with JavaScript 1.1

  • @awbjs: "...and now that sets the conditions for standardization, to allow browsers to be cross-compatible: Emma TC39 standardization startup meeting

  • @awbjs: "Eich goes home for 2 weeks... and rewrote JavaScript engine called SpiderMonkey, which for 15 years, served as the de facto reference platform for JS

  • @awbjs: "...it was during that period that Eich realizes that == was terrible mistake, and shipped version where it behaves ====... but... it broke

  • @awbjs: "

  • @unixbigot: The live transcription of the @awbjs talk on JavaScript just transcribed “double equal” as “devil equal”. This is now my headcanon. #yow19

  • @awbjs: "..to everyone's shock, Microsoft draft used as basis for JS standard, because it was so much better -- it was written overnight. 3 core members: Eich, Katzenberge, and... WOW! Guy Steele!" (What?!)

  • @RealGeneKim: #Yow19 @awbjs: "..to everyone's shock, Microsoft draft used as basis for JS standard, because it was so much better -- it was written overnight. 3 core members: Eich, Katzenberger, and... WOW! Guy Steele!" (What?!) https://t.co/okEcFZqpjV

  • @awbjs: "...this trio is the one who decided that old, bad == had to be retained, because it would break existing code..."

  • My gosh. Head is spinning. Guy Steele?!? RT @unixbigot: “Fractally weird” aptly describes the story of JavaScript. When you take a tiny piece of the language and look at it under a microscope, it looks just as gnarly and convoluted and nonsensical as the whole. #yow19

  • @awbjs: @unixbigot: I'm the one in back of room, with jaw on ground. Keep thinking, "can this get any weirder?" Hahahaha

  • @awbjs: "Total turnover in ECMAscript committee; all new members didn't actually like JavaScript..". OMG...

  • @awbjs: "ECMAScript Phase 2: the reformers wander in the desert for 10 years; Microsoft has 90% market share, Netscape had 5%" (hearing this, Microsoft deserved to win!)

  • @awbjs: "ECMAScript 4: JScript.NET: static typed! JavaScript 2.0; dynamic types! And ActionScript from Macromedia Flash" (all competing to be standard)

  • @RealGeneKim: #Yow19 @awbjs: "ECMAScript Phase 2: the reformers wander in the desert for 10 years; Microsoft has 90% market share, Netscape had 5%" (hearing this, Microsoft deserved to win!) https://t.co/zEpGiMVxgQ

  • @RealGeneKim: #Yow19 @awbjs: "ECMAScript 4: https://t.co/Sb0LfXmgLp: static typed! JavaScript 2.0; dynamic types! And ActionScript from Macromedia Flash" (all competing to be standard) https://t.co/eQuJtTtp3p

  • @unixbigot: When it became clear that Java was a failure in the Browser, the JavaScript TC went fully apeshit and decided to try and out-java-java. Years were wasted on a failed ES4 process. Out of this collision between Microsoft and Netscape flew a decay product that became Flash. #yow19 https://t.co/XjHXJsS3uR

  • @awbjs: "Browser game theory: don't break the web: millions of active URLs that aren't maintained; cannot break those!"

  • @RealGeneKim: #Yow19 @awbjs: "Browser game theory: don't break the web: millions of active URLs that aren't maintained; cannot break those!" https://t.co/gtHvdKKL3B

  • @awbjs: "...and that's why ES3 is the basis of JavaScript..." (wow)

  • @awbjs: My question: what happened to Guy Steele? Why did he leave effort?

Up: Josh Long, @starbuxman: Explore the wacky, wonderful world of Reactive Spring together.

  • @yow_conf: Blue room: Join @starbuxman, your guide & Spring developer advocate and explore the wacky, wonderful world of Reactive Spring together. #YOW19 https://t.co/Q14jhnhst0 https://t.co/HTXuuUuOk4
  • @yow_conf: Blue room: Join @starbuxman, your guide & Spring developer advocate and explore the wacky, wonderful world of Reactive Spring together. #YOW19 https://t.co/Q14jhnhst0 https://t.co/HTXuuUuOk4

  • @starbuxman: "in 2019, we now have laptops with 64GB of RAM; we finally have enough RAM to run both Slack and Chrome!" 😂😂😂

  • @starbuxman: "reactive programming; main driver: how do we support more users in our systems; lots of new scale problems that didn't exist before

  • @starbuxman: "One new problem: one view needs a ton of HTTP calls to myriad backend services; scale problems are good, but challenges way we used to build apps; often we exhaust all available threads

  • @starbuxman: "On the JVM, threads are precious to use the old, synchronous way... Netflix, Pivotal, Lightbend, and many others got together to define Reactive Spring, to define how to handle asynchronous ops at scale

  • @starbuxman: "...and then hibernate doesn't just throw an exception... it gives you a big middle-finger in ASCII art, and crashes your kernel...". (OMG. Hahaha. Maybe you just had to be there.)

  • @starbuxman: "Make JAR, not WAR" hahaha

  • @starbuxman: "

  • @unixbigot: “Imagine if you used [tool] and it didn’t just throw an exception, but rendered an ASCII-art middle finger and then kernel panicked your machine” - @starbuxman on why Pivotal made a particular architectural decision. #yow19

  • @JacobyDave: RT @unixbigot: Out of the JavaScript Wars came a common understanding of Browser Game Theory. Don’t Break The Web. #yow19 https://t.co/gvh

  • @starbuxman: "By definition, we can't DOS a consumer that controls its own control flow" (a key concept in Reactive Spring standard: publisher, subscriber)

  • @starbuxman: describing his dream to disable a checkbox in IntelliJ, to ensure people always see the Spring ASCII art

  • @RealGeneKim: #Yow19 @starbuxman: describing his dream to disable a checkbox in IntelliJ, to ensure people always see the Spring ASCII art https://t.co/SMShd8oizS

  • @lizthegrey: [ed: turning attention to how one instruments, which I imagine requires further work vs what we've done with @OpenTelemetry auto-instrument or @honeycombio Java beeline which assumes Spring Boot but reactive record worker model is prohibitively expensive for record = span] #YOW19

  • @starbuxman: "...remember, there is only ONE person who understands how to do multithreaded programming in Java... and it's not you." (Hahaha)

  • @lizthegrey: [ed: also... wow, modern Java has come far from the Java 6 that I used to develop back in 2008... but on the other hand, I'd just shove a goroutine & channel in there, but we saw how well that worked for me on Advent of Code last night...] #YOW19

  • @lizthegrey: [ed: also... wow, modern Java has come far from the Java 6 that I used to develop back in 2008... but on the other hand, I'd just shove a goroutine & channel in there, but we saw how well that worked for me on Advent of Code last night...] #YOW19

  • @starbuxman: "Rsocket... created at Netflix...then facebook"

  • @lizthegrey: [ed: I'm... maybe starting to understand what people perceive when I do #AdventOfCode livestreams where I spit out dozens of lines of Go code like magic ;) because I am in awe of @starbuxman's mad Java skillz] #YOW19

  • @lizthegrey: [ed: I'm... maybe starting to understand what people perceive when I do #AdventOfCode livestreams where I spit out dozens of lines of Go code like magic ;) because I am in awe of @starbuxman's mad Java skillz] #YOW19

  • @starbuxman: "Alibaba has been Spring for 15 years" (what an amazing technology and business performance, most evidenced by this year's Singles Day)

Up: Dr. Sabine Hauert, Bristol Robotics Lab, @sabinehauert

  • @RealGeneKim: #Yow19 # Up: Dr. Sabine Hauert, Bristol Robotics Lab, @sabinehauert https://t.co/wFnZGDPrxN

  • @sabinehauert: "

  • @damovisa: Choosing out the day hearing @sabinehauert talk about swarm engineering at #YOW19 https://t.co/SghkAYZiSW

  • @unixbigot: The closing “locknote” for #yow19 Brisbane Day 1 is Dr Sabine @sabinehauert Hauert, Associate professor in robotics at University of Bristol. Swarm engineering, from robots to nanoscale. I love these mind blowing YOW locknotes! https://t.co/I7LSCPPjau

  • @lizthegrey: @sabinehauert Swarms of birds can fluidly add members, without a specific leader, by simply reacting to their local environment.

Ants can find food, bees can decide where to nest, and human beings can grow from small numbers of cells communicating... #YOW19
- @opexcain: RT @lizthegrey: @sabinehauert Swarms of birds can fluidly add members, without a specific leader, by simply reacting to their local environment.

Ants can find food, bees can decide where to nest, and human beings can grow from small numbers of cells communicating... #YOW19
- @opexcain: RT @lizthegrey: @sabinehauert Swarms of birds can fluidly add members, without a specific leader, by simply reacting to their local environment.

Ants can find food, bees can decide where to nest, and human beings can grow from small numbers of cells communicating... #YOW19
- @lizthegrey: "Yes, before we throw things on flying things in the air, we mathematically model." so yes, the behavior was expected where the behavior degenerated to clustered circles.

The parameters of swarm capabilities (e.g. turning, comms distance) change behavior. #YOW19
- @damovisa: Just by limiting communicating range and following 4 basic rules, we get swarming behaviour. If you miss one rule, they clump together, fly apart, or just fly away and you never see them again.
@sabinehauert at #YOW19 https://t.co/o7MoOrjLvG
- @damovisa: RT @lizthegrey: Four basic rules: attraction/repulsion to neighbors, align heading to neighbors, and stay within a given area (that last one mostly for experimenter convenience). This generates surprisingly bird-like behavior. #YOW19
- @hillelogram: @sabinehauert Demo'd a 10 robot swarm, with gps and interfaces. Converge to "circular topology." This was predicted, heavy mathematical modeling first. Lots of knobs to tweak.

Can it scale to 100s of robots? Started working with NANOBOTS at MIT #yow19
- @lizthegrey: But that was only 10 robots swarming. How can we get larger swarms? By making each element of the swarm smaller!

Microparticles can infiltrate tumors through leaky blood vessels, that we can then control. #YOW19

  • @sabinehauert: "10 - 200 nm, the scale I'm working at now" whoa

  • @sabinehauert: "

  • @lizthegrey: But that was only 10 robots swarming. How can we get larger swarms? By making each element of the swarm smaller!

Microparticles can infiltrate tumors through leaky blood vessels, that we can then control. #YOW19
- @RealGeneKim: RT @lizthegrey: But that was only 10 robots swarming. How can we get larger swarms? By making each element of the swarm smaller!

Microparticles can infiltrate tumors through leaky blood vessels, that we can then control. #YOW19
- @unixbigot: Sabine @sabinehauert enjoyed her PhD in Robot flocking but wanted a flock of more than 10 robots. So she went to MIT to work with nanonots in flocks of ten ... trillion(!). #yow19
- @damovisa: How do you do this at the nano scale? There's no room for a brain or a board? How can they make decisions if you want them to, for example, cure cancer?
@sabinehauert at #YOW19 https://t.co/P2QJpQxnVc
- @lizthegrey: We have to control nanoparticles with physics and chemistry rather than with electronics given their size.

For example, gold particles can be injected, excited with light, and thermally damage cancer cells, and chemo drug particles can attach at the damage site. #YOW19

  • @sabinehauert: "Our goal? Kill tumor cells 20 cells deep" (small scales!)
  • @damovisa: Wow.
    Blue particles can bind to cancers, then be activated to cause damage.
    Red particles, containing chemo drug, bind to the damage caused.
    A 40x increase in drug delivery to the site you want.
    @sabinehauert at #YOW19 https://t.co/VauZKzqH49

  • @sabinehauert: Check out x and y axes, and their scales!

  • @RealGeneKim: #Yow19 @sabinehauert: Check out x and y axes, and their scales! https://t.co/DZ6EzwYrW1

  • @lizthegrey: they were trying to control the size of the particles, and how sticky they were against cells they brushed against.

And time or external stimulus can also change the behavior (e.g. adjusting stickiness using an enzyme). #YOW19

  • @sabinehauert: "
  • @unixbigot: Tumours are so highly vascularized that a nanobot swarm carrying drugs only has to penetrate 20 cells from a capillary to nuke a rumour. There’s a game where you can design nanoparticles to try and achieve the required ability in simulated nanobots! #yow19 https://t.co/BDLk82azi7
  • @unixbigot: Tumours are so highly vascularized that a nanobot swarm carrying drugs only has to penetrate 20 cells from a capillary to nuke a rumour. There’s a game where you can design nanoparticles to try and achieve the required ability in simulated nanobots! #yow19 https://t.co/BDLk82azi7

  • @lizthegrey: Once you introduce chemical messages that can be produced, communicated, and consumer... it starts looking like robotics without electronics.

At the end of the day it's all a constraint optimization problem. and you can play it like a real game! or teach a computer to! #YOW19

  • @lizthegrey: Brownian diffusive motion is slow and random though, so what if we made magnetic coils that 'swam' like bacterial flagella and poked holes or dragged other things along? #YOW19
  • @KenScambler: Swarming nanobots to defeat cancer. Dead set amazing science & research from @sabinehauert #yow19 https://t.co/cE7CONMjeG
  • @unixbigot: “So what we have is a DLP projector connected to a Raspbwrry Pi and to a Raspberry Pi Camera” - @sabinehauert. THIS is reason N of many why @Raspberry_Pi is so great. So many endeavors jumpstarted that otherwise would have stalled. #yow19
  • @unixbigot: From nanobots to a swarm of 1024 matchbox-sized “kilobots”. #yow19 https://t.co/ffDnQ8nP5k
  • @lizthegrey: Zooming back out many orders of magnitude: we can also model with kilobots (not kill-bots, kilo eg 1024). they're about the size of a coin, and move somewhat randomly via vibrating their names.

"Why doesn't your robot go there?" "Well, why doesn't your particle go there?" #YOW19
- @MichelePlayfair: Kil-O-bots... Don't forget the O!!
(There were 1024 of them)

Super interesting talk on swarming particles and robots by Sabine Hauert to end day 1 of #YOW19 Brisbane. 👏 https://t.co/O27mdk4Z0Z
- @MichelePlayfair: Kil-O-bots... Don't forget the O!!
(There were 1024 of them)

Super interesting talk on swarming particles and robots by Sabine Hauert to end day 1 of #YOW19 Brisbane. 👏 https://t.co/O27mdk4Z0Z
- @lizthegrey: We traditionally think about robotics as a much smaller number of agents performing tasks, rather than larger, smaller disposable agents that individually have less power but collectively exhibit emergent behavior. #YOW19
- @lizthegrey: Ant trails can search for and create the shortest path to a destination; swarm communication can come to consensus on a decision using only point to point rather than global communication... #YOW19
- @unixbigot: Sabine @sabinehauert is now talking about how robot flocking and embryonic development have similar mechanisms, and relate to automata patterns discovered by Alan Turing. This presentation is like chocolate fudge for the brain! #yow19 https://t.co/ADmlSPva2O
- @MichelePlayfair: Watching @sabinehauert speak at #yow19 is like watching Big Hero 6 in real life! 😮

(Gif: Hiro making a moving tower with his microbots in the movie Big Hero 6) https://t.co/Kcf5j9lEq3
- @lizthegrey: Spots and stripes occur through competing regulatory forces (e.g. u,v factors that diffuse to nearby and upregulate or downregulate each other)

Local reactions and random motion allow for morphogenesis of spots/stripes, genesis of limbs, resilient to damage... #YOW19

  • @sabinehauert: "Teraswarm":
  • @lizthegrey: So far what's been discussed is simulating/learning off-board and then applying the results to simpler physical robots, but there's also the option of having fewer more powerful robots that learn how to swarm via onboard learning/evolution. #YOW19
  • @lizthegrey: They restrict the robots to human-readable behavior trees (which are mutable on the robot & fitness scored); that way the results can still be interpreted by humans.

[ed: on one hand, this is fucking cool, on the other hand, the Minority Report spiderbot scene...] #YOW19
- @hillelogram: That's all bio-inspiration. Also exploration: try lots of rules, see what works best. Evolutionary algorithms, ML.

Often done on behavior trees, because they are human readable and understandable. Assign trees fitness, do genetic learning on that for 100s of generations #yow19
- @lizthegrey: [ed: "building you'd like to explore in a rescue situation" winds up looking an awful lot like robots trying to find a fugitive :/]

You can also combine swarms with supervision, by asking them to avoid an area that's known to be dangerous, or to head to an area... #YOW19

  • @sabinehauert: "Robohub.org; AIhub.org"
  • @MichelePlayfair: Dang this is SO COOL how does one get to be a Swarm Engineer?!! 🤯

  • @sabinehauert: "Swarm Escape Room!"

  • @sabinehauert: "crowdsourced list of swarm uses: benefits vs risks"

  • @RealGeneKim: #Yow19 @sabinehauert: "crowdsourced list of swarm uses: benefits vs risks" https://t.co/A3uX4MOSJc

TODO

  • pull into notes: it puts notes below my cursor -- put it at current line - 1!
  • after successful tweet, clear out the "Choose file" state on the client
  • see errors of escaping:
  • @RealGeneKim: #Yow19 @awbjs: "People said 'Cool! Ship it!'; 3 months to get it for next Netscape beta; he then started building the DOM, so JavaScript could manipulate it; code name Mocha -> LiveScript -> JavaScript (after licensing deal w/Sun) https://t.co/H24AfwzA4Q
  • Ctrl S should save everywhere, not just when no windows have focus
  • to see original tweet in twitter app: click on header to see?