teleren/devto huggingface dataset:
3.0.0-alpha.0
Tags: opensource
Published: 2022-04-09 02:30:20

This release went quite smooth and FAST thanks to the recent docker changes, now we're pulling docker images instead of building them.

## Improve parser's e2e test:
The problem was I loaded real feeds into the `feedQueue` and made it download real resource through network requests. This approach wasn't correct and prone to random failures. David suggested me using the resources from [`test-web-content`](https://github.com/Seneca-CDOT/telescope/tree/master/src/web/test-web-content). Looking back, I think I need to create another `xml` feed, these feeds below are duplicate. [PR #3773](https://github.com/Seneca-CDOT/telescope/pull/3373)

```js
const valid = [
      {
        author: 'Tue Nguyen',
        url: 'http://localhost:8888/feed.xml',
      },
      {
        author: 'Antonio Bennett',
        url: 'http://localhost:8888/feed.xml',
      },
    ];
```

And for invalid feeds I just gave the queue non-existent feed urls

```js
const invalid = [
      {
        author: 'John Doe',
        url: 'https://johnhasinvalidfeed.com/feed',
      },
      {
        author: 'Jane Doe',
        url: 'https://janehasinvalidfeed.com/feed',
      },
    ];
```

## Change parser to pull feeds from Supabase:
I added `SUPABASE_URL` & `ANON_KEY` to `parser` container for it to connect to the database and wrote a function that returns all feeds. [PR #3363](https://github.com/Seneca-CDOT/telescope/pull/3363)
 
```js
  async getAllFeeds() {
    const { data: feeds, error } = await supabase.from('feeds').select('wiki_author_name, url');
    if (error) {
      logger.warn({ error });
      throw Error(error.message, "can't fetch feeds from supabase");
    }
    const formattedFeeds = feeds.map((feed) => ({
      author: feed.wiki_author_name,
      url: feed.url,
    }));
    return formattedFeeds;
  },
```

Some pieces of the tests had to be modified and `wiki parsing` code was removed.

## Remove src/backend:
[This one](https://github.com/Seneca-CDOT/telescope/pull/3413) is huge but at least I didn't have to write new code 😅. Most of the work was to determine which part of the legacy `backend` was still used by other services. Jerry helped me a lot with this PR, we went through files and found that `API_URL` was still passed to services though, it had only one use in [`/src/web/app/src/pages/_document.tsx`](https://github.com/Seneca-CDOT/telescope/blob/21bd9aafdc05c06ba2291bac2aba17e1659b288f/src/web/app/src/pages/_document.tsx#L36). 
The PR does work but there's still work to be done and tested.

## What I've learned doing reviews or looking at other PRs 😛:
- SWR react hook from [PR #3240](https://github.com/Seneca-CDOT/telescope/pull/3420)
- Interesting way to solve the back up issue [PR #3405](https://github.com/Seneca-CDOT/telescope/pull/3405)
- Use ORM to manage database change [PR #3418](https://github.com/Seneca-CDOT/telescope/pull/3418)
Use Fast Request to debug api in IntelliJ IDEA
Tags: java, spring, intellij, postman
Published: 2022-04-09 02:07:23

[Restful Fast Request](https://plugins.jetbrains.com/plugin/16988-restful-fast-request) is the IDEA version of Postman, it is a powerful restful api toolkit plugin which help you quickly generate url and params by exist method. Restful Fast Request = API debug tool + API manager tool + API search tool. It has a beautiful interface to compose requests, inspect server responses, store your api request and export api request.Plugin help you debug request just in IntelliJ IDEA frame.

## Features
* Postman-like user interface
* Generate url and parameters in one click
* SearchEveryWhere support
* APIs export to Postman
* Send request to debug API
* Send request and download
* Domain customization and switching
* Custom parameter parse
* String generation strategy
* Save api
* Management API
* One click navigate or run history save api to method
* Api to curl
* Built-in Json parameter editor
* Automatically associate APIs to module groups
* API navigate tree
* Headers group
* Swagger Parameter parsing support
* Automatically generate descriptions for API fields
* One click to generate API documentation
* Single class API list preview

* Api request

![Api request](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6joxgporlz6ca1fngctt.gif)

* SearchEveryWhere

![SearchEveryWhere](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zn1ddbcd1uj9xlk10rqe.png)


* Api management

![Api management](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3gvawou13b1kv91puc2y.png)

* Api navigate

![Api navigate](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ipwphw92407y7l8ydpis.png)


* Api to postman

![Api to postman](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/letr2t42x6jqealbz6qu.gif)

* Api preview

![api preview](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yinlu28y7oyjhzs4h3sn.gif)

More features please see [https://dromara.org/fast-request/en/guide/feature.html](https://dromara.org/fast-request/en/guide/feature.html)
Efficiently debug API use Fast Request in IntelliJ IDEA
Published: 2022-04-09 01:57:37

Restful Fast Request is the IDEA version of Postman, it is a powerful restful api toolkit plugin which help you quickly generate url and params by exist method. Restful Fast Request = API debug tool + API manager tool + API search tool. It has a beautiful interface to compose requests, inspect server responses, store your api request and export api request.Plugin help you debug request just in IntelliJ IDEA frame.

## Features
* Postman-like user interface
* Generate url and parameters in one click
* SearchEveryWhere support
* APIs export to Postman
* Send request to debug API
* Send request and download
* Domain customization and switching
* Custom parameter parse
* String generation strategy
* Save api
* Management API
* One click navigate or run history save api to method
* Api to curl
* Built-in Json parameter editor
* Automatically associate APIs to module groups
* API navigate tree
* Headers group
* Swagger Parameter parsing support
* Automatically generate descriptions for API fields
* One click to generate API documentation
* Single class API list preview

* Api request

![Api request](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6joxgporlz6ca1fngctt.gif)

* SearchEveryWhere

![SearchEveryWhere](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zn1ddbcd1uj9xlk10rqe.png)


* Api management

![Api management](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3gvawou13b1kv91puc2y.png)

* Api navigate

![Api navigate](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ipwphw92407y7l8ydpis.png)


* Api to postman

![Api to postman](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/letr2t42x6jqealbz6qu.gif)

* Api preview

![api preview](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yinlu28y7oyjhzs4h3sn.gif)

More features please see [https://dromara.org/fast-request/en/guide/feature.html](https://dromara.org/fast-request/en/guide/feature.html)
Code Smell 128 - Non English Coding
Tags: codenewbie, webdev, tutorial, beginners
Published: 2022-04-09 01:35:59

*Using your local language is a great idea because domain naming is easier. Not*

> TL;DR: Stick to English. Always.

# Problems

- Polymorphism

- Cultural gaps

- Mixed Code

- Syntactic Errors

# Solutions

1. Write in English

2. Rename Domain Concepts to English

# Context

All programming languages are written in English.

Unless for a few failed experiments during the 90's all modern languages use English for their primitives and their frameworks.

if you wanted to read or write in medieval Europe, you had to acquire a new language at the same time. Writing meant Latin.

This is true for programming languages nowadays.

I am not a Native English speaker.

My code (tries to be) in English.

# Sample Code

## Wrong

[Gist Url]: # (https://gist.github.com/mcsee/498a2b777034a67a6725885a20d30c15)
```javascript
const elements = new Set();

elements.add(1);
elements.add(1);

elements.size() = 1 
//This is the standard set

var moreElements = new MultiConjunto();
//We defined a multiset in Spanish
//because we are extending the domain

moreElements.agregar('hello');
moreElements.agregar('hello');
//'agregar' is the Spanish word for 'add'

moreElements.size() = 2 //Since it is a multiset

//elements and moreElements are NOT polymorphic
//I cannot exchange their implementation

```

## Right

[Gist Url]: # (https://gist.github.com/mcsee/34f1d56858e83e39ebda706a05315454)
```javascript
const elements = new Set();

elements.add(1);
elements.add(1);

elements.size() = 1 
//This is the standard set

var moreElements = new MultiSet();
//We defined a multiset in English

moreElements.add('hello');
moreElements.add('hello');

moreElements.size() = 2 //Since it is a multiset

//elements and moreElements are polymorphic
//I can exchange their implementation anytime

```

# Detection

[X] Automatic 

Most IDEs and linters have a thesaurus. 

We can search for foreign words.

# Tags

- Readability

# Conclusion

Don't mix Non-English domain words with English primitives.

Even when [Mapping](https://dev.to/mcsee/what-is-wrong-with-software-5pa) your real-world entities, use plain English.

# More Info

- [Coding Is for Everyone—as Long as You Speak English](https://www.wired.com/story/coding-is-for-everyoneas-long-as-you-speak-english/)

- [MAPPER](https://dev.to/mcsee/what-is-wrong-with-software-5pa)

# Credits

Photo by [Anna Vander Stel](https://unsplash.com/@ann_van_) on [Unsplash](https://unsplash.com/s/photos/speak)  

* * *

> A programming language is a tool that has a profound influence on our thinking habits. 

_Edsger Dijkstra_

{% post https://dev.to/mcsee/software-engineering-great-quotes-26ci %}

* * *

This article is part of the CodeSmell Series.

{% post https://dev.to/mcsee/how-to-find-the-stinky-parts-of-your-code-1dbc %}
Custom Query with Strapi V3
Published: 2022-04-09 00:46:10

Below code can be used in controller:

**`const knex = strapi.connections.default;
    const result = await knex('articles_tags__tags_articles as atta')
      .where('tag_id', 2)
      .join('articles', 'atta.article_id', 'articles.id')
      .select('articles.*')`**


[https://docs-v3.strapi.io/developer-docs/latest/development/backend-customization.html#queries](https://docs-v3.strapi.io/developer-docs/latest/development/backend-customization.html#queries)
Checking Mail Address Simply using Perl Regular Expression
Tags: perl, regex, webdev, beginners
Published: 2022-04-09 00:40:36

Let't check mail address simply using Perl regular expression.


```
if ($mail =~ /^.+\@.+$/a) {
  
}
```

This means $mail is

```
[one more ASCII]@[one more ASCII]
```

## Improvement

ASCII graphic characters are a little better.

```
/^\p{PosixGraph}+\@\p{PosixGraph}+$/
```
Running scripts on boot in Linux using systemd
Tags: beginners, linux, systemd
Published: 2022-04-09 00:12:42

## Introduction

In this article, we will configure our Linux computer to autorun a script on boot. For the purpose of this article, we will be making use of `systemd` services. 

BTW, I use Arch Linux so if there’s any difference using a different distro, do not hesitate to leave a comment, please.

![linux-when.gif](https://c.tenor.com/HxmBOrGxs8EAAAAM/linux-when.gif)

### What is systemd

systemd is a suite of basic building blocks for a Linux system. It provides a system and a service manager that runs as PID and starts the rest of the system. systemd provides aggressive parallelisation capabilities, uses sockets and D-Bus activation for starting services, keep track of processes etc.

You can read more on systemd [here](https://wiki.archlinux.org/title/Autostarting).

The main command used to introspect and control systemd is `systemctl`.

## Steps

- First, we will create a Bash script in `/usr/local/sbin`,  for instance `[notifyRemote.sh](http://notifyRemote.sh)` that would notify a remote machine once it’s booted.
- We will make the file executable by running the command:
    
    ```bash
    sudo chmod +x /usr/local/sbin/notifyRemote.sh
    ```
    
- Create a **Unit file** called `startup.service` in `/etc/systemd/system/` to define a systemd service. You would need root access (`sudo`) to make changes or create these files.
- We will make the file executable by running the command:
    
    ```bash
    sudo chmod +x /etc/systemd/system/startup.service
    ```
    
- In `/etc/systemd/system/startup.service` we would paste the below into the file as such:
    
    ```bash
    [Unit]
    Description=My Startup
    
    [Service]
    ExecStart=/usr/local/sbin/notifyRemote.sh
    
    [Install]
    WantedBy=multi.user.target
    ```
- The **ExecStart** is the most important key here because it points to the Bash program that will be run when the service is started.
    
- We can test the service by running `sudo systemctl start startup.service` to confirm that the script will run
- Now to enable services to run on boot, we will run the command
    
    ```bash
    sudo systemctl enable startup.service
    ```
    

## Conclusion

Now we should successfully create a script that runs automatically anytime we start our Linux machine.

You can consult [systemd man page](https://man7.org/linux/man-pages/man1/init.1.html) for more information.

I hope you find this helpful. Please leave a like, comment and share if you find this helpful and also you can consider [buying me a coffee](https://www.buymeacoffee.com/kayode) too.
⬆️ Upgrade GitHub cli
Tags: github, git, productivity, cli
Published: 2022-04-09 00:10:16

## ❔ About `cli/cli`

GitHub focuses more and more its users productivity and [`UX`](https://en.wikipedia.org/wiki/User_experience).

Target audience are : 

- Programmers/people making code (DEV, OPS, SECOPS, Network, DevSecOPS,..),
- Team Managers,
- SCRUM Masters,
- Product Owners,
- Security managers (see [organization-level security manager role](https://github.blog/changelog/2021-10-21-introducing-the-organization-level-security-manager-role/)),
- DEVOPS engineers,

, ... and more generally **every person how is engaged on the software creation, delivery and deployment pipeline.**

To make `userexperience` always better they have released a dedicated cli : `cli/cli/` :

{% github cli/cli %}


In addition to traditional `git` operations, you can smoothely interact on an - everyday - [growing set of GitHub features](https://cli.github.com/manual/).

## 🆙 Stay up-to-date

As any other software and as it is also maintained by an ever growing [programmers community](https://github.com/cli/cli/graphs/contributors), `cli/cli` is often [released](https://github.com/cli/cli/releases).

Hence you often have to upgrade (the cli warns you about new release availability).

Fortunately it is distributed through [`brew`](https://brew.sh/) wich makes uprgade process a real piece of cake

> ... making it possible to enjoy new features very easily.

## 🎬 Upgrade demo

To upgrade things are a easy as :

```shell
brew upgrade gh  
```

See below how to upgrade (`v2.6.0` to [`v2.7.0`](https://github.com/cli/cli/releases/tag/v2.7.0) in my case):

{% youtube 3c7vj5cuYoY %}


## 🔖 `cli/cli` Homepage

For more about that tool, just visit its homepage :

{% embed https://cli.github.com/ %}
Is blockchain a kind of linked list?
Tags: discuss, blockchain
Published: 2022-04-08 23:45:25

I am studying blockchain and cryptos for a while, and this week I was studying linked lists for my data structures college exam and then this question arose.

I found some similarities between the blockchain concept and a linked list. So, what do you think? Is blockchain a type/class/kind/derivation of a linked list? Please share your thoughts.
Crickets, or hey, I work for a FAANG now and everything is NDA
Tags: career, aws, devjournal, webdev
Published: 2022-04-08 22:54:08

The other week, I hit my six-month milestone at AWS. It's been... intense. Mostly in good ways! My team is still mainly my old startup team, plus some great new people that fit right in with us. There's always so much to learn, and most other engineers are supportive and happy to answer my noob questions. And in addition to writing code, thanks to Amazon's famous [writing culture](https://thehustle.co/02162021-amazon-writing/), I've also been writing a ton in general. The problem is, none of it is writing I can share on here.

Hence... crickets 🦗.

And I have no side project tutorials to document, because, well, that whole work-life balance thing is real and necessary and I'd rather be snowboarding than hacking away on a new project on my weekends, so that's what I've been doing.

![Snowboard on Mt. Hood](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f3h0sfwwwy0ycnqe94hr.jpg)
_Proof_

I even got my first speaking gig in over two years later this month... at an internal conference I can't share.

So I guess this is more of an explanation of my absence from this wonderful Dev community over the last nine or so months, and probably ongoing absence in the near future, until there's something I can publicly write about related to my work. Or maybe until the winter season ends and I feel like hacking together another [silly serverless abomination](https://dev.to/annaspies/i-used-cypress-as-an-xbox-web-scraper-and-i-regret-nothing-1bn4) for fun, not profit, one weekend. TBD.

So. It feels pretty silly to write a whole blog post about not being able to write blog posts, but here we are.

But because you took the time to read my silly rantings, you should at least be rewarded with a picture of my cat resting happily on her window perch. Less code, more cats: that's a promise I can keep for now.

![Cat on window bed](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iexs7k1qk3aftz5p1itk.jpg)
The Best Way to Learn to Create Apps is By Creating an App
Tags: appdev, ios, iosappdev, learntocode
Published: 2022-04-08 22:41:44

---
title: The Best Way to Learn to Create Apps is By Creating an App
published: true
date: 2022-04-08 22:34:03 UTC
tags: #appdev #iOS #iOSappdev #learntocode
canonical_url: https://blog.seancoughlin.me/the-best-way-to-learn-to-create-apps-is-by-creating-an-app
---

## My Experience

The biggest impediment to learning something new is commitment. It isn't hard to work on something for a day or a week, but can you stick it out for a month or a year? If you have that level of willpower, please DM me. I would love to pick your brain.

For the average individual finding the willpower to stick with something is hard. Distractions are everywhere, and it is often easiest to just give up. I decided I wanted to learn app development at least half a dozen times. With each effort, I would buy a class or start a YouTube tutorial. And each time, I quickly gave up.

No one was proverbially holding my hand to the fire, and on my own, I simply could not muster the willpower to learn by sitting through a class.

I finally succeeded in my attempt to learn app development by giving up on the learning part and **jumping straight into doing it**. I began working on [a simple app to calculate compound interest](https://apps.apple.com/us/app/compound-interest-solver/id1607884819). I designed a UI, mocked up an app icon, and before long I had fallen in love with my idea. I cannot claim that it was an amazing idea, but I learned a ton along the way.

## Nothing Beats Learning by Doing

If you want to create an app, I bet you have something grandiose in mind and that's great! However, if you're just starting out on your first app, I'd recommend picking a simple idea. Your first app doesn't have to be the next Uber or Airbnb. Reinventing the world is difficult!

You will learn far more by working with a simple idea than by trying and failing with your larger vision. This goes back to the old saying, walk before you can run. **Once you've developed something, then the next app will be much easier to develop.**

Another benefit of developing and shipping an app, even a simple one, is **building your portfolio**. iOS development is a lucrative profession, Glassdoor estimates the average salary for a Swift developer is [$109,000](https://www.glassdoor.com/Salaries/swift-developer-salary-SRCH_KO0,15.htm). That is a pretty good chunk of cheddar. Releasing an app will build your portfolio and give you something to market yourself with as you hunt for jobs.

Finally, by building an app you'll learn **if you actually enjoy the experience**. Perhaps you will discover another opportunity along the way that is a better fit. _The only way to truly know is by trying your hand at the process._
Job Freelancer e algumas dificuldades
Tags: freelance, beginners, devjournal
Published: 2022-04-08 22:29:59



Fala Dev's , beleza?
Atualizando um pouco sobre a trajetória, essa semana surgiu um trabalho de freelancer, a responsável da empresa me chamou no WhatsApp e me falou o que ela estava precisando, ela precisava de uma landing page e que fizesse uma configuraçã "simples" no seu Gmail do Google Workspace, até ai tudo certo, passei o valor do serviço e mandei um "esboço" de como ficaria o site que iria fazer, ela gostou e fechamos o serviço. 
Passei por algumas dificuldades na hora de implementar o dominio comprado pelo Google Domains, não estava conseguindo passar o DNS que o Netlify estava me passando, após algumas pesquisas e tutoriais assistidos, consegui resolver. Após isso fui para a configuração do Gmail,nunca havia tido contato com Google Workspace, entrei no Workspace e não entendi nada hahaha, li alguns artigos e entendi por alto como funcionava a plataforma, e realizei a configuração necessária da forma correta.
Após essa experiência percebi que quando me interreso por algo,me esforço e quero aprender, eu realmente aprendo e aprendo bem. Fiquei mais confiante e otimista diante desses meses de estudos e nenhuma oportunidade de ingressar no mercado que estavam me desanimando aos poucos. Mas vou continuar e agora mais embalado e confiante.

Abs,
Technical SEO Optimization Tips For Websites 2022
Tags: wordpress, seo, web3, technicalseo
Published: 2022-04-08 22:14:00

Are you wondering why your helpful, relevant, and valuable content isn’t ranking well? If you haven’t performed **technical SEO optimization for your website**, you will continue to struggle. Technical SEO deals with the infrastructure of your website.

In summary, there are 7 basic steps to technical SEO optimization of your site if you want to realize good, organic search results in Google’s search engine.

- Conducting an on-site audit.
- Boosting server response times.
- Ensure mobile compatibility.
- Optimizing your robot’s text file.
- Using a focused and targeted URL structure.
- Structuring internal links effectively.
- Pruning and maintaining broken links and pages.

When SEO optimization is done properly, you’re helping the search engines crawl, access, index, and interpret your site easily. From speeding up your website to maintaining error-free coding, these strategies not only impress Google but also satisfy user expectations.

The strategies that follow are not exhaustive. A whole area of content optimization and page structure also exists. Here, we are only concerned with the fundamentals.

**[more articles](https://www.google.com/url?q=https%3A%2F%2Fwww.faluzes.me%2Ftechnical-seo-optimization-tips-for-websites-2022%2F&sa=D&sntz=1&usg=AOvVaw0jaYU-VoYf-kNtHUYhS3GV)**