diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e05473f91f948724ab.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e05473f91f948724ab.md new file mode 100644 index 00000000000..e4f78d46d3f --- /dev/null +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e05473f91f948724ab.md @@ -0,0 +1,121 @@ +--- +id: 5f3ef6e05473f91f948724ab +title: Paso 58 +challengeType: 0 +dashedName: step-58 +--- + +# --description-- + +Puedes cambiar la fuente (`font-family`) del texto, para que luzca diferente de la fuente predeterminada de tu navegador. Cada navegador cuenta con algunas fuentes comunes disponibles. + +Cambia todo el texto de tu elemento `body`, añadiendo una propiedad `font-family` con el valor `sans-serif`. Esta es una fuente común, la cual es bastante legible. + +# --hints-- + +La propiedad `font-family` debe tener el valor `sans-serif`. + +```js +const hasFontFamily = new __helpers.CSSHelp(document).getCSSRules().some(x => x.style['font-family'] === 'sans-serif'); +``` + +La propiedad `font-family` debe de darle a tu elemento `body` la fuente `sans-serif`. + +```js +const bodyFontFamily = new __helpers.CSSHelp(document).getStyle('body')?.getPropertyValue('font-family'); +assert(bodyFontFamily === 'sans-serif'); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Cafe Menu + + + + + + +``` + +```css +--fcc-editable-region-- +body { + background-image: url(https://cdn.freecodecamp.org/curriculum/css-cafe/beans.jpg); +} +--fcc-editable-region-- + +h1, h2, p { + text-align: center; +} + +.menu { + width: 80%; + background-color: burlywood; + margin-left: auto; + margin-right: auto; + padding: 20px; + max-width: 500px; +} + +.item p { + display: inline-block; +} + +.flavor, .dessert { + text-align: left; + width: 75%; +} + +.price { + text-align: right; + width: 25% +} +``` diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e0a81099d9a697b550.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e0a81099d9a697b550.md new file mode 100644 index 00000000000..74f66b2b2b6 --- /dev/null +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e0a81099d9a697b550.md @@ -0,0 +1,156 @@ +--- +id: 5f3ef6e0a81099d9a697b550 +title: Paso 65 +challengeType: 0 +dashedName: step-65 +--- + +# --description-- + +Dentro del elemento `footer`, añade un elemento `p`. Después, anida un elemento anchor (`a`) en el elemento `p` que enlace a `https://www.freecodecamp.org` y tenga el texto `Visit our website`. + +# --hints-- + +No debes modificar el elemento `footer` existente. + +```js +assert($('footer').length === 1); +``` + +Tu elemento nuevo elemento `p` debe estar anidado dentro de tu elemento `footer`. + +```js +assert($('footer').children('p').length === 1); +``` + +Tu nuevo elemento `a` debe ser anidado dentro de tu nuevo elemento `p`. + +```js +assert($('footer').children('p').children('a').length === 1); +``` + +Tu nuevo elemento `a` debe tener el texto `Visit our website`. + +```js +assert($('footer').find('a')[0].innerText.match(/Visit our website/i)); +``` + +Tu nuevo elemento `a` te debe enlazar a `https://www.freecodecamp.org`. Recuerda que los elementos `a` utilizan el atributo `href` para crear un enlace. + +```js +assert($('footer').find('a').attr('href') === 'https://www.freecodecamp.org'); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Cafe Menu + + + + + + +``` + +```css +body { + background-image: url(https://cdn.freecodecamp.org/curriculum/css-cafe/beans.jpg); + font-family: sans-serif; +} + +h1 { + font-size: 40px; +} + +h2 { + font-size: 30px; +} + +.established { + font-style: italic; +} + +h1, h2, p { + text-align: center; +} + +.menu { + width: 80%; + background-color: burlywood; + margin-left: auto; + margin-right: auto; + padding: 20px; + max-width: 500px; +} + +h1, h2 { + font-family: Impact, serif; +} + +.item p { + display: inline-block; +} + +.flavor, .dessert { + text-align: left; + width: 75%; +} + +.price { + text-align: right; + width: 25% +} +``` + diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804eb.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804eb.md new file mode 100644 index 00000000000..f2b0ab30f3d --- /dev/null +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804eb.md @@ -0,0 +1,112 @@ +--- +id: 5ef9b03c81a63668521804eb +title: Paso 65 +challengeType: 0 +dashedName: step-65 +--- + +# --description-- + +El elemento `title` (título) determina lo que los navegadores muestran en la barra de título o en las pestañas del navegador. + +Dentro del elemento `head` añade un elemento `title` con el siguiente texto: + +`CatPhotoApp` + +# --hints-- + +Has eliminado el elemento `head` o le falta una etiqueta de apertura o de cierre. + +```js +assert(code.match(/\/) && code.match(/\<\/head\>/)); +``` + +Tu elemento `title` debe estar anidado dentro del elemento `head`. Asegúrate de añadir una etiqueta de apertura y de cierre al elemento `title`. + +```js +const noSpaces = code.replace(/\s/g, ''); +assert(noSpaces.match(/\\.*\<\/title\>\<\/head\>/)); +``` + +Tu elemento `title` debe tener una etiqueta de cierre. Las etiquetas de cierre tiene una `/` después del carácter `<`. + +```js +assert(code.match(/\<\/title\>/)); +``` + +El texto de tu elemento `title` deber ser `CatPhotoApp`. Probablemente no has añadido el texto o tienes un error tipográfico. + +```js +assert(document.title && document.title.toLowerCase() === 'catphotoapp'); +``` + +# --seed-- + +## --seed-contents-- + +```html + +--fcc-editable-region-- + + +--fcc-editable-region-- + +

CatPhotoApp

+
+
+

Cat Photos

+ +

Click here to view more cat photos.

+ A cute orange cat lying on its back. +
+
+

Cat Lists

+

Things cats love:

+
    +
  • cat nip
  • +
  • laser pointers
  • +
  • lasagna
  • +
+
+ A slice of lasagna on a plate. +
Cats love lasagna.
+
+

Top 3 things cats hate:

+
    +
  1. flea treatment
  2. +
  3. thunder
  4. +
  5. other cats
  6. +
+
+ Five cats looking around a field. +
Cats hate other cats.
+
+
+
+

Cat Form

+
+
+ Is your cat an indoor or outdoor cat? + + +
+
+ What's your cat's personality? + + + +
+ + +
+
+
+ + + +``` + diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f5c3e399ff1a05629964e4.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f5c3e399ff1a05629964e4.md new file mode 100644 index 00000000000..48b238e5e57 --- /dev/null +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f5c3e399ff1a05629964e4.md @@ -0,0 +1,62 @@ +--- +id: 60f5c3e399ff1a05629964e4 +title: Paso 10 +challengeType: 0 +dashedName: step-10 +--- + +# --description-- + +Como sugiere el título, está creando un formulario. Así que después del elemento `p` inserta un `form` con un atributo de `action` "tageting" `https://register-demo.freecodecamp.org`. + +# --hints-- + +Tebes añadir un `form` después de el elemento `p`. + +```js +assert.exists(document.querySelector('p + form')); +``` + +Debes añadir el `form`un attributo de `action`. + +```js +// Default action points to window location +assert.notEqual(document.querySelector('form')?.action, window?.location?.href); +``` + +Debes dar a la `action` un valor de `https://register-demo.freecodecamp.org`. + +```js +assert.equal(document.querySelector('form')?.action, 'https://register-demo.freecodecamp.org/'); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + Registration Form + + +--fcc-editable-region-- + +

Registration Form

+

Please fill out this form with the required information

+ + +--fcc-editable-region-- + +``` + +```css +body { + width: 100%; + height: 100vh; + margin: 0; + background-color: #1b1b32; + color: #f5f6f7; +} +``` diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f5dc35c07ac1078f140916.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f5dc35c07ac1078f140916.md new file mode 100644 index 00000000000..58b361aa2e0 --- /dev/null +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f5dc35c07ac1078f140916.md @@ -0,0 +1,81 @@ +--- +id: 60f5dc35c07ac1078f140916 +title: Paso 13 +challengeType: 0 +dashedName: step-13 +--- + +# --description-- + +Agrega el siguiente texto a los elementos `label`: + +- `Enter Your First Name:` +- `Enter Your Last Name:` +- `Enter Your Email:` +- `Create a New Password:` + +# --hints-- + +El primer `label` debe tener el texto `Enter Your First Name:`. + +```js +assert.match(document.querySelector('label')?.innerHTML, /Enter Your First Name:/i); +``` + +El segundo `label` debe tener el texto `Enter Your Last Name:`. + +```js +assert.match(document.querySelector('fieldset > label:nth-child(2)')?.innerHTML, /Enter Your Last Name:/i); +``` + +El tercer `label` debe tener el texto `Enter Your Email:`. + +```js +assert.match(document.querySelector('fieldset > label:nth-child(3)')?.innerHTML, /Enter Your Email:/i); +``` + +El cuatro `label` debe tener el texto `Create a New Password:`. + +```js +assert.match(document.querySelector('fieldset > label:nth-child(4)')?.innerHTML, /Create a New Password:/i); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + Registration Form + + + +

Registration Form

+

Please fill out this form with the required information

+
+--fcc-editable-region-- +
+ + + + +
+--fcc-editable-region-- +
+
+
+ + +``` + +```css +body { + width: 100%; + height: 100vh; + margin: 0; + background-color: #1b1b32; + color: #f5f6f7; +} +``` diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd9b7285bde783ad5b8aac.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd9b7285bde783ad5b8aac.md new file mode 100644 index 00000000000..b6ee8686197 --- /dev/null +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd9b7285bde783ad5b8aac.md @@ -0,0 +1,208 @@ +--- +id: 61fd9b7285bde783ad5b8aac +title: Paso 27 +challengeType: 0 +dashedName: step-27 +--- + +# --description-- + +Dentro del `tbody`, agrega un `tr` con el `class` establecido en `total`. Dentro de eso, agrega un `th` con el texto `Total Net Worth`, y envuelve `Net Worth` en un `span` con el `class` establecido en `sr-only`. + +Luego agrega tres elementos `td`, dando al tercero un `class` establecido en `current`, y dando a cada uno el siguiente texto: `$-171`, `$136`, `$334`. + +# --hints-- + +Tu elemento `tbody` debe tener un elemento `tr`. + +```js +assert(document.querySelectorAll('table')?.[2]?.querySelector('tbody')?.querySelectorAll('tr')?.length === 1); +``` + +Tu elemento `tr` debe tener el `class` establecido en `total`. + +```js +assert(document.querySelectorAll('table')?.[2]?.querySelector('tbody')?.querySelector('tr')?.classList?.contains('total')); +``` + +Tu `tr` debe tener un elemento `th`. + +```js +assert(document.querySelectorAll('table')?.[2]?.querySelector('tbody')?.querySelectorAll('tr')?.[0]?.querySelector('th')); +``` + +Tu elemento `th` debe tener el texto `Total Net Worth`. + +```js +assert(document.querySelectorAll('table')?.[2]?.querySelector('tbody')?.querySelectorAll('tr')?.[0]?.querySelector('th')?.innerText === 'Total Net Worth'); +``` + +Debes envolver el texto `Net Worth` en un elemento `span`. + +```js +assert(document.querySelectorAll('table')?.[2]?.querySelector('tbody')?.querySelectorAll('tr')?.[0]?.querySelector('th > span')?.textContent === 'Net Worth'); +``` + +Tu elemento `span` debe tener un atributo `class` establecido en `sr-only`. + +```js +assert(document.querySelectorAll('table')?.[2]?.querySelector('tbody')?.querySelectorAll('tr')?.[0]?.querySelector('th > span')?.classList?.contains('sr-only')); +``` + +Debes tener tres elementos `td`. + +```js +assert(document.querySelectorAll('table')?.[2]?.querySelector('tbody')?.querySelectorAll('tr')?.[0]?.querySelectorAll('td').length === 3); +``` + +Tu primer elemento `td` debe tener el texto `$-171`. + +```js +assert(document.querySelectorAll('table')?.[2]?.querySelector('tbody')?.querySelectorAll('tr')?.[0]?.querySelectorAll('td')?.[0]?.textContent === '$-171'); +``` + +Tu segundo elemento `td` debe tener el texto `$136`. + +```js +assert(document.querySelectorAll('table')?.[2]?.querySelector('tbody')?.querySelectorAll('tr')?.[0]?.querySelectorAll('td')?.[1]?.textContent === '$136'); +``` + +Tu tercer elemento `td` debe tener el texto `$334`. + +```js +assert(document.querySelectorAll('table')?.[2]?.querySelector('tbody')?.querySelectorAll('tr')?.[0]?.querySelectorAll('td')?.[2]?.textContent === '$334'); +``` + +Tu tercer elemento `td` debe tener el `class` establecido en `current`. + +```js +assert(document.querySelectorAll('table')?.[2]?.querySelector('tbody')?.querySelectorAll('tr')?.[0]?.querySelectorAll('td')?.[2]?.classList?.contains('current')); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Balance Sheet + + + +
+
+

+ + AcmeWidgetCorp + Balance Sheet + +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Assets
201920202021
Cash This is the cash we currently have on hand.$25$30$28
Checking Our primary transactional account.$54$56$53
Savings Funds set aside for emergencies.$500$650$728
Total Assets$579$736$809
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Liabilities
201920202021
Loans The outstanding balance on our startup loan.$500$250$0
Expenses Annual anticipated expenses, such as payroll.$200$300$400
Credit The outstanding balance on our credit card.$50$50$75
Total Liabilities$750$600$475
+--fcc-editable-region-- + + + + + + + + + + + + +
Net Worth
201920202021
+--fcc-editable-region-- +
+
+
+ + +``` + +```css + +``` diff --git a/curriculum/challenges/italian/01-responsive-web-design/basic-css/use-hex-code-for-specific-colors.md b/curriculum/challenges/italian/01-responsive-web-design/basic-css/use-hex-code-for-specific-colors.md index 882db8c71ac..6540044928f 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/basic-css/use-hex-code-for-specific-colors.md +++ b/curriculum/challenges/italian/01-responsive-web-design/basic-css/use-hex-code-for-specific-colors.md @@ -11,9 +11,9 @@ dashedName: use-hex-code-for-specific-colors Lo sapevi che ci sono altri modi per rappresentare i colori in CSS? Uno di questi modi è chiamato codice esadecimale, o codice hex per brevità. -Di solito usiamo i numeri decimali (o numeri in base 10), che usano i simboli da 0 a 9 per ogni cifra. Gli esadecimali (o hex) sono numeri in base 16. Ciò significa che utilizzano sedici simboli distinti. Come per i i decimali, i simboli 0-9 rappresentano i valori da zero a nove. I successivi simboli A,B,C,D,E,F rappresentano i valori da dieci a quindici. Complessivamente, una cifra esadecimale può andare da 0 a F, dandoci 16 valori totali possibili. Qui puoi trovare ulteriori informazioni sul [sistema numerico esadecimale](https://it.wikipedia.org/wiki/Sistema_numerico_esadecimale). +Di solito usiamo i numeri decimali (o numeri in base 10), che usano i simboli da 0 a 9 per ogni cifra. Gli esadecimali (o hex) sono numeri in base 16. Ciò significa che utilizzano sedici simboli distinti. Come per i i decimali, i simboli 0-9 rappresentano i valori da zero a nove. I successivi simboli A,B,C,D,E,F rappresentano i valori da dieci a quindici. Complessivamente, una cifra esadecimale può andare da 0 a F, dandoci 16 valori totali possibili. Qui puoi trovare ulteriori informazioni sul sistema numerico esadecimale. -In CSS, possiamo usare 6 cifre esadecimali per rappresentare i colori, due ciascuna per le componenti rossa (R), verde (G) e blu (B). Ad esempio, `#000000` è nero ed è anche il valore più basso possibile. You can find more information about the [RGB color system here](https://www.freecodecamp.org/news/rgb-color-html-and-css-guide/#whatisthergbcolormodel). +In CSS, possiamo usare 6 cifre esadecimali per rappresentare i colori, due ciascuna per le componenti rossa (R), verde (G) e blu (B). Ad esempio, `#000000` è nero ed è anche il valore più basso possibile. Qui puoi trovare più informazioni sul sistema di colori RGB. ```css body { diff --git a/curriculum/challenges/italian/01-responsive-web-design/css-flexbox/align-elements-using-the-justify-content-property.md b/curriculum/challenges/italian/01-responsive-web-design/css-flexbox/align-elements-using-the-justify-content-property.md index ffcc95fbb13..056ae85be9a 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/css-flexbox/align-elements-using-the-justify-content-property.md +++ b/curriculum/challenges/italian/01-responsive-web-design/css-flexbox/align-elements-using-the-justify-content-property.md @@ -11,11 +11,11 @@ dashedName: align-elements-using-the-justify-content-property Certe volte gli oggetti flex all'interno di un contenitore flex non riempiono tutto lo spazio del contenitore. È comune voler dire a CSS di allineare e spaziare gli elementi flex in una certa maniera. Fortunatamente, la proprietà `justify-content` ha diverse opzioni per farlo. Ma prima, c'è un po' di terminologia importante da capire prima di rivedere queste opzioni. -[Per ulteriori informazioni sulle proprietà flex-box](https://www.freecodecamp.org/news/flexbox-the-ultimate-css-flex-cheatsheet/) +Per maggiori informazioni sulle proprietà flex-box, leggi qui -Ricorda che l'impostazione di un contenitore flex come riga posiziona gli elementi flex fianco a fianco da sinistra a destra. Un contenitore flex impostato come colonna piazza gli oggetti flex in una pila verticale dall'alto verso il basso. Per ognuno, la direzione in cui sono disposti gli elementi flex è chiamata **asse principale**. Per una riga, si tratta di una linea orizzontale che taglia ogni elemento. E per una colonna, l'asse principale è una linea verticale attraverso gli elementi. +Ricorda che l'impostazione di un contenitore flex come riga posiziona gli elementi flex fianco a fianco da sinistra a destra. Un contenitore flex impostato come colonna piazza gli oggetti flex in una pila verticale dall'alto verso il basso. Per ognuno, la direzione in cui sono disposti gli elementi flex è chiamata **asse principale**. Per una riga, si tratta di una linea orizzontale che taglia ogni elemento. E per una colonna, l'asse principale è una linea verticale che attraversa gli elementi. -Ci sono diverse opzioni per come spaziare gli elementi flex lungo la linea che è l'asse principale. Uno dei più comunemente usati è `justify-content: center;`, che allinea tutti gli elementi flex al centro del contenitore flex. Altre opzioni includono: +Ci sono diverse opzioni per spaziare gli elementi flex lungo la linea corrispondente all'asse principale. Una delle più usate è `justify-content: center;`, che allinea tutti gli elementi flex al centro del contenitore flex. Altre opzioni includono:
  • flex-start: allinea gli elementi all'inizio del contenitore flex. Per una riga, questo spinge gli oggetti alla sinistra del contenitore. Per una colonna, questo spinge gli oggetti verso l'alto del contenitore. Questo è l'allineamento predefinito se non viene specificato alcun justify-content.
  • flex-end: allinea gli elementi alla fine del contenitore flex. Per una riga, questo spinge gli oggetti alla destra del contenitore. Per una colonna, questo spinge gli oggetti verso il fondo del contenitore.
  • space-between: allinea gli oggetti al centro dell'asse principale, con spazio aggiuntivo tra gli elementi. Il primo e l'ultimo elemento vengono spinti fino all'estremità del contenitore flex. Ad esempio, in una riga il primo elemento è contro il lato sinistro del contenitore, l'ultimo elemento è contro il lato destro del contenitore, quindi lo spazio rimanente è distribuito uniformemente tra gli altri elementi.
  • space-around: simile a space-between ma il primo e l'ultimo elemento non sono vincolati ai bordi del contenitore, lo spazio è distribuito intorno a tutti gli elementi con metà dello spazio su entrambe le estremità del contenitore flex.
  • space-evenly: distribuisce lo spazio uniformemente tra gli elementi flex con uno spazio pieno a entrambe le estremità del contrainer flex.
@@ -24,11 +24,11 @@ Ci sono diverse opzioni per come spaziare gli elementi flex lungo la linea che Un esempio aiuta a mostrare questa proprietà in azione. Aggiungi la proprietà CSS `justify-content` all'elemento `#box-container` e dagli un valore di `center`. **Bonus** -Prova le altre opzioni per la proprietà `justify-content` nell'editor di codice per vedere le loro differenze. Nota però che un valore di `center` è l'unico che supererà questa sfida. +Prova le altre opzioni per la proprietà `justify-content` nell'editor di codice per vedere le loro differenze. Nota però che il valore `center` è l'unico che ti farà superare questa sfida. # --hints-- -L'elemento `#box-container` dovrebbe avere una proprietà `justify-content` impostata su un valore di `center`. +L'elemento `#box-container` dovrebbe avere una proprietà `justify-content` impostata sul valore `center`. ```js assert($('#box-container').css('justify-content') == 'center'); diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/assignment-with-a-returned-value.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/assignment-with-a-returned-value.md index 4a410f6d46f..c57465a6160 100644 --- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/assignment-with-a-returned-value.md +++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/assignment-with-a-returned-value.md @@ -9,7 +9,7 @@ dashedName: assignment-with-a-returned-value # --description-- -Se ricordi la nostra discussione sui [Memorizzare valori con l'operatore di assegnazione](/learn/javascript-algorithms-and-data-structures/basic-javascript/storing-values-with-the-assignment-operator), l'espressione a destra del segno uguale viene risolta prima che il valore venga assegnato. Questo significa che possiamo prendere il valore restituito da una funzione e assegnarlo a una variabile. +Se ricordi la nostra discussione su Memorizzare valori con l'operatore di assegnazione, l'espressione a destra del segno uguale viene risolta prima che il valore venga assegnato. Questo significa che possiamo prendere il valore restituito da una funzione e assegnarlo a una variabile. Supponiamo di avere predefinito una funzione `sum` che somma due numeri, quindi: diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/create-decimal-numbers-with-javascript.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/create-decimal-numbers-with-javascript.md index 8e3efadda90..156b346fd45 100644 --- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/create-decimal-numbers-with-javascript.md +++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/create-decimal-numbers-with-javascript.md @@ -11,7 +11,7 @@ dashedName: create-decimal-numbers-with-javascript Possiamo memorizzare nelle variabili anche i numeri decimali. I numeri decimali a volte sono indicati come numeri in virgola mobile (floating point) o floats. -**Nota:** Non tutti i numeri reali possono essere accuratamente rappresentati in floating point. Ciò può portare a errori di arrotondamento. [Dettagli qui](https://en.wikipedia.org/wiki/Floating-point_arithmetic#Accuracy_problems). +**Nota:** quando i numeri sono calcolati, sono calcolati con una precisione finita. Le operazioni che usano numeri a virgola mobile possono dare un risultato diverso rispetto al risultato desiderato. Se stai ottenendo uno di questi risultati, apri un topic sul forum di freeCodeCamp. # --instructions-- diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/generate-random-fractions-with-javascript.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/generate-random-fractions-with-javascript.md index e0029230939..ef84c1aa3e6 100644 --- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/generate-random-fractions-with-javascript.md +++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/generate-random-fractions-with-javascript.md @@ -13,7 +13,7 @@ I numeri casuali sono utili per creare comportamenti casuali. JavaScript ha una funzione `Math.random()` che genera un numero decimale casuale tra `0` (incluso) e `1` (escluso). Così `Math.random()` può restituire uno `0` ma mai un `1`. -**Nota:** Come visto in [Memorizzare valori con l'operatore di assegnazione](/learn/javascript-algorithms-and-data-structures/basic-javascript/storing-values-with-the-assignment-operator), tutte le chiamate di funzione saranno risolte prima dell'esecuzione del `return`, così possiamo fare un `return` del valore della funzione `Math.random()`. +**Nota:** Come visto in Memorizzare valori con l'operatore di assegnazione, tutte le chiamate di funzione saranno risolte prima dell'esecuzione del `return`, così possiamo fare un `return` del valore della funzione `Math.random()`. # --instructions-- diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/return-early-pattern-for-functions.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/return-early-pattern-for-functions.md index 102f744000b..340c81df717 100644 --- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/return-early-pattern-for-functions.md +++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/return-early-pattern-for-functions.md @@ -29,7 +29,7 @@ Quanto sopra mostrerà la stringa `Hello` nella console, e restituirà la string Modifica la funzione `abTest` in modo che se `a` o `b` sono inferiori a `0` la funzione esce immediatamente con un valore di `undefined`. **Suggerimento** -Ricorda che [`undefined` è una parola chiave](https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/understanding-uninitialized-variables), non una stringa. +Ricorda che undefined è una parola chiave, non una stringa. # --hints-- diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/returning-boolean-values-from-functions.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/returning-boolean-values-from-functions.md index 7f4c3d06b4f..ad1b8c9e4f9 100644 --- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/returning-boolean-values-from-functions.md +++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/returning-boolean-values-from-functions.md @@ -9,7 +9,7 @@ dashedName: returning-boolean-values-from-functions # --description-- -È possibile ricordare da [Confrontare con l'operatore di uguaglianza](/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-equality-operator) che tutti gli operatori di confronto restituiscono un valore booleano `true` o `false`. +È possibile ricordare da Confrontare con l'operatore di uguaglianza che tutti gli operatori di confronto restituiscono un valore booleano `true` o `false`. A volte le persone usano un'istruzione `if/else` per fare un confronto, in questo modo: diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-countdown.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-countdown.md index 033ca3269b0..282a75b773a 100644 --- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-countdown.md +++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-countdown.md @@ -8,7 +8,7 @@ dashedName: use-recursion-to-create-a-countdown # --description-- -In una [sfida precedente](/learn/javascript-algorithms-and-data-structures/basic-javascript/replace-loops-using-recursion), hai imparato come usare la ricorsione per sostituire un ciclo `for`. Ora, diamo un'occhiata a una funzione più complessa che restituisce un array di interi consecutivi a partire da `1` in base al numero passato alla funzione. +In una sfida precedente, hai imparato come usare la ricorsione per sostituire un ciclo `for`. Ora, diamo un'occhiata a una funzione più complessa che restituisce un array di interi consecutivi a partire da `1` in base al numero passato alla funzione. Come accennato nella sfida precedente, ci sarà un caso base. Il caso base dice alla funzione ricorsiva quando non ha più bisogno di chiamare sé stessa. Si tratta di un caso semplice in cui il valore da restituire è già noto. Ci sarà anche una chiamata ricorsiva che esegue la funzione originale con argomenti diversi. Se la funzione è scritta correttamente, alla fine sarà raggiunto il caso base. diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/es6/compare-scopes-of-the-var-and-let-keywords.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/es6/compare-scopes-of-the-var-and-let-keywords.md index 8f8ef090d24..9b1af18f990 100644 --- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/es6/compare-scopes-of-the-var-and-let-keywords.md +++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/es6/compare-scopes-of-the-var-and-let-keywords.md @@ -8,7 +8,7 @@ dashedName: compare-scopes-of-the-var-and-let-keywords # --description-- -Se non hai familiarità con `let`, guarda [questa sfida](/italian/learn/javascript-algorithms-and-data-structures/basic-javascript/explore-differences-between-the-var-and-let-keywords). +Se non hai familiarità con `let`, vedi questa sfida sulle differenze tra let e var. Quando si dichiara una variabile con la parola chiave `var`, essa viene dichiarata globalmente, o localmente se dichiarata all'interno di una funzione. diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/es6/mutate-an-array-declared-with-const.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/es6/mutate-an-array-declared-with-const.md index 584d9b959e6..dd06f100bc7 100644 --- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/es6/mutate-an-array-declared-with-const.md +++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/es6/mutate-an-array-declared-with-const.md @@ -8,7 +8,7 @@ dashedName: mutate-an-array-declared-with-const # --description-- -Se non hai familiarità con `const`, guarda [questa sfida](/italian/learn/javascript-algorithms-and-data-structures/basic-javascript/declare-a-read-only-variable-with-the-const-keyword). +Se non hai familiarità con `const`, controlla questa sfida che parla della parola chiave const. La dichiarazione `const` ha molti casi di utilizzo nel JavaScript moderno. diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/dna-pairing.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/dna-pairing.md index ba6200161a9..7f0d84d69f9 100644 --- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/dna-pairing.md +++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/dna-pairing.md @@ -8,11 +8,9 @@ dashedName: dna-pairing # --description-- -Al filamento di DNA manca l'elemento di accoppiamento. Prendi ogni carattere, ottieni la sua coppia e restituisci i risultati in un array 2d. +Le coppie di filamenti di DNA sono formate da coppie di basi azotate. Coppie di basi sono rappresentate dai caratteri AT e CG, che formano i mattoncini di base della doppia elica del DNA. -[Le coppie di basi del DNA](http://en.wikipedia.org/wiki/Base_pair) sono AT e CG. Abbina l'elemento mancante al carattere fornito. - -Restituisci il carattere fornito come il primo elemento in ogni array. +Al filamento di DNA manca l'elemento da accoppiare. Scrivi una funzione che crea le coppie mancanti per il filamento di DNA dato. Per ogni carattere nella stringa data, trova il carattere della base azotata da accoppiare. Restituisci il risultato in un array 2d. Per esempio, per l'input `GCG`, restituisci `[["G", "C"], ["C","G"], ["G", "C"]]` diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/jquery/change-text-inside-an-element-using-jquery.md b/curriculum/challenges/italian/03-front-end-development-libraries/jquery/change-text-inside-an-element-using-jquery.md index 2b6dd9e2e8c..26c1b92cd1d 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/jquery/change-text-inside-an-element-using-jquery.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/jquery/change-text-inside-an-element-using-jquery.md @@ -22,7 +22,7 @@ jQuery ha anche una funzione simile chiamata `.text()` che modifica solo il test Cambia il pulsante con id `target4` enfatizzando il suo testo. -[Vedi il nostro articolo delle news su <em>](https://www.freecodecamp.org/news/html-elements-explained-what-are-html-tags/#em-element) per comprendere la differenza tra `` e `` e quando usarli. +Vedi il nostro articolo delle news su <em> per comprendere la differenza tra `` e `` e quando usarli. Nota che il tag `` era tradizionalmente utilizzato per mettere in corsivo il testo, ma oggi è usato come tag per le icone. Il tag `` è ora ampiamente accettato come tag per l'enfasi. Entrambi funzioneranno per questa sfida. diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/react/introducing-inline-styles.md b/curriculum/challenges/italian/03-front-end-development-libraries/react/introducing-inline-styles.md index 10dcdb470fe..1a17b9f0193 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/react/introducing-inline-styles.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/react/introducing-inline-styles.md @@ -8,7 +8,7 @@ dashedName: introducing-inline-styles # --description-- -Ci sono altri concetti complessi che aggiungono potenti funzionalità al tuo codice React. Ma forse ti stai chiedendo come stilizzare quegli elementi JSX che crei in React. Probabilmente sai che non sarà esattamente come lavorare con HTML a causa del [modo in cui applichi le classi agli elementi JSX](/italian/learn/front-end-development-libraries/react/define-an-html-class-in-jsx). +Ci sono altri concetti complessi che aggiungono potenti funzionalità al tuo codice React. Ma forse ti stai chiedendo come stilizzare quegli elementi JSX che crei in React. Probabilmente sai che non sarà esattamente come lavorare con HTML a causa del modo in cui applichi le classi agli elementi JSX. Se importi degli stili da un foglio di stile, non è poi così diverso. Applichi una classe al tuo elemento JSX usando l'attributo `className` e applichi gli stili alla classe nel tuo foglio di stile. Un'altra opzione è quella di applicare degli stili in linea, che sono molto comuni nello sviluppo di ReactJS. diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/react/use-proptypes-to-define-the-props-you-expect.md b/curriculum/challenges/italian/03-front-end-development-libraries/react/use-proptypes-to-define-the-props-you-expect.md index 5f79c2dcb18..65752bd7889 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/react/use-proptypes-to-define-the-props-you-expect.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/react/use-proptypes-to-define-the-props-you-expect.md @@ -16,7 +16,7 @@ React fornisce utili funzioni di verifica del tipo per verificare che i componen MyComponent.propTypes = { handleClick: PropTypes.func.isRequired } ``` -Nell'esempio sopra, la parte `PropTypes.func` controlla che `handleClick` sia una funzione. Aggiungendo `isRequired` si dice a React che `handleClick` è una proprietà richiesta per quel componente. Se quella prop non è fornita vedrai un avviso. Nota anche che `func` rappresenta `function`. Tra i sette tipi primitivi JavaScript, `function` e `boolean` (scritto come `bool`) sono gli unici che usano un'ortografia insolita. Oltre ai tipi primitivi, ci sono altri tipi disponibili. Ad esempio, puoi controllare che una prop sia un elemento React. Fai riferimento alla [documentazione](https://reactjs.org/docs/typechecking-with-proptypes.html#proptypes) per tutte le opzioni. +Nell'esempio sopra, la parte `PropTypes.func` controlla che `handleClick` sia una funzione. Aggiungendo `isRequired` si dice a React che `handleClick` è una proprietà richiesta per quel componente. Se quella prop non è fornita vedrai un avviso. Nota anche che `func` rappresenta `function`. Tra i sette tipi primitivi JavaScript, `function` e `boolean` (scritto come `bool`) sono gli unici che usano un'ortografia insolita. Oltre ai tipi primitivi, ci sono altri tipi disponibili. Ad esempio, puoi controllare che una prop sia un elemento React. Fai riferimento alla documentazione per tutte le opzioni. **Nota:** A partire da React v15.5.0, `PropTypes` viene importato indipendentemente da React, in questo modo: `import PropTypes from 'prop-types';` diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/redux/create-a-redux-store.md b/curriculum/challenges/italian/03-front-end-development-libraries/redux/create-a-redux-store.md index f8bdbdb87dd..334b0668f34 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/redux/create-a-redux-store.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/redux/create-a-redux-store.md @@ -20,7 +20,7 @@ Lo `store` di Redux è un oggetto che detiene e gestisce lo `state` dell'applica Dichiara una variabile `store` e assegnala al metodo `createStore()`, passando il `reducer` come argomento. -**Nota:** Il codice nell'editor utilizza la sintassi predefinita degli argomenti ES6 per inizializzare questo stato in modo da contenere un valore di `5`. Se non hai familiarità con gli argomenti predefiniti, puoi fare riferimento alla [sezione ES6 nel Curriculum](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/set-default-parameters-for-your-functions) che copre questo argomento. +**Nota:** Il codice nell'editor utilizza la sintassi predefinita degli argomenti ES6 per inizializzare questo stato in modo da contenere un valore di `5`. Se non hai familiarità con gli argomenti predefiniti, puoi fare riferimento alla sezione ES6 nel Curriculum che copre questo argomento. # --hints-- diff --git a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/communicate-by-emitting.md b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/communicate-by-emitting.md index c8268914d40..e072467086a 100644 --- a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/communicate-by-emitting.md +++ b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/communicate-by-emitting.md @@ -38,7 +38,7 @@ socket.on('user count', function(data) { Ora, prova a caricare la tua app e a fare l'autenticazione: dovresti vedere nella tua console del client un '1' che rappresenta il numero attuale di utenti! Prova a caricare altri client, e autenticati in ognuno di essi per vedere il numero che aumenta. -Invia la tua pagina quando pensi di averlo fatto correttamente. Se dovessi incontrare degli errori, puoi controllare il progetto completato fino a questo punto [qui](https://gist.github.com/camperbot/28ef7f1078f56eb48c7b1aeea35ba1f5). +Invia la tua pagina quando pensi di averlo fatto correttamente. Se stai avendo errori, puoi vedere il progetto completato fino a questo punto. # --hints-- diff --git a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/handle-a-disconnect.md b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/handle-a-disconnect.md index 3c31183c8e3..7529b6679d2 100644 --- a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/handle-a-disconnect.md +++ b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/handle-a-disconnect.md @@ -22,7 +22,7 @@ Per assicurarti che i client continuino ad avere il numero aggiornato degli uten **Nota:** Proprio come `'disconnect'`, tutti gli altri eventi che un socket può emettere sul server devono essere gestiti all'interno del listener di connessione dove abbiamo definito 'socket'. -Invia la tua pagina quando pensi di averlo fatto correttamente. Se dovessi incontrare degli errori, puoi controllare il progetto completato fino a questo punto [qui](https://gist.github.com/camperbot/ab1007b76069884fb45b215d3c4496fa). +Invia la tua pagina quando pensi di averlo fatto correttamente. Se stai avendo errori, puoi vedere il progetto completato fino a questo punto. # --hints-- diff --git a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/how-to-put-a-profile-together.md b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/how-to-put-a-profile-together.md index 3469dc0b1cd..e3b5daadab4 100644 --- a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/how-to-put-a-profile-together.md +++ b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/how-to-put-a-profile-together.md @@ -24,7 +24,7 @@ Inoltre, in `profile.pug`, aggiungi un link relativo alla rotta `/logout`, che o a(href='/logout') Logout ``` -Invia la tua pagina quando pensi di averlo fatto correttamente. Se dovessi incontrare degli errori, puoi controllare il progetto completato fino a questo punto [qui](https://gist.github.com/camperbot/136b3ad611cc80b41cab6f74bb460f6a). +Invia la tua pagina quando pensi di averlo fatto correttamente. Se stai avendo errori, puoi vedere il progetto completato fino a questo punto. # --hints-- diff --git a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/implement-the-serialization-of-a-passport-user.md b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/implement-the-serialization-of-a-passport-user.md index cc439710a87..201d7aeeeb4 100644 --- a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/implement-the-serialization-of-a-passport-user.md +++ b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/implement-the-serialization-of-a-passport-user.md @@ -10,7 +10,7 @@ dashedName: implement-the-serialization-of-a-passport-user Per ora non stiamo caricando un oggetto utente reale visto che non abbiamo creato il database. Questo può essere fatto in molti modi diversi, ma per il nostro progetto ci connetteremo al database una volta che avremo avviato il server e ottenuto una connessione persistente per tutto il ciclo di vita dell'app. Per fare questo, aggiungi la stringa di connessione del database (per esempio: `mongodb+srv://:@cluster0-jvwxi.mongodb.net/?retryWrites=true&w=majority`) alla variabile ambientale `MONGO_URI`. Questo è usato nel file `connection.js`. -*Puoi creare un database gratuito su [MongoDB Atlas](https://www.mongodb.com/cloud/atlas).* +*Se stai avendo problemi a impostare un database gratuito con MongoDB Atlas, vedi questo tutorial.* Ora vogliamo connetterci al nostro database e metterci in ascolto delle richieste. Lo scopo è di non permettere richieste prima che il database sia connesso o nel caso ci sia un errore del database. Per farlo, dovrai includere la tua serializzazione e le rotte della tua app nel seguente codice: @@ -40,7 +40,7 @@ myDB(async client => { Assicurati di decommentare il codice di `myDataBase` in `deserializeUser`, e modifica il tuo `done(null, null)` per includere il `doc`. -Invia la tua pagina quando pensi di averlo fatto correttamente. Se dovessi incontrare degli errori, puoi controllare il progetto completato fino a questo punto [qui](https://gist.github.com/camperbot/175f2f585a2d8034044c7e8857d5add7). +Invia la tua pagina quando pensi di averlo fatto correttamente. Se stai avendo errori, puoi vedere il progetto completato fino a questo punto. # --hints-- diff --git a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/registration-of-new-users.md b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/registration-of-new-users.md index 1de778f212d..559a8aa038f 100644 --- a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/registration-of-new-users.md +++ b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/registration-of-new-users.md @@ -47,7 +47,7 @@ app.route('/register') ); ``` -Invia la tua pagina quando pensi di averlo fatto correttamente. Se incontri degli errori, puoi controllare il progetto completato fino a questo punto [qui](https://gist.github.com/camperbot/b230a5b3bbc89b1fa0ce32a2aa7b083e). +Invia la tua pagina quando pensi di averlo fatto correttamente. Se stai avendo errori, puoi vedere il progetto completato fino a questo punto. **NOTA:** Da questo punto in poi, possono sorgere problemi relativi all'uso del browser *picture-in-picture*. Se stai utilizzando un IDE online che offre una preview dell'app nell'editor, è raccomandato aprire la preview in una nuova scheda. diff --git a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/serialization-of-a-user-object.md b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/serialization-of-a-user-object.md index b466efac468..7868baefa56 100644 --- a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/serialization-of-a-user-object.md +++ b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/serialization-of-a-user-object.md @@ -28,7 +28,7 @@ passport.deserializeUser((id, done) => { NOTA: Questo `deserializeUser` genererà un errore fino a quando non imposteremo il DB nel passo successivo, quindi per ora commenta l'intero blocco e chiama `done(null, null)` nella funzione `deserializeUser`. -Invia la tua pagina quando pensi di averlo fatto correttamente. Se incontri degli errori, puoi controllare il progetto completato fino a questo punto [qui](https://gist.github.com/camperbot/7068a0d09e61ec7424572b366751f048). +Invia la tua pagina quando pensi di averlo fatto correttamente. Se stai avendo errori, puoi vedere il progetto completato fino a questo punto. # --hints-- diff --git a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/set-up-a-template-engine.md b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/set-up-a-template-engine.md index b3179a5030b..6e60de3cb60 100644 --- a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/set-up-a-template-engine.md +++ b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/set-up-a-template-engine.md @@ -10,8 +10,8 @@ dashedName: set-up-a-template-engine Lavorare su queste sfide ti porterà a scrivere il tuo codice utilizzando uno dei seguenti metodi: -- Clonare [questo repository GitHub](https://github.com/freeCodeCamp/boilerplate-advancednode/) e completare queste sfide localmente. -- Usare [la nostra bozza di progetto su Replit](https://replit.com/github/freeCodeCamp/boilerplate-advancednode) per completare queste sfide. +- Clonare questo repository GitHub e completare queste sfide localmente. +- Usare la nostra bozza di progetto su Replit per completare queste sfide. - Usare un costruttore di siti di tua scelta per completare il progetto. Assicurati di incorporare tutti i file della nostra repository GitHub. Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata da qualche parte di pubblico. Quindi invia l'URL nel campo `Solution Link`. @@ -28,7 +28,7 @@ Modifica l’argomento della dichiarazione `res.render()` nella rotta `/` in mod Se tutto è andato come previsto, la tua home page dell'app smetterà di mostrare il messaggio "`Pug template is not defined.`" e ora mostrerà un messaggio che indica che hai reso con successo il modello Pug! -Invia la tua pagina quando pensi che sia corretto. Se incontri degli errori, puoi controllare il progetto completato fino a questo punto [qui](https://gist.github.com/camperbot/3515cd676ea4dfceab4e322f59a37791). +Invia la tua pagina quando pensi che sia corretto. Se stai avendo errori, puoi vedere il progetto completato fino a questo punto. # --hints-- diff --git a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/set-up-the-environment.md b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/set-up-the-environment.md index fd58c660ee4..2ef18d20690 100644 --- a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/set-up-the-environment.md +++ b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/set-up-the-environment.md @@ -42,7 +42,7 @@ Ora prova a caricare la tua app e ad autenticarti: dovresti vedere nella console **Nota:**`io()` funziona solo quando ci si connette a un socket ospitato sullo stesso url/server. Per connettersi ad un socket esterno ospitato altrove, si utilizzerebbe `io.connect('URL');`. -Invia la tua pagina quando pensi di averlo fatto correttamente. Se dovessi incontrare degli errori, puoi controllare il progetto completato fino a questo punto [qui](https://gist.github.com/camperbot/aae41cf59debc1a4755c9a00ee3859d1). +Invia la tua pagina quando pensi di averlo fatto correttamente. Se stai avendo errori, puoi vedere il progetto completato fino a questo punto. # --hints-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/build-your-own-functions.md b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/build-your-own-functions.md index 3e43103d306..9b5e082b124 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/build-your-own-functions.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/build-your-own-functions.md @@ -14,7 +14,7 @@ dashedName: build-your-own-functions Altre risorse: -\- [Esercizio](https://www.youtube.com/watch?v=ksvGhDsjtpw) +\- Esercizio # --question-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/comparing-and-sorting-tuples.md b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/comparing-and-sorting-tuples.md index f13b1bb4cb7..714c95e40b2 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/comparing-and-sorting-tuples.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/comparing-and-sorting-tuples.md @@ -14,7 +14,7 @@ dashedName: comparing-and-sorting-tuples Altre risorse: -\- [Esercizio](https://www.youtube.com/watch?v=EhQxwzyT16E) +\- Esercizio # --question-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/data-visualization-mailing-lists.md b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/data-visualization-mailing-lists.md index 9de9e5b4b56..6d1755cfb34 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/data-visualization-mailing-lists.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/data-visualization-mailing-lists.md @@ -14,19 +14,19 @@ dashedName: data-visualization-mailing-lists Altre risorse: -\- [Esercizio: Geodata](https://www.youtube.com/watch?v=KfhslNzopxo) +\- Esercizio: Geodata -\- [Esercizio: Gmane Model](https://www.youtube.com/watch?v=wSpl1-7afAk) +\- Esercizio: Gmane Model -\- [Esercizio: Gmane Spider](https://www.youtube.com/watch?v=H3w4lOFBUOI) +\- Esercizio: Gmane Spider -\- [Esercizio: Gmane Viz](https://www.youtube.com/watch?v=LRqVPMEXByw) +\- Esercizio: Gmane Viz -\- [Esercizio: Page Rank](https://www.youtube.com/watch?v=yFRAZBkBDBs) +\- Esercizio: Page Rank -\- [Esercizio: Page Spider](https://www.youtube.com/watch?v=sXedPQ_AnWA) +\- Esercizio: Page Spider -\- [Esercizio: Page Viz](https://www.youtube.com/watch?v=Fm0hpkxsZoo) +\- Esercizio: Page Viz # --question-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/dictionaries-and-loops.md b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/dictionaries-and-loops.md index 7762caf350e..65949ff48f7 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/dictionaries-and-loops.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/dictionaries-and-loops.md @@ -14,7 +14,7 @@ dashedName: dictionaries-and-loops Altre risorse: -\- [Esercizio](https://www.youtube.com/watch?v=PrhZ9qwBDD8) +\- Esercizio # --question-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/files-as-a-sequence.md b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/files-as-a-sequence.md index f802fc8535a..0ca94fc934b 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/files-as-a-sequence.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/files-as-a-sequence.md @@ -14,7 +14,7 @@ dashedName: files-as-a-sequence Altre risorse: -\- [Esercizio](https://www.youtube.com/watch?v=il1j4wkte2E) +\- Esercizio # --question-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/intermediate-expressions.md b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/intermediate-expressions.md index 0504cfd9294..597ecfbf423 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/intermediate-expressions.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/intermediate-expressions.md @@ -14,9 +14,9 @@ dashedName: intermediate-expressions Altre risorse: -\- [Esercizio 1](https://youtu.be/t_4DPwsaGDY) +\- Esercizio 1 -\- [Esercizio 2](https://youtu.be/wgkC8SxraAQ) +\- Esercizio 2 # --question-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/intermediate-strings.md b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/intermediate-strings.md index e31e7e7139d..5e56ee56134 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/intermediate-strings.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/intermediate-strings.md @@ -14,7 +14,7 @@ dashedName: intermediate-strings Altre risorse: -\- [Esercizio](https://www.youtube.com/watch?v=1bSqHot-KwE) +\- Esercizio # --question-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/introduction-why-program.md b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/introduction-why-program.md index 8ceff9d8cc3..e5422148a7b 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/introduction-why-program.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/introduction-why-program.md @@ -18,9 +18,9 @@ dashedName: introduction-why-program Altre risorse: -\- [Installare Python su Windows](https://youtu.be/F7mtLrYzZP8) +\- Installare Python su Windows -\- [Installare Python su MacOS](https://youtu.be/wfLnZP-4sZw) +\- Installare Python su MacOS # --question-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/iterations-more-patterns.md b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/iterations-more-patterns.md index 4cdf7e6d772..d9b71b7447b 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/iterations-more-patterns.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/iterations-more-patterns.md @@ -14,7 +14,7 @@ dashedName: iterations-more-patterns Altre risorse: -\- [Esercizio](https://www.youtube.com/watch?v=kjxXZQw0uPg) +\- Esercizio # --question-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/more-conditional-structures.md b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/more-conditional-structures.md index df497a6db5c..1eee5774ce6 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/more-conditional-structures.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/more-conditional-structures.md @@ -14,9 +14,9 @@ dashedName: more-conditional-structures Altre risorse: -\- [Esercizio 1](https://www.youtube.com/watch?v=crLerB4ZxMI) +\- Esercizio 1 -\- [Esercizio 2](https://www.youtube.com/watch?v=KJN3-7HH6yk) +\- Esercizio 2 # --question-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/networking-web-scraping-with-python.md b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/networking-web-scraping-with-python.md index 51c90fcdfe3..d595916480c 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/networking-web-scraping-with-python.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/networking-web-scraping-with-python.md @@ -14,11 +14,11 @@ dashedName: networking-web-scraping-with-python Altre risorse: -\- [Esercizio: socket1](https://www.youtube.com/watch?v=dWLdI143W-g) +\- Esercizio: socket1 -\- [Esercizio: urllib](https://www.youtube.com/watch?v=8yis2DvbBkI) +\- Esercizio: urllib -\- [Esercizio: urllinks](https://www.youtube.com/watch?v=g9flPDG9nnY) +\- Esercizio: urllinks # --question-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/relational-databases-and-sqlite.md b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/relational-databases-and-sqlite.md index 674a303caa1..bc81a20f0a4 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/relational-databases-and-sqlite.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/relational-databases-and-sqlite.md @@ -12,9 +12,9 @@ dashedName: relational-databases-and-sqlite # --description-- -[Scarica SQLite](https://www.sqlite.org/download.html) -[Scarica DB Browser per SQLite](https://sqlitebrowser.org/dl/) -[Uso di SQLite](https://www.sqlite.org/famous.html) +Scarica SQLite +Scarica DB Browser per SQLite +Uso di SQLite # --question-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/relational-databases-many-to-many-relationships.md b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/relational-databases-many-to-many-relationships.md index 085d8611684..5ff841c53ae 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/relational-databases-many-to-many-relationships.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/relational-databases-many-to-many-relationships.md @@ -14,15 +14,15 @@ dashedName: relational-databases-many-to-many-relationships Altre risorse: -\- [Esercizio: Email](https://www.youtube.com/watch?v=uQ3Qv1z_Vao) +\- Esercizio: Email -\- [Esercizio: Roster](https://www.youtube.com/watch?v=qEkUEAz8j3o) +\- Esercizio: Roster -\- [Esercizio: Tracce](https://www.youtube.com/watch?v=I-E7avcPeSE) +\- Esercizio: Tracce -\- [Esercizio: Twfriends](https://www.youtube.com/watch?v=RZRAoBFIH6A) +\- Esercizio: Twfriends -\- [Esercizio: Twspider](https://www.youtube.com/watch?v=xBaJddvJL4A) +\- Esercizio: Twspider # --question-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/strings-and-lists.md b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/strings-and-lists.md index 535bddf779d..25ed451a8a5 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/strings-and-lists.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/strings-and-lists.md @@ -14,7 +14,7 @@ dashedName: strings-and-lists Altre risorse: -\- [Esercizio](https://www.youtube.com/watch?v=-9TfJF2dwHI) +\- Esercizio # --question-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/web-services-api-rate-limiting-and-security.md b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/web-services-api-rate-limiting-and-security.md index 282271fe781..92d2818e99c 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/web-services-api-rate-limiting-and-security.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/python-for-everybody/web-services-api-rate-limiting-and-security.md @@ -14,13 +14,13 @@ dashedName: web-services-api-rate-limiting-and-security Altre risorse: -\- [Esercizio: GeoJSON](https://www.youtube.com/watch?v=TJGJN0T8tak) +\- Esercizio: GeoJSON -\- [Esercizio: JSON](https://www.youtube.com/watch?v=vTmw5RtfGMY) +\- Esercizio: JSON -\- [Esercizio: Twitter](https://www.youtube.com/watch?v=2c7YwhvpCro) +\- Esercizio: Twitter -\- [Esercizio: XML](https://www.youtube.com/watch?v=AopYOlDa-vY) +\- Esercizio: XML # --question-- diff --git a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/ask-browsers-to-access-your-site-via-https-only-with-helmet.hsts.md b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/ask-browsers-to-access-your-site-via-https-only-with-helmet.hsts.md index f8c54784b3e..450d1f932e9 100644 --- a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/ask-browsers-to-access-your-site-via-https-only-with-helmet.hsts.md +++ b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/ask-browsers-to-access-your-site-via-https-only-with-helmet.hsts.md @@ -8,7 +8,7 @@ dashedName: ask-browsers-to-access-your-site-via-https-only-with-helmet-hsts # --description-- -Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), o clonato da [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). +Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su Replit, o clonato da GitHub. HTTP Strict Transport Security (HSTS) è una politica di sicurezza web che aiuta a proteggere i siti Web dagli attacchi di downgrade del protocollo e dal dirottamento dei cookie. Se è possibile accedere al sito web tramite HTTPS è possibile chiedere ai browser dell’utente di evitare di utilizzare HTTP non protetto. Impostando l'intestazione Strict-Transport-Security, si dice ai browser di utilizzare HTTPS per le future richieste in un determinato lasso di tempo. Questo funzionerà per le richieste pervenute dopo la richiesta iniziale. diff --git a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/avoid-inferring-the-response-mime-type-with-helmet.nosniff.md b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/avoid-inferring-the-response-mime-type-with-helmet.nosniff.md index af41e052097..48cba30b9dd 100644 --- a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/avoid-inferring-the-response-mime-type-with-helmet.nosniff.md +++ b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/avoid-inferring-the-response-mime-type-with-helmet.nosniff.md @@ -8,7 +8,7 @@ dashedName: avoid-inferring-the-response-mime-type-with-helmet-nosniff # --description-- -Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), o clonato da [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). I browser possono usare lo sniffing del contenuto o del MIME per sovrascrivere le intestazioni `Content-Type` per indovinare ed elaborare i dati utilizzando un tipo di contenuto implicito. Anche se questo può essere conveniente in alcuni scenari, può anche portare ad alcuni attacchi pericolosi. Questo middleware imposta l'intestazione X-Content-Type-Options a `nosniff`, istruendo il browser di non bypassare il tipo di contenuto fornito `Content-Type`. +Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su Replit, o clonato da GitHub. I browser possono usare lo sniffing del contenuto o del MIME per sovrascrivere le intestazioni `Content-Type` per indovinare ed elaborare i dati utilizzando un tipo di contenuto implicito. Anche se questo può essere conveniente in alcuni scenari, può anche portare ad alcuni attacchi pericolosi. Questo middleware imposta l'intestazione X-Content-Type-Options a `nosniff`, istruendo il browser di non bypassare il tipo di contenuto fornito `Content-Type`. # --instructions-- diff --git a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/configure-helmet-using-the-parent-helmet-middleware.md b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/configure-helmet-using-the-parent-helmet-middleware.md index 86e7ca0ebc2..439e5f2dfea 100644 --- a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/configure-helmet-using-the-parent-helmet-middleware.md +++ b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/configure-helmet-using-the-parent-helmet-middleware.md @@ -8,7 +8,7 @@ dashedName: configure-helmet-using-the-parent-helmet-middleware # --description-- -Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), o clonato da [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). +Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su Replit, o clonato da GitHub. `app.use(helmet())` includerà automaticamente tutto il middleware introdotto sopra, tranne `noCache()`, e `contentSecurityPolicy()`, ma questi possono essere abilitati se necessario. È inoltre possibile disabilitare o configurare qualsiasi altro middleware singolarmente, utilizzando un oggetto di configurazione. diff --git a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/disable-client-side-caching-with-helmet.nocache.md b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/disable-client-side-caching-with-helmet.nocache.md index 636a5affb0d..0a59b935915 100644 --- a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/disable-client-side-caching-with-helmet.nocache.md +++ b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/disable-client-side-caching-with-helmet.nocache.md @@ -8,7 +8,7 @@ dashedName: disable-client-side-caching-with-helmet-nocache # --description-- -Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), o clonato da [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). +Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su Replit, o clonato da GitHub. Se stai rilasciando un aggiornamento per il tuo sito web, e vuoi che gli utenti scarichino sempre la versione più recente, puoi (provare a) disabilitare la cache sul browser del client. Può essere utile anche in fase di sviluppo. Il caching ha benefici sulle prestazioni, che perderai, quindi usa questa opzione solo quando c'è una vera necessità. diff --git a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/disable-dns-prefetching-with-helmet.dnsprefetchcontrol.md b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/disable-dns-prefetching-with-helmet.dnsprefetchcontrol.md index 0cabfe45fbf..6c03f0fa6d5 100644 --- a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/disable-dns-prefetching-with-helmet.dnsprefetchcontrol.md +++ b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/disable-dns-prefetching-with-helmet.dnsprefetchcontrol.md @@ -8,7 +8,7 @@ dashedName: disable-dns-prefetching-with-helmet-dnsprefetchcontrol # --description-- -Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), o clonato da [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). +Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su Replit, o clonato da GitHub. Per migliorare le prestazioni, la maggior parte dei browser precarica i record DNS per i link in una pagina. In questo modo l'ip di destinazione è già noto quando l'utente fa clic su un link. Questo può portare ad un uso eccessivo del servizio DNS (se possedete un grande sito web, visitato da milioni di persone…), problemi di privacy (un origliatore potrebbe dedurre che sei su una determinata pagina), o un'alterazione delle statistiche di pagina (alcuni link possono apparire visitati anche se non lo sono). Se hai esigenze di sicurezza elevata, è possibile disabilitare il precaricamento DNS, al costo di una perdita di prestazioni. diff --git a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md index 7a4026bc2d6..4074c13d7ed 100644 --- a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md +++ b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md @@ -8,7 +8,7 @@ dashedName: hash-and-compare-passwords-asynchronously # --description-- -Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su [Replit](https://replit.com/github/freeCodeCamp/boilerplate-bcrypt), o clonato da [GitHub](https://github.com/freeCodeCamp/boilerplate-bcrypt/). +Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su Replit, o clonato da GitHub. Poiché la crittografia è progettata per essere ad alta intensità computazionale, si consiglia di farlo in modo asincrono sul server per evitare di bloccare le connessioni in entrata mentre si fa l'hash (letteralmente, lo "sminuzzamento") di una password. Tutto quello che devi fare per crittografare una password in modo asincrono è chiamare diff --git a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-synchronously.md b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-synchronously.md index ddc19624c6b..c17a9a5fdc2 100644 --- a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-synchronously.md +++ b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-synchronously.md @@ -8,7 +8,7 @@ dashedName: hash-and-compare-passwords-synchronously # --description-- -Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su [Replit](https://replit.com/github/freeCodeCamp/boilerplate-bcrypt), o clonato da [GitHub](https://github.com/freeCodeCamp/boilerplate-bcrypt/). +Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su Replit, o clonato da GitHub. L' hashing sincrono è altrettanto facile da fare, ma può causare ritardo se lo si utilizza dal lato server con un costo elevato o con hashing fatto molto spesso. Crittografare con questo metodo è facile come chiamare diff --git a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/hide-potentially-dangerous-information-using-helmet.hidepoweredby.md b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/hide-potentially-dangerous-information-using-helmet.hidepoweredby.md index ba8f4b83002..972c9ff8d73 100644 --- a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/hide-potentially-dangerous-information-using-helmet.hidepoweredby.md +++ b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/hide-potentially-dangerous-information-using-helmet.hidepoweredby.md @@ -8,7 +8,7 @@ dashedName: hide-potentially-dangerous-information-using-helmet-hidepoweredby # --description-- -Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), o clonato da [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). +Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su Replit, o clonato da GitHub. Gli hacker possono sfruttare le vulnerabilità conosciute in Express/Node se vedono che il tuo sito è alimentato da Express. `X-Powered-By: Express` viene inviato in ogni richiesta proveniente da Express per impostazione predefinita. Usa il middleware `helmet.hidePoweredBy()` per rimuovere l'intestazione X-Powered-By. diff --git a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md index 940e120461e..2416bf15c9c 100644 --- a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md +++ b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md @@ -10,8 +10,8 @@ dashedName: install-and-require-helmet Lavorare su queste sfide ti porterà a scrivere il tuo codice utilizzando uno dei seguenti metodi: -- Clonare [questo repository GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/) e completare queste sfide localmente. -- Usare [la nostra bozza di progetto su Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec) per completare queste sfide. +- Clonare questo repository GitHub e completare queste sfide localmente. +- Usare la nostra bozza di progetto su Replit per completare queste sfide. - Usare un costruttore di siti a tua scelta per completare il progetto. Assicurati di incorporare tutti i file del nostro repository GitHub. Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo `Solution Link`. diff --git a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/mitigate-the-risk-of-clickjacking-with-helmet.frameguard.md b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/mitigate-the-risk-of-clickjacking-with-helmet.frameguard.md index 63726510bda..f26d5d7f620 100644 --- a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/mitigate-the-risk-of-clickjacking-with-helmet.frameguard.md +++ b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/mitigate-the-risk-of-clickjacking-with-helmet.frameguard.md @@ -8,7 +8,7 @@ dashedName: mitigate-the-risk-of-clickjacking-with-helmet-frameguard # --description-- -Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), o clonato da [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). +Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su Replit, o clonato da GitHub. La tua pagina potrebbe essere inserita in un `` o `