venerdì 13 dicembre 2013

Oracle Tip: Image Processing in Oracle 11g

There are many ways to store images in Oracle DB. The most common manner is to store images as binary content in BLOB columns.
Starting from version 11g, Oracle introduced Oracle Multimedia (previously known as Oracle interMedia), a feature for storing images, audio, video and other multimedia data.
Oracle Multimedia introduced ORDAudio, ORDDoc, ORDImage, ORDVideo, and SI_StillImage data types and method for:
  • extracting metadata and attributes from multimedia content
  • embedding metadata generated for other application into images
  • embedding multimedia data from Oracle Multimedia, Web servers, file systems, and other servers
  • editing and transforming images
In this post, I will focus on the transformations you can apply to image data.
We start creating a table for storing a TIFF image.

CREATE TABLE AVT_IMG
(
ID NUMBER,
TIFF_IMG ORDSYS.ORDImage
);
 
We also create a database directory to the path where we store the images to be loaded into the DB.

CREATE OR REPLACE DIRECTORY avt_img_dir as 'C:\Imagenes_Blog';
 
 

We instanciate an object ORDImage and we load the TIFF image in the table AVT_IMG.

-- ORDImage.init()
INSERT INTO AVT_IMG VALUES(1,ORDImage.init());
COMMIT;
-- Load the image
DECLARE
  obj ORDSYS.ORDImage;
  ctx RAW(64) := NULL;
BEGIN
-- The import() method  also sets the object properties by reading the image blob.
  select TIFF_IMG into obj 
  from AVT_IMG 
  where ID = 1 for update;
  
  obj.setSource('FILE', 'AVT_IMG_DIR', 'flowers.tif');
  obj.import(ctx);
  update AVT_IMG set TIFF_IMG = obj where id = 1;
commit;
END;
/
 
Using ORDSYS.ORDImage methods, we can read image properties:

DECLARE
image ORDSYS.ORDImage;
compression_format VARCHAR2(4000);
img_height NUMBER;
img_width NUMBER;
content_size NUMBER;
metav XMLSequenceType;
properties_match BOOLEAN;
BEGIN
-- Load the image into a variable
SELECT TIFF_IMG INTO image FROM AVT_IMG
WHERE ID=1;
-- Check if properties are readable
properties_match := image.checkProperties();
IF properties_match THEN
DBMS_OUTPUT.PUT_LINE('Check Properties succeeded');
ELSE
DBMS_OUTPUT.PUT_LINE('Check Properties failed');
END IF;
-- Read image properties
compression_format := image.getCompressionFormat();
img_height := image.getHeight();
img_width := image.getWidth();
content_size := image.getContentLength();
DBMS_OUTPUT.PUT_LINE('Compression Format: ' || compression_format);
DBMS_OUTPUT.PUT_LINE('Height: ' || img_height);
DBMS_OUTPUT.PUT_LINE('Width: ' || img_width);
DBMS_OUTPUT.PUT_LINE('Size: ' || content_size);
COMMIT;
END;
/
 
The result is:


and it matches with the image we are using as an example.



Let's alter the table as follows:
ALTER TABLE AVT_IMG ADD (JPEG_IMG ORDSYS.ORDImage, TIFF_BLOB BLOB, JPEG_BLOB BLOB);
for storing TIFF_IMG BLOB content (without metadata) and its copy in JPEG format.
The method getContent() extracts the image BLOB content.

UPDATE AVT_IMG
SET TIFF_BLOB =  ordsys.ordimage.getContent(TIFF_IMG);
COMMIT;
 
To change the image format, for instance from TIFF to JPEG, we can use the method processCopy().
DECLARE
imgTiff blob;
imgJpeg blob;
BEGIN
UPDATE AVT_IMG SET JPEG_BLOB = empty_blob()
RETURNING TIFF_BLOB, JPEG_BLOB
INTO imgTiff, imgJpeg;
-- processCopy() method gets the following parameters: 
-- * Source file
-- * Parameter string
-- * Destination file
ordsys.ordimage.processCopy(imgTiff, 'fileformat=jpeg', imgJpeg);
UPDATE AVT_IMG SET JPEG_BLOB = imgJpeg;
COMMIT;
END;
/
 
 

We can convert between the following formats: BMPF, CALS, GIFF, JFIF, PBMF, PGMF, PICT, PNGF, PNMF, PPMF, RASF, RPIX, TGAF, TIFF, WBMP.

If we want to create an ORDImage object from the JPEG_IMG BLO, this is the code:

UPDATE AVT_IMG
SET JPEG_IMG = ordsys.ordimage(
ordsys.ordsource(
JPEG_BLOB, null, null, null, sysdate, 1 ),
null, null, null, null, null, null, null );
  
The methods process() (that overwrites the source file) and processCopy() can perform more complex operations, as adjusting image contrast, scale or rotating the image. The following code performs a 90 degrees rotation.

DECLARE
imgTiff blob;
imgJpeg blob;
BEGIN
UPDATE AVT_IMG  set JPEG_BLOB=JPEG_BLOB
RETURNING  JPEG_BLOB
INTO  imgJpeg;
ordsys.ordimage.process(imgJpeg, 'rotate=90');
UPDATE AVT_IMG SET JPEG_BLOB = imgJpeg;
COMMIT;
END;
 
 
This is just a short demo of what Oracle Multimedia can do. For more info, see http://www.oracle.com/pls/db112/portal.portal_db?selected=7&frame=#oracle_multimedia.

domenica 8 dicembre 2013

Beauty Tip: mi experiencia con la henna

Hace un par de años que empecé a teñirme el pelo con la henna. Todo comenzó con una muestra que me dieron en Lush en Londres. Llevaba tiempo dudando en si probar este producto y fue así que me animé.
Siempre me he teñido el pelo. A los 18 años me los hice de color violeta y desde entonces he probado todos los colores más comunes (incluso el rubio que me queda fatal y tengo clarisimo que nunca seré rubia, a pesar de tener el pelo de color castaño muy clarito).
La aplicación de la henna lleva algo de trabajo. La henna Lush viene en cuadraditos tipo barra de chocolate.
Hay de cuatros colores disponibles:
  • Henna Marron
  • Henna Marron Oscuro
  • Henna Negra
  • Henna Roja
Yo siempre he utilizado la Henna Roja, porque después de mi etapa dark (con cabello negro como la noche), he abandonado los tonos muy oscuros para un tono cobrizo.
Las hennas marron y negras se utilizan más como un tratamiento nutritivo para el pelo y para dar reflejos más intensos a un cabello ya castaño o negro. La Henna Roja es la única que realmente puede cambiar el color del pelo de manera significativa.
Para aplicar la henna Lush, primero hay que triturar los cuadraditos para quedarse con un polvo muy fino. He intentado varias técnicas, pero la que me da mejores resultados es poner los cuadraditos en una tabla para cortar y con un cuchillo ir pulverizando la henna.


 
En unos blogs he leido que para ablandar la henna se la puede poner unos segundos en el microondas. Personalmente no lo he hecho nunca porque no he encontrado grandes dificultades con el solo cuchillo. 
Cuando tengo el polvo, lo echo en un cuenco (ese de la foto lo venden en Mercadona por unos euritos) y le echo agua caliente (pero no hirviendo) hasta que tengo una mistura símil al barro, ni demasiado solido ni demasiado liquido. 
Si es muy caliente, lo dejo enfriar y después lo aplico sobre el pelo seco, no lavado. Para la aplicación utilizo:
  • un pincel para la tintura de pelo (comprado en el Mercadona junto con el cuenco)
  • guantes de latex (son realmente imprescindibles porque en seguida por el color que van adquiriendo os dareis cuenta de las propiedades colorantes de la henna)
  • papel de periodico para cubrir el suelo 
  • una camiseta y una toalla viejas que no me importa manchar
Para mi cabello que es medio/largo, pero muy fino a la vez, suelo utilizar dos cuadraditos pulverizado mesclados con una taza de agua caliente.

Empiezo por las raíces, como si fuera un tinte normal, y después paso al resto del pelo. El color que deja la henna suele ser muy duradero, así de una vez a otra lo único que necesita color son las raíces.

Al terminar, me envuelvo la cabeza con film plastico y lo dejo actuar mínimo dos horas. El plastico asegura calor y permite un mejor resultado. Recomiendan dejar actuar más tiempo para un color más intenso (incluso toda la noche), pero nunca he tenido tanta paciencia (ni ganas de manchar mis sabanas). Lo que recomiendo yo es que lo hagais cuando no hay nadie en casa porque no vais a estar muy sexy con un casco de plastico en la cabeza. 
Después de dos horas, me ducho y me lavo el pelo con mi champú hasta que el agua quede transparente y termino aplicando mi acondicionador.
El resultado es un color cobrizo intenso que me encanta y dura muchisimo más que cualquier tinte químico. 
Puntos positivos: 
  • el color es verdaderamente duradero
  • es un tratamiento nutritivo natural para el pelo
  • es económico (6 cuadraditos valen alrededor de 13 euros y sirven para dos/tres aplicaciones)
Puntos negativos: 
  • el olor que deja la henna en el pelo (algo similar al olor a madera, bastante fuerte) dura al menos un par de lavados 
  • puede resecar el pelo, especialmente si se utilizan champus no naturales y agresivos
  • la aplicación es muy laboriosa y requiere mucho cuidado para no manchar toda la casa de henna
Además de la henna Lush he probado la de la tienda Henna Morena (http://www.hennamorena.com/es/index) que abrió hace aproximadamente un año en el Born, Barcelona. Por lo que afirman, se trata de una henna totalmente pura, sin ingredientes añadidos (la henna de Lush viene enriquecida de mantecas entre otros ingredientes http://www.lush.es/shop/product/product/path/147_153/id/390/cabello-henna-henna-marr%C3%B3n). 
Para dar a mi pelo el tono cobrizo que busco, suelo comprar la henna que viene con una infusión de Canela, Te Negro y Ibisco. 
Los pasos para aplicar la henna son los siguientes: 

  • como la henna viene en una bolsita ya en polvo, no hace falta triturarla y la hecho directamente en un cuenco (suelo usar midad de la bolsita para una aplicación)
  • a parte preparo la infusion con la midad de la bolsita que viene en la caja (hiervo una taza de agua con
  • mezclo la henna con la infusión para obtener una mezcla simil al barro (tal como con la henna Lush). A veces añado un "chupito" de aceite para el pelo (lo más posible natural) como me aconsejaron en la tienda
  • aplico la mezcla, envuelvo mi cabeza en papel de plastico y espero entre una y dos horas porque el poder colorante es mucho mayor que el de la henna Lush
Entonces... Henna Lush o Henna Morena?
A nivel de precio, se equivalen (una caja de Henna Morena vale alrededor de 13€). A nivel de laboriosidad de preparación y aplicación, también.  No puedo decidirme entre las dos opciones. Henna Morena actua más rapido, pero también me deja un color más anaranjado (cuanto más intenso cuanto más tiempo se deja actuar). Creo que seguiré alternando las dos opciones e investigando por otros productos similares en el mercado. 

P.D. Todos los productos han sido adquiridos por mi y este post refleja mis opiniones personales.


martedì 3 dicembre 2013

Oracle Tip: OBI .rpd File path

The customer is thinking of migrating to OBIEE 11g on Exalytics. I need to migrate the .rpd file but the current installation has undergone some crazy update so it is impossible to connect and see the .rpd online in the OBIEE Client. 
The only way I had to recover the latest version of the .rpd file was locating it in the OBIEE Installation. 
The path for accessing to the current .rpd file (and previous versions of it) is: 

<OBI Root>/Middleware/instances/instance1/bifoundation/OracleBIServerComponent/coreapplication_obis1/repository

mercoledì 27 novembre 2013

Oracle Tip: BI Publisher Report URL without Login

My current customer wants to integrate BI Publisher reports in its web portal. They want to publish URLs that allow users to view reports, skipping the login page.
We can retrieve the Report URL by selecting any of Share Report Link options.

 Copy the URL and add the parameters id and passwd for logging into BI Publisher.

http://<server>:<port>/xmlpserver/Components/<Report_Name>.xdo?id=<user_id>&passwd=<user_password>&_xpf=&_xpt=0&_xdo=<Path to the Report>.xdo&_xmode=4&_params<parameters_if_any>&_xt=<Layout_Name>&_xf=analyze&_xana=view

The main disadvantage of this method is that user credentials are not encrypted. This is not the safest method on earth, but it works and it made my customer happy.

giovedì 14 novembre 2013

Oracle Tip: Oracle Warehouse Builder (OWB) import table error

I have installed the latest version of Oracle Warehouse Builder 11g 64 bit on a Windows pc (my work pc, actually) since I needed to connect to a customer OWB ETL implementation. 
Everything looked ok (I could connect to the OWB Workspace, navigate through the project, open and deploy mappings, etc.), since I have tried to import new tables in the Oracle Schema. 
As soon as I clicked on Import Database Object, I got the following (and cryptic) error:

SQL Exception 
Persistent Layer Error: SQL Exception
Class name: CacheMediator
Method Name: getSQLResult
Error Message from Persisten Layer: ORA-02085
....
If I clicked on OK, the next step was a grey window with much more known error Java null pointer exception.
I really needed to import the new tables I had created to be able to work, so I started Googling the error, with no success. After a considerable amount of time I got on this note:
https://blogs.oracle.com/warehousebuilder/entry/advanced_properties_of_location_new_for_11gr2

"Note the property "User Global Name", it specifies the unique name of the database, which is composed of the database name and the domain, in the form of database_name.database_domain. If you see the error ORA-02085: database link *** connects to *** during the import of metadata of database objects into OWB. It may mean the database has the system parameter global_names set to true, but you did not select the option "Use Global Name" of the Oracle location, as a result, the generated database link name for the import doesn't include the global database name and hence cannot access the database."

Basically I needed to specify the DB global name in each location that specified a connection to the DB. 
If you do not know the global name of your DB, this SQL query can give you a precious hand. 

SELECT * FROM global_name;

So unregister your location, specify the DB global name option and register the location again.

lunedì 4 novembre 2013

Oracle Tip: Generating Documentation Reports with Oracle SQL Developer Data Modeler

This is another tip for the lazy programmer. When it comes to documentation, no developer would like to go back extracting the code for every single table in his model.
Oracle SQL Developer Data Modeler has a very useful tool for generating reports.


Selecting Reports from the File Menu, you can choose if you want it generated in:
  • RTF
  • PDF 
  • HTML 
format.
You can create a template (e.g. if you want to select only tables of your models) or selecting only some objects of your model.
When you execute the report, it will be stored in a local route.
This is how a PDF report looks like. Ready to be sent to the customer or do some nice cut&paste from it.



lunedì 21 ottobre 2013

Io sono cistinurica

So di soffrire di cistinuria quando ho 19 anni, più o meno, ovvero da circa dodici anni. "So" indica il momento in cui ho dato un nome ai curiosi sassolini che da quando avevo circa 16 anni ho cominciato a notare nella pipi.
A differenza di molti miei compagni di "sventura", anche se preferisco riferirmi a loro come ai miei coraggiosi compagni di lotta quotidiana (e che ho imparato a conoscere, seppur solo virtualmente in questo ultimi due anni grazie alla potenza del social network piú famoso del mondo https://www.facebook.com/groups/malaticistinuria/ ) ho avuto una vita abbastanza tranquilla, almeno fino ai 28 anni.
Una colica di tanto in tanto, di solito in maggio o in novembre, in concomitanza con i cambi di stagione. Un paio di giorni di dolore, piú o meno intenso, una pietruzza espulsa (o piú di una) e tutto tornava alla normalitá. Universitá, poi lavoro, molto lavoro, stress, una grossa sconfitta a livello personale, di quelle che ti cambiano per sempre. Era marzo del 2011. Il dolore dell'aver visto sfumare il mio sogno piú grande, si mescolava ad un periodo di lunghe trasferte da sola in giro per l'Europa. Sentivo una profonda stanchezza, arrivavo alle cinque del pomeriggio sfinita, ma pensavo che tutto fosse riconducibile al caos della mia vita personale in quel momento. Il mio corpo mi stava dicendo di rallentare, questo pensavo.
E come il perfetto stereotipo di donna sull'orlo di una crisi di nervi, pensai che dedicare il mio tempo libero a distruggere quel poco che rimaneva della mia persona con alcool e feste sconsiderate, anche se non era una soluzione, almeno era divertente.
Agli inizi di aprile 2011, probabilmente a causa della mia "erronea idratazione", vengo colta dalla prima cistite. Un dolore fortissimo, la coda al Pronto Soccorso, antibiotico di routine e a casa. Il problema è che la cistite, nonostante l'antibiotico, non passa e dopo 48 ore sono di nuovo al Pronto Soccorso. Insisto perchè mi visiti un urologo, perchè mi ricordo di essere cistinurica e puó darsi che l'infezione sia portata da un calcolo. So che i dottori odiano i pazienti che si autodiagnosticano, peró io che ho sempre trascurato (e ignorato) la mia malattia, so perfettamente che si tratta di una malattia rara e che ben pochi dottori sanno di cosa sto parlando e quindi mi sento autorizzata a dare un suggerimento.
L'urologo mi ascolta e mi fa un'ecografia. Non so che cosa sia riuscito a vedere, ma mi intima di presentarmi per una TAC la settimana successiva. Il giorno della TAC, il giovanotto belloccio che realizza l'esame mi dice una frase che lí per lí non colgo: "Non avevamo mai visto una cosa simile in questo ospedale". Mi risulta quasi divertente. Non ci dó peso, del resto sono troppo impegnata ad andare in trasferta a Londra ogni settimana e a bere come una spugna ogni weekend.
Arriva il giorno di Pasquetta del 2011, con un post sbornia inenarrabile, vado dall'urologo per discutere il risultato della TAC e, quando il dottore mette le lastre sullo schermo illuminato, mi crolla il mondo addosso. Non mi dimenticheró mai quella mattina, né l'immagine del mio rene sinistro completamente bianco. Un calcolo cosidetto "a stampo" occupava al 90% il calice renale. Un mostro di quasi 7cm di lunghezza ostruiva il mio rene. Bisogna intervenire. E il giorno di Pasquetta del 2011 inizia il mio calvario personale.
Il primo intervento si realizza in ureteroscopia con laser per frantumare la pietra. Nessuna cicatrice visibile, ma il risultato di bonifica del rene è solo parziale. L'urologo rimuove solo il nucleo centrale (e sono convinta che di piú non avrebbe potuto fare) e mi lascia per la prima volta in compagnia di uno stent, un grazioso catetere che collega il rene alla vescica e fa in modo che il tuo uretere, giá duramente provato dal passaggio dell'ureteroscopio, non collassi su se stesso o non venga ostruito da frammenti di calcolo.
Il post operatorio è doloroso. Il fare pipí è un'agonia, ma per fortuna tutto passa. Lentamente, ma passa.
Il lavoro per salvare il mio rene era ben lungi dall'essere concluso, quindi mi tocca rimettermi in cerca di un buon urologo. Dove? In Inghilterra, dove per cause di forza maggiore mi sono dovuta trasferire a pochi giorni dall'operazione e dove mi prospettano la rimozione del rene come soluzione? In Italia, dove non risiedo piú?
A novembre 2011, ottengo un lavoro a Barcellona e comincio l'iter con la sanitá pubblica qua. Dopo moltissimi mesi d'attesa, vinco (perchè per come stanno le cose qua e nel resto d'Europa, che ti operino è una vittoria) una seconda operazione presso la Fundaciò Puigvert (http://www.fundacio-puigvert.es), una clinica specializzata in nefrologia. Stesso procedimento, ureteroscopia per rimuovere il frammento di 3,5cm nel calice superiore. Altro stent, stessi dolori.
Non so perchè ho sentito l'esigenza di raccontare pubblicamente il mio percorso. O meglio, ci sono molte ragioni e non so individuare quella che pesa di piú.
Sicuramente sono stanca di descrivere alle persone la mia malattia. Sono stufa di dover ripetere a chi speranzoso mi dice "Ok, allora adesso ti operi e poi starai bene definitivamente." che non è così. Che la mia malattia non ha una cura, che no, non guariró per quante operazioni io faccia.
Peró in questo ultimo ricovero (che poi per idiozie burocratiche sono stati due), mi è toccato dividere la stanza con due donne affette da cancro. Donne come me, donne che avevano molta meno speranza di me sulla carta, ma che entrambre dimostravano una forza e una tenacia invidiabili. Donne giovani e combattenti.
La vita, anche se suona banale, è ingiusta, ma non per questo non vale la pena di essere vissuta, a testa alta, sempre. Per questo continuo a lottare, anche se in questo momento mi fa male ogni singolo muscolo del mio corpo. E continuo a lottare per quelli che come me hanno avuto in sorte il nascere "rari". 

martedì 8 ottobre 2013

Oracle Tip: Changing ODI 11g Database IP address

Yesterday we had an issue with a customer. Overnight they had changed the IP address of the database where ODI is installed.
To make everything work again, we had to:
1) Change Master Repository IP address
On login, choose the Edit Connection Option and change JDBC connection to the Master Repository. Test it and then login to the Master Repository only.


2) Change Work Repository IP address 
This was the trickiest part of the job because the option for editing the Work Repository connection string is not that easy to find in ODI 11g.
When you locate the Work Repository and you click on it, it will appear all greyed out and it seems there is no way to edit it until you spot a small icon on the upper left side.

This will allow you to edit the JDBC URL.


3) Change any Oracle Database Connection in the Topology 
Remember to change any Oracle Database Connection that refers to the database for which the IP address has changed

4) Change Agent IP address
If any agent has been installed on the server that has undergone the IP change, change Agent host details.


giovedì 3 ottobre 2013

OBIEE Tip: Sort a column based on another column

I was struggling with ordering Months in my Calendar Dimension. I wanted to show month names in my graphs and prompts and I wanted them to appear in temporal order (e.g. Jan-Feb-...-Dec). I could not use the Sort option beause it would sort values in alphabetical order.
Since in my dimension I have an attribute with the month number, it would have been great using it for sorting month names. Luckily OBIEE lets you do so, by selecting the column you need to sort in the Logical Layer and applying the Sort Order based on another column.



domenica 22 settembre 2013

Beauty: Tangle Teezer y Michel Mercier


Como buena fanática de los ultimos trends, mucho había leído y escuchado sobre el cepillo Tangle Teezer. Al tener el pelo muy fino y con tendencia a romperse, siempre he andado buscando un cepillo que no me arrancara el pelo a la hora de desenredarlo. 



Después de que vi mi blogger española favorita (Isasaweis - http://www.youtube.com/watch?v=qU8OC--hNr8) hablar de él con tanto entusiasmo, entré a la Web (http://www.tangleteezer.com/index.php) y me compré mi primer Tangle Teezer. Con un poco de nostalgia para UK, me compré la versión Compact con la famosa Union Jack encima.
Este cepillo viene con una tapa, que protege las púas y hace de base cuando lo apoyamos. Las púas son de dos tamaños. Unas más largas y las otras más cortas. Son de plástico duro, pero flexibles. Yo suelo utilizarlo para desenredar el cabello mojado, después del acondicionador y funciona perfectamente. El pelo se desenreda en seguida y sorpresa... en el cepillo, quedan muy pocos cabellos! El porcentaje de cabello roto es mínimo.
Usualmente no lo utilizo en seco, pero funciona igual de bien. Es ligero y ergonómico. Quizas sea el mejor producto para el pelo que utilicé nunca!
Comprando directamente de la Web inglesa, hay que añadir los gastos de envío y sale por unos 20 euros. Cuando me lo enviaron la primera vez se perdió (o alguien se lo robó - y no me extrañaría), envié un mail para señalar que no lo había recibido, a pesar de que en el tracking de correos ponía que me lo habían entregado, y en pocos días me contestaron y me mandaron otro, sin ulteriores gastos. Así que tengo que decir que el Servicio de Atención al cliente es genial también!
Después de unos meses, quise comprar otro para utilizarlo en el gimnasio y decidí utilizar una web española (http://www.outletmaquillaje.com/tangle-teezer). Sale un poco más barato, vienen casi todos los modelos de la web inglesa y el servicio de entrega es optimo, así que la recomiendo.
Después de casi dos años de utilizo, el primero que compré sigue prácticamente perfecto. Unas púas de las mas externas se me doblaron por no poner bien la tapa (mea culpa), pero tanto el color por fuera que el cepillo en si se han mantenido perfectos.
 




Cuando empecé a quedarme en casa de mi novio más a menudo, me encontré con unos de los dramas más profundo para una mujer de pelo largo al levantarse en casa de un hombre (y encima casi pelado). Imposible encontrar un cepillo! Para evitar ir a la oficina con unos rastas, un sábado por la tarde fuimos al Corte Ingles (también los he visto después en el Carrefour) y me encontré con el cepillo de Michel Mercier (http://michelmercier.co.uk/). Se anunciaba como un cepillo revolucionario para desenredar el pelo, diseñado por una peluquería inglesa de mucha fama.
Me animé a comprarlo por la buena experiencia del Tangle Teezer, esperando que se portara de forma parecida. Hay tres versiones, una para el pelo fino (color rosa), una para el pelo medio (color verde) y una para el cabello grueso (color azul). Tengo que confesar que no me fije en este detalle a la hora de comprarlo y me compré el verde, cuando quizás el rosa habría sido lo que se adaptaba mejor a mi tipo de cabello.
No voy a decir que no me gusta para nada el cepillo, pero seguramente no volveré a comprarlo. Las púas son muy rígidas. No tiene el mismo poder de desenredar el pelo del Tangle Teezer y me rompe bastante el pelo. Es ligero y fácil de transportar, pero por unos euros más (este vale como 11 euros) se puede comprar un modelo de Tangle Teezer y vale mucho más la pena.