27 Commits
Author SHA1 Message Date
BachoSeven 83431a0373 chore: fix icons of temporarily inactive sites 2026-10-01 01:49:25 +02:00
Fran314 bf9709c689 updated recovery instructions for 2FA
continuous-integration/drone/push Build is passing
2025-12-05 11:48:38 +01:00
Luca Lombardo 4cbfc828c0 Add recovery instructions for Unipi account access without 2FA
continuous-integration/drone/push Build is passing
2025-12-05 10:59:52 +01:00
Luca Lombardo 8fddadb098 aggiunte domande istgeom valeria
continuous-integration/drone/push Build is passing
2025-09-17 12:02:31 +02:00
aziis98 6e615d6874 mobile video fix
continuous-integration/drone/push Build is passing
2025-09-14 01:34:17 +02:00
aziis98 54d95b9c59 minor drone lint fix
continuous-integration/drone/push Build is passing
2025-09-14 00:38:57 +02:00
aziis98 21260f1a85 ok forse bastava solo usare alpine dall'inizio
continuous-integration/drone/push Build is passing
2025-09-14 00:36:00 +02:00
aziis98 10bcde22bf yeee forse ora funge
continuous-integration/drone/push Build is passing
2025-09-14 00:34:10 +02:00
aziis98 7c9d1e3fcc debugging 12
continuous-integration/drone/push Build is passing
2025-09-14 00:30:44 +02:00
aziis98 e355a29ae9 debugging 11
continuous-integration/drone/push Build is failing
2025-09-14 00:25:35 +02:00
aziis98 22c8357282 debugging 10
continuous-integration/drone/push Build is failing
2025-09-14 00:24:26 +02:00
aziis98 3308e10981 debugging 9
continuous-integration/drone/push Build is failing
2025-09-14 00:23:38 +02:00
aziis98 176bad6d51 debugging 8
continuous-integration/drone/push Build is failing
2025-09-14 00:20:56 +02:00
aziis98 f7076759e1 debugging 7
continuous-integration/drone/push Build is failing
2025-09-14 00:15:05 +02:00
aziis98 5eb8e3fc85 debugging 6
continuous-integration/drone/push Build is failing
2025-09-14 00:07:49 +02:00
aziis98 85a144b6d0 debugging 5
continuous-integration/drone/push Build is failing
2025-09-14 00:05:38 +02:00
aziis98 f99a7389be debugging 4
continuous-integration/drone/push Build is failing
2025-09-14 00:05:01 +02:00
aziis98 ff966c31a8 debugging 3
continuous-integration/drone/push Build is failing
2025-09-13 23:51:23 +02:00
aziis98 e5821067b1 debugging 2
continuous-integration/drone/push Build is failing
2025-09-13 23:34:43 +02:00
aziis98 655a4c5b22 debugging
continuous-integration/drone/push Build is failing
2025-09-13 23:32:58 +02:00
aziis98 40673661cf updated .drone.yml
continuous-integration/drone/push Build is failing
2025-09-13 23:26:41 +02:00
aziis98 969e8bea35 updated .drone.yml
continuous-integration/drone/push Build is failing
2025-09-13 23:25:26 +02:00
aziis98 d409e83ccb fix drone maybe
continuous-integration/drone/push Build is failing
2025-09-13 23:16:11 +02:00
aziis98 abd12dd2f3 updated more packages
continuous-integration/drone/push Build is failing
2025-09-13 23:05:39 +02:00
aziis98 cc77ec90cc minor guide update
continuous-integration/drone/push Build is failing
2025-09-13 22:57:10 +02:00
aziis98 b8eb2eb7bf fixed build error, updated packages and astro, minor code updates 2025-09-13 22:54:29 +02:00
BachoSeven 18f6df7c4d feat: Add SSH print guide; add Meme news.
continuous-integration/drone/push Build is failing
2025-09-13 19:23:59 +02:00
29 changed files with 13171 additions and 11221 deletions
+7 -3
View File
@@ -7,15 +7,19 @@
kind: pipeline
name: default
type: docker
steps:
- name: deploy
image: node:latest
image: node:22-alpine
volumes:
- name: host-website-dist
path: /mnt/website
commands:
- npm install
- uname -a
- node -v
- npm ci
- node -e 'import Sharp from "sharp"; console.log(Sharp)'
- npm run build
- cp -rT ./dist /mnt/website
@@ -32,8 +36,8 @@ trigger:
---
kind: pipeline
type: exec # this job is executed on the host machine
name: caddy-permissions
type: exec # this job is executed on the host machine
depends_on:
- default
BIN
View File
Binary file not shown.
+12476 -11121
View File
File diff suppressed because it is too large Load Diff
+26 -23
View File
@@ -11,41 +11,44 @@
},
"dependencies": {
"@astrojs/check": "^0.9.4",
"@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",
"@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",
"@phosphor-icons/core": "^2.1.1",
"@phosphor-icons/react": "^2.1.7",
"@preact/signals": "^1.3.0",
"@phosphor-icons/react": "^2.1.10",
"@preact/signals": "^1.3.2",
"@types/jsdom": "^21.1.7",
"astro": "5.1.0",
"fuse.js": "^7.0.0",
"katex": "^0.16.9",
"astro": "^5.13.7",
"fuse.js": "^7.1.0",
"katex": "^0.16.22",
"lucide-static": "^0.468.0",
"marked": "^15.0.6",
"preact": "^10.19.6",
"typescript": "^5.3.3"
"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"
},
"devDependencies": {
"@astrojs/mdx": "4.0.2",
"@astrojs/mdx": "^4.3.5",
"@rollup/plugin-yaml": "^4.1.2",
"@types/katex": "^0.16.7",
"jsdom": "^24.1.1",
"linkedom": "^0.18.4",
"jsdom": "^24.1.3",
"linkedom": "^0.18.12",
"npm-run-all": "^4.1.5",
"prettier": "^3.5.0",
"prettier": "^3.6.2",
"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.71.1",
"tsx": "^4.7.1"
"sass": "^1.92.1",
"tsx": "^4.20.5"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 877 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

+7 -1
View File
@@ -41,7 +41,13 @@ export const ComboBox = ({
<PhosphorIcon name="caret-down" />
</div>
{open && (
<div class={clsx('dropdown', cloak && 'invisible')} ref={el => el && setItemWidth(el.offsetWidth)}>
<div
class={clsx('dropdown', cloak && 'invisible')}
ref={el => {
if (!el) return
setItemWidth(el.offsetWidth)
}}
>
{Object.keys(children).map(key => (
<div
class="option"
+2 -2
View File
@@ -1,5 +1,5 @@
import { useEffect, useState } from 'preact/hooks'
import { Funnel } from '@phosphor-icons/react'
import { FunnelIcon } 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">
<Funnel />
<FunnelIcon />
<strong>Filtra Tag</strong>
</div>
<div class="flex-row-wrap">
-1
View File
@@ -1,5 +1,4 @@
import { useState, useEffect } from 'preact/hooks'
import { render } from 'preact'
// Tipi per la gestione dei dati
type TipoStudente = 'triennale' | 'magistrale'
+2 -2
View File
@@ -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
},
+12 -12
View File
@@ -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,
}
@@ -0,0 +1,80 @@
---
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 -1
View File
@@ -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
---
@@ -0,0 +1,46 @@
---
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.
@@ -0,0 +1,34 @@
---
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)
View File
+402 -8
View File
@@ -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,6 +1117,400 @@ 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
@@ -2131,25 +2525,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
+35 -27
View File
@@ -11,7 +11,11 @@ import Card from '@/components/Card.astro'
const news = await getCollection('news')
const galleryCollage = await Astro.glob('@/assets/gallery/*.jpg')
// const galleryCollage = await Astro.glob('@/assets/gallery/*.jpg')
const galleryCollage: { default: ImageMetadata }[] = Object.values(
import.meta.glob('@/assets/gallery/*.jpg', { eager: true }),
)
---
<PageLayout title="PHC" pageTags="homepage">
@@ -47,21 +51,23 @@ const galleryCollage = await Astro.glob('@/assets/gallery/*.jpg')
<div class="card-list">
{
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>
))
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>
))
}
</div>
@@ -94,9 +100,9 @@ const galleryCollage = await Astro.glob('@/assets/gallery/*.jpg')
</ProjectCard> -->
<ProjectCard
title="Orario"
href="https://lab.phc.dm.unipi.it/orario/"
href="https://orario.phc.dm.unipi.it/"
style="--card-bg: #75ca75; --masonry-height: 1;"
imgSrc="https://lab.phc.dm.unipi.it/orario/icon.png"
imgSrc="https://orario.phc.dm.unipi.it/icon.png"
>
<p>
Questo sito permette di visualizzare il proprio orario delle lezioni, con informazioni sui docenti e
@@ -105,9 +111,9 @@ const galleryCollage = await Astro.glob('@/assets/gallery/*.jpg')
</ProjectCard>
<ProjectCard
title="Problemi"
href="https://lab.phc.dm.unipi.it/problemi/"
href="https://problemi.phc.dm.unipi.it/"
style="--card-bg: #aa88c0; --masonry-height: 2;"
imgSrc="https://lab.phc.dm.unipi.it/problemi/favicon/android-chrome-512x512.png"
imgSrc="https://problemi.phc.dm.unipi.it/favicon/android-chrome-512x512.png"
>
<p>Bacheca di problemi di Matematica da risolvere, inviandone le soluzioni in LaTeX.</p>
<p>Di sera, puoi leggere i problemi sullo schermo del Dipartimento in atrio.</p>
@@ -116,7 +122,7 @@ const galleryCollage = await Astro.glob('@/assets/gallery/*.jpg')
title='Cluster "Steffè"'
href="http://steffe.cs.dm.unipi.it/"
style="--masonry-height: 2;"
imgSrc="https://steffe.lb.cs.dm.unipi.it/assets/img/logo.png"
imgSrc="/images/steffe-logo.png"
>
<p>
Cluster progettato ed assemblato durante il progetto speciale per la didattica "Calcolo Parallelo
@@ -146,7 +152,7 @@ const galleryCollage = await Astro.glob('@/assets/gallery/*.jpg')
title="GGWP"
href="https://ggwp.phc.dm.unipi.it/"
style="--card-bg: rgb(255, 157, 65); --masonry-height: 2;"
imgSrc="https://ggwp.phc.dm.unipi.it/ggwp-icon.png"
imgSrc="/images/ggwp-icon.png"
>
<p>
Sito per il tabellone del GGWP, utilizzato durante la gara di Novembre 2024 dagli organizzatori per
@@ -157,7 +163,7 @@ const galleryCollage = await Astro.glob('@/assets/gallery/*.jpg')
title="Chat"
href="https://chat.phc.dm.unipi.it/"
style="--card-bg: #383838; --card-fg: #ddd; --masonry-height: 1;"
imgSrc="https://chat.phc.dm.unipi.it/favicon.png"
imgSrc="/images/chat-favicon.png"
>
<p>Istanza di Open-WebUI, una chat stile ChatGPT con alcuni LLM self-hostati dal PHC.</p>
</ProjectCard>
@@ -198,14 +204,16 @@ const galleryCollage = await Astro.glob('@/assets/gallery/*.jpg')
{
galleryCollage.map((module, i) => {
const src = module.default.src
const filename = src.split('/').at(-1).split('?').at(0).split('.').at(0)
const filename = src.split('/').at(-1)?.split('?').at(0)?.split('.').at(0)
if (!filename) return null
const [rows, cols] = filename.includes('@')
? filename
? (filename
.split('@')
.at(-1)
.split('x')
.map((s: string) => parseInt(s))
?.split('x')
.map((s: string) => parseInt(s)) ?? [1, 1])
: [1, 1]
return (
+16 -14
View File
@@ -12,21 +12,23 @@ const news = await getCollection('news')
<h1><a href="/notizie">Notizie</a></h1>
<div class="card-list">
{
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',
})}
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>
</div>
<div class="text">{newsItem.data.description}</div>
</div>
))
))
}
</div>
</PageLayout>
+14
View File
@@ -1042,6 +1042,20 @@ $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;
}
View File
+4 -4
View File
@@ -13,10 +13,6 @@
min-height: calc(100vh - 10rem);
}
/* display: flex;
flex-direction: column;
align-items: center; */
& {
display: grid;
grid-auto-flow: row;
@@ -168,6 +164,10 @@
color: #000d;
}
}
.card {
grid-template-rows: auto auto 1fr;
}
}
section.projects {
+7 -2
View File
@@ -146,7 +146,8 @@
}
}
img {
img,
video {
display: block;
margin: 0 auto;
@@ -156,7 +157,7 @@
border: 2px solid #333;
border-radius: 0.25rem;
box-shadow: 0.25rem 0.25rem 0 0 #333;
/* background: color-mix(in lab, var(--card-base-internal, #ededed), #fff 20%); */
background: #000;
&.fill {
width: 100%;
@@ -173,6 +174,10 @@
}
}
video {
margin: 1rem auto;
}
p:first-child {
margin-top: 0;
}