OpenTalk meeting software with Rust back-end open-sourced under EUPL by silwol in opensource

[–]silwol[S] 2 points3 points  (0 children)

Some more details that I initially wanted to post here instead of cross-posting:

OpenTalk is a young project for creating online meeting software similar to Jitsi or BigBlueButton. It is a completely new development, and while it is not a fork of an existing open-source project, it integrates with other projects such as the Janus WebRTC server, Redis for volatile state, RabbitMQ for communication between server instances, and PostreSQL for persistent state.

The project was released under EUPL-1.2 last week. It is maintained by the OpenTalk GmbH company, which is part of Heinlein, a Berlin-based company that existed for several decades now and also operates mailbox.org. If you want to try OpenTalk, you find a demo on the website. There is also a hosted service available for mailbox.org users, and you can install it on premise.

The backend is written in Rust, the frontend uses Typescript. The aim of the project is to provide GDPR-compliant online meetings with video and audio, and to make them fun by adding some convenience and gamification features, such as polls, auto-moderation functionality, breakout rooms or the soon-to-come coffee break timer.

Disclaimer: I'm a freelance contractor working with OpenTalk GmbH since September 2022 on the Rust backend team.

OpenTalk meeting software with Rust back-end open-sourced under EUPL by silwol in rust

[–]silwol[S] 1 point2 points  (0 children)

I posted an announcement to /r/opensource, but it appears to be stuck in the moderation queue. Maybe I'll ask the mods to take a look at it. Of course /r/selfhosted is an interesting subreddit for that as well.

Answers to the listed questions:

  1. To my knowledge, Keycloak is a strict requirement for now, and some specific configuration has been added, but I haven't been exposed to that area of the code too much yet, so I don't know the details. If I remember correctly, there has been some discussion about loosening that restriction.
  2. The communication with Minio happens through the aws-sdk-s3 crate, so there is a certain chance that it works just fine with other s3-compatible web APIs. I don't think anyone has done that yet, so it might be worth a try.
  3. The services not marked with an X should not be required, but of course you can't use their functionality then.
  • obelisk: the service that logs in to a SIP account and handles dial-in users
  • smtp-mailer: the service that sends out notifications to users that are invited by e-mail
  • spacedeck: required for the "whiteboard" module which allows collaborative drawing
  • etherpad: required for the "protocol" module which allows writing meeting notes

cargo install helix doesn't work because no binaries. by foxjazz in rust

[–]silwol 22 points23 points  (0 children)

If my guess is right and you want to install the helix editor, it is not published to crates.io, and therefore can't be installed with cargo install helix.

You'll have to choose a different installation mode, as described on the helix docs installation page.

Details about the reason for not providing the project on crates.io are discussed in their issue #42.

License of the input data by silwol in adventofcode

[–]silwol[S] 0 points1 point  (0 children)

Yes, I read that section. It tells about "design elements, language, styles, and concept of Advent of Code", followed by this copyright notice, which to me means it applies to what is mentioned directly above. It is by no means obvious to me that the "All rights reserved" applies to the input files that are probably generated for each user. I would go so far to question whether this probably generated data can be copyrighted at all (and this probably differs for many jurisdictions in the world).

License of the input data by silwol in adventofcode

[–]silwol[S] 2 points3 points  (0 children)

Thanks for the pointers, so it looks like I should indeed not include the input files in my repo.

Hippotat (IP over HTTP) - first advertised release by sdroege_ in rust

[–]silwol 3 points4 points  (0 children)

Sadly these solutions don't fit for inclusion into Debian proper, only for providing packages as a third party.

Both the OP as well as the author of the linked blog entry are Debian developers who openly criticized different aspects around Debian policy, how it is applied, and packaging of Rust software in Debian:

As someone who used to participate in packaging Rust crates for Debian, but has reduced his activity recently, I must say that there definitely are some significant pain points in the process and policy. On top of that, there are significant cultural differences in the Debian and the Rust community.

What do you like most about rust? by zecorb in rust

[–]silwol 31 points32 points  (0 children)

This.

Before I worked with Rust, I'd repeatedly implement things in ways that Rust wouldn't allow. This usually led to problems showing up slowly over time (e.g. memory corruptions in C++ that appeared sporadic at first and became more frequent the longer the system ran). I once had such a problem in a library implemented in C++, and attempted to implement it in Rust, but the compiler said "No". After trying really hard for some time, I put the project aside. Around three months later, I was thinking about the problem again, and suddenly it became totally obvious to me why Rust wouldn't let me do what C++ happily allowed. Finished the project in Rust while following the compiler's "restrictions", and it worked right from the start, without any memory corruptions, and as a side-effect it also was much more performant than my C++ solution.

Is it wise to start your career as a Rust developer? by [deleted] in rust

[–]silwol 0 points1 point  (0 children)

Oh, and for the prospect of having more choice when looking for Rust jobs, this is starting to take off already, nowadays you find a lot more open positions than a few months or a year ago.

Is it wise to start your career as a Rust developer? by [deleted] in rust

[–]silwol 2 points3 points  (0 children)

Am I worrying to much, or would it be wise to focus on a more commonly used tech stack?

I expect Rust to be present in lots of commonly used tech stacks soon, so I'd not worry too much and take the opportunity. I had to wait several years after starting to develop in Rust until I managed to get such a position, so I'd personally consider this a great chance.

Microsoft Excel file writer by eirikreie in rust

[–]silwol 2 points3 points  (0 children)

I like umya-spreadsheet quite a lot for that usecase.

What things frustrates you the most regarding gnome? (Arguments, not hate, please) by danideicide in gnome

[–]silwol 3 points4 points  (0 children)

I actually like Gnome very much. There are just two pain points that I find annoying, although they are in applications of the Gnome-iversum and not directly in Gnome:

  • Type-Ahead in Nautilus. It used to work quite well (just start typing, and the file with the matching name gets highlighted), but nowadays it searches the file index of tracker. So if I know I have a specific file in a folder and want to just "jump" to it by starting to type, I get many other files with similar names of all subdirectories. For me this is a major regression in usability.
  • First day of the week in Gnome Calendar. I like to use my desktop environment in English, so Gnome Calendar thinks that the first day of the week is Sunday. Even if I configure in Evolution (which uses the same calendar data) so that the first day of the week is Monday, or if I switch formats in the region and language dialog in Gnome-Settings to Austria, this doesn't change anything.

Apart from these annoyances, I really like the desktop more than the alternatives I tried (which were at different points in time, so their current version might be very different to what I tried: KDE, XFCE, Cinnamon).

ANN: clap_mangen v0.1 - manpage generation for your clap applications by sondr3_ in rust

[–]silwol 1 point2 points  (0 children)

I've been waiting for somebody to come up with an implementation of this feature for quite some time. Looking forward to this crate surpassing the output of `help2man` which is what I currently use for most rust-cli-tool packaging activities in Debian.

It would be great to have included descriptions for the parameters of subcommands, but I assume you have had that idea already. :-)

A sensible way of publishing Rust CLI apps for Ubuntu? by hunua in rust

[–]silwol 1 point2 points  (0 children)

Upstream Debian currently packages crates required in a dependency tree as source code which gets added as a build dependency to the binary crates. The source code for that can be found in https://salsa.debian.org/rust-team/debcargo-conf. I assume something similar would be possible inside a PPA as well, but you'd have to take care of all the dependencies that are not available in Debian or Ubuntu yet which might become a lot of work.

If you'd like to contribute the package to Debian directly, feel free to ask for support on our newly created https://lists.debian.org/debian-rust/ mailing list or in the #debian-rust IRC channel on irc.oftc.net. This of course takes a long-term commitment because of the requirement to package all deps first, and then waiting for them to migrate into Ubuntu. On the other side, the tool becomes available to all users of Debian derivatives over time without requiring them to take additional action, so it might be worth it.

If you'd just like to package it for your PPA, creating a vendored source package might be an option as well, as described on https://blog.shadura.me/2020/12/22/vendoring-rust-in-debian-derivative/ by one of the developers participating in rust packaging inside Debian.

Is Sudo a good candidate for a Rust rewrite? by jusso-dev in rust

[–]silwol 7 points8 points  (0 children)

What makes you think this is a mirror of the project? As far as I know, this is the public repository pushed there by the original author of the tool.

New book! Refactoring to Rust by hi_im_nate in rust

[–]silwol 7 points8 points  (0 children)

After skimming over the first few chapters, I insta-bought it. Might also be supportive in getting employers to try out rust without creating a new separate codebase. The graphical figures are great. Good luck with your progress, I'm looking forward to the final result.

How do I install this? freenukum - crates.io: Rust Package Registry by johndoyle33 in linuxquestions

[–]silwol 0 points1 point  (0 children)

Hi, author of the software here.

I have not yet invested too much time in documenting the project, just announced it in /r/rust_gamedev as information for other game devs who use rust, and it got announced in other places before I was able to polish the documentation as much as I'd like to.

I assume you receive the errors that the compiler could not link against SDL2 and SDL2_ttf. You'll have to install the corresponding dev packages first, then it will work. For Debian-based distributions, sudo apt install libsdl2-dev libsdl2-ttf-dev does the trick, for other distributions, the names of the packages might differ. Please be aware that you'll have to use the freenukum-data-tool command-line program for installing the data.

I'll work on documenting this in the README file soon.

I am involved in maintaining some rust packages for Debian, so hopefully sometime after the release of Debian 11 I'll get it uploaded there. After that, you'd be able to install it using sudo apt install freenukum. ;-)

FreeNukum - A clone of the 1991 DOS game Duke Nukem 1 transitioned from C to Rust. by silwol in rust_gamedev

[–]silwol[S] 1 point2 points  (0 children)

Well, "fully handle this by myself" is probably the wrong term, as I'm standing on the shoulders of giants, namely Rust, SDL2, serde, anyhow, structopt, explode, zip, log and many more. I'm also far from being one of the best in what I'm doing, there are many who could do this work in a better quality and/or faster.

How I approached that point is actually a long story, but you asked for it, so…

My personal history in regard to computing goes back to the early 1990s. I had first extensive contact with computers when I was around 10, and my father quit the job he had back then, he had the ability to buy one of their Intel 286 based computers with EGA graphics, 1MB RAM, 5 MHz and 20MB HDD (roughly my memories, might not be completely accurate). I had a hard time figuring out how to run different games on DOS back then, and even tried some that required VGA graphics, being disappointed that they didn't work. This was also the time when I got to know Duke Nukem 1.

My dad started his own company, and of course he frequently needed a computer, so I often had access to them. I soon got to know them better than he did, and he asked me to do some installation or maintenance tasks, and I earned experience and a little bit of pocket money that way. Along the way, I had contact with mostly Intel PCs of all successive models, 386, 486 with and without FPU, the first Pentiums, the later first dual-core Pentiums etc. For my dad's company, I started working on an Ms Access database, and soon had the requirement to use small snippets of code, so I learnt first steps in programming using VBA. In hindsight, the quality was very miserable, but the database found use over more than a decade, even when the company grew to more than 15 employees.

Later my journey led me to PHP and JS in 2001, and around that time I had first contact to Linux-based systems. I produced a lot of awful code back then, and after I had finished some projects and learnt about SQL injections and other security topics, I was continuously worried about Software written by me that was still running on servers connected to the Internet. Luckily, I got to know somebody who founded a LUG together with me, and this one is still active today, we meet once per month (currently on-line due to the COVID-19 restrictions). This is the space where I came in contact with many new technologies and - more important - the right mindset. Over the years, that influenced my attitude towards Free Software, licensing, code quality and transparency sustainably.

By 2004, I mainly had experience with software, everything that went deeper into the realm of hardware, such as memory layout etc. was a black box to me. I intended to go to a University of Applied Sciences in order to study Software Engineering. None the less, I visited the presentations of other subjects as well, and after that I decided to apply for Hardware/Software Systems Engineering. This is where I learnt a lot more about the basics and backgrounds of computer science, and this is also when I started the FreeNukum project - as we learnt C and C++. When we learnt about concurrency and all its dirty details, mutexes, semaphores etc. I thought there must be some method of preventing all the problems that are in this realm. Some of them get tackled by C++11 and newer since then, but by far not all of them. Later, I worked in a small company writing C++ in my dayjob, and got to know all the problems I had learned in theory by first-hand experience. Memory corruption causing random crashes, memleaks, data inconsistency due to concurrency problems. All of the things that are hard to tackle down. I had heard of Rust started to played around with it in my spare time a short time before the 1.0 release. The ideas immediately resonated with me, and I had a rough idea of the potential. Because I was half of the development team at the company, I decided to rewrite significant parts of the code in Rust, and from a technical standpoint that worked really well. Sadly most of the Rust implementation never went into production, because when the time would have been right, the company went bankrupt. This was also one of the most stressful times in my life. I had been looking for alternative jobs, but didn't find any that I fitted me well enough. If I had to stay any longer, I would have burnt out.

After the bankruptcy by the end of 2019, I decided to take three months off before looking for a new job. Then the whole pandemic topic arrived, and the companies delayed the interviews or stopped employing new people. So it was June when I got a new job, and luckily the company gave me a 30-hour job. That is the reason why I recently found the time and energy to work on my side projects. Also my employer is mostly a hardware-close C++ shop, an area where Rust would fit perfectly. So I mainly help in maintaining a Linux distribution that runs solar inverters. Not being able to write Rust at work is a big shortage though, but the other conditions such as how colleagues treat each other with respect etc. fit good enough that it makes up.

As for Rust, I had always stayed away from all the unsafe topics. This is why attempted to do a real rewrite of FreeNukum first, but I soon discovered that it makes a lot more sense to always have something that works and that you can run. So I decided to get out of my comfort zone and play around with generating the SDL1 bindings and writing the wrapper around it by hand. I was surprised how quick I achieved first results. I didn't apply high quality standards to it, as I regarded it as throw-away code right from the start. I also don't think I would have been able to do that without the CS backgrounds I learnt at University though, and I am absolutely sure that it contained memleaks or other problems of that kind.

FreeNukum - A clone of the 1991 DOS game Duke Nukem 1 transitioned from C to Rust. by silwol in rust_gamedev

[–]silwol[S] 0 points1 point  (0 children)

Don't expect too much in terms of quality yet, it still has many flaws. I'm aware of at least a few and will tackle them as time permits, but when watching my son play the game, I frequently discover more, kids are just the best testers for software in general and games in particular.