title: Corey kent gets real with personal new track man of the house

text:
Co-written by the RCA Nashville/Sony Music Nashville signee with Austin Goodloe, Joybeth Taylor and Lydia Vaughan and produced by Jay Joyce, the autobiographical song reveals a very vulnerable side of Kent.
“Be strong when you ain’t/ And hold on when you can’t/ She won’t tell you but, she needs you/ And you can’t let her down/ So, hide those shakin’ hands/ Be a rock when you feel like sand/ It turns out, all I was back then is all that I am now/ Just a boy trying to be the man of the house,” sings Kent in the raw lyrics.
After an overwhelmingly positive response from fans when he teased the track on social media, Corey released a special acoustic performance last month.
Watch the country riser’s acoustic performance of “Man Of The House” below.
“‘Man of the House’ is the most therapeutic and heartfelt song of my career,” shared Kent. “I had no idea that people would connect with it the way they have already. The thousands of people sharing their stories in the comment section of the teasers have blown my mind. It’s just a kid talking about his real life and other people saying ‘that’s how I feel, too.’ That’s the power of music.”
Corey Kent’s newest track comes on the heels of his Grand Ole Opry debut earlier in January where he took the iconic stage to perform his wildly successful breakout single, “Wild As Her.” The free-spirited and lively song has accumulated more than 190 million on-demand streams and secured Kent’s first-ever entry onto Billboard’s Hot 100, the #15 spot on the Hot Country Songs Chart and continues to climb the Country Radio charts where it currently sits in the Top 20.
Kent finished out 2022 strong with the release of his four-track EP, ’22 Tapes, as a thank you to the steadfast support he received from fans throughout the year.
“You guys changed our lives this year, so we thought to end the year the way we did last time…with new music between Christmas and New Years!” Corey captioned an Instagram post of the announcement.
View this post on Instagram
In addition to his EP, the singer shared two additional tracks last year: “Hood of That Car” and “How You Know You Made It.” Kent was awarded with the title of CMT Listen Up Artist for 2023, named a Pandora Artist to Watch and recently secured a nomination for an AIMP Nashville Country Award for AIMP Rising Artist-Writer of the Year.
After dedicating much of his time in 2022 to touring as he sold out venues throughout the country for headline shows, festivals and performances accompanying Bailey Zimmerman, Kent is set to hit the road once again on Parker McCollum’s Spring 2023 tour.
For more information and to purchase tickets, visit https://www.coreykentofficial.com/#tour.


tier: cub

shelf: civic-law

title: Uks first community based safe spaces for people fleeing domestic h10250

text:
Islington Council and crisis support charity Hestia are working together to launch 17 ‘Safe Spaces’ where people experiencing domestic abuse and sexual violence can find sanctuary and support from specially trained staff on the premises.The 17 spaces will be the first cohort of community-based safe spaces in the UK as part of UK SAYS NO MORE, a national campaign to end domestic violence and sexual assault, as well as the first in Islington’s local branch of the campaign – Islington SAYS NO MORE.
Each safe space will feature a prominent sticker in their window or door where staff, known as ambassadors, will be available to provide immediate emotional support to victims and survivors, as well as offering practical help by directing them towards specialist support services. Ambassadors are currently receiving training by UK SAYS NO MORE and Islington Council and all 17 spaces are expected to be open by early in the new year.
The council and Hestia hope that the 17 new spaces will be the first of many more across the country offering assistance to people fleeing abuse.
Hestia also offers the Bright Sky app, a free to download mobile app that provides support and information to anyone who may be in an abusive relationship or for those concerned about someone they know. It provides a unique UK-wide directory of specialist domestic abuse support services and their contact details, as well as specialised questionnaires to assess the safety of a relationship. Safe space ambassadors are also being trained to direct people towards the Bright Sky app.
Islington Council’s Head of Youth and Community Services, Catherine Briody, said:
“Domestic abuse and sexual violence is still far too common; one in four women and one in six men will be the victim of domestic abuse in their life time. Violence and abuse can affect anyone and can leave deep and lasting scars on a person’s life.
“It can be extremely difficult for someone experiencing abuse to find a way out, which is why having safe spaces in known locations where people can discreetly receive help and support is vitally important. We’re proud to be the first borough to offer these safe spaces and we encourage other organisations in Islington to get in touch if they think they could get involved.
“The council is working hard with our partners to make sure that cycles of abuse and violence do not continue. Enough is enough – here in Islington we’re standing together as a community to say: No More.”
Abigail Ampofo, Director of Operations at Hestia said:
“Domestic abuse can affect every aspect of a person’s life. For those trying to escape domestic abuse, fear of their abuser finding out is a key barrier to seeking support. These safe spaces can be a discrete life saving resource that we hope will allow more victims to get much needed support.
"By working in partnership with local authorities and agencies, we are taking the first step to provide community wide support for those experiencing domestic abuse. Hestia is excited to be part of the Safe Spaces Pilot and look forward to working with Islington Council, Solace Women’s Aid and the community.”
Sarah D’Anglis Partnership Manager, UK SAYS NO MORE said:
"UK SAYS NO MORE is committed to ensuring that every survivor of domestic abuse and sexual violence has access to specialist services and support. We recognise that local businesses are accessible for general public during their daily routines and can play a pivotal role in the community response to domestic abuse and sexual violence, by becoming a Safe Space, ensuring that people feel confident to believe, respond and refer using Bright Sky."


tier: polar

shelf: science-engineering

title: Quantifying mechanical properties endothelial glycocalyx with atomic

text:
February 21, 2013
The overall goal of the following experiment is to measure the mechanical properties of the endothelial glycocalyx using an atomic force microscope or a FM.This is achieved by first culturing, a monolayer of endothelial cells under a physiological flow in a bioreactor in order to build up the glycocalyx layer as a second step. Micron sized beads are attached to a FM cantilevers and used as a probe to measure the resistive force of the cell body and the glycocalyx during indentation. Next, the indentation curves are fit with a two layer model in order to determine the glycocalyx modulus and thickness results are obtained that show that the endothelial glycocalyx has a modulus of 0.7 kilo pascals and a thickness of 380 nanometers based on the two layer analysis.
Hi, I’m Rick Wa.I’m chair of biomedical Engineering at the University of Rochester. There’s been a lot of discussion in recent years about the possible role of the endothelial glycocalyx in inflammation, in particular as to whether it might act as a protective barrier to prevent unwanted cell adhesion during inflammation. One of the keys to resolving the questions that surround this issue is the ability to measure the physical properties, namely the thickness and the stiffness of this layer, both in normal conditions and during the inflammatory response.
I’m Graham Marsh. I’m a graduate student at the University of Rochester Department of Biomedical Engineering. The big trouble in characterizing the endothelial glycocalyx is it’s incredibly soft.
The approach that we came up with is to affix a large bead to the tip of A an A FM cantilever so that the forces measured will be resolvable with the A FM.To begin this procedure, construct a flow chamber like the one shown here, capable of growing cells under a shear stress of 1.0 Pascal. Prepare the flow chamber for the experiment by first cleaning the glass slides in piranha solution for 15 minutes. Rinsing them three times with distilled water and drying them at 70 degrees Celsius for 30 minutes.
Next, coat the slides with amino propyl trixi, cy lane, or apte by vapor deposition. Add one milliliter of apte to a flask that is attached to the vacuum chamber with the sample. Then cap the flask and pull a vacuum of 0.7 bar for one hour.
During this time, refresh the vacuum three times. Next, cut a new flow chamber gasket from a 0.4 millimeter thick sheet of silicone using a silhouette SD cutting tool. The channel measures 6.4 millimeters wide by 19 millimeters long, and the outer diameter is cut to 35 millimeters in order for it to fit into the asylum culture dish.
Using these dimensions, calculate the flow rate necessary to generate a sheer stress of one pascal with the equation shown here. Q represents the flow rate. Tau is the sheer stress.
Mu is the viscosity of the medium. H is the channel height, and W is the width of the flow chamber. The next step is to align the top piece of the flow chamber with the gasket in the cell culture dish and secure it with a magnetic ring.
Connect the flow ports in the cell culture dish to three wave valves with lines to the 30 milliliter syringes. Then sterilize the entire assembly by flushing with isopropyl alcohol for five minutes. Then remove the alcohol and allow it to air dry in the tissue.
Culture hood Prewarm 4%fetal calf serum in McCoy’s medium to 37 degrees Celsius. After being left to dry for five to 10 minutes, flush out whatever alcohol remains with 30 milliliters of the prewarm fetal calf serum. Then fill the syringes with 20 milliliters of veek MCDB 1 31 growth medium.
Next, cap the syringes to prevent contamination. When moving the system out of the sterile hood, fit the cap for the catch reservoir with the needle that reaches into the fluid to draw medium back to the upstream reservoir. Finally, attach 0.2 micron sterile filters to the air inlets on the caps next harvest human umbilical vein.
Endothelial cells grown to confluence in a T 25 flask. Re suspend the pelleted cells at 100, 000 cells per milliliter in medium and draw the solution up into a syringe. Then inject the suspension into the flow chamber through the three-way valve.
Allow the cells to settle and adhere to the glass substrate for two hours. Before beginning flow, move the bioreactor and cells into an incubator where the cells are allowed to settle and adhere for two hours. Tubing connecting the reservoirs to a peristaltic pump passes through the back of the incubator Once the cells have adhered, set the peristaltic pump to the desired flow rate.
Media moves between the reservoirs, creating a pressure head and a flow through the bioreactor that produces a wall shear stress of one pascal. Allow the cells to incubate with continuous flow at 37 degrees Celsius for one to five days until the chamber is confluent. To begin cantilever preparation, clean a tip plus a FM cantilever in nitric acid for five minutes, followed by a rinse with distilled water.
Once dry, functionalize the cantilever with apdi in a vapor deposition chamber as previously shown for the glass slides. Then prepare a solution of five milligrams per milliliter by weight NHS Sulf O lc, biotin in Hank’s buffered salt solution. Submerge the cantilevers in the solution for 15 minutes.
This reaction conjugates the CY and end hydroxy oxide and presents biotin molecules on the surface of the cantilevers. On the day before, start preparing a solution of biotin free medium by combining 20 milliliters of vexcel culture medium containing 20%serum with 200 microliters of strept ENC coated beads, and incubate for 12 hours while rotating. On the day of the experiment.
Pull the magnetic beads to the bottom of the tube with a magnet for two minutes and transfer the supernatant containing biotin free medium to a new tube. Sterilize the media by passing it through a 0.22 micrometer filter and put it into a new tube. The next step is to remove the flow chamber from the cell culture dish and then wash the cells three times with two milliliters of 37 degree Celsius, biotin free medium.
Then add one microgram of 2.4 micrometer diameter, stripped Aden coated beads. Add a concentration of 10 micrograms per milliliter into the cell culture dish and gently mix it. Next, calibrate the A FM tib by attaching it to a strippin bead and pressing it into a plain glass surface.
In order to accomplish this land the tip on the glass surface next to a bead, retract the tip, then position the apex of the cantilever over the bead and press down for several seconds. Finally, use the calibrated cantilever to indent the samples. The 2.4 micrometer beads offer a larger contact area with the cell surface so that the mechanical properties of the soft glycocalyx layer can be more easily detected.
To accomplish this position, the cantilever over a cell near the cell nucleus, use a soft approach of the tip onto the cell to set the cantilever height approximately three micrometers above the cell surface. Then indent the surface 20 times at a rate of one micrometer per second to a maximum force of seven. Nano newtons allow for six seconds of time to elapse between successive contacts.
Calculate the thickness of the glycocalyx layer using equations related to the hertz theory. The force of indentation F is described by this equation where delta is the indentation depth. R is the sphere radius, and estar is the combined modulus of the materials under stress.
In order to separate the combined elastic modulus estar into cellular and glycocalyx components, treat the glycocalyx layer as a uniform, thin soft film on the surface of the cell body and use the two layer model of Clifford and C.In this equation, PQ and N are constant empirically determined from polymer fits. M is a constant from the polymer model, and Z is related to the thickness of the thin film or glycocalyx layer by the equation shown here. The force measured by the A FM measured in nano Newtons begins to increase after contact with the surface and is initially dominated by the glycocalyx layer component.
Once the glycocalyx layer is compressed, the cell body becomes the major component of deformation. The blue two layer fit line was calculated by fitting four free parameters to get it to match the indentation data shown in red from the equation used the cell modulus, glycocalyx, layer modulus, and glycocalyx layer thickness can all be determined. The properties from 25 cells were compiled into the histogram shown here.
The average glycocalyx layer modulus was determined to be 0.7 plus or minus 0.5 kipa cals, and the glycocalyx layer thickness was determined to be 380 plus or minus 50 nanometers. This approach gives us the tool we needed to answer fundamental questions about the role of the glycocalyx in regulating cell adhesion during inflammation. We’re now able to address questions about how the properties of the glycocalyx are altered during inflammation.
By what means those changes are accomplished. This approach can be extended in a number of ways. For example, one could use it to test novel, more sophisticated theoretical descriptions of the properties of the glycocalyx.
Or on a more practical level, one might be able to use this to test bio-inspired surface coatings, designed to protect implantable devices from immune response in the host. Thanks very much for your interest in our work.
המאפיינים המכאניים של glycocalyx אנדותל נמדדו על ידי כניסה באמצעות כדורים בגודל מיקרון על cantilevers AFM. תאי אנדותל בתרבית בתא מותאם אישית תחת תנאי זרימה פיסיולוגיים לגרום ביטוי glycocalyx. נתונים נותחו באמצעות מודל סרט דק כדי לקבוע את העובי ומודולוס glycocalyx.
Investigating Single Molecule Adhesion by Atomic Force Spectroscopy
Measuring the Mechanical Properties of Living Cells Using Atomic Force Microscopy
Atomic Force Microscopy Cantilever-Based Nanoindentation: Mechanical Property Measurements at the Nanoscale in Air and Fluid
Micro-Mechanical Characterization of Lung Tissue Using Atomic Force Microscopy
Functionalization of Atomic Force Microscope Cantilevers with Single-T Cells or Single-Particle for Immunological Single-Cell Force Spectroscopy
Control of Cell Adhesion using Hydrogel Patterning Techniques for Applications in Traction Force Microscopy
Experimental and Data Analysis Workflow for Soft Matter Nanoindentation
Extracting the Young's Modulus of Native Murine Pulmonary Basement Membranes from Atomic Force Microscopy Derived Force Maps
Quantitation of Endothelial Cell Adhesiveness In Vitro
Measuring the Stiffness of Ex Vivo Mouse Aortas Using Atomic Force Microscopy
Cite this Article
Marsh, G., Waugh, R. E. Quantifying the Mechanical Properties of the Endothelial Glycocalyx with Atomic Force Microscopy. J. Vis. Exp. (72), e50163, doi:10.3791/50163 (2013).


shelf: software-docs

title: Embracing the future new omega2 beta firmware and documentation site

text:
We’re excited to announce a major milestone in the evolution of the Omega2 platform. After months of development and community collaboration, we’re introducing a new beta firmware based on OpenWRT 23.05 and the modern 5.15 Linux kernel. This firmware provides a clean slate designed to make building your products and applications easier and faster than before.
To complement the new firmware, we’ve also launched a brand-new documentation site. This site is crafted to help you navigate the new features and enhancements with ease, offering comprehensive guides, tutorials, and reference materials.
Together, the new firmware and documentation site represent our commitment to putting your needs at the forefront, streamlining your development process, and enhancing your overall experience with the Omega2 platform.
A User-Focused Firmware Philosophy
The new firmware is a significant departure from the existing v0.3.4 and earlier firmware. We’ve adopted a new approach to firmware development, putting your needs at the forefront. This means a more streamlined, lightweight, and customizable experience.
Core tenets of the philosophy:
- Lightweight: instead of porting everything from the existing firmware, we have started with a clean slate. We will only add functionality that our users deem necessary.
- Modular & portable: all customizations created by Onion are either part of software packages or patches to the build system. This makes it easier for users to build their own customized versions of the firmware and to keep up with OpenWRT’s releases
- Focus on user experience: we want to focus our development efforts on improving the user experience through all the stages of using the Omega in your product: development, production, and deployment
All of this results in a firmware that is:
- Up to date: based on OpenWRT 23.05, released in 2024.
- More performant: boots faster, WiFi has more functionality and flexibility, newer and more secure versions of packages available
- Ready to use out of the box: Onion’s customizations focus on usability so the networking stack is configured for easy connectivity by default and the hardware interfaces are accessible with minimal effort
- Easier and quicker to build: building custom firmware packages and images now takes minutes instead of hours
While the new firmware offers a fresh start, we’ve ensured that core functionalities remain compatible. Most existing applications should work with minimal changes, but we recommend testing your applications with the beta firmware and letting us know if you encounter any issues.
A few highlights on what’s new in the firmware:
- Now using the open source mt76 WiFi driver: additional functionality, flexibility, and security while maintaining performance
- Modern programming language support: Python 3.11 and NodeJS v18 (!) available for building your modern applications
- Run-time loadable Device Tree overlay: easily extend the hardware capabilities of the device on the fly (without building firmware from scratch), reducing your development time
- Fewer included packages: more space on the device for your custom applications and a reduced boot time
For a detailed list of changes to the firmware, see the What’s New article on the new documentation site.
A Faster and Smoother Build Process
A common thread in our conversations with current Omega users has been the friction of customizing Onion firmware. Building packages and custom firmware images is hard, confusing, and time-consuming, with a lot of effort being spent just in the initial setup.
To resolve this friction we’ve streamlined the build process, making it faster and more intuitive, so you can focus your time and effort on building your unique application and business logic. Building custom packages and firmware images now takes minutes instead of hours.
Learn more about the updated build process on the new documentation site and how you can tailor it to your needs.
Get Started with the New Firmware
To get started with the new firmware, download a new firmware image from the Onion software repository and follow our step-by-step installation guide. See the new documentation site for a quickstart guide as well as information on using the hardware interfaces and more.
In Q1 of 2025, we plan to transition to the new firmware as the default for all Omega2 modules coming from the production line. We’ll provide ample notice and resources to ensure a smooth changeover.
We encourage you to try the beta firmware today to take advantage of its new features and give us your valuable feedback.
What About the Existing Firmware and Existing Documentation?
Rest assured, the current v0.3.4 firmware and documentation at docs.onion.io will remain available and supported. You can continue your projects uninterrupted while exploring the new options at your own pace.
We Value Your Feedback
Feedback from our users has always been crucial in shaping the Omega platform. We’re eager to hear your thoughts on the new firmware, your experience with it, any issues you encounter, or features you’d like to see added. Your insights on the documentation’s clarity and usefulness are also highly appreciated.
Join the conversation by:


shelf: health

title: My experience going into a salt cave

text:
I want to share an amazing experience I had this week in regard to a new therapy that totally intrigued me as to its potential for improving health.
It is found in the unlikely place of East Ridge Tennessee. The official name is Halotherapy or commonly called a “salt cave”. It involved me sitting for 45 minutes in a large room that is attempting to replicate the old salt mines found in certain areas of the world. The walls, floors, and ceilings are comprised of unrefined salt along with two cups of dead sea salt air being pumped into the room. Stories abound for 100 plus years of how workers in underground salt mines were almost always considerably healthier than the average person due to breathing these microscopic particles of salt into their lungs. Sinus and lung disorders were rare in these underground workers. The salt treatments were first discovered in 1843 by Dr. Botchkovsky as a treatment for respiratory diseases. (source-new england journal of medicine). Not only lung health seems to be improved but skin conditions were also reported to show benefit such as psoriasis, eczema, cystic fibrosis and atopic dermatitis.
When I entered the large solid white room, it almost seemed like a memory I had of Ruby Falls that I experienced as a young kid. The room is solid white all around and has a tube from one wall that pumps the dead sea salt in tiny particles into the air as you relax for 45 minutes in the reclining chair. I found the time extremely quiet and peaceful and the only sound was that of air pumping the salt into the room. The air felt very clean and refreshing yet had no apparent smell to it. I finished my 45 minutes feeling extremely calm yet refreshed and was surprised how the time had flown by. I will be doing more of these treatments in the coming weeks however because I have healthy lungs and respiratory system, I am not perhaps the best test case. I will however be recommending it to many of our clients who struggle with chronic sinus and lung conditions, (with their physicians approval).
The salt treatments were first discovered in 1843 by Dr. Botchkovsky as a treatment for respiratory diseases. (source-new england journal of medicine).
I have for years found fascinating the potential claims of “Salt Lamps” which attempt to accomplish a similar goal as a salt cave but can be placed in a room of your house. We sell “Salt Lamps” at Nutrition World for those interested.
Watch this video for more information on Salt Rooms…
To watch a truly eye opening video on the benefits of the right kind of salt that is used internally and for cooking by Dr Mercola.(Nutrition World carries this salt)


shelf: finance

title: Best invoicing software

text:
It is crucial to get paid for businesses, but generating and sending invoices can be a challenge. Invoicing software automates this process and makes the job easier. It also helps reduce errors and makes it easier to send invoices quicker.
PandaDoc offers an unpaid version that lets you to create and share payments on both desktop and mobile devices. The premium version, however, provides more advanced features such as automatic reminders for payment and the ability to group multiple estimates into a single invoice. The software can be used to create recurring bills, has built-in sales tax calculator that accepts payments through 10 different payment gateways, and offers a calculator for different currencies and sales taxes.
The application is a cloud solution and allows access to your files from any device that has an internet connection. It is simple to use and comes with an easy user interface. It integrates with well-known software like Xero. In www.cxcstudy.com/brief-overview-of-avast-antivirus addition to its invoicing functions it also explores other functions such as expense tracking, time tracking management reporting, and double-entry accounting.
Freshbooks is an invoicing software designed to simplify business processes. It is designed for small and medium businesses and is a great fit for accounting, design, construction legal and consulting companies. The program offers a variety of other tools like credit card processing and receipt scanning.
The software allows you to create and send invoices in a short time, with a unique logo and color scheme. It also enables you to track billable hours, with an interface that shows the status of your work and an inventory of outstanding invoices. It can be integrated with other accounting and project management software, including QuickBooks. It lets you invite your accountants to record journal entries.


shelf: education

title: 4h bureau land management horse adoption

text:
This spring and summer, five youth in the Nevada 4-H Youth Development Program dedicated some of their time during the COVID-19 quarantine preparing four wild horses and one burro for adoption. On Aug. 1, the girls will show the animals, and two of the horses will be auctioned off for adoption at Nevada’s first-ever Halter-started Wild Horse & Burro Event and Adoption auction.
The girls, part of Extension’s Washoe County 4-H Horse Program, received the animals, all not yet a year old, from the Bureau of Land Management as part of a pilot program between Extension and the bureau to place wild horses with adoptive families. They spent 100-120 days preparing the horses for human interaction and adoption.
The bureau, which already operates a similar, effective program with the Nevada State Prison where prisoners train the wild horses, is always looking for new ways to rehome healthy wild horses. They saw positive results from a partnership with the bureau and 4-H in Idaho, so they wanted to pursue a similar program here in Nevada.
“They trust 4-H and trust Extension, and they know they will be able to work with youth already familiar with horses to foster and provide training to prepare these horses to be companions at new forever homes,” Sara Chvilicek, 4-H program coordinator, said. “They want to find a way to rehome wild horses because the horses are healthy animals, and they want to give these animals a chance.”
At the Aug. 1 show and auction, which takes place at the University’s Equestrian Center on Valley Road and Sadleir Way in Reno and will follow current COVID-19 requirements, the girls will be judged on their showmanship and ability to train and care for the animals. Beginning at 9 a.m., they will be evaluated on ground handling, animal health and presentations about their work with their animals. The ground handling competition includes leading the animals through an obstacle course by hand, as they are too young to ride.
At 11 a.m., bidding for adoption will begin for two of the horses. Bids start at $150, and individuals interested in adopting the horses must meet the Bureau of Land Management adoption requirements. The other two horses and burro will be adopted by the families who raised them. Proceeds for the event will be split among the bureau, the Washoe County 4-H Horse Program and the girls who raised the horses.
After the success of the pilot program in Washoe County, the bureau and Extension, a unit of the University’s College of Agriculture, Biotechnology & Natural Resources, plan to expand the program into other counties.


shelf: home-craft

title: seven deadly sins

text:
seven deadly sins
Sword of Liz from the anime Seven Deadly Sins. Replica of Liz's sword from the anime series Seven Deadly Sins. Originally a gift to Meliodas, it served as a replacement for the Dragon Handle until it was destroyed in the battle against Albion. Comes with detailed leather-wrapped wooden scabbard.
Lostvayne Demonic Sword inspired by the manga The Seven Deadly Sins - Nanatsu no Taizai. Made of steel, the top of the blade is serrated and also has five circle-shaped holes. Black case included.
Sword Forged by hand and sharp model Melodias from the Seven Deadly Sins manga. Made of steel, broken blade at the tip. Orange sheath included. The sword measures 78 cm.
Show your love for the amazing world of The Seven Deadly Sins with our Lostvayne Banner-Flag! This impressive banner is designed to withstand harsh weather conditions, making it perfect for hanging on balconies, using as event banners or as indoor banners and banners. In addition, it is available in two types of fabric, polyester or satin, so you can...
If you are a fan of The Seven Deadly Sins, our Lostvayne Sword + Banner Pack is a must in your anime collection! This pack includes an impressive Lostvayne Demon Sword, inspired by the anime series, as well as a weather-resistant Lostvayne Banner-Flag. The banner is available in two types of fabric, polyester or satin, and is ideal for hanging on...
Unleash demonic power with the Lostvayne Demon Sword from Seven Deadly Sins! This unofficial model immerses you in the world of the series with an impressive replica that will make any collection stand out. Featured Features: Total Size of 70cm: With a towering length of 70cm, the Lostvayne Sword captures the intimidating essence of demonic weapons. Its...
Discover the majestic Rhitta Axe, an impressive ornamental replica inspired by the divine weapon of Escanor, one of the most powerful characters in the Seven Deadly Sins series! Seven Deadly Sins is a popular anime and manga series that follows the adventures of a group of powerful knights, each representing one of the seven deadly sins. In a world filled...


shelf: history-culture

title: Jack storms magnificent glass sculptures

text:
Jack Storms is a natural-born artist whose passionate art is world-renowned.
He is considered a warlock in sculpting “out of this world” phenomenal crystal art in futuristic rainbow colors.
In his younger years, Storms worked for a glass artist, who experimented with combining lead glass and dichroic glass, using a cold glass process. Storms became fascinated by the potential of combining different materials, creating a whole new substance of glass fibre.
In 2004, Storms opened his own studio, StormsWorks, in Los Angeles, a place where he could delve deeper into the process, spending time creating perfection by dedicating numerous hours to the refined procedure of his creations, where time is of the essence.
With effort and precision required, it is like a surgical procedure, where each piece is cut to put dichroic glass between, then glued, and then repeated several times.
Storms' sculptures have found their way into celebrity homes, and were featured in Marvel's Guardians of the Galaxy movie. He was also commissioned to create specific pieces commemorating historical events, like a glass baseball bat for Derek Jeter's 3000th hit, the Firemen's Bell sculpture for the City of Pleasanton Firehouse Arts Center in California, a gift to the president of Nigeria in honor of the opening of Africa's first blood bank, and many more to come.
Storm most recent project is “Rise and Shining“, which is a collaboration with his brilliant wife Vivian; a jewelry design.
Check out Jack's Art at https://jackstorms.com
Or request a studio tour, by appointment only.


title: Terms of service

text:
By accessing and using Frames & Interiors Insight, you agree to comply with and be bound by these Terms of Service. These terms apply to all users of the site, including but not limited to vendors, customers, and browsers. If you do not agree to these terms, you must not use our website. Please note that we reserve the right to modify these terms at any time, and such amendments will be effective immediately upon posting. It is your responsibility to periodically review these terms as your continued use of the site signifies your acceptance of any changes.
Frames & Interiors Insight provides information and resources related to construction and interior design. You may use the site for personal and non-commercial purposes only. You are prohibited from reproducing, duplicating, copying, selling, or otherwise exploiting any part of the site without our express written permission. You agree not to engage in any conduct that may impair or interfere with the functionality of the site or compromise its security. Use of the site for illegal or unauthorized purposes is strictly prohibited.
All content on this website, including text, graphics, logos, images, and software, is the property of Frames & Interiors Insight or its content suppliers and is protected by copyright and other intellectual property laws. You may not modify, publish, transmit, participate in the transfer or sale of, reproduce, create derivative works from, distribute, perform, display, or in any way exploit any of the content, in whole or in part, without our prior written consent.
Frames & Interiors Insight shall not be liable for any direct, indirect, incidental, special, or consequential damages resulting from the use or inability to use the site or any content on the site. We do not warrant that the site will be uninterrupted or error-free, nor do we guarantee the accuracy or reliability of the information provided. Users are responsible for verifying the information before relying on it, and all use is at the user's own risk. In jurisdictions that do not allow the exclusion of certain warranties or liabilities, our liability shall be limited to the fullest extent permitted by law.
These Terms of Service and any disputes arising out of or related to these terms shall be governed by and construed in accordance with the laws of India. Any legal action or proceeding relating to your access to or use of the site shall be instituted in a court of competent jurisdiction in India, and you consent to personal jurisdiction in such courts.
For any inquiries or further information, you may contact Gareth Wainsworth at the Art Gallery of New South Wales, Art Gallery Rd, Sydney NSW 2000, Australia, or via email.


title: 301

text:
Lithium batteries are mainly composed of a shell, a positive electrode, a negative electrode, an electrolyte and a separator. The positive electrode is constructed by coating lithium cobalt oxide powder on both sides of the aluminum foil current collector through PVDF which has a binding effect; the negative electrode structure is similar to the positive electrode, and is composed of carbon powder bonded on both sides of the copper foil current collector. At present, the research on the recycling of waste lithium batteries is mainly focused on the recovery of the valuable cathode precious metals cobalt and lithium. The copper in the anode of waste lithium batteries (with a content of about 35%) is a widely used important production raw material that adheres to The carbon powder on it can be used as additives for plastics and rubber. Therefore, the effective separation of the negative electrode constituent materials of the waste lithium battery has a driving effect on the realization of the limited recycling of the waste lithium battery and the elimination of its corresponding environmental impact.
The scrap lithium battery is sent to the primary shredder by the conveyor for shredding, and the shredded material is sent to the secondary multi-blade crusher through the conveyor for the second crushing, and the material after the secondary crushing enters the conveyor. The machine is equipped with magnetic separation equipment at the same time, which can separate the iron in the material. The sorted materials are sent to the air sorting machine through the conveyor. Separate the separator paper from the positive and negative electrodes by the induced draft fan and the cyclone feeder, and enter the separated positive and negative plates into a three-stage pulverizer for fine pulverization, and pulverize the material to about 20 mesh. The crushed materials enter the cyclone separator through the negative pressure system for dust filtration.
Through two airflow sorting, materials of different densities are stratified, and then positive and negative materials, copper, aluminum, nickel and other materials are obtained, and all the ultrafine dust is brought into the pulse dust collector by the negative pressure system for collection. The filtered tail gas will continue to be sent from the negative pressure system to the tail gas treatment equipment for air purification, so that it can reach the environmental protection emission standard before being discharged at high altitude.


title: Follow Us On

text:
Follow Us On
WhizCall Mobile Apps
Welcome to the world of incredible mobile international calling experience from your Android powered device or mobile phones at rock bottom prices!
WhizCall Android App is a fast & easy to use downloadable application for your Android powered smart phones
and devices that automatically converts all your contacts with an instant international calling set up that triggers
a call back to your phone and then connects the call to the desired international destination of the contact.
Select a Country
Change Call Back No. At Any Time
Ideal for World Travelers
Zero International Roaming Charges
Affordable International Call Rates
High Quality Call Connections
No monthly Rental or Connection Fees
Online Account Management
How to install
Visit the following URL ("https://www.globaltelelinks.net/whizcall/") from your Android smart phone mobile browser
Click on the relevant link to download & install WhizCall Android App on your smart phone
Once installed, WhizCall Android App would request your permission to configure your smart phone
WhizCall Android App will automatically configure all the contacts on your smart phone address book within the application
WhizCall Android App is installed on your smart phone & ready for affordable international calling.
How to make call:
Go to your WhizCall Android App on your smart phone
From the application address book, select the contact that you wish to call
WhizCall triggers the first call to your default call back number
Once the call is answered, WhizCall triggers another call to the desired destination contact number
Ensure that all the contacts on your smart phone address book are prefixed with the appropriate country code depending on the location for each contact.


text:
Nurturing Your Mental Health by Embracing Nature
As we acknowledge the importance of mental health during May, a month dedicated to raising awareness, it's crucial to explore how simple activities such as spending time outdoors can significantly improve our wellbeing. Many of us lead frenetic lives, juggling work, family, and social obligations, often forgetting to pause and connect with the rejuvenating power of nature.
In 'Go Outside - Nature’s Mental Health Secret', the discussion dives into how outdoor activities can enhance our mental wellbeing, prompting a closer look at how we can apply these insights in our own lives.
The Science Behind Nature and Wellbeing
Research substantiates what many experience firsthand: time spent in nature reduces stress and anxiety. Outdoor activities, whether hiking, gardening, or simply lounging in your backyard, provide an excellent escape from the demands of modern life. Studies have shown that nature can lower cortisol levels, promote vitamin D absorption, and even enhance serotonin production, contributing to a greater sense of happiness.
Simple Ways to Incorporate Outdoor Activities
If you're unsure how to start, even short bursts of outdoor time can be beneficial! Pause for a moment during your morning routine. Sip your coffee on the porch or step outside for a quick walk around the block. Each small effort counts. If you live in areas like Orlando, consider visiting the best hiking trails nearby or exploring family-friendly outdoor spots. Florida offers a plethora of outdoor activities designed for all ages, perfect for weekend getaways and rejuvenation.
Transforming Your Perspective on Nature
Going outdoors fosters creativity and rejuvenation. Nature can awaken a child-like wonder within us, as simple sights and sounds may captivate our senses. Even something as mundane as a passing squirrel can provoke joy and spark thoughts that lead to insightful ideas. So why not take a moment today to unplug? Enjoy the sights, breathe deeply, and let nature refresh your mind.
In our busy, technology-driven lives, it’s easy to overlook the healing power of the outdoors. As you reflect on this, remember the benefits of taking a break from digital distractions—allow yourself a peaceful moment outside to recharge your mental health.


title: Low inventory and strong demand continue in victoria real estate marke 7592509

text:
A total of 942 properties sold in the Victoria Real Estate Board region this June, 16.6 per cent more than the 808 properties sold in June 2020, but 10.2 per cent fewer than the previous month of May. Condominium sales were up 61.7 per cent from June 2020 with 338 units sold. 4 per cent more condominiums sold in June 2021 than in the previous month of May. Sales of single family homes were down 4.3 per cent from June 2020 with 440 sold. 18.1 per cent fewer single family homes sold in June 2021 than in the previous month of May.
“We are at a point now where we can look at yearly comparisons with a new lens,” said Victoria Real Estate Board President David Langlois. “In recent months we have been unable to glean anything by comparing year over year numbers because of the sudden and unexpected impact of the pandemic on the 2020 market. But June last year was when the market started its reacceleration. Buyers came back into the market in droves even though listings were restrained compared to long term averages.”
There were 1,375 active listings for sale on the Victoria Real Estate Board Multiple Listing Service® at the end of June 2021, 49 per cent fewer properties than the 2,698 available at the end of June 2020 and 5.2 per cent fewer than the 1,450 active listings for sale at the end of May 2021. The Multiple Listing Service® Home Price Index benchmark value for a single family home in the Victoria Core in June 2020 was $896,700. The benchmark value for the same home in June 2021 increased by 18.6 per cent to $1,063,500, a 2.6 per cent increase from the previous month of May. The MLS® HPI benchmark value for a condominium in the Victoria Core in June 2020 was $490,400, while the benchmark value for the same condominium in June 2021 was $531,100, an 8.3 per cent increase.
“We see now even more sales activity than the return to the market we saw last year,” added Langlois. “And our inventory is much more restricted, with more than thirteen hundred fewer listings for sale than the year previous. We can see the strong impact this shrinking supply has had on year over year prices. There are many factors we need to watch while this summer’s market unfolds, including the change in borrowing rules that may impact first time buyers, declining levels of inventory and demand from outside of the province as tourism and travel reopens. Speak with your REALTOR® if you’d like fresh insight into our current market.”


title: Maximize your future apply uottawa faculty social sciences scholarships

text:
The application deadline for these scholarships is October 31st, so don't wait. Keep reading to explore the various scholarships available and how they can support you in achieving your academic goals.
Marcel Pronovost Scholarship
If you're a student at the Faculty of Social Sciences, the Marcel Pronovost Scholarship could be your golden ticket to financial support. This scholarship is designed to help deserving students at the faculty. It's not just about the money; it's about the recognition of your dedication and hard work.
Hervé Casault Scholarship Fund
This fund offers a scholarship to female immigrants to Canada who have arrived within the past ten years. If you are interested in community development and aspire to integrate well into the francophone community, this scholarship could help you realize your goals. It's a unique opportunity to combine your studies with meaningful community engagement.
The William Slater Bursary for Indigenous Students
This bursary was established through the generosity of Mr. William Slater with the aim of financially supporting Indigenous students at the Faculty of Social Sciences who demonstrate financial need. If you are an Indigenous student pursuing studies within our faculty, this bursary could assist you in pursuing your academic dreams.
The Charron-Duhamel Family Scholarship
This scholarship is intended for Canadian Francophone university students interested in a variety of formal academic and informal learning activities in virtually all disciplines, from social sciences and arts to law, health sciences, and pure and applied sciences. To be eligible, your mother tongue must be French, or French must be the language spoken at home.
Irene Sotiroff Scholarship
The Irene Sotiroff Scholarship is awarded to an undergraduate student enrolled in the Faculty of Social Sciences or the Faculty of Education who has demonstrated community leadership and has contributed to issues involving social justice or peace. If you are passionate about these issues and have shown leadership, this scholarship is an opportunity not to be missed.
The George Sotiroff Bursary
This bursary aims to provide financial support to undergraduate students in a program at the School of Political Studies at the Faculty of Social Sciences. If you are pursuing studies in this exciting field, this bursary can offer the financial support you need to succeed.
Ian Charles Scott Memorial Award
The Ian Charles Scott Memorial Award is for students with acceptable academic standing in the Faculty of Social Sciences. If you have a documented background and a continued interest in community and volunteer activities aimed at helping people, this award is meant for you. It acknowledges your commitment to making a difference in your community.
François Houle Scholarship (OTSS)
The François Houle Scholarship is here to ensure your education doesn't face any compromise. This scholarship provides financial assistance to students registered in an undergraduate or master's program at the Faculty of Social Sciences. It's a lifeline for those who might otherwise struggle to continue their studies.
To apply for these scholarships, please visit the Scholarship portal on uoZone before the October 31st deadline. Don't let this opportunity pass you by! These scholarships can not only provide financial relief but also give you the confidence to excel in your studies and in life.


title: Beauty kitchen the sustainables fragrance free organic vegan aloe vera shampoo 300ml

text:
Organic vegan Aloe Vera Shampoo packed full of super-gentle, all-natural ingredients to leave your hair super soft. The sustainably sourced aloe vera and coconut add moisture to dry hair and foams into a lovely lather to clean your hair thoroughly. The fragrance free formula is great for sensitive skin and cleans your hair without stripping it of its natural oils.
Suitable for vegans and vegetarians. Using 100% natural ingredients makes this suitable for sensitive skin.
Free from animal testing and Leaping Bunny Certified Cruelty Free. Free from parabens, SLS/SLES, mineral oils, petroleum, microbeads, phthalates, triclosan, GMOs, synthetic fragrances and DMDM Hydantoin. Suitable for septic tanks. Certified B corporation.
Made in the UK.
Recyclable packaging made up of aluminium bottle and rock paper label.
Beauty Kitchen are on a mission to change the way beauty packaging is re-used and recycled. All of their products with the ‘Return, Refill, Repeat’ stamp can be sent back to them, so they can be washed out and reused in the next batch of products. This helps them to kickstart the packaging lifecycle all over again in the most sustainable way, and preventing them from going to landfill and not being recycled.
If you’re in the UK you can download and print a free shipping label here and drop off at your nearest Collect+ location. You can reuse the product box they came in or any box you have making sure it is secure, so it doesn’t get damaged in transit. Top tip: use old newspaper, toilet roll tubes or popcorn to pad it out, and save your empties to send back more than just one at a time.
Beauty Kitchen donate 2% of their sales to the charities Plastic Soup Foundation, Seahorse Trust and IN Kind Direct.
Aqua (Water), aloe barbadensis (Organic Aloe Vera) leaf juice, disodium lauryl sulfosuccinate (Vegetable), lauryl glucoside (Vegetable), sodium cocoamphoacetate (Vegetable), erythritol (Corn Starch), cocamidopropyl betaine (Vegetable), glyceryl oleate (Vegetable), coco glucoside (Vegetable), coconut fatty acid (Coconut Oil), sodium chloride (Salt), glycerol (Vegetable), hydroxyacetophenone (Antioxidant), potassium sorbate, sodium benzoate
We are not the manufacturer of the products sold on our website. While we work to ensure that product information on our website is correct, manufacturers may alter their product information. Actual product packaging and materials may contain more and/or different information than shown on our website. You should always read the labels, warnings and instructions provided with the product before using or consuming it and not solely rely on the information presented on our website.
There are currently no reviews to display for Beauty Kitchen The Sustainables Everyday Gentle Organic Shampoo - 300ml
There are currently no questions to display about Beauty Kitchen The Sustainables Everyday Gentle Organic Shampoo - 300ml.
Please see our Despatch & Delivery page for more information on delivery areas, services and charges.


title: Territory

text:
A WORLD. IN EVERY SINGLE DROP.
Inside each drop of Plose Water are all the mountains of South Tyrol. All the sharpness of the Dolomites, the pureness of the uncontaminated environment and all the passion of those who have been cultivating and respecting this land for thousands of years.
So when you drink a glass of Plose water, BioPlose juices and iced teas, or Plose Vintage drink, you won’t feel like you’re just quenching your thirst, you’ll feel like you are making a little trip to our mountains.
THE SPRING. A WORLD HERITAGE SITE.
Plose springs are located on Mount Plose in Alto Adige, about 20 km from Bressanone. They come from a spring to 1870 meters above sea level near Puez natural park in the Dolomites, proclaimed a UNESCO World Natural Heritage site.
The spring is fed by a dense network of long channels hidden at a great depth which serves to protect them, ensuring the water’s distinctive purity and quality.
RESPECT. A FUNDAMENTAL INGREDIENT.
Our relationship with the mountains is at the basis of everything we do. This relationship is based on respect before anything else.
It’s a respect that we have always had for our land, for nature, for people and for the genuineness of the good things in life.
Alto Adige is home to thousands of years of human history, and the Dolomites are a UNESCO World Heritage Site. Bressanone, its mountains and its products are an undeniable pearl.
Plose mineral water is qualitatively some of the best water in Europe. It is Bressanone’s most widespread product. Distributed throughout Italy and abroad, it helps to capture the picture of quality and authenticity that has always characterized our land. Bringing over 5000 people every year to visit the factories, our spring is a beautiful destination for tourists who drink Plose water all across Europe.
To preserve everything, a Respect for Springs Zone was created around the spring. Fonte Plose has committed to preserving this area for 60 years with constant maintenance and careful control of the territory.
Our task, as individuals and as a company, is to safeguard our heritage and, where possible, improve it so that everyone can enjoy our treasured products, worldwide.


title: Pccjr legislation amending the unfair trade practices act introduced by rep kauffman

text:
Legislation championed by PCCJR that would amend the Unfair Trade Practices Act has been introduced in the House by Rep. Rob Kauffman, R-Franklin. The legislation, H.B. 1891, is in response to the state Supreme Court’s decision in Gregg v. Ameriprise, which expanded the scope of liability under the Act’s “catch-all” provision.
In a split 4-3 decision the Court held that the “catch-all” provision of the Unfair Trade Practices Act is a strict liability provision and the intent or mindset of the business actor has no bearing on liability. This means that “state of mind” or intent of a defendant is irrelevant under the “catch-all” provision of the Act and does not need to be proven by a plaintiff. “A plain language analysis of the relevant statutory provision leads inexorably to the conclusion that deceptive conduct under the [UTPCPL] is not dependent in any respect upon proof of the actor’s state of mind,” Justice David Wecht wrote in the majority opinion.
With the standard of liability eased, this opens the door to an increase in suits filed under the Act. As noted in a previous PCCJR update, mere buyers remorse will now be cause to sue, should a plaintiff allege they did not understand a transaction.
As argued in a PCCJR amicus curiae brief, this expanded scope of liability goes against legislative intent by ignoring the limiting language (fraudulent or deceptive conduct) which requires consideration of the actor’s state of mind. Kauffman’s legislation reverts the law back to the original legislative intent.


text:
Engineering Geology Course And Certification
What is Engineering Geology?
Engineering geology is the introduction and application of geology to the field of engineering for the sole reason of ensuring that the geological factors concerning the design, location, construction, operation, and maintenance of engineering works are that are well-acknowledged and accounted for. Engineering geologists implement geological and geotechnical analysis, recommendations, and design that are associated with human development and several types of structures. The department of the engineering geologist is essentially in the areas and study of the interactions of the earth-structure, or in the investigation of how the earth or earth processes influence human-made structures and human activities.
Engineering geology studies may be done during the environmental impact analysis, planning, value engineering, civil or structural engineering design and construction phases of public and private works projects, and during post-construction and forensic phases of projects. Works that are completed by engineering geologists include the following; geological hazard assessments, material properties, landslide and stability of sloping areas, erosion, flooding, dewatering, and seismic investigations, etc.
In the Full Course, you will learn everything you need to know about Engineering Geology with Certification of Completion to showcase your knowledge.
Features of Engineering Geology
There are lots of features of Engineering Geology, and below are some of them
1. Collecting, analyzing and interpreting data
2. Accessing, using and analyzing site information (such as radar images, aerial photographs, reports, and geological maps) prior to site investigations
3. Planning, organizing and undertaking fieldwork/site investigations by creating boreholes and trial pits
4. Preparing reports
5. Providing advice and information to clients on a range of issues including, for example, proposed use, subsidence and construction materials
6. Assessing and minimizing the risks of man-made and natural hazards in the environment
7. Ensuring that projects keep to budgets and timescales
8. Managing and liaising with construction engineers, consultants, contractors, and geotechnical engineers
9. When more senior, managing projects and setting objectives.
Benefits of Engineering Geology?
There are lots of benefits of Engineering Geology, and some of them are:
1. It is carried out for residential, commercial and industrial developments.
2. It is carried out for governmental and military installations.
3. It is beneficial for mine and quarry developments, mine tailing dam, mine reclamation, and mine tunneling.
4. It provides knowledge about materials used for construction.
5. Its knowledge is helpful for river control and shipping work.
6. Its knowledge is helpful for constructing dams.
Why study Engineering Geology?
There are lots of benefits to studying Engineering Geology, and some of them are:
1. You would have the ability to adapt to different working conditions and things changing.
2. You would gain team-working and communication skills.
3. You would have the ability to analyze and interpret data.
4. You would learn to pay attention to detail.
5. You would gain problem-solving skills
6. You would learn about time management
7. Career opportunities and advancement
Engineering Geology Course Outline:
Engineering Geology - Introduction
Engineering Geology - Geologic Structures
Engineering Geology - Geologic Maps and Stratigraphic Sections
Engineering Geology - Remote Sensing in Engineering Geology
Engineering Geology - Physical Properties of Minerals
Engineering Geology - Crystallography and Optical Properties
Engineering Geology - Chemical Characteristics of Minerals
Engineering Geology - Origin And Types of Rocks
Engineering Geology - Origin And Types of Soils
Engineering Geology - Igneous Rocks
Engineering Geology - Sedimentary Rocks
Engineering Geology - Metamorphic Rocks
Engineering Geology - Weathering
Engineering Geology - Sediment Transport and Deposition
Engineering Geology - Introduction to Subsurface Exploration
Engineering Geology - Introduction to Subsurface Exploration I
Engineering Geology - Sampling and Non - Intrusive Methods
Engineering Geology - Index Properties and Classification of Soils
Engineering Geology - Index Properties of Rock and Rock Mass
Engineering Geology - Stress-Strain Behavior of Soil and Rock
Engineering Geology - Stress-Strain Behavior of Soil and Rock - II
Engineering Geology - In-situ State of Stress
Engineering Geology - Geologic Considerations in Tunneling
Engineering Geology - Geologic Considerations in Dam Construction
Engineering Geology - Groundwater - Preliminaries
Engineering Geology - Groundwater Flow
Engineering Geology - Groundwater Flow - II
Engineering Geology - Groundwater Related Engineering Issues
Engineering Geology - Groundwater Over Utilization
Engineering Geology - Plate Tectonics
Engineering Geology - Plate Tectonics - 2 and Earthquake
Engineering Geology - Earthquake Hazard Assessment
Engineering Geology - Geologic Hazards - Seismicity and Volcanism
Engineering Geology - Geologic Hazards - Shoreline Processes I
Engineering Geology - Geologic Hazards - Shoreline Processes II
Engineering Geology - Geologic Hazards - Landslide Hazards - Zoning III
Engineering Geology - Geologic Hazards Subsidence, Collapsible Soils IV
Engineering Geology - Preparation of Geologic Sections
Engineering Geology - Index testing of soil & rocks
Engineering Geology - Identification of minerals and rock samples
Engineering Geology - Exams and Certification


title: Dynamic web apps

text:
Cole: I'm here to talk to you about why I think everyone can be a full stack software engineer. Currently, web apps are built often with large teams of engineers, with each engineer just owning a little piece of the puzzle. I think that there's a better model for developing modern web apps, one in which individual engineers get to own their feature, all the way from the top of the stack to the bottom. I think when you do it, this way, we can ship more product features faster, and individual engineers are able to think deeper about the product experience. When I say modern web app, what am I talking about? I'm talking about apps like these, apps like Facebook, Airbnb, Slack, Asana, Reddit. What do all of these have in common? First, they're websites that have dynamic content. We're no longer serving static HTML to everyone on the internet. Instead, different information is served to each user that's pulled from some database. The app is personal and has user generated content. The second thing is that these apps, at least when they're done well, are reactive. When a user loads the app, they'll see the changes to the data happening in real time. You don't have to refresh the page, but the most up to date content is pushed directly to the browser. The last thing is that these apps are all interactive. Not only can you view data, but you can add your own content, write posts, write messages. When you do that, you see your own edits update in real time. The sum total of all these properties together can make these apps when they're done really well just feel native. Users will no longer feel like they're on a website, but they feel like they're having a rich native experience. This is what I want to talk about. I want to talk about how you build apps like these, and how we can design the infrastructure for these apps to enable individual software engineers to own the whole stack.
Who am I? My name is Alex. I'm a software engineer at Convex. Convex is a reactive Backend as a Service. We're helping people build their web apps on top of our serverless infrastructure, so you don't have to manage all the infrastructure yourself. We've been doing a lot of thinking about what are the right ways to build web apps today. Before this, I worked at Asana. I was leading the client infrastructure team. This was a team that was building out the reactive web framework that Asana uses internally. I also did a lot of thinking there about, what are the right abstractions to give product engineers? How can we put product engineers into the pit of success? All of this combined means I care deeply about how we build modern reactive web apps. I want to tell you a bunch about my thinking.
Web App Architecture
First up, I want to talk about the architecture that most apps are using today. What is happening behind the scenes in these large web apps? What problems do these architectures hit? Let's start by talking through a example web app. What do we need if we want to get our app off the ground and serve to users? We're going to need a couple things. We're going to need to build a frontend, probably we'll build it in React. We'll write some React components and put together the UI that we really want to deliver to our users. That frontend is going to need to go and talk to some backend. We're going to need a way to run server-side business logic. Probably, we're going to define some endpoints or GraphQL schema and GraphQL resolvers to load and mutate data. The dotted line in this diagram represents the boundary between the client and the server. The frontend is going to make some requests to the backend. Then on top of that, we need some way to permanently store data. We're going to need some type of database, perhaps MySQL, or MongoDB. That's going to store data based on some schema for our app.
To start, this is it. Many apps will launch with a three-level architecture like this and get right off the ground running. Once our app is wildly successful, we're going to hit some limitations here. I think one of the first limitations we're going to hit is that an individual backend might not be powerful enough to serve all of our users. We could have problems like the backend is going down because there's just too many requests, or every time we rewrite the code in the backend, we have to swap it out for a new one and there's downtime. Likely, the first step as we're growing our application is that we're going to need to expand the backend to no longer be a single service. Instead, we'll run multiple copies of the backend and have a load balancer in front of them. This will give us some redundancy, so if one backend goes down, we'll be able to handle that fine. It will also help us because now when we redeploy code, we can have our load balancer talk to the new backends instead of the old ones, and do seamless transitions. Yes, Asana started out with an architecture very much like this.
Are we done? Are we ready to check off and just run our app and keep it in production like this? I think not. I think as our user base grows, we're not at the end of our scaling woes. I think the next part of our system diagram that may have issues is the database. Here, we're running a single database, which once again means that it can be a single point of failure. One, if our user base grows enough, we're no longer going to be able to handle our traffic in one database. If we don't have a database, we don't have an app. I think the next step in our scaling is that we're going to want to shard the database. Instead of running one big database, we're going to probably want to split our customer's content into separate shards where different shards live on different databases. This will let us horizontally scale the database layer and grow to more numbers of users. It also means that an outage on one database won't affect everybody. Also, surprisingly, Asana started out with a single database and reached those limits. As anyone who's done sharding knows, it's no easy task. When you're doing sharding, you're going to have to break up your work that maybe cross multiple different parts of your data model, into work of individual transactions on databases. You're going to need to only be able to do a transaction on one database. If you want to write data to multiple databases, you're going to have to think through the consistency of it yourself. That's fine. We're a big web app. We have a big team. We're going to have some people who have thought hard and long about MySQL, and the right way to shard, and they're going to split up our data into multiple databases.
What's next? Are our scaling woes and our performance problems over? Once again, I think it just keeps getting more complicated. Next up, I think we're probably going to need a way to improve performance beyond the database. For many apps, loading all of your data from a single database or a set of databases is fine. It's also increasingly popular to have a caching tier as well. Here, we'll have some cache nodes that are storing in-memory, a lot of the data from the database. These might be services like MySQL, or Redis, and instead of the backend, loading data straight from the database. At least for some kinds of content, it can go to the cache first, see if the data is in the cache, and then follow up and go to the database. If any of you have experience with caching, you will know that I just brushed under the rug a tremendous amount of complexity. As soon as you add a caching tier, now we're going to have to make sure that the data in the cache actually matches the data in the database. It is extremely easy to end up with cache inconsistencies where some user edits data in the cache, but fails to write to the database, or vice versa, where they write to the database, but don't update the cache. These might seem like small problems. The correct data is still saved in the DB, what's the issue? When the users are showing up on your site, what they're going to see is the information in the cache. If it differs from the database, they're going to believe that their content was lost or corrupted. Likely building out this infrastructure, we're now going to need more engineers with more expertise to make sure that the caching layer and the database stay in sync.
We did that. We've built the cache. Are we done? Are we ready to launch our web app and scale up to the entire user base? It keeps getting worse. I think the next problem we may run into is actually a product one, of, I said we were building these really interesting reactive, interactive apps, but the architecture diagram I've drawn here is really only about loading data and writing it. How are users going to see content when it changes? We're going to need to make it reactive. The standard way to make it reactive would be to change our frontend to no longer use HTTP to request its data, but instead have some long-lived WebSocket connection to the backend. That's the double ended arrow. Using a WebSocket means that we can still load data on the frontend by requesting it from our backend, but also, it'll keep a connection to the backend open, so the backend can push data all the way to the frontend. How is the backend going to know when to push what data? This will require yet another new piece of infrastructure. A common choice is to use a Pub/Sub service. The idea behind this is that the backends will be able to publish topics to the Pub/Sub service whenever they edit any information. They'll subscribe to the information that their clients currently care about. The Pub/Sub service will act as a Message Broker, letting backends know when information changes. Asana also did exactly this. Asana had an in-house Pub/Sub system they built themselves, and broke up the data model into these fine-grained Pub/Sub topics, and used those to push around information, so that anytime you're viewing content in the app, you would see it change in real time.
Once again, there was a lot of complexity here. There was a lot of complexity in getting in the correctness right, of how do you correctly publish and write to the database at the same time? You can't. There's complexity in making the frontend be able to understand the messages about changes to information. We're going to need some way for the frontend to have some local client store, and store all of this data and update it as it changes. We've already scaled up our team. We're going to have some set of people that are working just on reactivity in Pub/Sub. About now is when I run out of space on the screen, but that doesn't mean that the complexity stops growing. I think in many modern web apps, there's actually a lot more boxes in this diagram. Some other common choices are that if your product someday needs to have full text search, you want the ability for users to search for messages by the text in them, your existing database might not be able to handle that. You add in a whole nother database. We can start running something like Elasticsearch to fill those queries.
At some point, we might want to be able to do things like send emails in the background. If we want to have background jobs, we're going to need some job queue where we can schedule jobs to happen, and workers that actually do the work. We're probably, as the site scales up, going to need to have analytics. People are going to want to know what users are doing on the site. How many users we have? We'll also need to add in a data warehouse. It just keeps going. I think yes, basically, as I've described here, this is the state of the art for modern web development. You're combining together a bunch of different services. It's your responsibility to wire them all up in the right way and keep them consistent. It works. I think almost every logo I have written on the first slide was built in this way.
Who's Going to Manage This Complex App?
Web App Product Development
Just to round this out, let's think about what product development looks like in this model. Let's imagine now that we actually want to go and add a new feature to our app, given this architecture and these teams. As a toy feature to talk about adding, let's imagine that we're building a chat app like Slack. We want to add channels to the app for the first time. We already have a single channel chat app, but now we want to go and add the ability for users to have custom channels, send messages in those channels, see the full list of channels, all that good stuff. What do we need to do to add channels? First, we're going to need to think at the bottom of the stack. At the database layer, we need some way to define a SQL schema and define what our data model is. This is probably going to be a conversation between the backend team who is thinking about what kind of endpoints we need to write, and the infrastructure team who is thinking about scalability and performance. They're going to agree on a SQL schema. Once they do that, we're going to need to actually go update our database to have the schema. Maybe the infrastructure team is going to go add the schema, whatever appropriate indices we think we'll need, and also, generally scale up the services to support this new feature.
We have the schema, what's next? Next up, we're going to need the backend and frontend teams to talk to each other to define the API of the endpoints. If we're building a chat app, we probably need a way to load the list of channels. We're going to need a way to load messages that are in a specific channel. We're going to need to be able to create channels, delete channels, rename channels. We're going to need to make sure that the frontend team is getting all of their needs met by the endpoints, but also that they can be implemented by the backend team. Often, I've seen teams that will jump to GraphQL to solve this. Because this conversation is so difficult, it's often nice to have a rigid structured language in order to guide the conversation and write down the conclusions.
Backend and frontend teams, we've defined the API. Finally, the backend team can go and actually build the endpoints. They'll implement this API and use the SQL schema that the infrastructure team set up for them. Finally, only then can we actually go and build the components and actually build the UI. Now the frontend team can write the components, and we have built our new feature, end-to-end. How do we feel about this process? In total, we had over six different services involved. There were five steps. We had at least three teams. I think realistically, even for a small feature like this, it's going to take weeks. There's just too many moving parts involved, too many different people. The work of developing the feature has been split up between totally different teams, so that no team is thinking about this feature, end-to-end. Everybody is focusing on their part and throwing a bit of work over the wall.
Can we do better? What does a better model look like? What does a world look like in which people could actually own their features, end-to-end? To say the negative version here, in this existing model, how could anyone be a full stack engineer? It seems completely infeasible for a single engineer to be thinking about or owning this much infrastructure? It seems impossible. How could we do it? What would it look like? I think the thing I want to talk about next is, what a serverless architecture would look like for building a complex web app like this. How does serverless change things? How does it change the teams that are building the apps? Before we talk about what architecture we're actually going to use, I think we should come back to this complicated one that we had before, and focus in on the question of, what part is the app? I drew all of these boxes before I even told you what app we're building. What parts of these boxes actually have to do with the product features we're building? I think there's a couple of bits here. On the frontend side, we're going to have different React components depending on what app we're building. The React components are specific to the user experience we want to give.
In this serverless architecture, these are the only things we need. We need React components, some way to build the UI. We need backend serverless functions, some way to have backend business logic and run code on the server. We need a schema. We need to describe how we want to save our data in a database. Unlike the previous diagrams, this is it. I'm not going to be pulling out any more complexity here because there isn't any more. I think these three ingredients really give us everything we need to build the app.
When we've done this, let's break down what the responsibilities are. If you're using a serverless architecture like this, you have to manage just those three things. You'll have to write UI components. You'll have to write serverless functions. You'll have to define a schema. Where did all of the other parts go? How are those getting taken care of? If you're using a serverless provider, you're giving them the responsibility for handling the scalability, correctness, caching, and performance, reactivity, backups, availability hosting, the whole list. I think we didn't do anything totally revolutionary here. I just took the responsibilities that used to be spread across a large engineering team, and offloaded them into a serverless hosting provider. Yes, and having personally worked on a large engineering team building Asana, I can tell you that a large fraction of engineers were actually focused on all of these problems, and not the UI components, the functions, and the schema. By giving the provider all of these responsibilities, it will let you focus in on building the parts of the app that actually affect your user experience.
Serverless Product Development
That sounds good in theory, but what does product development actually look like in this serverless environment? What I want to do is walk through the same example we did before. I want to just show you how that would work if you're using Convex. I think a lot of the same ideas apply to many other serverless providers. This is the one that I know well. When you're using Convex, you write your schema in TypeScript. Before you added messages to your chat app, your schema might look like this. Here, this is a TypeScript file. We're importing some helpers, defineSchema, defineTable, and s. We're defining a schema that just has a single table, messages. Messages are just objects that have two properties on them, author and body, and both of them are string. A very minimal chat app where people can post messages and say who posted them.
If we now want to expand this into a chat app that has channels, we're just going to go ahead and add channels to our schema. Here, I've updated the schema. Now there's another table called channels. Each channel is just an object that has a string name. Then we need to connect the messages to the channel somehow. In Convex, the way you can do that is by referencing the ID of the objects in the other table. Here, now messages have a channel property, and that's just the ID of a channel. This is how we handle foreign key references. To define the schema, took 30 seconds. What's next? We need to define the backend functions. Once again, in Convex, this is all just written in TypeScript. This is an example of the kinds of functions you might need to build this multi-channel chat app. The first function would live in a file like listChannels.js, or listChannels.ts. It's using query here, which is saying that this is a Convex query function. In Convex, query functions let you load data, and they're automatically reactive. Whenever you load a query function, Convex will also push to you a new version of the data whenever the underlying data changes.
In this case, what do we want to do? We want to go to the database. We'll query the channels table, and just collect all the channels that we find. That way, we can list all of the channels in our little Slack channels picker. I should say though that in a Convex query function, you can write arbitrary TypeScript, and it'll still be reactive. If we wanted to take the length of this list and list how many channels there are, we could get a live updating number of the number of channels in the app. We don't just want to list the channels, we also need a way to add new channels. We can define that using this Convex mutation in addChannel file. Here, this is a mutation that takes in the name, string, and then inserts a new document into the channels table with that name. Nothing revolutionary here. I think the cool part is that the same engineer who went and wrote the schema, could easily hop over here and start writing the functions. They're just in the same code base, TypeScript code: nothing magical, nothing special.
Then the last piece is that we actually need to use these functions to build components and add on that new UI for our new user experience. In this example, we'll probably want to make a new React component called channels list. What does that do? We need to load the channels if we want to list them. Convex gives you a useQuery hook. UseQuery takes in the name of a query function, and just gives you a reactive version of the result. This is a live updating set of channels. Then based on those, we're going to render some UI. Maybe we map through all the channels. For each channel, we render a link that lets you load the messages in that channel. That's it. You can load data from queries on the frontend. You can call mutations. That gives you all of the tools you need to build any interactive experience.
I think when we've done this, it is both completely obvious and also somewhat revolutionary. We've taken a process that was going to take weeks for 3 different teams to complete, and I just described how to do it in 10 minutes. By using the same language and the same abstractions at every layer of the stack, it's now realistic for individual engineers to understand all of this and own their feature, end-to-end. Instead of having people split up on what part of the stack they're working on, you can now have teams that are just focused on their parts of the data model and their features, and can think through how to build those features, end-to-end.
On top of that, I think there are some things that you get with serverless that are actually just hard to build in traditional architectures. Let me give you my two examples of what you get for free by using serverless that may have never been able to be built using a traditional model. The first one is reactivity by default. When I say that, what do I mean? Often, in an app, you're starting in the way that I did in my example, where you start by calling endpoints and loading nonreactive data. Then adding on a Pub/Sub system, which will give you some amount of reactivity, but perhaps only to the things that you actually manually built it for. It's very common to have apps where the chat portion of the app is reactive, but the other views are not because that would be extra infrastructure and extra engineering complexity. In Convex though, you actually get this for free. Any time that you load a query on the frontend, Convex pushes you updates to that query whenever the data changes. An example of the experience I mean, is look at these two windows. There's one here that's creating a channel, and then one that is viewing the channels list. In Slack, for example, when you go and hit new channel and click the Create button, the new channel pops up in the channels list immediately. I think this is a detail that can take an enormous amount of work in a traditional architecture. If you're using a centralized system like Convex that understands the data that query functions load, then it can push newer updates to those query functions whenever the underlying data changes.
The second freebie that you get in this system is end-to-end type safety. Because we've written all of our code in TypeScript on every layer of the stack, we can give you really good precise generated types. What do I mean by this? Here, I'm inside of a React component, channels list, and I'm calling the useQuery hook in Convex. UseQuery now understands what query functions we've defined, and autocompletes them automatically. Here, you can see that there's a listChannels query function, and a listMessages query function in our code base. Often, this thing can be built in other frameworks, but requires complex code generation to take your SQL schema and turn it into TypeScript, or take your GraphQL schema and build your types for your GraphQL client. In Convex, this is all piped together in end-to-end correct automatically.
Similarly, the types can actually just flow all the way from the database layer up into your UI. Our listChannels query function was loading a list of channel objects. Here, when we load those channels on the frontend, you can see that it's just an array of documents that each have an ID, a creation time, and a name. One field that we defined, two system fields that got added, but we can see them all in our editor right here. I think this also helps engineers move faster across all layers of the stack, because they know that the types are going to guide them through the process.
A couple conclusions and parting thoughts to walk away with. The first one is that most of the complexity in modern web apps has nothing to do with the app at all. Our standard infrastructure and pieces that we wire together actually are amazingly complex. That's part of what necessitates these large engineering teams, where each individual engineer only owns a tiny part of the stack. Second, if we can remove this complexity, first, it obviously saves time. If there's things that your team doesn't need to manage, you can focus more on the other options. It also changes how you actually work. When you're only focusing in on the parts of the app that have to do with your app, you can think about them more holistically, and own the same thing, own features end-to-end. The last thing, everyone can be a full stack engineer. Once you remove all the unnecessary complexity, it is completely feasible for engineers to work all the way from the schema layer up to the UI, and think about an entire product feature.
Questions and Answers
Dunphy: You talked about outsourcing our infra to teams who specialize in areas we would normally manage in-house. While this sounds great in theory, to me, is there actually a complexity tradeoff here when we outsource these critical tasks?
Cole: I definitely think about it as just moving around the complexity, not necessarily trading it off. There is some inherent complexity in building the infrastructure for a modern web app. It's just a question of here's the in-house team doing it or an external team. I also think it's interesting to put this in the larger arc of like, how has engineering big web apps changed over time? It used to be that you would have a server sitting in your garage that you would manage yourself and buy. Now with hosted platforms, like AWS, people switch to using EC2. In addition, people are increasingly using more managed databases like RDS. I think the line about like, which parts of the infrastructure you manage, and which ones you're paying to manage, is just continually moving up. Sooner or later, people are also not going to want to be provisioning their own backends, and that type of thing.
Dunphy: Perhaps it's not exactly more complex, it's just a different type of complexity.
Cole: Yes, for sure. The complexity is now moving into the realm of specialists who are building this as their business.
Dunphy: I think many people who have really not tried this architecture may have a perception that it's not ready for large scale production applications. What is your response to this? Are there any companies you know who are using serverless architecture at scale?
Cole: Yes, for sure. I think as with any new technology, a lot of the early adopters are smaller companies who are more willing to try it out and take a risk. I think anecdotally, I'm definitely hearing about big companies that are dipping their toe in, testing the waters, using it for small features or small parts of their app. Some companies that are also just building their apps on top of it. Certainly, AWS Lambda, I think probably the biggest serverless product out there right now has a ridiculously long, impressive list of logos on their website. It seems like Zillow, Coinbase, lots of people are switching and using Lambdas to simplify their stack. I think certainly the trend is undeniable that, yes, more companies are using this in the future.
Dunphy: Is that something you would recommend to get started with serverless is just try it out in some small section of an app or some small new feature.
Cole: I think, like any new technology, you don't want to move your entire web app onto this and assume that it will work and be fine. I think finding small ways to test it out, make sure that it works for you and your technology, I think is always a good way to get started.
Dunphy: How do you manage migrations of schema?
Cole: Obviously, this thing varies depending on which product you're using. In the case of Convex, the schemas are actually pretty interesting, because you can use Convex either with a schema where you explicitly write out what tables you have, and what types those tables have. Then they generate TypeScript types, or even without a schema where you just put in data and pull it out and keep track of this on your own. I think Convex currently has limited ad hoc schema migration capabilities. You definitely can go and write mutations that read out your data in one format and write it back in another. We also are planning to add more automated schema migrations, where you can write a transform from your documents from one format to another and have that run automatically.
Dunphy: How do you imagine these principles to work for teams having multiple frontends, web and mobile, or even only mobile?
Cole: I think the dream is that a lot of this just applies directly. Certainly, if you have an app that is only mobile, I still think it's a really good model to have the same engineers building out the app as the people building out the backend, because they can think holistically about their feature. I'm also excited and interested in ways to break down the barriers between web and mobile at companies that have both. When I worked at Asana, there was actually a very hard line between the web engineers and the mobile engineers. Product features that required launching in both were these like complicated coordination game. I think with new frameworks like React Native, where you can build your mobile app in React components, just like your web app, some of these boundaries are becoming a little looser. I'm excited about ways in which the same engineers can build product in all the platforms.
Dunphy: This is what got me into the React community. I produce the conference, Reactathon. I've been very close to the React community for a long time. It was really the keynote in I think it was 2014 or 2015, when they introduced React Native that I was like, this is game changing. It's proven to be. Now we have technologies like Expo, for those of you who are interested in cross platform development, I would highly encourage you to check that out. Expo is a technology where you can build for mobile across platforms and web with the same code. It's just incredible.
Can you host Convex on Azure Serverless infra such as App Service?
Cole: No, not yet. Convex internally is running on top of AWS, but we actually manage all that for you. That's an implementation detail that we don't actually talk about. I think if there's demand for more different hosting options, and that thing, certainly we're willing to expand and be more flexible there.
Dunphy: How did quality assurance adopt this transformation to serverless architecture?
Cole: I actually don't have that much experience with quality assurance. When I was working at Asana, the way that things mostly worked is we relied really heavily on automated tests, so that we could ensure code is working. Asana would actually release code twice a day, which is just so fast, that having like manual QA process is not really possible. In general, I don't think switching to serverless drastically changes how your team has to do QA. If you're using automated tests, you can certainly write automated tests against serverless infrastructure, just like you could with your traditional infrastructure. If you want to do a manual QA process, I think that's also just as easy to do as ever. Maybe in some ways, even easier if you can spin up a backend without having to provision servers and have some staging environment that your QA people use, because you don't actually have to manage the servers. Having a second deployment of Convex out there to test against is super easy.
Dunphy: Does this model imply your product will be a monolith? Do all teams need to work in the same repo and have the same SDLC, software development life cycle?
Cole: Certainly, my hot take is that I actually love monoliths. I think that having everything in the same repo makes it easier for developers to cross boundaries and jump into parts of the code that they don't normally work on. I think, yes, having a single software development life cycle is a often pretty simple model for most teams, unless you're getting up to some huge scale and really want to separate deployments into more granular units. That being said, if you wanted to split things up more, that's also an option. You certainly could use serverless and have a separate repo for your backend and a separate repo for your frontend. I think getting more granular than that, though, is actually not very common. In a traditional architecture, you may have many microservices and want to deploy these all separately. Now that you're not really managing deployment at all, it's being managed by your serverless hosting provider. I think the benefit of splitting up these microservices into tiny little pieces, at least in my mind, no longer makes sense, because you're not even managing deployments. If you're using Netlify or Vercel and deploying every time a new commit is pushed, I don't think that this sharding up into pieces is really necessary anymore.
Dunphy: How would you recommend going with React Native in brownfield, a hybrid, or a rewrite?
Cole: I think my understanding right now is it's an emerging technology. Plenty of people are still building apps in a more traditional way, using Swift or Java to build native iOS and Android things. I would consider React Native if you have a team that is already used to writing React components. I think that makes it much easier to start an iOS project. I don't know that much, though, about the integration between React Native and traditional apps. I think if you're in a brownfield environment where you're trying to transition your app to a new technology, I would just make sure that there's a really good incremental migration plan. In general, I'm always scared about do it all at once rewrites where you stop the world and rewrite your app in a new framework. At Asana, we were always very careful to make sure our rewrites were incremental so we could ship pieces as we went. That made it possible to make some really big changes to our infrastructure.
Dunphy: Why did you leave Asana for Convex? What excites you about Convex, that perhaps you didn't get while working at Asana?
Cole: At Asana, I worked a lot on the reactive data loading framework that Asana built in-house called Luna. I think it was cool to see how this supercharged our product engineers and enabled them to build new features really rapidly. I think part of my excitement in coming into Convex is getting to work on the same thing, but building it for the rest of the community. Because I think that there were a lot of cool things going on at Asana that, yes, I'm excited to bring to the rest of engineers.
Dunphy: Why were you so excited to join Convex?
Cole: I think they were thinking about a lot of the same kinds of problems in good ways. Also, it's fun to join a small team with a lot of good people.
See more presentations with transcripts