teleren/devto huggingface dataset:
Circular visualization in Python (Circos Plot, Chord Diagram)
Tags: python, programming, showdev, visualization
Published: 2023-01-05 04:42:15

Circular data visualization is often used to visualize interrelationships such as networks and flows between data. The following diagram is called a **Chord Diagram**, which can visualize the interrelationships of data in a simple and beautiful way.

![Chord Diagram Example](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0pxsnoes9e5ofy0tk25c.png)

In the bioinformatics field, **Circos**, a circular data visualization tool (Perl module) is widely used to visualize genome information and gene networks, and we often see circular visualizations of numerical values, statistics, and interrelationships of various data.

![Circos Plot Example](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qzrd6yi6ac6t1j8p2tai.png)

In R language, [circlize](https://github.com/jokergoo/circlize) is a well-known circular visualization package that is used by many users. Circlize provides many high-level and low-level APIs for circular visualization, and users can write code for circular visualization in a flexible way.
On the other hand, there is still no circular visualization package in Python that is as feature-rich and widely used by users as circlize. Therefore, I developed **pyCirclize** for the purpose of making circlize-like visualization available in Python.

**pyCirclize** ([GitHub](https://github.com/moshi4/pyCirclize) / [Document](https://moshi4.github.io/pyCirclize)) enables easy and flexible execution of circular data visualizations such as Chord Diagram and Circos from the Python API. As an example, user can perform the following circular data visualization.

![Circos Plot Example](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5d2qxe11yj5it4rhcltl.png)
My Strategy for Learning Data Structures
Tags: webdev, programming, algorithms, java
Published: 2023-01-05 04:35:27

## Like all good stories in the past few weeks mine starts with OpenAI's Chat GPT. 

I have just started my journey in learning Data Structures so naturally I ask chat GPT the best strategy for learning and one of the methods was to implement the given data structure from scratch. Now that sounds daunting...

However, this is a great idea! I am definitely going to add it into my learning strategy. So heres what I have so far.

First I have to pick a data structures to study then I will follow these steps until I feel confident in my ability to understand and use the data structure:

### 1. Research Research Research. 

I will spend some time first gathering information on the data structure.

![student researching in the library](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/otfu9p7hakt84932cpgw.png)

My research will be focused on the following:
- basics of how to read and write from the structure
- how it came about
- which problems it solves

### 2. Next I will try to implement it on my own in Java.

Yes, I said Java, a language I do not even know yet. Why would I do this? There is a couple reasons:

  1. The main reason is that in order to find all of the syntax necessary to create this structure I will need to fully understand how it works.
  2. I want to learn Java, I remember asking ChatGPT a while ago the best way to learn Java and one of the answers it gave me was to implement data structures in the language.

This step is only possible if I have a deep understanding of the data structure. I will develop this by first learning all of the necessary lower level concepts that go into building the structure like how it is stored in memory and what other data structures are used to build it. These are the steps:

- Learn the low level concepts
- Write the data structure in pseudocode
- convert the pseudocode into Java (and possibly Javascript just for fun)

This is going to be the hardest step and will likely take a couple of days but I believe it's necessary for the learning process.
![student having a hard time](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dhampbit5b9964h9v6qx.png) 

### 3. Finally I will solve Leetcode easy questions with my own implementation of the data structure.

I believe this step is crucial because it will help me learn how to actually use the data structure to solve a problem. This will connect all of the dots and align all of the stars for me to understand the data structure.

![bright idea by a student](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o0juiz4g5n5r2vuxak4j.png)
In case you haven't noticed all of the pictures in this post have been generated by AI.

Once I have done all of these steps I believe I can start tackling harder Leetcode questions using the data structure (and maybe even my implementation of it ¯\_(ツ)_/¯).
What are the most profitable side hustles for software engineers?
Tags: webdev, beginners, programming, productivity
Published: 2023-01-05 04:32:33

There are many potential side hustles that software engineers can pursue, and the most profitable ones will depend on factors such as your skills and expertise, the demand for those skills in your area, and the amount of time and effort you are able to commit to the side hustle. Here are a few potential options to consider:

Freelancing: Many software engineers are able to earn significant income by offering their services as freelancers. You can find freelance work through websites like Upwork, Freelancer, and Toptal, or by reaching out to potential clients directly.

Consulting: If you have specialized knowledge or expertise in a particular area, you may be able to offer consulting services to businesses or organizations. This could include providing guidance on technical issues, helping with project planning, or offering training or workshops.

Teaching: If you enjoy teaching and have a strong understanding of a particular subject, you may be able to earn money by offering online courses or workshops. You can use platforms like Udemy or Teachable to host your courses and reach a wide audience.

Creating and selling software products: If you have a good idea for a software product, you may be able to turn it into a profitable side hustle by developing the product and selling it online. This could include mobile apps, desktop software, or web applications.

Blogging or writing: If you enjoy writing, you may be able to earn money by blogging or writing about topics related to software development. You can monetize your writing through advertising, sponsorships, or by selling your own products or services.

I hope this helps! Let me know if you have any questions or happen to have further curiosities on it all - always glad to help out!

[Clean Code Studio](https://cleancode.studio)
Can json rpc and grpc work together?
Tags: web3, api, rpc
Published: 2023-01-05 04:30:09

Yes, it is possible for JSON-RPC and gRPC to work together. JSON-RPC and gRPC are both remote procedure call (RPC) protocols that allow a client to call methods on a server over a network. However, they use different encoding schemes and communication styles.

One way to use JSON-RPC and gRPC together is to have a JSON-RPC server act as a client to a gRPC server, or vice versa. For example, you could have a JSON-RPC server that forwards requests to a gRPC server, or a gRPC server that calls methods on a JSON-RPC server.

Another way to use JSON-RPC and gRPC together is to use a bridge or gateway that translates between the two protocols. This allows clients and servers that use different protocols to communicate with each other.

It is also possible to use JSON-RPC and gRPC together by implementing both protocols in the same server or client. This allows the server or client to support both protocols, and allows clients using either protocol to access the server's methods.

[Clean Code Studio](https://cleancode.studio)
LinkedList using Java
Published: 2023-01-05 04:29:05

LinkedList is the one of beneficial Collection framework in Java. LinkedList is very flexible because it is not needed to define the size. If you want to add new elements into LinkedList, you can implement it very easily unlike array. 

In addition, LinkedList can be used in the LeetCode problems such as
`21 Merge Two Sorted Lists`
`83 Remove Duplicates from Sorted List`
`141 Linked List Cycle`
`160 Intersection of Two Linked Lists`

Mastering LinkedList problems means that you can be more confident for coding interview.

In order to create the LinkedList, this command is used:
`LinkedList list = new LinkedList();`

To find the current node, val is used.

To find the next node, next is used.

addAtHead() will add the node at the head of the linkedlist.
deleteAtIndex() will delete the specific node in linkedlist.
Call-to-Action Created Using HTML & CSS
Tags: html, css, webdev
Published: 2023-01-05 04:09:56

Call-To-Action created using HTML5 & CSS3 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6lv3to84tqhqlthx3pe6.png)
[Affordable Effective Legal Assistance Needed for Victims of Domestic Violence](https://solinyc.github.io/)
Python tic tac toe
Tags: python, beginners, programming
Published: 2023-01-05 03:45:39

Hello there! 
Right now I'm learning python and with my beginner skills I created a tic tac toe console game, I wanna show cause I wanna know if can you improve the code quality and at the same time learn how you do that,
take a look!
https://pastebin.com/exyMZ0iU
Shell-abration: A Beginner's Guide to Bash, Zsh, Oh My Zsh, and Fish
Tags: shell, unix, programmertools, overview
Published: 2023-01-05 16:45:56

---
title: Shell-abration: A Beginner's Guide to Bash, Zsh, Oh My Zsh, and Fish
published: true
date: 2023-01-05 03:43:38 UTC
tags: shell,unix,ProgrammerTools,Overview
canonical_url: https://techdevblog.io/shell-abration-a-beginners-guide-to-bash-zsh-oh-my-zsh-and-fish/
---

 ![Shell-abration: A Beginner's Guide to Bash, Zsh, Oh My Zsh, and Fish](https://techdevblog.io/content/images/2023/01/image_0-3.png)

Bash, zsh, and fish are all Unix shell programs that allow you to interact with your computer's operating system in a more human-friendly way. While they all serve the same basic purpose, there are some key differences between them that may make one a better choice for you over the others.

# Bash

First, let's start with Bash. Bash, which stands for Bourne Again SHell, is the default shell for most Linux distributions and macOS. It's a tried-and-true shell that has been around since 1989 and is known for its stability and compatibility with a wide range of software.

# Zsh

Next up is zsh, or the Z Shell. Like Bash, it's a Unix shell that allows you to enter commands and run programs on your computer. However, it's generally considered to be more feature-rich than Bash, with better tab completion and improved support for plugins and themes.

## Oh My Zsh

Oh My Zsh is a popular open-source framework for managing your Zsh configuration. It comes with a ton of helpful features, like a powerful plugin system and the ability to switch between themes with ease. It also includes a bunch of useful aliases and functions that can save you time and typing.

# Fish

Finally, there's fish, or the Friendly Interactive Shell. Like the other shells, it allows you to enter commands and run programs on your computer. However, it's designed to be more user-friendly, with syntax highlighting and automatic suggestion of commands as you type. It also includes some helpful features like web-based configuration and the ability to search your command history.

# Conclusion

So which one should you choose? It really comes down to personal preference. Bash is a tried-and-true option that's been around for a long time, and it's the default shell on most systems. Zsh and Oh My Zsh offer some nice additional features, but may not be as widely supported as Bash. Fish is a good choice if you're new to shells and want something that's a bit more user-friendly. Ultimately, it's up to you to decide which one best meets your needs.
Data science in 2023,Written by ChatGPT an AI tool by OpenAI
Tags: ai, machinelearning, deeplearning
Published: 2023-01-05 03:41:34

It's difficult to predict exactly what the field of data science will look like in 2023, but it's safe to say that it will continue to be an important and rapidly growing field. The increasing amount of data being generated by businesses, organizations, and individuals, combined with advances in technology, will likely drive the demand for data scientists who can analyze and interpret this data to inform decision-making.

One trend that is expected to continue in the field of data science is the growing importance of machine learning. Machine learning algorithms allow data scientists to automatically improve their models over time, without the need for explicit programming. This has the potential to significantly increase the efficiency and accuracy of data analysis, and make it easier for organizations to derive insights from their data.
Another trend that is likely to continue is the increasing use of cloud computing to store and process large amounts of data. Cloud computing offers a number of benefits for data scientists, including the ability to scale up resources as needed, and the ability to access data from anywhere with an internet connection.

The field of data science is also likely to become more interdisciplinary in the coming years. Data scientists will need to work with professionals from a variety of fields, including business, marketing, and design, to understand the context in which data is being collected and analyzed, and to ensure that insights are effectively communicated and applied.

One potential challenge facing data scientists in the future is the issue of data privacy and security. As the amount of data being collected and stored increases, so too does the risk of data breaches and the misuse of personal information. Data scientists will need to be aware of these issues and take steps to ensure that data is collected and stored securely.
Overall, the field of data science is expected to continue to grow and evolve in the coming years, and those with the necessary skills and expertise will be well-positioned to take advantage of the many opportunities that will arise. Whether you're just starting out in your career or are an experienced professional looking to stay up-to-date with the latest trends and technologies, data science is an exciting and rewarding field to be a part of.
Most Popular Code Editors
Tags: webdev, programming, productivity
Published: 2023-01-05 02:41:22

There are so many different kinds of code editors out there. Many people use different ones based on what they want to do. Some people prefer VS Code for personal projects while some DevOps prefer using Vim. Well, here is a list of a few code editors that many people prefer according to a [survey](https://survey.stackoverflow.co/2022/#overview) done by Stack Overflow in 2022.

## NeoVim
  
**Pros:**

- NeoVim has won best code editor two years in a row. It is a free editor known as the more powerful Vim. It is very fast in performance and is known to be easy in terms of customization. 

- It has better support for plugins which makes it easier for developers to create and maintain plugins.

- It has a very large community of users which would mean more access to resources and support from fellow users.

**Cons**

- It has a steep learning curve, which makes it hard to use, especially for beginners. It has a very different modal editing paradigm compared to others. 

- It has compatibility issues. Since it is a fork of Vim, some of the plugins from Vim do not work on it.

## Visual Studio Code

**Pros**

- It has a built in debugger which helps go through the code by stepping into a certain part of it and make changes as needed. 

- It has a wide variety of extensions that add features and functionality to it 

- It works on many different platform such as MacOS and Windows which makes it a great choice for developers.

  **Cons**

- Since it has many extensions, it is possible to install too many extensions which will slow down the editor.

- There is a limited amount of customization available in VS code. It does not have as many customizations as many other editors.

## RAD Studio

**Pros**

- It had many different kinds of debugging tools and profiling application tools which helps optimize the performance of the applications. 

- There is support for many different languages such as C++ and C# which makes it better for developers working with multiple languages. 

- Since it is used by many developers, it is actively maintained with regular updates and bugs are fixed often as well.

**Cons**

- It is not free and it pretty expensive especially for the users who need to upgrade to the latest version.

- It is resource intensive which would make the editor less responsive especially for the developers with lower-end hardware.
A web service that provides secure, scalable, and flexible computing capacity in the cloud.
Tags: aws, ec2, devops, cloud
Published: 2023-01-05 02:36:49

Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides secure, scalable, and flexible computing capacity in the cloud. It’s a central part of Amazon Web Services (AWS), and it allows users to rent virtual computers on which to run their own applications.

EC2 instances can be launched with a variety of operating systems, including Amazon Linux, Windows, and Ubuntu. Users can choose from a range of instance types and sizes, each with varying amounts of CPU, memory, and storage. This allows users to select the right instance type and size for their specific workload, whether it’s a small application or a large, resource-intensive one.

One of the key benefits of using EC2 is the ability to scale resources up or down as needed. This allows users to pay for only what they need, when they need it. EC2 also provides a number of security features, including virtual firewalls, encryption, and access controls, to help protect users’ applications and data.

EC2 also integrates with other AWS services, such as Amazon Simple Storage Service (S3) for storing data, Amazon Relational Database Service (RDS) for running a database, and Amazon Elastic Load Balancer (ELB) for distributing traffic across multiple instances.

Overall, Amazon EC2 is a powerful and flexible cloud computing service that can be used for a wide range of applications and workloads. It allows users to quickly and easily spin up virtual servers, scale resources as needed, and take advantage of a variety of security and integration features.

https://aws.amazon.com/ec2/
What is Ruby on Rails (ROR)?
Tags: ruby, rails, gems, beginners
Published: 2023-01-05 02:30:00


## **What is Ruby on Rails (ROR)?**

Hello Everyone, This is my first article and in this article, we are going to discuss about the **Ruby** programming language and its framework **Rails**. So let’s get started.

![Image Courtesy : [https://dev.to/joker666](https://dev.to/joker666)](https://cdn-images-1.medium.com/max/2000/0*WO1WxWxKk6qbUcCV.png)
<figcaption align = "center">
  <b> Image Courtesy -  
    <a href="https://dev.to/joker666"> 
      https://dev.to/joker666
    </a>
  </b>
</figcaption>

&ensp;
## **What is Ruby?**

![Ruby Logo — [https://www.ruby-lang.org/en/](https://www.ruby-lang.org/en/)](https://cdn-images-1.medium.com/max/2000/0*M0t0Iyr-q1LomW04.png)
<figcaption align = "center">
  <b> Ruby Logo -  
    <a href="https://www.ruby-lang.org/en/"> 
      https://www.ruby-lang.org/en/
    </a>
  </b>
</figcaption>

<br/>
Ruby is an extremely capable programming language. It was created in **1995** by **Yukihiro Matsumoto** as an interpreted object-oriented programming language. Ruby is an excellent language for creating desktop programmes, static webpages, data processing services, and even automation solutions. You can do even more when you use the **Rails application framework**.

&ensp;
## What is Rails?

![Rails Framework Logo](https://cdn-images-1.medium.com/max/2000/1*x6bdzshtnupG2ZEsNZQgkw.png)
<figcaption align = "center">
  <b> Rails Framework Logo </b>
</figcaption>


<br/>
Rails, often known as Ruby on Rails, is a server-side web application framework which is written in Ruby. In simpler terms, Rails is a **full-stack web development framework**. It includes all of the tools you’ll need to build amazing front-end and back-end web applications. It was created by **David Hansson** in **2004**.

Rails can do everything and more, including enqueuing jobs for asynchronous work, storing uploads in the cloud, producing HTML templates, updating databases, sending and receiving emails, maintaining live pages with Web Sockets, and providing solid security protections for conventional assaults.
My Cloud Journey: Jan 04, 2023
Tags: cloud, freshgrad
Published: 2023-01-05 02:14:37

I am happy to write this post as I have completed my AWS Cloud Practitioner Certification and have successfully started to get my feet wet in the world of the Cloud. 
 
## **Learning Path 📚**
_Recently Completed:_

- AWS Cloud Practitioner Cert
This was a great dive into the Cloud environment. This certification helped me in understanding the basics of the cloud, services, and terminologies commonly used. Now, this cert gave me the confidence to tackle the next certification AWS Solutions Architect.

_In Progress:_

- AWS Solutions Architect
I have started with AWS solutions architect by following through the video course provided by whiz labs. They have a bundle where I am able to practice the gained knowledge in the lab section and also finally use the exam section to get prepared for the certification exam.

## **Projects 👨‍💻**
I have started with a project where I will be using my previous knowledge of React to create a static resume website and try to create a CI-CD using GitHub Actions and deploy it in the S3 bucket. I feel this would be an introductory project where I can get a feel of the AWS environment in a real-world situation. 

## **Wrap up 🍫**
So far, I am not displeased with my progress. I have been working on this journey through the cloud for about 3 months as a full-time student. I still feel need a lot more to know about cloud but still, I am only Human that too a teenager with lots of distractions.

That's all for the week.

_Onwards and Upwards!_
Back then, Boomers measured page speed with Google Analytics!
Tags: webperf, analytics, webdev
Published: 2023-01-05 01:31:12

In today's world, we have [many tools available to us to measure the performance of our websites](https://sharegpt.com/c/ubVTWue). There are two types of data that can be collected with these tools: lab data and field data. It is possible to embed lab data tools into a continuous integration pipeline. This is also how third-party solutions work, such as [Checkly](https://www.checklyhq.com/) (lab), [Vercel Analytics](https://vercel.com/analytics) (lab and field data) or WebPageTest (lab data). Today, third-party real user monitoring (RUM) solutions such as DataDog or Sentry also provide performance data for cross-referencing. 

Back in 2014, I was working as a contractor on modernizing the MOT for the British Government. Even then, without all the modern tools I mentioned above, we could easily find the slowest page in the system as we had some really cool hardware at our disposal. You can watch it here: 

{% embed https://www.youtube.com/watch?v=rjfCBTBCaak %}

It was an eye-opener for some developers back then who were [just using Google Analytics as their performance monitoring tool](https://sharegpt.com/c/4LnvAoT).

And yes, in 2014 in our office we had a touch 72" monitor! 

Godspeed

Follow me on ELon's Twitter:
[https://twitter.com/dom_sipowicz](https://twitter.com/dom_sipowicz)