Rinominare la cartella utente di Windows

Se c’è qualche maniaco dell’ordine, almeno quello apparente, magari troverà utile questo articolo.

Non vi è mai capitato di voler rinominare il vostro utente windows? Un’operazione molto facile dal pannello di controllo, ma i più pignoli avranno notato che la home dell’utente, di solito C:/Users/nomeutente, non si aggiorna col nuovo nome. Questo naturalmente non è un problema, ma a qualcuno potrebbe dar fastidio… un maniaco per l’appunto!

Comunque c’è una veloce soluzione al problema. Serve solamente un account con privilegi di amministratore che sia diverso da quello che vogliamo modificare. Ecco cosa fare:

  1. avviare il pc in modalità provvisoria
  2. loggarsi come utente amministrativo (non con l’utente da modificare)
  3. dal pannello di controllo modificare il nome dell’utente
  4. rinominare la cartella utente
  5. nel registro di sistema cercare la chiave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\
    Al suo interno ci sono alcune chiavi che cominciano con “S-1-5-”, tra queste trovare la chiave contenente il valore di ProfileImagePath corrispondente alla cartella che abbiamo rinominato e cambiarlo col nome nuovo.
  6. riavviare
  7. fine!

Naturalmente quest’operazione è delicata e deve essere fatta solo da chi sa cosa sta facendo. Inoltre sarà probabile la rottura di link vari, configurazioni, ecc.. Quindi fate attenzione.

Immagini con background CSS

Un trucchettino, una banalità che però può essere comoda ed efficace.

Se si deve aggiungere a molte immagini, per esempio una galleria, alcuni elementi aggiuntivi come ombre o cornici, si può aggiungere semplicemente del padding e un background al tag img che contiene ciò che interessa, volendo selezionandolo con una classe.

In questo modo possiamo dare degli effetti senza manipolare l’html della pagina e senza andare ad aggiungere div inutili.

Questa tecnica è testata con IE6+, FF3.6+, Chrome e Safari, ha però il limite di non essere molto flessibile, se per esempio si volesse aggiungere una cornice è necessario che ogni immagine abbia le stesse dimensioni.

Questo limite può essere superato utilizzando la proprietà CSS3 che ci permette di usare più di un background per ogni elemento del DOM, però così facendo si perde la retro-compatibilità coi browser più vecchi.

MySql import-export

Come fare dei rapidi import export.

mysqldump -u username -p database_name > dump.sql
mysql -u username -p database_name < dump.sql

Naturalmente il primo comando è per l’export e il secondo per l’import come potete ben notare dalla direzione delle parentesi angolari.

Il parametro -p serve solamente se l’utente ha una password, ma consiglio caldamente di non trovarsi mai nel caso in cui non serva.

Gli utenti di Google Chrome

Io sono un utilizzatore di Gmail e Google Chrome, recentemente ho scoperto la possibilità di creare utenti su questo browser e la cosa mi è subito piaciuta.

Io ho due account gmail, uno per uso privato e uno per il lavoro, entrambe scaricano via pop3 i messaggi delle caselle che gestiscono etichettando ogni messaggio a dovere.

Naturalmente quando sono al lavoro ho bisogno di una personalizzazione del browser maggiore di quando sono a casa, soprattutto per quanto riguarda le estensioni.

Sono quindi arrivato a questa semplice configurazione:

Mi sono creato due utenti su chrome dalle impostazioni (Opzioni -> Impostazioni personali -> Utenti), uno si chiama semplicemente “Giko” e l’altro “Giko@work”. A ogni profilo è possibile abbinare un piccolo avatar per poter essere velocemente riconoscibile.

Questi due account sfruttano la sincronizzazione offerta dal browser, ciascuno sul rispettivo account gmail, sincronizzando ogni cosa, dalle password alle estensioni, dai preferiti alla cronologia. A questo punto basta attivare la sincronizzazione su tutte le nostre postazioni per avere sempre a disposizione i nostri due (o più) ambienti di lavoro/relax.

Dopo aver creato il secondo utente comparirà nella barra del browser l’avatar dell’utente attivo, per switchare basta un click per visualizzare la lista di utenti accessibili e scegliere quello che vogliamo utilizzare.

Creare utenti MySql

Un piccolo post molto banale ma che mi è spesso molto utile per dei rapidi copia-incolla.

Creare un utente MySql con relativo database e permessi corretti.

CREATE USER 'uid'@'localhost' IDENTIFIED BY 'pwd';
GRANT USAGE ON * . * TO 'uid'@'localhost' IDENTIFIED BY 'pwd';
CREATE DATABASE IF NOT EXISTS dbname;
GRANT ALL PRIVILEGES ON dbname . * TO 'uid'@'localhost';

i parametri da personalizzare sono:

  • uid: nome utente
  • pwd: password
  • dbname: nome del database

Primo sguardo a Git

Git è un VCS (Version Control System) che attualmente uso per i miei lavori. Git può essere utilizzato sia in locale che con un repository remoto per poter lavorare in team. Ecco alcune basi e istruzioni su come configurarlo e iniziare ad usarlo.

Innanzi tutto serve installare il software necessario.

yum install git-core

Oppure scarichiamo dal sito git-scm.com i file necessari.

Un paio di piccole personalizzazioni:

git config --global user.name "Nome Cognome"
git config --global user.email "indirizzoemail@dominio.it"

E ora siamo pronti per iniziare ad usare il nostro nuovo amico.

Git funziona semplicemente creando una cartella .git nella root del nostro progetto, dentro la quale salva tutto ciò che gli serve e che non è interessante ai fini di questo post.

Per prima cosa dobbiamo “inizializzare” un repository. Per fare questo dobbiamo andare nella root del nostro progetto:

cd /home/utente/progetti/progettox/

e semplicemente digitare

git init

per dire a Git di creare ciò che gli serve per iniziare a tracciare questa cartella.

Se abbiamo un repository remoto sul quale dobbiamo lavorare serve un’operazione differente:

git clone utente@server:repository.git cartellalocale

Questa istruzione prenderà il repository dal server richiesto e lo scaricherà nella cartella specificata, portando con se tutto lo storico. Se non si specifica un nome per la cartella locale ne verrà creata una nella cartella di esecuzione del comando col nome del repository.

Per collegarsi al server potrebbe essere necessario autenticarsi in qualche modo. Se c’è la possibilità di scegliere consiglio il metodo con chiave pubblica e privata via SSH.

A questo punto abbiamo un progetto con Git e possiamo iniziare a lavorarci. Quando avremo fatto abbastanza modifiche (risolto un bug, aggiunto una funzionalità, ecc..) dovremo procedere al “salvataggio” della versione del nostro software nel seguente modo:

git add .
git commit -m "Commento del commit"
  1. Il primo comando indica a git di tracciare le modifiche per tutti i file della cartella e delle sottocartelle.
  2. Il secondo salva le modifiche che abbiamo deciso di aggiungere con un messaggio descrittivo delle modifiche effettuate. Il commento è necessario, e se non lo si specifica usando il parametro -m vi comparirà una schermata di vi per farvi inserire il testo.

Ora abbiamo salvato lo stato del nostro progetto e possiamo procedere con ulteriori modifiche. Quando saremo pronti per effettuare un altro salvataggio basterà ripetere i comandi appena descritti.

Se stiamo lavorando su un progetto con un repository remoto dovremo ogni tanto (il più spesso possibile) inviare i nostri commit al server:

git push origin master

dove origin è il nome default del server remoto e master è il nome del branch che stiamo inviando. (questi termini li spiegherò in qualche articolo più avanzato)

Se stiamo lavorando in gruppo vuol dire che più persone aggiorneranno il repository remoto con le proprie modifiche, e noi dovremo scaricare questi aggiornamenti in locale. Per procedere con questa operazione, che è l’opposto della precedente, useremo

git pull origin master

Noi possiamo fare un push solo se il nostro repository locale è sincronizzato col remoto, quindi spesso sarà necessario fare dei pull per aggiornarsi. Se durante un pull git trova dei conflitti tra i file che scarica e quelli modificati in locale proverà a risolverli in modo automatico, se non dovesse riuscire si dovrà intervenire a mano per indicare il codice corretto. Naturalmente questa è un’operazione delicata, ma può essere semplicemente evitata con una buona organizzazione all’interno del gruppo, evitando che due o più persone lavorino sullo stesso pezzo di codice contemporaneamente.

Altri comandi che potrebbero essere utili sono:

  • git log - per vedere lo storico dei commit
  • git status - per vedere i file modificati dall’ultimo commit

Per gli utenti windows abituati a lavorare con interfacce grafiche posso consigliare TortoiseGit.

SSH con autenticazione a chiavi

Lavorando spesso con SSH, facendo operazioni frequenti, ci si può stancare di dover continuamente scrivere a propria password.

Per mantenere la sicurezza e allo stesso tempo semplificare le operazioni si può passare ad una modalità di autenticazione basata su crittografia asimmetrica, e quindi chiave pubblica e chiave privata.

Iniziamo con un’operazione semplice e indispensabile, generare le chiavi. Per fare ciò c’è naturalmente bisogno di una shell con supporto ssh, e basterà eseguire il seguente comando:

ssh-keygen

Questo vi porrà due domande per poter procedere:

  1. Enter file in which to save the key (/home/nomeutente/.ssh/id_rsa):
    Semplicemente il nome del file in cui salvare la chiave. Se non si specifica nulla userà il default che corrisponde al file tra parentesi.
  2. Enter passphrase (empty for no passphrase):
    Se si vuole abbinare un password alla chiave si può specificare qui. (Lo sconsiglio se dovete fare tante operazioni frequenti)

A questo punto vi troverete con due nuovi file nella cartella /home/nomeutente/.ssh/, il file chiamato ‘id_rsa’ che contiene la chiave privata e il file ‘id_rsa.pub’ che contiente la chiave pubblica.

Una volta caricata la chiave pubblica sul server si potrà procedere con una connessione digitanto nella nostra shell:

ssh -i /home/nomeutente/.ssh/id_rsa remoteuser@XXX.XXX.XXX.XXX

Volendo semplificare ulteriormente le cose possiamo creare nella nostra cartella .ssh un file ‘config’ contenente le seguenti informazioni:

Host connectionname
  User remoteuser
  HostName XXX.XXX.XXX.XXX
  IdentityFile /home/nomeutente/.ssh/id_rsa

A questo punto ci basterà digitare nella nostra shell

ssh connectionname

per eseguire la connessione all’host specificato, con il file chiave e il nome utente che abbiamo configurato.

Naturalmente si può specificare un Host per ogni server a cui dobbiamo connetterci, anche usando chiavi diverse (se non specificato ssh cerca la chiave chiamata id_rsa).

Crearsi un’istanza EC2 su AWS

Se volete un server a basso costo che sia totalmente sotto il vostro controllo vi posso consigliare Amazon Web Services, in particolare Amazon Elastic Compute Cloud (Amazon EC2).

Ora vediamo come è semplice iniziare a lavorarci.

Per prima cosa bisogna naturalmente registrarsi su AWS. Ricordatevi che AWS non è un servizio gratuito! Ad oggi Amazon offre gratuitamente l’utilizzo di alcuni servizi se usati sotto determinate soglie di utilizzo per il primo anno a partire dalla registrazione, per questo durante l’iscrizione vi verranno chiesti i dati della carta di credito. Per i prezzi in dettaglio date un occhio qui.
Una volta creato il nostro account possiamo andare nella nostra nuova console e iniziare a farci un giro.

Per creare un’istanza è molto facile, baste seguire la procedura guidata che trovate nel tab EC2 cliccando sul bottone “Launch Instance”. Questa procedura è molto semplice vi chiederà semplicemente di dare un nome alla vostra nuova creatura (per esempio “Web Server”), vi farà scaricare la chiave di sicurezza (“Key Pair”) per accedere via ssh (non perdere!! è molto importante) e vi farà scegliere che tipo di istanza volete creare. Nel mio caso ho iniziato con una istanza Amazon Linux 64bit - Basic 64-bit Amazon Linux AMI 2011.09 (AMI Id: ami-953b06e1).
Il parametro “Security Groups” assegna alla macchina un “gruppo di regole di sicurezza” che potete personalizzare liberamente. Ogni gruppo può essere assegnato a più istanze ma non si può cambiare il gruppo ad una istanza già avviata.
Oltre a questi ci sono un sacco di altri bei parametri interessanti che al momento potete ignorare.

Ora però dobbiamo accedere in qualche modo… e l’unico che abbiamo a disposizione è SSH. Ciò che ci serve è semplicemente il file che ci siamo scaricati prima e una shell sul nostro pc che abbia SSH.

Per prima cosa andiamo nella cartella .ssh dentro la home dell’utente che vogliamo utilizzare per effettuare la connessione (/home/nomeutente/.ssh/ su sistemi unix e C:\Users\nomeutente\.ssh\ su sistemi windows). Qui dobbiamo creare un file “config” (senza estensione) nel quale inseriremo il seguente codice:

Host aws
  User ec2-user
  HostName ec2-XX-XXX-XX-XXX.eu-west-1.compute.amazonaws.com
  IdentityFile /home/nomeutente/.ssh/key.pem
  • Il primo campo è il nome che diamo all’Host, e quindi al gruppo di informazioni che ci sono sotto.
  • User è l’utente che effettua l’accesso ssh.
  • HostName corrisponde all’indirizzo per poter accedere alla nostra istanza. Lo potete trovare se selezionate nella console EC2 il vostro nuovo giocattolino e date un occhio ai dettagli in cerca del DNS pubblico (“Public DNS”).
  • IdentityFile è chiaramente il percorso per raggiungere la chiave che avete scaricato in locale sul vostro pc. Io per comodità la tengo nella cartella .ssh.

Ora ci basta aprire la nostra console e digitare

ssh aws

Per finire in bellezza possiamo assegnare un IP elastico alla nostra macchina virtuale. Per fare ciò ci basta andare sulla nostra bella console AWS nel tab EC2, andare nella sezione “Elastic IPs” e cliccare “Allocate New Address”. Una volta ottenuto un IP possiamo associarlo ad una qualsiasi delle nostre istanze.

Da ora in poi potremo accedere alla nostra macchina utilizzando l’IP che gli abbiamo assegnato, e naturalmente potremmo anche aggiornare l’HostName nel file di config ssh.

Oggi ho installato WordPress

Fino ad oggi ho sempre voluto stare lontano dai cms preconfezionati che si trovano online, non ne ho mai trovato uno che soddisfasse tutte le mie richieste di usabilità, personalizzazione, semplicità, ecc.. Ho sempre preferito scrivermi tutto in casa. In questo modo ho imparato un sacco di cose, ma ormai il tempo e la voglia di scrivere sempre le stesse cose di base non c’è più.

Oggi la pigrizia mi ha sopraffatto

e ho installato WordPress. Questa mi sembra una piattaforma molto evoluta e nelle mie piccole esperienze ha guadagnano la fiducia per essere la prescelta.

Sperando che anche questo possa “fare curriculum” imparerò, o quantomeno ci proverò, ad usare WordPress su questo blog pubblicando i miei appunti. In questo modo sarò anche più comodo a cercare ciò che mi serve quando mi serve.

Nei prossimi post racconterò che casino ho fatto per installare WP su un’istanza EC2 di AWS, a partire dalla configurazione del server ftp. O forse qualcos’altro… Boh