FLOSS Project Planets

The Drop Times: A Detailed Review of Droopler 4 with Grzegorz Bartman of Droptica

Planet Drupal - Tue, 2024-04-16 01:50
Embark on a comprehensive exploration of Droopler 4 as Grzegorz Bartman, the co-CEO of Droptica, unveils the evolutionary strides of this cutting-edge Drupal distribution in an interview with Alka Elizabeth from The DropTimes. Delve into the seamless integration of single directory components, Bootstrap 5, and the Radix theme, tailored to meet the needs of developers. Discover the user-centric design featuring 15 pre-configured components through Drupal paragraphs, responsive web elements, and robust SEO modules catering to marketing and SEO experts. Gain insights into the strategic choices driving the adoption of Drupal Paragraphs over the Layout Builder and the collaborative ethos propelling Droopler's advancement. Stay tuned to the promising future of Droopler, characterized by a steadfast commitment to SEO optimization and enhanced editor experiences.
Categories: FLOSS Project Planets

Volker Krause - KDE Frameworks on Android - Akademy 2019

Planet KDE - Tue, 2024-04-16 00:37

Targeting Android as a platform is attractive for our applications, both as a intermediate proving ground for Plasma Mobile, and due to the large market share. For new Kirigami-based applications that is a fairly straightforward process thanks to the portability of Qt. There is however also lots of valuable code predating mobile UI considerations, and functional gaps in Qt, which is where KDE Frameworks can help. What do we have already, what still needs to be done, and how can we do it?

Categories: FLOSS Project Planets

Katarina Behrens - Look Its LibreOffice on KDE Plasma Software - Akademy 2019

Planet KDE - Mon, 2024-04-15 21:59

This talk introduces LibreOffice's new Qt5-based KDE frontend because at the end of the day, the best free and open-source office suite deservers to be well-integrated into the best free and open-source desktop environment 😃

Categories: FLOSS Project Planets

Dan Leinir Turthra Jensen - Get Hot New Stuff Quick(ly) - Akademy 2019

Planet KDE - Mon, 2024-04-15 20:10

Get an introduction to the Qt Quick based KNewStuff components, the context of why they exist, and find out how you can use them in your own applications.

Categories: FLOSS Project Planets

KDE Plasma 6.0.4, Bugfix Release for April

Planet KDE - Mon, 2024-04-15 20:00

Tuesday, 16 April 2024. Today KDE releases a bugfix update to KDE Plasma 6, versioned 6.0.4.

This release adds three weeks' worth of new translations and fixes from KDE's contributors. The bugfixes are typically small but important and include:

  • Foldermodel: Export urls to the Desktop Portal on drag and copy. Commit.
  • System Monitor: Fix the column configuration dialog being too small on the overview page. Commit. Fixes bug #482008
  • Applets/battery: Check actual battery for charge state workaround. Commit.
View full changelog
Categories: FLOSS Project Planets

Trung Thanh Dinh - AI Face Recognition with OpenCV in digiKam - Akademy 2019

Planet KDE - Mon, 2024-04-15 18:24

Currently, we are observing an incredible development in technologies, especially in Artificial Intelligence field. Indeed, by learning from massive data, AI is particularly good at some tasks that normal algorithms cannot achieve as good level of performance, such as: image classification, speech recognition, object detection, tendency prediction, feature extraction, etc. Moreover, new AI algorithms with the emergence of neural networks and deep learning even makes AI models more robust, so that they can now give better prediction without any limitation in improving themselves.

Being aware of those assets, digiKam team has considered using deep learning in digiKam. Thus, this presentation aims to introduce a new implementation of facial recognition in digiKam, based on deep learning models and OpenCV DNN module, so as to improve the performance of facial recognition module.

Categories: FLOSS Project Planets

Ivana Isadora Devcic - Why Your Community Needs a Developer Portal - Akademy 2019

Planet KDE - Mon, 2024-04-15 17:24

How can a community like KDE benefit from a developer portal...and what is a developer portal, anyway? This talk aims to answer those questions, and offers practical advice for building a developer portal. The insights from this session can serve as guidance and inspiration to all contributors who want to make sure their community keeps growing and thriving.

Categories: FLOSS Project Planets

The Drop Times: Embracing Technology with Drupal

Planet Drupal - Mon, 2024-04-15 16:24

In 2024, technology has reached new heights, impacting our lives like never before. With AI becoming more common and exciting updates on the horizon, technology is shaping our world significantly.

Technology continues to redefine the way we live, work, and connect. New features, updates, and innovations emerge daily, shaping our world remarkably. At the heart of this transformation lies Drupal, the dynamic content management system that empowers individuals and businesses to navigate the digital realm easily and confidently. Drupal opens limitless possibilities in website development, offering a platform where creativity knows no bounds.

Drupal streamlines the process of creating and managing websites, putting the power of customization and control at our fingertips. With its intuitive interface and robust features, Drupal allows users to craft online experiences that are not just functional but truly exceptional.

Technology is advancing rapidly, and Drupal is here to make it accessible and beneficial for everyone. With its user-friendly features and adaptability, Drupal simplifies website creation and opens doors to endless possibilities.

Let's review the latest news covered by The Drop Times (TDT) last week.

In an Interview with Alka Elizabeth, sub-editor, TDT, Irina Zaks, Co-Founder and CTO at Fibonacci Web Studio, discusses her transition from a background in physics to web development, emphasizing the importance of clear, simple solutions in complex projects. She highlights the Fibonacci sequence's role in her design philosophy, advocating for harmony and simplicity in web development. Zaks also reflects on the unique challenges of academic websites and her efforts to promote open-source software within academia, particularly through her work at the Stanford Open Source Lab. The interview is a precursor to Stanford Web Camp. 

Head to the concluding part of our series, "Drupal Page Builders—Part 4: Distributions," crafted by AndrĂ© Angelantoni, Senior Drupal Architect, HeroDevs. The article discusses the practicalities and considerations of using Drupal distributions for page building. It emphasizes that while distributions can simplify the setup process, especially for non-technical users, they often involve complex maintenance and may slow down upgrades due to dependency on the distribution maintainers. The piece advises conducting a proof-of-concept for the most complex page layouts to ensure the chosen solution can handle the requirements, highlighting that many teams opt for minimal module use to maintain flexibility and control.

Explore the articles curated by Kazima Abbas regarding the featured speakers who presented their sessions at EvolveDrupal Atlanta. The first part features Michael Herchel, Mary Blabaum, Allison Vorthmann, Andy Waldrop, and Jesse Dyck.  Topics range from an Inclusive Design Approach to Drupal 7's End of Life on website security and from leveraging Drupal for scalable software products to insights on migrating to Drupal 10. The second part shifts to topics including The Fourth Decade of Website Deployments, the Crossroads of Website Evolution, and the updates from WCAG 2.1 to 2.2. John Cloys, Penny Kronz, and Steve Persch are featured in this segment. 

The upcoming Drupal Developer Days in Burgas, Bulgaria, from June 26-28, 2024, at Burgas Free University, has announced Suzanne Dergacheva and Frederik W. as keynote speakers. DrupalCamp Iberia 2024 has officially announced its schedule for the upcoming gathering on May 10 and 11 at PACT in Évora, marking a significant event in the Drupal community's annual calendar. The Network of European Drupal Associations (NEDA) has scheduled a meeting on April 24, 2024, led by Esmeralda Tijhoff. This meeting aims to foster connections among Drupal Associations globally, sharing experiences and discussing support strategies.

DrupalCon Portland 2024 extends a special offer to students, recent graduates, and individuals with Drupal Training Certification obtained since 2022, providing an opportunity to purchase tickets for the event at a discounted rate of $50. The DropTimes has been announced as the official media partner for The LagoonCon Portland 2024. DrupalSouth has made their talks from DrupalSouth 2024 accessible online via their YouTube channel! Now, you can catch up on all the insightful discussions and presentations from the comfort of your home. A particularly engaging story narrated at the event is the talk by Dallas Ramsden, a story of human resilience. The Eclipse Foundation has initiated a collaborative effort to establish common cybersecurity standards in response to the upcoming European Union's Cyber Resilience Act. This initiative involves multiple open-source organizations and aims to harmonize secure software development practices across the industry, addressing both regulatory requirements and the broader challenge of securing open-source software. The Greek Drupal Community celebrated a resurgence with the Greece Spring Sprint 2024, where experienced developers across Athens, Thessaloniki, and Patras collaborated to address numerous issues. We have received pictures via Georgios Andreadis of the event, take a look here.

Jesus Manuel Olivas, Co-Founder and CEO at Octahedroid, announced the initial release of two significant Drupal modules—Visual Editor and Decoupled Preview Iframe. A recent update from Drupal.org saw Gábor Hojtsy outlining the forthcoming release plans for Drupal 11, noting significant dependency updates and two potential release windows later this year. Obviously, this has created discussions in the community. Paul Johnson, a long-time participant and photographer at Drupal events, has announced an initiative by the Promote Drupal team to create the first official Promote Drupal Image Library. The team calls for submissions from photographers within the Drupal community who are willing to contribute their work under a Creative Commons license. 

While there are undoubtedly more stories to share, our current constraints may necessitate a temporary pause in our coverage.

To get timely updates, follow us on LinkedIn, Twitter and Facebook. Also, join us on Drupal Slack at #thedroptimes.

Thank you,
Sincerely
Kazima Abbas
Sub-editor, The Drop Times

Categories: FLOSS Project Planets

Ned Batchelder: Try it: function/class coverage report

Planet Python - Mon, 2024-04-15 16:02

I’ve added experimental function and class coverage reports to coverage.py. I’d like feedback about whether they behave the way you want them to.

I haven’t made a PyPI release. To try the new reports, install coverage from GitHub. Be sure to include the hash:

$ python3 -m pip install git+https://github.com/nedbat/coveragepy@f10c455b7c8fd26352de#egg=coverage==0.0

Then run coverage and make an HTML report as you usually do. You should have two new pages, not linked from the index page (yet). “htmlcov/function_index.html” is the function coverage report, and the classes are in “htmlcov/class_index.html”.

I had to decide how to categorize nested functions and classes. Inner functions are not counted as part of their outer functions. Classes consist of the executable lines in their methods, but not lines outside of methods, because those lines run on import. Each file has an entry in the function report for all of the lines outside of any function, called “(no function)”. The class report has “(no class)” entries for lines outside of any classes.

The result should be that every line is part of one function, or the “(no function)” entry, and every line is part of one class, or the “(no class)” entry. This is what made sense to me, but maybe there’s a compelling reason to do it differently.

The reports have a sortable column for the file name, and a sortable column for the function or class. Where functions or classes are nested, the name is a dotted sequence, but is sorted by only the last component. Just like the original file listing page, the new pages can be filtered to focus on areas of interest.

You can look at some sample reports:

It would be helpful if you could give me feedback on the original issue about some questions:

  • Is it useful to have “(no function)” and “(no class)” entries or is it just distracting pedantry? With the entries, the total is the same as the file report, but they don’t seem useful by themselves.
  • Does the handling of nested functions and classes make sense?
  • Should these reports be optional (requested with a switch) or always produced?
  • Is it reasonable to produce one page with every function? How large does a project have to get before that’s not feasible or useful?
  • And most importantly: do these reports help you understand how to improve your code?

This is only in the HTML report for now, but we can do more in the future. Other ideas about improvements are of course welcome. Thanks!

Categories: FLOSS Project Planets

Talking Drupal: Talking Drupal #446 - Test Driven Development

Planet Drupal - Mon, 2024-04-15 14:00

Today we are talking about Test Driven Development, Why it’s important, and How it improves development with guest Alexey Korepov. We’ll also cover Test Helpers as our module of the week.

For show notes visit: www.talkingDrupal.com/446

Topics
  • What does the term Test Driven Development (TDD) mean
  • Does Drupal make use of TDD
  • What makes TDD different from other methods of Development
  • Do you have to change your way of thinking
  • What are some good resources to learn TDD
  • Do you have any pointers for teams looking to get started
  • Are certain kinds of projects better suited to TDD
  • How have dev teams adapted to TDD
  • Any advice on environment setup
  • Any special tools
Resources Guests

Alexey Korepov - korepov.pro Murz

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan Martin Anderson-Clutz - mandclu Matt Glaman - mglaman.dev mglaman

MOTW Correspondent

Martin Anderson-Clutz - mandclu

  • Brief description:
    • Have you ever wanted an API that could dramatically simplify the process of writing Drupal unit tests? There’s a module for that.
  • Module name/project name:
  • Brief history
    • How old: created in Sep 2022 by today’s guest, Alexey Korepov
    • Versions available: 1.3.0 compatible with versions of Drupal 9.4 or newer, right up to Drupal 11
  • Maintainership
    • Actively maintained, latest release less than 3 months ago
    • Security coverage
    • Test coverage, would be ironic if it didn’t
    • API Documentation is available, linked from the project page
    • Number of open issues: 2 open issues, which are actually feature requests
  • Usage stats:
    • 5 sites officially, but modules or sites can leverage Test Helpers without enabling it, and this usage is recommended, so the number is actually higher
  • Module features and usage
    • Provides a new container that automated tests can leverage to perform common tasks with much less code.
    • For example, you can create a user or a node with a single line of code
    • You can also mock more complex operations like an entityQuery or loadMultiple call, again with a single line of code
    • Traditionally, writing unit tests is more complicated because by design they run without fully bootstrapping Drupal
    • That means that your test needs to mock functions or services in the code you’re testing which can result in units tests being much longer than the code they’re testing
    • Test Helpers also allows your tests to leverage existing mocks and stubs for popular services
    • The project page also links to the recording and slides for a talk Alexey gave about Test Helpers at DrupalCon Pittsburgh last year, if you want to do a deeper dive
Categories: FLOSS Project Planets

Okular gets interesting new features

Planet KDE - Mon, 2024-04-15 13:31

Next week KDE will release Applications 19.04, overhauling most of the suite of programs usually packaged with KDE's Plasma desktop. This new version makes KDE's applications more user-friendly, consistent with each other and smoother across the board.

Okular gets, among other improvements, support to show and verify digital signatures on PDFs. This feature is essential to use KDE's document viewer for business or if you need to exchange documents in any official capacity... like when negotiating an international peace treaty. Digital signatures allow you to establish the authenticity of a document, whether it has been tampered with or not, and confirm where it has come from and who sent it.

Attributions:

Ye oldie public domain footage and French Reel Victor Military Band Burchenal music available from:
https://archive.org

"Sun Lotion" by Steadman CC By-NC-ND available from:
http://freemusicarchive.org/music/Steadman/The_Bitter_End/08_sun_lotion
(along with many more banging tunes)

Peace treaty footage available from:
Clintonlibrary 42: https://www.youtube.com/channel/UCMkYd9teJEBlCOwDan6qPpg
One News New Zealand: https://www.youtube.com/channel/UCRdbeElPWvSumxERqoR7ZUA
European Commission: https://www.youtube.com/channel/UCMPaviJxybo1RTdzvYcU91A

Many thanks to the content creators that make their work available for free and under generous free licenses. Without your generosity, making videos like this one would not be possible.

Categories: FLOSS Project Planets

The Drop Times: Customer Benefits from Pantheon—Lytics Partnership Explained

Planet Drupal - Mon, 2024-04-15 13:19
Pantheon and Lytics have teamed up to redefine the landscape of website personalization, introducing a solution announced at the Google Cloud Next ‘24 conference. This collaboration offers a transformative approach by leveraging generative AI to provide sophisticated personalization tools, which were previously complex and expensive but are now streamlined and accessible.

By integrating Lytics' Personalization Engine, companies can deploy tailored digital content strategies within 30 days—significantly faster than the traditional months-long process. This partnership simplifies the personalization process and emphasizes using first-party data, aligning with privacy standards, and moving away from reliance on third-party cookies. Embrace this new digital marketing era with Pantheon and Lytics, where advanced technology meets user-centric privacy.
Categories: FLOSS Project Planets

Andreas Rönnquist: Status update for Allegro packaging in Debian

Planet Debian - Mon, 2024-04-15 12:10

I have mailed to a Debian bug on allegro4.4 describing my reasoning
regarding the allegro libraries – in short, allegro4.4 is pretty much
dead upstream, and my interest was basically to keep alex4 (which is
cool) in Debian, but since it migrated to non-free, my interest in
allegro4.4 has waned. So, if anybody would like to still see allegro4.4
in Debian, please step up now and help out. Since it is dead upstream,
my reasoning is that it is better to remove it from Debian if no
maintainer who wants to help steps up.

Previously Tobias Hansen has helped out, but now it is 8 (!) years
since his last upload of either package.(Please don’t interpret this as
judgement, I am very happy for the help he has provided and all the
work he has done on the packages).

Allegro5 is another deal – still active upstream, and I have kept it up
to date in Debian, and while I have held the latest upload a short while
because of the time_t transition, it will come sooner or later – There
I am also waiting on a final decision on this bug from upstream. Other than
that allegro 5 is in a very good state, and I will keep maintaining it
as long as I can. But help would of course be appreciated on allegro5
too.

Categories: FLOSS Project Planets

Real Python: Build a Blog Using Django, GraphQL, and Vue

Planet Python - Mon, 2024-04-15 10:00

Are you a regular Django user? Do you find yourself wanting to decouple your back end and front end? Do you want to handle data persistence in the API while you display the data in a single-page app (SPA) in the browser using a JavaScript framework like React or Vue?

If you answered yes to any of these questions, then you’re in luck. This tutorial will take you through the process of building a Django blog back end and a Vue front end, using GraphQL to communicate between them.

Projects are an effective way to learn and solidify concepts. This tutorial is structured as a step-by-step project so you can learn in a hands-on way and take breaks as needed.

In this tutorial, you’ll learn how to:

  • Translate your Django models into a GraphQL API
  • Run the Django server and a Vue application on your computer at the same time
  • Administer your blog posts in the Django admin
  • Consume a GraphQL API in Vue to show data in the browser

You can download all the source code you’ll use to build your Django blog application by clicking the link below:

Get Your Code: Click here to download the free sample code that you’ll use to build a blog using Django, GraphQL, and Vue.

Demo: A Django Blog Admin, a GraphQL API, and a Vue Front End

Blog applications are a common starter project because they involve create, read, update, and delete (CRUD) operations. In this project, you’ll use the Django admin to do the heavy CRUD lifting and you’ll focus on providing a GraphQL API for your blog data.

You’ll use Vue.js 3 and its composition API for the front end of your blog. Vue lets you create dynamic interfaces pretty smoothly, thanks to its reactive data binding and easy-to-manage components. Plus, since you’re dealing with data from a GraphQL API, you can leverage the Vue Apollo plugin.

Here’s a demonstration of the completed project in action:

Next, you’ll make sure you have all the necessary background information and tools before you dive in and build your blog application.

Project Overview

For this project, you’ll create a small blogging application with some rudimentary features:

  • Authors can write many posts.
  • Posts can have many tags and can be either published or unpublished.

You’ll build the back end of this blog in Django, complete with an admin for adding new blog content. Then you’ll expose the content data as a GraphQL API and use Vue to display that data in the browser.

You’ll accomplish this in several high-level steps. At the end of each step, you’ll find a link to the source code for that stage of the project.

If you’re curious about how the source code for each step looks, then you can click the link below:

Get Your Code: Click here to download the free sample code that you’ll use to build a blog using Django, GraphQL, and Vue.

Prerequisites

You’ll be best equipped for this tutorial if you already have a solid foundation in some web application concepts. You should understand how HTTP requests and responses and APIs work. You can check out Python & APIs: A Winning Combo for Reading Public Data to understand the details of using GraphQL APIs vs REST APIs.

Because you’ll use Django to build the back end for your blog, you’ll want to be familiar with starting a Django project and customizing the Django admin. If you haven’t used Django much before, you might also want to try building another Django-only project first. For a good introduction, check out Get Started with Django Part 1: Build a Portfolio App.

And because you’ll be using Vue on the front end, some experience with JavaScript will also help. If you’ve only used a JavaScript framework like jQuery in the past, the Vue introduction is a good foundation.

Familiarity with JSON is also important because GraphQL queries are JSON-like and return data in JSON format. You can read about Working with JSON Data in Python for an introduction.

Read the full article at https://realpython.com/python-django-blog/ »

[ Improve Your Python With 🐍 Python Tricks 💌 – Get a short & sweet Python Trick delivered to your inbox every couple of days. >> Click here to learn more and see examples ]

Categories: FLOSS Project Planets

Kdenlive 24.02.2 released

Planet KDE - Mon, 2024-04-15 09:53

The second maintenance release of the 24.02 series is out with performance optimizations when moving clips in the timeline and across multiple project bins, packaging improvements to macOS and Windows versions and fixes to copy/paste of effects, rotoscoping, Nvidia encoding among others.

Full changelog

  • Fix blurry folder icon with some project profiles. Commit.
  • Fix timeline not following playhead. Commit.
  • When copy/paste effects from a group, only paste effects for the active clip. Commit. Fixes bug #421667.
  • Optimize group move (don’t update clip position twice). Commit.
  • Fix nvidia encoding. Commit.
  • Multiple improvements for timeline keyboard grab (don’t test each frame on a move, scoll timeline accordingly, don’t lose focus on app switch). Commit.
  • Update to last commit: only sync shortcuts if there was a change. Commit.
  • Fix: editing toolbar config discards newly set keyboard shortcuts. Commit.
  • Increase Qt6 limit for max image size. Commit. See bug #484752.
  • Fix: Ensure secondary bins have a title bar when needed and that the dock widgets list is always correctly sorted. Commit.
  • Don’t perform bin block twice on main bin. Commit.
  • Fix: lag moving clips from one bin to another and unneeded monitor clip reload. Commit.
  • Fix crash and color theme broken on Windows when opening a project by double click. Commit.
  • Try to fix empty monitor when switching to/from fullscreen on Mac. Commit.
  • Fix mem leak on save. Commit.
  • Add more locks around xml producer, fix autosave triggered on project open. Commit.
  • Mediabrowser: ensure thumbnails are generated after changing the view. Commit.
  • Enable video thumbnails in media browser for Win/Mac. Commit.
  • Fix: don’t propose existing name for new sequence. Commit. Fixes bug #472753.
  • Fix crash in sequence clip thumbnails. Commit. See bug #483836.
  • Ensure we never reset the locale while an MLT XML Consumer is running (it caused data corruption). Commit. See bug #483777.
  • Add icon data to shared-mime-info. Commit.
  • Fix: favorite effects menu not refreshed when a new effect is set as favorite. Commit.
  • Fix: Rotoscoping not allowing to add points close to bottom of the screen. Commit.
  • Fix: Rotoscoping – allow closing shape with Return key, don’t discard initial shape when drawing it and seeking in timeline. Commit. See bug #484009.
  • Fix: cannot translate the “P” for Proxy in timeline. Commit. Fixes bug #471850.
  • Fix white background and blank monitor on Windows after going back from fullscreen. Commit. Fixes bug #484081.
  • Fix wrong KDEInstallDirs on Windows. Commit.
  • Fix recent commit not allowing to open files. Commit.
  • Don’t crash opening aa corrupted project file with no tracks. Commit.
  • Fix: cannot move compositions properly in timeline with Qt6. Commit. Fixes bug #484062.
  • Proxy clip: highlight proxy in file manager when opening the folder. Commit.

The post Kdenlive 24.02.2 released appeared first on Kdenlive.

Categories: FLOSS Project Planets

Real Python: Write Pythonic and Clean Code With namedtuple

Planet Python - Mon, 2024-04-15 08:00

In this quiz, you’ll test your understanding of Python’s namedtuple().

By working through this quiz, you’ll revisit how to create namedtuple classes, identify and take advantage of the cool features of namedtuple, use namedtuple instances to write Pythonic code, and decide when to use a namedtuple over a similar data structure.

[ Improve Your Python With 🐍 Python Tricks 💌 – Get a short & sweet Python Trick delivered to your inbox every couple of days. >> Click here to learn more and see examples ]

Categories: FLOSS Project Planets

KDE neon Open Door Chat

Planet KDE - Mon, 2024-04-15 06:16

We’re a few weeks after the KDE 6 Megarelease and while many people have it working well there were too many problems in KDE neon’s rollout.

We’ll be hosting two Open Door Chats on KDE meet tomorrow (Tue 16 April) where users can talk to the developers to talk about any problems you had.

https://meet.kde.org/b/jon-0yw-xqi-sk6 The access code will be posted on the KDE neon Telegram group and Matrix room or e-mail jr@jriddell.org for it

Chats at 09:00 UTC (10:00 BST, 11:00 CEST) and 19:00 UTC (20:00 BST, 21:00 CEST) Tue 16 April 2024

Categories: FLOSS Project Planets

eGenix.com: Python Meeting DĂŒsseldorf - 2024-04-17

Planet Python - Mon, 2024-04-15 04:00

The following text is in German, since we're announcing a regional user group meeting in DĂŒsseldorf, Germany.

AnkĂŒndigung

Das nĂ€chste Python Meeting DĂŒsseldorf findet an folgendem Termin statt:

17.04.2024, 18:00 Uhr
Raum 1, 2.OG im BĂŒrgerhaus Stadtteilzentrum Bilk
DĂŒsseldorfer Arcaden, Bachstr. 145, 40217 DĂŒsseldorf


Programm Bereits angemeldete VortrÀge
  • Marc-AndrĂ© Lemburg:
    Advanced parsing structured data with Python's new match statement
  • Jens Diemer:
    Anbindung von Tinkerforge in Home Assistant
  • Charlie Clark:
    Eine kleine Datenanalyse
  • Detlef Lannert:
    Überblick ĂŒber CLI-Frameworks
Weitere VortrÀge können gerne noch angemeldet werden. Bei Interesse, bitte unter info@pyddf.de melden. Startzeit und Ort

Wir treffen uns um 18:00 Uhr im BĂŒrgerhaus in den DĂŒsseldorfer Arcaden.

Das BĂŒrgerhaus teilt sich den Eingang mit dem Schwimmbad und befindet sich an der Seite der Tiefgarageneinfahrt der DĂŒsseldorfer Arcaden.

Über dem Eingang steht ein großes "Schwimm’ in Bilk" Logo. Hinter der TĂŒr direkt links zu den zwei AufzĂŒgen, dann in den 2. Stock hochfahren. Der Eingang zum Raum 1 liegt direkt links, wenn man aus dem Aufzug kommt.

>>> Eingang in Google Street View

⚠ Wichtig: Bitte nur dann anmelden, wenn ihr absolut sicher seid, dass ihr auch kommt. Angesichts der begrenzten Anzahl PlĂ€tze, haben wir kein VerstĂ€ndnis fĂŒr kurzfristige Absagen oder No-Shows. Einleitung

Das Python Meeting DĂŒsseldorf ist eine regelmĂ€ĂŸige Veranstaltung in DĂŒsseldorf, die sich an Python Begeisterte aus der Region wendet.

Einen guten Überblick ĂŒber die VortrĂ€ge bietet unser PyDDF YouTube-Kanal, auf dem wir Videos der VortrĂ€ge nach den Meetings veröffentlichen.

Veranstaltet wird das Meeting von der eGenix.com GmbH, Langenfeld, in Zusammenarbeit mit Clark Consulting & Research, DĂŒsseldorf:

Format

Das Python Meeting DĂŒsseldorf nutzt eine Mischung aus (Lightning) Talks und offener Diskussion.

VortrĂ€ge können vorher angemeldet werden, oder auch spontan wĂ€hrend des Treffens eingebracht werden. Ein Beamer mit HDMI und FullHD Auflösung steht zur VerfĂŒgung.

(Lightning) Talk Anmeldung bitte formlos per EMail an info@pyddf.de

Kostenbeteiligung

Das Python Meeting DĂŒsseldorf wird von Python Nutzern fĂŒr Python Nutzer veranstaltet.

Da Tagungsraum, Beamer, Internet und GetrĂ€nke Kosten produzieren, bitten wir die Teilnehmer um einen Beitrag in Höhe von EUR 10,00 inkl. 19% Mwst. SchĂŒler und Studenten zahlen EUR 5,00 inkl. 19% Mwst.

Wir möchten alle Teilnehmer bitten, den Betrag in bar mitzubringen.

Anmeldung

Da wir nur 25 Personen in dem angemieteten Raum empfangen können, möchten wir bitten, sich vorher anzumelden.

Meeting Anmeldung bitte per Meetup

Weitere Informationen

Weitere Informationen finden Sie auf der Webseite des Meetings:

              https://pyddf.de/

Viel Spaß !

Marc-Andre Lemburg, eGenix.com

Categories: FLOSS Project Planets

Zato Blog: Service-oriented API task scheduling

Planet Python - Mon, 2024-04-15 04:00
Service-oriented API task scheduling 2024-04-15, by Dariusz Suchojad

An integral part of Zato, its scalable, service-oriented scheduler makes it is possible to execute high-level API integration processes as background tasks. The scheduler runs periodic jobs which in turn trigger services and services are what is used to integrate systems.

Integration process

In this article we will check how to use the scheduler with three kinds of jobs, one-time, interval-based and Cron-style ones.

What we want to achieve is a sample yet fairly common use-case:

  • Periodically consult a remote REST endpoint for new data
  • Store data found in Redis
  • Push data found as an e-mail attachment

Instead of, or in addition to, Redis or e-mail, we could use SQL and SMS, or MongoDB and AMQP or anything else - Redis and e-mail are just example technologies frequently used in data synchronisation processes that we use to highlight the workings of the scheduler.

No matter the input and output channels, the scheduler works always the same - a definition of a job is created and the job's underlying service is invoked according to the schedule. It is then up to the service to perform all the actions required in a given integration process.

Python code

Our integration service will read as below:

# -*- coding: utf-8 -*- # Zato from zato.common.api import SMTPMessage from zato.server.service import Service class SyncData(Service): name = 'api.scheduler.sync' def handle(self): # Which REST outgoing connection to use rest_out_name = 'My Data Source' # Which SMTP connection to send an email through smtp_out_name = 'My SMTP' # Who the recipient of the email will be smtp_to = 'hello@example.com' # Who to put on CC smtp_cc = 'hello.cc@example.com' # Now, let's get the new data from a remote endpoint .. # .. get a REST connection by name .. rest_conn = self.out.plain_http[rest_out_name].conn # .. download newest data .. data = rest_conn.get(self.cid).text # .. construct a new e-mail message .. message = SMTPMessage() message.subject = 'New data' message.body = 'Check attached data' # .. add recipients .. message.to = smtp_to message.cc = smtp_cc # .. attach the new data to the message .. message.attach('my.data.txt', data) # .. get an SMTP connection by name .. smtp_conn = self.email.smtp[smtp_out_name].conn # .. send the e-mail message with newest data .. smtp_conn.send(message) # .. and now store the data in Redis. self.kvdb.conn.set('newest.data', data)

Now, we just need to make it run periodically in background.

Mind the timezone

In the next steps, we will use the Zato Dashboard to configure new jobs for the scheduler.

Keep it mind that any date and time that you enter in web-admin is always interepreted to be in your web-admin user's timezone and this applies to the scheduler too - by default the timezone is UTC. You can change it by clicking Settings and picking the right timezone to make sure that the scheduled jobs run as expected.

It does not matter what timezone your Zato servers are in - they may be in different ones than the user that is configuring the jobs.

Endpoint definitions

First, let's use web-admin to define the endpoints that the service uses. Note that Redis does not need an explicit declaration because it is always available under "self.kvdb" in each service.

  • Configuring outgoing REST APIs

  • Configuring SMTP e-mail

Now, we can move on to the actual scheduler jobs.

Three types of jobs

To cover different integration needs, three types of jobs are available:

  • One-time - fires once only at a specific date and time and then never runs again
  • Interval-based - for periodic processes, can use any combination of weeks, days, hours, minutes and seconds for the interval
  • Cron-style - similar to interval-based but uses the syntax of Cron for its configuration

One-time

Select one-time if the job should not be repeated after it runs once.

Interval-based

Select interval-based if the job should be repeated periodically. Note that such a job will by default run indefinitely but you can also specify after how many times it should stop, letting you to express concepts such as "Execute once per hour but for the next seven days".

Cron-style

Select cron-style if you are already familiar with the syntax of Cron or if you have some Cron tasks that you would like to migrate to Zato.

Running jobs manually

At times, it is convenient to run a job on demand, no matter what its schedule is and regardless of what type a particular job is. Web-admin lets you always execute a job directly. Simply find the job in the listing, click "Execute" and it will run immediately.

Extra context

It is very often useful to provide additional context data to a service that the scheduler runs - to achieve it, simply enter any arbitrary value in the "Extra" field when creating or an editing a job in web-admin.

Afterwards, that information will be available as self.request.raw_request in the service's handle method.

Reusability

There is nothing else required - all is done and the service will run in accordance with a job's schedule.

Yet, before concluding, observe that our integration service is completely reusable - there is nothing scheduler-specific in it despite the fact that we currently run it from the scheduler.

We could now invoke the service from command line. Or we could mount it on a REST, AMQP, WebSocket or trigger it from any other channel - exactly the same Python code will run in exactly the same fashion, without any new programming effort needed.

More blog posts➀
Categories: FLOSS Project Planets

GNU Taler news: GNU Taler v0.10 released

GNU Planet! - Sun, 2024-04-14 18:00
We are happy to announce the release of GNU Taler v0.10.
Categories: FLOSS Project Planets

Pages