teleren/devto huggingface dataset:
Open source Clubhouse Alternatives
Tags: opensource, clubhouse
Published: 2021-02-14 13:55:42

As you know Clubhouse is very popular right now, but there are some issues such as privacy, server performance, and etc.

Then, 2 open-source software shows up. To use them you don't need to install any application on your smartphone.

## Jam
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/jprjlj4fkponj9pnmhlq.jpeg)
https://www.producthunt.com/posts/jam-an-open-source-clubhouse

[Code]
https://gitlab.com/jam-systems/jam


## DogeHouse
The big difference is that DogeHouse has a chat function.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/wivu59o4d3ncc1k905gl.png)
https://www.producthunt.com/posts/dogehouse

[Code]
https://github.com/benawad/dogehouse
Day 15: Pascal's Triangle
Tags: 100daysofcode, python
Published: 2021-02-14 13:55:41

Pascal's Triangle is a number pattern. Each number is the numbers directly above it added together.

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

```python
row = int(input("Enter number of rows: "))

space = 36
a = [0] * 20 


for i in range(row):
    
    for spi in range(1,space+1):
        print(" ", end="")
    
    a[i] = 1
    
    for j in range(i+1):
        print('%6d' %(a[j]), end = "")
    
    for j in range(i,0,-1):
        a[j] = a[j] + a[j-1]
    
    space = space - 3
    
    print()
```
30 Ruby Coding Challenges in 30 Days
Tags: ruby, rails, beginners, tutorial
Published: 2021-02-14 13:49:07

---
title: 30 Ruby Coding Challenges in 30 Days
published: true
description: 
tags: ruby, rails, beginner, tutorial
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/wbt0lnwuou456ss8m0ed.png
---

Your Ruby is a little bit rusty? Or maybe you want to learn Ruby one challenge at a time? 

Go to this web site: https://courses.alexgama.io/course?courseid=ruby-coding-challenges-course

Alex Gama is the instructor and he create free 30 Ruby video challenges. 

And it's not just 30 videos, with each challenge you have accompanying materials:

- very pro videos
- exercises
- tutorial
- code snippets

I am not affiliated in any way to this web site but I did the challenge and find those videos very well done and I learn a lot.

So... Challenge accepted?

Good luck :-)
Why I Decided to Learn Software Development
Published: 2021-02-14 13:47:05

        I decided to take a leap of faith to learn a whole new, foreign set of skills in software engineering. There seemed to be the perfect storm of factors and influences that came along at a time in my life when I felt ready for a new challenge. 
	There’s a philosophical factor above any of the personal circumstances or career goals. This is how the world works. This is a thing I benefit from every day of my life. Generations of people (including my Grandfather, who worked in the WWII/post-War field of computer development, from very simple code inputs to corresponding outputs) have problem-solved and innovated to a point where real world solutions are a regular part of life, and taken for granted. I have a desire to be a part of that- to understand these systems that are commonplace in everyday life, but to the layman (ie. me) can seem like voodoo magic.
        I have reached a point, at 32 years of age, where I pretty much know what I've gotten good at, and I primarily lean on those skills in my life. It can feel like I've stagnated recently because of that. Challenges have always helped me better myself, and I've felt hungry to add a new dimension to what I can accomplish.
	There are plenty of practical aspects to why I want to master software development. I want to have a higher ceiling for career advancement. Performing music will always be my central passion, and I think software development compliments that lifestyle perfectly. There's opportunity to work remotely, which, through the pandemic, I've realized suits me well, and would suit my musical touring ambitions as well. On top of that, I've been fortunate to make all sorts of friends that have pursued software development mastery and succeeded. They've encouraged me to do it myself and their support has boosted my confidence that I can succeed in software engineering as well.
        My journey to learn this whole new set of skills in software engineering comes from a desire to be a part of building something, from a desire to better myself, and from plenty of encouragement from my support system. I look forward to each and every step of the way.
HTTP Protokolü Nedir?
Published: 2021-02-14 13:03:04

Http protokol 1990 yılından beri kullanılan evrensel bir protokoldür. Açılımı “Hyper Text Transfer Protocol” yani hiper metin transfer protokolüdür. Bu protokol istemci ile sunucu arasındaki veri alışverişinin kurallarını belirler. Daha da açacak olursa World Wide Web (www) üzerinden yapılan iletişimin kurallarını belirler.

Bu protokolün bir anotomisi vardır:
-Method: isteğin türü (GET, POST, PUT, DELETE)
-Host: İsteğin gönderilecek adres. 
-Path: Sunucu içinde izlenecek yol.
-HTTP Version: Versiyonu
-Headers*: İsteği yapan bilgisayar/ Tarayıcı bilgileri
-Query String*: Ek gönderilen parametreler
-Body*: İsteğin içerisindeki veri.

Yukarıdakiler bir istekte bulunması gereken bilgilerdir yıldızlı olanlar kesin girilmek zorunda değildir. Lakin diğerleri zorunludur. Eğer zorunlu bilgiler girilmez ise hata verecektir.
İstek Şu Şekilde Yapılır;

<a href="https://imguploads.net/image/w9XWp"><img src="https://imguploads.net/images/2021/02/14/HTTP2.png" alt="HTTP2.png" border="0" /></a>

HTTP İstek Türleri Nelerdir Peki?

Bu istek türleri ise Şu şekildedir:

<a href="https://imguploads.net/image/w97EF"><img src="https://imguploads.net/images/2021/02/14/HTTP-ISTEK-KOMUTLARI.png" alt="HTTP-ISTEK-KOMUTLARI.png" border="0" /></a>


Peki eğer gönderimize bir bilgi  eklemek istersek ne yaparız?

Bu ekleyeceğimiz bilgi kullanıcı adı – şifre veya e-posta şifre olabilir. Mesela admin panele kullanıcı adı şifre girdiğimizde sunucuya giden istek şu şekildedir.

<a href="https://imguploads.net/image/w9m9l"><img src="https://imguploads.net/images/2021/02/14/admin2.png" alt="admin2.png" border="0" /></a>

Peki sunucu bu isteği nasıl algılıyor? 
   
 İşte burada HTTP gibi evrensel bir protokole neden ihtiyaç duyulduğu ortaya çıkıyor. Şöyle ki: Bütün bilgisayarlardan yani istemcilerden istek tek bir şekilde atıldığı için sunuculara bu istekleri okuyan bir sistem entegre ediliyor. Bu şekilde olunca herhangi bir karışıklığa mahal vermemiş oluyoruz.

HTTP ile HTTPS arasındaki fark nedir?

HTTP güvenli değildir. ----  HTTPS ise güvenli bir protokoldür.
HTTP, TCP- bağlantı noktası 80’i kullanır. ---- HTTPS TCP bağlantı noktası 4,433’i kullanır.
HTTP, uygulama katmanı içinde çalışır. ---- HTTPS, Taşıma Katmanı Güvenliği (TLS) içinde çalışır.
HTTP için SSL sertifikası gerekmez. ----  HTTPS, bir SSL sertifikasının bir sertifika yetkilisi (CA) tarafından imzalanmasını ve uygulanmasını gerektirir.
HTTP de veri şifreleme yoktur. ---- veriler iletimden hemen önce HTTPS için şifrelenir.
Build SPA's fast in Laravel
Tags: laravel, javascript, webdev
Published: 2021-02-14 12:30:06

# Sorry what?😒
Calm down. I'll explain myself. 
What I'm trying to tell you is an opinionated way to build an SPA with a PHP Laravel backend; Supposedly very fast.

# Laravel SPAs
Norms... This means a Laravel API Connected to a React, Vue, Svelte or whatever frontend. Maybe Sanctum to handle your API's. Pusher and Echo, and many other bla blas...🤔
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/qzc1oqad6npgbubeb000.png)

# So what?🤨
Well let's roll that back. Shall we? ⏪
Let's Drop the API part, so we have Laravel and [InertiaJs](https://inertiajs.com) with React, Vue or any other of your choice.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/nanwv3ndp7wfxolpyehr.png)

# Hmm😳
Now Tush up your SPA Authentication with everything Fortify has to offer by using [Fortify UI](https://github.com/zacksmash/fortify-ui). 
Fortify gives you the prebuilt authentication pages in all their raw glory. No styling and confusion. 
All you have to do is follow it's lead. Create your components, and post your forms to the same routes used in FOrtify UI's views.

Happy Coding!
Azure DP-900 Short Notes: Explore roles and responsibilities in the world  of data
Tags: azure, cloud, dp900, certification
Published: 2021-02-14 12:18:59

👉Learn Module: [Explore roles and responsibilities in the world of data](https://docs.microsoft.com/en-us/learn/modules/explore-roles-responsibilities-world-of-data/)

👉In real world, there are different roles in managing, controlling, and using data. 

👉The three most common roles are 

- Azure Database Administrator role = Responsible for the design, implementation, maintenance, and operational aspects of on-premises and cloud-based database.
- Data Engineer role = Collaborates with stakeholders to design and implement data-related assets that include data ingestion pipelines, cleansing and transformation activities, and data stores for analytical workloads.
- Data Analyst role =Enables businesses to maximize the value of their data assets.

👉Azure Database Administrator role

Tasks

- Backing up and restoring databases.
- Enrolling users and maintaining system security.
- Installing and upgrading the database server and application tools.

Tools

- Azure Data Studio
- SQL Server Management Studio
- Azure portal

👉Data Engineer role

Tasks

- Data acquisition.
- Using programming languages and tools to examine the data.
- Aligning the data architecture with business requirements.

Tools

- Relational database management system(Ex: SSMS)
- Azure Databricks
- Azure HDInsight
- Azure Cosmos DB

👉Data Analyst role

Tasks

- Making large or complex data more accessible, understandable, and usable.
- Creating charts and graphs, histograms, geographical maps.
- Combining the data result sets across multiple sources.
- Finding hidden patterns using data.

Tools

- MS-Excel
- Power BI
CompileSwift Podcast - Season 2 Episode 12
Published: 2021-02-15 06:28:09

---
title: CompileSwift Podcast - Season 2 Episode 12
published: true
date: 2021-02-14 12:00:00 UTC
tags: 
canonical_url: https://compileswift.com
---

[You can play the episode here](https://anchor.fm/compileswift/embed/episodes/App-Now--Platform-Later-eqcbkf)

## Show Notes

Over recent years there has been a growing trend of platform convergence, especially if you are an Apple developer. We now have to allow for our users and customers running our iOS applications on a Mac, for example.

This means we have to change the way we approach application design and development, we now have to focus on the app independant of platform.

Later in the process we then account of changes that are needed to make a particular platform more accepting of our applications and features.

A few thoughts on the subject in this episode of the CompileSwift podcast.
What I've learnt in the past 2 years in the job and in life.
Tags: webdev, learning, wordpress
Published: 2021-02-14 11:19:37

So I've been in the industry for almost 2 years! I love coding and have done for years. 

I have learnt a lot in my time from actually developing websites in WordPress to creating a meet up for junior web develops (WebJnr).

But through all the companies I've been involved in here are some of the most of valuable lessons I have learnt;


## Always develop yourself

Web development is one of most crucial parts of any developers career progression, not in terms of money or career progression. But can help you build more beautiful and amazing websites.


## Look after #1

Your mental, physical and digital health needs to be your number one priority, it's okay not to feel good that day, but extra steps can help you feel more relaxed. I was diagnosed with Imposter Syndrome last year and had to rapidly teach myself that I am accomplishing a-lot everyday, sometimes it may not be big achievements sometimes it is only small steps.


## Don't be a YES person

This has been something I have always done. For example being asked to do a project outside of hours and expect no gratitude for doing/ completing it. I have learnt not to say yes to every little thing and make sure the job is done correctly and that is of high quality.


## Keep people who respect you close.

In the agency I work with now, I have earned respect and have made some great professional and personal relationships. Which is something I have never had before and for this, has helped my mental health and think more clearly about certain people and traits.


## BE YOURSELF

Last but not least (I could go on forever), don't pretend to be someone you're not, just be yourself. For me that's be one of the guys, having a laugh whilst producing high quality and efficient code.

#### Conclusion

Why am I writing this? I writing this because, the past 7/8 years in my life have been difficult and if one person reads this and makes a difference in their life. I feel then I have given someone comfort, understanding and strength from what I have written. 

This is something hard for me write about, but I don't need to hide anymore!
Swap pages programmatically
Tags: csharp, programming, productivity, tutorial
Published: 2021-02-14 11:02:10

Let's see how we can exchange position of two pages in a single document:

```csharp
string filePath = @"c:\sample.pptx";
string filePathOut = @"c:\output\result.pptx";

int pageNumber1 = 3;
int pageNumber2 = 6;
SwapOptions swapOptions = new SwapOptions(pageNumber2, pageNumber1);

using (Merger merger = new Merger(filePath))
{
    merger.SwapPages(swapOptions);
    merger.Save(filePathOut);
}
```
Above code works with PPTX only? No, this .NET API supports a multitude of [file formats](https://docs.groupdocs.com/merger/net/supported-document-formats/) including but not limited to:

* Word
* PDF
* Spreadsheet 

# Perks
GroupDocs.Merger for .NET could be implemented in any new or existing .NET project (MVC/Web Forms/WPF/Desktop) without any third party tool or software dependency.
Swapping 2 variables(numbers, characters, strings, booleans) without using extra variable
Tags: firstpost, programming
Published: 2021-02-14 10:58:11


## Numbers
#### Using arithmetic operation
```
        a = a + b;
        b = a - b;      // (a+b) - (b) = a
        a = a - b;      // (a+b) - (a) = b
```
#### Using binary operation
```
        a = a ^ b;
        b = a ^ b;      // (a ^ b) ^ (b) = a ^ 0 = a 
        a = a ^ b;      // (a ^ b) ^ (a) = 0 ^ b = b
```

## Characters

If characters are stored with it's ASCII value like C++, same method as numbers can be used. Else characters can be type caste to numbers.

```
        a = (char) ((int)a ^ (int)b);
        b = (char) ((int)a ^ (int)b);    
        a = (char) ((int)a ^ (int)b); 
```

## Strings

```
        a = a + b;      
        b = a.substr(0, (a.length() - b.length()));   
        a = a.substr(b.length(), a.length());
```
Space complexity = S(M + N) where M is length of a and N is length of b;

## Booleans

If both the variables are same, swapping is not required else need to toggle the values.
```
        if (a != b){
            a = true ^ a;   //toggles the value
            b = true ^ b;
        }
```
Why Software Engineering?
Published: 2021-02-14 10:32:24


Beginning a new career is never easy. You need to be determined to learn new skills and dedicated to contributing many hours to learn this new skill. 
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/k3uuii9ummxr0ao6v8ae.jpg)

My next career move, I wanted it to be something I enjoyed doing. I had no idea what it was that I wanted to do. I was working full-time and going to school, but I wanted something different, I wanted to be challenged. I was going to the University of Nevada, Las Vegas and needed one more year to finish and get my degree in Business Administration, Information Management but that did not stop me from taking this leap in faith. 

While I was attending UNLV, I had a course on JAVA. I was so intrigued and interested. That's the first time, I decided that my end goal would be a career in the coding industry. Before that, I had never had any experience with coding, but it was a game changer. 

I kept going to school because I thought that was the right path to get to where I wanted to get but I quickly realized that there were other, better methods to get there. 

One day I was scrolling through TikTok, an online app, and I saw a video of this girl talking about Flatiron School. She had no previous experience and within five months she knew enough to start a new career. It was then, when I had to make the decision between attending the new school or staying in the same one. 

I was a hard decision, but after going back and forth with myself for days, I finally decided to leave UNLV and attend Flatiron School. It has been two weeks now, and it's been intense, but I always remind myself that today I know more than I did when I started. I'm excited to keep learning more, to the finish line! 
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/hg9r90yjlbaogdkg0uhk.jpg)
First Mile Blog Post
Published: 2021-02-14 10:16:56

My name is Abner Cabrera and I've just completed the first two weeks of online software engineering classes at Flatiron. For a second there, I didn't think I was going to make it, but I'm still here. It was a challenging few days but it was well worth it. The reason I began taking these classes was to continue what I started when I was in college. My first year of college was at SUNYIT twelve years ago where I majored in computer engineering. I wanted to major in it because of how I was as young kid. In third grade I decided that I when I grew up I wanted to be a detective because I loved solving puzzles. As I grew older, I picked up a guitar and started learning and composing songs of my own. I came to realize that solving puzzles and learning and composing music are skills that can help in computer code, which is why I decided to study it in college. However, certain complications came up during my academic career that resulted in me switching majors and never completing that degree in computer engineering. Instead, I ended up graduating with a degree in romance languages and started my career in translation. Unfortunately, my job is very tedious since I'm limited to only translating from one language to another. I took this time while I was home during the pandemic to try to teach myself code again, but it was difficult on my own. Then I found out about the online software engineering Flatiron program and decided to enroll. I wanted to get back to how I started my academic career so that when I graduate, I can switch careers to  get a job that's exciting and fun to do.
Perl modules with their own web sites
Tags: perl, github, web
Published: 2021-02-14 09:52:52

---
title: Perl modules with their own web sites
published: true
description: Having a more personalized web site for your Perl module could give it a boost of usage and a better way to share some information.
tags: Perl, GitHub, web
cover_image: https://media-cdn.tripadvisor.com/media/photo-s/12/c6/a6/fd/khongor-sand-dunes-with.jpg
---

Some Perl libraries (or frameworks if you wish) have their own web sites asides from [Meta::CPAN](https://metacpan.org/) that allow customization and more "personalization".

For example:

* [Perl Dancer](https://perldancer.org/)
* [Mojolicous](https://mojolicious.org/)
* [Catalyst](http://www.catalystframework.org/)
* [perlbrew](https://perlbrew.pl/)
* [cpanm](http://cpanmin.us/)
* [Plack](https://plackperl.org/)
* [Perl::Critic](http://perlcritic.com/)
* [App::TimmeTracker](http://timetracker.plix.at/)
* [Rexify](https://www.rexify.org/)
* [PDL](http://pdl.perl.org/)
* [wxPerl](http://www.wxperl.it/)
* [Pherkin a.k.a. Test::BDD::Cucumber ](https://pherkin.pm/)
* [Padre](http://padre.perlide.org/)

It is very easy to create a static web site free of charge on GitHub pages, but I could understand if people were reluctant to promote a URL that is based on a commercial service.

On the other hand they might not want to spend 10-20 USD/year on a domain name.

It might be interesting if they could get a subdomain name under [perl.org](https://www.perl.org/) or maybe [metacpan.org](https://metacpan.org/) that would be set up to DNS resolve to the GitHub pages IP address or to some other similar service.
Laravel Livewire Click Event Example
Tags: laravel, livewire, example, event
Published: 2021-02-14 09:32:06

In this post we learn laravel livewire click event example. I explained simply step by step to  laravel livewire wire:click example. This article goes in detailed on laravel livewire click not working. iIwould like to share with you laravel livewire click.

Laravel Livewire Click Event Example
Step 1: Install Laravel

composer create-project --prefer-dist laravel/laravel blog
Step 2: Install Livewire

composer require livewire/livewire
Step 3: Create Component

php artisan make:livewire clickEvent
Read more:https://web-tuts.com/laravel-livewire-click-event-example/
The “Tell, don’t ask” principle
Tags: designprinciples, telldontask
Published: 2021-02-14 10:53:59

---
title: The “Tell, don’t ask” principle
published: true
date: 2021-02-14 09:30:00 UTC
tags: DesignPrinciples,telldontask
canonical_url: https://le0nidas.gr/2021/02/14/the-tell-dont-ask-principle/
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/fnrgez44s92e4va4n7f5.png
---

This is one of my favorite principles because it is easy to spot when violated and because it helps in having proper API surfaces when applied.

#### Tell, don’t ask

In essence this principle proposes that instead of _asking_ from an instance for its values in order to decide how the **same instance** will execute something, just _tell_ the instance to execute it. It knows its own state, it can make its own decisions!

##### Asking

By _asking_ we actually refer to accessing many of a class’s properties. For example:

{% gist https://gist.github.com/le0nidas/24048dea0578f0f536a4fe88e0ca5cea %}

in the code above we _ask_ the task to provide the values of three of its properties in order to decide if we are going to close it or not.   
In the process we (a) might had to expose those properties just for this code (creation date and subscribers could be private) and (b) inevitably leaked business logic that involves a task (when a task is eligible for closing).

##### Telling

Lets change the code in order to _tell_ the task to close itself if possible:

{% gist https://gist.github.com/le0nidas/9f802e631a63a410be6c9ad602d28067 %}

There are two things that we gain from this change:

1. we moved the “closing” logic in the `Task` itself which allows us to contain future logic alterations in just one place.
2. the class’s API exposes only the necessary helping us to avoid accidental couplings.