<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>generics &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/generics/</link>
	<description>Feed of posts on WordPress.com tagged "generics"</description>
	<pubDate>Mon, 30 Nov 2009 11:29:41 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Java Recorrer Colecciones [ Map ] usando for/while Parte 2]]></title>
<link>http://estebanfuentealba.wordpress.com/2009/11/29/java-recorrer-colecciones-map-usando-forwhile-parte-2/</link>
<pubDate>Mon, 30 Nov 2009 02:29:35 +0000</pubDate>
<dc:creator>estebanfuentealba</dc:creator>
<guid>http://estebanfuentealba.wordpress.com/2009/11/29/java-recorrer-colecciones-map-usando-forwhile-parte-2/</guid>
<description><![CDATA[En el Post Anterior Mostre tres formas de recorrer una Collection ahora dejo como recorrer un Map. E]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>En el <a href="http://estebanfuentealba.wordpress.com/2009/11/29/java-recorrer-colecciones-collection-usando-forwhile-parte-1/" target="_blank">Post Anterior Mostre tres formas de recorrer una </a><strong><a href="http://estebanfuentealba.wordpress.com/2009/11/29/java-recorrer-colecciones-collection-usando-forwhile-parte-1/" target="_blank">Collection</a></strong> ahora dejo como recorrer un <strong>Map</strong>.</p>
<p>En si un Map tiene una Clave y un Valor, por eso es un poco mas complicado recorrerlo</p>
<h1><strong>Iterator</strong></h1>
<p>Primero Mostrare como recorrer con Iterator</p>
<pre class="brush: java;">
Iterator it = mapList.entrySet().iterator();
    	while(it.hasNext()) {
    		Map.Entry ent = (Map.Entry)it.next();
    		Persona p = (Persona)ent.getValue();
    		System.out.println(p);
    	}
</pre>
<p>Lo diferente esta en el Map.Entry , esto me permitirá acceder a la <strong>key</strong> y al <strong>value</strong>. (Recordemos que el <strong>value</strong> es el objeto completo).</p>
<h1><strong>Simple For</strong></h1>
<p>En si, Map no tiene un indice numérico por defecto, como si lo tienen los List, es por eso que para recorrer un Map usando for <strong>NO</strong> se podrá decir &#8220;quiero el objeto en la posición x&#8221; pero hay una forma de poder hacerlo, esta forma es convertir el map en array (arreglo) , Esto lo muestro a continuación</p>
<pre class="brush: java;">
for(int i=0; i&#60;mapList.size(); i++) {
    System.out.println(mapList.values().toArray()[i]);
}
</pre>
<p>Del Map tome todos los valores con el metodo values() esto em devuelve un Set, como no tiene un indice lo convierto a Array y de ese array saco el objeto en la posición &#8220;i&#8221;</p>
<p>&#160;</p>
<h1><strong>Foreach</strong></h1>
<p>:</p>
<p>Por ultimo dejo el foreach</p>
<pre class="brush: java;">
for(Persona p : mapList.values()) {
    System.out.println(p);
}
</pre>
<p>La forma mas sencilla de recorrer un Map&#8230;</p>
<p>Acá les dejo el codigo con las tres formas de Recorrer</p>
<pre class="brush: java;">
/**
 * @(#)Persona.java
 *
 *
 * @author Esteban Fuentealba
 * @version 1.00 2009/11/29
 */

import java.util.*;

public class Persona {
	private String rut;
	private String nombre;

	public Persona() {}
    public Persona(String rut,String nombre) {
    	this.rut 	= rut;
    	this.nombre = nombre;
    }
    public void setRut(String val) {
    	this.rut = val;
    }
    public void setNombre(String val) {
    	this.nombre = val;
    }
    public String getRut() {
    	return this.rut;
    }
    public String getNombre() {
    	return this.nombre;
    }

    public String toString() {
    	return &#34;[Rut: &#34;+this.getRut()+&#34;] [Nombre: &#34;+this.getNombre()+&#34;]&#34;;
    }
    public static void main(String[] args) {

    	Map&#60;String,Persona&#62; mapList = new HashMap&#60;String,Persona&#62;();
    		Persona pA = new Persona(&#34;111-1&#34;,&#34;Juan&#34;);
    		Persona pB = new Persona(&#34;222-2&#34;,&#34;Pedro&#34;);
    		Persona pC = new Persona(&#34;333-3&#34;,&#34;Luis&#34;);
    	mapList.put(pA.getRut(),pA);
    	mapList.put(pB.getRut(),pB);
    	mapList.put(pC.getRut(),pC);

    	System.out.println(&#34;Recorrer Map con Iterator:&#34;);
    	Iterator it = mapList.entrySet().iterator();
    	while(it.hasNext()) {
    		Map.Entry ent = (Map.Entry)it.next();
    		Persona p = (Persona)ent.getValue();
    		System.out.println(p);
    	}
    	System.out.println(&#34;Recorrer Map con simple for:&#34;);
    	for(int i=0; i&#60;mapList.size(); i++) {
    		System.out.println(mapList.values().toArray()[i]);
    	}

    	System.out.println(&#34;Recorrer Map con foreach:&#34;);
    	for(Persona p : mapList.values()) {
    		System.out.println(p);
    	}

    }
}
</pre>
<p>Espero que les sirva,</p>
<p>Saludos!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Java Recorrer Colecciones [ Collection ] usando for/while Parte 1]]></title>
<link>http://estebanfuentealba.wordpress.com/2009/11/29/java-recorrer-colecciones-collection-usando-forwhile-parte-1/</link>
<pubDate>Sun, 29 Nov 2009 19:18:47 +0000</pubDate>
<dc:creator>estebanfuentealba</dc:creator>
<guid>http://estebanfuentealba.wordpress.com/2009/11/29/java-recorrer-colecciones-collection-usando-forwhile-parte-1/</guid>
<description><![CDATA[Bueno aquí pondré algunas formas de recorrer Colecciones, Primero partiré por Las clases que Impleme]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Bueno aquí pondré algunas formas de recorrer Colecciones, Primero partiré por Las clases que Implementan Collection, son las mas fáciles de recorrer.</p>
<p>Para recorrer ArrayList,Vector,HashSet,TreeSet y todos los List y Set podemos usar lo siguiente:</p>
<p>Primero Crearé una clase y un metodo main que tendrá un ArrayList para poder recorrerlo y mostrar por pantalla lo que tiene dicho ArrayList</p>
<pre class="brush: java;">
/**
 * @(#)Persona.java
 *
 *
 * @author Esteban Fuentealba
 * @version 1.00 2009/11/29
 */

import java.util.ArrayList;
public class Persona {
	private String rut;
	private String nombre;

	public Persona() {}
    public Persona(String rut,String nombre) {
    	this.rut 	= rut;
    	this.nombre = nombre;
    }

    public String getRut() {
    	return this.rut;
    }
    public String getNombre() {
    	return this.nombre;
    }

    public static void main(String[] args) {
    	ArrayList&#60;Persona&#62; lista = new ArrayList&#60;Persona&#62;();
    	lista.add(new Persona(&#34;111-1&#34;,&#34;Juan&#34;));
    	lista.add(new Persona(&#34;222-2&#34;,&#34;Pedro&#34;));
    	lista.add(new Persona(&#34;333-3&#34;,&#34;Luis&#34;));

    }

}
</pre>
<p>Bien , es un ArrayList Genérico de Persona. Ahora veamos la primera forma de recorrer, es parecida cuando recorremos arrays</p>
<h1><strong>Simple For</strong>:</h1>
<pre class="brush: java;">
for(int i=0; i&#60; lista.size(); i++) {
    		System.out.println(lista.get(i));
    	}
</pre>
<p>Es un for , le damos un contador de donde empezará (Desde la posición 0 de la lista), la condición (que se mantenga el ciclo siempre que nuestro contador sea menor al largo de la lista) y que debe hacer cuando cumpla un ciclo (aumentar el contador para ir a la siguiente posición).<br />
Esto nos debe mostrar por pantalla lo siguiente:</p>
<pre class="brush: java;">
Persona@3e25a5
Persona@19821f
Persona@addbf1
</pre>
<p>¿ Por que ? Yo quería que mostrara los datos de la persona =(<br />
Mostró eso porque el programa recorre el arraylist, saca un objeto de la posición que este recorriendo, he imprime el objeto, el objeto es de la Clase Persona por lo que el programa va a ir a esa clase y buscará si esta el método toString() y como no lo encuentra imprimirá el toString() del padre, en este caso el de Object (Todo hereda de Object) que me devuelve El nombre de la Clase &#8220;Persona&#8221; @ &#8220;hashCode&#8221;.<br />
Para solucionar esto le pondré el método (sobrescrito) toString() a la clase Persona, quedará así:</p>
<pre class="brush: java;">
/**
 * @(#)Persona.java
 *
 *
 * @author
 * @version 1.00 2009/11/29
 */

import java.util.ArrayList;
public class Persona {
	private String rut;
	private String nombre;

	public Persona() {}
    public Persona(String rut,String nombre) {
    	this.rut 	= rut;
    	this.nombre = nombre;
    }

    public String getRut() {
    	return this.rut;
    }
    public String getNombre() {
    	return this.nombre;
    }

    public String toString() {
    	return &#34;[Rut: &#34;+this.getRut()+&#34;] [Nombre: &#34;+this.getNombre()+&#34;]&#34;;
    }
    public static void main(String[] args) {
    	ArrayList&#60;Persona&#62; lista = new ArrayList&#60;Persona&#62;();
    	lista.add(new Persona(&#34;111-1&#34;,&#34;Juan&#34;));
    	lista.add(new Persona(&#34;222-2&#34;,&#34;Pedro&#34;));
    	lista.add(new Persona(&#34;333-3&#34;,&#34;Luis&#34;));

    	for(int i=0; i&#60; lista.size(); i++) {
    		System.out.println(lista.get(i));
    	}
    }
}
</pre>
<p>Compilo y corro el programa, la salida muestra por pantalla lo siguiente:</p>
<pre class="brush: java;">
[Rut: 111-1] [Nombre: Juan]
[Rut: 222-2] [Nombre: Pedro]
[Rut: 333-3] [Nombre: Luis]
</pre>
<p>Bien Ahora si mostró lo que queríamos que mostrara.</p>
<h1><strong>Iterator</strong>:</h1>
<p>Otra forma de recorrer el arraylist es usando el metodo iterator() del ArrayList , para entender de mejor forma como funciona iterator() dejo la siguiente imagen:<br />
<a href="http://estebanfuentealba.wordpress.com/files/2009/11/iterator2.png"><img class="aligncenter size-medium wp-image-732" title="iterator" src="http://estebanfuentealba.wordpress.com/files/2009/11/iterator2.png?w=300" alt="" width="300" height="169" /></a><br />
Lo que esta en verde es nuestra lista. Ojo Iterator no tiene índice, pero la mejor forma de entenderlo es imaginandose el indice, es por eso que puse en la imagen.<br />
Lo que hace iterator() es:</p>
<ol>
<li>Poner el iterador al principio de la lista. (Imaginariamente en la posición -1, fuera de la lista)</li>
<li>Luego con el metodo hasNext() pregunta si hay un elemento siguiente.</li>
<li>Si hay un elemento debo sacarlo con el metodo next() y vuelvo a preguntar con el hashNext(), así hasta que no exista ningún elemento siguiente.</li>
</ol>
<p>Lo anterior llevado a código quedaría de la siguiente forma:</p>
<pre class="brush: java;">
Iterator it = lista.iterator();
    	while(it.hasNext()) {
    		System.out.println(it.next());
    	}
</pre>
<p>la salida por pantalla es la siguiente:</p>
<pre class="brush: java;">
[Rut: 111-1] [Nombre: Juan]
[Rut: 222-2] [Nombre: Pedro]
[Rut: 333-3] [Nombre: Luis]
</pre>
<p>Cumple la misma función que la primera forma de recorrer.</p>
<p>&#160;</p>
<h1><strong>Foreach</strong>:</h1>
<p>La siguiente forma de recorrer es con foreach, desde Java 5 que se incluyó el bucle foreach para iterar sobre colecciones de objetos.<br />
La forma de ocuparlo es la siguiente</p>
<pre class="brush: java;">
for(Clase nombre : lista) {
	//...
}
</pre>
<p>Donde &#8220;lista&#8221; es la collection a recorrer,&#8221;Clase&#8221; es de que clase es la &#8220;lista&#8221; y &#8220;nombre&#8221; es un nombre de variable.<br />
Acá llevado al ejemplo de Persona:</p>
<pre class="brush: java;">
for(Persona p : lista) {
    		System.out.println(p);
    	}
</pre>
<p>La salida por pantalla es:</p>
<pre class="brush: java;">
[Rut: 111-1] [Nombre: Juan]
[Rut: 222-2] [Nombre: Pedro]
[Rut: 333-3] [Nombre: Luis]
</pre>
<p>Según yo ,foreach, es la forma mas fácil de recorrer colecciones.</p>
<p>&#160;</p>
<p>Bueno ahí puse tres formas de recorrer una Collection (Set,List,Queue)</p>
<p>Espero que les sirva, en el siguiente post pondré como recorrer Map<br />
Acá les dejo el código con las tres formas,</p>
<pre class="brush: java;">
/**
 * @(#)Persona.java
 *
 *
 * @author
 * @version 1.00 2009/11/29
 */

import java.util.ArrayList;
import java.util.Iterator;
public class Persona {
	private String rut;
	private String nombre;

	public Persona() {}
    public Persona(String rut,String nombre) {
    	this.rut 	= rut;
    	this.nombre = nombre;
    }

    public String getRut() {
    	return this.rut;
    }
    public String getNombre() {
    	return this.nombre;
    }

    public String toString() {
    	return &#34;[Rut: &#34;+this.getRut()+&#34;] [Nombre: &#34;+this.getNombre()+&#34;]&#34;;
    }
    public static void main(String[] args) {
    	ArrayList&#60;Persona&#62; lista = new ArrayList&#60;Persona&#62;();
    	lista.add(new Persona(&#34;111-1&#34;,&#34;Juan&#34;));
    	lista.add(new Persona(&#34;222-2&#34;,&#34;Pedro&#34;));
    	lista.add(new Persona(&#34;333-3&#34;,&#34;Luis&#34;));

    	System.out.println(&#34;Recorrer Collection con simple for:&#34;);
    	for(int i=0; i&#60; lista.size(); i++) {
    		System.out.println(lista.get(i));
    	}
    	System.out.println(&#34;Recorrer Collection con Iterator:&#34;);
    	Iterator it = lista.iterator();
    	while(it.hasNext()) {
    		System.out.println(it.next());
    	}
    	System.out.println(&#34;Recorrer Collection con foreach:&#34;);
    	for(Persona p : lista) {
    		System.out.println(p);
    	}
    }
}
</pre>
<p>Saludos!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Forgive My Ignorance]]></title>
<link>http://research2009.wordpress.com/2009/11/29/forgive-my-ignorance/</link>
<pubDate>Sun, 29 Nov 2009 01:45:40 +0000</pubDate>
<dc:creator>Paolo</dc:creator>
<guid>http://research2009.wordpress.com/2009/11/29/forgive-my-ignorance/</guid>
<description><![CDATA[&#8230; but I just knew how to &#8220;array-ize&#8221; lists and such things. List&lt;List&lt;TextBo]]></description>
<content:encoded><![CDATA[&#8230; but I just knew how to &#8220;array-ize&#8221; lists and such things. List&lt;List&lt;TextBo]]></content:encoded>
</item>
<item>
<title><![CDATA[NICE, Nexavar, and why it matters]]></title>
<link>http://apothecurry.wordpress.com/2009/11/25/nice-nexavar-and-why-it-matters/</link>
<pubDate>Wed, 25 Nov 2009 10:34:41 +0000</pubDate>
<dc:creator>Gauri Kamath</dc:creator>
<guid>http://apothecurry.wordpress.com/2009/11/25/nice-nexavar-and-why-it-matters/</guid>
<description><![CDATA[There has been some strong media and patient outrage in the UK over a decision to not make available]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://apothecurry.wordpress.com/files/2009/11/nex-logo.gif"><img class="alignleft size-full wp-image-239" title="nex logo" src="http://apothecurry.wordpress.com/files/2009/11/nex-logo.gif" alt="" width="169" height="68" /></a>There has been some strong media and patient outrage in the UK over a decision to not make available Bayer&#8217;s Nexavar, a drug for terminally-ill liver cancer patients, through the National Health Service.  UK&#8217;s National Institute for Health and Clinical Excellence &#8211; referred to as the NHS&#8217; drug rationing body by the UK media &#8211; says the drug&#8217;s price does not justify the benefits that it provides.  Nexavar costs 36,000 pounds a year (Rs 27 lakh). It extends survival by an average of about 3 months, and is the first to do so for liver cancer.</p>
<p>NHS could end up paying as much 9 million pounds on treating 600-700 patients a year who qualify.  Bayer has offered to give every fourth packet of the drug free but that would reduce the cost to 7.7mn pounds which is still pricey the NHS feels.</p>
<p>Bayer plans to appeal the decision.</p>
<p>The decision has health activists and patients up in arms. (See <a href="http://www.telegraph.co.uk/health/healthnews/6597221/Drug-for-terminal-liver-cancer-patients-too-expensive.html" target="_blank">here</a> and <a href="http://www.dailymail.co.uk/health/article-1229090/Condemned-early-death-Rationing-body-tells-liver-cancer-victims-life-prolonging-drug-costly.html" target="_blank">here</a>). NICE has been roundly-roasted for putting a value on human life, so to speak. Note that neither of the articles that&#8217;s linked to above has a single talking head asking Bayer to bring down the price of the product.</p>
<p>Now consider what happens in India.  First of all, none  except those whom the government employs expect it to pay for drugs &#8211; whether for common cold or cancer.  80 per cent of our healthcare spend is out-of-pocket, among the highest rates in the world.</p>
<p>However, companies receive plenty of flak from the media for price increases (not that it stops many of them).</p>
<p>Indeed,  over the decades the government has conveniently shifted the onus of providing affordable drugs onto the drug industry.  How has it done this?  One, in the early seventies it liberalised the patents regime so that generics of globally under-patent drugs could be freely launched in India.  Two, it did little to raise the bar on quality. Indeed, once a drug was on the market for five years a new manufacturer did not even have to approach the central regulator for a quality approval &#8211; it simply got a manufacturing licence from the state.</p>
<p>As a result,  India has multitudinous copycats of a good number of drugs giving it the distinction of having among the lowest drug prices in the world. But quality is still a problem especially outside the metros. In fact, it is this inability of the government to guarantee quality that has allowed companies to charge an artificial premium for &#8216;brands&#8217; &#8211; even though in a patents-free market there were hundreds of copycats of each drug. Brands are after all associated with quality.</p>
<p>So a strange duality exists in the country. Yes, it has some of the lowest drug prices in the world but to be sure of what they are getting, especially in life-and-death situations, consumers &#8211; rich or poor &#8211; still pay a fat premium.  Besides, when the markets are not large enough &#8211; such as for rare diseases &#8211; generics will not be found.</p>
<p>In recent months, a small attempt is being made in government to make amends.  The ministry of chemicals and fertilizers&#8217; Jan Aushadhi pharmacy outlets provide unbranded medicines at far lower prices by using bulk sourcing.  Last heard, this was making slow progress for want of real estate and suppliers. The government also wants to pay for cancer drugs (currently a few hospitals like Tata Memorial funded by the Department of Atomic Energy subsidise medicines) but hasn&#8217;t yet begun.</p>
<p>As an aside, Nexavar &#8211; which is patented in this counry to Bayer under India&#8217;s tightened patent rules of 2005 -  is currently the subject of a lawsuit here.  Bayer has sued the Indian drugs regulator to prevent it from approving a Cipla generic which will probably be cheaper. And surprisingly, senior government counsel seems to be missing in action from the court proceedings.</p>
<p>True, it&#8217;s not all hunky-dory in the west as the Nexavar debate shows. Governments and insurers flush with funds to pay for healthcare have pushed prices to record highs to the point where countries are now feeling the pinch.  But India can learn from those mistakes and start forgeing its own system tailored to meet its needs.</p>
<p>And not sometime in the future. Today, right now, this minute.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Στο Ευρωκοινοβούλιο η τεχνητή διόγκωση της τιμής των φαρμάκων]]></title>
<link>http://otoposthsoikologias.wordpress.com/2009/11/19/medicines-generics/</link>
<pubDate>Thu, 19 Nov 2009 10:24:24 +0000</pubDate>
<dc:creator>odysseas031</dc:creator>
<guid>http://otoposthsoikologias.wordpress.com/2009/11/19/medicines-generics/</guid>
<description><![CDATA[Το θέμα της ελληνικής νομοθεσίας που κρατά τεχνητά υψηλές τις τιμές μεγάλου μέρους των φαρμάκων, φέρ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:justify;"><a href="http://otoposthsoikologias.wordpress.com/files/2009/11/placebo_art_257_20080304155738.jpg"><img class="alignleft size-full wp-image-167" title="placebo_art_257_20080304155738" src="http://otoposthsoikologias.wordpress.com/files/2009/11/placebo_art_257_20080304155738.jpg" alt="" width="257" height="192" /></a>Το θέμα της ελληνικής νομοθεσίας που κρατά τεχνητά υψηλές τις τιμές μεγάλου μέρους των φαρμάκων, φέρνουν στο ευρωκοινοβούλιο οι Οικολόγοι Πράσινοι.</p>
<p style="text-align:justify;">Πρόκειται για τα φάρμακα των οποίων η ευρεσιτεχνία έχει λήξει και η  κατασκευάστρια εταιρία δεν έχει πια αποκλειστικά δικαιώματα στην παρασκευή τους. Τα φάρμακα αυτά, γνωστά ως <strong>«γενόσημα»</strong> ή αντίγραφα φάρμακα (<strong>generics</strong>), διατίθενται ελεύθερα από όποια εταιρία το επιθυμεί, και οι τιμές τους διαμορφώνονται σε όλο τον κόσμο σε πολύ χαμηλά επίπεδα, καθώς πιέζονται από τον ανταγωνισμό.<!--more-->Στην Ελλάδα, όμως, η τιμή διάθεσής τους καθορίζεται υποχρεωτικά στο 80% της τιμής του αρχικού προστατευόμενου προϊόντος, με αποτέλεσμα οι ασθενείς και τα ασφαλιστικά ταμεία να επιβαρύνονται με αδικαιολόγητα μεγάλα ποσά. Μέσω της υψηλής τους τιμής περιορίζεται και η ίδια η χρήση της συγκεκριμένης κατηγορίας  φαρμάκων, που στην Ελλάδα κατέχουν μόλις το 13% της αγοράς, ένα από τα χαμηλότερα ποσοστά στην Ευρώπη.</p>
<p style="text-align:justify;">Στην ερώτηση που κατέθεσε σήμερα ο Μιχάλης Τρεμόπουλος προς την Κομισιόν, ο ευρωβουλευτής των Οικολόγων Πράσινων θέτει το ζήτημα κατά πόσο τέτοιες πρακτικές είναι συμβατές με τους ευρωπαϊκούς κανόνες για την πολιτική υγείας και τον ανταγωνισμό. «Σε μια εποχή που όλοι συζητούν για τα ελλείμματα των ασφαλιστικών ταμείων, είναι πραγματικά εξοργιστικό να επιβαρύνεται το κόστος των φαρμάκων με τέτοιες αδιαφανείς μεθοδεύσεις», δήλωσε σχετικά ο Μιχ. Τρεμόπουλος.</p>
<p style="text-align:justify;">Ακολουθεί το κείμενο της ερώτησης:</p>
<p style="text-align:justify;">Θέμα: <strong> τιμολόγηση γενοσήμων – αντίγραφων φαρμάκων βάσει εθνικής νομοθεσίας.</strong></p>
<p style="text-align:justify;">Στην ελληνική εθνική νομοθεσία, η τιμολόγηση των γενοσήμων-αντίγραφων (generics) φαρμάκων ρυθμίζεται με το άρθρο 442 της αγορανομικής διάταξης 14/89, όπως ισχύει σήμερα. Με τη ρύθμιση αυτή η τιμή κάθε φαρμάκου αυτής της κατηγορίας ορίζεται υποχρεωτικά στο 80% του αρχικού προϊόντος που προστατευόταν με ευρεσιτεχνία (πατέντα). Με τον τρόπο αυτό, εμποδίζεται η πώληση γενοσήμων-αντίγραφων φαρμάκων σε χαμηλότερες τιμές, επιβαρύνονται οικονομικά οι ασθενείς και τα ασφαλιστικά ταμεία, ενώ παρέχεται στις φαρμακευτικές εταιρίες έμμεση προστασία έναντι του ανταγωνισμού και μετά τη λήξη του δικαιώματος ευρεσιτεχνίας τους.</p>
<p style="text-align:justify;">Ερωτάται η Ευρωπαϊκή Επιτροπή:</p>
<ul style="text-align:justify;">
<li>Κατά πόσο η ρύθμιση αυτή της ελληνικής εθνικής νομοθεσίας είναι συμβατή με τους κανόνες του ευρωπαϊκού δικαίου για την πολιτική υγείας και τον ανταγωνισμό.</li>
<li>Τι μέτρα προτίθεται να λάβει για την αποκατάσταση της διαφάνειας στις τιμές των φαρμάκων και την ομαλοποίηση του ανταγωνισμού.</li>
</ul>
<p style="text-align:justify;">﻿</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[More Effective C# - Generics part I]]></title>
<link>http://spolnik.wordpress.com/2009/11/18/more-effective-c-generics-part-i/</link>
<pubDate>Wed, 18 Nov 2009 20:35:08 +0000</pubDate>
<dc:creator>Jacek Spólnik</dc:creator>
<guid>http://spolnik.wordpress.com/2009/11/18/more-effective-c-generics-part-i/</guid>
<description><![CDATA[Generics &#8211; Interfaces, Classes, etc. .NET developer should use IEquatable&lt;T&gt; interface i]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h2>Generics &#8211; Interfaces, Classes, etc.</h2>
<ul>
<li>.NET developer should use IEquatable&#60;T&#62; interface if he wants to override the System.Object.Equals method</li>
<pre class="brush: csharp;">
public interface IEquatable&#60;T&#62;
{
    bool Equals(T other);
}
</pre>
<li>If you need to perform comparisons on a type defined in another library you should use <tt>IEqualityComparer&#60;T&#62;</tt> interface</li>
<pre class="brush: csharp;">
public interface IEqualityComparer&#60;T&#62;
{
    int Equals( T x, T y);
    int GetHashCode(T obj);
}
</pre>
<p>Moreover, if you want to write own comparator, you can extend EqualityComparer generic class:</p>
<pre class="brush: csharp;">
public class MyClassComparer : EqualityComparer&#60;MyClass&#62;
{
    public override bool Equals(MyClass x, MyClass y)
    {
        return EqualityComparer&#60;MyClass&#62;.Default.Equals(x, y);
    }

    public override int GetHashCode(MyClass obj)
    {
        return EqualityComparer&#60;MyClass&#62;.Default.GetHashCode(obj);
    }
}
</pre>
<p>To compare objects, the best idea is to use IComparable interface</p>
<pre class="brush: csharp;">
public interface IComparable&#60;T&#62;
{
    int CompareTo(T other);
}
</pre>
<li>To represent a null value of some type you should use Nullable struct</li>
<pre class="brush: csharp;">
[SerializableAttribute]
public struct Nullable&#60;T&#62;
where T : struct, new()
</pre>
</pre>
</ul>
<h2>Bibliography</h2>
<ul>
<li>More Effective C# - 50 Specific Ways To Improve C#</li>
<li>MSDN</li>
</ul>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Java - Bridges in Generics]]></title>
<link>http://theflashesofinsight.wordpress.com/2009/11/13/java-bridges-in-generics/</link>
<pubDate>Fri, 13 Nov 2009 03:30:39 +0000</pubDate>
<dc:creator>theflashesofinsight</dc:creator>
<guid>http://theflashesofinsight.wordpress.com/2009/11/13/java-bridges-in-generics/</guid>
<description><![CDATA[In the non-Generics Java world (JDK 1.4 or before) we would have noticed all wrapper classes that im]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In the non-Generics Java world (JDK 1.4 or before) we would have noticed all wrapper classes that implement <em>Comparable</em> interface has got two <em>compareTo</em> methods as shown below:</p>
<pre style="width:500px;font-family:courier new;font-size:12px;padding:0 0 20px;"><span style="color:blue;">public</span> <span style="color:blue;">interface</span> <span style="color:olive;">Comparable</span> {
      <span style="color:blue;">public</span> <span style="color:blue;">int</span> compareTo( object obj );
}

<span style="color:blue;">public</span> <span style="color:blue;">final</span> <span style="color:blue;">class</span> <span style="color:olive;">Long</span> <span style="color:blue;">extends</span> <span style="color:olive;">Number</span> <span style="color:blue;">implements</span> <span style="color:olive;">Comparable</span> {

   <span style="color:green;">//Override</span>
   <span style="color:blue;">public</span> <span style="color:blue;">int</span> compareTo( <span style="color:olive;">Object</span> obj ) {
      <span style="color:green;">//throws ClassCastException if the obj is not of type Long</span>
      <span style="color:blue;">return</span> compareTo( (<span style="color:olive;">Long</span>)obj );
   }

   <span style="color:blue;">public</span> <span style="color:blue;">int</span> compareTo( <span style="color:olive;">Long</span> anotherLong) {
      <span style="color:green;">//logic for comparing two Long objects.</span>
      <span style="color:blue;">return</span> result;
   }
}</pre>
<ul>
<li>A convenient method taking in an argument of type <em>Long</em> for comparison.</li>
<li>And the one that&#8217;s implemented as a result of implementing <em>Comparable</em> interface which takes in an argument of type <em>Object</em>. This method internally casts the incoming object to the given class type (<em>Long</em>) and delegates the call to the convenient <em>compareTo</em> method as shown above. If it couldn&#8217;t cast, then a <em>ClassCastException</em> is thown. We call this method as &#8216;<strong>bridge</strong>&#8216; method.</li>
</ul>
<p>But Post Java 5, with introduction of Generics and type safety, things have improved and we no more need the bridge method, <em>compareTo(Object o)</em> and doesn&#8217;t have to worry about any <em>ClassCastException</em> anymore. The implementation of the wrapper class, <em>Long</em>,  in Java 5 or above looks as follows:</p>
<pre style="overflow:auto;width:500px;font-family:courier new;font-size:12px;padding:0 0 20px;"><span style="color:blue;">public</span> <span style="color:blue;">interface</span> <span style="color:olive;">Comparable</span>&#60;T&#62; {
   <span style="color:blue;">public</span> <span style="color:blue;">int</span> compareTo(T o);
}

<span style="color:blue;">public</span> <span style="color:blue;">final</span> <span style="color:blue;">class</span> <span style="color:olive;">Long</span> <span style="color:blue;">extends</span> <span style="color:olive;">Number</span> <span style="color:blue;">implements</span> <span style="color:olive;">Comparable</span>&#60;<span style="color:olive;">Long</span>&#62; {

   @Override
   <span style="color:blue;">public</span> <span style="color:blue;">int</span> compareTo(<span style="color:olive;">Long</span> anotherLong) {
           <span style="color:green;">//logic for comparing to Long objects</span>
           <span style="color:blue;">return</span> result;
   }
}</pre>
<p>But hold on second, isn&#8217;t Java 5 and above compilers has got something called <strong>type erasure</strong>, <em>a process where the compiler will remove all the information related to type parameters and type arguments within a class or method</em> for the sake of being binary compatible with Java libraries/applications that were created before generics?</p>
<p>Doesn&#8217;t it mean that the above Java 5 Long code after compilation should get translated as it is in the Java 1.4 versions? If that&#8217;s the case, where does the bridge method go which maintains the contract between <em>Long</em> and <em>Comparable</em> interface? Things are suppose to break here. But it actually doesn&#8217;t why?</p>
<p>Thats where &#8216;<strong>Bridges</strong>&#8216; in Generics comes into picture. When the compiler translates the code for binary compatibility with older applications, it also adds the required bridge methods automatically in order to sustain the implementation contracts. In this case the contract between <em>Comparable</em> and the class(<em>Long</em>) that is implementing it.</p>
<p>This simple snippet of reflection code run on Long.class reveals the secret.</p>
<pre style="width:500px;font-family:courier new;font-size:12px;padding:0 0 20px;"><span style="color:blue;">final</span> <span style="color:olive;">Method</span>[] methods = <span style="color:olive;">Long</span>.<span style="color:blue;">class</span>.getDeclaredMethods();
<span style="color:blue;">for</span> (<span style="color:olive;">Method</span> method : methods) {
        <span style="color:olive;">System</span>.out.println(method.toString() +
           "<span style="color:magenta;"> - IsBrige?:</span>" + method.isBridge());
}</pre>
<p><strong>Output:</strong><br />
<code>.....<br />
public int java.lang.Long.compareTo(java.lang.Long) - IsBrige?:false<br />
public int java.lang.Long.compareTo(java.lang.Object) - IsBrige?:true<br />
......</code></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Trabalhando com XML parte 1: Criando um arquivo a partir de uma classe genérica]]></title>
<link>http://eduardofleck.wordpress.com/2009/11/05/trabalhando-com-xml-parte-1-criando-um-arquivo-a-partir-de-uma-classe-generica/</link>
<pubDate>Thu, 05 Nov 2009 18:57:03 +0000</pubDate>
<dc:creator>Eduardo Fleck</dc:creator>
<guid>http://eduardofleck.wordpress.com/2009/11/05/trabalhando-com-xml-parte-1-criando-um-arquivo-a-partir-de-uma-classe-generica/</guid>
<description><![CDATA[Bom dia pessoal, Nos próximos dias vou postar alguns artigos explicando como ler, gravar e navegar p]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Bom dia pessoal,</p>
<p>Nos próximos dias vou postar alguns artigos explicando como ler, gravar e navegar por um XML. Sempre usando uma classe genérica (Generics, c# 2,0). Ou seja, as funções têm que aceitar qualquer classe derivada de uma classe “Base”.</p>
<p>Caso tenha alguma dúvida com relação à generics,  <a title="MSDN" href="http://msdn.microsoft.com/pt-br/library/512aeb7t.aspx">http://msdn.microsoft.com/pt-br/library/512aeb7t.aspx</a></p>
<p>XML é uma ferramenta muito importante; Pode-se usar como um simples “arquivo de configuração”, ou utilizar como banco de dados (de pequenas aplicações), ou também para transporte de dados e etc.</p>
<p>“O XML é um formato para a criação de documentos com dados organizados de forma hierárquica, como se vê, freqüentemente, em documentos de texto formatados, imagens vetoriais ou bancos de dados.</p>
<p>Pela sua portabilidade, já que é um formato que não depende das plataformas de hardware ou de software, um banco de dados pode, através de uma aplicação, escrever em um arquivo XML, e outro banco distinto pode ler então estes mesmos dados.” <a href="http://pt.wikipedia.org/wiki/XML" target="_blank">Wikipédia</a></p>
<p>Vejamos:</p>
<p>Para começar, vamos ver como fica a estrutura de um XML:</p>
<pre class="brush: xml;">

&#60;?xml version=&#34;1.0&#34; encoding=&#34;ISO-8859-1&#34; standalone=&#34;yes&#34;?&#62;

&#60;clsEmails&#62;
   &#60;clsEmail&#62;
     &#60;IdEmail&#62;1&#60;/IdEmail&#62;
     &#60;Email&#62;edusfleck@gmail.com&#60;/Email&#62;
     &#60;Descricao&#62;Teste&#60;/Descricao&#62;
     &#60;Ativo&#62;True&#60;/Ativo&#62;
   &#60;/clsEmail&#62;
   &#60;clsEmail&#62;
     &#60;IdEmail&#62;2&#60;/IdEmail&#62;
     &#60;Email&#62;eduardo@2dweb.com.br&#60;/Email&#62;
     &#60;Descricao&#62;Teste&#60;/Descricao&#62;
     &#60;Ativo&#62;True&#60;/Ativo&#62;
   &#60;/clsEmail&#62;
&#60;/clsEmails&#62;
</pre>
<p><strong> </strong></p>
<p>Como o XML é tipado, eu diria que ele funciona como se fosse uma “lista”, começo com <span style="color:#0000ff;">&#60;clsEmails&#62;</span> coloco as classes <span style="color:#0000ff;">&#60;clsEmail&#62;&#60;/clsEmail&#62;</span> e depois fecho a “lista” <span style="color:#0000ff;">&#60;/clsEmails&#62;</span>.</p>
<p>Porque do XML com <span style="color:#0000ff;">clsEmail</span><strong><span style="color:#ff0000;">S</span> </strong>e as classes com<span style="color:#0000ff;"> clsEmail</span>?</p>
<p>Para implantar um padrão. Quando eu o crio, fica o nome da classe + <strong>S</strong>, para fazer a &#8220;lista&#8221;, e as classes com o nome dela normal (posso vir a enfrentar um problema com o plural, mas tudo bem). Assim, vou conseguir fazer uma função para ler esse XML, só passando a classe clsEmail.</p>
<p>Vamos ao código:</p>
<pre class="brush: csharp;">

///using System.Xml;

class DaoXML&#60;T&#62; where T : Base

{

public static bool salvarXml(T negocio, string enderecoXml)

{

///pegar o tipo da classe inserida

Type type = negocio.GetType();

///criar o nosso arquivo e a instancia que vai escrever nele

XmlTextWriter writer = new XmlTextWriter(enderecoXml, Encoding.UTF8);

///padrão para começar a escrever no XML

writer.WriteStartDocument();

///pego as propriedades da classe (email -&#62; descricao, email, idEmail)

PropertyInfo[] propriedades = type.GetProperties();

try

{   ///Escrevo o nome da classe + S para fazer o padrão &#60;clsEmails&#62;

writer.WriteStartElement(type.Name + &#34;s&#34;);

///Crio uma classe &#60;clsEmail&#62;

writer.WriteStartElement(type.Name);

///foreach nas propriedades para adicionalas dentro da classe

foreach (PropertyInfo p in propriedades)

{

///escreve as propriedades &#60;Email&#62;mailfino@gmail.com&#60;/Email&#62;

writer.WriteElementString(p.Name, p.GetValue(negocio, null).ToString());

}

///escreve o fim da classe &#60;/clsEmail&#62;

writer.WriteEndElement();

///escreve o fim do XML &#60;/clsEmails&#62;

writer.WriteEndElement();
return true;
 }
 catch (Exception ex)
 {
 return false;
 }
 finally
 {
 ///fecha o arquivo para não deixa-lo sem uso <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />
 writer.WriteEndDocument();
 writer.Close();
 }
 }
</pre>
<p>Simples não? Quando instanciar a classe DaoXML, o T tem que ser filho de BASE, como no meu exemplo:</p>
<pre class="brush: csharp;">

public class Base

{

}

public class clsEmail : Base

{

public int IdEmail { get; set; }

public string Descricao { get; set; }

public string Email { get; set; }

public bool Ativo { get; set; }

}
</pre>
<p>Qualquer dúvida ou sugestão, estamos aí.</p>
<p>Abraços!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[C# Generics 101, part II]]></title>
<link>http://irale.wordpress.com/2009/10/29/c-generics-101-part-ii/</link>
<pubDate>Thu, 29 Oct 2009 19:42:03 +0000</pubDate>
<dc:creator>irale</dc:creator>
<guid>http://irale.wordpress.com/2009/10/29/c-generics-101-part-ii/</guid>
<description><![CDATA[In order to solve the comparing problem, to compare the elements of type T, we need to introduce the]]></description>
<content:encoded><![CDATA[In order to solve the comparing problem, to compare the elements of type T, we need to introduce the]]></content:encoded>
</item>
<item>
<title><![CDATA[C# Generics 101, part I]]></title>
<link>http://irale.wordpress.com/2009/10/25/c-generics-101-part-i/</link>
<pubDate>Sun, 25 Oct 2009 21:44:20 +0000</pubDate>
<dc:creator>irale</dc:creator>
<guid>http://irale.wordpress.com/2009/10/25/c-generics-101-part-i/</guid>
<description><![CDATA[Generic programming is a style of computer programming in which algorithms are written in terms of t]]></description>
<content:encoded><![CDATA[Generic programming is a style of computer programming in which algorithms are written in terms of t]]></content:encoded>
</item>
<item>
<title><![CDATA[Generics e TObjectDictionary no Delphi 2010]]></title>
<link>http://deividfae.wordpress.com/2009/10/21/generics-e-tobjectdictionary-no-delphi-2010/</link>
<pubDate>Thu, 22 Oct 2009 00:10:29 +0000</pubDate>
<dc:creator>deividfae</dc:creator>
<guid>http://deividfae.wordpress.com/2009/10/21/generics-e-tobjectdictionary-no-delphi-2010/</guid>
<description><![CDATA[A partir da versão 2009 do Delphi foi introduzido alguns recursos interessantes na linguagem Delphi,]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>A partir da versão 2009 do Delphi foi introduzido alguns recursos interessantes na linguagem Delphi, alguns que estou utilizando com muita frequência.</p>
<p>Os tipo genéricos são bem conhecidos de quem trabalha com Java e C# porém no Delphi é novo e pode ser economizar muito trabalho. Também foi criado algumas novas classes utilitárias que ficam na Unit Generics.Collections que eu considero muito útil e produtivo no dia a dia, vou mostrar um exemplo utilizando TObjectDictionary que vai facilitar o entendimento.</p>
<p>Foi criado projeto VCL form para ilustrar, foi criado também uma classes TPerson com 3 campos ID, FirstName e LastName .</p>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:60px;width:1px;height:1px;">type</div>
<pre>type
  TPerson = class
  private
    FLastName: string;
    FID: Integer;
    FFirsName: string;
    procedure SetFirsName(const Value: string);
    procedure SetID(const Value: Integer);
    procedure SetLastName(const Value: string);
  published
  public
    property ID: Integer read FID write SetID;
    property FirsName: string read FFirsName write SetFirsName;
    property LastName: string read FLastName write SetLastName;
  end;</pre>
<p>No formulário, um layout simples porém fácil de identificar as funções, um ListView configurado com 3 colunas, dois campos para preencher as propriedades do objeto e 3 botões um para inserir, outro para excluir o item selecionado e um terceiro para limpar a lista de objetos</p>
<p><img class="alignnone size-full wp-image-36" title="Tela" src="http://deividfae.wordpress.com/files/2009/10/tela1.jpg" alt="Tela" width="470" height="358" /></p>
<p>Na seção private do form um Field FPersons do tipo TObjectDictionary&#60;Integer, TPerson&#62;, esses dois campos entre &#60;&#62; que são os genéricos o primeiro é a chave que estou dizendo que é um valor inteiro e o segundo será um objeto do tipo TPerson que eu crie anteriormente, pode ser utilizado qualquer tipo nativo ou classe nesses parâmetros genéricos.</p>
<p>Também foi criado um método que será chamado toda vez que o evento OnValueNotify do ObjectDictionary for executado, esse evento ocorre toda vez que for inserido, excluído ou extraido um item do ObjectDictionary.</p>
<p>No evento Create do Form foi instanciado o Objeto FPerson da sequinte maneira</p>
<pre>  FPersons := TObjectDictionary&#60;Integer, TPerson&#62;.Create([doOwnsValues]);
  // Aponta o evento do ObjectDictionary para o método customizado
  FPersons.OnValueNotify := ValueNotify;
  // Mostrar uma mensagem de todos os objetos criados e não destruidos durante
  // a execução da aplicação
  ReportMemoryLeaksOnShutdown := True;</pre>
<p>No método que é chamado quando ocorre o evento no ObjectDictionary é utilizado da seguinte maneira</p>
<pre>var
  LstItem: TListItem;
begin
  // Adicionando um item
  if Action = cnAdded then begin
    // Adiciona um item no ListView e configura as colunas
    LstItem := lstPersons.Items.Add();
    LstItem.Caption := IntToStr(Item.ID);
    LstItem.SubItems.Add(Item.FirsName);
    LstItem.SubItems.Add(Item.LastName);
  end;
  // Removendo um item
  if Action = cnRemoved then begin
    // Remove o item do ListView
    lstPersons.ItemIndex := lstPersons.FindCaption(-1,
        IntToStr(Item.ID), True, False, False).Index;
    lstPersons.DeleteSelected();
  end;</pre>
<div><span style="font-family:Consolas, Monaco, 'Courier New', Courier, monospace;font-size:small;"><span style="line-height:18px;white-space:pre;"><span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;white-space:normal;font-size:13px;">Depois disso é só programar o evento OnClick dos botões incluir, excluir e limpar lista</span></span></span></div>
<p>Incluir</p>
<pre>var
  Person: TPerson;
begin
  Person := TPerson.Create();
  Person.ID := Random(10000);
  Person.FirsName := FirstName.Text;
  Person.LastName := LastName.Text;
  FPersons.Add(Person.ID, Person);</pre>
<div><span style="font-family:Consolas, Monaco, 'Courier New', Courier, monospace;font-size:small;"><span style="line-height:18px;white-space:pre;"><span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;white-space:normal;font-size:13px;">Excluir</span></span></span></div>
<pre>var
  Person: TPerson;
begin
  if lstPersons.Selected &#60;&#62; nil then begin
    FPersons.Remove(StrToInt(lstPersons.Selected.Caption));
  end;</pre>
<div><span style="font-family:Consolas, Monaco, 'Courier New', Courier, monospace;font-size:small;"><span style="line-height:18px;white-space:pre;"><span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;white-space:normal;font-size:13px;">LimparLista</span></span></span></div>
<pre>  FPersons.Clear();</pre>
<div><span style="font-family:Consolas, Monaco, 'Courier New', Courier, monospace;font-size:small;"><span style="line-height:18px;white-space:pre;"><span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;white-space:normal;font-size:13px;">Para terminar falta somente no evento Destroy do form limpar e chamar o método Free do ObjectDictionary</span></span></span></div>
<pre>  FPersons.Clear();
  FPersons.Free();</pre>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Generics Methods]]></title>
<link>http://carlossantos.wordpress.com/2009/10/20/generics-methods/</link>
<pubDate>Wed, 21 Oct 2009 01:17:57 +0000</pubDate>
<dc:creator>Carlos Marcelo Santos</dc:creator>
<guid>http://carlossantos.wordpress.com/2009/10/20/generics-methods/</guid>
<description><![CDATA[En este post voy a escribir sobre métodos genéricos. La idea es presentar un método que acepte dos p]]></description>
<content:encoded><![CDATA[En este post voy a escribir sobre métodos genéricos. La idea es presentar un método que acepte dos p]]></content:encoded>
</item>
<item>
<title><![CDATA[Generics]]></title>
<link>http://carlossantos.wordpress.com/2009/10/20/generics/</link>
<pubDate>Tue, 20 Oct 2009 22:31:39 +0000</pubDate>
<dc:creator>Carlos Marcelo Santos</dc:creator>
<guid>http://carlossantos.wordpress.com/2009/10/20/generics/</guid>
<description><![CDATA[A partir de la versión 2.0 del Framework .NET contamos con el namespace Generics que define una cant]]></description>
<content:encoded><![CDATA[A partir de la versión 2.0 del Framework .NET contamos con el namespace Generics que define una cant]]></content:encoded>
</item>
<item>
<title><![CDATA[100th Antiretroviral Drug approved by FDA for PEPFAR]]></title>
<link>http://sciencespeaks.wordpress.com/2009/10/06/100th-antiretroviral-drug-approved-by-fda-for-pepfar/</link>
<pubDate>Tue, 06 Oct 2009 20:25:22 +0000</pubDate>
<dc:creator>dshesgreen</dc:creator>
<guid>http://sciencespeaks.wordpress.com/2009/10/06/100th-antiretroviral-drug-approved-by-fda-for-pepfar/</guid>
<description><![CDATA[Federal officials today celebrated the approval of the 100th antiretroviral drug authorized under an]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Federal officials today celebrated the approval of the 100th antiretroviral drug authorized under an expedited regulatory framework created five years ago, as a way to fast-track the delivery of cheap HIV drugs to the developing world through the PEPFAR program. A panel discussion, held at the Pan American Health Organization Headquarters to mark the milestone, featured FDA Commissioner Margaret Hamburg, OGAC Director Ambassador Eric Goosby and ambassadors from Haiti and Tanzania.</p>
<p>The FDA process was launched in May 2004, in response to a call from activists, clinicians and members of Congress to use the WHO’s pre-certification drug list to make purchases of generic medications for PEPFAR-funded programs. Instead, a process was devised to allow the FDA to certify generic antiretrovirals (ARVs) for PEPFAR purchase, even if the branded drug was still protected by U.S. patent laws.</p>
<p>According to the first speaker, Dr. Mirta Roses Periago, director of the Pan American Health Organization, more than 4 million people now have access to lifesaving HIV medications, including 455,000 in Latin America and the Caribbean region. Periago noted that these numbers reflect only 42 percent of those who need ARVs and commented on the urgent need to bring down prices and increase availability of second-line treatments. <!--more--></p>
<p>Dr. Hamburg highlighted the collaborative partnership between the FDA and the WHO to protect the public health by ensuring that these generic drugs and combination medications are safe and effective. The program allows USAID to buy the FDA-approved generic drugs for use in the developing world, but they cannot be sold in the U.S. Federal officials say the program has saved PEPFAR approximately $150 million a year.</p>
<p>This collaboration also allows drugs that have been approved by the FDA to immediately be added to the WHO pre-certification list. Hamburg noted that the FDA continues to work with developing country regulatory authorities to provide training and technical support with the aim of strengthening them. The list of 101 HIV medications includes 7 new pediatric formulations and 29 new adult formulations including combination drugs.</p>
<p>Ambassador Goosby said the program has been a resounding success, noting that 90 percent of the drugs procured in 13 PEPFAR countries are generic. In 2008, PEPFAR spent $202 million on antiretrovirals, 76 percent of them generic, at a savings of $197 million.</p>
<p>Ambassadors Joseph of Haiti and Sefue of Tanzania devoted more time extolling the benefits of PEPFAR to their respective citizenry than they did talking about the FDA process. Ambassador Sefue noted that in the early years of PEPFAR, after completely impoverishing themselves and their families to purchase the costly HIV drugs, people still died. He then outlined the contribution of PEPFAR to slowing the decline in life expectancy, reducing hospital admissions, softening the economic impact of AIDS on Tanzania, and stopping the exponential growth in the numbers of orphans, who now number some 1 million children ages 0-17. Both ambassadors made it clear that continuing support from PEPFAR was absolutely essential.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Unterstützen Sie die Patentpool-Kampagne!]]></title>
<link>http://afroditalatifimedicine.wordpress.com/2009/10/05/unterstutzen-sie-die-patentpool-kampagne/</link>
<pubDate>Mon, 05 Oct 2009 13:50:00 +0000</pubDate>
<dc:creator>Afrodita Latifi</dc:creator>
<guid>http://afroditalatifimedicine.wordpress.com/2009/10/05/unterstutzen-sie-die-patentpool-kampagne/</guid>
<description><![CDATA[Lebensnotwendige HIV/AIDS-Medikamente sind für viele Menschen, insbesondere in armen Ländern, nicht ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Lebensnotwendige HIV/AIDS-Medikamente sind für viele Menschen, insbesondere in armen Ländern, nicht bezahlbar. Gerade neue und effektivere Medikamente, die besonders benötigt werden, sind unerschwinglich.</p>
<p>Es gibt jedoch eine Lösung: Den Patentpool. Hierfür brauchen Ärzte ohne Grenzen Ihre Unterstützung!</p>
<p>Bitte unterstützen Sie dieses Bemühen mit Ihrer Unterschrift auf der Petition unter diesem Link:</p>
<p><a href="https://www.actionformsfaccess.org/de_AT">https://www.actionformsfaccess.org/de_AT</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Unterstützen Sie die Patentpool-Kampagne!]]></title>
<link>http://afroditalatifi.wordpress.com/2009/10/05/unterstutzen-sie-die-patentpool-kampagne/</link>
<pubDate>Mon, 05 Oct 2009 13:47:30 +0000</pubDate>
<dc:creator>Afrodita Latifi</dc:creator>
<guid>http://afroditalatifi.wordpress.com/2009/10/05/unterstutzen-sie-die-patentpool-kampagne/</guid>
<description><![CDATA[Lebensnotwendige HIV/AIDS-Medikamente sind für viele Menschen, insbesondere in armen Ländern, nicht ]]></description>
<content:encoded><![CDATA[Lebensnotwendige HIV/AIDS-Medikamente sind für viele Menschen, insbesondere in armen Ländern, nicht ]]></content:encoded>
</item>
<item>
<title><![CDATA[Generic medicines are cheap, but are they safe?]]></title>
<link>http://patientsandpatents.wordpress.com/2009/10/01/generic-medicines-are-cheap-but-are-they-safe/</link>
<pubDate>Thu, 01 Oct 2009 14:19:58 +0000</pubDate>
<dc:creator>Patients and Patents</dc:creator>
<guid>http://patientsandpatents.wordpress.com/2009/10/01/generic-medicines-are-cheap-but-are-they-safe/</guid>
<description><![CDATA[The June issue of SELF Magazine featured an interesting article on generic medicines.  While generic]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>The June issue of SELF Magazine featured an interesting article on generic medicines.  While generics are certainly an important part of the healthcare industry, the article raises some important issues.</p>
<blockquote><p><a href="http://www.self.com/health/2009/06/dangers-of-generic-drugs?printable=true" target="_blank"><span style="text-decoration:underline;"><strong>Bad bargain</strong></span></a></p>
<p><strong>All of us want cheaper medicine—but not if it costs us our health. Troubling reactions and a series of recalls are making some doctors wonder, Are generic drugs as safe as the FDA says they are? SELF investigates. <!--more--></strong></p>
<p><em>By Katherine Eban<br />
From the June 2009 Issue , SELF Magazine</em></p>
<p>Just when Beth Hubbard should have been feeling great, her health fell apart.</p>
<p>A 34-year-old housewares designer in the St. Louis area, Hubbard had recently gotten married. She liked the creativity of her career. And she&#8217;d conquered her mild depression and fatigue with a combination of exercise, rest and medicine, including the antidepressant Wellbutrin XL. But in the fall of 2006, shortly after she refilled her prescription—her pharmacy giving her this time Budeprion XL, a generic version of the drug—her good health gave way.</p>
<p>Within a month, she had gained 15 pounds, couldn&#8217;t sleep well, developed gastrointestinal problems and felt such extreme fatigue and lack of motivation that she thought about quitting her job. She cried and called in sick for days at a time. &#8220;I chalked it up to exhaustion after the whirlwind of the wedding and honeymoon,&#8221; Hubbard says.</p>
<p>Yet she wasn&#8217;t getting better. Her doctor referred her to four specialists, but none, she complains, &#8220;were really listening to me—they were just anxious to give me another drug.&#8221; They diagnosed her alternately with severe allergies, a heart murmur, a slow thyroid, irritable bowel syndrome, gluten intolerance, mononucleosis and chronic pain. She cycled on and off different drugs: Ambien to help her sleep at night; Provigil to keep her awake during the day; Allegra, Zyrtec and Nasacort for allergies; Lexapro, Zoloft and Xanax for anxiety and depression; Zelnorm for bowel problems. And she continued on the Budeprion XL the entire time. &#8220;I was fighting for almost a year with the insurance company over all the tests and therapy I needed,&#8221; Hubbard adds.</p>
<p>After eight months of struggling with her mystery ailments, she was out to dinner with a friend and mentioned that she needed to refill her prescription. Her friend said she&#8217;d recently gone off Wellbutrin and had some leftover pills Hubbard could use.</p>
<p>Within a week, Hubbard&#8217;s troubling symptoms vanished. Her energy came roaring back. And that is when she finally connected the dots: Her problems had begun mere days after she first took the generic. Because generics had always worked well for other conditions, she says, &#8220;I never even gave it a second thought or mentioned the pharmacy&#8217;s switch to my doctor.&#8221; Until now.</p>
<p>She called her doctor to complain about the generic and request a new prescription for the brand name only. The nurse&#8217;s response floored her. &#8220;Yes,&#8221; the nurse said matter-of-factly. &#8220;We hear that all the time.&#8221;</p>
<p><strong>Why your M.D. is worried</strong></p>
<p>If you took a prescription pill recently, odds are it was generic: Nowadays, generics constitute almost 70 percent of all the prescriptions dispensed nationwide, racking up $58 billion in sales in 2007. Anxious to cut costs, health insurers are stampeding to switch patients to drugs that are cheaper to make, test and ultimately buy because their manufacturers can piggyback on the research and marketing already done by brand-name-drug companies. Pharmacists in most states are also free to give patients whichever version of a drug is cheapest for them to supply, without telling the prescribing doctor; in some states, pharmacies are <em>required</em> to make this switch. And few of us complain when it happens: Women who wouldn&#8217;t dream of substituting Diet Pepsi for Diet Coke, simply because of the taste, eagerly swap vital medications, because the change can cut co-pays in half.</p>
<p>Many lawmakers and health-policy experts say the trend has little downside. &#8220;Generic drugs have the same active ingredient that brand-name drugs do and are made in FDA-approved plants, just as brand-name drugs are,&#8221; says Aaron S. Kesselheim, M.D., an instructor in medicine at Harvard Medical School in Boston. In an analysis recently published in <em>The Journal of the American Medical Association</em>, Dr. Kesselheim reviewed data from 47 clinical studies and found no evidence that patients on brand-name cardiovascular drugs had clinical outcomes superior to those on generics. Given these results, and the lengths that some brand-name-drug companies have gone to protect their patents and profits, it&#8217;s easy to believe that any supposed problems with generics are &#8220;a story cooked up by Big Pharma&#8221;—the conclusion reached by consumer watchdog Peter Lurie, M.D., deputy director of the health-research group at Public Citizen in Washington, D.C.</p>
<p>But a yearlong investigation by SELF—including more than 50 interviews and records leaked from one of the world&#8217;s largest generic-drug companies, Ranbaxy Laboratories—raises questions about whether some new generics are as safe or effective as the brand names. Although Dr. Kesselheim&#8217;s review looked at all of the available data, many of those studies were completed before the recent flood of generics hit the market and many generic-drug factories moved overseas. In FDA applications for new generic drugs, nearly 90 percent of the factories providing active ingredients are located overseas, where the agency&#8217;s inspection rate dropped 57 percent between 2001 and 2008.</p>
<p>&#8220;The average citizen would want to know that someone is checking that manufacturers are making the drugs they got approval to make,&#8221; says William K. Hubbard of Chapel Hill, North Carolina, associate commissioner for policy and planning for the FDA from 1991 to 2005 (and no relation to Beth). &#8220;That&#8217;s not happening, and the risk to consumers is potentially huge. I take generic drugs when they&#8217;re prescribed for me, but my confidence in them is lower than it was a year ago—and going down.&#8221;</p>
<p>Generics, which came into widespread use after Congress streamlined testing requirements in 1984, are supposed to be tightly regulated. In the late 1980s, after companies were caught paying off inspectors in order to get generic drugs approved, the FDA overhauled its rules. The agency vowed to inspect each factory before giving the green light to any application. And it newly required any generic-drug maker seeking approval to make one test lot of the proposed drug and then to produce three larger lots to show its manufacturing capabilities. &#8220;I have told the industry they are in charge of the health of the American public,&#8221; says Gary Buehler, director of the FDA&#8217;s Office of Generic Drugs, adding, &#8220;We have come a long way in how we do inspections.&#8221;</p>
<p>But SELF found that the FDA&#8217;s reforms have largely fallen by the wayside. Few applications trigger inspections, according to sources knowledgeable about the process, and instead of the three required lots, companies are making one or none. Manufacturing problems have come to light, with six generic companies recalling 20 products in 2008. KV Pharmaceutical Company, a maker of heart and pain medicine, recalled everything it made. &#8220;The FDA is satisfied that generics are OK,&#8221; says Nada Stotland, M.D., a psychiatrist in Chicago and the president of the American Psychiatric Association. &#8220;My question is, Are we satisfied?&#8221;</p>
<p><strong>Are generics really the same?</strong></p>
<p>Between 2000 and 2008, the number of new generic drugs put forth for FDA approval went up 40 percent and approvals doubled, with roughly 600 cleared to be sold last year. &#8220;Generic companies are popular on Capitol Hill because the industry is powerful and voters are anxious for cheaper drugs. There was always pressure on us to reduce barriers to entry,&#8221; says Scott Gottlieb, M.D., deputy commissioner for medical and scientific affairs for the FDA from 2005 to 2007. (Dr. Gottlieb is now a resident fellow at the American Enterprise Institute, a conservative think tank in Washington, D.C., and also advises brand-name-drug companies.)</p>
<p>Because brand-name medications have already been clinically tested, generic companies applying for FDA approval don&#8217;t have to repeat that process on their versions. Instead, they must test their medicine on a minimum of 20 people; subjects take a single dose, so the drug is not tested over time. If tests show the generic contains the same active ingredient that the original does and delivers about the same dose, then the FDA considers it &#8220;bio­equivalent&#8221; and clears it to be sold.</p>
<p>But as Beth Hubbard discovered, patients are finding stark differences among drugs the FDA has deemed equivalent. Pharmacologist Joe Graedon and his wife, Terry, cohosts of the public radio show <em>The People&#8217;s Pharmacy</em>, have fielded complaints about dozens of generics for depression, hypertension, high cholesterol and more. Consumers described drugs that had no effect, caused bizarre side effects or made conditions worse. Joe Graedon says he has been &#8220;astounded&#8221; by the outpouring. &#8220;I&#8217;m not in the back pocket of the pharmaceutical companies—I want generics to be good,&#8221; he says. &#8220;But the more we dug, the more we realized nobody is monitoring the equivalence of these drugs.&#8221;</p>
<p>After her ordeal, Hubbard hit the Internet. Amazed, she scrolled through hundreds of comments at <a href="http://peoplespharmacy.org/">PeoplesPharmacy.org</a>, many from patients who had switched to the same drug she had—Budeprion XL 300 milligrams, which Impax Laboratories makes and Teva Pharmaceutical Industries distributes. One patient wrote, &#8220;I have no history of suicidality, but a day after switching to the generic, I went into a week of steadily rising panic…. I was psychotic, self-loathing way WAY beyond anything I have ever experienced. I made it through the worst of it, called a suicide hotline, took two Ativan and didn&#8217;t take any more of the Budeprion. The next day I felt much better, and today I&#8217;m back to my normal self.&#8221;</p>
<p>If the drugs were truly bioequivalent, what could account for such divergent reactions? Last fall, the Graedons collaborated with <a href="http://www.consumerlab.com/">ConsumerLab.com</a>, an independent testing laboratory in White Plains, New York, to find out. Testing revealed that the 300 mg Budeprion XL dose Hubbard had taken dumped four times as much active ingredient during the first two hours as the brand name did. Graedon compares the effect to guzzling alcohol. &#8220;If you sip a glass of wine over the course of two or three hours, you&#8217;re not going to feel drunk,&#8221; he explains. &#8220;But if you drink the whole thing in 15 minutes, you&#8217;re getting too much too fast.&#8221;</p>
<p>Release formulas, which control how quickly a drug dissolves in your bloodstream, are something drug companies carefully develop and patent. And these release-formula patents often remain in place after the patent on a drug&#8217;s active ingredient has expired. That means generic companies must sometimes engineer their own release mechanism, as happened in the case of Budeprion XL. After complaints started rolling in, the FDA concluded in a 2008 report that patients&#8217; problems were more likely caused by normal relapses of depression than by differences in the drugs, and Teva stressed that it followed all the FDA&#8217;s rules. But that report—and the original approval of the 300 mg pill—was based solely on data Teva had submitted for the 150 mg pill; the agency&#8217;s judgment was that the doses were proportional and would behave similarly in the body. &#8220;Neither the FDA nor Teva did the required bioequivalence studies for this pill,&#8221; counters Tod Cooperman, M.D., president of ConsumerLab.com.</p>
<p>Buehler notes that the FDA won&#8217;t approve generics that its scientists deem to have &#8220;clinically significant&#8221; differences in release rates compared to the original. But the bioequivalence studies they base this judgment on aren&#8217;t public, so doctors and patients have no way of knowing when the FDA has found a difference and how dramatic it is. Nor can they easily find out about differences in fillers and additives, which might change the release rate or in rare cases trigger allergic reactions. &#8220;It&#8217;s scary to think the FDA would approve something it knows is different and still call it equivalent,&#8221; Dr. Cooperman says.</p>
<p>Some physicians are concerned not only with how fast generics deliver their dose but also about the strength of the dose itself. Because for some drugs, such as those that treat epilepsy and heart disease, even small differences in potency can mean the difference between an ineffective underdose and a toxic overdose.</p>
<p>Stephanie Bornice, a 22-year-old stay-at-home mother of two in Bristol, Pennsylvania, and an epilepsy sufferer since 2002, says she hadn&#8217;t had a seizure in six years, thanks to the medication Trileptal. But last year, after about a month on the generic, oxcarbazepine, Bornice began to have frightening and familiar symptoms, like tremors before an earthquake. &#8220;Someone would be talking, and I wouldn&#8217;t understand him, or my sight would blur,&#8221; she remembers. One afternoon, a seizure came on suddenly. She rushed to put her newborn son safely in his crib before, she says, &#8220;everything turned black.&#8221;</p>
<p>Bornice&#8217;s doctor at the time, Jacqueline French, M.D., professor of neurology at New York University Comprehensive Epilepsy Center in New York City, quickly confirmed Bornice&#8217;s suspicions that the generic was causing the problem and switched her back. Dr. French describes the case as a &#8220;clear-cut failure&#8221; of the generic—and not the only one she has seen. &#8220;The FDA is telling us that the drugs [dosages] are the same within a certain margin and that should be OK,&#8221; Dr. French says. &#8220;But there are patients holding off seizures by the skin of their teeth.&#8221;</p>
<p>Ensuring the correct dose becomes even trickier when pharmacists switch customers from one generic version of a drug to another, says John S. Antalis, M.D., a family physician in Dalton, Georgia, who has served on the safe-medication-use committee of U.S. Pharmacopeia, a nonprofit organization in Rockville, Maryland, that sets official standards for all medications. Dr. Antalis cites the dozens of versions of warfarin, the generic for the blood thinner Coumadin. It&#8217;s a drug that requires patients to have regular blood tests; they risk blood clots if they have too small a dose and internal bleeding if they get too much. It became much harder to monitor the clotting in patients&#8217; blood, Dr. Antalis says, because they were being shifted between so many versions of warfarin that it was hard to say which drug was having what effect. &#8220;I try to stay on top of any subtle hint of change, but it&#8217;s difficult,&#8221; he says.</p>
<p>Physicians&#8217; groups, including the American Academy of Neurology in St. Paul, Minnesota; the American Heart Association in Dallas; and the Endocrine Society in Chevy Chase, Maryland—all of whose members prescribe drugs that require delicate dosing—have warned doctors to look out for reactions to generics. They&#8217;ve also called on the FDA to study the issue in more detail. (Many medical societies have ties to brand-name companies; for instance, Abbott Laboratories, maker of the popular brand-name thyroid drug Synthroid, has donated to the American Association of Clinical Endocrinologists in Jacksonville, Florida.)</p>
<p>Some experts chalk up complaints to the fulfillment of expectations: We believe a generic will be worse, so it is. &#8220;People hear the word <em>generic</em>, and they think about generic cornflakes or plastic wrap,&#8221; Dr. Kesselheim says. Others dispute that notion. &#8220;Patients look forward to having a lower co-pay,&#8221; says Adam Keller Ashton, M.D., clinical professor of psychiatry at the State University of New York at Buffalo School of Medicine and Biomedical Sciences. (Dr. Ashton says he has earned money from the makers of Wellbutrin in the past but not for the previous two years, and he has no ties to generics.) He estimates that at least 75 of his patients have complained about the 300 mg generic version of Wellbutrin XL. &#8220;If it was in their head, why wasn&#8217;t it in their head when other brands went generic?&#8221; he says, adding that many of his patients felt so bad that if he hadn&#8217;t intervened, &#8220;it might have progressed to the point to where lives were in jeopardy.&#8221;</p>
<p><strong>Dangerous factories</strong></p>
<p>Stephanie T., a 33-year-old in New York City, never gave much thought to where her prescription drugs were manufactured. She knew only that they were helping her get healthy after years of battling schizoaffective disorder. In January 2007, she was productive again, back in school and studying for a degree in medical coding and billing. She had been taking a version of fluoxetine (the generic of Prozac) by a Croatian company, Pliva; then her pharmacy switched her to a fluoxetine made by the Indian generic giant Ranbaxy. Over the next six months, she fell into a deep depression. &#8220;I was lying on the couch all day long,&#8221; recalls Stephanie, who asked SELF not to publish her last name. &#8220;I wasn&#8217;t eating; I couldn&#8217;t get my schoolwork done. I was crying all the time.&#8221; If it weren&#8217;t for her family, she says, &#8220;I don&#8217;t think I&#8217;d be around.&#8221;</p>
<p>Out of the blue, Stephanie&#8217;s pharmacy switched her back to the medicine made by Pliva. &#8220;Within days, I was a brand-new person. I remember lying in bed thinking, What did I do differently?&#8221; she says. &#8220;When people are mentally ill, changing their drugs is like playing with someone&#8217;s mind. I could have committed suicide and no one would have known why.&#8221;</p>
<p>What she could not know was that the government shared her dim view of Ranbaxy&#8217;s medicine. A criminal investigation of the company had been under way for a year and a half, prompted by employee allegations that its manufacturing efforts were beset with fraud.</p>
<p>In August 2005, a Ranbaxy insider had passed whistle-blowing information to public-health experts in the United States. The papers (obtained by SELF) alleged that Ranbaxy altered testing data, concealed its deviation from safe manufacturing practices and used active pharmaceutical ingredients from unapproved sources. Its customers were taking drugs that were potentially &#8220;subpotent, superpotent or adulterated,&#8221; according to a motion filed by the government in a U.S. District Court in Maryland last year.</p>
<p>The questionable drugs were being concocted in part for a program launched by George W. Bush called PEPFAR (President&#8217;s Emergency Plan for AIDS Relief), which sends medicine by the ton to Africa. Officials worried that Ranbaxy had sold dubious AIDS drugs to the taxpayer-funded program. And in the months that followed, evidence would surface that suspect Ranbaxy treatments were reaching Americans, too.</p>
<p>According to hundreds of pages of documents SELF obtained through the Freedom of Information Act, FDA inspectors would eventually find that Ranbaxy delayed telling regulators for months about impurities in its version of the epilepsy drug gabapentin. The company also either failed to report or reported late about complaints from patients taking fluoxetine, generic Accutane and sleeping pills. In an earlier case, the company had not told the FDA about a report from a pregnant woman who took its sleeping pills and had a baby with a birth defect and developmental delays. Ranbaxy admitted the errors and told the FDA they would put procedures in place to prevent them from happening again.</p>
<p>The Ranbaxy scandal is the clearest evidence yet of the FDA&#8217;s struggle to keep an eye on drug companies that increasingly make their products in India and China. Brand-name drugs are made overseas, too, but globalization has been most dramatic in the generic industry. At recent inspection rates, it would take the FDA 13 years to see every foreign plant once, whereas the agency inspects domestic factories every 2.7 years, according to the U.S. Government Accountability Office. Inspectors generally spend less time on foreign inspections than they do domestically and often must get clearance from foreign governments, which means that companies know they are coming.</p>
<p>Inspections commonly find unsterile work areas or substandard manufacturing practices, former FDA officials say. Yet the agency often relies on paperwork from the plants themselves to determine whether problems have been solved, says Bryan A. Liang, M.D., executive director of the Institute of Health Law Studies at California Western School of Law in San Diego. In many cases, companies can give themselves a clean bill of health. &#8220;The FDA does an inspection and rarely goes back,&#8221; Dr. Liang says. &#8220;Anything can happen beyond that point. It&#8217;s a huge regulatory gap.&#8221;</p>
<p><strong>Evidence of fraud</strong></p>
<p>Many drugmakers do much more than make drugs: Through its subsidiaries or outsourcing, Ranbaxy handles every stage of the generic-drug-development process, from supplying raw ingredients to testing drugs on volunteers. When a company has so much control over the pipeline, the FDA stands as one of the few checks on drug safety.</p>
<p>Those checks appear to have failed. The whistle-blower documents provided to SELF suggest the company either was dangerously sloppy or outright fraudulent in an essential cornerstone of drug manufacturing known as stability testing. Like a quart of milk in the fridge, drugs can only go bad. The question is how quickly their ingredients degrade; once they break down, the product becomes impure and potentially useless or even hazardous. But Ranbaxy&#8217;s data showed the incredible: purity levels that never decreased, that improved or that were identical for separate batches, a statistical impossibility. SELF shared the 25 pages of documents with a scientist who has overseen quality assurance for a pharmaceutical manufacturing company; he concluded, &#8220;This is either fabricated data, or they don&#8217;t have people who can even do middle school chemistry.&#8221;</p>
<p>In one email exchange, a Ranbaxy manager in India notes that data indicating no increase in impurities from 9 to 12 months &#8220;will certainly raise doubts, we need to revise this number.&#8221; And an internal quality review shows that in several instances, the company mixed antiretroviral-drug ingredients for too long a time—which could render them ineffective or toxic. &#8220;If you&#8217;re a regulator and you look at this, that&#8217;s when you say, &#8216;We&#8217;re padlocking your front door,&#8217;&#8221; says the scientist, adding, &#8220;If the FDA was in possession of this, it should be putting this medicine on the no-fly list.&#8221;</p>
<p>The agency had the documents—and was amassing more evidence that the company&#8217;s products might be dangerous. In February 2006, a year before Stephanie T. grappled with her relapse, the FDA sent inspectors to one of Ranbaxy&#8217;s plants in India and found serious manufacturing problems. In 2007, federal investigators raided Ranbaxy facilities in New Jersey, seizing documents and computers. An inspection of a second Indian factory in early 2008 found that medicine bound for the United States was improperly handled in a plant that makes penicillin, raising the specter of cross-contamination that could be lethal to people who are allergic. And in its court filing last July, the government alleged that Ranbaxy&#8217;s violations &#8220;continue to result in the introduction of adulterated and misbranded products into interstate commerce.&#8221;</p>
<p>Yet the agency&#8217;s only regulatory response to these revelations was to hold off approving applications for drugs manufactured in one of the Indian plants it had inspected. It did not pull the drugs from that factory off the market—or stop approving 39 applications for drugs manufactured at the company&#8217;s other plants. &#8220;The FDA conducted preapproval inspections for only 17 percent of the Ranbaxy applications approved since 2005,&#8221; reveals Rep. John Dingell, Democrat of Michigan and sponsor of a bill to strengthen the FDA&#8217;s oversight of food and drug safety. &#8220;It also allowed Ranbaxy to perform the key bioequivalence studies in facilities owned by the firm and conducted by clinicians employed by the firm.&#8221;</p>
<p>A Ranbaxy spokesman, Charles Caprariello, says the company is cooperating fully with the FDA and the Justice Department and working to resolve authorities&#8217; concerns swiftly. He notes that its New Jersey facility is not affected and continues to supply products for U.S. customers, with four new generics approved in 2009. &#8220;Ranbaxy remains committed to providing high quality medicines at affordable prices to U.S. patients,&#8221; he adds.</p>
<p>Last September, three years after learning of the whistle-blower&#8217;s allegations, the FDA finally issued an &#8220;import alert&#8221; for Ranbaxy drugs, effectively putting a hold on the importation of more than 30 drugs from two of the company&#8217;s plants. A draft of the import alert had languished at the agency, a source told SELF, sitting on the desk of an FDA division director before being sent back to a subordinate, where it spent more time.</p>
<p>The agency has now also imposed the rare and serious sanction of scrutinizing all drug-safety data produced by one Indian plant because of its history of falsifications. &#8220;We&#8217;re being very vigorous,&#8221; says Janet Woodcock, M.D., director of the FDA Center for Drug Evaluation and Research, which oversees drug safety. Dr. Woodcock argues that the FDA&#8217;s recent actions against generic companies, including Ranbaxy, send a powerful signal that help promote &#8220;a culture of accountability around the globe.&#8221;</p>
<p><strong>Who can protect us?</strong></p>
<p>The goal of low-cost medicine cannot come at the expense of safety. And as Dr. Kesselheim notes, in this bleak economy, generics have become even more important, as the cost of drugs could lead patients to stop taking needed medicine altogether. So how can authorities ensure generic drugs are safe for patients?</p>
<p>For starters, says Dr. Gottlieb, the FDA&#8217;s Office of Generic Drugs, which controls approvals and inspections, needs more funding. &#8220;The FDA can&#8217;t even keep pace with the inbox, let alone invest in better science,&#8221; he says. The need will become more acute in coming months, as generic companies push Congress for permission to make delicate, injectable biologic medicines such as Epogen and Neupogen, which are often taken by cancer patients and are more complex to manufacture than traditional pills are.</p>
<p>Doctors are eager to subject highly sensitive drugs that require time- release formulas or precise dosing to more extensive clinical testing, and Graedon would like to see random, off-the-shelf testing of a generic&#8217;s ingredients and effectiveness after it hits the market. More dynamic oversight would also require equal inspections of brand-name and generic plants, regardless of where they are in the world.</p>
<p>This is beginning to happen. In recent months, the FDA has opened bureaus in China, India, Central America and Europe and plans to expand its presence to Mexico, South America and the Middle East. Rep. Dingell&#8217;s bill, the FDA Globalization Act of 2009, would provide funds for further reforms. Still, cautions Dr. Woodcock, &#8220;there is no magic point in this process by which you can test everything. Let&#8217;s say we test 10 tablets and they&#8217;re making 100,000? The manufacturer is in charge of the quality of the product, and our obligation is to make sure they meet their obligations.&#8221;</p>
<p>Dr. Stotland, of the American Psychiatric Association, says she remains troubled that most state laws allow pharmacists to change at will from brand names to generics (as well as among different generics). She argues that the law should require them to notify treating physicians of any change. As it stands, doctors who want to ensure their brand-name prescriptions are obeyed must write &#8220;Do not substitute&#8221; on their prescriptions—which does not guarantee that insurance companies will cover the extra cost. But Charles Mayr, a spokesman for the Generic Pharmaceutical Association in Arlington, Virginia, argues that if pharmacists had the added burden of informing doctors, they would be less likely to dispense generics. &#8220;It would help [brand-name] companies preserve monopolies,&#8221; he says, translating to higher prices for consumers.</p>
<p>In the meantime, patients can help themselves by knowing who made the medications they are taking and noting when their prescriptions change and if they suffer new side effects or a relapse as a result. That&#8217;s what Beth Hubbard has done. After her eight-month medical odyssey, Hubbard returned to the doctor who first prescribed Wellbutrin and who failed to talk with her about whether her symptoms might be related to a switch to a generic. She doesn&#8217;t blame him for what happened. Still, she says, &#8220;doctors see too many people and they see them too fast, and they don&#8217;t ask the difficult questions. You have to know your own body and be your own advocate.&#8221;</p></blockquote>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Using Generics in C#]]></title>
<link>http://jyotisinha.wordpress.com/2009/09/26/using-generics-in-c/</link>
<pubDate>Sat, 26 Sep 2009 23:17:31 +0000</pubDate>
<dc:creator>jyotisinha</dc:creator>
<guid>http://jyotisinha.wordpress.com/2009/09/26/using-generics-in-c/</guid>
<description><![CDATA[Generics is the new feature introduced in .net 2.0.  Generics is a powerful feature that allows C# p]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Generics is the new feature introduced in .net 2.0.  Generics is a powerful feature that allows C# programmers to write type-safe code without committing to a specific type. Use of generics in C# provides quality code with scope of greater reusability (and also provides significant boost to the code performance in case of value types).</p>
<p>Following is an example of the <strong>use of generics in C#  </strong>for custom reference type. The following example shows how to create a generic collection class.</p>
<p><strong>A.) Define the generic collection class:</strong></p>
<p>using System;</p>
<p>using System.Collections;</p>
<p> namespace Csharp.Generics</p>
<p>{</p>
<p>    public class GenericCollection&#60;T&#62;:CollectionBase</p>
<p>    {</p>
<p>        public GenericCollection()</p>
<p>        {</p>
<p>       </p>
<p>        }</p>
<p> </p>
<p>         /// &#60;summary&#62;</p>
<p>        /// Add an object to collection</p>
<p>        /// &#60;/summary&#62;</p>
<p>        /// &#60;param&#62;&#60;/param&#62;</p>
<p>        public void Add(T obj)</p>
<p>        {</p>
<p>            this.List.Add(obj);</p>
<p>         }</p>
<p>         /// &#60;summary&#62;</p>
<p>        /// Indexer</p>
<p>        /// &#60;/summary&#62;</p>
<p>        /// &#60;param&#62;&#60;/param&#62;</p>
<p>        /// &#60;returns&#62;&#60;/returns&#62;</p>
<p>        public T this[int index]</p>
<p>        {</p>
<p>            get { return (T)List[index]; }</p>
<p>        }</p>
<p>}</p>
<p>}</p>
<p>In the above code sample, &#60;T&#62; is the placeholder for the actual type.</p>
<p> </p>
<p><strong>Let&#8217;s have a type defined class <em>Employee.</em></strong></p>
<p>using System;</p>
<p>namespace Csharp.Generics</p>
<p>{</p>
<p>    public class Employee</p>
<p>    {</p>
<p>        private string __EmpName;</p>
<p>        private string __EmpID;</p>
<p>        public Employee()</p>
<p>        { }</p>
<p> </p>
<p>        public string EmpName</p>
<p>        {</p>
<p>            get { return __EmpName; }</p>
<p>            set { __EmpName = value; }</p>
<p>        }</p>
<p> </p>
<p>        public string EmpID</p>
<p>        {</p>
<p>            get { return __EmpID; }</p>
<p>            set { __EmpID = value; }</p>
<p>        }</p>
<p>    }</p>
<p>}</p>
<p> </p>
<p><strong>B.) Accessing the collection for Employee class using Generic definition of collection :</strong></p>
<p>//Replace the T inside brackets with actual datatype and rest of things are done by .net CLR to make the collection</p>
<p>//of that type</p>
<p>      GenericCollection&#60;Employee&#62; objCollection= new GenericCollection&#60;Employee&#62;();</p>
<p> </p>
<p>Advantage here is that, one piece of code (used for defining the generic collection) can be used to represent the many other type defined Classes in a similar way as done in case of making a collection object for <em>Employee </em>class.</p>
<p> </p>
<p>Jyoti Sinha</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[MNC pharma : Gobbling up Indian firms ?]]></title>
<link>http://sagar9.wordpress.com/2009/09/25/mnc-pharma-gobbling-up-indian-firms/</link>
<pubDate>Fri, 25 Sep 2009 13:56:51 +0000</pubDate>
<dc:creator>sagar  lukhi</dc:creator>
<guid>http://sagar9.wordpress.com/2009/09/25/mnc-pharma-gobbling-up-indian-firms/</guid>
<description><![CDATA[Over the years domestic pharma companies captured a larger share of the Indian pharma market as comp]]></description>
<content:encoded><![CDATA[Over the years domestic pharma companies captured a larger share of the Indian pharma market as comp]]></content:encoded>
</item>
<item>
<title><![CDATA[Auf die Bäume, ihr Affen! ]]></title>
<link>http://dgronau.wordpress.com/2009/09/22/auf-die-baume-ihr-affen/</link>
<pubDate>Tue, 22 Sep 2009 21:45:59 +0000</pubDate>
<dc:creator>dgronau</dc:creator>
<guid>http://dgronau.wordpress.com/2009/09/22/auf-die-baume-ihr-affen/</guid>
<description><![CDATA[Heute möchte ich abstrakte Type-Members vorstellen, die eine ähnliche Funktionalität wie Generics bi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Heute möchte ich abstrakte Type-Members vorstellen, die eine ähnliche Funktionalität wie Generics bieten. Auf die Frage, warum es in Scala <strong>zwei</strong> Wege gibt, über Typen zu abstrahieren, habe ich bisher nur relativ schwammige Antworten gehört:</p>
<blockquote><p>
<strong>Bill Venners</strong>: In Scala, a type can be a member of another type, just as methods and fields can be members of a type. And in Scala those type members can be abstract, like methods can be abstract in Java. Is there not some overlap between abstract type members and generic type parameters? Why does Scala have both? And what do abstract types give you beyond what the generics give you?</p>
<p><strong>Martin Odersky</strong>: Abstract types give you some things beyond what generics give you, but let me first state a somewhat general principle. There have always been two notions of abstraction: parameterization and abstract members. In Java you also have both, but it depends on what you are abstracting over. In Java you have abstract methods, but you can&#8217;t pass a method as a parameter. You don&#8217;t have abstract fields, but you can pass a value as a parameter. And similarly you don&#8217;t have abstract type members, but you can specify a type as a parameter. So in Java you also have all three of these, but there&#8217;s a distinction about what abstraction principle you can use for what kinds of things. And you could argue that this distinction is fairly arbitrary. </p>
<p>What we did in Scala was try to be more complete and orthogonal. We decided to have the same construction principles for all three sorts of members. So you can have abstract fields as well as value parameters. You can pass methods (or &#8220;functions&#8221;) as parameters, or you can abstract over them. You can specify types as parameters, or you can abstract over them. And what we get conceptually is that we can model one in terms of the other. At least in principle, we can express every sort of parameterization as a form of object-oriented abstraction. So in a sense you could say Scala is a more orthogonal and complete language.<br />
&#8230;<br />
Now you could say, well I could do the same thing with parameterization [Generics]. And indeed you can. You could parameterize class Animal with the kind of food it eats. But in practice, when you do that with many different things, it leads to an explosion of parameters, and usually, what&#8217;s more, in bounds of parameters. At the 1998 ECOOP, Kim Bruce, Phil Wadler, and I had a paper where we showed that as you increase the number of things you don&#8217;t know, the typical program will grow quadratically. So there are very good reasons not to do parameters, but to have these abstract members, because they don&#8217;t give you this quadratic blow up.
</p></blockquote>
<p>(<a href="http://www.artima.com/scalazine/articles/scalas_type_system.html" target="_blank">Artima Interview: The Purpose of Scala&#8217;s Type System</a>)</p>
<p>Je nach Situation ist also die eine oder andere Formulierung bequemer. Ich will nun keine tiefschürfende Theorie betreiben, sondern einfach versuchen, einer typischen Generics-Implementierung eine Version mit abstrakten Type-Members gegenüberzustellen.</p>
<p>Als &#8220;einfaches&#8221; Beispiel habe ich mir binäre Bäume herausgepickt &#8211; natürlich die immutable Version. Im Nachhinein muss ich sagen, dass auch diese rudimentäre Implementierung mit Generics so ihre Tücken hat, und der Code sicher noch um einiges verbessert werden könnte. Beginnen wir mit einem Trait für unseren Baum:</p>
<pre class="brush: java;">
trait BinTree[T] {
  val isEmpty:Boolean
  def add(t:T):BinTree[T]
  def contains(t:T):Boolean
  def toList:List[T]
}
</pre>
<p>Die zugehörige Implementierung habe ich im Begleit-Objekt versteckt:</p>
<pre class="brush: java;">
//Scala 2.8
object BinTree {
  def apply[T]()(implicit ord: Ordering[T]):BinTree[T] = new BinTree[T] {
    val isEmpty = true
    def add(t:T):BinTree[T] = Node[T](t,this,this)(ord)
    def contains(t:T) = false
    def toList = Nil
  }

  private case class Node[U](value:U, left:BinTree[U], right:BinTree[U])
      (implicit val ord: Ordering[U]) extends BinTree[U] {

    val isEmpty = true

    def add(u:U):BinTree[U] =
      if (u &#60; value) Node(value, left.add(u), right)
      else if (u &#62; value) Node(value, left,  right.add(u))
      else this

    def contains(u:U):Boolean = u == value &#124;&#124;
      {if (u &#60; value) left.contains(u) else right.contains(u)}

    def toList:List[U] = left.toList ::: value :: right.toList
  }
}
</pre>
<p>In der apply-Methode hätte ich gern darauf verzichtet, jedesmal eine Implementierung für einen &#8220;leeren&#8221; Knoten zu basteln, und lieber auf ein Standard-Objekt analog zu Nil oder None zurückgegriffen, aber irgendwie wollte der übliche Nothing-Trick nicht so flutschen &#8211; für Verbesserungsvorschläge wäre ich dankbar. Die toList-Methode ist alles andere als performant, das dauernde ::: (append) sollte man tunlichst vermeiden. Die Übergabe eines impliziten Parameters für eine &#8220;Ordering&#8221; ist neu in Scala 2.8 &#8211; ohne dieses zusätzliche Argument könnte ich nicht einfach &#60; und &#62; verwenden.</p>
<p>Ein kleiner Test:</p>
<pre class="brush: java;">
    var tree = BinTree[Int]()
    tree = tree.add(3);  tree = tree.add(2); tree = tree.add(5)
    tree = tree.add(1);  tree = tree.add(6);  tree = tree.add(1)
    tree = tree.add(4)
    println(tree.contains(4))
    println(tree.contains(0))
    println(tree.toList)

//--&#62; true
//--&#62; false
//--&#62; List(1, 2, 3, 4, 5, 6)
</pre>
<p>Schaut soweit erst einmal gut aus. Nun zur Variante mit den abstrakten Type-Members. Zur besseren Unterscheidung habe ich an die entsprechenden Namen jeweils &#8220;AT&#8221; angehängt. Zuerst wieder das Trait:</p>
<pre class="brush: java;">
trait BinTreeAT {
  self =&#62;
  type T
  val isEmpty:Boolean
  def add(t:T)(implicit ord: Ordering[T]):BinTreeAT{ type T = self.T}
  def contains(t:T)(implicit ord: Ordering[T]):Boolean
  def toList:List[T]
}
</pre>
<p>Zuerst fällt das self =&#62; auf. In dieser Situation wird es nur als Hilfsmittel benutzt, um auf die aktuelle Instanz zu verweisen, es ist also einfach ein Alias für &#8220;this&#8221;. Danach kommt der abstrakte Type-Member T. An dieser Stelle könnten wir noch Bounds angeben, also z.B. dass T von irgendeiner Klasse abgeleitet sein muss u.s.w., aber unser Container soll ja beliebige Typen aufnehmen können. An den Methoden add und contains fällt auf, dass sie jetzt Ordering als impliziten Parameter übergeben bekommen. Da der Typ T nicht mehr generisch ist, gibt es auch keine Möglichkeit, ihn in einer Unterklasse als implizites Konstruktorargument zu übergeben (aber wahrscheinlich gibt es noch andere Möglichkeiten, die Übergabe zu realisieren). Dann besitzt add den seltsamen Rückgabetyp  BinTreeAT{ type T = self.T}. An dieser Stelle habe ich eine Weile geknobelt, denn das einfache BinTreeAT hat sich als zu &#8220;unpräzise&#8221; erwiesen: Wenn ich einen BinTreeAT für Ints erzeugt hatte, ging sonst nach einem add die &#8220;Spezialisierung&#8221; für Int verloren, d.h. der Compiler ließ auf dem Rückgabewert z.B. kein weiteres add(Int) zu. </p>
<p>Nun die &#8220;konkreten&#8221; Klassen:</p>
<pre class="brush: java;">
//Scala 2.8
object BinTreeAT {
  def apply[U]()(implicit ord: Ordering[U]):BinTreeAT{ type T = U } = new BinTreeAT {
    self =&#62;
    type T = U
    val isEmpty = true

    def add(t:T)(implicit ord: Ordering[T]):BinTreeAT{ type T = self.T} = new NodeAT{
       type T = self.T
        val value = t
        val left = self
        val right = self
    }

    def contains(t:T)(implicit ord: Ordering[T]) = false

    def toList = Nil
  }

  abstract class NodeAT extends BinTreeAT {
    self =&#62;
    val value:T
    val left:BinTreeAT{ type T = self.T}
    val right:BinTreeAT{ type T = self.T}
    val isEmpty = true

    def add(t:T)(implicit ord: Ordering[T]):BinTreeAT{ type T = self.T} =
      if (t &#60; value) new NodeAT{
        type T = self.T
        val value = self.value
        val left = self.left.add(t)
        val right = self.right
      }
      else if (t &#62; value) new NodeAT{
        type T = self.T
        val value = self.value
        val left = self.left
        val right = self.right.add(t)
      }
      else this

    def contains(t:T)(implicit ord: Ordering[T]):Boolean = t == value &#124;&#124;
      {if (t &#60; value) left.contains(t) else right.contains(t)}

    def toList:List[T] = left.toList ::: value :: right.toList
  }
}
</pre>
<p>Alles ist etwas &#8220;länglicher&#8221; geworden, wir finden den schon erwähnten self =&#62; Trick und den &#8220;spezialisierten&#8221; Rückgabewert &#8211; diesmal BinTreeAT{ type T = self.T}  &#8211; wieder. Auch die NodeAT-Klasse ist jetzt abstrakt, und man baut sich daraus die konkreten Versionen &#8220;on the fly&#8221; zusammen. Es war relativ schwierig, die Typen konsistent hinzubekommen. Gewöhnungsbedürftig für den Javaner dürfte sein, dass Typen hier wirklich wie Member-Variablen angesprochen werden, und dass man immer im Auge behalten muss, was T im aktuellen Kontext (sprich:Scope) gerade bedeutet. Im Nachhinein sieht das Ganze gar nicht so unlogisch aus, aber es war doch eine ziemliche Frickelei für mich als &#8220;abstrakten Type-Member-Neuling&#8221;. Umso größer die Freude, dass es auch wirklich (in Scala 2.8) funktioniert.</p>
<p>Hat sich nun der Aufwand &#8220;gelohnt&#8221;? Ganz ehrlich: Containerklassen sind bestimmt nicht das geeignete Anwendungsgebiet für abstrakte Type-Members. Ich denke, es gibt einen &#8220;philosophischen&#8221; Unterschied zwischen den beiden Konzepten: Generics machen den parametrischen Typ sehr explizit zum Teil ihrer Schnittstelle: Der Typ ist etwas, das einen Teil des &#8220;Wesens&#8221; der generischen Klasse ausmacht. Collections sind ein typisches Beispiel, oft interessiert uns der Typ der Elemente viel mehr als der Typ der Collection. Beispielsweise ist mir eigentlich ziemlich egal, ob ich nun eine Liste oder ein Set von Ints summiere. Abstrakte Type-Members &#8220;verstecken&#8221; dagegen den zu parametrisierenden Typ: Er mag wichtig sein, ein unverzichtbarer Teil, um das Ganze ordentlich zusammenzustecken zu können, aber er ist hier eben <strong>kein</strong> Teil des &#8220;Wesens&#8221;, sondern mehr &#8220;Kontext&#8221;. Ich könnte mir z.B. vorstellen, dass für die Implementierung eines <a href="http://de.wikipedia.org/wiki/A*-Algorithmus" target="_blank">A*-Algorithmus</a> die Repräsentation des zugrundeliegenden Graphen zwar wichtig ist, aber nicht in dem Sinne wie der Element-Typ einer Collection, und dass deshalb hier abstrakte Type-Members besser geeignet sind.</p>
<p>Wie ich schon zugegeben habe, bin ich mit abstrakten Type-Members noch lange nicht auf du und du, aber ich hoffe, dass ich ein wenig Appetit gemacht habe. Wer sich bessere Beispiele und exaktere Aussagen wünscht, sei auf <a>A Tour of Scala</a>, <a href="http://www.scala-lang.org/docu/files/ScalaOverview.pdf" target="_blank">Scala-Overview, Kapitel 5.2</a> oder <a href="http://programming-scala.labs.oreilly.com/ch02.html#AbstractTypesAndParameterizedTypes" target="_blank">Programming Scala  (D. Wampler, A. Payne)</a> verwiesen.</p>
<p>Noch ein paar Worte in eigener Sache. Das Blog macht mir Spaß, auch wenn ich immer mehr nachdenken muss, was ich eigentlich schreiben soll: Nicht etwa, dass es über Scala nicht genügend interessante Dinge zu berichten gäbe, sondern weil ich merke, dass ich bei vielen Fragen noch ziemlich an der Oberfläche kratze. Und vielleicht stellt sich bei mir auch schon die berüchtigte Betriebsblindheit ein, so dass ich Dinge als &#8220;normal&#8221; betrachte, die vielleicht für den Scala-Neuling durchaus interessant sein können. Ich würde mich deshalb nicht nur über Feedback zu den aktuellen Beiträgen freuen, sondern auch darüber, welche Beiträge ihr hier zukünftig gern sehen würdet. Andererseits gibt es natürlich auch Sachen, die sich besser &#8220;interaktiv&#8221; lösen lassen, etwa im <a href="http://scala-forum.org/index.php?10" target="_blank">Scala-Forum</a>, das ich auch regelmäßig besuche. Wie auch immer, lasst mal etwas von euch hören <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Biologic Data Exclusivity - Part II]]></title>
<link>http://mikehartcxo.wordpress.com/2009/09/22/biologic-data-exclusivity-part-ii/</link>
<pubDate>Tue, 22 Sep 2009 12:46:38 +0000</pubDate>
<dc:creator>Mike Hart</dc:creator>
<guid>http://mikehartcxo.wordpress.com/2009/09/22/biologic-data-exclusivity-part-ii/</guid>
<description><![CDATA[Last week I wrote about the biologic data exclusivity debate and suggested that the industry focus o]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Last week I wrote about the biologic data exclusivity debate and suggested that the industry focus on a metric to determine the amount of time a new drug should be able to maintain exclusivity.</p>
<p>The next day an op-ed piece showed up in the <a href="http://www.washingtontimes.com/news/2009/sep/18/opening-the-door-for-biogenerics/">Washington Times</a> that exemplified why such a metric is needed.  In the article the author, who is the CEO of a company that produces a biosimilar, argues that a 12-year data exclusivity period is &#8220;unnecessarily lengthy&#8221; based on return on investment.  He says,</p>
<p><em>&#8220;Innovator companies argue for long exclusivity periods for their products, saying that the cost of developing biologics is so expensive that they need more time without competition to gain back their expenses and save jobs for their workers. But a recent study by AARP&#8217;s Public Policy Institute reveals that manufacturers of many top-selling biologic drugs have recouped average research and development costs several times over in the past six years, often within a single year.&#8221;</em></p>
<p>To my point, if the argument for data exclusivity is based on return on investment, a metric should be developed to drive the appropriate term of protection for each drug.  To arbitrarily set a data exclusivity period to cover all biologics with no basis of objective measurement is merely dartboard politics.</p>
<p>&#160;</p>
<p><a href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fmikehartcxo.wordpress.com%2F2009%2F09%2F22%2Fbiologic-data-exclusivity-part-ii%2F&#38;linkname=Biologic%20Data%20Exclusivity%20-%20Part%20II"><img src="http://static.addtoany.com/buttons/share_save_256_24.png" alt="Share" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Biologic Data Exclusivity - One Size Doesn't Have to Fit All]]></title>
<link>http://mikehartcxo.wordpress.com/2009/09/17/biologic-data-exclusivity-one-size-doesnt-have-to-fit-all/</link>
<pubDate>Thu, 17 Sep 2009 12:41:16 +0000</pubDate>
<dc:creator>Mike Hart</dc:creator>
<guid>http://mikehartcxo.wordpress.com/2009/09/17/biologic-data-exclusivity-one-size-doesnt-have-to-fit-all/</guid>
<description><![CDATA[The debate over biologic data exclusivity continues in earnest.  How long should a biologic drug be ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>The debate over biologic data exclusivity continues in earnest.  How long should a biologic drug be protected from competition once it is approved by the FDA?  The argument has consequences for generic follow-on versions of many expensive biologic drugs currently on the market.</p>
<p>The range of proposals have included a 5-year period intended to mirror the current period awarded small molecule drugs under the Hatch Waxman Act,  a 7-year exclusivity by the Obama Administration and as high as 12-14 years by several industry groups, including the Biotechnology Industry Organization.</p>
<p>Reaching a consensus has been difficult because of the objective for providing one-size-fits-all legislation.  What if we took a different approach and tied data exclusivity to the amount of time and money it takes to develop a biologic subject to a maximum number of years?  This approach would provide necessary protection while taking into account the investment made in drug development.  Why should a biologic that was approved based on Phase II data be afforded the same protection as one that needed randomized Phase III data?  The cost of development between the two is significant.</p>
<p>In drug development time equals money.  The more money needed to develop a drug is typically tied to the increased time for running expensive clinical trials.  In developing a metric that takes into consideration the time/money relationship we may come up with a solution that is fair for the developer and consumer.</p>
<p>&#160;</p>
<p><a href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fmikehartcxo.wordpress.com%2F2009%2F09%2F17%2Fbiologic-data-exclusivity-one-size-doesnt-have-to-fit-all%2F&#38;linkname=Biologic%20Data%20Exclusivity%20-%20One%20Size%20Doesn%27t%20Have%20to%20Fit%20All"><img src="http://static.addtoany.com/buttons/share_save_256_24.png" alt="Share" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Silly C# Dictionary Error]]></title>
<link>http://paultiseo.wordpress.com/2009/09/11/silly-c-dictionary-error/</link>
<pubDate>Fri, 11 Sep 2009 17:00:43 +0000</pubDate>
<dc:creator>Paul Tiseo</dc:creator>
<guid>http://paultiseo.wordpress.com/2009/09/11/silly-c-dictionary-error/</guid>
<description><![CDATA[So, I stumbled across an interesting error while coding today, which in hindsight is really simple (]]></description>
<content:encoded><![CDATA[So, I stumbled across an interesting error while coding today, which in hindsight is really simple (]]></content:encoded>
</item>
<item>
<title><![CDATA[Console Extension Methods]]></title>
<link>http://xosfaere.wordpress.com/2009/09/06/console-extension-methods/</link>
<pubDate>Sun, 06 Sep 2009 12:58:25 +0000</pubDate>
<dc:creator>xosfaere</dc:creator>
<guid>http://xosfaere.wordpress.com/2009/09/06/console-extension-methods/</guid>
<description><![CDATA[Console applications have one problem that occur in just about every console application: parameter ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Console applications have one problem that occur in just about every console application: parameter parsing. And so when designing a couple of console applications, I came up with some extension methods to deal with this problem in more or less the easiest possible way there is.</p>
<p>I&#8217;m too lazy to explain in detail how it all works, but the code is not complex, so it is quite straightforward to see.</p>
<p>First let&#8217;s see how a console application might be called</p>
<pre style="padding-left:30px;">consolation.exe /optimize /max:13,5</pre>
<p></p>
<p>Second, some example code to project the string arguments into well-typed values</p>
<pre style="font-size:small;color:black;font-family:Consolas, 'Courier New', Courier, monospace;padding-left:30px;"><span style="color:#0000ff;">class</span> Program
{
    <span style="color:#0000ff;">static</span> <span style="color:#0000ff;">void</span> Main(<span style="color:#0000ff;">string</span>[] args)
    {
        var optimize = args.Argued(<span style="color:#006080;">"optimize"</span>);
        var max = args.Argument&#60;decimal&#62;(<span style="color:#006080;">"max"</span>);
        <span style="color:#008000;">// ...</span>
    }
}</pre>
<p></p>
<p>I cannot see how one could simplify this much further. It is also possible to just parse out parameters as strings with no type argument. I have an idea though &#8211; that&#8217;s for the next post.</p>
<p style="padding-left:30px;"><a href="http://event-horizon.zapto.org/external/Extensia.zip">Extensia.zip</a> &#8211; The C# source code</p>
<p>Enjoy <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[What's New in the C# 2.0]]></title>
<link>http://trulydotnet.wordpress.com/2009/09/06/whats-new-in-the-c-2-0/</link>
<pubDate>Sun, 06 Sep 2009 05:17:13 +0000</pubDate>
<dc:creator>Ashok</dc:creator>
<guid>http://trulydotnet.wordpress.com/2009/09/06/whats-new-in-the-c-2-0/</guid>
<description><![CDATA[With the release of Visual Studio 2005, the C# language has been updated to version 2.0, which suppo]]></description>
<content:encoded><![CDATA[With the release of Visual Studio 2005, the C# language has been updated to version 2.0, which suppo]]></content:encoded>
</item>

</channel>
</rss>
