Malattia nel Contratto del Commercio

Un'altra di quelle cose che mi ha sconcertato...

Nel Contratto del Commercio (e parlo di quello nazionale) la malattia viene retribuita in maniera davvero singolare:

Per i primi 3 giorni viene corrisposto il 100% dello stipendio (periodo di carenza) ed è carico del datore di lavoro.

Dal 4° al 20° giorno è previsto il 75% (!) della paga: 50% a carico dell'INPS e 25% a carico del datore di lavoro.

Dal 21° giorno in poi (fino al limite di 180 giorni) è previsto nuovamente il 100% ma suddiviso tra: 66,66% INPS, 33,34% a carico del datore di lavoro.

Rinvio a un secondo post il calcolo perchè è davvero complicato.

Rimborsi chilometrici

Buono a sapersi...

In caso di trasferta al dipendente è dovuto il rimborso delle spese che ha sostenuto in base alle tabella ACI. Ma attenzione ne esistono di due tipi:

1. Costi chilometrici (Per calcolare i rimborsi al dipendente (o al professionista) che faccia uso del proprio veicolo svolgendo attività a favore del datore di lavoro.) 

http://www.aci.it/index.php?id=1850

2. Fringe benefit (Per calcolare la retribuzione in natura derivante dalla concessione di veicoli aziendali in uso ai dipendenti, per esigenze di lavoro e per esigenze private.) 

http://www.aci.it/index.php?id=93

I servizi sono accessibili direttamente dal sito dell'ACI (dove viene spiegata chiaramente la differenza): 

http://www.aci.it/index.php?id=86

 

Attenzione che i secondi sono più bassi nei primi (almeno nei casi che ho verificato). Per la mia auto addirittura si dimezzano!

Pseudoquiz - Tanti modi per fare una cosa

Stimolerei il vostro "modo di programmare". Immaginate di avere una combo su una pagina web [c#].

Vi chiedo di riempirla con i giorni della settimana sapendo che nell'applicazione ci sono molte combo di quel tipo.

La pagina web deriva da una BasePage : System.Web.UI.Page e ha un metodo già pronto richiamato dalla OnLoad che si chiama PrepareCombo().

Sentiamo varie soluzioni (ovviamente ottimizzate tempi di sviluppo con buon codice). Nei commenti sono ben accette le critiche alle soluzioni proposte.

Rinnovo patente

Vediamo di mettere in codice anche questo evento della vita quotidiana che mi è capitato proprio oggi.

Come prima idea mi verrebbe da scrivere una classe Patente non statica, istanziarla:

Patente myPatente = new Patente();

poi per il rinnovo:

myPatente.Rinnova();

dove il metodo non fa altro che aggiornare una proprietà pubblica Anni o privata _anni:

public void Rinnova()
{
     _anni += 10;
}

Questo è sbagliato per vari motivi:

1. La proprietà privata ha un nome troppo generico (cosa indicano questi anni?);

2. La nomenclatura più appropriata sarebbe Durata e non Anni;

3. Bisognerebbe aggiornarla ogni anno e per il momento non ci interessa. Ci interessa conoscere la validità non per quanti anni è ancora valida.

Già da queste riflessioni si capisce che dovremo agire su delle date. Salto quindi il passaggio di aggiornare una proprietà chiamata Durata. Cambio il codice:

public void Rinnova()
{
   _dataDiScadenza.AddYears(10);
}

Questo codice va già meglio. Leggendo però il funzionamento di rinnovo di una patente, c'è un altro errore. Cambio il codice:

public void Rinnova(DateTime dataRinnovo)
{
   _dataUltimoRinnovo = dataRinnovo;
}

E si nota subita che non occorre un metodo ma basta utilizzare il set della proprietà. Quindi semplicemente nel codice (non nella classe):

myPatente.DataUltimoRinnovo = Convert.ToDateTime(txtDataRinnovo.Text);

Soprassediamo sul Convert e sui controlli da effettuare dato che non è l'intento di questo post.

Nella classe Patente avremo invece la proprietà

public DateTime DataScadenza
{
   get {return _dataUltimoRinnovo.AddYears(10);}
}

Anche qui non mi soffermo sul giorno effettivo di scadenza. In questo caso è importante aggiungere (correggetelo con il commento appropriato con tre ///):

// Indica la data di scadenza della patente calcolata come data del rinnovo incrementata di 10 anni.

public DateTime DataScadenza

{

   get {return _dataUltimoRinnovo.AddYears(10);}

}

 

Ovviamente quel 10 non va bene cablato nel codice. E' risaputo inoltre che la durata dipende dall'età della persona; d'altro canto una patente esiste se collegata a una persona. Il rapporto è 1 a 1 (spero). Su un ipotetico database sarebbe (imho) mettere la fk sulla tabella Patenti (quindi un IDPersona). Analogamente dovrebbe accadere nella classe. Qui si può discutere se collegare solo la data di nascita della persona o l'intera Persona. Nel primo caso, probabilmente, ci occorrerebbe anche l'IDPersona, quindi opterei per il secondo caso se non è particolarmente oneroso. Da valutare se stiamo costruendo una classe per un'applicazione specifica o una classe in stile "utility".

[continua]

 

Tutto il codice di questo articolo è scritto di getto; mi scuso per eventuali errori.

Buon Natale e Felice Anno Nuovo!

Buon Natale a tutti! Ci rivediamo l'anno prossimo! 

I programmatori colpiscono ancora

Ho comprato un appartamento da un annetto e sono subentrato al precedente proprietario a ottobre 2008. Nel rendiconto condominiale di quest'anno mi sono state addebitate (erroneamente secondo me) dei conti e conguagli antecedenti a ottobre 2008 e sono quindi andato a contestare dal mio amministratore.

Lui ha guardato nel suo software della Buffetti (mi ha detto) e ha estrapolato il conto per suddividerlo tra me e il precedente proprietario. Ha premuto un tasto e ha ottenuto un calcolo pesato in base ai giorni del rendiconto (ad esempio se il rendiconto partiva dal 1 settembre e io sono subentrato il 15 ottobre, veniva fatta la divisione del conto per il numero dei giorni tra il 1/9 e il 14/10 per il precedente proprietario, il resto per me).

Al che la mia natura di ingegnere informatico si è risvegliata: il conto non era corretto! O meglio, questo tipo di calcolo si poteva attribuire solo a determinati conti di difficile separazione rispetto alla data del 15 ottobre. Ma tutto ciò che era antecedente andava attribuito al precedente proprietario senza pesare (figuratevi alcuni conti del 2006!!!). La risposta è stata che tutti fanno così e che il programma non lo permette!!!

Che per fare una modifica ci si mette anche un anno... etc etc. Io gli ho risposto che i programmi non possono coprire tutti i casi e che per alcune questioni occorre fare i calcoli a mano proprio come avevo fatto io (io infatti avevo rifatto tutti i calcoli a manina seguendo l'esempio del rendiconto annuale). La sua risposta? E ma ora c'è il programma... questo funziona così... è prassi... Gli ho dovuto dire che ero un ingegnere informatico per far valere la mia attendibilità...

 

 

In realtà ho scoperto che il programma è ovviamente personalizzabile per determinate necessità.

Morale delle favola è sempre lo stesso: smettiamola di facilitare il lavoro degli altri e continuiamo a renderci necessari!

General naming conventions

Sarebbe bello che tutti le seguissero (per ora enuncio solo quelle basilari):

1. Scegliere nomi LEGGIBILI per gli identificatori

2. Favorire la LEGGIBILITA' e non la BREVITA' (!)

3. Usare solo caratteri alfanumerici (niente underscore)

4. Non usare la notazione ungherese (ammessa la I per le interfacce)

Un problema

Problema: caldaia rotta. Mezzo: chiamare il tecnico. Soluzione: cambio scheda, tot soldi da pagare.

Un mese dopo:

Problema: caldaia rotta. Mezzo: chiamare il tecnico. Soluzione: cambio scheda, tot soldi da pagare.

-------------------

Problema: il pc non va. Mezzo: eseguo un'operazione. Soluzione: premo reset o CTRL ALT CANC e il computer va.

Un mese dopo:

Problema: il pc non va. Mezzo: mi ingegno. Soluzione: cambio il pezzo, il computer va.

-------------------

Ma davvero siamo stati così stupidi? Perchè tutti i tecnici più comuni si devono coprire d'oro e noi continuiamo a semplificare la vita degli altri? Facciamo di tutto per renderci "inutili": è la nostra passione (e il nostro modo per dimostrare quanto siamo bravi).

Ovviamente questo vale anche nella programmazione: dai linguaggi sempre più semplici a clienti che si modificano addirittura da soli css e javascript se non direttamente l'html. Tutti ormai sono esperti e possono metter mano ovunque.

Forse sarebbe ora di aprire gli occhi...

I siti delle aziende italiane

Quando mi viene commissionato un sito, troppo spesso il cliente non ha le idee molto chiare su quello che il sito deve fare e sui risultati che vuole ottenere. L'imperativo è risparmiare e non riesce a capire i costi di ogni cosa che chiede.

Spenderebbe migliaia di euro per una campagna pubblicitaria con manifesti attaccati in città ma non spenderebbe mai la stessa cifra per un sito ben fatto, o meglio per sponsorizzare un sito ben fatto. Troppo spesso si fa un sito solo perchè gli altri lo hanno. D'altro canto si deve considerare che ancora per 10-20 anni chi paga è spesso una persona che ha fatto i soldi quando internet non esisteva, addirittura, a volte, ancora gente che a mala pena sa usare il computer.

Cosa succede allora? Iniziano a guardare i siti dei concorrenti e a richiedere le stesse cose (le vogliono tutte naturalmente), senza capire cosa sia effettivamente utile e cosa no e senza badare ai particolari. I responsabili della comunicazione? Soldi buttati (beh in parte è vero considerando l'ignoranza che vedo in giro).

"Voglio questo, questo e questo e lo voglio subito!": che errore! Alcuni siti dovrebbero avere determinate pianificazioni per quanto riguarda l'inserimento dei contenuti. Invece troppo spesso si vedono siti di aziende italiani miseri, vuoti. Aziende che vendono spazzolini  (ad esempio) con un solo modello inserito: quello di esempio ovviamente. Spesso si arriva a siti con aree riservate dove inserendo le accoppiate user/password più comuni si entra facilmente.

Ovviamente non faccio di tutta l'erba un fascio e non è sempre cosi. C'è poca attenzione anche per le traduzioni in altre lingue: eppure è sufficiente analizzare il traffico. Ho visto siti che, tradotti in russo, hanno aumentato le visite anche del 600%. Ma ho visto anche siti solo in italiano con Paypal e con accessi da tutta Europa che non vendono un prodotto.

Servirebbe tanta formazione insomma... servirebbe far capire perchè bisognerebbe investire di più. Se volessi fare pubblicità oggi la metterei su Facebook, non certo in altri siti. Secondo me attualmente è anche più efficace di google stesso.

Altre riflessioni...

La soddisfazione al termine di un lavoro deriva dal compiacimento che si ha nel guardarlo terminato e nel pensiero dell'impegno impiegato.

Ultimamente mi capita di vedere:

lavori che si ispirano al modello e alla cultura americana senza contare che siamo in Italia;

poca attenzione alla tecnologia impiegata;

poca propensione all'innovazione;

preferenza del lavoro individuale o di insiemi di individui;

troppa fretta (anche se domani ci vuole il doppio, l'importante è vedere qualcosa subito);

considerazione della pagina internet come una pagina su carta;

considerazione dell'attività in internet come sostituzione dell'attività umana;

considerazione di internet come trasferimento della realtà nella rete.

Forse bisognerebbe mettere un freno...

PS - mi sto Minudelizzando :)

«febbraio»
domlunmarmergiovensab
31123456
78910111213
14151617181920
21222324252627
28123456
78910111213