Project Description

Join an instructor-led bootcamp to explore the Rust programming language in two-hour sessions each day throughout Hackweek. Sessions will be between 7-10am Pacific, 3-6pm Central Europe (exact time will be determined as we get closer)

Goal for this Hackweek

We want to raise awareness of Rust and give hands-on experience over HackWeek. If the attendees want to hack together on a Rust project, I'm fully in support of that.

Resources

Why Rust? https://confluence.suse.com/x/GYJiKQ

Update

*Our instructor will be Anatol Ulrich of Ferrous systems.

*We will be recording these sessions and posting them in the HackWeek Stream

*We have a rocketchat room #RustBootcampHackWeek20

*More about the company running the training https://ferrous-systems.com/

*More about Rust: https://www.rust-lang.org/

Looking for hackers with the skills:

rust learning fun exploration growth

This project is part of:

Hack Week 20

Activity

  • over 2 years ago: tjyrinki_suse liked this project.
  • over 2 years ago: cdywan disliked this project.
  • over 2 years ago: zbenjamin liked this project.
  • over 2 years ago: zbenjamin disliked this project.
  • almost 3 years ago: cdywan liked this project.
  • almost 3 years ago: cdywan disliked this project.
  • over 3 years ago: slahl joined this project.
  • over 3 years ago: slahl liked this project.
  • over 3 years ago: bchou liked this project.
  • over 3 years ago: ohollmann joined this project.
  • over 3 years ago: pstivanin left this project.
  • over 3 years ago: jesusbv joined this project.
  • over 3 years ago: gkurel_suse joined this project.
  • over 3 years ago: deneb_alpha left this project.
  • over 3 years ago: lcaparroz liked this project.
  • over 3 years ago: mvidner joined this project.
  • over 3 years ago: lpato joined this project.
  • over 3 years ago: lpato liked this project.
  • over 3 years ago: dpeng joined this project.
  • over 3 years ago: pdamle joined this project.
  • over 3 years ago: chajain joined this project.
  • over 3 years ago: izavaletaescalante left this project.
  • over 3 years ago: pvorel liked this project.
  • over 3 years ago: csalmond joined this project.
  • over 3 years ago: tiwai joined this project.
  • All Activity

    Comments

    • gfilippetti
      almost 4 years ago by gfilippetti | Reply

      I'm interested :)

    • csalmond
      almost 4 years ago by csalmond | Reply

      Does anyone know if SUSE has plans to use/include Rust in distros?

      • agraul
        almost 4 years ago by agraul | Reply

        Rust is already part of SLE 15 (see SMELT), openSUSE Leap 15 and, of course, openSUSE Tumbleweed add-emoji

    • locilka
      almost 4 years ago by locilka | Reply

      Could you PLS record these sessions? I guess we might later have some new employees interested in it too.

      • SMorlan
        almost 4 years ago by SMorlan | Reply

        We will request the ability to record these. We're also talking about putting this on the list for the next HackWeek, as well.

    • SMorlan
      almost 4 years ago by SMorlan | Reply

      Wow! Thanks for all the interest! We were quoted for a group of 10-12, but we're working on expanding to include more.

    • ikapelyukhin
      over 3 years ago by ikapelyukhin | Reply

      "We're gonna need a bigger boat" add-emoji

    • jguilhermevanz
      over 3 years ago by jguilhermevanz | Reply

      I think is a good idea to have the environment ready for the sessions. Which version of Rust and tools do we need?

    • ancorgs
      over 3 years ago by ancorgs | Reply

      There is more concrete and up-to-date information about the final schedule and/or whether we all fit?

    • SMorlan
      over 3 years ago by SMorlan | Reply

      I will be sending out invites to the sessions tonight or tomorrow (US time). We can have 15 people in the session, so some latecomers will not be included. I have already started talking to Olli about just planning for another session for this during next Hack Week. With earlier planning we may be able to get separate sessions in geo locations and maybe full-day sessions.

    • SMorlan
      over 3 years ago by SMorlan | Reply

      We will get to record and share the sessions.

    • cdywan
      over 3 years ago by cdywan | Reply

      Seems I "was not in the 15 signups". Bummer. This would've been the perfect combo with the rust-based project I'm on for the hackweek

    • glaubitz
      over 3 years ago by glaubitz | Reply

      Is there still a way to follow these sessions? Passive participation would be sufficient for me.

    Similar Projects

    Hack on isotest-ng - a rust port of isotovideo (os-autoinst aka testrunner of openQA) by szarate

    Description

    Some time ago, I managed to convince ByteOtter to hack something that resembles isotovideo but in Rust, not because I believe that Perl is dead, but more because there are certain limitations in the perl code (how it was written), and its always hard to add new functionalities when they are about implementing a new backend, or fixing bugs (Along with people complaining that Perl is dead, and that they don't like it)

    In reality, I wanted to see if this could be done, and ByteOtter proved that it could be, while doing an amazing job at hacking a vnc console, and helping me understand better what RuPerl needs to work.

    I plan to keep working on this for the next few years, and while I don't aim for feature completion or replacing isotovideo tih isotest-ng (name in progress), I do plan to be able to use it on a daily basis, using specialized tooling with interfaces, instead of reimplementing everything in the backend

    Todo

    • Add make targets for testability, e.g "spawn qemu and type"
    • Add image search matching algorithm
    • Add a Null test distribution provider
    • Add a Perl Test Distribution Provider
    • Fix unittests https://github.com/os-autoinst/isotest-ng/issues/5
    • Research OpenTofu how to add new hypervisors/baremetal to OpenTofu
    • Add an interface to openQA cli

    Goals

    • Implement at least one of the above, prepare proposals for GSoC
    • Boot a system via it's BMC

    Resources

    See https://github.com/os-autoinst/isotest-ng


    Implement a CLI tool for Trento - trentoctl by nkopliku

    Description

    Implement a trentoctl CLI for interacting with a trento installation

    Goals

    • learn rust
    • implement an initial trentoctl tool to enhance trento automation
    • have fun

    Resources

    trento rust. TUIs listed on this other hackweek project Hack on rich terminal user interfaces


    Agama installer on-line demo by lslezak

    Description

    The Agama installer provides a quite complex user interface. We have some screenshots on the web page but as it is basically a web application it would be nice to have some on-line demo where users could click and check it live.

    The problem is that the Agama server directly accesses the hardware (storage probing) and loads installation repositories. We cannot easily mock this in the on-line demo so the easiest way is to have just a read-only demo. You could explore the configuration options but you could not change anything, all changes would be ignored.

    The read-only demo would be a bit limited but I still think it would be useful for potential users get the feeling of the new Agama installer and get familiar with it before using in a real installation.

    As a proof of concept I already created this on-line demo.

    The implementation basically builds Agama in two modes - recording mode where it saves all REST API responses and replay mode where it for the REST API requests returns the previously recorded responses. Recording in the browser is inconvenient and error prone, there should be some scripting instead (see below).

    Goals

    • Create an Agama on-line demo which can be easily tested by users
    • The Agama installer is still in alpha phase and in active development, the online demo needs to be easily rebuilt with the latest Agama version
    • Ideally there should be some automation so the demo page is rebuilt automatically without any developer interactions (once a day or week?)

    TODO

    • Use OpenAPI to get all Agama REST API endpoints, write a script which queries all the endpoints automatically and saves the collected data to a file (see this related PR).
    • Write a script for starting an Agama VM (use libvirt/qemu?), the script should ensure we always use the same virtual HW so if we need to dump the latest REST API state we get the same (or very similar data). This should ensure the demo page does not change much regarding the storage proposal etc...
    • Fix changing the product, currently it gets stuck after clicking the "Select" button.
    • Move the mocking data (the recorded REST API responses) outside the Agama sources, it's too big and will be probably often updated. To avoid messing the history keep it in a separate GitHub repository
    • Allow changing the UI language
    • Display some note (watermark) in the page so it is clear it is a read-only demo (probably with some version or build date to know how old it is)
    • Automation for building new demo page from the latest sources. There should be some check which ensures the recorded data still matches the OpenAPI specification.

    Changing the UI language

    This will be quite tricky because selecting the proper translation file is done on the server side. We would probably need to completely re-implement the logic in the browser side and adapt the server for that.

    Also some REST API responses contain translated texts (storage proposal, pattern names in software). We would need to query the respective endpoints in all supported languages and return the correct response in runtime according to the currently selected language.

    Resources


    Better diff'ing experience by MSirringhaus

    Description

    For diff-ing directories, I usually like to use meld, but it struggles a lot with large trees. Experiment with writing a TUI meld-clone for diffing directories and files

    Goals

    Get first prototype going of a TUI that can show

    • diffs of text-files
    • diffs of directories.

    Stretch goals

    • Themes
    • Filters (no whitespace, etc.)
    • Live config changes (Show/hide line numbers, etc.)


    SMB3 Server written entirely in Rust by dmulder

    Description

    Given the number of bugs frequently discovered in the Samba code caused by memory issues, it makes sense to re-write the smbd service purely in Rust code. Meanwhile, it would be wise to abandon backwards compatibility here with insecure protocol versions, and simply implement the SMB3 spec.

    Goals

    Get a simple server up and running and get it merged into upstream Samba (which now has Rust build support).

    Resources


    SUSE Prague claw machine by anstalker

    Project Description

    The idea is to build a claw machine similar to e.g. this one:

    example image

    Why? Well, it could be a lot of fun!

    But also it's a great way to dispense SUSE and openSUSE merch like little Geekos at events like conferences, career fairs and open house events.

    Goal for this Hackweek

    Build an arcade claw machine.

    Resources

    In French, an article about why you always lose in claw machine games:

    We're looking for handy/crafty people in the Prague office:

    • woodworking XP or equipment
    • arduino/raspi embedded programming knowledge
    • Anthony can find a budget for going to GM and buying servos and such ;)


    Explore simple and distro indipendent declarative Linux starting on Tumbleweed or Arch Linux by janvhs

    Description

    Inspired by mkosi the idea is to experiment with a declarative approach of defining Linux systems. A lot of tools already make it possible to manage the systems infrastructure by using description files, rather than manual invocation. An example for this are systemd presets for managing enabled services or the /etc/fstab file for describing how partitions should be mounted.

    If we would take inspiration from openSUSE MicroOS and their handling of the /etc/ directory, we could theoretically use systemd-sysupdate to swap out the /usr/ partition and create an A/B boot scheme, where the /usr/ partition is always freshly built according to a central system description. In the best case it would be possible to still utilise snapshots, but an A/B root scheme would be sufficient for the beginning. This way you could get the benefit of NixOS's declarative system definition, but still use the distros package repositories and don't have to deal with the overhead of Flakes or the Nix language.

    Goals

    • A simple and understandable system
    • Check fitness of mkosi or write a simple extensible image builder tool for it
    • Create a declarative system specification
    • Create a system with swappable /usr/ partition
    • Create an A/B root scheme
    • Swap to the new system without reboot (kexec?)

    Resources

    • Ideas that have been floating around in my head for a while
    • https://0pointer.net/blog/fitting-everything-together.html
    • GNOME OS
    • MicroOS
    • systemd mkosi
    • Vanilla OS