Por qué la gallina saco visa ?
Como ya habia discutido con algunos amigos acerca de para que demonios sirven los static en PHP, retomé el dilema y me puse a buscar mas sobre usos de estaticas en PHP ( la queria particularmente para hacer un singleton ). Me volví a encontrar con lo mismo, solamente paginas PHP con ejemplos, la documentación oficial y los usos y scopes que pueden tener las variables. Pero fue hasta que bajé un wrapper de mysqli en PHP, que me hizo ver las cosas desde otra perspectiva.
Tal y como habia investigado, las variables estáticas en PHP son estáticas solamente durante la vida del script. Malamente yo estoy mas acostumbrado y tengo mas experiencia en java, por lo que tambien estoy acostumbrado a que las variables estáticas mantengan su valor mientras la aplicación esté corriendo. Pero en php, si tienes por decir, dos scripts PHP a.php y b.php, y tenemos el siguiente código en a.php:
class singleton { private static $instancia ;
private $visits;
private function __construct() {
$visits = 0 ;
}
public static function GetInstance($vendor) {
// fijate a ver si tiene instancia
if ( !isset( self::$instancia ) ) {
echo "no tenia una instancia ... creando una
";
self::$instancia = new singleton( );
}
return self::$instancia;
}
public function masVisitas( ) {
$this->visits++;
}
public function getVisitas( ){
return $this->visits;
}
}
$x = singleton::GetInstance( );
$x->masVisitas( );
echo " en a tenemos " . $x->getVisitas( );
y desde b.php quieres acceder el singleton,
$b = singleton::GetInstance( ); $b->masVisitas( ); echo " desde b.php tenemos " . $b->getVisitas( );
éste se vuelve a cargar de nuevo. Yo no le veía el sentido de tener un singleton si cada vez que cargas otra nueva página se vuelve a inicializar, se vuelve a crear una nueva instancia, y se meten sus datos como debe hacerlo; yo decía, ¿donde está lo estático? :-( Si quieres hacer una cache o un arreglo de datos que se pueda acceder desde cualquier parte del sitio, como este claro ejemplo de número de visitas, en PHP simplemente n o s e p u e d e. Por alguna parte tambien me encontré la implementación de un singleton que lo que hacia era serializar los datos que quieres guardar en tu arreglo/variable de tu singleton, y guardarlos en un archivo cada vez que terminaba el script; y leerlos al abrir otro PHP y cargarse de nuevo. Obvio, tambien se podria hacer con base de datos, pero el objetivo era tener todo esto en memoria.
Para esto me puse a investigar sobre mysqli, qué es, con qué se come y como se usa ( tal vez ponga un post de esto mas adelante ). Me topé con un singleton en un wrapper de mysqli que me encontré (lizdb, se puede encontrar en sourceforge ), y pues abrí los ojos: fue cuando me di cuenta que ‘para eso puede servir’, y la base de datos es un claro ejemplo; es decir, cuantas veces en un script accedes base de datos ? más de una; si lees algo para el header, despues si sacas algo de info del usuario, tema o cosa que este relacionado el script, datos estadisticos, etc. Todo esto se puede usar utilizando la misma instancia de alguna conexión de base de datos, e internamente lo único que va haciendo es ir ejecutando query tras query, en lugar de hacer N instancias y por consiguiente N conexiones a base de datos para cada query. En lo que ayuda, es el hecho de que PHP puedes tener anidados 100 includes, y no puedes controlar cuantas instancias tienes de qué cosas; ahí es donde es práctico el singleton con su PHP-style static.
Bueno, solo fue algo que se me vino a la mente, y quería postearlo aquí, ya que no encontré mucho sobre esto como me imaginaba que hubiera. Saludos!
Esta es una cadena que me llego, y lo lei solo por que habia escuchado comentarios acerca de un discurso que se habia aventado Steve Jobs en una universidad. Ahi se los dejo por si lo quieren leer…
ARTÍCULO DE VIDA
Steve Jobs
Discurso de Steve Jobs, fundador de Apple Computer, ante los graduados de la Universidad de Stanford, en junio de 2005:
“Tengo el honor de estar con ustedes hoy en la ceremonia de graduación de una de las mejores universidades del mundo. Nunca me gradué de una universidad. La verdad sea dicha, esto es lo más cerca que he estado de una graduación universitaria. Hoy quiero contarles tres historias de mi vida. Es todo. No es gran cosa. Solo tres historias.
La primera historia es sobre conectar los puntos; (cómo experiencias pasadas en tu vida, aparentemente intrascendentes o aisladas, se conectan con otras en formas inesperadas).
Yo me retiré de Reed College después de los seis primeros meses, pero luego permanecí dando vueltas por allí 18 meses antes de salir realmente. ¿Por qué me retiré? Comenzó antes de que yo naciera. Mi madre biológica era una joven soltera graduada de la universidad, y decidió ofrecerme en adopción. Pensaba con vehemencia que yo debería ser adoptado por graduados universitarios, así que todo estuvo arreglado para que así fuera, por parte de un abogado y su esposa. Excepto que cuando nací decidieron a última hora que realmente querían una niña. Así que mis padres, otra pareja que estaba en una lista de espera, recibieron una llamada en medio de la noche:
- “Tenemos un niño inesperado, ¿lo quieren?”.
Ellos dijeron: “¡Claro!”.
Mi madre biológica más tarde se dio cuenta de que mi madre nunca se había graduado de la universidad y que mi padre no se había graduado del bachillerato. Ella se rehusó a firmar los papeles finales de adopción. Solo se ablandó unos meses después cuando mis padres prometieron que yo iría algún día a la universidad.
Y 17 años después fui a ella. Pero ingenuamente escogí una que era casi tan cara como Stanford, y todos los ahorros de mis padres de clase trabajadora fueron gastados en mi matrícula. Después de seis meses, no pude ver el valor. No tenía ni idea qué quería hacer con mi vida y cómo la universidad iba ayudarme a resolverlo. Y estaba aquí gastando todo el dinero que mis padres habían ahorrado en su vida. Así que decidí retirarme y confiar en que todo saldría bien. Fue un poco aterrador en aquel tiempo, pero mirando retrospectivamente fue una de las mejores decisiones que he tomado. Al momento en que me retiré pude dejar de tomar las clases obligatorias que no me interesaban e ingresé a otras que lucían interesantes.
No todo fue romántico. No tuve un dormitorio, así que me acosté en el suelo de las habitaciones de mis amigos, reciclé latas de Coca-Cola por cinco centavos para comprar comida, y caminé siete millas cada domingo para conseguir una buena comida en el templo de Hare Krishna. Lo amaba. Y muchas de las cosas con las que tropecé siguiendo mi curiosidad e intuición se convirtieron en invaluables más tarde. Déjenme darles un ejemplo:
Reed College en esa época ofrecía quizás la mejor instrucción de caligrafía en Estados Unidos. A través del campus, cada cartel, cada sello en cada gaveta estaba hermosamente caligrafiado a mano. Dado que me había retirado y no tenía que tomar las clases normales, decidí tomar una de caligrafía para aprender cómo hacer esto. Aprendí sobre las tipografías serif y san serif, sobre la variación de la cantidad de espacio entre diferentes combinaciones de letras, sobre lo que hace grande a una tipografía grande.
Era hermoso, histórico, artísticamente sutil en una forma en que la ciencia no puede capturar, y yo lo encontré fascinante. Nada de esto tenía siquiera una esperanza de aplicación práctica en mi vida. Pero años después, cuando estábamos diseñando el primer computador Macintosh, todo ello regresó a mí. Y lo diseñamos en el Mac. Fue el primer computador con tipografía hermosa. Si no hubiera ingresado en ese simple curso en la universidad, el Mac nunca habría tenido múltiples tipografías o fuentes proporcionalmente espaciadas. Y ya que el Windows solo copió el Mac, es probable que ningún computador personal las hubiera tenido. Si nunca me hubiera retirado, nunca hubiera ingresado en esta clase de caligrafía, y los computadores personales podrían no tener la hermosa tipografía que tienen.
Claro, era imposible conectar los puntos (experiencias) proyectándolos hacia adelante cuando estaba en la universidad. Pero fue muy claro mirando atrás diez años después. De nuevo. No puedes conectar puntos (experiencias) mirando hacia adelante; solo puedes conectarlos mirando hacia atrás. Así que tienes que confiar en que los puntos se conectarán de alguna forma en el futuro. Tienes que confiar en algo – tu intuición, el destino, la vida, el karma, lo que sea-. Esta aproximación nunca me ha decepcionado, y ha hecho toda la diferencia en mi vida.
Mi segunda historia es sobre amor y pérdida:
Fui afortunado: encontré temprano lo que amaba hacer en la vida vida. Steve Wozniak y yo comenzamos la empresa Apple en el garaje de mis padres cuando yo tenía 20 años. Trabajamos duro, y en 10 años Apple había pasado de ser solo nosotros dos en un garaje a una compañía de 2.000 millones de dólares con más de 4.000 empleados. Habíamos presentado nuestra más fina creación –el Macintosh- un año antes, y yo apenas llegaba a los 30. Y entonces fui despedido. ¿Cómo puede ser despedido de la compañía que usted mismo creó?
Bien, mientras Apple crecía empleamos a alguien que pensé era muy talentoso para manejar la compañía conmigo, y durante el primer año o más las cosas estuvieron bien. Pero entonces nuestras visiones del futuro comenzaron a apartarse hasta que tuvimos una discusión. Cuando ocurrió, nuestra junta de directores lo apoyó a él. Así que a los 30, estaba fuera. Y muy públicamente. Lo que había sido el foco de toda mi vida adulta se había ido, y fue devastador. No supe realmente qué hacer por algunos meses. Sentí que había dejado por el suelo a la generación previa de empresarios, que dejé caer la posta mientras me la pasaban.
Conocí a David Packard y Bob Noyce y traté de disculparme por haber errado tan gravemente. Fue un fracaso muy público, e incluso pensé irme del valle (Silicon Valley). Pero algo comenzó lentamente a despertar en mí –todavía amaba lo que hacía-. El giro de los eventos en Apple no había cambiado eso en nada. Había sido rechazado, pero estaba todavía enamorado. Y decidí comenzar de nuevo. No lo vi entonces, pero es cierto que haber sido despedido de Apple fue la mejor cosa que pudo haberme pasado. El letargo de ser exitoso fue reemplazado por la claridad de ser un principiante de nuevo, menos seguro de todo. Me liberó para entrar a uno de los periodos más creativos de mi vida.
Durante los siguientes cinco años, comencé una compañía llamada NeXT, otra llamada Pixar, y me enamoré de una asombrosa mujer que llegaría a ser mi esposa. Pixar continuó para crear la primera película animada completamente por computador, Toy Story, y ahora es el estudio de animación más exitoso del mundo. En un giro sorprendente de eventos, Apple compró NeXT, yo retorné a la compañía, y la tecnología que desarrollamos en NeXT es el corazón de su actual renacimiento. Y Laurene y yo tenemos juntos una maravillosa familia. Estoy seguro de que nada de esto hubiera pasado si no hubiera sido despedido de Apple. Era una medicina de horrible sabor, pero supongo que el paciente la necesitaba.
Algunas veces, la vida te golpea en la cabeza con un ladrillo. No pierdas la fe. Estoy convencido de que la única cosa que me mantenía fue que yo amaba lo que hacía. Tienes que encontrar lo que amas. Y eso es cierto tanto para tu trabajo como para tus amantes. Tu trabajo va a llenar una gran parte de tu vida, y la única forma de estar verdaderamente satisfecho es hacer lo que crees que es un gran trabajo. Si no lo has encontrado todavía, sigue buscando. No te conformes. Como en todos los asuntos del corazón, lo sabrás cuando lo encuentres. Y como cualquier gran relación, solo mejora mientras los años pasan. Así que sigue buscando hasta que lo encuentres.
No te conformes.
Mi tercera historia es sobre la muerte:
Cuando tenía 17 años, leí una cita que decía algo así como: “Si vives cada día como si fuera el último, algún día seguramente estarás en lo correcto”. Esto me impresionó, y desde entonces, los pasados 33 años, me he mirado en el espejo cada mañana y me he preguntado a mí mismo: “Si hoy fuera el último día de mi vida, ¿desearía hacer lo que estoy a punto de hacer?”. Y como quiera que la respuesta por muchos días en fila ha sido “No”, sé que tengo que cambiar algo.
Recordar que estaré muerto pronto es la más importante herramienta que he encontrado para hacer grandes elecciones en mi vida. Porque casi todo – las expectativas externas, todo orgullo, todo temor de vergüenza o falla- estas cosas desaparecen al enfrentar la muerte, dejando solo lo verdaderamente importante. Recordar que vas a morir es la mejor forma que conozco para evitar la trampa de pensar que tienes algo que perder. Siempre estás desnudo. No hay razón para no seguir tu corazón.
Hace cerca de un año se me diagnosticó cáncer. Tuve una escanografía a las 7:30 de la mañana, y claramente mostraba un tumor en mi páncreas. Ni siquiera sabía qué era un páncreas. Los doctores me dijeron que casi seguramente era un tipo de cáncer incurable, y que no debería esperar vivir más de tres o seis meses. Mi doctor me aconsejó ir a casa y poner en orden mis asuntos, que es el código médico para prepararse para la muerte. Eso significa tratar de decir a tus hijos en solo unos meses todo lo que pensaste tendrías que decirles en los próximos 10 años. Significa asegurarte de que todo está ajustado de forma tal que sea lo más fácil posible para tu familia. Significa despedirse.
Viví con el diagnóstico todo el día. Esa noche tuve una biopsia, en la que metieron un endoscopio a través de mi garganta, estómago e intestinos, pusieron una aguja en mi páncreas y tomaron algunas células del tumor. Estaba sedado, pero mi esposa, quien estaba allí, me dijo que cuando ellos vieron las células bajo el microscopio los doctores se dieron cuenta de que era una rara forma de cáncer pancreático que es curable con cirugía. Tuve la cirugía y estoy bien ahora. Esto es lo más cerca que he estado de enfrentar la muerte, y espero que lo sea por algunas décadas más. Haberlo superado me permite decirles esto con un poco más de certeza que cuando la muerte era un concepto útil pero puramente intelectual:
Nadie quiere morir. Incluso la gente que desea ir al cielo no desea morir para ir allí. Y sin embargo, la muerte es un destino que todos compartimos. Nadie ha escapado a ella. Y es como debería ser, porque ‘La Muerte’ es probablemente la mejor invención de La Vida. Es el agente de cambio de la vida. Saca lo viejo para hacer camino a lo nuevo. Ahora lo nuevo son ustedes, pero algún día, no lejos de ahora, ustedes llegarán a ser gradualmente lo viejo y serán sacados. Siento ser tan dramático, pero es
cierto.
El tiempo de ustedes está limitado, así que no lo desperdicien viviendo la vida de otros. No sean atrapados por el dogma, que es vivir con los resultados del pensamiento de otra gente. No dejen que el ruido de las opiniones de otros acallen su propia voz. Y más importante, tengan el coraje de seguir su corazón e intuición. Ellos de alguna forma ya saben lo que ustedes verdaderamente quieren llegar a ser. Todo lo demás es secundario.
Steve Jobs
La otra vez lo estaban comentando compañeros de la oficina … y se me hizo curado ponerlo, ahi nomas para que se entretengan los que lean. A ver si no sienten flashazos de Deja Vu o algo les suena familiar ( aunque es tan viejo que lo mas seguro solo lean para recordar jajja )
Los trabajadores en sistemas:
Actualmente usamos PHP para desarrollar. Las ventajas principales de PHP se puede ver facilmene: entre otras cosas, tiene bastante soporte.
PHP originalmente era el acrónimo de Personal Home Page, lo cual nos puede hablar no muy bien de este lenguaje para desarrollo de aplicaciones web o sitios de dimensiones considerables. Ahora, parece que le cambiaron el significado al acrónimo recursivo “PHP: Hypertext Preprocessor”. Cual sea el significado, ha evolucionado bastante, al grado de tener su propio ‘engine’ ( zend ) al estilo de VM, y diseñado para poder desarrollar orientado a objetos, de una manera mas avanzada ( PHP 5 ). Despues de ver varios debates sobre PHP y otros lenguajes, quedé de acuerdo con que PHP aun le falta mucho para mejorar su API, tienen muchas inconsistencias en su nomenclatura de funciones, puedes enredarte un poco al estar depurando si tienes que estar siguiendo archivos que estan incluidos como locos, o puedes volverte loco al depurar un script que tenga todo mezclado ( base de datos, logica, diseño, evaluacion de formas, etc ), aunque esto puede suceder en cualquier otro lenguaje ja!.
Lo bueno de PHP, es que como decía, con bastante soporte, ya hay funciones para todo ( casi les falta funciones como fart( ) o getCoke ( $flavor ) ), soluciones para casi toda situacion, estan las librerias PEAR, y mucho soporte de PHP en foros y su propio sitio web; aunque esto ultimo de forosy tips y ejemplitos pueden ser en algunos casos malos, por enseñar practicas no-muy-buenas. Pero bueno…
El caso es que a como está PHP en este punto, se pueden hacer DAOs, los cuales son patrones de J2EE, pero igual, se puede implementar como muchos otros patrones. El detalle es, es bueno implementarlo? Uno de los detalles que vi en los debates PHP/Java, es que PHP termina siendo mas rapido ( hasta comprobado con benchmarks ), puesto que tienes la logica de base de datos, logica de negocios e interfaces de usuarios muy unidos entre si; aunque pueden estar separados por clases, todo se incluye y queda donde mismo, se compila el script, se ejecuta y voilá; en java tenemos que si son llamadas de RMI, que se tienen que crear los objetitos, los POJOs, llamar a la otra capa, la cual tiene que regresar la info, populando arreglos de los objetitos, y despues utilizarlos en algun controlador, para despues poderlos utilizar. Ok, esta bien organizado, pero segun tiene el overhead de hacer todo esto. Volviendo al detalle de los DAO, si se implementa en PHP, podemos caer en lo mismo: tienes una clase DAO que te envuelve las llamadas a base de datos de cierto tipo de objeto, otro objeto para conexion a base de datos, el controlador del objeto, para esto tenemos los objetitos ( que en una pagina los nombraban value objects o VO, pero nosotros los bautizamos como POPOs ), y sobre esto el manejador de lo que estamos haciendo, y sobre esto el script para el cliente que a su vez manda llamar el generador de templetes ( smarty ) … aaaargh :s …. caes de nuevo en J2EE, pero mas bien seria algo como PHP5EE jaja. Entonces, resulta esto peor que manejar PHP de la manera ‘clasica’? la ventaja de hacerlo asi, es que tienes la flexibilidad de cambiarlo todo y re-juntar muchas de las cosas sin perjudicar tiempo de desarrollo ni caer en errores criticos que te consuman tiempo y que les salgan al usuario final.
Pero ese es el dilema por el momento, y en verdad no he encontrado mucha informacion acerca de si es mejor o no, algunos dicen que no es bueno hacer “java” en PHP, mientras otras partes dicen que PHP esta lo suficiente maduro para esto y mas … seria bueno saber opiniones y comentarios ![]()
En que se parecen los narcos y los desarrolladores?
| Drug dealers | Software developers |
| Refer to their clients as “users”. | Refer to their clients as “users”. |
| “The first one’s free!” | “Download a free trial version…” |
| Have important South-East Asian connections (to help move the stuff). | Have important South-East Asian connections (to help debug the code). |
| Strange jargon: “Stick”, “Rock”, “Dime bag,” “E”. |
Strange jargon: “SCSI”, “ISDN”, “Java”, “RTFM” |
| Realize that there’s tons of cash in the 14- to 25-year-old market. | Realize that there’s tons of cash in the 14- to 25-year-old market. |
| Job is assisted by industry’s producing newer, more potent mixes. | Job is assisted by industry’s producing newer, faster machines. |
| Often seen in the company of pimps and hustlers. | Often seen in the company of marketing people and venture capitalists (same thing). |
| Their product causes unhealthy addictions. | DOOM. Quake. SimCity. Duke Nukem 3D. ‘Nuff said. |
| Do your job well, and you can sleep with sexy movie stars who depend on you. | Damn! Damn! DAMN!!! |
Despues de varios años, parece que ahora si voy a empezar a postear en mi propio blog. Mi primer “blog” fue en realidad fue un sitio de geocities (ahora parte de yahoo), alla en los 90s ( que por cierto ahi anda circulando en internet ), y en otro sitio cuyo nombre no recuerdo por ahora ( fortunecitiy ), en los tiempos en que lo mas fregón era utilizar el ICQ, el hotmail aun no agarraba fama, los midis eran la musica que buscaba para bajar, y jpges, el mIRC era el cliente de IRC mas popular y todos se ponian a chatear con ése, principalmente en dalnet, y que por cierto bloquearon a todo el dominio de telmex ( el cual era el 95% de los ISP en mexico, yo creo );
Y aqui esta mi primer “post”, porque no creo que cuente cualquier comentario o info que hubiera puesto en ningun social network.
El proposito de este primer post era comentar sobre PHP y como esta cambiando, y tomando forma de Java, aunque algunas cosas las disfrazan solamente, tal vez para que no se vea como muy pirata o algo. Ya PHP5 tiene programacion orientada a objetos mas decente, manejo de excepciones, argumentos de funciones con tipo para argumentos de tipo objeto, y algunas dos o tres ondas que mas adelante voy a postear. Es interesante PHP, me gusta: tiene bastantes librerias ya hechas, listas para usarse; algunas
funciones que trae ya te hacen todo y te deja todo en bandeja de plata, instalacion y configuraciones mas que sencillas, y bastante soporte.
Pero java es java, y quien mejor que el compilador te diga cuando tengas un error, en lugar de un usuario. =) Ahora mi enfoque es PHP, pero java lo sigo viendo como un lenguaje que no se debe dejar.
Y bien, este es el fin del primer post … mucho trabajo por hacer.