teleren/devto huggingface dataset:
Open Source Flask-based web applications
Tags: opensource, python, webdev
Published: 2023-07-11 15:40:34

---
title: Open Source Flask-based web applications
published: true
description: 
tags: opensource, python, webdev
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2023-06-15 08:00 +0000
series: opensource
---

In an earlier post I mentioned a bunch of [Open Source web applications](https://dev.to/szabgab/the-most-interesting-open-source-web-applications-356). Let's now focus on the ones written in **Python** using [Flask](https://flask.palletsprojects.com/) the light-weight web framework.


* [SOPython](https://sopython.com/) - [source-code](https://github.com/sopython/sopython-site)
* Webhooks for the Open edX GitHub and JIRA [source code](https://github.com/openedx/openedx-webhooks) [documentation](https://openedx-webhooks.readthedocs.io/en/latest/)
* [CKAN](https://ckan.org/) The Open Source Data Portal Software
* [Pagure](https://pagure.io/pagure) is a light-weight git-centered forge based on pygit2
* [Apache Airflow](https://airflow.apache.org/)
* [PyDigger](https://pydigger.com/) - collecting information about Python packages

There might be other interesting projects listed in the [Awesome Flask](https://github.com/mjhea0/awesome-flask) list.

Having access to the source code of applications that use Flask can help a lot learning how others develop such applications.
Hello 100 - glad to be in your feed!
Tags: beginners, programming, learning, swift
Published: 2023-07-11 22:16:53

![Me, grinning with a thumbs up and the caption "100 followers"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nwrfipmtu94vkzs1waax.jpeg)<figcaption>Here's a meme of myself I made with my own "Mememe 2.0" app, Udacity's third assigned project in the iOS Dev program.

Many numbers to celebrate today... I've turned in my third project in my first iOS course, meaning I'm halfway through. This weekend I hit a threshold where I went from floundering at every step to coding with some measure of confidence. I'll say more in a later post.

Mostly what I want to celebrate right now is... 

## I've passed 100 followers on DEV!

I'm amazed by that and very curious who all is following me. It looks like many of you are new to DEV and haven't posted much yet. If you're like me, you accepted DEV's recommendation for a bunch of people to follow, just to get yourself started.

However it happened, I'm in your feed, so please allow me to introduce myself. Then I have some questions for you.

## I'm learning in public

I'm not completely new to programming; I've learned many languages and systems over the years, creating personal projects for fun and for work. I've been a full-time children's singer-songwriter most of my adult life. Currently I'm teaching college algebra at Oklahoma State University. 

I started the iOS Developer nanodegree at [Udacity](udacity.com) in May, and I'm also working through [100 Days of SwiftUI](https://www.hackingwithswift.com/100/swiftui), with an eye toward starting a new career.

Here on DEV I'm "learning in public." I've shared a handful of posts about my journey so far, and I'm keeping notes as I go. I write about iOS and Swift, but also learning in general, in a way I hope will be helpful to anyone, regardless of your coding language, learning platform, expertise, or personal goals. 

## Questions for you

As I plan my next few posts, I'd love to know more about who might be reading them: 
Why did you sign up for DEV? 
What are you working on? 
What are your goals? 
What are you struggling with? 
What questions or concerns do you have right now? 

It would make my day if you'd pick just one question and post a quick response. 

And if it's your first time posting, congratulations! Welcome to DEV!
Commands on Linux, via cloud engineering using AWS platform
Published: 2023-07-11 22:07:53

Sure! Here are 10 directories in the Linux file system along with their purposes:

/ (root directory): The root directory is the top-level directory in the Linux file system. It contains all other directories and files. It is the starting point for navigating the file system.

/bin: The /bin directory contains essential executable files (binary files) that are necessary for the system to function properly. These files are often fundamental utilities used for basic system operations.

/etc: The /etc directory stores system configuration files. It contains various configuration files for the operating system, services, and applications installed on the system. Examples include /etc/passwd for user account information and /etc/fstab for file system table configuration.

/home: The /home directory is the default location for user home directories. Each user on the system typically has their own subdirectory within /home, where they can store personal files and configuration settings.

/lib: The /lib directory contains shared libraries that are used by various programs on the system. Shared libraries provide common functions and code that can be used by multiple applications, helping to reduce redundancy and improve efficiency.

/mnt: The /mnt directory is used as a temporary mount point for mounting file systems or devices. It is often used to mount external storage devices such as USB drives or network shares.

/opt: The /opt directory is used for installing optional or add-on software packages. It provides a location for installing software that is not part of the core system. Applications installed in /opt typically have their own subdirectory structure.

/tmp: The /tmp directory is used for storing temporary files that are created by the system or applications. It is accessible to all users and is typically cleared upon system reboot.

/usr: The /usr directory contains user-related files and programs. It is a large directory hierarchy that includes subdirectories such as /usr/bin for user binaries, /usr/share for shared data files, and /usr/lib for libraries.

/var: The /var directory is used for variable data files that change frequently during system operation. It includes directories such as /var/log for system log files, /var/spool for print and mail spool directories, and /var/www for web server files.
Centering content between two different lengths contents in a Navbar
Published: 2023-07-11 21:59:44

This is a problem with often encounter when creating a navbar.
We want the middle content always centered whatever the lengths of the side parts.

Here is a very simple tip, let me know If you use it :-)

You can test it here : [Centering](https://flems.io/#0=N4IgtglgJlA2CmIBcAmArAOgJxYDQgGd4EBjAF3imRAxIIJHwDMIEGkBtUAOwEMxESGgAsyYWIxAkA9twpzqAHigQAbgAISsXvQC8AHSmyyvCN3gAnQwD593desV9Vt+w8cqX6gEIAlAIIAcgAijgD0nq7uHmpR0TFeABIA8gCyAKLhkXbxCdbqAAq+ycEAqgDCACoAylmxdjnuihH1bg7KrbkdXv7eyaWVdS6N0d35pdXpvkNxo5HqiekAMgUzI2tuzc6uzZGSRKRkELLsIABsSAAMIAC+uDz8gjQAVgz4MnLwCkK39yB8AmotHokg+8jI1AARtIoABPdTARpgXgWADmZiuAG5GgAHXgwMyorGNSG8EgAa1RFmkAFduFAkOo0aSABQAZjZuA5uAALDyAJTYtwyWDSCyMgDuwggFDsNwa3FoxlM5gs6nyzkRbhUBBx2lhSCYCAAHkKHKSKVTafTGUzUaz0GhcOoUOpnZdBXKFUq5CrLOpnAjcfiVNwieoAIwWeBgIXy7h2H0mMz+wP5TyGiAWAhkAC0JGlsCgQbcRvgxsZEcj6kuAFI496wX61Wn1Bm5MJ84WoCyUPySw4dXreAay6bGrxYBBUdxczKYwQkCQvhQLGb1KjeDjK9HYw4vQnD0nmwHeBp02okNoc13WMWtYOILr9Yyx+ux5Xq3X188aTmIEwsL5sYK6viauZfFA66btuka7kKB52PsxDwOQxzcKclxXLmbJoFctwALo3EAA)

```css
body {
  margin:0;
  padding:0;
  background: rgba(33,33,44);
  color: white
}

.container > nav{
  display:flex;
  background:  rgba(255, 2 , 0);
}

.container nav {
  padding: 1rem;
}

.container nav > div:first-child {
  flex: 1 1 0%;
}

.container nav > div:nth-child(2) {
  display:flex;
  align-items:center;
  gap: 1rem;  
}


.container nav > div:last-child {
  display: flex;
  flex: 1 1 0%;
  justify-content: flex-end;
  gap: 1rem;

}


```

Here is a simpler way  [DEMO](https://flems.io/#0=N4IgtglgJlA2CmIBcAmArAOgJxYDQgGd4EBjAF3imRAxIIJHwDMIEGkBtUAOwEMxESGgAsyYWIxAkA9twpzqAHigQAbgAISsXvQC8AHSmyyvCN3gAnQwD593desV9Vt+w8cqX6gEIAlAIIAcgAijgD0nq7uHmpR0TFeABIA8gCyAKLhkXbxCdbqAAq+ycEAqgDCACoAylmxdjnuihH1bg7KrbkdXv7eyaWVdS6N0d35pdXpvkNxo5HqiekAMgUzI2tuzc6uzZGSRKRkELLsIABsSAAMIAC+uDz8gjQAVgz4MnLwCkK39yB8AmotHokg+8jI1AARtIoABPdTARpgXgWADmZiuAG5GgAHXgwMyorGNSG8EgAa1RFmkAFduFAkOo0aSABQAZjZuA5uAALDyAJTYtwyWDSCyMgDuwggFDsNwa3FoxlM5gs6nyzkRbhUBBx2lhSCYCAAHkKHKSKVTafTGUzUaz0GhcOoUOpnZdBXKFUq5CrLOpnAjcfiVNwieoAIwWeBgIXy7h2H0mMz+wP5TyGiAWAhkAC0JGlsCgQbcRvgxsZEcj6kuAFI496wX61Wn1Bm5MJ84WoCyUPySw4dXreAay6bGrxYBBUdxczKYwQkCQvhQLGb1KjeDjK9HYw4vQnD0nmwHeBp02okNoc13WMWtYOILr9Yyx+ux5Xq3X188aTmIEwsL5sYK6viauZfFA66btuka7kKB52PsxDwOQxzcKclxXLmbJoFctwALo3EAA): 

```css
.container > nav{
  display:flex;

 
}

.container nav {
  padding: 1rem;
}

.container nav > div:first-child {
  flex: 1 1 0%;
  background:red;
  
}
.container nav > div:last-child {
  display: flex;
  flex: 1 1 0%;
  justify-content: flex-end;
  gap: 1rem;
  background:red;
}
```
The Benefits of Participating in Sports
Published: 2023-07-11 21:59:37

Participating in sports, particularly popular American sports such as football, basketball, baseball, and soccer, has several rewards that go beyond the excitement of competition. Sports increase strength, endurance, coordination, and agility, which aids in the development of physical fitness. Furthermore, team sports teach crucial life qualities such as teamwork, communication, leadership, and discipline, all of which are necessary for success in a variety of areas. Furthermore, sports give chances for social engagement, assisting individuals in developing friendships, networking, and a sense of belonging within a group. Participating in sports, particularly recognised [Big USA Sports](https://bigusasports.com/), is a gateway to personal growth and a meaningful lifestyle, from encouraging general well-being to imparting vital character characteristics.
An outline of the Linux record framework.
Published: 2023-07-11 21:46:38

In Linux, the document framework is liable for putting together and overseeing records and registries on a capacity gadget like a hard drive or SSD. Linux upholds different record frameworks, yet the most generally utilized document framework is the Lengthy Document Framework (ext), explicitly ext4, which is the default in numerous Linux circulations. We should give an outline of the Linux record framework.

1.Root Catalog (/): The root registry is the high level registry in the record framework order. Any remaining indexes and records are coordinated under the root registry.

2.Indexes (Envelopes): Registries are utilized to coordinate records and different catalogs. They give a method for making a progressive design inside the record framework. Registries can contain documents and different catalogs.

Documents: Records are the fundamental units of information stockpiling in the document framework. They can be any sort of information, including text records, program executables, design documents, and so forth.

3.Document Way: A record way is a string portrayal of the area of a record or index inside the record framework progressive system. It begins from the root index (/) and incorporates every one of the registries prompting the document or registry.

4.Document Consents: Linux record frameworks have an authorization framework that figures out who can peruse, compose, or execute documents and registries. Consents are set for three unique client classes: the proprietor of the record, the gathering the document has a place with, and different clients.

5.Representative Connections: Emblematic connections (symlinks) are documents that highlight different records or indexes. They go about as alternate routes or references to the first document or catalog, taking into account simple route inside the record framework.

6.Mount Focuses: Mount focuses are indexes used to append capacity gadgets to the record framework order. Whenever a gadget is mounted, its items become open under the predetermined mount point.

7.Document Framework Types: Linux upholds different record framework types, including ext2, ext3, ext4, XFS, Btrfs, from there, the sky is the limit. Each record framework type has its own elements, execution attributes, and impediments. The decision of document framework relies upon elements, for example, the expected use case, dependability, and similarity.

8.Virtual Document Frameworks: Linux utilizes an idea called virtual record frameworks (VFS) to give a brought together point of interaction to various record frameworks. VFS abstracts the basic record frameworks, permitting applications to cooperate with documents and catalogs utilizing a steady arrangement of framework calls and APIs.

9.Record Framework Ordered progression Standard (FHS): The Document Framework Progressive system Standard characterizes the registry construction and naming shows adhered to by most Linux disseminations. It gives a reliable format to sorting out framework records and client information.
WATCH OUT FOR MORE!!!
The Infinite Game
Tags: softwareengineering
Published: 2023-07-11 21:44:04

**Finite games** have a clear goal, such as winning a game of chess or football. Once the goal is achieved, the game is over. **Infinite games**, on the other hand, have no clear goal and can never be won. Examples of infinite games include business, politics, and life itself.

Software development can be seen as an infinite game. There is no end goal, as there will always be new problems to solve and new features to add. The goal of software development is not to win, but to keep the game going. This means constantly learning, improving, and adapting to change.

There are several benefits to approaching software development as an infinite game. First, it allows you to focus on the long term. You are not just trying to ship a product, you are trying to build a sustainable business or organisation. This means thinking about things like scalability, maintainability, and security.

Second, an infinite mindset encourages you to be more open to change. The world of software is constantly changing, so you need to be able to adapt your skills and knowledge accordingly. An infinite mindset allows you to embrace change and see it as an opportunity for growth.

Third, an infinite mindset can help you to be more successful in your career. By constantly learning and improving, you will become a more valuable asset to your team or company. You will also be more likely to be promoted or given new opportunities.
ARIA: Saving the World, One Accessible Web App at a Time!
Tags: javascript, developer, website
Published: 2023-07-11 21:42:12

_I'm here to explain why we need to incorporate ARIA in our applications and its impact on creating inclusive web applications._

First and foremost what is ARIA ?
 

> Accessible Rich Internet Applications (ARIA) is a set of roles and attributes that define ways to make web content and web applications (especially those developed with JavaScript) more accessible to people with disabilities.

_[Definition by MDN](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA)_

_Picture a web application that warmly embraces individuals of all abilities, like a giant digital hug.
Well,_

- **Unleashing the Power of Inclusivity:**
    ARIA builds bridges to assistive technologies, inviting users with visual impairments or motor disabilities to be part of this digital world.
By adding ARIA's roles, states, and properties, developers extend _**include every user**_, ensuring they can explore and engage with the application in a meaningful manner.



- **Dynamic Content and SPAs:**
These applications often rely on JS to dynamically update content or navigate between sections. ARIA attributes like live regions, aria-expanded, and aria-controls enable developers to _**communicate these changes to assistive technologies**_, ensuring that screen reader users are aware of updates in real-time and can navigate through the application seamlessly.



- **Keyboard Accessibility:**
By assigning meaningful roles, such as "button," "link," or "menuitem," developers enable keyboard users to navigate through interactive elements and trigger actions effectively. _Now who doesn't want to lift their fingers_.

![I ain't moving that finger](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r0avs7ilqicd2oxi3hep.gif)
   


- **Web Accessibility Standards:** 
ARIA aligns web applications with recognized accessibility standards, such as [WCAG](https://www.w3.org/WAI/standards-guidelines/wcag/). By implementing ARIA properly, developers demonstrate their commitment to inclusivity and accessibility, making their applications more compliant with accessibility guidelines and regulations. This, in turn, opens up opportunities to reach a broader audience and _**fosters a positive reputation**_ for the application and its developers.


<u>Last but most importantly</u> 
ARIA significantly enhances the accessibility and user experience of web applications. By implementing, developers ensure that their applications improve the **user experience for ALL users**.

_I hope this is convincing enough to include ARIA in all our applications from now on and not lift our finger at any cost._


![cheers mate](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4cwx6uxbl96xsbjpugqa.gif)
Skipping tests is good
Tags: testing, qa, devops
Published: 2023-07-11 21:41:55

## The problem with tests

Recently I had problem with personal job in the pipeline which was designed to build and run all the unit tests and integration/heavier tests after. The idea seemed to be perfect - run all the tests on every change developer does when working in feature branch. 

The reality quickly verified the idea: job duration was initially around 30 minutes, slowly but steadily growing to 60 minutes. Let's wait for an hour for simple change to be tested... 
The content of each feature branch are extra tests as well so their number is growing constantly. What will happen in few months? 
2 hours, 3 hours of waiting? 

Important thing: application under test is 100+ modules monster with more than 10 top level ones. The bigger monster, the faster it grows.

## The quickfix 

I came up with idea to test only area each commit is changing. So if there is a change in moduleA, unit tests related only to moduleA and its direct dependencies are run. Also, only integrations tests related to this module directly come to play. (It turned out I have to skip indirectly dependent integration tests as all of them were run even for single module changes most of the time). 
The result was really good: for changes in some modules which do not have many dependencies the duration was cut to 20 minutes. Building, testing and integration - great !

## The final solution which I didn't do yet but I think I should

It is important to keep valuable tests only and delete the trash tests (what is the valuable test is the big topic for separate post for sure). One should also be suspicious if number of tests is growing quickly. It is a sign the process of creating them is wrong, like some kind of aggressive and fanatic TDD. If no action is taken, they will very soon spoil development by slowing it down first and then bring it to the complete standstill. The monster will eat all your resources. But that's easy stuff: persuade fanatic TDDevelopers they should stop...

I think main pipeline should also test only commit related areas and not "everything". The fear of missing the right coverage is huge however and in reality I know, managers prefer to slow down feature delivery than to rely on smaller subset of tests. Just persuade fearful managers now...

*The goal of this text is more to share experience and ideas with you than to announce ex cathedra golden rules and shooting silver bullets.
That is why I am very much interested what you think about it.*
Day 780 : Try and You Try
Tags: hiphop, code, coding, lifelongdev
Published: 2023-07-11 21:40:47

_liner notes_:
- Professional : Had a meeting today and I think folks are starting to see what I'm seeing. Looks like there was some miscommunications on the scope of the work and where everything was before I started working on it. After some discussions, it looks like everyone is on the same page. I'm going to be doing some pair programming with the team working on the product I've been updating to clear up anything that's not in the documentation I've been using. Also had a meeting with my manager, updated them with my progress on the project and we spoke about some other stuff coming up. Spent the rest of the day going through the documentation, testing endpoints, and putting together questions in a documentation for the pair programming.

- Personal : Went through some tracks for the radio show. Made some progress on my side project. I got an image pulled from a URL and placed onto the HTML canvas. I ran into some issues where the image was being pushed down because I was translating the text when the title spanned multiple lines. I had to refactor the code so that instead of translating, I just calculated new positions for the lines. This way, it doesn't modify the origin of where the image is placed. I kind of did a hack to get the lines the way I want, but then later I thought of another way and got it working "better". Coding: you try and you try and hopefully you get it working properly. haha

![View of gray twisted trees without a lot of leaves on mossy green land with a lake and a mountain with clouds in the distance.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fubleg24az7ok0pa3va4.jpg)

Going to go through tracks for the radio show. I want to get the images placed properly on the HTML canvas in my side project. After that, not sure. Maybe watch an anime or something.

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube Rzfvun74LfQ %}