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.
- Twitter migrating to PWA.
- Flipkart migrating to PWA.
- LYFT is a PWA
- Alibaa
- Housing.com
- Lodash documentation is a PWA
- Install Banner for home screen.
- Handling data securely
- offline data? (transactions) CouchDB/PouchDB
- https://github.com/sonarwhal/sonar
- https://love2dev.com/pwaupgrade
- https://github.com/docluv
- https://slideshare.com/docluv
- https://pwabuilder.com
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
- Is this costing us users?
- Is this costing us money?
- You are expensive, servers are not.
- Is development harder?
- 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?
- 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.
- 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.
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
- dotTrace
- Benchmark.netd
- Ryder (jetBrains C# IDE)
- Follow Paul Irish.
- (Time to first Paint)
- Game Engine Black Book
- Compaction in memory?
- rubular.com
- ideia.me
- http://www.github.com/jonatas/fast
Riccardo Terrell
www.github.com/rikace/presentation
rtccny (Functional Concurrency in .Net)
- Functional Programming - Twitter Paper. Your Server as a Function. Marius Eriksen
- Reactive Programming - Spreadsheet === Mother of All Reactive Programming (Excel)
- FRP - Push-Pull Functional Reactive Programming - Conal Elliott
- ephemeral (short) flow of data
- possibly unbounded in size
- Volume (size of data)
- Variety (kind of data, speed of data)
- Velocity
reactivemanifesto.com
- Responsive
- Elastice
- Resilient
- Message Driven
- Push vs Pull. Pushes data from the source to the subscriber.
- IObservable the dual of IEnumerable
- 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.