Feeds

PSF GSoC students blogs: Weekly Blog Post | Gsoc'2020 | #10

Planet Python - Wed, 2020-08-05 14:37

Greetings, People of the world!

Got a little late posting this blog. Was stuck with a couple of things but didn't let that prevent me from coding.

1. What did you do this week?

So last week I worked on adding preview option that enabled user to preview all customized icons on the modal when multiple icons are customized. Along with this I made a couple of other changes in the icon editor modal according to the suggestions and inputs from my teammates and mentors.

2. What did you do this week?

This week I will be working on adding customization feature for animated icons and begin with making a couple of animated icons too.

 

3. Did you get stuck anywhere?

No I did not. things are going pretty smooth now on.

Categories: FLOSS Project Planets

Sooper Drupal Themes: Updates for DXPR Theme, DXPR Layout Builder, and Lightning DXPR

Planet Drupal - Wed, 2020-08-05 13:10

Today we're presenting the first set of minor updates across the new DXPR (Formerly Sooperthemes/Glazed) branded products. 6 weeks ago we presented the 1.0.0 version of DXPR Builder, DXPR Theme, and our Lightning DXPR Drupal distribution.

What's New?

DXPR Theme
 

  • We updated our Free Drupal Theme to let you choose between a traditional 3-line hamburger menu icon and a 2-line menu icon. You can see it in use on DXPR.com right now! Do you like this new option? Let us know in the comments, we may choose to add more options to customize the menu icon.
  • We pushed several front-end performance enhancements that will be especially noticeable if your digital experience platform is taking advantage of HTTP/2. Want to know more about the front-end performance of our products? Feel free to run your favorite tests on our website. Last we checked all the pages in our main menu score in between 95 and 100 on Google PageSpeed. 
  • Drupal 9 compatibility

DXPR Builder Theme Changelog

DXPR Builder

  • For the first time ever we're updating DXPR Builder via our very own composer package server
  • We added an option "Mirror" to our row element. There is a design trend in creating story-like layouts with a rhythm of alternating text+image, image+text rows. However on the mobile design the order of content remains as text+image, text+image. With our new mirror option you can reverse the order the row's columns only on the desktop design. An example of this new feature is our Drupal Layout Builder product page. 
  • We've updated Font Awesome 5 Pro icons and included the duotone icon set, which is now available on all elements that support the Icon setting.
  • We modified how our "Full height" option on the section element works. This option will still make your section as tall as the viewer's screen, but we switched to making this minimum-height. This is to prevent text from invisibly flowing off the screen when the sections' content simply won't fit on a small screen.
  • Drupal 9 compatibility

DXPR Builder Changelog

DXPR Builder Enterprise

  • Added a "local video" drag and drop element for uploading videos to your media library and streaming them directy from your Drupal platform.
  • Fixed an issue with exporting "user profile" configuration entities.
  • Drupal 9 compatibility

DXPR Builder Enterprise Changelog

Lightning DXPR

  • Updated to Acquia Lightning 5.x.
  • Updated all depedencies to Drupal 9 compatible versions.

    Lightning DXPR Changelog

      How to update?
      Categories: FLOSS Project Planets

      BADCamp News: Get Ready for Virtual BADCamp: Registration and Session Submissions now open!

      Planet Drupal - Wed, 2020-08-05 12:53
      Get Ready for Virtual BADCamp: Registration and Session Submissions now open! Wed, 08/05/2020 - 12:00 vclewis Wed, 08/05/2020 - 09:53 We can’t wait to see you all online! Join us Oct 14-17, 2020 for the first-ever virtual BADCamp. Don’t wait: register now!  With no travel arrangements to make, setting yourself up for an epic time at BADCamp is as easy as letting us know you’re attending. Consider all the other ways to get involved! Drupal Planet
      Categories: FLOSS Project Planets

      Linux App Summit Goes Online in November

      Planet KDE - Wed, 2020-08-05 12:36



      Once again, KDE and GNOME are teaming up to bring you THE conference for people interested in establishing Linux as a great end-user platform. At the Linux App Summit we work on making app creation for users easy and worthwhile.

      Since travel is complicated nowadays, we decided to make LAS 2020 a virtual conference. The event will open Thursday, 12th November and we'll wrap up on Saturday, 14th November. Our goal is to engage people in multiple time zones and make the content available online after the conclusion.

      The Call for Talks is now open! Please take a look at the suggested topics and send in your ideas. We encourage new speakers, so don’t hesitate to submit a proposal!

      Save the date on your calendar and we look forward to seeing you at LAS 2020!

      Learn more about LAS 2020.

      Important Dates:
      • Call for Papers opens: Today!
      • Call for Papers closes: September 15th
      • Speakers announced: October 1st
      • Conference: November 12th to November 14th
      Categories: FLOSS Project Planets

      KBibTeX 0.10-alpha2 aka 0.9.81

      Planet KDE - Wed, 2020-08-05 11:32

      The release of KBibTeX 0.10 is approaching with the release of KBibTeX 0.10-alpha2 aka 0.9.81.

      Improvements and changes since 0.9.2 are less on the user interface, but on the code behind it:

      Read more... )

      Many thanks go to contributors such as bug reporters, translators, and everyone else who contributed to KBibTeX!

      Source code is available as tar ball, cryptographically signed using GnuPG key 1808CB466328F4380685A3B1A264FD738D861F41.



      comments
      Categories: FLOSS Project Planets

      Tag1 Consulting: Modernizing Drupal’s UI and Improving Accessibility with The Olivero & Claro Themes - TTT #021

      Planet Drupal - Wed, 2020-08-05 10:33

      Last month at DrupalCon Global, Dries Buytaert, the founder of Drupal, announced that a major focus of Drupal 9 will be improving the user interface and user experience of the platform - for all personas. Two of the five D9 Strategic Initiatives have been dedicated to making this happen. The “New Front-End Theme Initiative” or user interface (UI) for Drupal, also known as the Olivero Theme, covers the end-user experience. The “Admin UI & JavaScript Modernisation Initiative”, also known as the Claro Admin theme covers site builders, managers, and administrators. A critical component of improving the experience for all users is accessibility. In this episode of Tag1TeamTalks, Michael Meyers (Managing Director, Tag1) talks with Kat Shaw (Senior Front-end Developer, Lullabot), a CPACC-certified accessibility expert working on both initiatives. Join us for a tour and overview of both themes, get unique insight into the development process and inner workings of strategic initiatives, learn about the accessibility improvements, and find out how all these benefit you and your Drupal sites (hint: your sites become a lot more accessible, for free, with little effort on your part). Both initiatives carry over from D8 and have been under development for some time. In Drupal...

      Read more michaelemeyers Wed, 08/05/2020 - 07:33
      Categories: FLOSS Project Planets

      Real Python: What Are Python Wheels and Why Should You Care?

      Planet Python - Wed, 2020-08-05 10:00

      Python .whl files, or wheels, are a little-discussed part of Python, but they’ve been a boon to the installation process for Python packages. If you’ve installed a Python package using pip, then chances are that a wheel has made the installation faster and more efficient.

      Wheels are a component of the Python ecosystem that helps to make package installs just work. They allow for faster installations and more stability in the package distribution process. In this tutorial, you’ll dive into what wheels are, what good they serve, and how they’ve gained traction and made Python even more of a joy to work with.

      In this tutorial, you’ll learn:

      • What wheels are and how they compare to source distributions
      • How you can use wheels to control the package installation process
      • How to create and distribute wheels for your own Python packages

      You’ll see examples using popular open source Python packages from both the user’s and the developer’s perspective.

      Free Bonus: Click here to get a Python Cheat Sheet and learn the basics of Python 3, like working with data types, dictionaries, lists, and Python functions.

      Setup

      To follow along, activate a virtual environment and make sure you have the latest versions of pip, wheel, and setuptools installed:

      $ python -m venv env && source ./env/bin/activate $ python -m pip install -U pip wheel setuptools Successfully installed pip 20.1 setuptools-46.1.3 wheel-0.34.2

      That’s all you need to experiment with installing and building wheels!

      Python Packaging Made Better: An Intro to Python Wheels

      Before you learn how to package a project into a wheel, it helps to know what using one looks like from the user’s side. It may sound backward, but a good way to learn how wheels work is to start by installing something that isn’t a wheel.

      You can start this experiment by installing a Python package into your environment just as you might normally do. In this case, install uWSGI version 2.0.x:

      1 $ python -m pip install 'uwsgi==2.0.*' 2 Collecting uwsgi==2.0.* 3 Downloading uwsgi-2.0.18.tar.gz (801 kB) 4 |████████████████████████████████| 801 kB 1.1 MB/s 5 Building wheels for collected packages: uwsgi 6 Building wheel for uwsgi (setup.py) ... done 7 Created wheel for uwsgi ... uWSGI-2.0.18-cp38-cp38-macosx_10_15_x86_64.whl 8 Stored in directory: /private/var/folders/jc/8_hqsz0x1tdbp05 ... 9 Successfully built uwsgi 10 Installing collected packages: uwsgi 11 Successfully installed uwsgi-2.0.18

      To fully install uWSGI, pip progresses through several distinct steps:

      1. On line 3, it downloads a TAR file (tarball) named uwsgi-2.0.18.tar.gz that’s been compressed with gzip.
      2. On line 6, it takes the tarball and builds a .whl file through a call to setup.py.
      3. On line 7, it labels the wheel uWSGI-2.0.18-cp38-cp38-macosx_10_15_x86_64.whl.
      4. On line 10, it installs the actual package after having built the wheel.

      The tar.gz tarball that pip retrieves is a source distribution, or sdist, rather than a wheel. In some ways, a sdist is the opposite of a wheel.

      A source distribution contains source code. That includes not only Python code but also the source code of any extension modules (usually in C or C++) bundled with the package. With source distributions, extension modules are compiled on the user’s side rather than the developer’s.

      Source distributions also contain a bundle of metadata sitting in a directory called <package-name>.egg-info. This metadata helps with building and installing the package, but user’s don’t really need to do anything with it.

      From the developer’s perspective, a source distribution is what gets created when you run the following command:

      $ python setup.py sdist

      Now try installing a different package, chardet:

      1 $ python -m pip install 'chardet==3.*' 2 Collecting chardet 3 Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB) 4 |████████████████████████████████| 133 kB 1.5 MB/s 5 Installing collected packages: chardet 6 Successfully installed chardet-3.0.4

      You can see a noticeably different output than the uWSGI install.

      Installing chardet downloads a .whl file directly from PyPI. The wheel name chardet-3.0.4-py2.py3-none-any.whl follows a specific naming convention that you’ll see later. What’s more important from the user’s perspective is that there’s no build stage when pip finds a compatible wheel on PyPI.

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

      [ 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

      Drudesk: Your website upgrade from Drupal 7 to Drupal 9: a look at alternatives

      Planet Drupal - Wed, 2020-08-05 08:00

      Drupal 7 website owners might have heard, perhaps not even once, that their websites are getting outdated.

      With the recent release of Drupal 9, this topic is gaining special momentum. However, some business owners are reluctant to upgrade from Drupal 7 to Drupal 9. They need other solutions and alternatives.

      Categories: FLOSS Project Planets

      Andre Roberge: Identifying misleading type hints

      Planet Python - Wed, 2020-08-05 01:07
      Yesterday on Twitter:

      For beginners, unintentional type hints can be really confusing.  No SyntaxError, no traceback to guide the beginners ... Still, could Friendly-traceback help?


      I've already mentioned how Friendly-traceback could be used by Thonny, and how it could also be used with Mu.  What about IDLE?


      Yes, it can.  And what if it is typos and not type hints that are causing problems?



      Note: This is freshly written code. The documentation really needs to be updated to reflect the most recent changes.
      Categories: FLOSS Project Planets

      PSF GSoC students blogs: Weekly Check-In #10

      Planet Python - Wed, 2020-08-05 00:18

      I am on leave till 10th August, so there's nothing to report for this week. But there was no loss of work since I had started coding in the Community Bonding period itself.

      Categories: FLOSS Project Planets

      Full Stack Python: Responding to SMS Text Messages with Python &amp; Flask

      Planet Python - Wed, 2020-08-05 00:00

      Short Message Service (SMS) text messages are easy to send from Python applications with a web application programming interface (API). Flask applications can also receive incoming text messages and respond back to the sender with just a few lines of Python code.

      Tools We Need

      This tutorial is fine for both Python 2 and 3. Make sure you have one of those two versions installed on your system.

      If you need assistance getting pip and virtualenv installed, take a look at the first few steps in the how to set up Python 3, Flask and Green Unicorn on Ubuntu 16.04 LTS guide, which shows how to install system packages for those tools.

      Installing Our Dependencies

      Our code will use a helper library to make it easier to respond to text messages from Python. The helper library dependency along with the Flask code library can be installed from PyPI into a virtualenv. In your terminal use the following command to generate a new virtualenv.

      virtualenv respondsms

      Activate the virtualenv.

      source respondsms/bin/activate

      The command prompt will change after we properly activate the virtualenv to something like this:

      Install Flask and the Twilio Python helper library into the virtualenv with the pip command.

      pip install flask twilio==5.7.0

      The dependencies are installed so that we can use it with our Python code. Now we can write our Python application.

      Building Our Flask Web App

      Our Flask application will have two routes: one to make sure the web app is running and another that handles incoming HTTP POST requests. Create a new file named app.py in your home directory or where you choose to store your Python project files.

      Within app.py write the following code. You can also see this code in a GitHub Gist if that's easier to copy and paste.

      from flask import Flask, Response, request from twilio import twiml app = Flask(__name__) @app.route("/") def check_app(): # returns a simple string stating the app is working return Response("It works!"), 200 @app.route("/twilio", methods=["POST"]) def inbound_sms(): response = twiml.Response() # we get the SMS message from the request. we could also get the # "To" and the "From" phone number as well inbound_message = request.form.get("Body") # we can now use the incoming message text in our Python application if inbound_message == "Hello": response.message("Hello back to you!") else: response.message("Hi! Not quite sure what you meant, but okay.") # we return back the mimetype because Twilio needs an XML response return Response(str(response), mimetype="application/xml"), 200 if __name__ == "__main__": app.run(debug=True)

      The inline comments on the lines starting with # explain what the lines below them do. Flask applications define URL routes with the @app.route decorator. Our application needs two routes therefore we have two of those decorators defined.

      Give the application a try by running it with python app.py. If you have trouble running the program, make sure your virtualenv is still active so that the application can use the Flask and Twilio code libraries we installed earlier.

      Open a web browser and go to localhost:5000 (or 127.0.0.1:5000). We should see "It works!" on the screen.

      There is one problem with our application running on our local development environment: there's no way for our server to receive HTTP POST requests unless we use a localhost tunnel.

      Localhost Tunneling with Ngrok

      Ngrok provides a localhost tunnel so that outside services can connect to a server running in your local development environment. Download and install Ngrok.

      We can now run Ngrok locally and connect our Flask app running on port 5000. Within the directory where you extracted Ngrok, run this command.

      ./ngrok http 5000

      Awesome, now we can use that Ngrok Forwarding URL to access our application from any machine that has an internet connection. Replace the URL in the web browser with your own Forwarding URL, like I did in this screenshot.

      We just need a phone number that'll hit our application with a POST request to respond to text messages.

      Obtaining Our Phone Number

      We can use our Flask application's route to respond to incoming web API requests based on incoming SMS messages to a Twilio phone number. Go to the Twilio website and sign up for a free trial account to use their API. If you already have a Twilio account then sign into your existing account.

      The Twilio trial account allows you to send and receive text messages to your own validated phone number. To send and respond to SMS to and from any phone number then you need to upgrade your account. Trial accounts are great for initial development before your application goes live.

      When you sign up, you receive a free Twilio phone number. We can configure that phone number to forward the SMS information to our web application by setting up the response webhook.

      Go to the manage phone numbers screen and click on the phone number you want to configure for responding to inbound text messages.

      Scroll down to near the bottom of the page and look for the "Messaging" header. Modify the "A Message Comes in" text box so that it has your ngrok Forwarding URL plus the "/twilio" route, as shown in this screenshot.

      Now press the red "Save" button at the bottom to make our changes take effect.

      Our application is ready to go - time to give our phone number a try! Send "Hello" or whatever text you want to your phone number. Here is what the result looks like on my iPhone.

      This simple Flask application is a good start to build more complicated responses such as adding natural language processing, building SMS Slack bots or coding SMS-powered NES Game Genies.

      What's next?

      Sweet, now our Flask web app automatically responds to incoming SMS text messages! It's pretty crazy to think that entire businesses such as SuperPhone and Remind are built off code that started out very similar to the code we just wrote.

      Questions? Contact me via Twitter @fullstackpython or @mattmakai. I'm also on GitHub with the username mattmakai.

      See something wrong in this post? Fork this page's source on GitHub and submit a pull request.

      Categories: FLOSS Project Planets

      Full Stack Python: How to Send SMS Text Messages with Python

      Planet Python - Wed, 2020-08-05 00:00

      Short Message Service (SMS) text messages are ubiquitous for communication all over the world. It is easy to send SMS text messages from a Python application using a web application programming interface (API). Let's take a look at the tools we need to quickly add SMS capability to our Python apps.

      Tools We Need

      This guide works with both Python 2 and 3, so make sure you have one of those two versions installed.

      If you need assistance getting pip and virtualenv installed, check out the first few steps of the how to set up Python 3, Flask and Green Unicorn on Ubuntu 16.04 LTS guide that'll show how to install system packages for those tools.

      Using a Web API

      We're going to use a web API to make sending SMS easier and more reliable. Head to the Twilio website and sign up for a free trial account awesome for more than just sending text messages!) then sign into your existing account.

      The Twilio trial account allows you to send text messages to your own validated phone number. When you want to send SMS to any phone number in your country or other countries then you can upgrade your account to send messages for fractions of a cent.

      After signing up, you will get a free phone number in your country. We can use that phone number without any configuration to send outbound text messsages. You can also receive text messages but that requires changing the Request URL webhook in the phone number configuration screen - we'll cover that in a future blog post.

      Installing Our Dependency

      Our code will use a helper library to make it easier to send text messages from Python. We are going to install the helper library from PyPI into a virtualenv. First we need to create the virtualenv. In your terminal use the following command to create a new virtualenv. If you need to install virtualenv take a look at the how to set up Python 3, Flask and Green Unicorn on Ubuntu 16.04 LTS guide.

      virtualenv sendsms

      Activate the virtualenv.

      source sendsms/bin/activate

      The command prompt will change after we properly activate the virtualenv to something like this:

      Now install the Twilio Python helper library. We are using the 6.0.0 or above library version, which is important because the syntax in this post is backwards-incompatible with 5.x and previous Twilio helper library versions.

      pip install twilio>=6.0.0

      The helper library is now installed and we can use it with the Python code we create and execute.

      Sending SMS From Python

      Fire up the Python interpreter in the terminal using the python command, or create a new file named send_sms.py.

      We need to grab our account credentials from the Twilio Console to connect our Python code to our Twilio account. Go to the Twilio Console and copy the Account SID and Authentication Token into your Python code.

      Enter the following code into the interpreter or into the new Python file. You can also copy and paste the code from the blog-code-examples Git repository in the Full Stack Python GitHub organization.

      # we import the Twilio client from the dependency we just installed from twilio.rest import Client # the following line needs your Twilio Account SID and Auth Token client = Client("ACxxxxxxxxxxxxxx", "zzzzzzzzzzzzz") # change the "from_" number to your Twilio number and the "to" number # to the phone number you signed up for Twilio with, or upgrade your # account to send SMS to any phone number client.messages.create(to="+19732644152", from_="+12023351278", body="Hello from Python!")

      All the lines above that start with # are comments. Once you enter that code into the interpreter or run the Python script using python send_sms.py the SMS will be sent.

      In a few seconds you should see a message appear on your phone. I'm on iOS so here's how the text message I received looked.

      That's it! You can add this code to any Python code to send text messages. Just keep your Auth Token secret as it'll allow anyone that has it to use your account to send and receive messages.

      Questions? Contact me via Twitter @fullstackpython or @mattmakai. I'm also on GitHub with the username mattmakai.

      See something wrong in this post? Fork this page's source on GitHub and submit a pull request.

      Categories: FLOSS Project Planets

      Dirk Eddelbuettel: RcppCCTZ 0.2.8: Minor API Extension

      Planet Debian - Tue, 2020-08-04 21:25

      A new minor release 0.2.8 of RcppCCTZ is now on CRAN.

      RcppCCTZ uses Rcpp to bring CCTZ to R. CCTZ is a C++ library for translating between absolute and civil times using the rules of a time zone. In fact, it is two libraries. One for dealing with civil time: human-readable dates and times, and one for converting between between absolute and civil times via time zones. And while CCTZ is made by Google(rs), it is not an official Google product. The RcppCCTZ page has a few usage examples and details. This package was the first CRAN package to use CCTZ; by now at least three others do—using copies in their packages which remains less than ideal.

      This version adds three no throw variants of three existing functions, contributed again by Leonardo. This will be used in an upcoming nanotime release which we are finalising now.

      Changes in version 0.2.8 (2020-08-04)
      • Added three new nothrow variants (for win32) needed by the expanded nanotime package (Leonardo in #37)

      We also have a diff to the previous version thanks to CRANberries. More details are at the RcppCCTZ page; code, issue tickets etc at the GitHub repository.

      If you like this or other open-source work I do, you can now sponsor me at GitHub. For the first year, GitHub will match your contributions.

      This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.

      Categories: FLOSS Project Planets

      Holger Levsen: 20200804-debconf6

      Planet Debian - Tue, 2020-08-04 20:24
      DebConf6

      This tshirt is 15 years old and from DebConf6.

      DebConf6 was my 4th DebConf and took place in Oaxtepec, Mexico.

      I'm a bit exhausted right now which is probably quite fitting to write something about DebConf6... many things in life are a question of perception, so I will mention the waterfall and the big swirl and the band playing with the fireworks during the conference dinner, the joy that we finally could use the local fiber network (after asking for months) just after discovering that the 6h shopping tour forgot to bring the essential pig tail connectors to connect the wireless antennas to the cards, which we needed to provide network to the rooms where the talks would take place.

      DebConf6 was the first DebConf with live streaming using dvswitch (written by Ben Hutchings and removed from unstable in 2015 as the world had moved to voctomix, which is yet another story to be told eventually). The first years (so DebConf6 and some) the videoteam focussed on getting the post processing done and the videos released, and streaming was optional, even though it was an exciting new feature and we still managed to stream mostly all we recorded and sometimes more...

      Setting up the network uplink also was very challenging and took, I don't remember exactly, until day 4 or 5 of DebCamp (which lasted 7 days), so there were group of geeks in need of network, and mostly unable to fix it, because for fixing it we needed to communicate and IRC was down. (There was no mobile phone data at that time, the first iphone wasn't sold yet, it were the dark ages.)

      I remember literally standing on a roof to catch the wifi signal and excitingly shouting "I got one ping back! ... one ping back ...", less excitingly. I'll spare you the details now (and me writing them down) but I'll say that the solution involved Neil McGovern climbing an antenna and attaching a wifi antenna up high, probably 15m or 20m or some such. Finally we had uplink. I don't recall if that pig tail connector incident happened before of after, but in the end the network setup worked nicely on the wide area we occupied. Even though in some dorms the cleaning people daily removed one of our APs to be able to watch TV while cleaning (Which kind of was ok, but still... they could have plugged it back in.)

      I also joyfully remember a certain vegetarian table, a most memorable bus ride (I'll just say 5 or rather cinco, and, unrelated except on the same bus ride, "Jesus" (and "Maria" for sure..)!) and talking with Jim Gettys and thus learning about the One Laptop per Child (OLPC) project.

      As for any DebConf, there's sooo much more to be told, but I'll end here and just thank Gunnar Wolf (as he masterminded much of this DebConf) and go to bed now

      Categories: FLOSS Project Planets

      The structure of KDE, or how anarchy sometimes works

      Planet KDE - Tue, 2020-08-04 14:09

      KDE is a funny beast. In a lot of ways, it’s an anarchic society that actually works!

      Engineers and designers work on KDE software and websites, but none of them are paid by KDE itself. Most are volunteers but some (myself included) are paid by 3rd-party companies. These people work on what they want or what they are sponsored by their company to work on, not what anyone in KDE tells them to work on.

      KDE has a board of directors, but they are elected by KDE’s membership rather than stockholders (there is no stock lol), and do not control KDE’s strategic direction the way the board of directors does in a corporation. Rather, they mostly take care of financial and legal matters, sort out copyright claims, help to organize the yearly Akademy conference, and so on.

      There is no formal “upper management” or even “middle management” layer. We have the “gardening team” whose members constitute volunteer managers, but we mostly do things like triaging bugs, following up on stuck merge requests, perform QA on unreleased software, and so on. We support the people doing the work, rather than telling them what to do.

      So does anything get done around here?!

      Well, just because KDE is an anarchy, does not mean that there is no organization and coordination! It’s just all done on a voluntary basis, with slightly unusual motivation techniques.

      In a corporation, managers motivate their employees by paying them money, and offering bonuses, promotions, and internal social perks. Bad work or bad behavior is punished by reprimands, demotion, or being fired.

      But in KDE, most people are unpaid volunteers, so KDE has no financial leverage over them. Those who are paid are hired by 3rd-parties rather than KDE itself. Neither the carrot nor the stick will work!

      Instead, motivation within KDE uses the currency of excitement. When a project is cool and its contributors publicly share its coolness and their enthusiasm for it, other people want to join in and help out! This turns out to be a very effective way to motivate free people to work on something: you make them feel like they want to be a part of something big and special, and you organize the discussion in a way that makes them feel like they can be included.

      KDE’s design team (the VDG group) does a lot of this, constantly churning out astonishingly beautiful mockups and organizing discussions about important topics. People gravitate to the VDG’s proposals because they seem cool and there’s buzz and excitement surrounding it. And the promo team works to generate buzz and excitement. Other teams do similar things. You have to keep people excited and happy or else they will drift away.

      This leads to an important point: you have to minimize negativity! For most people, conflict destroys energy and motivation. Internal arguments and politics need to be minimized and driven towards a consensus rather than simmering forever. Even if you have to bend a bit and give up some of what you want, that’s a better option than getting nothing because everyone is burned out by endless arguing. And new contributors in particular must be treated with kindness, given the benefit of the doubt, and made to feel welcome.

      Similarly, if you’re a user who’s frustrated with the lack of progress on something you care about, insulting the developers or KDE itself in the bug report is the worst thing you could do: it will damage the motivation of the people in a position to do the work, reducing the chance that you will get what you want. Gently pinging people without negativity is the way to go–or even better, work on it yourself! Like all FOSS projects, KDE encourages self service.

      In essence, KDE’s little anarchic digital utopia works because we all voluntarily agree to treat each other with respect and kindness and become stakeholders in the project, and this greases the wheels of all the work we do. Somehow, it all manages to work!

      Categories: FLOSS Project Planets

      Help the FSF tech team empower software users

      FSF Blogs - Tue, 2020-08-04 13:55

      The Free Software Foundation (FSF) tech team is the four-person cornerstone of the primary infrastructure of the FSF and the GNU Project, providing the backbone for hundreds of free software projects, and they epitomize the hard work, creativity, and can-do attitude that characterize the free software movement. They’re pretty modest about it, but I think they deserve some serious credit: it’s only because of their everyday efforts (with the help of volunteers all over the world) that the FSF can boast that we can host our own services entirely on free software, and help other people to become freer every day. It’s also largely to their credit that the FSF staff were able to shift to mostly remote work this spring with barely a blip in our operations.

      You can read a summary of their work over the last six months in the most recent issue of the Free Software Foundation Bulletin, but I wanted to give you a few highlights:

      • This March, the novel coronavirus swept in and caused the shutdown of nearly all in-person activities at the most inopportune time in the FSF’s yearly schedule: the week of the 2020 LibrePlanet conference. After deep discussion, the decision was made to take LibrePlanet online-only on Monday, March 9th; the conference was due to begin on Saturday, March 14th. You can see all of the details of how the conference ultimately ran on our blog, and you can watch the session videos on our MediaGoblin page. However, the thing that I want to emphasize here is that the tech team successfully ran an entire conference online, which they had never done before, and made it all run smoothly with only five days to prepare, and every piece of software used was free software. Like I said, they’re modest.

      • Next, the tech team set about addressing how proprietary remote communication tools used for staying in touch and for education are becoming a dangerous fact of everyday life. Having used Jitsi Meet as one part of the livestreaming process for LibrePlanet, they created a Jitsi Meet instance that FSF associate members can use for work and play. They can invite anyone to connect with them in a freedom-respecting video chat room. Not only does this instance enable you to chat with the people you care about without the abuses of proprietary software, but it also makes it easier than ever to demonstrate the advantages of free software to everyone you know!

      • Finally, we’re so proud that FSF Web developer Michael McMahon spearheaded the HACKERS and HOSPITALS project on the LibrePlanet wiki, enabling the hacker community to share resources and connect with activists who have been manufacturing an astounding variety of desperately-needed medical and protective equipment. Only free software gives hackers and makers the complete flexibility and freedom they need (and deserve!) in order to meet immediate needs, and Michael and many others have risen to the occasion admirably. You can read a dedicated article on HACKERS and HOSPITALS in the new issue of the Free Software Foundation Bulletin.

      If you’re finding these accomplishments as exciting as we do, we hope you’re now motivated to chip in by becoming an associate member of the FSF! At this writing, we are only 13 members away from our goal of 200. The farther we surpass this goal, the more our tech team can achieve!

      The value of a membership goes far beyond the dollars and cents needed to help us weather the challenges of this year: a membership is a vote of confidence that helps us launch new initiatives and puts weight behind our campaigns, licensing, and technical work. Plus, membership comes with plenty of benefits, including merchandise discounts, a bootable membership card, and the newest member perk: access to our Jitsi Meet videoconferencing server.

      We don’t know what the future will bring in many ways, but we know that we can count on the ingenuity and hard work of the FSF tech team -- and so can you. Thank you so much for supporting their efforts!

      Illustration Copyright © 2020 Free Software Foundation, Inc., by Raghavendra Kamath, licensed under Creative Commons Attribution 4.0 International license.

      Categories: FLOSS Project Planets

      FSF Blogs: Help the FSF tech team empower software users

      GNU Planet! - Tue, 2020-08-04 13:52

      The Free Software Foundation (FSF) tech team is the four-person cornerstone of the primary infrastructure of the FSF and the GNU Project, providing the backbone for hundreds of free software projects, and they epitomize the hard work, creativity, and can-do attitude that characterize the free software movement. They’re pretty modest about it, but I think they deserve some serious credit: it’s only because of their everyday efforts (with the help of volunteers all over the world) that the FSF can boast that we can host our own services entirely on free software, and help other people to become freer every day. It’s also largely to their credit that the FSF staff were able to shift to mostly remote work this spring with barely a blip in our operations.

      You can read a summary of their work over the last six months in the most recent issue of the Free Software Foundation Bulletin, but I wanted to give you a few highlights:

      • This March, the novel coronavirus swept in and caused the shutdown of nearly all in-person activities at the most inopportune time in the FSF’s yearly schedule: the week of the 2020 LibrePlanet conference. After deep discussion, the decision was made to take LibrePlanet online-only on Monday, March 9th; the conference was due to begin on Saturday, March 14th. You can see all of the details of how the conference ultimately ran on our blog, and you can watch the session videos on our MediaGoblin page. However, the thing that I want to emphasize here is that the tech team successfully ran an entire conference online, which they had never done before, and made it all run smoothly with only five days to prepare, and every piece of software used was free software. Like I said, they’re modest.

      • Next, the tech team set about addressing how proprietary remote communication tools used for staying in touch and for education are becoming a dangerous fact of everyday life. Having used Jitsi Meet as one part of the livestreaming process for LibrePlanet, they created a Jitsi Meet instance that FSF associate members can use for work and play. They can invite anyone to connect with them in a freedom-respecting video chat room. Not only does this instance enable you to chat with the people you care about without the abuses of proprietary software, but it also makes it easier than ever to demonstrate the advantages of free software to everyone you know!

      • Finally, we’re so proud that FSF Web developer Michael McMahon spearheaded the HACKERS and HOSPITALS project on the LibrePlanet wiki, enabling the hacker community to share resources and connect with activists who have been manufacturing an astounding variety of desperately-needed medical and protective equipment. Only free software gives hackers and makers the complete flexibility and freedom they need (and deserve!) in order to meet immediate needs, and Michael and many others have risen to the occasion admirably. You can read a dedicated article on HACKERS and HOSPITALS in the new issue of the Free Software Foundation Bulletin.

      If you’re finding these accomplishments as exciting as we do, we hope you’re now motivated to chip in by becoming an associate member of the FSF! At this writing, we are only 13 members away from our goal of 200. The farther we surpass this goal, the more our tech team can achieve!

      The value of a membership goes far beyond the dollars and cents needed to help us weather the challenges of this year: a membership is a vote of confidence that helps us launch new initiatives and puts weight behind our campaigns, licensing, and technical work. Plus, membership comes with plenty of benefits, including merchandise discounts, a bootable membership card, and the newest member perk: access to our Jitsi Meet videoconferencing server.

      We don’t know what the future will bring in many ways, but we know that we can count on the ingenuity and hard work of the FSF tech team -- and so can you. Thank you so much for supporting their efforts!

      Illustration Copyright © 2020 Free Software Foundation, Inc., by Raghavendra Kamath, licensed under Creative Commons Attribution 4.0 International license.

      Categories: FLOSS Project Planets

      Python Anywhere: Introduction to scheduled tasks helper scripts

      Planet Python - Tue, 2020-08-04 13:40

      For all PythonAnywhere users who like to automate their workflow using scripts there’s already the pythonanywhere package which provides an interface for some PythonAnywhere API features. If you’re one of them, you might be interested in some recent additions for programmatic management of Scheduled Tasks.

      Categories: FLOSS Project Planets

      PyCoder’s Weekly: Issue #432 (Aug. 4, 2020)

      Planet Python - Tue, 2020-08-04 13:30

      #432 – AUGUST 4, 2020
      View in Browser »

      4 Powerful Features Python Is Still Missing

      Python doesn’t have true constants, nor does it implement features like tail recursion optimization that many compiled languages employ. Find out what other features Python is “missing” when compared to other languages, and why the core developers haven’t added these features to the language.
      SERDAR YEGULAP

      Customize the Django Admin With Python

      In this tutorial, you’ll learn how to customize Django’s admin with Python. You’ll use AdminModel objects to add display columns, calculate values, link to referring objects, and search and filter results. You’ll also use template overriding to gain full control over the admin’s HTML.
      REAL PYTHON

      Multi Class Text Classification With Deep Learning Using BERT

      Want to optimize your chances of getting a conference proposal accepted? A little deep learning might do the trick!
      SUSAN LI

      Data Science Toolbox For Python - Try For FREE!

      As a data scientist, you continuously need to write your own functions to solve problems dictated by your data. In this course, Analyze Twitter DataFrames to learn and understand the art of function writing. Try the first chapter for FREE! →
      DATACAMP INC sponsor

      Writing and Publishing a Python Module in Rust

      And without any Rust dependencies!
      WILLIAM WOODRUFF

      Practical Recipes for Working With Files in Python

      In this course, you’ll learn how you can work with files in Python by using built-in modules to perform practical tasks that involve groups of files, like renaming them, moving them around, archiving them, and getting their metadata.
      REAL PYTHON course

      Exactly-Once Initialization in Asynchronous Python

      How do you asynchronously initialize a resource in Python? Read the article to learn how to solve this problem and then follow the discussion on Hacker News.
      CHRIS WELLONS

      Django Bugfix Releases Issued: 3.0.9 and 2.2.15

      DJANGO SOFTWARE FOUNDATION

      Django 3.1 Released

      DJANGO SOFTWARE FOUNDATION

      pip 20.2 released

      PYTHON.ORG • Shared by Sumana Harihareswara

      Discussions How Can I Accept and Run User’s Code Securely on My Web App?

      Not with eval()
      STACK OVERFLOW

      Python Jobs Senior Backend Developer (San Francisco, CA, USA)

      dumpling

      MUMPS developer with Ruby on Rails and Python (Remote)

      IHT

      Python Developer (Remote)

      BlueStone Staffing Solutions

      Data Engineer (Kafka/Python/R/ETL) (Saint Louis, MO, USA)

      neteffects

      More Python Jobs >>>

      Articles & Tutorials Solving the Task Ordering Problem in Python

      Hint: Use Khan’s Algorithm. Or, as one starship captain calls it, Khaaaaaaaaaan’s Algorithm.
      JOHN LEKBERG

      Backtest Your Trading Strategy With Only 3 Lines of Python

      Learn how to use Python to test trading strategies against historical data.
      LORENZO AMPIL

      10 Awesome Pythonic One-Liners Explained

      Some things in Python are just better on one line.
      ANDREAS

      Find Performance Bottlenecks in Python Code

      “We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.” - Donald Knuth Blackfire is built to let you find the 3%. Quick install, appealing and user-friendly UI →
      BLACKFIRE sponsor

      Python and PDF: A Review of Existing Tools

      The ultimate list of PDF tools in Python.
      JOHANNES FILTER

      Namespaces and Scope in Python

      In this tutorial, you’ll learn about Python namespaces, the structures used to store and organize the symbolic names created during execution of a Python program. You’ll learn when namespaces are created, how they are implemented, and how they define variable scope.
      REAL PYTHON

      The Real Python Podcast – Episode #20: Building PDFs in Python with ReportLab

      Have you wanted to generate advanced reports as PDFs using Python? Maybe you want to build documents with tables, images, or fillable forms. This week on the show we have Mike Driscoll to talk about his book “ReportLab - PDF Processing with Python.”
      REAL PYTHON podcast

      Using Postgres JSONB Fields in Django

      This article walks through the different types of JSON fields, querying JSONB data in Postgres, Django’s support for JSONB, and potential limitations of JSONB fields.
      KARL HUGHES • Shared by Manuel Weiss

      Introducing Wildebeest, a Python File-Processing Framework

      GREG GANDENBERGER • Shared by Greg Gandenberger

      Projects & Code StanfordQuadruped: Code for the Pupper and Woofer Raspberry Pi-Based Robots

      GITHUB.COM/STANFORDROBOTICSCLUB

      Ciphey: Automated Decryption Tool

      GITHUB.COM/CIPHEY

      fastquant: Backtest Investment Strategies

      GITHUB.COM/ENZOAMPIL

      oso: Open Source Embedded Policy Engine for Authorization

      GITHUB.COM/OSOHQ

      wildebeest: File Processing Pipelines

      GITHUB.COM/SHOPRUNNER

      circuitbreaker: Python Implementation of the “Circuit Breaker” Pattern

      PYPI.ORG

      automagica: Smart Robotic Process Automation

      GITHUB.COM/AUTOMAGICA • Shared by Vekemans

      Happy Pythoning!
      This was PyCoder’s Weekly Issue #432.
      View in Browser »

      [ Subscribe to 🐍 PyCoder’s Weekly 💌 – Get the best Python news, articles, and tutorials delivered to your inbox once a week >> Click here to learn more ]

      Categories: FLOSS Project Planets

      Mike Driscoll: Python Malware May be Coming to a Computer Near You

      Planet Python - Tue, 2020-08-04 13:00

      Cyborg Security reported recently that malware is starting to appear that has been written using the Python programming language. Traditionally, most malware has been written in compiled languages, such as C or C++.

      The reason is simple. Compiled languages let the attacker create smaller, harder to detect, executables. However, Python’s popularity and ease of use has made it more appealing to malware authors. The biggest problem with Python for malware is that it tends to use considerably more RAM and CPU than malware written in C or C++.

      Of course, with PCs being as powerful as they are now, this is no longer an issue. Especially when you consider that there are so many applications being written with Electron. Your web browser is now a huge resource hog!

      As the Cyborg Security website points out, you can use PyInstaller or py2exe to create an executable of your Python code. What that article doesn’t mention is that someone will need to digitally sign that software as well to get it to run on Windows 10. One thing the article mentions that was interesting to me is that you can use Nuitka to basically transpile your Python code to C and you’ll end up with a much smaller executable than you would with either PyInstaller or py2exe.

      Specific examples of Python malware include SeaDuke that was used against the Democratic National Committee back in 2015 and 2016. They also mention PWOBot, which was a similar piece of Python malware that did key logging as well as downloaded and executed other applications.

      Trend Micro covered PyLocky, a Python-based ransomware. It could encrypt files using 3DES.

      The last piece of malware that was mentioned was PoetRAT, a trojan that was used against the Azerbaijan government and energy sector this year.

      Check out the full article. It’s really interesting and covers a lot more about this topic.

      The post Python Malware May be Coming to a Computer Near You appeared first on The Mouse Vs. The Python.

      Categories: FLOSS Project Planets

      Pages