teleren/devto huggingface dataset:
What was your win this week?
Tags: discuss, weeklyretro
Published: 2021-07-23 21:15:13

---
title: What was your win this week?
published: true
description: Got to all your meetings on time? Started a new project? Fixed a tricky bug?
tags: discuss, weeklyretro
cover_image: https://cl.ly/188e843c2985/download/Image%202019-02-15%20at%202.36.37%20PM.png
---

Hey there!


**Looking back on your week, what was something you're proud of?**

All wins count — big or small 🎉

Examples of 'wins' include:

- Starting a new project
- Fixing a tricky bug
- Getting a code compliment... or whatever else might spark joy ❤️ 

---

Wishing you more wins to come — and as much relaxation as this cat is experiencing...

![Cat getting brushed by multiple people](https://media.giphy.com/media/wu29mJA7MXBzG/giphy.gif)
Build a Link Shortener with Cloudflare Workers: Deployment
Tags: serverless, tutorial, javascript, cloudflare
Published: 2021-07-23 21:11:40

In this part of the tutorial, we'll be deploying your Worker to production, where users will be able to access it! 

If you haven't gone through the [front-end part of this tutorial](https://dev.to/mmascioni/build-a-link-shortener-with-cloudflare-workers-the-front-end-3pae) yet, head back to that part first.

Before we continue, let's take another look at your `wrangler.toml` file to make sure everything's in order. Your file should look something like this:

```toml
type = "webpack"
name = "redirect"
account_id = "YOUR_ACCOUNT_ID"
workers_dev = true
route = ""
zone_id = ""

kv_namespaces = [ 
    { binding = "SHORTEN", id = "7654a938359f4f0e86b11afc7133166b", preview_id = "58f1a4c227534317817846d697f9ade7" }
]

[site]
bucket = "./public"
entry-point = "workers-site"
```

If it doesn't, please check in the back-end or front-end parts of this tutorial to ensure everything's set up properly. Once deployed, your Worker will be available for requests at `<name>.<yoursubdomain>.workers.dev`, where `name` is the project name you defined in the `wrangler.toml` name key, and `yoursubdomain` is your Workers subdomain, which you can see on your dashboard. Note that in production, your Worker will use the KV namespace available at `id` instead of `preview_id` automatically.

If everything looks good here, deploy your Worker with `wrangler`:

```shell
$ wrangler publish
```

And that's it! 🎉 Wrangler should return the URL your Worker's available at in the output, and you should be able to see it in your dashboard too. Go check it out and take it for a spin!

## What we covered and what's next

Thanks for coming along this tutorial journey with me! We've covered:

- What Cloudflare Workers are and some of the advantages of using them
- How to use Workers KV to store key:value pairs of data, and access it in your code
- How to use Wrangler to scaffold your project, interact with KV, test and deploy
- Using Workers Sites to upload and serve static assets from your KV namespace
- Creating API endpoints for your Worker

If you're looking to extend this project further, here are a few ideas:

- **Add basic reporting functionality**: Make use of your KV namespace to store the number of clicks a link has received so far!
- **Use a custom domain**: Make use of [routes](https://developers.cloudflare.com/workers/platform/routes) to deploy the worker on a custom domain! (as it stands right now, the shortener actually lengthens domains 😛)
- **Enable the ability to delete a link**: Currently, links expire every 24 hours. Give users more control over when the link goes away.
- **Improving error handling**: Currently, error handling is pretty basic. Improve it by adding a static 404 page when a slug isn't found/expired, or experiment with piping failures to a 3rd party log ingestion service!

Let me know if you add in any of these features or build whole new things on top of this. Hope you enjoyed the tutorial; have fun building with Cloudflare Workers!
Middleware: part-3.0
Tags: python, middleware, opensource, java
Published: 2021-07-23 20:58:05

##So, what is a Middleware ???

_Middleware_ is a **_software_** that provides common services (also repetitive) to the applications beyond what's offered by the OS (Operating System).

It is the **_bridge_** between the _Frontend_, the _Backend_, and the _OS_.

It helps developers to build the application more efficiently.

It is the _connective tissue_ between the application, the data and the users.

Middleware usually runs between the **R**equest- **R**esponse cycle (i.e., between the client and the web server).
![Request-response cycle](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u07qiayh6t7szdb7ltj1.jpg)

##Now, you all must be wondering... "Where is the middleware's role in the project??"
Well, I need to explain this with a couple of example....
**_Scenario-1_**
In our hotel website, only the logged-in user can place food orders.
So, if an unregistered user *or* a user without signing in, tries to place an order.....then, user will automatically be directed to the login page stating "Please login before placing orders!!".
Now..... how did this redirection happen???
Exactly, through the middleware, the **_authentication middleware_**.

**_Scenario-2_**
When a user types a URL say: _"localhost/menu"_
But, the URL mentioned in the URL configuration file is _"localhost/menu/"_
Now... **_CommonMiddleware_** takes care of appending the end slash to the URL and rendering the correct template instead of throwing an "URL not found" error.
COOL!!, isn't it? 

##What happens if NO MIDDLEWARE ???
Yeah...It's not an issue, you can still develop a website without using a middleware, but I would call it a _less-efficient style of development_.
What I mean is, if you don't want to use a middleware then, you will have to sit writing some **repeat codes** whenever and wherever required. This some what decreases the efficiency of the developer.

Like....a good engineer's **focus** should be in **_delivering a satisfactory product_** to its customer, in the **_constrained time_** (*or* lesser than the promised time), with a little less complex in the coding work (keeping the **Agile Methodology** in mind) so that, if a customer needs some add-ons *or* removal of certain features then, the **_less code complexity_** will make it more easier and faster to make the necessary modifications.

Putting it all in a nutshell...
It all started with a small idea of exploring an open-source alternative for Java.
Learning the **SDLC** and applying it throughout the project process.
Importance and fun of working as a team, right from teaching each other, correcting each other's mistakes to learning from our mistakes...we all made it.
We literally got exposed to many new technologies.
Finally, we developed a website as a POC and justified our thesis of PYTHON being one of the best alternate options for Java.
So yes...this was a pretty much of my learning and experience throughout our "_The Middleware Opensource Option/s_" project.

###Hope you enjoyed the series :)
######Will get back with a new one shortly...
#Thank you.
MVT Architecture: part-2.1
Tags: python, java, opensource, middleware
Published: 2021-07-23 20:54:20

I mentioned about the **MVT** (**M**odel-**V**iew-**T**emplate) architecture earlier.

You must be knowing the MVC architecture that allows developers to change the visual part of an app and the business logic part separately, without affecting one another. But it's a little different in case of Django.

Django forces the developers to separate their development of application into 3 loosely coupled components, the **_model_**, the **_view_** and the **_template_**.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wjhxbqftwrtotbs2ipiu.jpg)
######Image source: hackr.io

**MODEL** : *Data Management Layer*
It is the component that manages an application's data and usually interacts directly with the database (*PostgreSQL* in our case).

**TEMPLATE** : *Data Presentation Layer*
This is the layer that presents data to *or* accepts data from the user, (usually this is what most users interact with).

**VIEW** : *Between Layer*
This is the part that sits between the data management layer and the data presentation layer. (This layer grabs data, usually, some user input, from the presentation layer, manipulates the data, and then passes it to the data management layer *or* vice-versa). 

##The Django's MVT Architecture
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/148cwitoas0al156tofq.jpg)


I can give you a couple of example for the better understanding of the MVT architecture...
**_Example 1_**:
**1)** Customer makes a request for the menu page.
**2)** Django maps the incoming request (URL) to the application logic (view function).
**3)** A list of URLs will be specified in the *URL configuration file*.
**4)** Django looks into the list of URLs and invokes the appropriate *view function* mapped to URL pattern where the match is found.
**5)** And then, the requested menu page will be rendered from the *templates* to the customer, through the browser.

**_Example 2_**
**1)** We can have another scenario where a new customer is trying to register by sending some information. Now here, this becomes a *save request* from the user.
**2)** This save request goes to the *models file* where a set of *python classes* are defined that maps the *database table* to the python *objects*.
**3)** Models file directly interacts with the database through the database API, *psycopg2*.


This was a brief explanation of the *MVT architecture*.
Project Design and Implementation: part-2.0
Tags: python, opensource, java, middleware
Published: 2021-07-23 20:45:15

Once I was done with choosing the *Django Web Framework*, I had to step into the _**DESIGN**_ part of the website.
It was a basic *online food ordering website*.
Any customers can easily visit our website from their convenient browsers (through desktops or mobile).
Our website has two web interfaces: the customer web interface and the chef web interface.
In the *customer web interface*, a customer has to sign in to place some orders online.
Customers can make the online payments through the *Razorpay payment gateway API* that is integrated.
Customers can also track their order status easily.
As I said earlier, our website also has the *admin panel* that can be accessed only by the *superusers.*
The *chefs* are the superusers in our case.
Since our website is dynamic, the chefs can handle the customer UI from the admin panel by adding, deleting or updating the menu, order status, the events, etc.
All the orders placed by the customers along with the payment details will be reflected in the *chef web interface*.

Moving on to the _**IMPLEMENTATION**_ part...
The *MVT architecture*, *ORM*, *routing*, *Razorpay payment gateway API*, *PostgreSQL* and *psycopg2* were some of the main parts of the implementation.
I also designed the *database schema* as per the website requirements. The database was logically divided into 2 parts;
*ONE*- the part which maintained the data about the users (customers) and the superusers (chefs).
*TWO*- the part which had the hotel related data like the events, the menu, the items, the orders etc.
Since we have this **ORM**, I didn't have to write SQL queries, instead I handled the database using the Python classes, functions and the objects. *(Thanks to DJANGO)*.
.
.
.
######*You can read about the [implementation of the MVT architecture](https://dev.to/spoorti/mvt-architecture-part-2-1-1hnd) in the part-2.1 of this series.*
Path to seniority
Tags: discuss
Published: 2021-07-23 20:40:57

Hi friends, I have a big question in my head and it's about the seniority path in front-end development or software engineering...

I'm learning programming with HTML and CSS since 2015 and I guess it's two years now that I working as a mid-level front-end developer and UI designer. I've delivered over 5 big projects with Vuejs and Nuxtjs to companies and the customer I worked for...

But now, I think I'm stuck, learning new things is hard for me and I don't know what should I do to be a senior software engineer that companies want to work with!

Will you share your experience and suggestions, please?
My Role in the Project: part-1.1
Tags: python, java, middleware, opensource
Published: 2021-07-23 20:28:14

I played a vital role in the website development that was taken as a *POC.*
Entire designing and implementation of the website (along with the middleware implementation) was handled by me.
I proceeded into my part of work by keeping the **SDLC** in mind.

It all started with my _**PLANNING**_.
I first gathered some information regarding the different ways I had for developing the website in Python.
And then I came across the 2 most popular frameworks; *the Django Web Framework* and *the Flask Framework*.

So now, I had to make a _**DECISION**_ of choosing one among these two.
As per my knowledge, we need to make decisions taking the customer's requirements plus the company's profit into consideration.
In our case, we neither had company, nor we had customers. **But** we did have a *project* and we did have the *requirements*.
The **project** was to find out the alternate middleware opensource option for Java.
And the **requirement** was creating a minimal level website that would serve as a POC by helping us show the alternate opensource usage with some middleware implementation in it.

Keeping the requirements in mind, I went for the **Django Web Framework** by _**ANALYZING**_ the following points about Django:
*1)* It has a conventional project structure.
*2)* It has an easy code base navigation.
*3)* It provides access to many tools that will help in the rapid development.
*4)* It's active developer community.

After this, I stepped into the _**DESIGN**_ part of the website.

Now, after the basic design was done, all I was left with was the _**IMPLEMENTATION**_ part.
The *MVT architecture*, *ORM*, *routing*, *Razorpay payment gateway API*, *PostgreSQL* and *psycopg2* were some of the main parts of the implementation.
I also designed the *database schema* as per the website requirements. The database was logically divided into 2 parts;
*ONE*- the part which maintained the data about the users (customers) and the superusers (chefs).
*TWO*- the part which had the hotel related data like the events, the menu, the items, the orders etc.
Since we have this **ORM**, I didn't have to write SQL queries, instead I handled the database using the Python classes, functions and the objects. *(Thanks to DJANGO)*.
.
.
.

######*[The design and implementation](https://dev.to/spoorti/project-design-and-implementation-part-2-0-37p8) part will be covered in the part-2.0 of this series.*
.
.
.
######*You can read about the [implementation of the MVT architecture](https://dev.to/spoorti/mvt-architecture-part-2-1-1hnd) in the part-2.1 of this series.*
Pure CSS Netflix Intro Animation
Tags: css, saas, animation, netflix
Published: 2021-07-23 20:02:38

## Easy Make Netflix Intro Animation by CSS:

### 🔸 Demo:



{% codepen https://codepen.io/aradpardaz/pen/poRGwLe %}

[Credit: Claudio Bonfati](https://codepen.io/claudio_bonfati/pen/mdryxPv)


<p><a href="https://video.delgarm.com/">Video</a>
Project Background: part-1.0
Tags: python, java, middleware, opensource
Published: 2021-07-23 19:56:42


I will be talking about my recent 6th semester team project here, **"The Middleware Opensource Option/s"**.
Our **objective** was to explore the best alternate middleware opensource option for Java.
The **reason** behind choosing this project was, as we know that Java is not free for production use. The organization has to pay for the current version of Java SE 14.
So we thought of looking for an existing alternative for Java that is opensource followed by a POC (proof of concept).
This was our _**PLAN.**_

Exploring for us, was to choose the possible best one amongst the few good ones.
For this, we had to **gather sufficient information.**
So, I told my teammates to come up with 1 or 2 languages of their choice along with their respective features, advantages and disadvantages.

Once we had all the required information, we were all good to go for the _**ANALYSIS.**_
Some of the top features that we included were the; *security*, *purpose*, *scalability*, *availability of libraries*, *community support*, *ease of use*.
Keeping these above KPI (key performance indicators) into consideration, we compared and analyzed and then finally decided to choose **Python** as it was fitting best in our point of view.

Our next step was creating a website as a **POC**. And it was where I played a vital role. Right from planning, designing till the implementation (except for the frontend part) of the website was done by me.
Keeping the SDLC (software development life cycle) in mind, I happened to work on this.

######*You can view [My detailed role in the project](https://dev.to/spoorti/my-role-in-the-project-part-1-1-3h5h) in part-1.1 of this series.*
.
.
.
######*[The design and implementation](https://dev.to/spoorti/project-design-and-implementation-part-2-0-37p8) part will be covered in the part-2.0 of this series.*
Replay: I Became an IBMer in High School -This Is What I Learned
Tags: events, ibmcloud, video, meetup
Published: 2021-07-26 17:15:47

---
title: Replay: I Became an IBMer in High School -This Is What I Learned
published: true
date: 2021-07-23 19:24:35 UTC
tags: Events,IBMCloud,Video,Meetup
canonical_url: https://maxkatz.org/2021/07/23/replay-i-became-an-ibmer-in-high-school-this-is-what-i-learned/
---

Every year IBM has summer internship programs for high-school and college students. This year is no different. The IBM Developer Advocacy organization hosted four wonderful high school interns this summer: [Cristina](http://linkedin.com/in/cristina-mendoza-oseguera-2a28a5215), [Carolina](http://linkedin.com/in/carolina-mendoza-oseguera-a8460a215), [Victoria](http://linkedin.com/in/victoria-marin-revolorio-662457210), and [Rodrigo](http://linkedin.com/in/rodrigo-castro-751651210) (other parts of IBM hosted more interns).

[![I Became an IBMer in High School -This Is What I Learned](https://katzmax.files.wordpress.com/2021/07/highschool-interns-replay.png?w=1024)](https://www.crowdcast.io/e/i-became-an-ibmer-in)<figcaption><a href="https://www.crowdcast.io/e/i-became-an-ibmer-in" target="_blank" rel="noreferrer noopener">I Became an IBMer in High School -This Is What I Learned</a> online meetup</figcaption>

Cristina, Carolina, Victoria, and Rodrigo worked on different projects during the internship. At the end of their internship (this week) they hosted a live Crowdcast online meetup where they shared how they became IBM interns, what projects they worked on, and what their experience was working at IBM. Joining a big company like IBM when you are only a high-school senior can be exciting and also scary. They did a wonderful job, they learned a lot, they loved working with IBM folks and I believe will remember this experience for a life time.

I encourage you to [watch the online meetup replay](https://www.crowdcast.io/e/i-became-an-ibmer-in) where you will learn about their projects and experiences. [Cristina](http://linkedin.com/in/cristina-mendoza-oseguera-2a28a5215), [Carolina](http://linkedin.com/in/carolina-mendoza-oseguera-a8460a215), [Victoria](http://linkedin.com/in/victoria-marin-revolorio-662457210), and [Rodrigo](http://linkedin.com/in/rodrigo-castro-751651210) will give you an overview of the following:

- Brief introduction and background
- The IBM internship program
- How we became interns
- Internship projects 
  - Healthcare case study showcasing DataStax graphing capabilities
  - Technical Media Production and Documentation
  - SEO Review Response
  - What are the advantages and disadvantages or Microservices? ~ Article
  - Using Microservices to create a To-Do list
- Conclusion and advise to other high schoolers

Check out our [Crowdcast online meetups channel](http://crowdcast.io/ibmdeveloper) for more developer education videos.
Python Learning Sources
Tags: python, programming, beginners, productivity
Published: 2021-07-23 18:59:18

 I have been using a lot of resources to learn Python Programming. As I myself am still learning, I wanted to share some resources I personally felt really helpful.

##Book I would Recommend
I won't prefer reading a book to learn programming but this book has impressed me a lot!
I am referring to the book named 'Python Crash Course: A Hands On Project Based Introduction to Programming' by Eric Matthes. This book has been really helpful. Do give it a read and also practice the exercise questions.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g2ady6w46kdpds7ldr81.png)


After you are thorough with the book then you can go to W3Schools and solve those exercises(those are pretty easy questions). This will probably give you more confidence 👍

Finally you have to solve problems from HackerRank. These questions might be a bit complex and tricky but more you try the more you learn. I myself had to do much to solve the problems. But no pain no gain!

Useful YouTube videos related to python programming can be accessed through these links:


{% youtube rfscVS0vtbw %}


{% youtube _uQrJ0TkZlc %}


{% youtube HGOBQPFzWKo %}


If you guys found this post helpful then save it so you can refer anytime 😊.
Happy Coding! 👨‍💻 👩‍💻
A Discord bot for task management!
Tags: bots
Published: 2021-07-23 15:15:57

---
title: A Discord bot for task management!
published: true
date: 2021-07-23 14:47:45 UTC
tags: bots
canonical_url: https://livecode247.com/a-discord-bot-for-task-management
---

A few days back, I created a Discord Bot solely for task management. A minimal bot with only what's required without any of those confusing functionalities. Just add, assign(if needed) and tick off.

## How to use it in your server?

The bot is published on top.gg and you can find it at https://url.kavin.me/discord-task-bot. Just click on the invite button and follow the steps. ![Screenshot 2021-07-23 at 8.03.38 PM.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1627050822851/OSlJRMFxw.png)

## Prefix

Like most discord bots, the `Task Manager` bot has a prefix, `t!`.

## Add a task

You can add a task by typing `t!add <task>`. You can also `assign` someone a task by mentioning them in the `t!add` command.

Examples:

1. `t!add This is a new task`
2. `t!add This is a new task @mentioned-user`

![Screenshot 2021-07-23 at 8.08.41 PM.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1627051126916/0todhdzFv.png)

## List all tasks

You can list all of the **remaining** tasks by typing `t!list`

![Screenshot 2021-07-23 at 8.09.03 PM.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1627051146769/9LbV1M7vk.png)

## Tick off a task

You can tick off a task from the list by typing `t!done <id of task>`. The `ID` of the task is the number which appears at the end of a task during `t!list`. In the screenshot attached earlier, it is `65`

![Screenshot 2021-07-23 at 8.10.33 PM.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1627051237054/DYNInrfOv.png)

## Show all done tasks

You can list all the tasks done by typing `t!done-list`

![Screenshot 2021-07-23 at 8.11.27 PM.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1627051293020/9s5-sAPHrX.png)

## Remove a task from done and put it back in to be done

You can put a task back in the todo list by typing `t!undo <id of task>`

![Screenshot 2021-07-23 at 8.12.33 PM.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1627051359193/aslV3Jd32.png)

## Help command

Finally, there is also a help command which lists all the commands you can use which you can get by typing `t!help`

![Screenshot 2021-07-23 at 8.13.39 PM.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1627051424547/b_iBlrtLe.png)

That's it. And that's mostly everything you need in a task manager.

> Note that the tasks are server specific and you cannot manipulate tasks across servers

## Code

The code for the bot can be found at the following Github Repo. You're welcome to create any issues or contribute by creating a PR.

{% github kavin25/discord-task-bot no-readme %}