Aruba e MyLittleAdmin per Sql Server

{ Inserito il 23 Nov 2016 da maury }
Categories : hosting, SQL Server

L’Hosting di Aruba negli ultimi anni è davvero migliorato passando da livelli qualitativi bassi (questo secondo la mia esperienza di molti anni fa) ad un rapporto qualità prezzo veramente ottimo.

Ci sono alcune caratteristiche dell’hosting (e sto parlando principalmente di hosting windows) che sono molto stringenti, per esempio il “Medium Trust” o l’accesso ai database Sql Server tramite myLittleAdmin.

Quest’ultimo in particolar modo riesce a rendere molto sicuro l’accesso ai server Sql di Aruba ma ci impone alcune limitazioni che bisogna saper affrontare. Una di queste è il non poter creare in automatico lo script per ricreare la struttura di una tabella, cosa che invece è possibile con SQL Server Management Studio.

Abbiamo quindi due soluzioni:
1-fare un backup del database, ripristinarlo su un server Sql dal quale possiamo usare Management Studio da lì creare lo script;
2-Usare una Stored Procedure che permette di analizzare la tabella e crea lo script che ci serve.

Se invece vogliamo solo avere informazioni sulla struttura di una tabella senza dover andare nella gestione della tabella stessa queste query possono esserci utili:

SELECT * FROM information_schema.columns WHERE table_name = N'miatabella';
sp_help miatabella;
SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('miatabella');

Aruba e Membership provider di Asp.Net

{ Inserito il 19 Ott 2016 da maury }

Vi siete mai trovati nella necessità di installare le tabelle, viste, stored procedures per la gestione delle Membership di Asp.Net? Esiste un tool a riga di comando chiamato “aspnet_regsql.exe” che dati tutti i parametri di collegamento al dataase Sql Server provvede a fare quanto necessario.

Peccato che Aruba non fornisca un accesso diretto ai database Sql Server ma solo l’interfaccia Web “MyLittleAdmin” e quindi “aspnet_regsql.exe” non può essere usato nella sua forma standard.

Per fortuna tra i parametri di aspnet_regsql abbiamo la possibilità di generare solo un file di script da eseguire poi su MyLittleAdmin, la sintassi corretta è:

aspnet_regsql.exe -A all -sqlexportonly <filename>

ovviamente invece che “all” potere specificare quali sono le strutture da creare, qui trovate tutta la documentazione su aspnet_regsql

Non è finita qui.

Lo script generato non può essere usato così com’è per due motivi:

1-bisogna togliere tutti i riferimenti allo schema dbo (Aruba ha una schema diverso per ogni Database creato);

2-ci sono alcuni riferimenti a tabelle di sistema (per esempio master) che su Aruba non sono referenzibili.

Dopo queste correzioni, lanciando il file .sql troverete le vostre tabelle, viste, stored procedure belle pronte.

 

Se Internet Explorer non stampa

{ Inserito il 22 Set 2015 da maury }
Categories : Internet Explorer

Internet Explorer è da sempre la gioia (poca) e i dolori (tanti) di ogni utente windows, l’ultima problematica che ho visto è dovuta alla stampa e all’anteprima di stampa: in alcune installazioni se provi ad eseguire una stampa (o un’anteprima) compare il simpatico messaggio “Internet Explorer ha smesso di funzionare…”

Dopo aver provato di tutto (reimpostazione di Explorer, disabilitazione del rendering gpu, etc) l’unico
cosa che ha dato frutto è stata la seguente:

1-verificare che esista la cartella %temp%/Low e che sia accessibile
2-lanciare il comando che reimposta l’integrity level su quella cartella:

ICACLS "%userprofile%\AppData\Local\Temp\Low" /setintegritylevel (OI)(CI)low

3-riavviare il computer

Per maggiori informazioni: KB973479

Applicazione ASP.NET dentro un iframe e cookie bloccati

{ Inserito il 18 Set 2015 da maury }

Non so se avete mai provato a far girare un’applicazione asp.net che ha assoluta necessità di usare i cookie dentro un iframe di un sito di un dominio diverso (non chiedetemi perchè ma a volte serve).

Una cosa così in pratica:

<!DOCTYPE HTML>
<html>
  <head>	
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />	
    <title>TEST - IFRAME</title>
  </head>
  <body>	
    <iframe src="http://sito1test" 
       style="width:100%; height:100%; border:none;" frameborder="0">
          Your browser doesn't support iframes
    </iframe>
  </body>
</html>

dove “http://sito1test” è la vostra applicazione che DEVE usare i cookies. Provate e aprite la pagina con Firefox o Chrome e funziona tutto perfettamente.
Come ulteriore scrupolo aprite la stessa pagina con Internet Explorer e “stranamente” non funziona nulla… in pratica Internet Explorer ha come protezione “aggiuntiva” il blocco di accettare cookie da domini di siti terzi se inseriti in un iframe. Beh potrebbe essere anche giusto.
Come si risolve? La risposta è la Platform for Privacy Preferences, o P3P cioè un protocollo per dichiarare quali tipi di informazioni vengono condivise e memorizzate, interessante no?

Vi leggete tutta la documentazione a riguardo, capite cosa sono i vari simboli usati e poi prendete la vostra applicazione dotnet “http://sito1test” e aprite il file “Global.asax”, quindi dentro alla funzione

protected void Application_BeginRequest(object sender, EventArgs e)

inserite il comandino per aggiungere la direttiva a tutte le pagine:

HttpContext.Current.Response.AddHeader("p3p", 
"CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");

FUNZIONA! MAGNIFICO!

Benissimo, ma visto che vi piace capire le cose fate un’ultima prova prima di dichiarare vinta la battaglia di dare un “+1” a IE, sostituite la direttiva di cui sopra con:

HttpContext.Current.Response.AddHeader("p3p", "CP=\"mia nonna in carriola\"");

FUNZIONA LO STESSO! (ATTIMO DI PANICO) poi vi ricordate che stiamo parlando SOLO di Internet Explorer e passate ad altro.

WordPress: quando non si riesce ad aggiornare

{ Inserito il 14 Lug 2015 da maury }
Categories : WordPress

Capita a volte che gli aggiornamenti di wordpress non funzionino, in particolare se la directory temporanea (dove wordpress scarica ed estrae i files dell’aggiornamento) non è ben configurata o non è scrivibile, si va incontro ad errori e alla possibilità di rimanere non aggiornati (pessima cosa).

Una soluzione drastica e che funziona sempre è aggiornare tramite ftp: mettendo su la versione aggiornata di wordpress o di un plugin è un metodo un po’ brutale ma efficate. Una soluzione un pochino più pulita è aggiungere questa riga al file wp-config.php

define('WP_TEMP_DIR', ABSPATH . 'wp-content/');

la cartella wp-content è sicuramente scrivibile e quindi questo dovrebbe risolvere tutti i problemi.

Il buon vecchio DOS

{ Inserito il 22 Ott 2014 da maury }
Categories : Generico

Capita a volte di dover fare qualcosa su windows da riga di comando senza per forza dover fare un programmino c#… qualcosa di semplice ma che in DOS sembra complicatissimo come lanciare un programma e quando questo termina aspettare qualche secondo e poi rilanciarlo di nuovo per un po’ di volte.

Con questo esempio eseguiamo un programma e aspettiamo che finisca, nel caso aspettiamo 5 secondi e lo rilanciamo per un massimo di 5 volte..

@setlocal enableextensions enabledelayedexpansion
set /a "i = 1"
:start
if !i! leq 10 (
<programma da eseguire, si può usare !i! per i nomi dei file di output etc>
timeout /t 5 /nobreak
set /a "i = i + 1"
goto start
)
endlocal

HandBrake un software gratuito per convertire video

{ Inserito il 07 Ott 2014 da maury }
Categories : Software

Cercando un software gratutito per convertire un video rispettando i parametri di Vimeo mi sono imbattuto in questa piccola perla: Handbrake, permette di fare qualsiasi conversione impostando moltissimi parametri del proprio video, assolutamente da provare!

MySql Error: Tablespace for table exists

{ Inserito il 01 Ott 2014 da maury }
Categories : MySql, Plugins, WordPress

Attivando un plugin di wordpress su un sito locale di prova oggi ricevo questo messaggio di errore:

Error : Tablespace for table '`<database>`.`<table2>`' exists.
Please DISCARD the tablespace before IMPORT.

(dove “database” e “table2” sono i nomi del vostro database e di una tabella), ma io non stavo importando proprio nulla…

Ho provato nell’ordine ma senza successo:
-cancellare e altre tabelle inutili
-ottimizzare e riparare tutte le tabelle
-riavviare mysql e webserver (erano locali)

PANICO (non troppo però, era un ambiente di test), non volevo buttare via tutto il DB o esportarlo e poi reimportarlo… alla fine sono andato in:

/mysql/data/
e ho trovato tutte le mie belle tabelle a coppie,

per esempio: table1.frm con table1.ibd MA ne ho trovata una senza compagna: table2.idb ecco il problema, manca table2.frm
QUINDI cancello senza paura table2.idb e tutto funziona a meraviglia!

Pods Framework: wordpress come non lo avete mai visto

{ Inserito il 11 Ago 2014 da maury }
Categories : Plugins, WordPress

Se volete spingere le vostre conoscenze su WordPress ad un livello superiore dovete assolutamente provare “Pods Framework”, il plugin ideale per trasformare WP in un vero CMS. Una volta attivato potrete sia estendere Posts, Categorie, Allegati e molti altri oggetti con proprietà personalizzate ma potrete anche creare dei tipi di Post personalizzati, arricchirli, correlarli fra loro e poi mostrarli con avanzato sistema di Template.

Assolutamente da provare: Pods Framework

Quando vi sarete divertit un po’ capirete subito che manca qualcosa: come è possibile mostrare in automatico un Pod senza dover creare pagine o post di WordPress manualmente?

La risposta è semplicissima: Pods Frontier Auto Template

Recuperare i dati di una GridView in Asp.net da dentro un RowCommand

{ Inserito il 08 Feb 2014 da maury }
Categories : C#

se all’interno di un RowCommand di una GrdiView

protected void gridView_RowCommand(
   object sender,
   GridViewCommandEventArgs e
)

volessiamo recuperare i dati della riga corrispondente che ha scatenato il comando possiamo usare

GridViewRow row =
(GridViewRow)(((Control)e.CommandSource).NamingContainer);