This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 877 KiB |
@@ -0,0 +1,81 @@
|
||||
---
|
||||
id: stampare-via-ssh
|
||||
title: Stampare via SSH
|
||||
description: Istruzioni per stampare in dipartimento da remoto, tramite SSH 🖨
|
||||
author: Antonio De Lucreziis
|
||||
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
|
||||
---
|
||||
|
||||
|
||||
@@ -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-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-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-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:
|
||||
|
||||

|
||||
|
||||
<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.
|
||||
+17
-15
@@ -47,21 +47,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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -1042,6 +1042,15 @@ $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;
|
||||
}
|
||||
|
||||
.clickable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user