Skip to content

Instantly share code, notes, and snippets.

@BrandonBoone
Last active October 15, 2017 01:42
Show Gist options
  • Save BrandonBoone/7d84bd381a0f72bc265186b14d76e67c to your computer and use it in GitHub Desktop.
Save BrandonBoone/7d84bd381a0f72bc265186b14d76e67c to your computer and use it in GitHub Desktop.
Code Camp NYC

Disrupting the Application Eco-System with Progressive Web Apps

Chris Love

Spotify is a progressive Web App in the Windows App store. MS gives more premissions to Apps hosted in the store vs the web.

AppCache is on its way out, marked for deprecation. Service Workers are the new jam.

Native Apps are a bridging technology, like flash.

25% only connect over cell. 25% go over data every month. (USA)

LiFi - have bars, but no connectivity.

Have we reached Peak APP? The average user installs 0 apps a month. Most new installs are 12-18 years old.

Samsung Internet Browser.

PWA examples

  • Twitter migrating to PWA.
  • Flipkart migrating to PWA.
  • LYFT is a PWA
  • Alibaa
  • Housing.com
  • Lodash documentation is a PWA

TODO:

Links

DevOps: Putting Value for All in your Value Stream Mapping

Dan Stolts (@ITProGuru)

You must have a champion (Senior Manger, etc.)

Deliver a product that inspires our customers to become raving fans.

The Phoenix Project - Gene Kim

ItProGuru.com/blog

Performance in .Net

John-Daniel Trask

2 Questions to ask about performance

  • Is this costing us users?
  • Is this costing us money?
    • You are expensive, servers are not.
    • Is development harder?

Where is the problem?

  • Server overloaded?
  • Single process hog?
  • CPU isn't necessarily a true indicator of an issue. It can be attributed to a network issue.
  • When is the search bar interactive?

Answers

  • System wide performance monitoring
  • Do not forget the user experience
  • Use a profiler to identify the actual hot spots, don't guess.
  • Profiling should be part of your toolbox.

Common issues

  • Linq (hard to optomize). Only expresses intent not how.
  • Exceptions should be exceptional
    • Never do flow control with exceptions
    • The presence of a try catch removes the option for method inlining.

A Performance Mindset

Memory... Kind of a big deal.

  • JSON, XML, Regex, String
  • Avoid the Large Object Heap like the plague. The dumpster fire of memory.
  • Strings are the enemy of memory.
    • myString.Split(',').Count();
  • Smarter CPU memory
    • Sinlge Instruction Multiple Data
    • CPU capbilities: SS2 or AVX2
    • Available in System.Numerics on Nuget
    • Next level: massively parallel with GP-GPU

Tools of the Trade

  • dotTrace
  • Benchmark.netd
  • Ryder (jetBrains C# IDE)

TODO:

Small Compiler

Taming & Composing high performance Stream-Oriented Processing Systems for Big Data

Riccardo Terrell

www.github.com/rikace/presentation

rtccny (Functional Concurrency in .Net)

What is a Stream

  • ephemeral (short) flow of data
  • possibly unbounded in size

The 3 V's of data in motion

  • Volume (size of data)
  • Variety (kind of data, speed of data)
  • Velocity

Reactive Manifesto

reactivemanifesto.com

  • Responsive
  • Elastice
  • Resilient
  • Message Driven

Reactive Extensions

  • Push vs Pull. Pushes data from the source to the subscriber.
  • IObservable the dual of IEnumerable

Actor Model/System

  • High Throughput
  • Fault tolerance
  • No Manual thread managemnet
  • Scale Out & Up
  • High Availability

From Actor to Streams... Actors don't compose well. It is hard to change the receiver.

Reactive Streams solve this issue.

reactive-streams.org

Dynamic push and pull. Actors communicate to how much they can receive and adjusts the push rate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment