teleren/devto huggingface dataset:
How did I benefit from GitHub Student Pack
Published: 2021-08-23 10:09:51

If you are a student who is into tech / computer programming, you have probably heard about GitHub Student Pack and already using it. If you have not, ho ahead and check it out, like right now. Here's the link: [https://education.github.com/pack](https://education.github.com/pack)
There are lots of free benefits including courses, tools and services. I'm still discovering every one of them, but today I'll be sharing the items I used until now. Here is how I benefit from GitHub Student Pack:

### - I made my personal website.
First, I took HTML&CSS courses from [One Month](https://onemonth.com/github/students). It was an intro to web development, and it was good. Really basic, really describing, most importantly, really fun. It has a deadline of 30 days for every course, altough I have a pro tip: You can enroll for the courses within 30 days and watch them later even if your GitHub benefit expires. 
Then I build my website and publish it with GitHub Pages. You can see it [here].(https://gecicidegisken.github.io/)
I also got a domain name from [name.com](https://www.name.com/partner/github-students) which was free for one year, thanks to the pack of course.

### - I learned web development.
I watched One Month courses a year ago and they were just the beginning. After that I learned much more than that.
1) [Educative](https://www.educative.io/github-students) - Sometimes I'm in the mood of learning, my receptors are fully open and I'm craving for some information.. but I just don't want to watch videos. I like learning by reading, and Educative has text-based courses. The pack gave 6 months of free Educative, so I read lots of pages and learned lots of stuff in 6 months.
2) [Front-end Masters] (https://frontendmasters.com/welcome/github-student-developers/) - Despite the fact that I just said that I love learning by reading, these courses are just AMAZING! Lots of important topics from design to computer science. All of the teachers are great, fun and they tuck you in the bed of wisdom in 5-6 hours. I'm trying to complete as many courses as possible in 6 months of free benefit.

### - Optimizing images in my repos
Beep boop. [ImgBot](https://imgbot.net/github-students/) optimized images in my all of my repos and reduces the file sizes for me. Thank you!

### - Design tools
I'm not a fan of design. But I want my projects (especially websites) to have good looks. I'm using [Canva](https://www.canva.com/education/github/) to create new designs and found some good icons from [iconscount](https://iconscout.com/github-students?utm_source=partner&utm_medium=web&utm_campaign=github-education).

I'm still exploring the pack and I know I will find a lot more tools to help me more productive and a better developer. Maybe I'll write a part 2 of this post. All of the thanks to GitHub!

PS: This is my first post here! Hello dev community! Nice to meet you. :)
Get started with debugging Vala programs in Sublime Text
Tags: sublime, sublimetext, vala, debugging
Published: 2021-08-23 09:50:18

---
title: Get started with debugging Vala programs in Sublime Text
published: true
description: Achieving IDE-level debugging for Vala in Sublime Text
tags: sublime, sublimetext, vala, debugging
series: Vala development in Sublime Text
//cover_image: https://direct_url_to_image.jpg
---


## Prerequisites
This tutorial assumes that you have a Vala program setup with Meson Build project structure. 

Vala is pretty underrated programming language in my opinion (but I'll probably get into that in another post). Find out more about it here: https://wiki.gnome.org/Projects/Vala

Find out more about meson here: https://mesonbuild.com

## Step 1

Install the Sublime Debugger package: https://packagecontrol.io/packages/Debugger

## Step 2

Install the LLDB adapter for it: Debugger > Install Adapters

## Step 3

Build your program if you haven't already. In the code's root directory, run this command:
```sh
meson build && ninja -C build
```
_Note: Meson Debug Build. The setup command use the 'debug' build flag by default. It also inserts debug build flag arguments too like `-g`._

## Step 4

Ensure that you've opened a sublime text project. If not, create one. It's necessary for the debugger to work. You can do so by selecting: Project > Save Project As..

Save the project file to the root directory of your code.

## Step 5

Add debugger configuration project settings

You can also add debugger configuration templates in Debugger > Add or Select Configuration then select the type of configuration you want to add. For this project, we'll pick `lldb`.

At the time of writing this, these were the following options:

- LLDB: Launch
- LLDB: Attach by PID
- LLDB: Attach by Name
- LLDB: Custom Launch
- LLDB: Debug Cargo Output
- LLDB: Debug Cargo Tests

For this project , we'll pick `LLDB: Launch`.

Now the project configuration file should open up with the configuration template added.

Customise the `debugger_configurations` field so that it looks something like this:

```json

    "debugger_configurations":
    [
        {
            "type": "lldb",
            "request": "launch",
            "name": "Launch (LLDB)",
            "program": "${workspaceFolder}/build/<your_program_name_here>",
            "args": [""],
            "cwd": "${workspaceFolder}",
            "terminal": "console"
        },
    ]
```

## Step 6

Start debugging.
Select: Debugger > Open, to reveal the debugger's UI. You'll be able to press the play button to get started. 

You can place breakpoints by clicking left of line numbers in the editor.

In the Debugger UI, the down arrow is for stepping over and the left and right arrows are for stepping out and in your code respectively.

This is just a small taste of what the debugger pakcage offers. You can find out more about it in the project's readme: https://github.com/daveleroy/sublime_debugger

Happy debugging! :smile:
5 Project to Master in Python for Beginners
Tags: python, beginners, codenewbie, tutorial
Published: 2021-08-23 09:40:04

## Introduction
As we all know that now a days **Python** is the one of the most *demanding* language in market. A **Programmer** should learn python to get job easily. So for that you need to enhance your python skills to a good level so you may hire buy someone. 
> In this blog I will told you about *5 Project to Master in Python for Beginners*
##1. Data Structure and Algorithms Visualizer
As we know that many people face difficulty while learning DSA at beginning. So you create create Stack, Queue, Linked List, BST, Graph, Sort and Search any one of the visualizer which helps you understand the working on the particular Data Structure. As a beginner it is a challenging project for you and after doing this you understand that how a project is developed.

##2. Paint Application in Python
Now After doing the #1st Project you have some experience about that how to create project. So now it's time to move one more step forward. Now you should create a Paint application which must contain minimum 10+ 2d shapes,3+ 3d Shapes Fill, Text, Change color, Save as, Open, Pencil, Undo, Redo, Cut, Copy and Paste.
You can add some more feature by your own. This Project help you to enhance your plotting skills + math.

##3. Ludo
As you have gained some more experience and now it time to create your first game. So Ludo is the best game to create in Python. You should create play with friend or play with computer 2,3,4 player
Now this is a little bit difficult to create it because it needs accurate plotting and movement. But after completing this game you will feel proud because it's not as easy as the top two project were.

##4. Typing Speed Tester
Now you need to create a typing speed tester which gives you some paragraph and x min you need to type the each character as written 
and at the end it will show you the result. You can add some typing games which helps you increase typing speed.

##5. Chatbot
Now this is the last project so It's level is insane you need to create a bot which communicate with humans. This app is very useful for you and makes your life easy. To create it you need a lot of knowledge
> i.e. Google assistant, Jarvis, Alexa

## Conclusion:
After learning this all you have a great knowledge about Python Library and you can apply for jobs too.
Python program to print over the same line
Tags: python, beginners
Published: 2021-08-23 09:28:10

Let's say you have a bunch of print statements.

**Code**

```python3
print("Pylenin")
print("loves")
print("Python")
```
The output will look like below.

**Output**

```bash
Pylenin
loves
Python
```

However, **if you want to print over and over the same line in Python**, you have to use the **carriage return `\r` symbol with the `end` argument.**

**Code**

```python3
print("Pylenin", end="\r")
print("loves", end="\r")
print("Python")
```

**Output**

```bash
Pythonn
```

Even though the first 2 print statements are executed, the carriage return makes the next **stdout** line start at the beginning of the current line.

Also, carriage return will only replace the number of characters contained in the print statement. That is the reason, you have an extra **n** at the end.

This is one of the applications of print in Python. If you are curious to know more, [check out my blog](https://www.pylenin.com/blogs/python-print/) on the various aspects of printing in Python.
Practical tips for constructing Object diagrams from applications.
Tags: programming, design, oop, productivity
Published: 2021-08-23 09:26:27

# Practical tips for constructing Object diagrams from applications.
- Don't begin constructing an object by merely jotting down classes and inheritance. **Understand the problem first.** The content of an object model is driven by it's relevance.
- **Keep the model as simple as possible.** Avoid needless complications.
- **Carefully choose names.** Choosing the right name is one of the most difficult step in object oriented design. Choosing the right names not only avoids confusion but also improves the clarity in the program structure. Names should be descriptive, crisp, and unambiguous. Names should not be biased with only a certain aspect of the object, but rather have an comprehensive way of approach.
- **Try to avoid too deep nested generalizations**
- Don't be surprised if your object diagram requires revision. **Object models often require multiple iterations** to clarify names, repair errors, add details and correctly capture structural constraints.
- **Try to get others review your model**. Object models can be a focal point for stimulating the involvement of others.
- **Always document your object models.** The object diagrams specify the structure of a model but cannot describe the reasons behind it. The written explaination guides the reader through the model and explains the reason behind it. The written explaination guides the reader through the model and explains the subtle reasons why the model was structured in the particular way. The written explaination clarifies the meaning of the names in the model and should convey the reason for each class and relationship.

*Adapted from the book [Object - Oriented Modeling and Design](https://www.amazon.com/Object-Oriented-Modeling-Design-Uml/dp/8120330161)*
Most used git commands
Tags: git, github
Published: 2021-08-23 08:57:21

#1. git remote
To start working on a repository, you need to either clone the repository or add remote repository. Cloning automatically adds 'origin' as your remote.

`git remote add <remote_name> <url>`

Example: Consider I want to start working on react repository,
I would type the following command:

`git remote add ritik https://github.com/facebook/react`

To check whether your remote repository is added or not,
You can use:

`git remote -v`

#2. git checkout

After setting up the remote, you would like to start working on the issue #70. So, you should make a branch for the same.

So, to create a new branch and switch to it at the same time,

`git checkout -b <branch_name>`

Example,
`git checkout -b issue#70-fix-button-styling`

Note:
`git checkout -b`
is shorthand for
```git branch issue#70-fix-button-styling
   git checkout issue#70-fix-button-styling ```

#3. git pull
While working on a branch, it might be the case that one of the collaborators has made changes to your branch, or there are some new changes in the master branch that you want your branch to have. You can do by,

`git pull <remote_name> <branch_name>`

Example,
`git pull ritik issue#70-fix-button-styling`

#4. git status

The git status command displays the state of the working directory and the staging area. It lets you see which changes have been staged, which haven’t, and which files aren’t being tracked by Git. Status output does not show you any information regarding the committed project history.

`git status`

The output will look like this:
``` 
# On branch issue#70-fix-button-styling
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
#modified: hello.js
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
#modified: index.html
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
#index.css
```

#5. git add

After making a change, if you want to add an untracked file to the staging area for next commit. git add lets you do that.

Lets say you made changes to index.css file and want to add this file for commit. First we need to add it from untracked files to the tracked files.

`git add <filePath1> <filePath2> <filePath3>`

(Space separated filenames to add each file to staging area)

example,
`git add index.css`

#6. git commit

To commit all the files that are in staging area, i.e, all the tracked files.

`git commit -m <commit_message>`

Example,

`git commit -m "style: fixed button colors"`

#7. git push

Our repository is still local, only we can view it, make changes to it. To make it public and to push all the commits, on our first push we would write:

`git push -u <remote_name> <branch_name>`

Example,
`git push -u ritik issue#70-fix-button-styling`

After our first push, if we make more commits and to push them on to the remote repository. We can use:

`git push`

Note: Git push only uploads changes that are committed.
Using console.log() on any website? Logpoints let you do that!
Tags: developertools, debugging, web
Published: 2021-08-23 08:56:43

---
title: Using console.log() on any website? Logpoints let you do that!
published: true
date: 2021-08-23 08:56:43 UTC
tags: DeveloperTools, debugging, web
canonical_url: https://christianheilmann.com/2021/08/24/using-console-log-on-any-website-logpoints-let-you-do-that/
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ahyr7i2pq0s9djlt4w70.png
---

If you want to know the value of a certain expression in any JavaScript on the web, you can use logpoints for that. It is like injecting a `console.log()` anywhere you want.

Here's a quick demo:

{% youtube DRRezUZvZ6I %}

Here's how the demo works:

1. Open [https://codepo8.github.io/dog-browser/](https://codepo8.github.io/dog-browser) in the browser
1. Open Developer Tools, go to the `Sources` tool
1. Locate `walkies.js` and open it
1. Right-click the line number where you'd like to add a logpoint - in this case line `57`
1. Select `Add logpoint` to open the editor
1. In the Editor, enter the expression that you'd like to log - in this case `data`.
1. Hit Enter to save and a badge shows on the line number.
1. Go to the `Console`, interact with the site and every time line `57` executes, you see the result of the logpoint expression to the console.

You can set as many logpoints as you want. Clicking the badge again removes them.
Profile Card
Tags: css, html, codepen, firstpost
Published: 2021-08-23 08:46:54

Design Profile card using HTML and CSS

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

CodePen link:
https://codepen.io/sanketbodke/pen/NWgKyZW

Also follow me on Github:
https://github.com/sanketbodke
What is tmux?
Tags: linux
Published: 2021-08-23 08:41:27

tmux is a "terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen in [Linux](https://bsdnerds.org/what-is-linux-shell/). tmux may be detached from a screen and continue running in the background, then later reattached."

tmux is my favorite terminal multiplexer, a program that lets you run many applications in the same terminal, with one keystroke to switch. tmux is very powerful and flexible. You can resize panes, set up shortcuts for launching programs, even use it to create text macros. 

There's a course on [tmux here](https://www.udemy.com/course/linux-tmux/), that explains how to use it. 

![tmux](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0733t8xcmue3egratlg6.png)

In other words, it makes working on multiple programs at the same time simpler.

A tmux session consists of one or more windows and zero or more panes. A window contains a single program; zero or more panes occupy each window. Each pane takes up one row of the window and has one or more lines of text.

tmux is one of those programs that I can't live without as a programmer. I use it every day, multiple times a day. It's just so efficient in running my multiple programming sessions.

## Tmux on Windows?

The only problem is that tmux isn't available for Windows, and if you're a programmer, you spend most of your time in your terminals anyway.

In order to use tmux on Windows, you have to install a virtual machine on top of your existing operating system. This works - but it's completely unnecessary. But the Windows terminal is very limited anyhow
My journey to learning programming starts...
Tags: javascript, webdev, programming
Published: 2021-08-23 08:13:13

This is my impromptu post about me introducing myself and hopefully deliver on the promise I am making now to give a concise step-by-step log of my journey to learning programming. Albeit I have been doing it for about a year now.

![shrugs](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1c8i6wu39eo00hvaaxgy.gif)

I am not in any sort of development role currently 😒
I am just your average techie, my job consists of working with different types of technologies.
Office 365, Microsoft Azure, Windows Server etc.., and the more regular occurring "Please help my PC is slow!"

My goal here is to really showcase what I have learnt, what I am busy learning and deliver that in a way that is good enough for a promise.resolve() but still bad enough to encourage criticism, rectification and points out my misunderstanding.

Here's to an awesome journey!

![see-you-soon](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5flj3qgqc8zeymg0i0pl.gif)
Lightning Fast MongoDB Data Query : Part - 1
Tags: mongodb
Published: 2021-08-23 07:52:09

Databases store hundreds and thousands of data. Querying a document from a huge database is often time consuming. 

_**How many times have you found yourself watching the loading spinner while your website loads?**_

As a Developer you don't want this to happen to your site right? 
But hiring Database engineers is not for us, we want to do it free of cost!!

Well here are a few simple tricks or features that you can use to achieve this : 

## Indexing
The most obvious solution is to `create indexes` for the **commonly used query field/fields**.

But then what are indexes? If you don't know what Indexes are, follow my Blog 👉 [thevinitgupta](https://dev.to/thevinitgupta) for a coming soon article on it!!

For now, indexes can be understood as :
> The set of `unique IDs` arranged in a specific order. 
This allows us to look for a particular data based on a field value is an efficient way. 

It is similar to look for a value in an `UNSORTED ARRAY` vs in a `SORTED ARRAY`.

## `lean` Data Queries
MongoDB documents are not just plain JSON objects after they are stored in the Database. They have various states and properties that enable us tov use features that we know like Triggers, casting and validation, etc. 
This makes a MongoDB document really heavy for parsing over request, thus making queries slower. 

There are moments when we _just want to read data_. Getting all those features are just time and network consuming. 

Instead we can use `lean()` method in `GET` request to reduce these documents as >POJOs - Plain Old JavaScript Objects.

Simple query would look like : 
```javascript
db.posts.find().lean();
```
### However this comes at a cost, This means that lean docs don't have:
* Change tracking
* Casting and validation
* Getters and setters
* Virtuals (including “id”)
* save() function


These are 2 methods for today!! 
Do comment if you have any queries regarding these. Also [follow](https://dev.to/thevinitgupta) for the next part, coming in next Monday at 12PM.
<link> tag and @import Which one should you use?
Tags: html, css, codenewbie
Published: 2021-08-23 07:49:14

Most of us have come across something like this: 

```
@import url('https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800');
```
while importing Google Web Fonts into our CSS. It's the way to import a certain style into our stylesheet for the sake of UX and UI.

However, this is not highly recommended when it come to Search Engine Optimization (SEO), this is because by doing so your webpage will automatically become heavier (therefore it would take extra few seconds in loading it's contents to your users)

Well, there's a way for you to avoid such problem. It's highly recommended to use `<link>`
 ```
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800" rel="stylesheet">
```
instead of `@import` If you're concerned about SEO and Performance, it's recommended to use `<link>` tag because it can preload the font therefore minimize the loading time.

Kindly note that, SEO and Performance are the key for your website growths and sustainability, hence choose appropriate systems that would give you an edge in today's competitive cyber environment. 

Until next time friend, be safe