Skip to main content

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

Crazy complexity

Its crazy how complex PCs have become. ARMs are not exactly simple with the TrustZone and similar stuff, but.. this is crazy. If you thought you understand x86 architecture... this is likely to prove you wrong. There's now non-x86 cpu inside x86 that performs a lot of rather critical functions...
...and shows that SGX indeed is evil.
a silhouette of a person's head and shoulders, used as a default avatar

Microsoft sabotaging someone else's computers

My father got himself in a nice trap: he let his Lenovo notebook to update to Windows 10. Hard to blame him, as user interface was confusing on purpose.Now 2 out of 3 USB ports are non-functional (USB 2 port works USB 3 ports don't), and there's no way to fix that. And apparently, Microsoft knew about the problem. Congratulations, Microsoft...

Ouch and they are also sending people to jail for producing CDs neccessary to use licenses they already sold. Microsoft still is evil.
a silhouette of a person's head and shoulders, used as a default avatar

O2 attacking their own customers

Just because you are paying for internet service does not mean O2 will not try to replace web-pages with advertising. Ouch. Seems like everyone needs to use https, we need better network-neutrality laws, and probably also class-action lawsuits.
a silhouette of a person's head and shoulders, used as a default avatar

Dark design patterns

Got Jolla installed. Ok, it looks cool. But already some unnice things can be seen. You _need_ jolla account to install apps. You need to agree to nasty legaleese. You are asked for name and password, it looks like that's all, and then it wants to know real name, email address, birthday... Appstore looks cool... but does not list licenses for software being installed. Still better than Android. Miles away from Debian.
It also seems to require login separate from app store login to get the "really" interesting stuff. Unfortunately, I don't know how to get that one.
I'd quite like to get python/gtk to work on Jolla (or maybe Android). If someone knows how to do that, I'd like to know. But I guess running Maemo Leste is easier at the moment.
a silhouette of a person's head and shoulders, used as a default avatar

Motorola Droid 4 is now usable

23.4.2018, around 12:34... I realized how unix ttys are sabotaging my attempts to send SMS.. and solved it. So now I have Motorola Droid 4, running 4.17-rc1 kernel, with voice calls working, SMSes, data connection, GPS working and have some basic GUIs to control the stuff. WIFI works. Screen locks, and keyboard map still could be improved. Battery life will probably will not be great. But hey, its a start -- I have GNU/Linux working on a cellphone. More precisely Maemo Leste, based on Devuan, based on Debian. Sure, some kernel patches are still needed, and there's a lot more work to do in userland... Today, Microsoft sold out last Windows Mobile phones. I guess that's just a coincidence.

the avatar of Hans Petter Jansson

Introducing Chafa

Chafa logo

Here’s something I didn’t know: The DEC VT100 turns 40 in August. This factlet comes courtesy of Wikipedia, as I’m not quite old and wise enough to have made its acquaintance outside of a museum. None the less, the VT100 and its extended family of hard-working office furniture has always been with me in terms of the ECMA-48 standard, better known as ANSI X3.64 or simply (and these days, probably as accurately as any formal descriptor) “ANSI codes“, which it helped pioneer.

This pinnacle of 1970s UX is somehow still going strong, and recent developments like lots and lots of colors, ubiquitous Unicode support, good monospace fonts, etc. have opened up some interesting possibilities for creative abuse in a rich tradition that dates all the way back to manual typewriters, if not further. Previous entrants in this category are the venerable aalib and libcaca, and more recently there’s timg and others that use the U+2580 half-block symbol.

I wrote a small tool to further improve on this. It combines a range of Unicode symbols in an attempt to minimize the squared error of the output, and has plenty of bells and whistles besides. Check it out.

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 at

More fun with Freeipa and DNS: Funky records

After all the fun we had in part 1 of our FreeIPA + DNS series, we now come to a new chapter.

During the move of openSUSE to Let’s Encrypt we used the excellent tool from ssllabs to verify each server after we changed the certificate. One of our coworkers noted “Hey, why don’t you have a CAA record. It would give you an even better score”. CAA records allow the domain owner to specify which certificate authorities are allowed to create certificates for this domain. Which seems to be a nice benefit for little work. For a longer explanation see this blog post from Qualys.

the avatar of Federico Mena-Quintero

Madrid GNOME+Rust Hackfest, part 3 (conclusion)

The last code I wrote during the hackfest was the start of code generation for GObject interfaces. This is so that you can do

gobject_gen! {
    interface Foo {
        virtual fn frob(&self);
    }
}

and it will generate the appropriate FooIface like one would expect with the C versions of interfaces.

It turns out that this can share a lot of code from the existing code generator for classes: both classes and interfaces are "just virtual method tables", plus signals and properties, and classes can actually have per-instance fields and such. I started refactoring the code generator to allow this.

I also took a second look at how to present good error messages when the syn crate encounters a parse error. I need to sit down at home and experiment with this carefully.

Back home

I'm back home now, jetlagged but very happy that gnome-class is in a much more advanced a state than it was before the hackfest. I'm very thankful that practically everyone worked on it!

Also, thanks to Alberto and Natalia for hosting me at their apartment and showing me around Madrid, all while wrangling their adorable baby Mario. We had a lovely time on Saturday, and ate excellent food downtown.

Sponsored by the GNOME Foundation

Hosted by OpenShine

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

From novice to Community Manager

As of March 28th, 2018, my contract as Community Manager for LOPSA started. Indeed, of all the adventures I've had in openSUSE, this is the biggest yet. Many readers are probably wondering how my position in LOPSA can be considered an openSUSE adventure. In short, without openSUSE it almost certainly wouldn't have been possible.

The purpose of this article is twofold. First, as thanks to the openSUSE Community. And to invite the openSUSE Community to join me!

To join, sign up at https://lopsa.org/Join-or-Renew and apply the coupon-code 'OPENSUSE' at checkout. You can also email me directly at community@lopsa.org with any questions, comments, or suggestions. 

Thank you openSUSE Community!

I could go on at great length about the numerous valuable things I learned over the years of my participation in the openSUSE project. To do so, however, is beyond the scope of this article and would lead it to be entirely too verbose. That story is for a later time.

The openSUSE Community is full of so many wonderful people, full of energy, passion, skill, and good-will. Volunteering with openSUSE has afforded me some of my best and most memorable experiences in my adult life. It's been a privilege to work with such exceptional people, and my life has certainly been enriched by it.

To give full credits would be a long crawl, but a couple pivotal figures I feel must be mentioned. 
  • Drew Adams is a long-time friend whom I first met in meat-space at a friend's Birthday. He got me involved with the openSUSE Project, showing me I didn't need to be a programmer to contribute. As a current LOPSA board member, he alerted me to the Community Manager position, which thankfully due to the involvement he engaged me in so many years ago I qualified for. 
  • Bryen Yunashko was a member of the openSUSE board when I began participating in the Project. He encouraged me to represent openSUSE at the 2011 Novell Brainshare Expo in Salt Lake City. He also helped me to arrange the means to get there. At the time I remember arguing for my own lack of experience and knowledge against this. His vehement encouragement pushed me to go and showed me I had not been giving myself enough credit. 

Join me and the LOPSA Community!

LOPSA is a great community and organization already. My appointment as their first Community Manager signals an upshift to more dynamic expansion. Besides expanding our Membership and Chapters, we are working on deals and alliances to afford more benefits to our Members. Currently, I'm negotiating a number of initiatives with the Linux Professionals Institute (LPI). In conjunction with our newly revamped and relaunched Mentorship Program, we are angling to provide learning opportunities to advance our Member's careers. 

I want to invite you, my friends and peers to join me at LOPSA. Now is a very exciting time to get involved with huge developments on the horizon as we move forward to becoming a much more dynamic organization. I hope that we can inject a healthy dose of the openSUSE spirit into LOPSA and have a lot of fun

To join, sign up at https://lopsa.org/Join-or-Renew and apply the coupon-code 'OPENSUSE' at checkout. You can also email me directly at community@lopsa.org with any questions, comments, or suggestions. 

the avatar of Federico Mena-Quintero

Madrid GNOME+Rust Hackfest, part 2

Hacking on gnome-class continues apace!

Philippe updated our dependencies.

Alberto made the syntax for per-instance private structs more ergonomic, and then made that code nice and compact.

Martin improved our conversion from CamelCase to snake_case for code generation.

Daniel added initial support for GObject properties. This is not finished yet, but the initial parser and code generation is done.

Guillaume turned gir, the binding generator in gtk-rs, from a binary into a library crate. This will let us have all the GObject Introspection information for parent classes at compilation time.

Antoni has been working on a tricky problem. GTK+ structs that have bitfields do not get reconstructed correctly from the GObject Introspection information — Rust does not handle C bitfields yet. This has two implications. First, we lose some of the original struct fields in the generated bindings. Second, the sizes of the generated structs are not the same as the original C structs, so g_type_register_static() complains that one is trying to register an invalid class.

Yesterday we got as far as reading the amd64 and [ARM][arm] ABI manuals to see what the hell C compilers are supposed to do for laying out structs with bitfields. Most likely, we will have a temporary fix in gir's code generator so that it generates structs with the same layout as the C ones, with padding in place of the space for bitfields. Later we can remove this when rustc gets support for C bitfields.

I've been working on support for GObject interfaces. The basic parsing is done; I'm about to refactor the code generation so I can reuse the parts that fill vtables from classes.

Yesterday we went to the Madrid Rust Meetup, a regular meeting of rustaceans here. Martin talked about WebRender; I talked about refactoring C to port it to Rust, and then Alex talked about Rust's plans for 2018. Fun times.

Sponsored by the GNOME Foundation

Hosted by OpenShine

[arm]: