teleren/devto huggingface dataset:
✨Installing OpenJDK 15 on Ubuntu 20.04✨
Tags: java, jdk, ubuntu, openjdk
Published: 2020-11-06 20:25:00

This post shows how to manually install OpenJDK on your Ubuntu system. This example uses the latest releases of ubuntu (20.04) and OpenJDK (15.0.1), so if you have any other specific version just replace the version in the commands below and you are OK 👍. 

**🌟 Step 1**
 Download your version of OpenJDK from the link below 👇

[https://jdk.java.net](https://jdk.java.net/15/) 


**🌟 Step 2** Create a destination folder for JDK folders and files. 
```
sudo mkdir /usr/lib/java 
```

**🌟 Step 3**
 Extract the downloaded file in the directory created before 👆. 
```
 tar -xvf openjdk-15.0.1_linux-x64_bin.tar.gz -C /usr/lib/java 
```

**🌟 Step 4**
 Open the environment variables file in any text editor [vim, gedit, nano, vscode, sublime, ...]. To use gedit type in the terminal. 
```
sudo gedit /etc/environment
```

**🌟 Step 5**
 In this step, you need two things. 1. Add the following bin folder `/usr/lib/java/jdk-15.0.1/` to the PATH variables in the opened file above 👆. The PATH variable should look like this after adding the above text. 
```
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk-15.0.1/bin" 
```
Add this environment variable `JAVA_HOME="/usr/lib/jvm/jdk-15.0.1"` to the same file. Now, the environment file should look like this: 
```
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk-15.0.1/bin" JAVA_HOME="/usr/lib/jvm/jdk-15.0.1" 
```
Save the file and exit. 

**🌟 Step 6**
 Run the following commands to inform the system about the java's location. 
```
 sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/java/jdk-15.0.1/bin/java" 0 
```
 
``` 
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/java/jdk-15.0.1/bin/javac" 0 
```
 
```
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/java/jdk-15.0.1/bin/javac" 0 
```
```
 sudo update-alternatives --install "/usr/bin/javap" "javap" "/usr/lib/java/jdk-15.0.1/bin/javap" 0 
```

```
 sudo update-alternatives --set java /usr/lib/java/jdk-15.0.1/bin/java 
```

```
sudo update-alternatives --set javac /usr/lib/java/jdk-15.0.1/bin/javac 
```
```
 sudo update-alternatives --set javap /usr/lib/java/jdk-15.0.1/bin/javap 
```

**🌟 Step 7**
 Now you are done, you need just to verify the installation by typing those commands. The output should be the locations you add before. 
```
 update-alternatives --list java 
``` 
```
update-alternatives --list javac
```
```
update-alternatives --list javap 
```

**🌟 Step 8**
 If anything went wrong in the previous step, just close and reopen the terminal or restart the computer. Otherwise 🎉Congratulations🎉, you are officially installed the OpenJDK.
Data Scientist Tools
Published: 2020-11-06 20:17:00

---
title: Data Scientist Tools
published: true
description: A quick list of tools required by big companies for data scientists
tags: 
cover_image: https://images.unsplash.com/photo-1488229297570-58520851e868?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=3149&q=80
---

Photo cred: https://unsplash.com/@sortino

### Quick list of Tooling required by large companies, when sourcing a few job listings ( November 6 )

#### listed for my own personal use.

##### Blizzard:
• Database querying (e.g., SQL, HiveQL)
• Data visualization (e.g., R plotting, matplotlib, Tableau)

##### Amazon:
• Fluency in a scripting or computing language (e.g. Python, R, Java, C++, etc.)
• Experience with SQL and at least one scripting language (preferable Python)
• Proficiency in at least one statistical software package such as R, Stata, Matlab, or Python.

##### Google:
Experience with statistical software (e.g., R, Python, MATLAB, pandas) and database languages.
Applied experience with machine learning on large datasets.

##### Apple:
We seek proficiency with SQL. Experience with big data technologies such as Hadoop and Spark preferred.
Proficient with Python or R and data visualization tools such as Tableau for full-stack data analysis, insight synthesis and presentation.

##### Tesla:
• Proficiency in Python, SQL and experience with ML libraries and frameworks like Scikit-learn, h2o or Spark ML.
• Solve complex industrial and technical problems using advanced mathematical modeling and optimization techniques, including but not limited to, big data pre-processing, problem formulation, features engineering, algorithmic selection and evaluation, hyper-parameter tuning for machine learning, and deployment.

##### Microsoft
• Experience with data analysis and statistical tools (e.g. Python, R, SAS, Matlab or SPSS).

##### AirbNB 
• R/Python; SQL/Hive
• Manipulating large-scale data sets
• Descriptive and predictive modeling
What is the coolest new tech that devs should learn?
Tags: discuss, watercooler, beginners, rudderstack
Published: 2020-11-06 20:00:06

There is so much new tech coming out everyday. It's hard to keep up. What do you think is the coolest or most useful new tech that devs should learn?

I'll start.

[Snowflake](https://www.snowflake.com). It's a great data warehouse, and the way it decouples data storage, compute, and cloud service charges is significantly more cost-effective and enables more use cases than other options right now.

<br />  
*Cover photo by [NordWood Themes](https://unsplash.com/@nordwood?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText) on [Unsplash](https://unsplash.com/s/photos/waiting?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText).*
Best GUI App for Python ?
Tags: python, computerscience, android
Published: 2020-11-06 19:44:09

Well, Here is the answer !!
Kivy and KivyMD are the best tools that you can use to develop GUI Application in Python and also they are very easy to use !
You can develop any kind of app using this tool , i mean any kind and same app will run in windows , ios and android. How cool it is .. aah now !
logging off ..
Configure Git for Work and Personal stuff
Tags: git, productivity
Published: 2020-11-06 19:24:56

> Photo by [Maddy Baker](https://unsplash.com/@maddybakes?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText) on [Unsplash](https://unsplash.com/s/photos/branch-wide?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText)

If you are like me and work for different companies, have several side hustles and fun projects, you will probably have the same problem as I have:
You want to use different configurations, like E-Mail Addresses, for those repositories.
Of course, you can always apply a local configuration to each repository or even use some scripts or aliases to help you out. But again, if you are like me, you won’t be happy with it, because you will forget to apply it over and over again. 

## Conditional Configuration
Git allows you to include external configuration-files based on conditions, like the current directory. With this in mind, the problem above is actually easily solvable. 

First use different base-directories for each “area”, like your different work-places and personal stuff:
```
/home/me/
    dev-work-a/
    dev-work-b/
    dev-personal/
```
Then create a .gitconfig-file for each of those areas:
```
/home/me/
    .gitconfig (your main configuration)
    .gitconfig-work-a (specific configuration for work a)
    .gitconfig-work-b (specific configuration for work b)
    .gitconfig-personal (specific configuration for personal projects)
```

In your main .gitconfig-File, instead of the actual values, you conditionally include the other files:
```
# ~/.gitconfig
[includeIf "gitdir:~/dev-work-a/"]
    path = .gitconfig-work-a
[includeIf "gitdir:~/dev-work-b/"]
    path = .gitconfig-work-b
[includeIf "gitdir:~/dev-personal/"]
    path = .gitconfig-personal
```

and in the specific files, you just define the specific configuration values: 
```
# ~/.gitconfig-work-a
[user]
    name = Scooby Doo
    email = scooby@worka.com
```

```
# ~/.gitconfig-work-b
[user]
    name = Scooby Doo, Food-Department
    email = scooby@workb.com
```

```
# ~/.gitconfig-personal
[user]
    name = Scooby
    email = me@scoobydoo.com
```

That’s basically it. So now, when you are for example in `~/dev-personal/bigbang-side-hustle` Git will get your user-configuration from `.gitconfig-personal`.

## One more thing
Well, of course, you cannot use conditional configuration for user-configurations like name and e-mail only, it’s just a very common use case. But in fact, you can use it for whatever configuration you like.

There are also two more conditions like `gitdir`:
* `onbranch` lets you apply configurations based on the branch you are on
* `gitdir/i` like `gitdir`, but case-insensitive

It's worth mentioning that this works on all platforms and is very [Dotfiles](https://www.atlassian.com/git/tutorials/dotfiles)-friendly.
Also see [documentation](https://git-scm.com/docs/git-config#_conditional_includes "Git Documentation: conditional-includes") for more information.

Have fun!
About my journey
Tags: hacktoberfest
Published: 2020-11-06 19:20:39

<!-- ✨This template is only meant to get your ideas going, so please feel free to write your own title, structure, and words! ✨ -->


### Introduction
<!-- If you are new to the DEV community, introduce yourself and share a bit about why you joined DEV and decided to participate in Hacktoberfest this year.  --> 
First time I joined any open source project. I actually learn from it that how can I contribute in an open-source project in a proper manner. 
### Background

<!-- Are you brand new to open source? What about coding in general? Tell us about how you got here →
I came to know this from my friends. They motivated to participate me in this. After that, I have joined the DEV community to share my experience.
### Progress

<!-- Share a bit about where you’re at in your Hacktoberfest journey. What stage are you at? How has the process been?  -->
My four pull request has accepted successfully. This was a great journey for me. 
### Contributions

<!-- This is where you can list the contributions you made and explain why you chose the projects you did. Don’t forget to add links!  -->
Added Dictionary using Trie Python code - https://github.com/Developer-Students-Club-MAIT/cool_code_snippets/pull/34
Diamond Square code in C - https://github.com/Developer-Students-Club-MAIT/cool_code_snippets/pull/36
Add Tic-Tac-Toe Game code in python - https://github.com/Developer-Students-Club-MAIT/cool_code_snippets/pull/38
Added my course recommendation - https://github.com/arpancodes/mega-course-recommender/pull/153

### Reflections
<!-- Overall, how has your Hacktoberfest 2020 experience been? If you’re a first-timer, will you participate again? What have you learned? Have you made any interesting connections? What is your next step in open source?  -->
My Hacktoberfest 2020 experience was awesome. Next year I will come back again to participate. I learnt how can I approach a project and follow their guidelines. Now I will try to contribute more in open source project.
Advanced Way to Search an Array in Python (for Self taught Devs)
Tags: python, algorithms, arrays
Published: 2020-11-06 19:19:53

Imagine your new manager clamoring about the slow speed of your company's application.

Based on your observation, *a little optimization of the codebase which was "written in a hurry" would increase efficiency.*

You decided to do exactly that.

A few hours later, you found a function that searches an array with hundreds of items from the database.

**The problem with this function is that it runs linearly. And searching for a single item isn't different from looking for a needle in a haystack.**

Cutting the time the function runs by half will make you the hero of the day.

*But how would you do that?*

Well, here comes...

### **Binary Search**

What's Binary Search?

Binary Search is a search algorithm that belongs to a group of algorithmic design patterns called **Divide and Conquer**

Binary Search is an efficient algorithm for finding an item in a sorted list of items. The magic behind it lies in its ability to cut the list or array by half (logarithmic time) every time it does a search.

For example, an array with a length of:

```
10 will take approximately 3 steps to find 1 item.
100 will take approximately  7 steps to find 1 item.
1000 will take approximately  10 steps to find 1 item.
10,000 will take approximately  13 steps to find 1 item.
1,000,000 will take approximately  20 steps to find 1 item.
```

Wow!

That is really fast! And would truly help you save the day.

But how do you implement it?

Well, first, you have to understand how it is designed.

The concept is simple:

```
* Make sure your array is sorted.
* Find the start index of the array ~ (usually 0)
* Find the end index of the array ~ (usually length of array - 1)
* Find the middle of the array
* If your item is in the middle, return it.
* If your item is greater than the middle item, update the middle as the new start
* If your item is lower than the middle item, update the middle as the new end.
```

Let's see how it looks in code.

```
def binary_search(array, target):
     array = sorted(array) #sort the array
     start = 0
     end = len(array) - 1
     while start <= end:
        middle = start + (end - start) // 2 #find the middle
        item = array[middle]
        if target == item:
            return middle
        if target < item:
            end = middle - 1
        else:
            start = middle + 1
     return None
```
You did it!

At the end of the workday, you successfully optimized your code saving your organization extra run time. Your manager enters the standup call smiling ear to ear...and *thanked you for it!*

Your users are happier now. That function was really slowing things down for them.

You were named the hero of the week during the next day's standup!

And it ended happily ever after!
Github Pages, the quick start.
Tags: git, github, beginners
Published: 2020-11-06 19:09:17

Just joined here, and as you know, one of the recommended tasks for a new member here is writing the first post. But I just don't have any important idea or things to write about. :D

But ok, here i'm going to try to write about creating your very first github page, in case you still don't have a github page, still don't know how to do it, or whatever, here the quick start.

First, go to the [github](https://github.com), and make sure you are already logged in. If not, you'd better create a github account now.

Go to your profile page and create a repository named something like <code><em>jack</em>.github.io</code>, where `jack` have to be exactly the same as your github username. So, for instance, if you are `https://github.com/omarseda`, then the repository name *must* be <code><em>omarseda</em>.github.io</code>.

Now, we are going back to our local machine. (Oh, I forget, you must have a *git* installed on your machine too, if not, [install it](https://git-scm.com/downloads) now.)

Now, somewhere on your local machine, open the terminal or git console and `clone` your repo, replace the `jack` with your username :

```
$ git clone https://github.com/jack/jack.github.io
```

You have a cloned repository under `jack.github.io` directory, now. Go there and make a html file `index.html` : 

```
$ cd jack.github.io
$ echo > index.html
```

Open the `index.html` in your editor, and write some html, this will be your *homepage* of your github pages, example :

```html
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Hello Github</title>
</head>
<body>
	<p>Hello World !</p>
</body>
</html>
```

Then save it.

Now we are going back to the git to `add` the file, then `commit` and `push` it :

```
$ git add index.html
$ git commit -m "Hello world"
$ git push -u origin master
```

Done. Open your page at `https://jack.github.io`, on your browser.

You can edit your file again next times, add some other files, and when you're done, just `add`, `commit` and `push` it again.
Database Design: Functional Dependency
Tags: datascience, database, backend
Published: 2020-11-06 18:43:02

Hello there, I thought functional dependencies might be tricky to understand for some people so I made this post on it. Hope it helps you understand them better.
### What is a Functional Dependency?
A functional dependency is a relationship between two attributes, typically a primary key and a non-key attribute within a table(relation). In other words it is a set of constraints between two attributes in a relation. It is the starting point for data normalization. FDs exists when a relationship between two attributes allows you to uniquely determine the corresponding attribute’s value. If ‘X’ is known, and as a result of that value of X you are able to uniquely determine ‘Y’, there is functional dependency. Functional dependency is represented by an arrow sign (→) for instance, X→Y, which means  X functionally determines Y or Y is dependent on X.

### Rules of Functional Dependencies.
There is a group of rules that is used to infer functional dependencies in relational databases. In 1974, William W. Armstrong established a set of rules called Armstrong's Axioms to be used in the inference of all functional dependencies on relational databases. Let's look at these rules.

1. #### Axiom of Reflexivity 
It states that If X is a set of attributes, and Y is a set of attributes that are completely contained in X that is Y is a subset of X, then X determines Y.
If Y ⊆ X then , X → Y. For example, Address is composed of more than one piece of information; i.e. House_No, Street, and State. So according to the axiom of reflexivity Address (X) → House_No (Y) as House_No ⊆ Address.

1. #### Axiom of augmentation 
This axiom is also known as *partial dependency*. It states that if X determines Y then XZ determines YZ for any Z. If X → Y, then XZ → YZ for any Z. This means adding attributes in dependencies, does not change the basic dependencies.

1. #### Axiom of transitivity 
The axiom of transitivity also know as transitive dependency states that if X determines Y, and Y determines Z, then X must also determine Z i.e If X → Y and Y → Z, then X → Z.


Thank you for reading this post. Please comment, like and share if this helped your understand functional dependencies better.
Completed the hacktoberfest
Tags: hacktoberfest
Published: 2020-11-06 18:37:54

<!-- ✨This template is only meant to get your ideas going, so please feel free to write your own title, structure, and words! ✨ -->


### [Intro Heading]
<!-- If you are new to the DEV community, introduce yourself and share a bit about why you joined DEV and decided to participate in Hacktoberfest this year.  --> 
Hey, Everyone myself Aadil sayed and i joined DEV to explore and contribute in open source Technologies.
I have participated in Hacktoberfest and learn new things able contributing in open source platform and to get ideas from different developers and technic to solve the problems 

### Background

<!-- Are you brand new to open source? What about coding in general? Tell us about how you got here →
### Progress

<!-- Share a bit about where you’re at in your Hacktoberfest journey. What stage are you at? How has the process been?  -->
I have liked this concept of Hacktoberfest program to solving the problems on the open source platforms and also got the opportunity to learn from others mistakes 
### Contributions

<!-- This is where you can list the contributions you made and explain why you chose the projects you did. Don’t forget to add links!  -->


### Reflections
<!-- Overall, how has your Hacktoberfest 2020 experience been? If you’re a first-timer, will you participate again? What have you learned? Have you made any interesting connections? What is your next step in open source?  -->
Hacktoberfest 2k20 done!!!
Tags: hacktoberfest
Published: 2020-11-06 18:04:45

<!-- ✨This template is only meant to get your ideas going, so please feel free to write your own title, structure, and words! ✨ -->



<!-- If you are new to the DEV community, introduce yourself and share a bit about why you joined DEV and decided to participate in Hacktoberfest this year.  --> 
Hi, I am Namrata, working as a Developer. I got to now about hacktoberfest from one of the YT channel I follow. Recently got to know about DEV community. The idea to give solutions to multiple projects worldwide was fascinating.

### Background
Completed my graduation from Pune university two years ago. Was keen on learning about open source contributions using git always.


<!-- Are you brand new to open source? What about coding in general? Tell us about how you got here →
I have earlier heard about open source projects, technologies  used in Ubuntu. And also worked open source operations on github, where in our company there is migration on cloud in progress.I  was keen to understand all the functionalties which would lead to contributions. And our PR getting accepted could be validated to our correctness in issue resolving. Contributions help us to understand many open source projects. HEard about Hacktoberfest from YT channels I follow. Found the idea of issues in any project, and working towards giving solutions about it. It was a great opportunity to learn Git.


### Progress

<!-- Share a bit about where you’re at in your Hacktoberfest journey. What stage are you at? How has the process been?  -->

### Contributions
Initially, for my first contribution, I had to update a file to add a company which was not there. 
And in the next PR, there was one code implementation to be added in another language.
My third PR was on similar lines.
And final PR was regarding Website Design.

<!-- This is where you can list the contributions you made and explain why you chose the projects you did. Don’t forget to add links!  -->


### Reflections
<!-- Overall, how has your Hacktoberfest 2020 experience been? If you’re a first-timer, will you participate again? What have you learned? Have you made any interesting connections? What is your next step in open source?  -->

This was my first time I participated in Hacktobefest. And as I was new to these issues pull/push of code, my first PR accepted gave me confidence that I was on right path towards open-source contributions. This experience was a good learning experience. Would like to participate in such event again.