Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar
a silhouette of a person's head and shoulders, used as a default avatar
darix posted in English at

Jitsi: Turning off Automatic Gain Control

TL;DR

Operating systems let you customize the sensitivity of the microphone allowing you to suppress environmental noise such as keyboard strokes. Video conferences software unfortunately tends to override such settings using autogain making your customization void. While some video conferencing tools let you control autogain via the settings, Jitsi does not have such an option.

However, you can use https://your.jitsi.server/someroom#config.disableAGC=true when joining your Jitsi meetings to disable autogain and have more control over your microphone.

the avatar of YaST Team

Digest of YaST Development Sprint 118

It has been three weeks since the previous development report from the YaST Team. That’s one week more than our usual cadence, since most of the team was booked during four days in an internal SUSE workshop. But fear no more, we are back and loaded with news as usual. This time we bring:

  • Support to enable and configure SELinux during installation
  • A revamped interface for configuring wireless network devices
  • Usability improvements in several areas
  • A new “hidden level” in the installer with advanced tools ;-)

You may know that both the SUSE and openSUSE families of operating systems include container-oriented members, namely openSUSE MicroOS and SLE Micro. In order to make them even more awesome, we got the request to make possible to propose and configure the usage of Security-Enhanced Linux, more widely known as SELinux, during the (auto)installation. This is a complex change affecting several parts of YaST and various versions of (open)SUSE, but you can get a good overview in the description of this pull request which includes some screenshots that may be worth a thousand words. Right now, the feature may look different on each one of the distributions due to the different state of SELinux on them. While in SLE Micro the new setting is visible during installation and activated at its more restrictive level, in others it may look more permisive or even not be presented at all. We expect things to consolidate during the upcoming weeks.

And talking about things that take their time, for a long time we had wanted to improve the usability of the configuration of wireless network adapters. Finally we found the time to reorganize the corresponding tab in the YaST Network module, improving the mechanism to select a wireless network and automatically pre-filling as much information as possible. You can see the result in the following animation and in the detailed pull request with the usual before-and-after screenshots.

The new wireless configuration in action

That’s not the only usability improvements we implemented during this sprint. Now the Partitioner offers more useful information about file-systems that need to be unmounted in advance and presents a more sensible initial state for the collapsable branches in its tables. YaST Network permits to tweak the virt bridge interface during manual installation and reports AutoYaST errors more nicely. Last but not least in the usability field, we improved how long texts are managed and presented in most YaST pop-up dialogs.

If you are still not impressed with all the new things this sprint brought, we can give you a sneak peak on something we have been preparing lately to give power-users more… er… power. ;-) As you all know, YaST is already a pretty advanced installer offering many options. And it’s very configurable so it can be tweaked to behave differently depending on the distribution, the product or the system role selected by the user. But believe it or not, we still face situations in which we would like to configure the installer even more during its execution to overcome some obstacle found in a very special scenario or just for debugging purposes. How do we plan to do it? Meet the new YaST installation console, available through the even newer installer configuration screen!

While we dive into the beta phase of openSUSE Leap 15.3 and SLE-15-SP3, the YaST Team will focus during the next weeks in fixing the bugs found by the testers of those upcoming distributions, which implies we cannot give you a fixed date for the next development report, but it will be for sure during March. Meanwhile, stay tuned and do not hesitate to report any significant bug you can find in YaST or in openSUSE in general. See you soon(ish)!

a silhouette of a person's head and shoulders, used as a default avatar

Slimbook se convierte en patrocinador de KDE

Como buen blog sobre KDE me tengo que hacer eco de esta noticia, aunque no sea primicia y haya aparecido en otros sitios como MUy Linux.Y es que es importante para conocer un poco mejor como funciona la fundación KDE y cómo seguir constatando que poco a poco más y más empresas creen que la colaboración con el Software Libre es algo que beneficia a todos y todas. Así que congratula comentar que Slimbook se convierte en patrocinador de KDE, en otras palabras, una nueva voz con voto en el desarrollo del proyecto KDE… y una voz que es bastante conocida en este humilde blog.

Slimbook se convierte en patrocinador de KDE

El pasado jueves 25 de febrero de 2021 se anunció oficialmente que KDE tiene un nuevo patrocinador. Se trata de Slimbook una empresa que se dedica a ensamblar todo tipo de dispositivos (portátiles ligeros pero potentes, dispositivos All-in-One, portátiles gamers, torres espectaculares, minipcs, etc) 100% compatibles con los sistemas GNU/Linux. En el blog he hablado mucho de ellos, así que solo tenéis que seguir este enlace para conocerlos a fondo… solo añadiré que son más que una empresa.

Así que me llena de alegría conocer que Slimbook se convierte en un patrocionador del projecto de la Comunidad KDE aportando su visión empresarial al desarrollo de las tecnologías libres KDE, un paso más en la gran relación que ha tenido la empresa con la Comunidad y que ha tenido sus frutos en los KDE Slimbook.

Slimbook se convierte en patrocinador de KDE

Este anuncio ha llenado de satisfacción tanto al Presidente de KDE e.V. Aleix Pol y a Alejandro López, CEO de Slimbook, cuyo trabajo conjunto es el responsable de la aparición de los dispositivos antes mencionados.

De esta forma Aleix ha comentado que «la atención de Slimbook hacia los usuarios de FOSS como proveedor de hardware es muy importante para KDE y la comunidad en general. Para KDE, poder llegar más allá de la experiencia del software a soluciones tangibles y debidamente integradas ha sido un sueño hecho realidad. Trabajar juntos en las diferentes colaboraciones a lo largo de los años ha sido realmente emocionante, y esperamos seguir haciéndolo con Slimbook como patrocinador.»

Slimbook se convierte en patrocinador de KDE

Por otra parte, Alejandro López explicó que «Desde nuestros inicios en 2015, en SLIMBOOK nos esforzamos al máximo no solo por vender hardware de calidad compatible con GNU/Linux, sino también por contribuir y ayudar a los que hacen Software Libre y de Código Abierto.

Nuestra variedad de contribuciones van desde dar apoyo a grupos locales de desarrolladores, la realización de foros y tutoriales para ayudar a la comunidad Linux y compartir una visión común con KDE, para llegar al mercado con un dispositivo capaz de proporcionar al usuario final la mejor experiencia de Linux out-of-the-box disponible.

Slimbook se convierte en patrocinador de KDE

Pero nuestra misión no termina ahí y hay más de lo que parece. Nuestro principal objetivo es compartir nuestro conocimiento y experiencia, ayudarnos mutuamente y, por supuesto, dar a los usuarios de GNU/Linux lo mejor en excelencia de hardware de la misma manera que el equipo de KDE lo hace con su excelente experiencia de software.

Nos tomamos nuestro deber de apoyar a la Comunidad KDE con mucho orgullo, y nos sentimos honrados de ser Patronos de KDE».

De esta forma, Slimbook se une a otras compañías en su alianza con KDE: The Qt Company, SUSE, Google, Blue Systems, Canonical, Private Internet Access y enioka Haute Couture para continuar apoyando el Software Libre y el desarrollo de los proyectos KDE a través de KDE e.V.

Más información: KDE.News

the avatar of openSUSE News

Call for Papers Open for openSUSE Conference

The call for papers for the openSUSE Virtual Conference is open!

The call for papers is open until May 4. This leaves a little more than 60 days to submit a proposal. The dates of the conference are scheduled for June 18 - 20. Registration for the conference has also begun.

Presentations can be submitted for the following length of time:

  • Lightning Talks (15 mins)
  • Normal Talk (30 mins)
  • Long Talk (45 mins)
  • Workshop (1 hour)

The following tracks are listed for the conference:

  • Cloud and Containers
  • Community
  • Embedded Systems and Edge Computing
  • New Technologies
  • Open Source
  • openSUSE

The conference already has two sponsors with Fedora and SUSE. Companies interested in sponsoring the event can view the sponsorship prospectus on the project’s wiki page.

Volunteers who would like to help the Program Committee and/or the Organizing Team can email ddemaio@opensuse.org.

the avatar of Nathan Wolf

LCD Chalkboard Smart Sign, Raspberry Pi Powered

Whenever technology and art meet in a very useful product, I can’t help but get excited and think about the applications of where a thing can be used. Instructables, yet again provides another incredible idea for something you can build as a life enhancement. I find the notion of combining a chalk board and a … Continue reading LCD Chalkboard Smart Sign, Raspberry Pi Powered
a silhouette of a person's head and shoulders, used as a default avatar

Revisiting Html in Java

Some time ago I wrote a post about creating an embedded dsl for Html in Java. Sadly, it was based on an abuse of lambda name reflection that was later removed from Java.

I thought I should do a followup because a lot of people still visit the old article. While it’s no longer possible to use lambda parameter names in this way, we can still get fairly close. 

The following approach is slightly less concise. That said, it does have some benefits over the original:

a) You no longer need to have parameter name reflection enabled at compile time.

b) The compiler can check your attribute names are valid, and you can autocomplete them.

What does it look like? 

html(
   head(
       title("Hello Html World"),
       meta($ -> $.charset = "utf-8"),
       link($->{ $.rel=stylesheet; $.type=css; $.href="/my.css"; }),
       script($->{ $.type= javascript; $.src="//benjiweber.co.uk/some.js"; })
   ),
   body(
       div($-> $.cssClass = "article",
           a($-> $.href="https://benjiweber.com/",
               span($->$.cssClass="label", "Click Here"),
               img($->{$.src="//benjiweber.co.uk/htmldsl2.png"; $.width=px(25); $.height=px(25); })
           ),
           p(span("some text"), div("block"))
       )
   )
)

This generates the following html

 
   Hello Html World
   
   
   
 
 
   
Click Here

some text

block

You get nice autocompletion, and feedback if you specify inappropriate values:

You’ll also get a helping hand from the types to not put tags in inappropriate places:

Generating Code

As it’s Java you can easily mix other code to generate markup dynamically:

assertEquals(
       """
       
         
           
         
         
           

Paragraph one

Paragraph two

Paragraph three

""".trim(), html( head( meta($ -> $.charset = "utf-8") ), body( Stream.of("one","two","three") .map(number -> "Paragraph " + number) .map(content -> p(content)) ) ).formatted() );

And the code can help you avoid injection attacks by escaping literal values: 

assertEquals(
       """
       
         
           
         
         
           

<script src="attack.js"></script>

""".trim(), html( head( meta($-> $.charset = "utf-8") ), body( p("") ) ).formatted() );

How does it work?

There’s only one “trick” here that’s particularly useful for DSLs. Using the Parameter Objects pattern from my lambda type references post. 

The lambdas used for specifying the tag attributes are “aware” of their own types. And capable of instantiating the configuration they specify.

When we call 

meta($ -> $.charset="utf-8")

We make a call to 

default Meta meta(Parameters params, Tag... children) { … }

The lambda specifying the attribute config is structurally equivalent to the Parameters<Meta> type. This provides a get() function that instantiates an instance of Meta, and then passes the new instance to the lambda function to apply the config.

public interface Parameters extends NewableConsumer {
   default T get() {
       T t = newInstance();
       accept(t);
       return t;
   }
}

Under the hood the newInstance() method uses reflection to examine the SerializedLambda contents and find the type parameter (in this case “Meta”) before instantiating it.

You can follow the code or see the previous post which explains it in a bit more detail.

Add Mixins

It’s helpful to use interfaces as mixins to avoid having to have one enormous class with all the builder definitions. 

public interface HtmlDsl extends
   Html.Dsl,
   Head.Dsl,
   Title.Dsl,
   Meta.Dsl,
   Link.Dsl,
   Script.Dsl,
   Body.Dsl,
   Div.Dsl,
   Span.Dsl,
   A.Dsl,
   P.Dsl,
   Img.Dsl {}

Each tag definition then contains its own builder methods. We compose them together into a single HtmlDsl interface for convenience. This saves having to import hundreds of different methods. By implementing the Dsl interface a consumer gets access to all the builder methods.

Show me the code

It’s all on github. I’d start from the test examples. Bear in mind that it’s merely a port of the old proof of concept to a slightly different approach. I hope it helps illustrate the technique. It’s in no way attempting to be a complete implementation.

This approach can also be useful as an alternative to the builder pattern for passing a specification or configuration to a method. There’s another example on the type references article.

What else could you use this technique for?

The post Revisiting Html in Java appeared first on Benji's Blog.

a silhouette of a person's head and shoulders, used as a default avatar

Raspberry Pi で Bluetooth を使うには

openSUSE Leap 15.2 の Raspberry Pi では Bluetooth が使える状態になっていません。SLE の Raspberry Pi Quick Start に書かれている次のコマンドで初期化する必要があります。

https://documentation.suse.com/sles/15-SP1/pdf/art-rpiquick_color_en.pdf

hciattach /dev/ttyAMA1 bcm43xx 921600
hciconfig hci0 up

このコマンドを実行することでファームウェアが読み込まれ、Bluetooth が使えるようになります。

a silhouette of a person's head and shoulders, used as a default avatar

Guadec 2021 en línea se celebrará en julio

Como fue lo habitual durante el 2020 y lo sigue siendo a lo largo de este año, el gran evento comunitario del entorno de trabajo Gnome no se va a celebrar físicamente. De esta forma, la Comunidad Gnome acaba de anunciar que Guadec 2021 se celebrará en línea en julio. De esta forma evita, como ha hecho la Comunidad KDE con su Akademy, los actuales inconvenientes de la pandemia que está marcando nuestras vidas.

Guadec 2021 en línea se celebrará en julio

La rivalidad KDE-Gnome es algo que en realidad existe en la mente de los usuarios y en las bromas de los desarrolladores ya que a la hora de la verdad ambos proyectos se retroalimentan tanto en ideas como en funcionalidades.

Prueba de ello es la Linux App Summit (LAS) que se lleva celebrando desde hace unos años y la compatibilidad de aplicaciones en ambos entornos de trabajo.

No obstante en este blog la Comunidad Gnome ha tenido muy poca presencia pero no por animadversión sino por desconocimiento del que escribe estas líneas.

De esta forma, y a pesar de que el blog tiene ya casi 13 años, nunca he hablado de la GUADEC, el gran evento de la Comunidad GNOME que reúne simpatizantes, desarrolladores, diseñadores, usuarios, traductores, promotores de de este entorno de escritorio y les hace compartir una semana de charlas y talleres.

Y es por tanto hora de enmendar este error y promocionar evento ya que esta semana nos hemos enterado que Guadec 2021 en línea se celebrará en julio, concretamente del 21 al 25 de julio.

Abierto el call for papers GUADEC 2021

El tema elegido para GUADEC 2021 es «Future-Proofing FOSS». De esta forma se van a priorizar las ponencias o charlas en los que el tema se relaciona con la planificación y la construcción del futuro del software libre.

Evidentemente la variedad de temas es infinita pero si necesitas ideas para enviar tu propuesta los organizadores nos proponen las siguientes ideas:

Desarrollo de aplicaciones

Privacidad y seguridad

Creación de comunidades y equipos

Diseño de la experiencia del usuario y del desarrollador

Uso de las tecnologías de GNOME fuera del escritorio

Iniciativas para recién llegados

Planificación y gobierno de proyectos

Más información: GUADEC

the avatar of Klaas Freitag

Kraft Version 0.96

Ich freue mich, heute das Release Version 0.96 von Kraft herauszugeben. Die neue Version kann über die Homepage heruntergeladen werden.

Kraft 0.96 ist ein Bugfix Release, das einige kleine Fehler der Version 0.95 behebt. Insbesondere betrifft das das in 0.95 eingeführte neue PDF-Rendering mit Weasyprint.

Es gibt auch ein paar kleine neue Funktionen: Im Dokument Editor kann per Hinzufügen-Knopf nun auch eine neue Posten-Vorlage hinzugefügt werden. Außerdem werden in Folgedokumenten die im Vorgängerdokument eingetragenen Kopf- und Fußtexte kopiert, wenn die Standard-Texte für den neuen Dokumenttyp nicht gesetzt sind. Wichtig dabei: Kraft verwendet den Kopftext mit dem Namen „Standard“ als Standardtext, ebenso bei Fußtexten.

Weiterhin viel Erfolg mit Kraft!

the avatar of Nathan Wolf