teleren/devto huggingface dataset:
Better Git Log Styling
Tags: git
Published: 2021-04-14 11:15:48

It's simple. Just type in:

```git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit```
I guess that's a bit too long, eh? Let's just make an alias. Copy and paste the line below on your terminal:

```git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"```

And every time you need to see your log, just type in

`git lg`
Or, if you want to see the lines that changed

`git lg -p`

Also it is good to use a convention like: https://www.conventionalcommits.org/en/v1.0.0/ so that your git commits are structured. There is a plugin for this in phpstorm: https://plugins.jetbrains.com/plugin/9861-git-commit-template

source:
https://coderwall.com/p/euwpig/a-better-git-log
Download best Email Converter Tool for Windows
Tags: emailconverter, emailconversion, emailmigration
Published: 2021-04-14 11:07:11

If you want to convert Thunderbird files to Outlook emails, you can use this Email Converter Tool, which can convert all Thunderbird emails to Outlook and perform migration between different email clients. 

This Email Converter is a multi-conversion tool that can convert a variety of email files including PST, EML, EMLX, OST, Thunderbird, NSF, MBOX, TGZ, MSG, and others. During conversion, it maintains data integrity and preserves the original formatting as it was before conversion. 

You should try out the free trial version of this Tool first to get a feel for its features and functions. This software also offers a more user-friendly interface for intensive conversion. 

Visit here http://www.pcrecoveryutility.com/email-converter.html to read more about this software
How to speed up csv data load to database using Multiprocessing
Tags: python, pandas, multiprocessing, productivity
Published: 2021-04-14 10:33:35

When it comes to data processing, Pandas is one of the most handy and sophisticated libraries in Python. It has functions which can read and write structured data efficiently from and to a wide variety of data sources (csv, databases, flat files, etc).

But when the data in the source grows, it can throw a memory error. Pandas has a nice way of dealing with this by reading the data in chunks and returning a TextFileReader object which can be iterated to access data. This data can then be read chunk by chunk and processed.

Let's take an example of data load from csv to MySQL. In this example we will be loading a csv five with 500,000 rows and 3 columns to a MySQL table

We will use pandas module to read data from csv and sqlalchemy module in python to insert data to the MySQL.

Firstly, let's load the data to Pandas DataFrame as chunks
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hd2fcaqa2nttxzt6x00f.png)

Processing data in chunk is still linear which means each data chunk will be processed or loaded one after the other. 

###1. Linear data upload
Let's look at the linear way to insert data.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ikep2a359u7r3k6aer1i.png)

1. Create an sqlalchemy engine using the database uri
2. Create an insert query for each row in the csv file
3. Use the sqlalchemy engine to load the data to MySQL table.

So how do we speed things up?

Multiprocessing is one way.

###2. Parallel load of data using multiprocessing

Python's multiprocessing module is one of the easiest way to spin up multiple processes for parallel computing.

We will be using apply_async from multiprocessing module. 

The apply_async function is a variant of apply() which applies the provided function over data but does not wait for the function run to be completed. In this way the code does not have to wait for a particular chunk of data to be processed before starting to process the next.

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

###Steps
1. Create a pool of workers. The workers will work on each of the data chunk load.
2. For each of the data chunks, apply the insert function using the parameters
3. The wait method will wait for the insert function to finish till the timeout is reached 

With 4 cores and for a csv file with 50,000 rows and 3 columns, the code using multiprocessing was able to load the data in 45 seconds while the linear code was almost 10x slower

{% github https://github.com/jewelkm/large-data-processor no-readme %}
Flutter: Glass Modal Bottom Sheet
Tags: flutter, tutorial, dart
Published: 2021-04-14 10:59:31

Sometimes I am looking for interesting design solutions on different internet resources to practice them on my current tech stack.

I’ve noticed that designers make more and more designs with elements that look like frosted glass. It is a trend in the design called “Glassmorphism.”

I hope glassmorphism becomes the standard coz nowadays, devices are powerful and can easily render such effects.
My journey from psychologist to software developer
Tags: programming, career, psychology, codenewbie
Published: 2021-04-14 10:58:23

*Originally published on the [Easy Agile](https://www.easyagile.com/blog/from-psychologist-to-software-developer/) blog on 23 March 2021*

We’re checking the surf and haven’t talked in a while. Two sets of eyes locked on the ocean, is it worth paddling out this windy winter morning? 

“Where are you working now?” you ask distractedly. “I’m actually a software developer.” 

Your eyes break from the swell, instinctively looking for signs of trauma or burnout. “Wow, you couldn’t have picked something more different!” you say, a little taken aback.

I have had some version of this conversation over and over since I made the switch from psychology to coding. People are often confused by how certain I am that I made the right choice, despite the fact that in my mid-thirties and around the birth of my first baby I discarded a lucrative career I spent a lot of time and effort pursuing, and to which I seemed to be well suited.

The truth is that making that change when I did vastly improved my health and my family's happiness. It was a privilege to work with my clients and share their innermost secrets, hopes and dreams. It was also extremely traumatic and disheartening, and was wearing me down. Then one day my wife said, “you don’t have to be a psychologist you know?” It may seem obvious, but that short sentence opened my mind.

I started to think about what else I might like to do. I’d always envied friends of mine who were carpenters or bricklayers and seemed to get so much satisfaction in gradually mastering their craft. Problem is, I am terrible with tools and can’t hammer a nail to save my life. A chat with a friend who is a coder where he spoke about his craft in the same way got me thinking.

I took a free online course to test the waters and was instantly hooked. I had to fight myself to go to bed at a decent time every night as I learned more and more about topics like CSS, browsers, clean code and asynchronous javascript. A couple of weeks later I started my masters in Information Technology and threw myself into it.

Ok, I thought, there is no way better to learn than on the job so I reached out to every company I could find within driving distance, offering to do anything even tangentially related to coding to get my foot in the door.

Thankfully, the Wollongong tech community (Hey there [Siligong!](https://www.siligongvalley.com/)) is open minded and two awesome companies, first FinoComp and now Easy Agile were able to look past my non-traditional background to see my potential.

I’m now a bonafide front end developer and am absolutely stoked to work everyday, expanding my toolset and honing my craft to build awesome products for our customers which improve their lives.

To anyone out there who is considering a career change, it’s never too late. It changed my life for the better and it could change yours too.

> “The journey of a thousand miles begins with one step” Lao Tzu.

(Oh, you should definitely paddle out in that surf too. No matter the conditions a surf is always a good idea.)
CsCheck 2.0.0 released
Tags: dotnet, testing, csharp
Published: 2021-04-14 10:55:19

---
title: CsCheck 2.0.0 released
published: true
description: 
tags: dotnet, testing, csharp
---

Powerful random testing library for C#.

Additions: concurrency testing with full shrinking, model-based testing, metamorphic (two path) testing, causal profiling and lots more.

Now get out there and build robust things with great performance.

[https://github.com/AnthonyLloyd/CsCheck](https://github.com/AnthonyLloyd/CsCheck)
[https://www.nuget.org/packages/CsCheck](https://www.nuget.org/packages/CsCheck)
My New React Portfolio is out!
Tags: react, portfolio, webdev
Published: 2021-04-14 10:40:56

Hey Guys!

I have redesigned my portfolio beautifully using, guess what?

Our all-time friend, REACT.JS!

For my <a href="https://rithik.vercel.app">previous</a> portfolio, I used Vanilla HTML, CSS, JS and jQuery.

I will be explaining to you the process of how I made my portfolio website.

<a href="https://rithikdeveloper.web.app/">Click Here</a> to view my portfolio.

# The steps:

### My VSCode Screen:

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

As you can see in the image below, I organized all of my components in each folder along with it's own JS and CSS file:

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

In my portfolio.js file, I added my text and info in constants which I styled with react:

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

Then, I was done with the portfolio and needed to host it online.

This time, I decided to do something different and hosted it with firebase.

For those of you who don't know what firebase is, check out this helpful video:

{% youtube O17OWyx08Cg %}

I used the Firebase CLI to deploy my website. It was a pretty easy process.

Finally, I ended with my final website.

I would love to hear your feedback about my portfolio in the comments below. 

And rememeber....

# Keep Coding Y'All 👨🏻‍💻
Supercharge your API with Compression
Tags: node, performance, compression, javascript
Published: 2021-04-14 10:12:09

Performance is critical to any API, taking the time to reduce API response times to be as low as possible is absolutely worth the effort.

Take a look at this example API request in [Solaris](https://solaris.games):

![An API Response](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jle5wk27kgast893hb3s.PNG)

The API response is `44.6kB` with a time of `584ms`. This isn't *terrible* but could be **smaller and faster** with compression.

### Express Compression
If you're familiar with **Node.js** you have probably used [Express.js](https://expressjs.com/) at some time or another.

Express is extensible and has a large number of **middleware** libraries that can be bolted on. One such library is [compression](https://github.com/expressjs/compression).

To install `compression`:

```
npm install compression
```

Then its a case of simply calling the Express `use` function to register the middleware like this:

```js
const express = require('express');
const compression = require('compression');
const app = express();

...

// Compress all responses
app.use(compression({
    threshold: 0 // Byte threshold (0 means compress everything)
}));

...
```

Easy, right? Now calling the same API endpoint we get this:

![The same API response, but smaller and faster](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ktfqig27f6zk2pq9jror.PNG)

The response is now `8.1kB` and a time of `101ms`, that's over **5x faster** than before!

#### Compressing Specific Responses
With the above code, we'll be compressing **all** responses, if for some reason you'd like to **not** compress a response from the API then we can override the `filter` function like this:

```js
app.use(compression({
    threshold: 0,
    filter: (req, res) => {
        if (req.headers['x-no-compression']) {
            // don't compress responses if this request header is present
            return false;
        }
    
        // fallback to standard compression
        return compression.filter(req, res);
    }
}));
```

Any API request with the `x-no-compression` header will be ignored.

And that's it, your API will now serve compressed responses and should now be performing even better than before!

-----

*In my spare time I develop an open source strategy game called **Solaris**, [check it out](https://solaris.games).*
A Brief Introduction to if/else statements in Python
Published: 2021-04-14 09:56:46

Did you know if and else statements are very important in python? When we ask questions we often ask about yes or no questions and decide to do something based on the answer. For example, we might ask "are you happy" and if the answer is yes, respond "good for you!" These types of questions are called conditions, and statements. These questions can be like if/else statements in python.
 
In this article, you'll learn about if/else statements in python. 

IF STATEMENTS

```python
boys = 10 
if boys > 10:
    print('there are a lot of boys!')
```
An if statement in python is just like in English. For example, in English, we can say if there are 10 boys and if the boys are greater than ten say "there are a lot of boys!" This is the same for python but in python, we need to make a variable for what boys is and add a colon (:). The if statement in the code on top of this paragraph says if the boys are greater than 10 say "there are a lot of boys!" but instead we use the print keyword.

MORE INFO

```python
if age < 20:
    print('you are young')
    print('hellooooo')
```

Do you notice that inside the if statement there will be four spaces? The four spaces in very important because the four spaces tell python that the code is in the if statement. if we don't put the four spaces this error will appear.
```
IndentationError: expected an indented block
KeyboardInterrupt 
```
This error will appear because a dumb programming language cannot understand if the code is in the if statement or not.

IF THEN ELSE STATEMENTS 

If we want to add something if the if the condition is true we can use if then else statements.

```python
boys = 20
if boys == 20:
    print("there are 20 boys")
else:
    print("there are not 20 boys")
```

The code on tops says that there are 20 boys and if there are 20 boys print "there are 20 boys" but if the condition is False print "there are not 20 boys". 

CONCLUSION
In conclusion, that is if/else statements.
Best Spoken English Institute In Hyderabad
Published: 2021-04-14 10:03:10

https://formulatrainings.com/

FORMULA Trainings is the best Spoken English training institute in Ameerpet, Hyderabad. We are also offering IELTS coaching, Soft Skills training, Corporate Training, and Public Speaking Skills Training. Founded by Mr. Sunder Khandavally, he has 20+ years of experience in this domain. His mission is to empower his students with language and soft skills required to grow in their Career. Initially we started offering spoken English classes in Hyderabad but now we are offering Spoken English Classes online also. If you are managing a business and you want to improve your employees on English speaking, writing and presentation skills, we are ready to help you
BEST DOCUMENT MANAGEMENT SOFTWARE
Tags: management
Published: 2021-04-14 09:46:03

Document management system takes care of maintaining and organizing all the paper (scanned and uploaded) and digital documents, receipts, invoices, manuals, project documents and other business related materials in a more efficient and secured way. These documents can be tracked easily, retrieved when required and also enables teams to collaborate on the same document without any conflict.

They also have a built-in search engine to navigate quickly through the wide range of documents, making it available only for authorized users to access the document.

There are a range of solutions available in the market with variations like deployment, number of users, Volume of data and so on.

For more detailed information view our blog- https://www.sunsmartglobal.com/blog/

source website- https://www.sunsmartglobal.com/
How to Create Weather App Using Weather API in PHP | How to Use Weather API in Website
Tags: html, php, webdev, css
Published: 2021-04-14 09:42:57

Hi in This tutorial we are going to learn how to create a weather app using HTML, CSS, PHP, and weather API.

####Related Quries:####

**How do I create a weather app?**
**How do I create a weather forecast for my website?**
**How do I use Weather API on my website?**
**How do I find my weather API key?**
**How do I get weather on my Android?**
**How do I get free weather API?**

###Weather Application Guide:###

Step 1: Create the basic Main Page 
I have created a basic UI that look like cards and each card displays current location weather information.

**Watch Video Tutorial:**

{% youtube qNT3GP2DTV8 %}

###Step 2: Create a Weather API key using Open Weather Map Website###

You first need to Sign Up before you can generate an API key for your Weather API. After signing up navigate to the API section of the website and select the automatically generated weather API key. Save this API key as you will need this to call from your app.
Open Weather Website:  https://openweathermap.org/

###Step 3: Call the weather API###

I have used Retrofit for a type-safe HTTP client call. For calling the weather API we need the base URL of the and the user’s coordinates are parameters.

###How to use  Weather API?###

First of all, you need to get an API Key. Once you sign up using your email, the API key (APPID) will be sent to you in a confirmation email. Your API keys can always be found on your account page, where you can also generate additional API keys if needed.
Paranormal equipment | Ghost Haunting Tools 
Tags: paranormal
Published: 2021-04-14 09:31:00

Ghost hunting equipment has not changed much in the last 2 or 3 decades. Variations of the same sensors placed on different devices are all that yield “new” paranormal equipment. At Ghost Gear, we want to change that like with the REM Puck. We want to help the paranormal field leap forward. We will do this through connectivity and using better technology to achieve more reliable results.

I think two categories exist for paranormal equipment. Category one is trapped. Devices you use to catch the spirit in action. Category two would be communication devices. These devices are used to speak with the spirit or in some way send and receive messages.

Paranormal equipment that is used as traps includes the REM Puck, K-II, MEL-Meter, and the like. This equipment is staged to catch the activity of the spirit such as going up and down stairs or moving through a hallway. These paranormal devices are also used as communication devices, although there are far better ways to communicate than using these.

Communication devices used as paranormal equipment are also called ITC devices or Instrumental Trans-Communication. These devices include the SpiritBox, Ouija Boards, Raudive Diode, or just a static radio station. The idea here is to have a spirit who’s willing to communicate with you to use these devices to send and receive messages.

The equipment a paranormal investigator uses is often used in a multi-purpose manner leaving skeptics to doubt the validity of some findings. However, even a skeptic should consider the synchronicity principle. Meaning, when there are too many coincidences for the outcome to be a coincidence. And that something is controlling the outcome.

For more details visit our website https://www.ghostgeartech.com/
What is X in Perl?
Tags: perl, toolchain, tooling, packages
Published: 2021-04-14 09:24:54

### What is pip or gem?
[cpanm](https://metacpan.org/pod/distribution/App-cpanminus/bin/cpanm) or [cpm](https://metacpan.org/pod/distribution/App-cpm/script/cpm)

### Where is my REPL?
Use [perl debugger](https://perldoc.perl.org/perldebug) `perl -de2` or one of the REPL (e.g. [reply](https://metacpan.org/pod/distribution/Reply/bin/reply))

### Is there any gemfile or requirements.txt?
[cpanfile](https://metacpan.org/pod/distribution/Module-CPANfile/lib/cpanfile.pod) or [cpmfile](https://github.com/skaji/cpm/blob/master/cpm.yml) (NEW!)

(and more... e.g. with `dzil`)

### What is package.json?
[META.json](https://metacpan.org/source/INGY/Acme-1.11111111111/META.json) and [META.yml](https://metacpan.org/source/INGY/Acme-1.11111111111/META.yml) see [doc](https://metacpan.org/pod/CPAN::Meta::Spec)

### And gemfile.lock or package-lock.json?
[cpanfile.snapshot](https://metacpan.org/pod/cpanfile) or [carton.lock](https://metacpan.org/pod/Carton)

### And what about Virtualenv?
Virtual envs are not *as much vital* in Perl, but there is [plenv](https://github.com/tokuhirom/plenv) or [perlbrew](https://perlbrew.pl/)

### Bundler?
[carton](https://metacpan.org/release/carton)

### Other tips for Perl beginners
* Usually no variable methods (`variable.method`) but methods on variables (`method(variable)`) e.g. `split`
* `;` is mandatory (with few exceptions but please forget)
* Indentation not meaningful
Implementation of cluster module for react-map-gl
Tags: react, reactmapgl, node
Published: 2021-04-14 09:19:55

To understand the entire repository you should first know about [mapbox](https://www.mapbox.com/) and [react-map-gl](https://www.npmjs.com/package/react-map-gl). 

[mapbox](https://www.mapbox.com/) is used to create high-quality maps and [react-map-gl](https://www.npmjs.com/package/react-map-gl) is a wrapper around [mapbox](https://www.mapbox.com/) for **react**.


###  What is a cluster?
Now, a question arises that what is cluster and clustering in maps. Clustering in maps displays the count of entities at some point when multiple entities colliding at that point.

Let's take 4 coordinates for example. Suppose two coordinates are near to each other. So, when the user minimizes the map then both coordinates **marker** will override each other.

> Marker is an icon that is used to represent an entity at some coordinate on the map

This repository contains the implementation of the cluster in **react-map-gl**.

### Github Repo
[react-map-gl-cluster](https://github.com/ats1999/rahul-react-map-gl-cluster)

### Room for improvement
1. zoom at some coordinates after clicking on the cluster
2. create **npm** package, so anyone can use this easily

> I'm looking for help to complete the above functionality.
If anyone wishes to help me then raise an issue on the repository.


### Checkout
Whether you would like to contribute to this repository or not, make sure to see what it contains. If possible then clone and run this codebase and tell me how can I improve this.