teleren/devto huggingface dataset:
What keyboard are you using?
Tags: discuss, webdev, programming, productivity
Published: 2022-06-01 20:18:57

Hey guys! I'm using MacBook and I'm wondering if there is any cool external keyboard you'll suggest to use that works amazing with MacBook and sounds amazing when you type. I've never had any "fancy" keyboard before, so you can suggest anything you can think of. It'd be awesome if you can explain why you love specific keyboard just to know about the difference between other keyboards.

P.S. I love type fast and listen how I type
Conference Anxiety
Published: 2022-06-01 20:08:19

I'm at Render ATL conference and am having a lot of conference anxiety. I think these events are an amazing opportunity irregardless of who you are. So how do you make the best out of a situation that you're having a hard time engaging in?

Well, I don't have the silver bullet. But what I can do is tell you what I've done until this point. 

## Step 1 Smile

Whoa, that's a pretty creepy suggestion. Well, remember you're having a good time even if it's scary. So, take a moment breathe, relax your shoulders, and smile. 

I'm feeling better, but I'm still sitting in the corner and as each person walks by with darting glances it feels like rejection after rejection. 

## Step 2 Meet 1 person

I feel bad sometimes when I go meet people. My anxiety lets me know that I'm an exhausting person to be around. So I feel like I'm cornering those I'm trying to hang out with. 

Whelp, that went well, had a good conversation about Wordpress and the plugin ecosystem. But dang, I feel bad after that. I'm sure it's but a blip on the radar for him but I'm in a bad place.

## Step 3 Calm down

Alright, it's spiraling time. So next is go for a walk. I walked down the street to go get a coffee. Great move, delicious iced coffee in the Georgia heat. 

## Step 4 Reengage...

Alright, I'm back. I went inside realized I'm not back. Okay I went outside and made a [tiktok](https://www.tiktok.com/t/ZTd7oXRC1/?k=1). Feelin' better.

## Step 5 Aimlessly walk around

Walk around making eye contact with folks and not engaging.

## Step 6 Go to a workshop

Sit at a computer, tweet storm,
* [tweet 1](https://twitter.com/schusterbraun/status/1532068055357894656?s=20&t=LXnm7Cccl1mNMUMATMOkvQ)
* [tweet 2](https://twitter.com/schusterbraun/status/1532076859189784577?s=20&t=LXnm7Cccl1mNMUMATMOkvQ)
* [tweet 3](https://twitter.com/schusterbraun/status/1532077398090739712?s=20&t=LXnm7Cccl1mNMUMATMOkvQ)
* [tweet 4](https://twitter.com/schusterbraun/status/1532077777960062976?s=20&t=LXnm7Cccl1mNMUMATMOkvQ)
* [tweet 5](https://twitter.com/schusterbraun/status/1532080064023736323?s=20&t=LXnm7Cccl1mNMUMATMOkvQ)

and write a blog post...


Hopefully this helps you to reengage as a human being as well.
Welcome Thread - v176
Tags: welcome
Published: 2022-06-01 20:07:29

---
title: Welcome Thread - v176
published: true
description: Welcome to DEV! A thread of hellos and intros.
tags: welcome
canonical_url: 
---

![a cute little cartoon jello character waving with the words "Just saying jello"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9zfqka9p3ujsbi5dfbfu.gif)

### Welcome to DEV!

1. Leave a comment below to introduce yourself! You can talk about what brought you here, what you're learning, or just a fun fact about yourself.

2. Reply to someone's comment, either with a question or just a hello. 👋 

**Great to have you in the community!**
My machine learning pet-project. Part 1
Tags: machinelearning, imagerecognition
Published: 2022-06-01 20:06:13

---
title: My machine learning pet-project. Part 1
published: true
description: 
tags: machinelearning, imagerecognition
---
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kmw9kas1t1rxha106p7p.jpeg)

Machine learning has sneaked into our lives. Every night I tell Alexa "turn the lights off". Every day my phone successfully performs face recognition before I pay with it. Given the tremendous improvement of this field I decided to find out how hard nowadays it is for an ordinary frontend engineer to apply machine learning for some task.

A long, long ago my friend and me used to share photos of what we had eaten during the day. We tried to eat less and make healthier food choices. So I decided to try to make something (a website? some bot? to be refined later), which helps the user to tweet about his recent food choices. Show it the food photos and it creates a tweet code with suitable emojis which you can share. Thanks to Wordle for the inspiration :)

Of course, being a former researcher the first thing I did was to google what other people have done about food recognition. The most interesting article I found so far is [here](https://medium.com/smileinnovation/capturing-your-dinner-a-deep-learning-story-bf8f8b65f26f)

I decided to kind of repeat the author's way, but give it a bit of my own tweak. E.g. most probably I'll use 3 labels: pastry, salad and soup. 

[Next post](https://dev.to/whatever/my-machine-learning-pet-project-part-2-preparing-my-dataset-4kee) is going to be about how I started to gather the dataset for my project.
20-line DSL in typescript or js without a library
Tags: javascript, typescript, dsl, lisp
Published: 2022-06-01 19:55:29

It's insanely easy. Here's a small lisp-like example:

```ts
const s = Symbol
const keywords = [s('add'), s('sub'), s('if'), s('less')] as const
type Keyword = (typeof keywords)[number]
const [add, sub, if_, less] = keywords

const funcs = {
    [add]: (a, b) => valuate(a) + valuate(b),
    [sub]: (a, b) => valuate(a) - valuate(b),
    [if_]: (cond, a, b) => valuate(cond) ? valuate(a) : valuate(b),
    [less]: (a, b) => valuate(a) < valuate(b),
} as const

type Expression = boolean | number | symbol | [Keyword, ...Expression[]]

function valuate(expr: Expression): any {
    if (Array.isArray(expr)) {
        const args = expr.slice(1).map(valuate)
        // @ts-expect-error
        return funcs[expr[0]](...args)
    }
    return expr
}

const expr1: Expression = [add, [sub, [if_, [less, 1, 2], 3, 4], 5], 6]
console.log(valuate(expr1))
// (3 - 5) + 6 == 4
```

If you want full type checking on your DSL, it's just a bit more typing to define the recursive structure. (e.g. `type Add = [add, NumberExpr, NumberExpr`) Unfortunately, you'll probably have to use strings or singleton classes for your keywords because typescript doesn't support symbol literals.

And if you want array types, infix notation, and other nice-to-haves, you're probably better off using a library like [angu](https://github.com/jsdw/angu)
The one pip config you need to have
Tags: python
Published: 2022-06-01 19:55:07

---
canonical_url: https://waylonwalker.com/til/pip-require-virtualenv/

published: true
tags:
- python
title: The one pip config you need to have
---

Whenever you are installing python packages, you should always use a virtual environment.  pip makes this easy to follow by adding some configuration to pip.

## require-virtualenv

Pip is the pacakage tool for python.  It installs third-party packages and is configurable.  One of the configuration settings that I highly reccommend everyone to add is `require-virtualenv`.  This will stop pip from installing any packages if you have not activated a virtualenv.

## why

python packages often require many different dependencies, sometimes packages are up to date and sometimes they require different versions of dependencies. If you install everything in one environment its easy to end up with version conflict issues that are really hard to resolve, especially since your system environment cannot easily be restarted.

## PIPX my one exception

My one exception that I put in my system level packages is `pipx`.  `pipx` is very handy as it manages virtual environments for you and is intended for command line utilities that would end up in your system env or require you to manually manage virtual environments without it.

## pip config

Your pip config might be found in either `~/.pip/pip.conf` or
`~/.config/pip/pip.conf`.  You can either use the `pip config set` command or
edit one of these files manually.

```bash
pip config set global.require-virtualenv True
```

Now you sould see this in your `~/.config/pip/pip.conf`

``` toml
[global] require-virtualenv = True
```

## pip config debug

If you want to know where pip is looking for configuration on your system, and what files are setting a certain config you can use `pip config debug` to find it.

``` bash
❯ pip config debug

env_var: env: global:
  /etc/xdg/xdg-awesome/pip/pip.conf, exists: False
  /etc/xdg/pip/pip.conf, exists: False
  /etc/pip.conf, exists: False
site:
  /home/waylon/git/waylonwalker.com/.venv/pip.conf, exists: False
user:
  /home/waylon/.pip/pip.conf, exists: False
  /home/waylon/.config/pip/pip.conf, exists: True
    global.require-virtualenv: True
```

## saved my bacon

This setting recently saved me when I modified my `.envrc` file my virtual environment deactivated, so when I went to pip install something it gave me an error that it was not active.  Situations like this are an easy way to pollute your system with packages that it does not need installed.

![pip-require-virtualenv-direnv-error](https://screenshots.waylonwalker.com/pip-require-virtualenv-direnv-error.webp)

## TLDR

Run this at your command line to avoid polluting your system environment by mistake before running any pip command.

```bash
pip config set global.require-virtualenv True
```
Rails Basic Flow
Tags: rails, beginners
Published: 2022-06-01 19:10:26

Workflow for basic Ruby on Rails app:

A. Establish model relations and associations

B. Create models, migrations, associations, validations

```
rails g model Cheese name price:integer
```

this command will also make the create_cheeses migration table
name is defaulted as a string

```
belongs_to :cheese
has_many :stores, through: :cheeses, dependent: :destroy
validates :name, presence: true, uniqueness: true
```

syntax for associations and validations, both are done in the model.rb files

then run

```
rails db:migrate db:seed
```

There's also db:seed:replant to refresh your database seeds

C. Routes

```
resources :cheeses, only: [:index, :show, :create, :update, :destroy]
```
syntax for using resource routes and only with the conventional names for the 5 CRUD functions. Note that only wouldn't technically be used here because it's including all of them.

D. CRUD

Now write the 5 CRUD functions:.
:index and :create don't need ID, all other 3 will need syntax like this: 

```
Cheese.find(params[:id])
```

.find will throw ActiveRecord::RecordNotFound, and using create! and update! will throw ActiveRecord::RecordInvalid, so we can rescue from those throws like this:

```
rescue_from ActiveRecord::RecordNotFound, with: :render_not_found_response
```

the :render_not_found_response function should be in the private section of the model, along with a wrapper for the 'find-by-id' code, as well as strong params:

```
params.permit(:name, :price)
```

which I will be using for :create and :update functions to make sure I get the proper data for the object. 

remember to use these statuses:

```
status: :created, :not_found, :unprocessable_entity
```
Why Every Programmer Should Learn Python in Their Careers
Tags: python
Published: 2022-06-01 19:49:03

Daniel Ngwasi 
Follow
Github [](https://github.com/dan3266****)
SoloLearn[](https://www.sololearn.com/profile/16988141)

Why Every Programmer Should Learn Python in Their Careers
Learning Python brings you numerous benefits in your long programming career

Photo by Chris Ried on Unsplash, edited with Canva
Programmers work with various software development projects that use different programming languages. Programmers who work with large-scale enterprise systems often work with languages like Java, C#, and JavaScript. Nowadays, modern software development teams tend to use simple but efficient languages like Go for developing enterprise-level app services.

Python was initially started as a successor for the ABC programming language. According to the LaTeX-based early Python documentation (1991), the goal of Python was to offer a better programming language for scripting by filling the gap between C and traditional Shell scripting languages. The issue is that you can’t access C-based operating system APIs natively in Bash. On the other hand, writing Shell scripts in C is indeed more time-consuming than Bash.

Python became one of the most popular languages because of the simple syntax, full-featured standard library, rich open-source library ecosystem, and advanced frameworks. New features like type hints and impressive open-source libraries/frameworks make Python suitable for enterprise apps.

Learning Python brings you remarkable benefits similar to C/C++, JavaScript, and Go. Let’s discuss why Python is so important for everyone.
What's your best advice for a developer who keeps switching companies?
Tags: discuss, career, programming
Published: 2022-06-01 19:21:29

Hi everyone ,
I'm a 4 years experienced software developer and it's My 4th company in my career. 
And now I'm switching to another company with good salary hike. 
Is this normal to keep switching the companies ?

Any great advices ?? 
TIA ❤️
🚀 Taskade Updates: Calendar Drag & Drop, Search Filters, Browse Templates, and More!
Tags: startup, productivity
Published: 2022-06-01 19:15:06

Hi Taskaders  🎉

We've worked hard to make Taskade work better for you! Here's what's new:

Contents [[hide](https://www.taskade.com/blog/calendar-search-templates/#)]

-   [⚡️Calendar Drag & Drop](https://www.taskade.com/blog/calendar-search-templates/#Calendar_Drag_Drop)
-   [⚡️ Search Filters](https://www.taskade.com/blog/calendar-search-templates/#_Search_Filters)
-   [⚡️ Browse Templates](https://www.taskade.com/blog/calendar-search-templates/#_Browse_Templates)
-   [🎉 Other Improvements](https://www.taskade.com/blog/calendar-search-templates/#_Other_Improvements)

⚡️Calendar Drag & Drop
----------------------

You can now drag and drop calendar items to change task deadlines and ranges across all your projects and workspaces. [Learn more](https://help.taskade.com/hc/en-us/articles/360033427114--Taskade-Calendar).

![taskade calendar](https://www.taskade.com/blog/wp-content/uploads/2022/05/taskade-calendar-1024x735.png)

taskade calendar

⚡️ Search Filters
-----------------

Filter search results by projects, tasks, and comments. Find what you are looking for across all your projects, folders, and workspaces. [Learn more](https://help.taskade.com/hc/en-us/articles/360026686453--Search).

![taskade search](https://www.taskade.com/blog/wp-content/uploads/2022/05/taskade-search-1024x735.png)

taskade search

⚡️ Browse Templates
-------------------

Select the perfect template for your next project in the [new project](https://www.taskade.com/new) sidebar. Browse and search over 300 pre-made templates instantly. 

![taskade templates](https://www.taskade.com/blog/wp-content/uploads/2022/05/taskade-templates-1024x735.png)

taskade templates

🎉 Other Improvements
---------------------

-   [Taskade for Desktop](https://www.taskade.com/downloads) v4.2.2 Update: 
    -   Screen sharing during video chat fixed
    -   Open a new tab with CMD + Left-click (Mac)
    -   General performance improvements and bug fixes
-   [Taskade for Mobile](https://www.taskade.com/downloads) v3.3.30 Update:
    -   Fixed My Tasks and task dates being out of sync
    -   Fixed due dates automatically and incorrectly adding time
    -   Shared projects are now displayed for iPads and tablets
    -   Bug fixes and performance improvements
-   New: Assignment menu for faster task and project assignment
-   New: Added options for timer & reactions to /slash command
-   Workspace admins can edit project settings regardless of project role
-   Improved My Tasks and Calendar display of tasks
-   Download Apps sidebar menu is now closeable
-   Bug fixes and performance improvements

| Thanks again for supporting Taskade, and as always, don't hesitate to [reach out](https://www.taskade.com/contact) or visit our [help center](https://help.taskade.com/) if you need help. We're here for you! 😊

--- Team Taskade 🐑

P.S. Want to help us improve Taskade? You can also [suggest a feature](https://www.taskade.com/feedback). |
I am interested.. What is your passion?
Tags: discuss, sideprojects, passion
Published: 2022-06-01 19:10:07

Hello world,

Yesterday, I spent some time watching an animation series and I recalled my passion for creation. Some time ago, not very recently I had an ambition to develop some creative art skills. It didn’t really get anywhere, but I felt it was really close to me.

I spend the time with passion and joy. I was creating 3D models and simple animations. I really loved it!

You can check my incredible projects here ( a little bit of sarcasm ) :

[Artstation](https://www.artstation.com/drowsa)

I am interested.. What is your passion? I am not talking about side hustle or side coding projects. I am talking about something that inspires your imagination. What would you do if you had the chance to make a shift and just follow some side ambition?

**Feel free to share a link!**
Interested in high performance programming on the LLVM? There's a new community for you.
Tags: forem, julialang, llvm, opensource
Published: 2022-06-01 19:01:41

The common theme across our recent Forem highlights is that DEV can serve as a really effective town hall — and we are always seeking to separate signal from noise and make DEV a high-quality destination for all developers. While DEV delivers breadth, we never intended for it to provide the depth in every subject that is so often needed for specialists.

**That's why I'm excited to share that there's a new Forem on the block that's dedicated to providing that necessary depth for the subject of Julia: a general-purpose but highly-dynamic programming language. Meet the [Julia Language Community](https://forem.julialang.org/)**. 

If you are interested in keeping up with this really fascinating coding environment, I highly recommend checking this space out.

{% embed https://forem.julialang.org/logankilpatrick/the-julia-forem-what-it-is-why-we-made-one-and-how-to-use-it-52e5 %}

{% embed https://twitter.com/JuliaLanguage/status/1531983048656445440 %}

[forem.julialang.org](https://forem.julialang.org) is administered by the official Julia core team members, so the ultimate goal is all about the needs of the Julia community and language itself. If you are curious about Julia, I recommend diving in right away.

***

_One last thing. You’ll notice **"Sign up with Forem"** as an option on these Forems. This is a service we now offer to most seamlessly navigate the ecosystem and manage your identity. We want you to be able to **bring your full self without having to bring your full data**, so making this distributed ecosystem as straightforward as possible in the long run is really important. Create a [Forem account](https://account.forem.com/) and connect it with your DEV account [via your settings](https://dev.to/settings)._ 🙂
How to convert a PEM file to PPK format
Tags: aws, linux, tutorial, cloud
Published: 2022-06-01 18:57:20

If you are using AWS EC2 instances with Linux OS, then you will always generate the access keys in a **PEM** (Privacy Enhanced Mail) format.

If you are using PuTTY to connect EC2 instances then it asks for **PPK** format, in this case you have convert your PEM file into PPK format. 

You have to follow following steps to convert PEM format to PPK format using PuTTYGen:

1. Download PuTTYGen from [puttygen.com](https://www.puttygen.com/)
2. Open PuTTYGen and click the Load button
3. Set the filetype to *.* so the AWS PEM file is visible
4. Select your PEM file and PuTTYGen will import it
5. Click Save Private Key and PuTTYGen will convert the PEM to a PPK file


![Generate PPK file](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/joanz6pxxto9a6h4nf6g.png)



## How to Connect EC2 from PuTTY

1. You have to enter your EC2 Hostname or IP Address and in host Textbox
2. Go To SSH sidebar menu and upload your PPK file
3. It will open Terminal Window and authenticate your certificate and Machine
4. Once you Authentication done then you can enter your username: **ubuntu** is default username for EC2 instance


![Hostname / IP in Putty](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/551erdtmtke80cmu8yc1.png)


![Upload PPK file](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/god238ralt1aghslvc4e.png)



## Conclusion
PEM to PPK conversion is one of the most important activity if you are using EC2 instance.

If you liked the solution, please hit the Clap button or comment if you have any suggestion or feedback.
Earn a Microsoft Azure Certification for FREE !!!
Tags: azure, cloud, cloudskills, webdev
Published: 2022-06-01 18:30:01

## _Overview:_
With the introduction of new technologies on a daily basis, cloud computing is one of the modern technologies that is growing fast. Cloud computing is one of the bigger industries that generate billions of dollars in revenue every year with hundreds and thousands of job opportunities. Many big names are offering unique cloud services to many customers all over the world, such as **"Amazon Web Services (AWS), Google Cloud Platform (GCP), Oracle Cloud, IBM Cloud, Rackspace, and Microsoft Azure"** — with 29% application workload of the overall cloud market.

Microsoft Azure, often referred to as Azure is a cloud computing service operated by Microsoft for application management via Microsoft-managed data centers. Azure is currently one of the leading public cloud service providers out there in the market.

It provides a range of cloud services, including compute, analytics, storage and networking. Users can pick and choose from these services to develop and scale new applications, or run existing applications in the public cloud.

To pursue a career in cloud computing, all major cloud services providers offer career paths and certifications, but Microsoft Azure is a single cloud service provider that offers role-based certifications that are specifically designed according to the market requirements and the job roles. Due to the large adoption of Microsoft Azure cloud services, Microsoft Azure certified professionals are in high demand for developing cloud applications and managing cloud infrastructures. Therefore from a developer perspective, gaining skills in cloud computing & specifically Azure is a win-win anytime.

## _Path:_
Certifications normally come with a price. But still, Microsoft has provided ways & means for developers to acquire the certification completely free of cost. There are various paths using which one can easily bag a free certification for Azure. Today I would be talking about one of them.

## _Microsoft Events:_
Microsoft has various global events [Microsoft events](https://www.microsoft.com/en-us/events) of which there are **2 events** that are major & takes place annually:

- Microsoft Build
- Microsoft Ignite

Like every year, **"Microsoft Build 2022"** comes again which such an opportunity where if you register yourself for the event (24-25-26 May) & signup for the **"Microsoft Build Cloud Skills Challenge 2022"**, you can earn a free certification for yourself.

Registration Link: 
[Microsoft Build Cloud Skills Challenge | May 2022](https://www.microsoft.com/en-us/cloudskillschallenge/build/registration/2022)

**Hurry up !!! grab the opportunity before the clock ticks out** ⏱🔥