Articoli correlati ‘come fare’

Come riverniciare parti in legno – spiegazione

18 maggio 2009

Capita spesso che la vernice di uno scuretto, di un mobile o altri componenti in legno, si consuma o si scrosta.

Fare questo tipo di riparazione è un lavoro molto delicato, un lavoro che richiede un po’ di esperienza e di pazienza.

Innanzitutto bisognerebbe sapere che tipo di vernice o smalto sono stati applicati sul legno.

Se ad esempio uno scuretto ci è stato consegnato con finitura a cera (la cera si consuma ma non si scrosta) basta levigare leggermente con un paglietta fine in modo da rimuovere le impurità.

Acquistare successivamente un tipo di vernice a base di cera (la migliore è quella della Sikkens) e riverniciare a pennello. Continua a leggere: Come riverniciare parti in legno – spiegazione

how-to – Ricerca avanzata – range di valori numerici – Come impostare un attibuto con valori numerici (decimali o interi) per un prodotto in magento

5 maggio 2009

In Magento, se vogliamo ricercare dei prodotti nella ricerca avanzata per un range di valori numerici dovremo innanzi tutto creare un attributo da associare al prodotto ad es. Altezza, Larghezza, Lunghezza quindi (Catalogo->Attributi->Gestione Attributi->Aggiungi nuovo) e impostarlo come tipo testo e successivamente per aggirare il problema che il tipo di dati (int o decimal) non esiste lato amministratore sarà necessario impostarlo come attributo di sistema impostando l’opzione di attributo richiesto e successivamente andremo sulla tabella (eav_attribute) del database e ricerchiamo l’attributo appena inserito tramite il suo codice attributo (attribute_code) aggiornando quindi il record che descrive la configurazione del nostro attributo a mano in questo modo:

is_user_defined = 0
is_visible = 1
fronted_input = text
backend_type = decimal oppure int
is_visible_in_advanced_search = 1

database_eav_attribute

e il gioco e fatto, ci apparirà nella schermata di ricerca avvanzata il range di valori da cercare appena impostato

immagine-2

How-to – Problema con Adobe Flex Upload +[PHP] Sessione + Firefox !

9 aprile 2009

In un’applicazione di upload di files multipli in flex3 ho un problema: non mi passa allo script php la sessione corrente, la cosa strana di questo problema è che ciò non succede con internet explorer ma con firefox e safari (su altri non ho testato).

La soluzione a questo bug è facile:

1) Nello script flex aggiungiamo la classe che ho trovato nel seguente blog:

http://myflex.wordpress.com/2008/11/12/actionscript-cookie-util/

//code from myflex.wordpress.com
package de.aggro.utils
{
	import flash.external.ExternalInterface;
	public class CookieUtil
	{
		public function CookieUtil()
		{
		}
 
		private static const FUNCTION_SETCOOKIE:String =
            "document.insertScript = function ()" +
            "{ " +
                "if (document.snw_setCookie==null)" +
                "{" +
                    "snw_setCookie = function (name, value, days)" +
                    "{" +
                        "if (days) {"+
							"var date = new Date();"+
							"date.setTime(date.getTime()+(days*24*60*60*1000));"+
							"var expires = '; expires='+date.toGMTString();"+
						"}" +
						"else var expires = '';"+
						"document.cookie = name+'='+value+expires+'; path=/';" +
		            "}" +
                "}" +
            "}";
 
		private static const FUNCTION_GETCOOKIE:String =
            "document.insertScript = function ()" +
            "{ " +
                "if (document.snw_getCookie==null)" +
                "{" +
                    "snw_getCookie = function (name)" +
                    "{" +
                        "var nameEQ = name + '=';"+
						"var ca = document.cookie.split(';');"+
						"for(var i=0;i < ca.length;i++) {"+
							"var c = ca[i];"+
							"while (c.charAt(0)==' ') c = c.substring(1,c.length);"+
							"if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);"+
						"}"+
						"return null;" +
		            "}" +
                "}" +
            "}";
 
        private static var INITIALIZED:Boolean = false;
 
		private static function init():void{
			ExternalInterface.call(FUNCTION_GETCOOKIE);
			ExternalInterface.call(FUNCTION_SETCOOKIE);
			INITIALIZED = true;
		}
 
		public static function setCookie(name:String, value:Object, days:int):void{
			if(!INITIALIZED)
				init();
 
			ExternalInterface.call("snw_setCookie", name, value, days);
		}
 
		public static function getCookie(name:String):Object{
			if(!INITIALIZED)
				init();
 
			return ExternalInterface.call("snw_getCookie", name);
		}
 
		public static function deleteCookie(name:String):void{
			if(!INITIALIZED)
				init();
 
			ExternalInterface.call("snw_setCookie", name, "", -1);
		}
 
	}
}

2) In seguito richiamiamo lo script php dalla nostra applicazione flex passandogli la sessione:

Nel mio caso il file Mxml dell’applicazione è:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:com="com.flashdev.file.*" layout="absolute"
	creationComplete="initApp()" backgroundColor="#FFFFFF">
 
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import com.utils.CookieUtil;
			private const _strDomain:String = "http://www.dominio.ext/";
			[Bindable]
			private var _strUploadScript:String = new String("http://www.dominio.ext/flex_uploader.php");
 
			// Initalize
			private function initApp():void {
				Security.allowDomain(_strDomain);
				//qui aggiungo la correzione al bug di firefox e Safari
				_strUploadScript += "?PHPSESSID=" + CookieUtil.getCookie("PHPSESSID");
				// define the type list for the upload
				uploader.typeList = [new FileFilter("Image files (*.jpg, *.gif, *.png, *.pdf, *.zip, *.xls)", "*.jpg;*.gif;*.png;*.pdf;*.zip;*.xls", "JPEG;jp2_;GIFf;PNGf;PDF;ZIP;XLS")];
				uploader.maxSize = 1048576;
			}
 
		]]>
	</mx:Script>
 
	<mx:Canvas width="400" height="300" horizontalCenter="1" verticalCenter="1">
		<com:FileList id="uploader"
			width="100%" height="100%"
			uploadUrl="{_strUploadScript}"
			uploadComplete="Alert.show('File(s) have been uploaded.', 'Upload successful')"
			uploadIOError="Alert.show('IO Error in uploading file.', 'Error')"
			uploadSecurityError="Alert.show('Security Error in uploading file.', 'Error')"/>
	</mx:Canvas>
 
</mx:Application>

Di seguito allego anche il file di progetto: flexfinder

How-to Impostazione delle spese di spedizione in Magento – corriere – poste italiane

26 marzo 2009

1. Entrare in Sistema -> Configurazione;
2. Ambito della Configurazione Corrente: Main Website;
3. Sul menù sinistro cliccare su Modalità di Spedizione;
4. Creare un file csv come questo

“Paese”,"Regione/Stato","CAP/Codice Postale","Peso (e superiore)","Prezzo Spedizione”
ITA,*,*,15.0000,40.0000
ITA,*,*,6.0000,22.0000
ITA,*,*,3.0000,18.0000
ITA,*,*,0.0000,12.0000

Attenzione di creare il file con Excel per via delle intestazioni che vengono generate.

5. Salvare il file come csv, cliccare su sfoglia dove c’è scritto “importa”
6. Fine.

Google Apps – impostare le funzionalità di google sul propio dominio

10 dicembre 2008

Google offre la possibilità di poter far utilizzare le propie applicazioni con il propio dominio.

La soluzione è Google Apps.



Come fare quindi per usare le applicazioni di Google sotto il propio dominio?

1) Configuriamo la zona DNS come nel seguente esempio:

$TTL 180
@       IN      SOA     ns1.nameserver.biz. info.nameserver.biz. (
2006051701
10800
3600
604800
180 )
NS      ns1.nameserver.biz.
NS      ns2.nameserver.biz.
MX      1 ASPMX.L.GOOGLE.COM.
MX      5 ALT1.ASPMX.L.GOOGLE.COM.
MX      5 ALT2.ASPMX.L.GOOGLE.COM.
MX      10 ASPMX2.GOOGLEMAIL.COM.
MX      10 ASPMX3.GOOGLEMAIL.COM.
MX      10 ASPMX4.GOOGLEMAIL.COM.
MX      10 ASPMX5.GOOGLEMAIL.COM.

nostrodominio.com. IN A 211.64.201.111

ns1 IN A 211.64.201.111
ns2 IN A 211.64.201.112

mail IN CNAME ghs.google.com.
calendar IN CNAME ghs.google.com.
docs IN CNAME ghs.google.com.

imap IN CNAME imap.gmail.com.
smtp IN CNAME smtp.gmail.com.

_jabber._tcp.nostrodominio.com. IN SRV 5 0 5222 talk.l.google.com.
_jabber._tcp.nostrodominio.com. IN SRV 20 0 5222 talk1.l.google.com.
_jabber._tcp.nostrodominio.com. IN SRV 20 0 5222 talk2.l.google.com.
_jabber._tcp.nostrodominio.com. IN SRV 20 0 5222 talk3.l.google.com.
_jabber._tcp.nostrodominio.com. IN SRV 20 0 5222 talk4.l.google.com.

* IN A 211.64.201.111


* Gli ip inseriti sono degli esempi ovviamente.

e attiviamo i nostri servizi nel pannello di amministrazione del dominio:

Possiamo quindi importare tutti i nostri account di posta tramite un csv compilato prima di procedere com l’operazione con il seguente schemata :


Selezionando il link in arancione ci apparirà la seguente schermata che ci spiega come il nostro foglio csv dovrà essere formattato per consentire la creazione istantanea di più account in un unica operazione.


Di seguito basterà seguire le istruzioni riportate.

In alternativa possiamo creare a mano gli account uno ad uno.

Noteremo quindi che digitanto l’indirizzo http://mail.nostrodominio.com/ si verrà reindirizzati all’applicazione gmail nella quale potremmo loggarci con uno degli account creati in precedenza. Se ci loggiamo con l’account amministratore possiamo anche amministrare liste di spedizione (newsletter) creare nuovi account utenti, associare o dissasociare servizi google e quant’altro il pannello ci offre (a seconda delle migliorie che verranno apportate dal team google.)

Il vantaggio principale di una soluzione simile è quella di appogiarsi alla società più all’avanguardia nelle soluzioni Web 2.0 e anche più affidabili in questi termini. Senza pensare che possiamo crearci tutti gli account di posta che vogliamo con una capienza di ben 7 gb ed oltre in IMAP. Ciò ci permette di non preoccuparci di scaricare la mail perchè il nostro accont ha dimensioni notevoli da poter contenere tutte le mail che riceviamo e la possibilità di mantenre aggiornati più client di posta tramite appunto al servizio imap. Le garanzie di uptime di google, da mia personale esperienza ma anche da molti utenti che conosco, sono ottime.

Il team Google garantice l’uptime del 99 % solo nella versione a pagamento, fino ad ora però posso confermare che questi numeri sono anche per il servizio gratutio.