DevFest Vienna 2023-10-14

Schedule https://devfest.at/schedule/

Agenda

  • 08:00 Registration

  • 09:00 Opening

  • 09:15 EI09 Migration of an order processing system to the Google Cloud Randy Gupta

  • 09:15 EI10 Evolving your APIs, a step-by-step approach Nicolas Fränkel

  • 10:15 EI09 Building a Cloud-Native PaaS: Architecture Tips and Tricks for a High SLA Ilya Kaznacheev

  • 10:15 EI10 How and why ($) to Improve Web Performance – Tips to Improve in 2023 Andrea Verlicchi

  • 11:15 Break

  • 11:30 EI09 Server-Side WebAssembly: The Post-Container Revolution is Here! Ramón Huidobro

  • 11:30 EI10 Sheriff: Modularity in TypeScript Applications Rainer Hahnekamp

  • 12:30 Lunch Break

  • 13:30 EI09 web-platform-align: baseline Vadim Makeev

  • 13:30 EI10 Lightning Talks

  • 14:30 EI09 Flutter Web vs. Traditional Web Frameworks: A Practical Comparison and Lessons Learned from Building Tim Lavreniuk

  • 14:30 EI10 Semantic Search — New Solution to Old Problems Philipp Krenn

  • 15:30 Break

  • 15:45 EI10 Jetpack Compose – Making Composable Lifecycle-aware Saqib Usman

  • 15:45 EI09 Cloud Integration Testing Made Easy with LocalStack and Testcontainers Anca Ghenade

  • 16:45 EI09 AI applications in industry Mihai Cata

  • 16:45 EI10 Angular Reactivity with Signals Dany Paredes

  • 17:15 EI09 Manage Legacy Code Successfully: Tips for Understanding, Testing, and Improving Roland Weisleder

  • 17:15 EI10 Putting Full-stack into reality – a practical approach Kilian Schröder

  • 18:15 Afterparty


10:15 EI10 How and why ($) to Improve Web Performance – Tips to Improve in 2023 Andrea Verlicchi

Core Web Vitals: LCP Largest Contentful Paint

  • Time until largest element gets painted FID First Input Delay CLS Cumulative Layout Shift INP Interaction to Next Paint (comes 2024)
  • i.e hamburger menu loading and taking 300ms

Chrome collects User data into CruX - Chrome User Experience

SISTRIX tracks Google search rankings and shows that if you rank up in Core Vitals you gain 33,2% more Google traffic

Also has sustainabillity impact

MPulse from Akamai or SpeedCurve are similar to CrUX

Lab tools Pagespeed insights, Lighthouse, Webpage Test by Catchpoint

Improvements for LCP

  • Make LCP resource discoverable from the HTML source, not js. Use src or srcset on image attribute
  • Prefer SSR over CSR
  • Preload image with <lin rel="preload" > in HTML
  • Add fe5chpriority=high to LCP image. Dont set loading=lazy to img.
  • Defer other elements
  • Use CDNs and increase hown long content is cached for

Improvements FID and INP

  • Break up long Tasks. >50ms is a long tasks. Median nr of mobile long tasks is 19
  • Use APIs such as isInputWaiting or the Scheduler API
  • Avoid unnecessary Javascript. 460kb/page served as median. Use coverage tool in Chrome to find unused code. Move unused code use code splitting. Recheck your tag manager codes in Production to see whats loading.
  • Avoid long renders. Dont use requestAnimationFrame for non-visual work.
  • Keep your DOM small.
  • Use CSS containment property.

Improvements for CLS

  • Always specify width and height image sizes in HTML. Default is 0px which causes shift.
  • Use CSS aspect ratio for lazy loaded content
  • if aspect is unknown, use min-height
  • Ensure eligibility for bfcache (caching between navigating back/forwards). Check with bfcache tester in Chrome.
  • Never animate priperties that cause layout shift. Absolutely positioned top left causes layout shift. Use transform:translateX instead of top

Lighthouse CI can be used for MRs

His company created the tool cognizants for Core Web Vitals monitoring.


11:30 EI09 Server-Side WebAssembly: The Post-Container Revolution is Here! Ramón Huidobro

Slides: https://ramonh.dev/server-side-wasm.pdf WASM Webassembly squoosh.app for image compresssion WASI - Web Assembly System Interface

Runtimes for WASM Wasm3 Wazero for go WASMedge for K8s

Blockchain - parity Embedded - Akri K8s - Krustlet

Grain is a language that compiles directly to WASM

Upcoming stuff

  • component model is coming
  • wasi-nn outs Neural Network to WASM
  • Docker Beta for WASM. Instead of replacing runc with wasmedge

14:30 EI10 Semantic Search — New Solution to Old Problems Philipp Krenn

Slides: Conference and meetup talks Apache Lucene is library underneath Elasticsearch

Elastic search /_analyze endpoint

snowball stemmer stems down word to its root

Semantic Search aims to avoid searching for specific terms but instead be able to search with a question that is context aware and gives you the right result.

Transform unstructered data into embedding / dense vector eith ML model. This is called Inference.

Neighest Neighbour search to find related embeddings.

But the ML models hides the actual dimensions used.

NLP Libraries

  • Name-Entity recognition
  • Embedding
  • Classification
  • Zero shot classification
  • Q&A

dense_vectors almost doesnt have ana null values.

Calculate Vector Similarity with Cosine Distance. Eorks to detect relatives, differentd and opposites. Or with dot product Or with euclediam / L2 distance Or with Manhatten distance

HNSW hierarchical navigatable small worlds Provide layer to limit neighbouring vectors and go level deeper each time

Use bytes over floats reduces accuracy but limits storage needs

Hybrid Search combines Term searching with Vector searches

RRF Reciprocal Rank Fusion basically blends two ranks together

Elastic developed expansion of the initial search query to contain more terms which are related

Retrieval Augmented Generation: Extend promot with context from your own data


15:45 EI09 Cloud Integration Testing Made Easy with LocalStack and Testcontainers Anca Ghenade

Use LocalStack to provide full AWS cloud infrastructure locally. This allows you to Simulate a Cloud Environment and allows you to test with more surface area covered.