teleren/devto huggingface dataset:
How to Build a Waterfall Chart with JavaScript
Tags: javascript, datascience, beginners, webdev
Published: 2021-03-17 18:08:08

Want to know how to create a Waterfall Chart for a web page or app? Here's a tutorial that will get you fully prepared for that sort of data visualization development with JavaScript — [just published](https://www.anychart.com/blog/2021/03/16/waterfall-chart-js/)!

Waterfall charts illuminate how a starting value turns into a final value over a sequence of intermediate additions (positive values) and subtractions (negative values). These additions and subtractions can be time-based or represent categories such as multiple income sources and expenditures. In finance, a waterfall chart is often called a bridge; you may have also heard it referred to as a cascade, Mario, or flying bricks chart.

For illustration purpose, the 2020 income statement for Alphabet Inc. (GOOGL), Google's parent company, is visualized along the tutorial.

[Check it out!](https://www.anychart.com/blog/2021/03/16/waterfall-chart-js/)
Creative Landing Page
Tags: 100daysofcode, html, css, javascript
Published: 2021-03-17 17:59:33

the day 87 of challenge #100DaysOfCode

Creative Landing Page Using HTML5, CSS3 & JS

Demo : https://grinta-landingpage.netlify.app/

Code : https://github.com/saidMounaim/100DaysOfCode/tree/main/Day87
Day 30
Tags: 100daysofcode
Published: 2021-03-17 17:53:48

Day 30/100 of #100DaysOfCode

codewars | Execution Context - How JavaScript runs your code - JavaScript Bangla ( বাংলা ) Tutorial

Hours coded: 2.1
Lines of code: 148
Keystrokes: 1889

via @software_hq's #vscode extension
[WIP] Write Better Code
Tags: style, codequality
Published: 2021-03-17 17:46:37

This series is meant to be a collection of tips, tricks and techniques for writing a more readable and maintainable code. The content will **focus exclusively on the style** and other subjective elements of code writing. There are already many other content on the web that talk about the semantics and how a piece of code or an algorithm "works". We focus, here, instead on how the code "reads".

That being said, this does not mean we will forego the concern of making sure the code work entirely. We believe, rather, that correctly working code are a result of not only it having correct semantics, but also **because the programmer writing/maintaining it can reason about it easily** because the code was written with such high readability standards.

In other words, we believe making the code more readable makes it more correct as well.

The content are purely derived from my own personal experience writing, reading and debugging unbelievable number of lines of code over 20+ years. Contributions are, of course, welcome and if this proves to be useful to many people, I'd be happy to open source and license it.

Some of the content found here may feels familiar to readers of coding style books, but, again, I'd like to emphasize that this is distilled from my personal experience only and not summarized from any book. It also have no set plans or publishing schedule, I'll add to it as I have time and feel like I have something useful to contribute. Other times, it may stay static for months or years.

I do believe, however, that there is an ultimate answer to all code styling issues. I believe that after a certain point in the career of programming and software development, most of us eventually come to the same or similar realization/conclusion. So it should be of no coincidence that some concepts found here may have already been explained in some book or some blog post somewhere on the interwebs. In which case , I'll add links and references to the relevant pages.
How to change commit message in Git ?
Tags: github, git
Published: 2021-03-17 17:45:50

Sometimes we need to change the git commit message which can be either pushed/not-pushed commit, here is how we can change the git commit message.
## To change commits which are not pushed
```bash
git commit --amend
```
## commits which are already pushed
```bash
git commit --amend
git push origin master --force
```
By using `--force` we can update our commit message on remote repo also
Wednesday Links - Edition 2021-03-17
Tags: java, jvm, kotlin, gradle
Published: 2021-03-17 17:20:48

Java 16 / JDK 16: General Availability (1 min read) ✨
https://mail.openjdk.java.net/pipermail/announce/2021-March/000295.html

Java 16 and IntelliJ IDEA (19 min) 🎀
https://blog.jetbrains.com/idea/2021/03/java-16-and-intellij-idea/

JDK 16 G1/Parallel GC changes (5 min read) 🗑️
https://tschatzl.github.io/2021/03/12/jdk16-g1-parallel-gc-changes.html

Don't use (Kotlin data class / Lombok Data ) as JPA Entity (30 sec read) ⛔
https://twitter.com/piotr_minkowski/status/1371758745387212805

You can't afford to run Java 8 (5 min read) 💰
https://mikemybytes.com/2021/03/16/you-cant-afford-to-run-java-8

Free Up System Resources For Faster Gradle Build (6 min read) 🦅
https://goobar.io/free-up-system-resources-for-faster-gradle-builds/

Kotlin compiler crash course (2 min read) 💥
https://github.com/ahinchman1/Kotlin-Compiler-Crash-Course

Backpressure in Reactive Systems (3 min read) 🤚
https://blog.frankel.ch/backpressure-reactive-systems/

Oracle R2DBC (4 min read) 🎉
https://github.com/oracle/oracle-r2dbc

Announcing Spring Native Beta (7 min read) 🎉
https://spring.io/blog/2021/03/11/announcing-spring-native-beta

if-else-switch (4 min read) 🥢
http://blog.cleancoder.com/uncle-bob/2021/03/06/ifElseSwitch.html
Batch cropping of screenshots on MacOS
Tags: images, cropping
Published: 2021-03-17 18:42:23

---
title: Batch cropping of screenshots on MacOS
published: true
date: 2021-03-17 16:56:27 UTC
tags: images,cropping
canonical_url: https://christianheilmann.com/2021/03/17/batch-cropping-of-screenshots-on-macos/
---

I'm currently upgrading the Console documentation for Microsoft Edge and I needed to create a lot of screenshots for it. I wanted to make sure that they all are the same size, so I fixed a browser window to a certain size and instead of trying to screenshot a part of the screen, I thought it wiser to take full window screenshots. You do this by pressing `CMD` + `Shift` + `4`, move your mouse on the window you want to take a screenshot of and press Space to save it to your Desktop.

MacOS by default ads a gorgeous drop shadow on any windows and puts some padding around it. 

![Screenshot of browser with chrome, dropshadow and padding around it](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iw6o5rcc2jzoqvdq6rm8.png)

I wanted to get rid of that and the browser Chrome. The final result should be something like this:

![cropped screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ui9vq7uxtvvkv52721a.png)
 
So I tried to find a way to crop all the screenshots I have taken in a batch process using Automator. Turns out it can crop, but only from the centre. What I needed was a way to say "crop a rectangle of sx by sy from the image starting at x and y". The solution was the Swiss army knife of images, [ImageMagick](https://imagemagick.org). After installing it (via Homebrew), I was able to crop part of an image and create a new one on Terminal using the following syntax (with the bits in `{}` being the values):

```bash
convert sourceimage.png -crop {width}x{height}+{left}+{top} resultimage.png
```
I created a folder called `nochrome` on my Desktop and wrote this small shell script to batch convert all of them:

```bash
for filename in *.png; do\
  convert $filename -crop 1842x918+123+234 "nochrome/$filename"
  echo "$filename done"
done
```

There are probably easier ways, but that did the trick for me.
Debunking Linux Myths with Rob Frelow and Amber Jones
Tags: discuss, podcast, linux
Published: 2021-03-17 16:55:54

---
title: Debunking Linux Myths with Rob Frelow and Amber Jones
published: true
description: Listen to S4E6 of DevDiscuss!
tags: discuss, podcast, linux
series: DevDiscuss Season 4
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e53rikuobnwcuoyerf7i.png
---

I was super excited to be joined by a special co-host for this week’s episode of DevDiscuss: Joe Doss! Joe (aka [JDoss](dev.to/jdoss)) is the Principal Systems Architect here at Forem and knows a thing or two about the topic of Linux and the many myths surrounding it.

{% podcast https://dev.to/devdiscuss/s3-e6-we-bust-some-myths-about-linux %}


Many folks assume Linux is exceedingly difficult to use, requires command-line expertise, isn’t for regular desktop usage… and so on. And while those myths aren’t necessarily valid, Linux does have a history of gate-keeping and accessibility issues that _are_ valid concerns. Either way, Linux comes with a lot of baggage for many developers — and that doesn’t serve anyone. So, let’s talk about it!

We were joined by guests [Rob Frelow](https://twitter.com/RobFrelow) (Co-Founder of The StoryGraph) and [Amber Jones](https://twitter.com/AM8ERJ) (Full Stack Software Engineer at Mumms Software) who both arrived at Linux in different and interesting ways (spoiler: one of our guests first encountered the open source operating system at a food co-op). 

So, whether you’re a long-term Linux-lover or a historical Linux avoider, I think you’ll enjoy our show this week. 

---

_You can [follow DevDiscuss](dev.to/devdiscuss) to get episode notifications and listen right in your feed_ — or subscribe on your platform of choice! Plus, if you leave us a review, we'll send you a free pack of thank-you stickers. Details [here](https://airtable.com/shr8oKAIMZgdYnBxx). 

## Quick Listening Links
- [Apple Podcasts](https://podcasts.apple.com/us/podcast/devdiscuss/id1513053883)
- [Spotify](https://open.spotify.com/episode/3DbWajn9ePPXJSc7neBmTX)
- [Google](https://podcasts.google.com/feed/aHR0cHM6Ly9mZWVkcy5kZXZwb2RzLmRldi9kZXZkaXNjdXNzX3BvZGNhc3QueG1s/episode/aHR0cHM6Ly9kZXZwb2RzLmRldi9wb2RjYXN0cy9kZXZkaXNjdXNzLzMx?sa=X&ved=0CAQQkfYCahcKEwiI-brX5LfvAhUAAAAAHQAAAAAQAg)
- [Listen Notes](https://www.listennotes.com/podcasts/devdiscuss/s3e6-we-bust-some-myths-gj80NESZ17O/)
- [TuneIn](https://tunein.com/podcasts/Technology-Podcasts/DevDiscuss-p1324596/)
- [RSS Feed](http://feeds.codenewbie.org/devnews_podcast.xml)
- [DEV Pods Site](https://devpods.herokuapp.com/podcasts/devdiscuss/episodes/154)

---
_Acknowledgements_ 
- _@levisharpe for producing & mixing the show_
- _Our season four sponsors: DataStax, New Relic, Educative, and Ambassador Labs!_

# 🗣️🗣️🗣️
Using pip-tools for local development with Docker
Tags: python, docker, pip, beginners
Published: 2021-03-17 16:40:51

---
title: Using pip-tools for local development with Docker
published: true
description: Python dependency management can be tricky for local development with Docker. A simple pip-tools package helps a lot with it.
tags: python, docker, pip, beginners
---

Docker is a great tool even for local development. At the same time, managing Python requirements in containers can be tricky. The pretty standard behavior is to use `requirements.txt` file that adds to the image during the building process. Usually, we are using something like that in the `Dockerfile`:

```dockerfile
...
COPY ./requirements /requirements.txt
RUN pip install -U pip && pip install --no-cache-dir  -r /requirements.txt && rm -rf /requirements.txt
...
```

These instructions work fine for production deployment but not very useful for the development stage. Periodically you need to install a new library. With using a virtual environment, without Docker, we could use `pip install ...` and then `pip freeze > requirements.txt` for storing the installed libraries' information to the file. But with Docker, it is not a case because we need to install libraries on the build stage. At the same time, it is hard to change `requirements.txt` manually without breaking dependencies.

There are available Python dependency managers, like `Pipenv` or `Poetry`.  But I prefer to use `pip-tools` because it is more straightforward. We can add it to the container image by improving the following line:

```dockerfile
RUN pip install -U pip pip-tools && pip install --no-cache-dir  -r /requirements.txt && rm -rf /requirements.txt
```

The use case of the tool is simple. First of all, we prepare a file with the name `requirements.in` that will contain a list of dependencies. Each line in this file is a dependency. We can also use the same rules for managing versions like the regular `pip install` command. For example:

```
django==3.1.*
celery
pillow
```

We can now use the command `pip-compile requirements.in` for generating `requirements.txt` with all necessary dependencies. With `pip-tools` installed in the container, we can use the command like that:

```bash
docker run -rm ... pip-compile requirements.in
```

Now, the file `requirements.txt` will be generated, including all required dependencies of described libraries. So, it is possible to rebuild the container for installing new libraries.

You can check the `pip-tools` [documentation](https://github.com/jazzband/pip-tools) for available commands and options. For example, how to upgrade a particular library. It is a pretty simple yet powerful tool.
Memoization in JavaScript
Tags: beginners, javascript
Published: 2021-03-17 16:37:40

Memoization is a process by which a recursive function call can be improved more like creating an index for already computed values.

Before doing a costly function call where it computes some value an index function is called where all previous outputs of the function are stored. If the required calculation is already present in the existing index it returns the result instead of wasting the resource to calculate the result again.

It is kind of an optimization using which we can save resources and time to compute.

This is achievable because of closure in JavaScript, we can return the indexed result instead of calculated result using an inner function.

```
// A simple function

var a = (x) => (x * 2)
a(2);
>4

// Now let's memoize the func

var mem_a = () => {
    var index = {};
    return (x) => {
        if( x in index){
            return index[x];
        } else {
            var b = x *2;
            index[x] = b;
            return b;
        }
     }
}

var c = mem_a();
// Does calculation
console.log(c(5));
> 10
// Uses memoization
console.log(c(5));
> 10

```

It stores result in memory so we should avoid it for function which are called frequently and also we should not index the errors thrown by the calculation if any.

So to sum it up this is like wasting memory to reduce execution time of an expensive function.
As a code newbie, this might be the best book you'll ever read.
Tags: books, fundamentals, beginners, tutorial
Published: 2021-03-17 16:35:23

JavaScript and JQuery by John Ducket is an old book (like 2014 old) but wow, what a breath of fresh air. Even if you aren't ready for JavaScript yet, the way the author visualises programming concepts like classes, properties, methods and events is the best I have come across so far in my quest for coding books that work with the right side of my brain.

Take a look at some of these lovely snippets.

![best coding books](https://www.theelastic.guru/remoteimages/uploads/articles/82ve6gnivtflcgd0pcu0.jpg)

![best coding books](https://www.theelastic.guru/remoteimages/uploads/articles/zwh4w416patll8k6m9e9.jpg)

![best coding books](https://www.theelastic.guru/remoteimages/uploads/articles/9op35mnyj4cenbu67sic.jpg)

![best coding books](https://www.theelastic.guru/remoteimages/uploads/articles/duvq3i4yomd68r7wpqiu.jpg)

![best coding books](https://www.theelastic.guru/remoteimages/uploads/articles/8u31798t6gepbuxnvb4m.jpg)

I haven't read the HTML & CSS version from the author but if the Javascript version is anything to go by, it will be just as good!

The [Amazon reviews for John's books are insane](https://www.amazon.co.uk/Books-Jon-Duckett/s?rh=n%3A266239%2Cp_27%3AJon+Duckett)
IT Outsourcing Fears vs. Team Values: How to Win Your Customers
Tags: testing
Published: 2021-03-17 16:33:41

When making a decision to opt for outsourced IT services, business owners face various fears. What are their concerns, and how to address them? What values do outsourcing software development, testing, and QA teams may have and should follow to win their customers?
#HireTester #testing #qa #outsourcing #IToutsourcing
http://ow.ly/8v1R50E1k0G
Continuous integration and top tools to use during the CI process 
Tags: testing
Published: 2021-03-17 16:32:23

An effective continuous integration process cannot go without an extensive set of tools. But what solutions to use? Here is the list of CI tools that can help you in building a pitch-perfect CI process.
=> Hudson. This continuous integration tool is built with Java and allows working with CVS, Subversion, Mercurial, Git, Clearcase, projects as well as collect Apache Ant and Apache Maven, run shell-scripts and Windows commands.
=> Jenkins.Originated from Hudson, it now offers a variety of options for continuous integration and 1000+ plugins to simplify your work.
=> CruiseControl. This is a free open-source tool and a Java-based framework for implementing a custom continuous build process. You can access dozens of plugins for a variety of source controls, build technologies, and perform continuous integration for any software development process.
=> TeamCity. This Java-based build management and CI server will help you to prevent committing codes with errors that may disrupt the normal assembly of the project.
=> Travis CI. A distributed web service for software development and testing, that uses GitHub for the source code hosting and supports C, C + +, JavaScript, Java, Python, Ruby, PHP projects.

#QA #hiretester #testing
https://hire-tester.com/
What is a test plan and what types of it can be used during testing?
Tags: testing
Published: 2021-03-17 16:31:05

Test plan defines high-level details about the specific testing processes, techniques, objectives, and resources.
There are various types of test plans classified by the testing level, type or size. 
- Level-specific test plan. It includes a unit test plan, integration test plan, and system test plan.
- Type-specific test plan. Here we refer plans for major parameters like performance testing plan.
- Master test plan. It includes general project information, the list of resources (documentation, bug tracker), general testing rules, tools and techniques, acceptance criteria, etc. 

Summing up, a test plan is a roadmap of the testing process. Do you always use it when QAing your solutions? 

#QA #hiretester #testing #testplan

https://hire-tester.com/
Mobile apps testing
Tags: testing
Published: 2021-03-17 16:29:47

What makes a good mobile app: simplicity, ease of use, or maybe performance? All these and many other factors are vital. They form the first impression, impact product popularity and your reputation.

That's why it so important to pay due attention to mobile app testing, and here is how the HireTester team can help you with it.

- Platforms we test on Android, iOS, Windows Phone.
- Focus testing types: functional, cross-browser, multi-device, acceptance, usability, UX/UI, load, regression testing.
- Real device coverage. We have a park of real devices with different screen resolutions to test your app.

Let's get in touch and discuss your project: info@hire-tester.com.

#QA #hiretester #testing #apptesting #mobiletesting #iOStesting #Androidtesting 

https://hire-tester.com/
Performance, stress, volume, and stability testing?
Tags: testing
Published: 2021-03-17 16:28:53

Performance, stress, volume, and stability testing help to detect and fix bottlenecks in the application before they become a huge problem. But when or why should you run these specific types of testing? 

=> Performance testing. The main goal here is to define the application scalability under the load. Thus, the following activities should be conducted:
- Measure the time spent on the selected process's execution.
- Define the number of users that work with the application.
- Define the limits of acceptable performance during the load.
- Analyze the system performance under the high, limited, and stress load.

=> Stress testing is deliberate, intense testing under extreme, unfavorable conditions, aimed to check the application and system working ability in stress situations and then evaluate its regeneration process.

=> Volume testing presupposes the performance evaluation with a large amount of information in the application database.

=> Stability testing is used to test application reliability during a long period with a medium load. It is critical not to have any memory leaks, server restarts, or any other problems that can influence the application stability. 

#QA #hiretester #loadtesting #stabilitytesting #stresstesting #performancetesting 

https://hire-tester.com/
🎉 Zero-config JS Confetti library
Tags: javascript, opensource, webdev, frontend
Published: 2021-03-17 16:28:33

js-confetti is a lightweight zero-config open-source JavaScript library for confetti without any dependencies

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

GitHub: https://github.com/loonywizard/js-confetti

## Usage

Install library via yarn or npm

```sh
yarn add js-confetti
```

Initialize instance of JSConfetti class and call addConfetti method

```js
import JSConfetti from 'js-confetti'

const jsConfetti = new JSConfetti()

jsConfetti.addConfetti()
```

Thats it!
What test strategy is an essential part of a software testing process? 
Tags: testing
Published: 2021-03-17 16:27:45

Test strategy outlines general ways of and approaches to testing, describes the main issues and improvements of the testing process. This is a plan of a system or module testing, based on the functional specifics and dependence from other system or platform components. 

Being the key document for any testing team, it, as a rule, answers the following questions:
• Does the functionality-under-test work?
• What actions must be performed, what tools should be used to achieve testing objectives? 
• What exactly functionality will be tested?
• When can the results of this testing process be expected?
• How to minimize testing costs?

No wonder that test strategy is an essential part of the general testing plan. Sometimes, a customer wants to control the testing process to reveal possible misinterpretation of the testing issues at the early stage. Test strategy together with the testing plan provides a clear and full picture of the whole process and gives:
- Test tasks analysis and their division into components.
- Test section definition.
- More precise insight into testing issues.

This is the right time to plan your next test strategy, right?

#QA #hiretester #testing #teststrategy 

https://hire-tester.com
Why test cases are so important?
Tags: testing, qa
Published: 2021-03-17 16:26:49

Why test cases are so important?
=> This is an essential stage of any testing process. This is a great tool for documentation and verification of the expected test results.
=> Test cases outline what should be done to check the software.
=> Test cases provide a clear picture of what expectations need to be achieved.
=> Test cases contain test scenarios and direct step-by-step testing instructions, making the whole testing process more structured and efficient.
=> Test cases help new team players get a good experience about the product and test management processes you follow, get quickly engaged in the project, and run ready test cases when they need to.
=> Test cases show how you addressed and tested all the product requirements.
=> Detailed manual test cases is a good base for building automated scripts and enhancing the QA process with automated testing.

And what reason for test cases writing you'd highlight? 

https://hire-tester.com/