Finalmente, dopo una settimana di debug intensivo ho deciso di pubblicare il mio nuovo giocattolo. Si tratta di un job che consente di replicare i post inviati per mezzo di Community Server su una moltitudine di engine secondari. Il Replicator è basato sugli Engine Adapter di IMHO 1.2 e quindi consente la pubblicazione su engine .TEXT, MovableType, Blogger e Community Server (grazie al recente engine adapter for cs).

Ecco le principali feature:

  • Replica schedulata
  • Weblog di destinazione multipli
  • Weblog sorgente multipli
  • Regole di filtro basate su Regular Expression
  • Footer configurabile per ogni blog di destinazione
  • Tag rimpiazzati durante la pubblicazione
  • Log dell'attività

Potete scaricare il tool e il sorgente completo presso: http://imhoproject.org/download/Elite.Replicator.zip
Il software è distribuito sotto licenza creative common public license

Il tool ovviamente è perfettamente compatibile con IMHO e riesce a replicare anche i post inviati tramite webservice perchè agisce direttamente al livello del database. L'installazione è semplice e verrà dettagliata in un apposito articolo, ma non richiede ricompilazione del Community Server.

powered by IMHO 1.2


Ieri ho postato una segnalazione di un problema di Virtual Server 2005, che in concomitanza con processori HyperThreading può risultare più lento rispetto a processori normali. Ieri sera perciò ho provato ad andare nel BIOS e a disabilitare l'hyperthreading sul mio portatile. Fino a logon tutto bene, verificato con il taskmanager il processore visibile era solo uno. Non appena ho avviato la macchina virtuale per provare il risultato il portatile si è repentinamente trasformato in un hovercraft. Tutte le ventole disponibili sono partite letteralmente a tutta manetta, e non c'è stato verso di fermarle nemmeno dopo aver fatto lo shutdown del virtual server. Non mi è rimasto che riavviare il pc e riabilitare l'hyperthreading, anche perchè lavorare con il pc ancorato al terreno per evitare di farlo volare via mi sembrava un po' eccessivo, anche riuscendo a sopportare il rumore degno di un 747 al decollo.

Stamane un collega ferrato mi ha spiegato che il mio processore è un dual-core e perciò quando ho disabilitato il secondo core il primo è stato costretto a lavorare per due con il conseguente surriscaldamento.

Non mi resta che attendete la SP1 di Virtual Server che a detta di Lorenzo dovrebbe risolvere il problema.

powered by IMHO 1.2


Il post cui mi riferisco è in francese, tuttavia è abbastanza breve e conciso e si riesce a comprenderlo facilmente. Esso riporta che L'Hyperthreading del P4 può dare problemi di performances a Virtual Server 2005. In effetti è un po' di tempo che noto che Virtual Server sul mio portatile gira un po' lentamente e attribuivo il problema alla carenza di RAM (512MB). Stasera proverò a disabilitare l'Hyperthreading (dal BIOS) e vediamo cosa succede.

Link: Virtual Server 2005 et l'hyperthreading

powered by IMHO 1.2


Per amor di completezza, riporto un altro modo di paginare i record con Sql Server che mi è stato suggerito in risposta al mio precedente post su questo argomento. In Sql2005 ci sarà una nuova funzione ROW_NUMBER() che usata in coppia con OVER(ORDER BY ...) aggiunge al resultset una colonna con l'indice della riga.

Ecco un esempio per chiarire:

declare @pagesize int;
declare @pagenumber int;

set @pagesize=10;
set @pagenumber=0;

select from
(
    
select 
      row_number()over(order by name ascas row,
      sysobjects.*
    
from sysobjects 
as A
where 
    
A.row>@pagenumber @pagesize and 
    
A.row<=@pagenumber @pagesize @pagesize;
 
L'esempio fa la stessa cosa di quello riportato nel post precedente, con gli stessi parametri di ingresso. Tuttavia lo fa meglio... A quanto leggo in rete, questo sistema dovrebbe garantire delle performances migliori e soprattutto lineari. Il metodo che ho illustrato l'altra volta infatti ha il difetto di essere molto veloce nelle prime pagine, ma di peggiorare il proprio risultato mano a mano che si procede verso le pagine successive. Questo tipicamente non è un grosso problema, dato che le pagine usate dagli utenti non superano le prime dieci, ma è chiaro che potendo lavorare con l'oro, perchè ci si dovrebbe accontentare dell'argento? Grazie ai suggeritori!
 
powered by IMHO 1.2

Una nuova feature di SqlServer 2005 consente di paginare agevolmente i record di una query. Si tratta della nuova clausola TOP, che si presenta come una funzione che accetta anche dei parametri dinamici. Chi ha provato in Sql Server 2000 a paginare i record di una tabella si sarà scontrato con delle difficoltà talvolta davvero eccessive. Paginare significava creare sempre delle query dinamiche, facendo uso di TOP, SET ROWCOUNT, con tutti i rischi si sql injection che questo comporta.

Ecco, nel box come con Sql Server 2005 si potrà paginare una tabella. Il criterio è quello di estrarre i primi n record (righe x pagina) dopo aver escluso le prime m pagine, dove m parte da 0 che ha il significato di pagina 1.

declare @pagesize int;
declare @pageindex int;

-- dimensione di una pagina
set @pagesize 10;
-- indice della pagina richiesta dove 0==prima pagina
set @pageindex 0;

select top(@pagesize) * 
    
from sysobjects 
    
where id not in 
    ( 
        
select top(@pagesize @pageindexid 
            from 
sysobjects 
            
order by name asc
    
)
    
order by name asc;
 

Con l'uso di TOP(n) la questione si semplifica notevolmente, ma tuttavia ancora non siamo in presenza di una soluzione ottimale come quella che ad esempio è presente in MySql (clausola LIMIT). Infatti dovremo comunque replicare l'istruzione per ogni tipo colonna di ordinamento, e in caso di uso di una WHERE ricadremo ancora una volta nella costruzione dinamica dello statement, almeno in una buona parte dei casi. 

Certo è che il miglioramento è significativo, infatti la semplificazione introdotta da TOP(n) ci permette di concentrarci maggiormente nei pericoli della concatenazione di stringhe SQL sperando di non commettere errori.

powered by IMHO 1.2


Se provate ad installare Sql Server 2005 Beta 2, sulla stessa macchina in cui sia installata la beta della versione Express, vi scontrerete con uno strano comportamento: Il tool di management Sql Server Management Studio semplicemente non è presente.

Dopo svariati tentativi ho scoperto che esiste una sorta di conflitto tra il Sql Express Manager e il tool di Sql Server 2005. Per poter utilizzare il Sql Server Management Studio all fine ho disinstallato Sql Express e reinstallato Sql Server 2005, ma da alcuni post che ho trovato su Google pare che sia sufficiente disinstallate l'Express Manager.

Tra l'altro al termine della reinstallazione mi sono imbattuto in uno strano effetto. nel Sql Server Management Studio è magicamente apparsa l'istanza di Sql Express che avevo appena rimosso senza peraltro riuscire a connettermici. Naturalmente è stato sufficiente cancellarla con un colpo di mouse e tutto è svanito accompagato da una nuvoletta azzurra...

Magia delle beta...

powered by IMHO


Sembra che il team di sviluppo di Sql Server 2004, impegnato nella realizzazione della Service Pack 4, abbia la necessità di trovare dei beta tester per poter rilasciare il prodotto entro i prossimi mesi. Se qualcuno desidera provarci può tentare qui:

http://www.microsoft.com/sql/evaluation/betanominations.asp

Fonte: Do you want to help test SQL Server 2000 Service Pack 4?

powered by IMHO