Welcome to Planet openSUSE

This is a feed aggregator that collects what the contributors to the openSUSE Project are writing on their respective blogs
To have your blog added to this aggregator, please read the instructions

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 Raspberry Pi Zero into a single unit, can be valuable at so many levels. Very often the kitchen refrigerator becomes the message center with notes stuck to it, but maybe something like this would be more appropriate and even more efficient.

Full Article on MakersCorner.tech

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? 

       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"; })
       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


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:


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: 


<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();
       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
   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.

Raspberry Pi で Bluetooth を使うには

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


# hciattach /dev/ttyAMA1 bcm43xx 921600

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

Feb 28th, 2021

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

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!

Noodlings 23 | Not Fading Yet

Click here for the 23 personal pan pizza sized podcast

I am doing my best to not fade out, but for more of my thought and opinions, subscribe to DLN Xtend, a podcast with the Destination Linux Network where I have a chat about Linuxy things with my co-hosts Matt and Wendy.

Gaming Rack Design and Construction

I have collected a number of gaming systems throughout my life and there is little point in having them if they sit in a box or using them takes an annoying level of set-up time, making it fun prohibitive. I was then inspired by Perifractic Retro Recipes video where the computer museum has everything so nicely laid out. I looked at my mess and decided that I had to do something about it because my arrangement just isn’t presentable.

openSUSE Breeze Dark Plasma Style

About two years ago, I started using Kdenlive to do video editing. The dark theme I had been using, a modified version of the “openSUSE dark alternate” theme, was not getting along with Kdenlive and I had to use the “Breeze Dark” theme to be able to properly distinguish the widgets and such on the application. Shortly there after, I set out to modify the Breeze Dark theme to give me that openSUSE feel I have been enjoying for years. I have made it available on this page of my site but I decided to push it to the “KDE Store” which I previously thought was “look and feel” but is now called Pling but store.kde.org is essentially the same thing. I’m still confused but less now than when I started the publishing journey.

Bpytop on openSUSE | Terminal

As I was finishing my article about how great Bashtop is on openSUSE, I was told about Bpytop and realized it was the successor to Bashtop as well. After publishing that article on Bpytop, I was told that there are yet cooler terminal system monitoring tools. I am not sure how far behind the curve I am but I am sure I will get more feedback on either my missing the party on the new hotness out there. None the less, I still like and use Bpytop.

Logitech K400+ Keyboard Water Spill Repair

One of the big life enhancements I have had in the last few years was mounting a computer in the Kitchen above the sink. I realized that there is an inherent hazard in mixing electronics and kitchen activities but I maintain a strong belief that this can also be a very beneficial mix. Having openSUSE available to me, with all its application and reliability goodness has been a life-enhancer for the kitchen. I went through a series of keyboards only to find that I was best served in buying a quality keyboard. That was all find and good until I was a giant numpty and dribbled my sopping wet hands on the keyboard, rendering it useless. I threw it in my pile of broken things to get back to and I did. Not a bad repair.

HP EliteBook 840 G7 running openSUSE Tumbleweed

I was given an incredible gift by my former employer as a parting gift, an HP EliteBook 840 G7. I didn’t unpack it right away as I wasn’t sure how I was going to integrate it into my mess of computer equipment. I have been very happy with my Dell Latitude E6440 and decided my next system was going to be a desktop system. I have since upgraded it and it currently has 40GiB of RAM and a 1 TiB NVME SSD. I will eventually follow up on this.

Dell Latitude D630 Retirement

With the digit changes into the new year, so goes some changes for the layout of the tech in my home. My new HP EliteBook needs a place besides my lap or in a computer bag and my Dell Latitude D630 that has been beside my main machine has been getting less and less use due to the encumberment of the Nvidia GPU. This D630 has served me well since I purchased it new from Dell in 2007 and I am not going to just get rid of it. I will bring it out from time to time to keep Tumbleweed rolling on it.

openSUSE Corner

Tumbleweed Gets Newest KDE Frameworks for Plasma

All openSUSE Services in Provo database center now support IPv6

New openSUSE Step Project Looks to Build SUSE Linux Enterprise on More Architectures

Reducing the scope of software.opensuse.org

Tumbleweed Roundup

  • 20210212 moderate 84
    • This is a full rebuild based on glibc 2.33. For me I had some issues with this snapshot that required filing a bug report and some intervention on my part. It appeared that my issue wasn’t all that common.


Computer History Retrospective

This is my segment where I like to look back in time and see how the world of technology has advanced and how things have stayed the same. I find we often forget how far we have come and how good we have it while not always remember how we got here. Having some historical perspective on computers and technology can help to drive some appreciation for what we have today.

Computer Chronicles on Artificial Intelligence (1984)

The point of Artificial Intelligence is to duplicate not just human intelligence but to duplicate the end results. A then current application of AI was in the form of “Expert Systems”. These expert systems of the time would respond to user input much like the queries we give modern day search engines. At the time, these expert systems would require enormous computational power to dissect and process user input. Today, we can enjoy, without any cost or really much effort on our parts, the fruits of these efforts.

The early “Expert Systems” for “Microcomputers” were really quite rudimentary in respect that they would lead you to solutions. In its most simplistic form, this is essentially making accessible the knowledge to a wider audience.

As an aside, at the end of this video (27:00) from Computer Chronicles, there is a portion called “Random Access” and this software review is rather enjoyable about an game or application to help you make better bets with Black Jack.

What is particularly amusing to me is how the graphics are described as being “crisp, the table is green the cards realistic and the sound is good too”. I know, for the time, this is the case but that description just doesn’t hold up today. This is just food for thought, should you describe a bit of software or hardware.

Ken Huston's Professional Black Jack screen shot.

I must say, I love the early time of computer graphics, the innocence and the optimism. We were so happy with color and sound. I wish we would be so gracious today with open source applications. Perhaps being a little bit more grateful will lead to more smiles on a daily basis.

#openSUSE Tumbleweed revisión de la semana 8 de 2021

Tumbleweed es una distribución “Rolling Release” de actualización contínua. Aquí puedes estar al tanto de las últimas novedades.


openSUSE Tumbleweed es la versión “rolling release” o de actualización continua de la distribución de GNU/Linux openSUSE.

Hagamos un repaso a las novedades que han llegado hasta los repositorios estas semanas.

El anuncio original lo puedes leer en el blog de Dominique Leuenberger, publicado bajo licencia CC-by-sa, en este enlace:

Esta semana con un poco de ayuda se han podido publicar 6 nuevas snapshots (0218, 0219, 0220, 0221, 0222 y 0223) que han traido muchas actualizaciones a openSUSE Tumbleweed

Los cambios más notables son:

  • Transactional-Updates 3.1.4
  • GNOME 3.38.4
  • binutils 2.36
  • util-linux 2..36.2
  • libguestfs 1.44.0
  • PostgreSQL 13.2
  • Mozilla Firefox 85.0.2
  • Dracut 052

Y entre los cambios que se están preparando, se puede destacar:

  • NetworkManager 1.30
  • Mozilla Firefox 86.0
  • KDE Plasma 5.21.1
  • podman 3.0.1
  • Dracut 053
  • Linux kernel 5.11.2
  • openssl 1.1.1i
  • GCC 11 como compilador predeterminado

Si quieres estar a la última con software actualizado y probado utiliza openSUSE Tumbleweed la opción rolling release de la distribución de GNU/Linux openSUSE.

Mantente actualizado y ya sabes: Have a lot of fun!!

Enlaces de interés



Feb 27th, 2021

Día de los datos abiertos 2021, sábado 6 de marzo

Siguiendo la tendencia iniciada el 2020, evidentemente obligada por la pandemia mundial, os quiero invitar a asistir al Día de los datos abiertos 2021 que se celebrará en línea el próximo sábado 6 de marzo. Un evento que se me había pasado por alto pero que este año, por diversas razones aparece por primera vez en el blog… y espero que no sea la última.

Día de los datos abiertos 2021, sábado 6 de marzo

Día de los datos abiertos 2021, sábado 6 de marzo
Logo OpenData Day 2021

Para los que no lo sepan, entre los que me incluía yo en el 2020, el «Día de los Datos Abiertos» es una celebración anual de los datos abiertos alrededor del mundo.

Y es que los datos abiertos son mucho más importantes de lo que nos pueda parecer, según la Wikipedia, uno de lo estandartes de esta una filosofía y práctica que persigue que determinados tipos de datos estén disponibles de forma libre para todo el mundo, sin restricciones de derechos de autor, de patentes o de otros mecanismos de control.

Con esta se llega a la décima edición del evento, en la que grupos de todo el mundo crearán eventos locales que utilizarán datos abiertos en sus comunidades para crear aplicaciones, visualizaciones, liberar datos o publicar análisis.

Y es que la filosofía de este evento es promulgar la idea de que «todos los trabajos realizados son abiertos para usarse y re-usarse.», lo cual ayuda a compartir el conocimiento a todos los niveles.

En esta edición del Día de los Datos Abiertos 2021 se busca que la comunidad siga creciendo, y de esta forma se ha enfocado el evento en cuatro áreas clave, las cuales creemos que los datos abiertos pueden ayudar a resolver: Datos ambientales, Rastreo de flujos de dinero público, Mapeo abierto y Desarrollo equitativo.

Pero no penséis que este evento es pequeño, ya que este año se han organizado más de 150 eventos locales a lo largo y ancho del mundo, una muestra de la potencia de este evento.

Día de los datos abiertos 2021, sábado 6 de marzo

Así que busca tu evento, o eventos, y participa. Yo lo he hecho y lo haré, pero eso lo explicaré en otra entrada.

Más información: Open Data Day

openSUSE Tumbleweed – Review of the weeks 2021/08

Dear Tumbleweed users and hackers,

This week, we have released almost daily snapshots. It shows that I have received help in working on the Stagings. Richard has been very busy this week, working together with me on these areas. So, we managed to publish 6 snapshots (0218, 0219, 0220, 0221, 0222, and 0223).

The noteworthy changes therein were:

  • Transactional-Updates 3.1.4
  • GNOME 3.38.4
  • binutils 2.36
  • util-linux 2..36.2
  • libguestfs 1.44.0
  • PostgreSQL 13.2
  • Mozilla Firefox 85.0.2
  • Dracut 052

In the staging projects, we are preparing and testing these updates:

  • NetworkManager 1.30
  • Mozilla Firefox 86.0
  • KDE Plasma 5.21.1
  • podman 3.0.1
  • Dracut 053
  • Linux kernel 5.11.2
  • openssl 1.1.1i, based on centralized crypto-policies package
  • GCC 11 as default compiler

Feb 26th, 2021

Compact Shutdown – Plasmoides de KDE (172)

Suma y sigue. La lista de plasmoides para Plasma sigue aumentando con nuevas alternativas para personalizar y adaptar nuestro escritorio para nuestras necesidades. En esta ocasion os presento a Compact Shutdown un simple widget que nos permite añadir un menú para controlar la sesión personalizado en cualquier sitio de nuestro entorno de trabajo.

Compact Shutdown – Plasmoides de KDE (172)

Me encantan este tipo de plasmoides ya que confieren al sistema la flexibilidad necesaria para poder personalizar nuestro sistema hasta límites insospechados como hemos visto en vídeos como en el convertíamos nuestro Plasma en un Chrome OS, en un Windows o en un MacOS.

En concreto Compact Shutdown de X-Varlesh-X, un conocido creador de plasmoides de la Comunidad KDE que ha aparecido decenas de veces en el blog, que nos permite poner un pequeño lanzador con los comandos de salida,suspensión, hibernación, reinicio o apagado del sistema.

Compact Shutdown - Plasmoides de KDE (172)

Y como siempre digo, si os gusta el plasmoide podéis “pagarlo” de muchas formas en la nueva página de KDE Store, que estoy seguro que el desarrollador lo agradecerá: puntúale positivamente, hazle un comentario en la página o realiza una donación. Ayudar al desarrollo del Software Libre también se hace simplemente dando las gracias, ayuda mucho más de lo que os podéis imaginar, recordad la campaña I love Free Software Day 2017 de la Free Software Foundation donde se nos recordaba esta forma tan sencilla de colaborar con el gran proyecto del Software Libre y que en el blog dedicamos un artículo.

Más información: KDE Store

¿Qué son los plasmoides?

Para los no iniciados en el blog, quizás la palabra plasmoide le suene un poco rara pero no es mas que el nombre que reciben los widgets para el escritorio Plasma de KDE.

En otras palabras, los plasmoides no son más que pequeñas aplicaciones que puestas sobre el escritorio o sobre una de las barras de tareas del mismo aumentan las funcionalidades del mismo o simplemente lo decoran.