Archivio

Archive for ottobre 2010

Né più mai toccherò le sacre sponde…

A ZACINTO

Né più mai toccherò le sacre sponde
ove il mio corpo fanciulletto giacque,
Zacinto mia, che te specchi nell’onde
del greco mar da cui vergine nacque

Venere, e fea quelle isole feconde
col suo primo sorriso, onde non tacque
le tue limpide nubi e le tue fronde
l’inclito verso di colui che l’acque

cantò fatali, ed il diverso esiglio
per cui bello di fama e di sventura
baciò la sua petrosa Itaca Ulisse.

Tu non altro che il canto avrai del figlio,
o materna mia terra; a noi prescrisse
il fato illacrimata sepoltura.

(a Zacinto, 1803 –  Ugo Foscolo, Zante, 6 febbraio 1778 – Turnham Green (Londra), 10 settembre 1827)


Annunci
Categorie:Citazioni, Ludoteca Tag:

Circa un anno di Blog, …il tempo passa

BUON COMPLEANNO!

Ho iniziato a scrivere su queste pagine un po’ per scherzo e un po’ per provare il “Blog”, era il 27-10-2009 …circa un anno fa.
La Ballata del mare digitale ha fatto il suo primo compleanno 🙂

 

Categorie:Ludoteca Tag:

SQL Server [tips] – SSMS Keyboard Shortcuts

QUERY RESULTS

F5 – execute

Ctrl+T  – for Text results.

Ctrl+D  – for Grid results.

Ctrl+SHIFT+F  – results to File.

Ctrl+R  – show/hide query results pane.

*** ***
Vedi  SQL Server Management Studio Keyboard Shortcuts
http://msdn.microsoft.com/en-us/library/ms174205(v=SQL.90).aspx

Categorie:SQL Server Tag:

Project Management – Relazioni tra Process Groups e Knowledge Areas

Relazioni tra Process Groups e Knowledge Areas (vedi PMBOK® Guide 2008)

Notare che:

  • in fase di Initiating sono presenti solo 2 attività (knowledge area: Integration e Communication)
  • La knowledge area Integration interessa tutti i process groups
  • Il process group Planning contiene attività di tutte le knowledge area (come pure il process group Monitoring eccezion fatta per Human Resource)


 

SQL Server 2005 [dev] – Tutorial per concetto e istruzione PIVOT

14/10/2010 1 commento

Istruzione PIVOT introdotta dalla versione SQL Server 2005.

  • Step-1: Creazione tabelle
  • Step-2: Inserimento dati
  • Step-3: Creazione viste e stored procedure per estrazioni PIVOT
  • NOTA: Esempio di Query SENZA istruzione PIVOT

Step-1: Creazione tabelle

/****** Object:  Table [dbo].[AnagContatti]    ******/
 SET ANSI_NULLS ON
 GO
 SET QUOTED_IDENTIFIER ON
 GO
 SET ANSI_PADDING ON
 GO
 CREATE TABLE [dbo].[AnagContatti](
 [id] [int] NOT NULL,
 [Nome] [varchar](50) NOT NULL,
 [Cognome] [varchar](50) NOT NULL,
 [Note] [varchar](50) NULL,
 [DataNascita] [datetime] NULL,
 [StatoNascita] [varchar](50) NULL,
 CONSTRAINT [PK_AnagContatti] PRIMARY KEY CLUSTERED
 (
 [id] ASC
 ) ON [PRIMARY]
 ) ON [PRIMARY]
GO
 SET ANSI_PADDING OFF
/****** Object:  Table [dbo].[AnagLingue]    ******/
 SET ANSI_NULLS ON
 GO
 SET QUOTED_IDENTIFIER ON
 GO
 SET ANSI_PADDING ON
 GO
 CREATE TABLE [dbo].[AnagLingue](
 [CodLingua] [char](6) NOT NULL,
 [Lingua] [varchar](50) NOT NULL,
 [Note] [varchar](50) NULL,
 CONSTRAINT [PK_AnagLingue] PRIMARY KEY CLUSTERED
 (
 [CodLingua] ASC
 ) ON [PRIMARY]
 ) ON [PRIMARY]
GO
 SET ANSI_PADDING OFF
/****** Object:  Table [dbo].[ContattiLingue_relMM]   ******/
 SET ANSI_NULLS ON
 GO
 SET QUOTED_IDENTIFIER ON
 GO
 SET ANSI_PADDING ON
 GO
 CREATE TABLE [dbo].[ContattiLingue_relMM](
 [idContatto] [int] NOT NULL,
 [codLingua] [char](6) NOT NULL,
 CONSTRAINT [PK_ContattiLingue_relMM] PRIMARY KEY CLUSTERED
 (
 [idContatto] ASC,
 [codLingua] ASC
 ) ON [PRIMARY]
 ) ON [PRIMARY]
GO
 SET ANSI_PADDING OFF

Step-2: Inserimento dati

/******  Caricamento dati  in tab. AnagContatti ******/
 INSERT AnagContatti(id,Nome,Cognome,Note,DataNascita,StatoNascita) VALUES('1','Nicola','F','noteNF',convert(datetime,NULL,121),'Francia')
 INSERT AnagContatti(id,Nome,Cognome,Note,DataNascita,StatoNascita) VALUES('2','Giorgio','G','noteGG',convert(datetime,NULL,121),'Italia')
 INSERT AnagContatti(id,Nome,Cognome,Note,DataNascita,StatoNascita) VALUES('3','Giancarlo','F','noteGF',convert(datetime,NULL,121),'Italia')
/******  Caricamento dati  in tab. AnagLingue ******/
 INSERT AnagLingue(CodLingua,Lingua,Note) VALUES('ENG   ','Inglese','-')
 INSERT AnagLingue(CodLingua,Lingua,Note) VALUES('FR    ','Francese','-')
 INSERT AnagLingue(CodLingua,Lingua,Note) VALUES('GR    ','Greco','-')
 INSERT AnagLingue(CodLingua,Lingua,Note) VALUES('ITA   ','Italiano','-')
/******  Caricamento dati  in tab. ContattiLingue_relMM]******/
 INSERT ContattiLingue_relMM(idContatto,codLingua) VALUES('1','ENG   ')
 INSERT ContattiLingue_relMM(idContatto,codLingua) VALUES('1','GR    ')
 INSERT ContattiLingue_relMM(idContatto,codLingua) VALUES('1','ITA   ')
 INSERT ContattiLingue_relMM(idContatto,codLingua) VALUES('2','ENG   ')
 INSERT ContattiLingue_relMM(idContatto,codLingua) VALUES('2','ITA   ')
 INSERT ContattiLingue_relMM(idContatto,codLingua) VALUES('3','FR    ')
 INSERT ContattiLingue_relMM(idContatto,codLingua) VALUES('3','ITA   ')

Step-3: Creazione viste e stored procedure per estrazioni PIVOT

/****** Object:  View [dbo].[v_ContattiLingue]     ******/
 SET ANSI_NULLS ON
 GO
 SET QUOTED_IDENTIFIER ON
 GO
 CREATE VIEW [dbo].[v_ContattiLingue]
 AS
 --
 -- Vista Dati (piatta)
 -- Utilizzo: select * from [v_ContattiLingue]
 --
 SELECT  AnagContatti.Nome,
 AnagContatti.Cognome,
 AnagContatti.Note AS NoteContatto,
 AnagLingue.CodLingua,
 ISNULL(AnagLingue.Lingua, '-n.d.-') Lingua,
 ISNULL(AnagLingue.Note, '-n.d.-') NoteLingua
 FROM    AnagContatti
 INNER JOIN ContattiLingue_relMM ON AnagContatti.id = ContattiLingue_relMM.idContatto
 LEFT JOIN AnagLingue ON ContattiLingue_relMM.CodLingua = AnagLingue.CodLingua
GO
/****** Object:  View [dbo].[v_PIVOT_ContattiLingue]    ******/
 SET ANSI_NULLS ON
 GO
 SET QUOTED_IDENTIFIER ON
 GO
 CREATE VIEW [dbo].[v_PIVOT_ContattiLingue]
 AS
 --
 -- Vista PIVOT
 -- Utilizzo: select * from [v_PIVOT_ContattiLingue]
 --
 SELECT Nome AS Nome,
 [ITA], [ENG], [FR], [GR]
 FROM
 (SELECT Nome, CodLingua
 FROM v_ContattiLingue) AS SourceTable
 PIVOT
 (
 COUNT(CodLingua)
 FOR CodLingua IN ([ENG], [ITA], [FR], [GR])
 ) AS PivotTable
/****** Object:  StoredProcedure [dbo].[usp_PIVOTdinam_ContattiLingue]   *****/
 SET ANSI_NULLS ON
 GO
 SET QUOTED_IDENTIFIER OFF
 GO
CREATE  PROC [dbo].[usp_PIVOTdinam_ContattiLingue]
 AS
 --
 -- Vista PIVOT Dinamica
 -- Utilizzo: exec usp_PIVOTdinam_ContattiLingue
 --
declare @q nvarchar(max);
 declare @s varchar(max)
-- prepara Colonne dinamiche:
 -- Crea una stringa di valori separati da virgola
SET @s=''
 select @s = @s + RTRIM(CodLingua) + ',' from AnagLingue
 set @s = substring(@s, 1, len(@s)-1)
 --print 'stringaValori' + @s
----
 ---- -- prepara QUERY dinamica (classica)
 ---- SET @q=N'
 ---- SELECT Nome AS Nome,
 ----        '+@s+'
 ---- FROM
 ----     (SELECT Nome, CodLingua
 ----     FROM v_ContattiLingue) AS SourceTable
 ----     PIVOT
 ----     (
 ----     COUNT(CodLingua)
 ----     FOR CodLingua IN ('+@s+')
 ----     ) AS PivotTable'
-- prepara QUERY dinamica
 -- Ottimizzata con CTE (Common Table Expression)
 SET @q=N''
 SET @q=N'
 with CTE as
 (SELECT Nome, CodLingua FROM v_ContattiLingue)
SELECT Nome AS Nome,  '+@s+'
 FROM
 CTE PIVOT
 (
 COUNT(CodLingua)
 FOR CodLingua IN ('+@s+')
 ) AS PivotTable'
--print 'QUERY='+@q
EXECUTE sp_executesql @q

NOTA: Esempio di Query SENZA istruzione PIVOT

SELECT Nome,
MAX(CASE CodLingua WHEN 'ITA' THEN cnt ELSE 0 END)  AS ITA,
MAX(CASE CodLingua WHEN 'ENG' THEN cnt ELSE 0 END)  AS ENG,
MAX(CASE CodLingua WHEN 'FR'  THEN cnt ELSE 0 END)  AS FR,
MAX(CASE CodLingua WHEN 'GR'  THEN cnt ELSE 0 END)  AS GR
FROM --v_ContattiLingue
(SELECT Nome, CodLingua, COUNT(*) as cnt   
FROM v_ContattiLingue
GROUP BY Nome, CodLingua
) Origine
GROUP BY Nome

Project Management – confronto profili Tecnico-Project Manager

10/10/2010 4 commenti
profilo Tecnico vs profilo Project Manager:

Confronto Profili: Project Manager - Tecnico

Qualche Film e qualche serie Tv interessanti…

09/10/2010 1 commento

Ecco alcuni film e serie tv che ho trovato interessanti:

Cinema

  • C’era una volta in america (sergio leone)
  • The Hurricane – il grido dell’innocenza (norman jewison)
  • One million dollar baby (clint eastwood)
  • Gran Torino (clint eastwood)
  • Fight club (david fincher)
  • Lock, Stock and Two Smoking Barrels (Guy Ritchie)
  • The snatch (Guy Ritchie)
  • Lucky Number Slevin (Paul McGuigan)
  • Il nemico alle porte (Enemy at the Gates), 2001 (Jean-Jacques Annaud)
  • Le grand bleu, 1988 (Luc Besson)
  • Lezioni di piano, (The Piano), 1993 (Jane Campion)
  • Romanzo Criminale, 2005 (Michele Placido)
  • Il caso Thomas Crawford, 2007 (Gregory Hoblit)
  • Basta che funzioni (woody allen)
  • Vicky Cristina Barcelona (woody allen)

Serie TV

  • Dexter (la prima serie tratta dal romanzo “la mano sinistra di Dio” titolo originale: Darkly Dreaming Dexter, romanzo di Jeff Lindsay)
  • Flashforward (tratta dall’omonimo romanzo dell’autore canadese Robert J. Sawyer)

[18 novembre 2009]
[10 ottobre 2010]

Categorie:Cinema, Ludoteca Tag: