teleren/devto huggingface dataset:
Market Yourself With a Killer GitHub Readme
Tags: github, branding, markdown, personal
Published: 2022-03-04 23:01:16

---
title: Market Yourself With a Killer GitHub Readme
published: true
date: 2022-03-04 22:59:01 UTC
tags: GitHub, Branding, Markdown, personal
canonical_url: https://sean-coughlin.medium.com/market-yourself-with-a-killer-github-readme-cf529264453
---

Personal branding is a tough skill for technically focused individuals. I have found myself inclined to bury my head in an exciting project. However, the oft-overlooked marketing skill is crucial if you want to find a job or have your software grow in popularity.

A key part of building yourself as a software engineer is by growing your eminence within the community. You could contribute to open source projects, tweet about your work, or post to Linkedin. The options for self-promotion are vast, but marketing doesn’t have to be complex.

It is about telling a story. One easy way of sharing your programming journey is through a GitHub readme page.

[GitHub Profile Readme](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme)

## How to Make a GitHub Readme

GitHub readme pages are created when you make a repository with the same name as your username. In the repository, the README.md file controls what your profile will look like.

Editing the repository is done through markdown.

Common items to list in your readme include:

- a bio
- things you're currently working on
- methods of contact
- your tech stack
- personal stats
- links to cool resources or articles you’ve written

![Sean Coughlin's GitHub Readme Profile](https://cdn.hashnode.com/res/hashnode/image/upload/v1646434633864/CeL2zVEhE.png)

## Online Profile Generators

If maintaining an about page sounds like a lot of work, I understand your position. Thankfully, the internet is a beautiful place. Powerful profile readme generators exist online.

[Online Generator](https://rahuldkjain.github.io/gh-profile-readme-generator/)

Your GitHub readme can act as your resume and the cornerstone of growing your online presence. Plus every edit of the readme counts as a commit. And who doesn’t like racking up commits?
Adding Klint to my Android apps
Tags: kotlin, tutorial, android
Published: 2022-03-04 23:32:19

First of all, what is ktlint ❤️?

As it's documentation says:  

> _ktlint is an anti-bikeshedding Kotlin linter with built-in formatter._  

Basically, is a code analysis tool for Kotlin, maintain by Pinterest.

I find this tool easy to integrate to any Android project and also easy to maintain. Let's go to the point and start with the configuration.


First we need to create a new gradle file in my case I'm going to name it: `ktlint.gradle`, no need to overthink the name, but you can name it whatever you want. Place it at the same level of your `build.gradle(:app)` and paste the next content:

```kotlin
configurations {
    ktlint
}

dependencies {
    ktlint "com.pinterest:ktlint:0.44.0"
}
task ktlint(type: JavaExec, group: "verification") {
    description = "Check Kotlin code style."
    main = "com.pinterest.ktlint.Main"
    classpath = configurations.ktlint
    args "src/**/*.kt"
}

check.dependsOn ktlint

task ktlintFormat(type: JavaExec, group: "formatting") {
    description = "Fix Kotlin code style deviations."
    main = "com.pinterest.ktlint.Main"
    classpath = configurations.ktlint
    args "-F", "src/**/*.kt"
}

```

First, we can see on the `dependencies` section the last version available of ktlitn: as today is  `com.pinterest:ktlint:0.44.0`.

Then, we can see two gradle tasks `ktlint` and `ktlintFormat`. The first task `ktlint` is going to check your kotlin code and report any style issue. The second task `ktlintFormat` is going to fix any kotlin code style by its own.

Now, we need to add our file to our gradle scrip modules so, let go to the `build.gradle(:app)` aand let's add it in the plug-in section. e.g.

```kotlin

plugins {
   .... 
}

apply plugin: "kotlin-kapt"
apply plugin: "dagger.hilt.android.plugin"
apply plugin: "androidx.navigation.safeargs.kotlin"
apply from: "../ktlint.gradle"


android {
....
}
```

And don't forget to Sync your project!

How can I run it ?

To make it work, just run the commands or tasks in the terminal.

```ssh
./gradlew ktlint
```
or

```ssh
./gradlew ktlintFormat
```


And that's it, Hope you find it helpful!


Refs.
[Klint Page](https://ktlint.github.io/#getting-started)
[Klint Github](https://github.com/pinterest/ktlint)
MVC vs MVP vs MVVM Design Patterns
Tags: architecture, beginners, programming, android
Published: 2022-03-04 23:22:17

**High-level differences between Model-View-Controller(MVC), Model-View-Presenter(MVP), and Model-View-ViewModel(MVVM) for Android development.**

It looks like I have been using MVP without knowing it. In fact, I thought I was using MVC. I came to know about this MVVM while learning Android. I like MVVM because of the unidirectional data flow, which makes the architecture a lot cleaner.

The diagram below gives you side-by-side comparisons between them.

![mvc_mvp_mvvm.drawio.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1642062309826/gqs6FZIZc.png)

## Model-View-Controlle (MVC)

- Dependencies direction: View -> Model, Controller -> Model and View
- View knows about Model (e.g. [data binding](https://vtsen.hashnode.dev/view-binding-vs-data-binding-gotchas#heading-enable-data-binding)), Controller knows everything, Model knows nothing
- Controller observes UI event from View, writes data to the Model and tells the View what to update
- View retrieves the data from model to display

> There are different variations of MVC out there. So what I shared here is based on my understanding which I have tweaked a bit from the original MVC design.

## Model-View-Presenter (MVP)
- Dependencies direction: Presenter -> Model and View
- Presenter knows everything, View and Model know nothing
- Presenter observes UI event from View, writes data to the Model, read the data from Model and provides data to the View for display

> MVP is similar to MVC except the View doesn't depends on the Model. The Presenter takes care of reading/writting the data and passsing the data to the View.

## Model-View-ViewModel (MVVM)
- Dependencies direction: View -> View Model -> Model
- View knows about View Model, View Model knows about Model, Model knows nothing
- When there is a UI event, View informs the View Model about the UI event.
- View Model performs some logics and writes data to the Model
- View Model observes the data changes from Model and update its own data
- View observes the data changes from View Model. If there are any changes, View is responsible to update the UI

> Please note that the Activity/Fragment has been moved up to View. Also, the dependency and data flow are unidirectional.

## Summary
I have personally seen hybrid MVC and MVP usage at my work.  It makes the architecture very messy. We should really just stick to either one. 

MVVM is better than MVC/MVP because of its unidirectional data and dependency flow. Dependency is one way, thus it is a lot easier to decouple it when we need to. It is also easier for testing. 

All [my projects](https://vtsen.hashnode.dev/projects)(written in Kotlin for Android app) are based on MVVM.

---

*Originally published at [https://vtsen.hashnode.dev](https://vtsen.hashnode.dev/mvc-vs-mvp-vs-mvvm-design-patterns)*.
Working with multiple git configurations
Tags: git, config, tips, tutorial
Published: 2022-03-04 23:08:27

---
title: Working with multiple git configurations
published: true
description: .gitignore includeIf
tags: git, config, tips, tutorial
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r2gt68zabxkv9l73ld4w.png
 
---

I have started to work as a full-time software engineer at a company. Therefore I had to clone lot of projects and start to commit these repositories with my company email. 

I had already defined my personal email as a global git config like this  

```bash
git config --global user.email "hasantezcan@personal.com"
```

As you can see, my personal email defined as a global config so I have to define my company email as a local config after every single new cloning.

```bash
git config --local user.email "hasantezcan@company.com"
```

But sometimes I forget to define my company mail and have to reset my commits and resend it again. It's definitely time consuming to do this!

I need a persistent solution for this issue.

And I have encountered with `.gitconfig` file!

## `.gitconfig`

Actually when you set the global email and username you change the .gitconfig file which belongs in user root directory. (the directory that you type cd and enter in terminal prompt)

So what I need is, I have to declare a spacial email under `workspace/company` directory. Because I download all repository and handle my all business in there.
 
To solve this issue we can use `includeIf` setting in global .gitconfig file.

`includeIf` provides us to change the config file for a specific directory.

So let's get started 

First, go to the directory where your company projects are located. For example let's say it is Workspace/CompanyName.

```
cd Workspace/CompanyName
```

Create `.gitconfig-CompanyName` file 

```
touch .gitconfig-CompanyName
```

Define your company specific configs in there. After this, you will start the use those configs under this directory.

```js
// /Users/hasantezcan/CompanyName/.gitconfig-companyName
[user]
    name = hasantezcan
    email = hasantezcan@company.com
```

Now we have to update the global .gitconfig for a special .gitconfig-CompanyName file that will use under this directory. 

So let's get declare this;

Go to your user home directory 

```bash
cd 
pwd User/hasantezcan
```

and update .gitconfig file like this.

```diff
[user]
    name = hasantezcan
    email = hasantezcan77@gmail.com
+[includeIf "gitdir:~/Workspace/CompanyName/"]
+   path = ~/Workspace/CompanyName/.gitconfig-companyName
```


Voilà! 🎉 Now you can continue to commit your opensource project without any wrong commit email problem.  



## Reference
- http://michaelwales.com/articles/make-gitconfig-work-for-you/
- https://nicknisi.com/posts/git-includeif/
Metaverse: Dunia Virtual yang Kian Nyata
Published: 2022-03-04 23:08:13

Perkembangan teknologi internet semakin nyata dengan adanya metaverse atau meta semesta. Dahulu, dunia virtual hanya sebatas angan-angan. Hingga akhirnya menjadi ide cerita dalam game dan juga film.
Teknologi ini seperti mustahil untuk diwujudkan. Namun, keyataannya, saat ini banyak perusahaan besar yang membangun dan mengembangkan era metaverse. Sebenarnya, apakah yang dimaksud era metaverse?

Apa Itu Era Metaverse?


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pxign0omyb30ouypxcne.png)
Metaverse sering diartikan sebagai dunia virtual yang dapat dijelajahi oleh manusia itu sendiri. Jadi, bukan jelajah internet di depan komputer lagi, melainkan pengguna memasuki dunia virtual untuk melakukan aktivitas tertentu. Contohnya, seseorang dapat menghadiri rapat virtual tanpa harus ke lokasi rapat tersebut.
Berdasarkan tekno.tempo.co, dunia virtual metaverse mengombinasikan lima teknologi: Augment Reality (AR), Virtual Reality (VR), sosial media, cryptocurrencies, dan game online. Kelima aspek tersebut sebagai dasar berinteraksi di era metaverse. Manusia tak hanya bertemu, tetapi juga bisa berbelanja, membangun rumah, berbisnis, dan hal lain selayaknya kegiatan di dunia nyata.

Dampak Metaverse


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

Kemajuan teknologi selalu memberikan dampak bagi kehidupan. Tujuan teknologi sendiri pada dasarnya mulia, yakni ingin mempermudah aktivitas manusia. Namun, ternyata kemajuan teknologi juga dapat memberikan dampak negatif. Berikut ini dampak metaverse bagi manusia.
Dampak Positif
1. Meningkatkan produktivitas kerja.
2. Dapat mewujudkan keinginan atau fantasi.
3. Dapat pergi ke mana saja tanpa meninggalkan ruangan.
4. Efisiensi waktu.
Dampak Negatif
1. Menyebabkan adiksi atau kecanduan.
2. Menimbulkan depresi.
3. Rawan pencurian data diri
Perkembangan Metaverse Saat Ini
Tak hanya dunia virtual Facebook saja yang sedang mengembangkan metaverse kali ini. Namun, perusahaan lainnya juga tengah mengembangkan dunia virtual ini. Beberapa di antaranya seperti Microsoft yang sedang mengembangkan mixed and extended reality (XR) menggunakan Microsoft Mesh.
Developer game seperti Game Epik dan Roblok juga tengah mengembangkan game metaverse. Lahan dunia virtual juga dapat dibeli menggunakan crpto dan etherium. Lahan ini disediakan oleh The Sandbox, Decentraland, dan Axie Infinity.
Demikian penjelasan metaverse kali ini. Metaverse bukan lagi sebuah imajinasi. Cepat atau lambat, perkembangan metaverse saat ini akan segera terwujud. Bahkan, kehadirannya pun dapat benar-benar menyerupai dunia nyata.

Baca juga : https://nugasin.com/blog/detail/simak-kekurangan-dan-kelebihan-metaverse-dunia-teknologi-masa-depan


keyword:
metaverse
dunia virtual metaverse
dunia virtual facebook
perkembangan metaverse saat ini
era metaverse
dampak metaverse
BSharp- Bitcoin, Litecoin and Dogecoin wallet
Tags: bitcoin, csharp, crypto, cryptocurrency
Published: 2022-03-04 22:50:28

I've created a project that simplifies the use of cryptocurrencies using c#. It is easy to create a new wallet and send a transaction.
Why did I do this?
-Because I wanted to use cryptocurrencies in various projects and it was too hard to do when I was a noob.

This project will enable individuals to insert cryptocurrencies into various projects.
I'd be happy if someone did this for me three months ago when I was trying to integrate cryptocurrencies into the project.

the project is open source and free for all purposes.

https://github.com/holle197/BSharp

If you like the project, leave an star, it means a lot to me.
P.S. this is my first open source project :)
Creating a Link-Sharing Site Part 1
Tags: javascript, webdev, programming, webcomponents
Published: 2022-03-04 22:41:36

## Introduction
Welcome to the first update on my journey to creating a link-sharing site. If you are interested in what I am doing and why I am doing it check out the [introduction to the series](https://adamjhawley.com/post/2022-02-16-creating-a-link-sharing-site-part-0/). And if you want to get notified when I post new updates, follow me on [Twitter](https://twitter.com/_adamjhawley) or sign up to [my mailing list](https://adamjhawley.com/post/2022-03-04-creating-a-link-sharing-site-part-1/#mailing-list).

I have prioritised getting something functional. This means that I haven't exactly created anything *beautiful* yet. But I'm sure that will be very obvious.

---


## Building the Basics
I broke down my requirements based on the pages and functionality I needed to create to get an MVP ([minimum viable product](https://en.wikipedia.org/wiki/Minimum_viable_product)) up and running.

### A Page for Consuming
Link-sharing websites are, simply put, a platform for facilitating content consumption. That is, the *'content creation'* side of this website is limited to a user providing a link and a title. At least for the time being... Furthermore, I expect the majority of users to spend much more time **consuming** content rather than **producing**.

Therefore, I need a way for users to find content to consume! This page will probably act as the home page for the site.

My current intention is for this page to simply contain a list of cards where each one contains just the title of the link.

![Screenshot of my ‘browsing’ page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uoudq5yxm0k4xvlxy55s.png)

---

### A Page for Producing
Then again, what's the point in a page for consuming content if there is no content to be consumed! Sounds like I can't get away with not building a page for submitting links to the site.

So, as I said, I went ahead and made it as minimal as possible.

![Screenshot of my 'submit' page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3n4ntdr6d34vu2sawa4j.png)

Now it's worth noting that for the time being, that 'Submit' button sends the link nowhere. My plan is to hook this up to a database which will contain all of the links on the site.

---

## Conclusion
That's all I have for this update. My main priority in upcoming updates will be hooking up the site to use a persistent database to store the links. It has been great fun getting started with this project and I am very excited to see where it can go!

I know that I am new to the concept of 'sharing your work' but I know consistency is key so stay tuned for another post coming soon!

If you enjoyed this post then please consider following me on [dev.to](https://dev.to/adamjhawley) or on [Twitter](https://twitter.com/_adamjhawley)!
React Testing Library, Setup, Why it is important in React?
Published: 2022-03-04 22:20:00

#Introduction: 
React Testing Library builds on top of DOM Testing Library by adding APIs for working with React components.

#Install React Library:


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


#Importance Of Testing: 

1.	Catch Bugs Easily
2.	Increases Confidence in Application
3.	Speeds up QA Time
4.	Can Serve as Documentations

#Types of Tests: 
There are 3 types of Testing-
1.	Unit Tests
2.	Integration Tests
3.	End to End (E2E) Tests

#Structure of Tests: 

Package.Json file 1st Part

 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9yxmvxwnkp6gykn5ag0j.jpg)


Package.Json file 2nd Part
 

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

Here is an example of a test that uses all of these and expect our json data to be rendered on our page and be defined. 

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

#Priority: 
Priority is different ways
1.	Accessible by everyone
•	getByRole
•	getByLabelText
•	getByPlaceholderText
•	getByText

2.	Semantic Queries
•	getByAltText
•	getByTitle

3.	Test Id
•	getByTestId

#Assertions: 
The assertions will determine if the test pass or fail, they are essential part of the test.

Let’s see an example of the assertion syntax:
 

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

Others Example of assertions: 
 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kolycbxiooznqt2em3r8.png)

•	In this case expect() method have the ‘text content of the element‘ as a parameter.
•	Then the matcher is .toBe() and the parameter is a string ‘hola‘, so, if the text content of the element is equal to ‘hola’ then the assertion pass.

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

#React Testing Library or apps with Jest:
#Jest-DOM
Jest-DOM comes with ‘create-react-app’ and use the src/setupTests.js to import Jest-DOM before each test and this means that the Jest matchers are available ables for every test.
So the next examples are DOM-based matchers:
•	toBeDisabled
•	toBeEnabled
•	toBeEmpty
•	toBeEmptyDOMElement
•	toBeInTheDocument
•	toBeInvalid
•	toBeRequired
•	toBeValid
•	toBeVisible
•	toContainElement
•	toContainHTML
•	toHaveAttribute
•	toHaveClass
•	toHaveFocus
•	toHaveFormValues
•	toHaveStyle
•	toHaveTextContent
•	toHaveValue
•	toHaveDisplayValue
•	toBeChecked
•	toBePartiallyChecked
•	toHaveDescription

Happy Learning !!
What are your go to Node.js resources?
Tags: node, javascript, discuss
Published: 2022-03-04 22:01:57

Today, a friend asked in a Slack we’re a part of what Node.js resources did folks recommend? The Node.js docs and some egghead videos come to mind, but aside from that, I drew a blank. 

I’m asking here for better reach.

The resources can be written, video, podcast, whatever you got! Also, they don’t need to be free resources,  but if they are paid ones, just mention that.

Thanks in advance friends!
Repositórios do GitHub para iniciantes ou quem deseja iniciar na área de Desenvolvimento Web
Published: 2022-03-04 21:39:12

Muitas vezes me perguntam quais recursos eu recomendaria para quem deseja se tornar um desenvolvedor. Para esses casos, costumo usar o GitHub como um bom ponto de partida.

Decidi então compilar alguns dos melhores repositórios que conheço para desenvolvimento web:

1. Como a web funciona: o que acontece nos bastidores quando digitamos www. google. com em um navegador?
⭐ https://lnkd.in/dDkE_P7T

2. Roadmap para se tornar dev
⭐https://lnkd.in/dp2Wa9SM

3. Curso web-dev para iniciantes
⭐ https://lnkd.in/dkir5ijS

4. Um guia pensado por devs sobre como se tornar um desenvolvedor profissional
⭐https://lnkd.in/daSAbn54

5 Exemplos simples de HTML, CSS e Javascript
⭐https://lnkd.in/dC7_Fb23

6. Laboratório para aprender sobre segurança durante desenvolvimento web 
⭐https://lnkd.in/dkXMbHEt

6. Material de preparação para entrevistas técnicas
⭐https://lnkd.in/d5CvZjmE

Apesar do post ser voltado para iniciantes, tenho certeza de que devs mais experientes possam aprender com isso também.

Você tem um repositório que te ajudou muito no começo e quer compartilhar? Deixe um comentário abaixo.

#github #javascript #css #desenvolvimento #html
Codepen Clone Using reactjs and azure static app service
Tags: azuretrialhack
Published: 2022-03-04 21:28:55


[Instructions]: # (To submit to the Microsoft Azure Trial Hackathon on DEV, please fill out all sections.)


### Overview of My Submission🎉
I created simple to understand in browser html painter like codepen 😋

### Submission Category: 

[Note]: # (AI Aces, Computing Captains, Low-Code Legends, Java Jackpot, or Wacky Wildcards:)
Static App Service

### Link to Code on GitHub
{% github larsonjack05/react-app %}
[Note]: # (Our markdown editor supports pretty embeds. Try this syntax: `{% github link_to_your_repo %}` to share a GitHub repository)
[Note]: # (Your repository must include a README)
[Note]: # (You must use and list a permissive license for your code: MIT, Apache-2)
![Codepen clone](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/av91k5r7l3mh43fa4nqk.png)

### Additional Resources / Info
Azure documentation ❤

Azure React App


[Note]: # (Be sure to include the DEV usernames of your collaborators, if any. Prizes for winning projects with multiple collaborators will be sent to the person who posts this submission and they will distribute the prize evenly. DEV will not split prizes as per our rules)

[Reminder]: # (Submissions are due on March 8, 2022 @ 11:59 PM UTC)