FLOSS Project Planets

Drupixels: First 5 Drupal 8 modules to install to make your life easy

Planet Drupal - Sun, 2019-06-23 09:04
Starting a new Drupal 8 project? And the first thing you might do is to install a module, but which one first. There are a few obvious ones to install and sometimes these have no relation with the functionality of your project but they always help you in the background.
Categories: FLOSS Project Planets

apl @ Savannah: GNU APL 1.8 Released

GNU Planet! - Sun, 2019-06-23 09:03

I am happy to announce that GNU APL 1.8 has been released.

GNU APL is a free implementation of the ISO standard 13751 aka.
"Programming Language APL, Extended",

This release contains:

  • bug fixes,
  • ⎕DLX (Donald Knuth's Dancing Links Algorithm),
  • ⎕FFT (fast fourier transforms; real, complex, and windows),
  • ⎕GTK (create GUI windows from APL),
  • ⎕RE (regular expressions), and
  • user-defined APL commands.

Also, you can now call GNU APL from Python.

Categories: FLOSS Project Planets

Skrooge 2.20.0 released

Planet KDE - Sun, 2019-06-23 05:49

The Skrooge Team announces the release 2.20.0 version of its popular Personal Finances Manager based on KDE Frameworks

  • Correction bug 406903: no message when Skrooge can't open .skg file given on command line
  • Correction bug 406904: skrooge command-line help "--+[URL]" doesn't match its behavior
  • Correction bug 406741: QFX Date Import
  • Correction bug 407280: Skrooge flatpak unintentionally builds unused tests
  • Correction bug 407279: Skrooge flatpak needs later libofx
  • Correction bug 407257: Importing GNUcash (Account name instead of AccountID)
  • Correction bug 409026: skrooge appdata.xml fails validation on flathub, needs release and content_rating tags
  • Correction: aqbanking corrections:
    • Added auto repair for certain banks (Sprada, Netbank, Comdirect).
    • Added --disable-auto-repair command line option
    • Added --prefer-valutadate command line option
    • Removed --balance command line option
  • Correction: getNetWorth (used to compute PFS) is now computed by using all accounts
  • Correction: Remove color of hyperlinks in dashboard for a better rendering in dark theme
  • Correction: Remove broken quotes sources (BitcoinAverage, BitcoinCharts)
  • Correction: Better handling of the mode and comment field using the aqbanking import backend.
  • Feature: New REGEXPCAPTURE operator in "Search & Process" to capture a value by regular expression
  • Feature: Import backend aqbanking allows to import accounts without an IBAN. (See https://phabricator.kde.org/D20875)
Get it, Try it, Love it...

Grab Skrooge from your distro's packaging system. If it is not yet included in repositories, go get it from our website, and bug your favorite distro for inclusion.

Now, you can try the appimage or the flatpak too !

If you want to help me to industrialise the windows version, you can get it from here: https://binary-factory.kde.org/job/Skrooge_Nightly_mingw64/

Get Involved

To enhance Skrooge, we need you ! There are many ways you can help us:

  • Submit bug reports
  • Discuss on the KDE forum
  • Contact us, give us your ideas, explain us where we can improve...
  • Can you design good interfaces ? Can you code ? Have webmaster skills ? Are you a billionaire looking for a worthy investment ? We will be very pleased in welcoming you in the skrooge team, contact us !
Categories: FLOSS Project Planets

New website for Konsole

Planet KDE - Sun, 2019-06-23 05:00

Yesterday, konsole.kde.org got a new website.

Doesn’t it look nice? As a reminder the old website looked like this.

The design is very similar to the kontact.kde.org and kde.org websites.

The content could probably still need some improvements, so if you find typos or want to improve the wording of a sentence, please get in touch with KDE Promo. The good news is that you don’t need to be a programmer for this.

Community goal

With Jonathan Riddell, we proposed a new community goal: KDE is All About the Apps.

One part of this goal is to provide a better infrastructure and promotional material for the KDE applications (notice the lowercase a). I think websites are important to let people know about our amazing applications.

So if you are maintaining a KDE applications and want a new shinning website, please contact me. And I will try to setup for you a new websites, following the general design.

Technical details

The new website uses Jekyll to render static html. Because the layout and the design aren’t unique to konsole.kde.org, I created a special Jekyll located at invent.kde.org/websites/jekyll-kde-theme, so that only the content and some configuration files are located in the websites/konsole-kde-org repository. This make it easier to maintain and will make it easier to change others website in the future without repeating ourself.

This was a bit harder to deploy than I first though, I had problem with installing my Jekyll theme in the docker image, but after the third or fourth try, it worked and then I had an encoding issue, that wasn’t present on my development machine.

How can I help?

Help is always welcome, the KDE community develops more than 200 different applications, and even though not all applications need or want a new modern website, there is tons of work to do.

If you are a web developer, you can help in the development of new website or in improving the Jekyll theme. Internalization, localization and accessibility still need to be implemented.

If you are not a web developer, but a web designer, I’m sure there is room for improvement in our theme. And it can be interesting to have small variations across the different websites.

And if you are neither a designer nor a developer, there is still tons of work with writing content and taking good looking screenshots. For the screenshots, you don’t even need to have a good English.

If you have question, you can as always contact me in Mastodon at @carl@linuxrocks.online or with matrix at @carl:kde.org.

You can discuss this post in reddit or mastodon.

Categories: FLOSS Project Planets

Srijan Technologies: Should You Migrate Your Developer Portal To Drupal 8?

Planet Drupal - Sun, 2019-06-23 04:23

APIGEE recently announced - from May 31, 2020, Apigee-sponsored hosting for Drupal-based portals will end. The existing customers who wish to remain on Drupal 7 need to assume hosting responsibility, they can either migrate to Drupal 8 or move to Apigee's integrated portal.

Categories: FLOSS Project Planets

KDE Usability & Productivity: Week 76

Planet KDE - Sun, 2019-06-23 03:19

Week 76 in KDE’s Usability & Productivity initiative is here! This week’s progress report includes the first several days of the Usability & Productivity sprint, and as such, it’s absolutely overflowing with cool stuff!

New Features Bugfixes & Performance Improvements User Interface Improvements

Next week, your name could be in this list! Not sure how? Just ask! I’ve helped mentor a number of new contributors recently and I’d love to help you, too! You can also check out https://community.kde.org/Get_Involved, and find out how you can help be a part of something that really matters. You don’t have to already be a programmer. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

If you find KDE software useful, consider making a donation to the KDE e.V. foundation.

Categories: FLOSS Project Planets

KStars v3.3.1 is released

Planet KDE - Sun, 2019-06-23 01:37
KStars v3.3.1 is released for Windows, MacOS, and Linux on all platforms (Intel/AMD and ARM). This is yet another maintenance release with a few new experimental features and addons.

MacOS Updates
Robert Lancaster cleared all the issues reported on astrometry.net problems on MacOS. After gathering the feedback of users with experimental releases on this dedicated INDI thread.

Astrometry on MacOS
Furthermore, DBus is now working again in this release which would make the Ekos Scheduler operational again under Mac.

New Observatory Module
Wolfgang Reissenberger developed a new Ekos Observatory module to manage the dome and weather-triggered shutdown procedure. This is the first iteration of the module with more expected in the upcoming months but it provides a compact and friendly interface to observatory management. Feedback is welcome.

Meridian Flip is gone!
Well, sorta of. Wolfgang Reissenberger removed Meridian Flip from the Capture Module and moved it to the Mount Module. This way the meridian flip can be controlled even if there is no active capture session going on.

So just set when you want the meridian flip to occur at the mount module. Remember that the setting is in Hour Angle (HA). 1 HA = 15 degrees, therefore 0.1 HA = 1.5 degrees West of the Meridian. 
Always use a positive value to ensure proper meridian flip takes place. Using zero could theoretically work but it is at the very edge where the decision to flip or not is made by the mount, so it's safer to use a slightly higher value like 0.1 HA.
Stream Window

Due to popular demand, the FPS control in the Stream window is replaced Frame Duration in seconds control. So a setting of 0.1 seconds would yield a frame rate of 10 FPS (1/0.1 = 10) if the hardware can support that. The duration can be set as low as 1 microsecond but only if supported by the driver and camera!

Other highlights:

  • Reset focus frame when mount slews.
  • Do not abort PHD2 guiding while suspended.
  • Switching to homebrew, python3, and astroy for plate solving on OS X.
  • Check if dust cap is detected before checking whether the camera is shutterful or shutterless.
  • Fix translation issue with Sun, Moon, and Earth designations.
Categories: FLOSS Project Planets

Support for Jupyter notebooks has evolved in Cantor

Planet KDE - Sat, 2019-06-22 16:19

Hello everyone, it's been almost a month since my last post and there are a lot of changes that have been done since then.

First, what I called the "minimal plan" is arleady done! Cantor can now load Jupyter notebooks and save the currently opened document in Jupyter format.

Below you can see how one of the Jypiter notebooks I'm using for test purposes (I have mentioned them in previous post) looks in Jupyter and in Cantor.

As you can see, there aren't many differences in the representation of the content except of some minor differences in the rendering of the markdown code.

For the comparison, I also prepared some previews of the same fragments of the notebooks, opened in Jupyter and in Cantor.
This is a fragment from Understanding evolutionary strategies and covariance matrix adaptation notebook.

As the next example, we show a screenshot of A Reaction-Diffusion Equation Solver in Python with Numpy notebook.

As the final example, we show a screenshot of Rigid-body transformations in a plane (2D) notebook.

To be more detailed and concrete on what is currently supported in Cantor, below is the list of objects that can be imported:
  • Markdown cells
    • With mathematical expressions
    • With attachments
  • Code cells
    • With text (including error messages) and image results)
  •  Raw NBConvert cells
Cantor is able to handle almost all content specified by Jupyter notebook format, except of some metadata information about the notebook in general and about its cells, information about the used "kernel" (support for this will be added soon) and results of another types (for example latex or html outputs), which are more difficult to implement because of the lack of good and complete documentation of them.

When saving the project in Jupyter's format, Cantor handles almost all of its native entry types like markdown entries, text entries, code entries and image entries. For the remaining "page break entry" in Cantor it is still to be worked out how to map this element to Jupyter's structures.

Despite quite a good progress made, there is still a lot place and potential for improvements. Besides some technical issues arising when dealing with the import of another format and mapping its sturcture to the native structures of your application, which is very natural actually for all applications I guess, there is currently also currently problem with perfromance of the renderer used for mathematical expressions in Cantor. Openning of large documents (either in Cantor's native format or Jupyter notebooks) having a lot of formulas takes considerable amount of time because of the bad renderer implementation in Cantor. This heavily influence the user experience and I plan to start working on this soon.

So, there are some work for done before Cantor will support what I call the "maximum plan". With this I understand the ability to garantee the conversion between two formats when openning or saving projects to happen without any substantial loss of information relevant and critical for the consumption of the project file.

To achieve this, I want now to invest more into testing with more notebooks and closing the remaining gaps but also into writing automatic tests for Cantor covering this new functionality in Cantor. The latter are important to also prevent any kind of regressions introduce during bug fixing activities in the next weeks. This is something for the next week.

In the next post I plan to show a working test system and how Cantor are passing its tests.
Categories: FLOSS Project Planets

AArch64 support for ELF Dissector

Planet KDE - Sat, 2019-06-22 06:00

After having been limited to maintenance for a while I finally got around to some feature work on ELF Dissector again this week, another side-project of mine I haven’t written about here yet. ELF Dissector is an inspection tool for the internals of ELF files, the file format used for executables and shared libraries on Linux and a few other operating systems.

Use Cases

As a quick introduction, let’s focus on what ELF Dissector is most useful for.

  • Inspecting forward and backward dependencies, on library and symbol level. Say you want to remove the dependency on a legacy library like KDELibs4Support from your application, the inverse dependency viewer helps you to identify what exactly pulls in this library, and which symbols are used from it.
  • Identifying load-time performance bottlenecks such as expensive static constructors or excessive relocations. An example for this is David Edmundson’s current research into KInit.
  • Size profiling of ELF files. That’s easiest shown in the picture below.
ELF Dissector size tree map view. AArch64 Support

Last week I had to analyze 64bit ARM binaries with ELF Dissector for the first time, which made me run into an old limitation of ELF Dissector’s disassembler. Until now ELF Dissector used Binutils for this (via some semi-public API), which works very well but unfortunately only on the host platform (that is, usually for x86 code). So this limitation finally needed to go.

We now have support for using the cross-platform disassembler framework Capstone. So far only AArch64 and x86 support are actually implemented, but adding further architectures is now quite straightforward. Together with a few other fixes and improvements, such as support for relocations in the .init_array section, ELF Dissector is now actually useful for inspecting loading performance of Aarch64 binaries too.

ELF Dissector showing AArch64 assembler. Outlook

ELF Dissector had its first commit more than six years ago, but it is still lingering around in a playground repository, which doesn’t really do it justice. One major blocker for making it painlessly distributable however are its dependencies on private Binutils/GCC API. Using the Capstone disassembler is therefore also a big step towards addressing that, now only the use of the demangler API remains.

Categories: FLOSS Project Planets

denemo @ Savannah: Release 2.3 is imminent - please test.

GNU Planet! - Sat, 2019-06-22 05:29

New Features
    Seek Locations in Scores
        Specify type of object sought
        Or valid note range
        Or any custom condition
        Creates a clickable list of locations
        Each location is removed from list once visited
    Syntax highlighting in LilyPond view
    Playback Start/End markers draggable
    Source window navigation by page number
        Page number always visible
    Rapid marking of passages
    Two-chord Tremolos
    Allowing breaks at half-measure for whole movement
        Also breaks at every beat
        Mark Passages of music
        Perform tasks on the marked passages
        Swapping musical material with staff below implemented
    Search for lost scores
        Searches whole directory hierarchy
        Works for transposed scores
    Compare Scores
    Index Collection of Scores
        All scores below a start directory indexed
        Index includes typeset incipit for music
        Title, Composer, Instrumentation, Score Comment fields
        Sort by composer surname
        Filter by any Scheme condition
        Open files by clicking on them in Index
    Intelligent File Opening
        Re-interprets file paths for moved file systems
    Improved Score etc editor appearance
    Print History
        History records what part of the score was printed
        Date and printer included
    Improvements to Scheme Editor
        Title bar shows open file
        Save dialog gives help
    Colors now differentiate palettes, titles etc. in main display
    Swapping Display and Source positions
        for switching between entering music and editing
        a single keypress or MIDI command
    Activate object from keyboard
        Fn2 key equivalent to mouse-right click
        Shift and Control right-click via Shift-Fn2 and Control-Fn2
    Help via Email
    Auto-translation to Spanish

Bug Fixes

    Adding buttons to palettes no longer brings hidden buttons back

    MIDI playback of empty measures containing non-notes

    Instrument name with Ambitus clash in staff properties menu fixed

    Visibility of emmentaler glyphs fixed

    Update of layout on staff to voice change

    Open Recent anomalies fixed

    Failures to translate menu titles and palettes fixed

Categories: FLOSS Project Planets

Crazy Last Weeks

Planet KDE - Fri, 2019-06-21 20:00

Last weeks have been crazy for me. Since the GSoC began, I have been rushing everything related to university and my life to dedicate exclusively to the development. Besides the two classes I was taking, Static Code Analysis and Approximation Algorithms, I had my obligatory teaching internship in Project and Analysis of Algorithms for the postgraduate program, where I was responsible for creating and evaluating assignments for 50+ students and answering general questions.

Besides that, I was in the organization of the Latin & American Algorithms, Graphs and Optimization Symposium during June 2nd to 7th, where I was responsible for a plethora of things before and during the event (Although it was a lot of fun, a lot of researchers from all around the globe and incredible research). And, just as I got back, I had to delve back to tests, assignments, seminars…

One of the problems for brazilians in taking the GSoC is that the beginning of the program does not match exactly with the end of our classes. But now, as everything is (finally!) ending, I can focus entirely in the GSoC and my project. Just before the GSoC (and before even creating my project), I had compiled to KDE Framework 5 and the ROCS software, so most of the development environment was already set.

I am using as my environment the Qt Creator, and I am focusing in the algorithm for creation of specific graph classes inside the generategraphwidget. I have already implemented algorithms for Paths, Complete and Complete Bipartite graphs, besides fixing some details here and there. These modifications are still only in my local machine, as I am having some problems pushing the commits (I must be doing something wrong in my configuration).

I noticed that the calculation of the position of the graphs generated is strange, as it put the graphs almost ouside the view (and we can’t push the view there), so probably the positioning must be corrected. There is a function for calculating the center there, I will compare that function to the point where the view always come back and adjust accordingly. Another detail is the symbols of the view tools, that are not showing correctly.

Categories: FLOSS Project Planets

Latte and "Flexible" settings...

Planet KDE - Fri, 2019-06-21 17:57

Following Latte and a "Shared Layouts" dream,  today I am going to present you all the new settings pages for upcoming v0.9 and the approach used for them. In following screenshots you can find Basic and Advanced pages for docks and panels.

Basic Settings
Advanced Settings

Flexible Settings

Latte v0.9 changed the approach between Basic/Advanced settings. Following the  Deepin paradigm our advanced mode is now using all the available screen height by taking into account surrounding latte dock/panels in order to not overlap. At the same time advanced settings window is moved at a screen edge in order to free up main screen area for the user. All settings windows now follow a more flexible design in order to provide different width/height scales at per screen basis.
  • Above free areas in settings window you can use Meta+Scroll wheel to alter window width scale
  • Above free areas in settings window you can use Ctrl+Scroll wheel to alter window height scale (only in Basic mode)
  • If you click Latte trademark you can access Latte Global Preferences window

Advanced Settings in 64% width scale

Edit Mode is Split at "Live Editing" and "Configure Applets"

From earlier Latte versions it was obvious that users wanted to be able to alter settings and check runtime how things behave and look afterwards (including the parabolic effect). This is why Latte Editing mode was split in "Live Editing" and "Configure Applets"

"Live Editing" mode
In this mode users can check settings in runtime. This state is active when "Rearrange and configure your widgets" button is not pressed. At the same time users can adjust the edit background opacity when  scrolling above empty areas.
"Live Editing" with fully transparent edit background
"Live Editing" with 50% transparency for edit background
"Configure Applets" mode

In this mode users can delete/configure and move applets around. This state is active when the "Rearrange and configure your widgets" button is pressed. In this mode edit background is solid at all times. Applet tooltips that appear on hovering provide you the following options:"Configure Applets" mode and Application Launcher applet edit mode tooltip
Popup improvements

In order to improve the settings experience a little more, some of the ComboBoxes popups have gained icons/tooltips and enhanced their behavior

Dock Actions popupIndicators popup

Global Preferences

Layouts page has also been improved a lot and its comboboxes should behave a lot better now. Most notable addition is Shared Layouts support for Multiple Layouts mode.

"TopPanel" layout shared to "My Profile" and "Unity Dream"

Global Preferences page provides new options for Meta key behavior and global outline width for panel backgrounds
Global Preferences options

Command Line
New options have been added in command line in order to enhance interaction with Latte, import layouts or settings/clear qml cache etc.
command line options

Latte v0.9 Release Schedule

  • End June 2019: last stable release for v0.8 [0.8.9]
  • Mid July 2019: v0.9 Beta release
  • End July 2019: bugs / translation strings fixes  and improvements
  • Start August 2019:  v0.9 will be released officially as the new Latte stable version

How Can You Help

  1. As you may noticed plenty new settings are added and bugs in their combinations may exist that have not been reported yet
  2. For complicated settings I use tooltips in order to describe them better. If you find such option that has not any tooltip OR its tooltip text can be explained more or be simplified feel free to report it (I am not a native english speaker)


You can find Latte at Liberapay if you want to support,    

or you can split your donation between my active projects in kde store.
Categories: FLOSS Project Planets

Codementor: Creating a new Flask project with pipenv

Planet Python - Fri, 2019-06-21 17:14
Creating a new Flask project with pipenv
Categories: FLOSS Project Planets

Yasoob Khalid: Setting up dev environment for SciPy

Planet Python - Fri, 2019-06-21 17:03

Hi everyone!

I got an email from someone pretty recently who wanted to setup a dev environment for SciPy. He had made changes to the source code of SciPy and now wanted to test if his changes were working or not. He had gotten so far without actually testing the code. In this post I will share details on how to setup a dev environment the right way. I will focus mainly on Mac OS.

Firstly, go to the GitHub repo and try to figure out the dependencies for the project. Normally they are listed in the readme file. If they are not listed there then you just try installing the package/libary and the errors in the terminal will give you a clue as to what you are missing. I did that and figured out that I needed Fortran compiler, Cython and NumPy.

Installing dependencies:

Let’s start with Fortran:

brew install gcc

Now create a new folder and setup a virtualenv there:

mkdir ~/dev cd ~/dev python -m venv env

Activate the virtualenv:

source env/bin/activate

Now install Cython and NumPy:

pip install cython pip install numpy

Now clone SciPy:

git clone git@github.com:scipy/scipy.git

And finally install SciPy in development mode:

cd scipy python setup.py develop

Normally if you are installing a Python package using the setup.py file, you use python setup.py install. This copies the code into the site-packages directory. After that if you make any changes to the source code of the package, you need to run python setup.py install each time.

The difference between that and python setup.py develop is that in the later case Python does not copy the code to site-packages. It uses the code from that development folder directly whenever you import the package. This way if you make any changes to the package you don’t need to run python setup.py install or python setup.py develop.

After you are done with the development you can safely type deactivate and this will turn off the virtualenv.

You can read more about virtualenv on Real Python. I hope someone out there in the same boat as one of my other readers finds this helpful.

Have a good day!


Categories: FLOSS Project Planets

More foss in the north

Planet KDE - Fri, 2019-06-21 16:35

Today is midsummer eve. In Sweden, this is probably slightly larger than Christmas. Everyone goes someplace to meet someone and enjoy a day of food, dance and entertainment. And you’re supposed to have flowers on your head as shown below!

This year, midsummer is on June 21, which marks four months from the first foss-north event outside of Gothenburg. That’s right – foss-north is going to Stockholm on October 21 and the theme will be IoT and Security. Make sure to save the date!

We have a venue and three great speakers lined up. There will be a CFP during July and the final speakers will be announced towards September. We’re also looking for sponsors (hint hint nudge nudge).

Now I’m off to enjoy the last hour of midsummer and enjoy the shortest night of the year. Take care and I’ll see you in Stockholm this autumn!

Categories: FLOSS Project Planets

Simon Josefsson: OpenPGP smartcard under GNOME on Debian 10 Buster

Planet Debian - Fri, 2019-06-21 14:09

Debian buster is almost released, and today I celebrate midsummer by installing (a pre-release) of it on my Lenovo X201 laptop. Everything went smooth, except for the usual issues with smartcards under GNOME. I use a FST-01G running Gnuk, but the same issue apply to all OpenPGP cards including YubiKeys. I wrote about this problem for earlier releases, read Smartcards on Debian 9 Stretch and Smartcards on Debian 8 Jessie. Some things have changed – now GnuPG‘s internal ccid support works, and dirmngr is installed by default when you install Debian with GNOME. I thought I’d write a new post for the new release.

After installing Debian and logging into GNOME, I start a terminal and attempt to use the smartcard as follows.

jas@latte:~$ gpg --card-status gpg: error getting version from 'scdaemon': No SmartCard daemon gpg: OpenPGP card not available: No SmartCard daemon jas@latte:~$

The reason is that the scdaemon package is not installed. Install it as follows.

jas@latte:~$ sudo apt-get install scdaemon

After this, gpg --card-status works. It is now using GnuPG’s internal CCID library, which appears to be working. The pcscd package is not required to get things working any more — however installing it also works, and you might need pcscd if you use other applications that talks to the smartcard.

jas@latte:~$ gpg --card-status Reader ...........: 234B:0000:FSIJ-1.2.14-67252015:0 Application ID ...: D276000124010200FFFE672520150000 Version ..........: 2.0 Manufacturer .....: unmanaged S/N range Serial number ....: 67252015 Name of cardholder: Simon Josefsson Language prefs ...: sv Sex ..............: male URL of public key : https://josefsson.org/key-20190320.txt Login data .......: jas Signature PIN ....: not forced Key attributes ...: ed25519 cv25519 ed25519 Max. PIN lengths .: 127 127 127 PIN retry counter : 3 3 3 Signature counter : 658 KDF setting ......: off Signature key ....: A3CC 9C87 0B9D 310A BAD4 CF2F 5172 2B08 FE47 45A2 created ....: 2019-03-20 23:40:49 Encryption key....: A9EC 8F4D 7F1E 50ED 3DEF 49A9 0292 3D7E E76E BD60 created ....: 2019-03-20 23:40:26 Authentication key: CA7E 3716 4342 DF31 33DF 3497 8026 0EE8 A9B9 2B2B created ....: 2019-03-20 23:40:37 General key info..: sub ed25519/51722B08FE4745A2 2019-03-20 Simon Josefsson <simon@josefsson.org> sec# ed25519/D73CF638C53C06BE created: 2019-03-20 expires: 2019-10-22 ssb> ed25519/80260EE8A9B92B2B created: 2019-03-20 expires: 2019-10-22 card-no: FFFE 67252015 ssb> ed25519/51722B08FE4745A2 created: 2019-03-20 expires: 2019-10-22 card-no: FFFE 67252015 ssb> cv25519/02923D7EE76EBD60 created: 2019-03-20 expires: 2019-10-22 card-no: FFFE 67252015 jas@latte:~$

As before, using the key does not work right away:

jas@latte:~$ echo foo|gpg -a --sign gpg: no default secret key: No public key gpg: signing failed: No public key jas@latte:~$

This is because GnuPG does not have the public key that correspond to the private key inside the smartcard.

jas@latte:~$ gpg --list-keys jas@latte:~$ gpg --list-secret-keys jas@latte:~$

You may retrieve your public key from the clouds as follows. With Debian Buster, the dirmngr package is installed by default so there is no need to install it. Alternatively, if you configured your smartcard with a public key URL that works, you may type “retrieve” into the gpg --card-edit interactive interface. This could be considered slightly more reliable (at least from a self-hosting point of view), because it uses your configured URL for retrieving the public key rather than trusting clouds.

jas@latte:~$ gpg --recv-keys B1D2BD1375BECB784CF4F8C4D73CF638C53C06BE gpg: key D73CF638C53C06BE: 1 signature not checked due to a missing key gpg: key D73CF638C53C06BE: public key "Simon Josefsson <simon@josefsson.org>" imported gpg: no ultimately trusted keys found gpg: Total number processed: 1 gpg: imported: 1 jas@latte:~$

Now signing with the smart card works! Yay! Btw: compare the output size with the output size in the previous post to understand the size advantage with Ed25519 over RSA.

jas@latte:~$ echo foo|gpg -a --sign -----BEGIN PGP MESSAGE----- owGbwMvMwCEWWKTN8c/ddRHjaa4khlieP//S8vO5OkpZGMQ4GGTFFFkWn5nTzj3X kGvXlfP6MLWsTCCFDFycAjARscUM/5MnXTF9aSG4ScVa3sDiB2//nPSVz13Mkpbo nlzSezowRZrhn+Ky7/O6M7XljzzJvtJhfPvOyS+rpyqJlD+buumL+/eOPywA =+WN7 -----END PGP MESSAGE-----

As before, encrypting to myself does not work smoothly because of the trust setting on the public key. Witness the problem here:

jas@latte:~$ echo foo|gpg -a --encrypt -r simon@josefsson.org gpg: 02923D7EE76EBD60: There is no assurance this key belongs to the named user sub cv25519/02923D7EE76EBD60 2019-03-20 Simon Josefsson <simon@josefsson.org> Primary key fingerprint: B1D2 BD13 75BE CB78 4CF4 F8C4 D73C F638 C53C 06BE Subkey fingerprint: A9EC 8F4D 7F1E 50ED 3DEF 49A9 0292 3D7E E76E BD60 It is NOT certain that the key belongs to the person named in the user ID. If you *really* know what you are doing, you may answer the next question with yes. Use this key anyway? (y/N) gpg: signal Interrupt caught ... exiting jas@latte:~$

You update the trust setting with the gpg --edit-key command.

jas@latte:~$ gpg --edit-key simon@josefsson.org gpg (GnuPG) 2.2.12; Copyright (C) 2018 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Secret subkeys are available. pub ed25519/D73CF638C53C06BE created: 2019-03-20 expires: 2019-10-22 usage: SC trust: unknown validity: unknown ssb cv25519/02923D7EE76EBD60 created: 2019-03-20 expires: 2019-10-22 usage: E card-no: FFFE 67252015 ssb ed25519/80260EE8A9B92B2B created: 2019-03-20 expires: 2019-10-22 usage: A card-no: FFFE 67252015 ssb ed25519/51722B08FE4745A2 created: 2019-03-20 expires: 2019-10-22 usage: S card-no: FFFE 67252015 [ unknown] (1). Simon Josefsson <simon@josefsson.org> gpg> trust pub ed25519/D73CF638C53C06BE created: 2019-03-20 expires: 2019-10-22 usage: SC trust: unknown validity: unknown ssb cv25519/02923D7EE76EBD60 created: 2019-03-20 expires: 2019-10-22 usage: E card-no: FFFE 67252015 ssb ed25519/80260EE8A9B92B2B created: 2019-03-20 expires: 2019-10-22 usage: A card-no: FFFE 67252015 ssb ed25519/51722B08FE4745A2 created: 2019-03-20 expires: 2019-10-22 usage: S card-no: FFFE 67252015 [ unknown] (1). Simon Josefsson <simon@josefsson.org> Please decide how far you trust this user to correctly verify other users' keys (by looking at passports, checking fingerprints from different sources, etc.) 1 = I don't know or won't say 2 = I do NOT trust 3 = I trust marginally 4 = I trust fully 5 = I trust ultimately m = back to the main menu Your decision? 5 Do you really want to set this key to ultimate trust? (y/N) y pub ed25519/D73CF638C53C06BE created: 2019-03-20 expires: 2019-10-22 usage: SC trust: ultimate validity: unknown ssb cv25519/02923D7EE76EBD60 created: 2019-03-20 expires: 2019-10-22 usage: E card-no: FFFE 67252015 ssb ed25519/80260EE8A9B92B2B created: 2019-03-20 expires: 2019-10-22 usage: A card-no: FFFE 67252015 ssb ed25519/51722B08FE4745A2 created: 2019-03-20 expires: 2019-10-22 usage: S card-no: FFFE 67252015 [ unknown] (1). Simon Josefsson <simon@josefsson.org> Please note that the shown key validity is not necessarily correct unless you restart the program. gpg> quit jas@latte:~$

Confirm gpg --list-keys indicate that the key is now trusted, and encrypting to yourself should work.

jas@latte:~$ gpg --list-keys /home/jas/.gnupg/pubring.kbx ---------------------------- pub ed25519 2019-03-20 [SC] [expires: 2019-10-22] B1D2BD1375BECB784CF4F8C4D73CF638C53C06BE uid [ultimate] Simon Josefsson <simon@josefsson.org> sub ed25519 2019-03-20 [A] [expires: 2019-10-22] sub ed25519 2019-03-20 [S] [expires: 2019-10-22] sub cv25519 2019-03-20 [E] [expires: 2019-10-22] jas@latte:~$ gpg --list-secret-keys /home/jas/.gnupg/pubring.kbx ---------------------------- sec# ed25519 2019-03-20 [SC] [expires: 2019-10-22] B1D2BD1375BECB784CF4F8C4D73CF638C53C06BE uid [ultimate] Simon Josefsson <simon@josefsson.org> ssb> ed25519 2019-03-20 [A] [expires: 2019-10-22] ssb> ed25519 2019-03-20 [S] [expires: 2019-10-22] ssb> cv25519 2019-03-20 [E] [expires: 2019-10-22] jas@latte:~$ echo foo|gpg -a --encrypt -r simon@josefsson.org gpg: checking the trustdb gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u gpg: next trustdb check due at 2019-10-22 -----BEGIN PGP MESSAGE----- hF4DApI9fuduvWASAQdA4FIwM27EFqNK1I5eZERaZVDAXJDmYLZQHjZD8TexT3gw 7SDaeTLm7s0QSyKtsRugRpex6eSVhfA3WG8fUOyzbNv4o7AC/TQdhZ2TDtXZGFtY 0j8BRYIjVDbYOIp1NM3kHnMGHWEJRsTbtLCitMWmLdp4C98DE/uVkwjw98xEJauR /9ZNmmvzuWpaHuEJNiFjORA= =tAXh -----END PGP MESSAGE----- jas@latte:~$

The issue with OpenSSH and GNOME Keyring still exists as in previous releases.

jas@latte:~$ ssh-add -L The agent has no identities. jas@latte:~$ echo $SSH_AUTH_SOCK /run/user/1000/keyring/ssh jas@latte:~$

The trick we used last time still works, and as far as I can tell, it is still the only recommended method to disable the gnome-keyring ssh component. Notice how we also configure GnuPG’s gpg-agent to enable SSH daemon support.

jas@latte:~$ mkdir ~/.config/autostart jas@latte:~$ cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart/ jas@latte:~$ echo 'Hidden=true' >> ~/.config/autostart/gnome-keyring-ssh.desktop jas@latte:~$ echo enable-ssh-support >> ~/.gnupg/gpg-agent.conf

Log out of GNOME and log in again. Now the environment variable points to gpg-agent’s socket, and SSH authentication using the smartcard works.

jas@latte:~$ echo $SSH_AUTH_SOCK /run/user/1000/gnupg/S.gpg-agent.ssh jas@latte:~$ ssh-add -L ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILzCFcHHrKzVSPDDarZPYqn89H5TPaxwcORgRg+4DagE cardno:FFFE67252015 jas@latte:~$

Topics for further discussion and research this time around includes:

  1. Should scdaemon (and possibly pcscd) be pre-installed on Debian desktop systems?
  2. Could gpg --card-status attempt to import the public key and secret key stub automatically? Alternatively, some new command that automate the bootstrapping of a new smartcard.
  3. Should GNOME keyring support smartcards?
  4. Why is GNOME keyring used by default for SSH rather than gpg-agent?
  5. Should gpg-agent default to enable the SSH daemon?
  6. What could be done to automatically infer the trust setting for a smartcard based private key?

Thanks for reading and happy smartcarding!

Categories: FLOSS Project Planets

LabPlot getting prettier and also support for online datasets

Planet KDE - Fri, 2019-06-21 12:06
Hello everyone! I'm participating in Google Summer of Code for the second time. I'm working on KDE's LabPlot, just like last year. I'm very happy that I can work again with my former and current mentor Kristóf Fábián, and with Alexander Semke, an invaluable member of the LabPlot team, who is like a second mentor to me. At first, let me introduce you my current project: 
"There are many internet pages providing data sets for educational and academic purposes concerning various fields of science, and not only (astrophysics, statistics, medicine, etc.). Some tools used in the scientific field provide some "wrappers" for such online sources and allow the user to easily investigate these data sets and work with them in all kinds of applications, whilst the technical details and methodology like the fetching of data from the server and parsing are done completely transparent for the user. The user doesn’t even know what happens in the “background”.
The goal of this project is to add similar functionality to LabPlot. This would make LabPlot more fit for educational purposes, students and teachers could use LabPlot for visualizing and analyzing data connected to the currently studied field. And also could bring LabPlot into the life of the average student."
If the synopsis caught your attention and you are interested in the project itself, you can check out my proposal, to find out in detail what the project really is about.

Bonding period
Let's start with the bonding period. I used this time to investigate/analyze already existing solutions for uploading/downloading with KNS3 also its API documentation, checking out various welcome screens of other applications to get some inspiration, checking out some simpler caching implementations.

I communicated with my mentor and others from the LabPlot team to properly  design the project and the course of implementation. I also tried to get involved in the KDE community.

First monthAt the end of the first month I can state that fortunately I was able to make a quite good progress. Everything is successfully implemented from what was proposed for the first month, and I could also proceed to other tasks. Now let's see what's been done.
Dealing with datasets
The very first step was to implement a new widget, called ImportDatasetWidget which could provide the functionality to:
  • list the available categories and subcategories of datasets
  • list the available datasets for a certain subcategory
  • refresh the list of datasets and delete the downloaded metadata files

ImportDatasetWidgetThe user can select from the categories and subcategories of the available datasets, as visible in the picture above. In order to visualize these I used a QTreeWidget. When the user clicks on a subcategory then every dataset, belonging to it, is listed in a QListView. The user is also provided with the possibility to search a particular category/subcategory, since we estimate that there will be a considerable amount of datasets by the end of the project. This is also the case with the dataset list.
We had to create metadata files in order to record additional information about datasets, and also to divide them into categories and subcategories. We use a metadata data file which contains every category and subcategory and a list of datasets for every subcategory. Additionally there is a metadata file for every dataset containing various data about the dataset itself.
In the "Datasets" section we highlight every dataset the metadata of which is locally available (in the labplot directory located in the user's home directory). When the user clicks on the "Clear cache" button every file is deleted from the above mentioned directory. The "Refresh" button provides the possibility to refresh the locally available metadata file, which contains the categories and subcategories.In order to make possible the import of datasets into LabPlot, and saving them into Spreadsheets I had to implement a helper class: DatasetHandler. This class processes a dataset's metadata file, configures the Spreadsheet into which the data will be loaded, downloads the dataset, processes it (based on the preferences present in the metadata file) then loads its content into the spreadsheet.
 ImportDatasetWidget basic functionality

There also is a "Add new Dataset" button. This makes it possible for the user to add own datasets to LabPlot's list. When the button is clicked a new dialog is shown to the user: DatasetMetadataManagerDialog
Adding new dataset to the collection
This dialog provides an interface for the user, so the user can easily set the options necessary for the dataset's metadata file. The user doesn't have to create the metadata file himself/herself, the dialog does this instead based on the data provided by the user. The dialog also adds the new dataset's name to the categories' metadata file. Therefore the user can easily add new datasets, and later load them easily, using the ImportDatasetWidget. 

 Adding new dataset
While implementing these functionalities we were faced with some problems, which still need to be solved. We wanted to make possible the download and upload to store.kde.org, using the KNS3 library.  So users could really add new datasets to the basic list, and could download only those metadata files which are needed. This was our intention, however KNS3 gave us a hard time. It provides its functionality only by two dialogs, which we wouldn't prefer to use. We want to incorporate the dialogs' functionality into LabPlot somehow, but we didn't figure this out yet. but, we are thinking about it. Another problem with KNS3 is that according to KDE's mailing list, uploading with KNS3 is disabled for an indefinite amount of time due to errors caused by the library. Therefore the question arises: Do we need downloading if uploading is not possible? 

Initial Welcome Screen Due to successfully implementing quite fast the dataset part and also to the difficulties caused by KNS3, I started to design and to create a prototype for our Welcome Screen. The first step was to decide what technology we want to adapt in order to implement this welcome screen. We considered creating a widget based GUI, or using QML for this purpose. We chose QML, because despite  it being more complex and cumbersome to work with, it offers a greater freedom to implement ideas. So this is the main reason this technology was chosen. Then we had to think through, what functionalities we want to be provided by the welcome screen. We came up with:
  • Recently opened projects
  • Help section: Documentation, FAQ, etc.
  • Exploring datasets
  • Example projects
  • Latest release information 
  • News section
The current state of the welcome screenEvery part, except the Examples section, is fully functional. In the recent projects section the user can choose from the lastly opened projects and load them only by a click. The help section navigates the user to the Documentation, FAQ, Features and Support part of LabPlot's web page. In the release section the user can read about the last release. The news section is connected to the RSS feed of LabPlot's webpage, so the user can see the new posts of the web page. A central piece is the "Start exploring data" section where the user can browse the available datasets, display information about them, and open them with only one click. The functionality of the welcome screen is presented in the following video:

Finally I'd like to say some words about the next steps. The first will be implementing the "Examples" section of the welcome screen. In order to do so we'll have to design a metadata file for the example  projects and nonetheless we'll need to create some example projects to have something to work with. When functionally the welcome screen works, we can proceed to refining the design itself, making it more pleasant and adapting it to the user's theme's color. We'll still have to figure out what to do with the KNS3 library, should we use it or not, and if yes then how, in what manner. Nonetheless, we have to collect more datasets in order to provide the users of LabPlot with a considerable dataset collection.

This is it for now. I will continue to work on the project alongside Kristóf and Alexander. I think we form a quite good team. I'm thankful to them, for their guidance. When anything new will be finished and running I'll let you know. 
See you soon!Bye!
Categories: FLOSS Project Planets

Day 26

Planet KDE - Fri, 2019-06-21 12:01

I spent my first two weeks of GSoC (and the three weeks before it starts) trying to figure out how the Khipu’s code works but I didn’t get it. I was putting my effort trying to plot vectors but there were a enourmous structure of the code that I’d need understand before and it was unexpected for me. So, one of my menthors, Tomaz, suggested that I could change my project and try to refactor Khipu. So this last week I started a new interface, because the current interface is very simple and can be better.
I’m studying QML and already started the new interface, you can see below:

I’m in the end of my semester at college, so I need to split my time with GSoC and my college tasks, so now I’m going slowly but on the next month I have my vacation and I’ll have all of my time dedicated to it.
My menthors have helped me a lot so far, and I would like to say thanks for the patience, and say sorry for KDE for my initial project and for waste the first weeks on a thing that didn’t produce anything.

Categories: FLOSS Project Planets

Codementor: Building Restful API with Flask, Postman &amp; PyTest - Part 2 (Read Time: 10 Mins)

Planet Python - Fri, 2019-06-21 11:25
Today we shall cover the creation of mock endpoints in Postman. To help in the designing & prototyping of API endpoints for the expense manager project using Flask and pytest in part 3.
Categories: FLOSS Project Planets