Compare commits

..

No commits in common. 'main' and 'media-pesata' have entirely different histories.

@ -7,19 +7,15 @@
kind: pipeline
name: default
type: docker
steps:
- name: deploy
image: node:22-alpine
image: node:latest
volumes:
- name: host-website-dist
path: /mnt/website
commands:
- uname -a
- node -v
- npm ci
- node -e 'import Sharp from "sharp"; console.log(Sharp)'
- npm install
- npm run build
- cp -rT ./dist /mnt/website
@ -36,8 +32,8 @@ trigger:
---
kind: pipeline
name: caddy-permissions
type: exec # this job is executed on the host machine
name: caddy-permissions
depends_on:
- default

Binary file not shown.

23597
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -11,44 +11,41 @@
},
"dependencies": {
"@astrojs/check": "^0.9.4",
"@astrojs/node": "^9.4.3",
"@astrojs/preact": "^4.1.1",
"@fontsource-variable/material-symbols-outlined": "^5.2.21",
"@fontsource/iosevka": "^5.2.5",
"@fontsource/mononoki": "^5.2.5",
"@fontsource/open-sans": "^5.2.6",
"@fontsource/source-code-pro": "^5.2.6",
"@fontsource/source-sans-pro": "^5.2.5",
"@fontsource/space-mono": "^5.2.8",
"@astrojs/node": "9.0.0",
"@astrojs/preact": "4.0.0",
"@fontsource-variable/material-symbols-outlined": "^5.1.1",
"@fontsource/iosevka": "^5.0.11",
"@fontsource/mononoki": "^5.0.11",
"@fontsource/open-sans": "^5.0.24",
"@fontsource/source-code-pro": "^5.0.16",
"@fontsource/source-sans-pro": "^5.0.8",
"@fontsource/space-mono": "^5.0.20",
"@phosphor-icons/core": "^2.1.1",
"@phosphor-icons/react": "^2.1.10",
"@preact/signals": "^1.3.2",
"@phosphor-icons/react": "^2.1.7",
"@preact/signals": "^1.3.0",
"@types/jsdom": "^21.1.7",
"astro": "^5.13.7",
"fuse.js": "^7.1.0",
"katex": "^0.16.22",
"astro": "5.1.0",
"fuse.js": "^7.0.0",
"katex": "^0.16.9",
"lucide-static": "^0.468.0",
"marked": "^15.0.12",
"node-addon-api": "^8.5.0",
"node-gyp": "^11.4.2",
"preact": "^10.27.2",
"sharp": "^0.34.3",
"typescript": "^5.9.2"
"marked": "^15.0.6",
"preact": "^10.19.6",
"typescript": "^5.3.3"
},
"devDependencies": {
"@astrojs/mdx": "^4.3.5",
"@astrojs/mdx": "4.0.2",
"@rollup/plugin-yaml": "^4.1.2",
"@types/katex": "^0.16.7",
"jsdom": "^24.1.3",
"linkedom": "^0.18.12",
"jsdom": "^24.1.1",
"linkedom": "^0.18.4",
"npm-run-all": "^4.1.5",
"prettier": "^3.6.2",
"prettier": "^3.5.0",
"prettier-plugin-astro": "^0.14.1",
"rehype-autolink-headings": "^7.1.0",
"rehype-slug": "^6.0.0",
"remark-math": "^6.0.0",
"remark-toc": "^9.0.0",
"sass": "^1.92.1",
"tsx": "^4.20.5"
"sass": "^1.71.1",
"tsx": "^4.7.1"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 877 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

@ -41,13 +41,7 @@ export const ComboBox = ({
<PhosphorIcon name="caret-down" />
</div>
{open && (
<div
class={clsx('dropdown', cloak && 'invisible')}
ref={el => {
if (!el) return
setItemWidth(el.offsetWidth)
}}
>
<div class={clsx('dropdown', cloak && 'invisible')} ref={el => el && setItemWidth(el.offsetWidth)}>
{Object.keys(children).map(key => (
<div
class="option"

@ -1,5 +1,5 @@
import { useEffect, useState } from 'preact/hooks'
import { FunnelIcon } from '@phosphor-icons/react'
import { Funnel } from '@phosphor-icons/react'
import { marked } from 'marked'
import extendedLatex from '@/client/lib/marked-latex'
@ -70,7 +70,7 @@ export const DomandeEsamiCourse = ({ course }: Props) => {
{courseTags.length > 1 && (
<div class="card filter">
<div class="grid-h">
<FunnelIcon />
<Funnel />
<strong>Filtra Tag</strong>
</div>
<div class="flex-row-wrap">

@ -1,4 +1,5 @@
import { useState, useEffect } from 'preact/hooks'
import { render } from 'preact'
// Tipi per la gestione dei dati
type TipoStudente = 'triennale' | 'magistrale'
@ -62,8 +63,7 @@ const CORSI_DISPONIBILI: Corso[] = [
{ nome: 'Fisica III', anno: '3', cfu: 6 },
{ nome: 'Geometria e topologia differenziale', anno: '3', cfu: 6 },
{ nome: 'Gruppi e rappresentazioni', anno: '3', cfu: 6 },
{ nome: 'Laboratorio computazionale', anno: '3', cfu: 6, passFailOnly: true },
{ nome: 'Laboratorio sperimentale di matematica computazionale', anno: '3', cfu: 6, passFailOnly: true },
{ nome: 'Laboratorio computazionale', anno: '3', cfu: 6 },
{ nome: 'Linguaggi di programmazione con laboratorio', anno: '3', cfu: 9 },
{ nome: 'Logica matematica', anno: '3', cfu: 6 },
{ nome: 'Matematiche elementari da un punto di vista superiore: aritmetica', anno: '3', cfu: 6 },

@ -9,7 +9,7 @@ const extBlock = options => ({
start(src) {
return src.match(/\$\$[^\$]/)?.index ?? -1
},
tokenizer(src, _tokens) {
tokenizer(src, tokens) {
const match = /^\$\$([^\$]+)\$\$/.exec(src)
return match ? { type: 'latex-block', raw: match[0], formula: match[1] } : undefined
},
@ -25,7 +25,7 @@ const extInline = options => ({
start(src) {
return src.match(/\$[^\$]/)?.index ?? -1
},
tokenizer(src, _tokens) {
tokenizer(src, tokens) {
const match = /^\$([^\$]+)\$/.exec(src)
return match ? { type: 'latex', raw: match[0], formula: match[1] } : undefined
},

@ -32,17 +32,17 @@ const guidesCollection = defineCollection({
})
// Per ora sono su un sito a parte ma prima o poi verranno migrati qui
// const seminariettiCollection = defineCollection({
// type: 'content',
// schema: z.object({
// title: z.string(),
// description: z.string(),
// author: z.string(),
// publishDate: z.date(),
// eventDate: z.date(),
// tags: z.array(z.string()),
// }),
// })
const seminariettiCollection = defineCollection({
type: 'content',
schema: z.object({
title: z.string(),
description: z.string(),
author: z.string(),
publishDate: z.date(),
eventDate: z.date(),
tags: z.array(z.string()),
}),
})
const metaCollection = defineCollection({
type: 'content',
@ -53,6 +53,6 @@ const metaCollection = defineCollection({
export const collections = {
news: newsCollection,
guides: guidesCollection,
// seminarietti: seminariettiCollection,
seminarietti: seminariettiCollection,
meta: metaCollection,
}

@ -1,80 +0,0 @@
---
id: stampare-via-ssh
title: Stampare via SSH
description: Istruzioni per stampare in dipartimento da remoto, tramite SSH 🖨
author: Antonio De Lucreziis, Francesco Minnocci
tags: [linux, ssh, stampanti]
---
Per stampare in dipartimento non bisogna per forza usare i computer dei laboratori, possiamo che stampare direttamente da remoto tramite SSH. Vediamo come fare!
Se non l'avete mai fatto per prima cosa bisogna poter accedere da remoto ad una macchina chiamata "login", il cui indirizzo è `login.dm.unipi.it`. Per fare l'accesso possiamo usare il seguente comando con l'account di Ateneo (non quello Poisson!)
```bash shell
ssh USERNAME_ATENEO@login.dm.unipi.it
```
Una volta connessi possiamo stampare utilizzando il comando `lpr` seguito dal nome del file che vogliamo stampare. Prima però serve trasferire il file che vogliamo stampare sulla macchina "login". Per fare ciò possiamo usare il comando `scp`: per prima cosa usciamo dalla macchina "login" (premere `Ctrl+D` oppure scrivendo `exit`), andiamo nella cartella dove si trova il file che vogliamo stampare e poi eseguiamo il comando:
```bash shell
scp NOME_FILE.pdf USERNAME_ATENEO@login.dm.unipi.it:~/Documents
```
Dove `NOME_FILE.pdf` è il nome del file che vogliamo stampare e `Documents` è un esempio di cartella dove vogliamo trasferirlo. Una volta trasferito il file possiamo rifare ssh su "login" e stampare il file con il comando:
```bash shell
lpr Documents/NOME_FILE.pdf
```
Alternativamente possiamo stampare direttamente il file senza trasferirlo con il comando:
```bash shell
cat NOME_FILE.pdf | ssh USERNAME_ATENEO@login.dm.unipi.it lpr OPZIONI... -
```
Qui, `[OPZIONI...]` sono le opzioni che possiamo passare a `lpr` (vedi sotto). L'ultimo trattino "`-`" è molto importante e indica che il file da stampare è quello in standard input. Più precisamente, `cat NOME_FILE.pdf` invia il contenuto del file `NOME_FILE.pdf` allo standard output e `|` lo ridireziona a input di `ssh`, che a sua volta lo passa a `lpr` via rete.
## Opzioni di `lpr`
Il comando `lpr` accetta alcune opzioni che possono essere utili:
- `-P` seguito dal nome della stampante: permette di specificare la stampante su cui stampare, le stampanti disponibili in dipartimento sono
- `cdc4` che è la stampante di default e si trova in Aula 4
- `cdclf` che si trova al piano terra nel corridoio dopo l'Aula 4
- `cdc3` che si trova in Aula 3 (è un po' vecchia ma di solito funziona)
- `-#` seguito dal numero di copie: permette di specificare il numero di copie da stampare. In realtà questa opzione non funziona per vari motivi arcani e se uno passa `-#N` per stampare $N$ copie, la stampante stampa $N^2$ copie. (Questo ha scaturito una serie di ragionamenti sul modo ottimo di decomporre $N$ come somma di quadrati [con tanto di sito di comodo](https://shortest-sum-of-squares.netlify.app/)...)
- `-o sides=two-sided-long-edge`: permette di stampare **fronte-retro** (che dovrebbe essere già il default)
- `-o sides=two-sided-short-edge`: permette di stampare fronte-retro con "la rilegatura" delle pagine sul lato corto
- `-o sides=one-sided`: permette di stampare _solo fronte_, comodo per stampare i meme di laurea
- `-o fit-to-page`: permette di ridimensionare il documento per farlo entrare in un foglio (è buona prassi passare sempre questa opzione)
- `-o media=a4`: permette di specificare il formato del foglio, di default è A4 quindi non dovrebbere servire
## Altre comodità
Stampare da remoto porta anche altre comodità, ad esempio possiamo interrompere un file che abbiamo mandato in stampa per sbaglio con il comando (sempre tutti comandi da eseguire su "login")
```bash shell
cancel -a
```
> Attenzione, il comando sopra cancella tutta la propria coda di stampa, non solo l'ultimo lavoro inviato.
Alternativamente possiamo vedere lo stato della coda di stampa con il comando
```bash shell
lpq -a
```
e cancellare un lavoro con uno specifico ID con
```bash shell
cancel ID
```

@ -1,6 +1,6 @@
---
title: Calcola la tua media ed il voto di laurea con il nuovissimo calcolatore del PHC!
description: È ora disponibile uno strumento per calcolare la propria media pesata e il voto di ammissione alla laurea secondo le regole del dipartimento.
description: È ora disponibile uno strumento per calcolare la propria media pesata e il voto di ammissione alla laurea secondo le regole del dipartimento
publishDate: 2025-06-26
---

@ -1,46 +0,0 @@
---
title: Esplora i meme dell'aula studenti online!
description: |
Gli storici meme sono stati staccati per i lavori, ma non disperare: li potrai vedere su una nuova pagina.
publishDate: 2025-06-26
---
# Esplora i meme dell'aula studenti online!
Visti gli imminenti lavori che occuperanno l'aula studenti, ad inizio Settembre tutti i meme sulle pareti sono stati staccati e riposti temporaneamente in PHC; qui sotto trovate alcuni timelapse della giornata:
<div class="grid-h-split">
<video controls>
<source src="https://static.phc.dm.unipi.it/timelapse-nord.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
<video controls>
<source src="https://static.phc.dm.unipi.it/timelapse-sud.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
<video controls>
<source src="https://static.phc.dm.unipi.it/timelapse-termosifone.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
</div>
Per questo motivo, li abbiamo scansionati ed abbiamo creato una bacheca per poter contemplare i meme dovunque voi siate 🧳
Eccovi dunque il link alla pagina, buon divertimento:
![Screenshot Bacheca](/images/misc/screenshot-bacheca.png)
<p align="center">
<a href="https://meme.phc.dm.unipi.it">meme.phc.dm.unipi.it</a>
</p>
## Coming Soon
Prima o poi faremo anche una mappa interattiva della stanza, basata sul seguente modello 3D ricostruito con tecniche di fotogrammetria:
<video controls>
<source src="https://static.phc.dm.unipi.it/3d-scan-preview.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
> Disclaimer: Se volessi rimuovere una tua immagine da questa pagina, scrivici pure a <a href="mailto:macchinisti@lists.dm.unipi.it">macchinisti@lists.dm.unipi.it</a> e ce ne occuperemo.

@ -1,34 +0,0 @@
---
title: Non avete attivato la 2FA entro il primo dicembre? Ecco come recuperare l'accesso
description: |
Se non avete attivato l'autenticazione a due fattori entro il primo dicembre, siete bloccati fuori dall'account Unipi. La procedura di recupero passa dal supporto tecnico.
publishDate: 2025-12-05
---
# Non avete attivato la 2FA entro il primo dicembre? Ecco come recuperare l'accesso
Se siamo rimasti fuori dal nostro account Unipi perché non abbiamo attivato l'autenticazione a due fattori entro il primo dicembre, il percorso di recupero è piuttosto lineare.
Il primo passo è mandare una mail a
> <a href="mailto:help.polo2@ticket.unipi.it">help.polo2@ticket.unipi.it</a>
usando un indirizzo email personale (quello di ateneo è bloccato). Nel messaggio dobbiamo specificare chiaramente il problema e includere il nostro indirizzo email d'ateneo.
Dopo aver inviato la richiesta, tocca aspettare. Il supporto tecnico resetta manualmente lo status 2FA e ci manda una conferma. A quel punto possiamo procedere con l'attivazione seguendo le istruzioni ufficiali:
> https://it.unipi.it/configurazioni/mfa/autenticazione-a-piu-fattori-mfa-microsoft-365/
**Nota tecnica:** L'app Microsoft Authenticator non è obbligatoria! Qualsiasi autenticatore compatibile con [TOTP](https://en.wikipedia.org/wiki/Time-based_one-time_password) va bene: Google Authenticator, Bitwarden, Authy e altre alternative funzionano perfettamente. L'unica differenza è che l'app Microsoft Authenticator permette di ricevere notifiche l'accesso che consente di fare login con meno click.
Per utilizzare una di queste altre app (invece di Microsoft Authenticator), seguire questi step nella creazione del metodo di autenticazione:
1. Selezionare **"Microsoft Authenticator"**
![Selezionare Microsoft Authenticator](/images/misc/microsoft-2fa-other-app-1.webp)
2. Selezionare **"Configura un'app di autenticazione diversa"**
![Selezionare app diversa](/images/misc/microsoft-2fa-other-app-2.webp)
3. A questo punto il procedimento cambia in base all'app. In generale verrà richiesto di scannerizzare un QR code e di verificare il corretto funzionamento inserendo la TOTP (codice a 6 cifre)

@ -749,7 +749,7 @@ questions:
- course: aritmetica
content: |
Quanti sono i polinomi irriducibili di grado $n$ su $\mathbb{F}_p$? (Hint: può essere utile provare prima il caso dei polinomi di secondo grado. Hint: in alternativa si possono contare i polinomi riducibili.)
Hint: Altrimenti dimostrate che
Hint: Altrimenti dimostrate che
$$\prod_{\mathclap{\substack{p(x) \text{irriducibile} \\ \deg(p(x)) | n}}} p(x) = x^{p^n} - x.$$
tags:
- 2015
@ -1061,7 +1061,7 @@ questions:
- course: ricerca-operativa
content: |
Dato il problema $\max (x_1 + 2x_2)$ soggetto ai vincoli:
Dato il problema $\max (x_1 + 2x_2)$ soggetto ai vincoli:
$$
\begin{cases}
x_2 \leq 4 \\
@ -1117,400 +1117,6 @@ questions:
tags:
- 2023
# Raccolta di Istituzioni di Geometria da Valeria
# Raccolta di Istituzioni di Geometria da Fra
- course: istituzioni-di-geometria
content: |
Intorno tubolare, esistenza
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Gruppi di Lie, esiste un unico sottogruppo connesso con data sottoalgebra
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Frobenius
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Invarianza omotopica di de Rham
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Mayer-Vietoris
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Cartan-Hadamard
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Lemma di Gauss
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Whitney
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Localmente euclideo se e solo se R=0
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Mayer-Vietoris a supporto compatto
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Orientabilità di RP^n e CP^n
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Lemma di Poincaré (dimostrare anche che mappe omotope inducono stesso pullback sulla coomologia), brevissimo accenno al caso a supporto compatto (nessuna dimostrazione)
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Cos'è il trasporto parallelo (tutti i dettagli di buona definizione a partire dalla definizione di campo parallelo)? Se metto una metrica cosa succede? (Statement delle condizioni equivalenti di compatibilità senza dimostrazione)
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Dimostra che l'algebra di Lie associata ad un gruppo di Lie è un'algebra di Lie in senso astratto (voleva giusto sentirsi dire che il bracket di campi invarianti a sinistra è invariante a sinistra senza dimostrazione)
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Teorema di corrispondenza algebre di lie
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Quando gli spazi proiettivi reali sono orientabili
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Esistenza dell'intorno tubolare (senza dimostrazione degli "esercizi")
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Dualità di Poincaré 2
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Definizione di connessione metrica e condizioni equivalenti (solo enunciato)
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Hopf-Rinow
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Isotopia Ambiente
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Differenziale Esterno
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Stokes
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Raddrizzamento simultaneo
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Definizione di fibrato tangente
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Definizione di intorno tubolare e esistenza
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Teorema di Frobenius
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Piatto se e solo se localmente isometrico
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Quando lo spazio proiettivo reale è orientabile? E quello complesso?
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Isotopia e isotopia ambiente
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Differenziale k-forme
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Corrispondenza tra sottogruppi di lie connessi e sottoalgebre di lie
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Torsione di una connessione
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Dualità di poincarè (perché la mappa DP passa in coomologia?)
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Parlare dell'algebra di Lie associata a un Gruppo di Lie
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Enunciato di Frobenius, e perché una distribuzione è integrabile sse è loc. costante
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Poincaré Dualità
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Conseguenze (Betti numeri, specchiabilità)
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Distribuzioni, esempi di distribuzioni che (non) sono embeddings
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Trasporto parallelo e geodetiche
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Esempio di varietà non geodeticamente completa, si può avere compatto? (Hopf rinow)
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Esistenza di forma volume per varietà orientate e di struttura riemanniana sui fibrati
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Definizione di foliazione
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Localmente euclidea sse piatto
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Teorema di Stokes
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Teorema di Hopf-Rinow
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Orientabilità di CP^n
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Definizione di forma volume ed esistenza
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Stokes (dim.)
tags:
- 2025
- course: istituzioni-di-geometria
content: |
isotopia e isotopia ambiente (def. + teo.)
tags:
- 2025
- course: istituzioni-di-geometria
content: |
tensore Riemann (def.)
tags:
- 2025
- course: istituzioni-di-geometria
content: |
teo. sottoalgebre di Lie
tags:
- 2025
- course: istituzioni-di-geometria
content: |
esistenza metrica Lorentziana e Riemanniana
tags:
- 2025
- course: istituzioni-di-geometria
content: |
derivata di k-forme
tags:
- 2025
- course: istituzioni-di-geometria
content: |
lemma Poincaré e teo. sull'omotopia
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Cos'è l'algebra di Lie (molto veloce)
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Cos'è la connessione di Levi Civita ed elencare le forme equivalenti di "compatibilità con la metrica"
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Definire la torsione e fare i conti per mostrare che è un tensore
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Teorema di Whitney (caso compatto e caso generale).
tags:
- 2025
- course: istituzioni-di-geometria
content: |
M ammette struttura lorentziana orientabile temporalmente sse pettinabile.
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Teorema su sottoalgebre di Lie
tags:
- 2025
- course: istituzioni-di-geometria
content: |
geodetiche (praticamente solo quale è l'equazione e perché ha senso fare la nabla di un campo su una curva)
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Frobenius, enunciato e dimostrazione (dando per scontate le def.equivalenti di foliazione)
tags:
- 2025
- course: istituzioni-di-geometria
content: |
Whitney (entrambi)
tags:
- 2025
- course: istituzioni-di-geometria
content: |
quando il proiettivo è orientabile (ed enunciato del teorema da cui segue)
tags:
- 2025
# Raccolta di Istituzioni di Geometria da Fra
- course: istituzioni-di-geometria
@ -2525,25 +2131,25 @@ questions:
- course: geometria-e-topologia-differenziale
content: |
Che cos'è un'orientazione su una varietà?
Se la varietà è connessa e orientabile, mostrare che esistono esattamente 2 orientazioni
Se la varietà è connessa e orientabile, mostrare che esistono esattamente 2 orientazioni
(se non connessa, ce n'è una per ogni componente)
tags:
- 2023
- course: geometria-e-topologia-differenziale
content: |
Per quale motivo è lecito parlare di orientazione "naturale"
Per quale motivo è lecito parlare di orientazione "naturale"
(nel senso di cosa è permesso e cosa no)?
tags:
- 2023
- course: geometria-e-topologia-differenziale
content: |
Per un diffeomorfismo da una varietà connessa su se stessa,
o ne rispetta l'orientazione, o la "flippa".
Mostrare (idee) che esiste tale $f$ che "flippa"
Per un diffeomorfismo da una varietà connessa su se stessa,
o ne rispetta l'orientazione, o la "flippa".
Mostrare (idee) che esiste tale $f$ che "flippa"
(ad esempio considerare un $f_0 : x \mapsto -x$ che flippa la sfera in $\mathbb{R}^n$
e analogamente si può fare per altre varietà in punto,
e analogamente si può fare per altre varietà in punto,
allora viene flippata sempre)
tags:
- 2023

@ -25,8 +25,7 @@
- fullName: Francesco Baldino
entranceDate: 2022
description: |
Appassionato di Star Wars, NixOS e lunghe camminate in montagna. Pokemon preferito: Latias.
description: Bla bla Star Wars
social:
github: https://github.com/Fran314
website: https://poisson.phc.dm.unipi.it/~baldino

@ -11,11 +11,7 @@ import Card from '@/components/Card.astro'
const news = await getCollection('news')
// const galleryCollage = await Astro.glob('@/assets/gallery/*.jpg')
const galleryCollage: { default: ImageMetadata }[] = Object.values(
import.meta.glob('@/assets/gallery/*.jpg', { eager: true }),
)
const galleryCollage = await Astro.glob('@/assets/gallery/*.jpg')
---
<PageLayout title="PHC" pageTags="homepage">
@ -51,23 +47,21 @@ const galleryCollage: { default: ImageMetadata }[] = Object.values(
<div class="card-list">
{
news
.sort((s, t) => -s.id.localeCompare(t.id))
.map(newsItem => (
<Card>
<a href={`/notizie/${newsItem.slug}`} class="title">
{newsItem.data.title}
</a>
<div class="text small dimmed">
{new Date(newsItem.data.publishDate).toLocaleDateString('it-IT', {
year: 'numeric',
month: 'long',
day: 'numeric',
})}
</div>
<div class="text">{newsItem.data.description}</div>
</Card>
))
news.toReversed().map(newsItem => (
<Card>
<a href={`/notizie/${newsItem.slug}`} class="title">
{newsItem.data.title}
</a>
<div class="text small dimmed">
{new Date(newsItem.data.publishDate).toLocaleDateString('it-IT', {
year: 'numeric',
month: 'long',
day: 'numeric',
})}
</div>
<div class="text">{newsItem.data.description}</div>
</Card>
))
}
</div>
@ -204,16 +198,14 @@ const galleryCollage: { default: ImageMetadata }[] = Object.values(
{
galleryCollage.map((module, i) => {
const src = module.default.src
const filename = src.split('/').at(-1)?.split('?').at(0)?.split('.').at(0)
if (!filename) return null
const filename = src.split('/').at(-1).split('?').at(0).split('.').at(0)
const [rows, cols] = filename.includes('@')
? (filename
? filename
.split('@')
.at(-1)
?.split('x')
.map((s: string) => parseInt(s)) ?? [1, 1])
.split('x')
.map((s: string) => parseInt(s))
: [1, 1]
return (

@ -12,23 +12,21 @@ const news = await getCollection('news')
<h1><a href="/notizie">Notizie</a></h1>
<div class="card-list">
{
news
.sort((s, t) => -s.id.localeCompare(t.id))
.map(newsItem => (
<div class="card">
<a href={`/notizie/${newsItem.slug}`} class="title">
{newsItem.data.title}
</a>
<div class="text small dimmed">
{new Date(newsItem.data.publishDate).toLocaleDateString('it-IT', {
year: 'numeric',
month: 'long',
day: 'numeric',
})}
</div>
<div class="text">{newsItem.data.description}</div>
news.toReversed().map(newsItem => (
<div class="card">
<a href={`/notizie/${newsItem.slug}`} class="title">
{newsItem.data.title}
</a>
<div class="text small dimmed">
{new Date(newsItem.data.publishDate).toLocaleDateString('it-IT', {
year: 'numeric',
month: 'long',
day: 'numeric',
})}
</div>
))
<div class="text">{newsItem.data.description}</div>
</div>
))
}
</div>
</PageLayout>

@ -1042,20 +1042,6 @@ $news-accent-bg: #f8e8b1;
grid-auto-flow: row;
}
.grid-h-split {
display: grid;
place-content: center;
place-items: center;
gap: 1rem;
grid-auto-flow: column;
grid-auto-columns: 1fr;
@media screen and (max-width: 1024px) {
grid-auto-flow: row;
grid-auto-columns: auto;
}
}
.clickable {
cursor: pointer;
}

@ -13,6 +13,10 @@
min-height: calc(100vh - 10rem);
}
/* display: flex;
flex-direction: column;
align-items: center; */
& {
display: grid;
grid-auto-flow: row;
@ -164,10 +168,6 @@
color: #000d;
}
}
.card {
grid-template-rows: auto auto 1fr;
}
}
section.projects {

@ -598,10 +598,6 @@
place-content: center;
gap: 0.5rem;
input[type='number'] {
min-width: 4.25rem;
}
}
> .actions {

@ -146,8 +146,7 @@
}
}
img,
video {
img {
display: block;
margin: 0 auto;
@ -157,7 +156,7 @@
border: 2px solid #333;
border-radius: 0.25rem;
box-shadow: 0.25rem 0.25rem 0 0 #333;
background: #000;
/* background: color-mix(in lab, var(--card-base-internal, #ededed), #fff 20%); */
&.fill {
width: 100%;
@ -174,10 +173,6 @@
}
}
video {
margin: 1rem auto;
}
p:first-child {
margin-top: 0;
}

Loading…
Cancel
Save