Skip to content

Wednesday, 28 July 2021

KDE Dev-Vlog 2: The Eye of the Beholder

This video continues right where the prior one left off: Improving the user interface of Gwenview, the default image viewer of KDE.

Different than the first video, this one is slightly thrilling at times. It also has more of a focus on showing the work processes instead of mostly presenting the results and thoughts behind it.

Have fun!

This is a German video with hand-crafted English subtitles.

Monday, 26 July 2021

Setup on Windows

setting up mingw on windows is PITA, at first since i am not used to backslash for filepaths, it load the gdb printers, i then realised that it does not come with python enabled. Downloaded a new one it does not come with python3 instead it is python 2.7.

I could not find any mingw that is built with python3 on windows, if you do send me a link here.

New Printers

  • QFile

    this private class has the following structure

    type = class QFilePrivate : public QFileDevicePrivate {
    protected:
    QString fileName;
    
    QFilePrivate(void);
    

    it inherits from a QFiledeviceprivate, but the size of the qfiledeviceprivate is not consistent across operating system, architectures and qt5 versions.I got the list of offset from the qtcreator types this problem exists for also qprocess (not fully implemented as of now) and for others as i may not be able to get it size for all operating systems, architectures and qt5 versions.

    relevant commit

  • QDBusMessagePrinter

  • QUUidPrinter from here

Fixes and Tests

  • Added QByteArrayPrinterTest
  • Fix QFileInfoPrinter causing segfaults when calling a method that does not exist commit
  • The tests only runs when CMake builds successfully

Here is a link to the repo

Hi reader! It’s been some time since I have posted a blog on my GSoC project. I am writing this blog to keep you updated with the development of Krita. To avoid duplicating code I have gone through relevant part of existing code in Krita (again). I must say it always amazes me as the first day as I explore through the code. Let’s talk a bit about ‘copying layers to clipboard’.

Before this project, Krita can copy a layer’s paint data over a selected region which can be pasted on other layers. Now a duplicate layer of all selected layers are created with the paint data of only the selected region. So I have first created an exact duplicate of all selected layers. Then the paint data of these new layers are trimmed to selected region only. Then these layers are copied to the clipboard in the same order of their original layers.

In case of a vector layer, a new paint layer with the projection of the vector layer is created and trimmed as described above before saving to the clipboard. For Copy Merge operation, a new layer with entire projection of the image over the selected area is saved. Now that the layers are successfully entered the clipboard, it’s time to retrieve out of it.

Meanwhile first evaluations came right through and I have succesfully passed the evaluation. Thanks to my mentors and all the core developers of Krita. In addition to that I have written documentation for a feature that I have worked on before GSoC (rotation of ellipse and rectangle tools). You can find it here: MR 234

Coming back to GSoC, there are various paste operations such as, directly paste all layers in the current image, create a new image and paste over it, paste on active layer, paste at current position. All these paste operations have a paste factory of their own. In the background, I have created a method to create a paint device that satisfy the needs of these factories so that all these features work seamlessly with the new design of clipboard data.

Now all of my work must go through a few cycles with mentor reviews and modifications to make the features work better and to have the code a meaningful flow. You can find my work over here: MR 888

Thank you for reading.

Stay safe and keep building!

mobile upload dialogue

Tok now has TWO new completely revamped upload dialogues: one for desktop, and one for mobile. Despite how much of the app is spent using stuff that isn't the upload dialogues, the upload dialogues took a LOT of time and work to get implemented correctly.

The mobile dialogue makes it convenient to browse through your most recent photos, videos, music, and files to share them with your friends.

video upload dialogue on mobile

music upload dialogue on mobile

files upload dialogue on mobile

On desktop, the upload dialogue now offers a preview of your file, and for images, the option to compress it.

photo upload on desktop

video upload on desktop

music upload on desktop

file upload on desktop

Sending State

send state

The sending state of outgoing messages is now displayed with a little icon by the timestamp.

Adjusted Chat List Look

adjusted chat list look

The look of the chat list has been slightly adjusted, to make it look more like other KDE apps. More information is shown, such as the sending status of outgoing messages and the timestamp of the latest message.

Improved Pasting

Tok now has improved pasting capabilities, able to paste from apps that put images on the clipboard directly like Firefox and Spectacle now.

Obtaining Tok

Tok can be built from source from https://invent.kde.org/network/tok.

There's a Telegram room for Tok available at https://t.me/kdetok, where you can come on and chat about anything Tok related, such as asking questions on using or building Tok.

Contributing

Interested in contributing? Come on by the dev chat and say hello!

Tags: #libre #tok

Friday, 23 July 2021

Let’s go for my web review for the week 2021-29.


A Facebook engineer abused access to user data to track down a woman who had left their hotel room after they fought on vacation, new book says

Tags: tech, facebook

This company is just an enabling environment for toxic behaviors… it’s so clear each time some information about how they work leaks out.

https://www.businessinsider.com/facebook-fired-dozens-abusing-access-user-data-an-ugly-truth-2021-7


Revealed: leak uncovers global abuse of cyber-surveillance weapon | Surveillance | The Guardian

Tags: surveillance, dystopia

Here we go for another surveillance scandal…

https://www.theguardian.com/world/2021/jul/18/revealed-leak-uncovers-global-abuse-of-cyber-surveillance-weapon-nso-group-pegasus


Germany’s national healthcare system adopts Matrix! | Matrix.org

Tags: tech, matrix

This is excellent news. I like to see more adoption of Matrix. We’ll finally find out how it scales in practice. ;-)

https://matrix.org/blog/2021/07/21/germanys-national-healthcare-system-adopts-matrix


Framework | Framework Laptop pre-orders are now open

Tags: tech, hardware, repair, laptop

Now that looks like a very interesting modular laptop. I’d be interested to test it and would love to see some KDE stuff installed on it by default. ;-)

https://frame.work/


What’s delegation? - Jacob Kaplan-Moss

Tags: management, delegation

Interesting definition of delegation

https://jacobian.org/2021/jul/19/whats-delegation/


“Give Away Your Toys” - Jacob Kaplan-Moss

Tags: management, delegation

And a good approach to pick what to delegate.

https://jacobian.org/2021/jul/19/give-away-your-toys/


Make Failure A (Safe) Option - Jacob Kaplan-Moss

Tags: management, delegation

Good set of advice on how to handle and plan for failure when delegating.

https://jacobian.org/2021/jul/20/make-failure-safe/


Delegate Outcomes, Not Methods - Jacob Kaplan-Moss

Tags: management, delegation

Again, very good (and short) advice about delegation.

https://jacobian.org/2021/jul/21/delegate-outcomes/


Planning & estimating large-scale software projects

Tags: tech, project-management, estimates

This is a sane approach and a good list of steps for estimating at large scale.

https://tomrussell.co.uk/writing/2021/07/19/estimating-large-scale-software-projects.html


The epistemology of software quality – Increment: Teams

Tags: tech, management, engineering, quality

Very interesting exploration on software engineering “facts” and what we can really do to increase quality. Unsurprisingly caring for the people seems to be the top factor.

https://increment.com/teams/the-epistemology-of-software-quality/


Detached window memory leaks

Tags: tech, frontend, memory, garbage-collector

Interesting exploration of an easy to introduce memory leak in frontend code.

https://web.dev/detached-window-memory-leaks/


oss-security - CVE-2021-33909: size_t-to-int vulnerability in Linux’s filesystem layer

Tags: tech, security, linux

You gotta love narrowing… It regularly ends up instrumental in vulnerabitilies.

https://www.openwall.com/lists/oss-security/2021/07/20/1


Smart Pointers in Rust: What, why and how?

Tags: tech, rust, programming

Nice comprehensive list of the smart pointer types in Rust.

https://dev.to/rogertorres/smart-pointers-in-rust-what-why-and-how-oma


The Tyranny of Spreadsheets | Tim Harford

Tags: tech, history, spreadsheets, quality, knowledge, data, data-science, health

It’s a very nice paper on spreadsheets and how we use them. It got enough history in it to make me tick (goes back all the way to the 1300s!). Also it’s well balanced, it’s not just about blindly blaming tools but looks at their shortcomings but also how we often use the wrong tool for the task… and then end up managing data and knowledge really badly.

https://timharford.com/2021/07/the-tyranny-of-spreadsheets/


Focusing on Blue - 10 Projects

Tags: optics, surprising, physics

Fascinating exploration of our perception of the blue color. Bottom line: our eyes aren’t great cameras at all and the brain compensate quite a lot. This together plays against our perception of blue.

https://calebkruse.com/10-projects/seeing-blue/



Bye for now!

Sunday, 18 July 2021

https://phabricator.kde.org/source/latte-dock/


Getting closer to v0.10 stable release...
 
Let's welcome Latte Dock v0.9.98  the Second Beta of  v0.10.x branch!
 
A new beta was needed because some core parts were updated such as Last Active Window implementation (L.A.W.) . LAW is responsible to track windows per panel/dock level and provide these information to latte centric applets such as appmenu, title, buttons etc. Through LAW, Latte is possible to provide information for windows on inactive VDs/Activities/Screens. By reimplementing some of its parts the multi-screen users that use appmenus/titles/buttons applets in different screens should now get one of the best experiences. You can check how this fix was tracked down from: https://github.com/psifidotos/applet-window-appmenu/issues/172
 
 

Go get beta from, download.kde.org*
-----
* archive has been signed with gpg key: 325E 97C3 2E60 1F5D 4EAD CF3A 5599 9050 A2D9 110E


Changes from First to Second Beta

  • update Last Active Window implementation (L.A.W.)
  • latte sidebars  are ignored from plasma notifications
  • latte tasks, activation through mouse scrolling now works again
  • new option in Latte Preferences window to disable broadcast of screen available geometry to Plasma
  • fix icon typo for running layouts and primary screen
  • fix layout for debug window "-d --with-window"
  • add cmd line option to "--add-dock"  from available dock/panel templates

 

Highlights

  • multiple docks and panels on the same screen edge
  • floating docks and panels
  • support background radius and background shadow size
  • ten different visibility modes
  • OnSemand sidebars
  • inform Plasma Desktop about panels and docks geometries (since plasma 5.18)
  • inform window managers about docks visible area (GTK_FRAME_EXTENTS support)
  • provide internal Widgets Explorer dialog and thus being able to be used completely in other desktop environments such as GNOME and XFCE
  • support multiple Latte Tasks in the same dock or panel
  • improve applets positioning for Justify alignment in latte panels
  • support latte centric applets that can use parabolic effect easily
  • support Plasma Margins Area Separators
  • user can specify custom color scheme per layout
  • redesign and improve all layouts dialogs
  • use templates for all layout functionality
  • provide move/copy/paste functionality for docks and panels
  • export layouts and docks/panels as templates for public use
  • 2200 commits after version 0.9.0
  • plenty of small bug fixes and improvements all around


Donations

You can find Latte at Liberapay,     Donate using Liberapay


or you can split your donation between my active projects in kde store.

KDE DEVLOG: Fixing Plasma Corners

KDE DEVLOG: Fixing Plasma Corners

Saturday, 17 July 2021

Hi everyone, this is my 3rd blog post talking about my work during Google Summer of Code 2021.

Programming Maze Activity

This activity teaches to program Tux to find the fish using simple instructions like move forward, turn left or turn right, it has been created by Aman Kumar Gupta.

It consists of ten levels in which:

  • The first 5 levels is about having a Main Function where the instructions will be executed in order until there is no instructions left, or until Tux reaches a dead end or when the tux reaches the fish.
Programming Maze (Main Function)
  • The last 5 levels is about having Procedure area which stores a set of instructions which can be used in the Main Function.
Programming Maze (Procedure)

Supporting Loops in Programming Maze

Last two weeks, I was working on extending programming maze activity to support loops as well as procedures, I have added a loop area same as it is done with the procedure area.

The loop area stores a set of instructions which can be executed several times by setting a loop number for it.

This is done by:

  • Implementing a new instruction called Loops, it contains a ListModel in which instructions are stored in, and it has a loopCounter as a property which indicates how many this set of instructions will be executed.
  • Adding a loop counter initialized by 1, which can be decremented or incremented to reduce the number of instructions needed by Tux to reach its goal.
  • Adding an option to use or not use Procedures
  • Adding datasets for the maze displayed when using the loop area.
  • Modifying TutorialBase.qml to support loop tutorial instructions.
Programming Maze (Loops)

What’s next ?

Supporting loops in programming maze is about to be finished, I am waiting for mentors’ reviews and their new suggestions and ideas which make the activity more powerful, also it is suggested to use enum for the instructions used in the activity, there are 2 methods for implementing enum values and they are currently being discussed to select the best solution.

I would like to thank the GCompris community for providing me this amazing opportunity. Open Source contributions at GCompris helped me a lot in enhancing my coding skills and soft skills as well.

Special thanks to my mentors. It was a great learning experience for me to work with them during phase one.

Looking forward for an exciting phase two!

Thanks for reading.

Friday, 16 July 2021

Let’s go for my web review for the week 2021-28.


83% of Developers Suffer From Burnout, Haystack Analytics Study Finds

Tags: tech, burnout

The rampant burnout epidemic in software engineering keeps growing apparently. More workload, more impatient stakeholders and less quality… With software being everywhere nowadays this is a huge problem to tackle.

https://www.usehaystack.io/blog/83-of-developers-suffer-from-burnout-haystack-analytics-study-finds


Risk Assessment of GitHub Copilot · GitHub

Tags: tech, ai, machine-learning, github

I think this is the best analysis about GitHub Copilot so far. Clearly using it in production today carries lots of risks. It might improve in the future but only marginally and likely with quite some effort. Not sure it’ll pass the threshold to be anything else than a funny toy.

https://gist.github.com/0xabad1dea/be18e11beb2e12433d93475d72016902


A privacy war is raging inside the W3C - Protocol — The people, power and politics of tech

Tags: tech, web, privacy

Or why we can’t expect much from the W3C regarding privacy… I wonder the chances of this kind of entrenched debates actually just killing the W3C…

https://www.protocol.com/policy/w3c-privacy-war


Martin Heinz | Functools - The Power of Higher-Order Functions in Python

Tags: tech, programming, python

A nice list of interesting nuggets from the functools python module.

https://martinheinz.dev/blog/52



Bye for now!

KDE Tips and Tricks for System Tray, Screenshots and More!

KDE Tips and Tricks for System Tray, Screenshots and More!