teleren/devto huggingface dataset:
-5 FORM Visual Elements Graphic Design
Tags: design, computerscience, programming, 100daysofcode
Published: 2021-02-16 02:04:58

**What is Form? **
Basic forms are three-dimensional figures, including spheres, cubes, cylinders, pyramids and cones. If an object has height, width and depth, it is a form. A form can be a man-made, geometric shape that is mathematically precise in all its angles and edges, or it can be a natural, organic form. Organic forms like lizards, dragonflies and apple trees are not mathematically precise, but they are three-dimensional.

 ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p9e3z4p5zezkgr80iw4b.jpg)

*Difference between Shape and Form*
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m1xlrydzgh9tkv1ezvcj.jpg)

Examples
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tnnkguonojgh6n2cghjh.png)


---------------------------------------
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2l5w68f4f3vgxpgv05mw.jpg)
------------------------------------------

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zb1tvvtlqtm6g66rz7ho.jpg)

-------------------------------------------
Please Subscribe to my youtube channel for more: 👍  https://bit.ly/3q83WQd
Auditing Taproot Kitchen Using web.dev and WAVE
Published: 2021-02-16 01:51:13

As a student, I love getting involved with the community outside of the classroom. One of the ways that I did this was joining a community service organization. This has been a really fulfilling experience for me since I haven't done anything like it before. Through my organization, I have had the opportunity to volunteer at the concession stands at sporting events, help clean up stadiums after football games, and help make improvements to local parks.

One of the coolest events that we do as an organization is volunteer at Taproot Kitchen. Taproot is an organization that helps adults with intellectual disabilities gain culinary training and meaningful employment.

After running the audits, there were a number of areas that could be improved, specifically with performance and SEO. Even though performance of the website was extremely poor, the accessibility and best practices of the website were nearly perfect. Because of this, I'll mainly focus on how to improve the performance and SEO.

One of the main areas that needs to improve is eliminating unnecessary code. One of the aspects that web.dev highlighted was unused CSS and JavaScript. One of the ways to fix this would be to remove unused CSS and only attaching the needed libraries to the page or component of the page. Reducing or switching the number of WordPress plugins would also help to reduce the amount of unused CSS. 

There is also an issue of render-blocking within the website. One of the ways to help mitigate this is to identify the critical code and move it to an inline script tag within the HTML page. Doing this will give it what it needs to handle the page's core functionality first.

Overall, Taproot Kitchen does a great job with the accessibility and best practices but struggles greatly with performance. It seems like the website is in a good spot given that there are only a few areas that desperately need attention. 

[Video explanation of the audit](https://youtu.be/i8xs8xPa_sE)
Bookmark: Joplin
Tags: bookmark, tools, secondbrain
Published: 2021-02-20 01:48:40

---
title: Bookmark: Joplin
published: true
date: 2021-02-16 01:18:07 UTC
tags: bookmark,tools,SecondBrain
canonical_url: https://randomgeekery.org/bookmark/2021/02/15/joplinapp-org/
---

[Joplin](https://joplinapp.org)

This one’s worth bookmarking because it’s [open source](https://github.com/laurent22/joplin/blob/dev/LICENSE), multi-platform including mobile, extensible, and can be synchronized via multiple services.

Still haven’t decided if it’s my one true note-taking resource, or if there ever will be such a thing. I wish there was setting synchronization too, but maybe there’s a [plugin](https://discourse.joplinapp.org/c/plugins/18) for that.

### General usage

- nodes can be notes or tasks, and you can toggle between them
- [note format](https://joplinapp.org/markdown/) is slightly tweaked variant of Github-Flavored Markdown
- default split pane approach w/editor on one side, working preview on the other
- has a rich editor, but that’s not my style so I couldn’t tell you how well it works
- drag and drop to create subnotebooks
- note links are via UUID-style hashes, so they’ll persist when you move a linked note

### Plugins

Check the [master list](https://github.com/joplin/plugins/blob/master/README.md) of plugins. Check the [forum](https://discourse.joplinapp.org/c/plugins/18) for discussions and announcements.

Here’s what I’m using so far:

- [inline tags](https://discourse.joplinapp.org/t/plugin-inline-tags/14192): autocomplete existing tag links with `#`
- [quick links](https://discourse.joplinapp.org/t/quick-links-plugin/14214): autocomplete note links with `@@`
- [automatic backlinks](https://discourse.joplinapp.org/t/automatic-backlinks-with-manual-insert-option/13632): inserts list of links to notes that reference the _current_ note
- [convert text to new note](https://discourse.joplinapp.org/t/create-note-from-highlighted-text/12511): select, right click, bang. new note
589. N-ary Tree Preorder Traversal

Tags: javascript, algorithms, leetcode, tree
Published: 2021-02-16 00:24:32

###Description:
Given an n-ary tree, return the preorder traversal of its nodes' values.

Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value (See examples)

###Solution:
Time Complexity : O(n)
Space Complexity: O(n)

```javascript
var preorder = function(root, output = []) {
	// If we start with no root or we reach a null value return the output
    if(!root) return output;
	// Add the current root val to the output on each call
    output.push(root.val)
	// Repeat for all of the root's children
    for(const child of root.children) {
		preorder(child, output);
	}
    return output;
};
```
Day 309 : Talking
Tags: hiphop, code, coding, lifelongdev
Published: 2021-02-16 00:17:02

_liner notes_:
- Saturday : Spent most of the day figuring out how I wanted to structure the side project I'm working on. There's a lot of moving parts and different aspects that can happen. So, I'm going to build separate applications that handle different functions but share the same database. That way, if I need to work on something, I won't have to touch a totally separate part of the project. Then it was time for the radio show. Had a really good time as usual. The recording of this week's show is at https://kNOwBETTERHIPHOP.com

![Radio show episode image of a mansion a man bought in Florida with money he defrauded the government by lying to get PPP loans with the words Feb 13th 2021, Priorities](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wagiwvyipwomj9zlf69c.jpg)

- Sunday : Drove to my folks place since I have a presentation this week and wanted to make sure I had a pretty stable internet connection. Plus I got some packages. Spent the day finishing up some post radio show work and working on my side project. Added some restrictions to some routes for a log in to the admin section of the site. Built out some of the functionality for the dashboard. Then I watched the latest episode of "The Watch".

- Professional : Started the day off doing our weekly live stream. Did a little talking about some anime, so it was a good time. haha. Then I updated some documentation to reflect some changes in the SDK. Then I worked on making some format changes so they fit better. Pretty productive day.

- Personal : This weekend, I didn't get to watch "Dinosaurs". I don't know. I haven't been watching anime or really any new shows. Just been working on side projects. How my priorities have changed. haha.

![A rock formation covered in trees sticking out of the water at sunset in Hvítserkur, Iceland](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t7jx4taxjon4ql81ns9h.jpg)

Going to continue working on admin dashboard. Got the login working, now I want to start being able to add, list and modify data. Maybe I'll watch an episode of "Dinosaurs".

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube xgsossmuDXA %}
Reader question: Should we have a bugfix team?
Tags: devops, discuss, help, watercooler
Published: 2021-02-16 10:13:24

---
title: Reader question: Should we have a bugfix team?
date: 2021-02-16 00:00:00 UTC
tags: devops, discuss, help, watercooler
canonical_url: https://jhall.io/archive/2021/02/16/reader-question-should-we-have-a-bugfix-team/
published: true
---

Fellow reader [Anita Kalmane](https://www.linkedin.com/in/anitakalmane/) asked: “What’s your opinion on having a separate team who is fixing bugs?”

I want to share my response, slightly edited for brevity:

> I think it’s a terrible idea, except maybe as a VERY short term measure in an emergency.
> 
> The three biggest reasons:
> 
> 1. It teaches the team producing bugs that “bug fixing is someone else’s problem.”
> 2. It has the bugfix team working without proper context.
> 3. Usually companies that do this put the “least skilled” (however they determine that) people on the maintenence/bugfix team. This means the bugfixers never get exposed to the rest of software development (designing systems, etc), so it becomes a sort of a dead-end position.
RSS Feeds by Email
Tags: blog, rss
Published: 2021-02-16 20:14:53

---
title: RSS Feeds by Email
published: true
date: 2021-02-16 00:00:00 UTC
tags: blog, rss
canonical_url: https://www.gonsie.com/blorg/rss-by-email.html
---

While RSS is great, it’s not easy to explain to those who haven’t heard of it before. Plus, it’s hard to get someone started on using RSS since it requires a separate application. TwoBitHistory has an great post on the [history of RSS](https://twobithistory.org/2018/09/16/the-rise-and-demise-of-rss.html) that covers it’s fall from grace.

Without RSS, keeping up-to-date on your favorite websites from the independent web becomes a bit more difficult. Most sites now feature a newsletter and email is a great alternative to RSS. Julia Evans [describes the MailChimp process](https://jvns.ca/blog/2017/12/28/making-a-weekly-newsletter/) to turn an RSS feed into a weekly digest.

I’ve decided to use something even simpler: the [RSSby.email](https://rssby.email) service. RSSby.email provides a daily email with posts from this (or any) RSS feed. It is entirely managed by the subscriber via email (see the website for details on how to subscribe and various preferences you can set).

To facilitate the subscription process, I added an HTML `mailto` link to create the subscribe email for this site:

```
<a href="mailto:add@rssby.email?subject=subscribe&body=https://www.gonsie.com/blorg/feed.xml"><img src="/images/rss-email.png" id="rss"></a>

```

RSSby.email will automatically unsubscribe any websites that are not updated within 90 days… which should inspire me to post with some frequency.
How To Pass Multiple Parameters To Same Value in Query Strings
Tags: http, rest
Published: 2021-02-16 12:17:06

---
title: How To Pass Multiple Parameters To Same Value in Query Strings
published: true
date: 2021-02-16 00:00:00 UTC
tags: HTTP,rest
canonical_url: https://hugomartins.io/essays/2021/02/how-to-pass-multiple-values-to-http-query-parameter/
---

While writing REST APIs, I’ve frequently needed to pass multiple values for the same parameter in a query string. In particular, this happens when using `GET` requests and we want to, for example, pass a filter of identifiers to the particular request. At first, it appears simple but it is actually undefined behavior in terms of what the HTTP standards specify. For clarity, a query string is a string attached to an HTTP URL specifying values for particular parameters, allowing us to pass data in a request. For example, in `https://example.com/api/examples?id=123`, the string `?id=123` would be a query string.

It seems to be a [frequently](https://stackoverflow.com/questions/24059773/correct-way-to-pass-multiple-values-for-same-parameter-name-in-get-request) [asked](https://stackoverflow.com/questions/13261377/how-to-pass-multiple-values-for-a-single-url-parameter) [question](https://stackoverflow.com/questions/50820245/pass-multiple-values-of-a-http-request-parameter) in Stack Overflow. It turns out, apparently, that there’s no standard for how parameters that can have multiple values should behave in HTTP.

With query parameters, multiple values can be represented as `value=1&value=2` or `value=1,2`. This will come down to what the applications receiving the requests will accept. [RFC 3986](https://tools.ietf.org/html/rfc3986) has no definition on how to behave when the same parameter has multiple values. It neither recommends one option or the other.

This means that the behavior of the query parameters will be defined by the API - they can either accept `value=1&value=2`, `value=1,2` or both. It is the wild west of HTTP. It can also be defined by the framework powering the API in question, which can define how it supports multiple parameters. For example, in Python, Django has built-in support to handle this via `django.http.QueryDict.getlist()` while in Flask, there’s a need to modify the way parameters are processed in order for the parameters to be appropriately parsed.

As a personal preference, I would go for using multiple `key=value` pairs because it becomes more readable when reading the request. If the framework supports it, the fact that it becomes more readable can be important while troubleshooting issues with requests such as these.
No more rest 🚀
Tags: javascript, typescript, node
Published: 2021-02-15 23:55:10

Hello guys!  

*Here the [GitHub Repo](https://github.com/epavanello/no-more-rest) and here the [NPM package](https://www.npmjs.com/package/no-more-rest)* 📦

If you, like me, don't like to pass all day defining new rest API and calling them from the frontend in a verbose way, you can start to use my new NPM package [no-more-rest](https://www.npmjs.com/package/no-more-rest) that allows you to expose your API directly from your server to be called transparently from your client with the IntelliSense support.

If you like the idea star the project and collaborate with me 💗

A small example of the potential

```javascript
// server/myApi.js

export function doLogin(username, password) {
  return username == "admin" && password == "admin";
}

export function getLoggedUsers() {
  return ["Elon Musk", "admin"];
}

```

```javascript
// server/server.js

import express from "express";
import { expose } from "no-more-rest";

import * as myApi from "./myApi";

const app = express();
expose(app, myApi);

app.listen(8000);
```

- Add this npm script to your package to generate the proxy script for the client from the exposed module

```json
"scripts": {
   "sync-api": "no-more-rest --input myApi.js --output-dir ../your-client-path/ --watch"
}
```

- Import in the client your generated proxy and use it as if it were on your backend.

```javascript
// client/index.js

import { doLogin, getLoggedUsers } from "./generatedProxy";

doLogin("admin", "admin")
  .then((result) => {
    if (result) {
      alert("Login success");

      getLoggedUsers().then((users) => {
        alert("The logged users are: " + users.join(", "));
      });
    } else {
      alert("Login failed");
    }
  })
  .catch(() => {
    alert("Network error");
  });

```
Pogramming experience, everyone can code!!
Published: 2021-02-15 23:51:42

---
title: Pogramming experience, everyone can code!!
published: true
description: A little breef about my experience in my engineer and how i defeat the fear to be a programmer today! 
tags: 
//cover_image: https://direct_url_to_image.jpg
---
This post is gonna be very emotional. It is my first post here in Dev, so let's get started.
First I am a student from Puebla, Mexico, i am studying a Information Technologies engineer, so let me first say that i am not very capable of writing in English, so if anyone whoes reading this has some advices for me, they are welcome.
Getting back to the point, At my college you would normally expect to get started with a introduction asignature, in my case it was not, the teacher decided to start at POO programming because she asumed that everyone in the class knew the basics, but i don't. I started with a book, to know the basics, then i followed with POO. 
Basically that was how i learned the basics, as i was pogressing in my degre, i decided to become a Web Developer, in my college they use PHP so i learned about it...I really love working with data, i am not a designer, but in the course of life i ended up working more with Frontend, i took a course about Vue.js and actually that framework is my favorite for every personal project.
In the profesional practices for my college i had to learn React, and i respect it but i feel more confortable with Vue.
Right now i am learning more React, python and node.js (because i want to be in the backend at some future).
That's my history, if you are a student in Mexico and want to know how to programm, do not be feared, the only thing that you need is passion and self-learning, because they are not so many good teachers at college, so start with a book, a tutorial, an online course, you'll be getting better and better.
Just practice and believe in you.
Ruby Methods Broken Down
Tags: beginners
Published: 2021-02-15 23:47:59

Ruby methods are actions and instructions for Ruby objects that are wrapped in def...end keywords. They can be repeatable actions so you don't have to code the same bit over and over, you can apply the method to the class or the instance instead and keep your code friendly and DRY (Don’t Repeat Yourself)!

So what is a class? And what is an instance? Say you have a Vehicle. The vehicle would be the class and the methods would be the parts that define a vehicle: the wheels, steering, fuel, frame. A bicycle can be created by that class so it would be an instance of a vehicle. And since everything in Ruby is an object you can call methods on both the class object and you can call methods on the instance object. 

While the syntax is similar, both begin with def and end with...end, they are not interchangeable. __Class methods__ only work when they're called on Classes and __instance methods__ are only good for instances of a class. Mix this up and you'll get slapped with a NoMethodError. 

Class methods are recognizable because they're called on the class itself and are denoted with a "." in the method (eg: self.method). They define a function to the class itself and any object generated from that class. 

Instances themselves are generated by the class and their instance methods define a function to one instance, or object, of a class. 

Ideally, each method deals with one task, so what do you do when you have something more complex to achieve? In comes the __helper method__. These methods help other methods do their job by taking on a smaller task that is accessible and can be called on in other methods. 

Between Class Methods, Instance Methods, and Helper Methods you can code complex problems in Ruby that are easy to understand and free of repetition! 

Sources 
[RailsTips](http://www.railstips.org/blog/archives/2009/05/11/class-and-instance-methods-in-ruby/)
[StackOverflow](https://stackoverflow.com/questions/2707784/whats-the-preferred-way-to-use-helper-methods-in-ruby)
How to Add an AppDelegate to a SwiftUI Project
Tags: swift, ios, swiftui
Published: 2021-02-15 23:39:35

---
title: How to Add an AppDelegate to a SwiftUI Project
published: true
description: 
tags: #swift #ios #swiftUI
//cover_image: https://direct_url_to_image.jpg
---

<!-- wp:paragraph -->
<p>When you create a new SwiftUI project, you will see that we no longer have the <strong>AppDelegate.swift</strong> file. This doesn't mean we don't need or use the <strong>AppDelegate</strong> file anymore. If we want to implement something like push notifications we will need to use an <strong>AppDelegate</strong> in our SwiftUI app. Let's take a look at how we can add an <strong>AppDelegate</strong> file to our SwiftUI project.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>First we will need to create a new swift file and name it <strong>AppDelegate</strong>. Now inside of our new <strong>AppDelegate</strong> file we will need to copy and paste the code below (Feel free to add any <strong>AppDelegate</strong> functions you need for your project). </p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>import UIKit

class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: &#91;UIApplication.LaunchOptionsKey : Any]? = nil) -&gt; Bool {

        // Your Code Here!
        return true
    }
}</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Now that we have our <strong>AppDelegate</strong> created, we will need to tell our app to use the <strong>AppDelegate.swift</strong> file. Let us navigate over to the App file in our project. This file is named after your project with <strong>"App</strong>" at the end. In this example my file is named <strong>AppDelegateBlogProjectApp.swift</strong> (Not the best name in the world 🤣). </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In this file we will create and wrap our AppDelegate property in the <strong>UIApplicationDelegateAdaptor</strong>&nbsp;property wrapper. This tells SwiftUI we want to use the <strong>AppDelegate</strong> file we just created.</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>@main
struct AppDelegateBlogProject: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>That is all we need to make an <strong>AppDelegate</strong> in a SwiftUI project! </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Thanks for reading! </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->