SlideShare a Scribd company logo
1 of 31
Download to read offline
RubyConf | São Paulo 2017
Big
Risky
Unknown
Big
Risky
Unknown
Hobby
InvestmentGamble
Big
Risky
Unknown
Hobby
InvestmentGamble
Unknown, Big and Risky
Unknown, Big and Risky
● High level language (Ruby-like) with near-native performance (close to C)
● 5+ years
● 9500 followers in Github
● $2.000 + donations per month from more than 100 organizations and
individuals
● Loved Ruby syntax
● Disliked dynamic typing
Compile ruby code to LLVM
First “real” version of the parser
Drop some self-imposed constraints
My experience of using crystal in production.
1.5 month ago i rewrite our critical ruby service (EventMachine, 2000 SLOC) to crystal
(900 SLOC). It was quite easy, i spend only a week.Service listen on socket and handle
10M/requests per day. It running as daemon and getting-updating values in memory.
Also it listen on http, to render simple Admins, have ~10 coroutines with cron_scheduler
to some updates on memory, and ~20 coroutines with outcoming socket connections.
I don’t want to rewrite it to Go because i need readable code for our Ruby team for easy
maintaining.
Now it running in production for a month without restart. Used 185Mb, peak cpu usage 30%
(ruby daemon leaking memory and restarting every day, peak cpu usage was > 100% (maybe
300%)).
We are quite happy.
[...]
asterite waj bcardiff MakeNowJust kostya RX14
oprypin akzhan
jhass ysbaddaden will yui-knk
PragTob Exilor vegai
bjmllr
Sija
technorama waterlink jreinert
matiasgarciaisaiasdogruyol
adlerhsieh
luislavena
scidom zamith
davydovanton bewlbguilherme porrasrhysd maiha jkicillof
● Release 1.0
● Fundraise
● Improve transparency and communications
● Augment the core team
1. Valid problem, adjacent innovation and fun
2. Start!
3. Show it early
4. Be patient
a. Optimal stopping
5. Share it as “non-finito”
6. Build on communities
7. Enlist Starters, Implementers and Finishers
● Unknown but “Adjacent Innovation”
● Big but Fun
● Risky but “Valid problem”
Big
Risky
Unknown
Valid problem
Fun
Adjacent
innovation
 
Believe in yourself Strawman Experiment mindset
Don’t rush: attack and withdraw
● Decide what’s the max time you have for something
● Spend 1/3 evaluating options and studying the solution space
(don’t settle for any yet)
● Get to work and go with the first thing that is better than what you evaluated
so far.
Share it as “non-finito”
Start
10% of time
1/3 of effort
Implementation
80% of time
1/3 of effort
Finalize
10% of time
1/3 of effort
Effortrequired
Duration of the project
You need Starters, Implementers and Finishers
1. Valid problem, adjacent innovation and fun
2. Start!
3. Show it early
4. Be patient
a. Optimal stopping
5. Share it as “non-finito”
6. Build on communities
7. Enlist Starters, Implementers and Finishers
openredis Fly.io tpberntsenposthumanism Fabio Akita
_TOP 5 SPONSORS_
Me (Nico)
Manas.Tech
Crystal
@nditada
@manastech
@CrystalLanguage

More Related Content

Similar to Daring to Try - Crystal Language at RubyConf

Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
Prasid Pathak
 
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearBHOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
DevOpsDays Tel Aviv
 
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
Prasid Pathak
 

Similar to Daring to Try - Crystal Language at RubyConf (20)

The story of language development
The story of language developmentThe story of language development
The story of language development
 
Building Better FLOSS Community Relationships @ FB
Building Better FLOSS Community Relationships @ FBBuilding Better FLOSS Community Relationships @ FB
Building Better FLOSS Community Relationships @ FB
 
Exploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLExploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQL
 
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
 
Rust's Journey to Async/await
Rust's Journey to Async/awaitRust's Journey to Async/await
Rust's Journey to Async/await
 
Community and Github: 7/27/2011
Community and Github: 7/27/2011Community and Github: 7/27/2011
Community and Github: 7/27/2011
 
How to be a 10x Engineer
How to be a 10x EngineerHow to be a 10x Engineer
How to be a 10x Engineer
 
Successful Project Presentation
Successful Project PresentationSuccessful Project Presentation
Successful Project Presentation
 
רועי פלד
רועי פלדרועי פלד
רועי פלד
 
How to Teach Yourself to Code
How to Teach Yourself to CodeHow to Teach Yourself to Code
How to Teach Yourself to Code
 
Developer Week
Developer WeekDeveloper Week
Developer Week
 
From java-to-ruby-book-summary
From java-to-ruby-book-summaryFrom java-to-ruby-book-summary
From java-to-ruby-book-summary
 
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearBHOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
 
Entering the chef ecosystem from windows
Entering the chef ecosystem from windowsEntering the chef ecosystem from windows
Entering the chef ecosystem from windows
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developed
 
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
 
How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?
 
Devops in with the old, in with the new
Devops   in with the old, in with the newDevops   in with the old, in with the new
Devops in with the old, in with the new
 
How To (Not) Open Source - Javazone, Oslo 2014
How To (Not) Open Source - Javazone, Oslo 2014How To (Not) Open Source - Javazone, Oslo 2014
How To (Not) Open Source - Javazone, Oslo 2014
 
Let’s learn how to use JavaScript responsibly and stay up-to-date.
Let’s learn how to use JavaScript responsibly and stay up-to-date. Let’s learn how to use JavaScript responsibly and stay up-to-date.
Let’s learn how to use JavaScript responsibly and stay up-to-date.
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Daring to Try - Crystal Language at RubyConf

  • 1. RubyConf | São Paulo 2017
  • 6.
  • 8. ● High level language (Ruby-like) with near-native performance (close to C) ● 5+ years ● 9500 followers in Github ● $2.000 + donations per month from more than 100 organizations and individuals
  • 9. ● Loved Ruby syntax ● Disliked dynamic typing
  • 10. Compile ruby code to LLVM
  • 11.
  • 12. First “real” version of the parser
  • 13.
  • 14. Drop some self-imposed constraints
  • 15. My experience of using crystal in production. 1.5 month ago i rewrite our critical ruby service (EventMachine, 2000 SLOC) to crystal (900 SLOC). It was quite easy, i spend only a week.Service listen on socket and handle 10M/requests per day. It running as daemon and getting-updating values in memory. Also it listen on http, to render simple Admins, have ~10 coroutines with cron_scheduler to some updates on memory, and ~20 coroutines with outcoming socket connections. I don’t want to rewrite it to Go because i need readable code for our Ruby team for easy maintaining. Now it running in production for a month without restart. Used 185Mb, peak cpu usage 30% (ruby daemon leaking memory and restarting every day, peak cpu usage was > 100% (maybe 300%)). We are quite happy. [...]
  • 16. asterite waj bcardiff MakeNowJust kostya RX14 oprypin akzhan jhass ysbaddaden will yui-knk PragTob Exilor vegai bjmllr Sija technorama waterlink jreinert matiasgarciaisaiasdogruyol adlerhsieh luislavena scidom zamith davydovanton bewlbguilherme porrasrhysd maiha jkicillof
  • 17.
  • 18. ● Release 1.0 ● Fundraise ● Improve transparency and communications ● Augment the core team
  • 19. 1. Valid problem, adjacent innovation and fun 2. Start! 3. Show it early 4. Be patient a. Optimal stopping 5. Share it as “non-finito” 6. Build on communities 7. Enlist Starters, Implementers and Finishers
  • 20. ● Unknown but “Adjacent Innovation” ● Big but Fun ● Risky but “Valid problem” Big Risky Unknown Valid problem Fun Adjacent innovation
  • 21.   Believe in yourself Strawman Experiment mindset
  • 22.
  • 23.
  • 24. Don’t rush: attack and withdraw
  • 25. ● Decide what’s the max time you have for something ● Spend 1/3 evaluating options and studying the solution space (don’t settle for any yet) ● Get to work and go with the first thing that is better than what you evaluated so far.
  • 26. Share it as “non-finito”
  • 27.
  • 28. Start 10% of time 1/3 of effort Implementation 80% of time 1/3 of effort Finalize 10% of time 1/3 of effort Effortrequired Duration of the project You need Starters, Implementers and Finishers
  • 29. 1. Valid problem, adjacent innovation and fun 2. Start! 3. Show it early 4. Be patient a. Optimal stopping 5. Share it as “non-finito” 6. Build on communities 7. Enlist Starters, Implementers and Finishers
  • 30.
  • 31. openredis Fly.io tpberntsenposthumanism Fabio Akita _TOP 5 SPONSORS_ Me (Nico) Manas.Tech Crystal @nditada @manastech @CrystalLanguage