I Use This!
Activity Not Available

News

Analyzed 7 months ago. based on code collected over 1 year ago.
Posted about 15 hours ago
TL;DR: You can now install GNOME Boxes directly from Flathub! INSTALL Why are we so excited about this? It might seem at first sight that Boxes is a simple application, and that is partially true if you ignore the deep stack under the hood ... [More] responsible for making virtualization simple. The various modules (some of them gigantic such as qemu, libvirt, freerdp…) need to be setup in perfect harmony for us to boot a whole operating system with its essential functionalities. The GNU/Linux distribution model has historically delegated to downstream packagers the responsibility of integrating dependencies in order to provide an application to their end users. This model has worked for some for many decades, but it has fundamental flaws that “trickle down” making the upstream developers’ life miserable. Don’t get me wrong, bugs are mostly our fault, but a significant amount of bug reports I receive consist of issues I cannot reproduce in my development environment. A combinatorial explosion of package versions, build flags, and/or pivotal architecture differences between distros. Therefore this is the first and foremost benefit we get from shipping Boxes as a Flatpak. Another difficulty we face during our development cycle is having the ability of having designers, translators, and marketing folk being able to run our latest snapshot or a specific work-in-progress tree. With the GitLab continuous integration combined with Flatpak we can spin bundles at any moment, and they can be installed within a couple of clicks, alongside other versions of the same app! This is The Future! Having our apps widely available is another concern we have. Many distributions which stick to the package model also support Flatpak. Besides that, there are new players which are essentially different. Container-based desktop operating systems are a thing now too. Software is never done… There are indeed downsides of running Boxes in a Flatpak in comparison with a well crafted build of dependencies bottom-up. But these are issues that can be solved and are going to be prioritized in our TODO list. Running Boxes in a Flatpak TODAY you won’t have yet: A bridged network between host and guests. The ability of installing an image from a physical device. Access to your system’s libvirtd (we run our own libvirtd in the sandbox). Shared folders. USB redirection. $YOUR_ISSUE_HERE The list above is far from complete, and I would like to count on you to experiment with the Flatpak and report issues you might encounter. Use the label “flatpak” to collect points which you can later exchange for beers or other beverages of your choice. [Less]
Posted 1 day ago
Scope of This Notice This Privacy Statement is intended to describe this web site’s privacy practices and provide information about the choices you have regarding the ways in which information collected by this web site is used and disclosed. ... [More] Commitment to Privacy At the piware.de web site, your privacy is important to me. To better protect your privacy, I have provided this Statement explaining my information practices and the choices you can make about the way your personal information is collected, used and disclosed. This website uses Secure Socket Layer (SSL) technology, which encrypts data to and from my website. Collected Information This Privacy Statement applies to all information collected by or submitted to piware.de, including personal data. “Personal data” is data that can be used to identify an individual. This web server logs your interaction with the site in something called a log file. Standard web server log files contain basic information like what time what pages were viewed, the browser name, and the IP address of the visitor. I use this information to analyze trends, administer the site, and gather broad demographic information for aggregate use in my server’s statistical reports. I make no effort to identify IP addresses with individual visitors. It is my policy to delete log files after a one year period or sooner. Sharing Your Personal Data Unless you consent, piware.de will never process or share the personal data you provide to me except as described below. piware.de may disclose your personal data to third parties under any of the following circumstances: As required to provide service, and for e-mail housing (as a consequence of uses already described in this Privacy Statement). It is in the piware.de page’s legitimate interest to provide all visitors an accurate record of data and content provided by the piware.de page’s services, and to maintain the integrity of that data and content for historical, scientific, and research purposes. This data and content may include but is not limited to email, comments, photos, and other downloadable artifacts. As required by law (such as responding to a valid subpoena, warrant, audit, or agency action, or to prevent fraud). For research activities, including the production of statistical reports (such aggregated information is used to describe my services and is not used to contact the subjects of the report). Public Forums Reminder This site contains links to other sites. piware.de does not control the information collection of sites that can be reached through links from piware.de. If you have questions about the data collection procedures of linked sites, please contact these sites directly. Your Rights and Choices in the EEA Where the EU General Data Protection Regulation 2016 / 679 (“GDPR”) applies to the processing of your personal data, especially when you access the website from a country in the European Economic Area (“EEA”), you have the following rights, subject to some limitations, against piware.de: The right to access your personal data; The right to rectify the personal data I hold about you; The right to erase your personal data; The right to restrict my use of your personal data; The right to object to my use of your personal data; The right to receive your personal data in a usable electronic format and transmit it to a third party (also known as the right of data portability); and The right to lodge a complaint with your local data protection authority. If you would like to exercise any of these rights, you may do so by contacting me via email. Please understand, however, the rights enumerated above are not absolute in all cases. Where the GDPR applies, you also have the right to withdraw any consent you have given to uses of your personal data. If you wish to withdraw consent that you have previously provided to piware.de, please contact me. However, the withdrawal of consent will not affect the lawfulness of processing based on consent before its withdrawal. How to Access, Modify or Update Your Information Contact me if you wish to remove your personal data from the piware.de website. Other locations outside of piware.de where you may have used your personal data as an identifier (e. g. Google+ posts, GitHub comments, list postings in email list archives) will not be altered. Changes to this Privacy Statement piware.de reserves the right to change this Privacy Statement from time to time. If I do make changes, the revised Privacy Statement will be posted on the main project’s website. This Privacy Statement was last amended on May 24, 2018. [Less]
Posted 1 day ago
Thunderbolt allows for peer-to-peer network connections by connecting two computers directly via a thunderbolt cable. Mika from Intel added support for this to the 4.15 kernel. Recently, Thomas Haller from NetworkManager and I worked together to ... [More] figure out what needs to be done in userspace to make it work. As it turns out, it was not that hard and the pull-request was merged swiftly. GNOME Settings' Network Panel So now if you connect your GNU/Linux box to another machine, NetworkManager will configure the connection to be a Link-Local one. ping Linux from macOS I have successfully tested Fedora to Fedora, Fedora to macOS and Fedora to Windows 10. The other operating systems also use a Link-Local address by default. Copying from Linux to Windows The technical details When another host is connected via thunderbolt, we get a new device in sysfs that resembles a normal thunderbolt device but is of DEVTYPE thunderbolt_xdomain. Like a normal thunderbolt device, it has a unique_id and a device_name, but is missing the authorized and key attributes. A new udev rule in NetworkManager was added to load the thunderbolt-net kernel module. As a result, we get a new network device (thunderbolt0). nmcli showing the thunderbolt networking device Another udev rule will set a new udev property (NM_AUTO_DEFAULT_LINK_LOCAL_ONLY) to all network devices where the driver is thunderbolt-net to instruct NetworkManager to use the Link-Local configuration on these interfaces. The dev snapshot release 1.11.3-dev has the thunderbolt networking support. Grab it, build it, and start playing around with it! Feel free to post your record transfer speeds in the comments . [Less]
Posted 1 day ago
Can you spot what that is?
Posted 2 days ago
For the past couple of weeks, Builder from git-master has come with a new gnome-builder-clang subprocess. Instead of including libclang in the UI process, we now proxy all of that work to the subprocess. This should have very positive effect on ... [More] memory usage within the UI process. It will also simplify the process of using valgrind/ASAN and obtaining useful results. In the future, we’ll teach the subprocess supervisor to recycle subprocesses if they consume too much memory. That is rather important because compilers wreak havoc on the memory allocator. However, it presents a series of challenges too. Once you move all of that stuff out of process you need to find an efficient way to communicate between processes. The design that I came up with is plain GVariant messages delivered over a stdin/stdout pipe to the subprocess. This is very similar to the Language Server Protocol but lets us cheat in an important way. We sometimes need to pass large messages between processes including changes to unsaved buffers or completion results. Clang prefers to do client-side filtering of completion results so the list often includes some 25,000+ results. Not exactly the type of thing you want to parse into lots of tiny json objects and strings. By using GVariant as our message format we ensure that we only have a single memory allocation for the entire result set (and can use C strings embedded in the variant too!). By altering some of our APIs to use interfaces like GListModel we end up more lazy in terms of object creation, use less memory, and fragment significantly less. One area this will be changing in the near future is our new completion engine. It is based on what we learned about other async APIs in Builder along with using GListModel for efficiency. One thing that is not well known is that g_variant_get_child_value() is O(1) due to how arrays are laid out in GVariant. This couples well with g_list_model_get_item(). This has been a big step forward, but there is more to do. [Less]
Posted 3 days ago
Thanks to the work of Christoph Reiter, GLib has had continuous integration builds on Windows (using MinGW32/MSYS2) for a week or two now. Furthermore, he’s added code coverage support, so we can easily see how our code coverage is changing over time. Thanks Christoph!
Posted 3 days ago
tl;dr: Use gss_service_hold() and gss_service_release() from libgsystemservice. Automatically shutting down daemons when not in use is in vogue, and a good way of saving resources quite easily (if the service’s startup/shutdown costs are low). ... [More] libgsystemservice can do this for you automatically, if your code is based on GssService, or if you want to port over to it (which should be fairly straightforward for simple services). It supports inactivity timeouts by default; just call gss_service_hold() when you start doing some activity, and gss_service_release() when you stop. (Also, look, it’s neat that you can generate documentation and automatically publish it from your master branch using GitLab CI!) [Less]
Posted 3 days ago
Mail chew, code reading, mgmt call, built ESC stats. Visited West Suffolk Urology for some fun camera action. Home. Call with Jona & Eloy. Tried to mend Galaxy S4 burning up its motherboard on start - some internal short in a chip ... [More] ? froze the electronics and manage to get it to an unlock-screen before thermal cut-out. Downer - even cooks itself in the recovery screen; hard to debug. Pleased to get OpenShot working nicely - despite my generic horrors at AppImages: no security/signing and encouraging people to download & execute random stuff (cf. horrors of Windows virii) - it worked well. [Less]
Posted 4 days ago
I am incredibly happy because of three big things that are going on in librsvg right now: Paolo Borelli finished porting all the CSS properties to Rust. What was once a gigantic RsvgState struct in C is totally gone, along with all the janky ... [More] C code to parse individual properties. The process of porting RsvgState to Rust has been going on since about two months ago, and has involved many multi-commit merge requests and refactorings. This is a tremendous amount of really good work! The result is all in Rust now in a State struct, which is opaque from C's viewpoint. The only places in C that still require accessors to the State are in the filter effects code. Which brings me to... Ivan Molodetskikh, my Summer of Code student, submitted his first merge request and it's merged to master now. This ports the bookkeeping infrastructure for SVG filters to Rust, and also the feOffset filter is ported now. Right now the code doesn't do anything fancy to iterate over the pixels of Cairo image surfaces; that will come later. I am very happy that filters, which were a huge barrier, are now starting to get chipped away into nicer code. I have started to move librsvg's old representation of CSS properties into something that can really represent properties that are not specified, or explicitly set to inherit from an SVG element's parent, or set to a normal value. Librsvg never had a representation of property values that actually matched the SVG/CSS specs; it just knew whether a property was specified or not for an element. This worked fine for properties which the spec mandates that they should inherit automatically, but those that don't, were handled through special hacks. The new code makes this a lot cleaner. It should also make it easier to copy Servo's idioms for property inheritance. [Less]
Posted 4 days ago
Mail chew; attemped again to use the ICO's failing web registration process. Calc code & patch review. Status report. Code reading with Marco on a calc validation feature. Prodded at parallel XML parsing fun.