Skip to content
GitHub Repository Forum RSS-Newsfeed

Crystal 1.0 Conference

Date
Location
online

We are unbelievably proud to announce that, after years of hard work, we finally have a 1.0 version of Crystal!

For a long, long time, it was accepted that programming languages couldn’t be simultaneously programmer-friendly and efficient. In 2011, we set out to prove that assumption was wrong. Crystal is the result of that experiment, and the source of much joy, fun and growth for everyone involved.

With thousands of contributions from people worldwide, it was finally possible to reach the level of maturity required for a 1.0 milestone.

And that calls for celebration!

The Crystal Conference will be livestreamed, to make sure that the entire global community that has formed around Crystal can attend.

Programme

Welcome - Join us to go over the agenda and get ready for the conference
Yukihiro 'Matz' Matsumoto

Pushing boundaries

15 minutes at Main

A talk on pushing the boundaries of language design.

Beta Ziliani

Crystal 1.0 is out – What's next?

Language
30 minutes at Main

Taking a sneak peak at what the Crystal team has been producing, what we're working on, and at what is to come next.

Ary Borenszweig

Crystal on demand

Language
30 minutes at Main

Crystal on demand: Crystal is not yet on demand. Let's make Crystal on demand!

Carl Hörberg

How to write efficient network applications

Industry
30 minutes at Track 1

While developing a new advanced message queue system, and several other network servers and clients Carl has gathered experience on do's and don'ts to squeeze out as much performance as possible.

Taylor Carpenter and Will Harris

Crystal in the Cloud: A cloud-native journey

Industry
30 minutes at Track 2

As part of an initiative to build a testing framework and suite of tests that help end-users to check usage of cloud native practices we chose Crystal as the language for the project. In this talk we will give an overview of the project and the networking+telecommunication domain we are working in. We will review the implementation of the CNF Test Suite. We will also discuss how we see Crystal has good alignment with cloud native and K8s development, such speeding up development velocity, reducing risk, and life-cycle dependency management and why we chose it.

Break: Time to stretch a bit and replenish energies :-)
Gábor Szabó

From 0 to Web site – a journey of a Crystal newbie

Getting started
15 minutes at Track 1

Gabor has been programming for more than 35 years. 25 years in Perl. 10 years in Python. 30 days in Crystal. This talk will explore how a person with a lot of experience in other languages, but 0 background in Crystal, can learn the language and build a web application in a month.

Peter Schols

Saving lives with Crystal

Industry
30 minutes at Track 2

In this talk, I will explore how Crystal contributes to genome diagnostics at Invitae, Diploid’s parent company, and why they chose it to build Moon, the first system that goes from genetic data to provisional diagnosis in minutes, saving patients hours or even days. We show how Crystal's syntax, type system and performance offer a unique edge compared to other, more popular programming languages.

Bar Hofesh

Start 'Crystalizing' Your Security Testing

Workshop
120 minutes at Track 3

A talk and after that, a hands-on workshop to get you up and scanning for security vulnerabilities. Intro to security testing automation and how you can achieve this. What DAST (Dynamic Application Security Testing) actually means and how it works. Fork the repo, sign up for a free scanning account and scan a CrystalLang vulnerable application. Discuss the results from the scanner, and how to fix some of what we found. How to integrate NexPloit scanning as part of your specs.

Giorgi Kavrelishvili

Native GUI development using HTML-CSS-JS

Ecosystem
15 minutes at Track 1

A talk about a project on which I have been working for more than 4-5 months. It is a GTK based shard that takes a custom dialect of HTML and translates it to native widgets. These widgets are linked together using the Duktape JavaScript engine. One could compile the entire project down to a single binary, giving incredible reload speeds from HTML to native GTK widgets.

Stephen Dolan

Learn to Love HTML and Embrace the Lucky Way

Ecosystem
30 minutes at Track 1

This talk expands upon the most-viewed LuckyCast I've ever created, about how, within a few days of working with the Lucky framework, I became as productive and confident in my markup as I was in the rest of my codebase. Hopefully, it will encourage any Crystal developers who are still writing web applications in other large frameworks to give Crystal (and Lucky) a chance!

Leandro Radusky

First steps and future directions of the Crystal bioinformatics ecosystem

Scientific
30 minutes at Track 2

In this talk, we are going to discuss how the design principles behind Crystal make it an ideal language for the broad field of bioinformatics, from its simplicity and productivity to its performance, stressing out that a self-hosted language with these characteristics have the potential to become lingua franca for the discipline.

Jeremy Woertink

Chipmunks and Unicorns

Ecosystem
15 minutes at Track 1

Creating a new language and new community in OSS is hard. Sometimes you want to be helpful to newcomers, but *how* you say things may end up making things worse. "Chipmunks and Unicorns" may not mean anything to the person asking for help, and this talk explores those mishaps around communication in the onboarding of newcomers.

Todd Sundsted

Machine Learning with MXNet.cr

Scientific
15 minutes at Track 2

MXNet is an Apache Software Foundation framework for machine learning/deep learning. MXNet.cr is bindings to the low-level MXNet library and a port/rewrite of the Gluon deep learning framework from Python to Crystal. This talk will include a brief introduction to deep learning, a short overview of the Gluon framework and lessons learned doing the port, and a demonstration using MXNet.cr to solve some simple classification problems.

Kingsley

Axentro – Building a blockchain in Crystal

Ecosystem
30 minutes at Track 1

The highs, lows, obstacles and successes of building a blockchain platform from scratch in Crystal.

Ian Rash

Artistic Crystal

Scientific
15 minutes at Track 2

A run down of different ways to make art with Crystal. Includes things like sound (via SunVox), graphics (via Celestine and StumpyBMP), pen plotters, and other fun things.

Romain Franceschini

Crafting simulations in Crystal

Scientific
15 minutes at Track 2

In this talk, we will explore how you can use the Quartz shard for constructing simulations using a discrete-event abstraction in a bottom-up fashion. The modularity of the formalism it relies on helps you define models able to capture complex dynamic systems.

Davor Ocelic

Crysterm – building console apps with Crystal

Ecosystem
15 minutes at Track 1

A brief introduction to Crysterm, a toolkit for building console apps with Crystal. The talk will cover basics of final app development as well as introduce Crysterm's structure & code to attract more developers & contributors.

KC Erb

Why I Choose Crystal for Science

Scientific
30 minutes at Track 2

I would really like to promote the idea that object-oriented design principles are under-utilized in the sciences. I believe that Crystal really strikes that perfect balance that the sciences need today between dynamic and performant. It's a shame that too few scientists are taught to reason about code abstractly in the same way as mathematical formulas but I think Crystal can change that.

Nicolas Ganz

Performance Evaluation of Crystal

Performance
15 minutes at Track 1

This talk aims to show performance comparisons of Crystal with Ruby, C and Go, by using different example programs that use specific parts used in real world applications, like iterative and recursive implementations of the Fibonacci sequence, reading and writing files, listening to sockets, as well as calling a method written in C.

Break: Time to stretch a bit and replenish energies :-)
Isaac Sloan

Crystal clear bitfield messaging – binary communication in Crystal

Industry
30 minutes at Main

I've had to do a lot of work during the last 5 years in decoding binary communication on vehicles. Despite the json driven development world we live in, a lot of messaging is still packed bit by bit for efficiency over slow buses, reliability in harsh conditions, or just because much of the world is still built on protocols from 35 years ago.

Bruce Perens

Building a 'billion dollar' startup with Crystal and Lucky

Industry
30 minutes at Track 1

Bruce Perens has been building a web startup for the past year using the Lucky Framework and the Crystal Language. And as you can tell from the title of this talk he's not aiming low! Bruce will talk about his experience and how close Crystal and Lucky are to becoming the new sweethearts of the startup venture capital communities. He'll also talk about Open Source and how it's changed since he first announced it in 1987!

Brian J. Cardiff

A proposal to deal with long running resumable tasks

Language
30 minutes at Track 2

Having to stop long running tasks and losing all the progress so far is a source of pain. Let's see how we can build some abstraction and tooling around it. What nice features waiting to be discovered? What would be a nice API for crystal? Let's try to figure that out.

Igor Alexandrov

Crystal For Rubyists – How to migrate from Ruby to Crystal 1.0

Getting started
30 minutes at Track 1

A talk about my experience transitioning from Ruby to Crystal and also my experience migrating the most advanced Ruby toolkit for handling attachments, Shrine, to Crystal.

Kirk Haines

Dynamic Programming with Crystal

Language
30 minutes at Track 2

Many Crystal programmers are familiar with Ruby, and while there is some overlap in the dynamic tools available between the two languages, dynamic programming in Crystal is significantly different from Ruby. We will explore how dynamic programming in Crystal works, and explore details about how to do real, practical dynamic programming with Crystal's toolkit.

Mark Brocato

Porting features from Ruby to Crystal for Speed!

Getting started
30 minutes at Track 1

In this talk I'll explain the reason I chose Crystal to improve the performance of loading CSV files into Flatbase.io. I'll cover my initial experience with Crystal as a Ruby developer, compare the previous Ruby implementation to the new one in Crystal, and show how much faster the new implementation is.

Pablo Tesone

Pharo: A live programming experience everywhere

Language
30 minutes at Track 2

Pharo is a pure object-oriented programming language with a powerful development environment, focused on simplicity and immediate feedback. It is a live-programming environment with an improved edit-compile-test workflow, and it includes an interactive debugger that allows us to modify code at run-time, a rich set of extensible inspectors to observe the state of our application, and code management tools that improve the code exploration experience.

Stephen Dolan

Embracing Ruby and Building on the Shoulders of Giants

Getting started
15 minutes at Track 1

Coming to Crystal through the Lucky framework, I sorely missed the massive ecosystem I’d left behind with Ruby and Rails. Specifically, the ability to quickly add and remove functionality from my apps. This talk attempts to bring down the “Ruby vs Crystal” wall, by demonstrating how easily a problem in our community was solved by leveraging existing community tools in another language.

Alex Potanin

Wyvern – Security by Design

Language
30 minutes at Track 2

The goal of the Wyvern programming language is to help programmers cleanly express and enforce design as an integral part of programming. The talk will show how Wyvern accomplishes this with a capability-safe object model that expresses design constraints constructively, a strong system of types and effects to enforce abstractions at both component and object scales, and an extensible syntax that can express designs in a variety of domains while preserving important security and modularity properties.

Guilherme Bernal

Reaching 200k req/s on a single core with io_uring

Performance
15 minutes at Track 1

io_uring is a new Linux IO interface that's all about doing IO without system calls and expensive context switches. This presentation discusses how Crystal can implement and benefit from it to more than double its IO performance. Here you will see some implementation details, some interesting benchmarks against other languages, and the road ahead.

Noah Lehmann-Haupt

How to build powerful reactive web apps with Crystal and Svelte

Ecosystem
30 minutes at Track 1

An introduction to building powerful, reactive, component-based (and ridiculously fast) web applications using Crystal and Svelte. I’ll demonstrate some live examples and explore how Crystal-powered web applications of the future might work. This is a beginner-focused talk that will learn heavily on live coding and visual demonstration.

Duke Nguyen

Macros in Practice

Language
30 minutes at Track 2

Macro is perhaps the most powerful feature in Crystal, the least documented, and the most complex topic in the language. I will explore the organic development of macro usage in the Crystal community, especially as demonstrated in some of the most successful shards (web frameworks, ORMs, serializers). Extrapolated common macro patterns and idioms with corresponding examples (in the standard library and shards) will be analyzed extensively.

Bruce Tate

Programming Languages and the Unexpected

Language
30 minutes at Main

In this fireside chat, Jack Thorne will interview Bruce Tate, author of Seven Languages in Seven Weeks and founder of Groxio. Together, they will explore the joy of learning programming languages and Bruce's programming journey, including his move from Java to Ruby and the languages that shaped his development as a programmer and author. Then, they'll shift to the exploration of the Crystal programming language. Along the way, they'll discuss several of the delightful surprises found in the Crystal language and community.

Time

The conference took place on Thursday, 8 July 2021, from 12:30 pm to 9:30 pm UTC.

Code of Conduct

Purpose

At the Crystal 1.0 Conference, we aim to be inclusive to the largest number of participants, with the most varied and diverse backgrounds possible. As such, we are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, ability, ethnicity, socioeconomic status, and religion (or lack thereof). We invite all those who participate in the Crystal 1.0 Conference to help us create safe and positive experiences for everyone.

Expected behavior

Intentional, positive action is essential to avoid replicating within our conference community the many forms of inequality that exist in greater society. For this reason, we outline in this Code of Conduct expected behaviour as well as prohibited behavior. The following behaviors are expected and requested of all participants:

  • Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this conference community.
  • Exercise consideration and respect in your speech and actions.
  • Attempt collaboration before conflict.
  • Refrain from demeaning, discriminatory, or harassing behavior and speech.
  • Be mindful of your fellow participants.

Unacceptable behavior

The following behaviors are considered harassment and are unacceptable within our conference community:

  • Violence, threats of violence and incitement of violence towards any individual.
  • Derogatory comments related to gender, gender identity and expression, sexual orientation, disability, mental illness, neuro(a)typicality, physical appearance, body size, race, religion, or socio-economic status.
  • Gratuitous or off-topic sexual images or behavior, sexualised comments or jokes.
  • Posting or threatening to post other people’s personally identifying information (“doxing”).
  • Deliberate misgendering or use of “dead” or rejected names.
  • Inappropriate photography or recording.
  • Deliberate intimidation or stalking.
  • Sustained disruption of talks and presentations.
  • Advocating for, or encouraging, any of the above behavior.

Consequences of unacceptable behavior

Unacceptable behavior from any conference attendees, including speakers, will not be tolerated. Anyone asked to stop unacceptable behavior is expected to comply immediately. If a conference attendee or speaker engages in unacceptable behavior, the conference organisers may take any action they deem appropriate, up to and including a temporary ban or permanent expulsion from the conference without warning.

Reporting guidelines

If you are subject to or witness unacceptable behavior, or have any other concerns, please notify the organiser as soon as possible by messaging @CrystalLanguage in private, on Twitter, or reaching out to crystal@manas.tech If you feel you have been falsely or unfairly accused of violating this Code of Conduct, you should notify the organiser as soon as possible by messaging @CrystalLanguage in private, on Twitter, or reaching out to crystal@manas.tech, with a concise description of your grievance.

Scope

We expect all conference participants to abide by this Code of Conduct in all conference online venues, e.g. chat, breakout rooms, as well as in all one-on-one communications pertaining to the Crystal 1.0 Conference.

Attribution

This Code of Conduct was adapted from the #causeascene CoC .