Language Selection

English French German Italian Portuguese Spanish

GNOME: Night Light Mode, Igalia and GNOME Calculator

Filed under
GNOME
  • Daniel Pocock: Lockdown: surviving small spaces

    With all conferences cancelled this year, one of the things I decided to do was trying an online course. After the first week, I was having trouble sleeping at night, with pain at the back of my eyes. I was almost going to give up. I made various adjustments to dramatically reduce lighting. I already had my monitor permanently in the mode for Low Blue Light. I combined this with the GNOME desktop's Night Light mode and configured smart bulbs in my home to run dimmer and redder. After these changes, I feel the problem was almost immediately resolved.

    [...]

    With record numbers of people being infected, dying or simply losing jobs, the idea of throwing a party may not be the most sensitive thing to do. Nonetheless, if you do want to recreate the feeling of going out to a bar or nightclub, it has never been easier or cheaper to do so with various technologies you can buy online.

    Once again, the key theme is lighting. Smart bulbs can be configured for gradual changes throughout the work day. Some bulbs can be configured for more advanced effects coupled with music. One of my lights is a LED panel that can simulate a disco, candlelight, thunderstorm or even a police car to make the night complete. This means it can be anything from a night club in Berlin to a local pub in Ireland.

    For sound, seeking a larger diameter speaker sometimes makes a dramatic impact. A pair of oversized vintage speakers from an op-shop may produce better sound than the built-in speakers of most modern laptops, monitors and flat screen TVs.

    Once you've conquered light and sound, it is time for taste. An Air Fryer can make chips and there are plenty of recipes suitable for any level of cooking skills. Some of the best models are not available in every store and most of them are a lot cheaper online anyway. While they sound like a jet engine, there is no evidence that Air Fryers have been used in the astronaut diet.

  • Claudio Saavedra's ChangeLog - October 2020

    In this line of work, we all stumble at least once upon a problem that turns out to be extremely elusive and very tricky to narrow down and solve. If we're lucky, we might have everything at our disposal to diagnose the problem but sometimes that's not the case – and in embedded development it's often not the case. Add to the mix proprietary drivers, lack of debugging symbols, a bug that's very hard to reproduce under a controlled environment, and weeks in partial confinement due to a pandemic and what you have is better described as a very long lucid nightmare. Thankfully, even the worst of nightmares end when morning comes, even if sometimes morning might be several days away. And when the fix to the problem is in an inimaginable place, the story is definitely one worth telling.

    [...]

    It all started with one of Igalia's customers deploying a WPE WebKit-based browser in their embedded devices. Their CI infrastructure had detected a problem caused when the browser was tasked with creating a new webview (in layman terms, you can imagine that to be the same as opening a new tab in your browser). Occasionally, this view would never load, causing ongoing tests to fail. For some reason, the test failure had a reproducibility of ~75% in the CI environment, but during manual testing it would occur with less than a 1% of probability. For reasons that are beyond the scope of this post, the CI infrastructure was not reachable in a way that would allow to have access to running processes in order to diagnose the problem more easily. So with only logs at hand and less than a 1/100 chances of reproducing the bug myself, I set to debug this problem locally.

    [...]

    Something that is worth mentioning before we move on is how the WPEBackend-fdo Wayland display integrates with the system. This display is a nested display, with each web view a client, while it is itself a client of the system's Wayland display. This can be a bit confusing if you're not very familiar with how Wayland works, but fortunately there is good documentation about Wayland elsewhere.

    The way that the Wayland display in the UI process of a WPEWebKit browser is integrated with the rest of the program, when it uses WPEBackend-fdo, is through the GLib main event loop. Wayland itself has an event loop implementation for servers, but for a GLib-powered application it can be useful to use GLib's and integrate Wayland's event processing with the different stages of the GLib main loop. That is precisely how WPEBackend-fdo is handling its clients' events. As discussed earlier, when a new client is created a pair of connected sockets are created and one end is given to Wayland to control communication with the client. GSourceFunc functions are used to integrate Wayland with the application main loop. In these functions, we make sure that whenever there are pending messages to be sent to clients, those are sent, and whenever any of the client sockets has pending data to be read, Wayland reads from them, and to dispatch the events that might be necessary in response to the incoming data. And here is where things start getting really strange, because after doing a bit of fprintf()-powered debugging inside the Wayland-GSourceFuncs functions, it became clear that the Wayland events from the clients were never dispatched, because the dispatch() GSourceFunc was not being called, as if there was nothing coming from any Wayland client. But how is that possible, if we already know that the web process client is actually trying to get the Wayland registry?

    To move forward, one needs to understand how the GLib main loop works, in particular, with Unix file descriptor sources. A very brief summary of this is that, during an iteration of the main loop, GLib will poll file descriptors to see if there are any interesting events to be reported back to their respective sources, in which case the sources will decide whether to trigger the dispatch() phase. A simple source might decide in its dispatch() method to directly read or write from/to the file descriptor; a Wayland display source (as in our case), will call wl_event_loop_dispatch() to do this for us. However, if the source doesn't find any interesting events, or if the source decides that it doesn't want to handle them, the dispatch() invocation will not happen. More on the GLib main event loop in its API documentation.

  • GSoD Weekly Summary 6

    Since last week, I have been working on the GNOME calculator app and I spent most of my time writing the docs for the different calculator modes.

More in Tux Machines

How can I Identify who SSH into my Linux System?

Identifying who has logged into your system in Linux is way easier than the Windows Operating System. In Linux System whenever someone tries to log in using SSH is recorded by the log file, the log file is located in /var/log/auth.log. location can be different in other distribution. If you not found the auth.log file in your system try to execute the below command to view the log from systemctl. journalctl -u sshd |tail -100
  • -u (Show the user journal for the current)
  • sshd (SSH user created by system by default)
  • tail -100 (Print top 100 result from log file)
journalctl of sshd
User logged in using SSH
Read more

Security Leftovers

  • Sophos tight-lipped about data breach, no lessons learnt from WannaCry bungle

    It's surprising that global cyber security firm Sophos has hidden from public view the fact that it has suffered a security breach which is said to have taken place during the week.

  •                
  • Manchester United being held to RANSOM by cyberhackers who STILL have control over their computers [iophk: Windows TCO]
                     
                       

    The embarrassing lapse of security at one of the world’s biggest sports clubs is believed to be far more serious than first feared.

                       

    United’s network has been infected by ransomware – a computer virus - and they now face the option of having to pay up or risk seeing highly sensitive information about the club and its stars leaked into the public domain.

                       

    It’s unclear who the criminals are or how much they want, but the NCSC revealed that in the last year an EFL club were hit with a £5m demand and the biggest single loss to a sports organisation from cyber crime was £4m.

    United could also face fines of £9m, £18m or two per cent of their total annual worldwide turnover from the independent government body Information Commissioner’s Office if the attack is found to have breached their fans’ data protection – although the club last night reassured supporters that is not the case.

  •                
  • The emerging cybersecurity headaches awaiting Biden
                     
                       

    The incoming administration will face a slew of cybersecurity-related challenges, as Joe Biden takes office under a very different environment than existed when he was last in the White House as vice president.

                       

    The big picture: President-elect Biden's top cybersecurity and national security advisers will have to wrestle with the ascendancy of new adversaries and cyberpowers, as well as figure out whether to continue the more aggressive stance the Trump administration has taken in cyberspace.

                       

    Here are details on some key challenges confronting Biden: [...]

  • Someone attacked our company

    At the start of November, someone decided that they would try to destroy our company. They subjected us to multiple, malicious, targeted DDoS (Distributed Denial-of-Service) attacks over two weeks. They intended to damage the integrity of our customers’ data and take our service offline. This attack wasn’t random and it wasn’t just your typical spam. This attack was targeted at Fathom and was intended to put us out of business.

today's howtos

  • Mullvad and TailScale coexisting (or “Hello Nftables!”)

    The fix was simple eventually – add two rules to the rules created by Mullvad, allowing access to & from the tailscale interface. However, since I took a look at Nftables, and I am sure I’ll forget it in a few days, I wanted to jot down the commands here for future reference.

  • The Origin of the Shell
    CTSS was developed during 1963 and 64. I was at MIT on the computer center staff at that time. After having written dozens of commands for CTSS, I reached the stage where I felt that commands should be usable as building blocks for writing more commands, just like subroutine libraries. Hence, I wrote "RUNCOM", a sort of shell driving the execution of command scripts, with argument substitution. The tool became instantly most popular, as it became possible to go home in the evening while leaving behind long runcoms executing overnight. It was quite neat for boring and repetitive tasks such as renaming, moving, updating, compiling, etc. whole directories of files for system and application maintenance and monitoring.
  • Self-modifying code in production

    YouTube famously uses a rolling cipher and effective downloader tools need to be able to decipher it to produce useful links to video files. The cipher changes every few days so downloader tools avoid the need for daily manual updates by automatically downloading the JavaScript implementation of the cipher from YouTube and caching the result.

    I use three downloader tools that have some automated mechanism for dealing with cipher updates.

  • The better way to make an Ubuntu 20.04 ISO that will boot on UEFI systems

    First, I've learned that you don't want to extract ISO images with 7z, however tempting and easy it seems. 7z has at least two issues with ISO images; it will quietly add the El Torito boot images to the extracted tree, in a new subdirectory called '[BOOT]', and it doesn't extract symlinks (and probably not other Rock Ridge attributes). The Ubuntu 20.04.1 amd64 live server image has some symlinks, although their presence isn't essential.

    The two reliable ways I know of to extract the 20.04.1 ISO image are with bsdtar (part of the libarchive-tools package in Ubuntu) and with xorriso itself. Bsdtar is easier to use but you probably don't have it installed, while you need xorriso anyway and might as well use it for this once you know how. So to unpack the ISO into our scratch tree, you want: [...]

  • How to Add Local User to Sudo Group in Debian Linux

    In Linux/Unix systems, sudo is a program that grants a regular user elevated privileges to execute administrator-level tasks. Once a regular user is added to the sudo group, they are able to carry out tasks that a reserve for the root user. Such include installing and removing software packages, starting and stopping services, updating and upgrading the system to mention a few.

  • How to Install PHP 8 on Debian - Cloudbooklet

    How to Install PHP 8 on Debian. This guide let you learn how install the latest PHP version 8 on your Debian system or your Debian server on any VPS or any Cloud or any Dedicated hosting and configure it with Apache and Nginx. The latest PHP 8 version is officially released on November 26th, 2020. It comes with a number of new features and a few incompatibilities that you should be aware of before upgrading from the previous version. This installation is tested on Google Cloud Platform with a Compute Compute Engine VM Instance. So this set up is guaranteed to work on all Linux based servers.

  • Configuring Dwm's Panel Is Easy With Dwmblocks - YouTube

    Dwm has a builtin panel that can be a bit tough to configure. Getting it to display the information that you want is not as simple as it should be. Thankfully, there is a program called dwmblocks that makes this a lot easier!

This week in KDE: Bugfixes and bug triaging

This week we worked very hard not only fixing bugs in our software, but also on triaging bugs in our venerable bug tracker, bugs.kde.org. Thanks to the coordinating efforts of Justin Zobel, the KDE BugSquad has been working harder than ever to separate the wheat from the chaff so developers can focus on what matters, rather than wading through a sea of obsolete reports and bugs that have been fixed ages ago. If this sounds like fun, please feel free to get involved! Read more