Green Custard Friday Talk 5: React-Native PerformanceGreen Custard
In Green Custard's 5th Friday talk, William explores the subject of React-Native Performance.
Topics covered:
- Native: The good
- Native: The not so good
- Hybrid summary
- React-Native summary
- React-Native: Component mapping to Native
- React-Native: Architecture
- Performance
- Bridge 2.0 - The React-Native Approach
Green Custard is a custom software development consultancy. To discover more about their work and the team visit www.green-custard.com.
Presentation about a few situations at Apigee where we wanted/needed interoperability between Node.js and Java. One example is Hadoop-based MapReduce. During this presentation I discuss some use cases, some of the problems and then finish talking about technology that allows you to write MapReduce jobs using Node.js and run them natively on Hadoop as if written in Java.
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12Puppet
Julien Rottenberg, CityGrid. Presentation of the tools and workflow for our puppet setup. How puppet helps us managing 500+ servers in a hybrid environment O&O Datacenter and EC2, hands free. Watch the video at http://youtu.be/FPwga7HwomM
PuppetCamp LA, May '12.
Over the past several years, as the role of the browser has grown, rich desktop-like apps have emerged built entirely in the browser. To enable this movement, a new generation of powerful JavaScript frameworks have emerged including EmberJS, AngularJS, BackboneJS, and React. In this 30 minute crash course on front end frameworks, Bloc co-founder and CTO Dave Paola will cover the history of front end web development, the recent emergence of these new Javascript frameworks, and go over some of the pros and cons for learning them.
We'll hear from Bloc co-founder and CTO Dave Paola and Bloc Developer Christian Schlensker. Prior to Bloc, Dave was a developer at Kontagent, has over 15 years of software development experience, and has founded numerous other companies. Christian comes to Bloc from Pinchit and TAG where he was a developer. Prior to that, Christian was also a graphic designer.
In our experience, beginners are often overwhelmed by buzz words like "HTML5," "JavaScript," and "Ruby." Without an experienced guide, they can spend months going down rabbit-holes drilling into specific languages, and emerge frustrated that they can't build a real website. Dave will start by helping you visualize the front end web development landscape.
Comparing Angular, Ember, Backbone, and React
2
Once you understand the landscape, Dave will introduce the four major front end frameworks that have emerged over the past two years. He'll discuss the pros and cons of learning each one, from the point of view of a beginner. These four frameworks are: AngularJS, EmberJS, BackboneJS, and ReactJS.
Infrastructure as data with Ansible: systems and cloud
deployment and management for the lazy developer
Abstract: Great programmers and sysadmins are lazy people: rightly,
they prefer avoiding manual, time consuming and error-prone tasks such
as installing and configuring a Linux/Apache/Tomcat cluster for the
tenth time.
Ansible, an infrastructure (server, cloud) deployment automation &
configuration both powerful AND simple (in most cases simpler than
shell scripts and maven poms!), will make developers and it staff more
productive and effective.
http://www.ansible.cc
Green Custard Friday Talk 5: React-Native PerformanceGreen Custard
In Green Custard's 5th Friday talk, William explores the subject of React-Native Performance.
Topics covered:
- Native: The good
- Native: The not so good
- Hybrid summary
- React-Native summary
- React-Native: Component mapping to Native
- React-Native: Architecture
- Performance
- Bridge 2.0 - The React-Native Approach
Green Custard is a custom software development consultancy. To discover more about their work and the team visit www.green-custard.com.
Presentation about a few situations at Apigee where we wanted/needed interoperability between Node.js and Java. One example is Hadoop-based MapReduce. During this presentation I discuss some use cases, some of the problems and then finish talking about technology that allows you to write MapReduce jobs using Node.js and run them natively on Hadoop as if written in Java.
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12Puppet
Julien Rottenberg, CityGrid. Presentation of the tools and workflow for our puppet setup. How puppet helps us managing 500+ servers in a hybrid environment O&O Datacenter and EC2, hands free. Watch the video at http://youtu.be/FPwga7HwomM
PuppetCamp LA, May '12.
Over the past several years, as the role of the browser has grown, rich desktop-like apps have emerged built entirely in the browser. To enable this movement, a new generation of powerful JavaScript frameworks have emerged including EmberJS, AngularJS, BackboneJS, and React. In this 30 minute crash course on front end frameworks, Bloc co-founder and CTO Dave Paola will cover the history of front end web development, the recent emergence of these new Javascript frameworks, and go over some of the pros and cons for learning them.
We'll hear from Bloc co-founder and CTO Dave Paola and Bloc Developer Christian Schlensker. Prior to Bloc, Dave was a developer at Kontagent, has over 15 years of software development experience, and has founded numerous other companies. Christian comes to Bloc from Pinchit and TAG where he was a developer. Prior to that, Christian was also a graphic designer.
In our experience, beginners are often overwhelmed by buzz words like "HTML5," "JavaScript," and "Ruby." Without an experienced guide, they can spend months going down rabbit-holes drilling into specific languages, and emerge frustrated that they can't build a real website. Dave will start by helping you visualize the front end web development landscape.
Comparing Angular, Ember, Backbone, and React
2
Once you understand the landscape, Dave will introduce the four major front end frameworks that have emerged over the past two years. He'll discuss the pros and cons of learning each one, from the point of view of a beginner. These four frameworks are: AngularJS, EmberJS, BackboneJS, and ReactJS.
Infrastructure as data with Ansible: systems and cloud
deployment and management for the lazy developer
Abstract: Great programmers and sysadmins are lazy people: rightly,
they prefer avoiding manual, time consuming and error-prone tasks such
as installing and configuring a Linux/Apache/Tomcat cluster for the
tenth time.
Ansible, an infrastructure (server, cloud) deployment automation &
configuration both powerful AND simple (in most cases simpler than
shell scripts and maven poms!), will make developers and it staff more
productive and effective.
http://www.ansible.cc
With the rise of Docker, we have seen an unprecedented interest in container technologies where small companies and big enterprises bet their future on these technologies. This trend bases on an immense adoption of containers from software developers. And it has been agreed upon that they are considered highly beneficial for modern engineering practices like Agile and DevOps. But there is a new kid in town that proclaims a more radical approach: Serverless or FaaS: Function-As-A-Service. This paradigm suggests that a developer should only write functions and react to events.
The functions are written in high-level programming languages like Javascript, Java or Python, and the underlying compute infrastructure like containers or VMs is transparent to the user. That raises the question: Is the container revolution already dead before it really started? And who now needs container technologies in a serverless world?
In this talk we discuss these questions from both a containers advocate and serverless fanboy viewpoints. We confront these two approaches, show the differences, individual strengths and weaknesses and where they complement each other. This talk will also discuss motivations from different involved parties so that the audience can build their conclusion.
Vaclav Pavlin (Containers & OpenShift guru): Containers will rule the world!.
Matthias Luebken (Developer tools PM): Serverless is the Visual Basic for the cloud-native generation.
In a world where infrastructure is code, CI is important. Yet most Continuous Integration platforms are targeted at software developers, making them a poor fit for "non-traditional" workflows like Configuration Management. Many people struggle to fit these workflows into existing CI systems. In this talk I'll explain why I believe CI is not a solved problem, and how Config Management Camp inspired to me to finally do something about it. I'll introduce Cyclid, a Configuration Management system that tries to take some of lessons we've learned from the past 5 years of Configuration Management and apply them to Continuous Integration.
Given at Config Management Camp 2017
Tools and libraries for common problems (Early Draft)rc2209
This is an early draft, actual slides: https://www.slideshare.net/rc2209/tools-and-libraries-for-common-android-problems
In this talk I cover a wide variety of tools to solve all types of well solved Android Problems. I discuss best practices, gotchas, problems and great solutions.
With the rise of Docker, we have seen an unprecedented interest in container technologies where small companies and big enterprises bet their future on these technologies. This trend bases on an immense adoption of containers from software developers. And it has been agreed upon that they are considered highly beneficial for modern engineering practices like Agile and DevOps. But there is a new kid in town that proclaims a more radical approach: Serverless or FaaS: Function-As-A-Service. This paradigm suggests that a developer should only write functions and react to events.
The functions are written in high-level programming languages like Javascript, Java or Python, and the underlying compute infrastructure like containers or VMs is transparent to the user. That raises the question: Is the container revolution already dead before it really started? And who now needs container technologies in a serverless world?
In this talk we discuss these questions from both a containers advocate and serverless fanboy viewpoints. We confront these two approaches, show the differences, individual strengths and weaknesses and where they complement each other. This talk will also discuss motivations from different involved parties so that the audience can build their conclusion.
Vaclav Pavlin (Containers & OpenShift guru): Containers will rule the world!.
Matthias Luebken (Developer tools PM): Serverless is the Visual Basic for the cloud-native generation.
The Self-Service Developer - GOTOCon CPHLaszlo Fogas
The Self-Service Developer
In this talk, Laszlo revisits the primary motivations of why companies adopt container technologies in such a rapid pace and what became possible with the latest innovation in the container and CI/CD ecosystem.
The talk iterates through the building blocks of self-service platforms. Platforms that allow developers to release software without asking for permission, or support from other teams or departments - so managers have fewer constraints to navigate, and instead of helping developers, ops people can focus on building platforms and resiliency into the system.
The "self-service developer" vision is not only achievable by the big tech companies anymore, but increasingly becoming table stakes for every organization that produces software.
During the talk, Laszlo shows a self-service platform in action featuring the latest CI/CD tools and the Kubernetes container orchestrator.
This talk is about why I believe having the ability to write tools and/or scripts can help elevate a Pen Testers game to the next level.
The talk is case study driven by the different scenarios I've encountered on assessments and the scripts or tools that have been developed as a result.
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveNETWAYS
In the beginning there was CFEngine, and the learning curve was high, then came Puppet , Chef and the learning curve was still high.
Now we have Ansible , for everyone that wasn't smart enough to learn the original tools. Or wasn't that the problem ?
For some people Infrastructure as Code became a goal alone, not caring about the infrastructure, Junior people wanted to learn Puppet, but forgot about the service they were configuring. Too Complex, Too much effort, .. And then containers came.
Overcoming the Fear of Contributing to Open SourceAll Things Open
Presented by: Rizel Scarlett
Presented at the All Things Open 2021
Raleigh, NC, USA
Raleigh Convention Center
Abstract: If you're feeling uncertain about contributing to an open source project for the first time, I understand. Navigating the open source space can feel intimidating. In this talk, audience members will learn how to confidently navigate the open source space and gain inspiration to make their first contribution.
Presentation given at local RomaJS meetup group.
Story of a hobby project used as a learning playground for React and d3.
Lessons, experiences and pains of a project started with a simple idea and eventually completed. From the getting started basics of React to the profiling tasks before deploying the project online.
In Green Custard's 8th Friday talk, Filipe explores the subject of GraphQL.
Topics covered:
- What is GraphQL?
- What is it trying to solve?
- How does it work
- Introspection
- Problems
- Future
Green Custard is a custom software development consultancy. To discover more about their work and the team visit www.green-custard.com.
Influx/Days 2017 San Francisco | Dan VanderkamInfluxData
THE DYGRAPHS CHARTING LIBRARY
dygraphs is an open source JavaScript charting library which has been in development since 2006. Its combination of performance and interactivity make it an appealing visualization for dashboards. This talk will walk through how to add dygraphs to your project and how it can be used to facilitate interactive data exploration. Along the way, we’ll touch on some of the trials and tribulations of maintaining open source projects over long periods of time.
It's not obvious what the stake holders really want. How do you know what tests to write? How to you know that you've written the last test? Are you writing the correct code? These are all questions that developers have to answer on a daily basis. BDD can help you and your PO answers these questions faster and with more accuracy. Behat is the BDD framework for PHP that makes it easy to get started with your feature development.
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...DynamicInfraDays
Slides from Patrick Mizer & Steve Woodruff's talk "Easing Your Way Into Docker: Lessons From a Journey to Production" at ContainerDays NYC 2015: http://dynamicinfradays.org/events/2015-nyc/programme.html#sparefoot
Student information management system project report ii.pdfKamal Acharya
Our project explains about the student management. This project mainly explains the various actions related to student details. This project shows some ease in adding, editing and deleting the student details. It also provides a less time consuming process for viewing, adding, editing and deleting the marks of the students.
More Related Content
Similar to Super lazy side projects - Hamik Mukelyan
With the rise of Docker, we have seen an unprecedented interest in container technologies where small companies and big enterprises bet their future on these technologies. This trend bases on an immense adoption of containers from software developers. And it has been agreed upon that they are considered highly beneficial for modern engineering practices like Agile and DevOps. But there is a new kid in town that proclaims a more radical approach: Serverless or FaaS: Function-As-A-Service. This paradigm suggests that a developer should only write functions and react to events.
The functions are written in high-level programming languages like Javascript, Java or Python, and the underlying compute infrastructure like containers or VMs is transparent to the user. That raises the question: Is the container revolution already dead before it really started? And who now needs container technologies in a serverless world?
In this talk we discuss these questions from both a containers advocate and serverless fanboy viewpoints. We confront these two approaches, show the differences, individual strengths and weaknesses and where they complement each other. This talk will also discuss motivations from different involved parties so that the audience can build their conclusion.
Vaclav Pavlin (Containers & OpenShift guru): Containers will rule the world!.
Matthias Luebken (Developer tools PM): Serverless is the Visual Basic for the cloud-native generation.
In a world where infrastructure is code, CI is important. Yet most Continuous Integration platforms are targeted at software developers, making them a poor fit for "non-traditional" workflows like Configuration Management. Many people struggle to fit these workflows into existing CI systems. In this talk I'll explain why I believe CI is not a solved problem, and how Config Management Camp inspired to me to finally do something about it. I'll introduce Cyclid, a Configuration Management system that tries to take some of lessons we've learned from the past 5 years of Configuration Management and apply them to Continuous Integration.
Given at Config Management Camp 2017
Tools and libraries for common problems (Early Draft)rc2209
This is an early draft, actual slides: https://www.slideshare.net/rc2209/tools-and-libraries-for-common-android-problems
In this talk I cover a wide variety of tools to solve all types of well solved Android Problems. I discuss best practices, gotchas, problems and great solutions.
With the rise of Docker, we have seen an unprecedented interest in container technologies where small companies and big enterprises bet their future on these technologies. This trend bases on an immense adoption of containers from software developers. And it has been agreed upon that they are considered highly beneficial for modern engineering practices like Agile and DevOps. But there is a new kid in town that proclaims a more radical approach: Serverless or FaaS: Function-As-A-Service. This paradigm suggests that a developer should only write functions and react to events.
The functions are written in high-level programming languages like Javascript, Java or Python, and the underlying compute infrastructure like containers or VMs is transparent to the user. That raises the question: Is the container revolution already dead before it really started? And who now needs container technologies in a serverless world?
In this talk we discuss these questions from both a containers advocate and serverless fanboy viewpoints. We confront these two approaches, show the differences, individual strengths and weaknesses and where they complement each other. This talk will also discuss motivations from different involved parties so that the audience can build their conclusion.
Vaclav Pavlin (Containers & OpenShift guru): Containers will rule the world!.
Matthias Luebken (Developer tools PM): Serverless is the Visual Basic for the cloud-native generation.
The Self-Service Developer - GOTOCon CPHLaszlo Fogas
The Self-Service Developer
In this talk, Laszlo revisits the primary motivations of why companies adopt container technologies in such a rapid pace and what became possible with the latest innovation in the container and CI/CD ecosystem.
The talk iterates through the building blocks of self-service platforms. Platforms that allow developers to release software without asking for permission, or support from other teams or departments - so managers have fewer constraints to navigate, and instead of helping developers, ops people can focus on building platforms and resiliency into the system.
The "self-service developer" vision is not only achievable by the big tech companies anymore, but increasingly becoming table stakes for every organization that produces software.
During the talk, Laszlo shows a self-service platform in action featuring the latest CI/CD tools and the Kubernetes container orchestrator.
This talk is about why I believe having the ability to write tools and/or scripts can help elevate a Pen Testers game to the next level.
The talk is case study driven by the different scenarios I've encountered on assessments and the scripts or tools that have been developed as a result.
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveNETWAYS
In the beginning there was CFEngine, and the learning curve was high, then came Puppet , Chef and the learning curve was still high.
Now we have Ansible , for everyone that wasn't smart enough to learn the original tools. Or wasn't that the problem ?
For some people Infrastructure as Code became a goal alone, not caring about the infrastructure, Junior people wanted to learn Puppet, but forgot about the service they were configuring. Too Complex, Too much effort, .. And then containers came.
Overcoming the Fear of Contributing to Open SourceAll Things Open
Presented by: Rizel Scarlett
Presented at the All Things Open 2021
Raleigh, NC, USA
Raleigh Convention Center
Abstract: If you're feeling uncertain about contributing to an open source project for the first time, I understand. Navigating the open source space can feel intimidating. In this talk, audience members will learn how to confidently navigate the open source space and gain inspiration to make their first contribution.
Presentation given at local RomaJS meetup group.
Story of a hobby project used as a learning playground for React and d3.
Lessons, experiences and pains of a project started with a simple idea and eventually completed. From the getting started basics of React to the profiling tasks before deploying the project online.
In Green Custard's 8th Friday talk, Filipe explores the subject of GraphQL.
Topics covered:
- What is GraphQL?
- What is it trying to solve?
- How does it work
- Introspection
- Problems
- Future
Green Custard is a custom software development consultancy. To discover more about their work and the team visit www.green-custard.com.
Influx/Days 2017 San Francisco | Dan VanderkamInfluxData
THE DYGRAPHS CHARTING LIBRARY
dygraphs is an open source JavaScript charting library which has been in development since 2006. Its combination of performance and interactivity make it an appealing visualization for dashboards. This talk will walk through how to add dygraphs to your project and how it can be used to facilitate interactive data exploration. Along the way, we’ll touch on some of the trials and tribulations of maintaining open source projects over long periods of time.
It's not obvious what the stake holders really want. How do you know what tests to write? How to you know that you've written the last test? Are you writing the correct code? These are all questions that developers have to answer on a daily basis. BDD can help you and your PO answers these questions faster and with more accuracy. Behat is the BDD framework for PHP that makes it easy to get started with your feature development.
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...DynamicInfraDays
Slides from Patrick Mizer & Steve Woodruff's talk "Easing Your Way Into Docker: Lessons From a Journey to Production" at ContainerDays NYC 2015: http://dynamicinfradays.org/events/2015-nyc/programme.html#sparefoot
Student information management system project report ii.pdfKamal Acharya
Our project explains about the student management. This project mainly explains the various actions related to student details. This project shows some ease in adding, editing and deleting the student details. It also provides a less time consuming process for viewing, adding, editing and deleting the marks of the students.
We have compiled the most important slides from each speaker's presentation. This year’s compilation, available for free, captures the key insights and contributions shared during the DfMAy 2024 conference.
Cosmetic shop management system project report.pdfKamal Acharya
Buying new cosmetic products is difficult. It can even be scary for those who have sensitive skin and are prone to skin trouble. The information needed to alleviate this problem is on the back of each product, but it's thought to interpret those ingredient lists unless you have a background in chemistry.
Instead of buying and hoping for the best, we can use data science to help us predict which products may be good fits for us. It includes various function programs to do the above mentioned tasks.
Data file handling has been effectively used in the program.
The automated cosmetic shop management system should deal with the automation of general workflow and administration process of the shop. The main processes of the system focus on customer's request where the system is able to search the most appropriate products and deliver it to the customers. It should help the employees to quickly identify the list of cosmetic product that have reached the minimum quantity and also keep a track of expired date for each cosmetic product. It should help the employees to find the rack number in which the product is placed.It is also Faster and more efficient way.
Saudi Arabia stands as a titan in the global energy landscape, renowned for its abundant oil and gas resources. It's the largest exporter of petroleum and holds some of the world's most significant reserves. Let's delve into the top 10 oil and gas projects shaping Saudi Arabia's energy future in 2024.
Forklift Classes Overview by Intella PartsIntella Parts
Discover the different forklift classes and their specific applications. Learn how to choose the right forklift for your needs to ensure safety, efficiency, and compliance in your operations.
For more technical information, visit our website https://intellaparts.com
Using recycled concrete aggregates (RCA) for pavements is crucial to achieving sustainability. Implementing RCA for new pavement can minimize carbon footprint, conserve natural resources, reduce harmful emissions, and lower life cycle costs. Compared to natural aggregate (NA), RCA pavement has fewer comprehensive studies and sustainability assessments.
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsVictor Morales
K8sGPT is a tool that analyzes and diagnoses Kubernetes clusters. This presentation was used to share the requirements and dependencies to deploy K8sGPT in a local environment.
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesChristina Lin
Traditionally, dealing with real-time data pipelines has involved significant overhead, even for straightforward tasks like data transformation or masking. However, in this talk, we’ll venture into the dynamic realm of WebAssembly (WASM) and discover how it can revolutionize the creation of stateless streaming pipelines within a Kafka (Redpanda) broker. These pipelines are adept at managing low-latency, high-data-volume scenarios.
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Super lazy side projects - Hamik Mukelyan
1. Super Lazy Side Projects
with serverless & other tools for the certifiably lazy
2. What’s this about?
● DevOps Columbia has had a couple of serverless talks
● I’ll do a little serverless review, but...
● Broad goal: “what’s the laziest way to do a side project?”
○ Specifically, with web apps
● There are a lot of choices for serving a backend
○ Docker, Firebase, Heroku, FaaS, your PC, Jeff Bezos’s PC
○ What makes sense for a small side project?
● And what about frontends?
○ Hopefully not too basic 😶
3. Who am I?
● 2nd time software engineer at Snapchat in LA
○ Worked on infra my first time at Snap
○ Now work on Adobe Premiere-like web apps for publishers
● I left for 2 years to start a Y Combinator funded company
● I was super lazy about starting college
○ Delayed matriculation at Caltech by 1 year 6 times
○ Spent that time rock climbing/mountaineering
○ Graduated and started career at age 27
4. Don’t be an ideas guy
● Let’s say you have a
fun/profitable/ironic idea
● Try a web app!
○ You often don’t need a native
app for idea validation
○ Progressive web apps
(PWAs) blur the lines anyway
○ If you monetize, the app store
won’t take 30%
5. What is a web app?
● They live at URLs. E.g., Gmail
○ Can be single-page apps (SPAs)
● They are built with HTML, CSS, JavaScript
○ Frameworks simplify DOM operations and encourage code reuse
○ React is the most popular, but Vue is 🔥. Angular is like PHP - just don’t
○ Use jQuery for simple projects
○ Use WebAssembly for hardcore projects
● They have (surprisingly?) steep dev learning curves
○ See learning frontend roadmap
○ Consider a templating service like Divjoy for bootstrapping
6. What’s the laziest way to make a web app?
● Just pick a template for some framework and go
○ React: npx create-react-app my-app
○ Vue: npm install -g @vue/cli && vue create my-app
● Don’t waste time learning frontend toolchains a priori
○ Lots of opinions and holy wars
○ Learn about babel, webpack, etc. later
○ All hail hot reloading
● Do waste time playing with Chrome Dev Tools
○ Console tab, network tab, and element inspector are lifesavers
7. What’s the laziest way to make a web app?
● Beware CSS
○ So many nights wasted 😫
○ Be lazy — use a framework
○ Apply complex styles with simple
class names
○ Move over Bootstrap, Bulma 🔥
● Fiddle in Devtools, not code
○ Hot reloading is awesome, but
not that awesome
8. Sweet — you made a web app. Where to put it?
● What’s the laziest way to host?
○ By far, AWS S3 + AWS Route 53 + AWS CloudFront
● Use Route 53 to buy or import domains
○ Routes traffic to your website files (static assets)
● CloudFront serves pages fast
○ In addition to caching, useful for configuring https
● S3 is a file store. Similar to Google Cloud Store (GCS)
○ Static assets go here
○ Check a couple of boxes to serve files to public
9. Sweet — your site is up
● But it has a mocked backend 💔
● What are modern options for the real thing?
○ Hosted on VMs or containers (physical machines are deprecated)
○ Hostless. AKA serverless
● Hosted means you have to do DevOps stuff
○ There are real, persistent machines
○ They are rowdy
○ Have to profile CPU, monitor disk space, manage fleet, patch, etc.
● Hostless means that’s all abstracted away
10. Hosted approach
● Sweating about load balancers/scaling is no longer a thing
○ Thanks, Bezos
● Pros
○ Better for low-level or compute-intensive tasks. E.g., training ML models
○ Sessions and web sockets are easier
○ Friends who might help out are probably more familiar with this approach
○ Dev experience is arguably better. Tooling is more mature
● Cons
○ The zeitgeist has moved on
○ Boils down to: slower to bootstrap, likely more expensive
11. Hostless approach
● There’s still a server… right?
○ Yes, but it’s abstracted away
○ They are spun up and down on an as needed basis
○ No users, no servers running
“All problems in computer science can be solved by another level of
indirection.” — David Wheeler
12. Hostless approach — what is it?
● Bezos wrote generic services to expose familiar backend
things through web interface or (local) CLI
○ E.g., message queues, databases, auth, API gateways
● Instead of configuring VMs or containers with those
things, you click around aws.amazon.com instead
○ Or use CloudFormation to do away with clicking
○ Awesome because you can reproduce and even version your backend
○ Or — this is the laziest way — use a framework like Serverless to
abstract away CloudFormation with a simple YAML file
13. Hostless approach
● Pros
○ Faster to bootstrap
○ Arguably easier to learn
○ Much more elastic. Low traffic → super cheap. No server when no usage
● Cons
○ Cold starts are a thing
○ Execution times are capped. Not ideal for long-running tasks
○ Need to think about idempotency because of at least once delivery
■ Newer versions of Kafka support exactly once delivery, so hopefully this won’t be a thing
○ Tooling is less mature. Friends might not be familiar with ecosystem
○ Vendor lock-in
14. Hosted vs. Hostless
● Example: database backed web app
● Hosted approach. Could…
○ Configure/deploy Cassandra/MongoDB cluster. Maybe Redis cluster too
○ Set up message queue server with e.g. Kafka
○ Write/deploy monolith or some microservices
○ Tune # of instances, set up scaling rules
● Hostless approach. Could…
○ Describe DB, Redis cache, message queue, and API w/ Serverless YAML
○ Write a function for each API endpoint. Use client libs from cloud provider
for DB, Redis, etc. Done!
15. A real, live side project
● Problem: my wife and I like wine
● Worse: my wife used to drink bottles from our cellar
without checking them out of our old inventory app 😿
● Solution: side project that makes it really, really easy to
check bottles out
16. The idea
● Out of scope: programmatically getting bottle info
○ I.e., like Vivino. That’s a big, hard problem. Not a side project
● Put up https://cellarproject.com
● Write a Python script that generates QR codes
○ Each code maps to CellarProject URL with UUID in a URL param
○ Grids of QR codes are printed onto sticker sheets
○ They sit in a stack in our cellar
● We get QR scanning “for free” because of iOS camera
17. Use case 1 — add bottle
● Need to add a new bottle to our cellar
● Grab a pre-printed QR sticker and put it on bottle
● Scan sticker with iPhone camera
● CellarProject pops up
● It sees that unknown UUID was scanned
● Asks you to enter info about bottle, optionally including
(area, row, col) tuple
18. Use case 2 — search for bottle
● Some good friends are over. The night is young
● Want a fancy bottle
● Open CellarProject (without scanning anything)
● Use search feature to find bottle by vineyard, vintage, etc.
● Check it out (see use case 3)
● The night is no longer young. Opus One and two buck
chuck are effectively the same thing
● Use search feature to find cheapest bottle
19. Use case 3 — drink bottle
● Just pulled a bottle out (might have searched for it and
found its location with search feature from use case 2)
● Scan QR code with iPhone camera app
● CellarProject pops up
● It gives bottle details like price and lets you check it out
● If you click yes, it marks it consumed in inventory
● Two taps to check out bottle!
20. Use case 4
● Open it up to other users!
○ Need auth
○ Ideally with federated identities (Google, Facebook)
● But users need stickers. Either
1. Give them script and expect them to print own stickers
2. Mail stickers to users and charge to recoup postage/material cost
22. How did I build the frontend?
● Iteration 1
○ Had literally never built a front-end
○ HTML + CSS + direct DOM manipulation 😱
○ Check out the horror in my github repo:
https://github.com/hamikm/wine-cellar-inventory
○ That really shouldn’t be public. Oh well ¯_(ツ)_/¯
● Iteration 2
○ Vue with stock toolchain
○ Bulma for most styling. Bootstrap for file drag/drop
23. How did I build the backend?
● Iteration 1
○ One massive AWS Lambda
○ Pasted it into the Lambda web interface
○ Tested it with test events in web interface
○ Manually configured API Gateway on web and pointed it to Lambda
○ One endpoint for everything: add, delete, modify bottle
○ Manually configured DynamoDB (NoSQL) table
○ Details on github
● Yes, it was really ghetto 😱
○ But it was fast to bootstrap and cheap 💯
24. How did I build the backend?
● Iteration 2
○ Used Serverless framework. Infrastructure as code!
○ I.e., described entire backend from iteration 1 as a single YAML file
■ AWS API Gateway
■ AWS DynamoDB table
■ AWS Cognito and federated identities pools
■ AWS Systems Manager (to store secrets)
○ Used Serverless framework to deploy it
○ Broke out different tasks (add bottle, remove, etc.) into different lambdas
and different API Gateway endpoints
○ Added a dev and prod environment. Really easy with Serverless
25. Case study: 💰 lambda
● Submitting form calls the
GetQRsV2 lamnda
● If there’s auth, not a simple
HTTP POST to API URL
● Need to sign request with
credentials from Cognito
○ Can be a little hard to get right
○ Much easier with Firebase
29. Serverless gotchas
● How to share code between lambdas?
○ Let lambdas call each other
○ Make util files and deploy all with each lambda
○ See directory structure to right
● Don’t have to think about most devops
things, but still need to choose…
○ Read/write capacity units for tables
○ Timeout limits & amount of memory for lambdas
● Need to config AWS access permissions
30. And that’s a wrap
● Conclusion: use serverless & frontend templates to move
really fast on side projects
● Serverless, Snapchat, Uber all fair game for questions 😅
● Keep in touch!
○ github.com/hamikm
○ linkedin.com/in/hamik/
○ hamikmukelyan@gmail.com