The document discusses the history and development of artificial intelligence over the past 70 years. It outlines some of the key milestones in AI research from the early work in the 1950s to modern advances in deep learning. While progress has been significant, fully general human-level AI remains an ongoing challenge that researchers continue working to achieve.
My JSConf.eu talk about next-gen JavaScript metaprogramming features, starting with ES5's new Object APIs and then focusing on the forthcoming Proxy object, approved for the next ECMA-262 Edition. This is beautiful work from Tom Van Cutsem and Mark Miller, with Andreas Gal helping on the implementation front -- proxies are already shipping in Firefox 4 betas.
A visual DSL toolkit in Lua: Past, present and futureAlexander Gladysh
Lua, besides its other virtues, is quite easy to learn.
Nevertheless, Lua is a programming language, and in order to learn it one must invest a considerable effort to learn to write programs. It is often the case that, on one hand, there is a need to configure lots and lots of business logic intricate and ever-changing rules, but, on the other hand, the person who has the most expertise on the particular business logic area – domain expert – not have any clue on how to write code effectively (or even at all).
All kinds of clumsy UIs, spaghetti code, wasted dedicated scripter's hours and other unpleasantries stem from that problem.
Our flagship product – Business logic editor toolkit – attempts to alleviate that somewhat by providing a programmer with a set of tools to easily build a business-logic configuration UI, suitable for a non-programmer domain expert, and an easy, platform-agnostic way to seamlessly tie business-logic configuration from that UI to an existing (or newly written) codebase, effectively creating a visual domain-specific programming language.
Our toolkit is written in Lua (and some JavaScript), and it is a seventh generation implementation of the concept behind it. In this talk I'll talk a little about the past generations, describe the mechanics behind the current implementation in some detail, and I'll share our thoughts on how the next generation should look like – a new approach on the internal DSL design in Lua.
And a promise: no marketing speak in the talk, and as much technical details as I'd dare (and time will permit)!
LITCHI PROCRESSING IN BIHAR AND ITS ROLE IN THE ECONOMIC DEVELOPMENT OF BIHARRayha Khan
This presentation was made on the research project carried out by my friends n me under the CPE scheme of the UGC in our final year of our undergraduate course in economics. It comprises of the state of litchi production and processng and also a case study of a litchi processing unit in the muzaffarpur district of bihar, India.
(video of these slides available here http://fsharpforfunandprofit.com/fppatterns/)
In object-oriented development, we are all familiar with design patterns such as the Strategy pattern and Decorator pattern, and design principles such as SOLID.
The functional programming community has design patterns and principles as well.
This talk will provide an overview of some of these, and present some demonstrations of FP design in practice.
My JSConf.eu talk about next-gen JavaScript metaprogramming features, starting with ES5's new Object APIs and then focusing on the forthcoming Proxy object, approved for the next ECMA-262 Edition. This is beautiful work from Tom Van Cutsem and Mark Miller, with Andreas Gal helping on the implementation front -- proxies are already shipping in Firefox 4 betas.
A visual DSL toolkit in Lua: Past, present and futureAlexander Gladysh
Lua, besides its other virtues, is quite easy to learn.
Nevertheless, Lua is a programming language, and in order to learn it one must invest a considerable effort to learn to write programs. It is often the case that, on one hand, there is a need to configure lots and lots of business logic intricate and ever-changing rules, but, on the other hand, the person who has the most expertise on the particular business logic area – domain expert – not have any clue on how to write code effectively (or even at all).
All kinds of clumsy UIs, spaghetti code, wasted dedicated scripter's hours and other unpleasantries stem from that problem.
Our flagship product – Business logic editor toolkit – attempts to alleviate that somewhat by providing a programmer with a set of tools to easily build a business-logic configuration UI, suitable for a non-programmer domain expert, and an easy, platform-agnostic way to seamlessly tie business-logic configuration from that UI to an existing (or newly written) codebase, effectively creating a visual domain-specific programming language.
Our toolkit is written in Lua (and some JavaScript), and it is a seventh generation implementation of the concept behind it. In this talk I'll talk a little about the past generations, describe the mechanics behind the current implementation in some detail, and I'll share our thoughts on how the next generation should look like – a new approach on the internal DSL design in Lua.
And a promise: no marketing speak in the talk, and as much technical details as I'd dare (and time will permit)!
LITCHI PROCRESSING IN BIHAR AND ITS ROLE IN THE ECONOMIC DEVELOPMENT OF BIHARRayha Khan
This presentation was made on the research project carried out by my friends n me under the CPE scheme of the UGC in our final year of our undergraduate course in economics. It comprises of the state of litchi production and processng and also a case study of a litchi processing unit in the muzaffarpur district of bihar, India.
(video of these slides available here http://fsharpforfunandprofit.com/fppatterns/)
In object-oriented development, we are all familiar with design patterns such as the Strategy pattern and Decorator pattern, and design principles such as SOLID.
The functional programming community has design patterns and principles as well.
This talk will provide an overview of some of these, and present some demonstrations of FP design in practice.
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Dr.Costas Sachpazis
Terzaghi's soil bearing capacity theory, developed by Karl Terzaghi, is a fundamental principle in geotechnical engineering used to determine the bearing capacity of shallow foundations. This theory provides a method to calculate the ultimate bearing capacity of soil, which is the maximum load per unit area that the soil can support without undergoing shear failure. The Calculation HTML Code included.
Final project report on grocery store management system..pdfKamal Acharya
In today’s fast-changing business environment, it’s extremely important to be able to respond to client needs in the most effective and timely manner. If your customers wish to see your business online and have instant access to your products or services.
Online Grocery Store is an e-commerce website, which retails various grocery products. This project allows viewing various products available enables registered users to purchase desired products instantly using Paytm, UPI payment processor (Instant Pay) and also can place order by using Cash on Delivery (Pay Later) option. This project provides an easy access to Administrators and Managers to view orders placed using Pay Later and Instant Pay options.
In order to develop an e-commerce website, a number of Technologies must be studied and understood. These include multi-tiered architecture, server and client-side scripting techniques, implementation technologies, programming language (such as PHP, HTML, CSS, JavaScript) and MySQL relational databases. This is a project with the objective to develop a basic website where a consumer is provided with a shopping cart website and also to know about the technologies used to develop such a website.
This document will discuss each of the underlying technologies to create and implement an e- commerce website.
Immunizing Image Classifiers Against Localized Adversary Attacksgerogepatton
This paper addresses the vulnerability of deep learning models, particularly convolutional neural networks
(CNN)s, to adversarial attacks and presents a proactive training technique designed to counter them. We
introduce a novel volumization algorithm, which transforms 2D images into 3D volumetric representations.
When combined with 3D convolution and deep curriculum learning optimization (CLO), itsignificantly improves
the immunity of models against localized universal attacks by up to 40%. We evaluate our proposed approach
using contemporary CNN architectures and the modified Canadian Institute for Advanced Research (CIFAR-10
and CIFAR-100) and ImageNet Large Scale Visual Recognition Challenge (ILSVRC12) datasets, showcasing
accuracy improvements over previous techniques. The results indicate that the combination of the volumetric
input and curriculum learning holds significant promise for mitigating adversarial attacks without necessitating
adversary training.
Welcome to WIPAC Monthly the magazine brought to you by the LinkedIn Group Water Industry Process Automation & Control.
In this month's edition, along with this month's industry news to celebrate the 13 years since the group was created we have articles including
A case study of the used of Advanced Process Control at the Wastewater Treatment works at Lleida in Spain
A look back on an article on smart wastewater networks in order to see how the industry has measured up in the interim around the adoption of Digital Transformation in the Water Industry.
Student information management system project report ii.pdfKamal Acharya
Our project explains about the student management. This project mainly explains the various actions related to student details. This project shows some ease in adding, editing and deleting the student details. It also provides a less time consuming process for viewing, adding, editing and deleting the marks of the students.
Cosmetic shop management system project report.pdfKamal Acharya
Buying new cosmetic products is difficult. It can even be scary for those who have sensitive skin and are prone to skin trouble. The information needed to alleviate this problem is on the back of each product, but it's thought to interpret those ingredient lists unless you have a background in chemistry.
Instead of buying and hoping for the best, we can use data science to help us predict which products may be good fits for us. It includes various function programs to do the above mentioned tasks.
Data file handling has been effectively used in the program.
The automated cosmetic shop management system should deal with the automation of general workflow and administration process of the shop. The main processes of the system focus on customer's request where the system is able to search the most appropriate products and deliver it to the customers. It should help the employees to quickly identify the list of cosmetic product that have reached the minimum quantity and also keep a track of expired date for each cosmetic product. It should help the employees to find the rack number in which the product is placed.It is also Faster and more efficient way.
Saudi Arabia stands as a titan in the global energy landscape, renowned for its abundant oil and gas resources. It's the largest exporter of petroleum and holds some of the world's most significant reserves. Let's delve into the top 10 oil and gas projects shaping Saudi Arabia's energy future in 2024.
2024 State of Marketing Report – by HubspotMarius Sescu
https://www.hubspot.com/state-of-marketing
· Scaling relationships and proving ROI
· Social media is the place for search, sales, and service
· Authentic influencer partnerships fuel brand growth
· The strongest connections happen via call, click, chat, and camera.
· Time saved with AI leads to more creative work
· Seeking: A single source of truth
· TLDR; Get on social, try AI, and align your systems.
· More human marketing, powered by robots
ChatGPT is a revolutionary addition to the world since its introduction in 2022. A big shift in the sector of information gathering and processing happened because of this chatbot. What is the story of ChatGPT? How is the bot responding to prompts and generating contents? Swipe through these slides prepared by Expeed Software, a web development company regarding the development and technical intricacies of ChatGPT!
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Dr.Costas Sachpazis
Terzaghi's soil bearing capacity theory, developed by Karl Terzaghi, is a fundamental principle in geotechnical engineering used to determine the bearing capacity of shallow foundations. This theory provides a method to calculate the ultimate bearing capacity of soil, which is the maximum load per unit area that the soil can support without undergoing shear failure. The Calculation HTML Code included.
Final project report on grocery store management system..pdfKamal Acharya
In today’s fast-changing business environment, it’s extremely important to be able to respond to client needs in the most effective and timely manner. If your customers wish to see your business online and have instant access to your products or services.
Online Grocery Store is an e-commerce website, which retails various grocery products. This project allows viewing various products available enables registered users to purchase desired products instantly using Paytm, UPI payment processor (Instant Pay) and also can place order by using Cash on Delivery (Pay Later) option. This project provides an easy access to Administrators and Managers to view orders placed using Pay Later and Instant Pay options.
In order to develop an e-commerce website, a number of Technologies must be studied and understood. These include multi-tiered architecture, server and client-side scripting techniques, implementation technologies, programming language (such as PHP, HTML, CSS, JavaScript) and MySQL relational databases. This is a project with the objective to develop a basic website where a consumer is provided with a shopping cart website and also to know about the technologies used to develop such a website.
This document will discuss each of the underlying technologies to create and implement an e- commerce website.
Immunizing Image Classifiers Against Localized Adversary Attacksgerogepatton
This paper addresses the vulnerability of deep learning models, particularly convolutional neural networks
(CNN)s, to adversarial attacks and presents a proactive training technique designed to counter them. We
introduce a novel volumization algorithm, which transforms 2D images into 3D volumetric representations.
When combined with 3D convolution and deep curriculum learning optimization (CLO), itsignificantly improves
the immunity of models against localized universal attacks by up to 40%. We evaluate our proposed approach
using contemporary CNN architectures and the modified Canadian Institute for Advanced Research (CIFAR-10
and CIFAR-100) and ImageNet Large Scale Visual Recognition Challenge (ILSVRC12) datasets, showcasing
accuracy improvements over previous techniques. The results indicate that the combination of the volumetric
input and curriculum learning holds significant promise for mitigating adversarial attacks without necessitating
adversary training.
Welcome to WIPAC Monthly the magazine brought to you by the LinkedIn Group Water Industry Process Automation & Control.
In this month's edition, along with this month's industry news to celebrate the 13 years since the group was created we have articles including
A case study of the used of Advanced Process Control at the Wastewater Treatment works at Lleida in Spain
A look back on an article on smart wastewater networks in order to see how the industry has measured up in the interim around the adoption of Digital Transformation in the Water Industry.
Student information management system project report ii.pdfKamal Acharya
Our project explains about the student management. This project mainly explains the various actions related to student details. This project shows some ease in adding, editing and deleting the student details. It also provides a less time consuming process for viewing, adding, editing and deleting the marks of the students.
Cosmetic shop management system project report.pdfKamal Acharya
Buying new cosmetic products is difficult. It can even be scary for those who have sensitive skin and are prone to skin trouble. The information needed to alleviate this problem is on the back of each product, but it's thought to interpret those ingredient lists unless you have a background in chemistry.
Instead of buying and hoping for the best, we can use data science to help us predict which products may be good fits for us. It includes various function programs to do the above mentioned tasks.
Data file handling has been effectively used in the program.
The automated cosmetic shop management system should deal with the automation of general workflow and administration process of the shop. The main processes of the system focus on customer's request where the system is able to search the most appropriate products and deliver it to the customers. It should help the employees to quickly identify the list of cosmetic product that have reached the minimum quantity and also keep a track of expired date for each cosmetic product. It should help the employees to find the rack number in which the product is placed.It is also Faster and more efficient way.
Saudi Arabia stands as a titan in the global energy landscape, renowned for its abundant oil and gas resources. It's the largest exporter of petroleum and holds some of the world's most significant reserves. Let's delve into the top 10 oil and gas projects shaping Saudi Arabia's energy future in 2024.
2024 State of Marketing Report – by HubspotMarius Sescu
https://www.hubspot.com/state-of-marketing
· Scaling relationships and proving ROI
· Social media is the place for search, sales, and service
· Authentic influencer partnerships fuel brand growth
· The strongest connections happen via call, click, chat, and camera.
· Time saved with AI leads to more creative work
· Seeking: A single source of truth
· TLDR; Get on social, try AI, and align your systems.
· More human marketing, powered by robots
ChatGPT is a revolutionary addition to the world since its introduction in 2022. A big shift in the sector of information gathering and processing happened because of this chatbot. What is the story of ChatGPT? How is the bot responding to prompts and generating contents? Swipe through these slides prepared by Expeed Software, a web development company regarding the development and technical intricacies of ChatGPT!
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
The realm of product design is a constantly changing environment where technology and style intersect. Every year introduces fresh challenges and exciting trends that mold the future of this captivating art form. In this piece, we delve into the significant trends set to influence the look and functionality of product design in the year 2024.
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
Mental health has been in the news quite a bit lately. Dozens of U.S. states are currently suing Meta for contributing to the youth mental health crisis by inserting addictive features into their products, while the U.S. Surgeon General is touring the nation to bring awareness to the growing epidemic of loneliness and isolation. The country has endured periods of low national morale, such as in the 1970s when high inflation and the energy crisis worsened public sentiment following the Vietnam War. The current mood, however, feels different. Gallup recently reported that national mental health is at an all-time low, with few bright spots to lift spirits.
To better understand how Americans are feeling and their attitudes towards mental health in general, ThinkNow conducted a nationally representative quantitative survey of 1,500 respondents and found some interesting differences among ethnic, age and gender groups.
Technology
For example, 52% agree that technology and social media have a negative impact on mental health, but when broken out by race, 61% of Whites felt technology had a negative effect, and only 48% of Hispanics thought it did.
While technology has helped us keep in touch with friends and family in faraway places, it appears to have degraded our ability to connect in person. Staying connected online is a double-edged sword since the same news feed that brings us pictures of the grandkids and fluffy kittens also feeds us news about the wars in Israel and Ukraine, the dysfunction in Washington, the latest mass shooting and the climate crisis.
Hispanics may have a built-in defense against the isolation technology breeds, owing to their large, multigenerational households, strong social support systems, and tendency to use social media to stay connected with relatives abroad.
Age and Gender
When asked how individuals rate their mental health, men rate it higher than women by 11 percentage points, and Baby Boomers rank it highest at 83%, saying it’s good or excellent vs. 57% of Gen Z saying the same.
Gen Z spends the most amount of time on social media, so the notion that social media negatively affects mental health appears to be correlated. Unfortunately, Gen Z is also the generation that’s least comfortable discussing mental health concerns with healthcare professionals. Only 40% of them state they’re comfortable discussing their issues with a professional compared to 60% of Millennials and 65% of Boomers.
Race Affects Attitudes
As seen in previous research conducted by ThinkNow, Asian Americans lag other groups when it comes to awareness of mental health issues. Twenty-four percent of Asian Americans believe that having a mental health issue is a sign of weakness compared to the 16% average for all groups. Asians are also considerably less likely to be aware of mental health services in their communities (42% vs. 55%) and most likely to seek out information on social media (51% vs. 35%).
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
This article is all about what AI trends will emerge in the field of creative operations in 2024. All the marketers and brand builders should be aware of these trends for their further use and save themselves some time!
A report by thenetworkone and Kurio.
The contributing experts and agencies are (in an alphabetical order): Sylwia Rytel, Social Media Supervisor, 180heartbeats + JUNG v MATT (PL), Sharlene Jenner, Vice President - Director of Engagement Strategy, Abelson Taylor (USA), Alex Casanovas, Digital Director, Atrevia (ES), Dora Beilin, Senior Social Strategist, Barrett Hoffher (USA), Min Seo, Campaign Director, Brand New Agency (KR), Deshé M. Gully, Associate Strategist, Day One Agency (USA), Francesca Trevisan, Strategist, Different (IT), Trevor Crossman, CX and Digital Transformation Director; Olivia Hussey, Strategic Planner; Simi Srinarula, Social Media Manager, The Hallway (AUS), James Hebbert, Managing Director, Hylink (CN / UK), Mundy Álvarez, Planning Director; Pedro Rojas, Social Media Manager; Pancho González, CCO, Inbrax (CH), Oana Oprea, Head of Digital Planning, Jam Session Agency (RO), Amy Bottrill, Social Account Director, Launch (UK), Gaby Arriaga, Founder, Leonardo1452 (MX), Shantesh S Row, Creative Director, Liwa (UAE), Rajesh Mehta, Chief Strategy Officer; Dhruv Gaur, Digital Planning Lead; Leonie Mergulhao, Account Supervisor - Social Media & PR, Medulla (IN), Aurelija Plioplytė, Head of Digital & Social, Not Perfect (LI), Daiana Khaidargaliyeva, Account Manager, Osaka Labs (UK / USA), Stefanie Söhnchen, Vice President Digital, PIABO Communications (DE), Elisabeth Winiartati, Managing Consultant, Head of Global Integrated Communications; Lydia Aprina, Account Manager, Integrated Marketing and Communications; Nita Prabowo, Account Manager, Integrated Marketing and Communications; Okhi, Web Developer, PNTR Group (ID), Kei Obusan, Insights Director; Daffi Ranandi, Insights Manager, Radarr (SG), Gautam Reghunath, Co-founder & CEO, Talented (IN), Donagh Humphreys, Head of Social and Digital Innovation, THINKHOUSE (IRE), Sarah Yim, Strategy Director, Zulu Alpha Kilo (CA).
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
The search marketing landscape is evolving rapidly with new technologies, and professionals, like you, rely on innovative paid search strategies to meet changing demands.
It’s important that you’re ready to implement new strategies in 2024.
Check this out and learn the top trends in paid search advertising that are expected to gain traction, so you can drive higher ROI more efficiently in 2024.
You’ll learn:
- The latest trends in AI and automation, and what this means for an evolving paid search ecosystem.
- New developments in privacy and data regulation.
- Emerging ad formats that are expected to make an impact next year.
Watch Sreekant Lanka from iQuanti and Irina Klein from OneMain Financial as they dive into the future of paid search and explore the trends, strategies, and technologies that will shape the search marketing landscape.
If you’re looking to assess your paid search strategy and design an industry-aligned plan for 2024, then this webinar is for you.
5 Public speaking tips from TED - Visualized summarySpeakerHub
From their humble beginnings in 1984, TED has grown into the world’s most powerful amplifier for speakers and thought-leaders to share their ideas. They have over 2,400 filmed talks (not including the 30,000+ TEDx videos) freely available online, and have hosted over 17,500 events around the world.
With over one billion views in a year, it’s no wonder that so many speakers are looking to TED for ideas on how to share their message more effectively.
The article “5 Public-Speaking Tips TED Gives Its Speakers”, by Carmine Gallo for Forbes, gives speakers five practical ways to connect with their audience, and effectively share their ideas on stage.
Whether you are gearing up to get on a TED stage yourself, or just want to master the skills that so many of their speakers possess, these tips and quotes from Chris Anderson, the TED Talks Curator, will encourage you to make the most impactful impression on your audience.
See the full article and more summaries like this on SpeakerHub here: https://speakerhub.com/blog/5-presentation-tips-ted-gives-its-speakers
See the original article on Forbes here:
http://www.forbes.com/forbes/welcome/?toURL=http://www.forbes.com/sites/carminegallo/2016/05/06/5-public-speaking-tips-ted-gives-its-speakers/&refURL=&referrer=#5c07a8221d9b
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
Everyone is in agreement that ChatGPT (and other generative AI tools) will shape the future of work. Yet there is little consensus on exactly how, when, and to what extent this technology will change our world.
Businesses that extract maximum value from ChatGPT will use it as a collaborative tool for everything from brainstorming to technical maintenance.
For individuals, now is the time to pinpoint the skills the future professional will need to thrive in the AI age.
Check out this presentation to understand what ChatGPT is, how it will shape the future of work, and how you can prepare to take advantage.
A brief introduction to DataScience with explaining of the concepts, algorithms, machine learning, supervised and unsupervised learning, clustering, statistics, data preprocessing, real-world applications etc.
It's part of a Data Science Corner Campaign where I will be discussing the fundamentals of DataScience, AIML, Statistics etc.
Time Management & Productivity - Best PracticesVit Horky
Here's my presentation on by proven best practices how to manage your work time effectively and how to improve your productivity. It includes practical tips and how to use tools such as Slack, Google Apps, Hubspot, Google Calendar, Gmail and others.
The six step guide to practical project managementMindGenius
The six step guide to practical project management
If you think managing projects is too difficult, think again.
We’ve stripped back project management processes to the
basics – to make it quicker and easier, without sacrificing
the vital ingredients for success.
“If you’re looking for some real-world guidance, then The Six Step Guide to Practical Project Management will help.”
Dr Andrew Makar, Tactical Project Management
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Editor's Notes
Welcome! Thank you all for coming today.
I really have to commend you, it took a lot of courage to sign up for this mission. This adventure we’re about to embark on
is not for the faint of heart.
So if any of you are pregnant
or nursing,
or suffer from any kind of heart condition,
or if your doctor has advised against the eating of spicy foods,
I ask that you consider consulting your physician,
spiritual advisor, psychic medium,
or nosy next-door neighbor before accompanying me on this journey.
While we wait to board the ship, some of you might want to know a little bit about me, your guide, before moving forward with this seafaring journey, and I get it. I understand.
I don’t look quite like a seasoned ship’s captain, and you’re right!
I’m not. I’m Liz.
I used to be a cartoonist,
I went to art school,
drew a few graphic novels.
A few years ago I learned to code,
went to the Flatiron School in New York and started working in web development.
Nowadays I work at Tilde right here in Portland, OR.
Mainly I work on our product, Skylight, which is a Rails profiler that helps developers optimize their Rails apps.
Fun fact: we also use Rust, which is a big part of why I started learning Rust in the first place.
So before we get on the ship, I’ll show you a map of where we’ll be going. Right now, our ship is docked at the Port of Javascript, just off the coast of Rubyville. We’ll be sailing the seas of chunky bacon and should be landing at the Cargo Bay of Rustlandia in no time!
So let’s get on board, take your seats,
no standing,
no eating or drinking, and most importantly
no staring at the captain’s eye he’s really sensitive about it
Say goodbye to your loved ones, off we go!
If you all look out your windows to the west you’ll notice a beautiful sight, some foliage that’s native to Rubyville - an abstract syntax tree! It’s nodes are particularly lovely this time of year. You’re probably used to seeing these in Rubyville,
they tend to sprout anytime some code gets thrown into the interpreter, just before it gets turned into byte code so the Ruby Virtual Machine can run it. As you might already know, Ruby is an interpreted language, so this is more or less what you’re used to if you’re a Rubyist
but in Rustlandia we’ll have to remember to compile our code before we can run it - otherwise it won’t work! So when we get there, just remember two key phrases
cargo build
and cargo run. They’ll come in handy when we reach the shore and start trying to chat up the locals.
If you try to just run your code directly like you did in Rubyville,
they won’t know what the heck you’re talking about.
Oh, I almost forgot to mention, on the way out you’ll notice a big pile of mains - don’t forget to take one! You’ll need to put all the code that gets run inside of main. Very important.
Alright everybody off the ship, here we are! Welcome… to Rustlandia! Let’s check out the town! Remember, things move a lot faster here, so be careful!
Check it out, it’s the Stack and the Heap! let’s go inside. You’re probably used to not giving much thought to memory back in Rubyville.
Before I came to Rustlandia I had heard of the Stack and the Heap and I knew it had something to do with memory but never really understood it.
Watch how things work at the bar.
People come in and give their programs to the bartender, and she compiles and runs them.
Someone wants a fancy whisky and a cheap whiskey. The good stuff is fancy so we put that in a Box and store it on the heap, because we want it to be able to stick around for a while, even though it’s high up and a bit slower to get to. Most things in Rust are stored on the stack unless you specify otherwise, which is why we had to put the fancy whisky in a Box in order to store it on the heap.
So when we run this program, the good_whisky gets a spot on the heap, at the far far end of our available memory,
and we put a pointer on the stack that points to that spot on the heap. Next on the stack we put the cheap_stuff. The cheap_stuff gets served up first because it’s on top, and then we have the pointer to the fancy stuff, which the bartender has to go way way up to the top of the heap to get, which she does.
All that sea travel made me hungry I think. Let’s check out one of the local eateries. I’ve heard good things about this one.
“Uh sir I can’t quite read this menu… i’m used to seeing things like
this
Instead I see all these… like, Structs and Impls and… what’s this all about, huh? WAITER!!!
So sorry madam, I know this isn’t something you’re used to back in Rubyville but … we here in Rustlandia, we um… have no class
I can’t believe it! This is heresy! How are we to get along without class? It’s the one thing separating us from the animals!
Don’t worry, don’t worry at all - you can still get what you need!
here, here is the ChunkyBacon struct. That’s where we define all the attributes we expect out of it - flavor, chunkiness, price, etc
so then I can just do something like
this and i’ll be all set?
no no my good lady, for that you’ll need to write an Impl
that’s an Implementation of ChunkyBacon. So if you want a new instance of ChunkyBacon
you’ll have to write a new() method yourself - it doesn’t just happen automatically.
Customer - well then! Very good. I’ll have a….
i’ll have a salad
and now, a word from our sponsors
HEY MACK!
Me?
YEAH YOU THERE. YOU WANNA TRY SOME RUST?
You mean the iron oxide produced as a result of a redox reaction of iron and oxygen in the presence of water or air moisture?
WHADDAYA BEEN READING WIKIPEDIA? No NOT THAT RUST FOOL!! RUST LANG MY FRIEND!
Oh yeah that cool new systems programming language all the kids at school are talking about?
THE VERY SAME.
well, what about it?
DO YA LIKE
abstraction without overhead?
uh I don’t know
HOW ABOUT
concurrency without data races?
I think???
WHAT ABOUT
memory safety without garbage collection?
That… *sounds* good? I really don’t…
YOU’LL LOVE RUST
Welcome to Mutability Lake! It’s a lovely day, so many of our distinguished townspeople are out sailing their toy ships. Some are fancier than others, some are mutable, some aren’t.
This one here is a nice one - this one’s not mutable, so we can’t change anything about it, but I can show it to you! Look how nice! But if we try to change anything about it
HEY YOU CAN’T DO THAT! Ah the compiler is yelling at us… so we know we can’t change this one. It’s immutable. Let’s try another one.
COOL! This one’s definitely mutable. Let’s just make a few changes before we return it.
PERFECT. Compiler what do you think?
What’s the matter, compiler?
YOU PUT WHEELS ON IT IT’S NOT A BOAT ANYMORE IT’S A CAR
YOU SAID YOU WOULD RETURN A BOAT YOU MUST RETURN A BOAT
ok ok
I’ll take the wheels off. I thought it looked pretty cool though!
Hey THAT boat looks pretty cool
yoinch!
HEY! THAT BOAT DOESN’T BELONG TO YOU!
Oh, sorry compiler! Who owns this boat?
i do
Oh, so sorry. Can I borrow it? I was hoping to play with it in my bathtub.
Well… will you bring it back?
Of course!
go right ahead!
don’t forget this! so everyone knows you’re just borrowing it.
play music
hey thanks for returning my boat. compiler, does everything look good to you?
NO YOU ADDED A TUGBOAT THAT’S NOT OK
but compiler, these boats are all Vectors of Strings, all I did was push a tugboat onto it. A tugboat is a string!
the tugboat isn’t yours and neither is the boat!
Yeah that tugboat is mine
well what if I just….
BOOM punch the tugboat guy in the face and hit him with a remove!
looks like no one owns this tugboat now
you want a tugboat on your boat sir?
sure
well now you have one!
and now, a word from our sponsors.
hey kid
what?
DID YOU GET ALL THAT ABOUT OWNERSHIP AND BORROWING
huh?
THAT’S HOW WE GET A LOT OF THE COOL STUFF I WAS TELLING YOU ABOUT BEFORE
you mean like when you were yelling ‘memory safety without garbage collection ‘ at me?
YES YOU GOT IT
I only know Ruby though so those aren’t really problems I’ve had to deal with
WELL LET ME TELL YA IF YOU WERE A C++ PROGRAMMER YOU’D BE REALLY EXCITED
ok
YOU BET IT”S OK
can you just teach me something about Rust so the kids at school will finally think I’m a cool guy?
SURE THING KID WE’LL TRY A LESS CONVOLUTED METAPHOR, WATCH THIS!
Hey again, travelers! Have you seen our esteemed library? It’s pretty great. You can borrow just about anything, as long as you return it,
they even have this great big pile of books over here that don’t belong to anyone, you can just take them if you want and then they’re yours! Every so often people will come by with donations of books they don’t need anymore, it’s great!
If you want to borrow a book you just use your ampersand
If you try to change a book while you’re borrowing it
the compiler will yell at you and your code won’t compile.
However, if you see something you like in the “free” pile, you can just take it, and do whatever you want with it - it’s yours! You there, in the back - you had a question?
yes what about if the book is a mutable reference?
Great question, friend! Well, you might very well be borrowing something that’s mutable (&mut) like our collection of coloring books here - you can continue coloring in them while you have them and you can return them altered. Only one person can have one out at a time though.
We also have some Exquisite Corpse books that are pretty cool - every time someone borrows one of those, they add a little bit to it themselves before bringing it back.
I want to borrow the exquisite corpse book!
me too! I want to borrow it too!
No more than one mutable reference at a time. You can have it now, but you have to wait until he’s done before you can borrow it
aw man
No complaining! Do you want a data race? DO YOU?
no…
okay then
You might have noticed how clean and beautiful Rustlandia is, and yet you might have also noticed there are no garbage cans anywhere! It’s actually because of that system of borrowing and ownership that Rustlandia is able to do without garbage collection, it’s a big part of what makes everything so fast and safe here!
But isn’t it annoying having the compiler yelling at you all the time?
Hey now, don’t judge the compiler so harshly look you hurt his feelings!! He’s not such a bad guy, he’s just making sure everything we do is good before we can run it.
The compiler is our friend who just wants the best for us! Sure his advice might be a little hard to understand at times but once you get to know him, he’s really a good guy. I promise!
and now, a word from our sponsors
TONIGHT ON WRST IT’S THE TRUE STORY OF HOW ONE STATICALLY TYPED PROGRAMMING LANGUAGE RISKED IT ALL TO FIGURE OUT HOW TO HANDLE IT WHEN THINGS GO WRONG.
“If everything goes right, the reactor will cool down and the city will be saved. But if something goes wrong… if this whole thing goes south
well I guess I’ll just do nothing . I mean this seems like the time to return an Option right? I mean the compiler feels fine about it right?
meanwhile, across town
the grocery store does not have the mustard i like!
RED ALERT RED ALERT ALL HANDS ON DECK SHUT EVERYTHING DOWN I NEED MY DIJON!!! COMPILER AGREES DON’T YOU COMPILER
just because the code compiles doesn’t mean it’s something you should do.
Results - for when something could go terribly wrong and you need to throw an error. Option - for when it’s ok to just do nothing.
Hey welcome back!! Just in time for the last boat back to Rubyville. I sincerely hope you enjoyed your stay and that you visit again soon! If you want to stay a little longer there are some very nice Boxes at the Heap, otherwise the boat is ready to board!
On your way back we do have some very nice reading material for you if you’re interested in learning more about Rust:
I strongly recommend starting with Rust by Example, this online book will lead you by the hand step-by-step through many examples, explaining everything along the way
After that I recommend looking at the official Rust reference documentation, very helpful
If you’d like to try your hand at some Rust of your very own from scratch there are many excellent exercises available at exercism
If you have questions, there is the Rust Reddit and the user forums, or you can chat on one of many channels on IRC
In preparation for this talk, with some help from Yehuda, I’ve been working on a playable text-based adventure game version of this talk in Ruby (which I am also porting over to Rust). This way you can check out Ruby and Rust code side-by-side, but you can also actually play the game. Check it out at https://github.com/tildeio/learning-rust. The Rust code is still in development and most of it is on a branch called just-rust-things, but the Ruby version is on master and is currently playable, though I haven’t plugged in the story from the talk yet, right now it’s a little random. I’ll be doing a lot of that in the coming weeks, so feel free to check it out.
THANKS - last but not least I want to thank Tilde for allowing me to work on the Ruby/Rust game on company time, and Yehuda for working with me on the Rust side of the game, patiently answering my questions and helping me when I got stuck.
Once again, my name is Liz. I’m on Twitter at @_lizbaillie and that’s it, the end