Acronyms are fun. Everyone at SUSE loves them. Just sometimes… you might not know what one stands for.

Meet SUSE Acronyms!

> This year's Hack Week is open not only for developers but everyone at SUSE!

If this is your first Hack Week and you aren't a developer (yet!) this project is a good place to make your first steps with Git. Just follow the instructions to add an acronym directly on our GitLab (No setup but VPN required) and you can proudly tell your friends and family that you opened a MR today!

If you are a developer and want to do some light Ruby hacking, you are more than welcome to have a look at the TODO of this project. There is still a lot of basic stuff to do and you might even learn one or two new things on the way.

Thanks to my great talent for booking my holidays always for the days where then Hack Week happens, I won't be here the first three days. But I made my whole team maintainers of the repo on GitLab, so they can merge in your acronyms and code changes. On Thursday and Friday I'll be back and can help you out if you struggled with something.

And now, Happy hacking!

Looking for hackers with the skills:

ruby jekyll acronyms

This project is part of:

Hack Week 19

Activity

  • over 5 years ago: hennevogel liked this project.
  • almost 6 years ago: bmwiedemann liked this project.
  • almost 6 years ago: gfilippetti liked this project.
  • almost 6 years ago: thutterer started this project.
  • almost 6 years ago: thutterer added keyword "ruby" to this project.
  • almost 6 years ago: thutterer added keyword "jekyll" to this project.
  • almost 6 years ago: thutterer added keyword "acronyms" to this project.
  • almost 6 years ago: thutterer originated this project.

  • Comments

    • bmwiedemann
      almost 6 years ago by bmwiedemann | Reply

      I proudly opened a MR today: https://gitlab.suse.de/thutterer/acronyms/merge_requests/2

      • thutterer
        over 5 years ago by thutterer | Reply

        Thank you! add-emoji

    • thutterer
      over 5 years ago by thutterer | Reply

      More about the progress of this project can be found in its blog: https://thutterer.io.suse.de/acronyms/news

    Similar Projects

    Recipes catalog and calculator in Rails 8 by gfilippetti

    My wife needs a website to catalog and sell the products of her upcoming bakery, and I need to learn and practice modern Rails. So I'm using this Hack Week to build a modern store using the latest Ruby on Rails best practices, ideally up to the deployment.

    TO DO

    • Index page
    • Product page
    • Admin area -- Supplies calculator based on orders -- Orders notification
    • Authentication
    • Payment
    • Deployment

    Day 1

    As my Rails knowledge was pretty outdated and I had 0 experience with Turbo (wich I want to use in the app), I started following a turbo-rails course. I completed 5 of 11 chapters.

    Day 2

    Continued the course until chapter 8 and added live updates & an empty state to the app. I should finish the course on day 3 and start my own project with the knowledge from it.

    Hackweek 24

    For this Hackweek I'll continue this project, focusing on a Catalog/Calculator for my wife's recipes so she can use for her Café.

    Day 1


    RMT.rs: High-Performance Registration Path for RMT using Rust by gbasso

    Description

    The SUSE Repository Mirroring Tool (RMT) is a critical component for managing software updates and subscriptions, especially for our Public Cloud Team (PCT). In a cloud environment, hundreds or even thousands of new SUSE instances (VPS/EC2) can be provisioned simultaneously. Each new instance attempts to register against an RMT server, creating a "thundering herd" scenario.

    We have observed that the current RMT server, written in Ruby, faces performance issues under this high-concurrency registration load. This can lead to request overhead, slow registration times, and outright registration failures, delaying the readiness of new cloud instances.

    This Hackweek project aims to explore a solution by re-implementing the performance-critical registration path in Rust. The goal is to leverage Rust's high performance, memory safety, and first-class concurrency handling to create an alternative registration endpoint that is fast, reliable, and can gracefully manage massive, simultaneous request spikes.

    The new Rust module will be integrated into the existing RMT Ruby application, allowing us to directly compare the performance of both implementations.

    Goals

    The primary objective is to build and benchmark a high-performance Rust-based alternative for the RMT server registration endpoint.

    Key goals for the week:

    1. Analyze & Identify: Dive into the SUSE/rmt Ruby codebase to identify and map out the exact critical path for server registration (e.g., controllers, services, database interactions).
    2. Develop in Rust: Implement a functionally equivalent version of this registration logic in Rust.
    3. Integrate: Explore and implement a method for Ruby/Rust integration to "hot-wire" the new Rust module into the RMT application. This may involve using FFI, or libraries like rb-sys or magnus.
    4. Benchmark: Create a benchmarking script (e.g., using k6, ab, or a custom tool) that simulates the high-concurrency registration load from thousands of clients.
    5. Compare & Present: Conduct a comparative performance analysis (requests per second, latency, success/error rates, CPU/memory usage) between the original Ruby path and the new Rust path. The deliverable will be this data and a summary of the findings.

    Resources

    • RMT Source Code (Ruby):
      • https://github.com/SUSE/rmt
    • RMT Documentation:
      • https://documentation.suse.com/sles/15-SP7/html/SLES-all/book-rmt.html
    • Tooling & Stacks:
      • RMT/Ruby development environment (for running the base RMT)
      • Rust development environment (rustup, cargo)
    • Potential Integration Libraries:
      • rb-sys: https://github.com/oxidize-rb/rb-sys
      • Magnus: https://github.com/matsadler/magnus
    • Benchmarking Tools:
      • k6 (https://k6.io/)
      • ab (ApacheBench)