teleren/devto huggingface dataset:
Day 817 : Free Education
Tags: hiphop, code, coding, lifelongdev
Published: 2023-08-31 21:29:34

_liner notes_:
- Professional : Had an early morning meeting with the team where I got to show a demo using the new Web Component I created this week. Had a couple of other meetings. Took some time during the day to add some more features to the Web Component. To be more legible, I have some text flipped depending on where it's located and the text is either black or white depending on which one has more contrast with the background color. Learned a bunch of stuff putting it together. Spent the rest of the work day working on upcoming talks and workshop.

- Personal : Last night I created the demo to showcase the Web Component I made. I did a test run of my setup for streaming events and things seemed to work. I think I ran into some issues because of spotty internet connection. That's all I can remember. Probably went to bed early because I had to get up for the team meeting.

![Very fluffy white clouds above Cluj-Napoca, Romania.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bxdhqbojrdioh4je5z2l.jpg)

So, I made it to the venue for the meetup tonight. Got here early to make sure I got a parking spot and I can set up to try and livestream the event. Going to get some work done before heading in. I like going to meetups, because it's like getting a free education where I can learn about new things. When it's over, I'll probably end the night watching "Zom100". Fingers crossed everything goes well and I can stream the event.

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube m7-dYMZ9-1w %}
GSoC Week 11-13
Tags: gsoc
Published: 2023-08-31 20:38:33

I am reaching the final stages of my project well ahead of the schedule.

Both the Crosspectrum and Powerspectrum classes, the Lomb Scargle Fourier Transform and Basic Documentation have been completed. Tests are almost done too

I have double checked with Matteo that the results are consistent using multiple examples and they are close to expected results.

The following are the documentation notebooks on how to use the classes.

{%embed https://gist.github.com/pupperemeritus/f917bd362ec4ef9133c380e97c3139b4 %}

{%embed https://gist.github.com/pupperemeritus/36164c2ddf75dc95e37e06b07f2e153f %}
Why Coding is Good For You?
Published: 2023-08-31 20:22:36



#Is Coding an Art Form?


An essential aspect of the human experience is finding ways in which we can escape into a world of our own. From the earliest plays of Shakespeare to now, art has been the primary medium in humanity’s need to achieve said escape. Movies, shows, poetry, music, and all kinds of different art forms have been created and innovated upon for essentially all of modern human history. This doesn’t mean however, that everyone had the necessary access to engage with this aspect of their life. 

The need for literacy education, as well as an expansive perspective on the world couldn’t reach the average commoner of the past like it can today. That was… until we stumbled upon the solution. Thanks to the advent of industrialization and technology, the internet has closed that gap in literacy and education in a way that has never been experienced before. In the past two decades, the amount of information instantaneously available to one’s fingertips has expanded to nearly any kind of topic or discussion you could think of. This is an undeniably massive achievement for humanity, and will help record and save our knowledge for expansion our ancestors couldn’t even dream of. 
	
One of the more interesting developments to come from the Internet Age is the gargantuan expansion of the art world. Digital art has become the new norm, and has given artists around the world the ability to avoid the obscurity of past tortured souls. But among all of the new digital art forms, web design is perhaps the one that has had the most reach in terms of everyday living. 

The bedrock of the internet is websites. Everyone goes to one when they want information, and we all have our favorites. Though do we ever stop to think about what goes into making them? As a kid, I thought it was all pure magic. Computer wizardry being performed by some of the most keen minds in the world, happening in a lab similar to that of Marie Curie. More recently, I have come to find that many everyday creatives we could easily find outside of a lab are the ones hugely responsible for this beautiful art form. And yes, coding is an art form, through and through. There is hard science and theory going on under the hood, but it truly could be best described as an art form. 

Its been proven that art is good for the mind, so why not give programming a shot?!
Why Django uses regex on routes?
Tags: django, python, webdev
Published: 2023-08-31 20:19:59

## Configuration and Why
Django is a web framework which allows you to build your whole application using the concept of a `project` with one or several `apps`. There are tons of [philosophies](https://docs.djangoproject.com/en/4.2/misc/design-philosophies/) originated by this approach (like Modular Development, Separation of Concerns, Plug-n-play Features and etc).

All of these apps are configured by your project. One of these configurations is the `ROOT_URLCONF` in which allows you to pointer the 'master' url file config. This is fundamental to put in practice the django philosophies mentioned.

## Importance of regular expressions
When i've first encountered regular expressions in Django apps, i think that was an over engineering process to build routes (as any junior can think). After some experiences i've understand the reason why and i think these two resources compiles well them

1. [Django Book, The definitive guide to Django: Web Development Done Right](https://www.amazon.com.br/Definitive-Guide-Django-Development-Second/dp/143021936X)

A route example from the book:
```
from django.conf.urls.defaults import *
from mysite.views import current_datetime
urlpatterns = patterns('',
 (r'^time/$', current_datetime),
)
```

The author explanation
> This concept is best explained by example. If we had instead used the pattern '^time/' (without a dollar sign at the end), then any URL that starts with time/ would match, such as /time/foo and /time/bar, not just /time/. Similarly, if we had left off the initial caret character ('time/$'), Django would match any URL that ends with time/, such as /foo/bar/time/. Thus, we use both the caret and dollar sign to ensure that only the URL /time/ matches. Nothing more, nothing less.

2. [One of the Django founders, on Reddit](https://www.reddit.com/r/django/comments/4crxug/why_does_django_use_regexs_for_the_url_routing/)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8cinb5zdmpl50cvlqvwl.png)

**In summary, django uses `pattern matching` to register `routes` and using `regex` you can build it in a easy and performatic way.**

## Open Source Examples
> Flagsmith, 2.7k stars

https://github.com/Flagsmith/flagsmith/blob/main/api/api/urls/v1.py


> Healthchecks, 6.5k stars

https://github.com/healthchecks/healthchecks
WHY DO WE PROGRAM
Tags: programming, career, softwaredevelopment, beginners
Published: 2023-08-31 20:16:28

WHY DO WE PROGRAM?
          In the world we are today, programming has become an integral part of our lives. If you are reading this, it’s as a result of countless lines of code. Have you ever wondered why we program? What makes humans dedicate their time to crafting codes to make machines do specific tasks? Computers have languages which we as programmers use to communicate with them, they are programming languages. The first computer programming language was created in 1883 when a woman named Ada Lovelace worked with Charles Babbage on his very early mechanical computer, the Analytical Engine. While Babbage was concerned with simply computing numbers, Lovelace saw that the numbers the computer worked with could represent something other than just amounts of things. She wrote an algorithm for the Analytical Engine that was the first of its kind. Because of her contribution, Lovelace is credited with creating the first computer programming language. As different needs have arisen and new devices have been created, many more languages have followed like Assembly language, FORTRAN, COBOL, BASIC, HTML, C++,  JavaScript, Python, and so on. Computer programming languages allow us to tell machines what to do. Machines and humans think very differently, so programming languages are necessary to bridge that gap.

1. Problem solving
Programming is a tool for solving various problems. Programming helps users solve their problems in different ways, optimizing supply chains, stimulating climate change scenarios, and enabling communication over a wide range of distance.
Programming is a means by which we convert our ideas into solutions to problems.

2. Global Connectivity
               In this world, programming links the geographical gaps. It enables global communications through social networks, and e-commerce websites, and allows people to communicate with each other to share ideas and carry out other activities globally.

3. Personal Fulfillment
               For many programmers, the act of writing codes is very satisfying, and creating projects which could go worldwide and bring about jobs and can be immensely gratifying. It makes programmers motivated.

4. Impact on Society
               Programming has a very great impact on the society. It enables the society to interact with various technology which makes life easy for users and ease stress.

5. Career Opportunities
               Programming is a career opportunity for many, there is a growing demand for tech talents to develop new and more technologies. It is a stable and well paid profession.  Many people are drawn into programming due to it’s financial benefits and career advancement.
             In conclusion, programming is driven by a lot of motivation. As a programme, you move from a user perspective to a programmer's perspective which means thinking widely into the creation of new technologies for advancement.
Tutorial: Sending Mobile Push Notifications Using Courier and Their New Android SDK
Tags: mobile, android, push, notifications
Published: 2023-08-31 20:07:00

---
title: Tutorial: Sending Mobile Push Notifications Using Courier and Their New Android SDK
published: true
description: Courier’s Android SDK simplifies the task of sending Android push notifications. This tutorial covers all you need to get it set up and working.
tags: mobile, android, push, notifications
cover_image: https://www.courier.com/_next/image/?url=https%3A%2F%2Fimages.ctfassets.net%2Fz7iqk1q8njt4%2F5NACaPGNYNBWFy29Yzesb4%2Fb8f9fe2a63920e46551f1238f6489c9c%2Fandroid-sdk-push-notifications-header.png&w=1920&q=75
# Use a ratio of 100:42 for best results.
published_at: 2023-08-31 20:07 +0000
---
If you're building mobile applications, learning how to deliver push notifications is essential to creating engaging experience and notifying your users of urgent tasks or updates. 

Sending push notifications to Android apps is pretty straightforward, but quickly gets complex when you start to consider sequencing notifications across multiple devices, managing tokens, complying with regional regulations, localizing notifications, and respecting user preferences. 😬

Enter Courier, a platform designed to streamline this process. Courier’s Android SDK provides a comprehensive solution for push notifications, simplifying the complex task of managing product-triggered communications across different platforms. 

In this tutorial, we will focus on Courier's push notification capabilities within Android apps, covering the setup process, key features, and how to send a test push notification. By the end, you’ll see how Courier can make managing Android push notifications a more manageable task, leaving you with more time to focus on creating a great user experience.

Tutorial → https://www.courier.com/blog/android-sdk-push-notifications-using-courier/

Github Repo → https://github.com/trycourier/tutorial-android-push-notifs
First commit
Tags: beginners, discuss, career, node
Published: 2023-08-31 20:05:54

Hello there!

This is my first post at dev.to, where I find that will be a good fit to log my journey through engineering.

Firstly, let me introduce myself: I'm Fernando, working as a Product Manager (a role that I've been in since 2012), but before that, I started as a developer, with PHP and JavaScript, a time when you have to be a full stack (we never call ourselves a full stack, just developers).

I saw the rise of jquery, PHP frameworks such as Cake, Code Igniter... The birth of nodejs, and so on...

> But, something has changed 3 years ago...

I always love to be close to the developers, in such a way that I was facilitating some technical discussions, giving some ideas, and helping other engineers on how to discuss with PMs to prioritize technical debts.

Then, DevEx (or DX - Developer Experience) happened (or we started to talk about it), and suddenly, I was involved even close to engineering teams, studying DevOps, Accelerate, DORA, team topologies, AWS...

> I think this was a sign to rethink my career.

And right now, I really know what I want, so I'm trying to get back to engineering.

**My first commit**

To restarting, I pushed my first project with node.js, a simple, under-construction one. [You can see here](https://github.com/effelima/agile-metrics).

As I said, this project is under development, I need to refactor everything since I just sat on my desk and started writing.

I have some "to dos" and improvements in my backlog, such as: using Git Hub Projects API or Trello, showing estimations using historical data, and whatever came to my mind.

If you have some feedbacks about my project, let me know and thanks in advance!
Developer Updates – August Edition
Tags: webdev, news, tutorial, openapi
Published: 2023-08-31 19:05:04


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lxcak1r32991a297l732.png)

## Recent updates

**Introducing PayPal’s OpenAPI Specifications**   

We are excited to announce the public release of PayPal APIs in OpenAPI 3.0 format. Transitioning to OpenAPI facilitates easier adoption, enables interoperability, automates client code generation, and unlocks seamless integration with existing tools currently used in the industry. Check out our APIs on [GitHub](https://github.com/paypal/paypal-rest-api-specifications). 

**Empowering developers with seamless transactions!**

Documentation for the SDK flavor of vault without purchase are now live on the [developer portal](https://developer.paypal.com/docs/multiparty/checkout/save-payment-methods/purchase-later/js-sdk/cards/)! Experience the power of frictionless, offline recurring transactions using the JS SDK.

## Community updates 

**Let’s connect at Money20/20** 

PayPal is gearing up to be part of Money 20/20 in Las Vegas this October! As a leader in shaping the future of payments, we are excited to connect with fellow industry enthusiasts, developers, thought leaders, and innovators at this event to discuss the latest innovations from PayPal. Join us for a meetup, space is limited! To register follow us on our channels to get the latest updates or contact us at developer@paypal.com.   

**Developer Meetup in Berlin!**  

We are hosting a developer meetup in November 2023 in Berlin, Germany. Join us in person as you’ll hear about new use cases, code samples, best practices, and connect with local developers. Become a [member of our community](https://www.meetup.com/paypal-developer-community/) on Meetup to hear about the details.   
  
**Interested in paid research?** 

We continue to improve our developer experience and we’re recruiting developers for upcoming user research interviews and unmoderated studies. Help shape PayPal’s Developer Experiences! Contact us at jolake@paypal.com or developer@paypal.com 

**Introducing PayPal Champions**   

We are thrilled to launch PayPal Champions, an ambassador program that recognizes the exceptional community members who fuel our progress. Developers and advocates play a crucial role in shaping our product and tools and products, helping us evolve as a company. Learn what makes a good PayPal Champion by [visiting our page](https://developer.paypal.com/docs/community/paypalchampions/). 

## Stay connected

To get help with code or share feedback, send us an email at developer@paypal.com, reach out on [dev.to](https://dev.to/paypaldeveloper) or the communities below. 

-Follow us on [Twitter](https://twitter.com/paypaldev) for updates and latest news. 
-Reach out to us on [GitHub](https://github.com/paypaldev). 
-Get your questions answered on [Stack Overflow](https://stackoverflow.com/questions/tagged/paypal).
-Subscribe to our [YouTube](https://www.youtube.com/channel/UCvNxReTAQudFN4RQth9r_6A) channel for the latest how-to videos.
-Find more articles on [Medium](https://medium.com/paypal-tech).
React useContext()
Tags: react, usecontext, reactjsdevelopment
Published: 2023-08-31 19:33:24

Is a way to manage state globally. It is used with the useState Hook to share state between deeply nested components more easily than with useState alone (prop drilling). We can create different types of context that like different stores

```react
const UserContext = createContext() // use UserContext as Provider to wrap the tree of components that need the state Context
function Component1() { 
  const [user, setUser] = useState("Rana"); 
  return (
    <UserContext.Provider value={user}>
    <Component2 user={user}/> 
    </UserContext.Provider>
  ); 
}
//Then in any child component call this context to access its values 
const user = useContext(UserContext)

```

> Note:
> - Provider: provides the information 
> - Consumers: receive the information
Using the canPlayType() Method of the HTMLMediaElement API
Tags: javascript, html, webdev
Published: 2023-08-31 19:21:42

_This short tip appears in this week's issue of [Web Tools Weekly](https://webtoolsweekly.com/), my newsletter for front-end and full-stack web developers._

If you're dealing with varying levels of support for audio and video files in your apps, you'll want to be familiar with the `canPlayType()` method of the HTMLMediaElement API.

This method allows you to determine whether a browser can play a specific media type or codec before attempting to load it. This can help ensure cross-browser compatibility when using different video and audio files.

Of course, in most cases you should be pretty safe to use modern media formats, but if you need to check for support, here are a few examples.

```js
const video = document.getElementById('videoElement');

const mediaType = 'video/mp4';

if (video.canPlayType(mediaType)) {
  console.log('Browser supports ' + mediaType);
} else {
  console.log('Browser does not support ' + mediaType);
}
```

The example above assumes a video element on the page, then the media type is passed in to the `canPlayType()` method. The method takes a single argument, a string specifying the MIME type of the media you want test.

The method will return one of 3 string values, depending on support:

- **An empty string**, indicating it's not playable on the current device
- **A string containing the text "probably"**, indicating it's likely to play on the current device
- **A string containing "maybe"**, indicating there's not enough info to determine if it's playable on the current device

Note that the above code assumes that an answer of "maybe" means it's playable, so you'd have to adjust the code to account for "maybe", if needed, though it's probably rare to get that result.

You can also optionally pass in a codecs parameter containing a comma-separated list of codecs. Here's an example that checks for codecs:

```js
const codecs = [
  { type: 'video/mp4', codec: 'avc1.42E01E' },
  { type: 'video/webm', codec: 'vp9' }
];

for (const codec of codecs) {
  const support = video.canPlayType(codec.type + '; codecs="' + codec.codec + '"');

  if (support === 'probably') {
    console.log(`Browser most likely supports ${codec.type} with codec ${codec.codec}`);
  } else {
    if (support === 'maybe') {
      console.log(`Browser might support ${codec.type} with codec ${codec.codec}`);
    } else {
      console.log(`Browser does not support ${codec.type} with codec ${codec.codec}`);
    }
  }
}
```

You can fiddle around with both of the above code examples in [this CodePen demo](https://codepen.io/impressivewebs/pen/xxmVvaV?editors=0011).

You can see in the codecs example that I'm using the 'probably' and 'maybe' values in a more applicable manner.

As usual, the safest way to deal with varying levels of media support is to provide proper fallbacks in your HTML using `<source>` elements. But this is a decent method to keep in mind should the need arise for some specific checks for media types and codecs.

_Be sure to subscribe to [Web Tools Weekly](https://webtoolsweekly.com/) for more tips like this_
Tutorial: Create a single database by Azure
Published: 2023-08-31 19:13:36

Today, I set up a database on Azure. Previously, I always worked with local databases like MySQL, MariaDB, and MS SQL. I used various clients, both CLI and GUI, such as MySQL Workbench. However, when designing for the cloud, there are many more options to consider.

For the first time, I opted for the graphical interface of the Azure Portal.

1. Let's navigate to the **Azure SQL** page. I don't have any databases yet, so I'll click **Create New**.
2. Now we need to choose the type of resource we want to create. I chose "**SQL database** / **Single database**." The other options, "**SQL managed instance**," and "**SQL virtual machines**" seem more advanced. I'll explore those later to understand their implications.
3. Next, we're in the "**Basics**" section. First, we select a subscription, which will be billed for the database.
4. Then, we assign a **resource group**—a folder where all the new resources will be placed. I created a new one.
5. For the "**Database name**" we should give our database a unique name. The server will need a unique name too, but I'll cover that later.
6. Now we need to set up the **server**. A SQL server can serve multiple databases. If we already have one, we can use it. We can also connect additional databases to the new server later. For the server, I chose an **SQL authentication** method. I'm using SQL authentication—it's a simple username/password setup. It's important to remember these credentials and write them down somewhere secure.
7. When asked if I want to use an **SQL elastic pool**, I answered "No." This is related to self-managing database resources. I'll need to learn more about this.
8. The "**Workload environment**" encompasses backup and compute settings. I selected "**Development**"—it's cost-effective but less secure.
9. Next, we move to the "**Networking**" section.
10. Here, we choose the "**Connectivity method**"—a "**Public endpoint**."
11. For the "**Connection policy**," I switched "**Add current client IP address**" to "Yes."
12. I didn't make any changes in the "**Security**" section, as I'm not familiar with the terms and technologies.
13. In the "**Additional settings**" section, you can create a sample database. I went ahead and did that.

Now, the database is configured. I clicked "**Review + Create**" and then "**Create**."
Azure provisions an SQL Server and sets up the database.

For access, I tried the **Query Editor** in the Azure Portal and **Azure Data Studio** on my local laptop.
Everything worked as expected. The schema is readable, and all queries returned data.

[[Tutotrial](https://learn.microsoft.com/en-us/azure/azure-sql/database/single-database-create-quickstart?view=azuresql&tabs=azure-portal)]