CrystalConf 2023
1.0 was released more than two years ago. What have we done since? In order to respond this question we need to spend some time explaining who's "we". And, naturally, we'll spend some time diving into the near future to explain what's on the menu for 2024.
I began my career at 84codes diving into the world of Ruby, working on solutions for cloud-hosted open-source services. About a year ago I got the opportunity to join the LavinMQ team as a crystal developer. It's been quite the ride, and in this talk, I'm excited to share insights on how to enhance your Crystal code for better performance.
First things first, we're going to take a scenic route through LavinMQ, the message broker that combines high performance with simplicity. We'll chat about why it's crucial to keep your resources in check and how Crystal plays an important role in helping us do so.
After this, we get down to business! I've spent the last year working on my Crystal skills, and I've got some lessons to share. We'll dive into practical examples and walk through the nitty-gritty of writing efficient Crystal code. Whether you're new to Crystal or a seasoned developer seeking a fresh perspective, this talk provides an approachable guide to grasping the details of performance-friendly code with simple examples.
Empowering the next generation of Crystal developers, with a solid learning platform.
Exercism is a free, not-for-profit, open-source platform that aims to make programming accessible to everyone. It features code practicing, mentoring, test-driven development, an online editor, and much more.
Exercism has 67 (as of writing), including Crystal. The Crystal track on Exercism, features a learning mode that allows students to take on concepts and their set exercise, to be able to be able to practice while learning. The track also features above 90 practice exercises which let you practice Crystal by solving a wide range of puzzles/exercises.
You can choose to work either in our online editor, which doesn't require any downloads, only a web browser and an online connection. Or alternatively, you can work offline using Exercism CLI.
The track also features track-specific tooling, like a representer and an analyzer (planned launch in late August/September), these tools allow for automated feedback to a student. Thereby they can instantly get feedback on their solution.
An UI library which provides you with an ability to use TypeScript a type safe version of JavaScript, a widely accepted markup language HTML and CSS to create native GUI applications with ease.
The Crystal programming language has grown more and more within the Brazilian territory of communities, making more people interested in its development. Today, as an ambassador, I'm going to talk about how the community has been an important driver to keep Crystal accessible to everyone, talking a little about my role in this regard.
Plenty of Crystalists come from a Ruby background and that's great! Welcome! 😊 A lot of the design patterns and syntax translates very well into Crystal and works. But writing Crystal like you wrote your Ruby is really just writing Crystalized-ruby. Instead, there are a few habits to be aware of and change that will let you write fluent Crystal that still look shockingly similar to the Ruby you are used to writing, but leverage the features of Crystal and it being a compiled language. We'll walk through a simple example showing a simple Ruby class and how it works, how most of the class translates over to Crystal, and then we'll bench mark the Crystalized-ruby version and compare to a fully Crystalized version of the code to see how it effects our app.
This will have to be a remote presentation.
The Kagi Search Team would like to share a summary of lessons, technology, ideas, and challenges after building our product from the ground up in Crystal for 3 years.
How we went from concept to live production building a live-streaming platform and everything in-between. This talk will cover all of the ups and downs we've encountered along the way while building the app with Crystal and Lucky, to include the technical challenges we've faced along the way.
Journey through our experience using Crystal as our main language in for core components with Bright.
I'll share the highs, lows, and a wishlist for Crystal's future.
Let's talk about the real deal and why we're excited about Crystal's evolution.
When I pay attention to a technology, my first instinct is to look at the test part.
Today, with Crystal-lang, I found everything I love about QA.
- Tools for all types of tests.
- Tools for code editors.
- A local CI
- Integration with market standards
- Ease of producing secure Docker images.
I suggest you share my observations during this talk.
A talk about the rewrite of tmux-fingers: from a sluggish blob of Bash to a snappy Crystal program that runs five times faster.
I’ll navigate through the internals of the plug-in and share the techniques and tools that I used to achieve maximum performance.
Finally I’ll share why I chose Crystal, how it compares to other languages for building this type of tool.
By the end of this talk you’ll know how to build tmux plugins with Crystal and apply the same principles to build and distribute your own high performant CLI tools.
TBD
Can we use the interpreter to create a jupyter kernel? What are the challenges we can find on that route? How far we are to have a top-notch experience?
Computational chemistry is a rapidly growing field that uses computers for running simulations to study the properties of molecules and materials. Computer-aided drug design (CADD) is a branch of computational chemistry that uses molecular modelling and simulation to help understand and design new drugs.
Scientists often need to deal with tons of data (big data) generated by specialized software, which needs to be processed to extract relevant information. We have developed a modern computational chemistry library, termed chem.cr
, for data manipulation and analysis using the Crystal language.
chem.cr
aims to be both fast and easy to use, and it currently provides several features:
- Hierarchical object-oriented access to molecular structure
- Iterator-based file reading of several formats (PDB, Mol2, etc)
- Topology detection
- Spatial measurements
- Volumetric data
- Type safety
- Fast performance, rivaling or even surpassing other libraries built with Python/C/C++
chem.cr
has already been used to develop and publish a new algorithm for protein structure (Adasme-Carreño et al., 2021), and we're developing new protocols for molecular docking and free energy calculations (Femdock
and Moltiverse
) that are crucial for CADD.
Femdock
helps to sample the possible orientations of a drug within a protein binding site using a genetic algorithm, like other molecular docking approaches, but thanks to the Crystal language, the code is clearer and easier to understand and modify.Moltiverse
is used to generate molecular conformers of the drug using enhanced sampling methods, that directly support the exploration performed by Femdock.
We hope that this new library and protocols will help scientists to develop new/better tools that accelerate drug discovery and the study of molecular structure.
References
- Adasme-Carreño, F., Caballero, J., & Ireta, J. (2021). PSIQUE: Protein Secondary Structure Identification on the Basis of Quaternions and Electronic Structure Calculations. Journal of Chemical Information and Modeling, 61(4), 1789–1800. https://doi.org/10.1021/acs.jcim.0c01343
Coming from Rails and Sinatra experience I documented my path while coding a Battlesnake implementation using Crystal. Battlesnake is an autonomous survival game played by web developers around the world. I'm sharing learnings and stats that include:
- Deploying simple API web server
- Discuss design patterns
- Overview of common algorithms implementations
- Database persistance
- Background job implementation
- OpenTelemetry for stats & insights from runs on rankings
- Open sourcing the codebase
In this panel the Core Team will discuss with the audience different possible avenues for Crystal. Bring your questions and ideas!