The Fa-Fa website

 | 

Our home on the internet

My Lasek experience: outcome

March 1st, 2010

So here I am almost 4 months after the operation. I can truly say that I am fully satisfied. My vision is now 20/20 with no eye strain or dry eye or anything. All in all I think I would definitely recommend this operation. The only thing to keep in mind is: “Be patient!”…

So that’s all folks. SEE you.

My lasek experience so far…

November 15th, 2009

So here I am. This is the first day of pretty clear visual acuity after the operation. I have had my left eye laseked and am now at day 12. But let’s take one step at a time… I will describe how it all went on a day to day basis… so here comes the story of my first lasek post-op:

Operation day
The operation itself was not so scary after all. No pain whatsoever. The only thing is I saw the actual lasek operation video on youtube so I was kind of anticipating every action taken. So my anxiety level went way up. The operation is quite quick… though not properly a bat of an eye :-)

Day 1
The first day after the operation was painless… or at least the morning was. I went to a short post-op check and all seemed to be ok. My doctor told me that the first days are painful and that the vision will become clear only afterwards. As soon as the afternoon arrived the pain started. The pain was not unbearable. It was more like having an eye floating in very very salty and a little stingy liquid. I had a bandage on the eye which was quite annoying because it compressed my eyelashes and made me feel uneasy. Luckily the painkiller medication (voltaren drops) helped me along. No photophobia yet. Slept a lot. Listened to an audiobook. No tv or computer. The night was ok.

Day 2
As soon as I woke up I changed my patch and cleaned my eyeleashes with a sterile cloth.. that was a little tricky as it contains alcohol.. my eye wasn’t used to it I guess so my eyelids got a little swollen. No visual acuity… not good anyway. Things are blurred. Don’t expect anything yet. It takes time.. the healing process is still to come. The epithelium will have to heal. The healing goes from the perimeter to the center of the eye so blurry vision is normal, especially with the protective lens still on. A little photophobia. Could not watch tv or use a computer… too stressful.

Day 3
Stronger photophobia and pain. Not unbearable though. Spent the greatest part of the day on the couch. A lot of Photophobia. Absolutely no visual acuity.

Day 4
Things are getting better. No pain. Starting to feel the lens hardening a little. Could even watch a little tv and check my e-mail.

Day 5
The lens is becoming an annoyance and sometimes causes me pain. Looking forward to take it away. I’m no longer using voltaren drops.

Day 6
Finally took the lens out. What a relief. Still need to wear bandage. The day went well. At night I woke up two times with a very painful sensation of having sand in my eye. Hydration helps.

Day 7
Nothing special to report.

Day 8
No more bandage! Visual acuity is getting slightly better in the morning. It drops during the day, especially since I use the computer a lot. At night my visual acuity is much worse. No side effects yet.

Day 9
A little headache. Visual acuity a little improved in the morning. During the day it drops. I think it’s the muscles getting used to a new way of accomodating….

Day 10,11
Nothing to report. Visual acuity gets a little better every day. It drops down a little in the evening (probably due to muscular strain). In the morning it really tops.

Day 12
This morning I could almost clearly read the bottom line on the Snellen card from 10 feet. Wow… Hope it will last!

Right eye

Operation day
Wow. This time the procedure was worse… probably because I knew what was coming but.. it was like if everything hurt just a little more than the time before. A lot of photophobia the same day. Could barely keep my eyes open.

Day 1
Just one word: Photophobia! Not very much pain though. But the photophobia is really stranding me on the couch. There is not much I can do…

Day 2
A little less photophobia. Headache. Nothing else… I’m soooo bored.

Day 3
Nothing special to report. I was able to watch a movie. My “good” eye gets tired very easily. My sight is just perfect when I wake up and gets worse during the day. Especially using the computer makes my sight blurry on the longer distance….

Day 4
Nothing special to report. One time I felt a lot of stinging pain in my newly operated eye as if I had a piece of glass under the protective lens… ouch… My eyes are both very dry. Looking forward to taking out my contact lens… it’s starting to get harder and edgier…

Two months after eye 2
My right eye is superb! I can see very clearly and even night vision has improved a lot. Accomodation is a little harder at night, especially when I’m tired. My left eye is not as edgy as my right one. Slightly more blurred… I hope it’s temporary though… I’ll just wait and see…

Vocals… almost there! (updated)

October 28th, 2009

So today I went to H-Studio as I did yesterday. Almost all songs are done. Just one to go… but I won’t spoil it telling you the title :-)

The track list is still top secret! What I can tell you though is that some of the lyrics have been updated in real-time during these two sessions.

Vocals

Vocals

Anyway… having sung yesterday as well it was just a tiny bit harder to reach the highest notes…. but it all went well in the end… Burz and Feddah came to keep me company and cheer me up.  Going back on friday to wrap it up. I can’t wait to hear the first mix!

Update: I’ve done the vocals at last :-) The first mix will probably wait until the first days of December… fingers crossed it will be worth it.

F+ Here come the bass lines!

October 18th, 2009

So I did it… the bass lines are complete. It took me two nights after working hours but the songs are all there. I decided to use my Yamaha and not my Ibanez as the former sounds a little more BB-ish so much better for an 80-ish sound which I’m definitely after.

My BB414

My BB414

So now let’s wait for the other instrumental sessions and then… eventually… I’ll have to warm up my vocal chords :-)

Stay tuned…

F+ First recording session

October 12th, 2009

So we are eventually recording our first album. Wow. As usual the first session is for the drummer. Marco and I assisted Burz in keeping up the spirit. Saturday and Sunday flew by like a shooting star… and now, it seems, we’re ready for the bass lines… so that will be me I guess :-)

But firts things first. Here is Burz in the studio putting on his nightmare-metronome-driven-headphones!

Ready, steady, go!

Ready, steady, go!

Keeping on your headphones all day long with a metronome stinging you like hell is not such an easy task as it may seem…

Having a break

Having a break

Burz and Andrea in the director's room

Burz and Andrea in the director's room

And last but not least… what a wonderful T-shirt!!!

T-shirt

T-shirt

That’s all for now…. stay tuned for the next updates… ours will be a great album…. I promise!

Ok?

November 26th, 2008

A nice quote I stumbled upon

Everything will be ok in the end

Everything will be ok in the end

10 rules for being human

November 26th, 2008

by Cherie Carter-Scott

1. You will receive a body. You may like it or hate it, but it’s yours to keep for the entire period.
2. You will learn lessons. You are enrolled in a full-time informal school called, “life.”
3. There are no mistakes, only lessons. Growth is a process of trial, error, and experimentation. The “failed” experiments are as much a part of the process as the experiments that ultimately “work.”
4. Lessons are repeated until they are learned. A lesson will be presented to you in various forms until you have learned it. When you have learned it, you can go on to the next lesson.
5. Learning lessons does not end. There’s no part of life that doesn’t contain its lessons. If you’re alive, that means there are still lessons to be learned.
6. “There” is no better a place than “here.” When your “there” has become a “here”, you will simply obtain another “there” that will again look better than “here.”
7. Other people are merely mirrors of you. You cannot love or hate something about another person unless it reflects to you something you love or hate about yourself.
8. What you make of your life is up to you. You have all the tools and resources you need. What you do with them is up to you. The choice is yours.
9. Your answers lie within you. The answers to life’s questions lie within you. All you need to do is look, listen, and trust.
10. You will forget all this.

Tonno insuperabile

February 23rd, 2007

Centocinquanta grammi di bontà…

tonnoinsuperabile

in olio d’oliva!

EJB3 Native Query

August 2nd, 2006

Sometimes, especially when using joins, we don’t want to have a lot of Entities we don’t really need that could only make things more difficult and slower. So what can we do? We could simply use a native query instead of an EJB QL query and map it into a fake entity we created just as if it were a java bean to contain the result. if for example we would like something like:

CallCost result = (CallCost)manager.createNativeQuery(

“SELECT c.pricezone_id as id, c.CONN_COST as connectionCost, c.CONN_DUR

as connectionDuration, c.STEP1_DUR as step1Duration, c.STEP1_COST as step1Cost,

c.STEP1_MAX as step1Max, c.STEP2_DUR as step2Duration, c.STEP2_COST as step2Cost,

c.STEP2_MAX as step2Max ” +”FROM call_prices b join price_zones c on

b.pricezone_id=c.pricezone_id” + ” ” +

“WHERE b.criterion_id=” + idCallCriterion + ” and price_profile_id=” + idPriceProfile

, CallCost.class).getSingleResult();

we would obtain a single record. And this record could be of the type we have created… that is a CallCost class in this case. this class has to be an @Entity even though it is not really mapped in the db. This would be the CallCost class:

@Entity

public class CallCost

{

public int id;

public double connectionCost=0;

public int connectionDuration=0;

public double step1Cost=0;

public int step1Duration = 0;

public int step1Max = 0;

public double step2Cost=0;

public int step2Duration = 0;

public int step2Max = 0;

/**

* @return the id

*/

@Id

public int getId()

{

return this.id;

}

/**

* @param id the id to set

*/

public void setId(int id)

{

this.id = id;

}

/**

* @return the connectionCost

*/

public double getConnectionCost()

{

return this.connectionCost;

}

[...]

And so on… as you can see there is NO @column tag anywhere because this fake entity will not be mapped to any db. It still needs an @Id tag to be an entity though. So where is the trick? How can this work? Very simple: if you look at the select clause the columns are expressed as “as fieldName” :

SELECT c.pricezone_id as id, c.CONN_COST as connectionCost

And you can see that these fields actually exist in the CallCost class. Another important thing is that the createNativeQuery method lets you specify the sql statement AND also a class where the result will be mapped into. That’s the trick! Easy isn’t it? What if we don’t want a single result? Simple… just create an Iterator of the CallCost objects you need and get the result list in iterator form from the Query:

Iterator results = manager.createNativeQuery("bla bla bla", CallCost.class).getResultList().iterator();

That’s all.

The beauty and ease of EJB3

June 8th, 2006

So it’s here at last! No more fussing with xml deployment descriptors (unless you really really need to) and some powerful hibernate persistence under the hood for your Entity beans.
I am already using ejb3 in a couple of active projects (mainly web services in axis that communicate with stateless process beans) and I must say… it’s painless! The application server is a JBoss 4.04GA with EJB3. The first thing I had to do was to satisfy the right dependencies and I did that with ant during compilation and deployment and in Eclipse by creating a user library pointing to the necessary EJB3 stuff on Jboss.

Here is an extract from the build file reguarding the necessary jars:

<path id=”classpath”>
<fileset dir=”${jboss.dev.home}/server/default/lib”>
<include name=”*.jar”/>
</fileset>
<fileset dir=”${jboss.dev.home}/server/default/deploy/ejb3.deployer”>
<include name=”*.jar”/>
</fileset>
<fileset
dir=”${jboss.dev.home}/server/default/deploy/jboss-aop-jdk50.deployer”>
<include name=”*.jar”/>
</fileset>
<fileset dir=”${jboss.dev.home}/lib”>
<include name=”*.jar”/>
</fileset>
<fileset dir=”${basedir}/lib”>
<include name=”*.jar”/>
</fileset>
<pathelement location=”${build.classes.dir}”/>
</path>
<property name=”build.classpath” refid=”classpath”/>

So that’s it … now just start coding! A stateless ejb3 is as simple as could be… it’s actually just a plain old java object with a specific annotation that is @Stateless (of course you MUST use JDK5 or more recent in order to use EJB3) and then implement your local and remote interface:

import it.abbeynet.ejb3.example.dao.Contact;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
/**
* An very simple example of a stateless ejb3 persisting data
* with a DAO object.
* @author fabio.russo@abbeynet.it
*/
@Stateless
public class AddressBook implements AddressBookLocal, AddressBookRemote
{


@PersistenceContext(unitName=”abbeynet”) private EntityManager manager;

public void insertContact(Contact contact)
{
manager.persist(contact);
}

public Contact findContact(int pKey)
{
return manager.find(Contact.class, pKey);

}

}

A few interesting things are that

the @Stateless tag is in the package javax.ejb and
we have a @PersistenceContext that returns an EntityManager (remember hibernate?!)

we use a very simple DAO object which is nothing more than another POJO
But let’s take one step at a time…

So first of all we have our Stateless bean that implements two interfaces (local and remote) … let’s see these:

[Local]

import it.abbeynet.ejb3.example.dao.Contact;
import javax.ejb.Local;
/**
* A simple local interface example.
* @author fabio.russo@abbeynet.it
*/
@Local
public interface AddressBookLocal
{
public void insertContact(Contact contact);
public Contact findContact(int pKey);
}

[Remote]

import it.abbeynet.ejb3.example.dao.Contact;
import javax.ejb.Remote;
/**
* A simple remote interface example.
* @author fabio.russo@abbeynet.it
*/
@Remote
public interface AddressBookRemote
{
public void insertContact(Contact contact);
public Contact findContact(int pKey);
}

Now we add a Data Access Object class. This is also a POJO, actually more of a JavaBean. The interesting thing is that it has got specific annotations.

package it.abbeynet.ejb3.example.dao;
/**
* A DAO Contact Entity Example.
* @author fabio.russo@abbeynet.it
*/
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Column;
import javax.persistence.Id;

@Entity
@Table(name=”CONTACTS”)
public class Contact implements java.io.Serializable
{
private int id;
private String name;
private String surname;
private String phone;

@Id
@Column(name=”ID”)
public int getId()
{
return id;
}

public void setId(int pk)
{
id = pk;
}

@Column(name=”NAME”)
public String getName()
{
return name;
}

public void setName(String str)
{
name = str;
}

@Column(name=”SURNAME”)
public String getSurname()
{
return surname;
}

public void setSurname(String str)
{
surname = str;
}

@Column(name=”PHONE”)
public String getPhone()
{
return phone;
}

public void setPhone(String str)

{
phone = str;
}
}

As you can see we have a couple of new annotations:

@Entity – States this object is an Entity bean
@Table - describes the actual db table
@Column – describes the actual db column
@Id – identifies the Primary Key on the table
Note that we will also use a descriptor for hibernate called persistence.xml that must be placed in the META-INF directory. The content of such a persistence descriptor can be very basic for simple use:

<?xml version=”1.0″ encoding=”UTF-8″?>
<persistence>
<persistence-unit name=”abbeynet”>
<jta-data-source>java:/DefaultDS</jta-data-source>
<properties>
<property name=”hibernate.hbm2ddl.auto” value=”create”/>
</properties>
</persistence-unit>
</persistence>

To end now, all we need is to deploy the jar file on jboss and have a client call the AddressBook interface we need. An example of an ejb3 client could look like this:

package it.abbeynet.ejb3.example.client;
import it.abbeynet.ejb3.example.AddressBookRemote;
import it.abbeynet.ejb3.example.dao.Contact;
import java.rmi.RMISecurityManager;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.apache.log4j.Logger;
/**
* A simple ejb3 client.
* @author fabio.russo@abbeynet.it
*/
public class AddressBookClient
{
public static void main(String[] args)
{
try
{
// getInitialContext();
// you will need a local jndi.properties to do this
// without specifying more options.
Context jndiContext = new InitialContext();
// Calls the remote interface
AddressBookRemote ref =
(AddressBookRemote)jndiContext.lookup(“AddressBook/remote”);
// This is standard: BeanName/remote or BeanName/local
// this eases up jndi lookups
//Create a new contact
Contact fabio = new Contact();
fabio.setId(1);
fabio.setName(“Fabio”);
fabio.setSurname(“Russo”);
fabio.setPhone(“11919191″);
//Let us insert the created contact
ref.insertContact(fabio);
// retrieve the contact
Contact fromdb = ref.findContact(1);
// and see if it is correct
System.out.println(“Name: ” + fromdb.getName() + ” Surname: ”
+ fromdb.getSurname() + ” Phone: ” + fromdb.getPhone());
}
catch (NamingException e)
{
// Here we can simply use a Log4J logger.
// A log4j.properties local file should do.
Logger log = Logger.getLogger(“client-log.log”);
log.error(“An error has occured!”, e);
e.printStackTrace();
}
}
}

So that should be really it. As you can see EJB3 is really a piece of cake if compared to previous J2EE versions of enterprise beans.