Comentarios Recientes

Primera Reunion Apoya lo Local !

| Categorías internet, Personal, Programacion, Pymes, Redes Sociales, Tecnologia, telecomunicaciones | | Comentario 0

Number of View: 733

Ayer sábado estuvimos reunidos en Colina’s Mall, Santiago, un grupo de personas que creemos en lo que hacemos, que sabemos  que quizás no somos los mejores del planeta, pero estamos mas conscientes de lo que hacemos que una gran mayoría en nuestro país.  Hemos llegado a esta reunión por un deseo que @davidtavarez y yo (@wm3ndez) nos expresamos hace tan sólo una semana atrás y que fue acojida rápidamente por un gran número de personas.

Luego, vía Twitter(nuestro mejor aliado hasta el momento), fuimos “regando” la idea y hemos tenido apoyo de varias personas en Sto. Dgo. que también piensan que estamos en lo correcto y que es buena iniciativa.  Por esto hicimos una primera reunión informal, a solo unos días de haber decidido que esto era bueno!! :P

Allá llegamos a las 4 PM @ingluisjimenez y yo(@wm3ndez), luego llegó @KDeMoya y al poco rato Hector Marrero y Saury Bravo (aún no conozco sus cuentas de twitter).  El señor @davidtavarez se presentó minutos después con @carlosjln.  Más tarde @Shady y @pavelonsky.

Estando todos allá empezamos a hablar sobre el gran proyecto de @carlosjln y su Framework Javascript, le comentabamos que aparte de todo el conocimiento que él ha adquirido desarrollando su FW es de gran satisfacción para él, pero que el debe darle otro enfoque.  En lo personal, todavía le sugiero que lo de a conocer, porque sin dudas es bastante eficiente.

Hablamos de temas interesantes, como es el hecho de que en nuestro país hay gran cantidad de personas haciendo disparates, dañando nuestra imagen y dañando el mercado.  Hay mucha gente “buscandoselas” en la calle y “pasandose de vivos”, viendiendo sueños y haciendo mega estupideces(si así se puede decir).  Es decir, estabamos tocando el importantísimo punto que nos ha hecho pensar que debemos organizarmos para que cosas como estas no afecten trabajos de calidad.

También planteamos la problemática situación del Ing. Telemático/Informático  que va a la Universidad y “compra” un título y luego tú, que haces un buen trabajo, eres juzgado por el pésimo desempeño como profesional -y quien sabe si como persona- de ese “colega” tuyo.  Es esto lo que andamos buscando, mostrar a nuestro país que esa no es la totalidad de los profesionales, que profesional no es un título, es conocimiento, práctica…

Por otro lado, tenemos el problema de nuestros empresarios: La gente que “tiene los cuartos” en este país aún no sabe lo que significa la palabra “Internet”.  Creen que cada sistema web based que hagas es “una paginita” en una manera despectiva.  Y no sólo los empresarios, sino otros Ingenieros de carreras como Ing. Electromecánica, que están mal informados.  El sector inmobiliario, por ejemplo, es un sector que maneja buen dinero, pero los propietarios de esas empresas de bienes raíces creen que todo es sencillo y quieren que les regalen las cosas!(Abusadores!!!).

Hector Marrero comentaba que nuestros pensamientos e ideales están demasiado adelantados a la de nuestros empresarios.  Gran problema porque  luego no hay forma de confiar en nosotros…

Entre otras cosas, quedamos en crear un Site(que ya está arriba): http://apoyalolocal.com y puedes seguirnos en twitter: @apoyalolocal.  La próxima reunión será en Sto. Dgo., más o menos dentro de un mes(aún no tenemos fecha).

Apoya lo local es más que decir “yo te apoyo”, es un movimiento que pretende destacar lo bueno.  Quiero destacar que cuando hablé de aquellos que andan “buscandoselas”, no me refiero a que hay que hundirlos y desaparecerlos, más bien sugiero orientarlos y si de verdad quieren crecer, se les ayuda, pero que no hagan daño a los que si hacemos lo correcto.

Perseguimos que nuestro país reconozca nuestro trabajo, reconozca que hay gente que hace bien las cosas, que no hay que buscar peruanos, colombianos, etc. para implementar soluciones de Software o de cualquier cosa que “huela” a tecnología.

Tu que estás leyendo esto, abre los ojos, mira lo que hay en tu país y #apoyalolocal @apoyalolocal http://apoyalolocal.com

Zend Framework: Manejar Ajax Request

| Categorías General, internet, Personal, PHP, Programacion, Zend Framework | | Comentario 0

Number of View: 1314

Cuando nos estamos iniciando en MVC y Zend Framework, nos hacemos la pregunta: ¿Cómo voy a usar AJAX y olvidarme del Layout del site? Bueno, aquí les dejo un controlador que se auxilia de unos métodos dispuestos para esta misma situación:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
< ?php
 
/**
 * MyController
 *
 * @author Williams Mendez
 */
 
 
class MyController extends Zend_Controller_Action  {
	public function init(){
		parent::init();
		if($this->_request->isXmlHttpRequest())	{
			$this->_helper->Layout->disableLayout(); // No cargar el Layout
			$this->_helper->viewRenderer->setNoRender(); //No cargar la Vista
		}else
		$this->_helper->layout ()->setLayout ( 'my_layout' );
 
	}
	public function indexAction(){
		......
	}
}
?>

Resources en Zend Framework: Bootstrap.php

| Categorías General, internet, Personal, Programacion, Zend Framework | | Comentario 0

Number of View: 1676

Actualmente estoy trabajando en un proyecto para la Universidad en el cual estoy utilizando ZendFramework. El proyecto consiste en una aplicacion de aprendizaje virtual o colaboracion, tipo “Moodle”.

Mi sistema de archivos se ve asi:

application/
   modules/
      estudiantes/
         models/
            DbTable/
      admin/
         models/
            DbTable/
      profesor/
         models/
            DbTable/

Aqui les dejo un ejemplo de mi Bootstrap:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
< ?php
 
/**
 * Application bootstrap
 *
 * @uses    Zend_Application_Bootstrap_Bootstrap
 * @package QuickStart
 */
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
	/**
	 * Bootstrap autoloader for application resources
	 *
	 * @return Zend_Application_Module_Autoloader
	 */
	protected function _initAutoload()
	{
		$autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => 'Default',
            'basePath'  => dirname(__FILE__),
		));
		$autoloader	->addResourceType('estudiantes','modules/estudiantes','Estudiantes')
					->addResourceType('estudiantes_model','modules/estudiantes/models/','Estudiantes_Model')
					->addResourceType('profesor','modules/profesor','Profesor')
					->addResourceType('profesor_model','modules/profesor/models/','Profesor_Model')
					->addResourceType('admin','modules/admin','Admin')
					->addResourceType('admin_model','modules/admin/models/','Admin_Model')
					;
 
 
		return $autoloader;
 
	}
 
	protected function _initFrontController()
	{
		$front = Zend_Controller_Front::getInstance();
		$front->addModuleDirectory(dirname(__FILE__) . '/modules');
		$front->setDefaultModule('default');
 
		return $front;
	}
 
	/**
	 * Bootstrap the view doctype
	 *
	 * @return void
	 */
	protected function _initDoctype()
	{
		$this->bootstrap('view');
		$view = $this->getResource('view');
		$view->doctype('XHTML1_STRICT');
	}
}

Mujeres dominan las redes sociales

| Categorías General, internet, Tecnologia | | Comentario 0

Number of View: 566

Dos de las redes más populares del planeta,  Twitter y Facebook, tienen mayor número de usuarios mujeres. En ambos casos con un 57%. Sin embargo, no son los porcentajes más elevados. Bebo encabeza la lista del dominio femenino con un 68%, seguidas de Tagged , Buzznet, MySpace y classmates.com, todas ellas con una supremacía del 64% para las mujeres. En el caso de Gaia online cae a un 61% y en Ning un 59%.

PHP en 3er Lugar Lenguajes mas populares!!

| Categorías General, Personal, Programacion | | Comentario 0

Number of View: 676

TIOBE

TIOBE, la empresa que publica mensualmente su Programming Community Index con los 10 lenguajes de programación más populares según la disponibilidad mundial de ingenierios, cursos, vendedores de software y búsquedas populares en Google, MSN, Yahoo!, Wikipedia y YouTube, anuncia en sus resultados para este mes de Septiembre del 2009 que PHP llegó al puesto número 3 por primera vez desde que se comenzó a publicar en el 2001.

Stallman dice: Miguel de Icaza es un traidor

| Categorías General, Linux, Personal, Programacion, Tecnologia | | Comentario 0

Number of View: 672

En las celebraciones del Software Freedom Day de este año en la ciudad de Boston (EE.UU.) Richard Stallman respondió algunas muy interesantes preguntas de donde indudablemente se destaca su afirmación de que Miguel de Icaza “es básicamente un traidor a la comunidad del Software Libre”.

Potencialmente confirmando la afirmación de Stallman está el rumor de que, ahora que Sam Ramji renunció a su puesto de director del Laboratorio Open Source de Microsoft, nadie menos que Miguel de Icaza, que es miembro de la junta de la Fundación CodePlex, también de Microsoft, será quien ocupe el lugar dejado vacante por Ramji en la empresa de Bill Gates.

Fuente: VivaLinux.com.ar

Ejemplos de uso de sesiones en PHP

| Categorías General, Programacion, Tecnologia | | Comentario 0

Number of View: 1449

Aqui les dejo algunas utilidades basicas del uso de sessiones en PHP

1
2
3
4
5
6
page 2';
 
// Or maybe pass along the session id, if needed
echo '
<a href="page2.php?' . SID . '">page 2</a>';
?&gt;
1
2
page 1';
?&gt;

error_reporting & ini_set: Mostrar u ocultar errores PHP

| Categorías General, Personal, Programacion | | Comentario 4

Number of View: 7378

Muchas personas se han dedicado a programar en PHP y muchas veces no saben cual es la razon de que se programa no funcione a la perfección, pero “PHP no muestra errores”.  Bien sabenos que la configuración de los errores también se hace en el fichero php.ini, pero cuando tenemos un servicio de Hosting, por ejemplo, que no nos permite acceder a la configuración de este archivo, existen dos funciones bastante interesantes: error_reporting() y por otro lado ini_set().

Aquí les dejo unos ejemplos de PHP.net sobre estas funciones:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
< ?php
 
// Turn off all error reporting
error_reporting(0);
 
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
 
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
 
// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL ^ E_NOTICE);
 
// Report all PHP errors (see changelog)
error_reporting(E_ALL);
 
// Report all PHP errors
error_reporting(-1);
 
// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
 
?>
1
2
3
4
5
6
7
8
9
< ?php
echo ini_get('display_errors');
 
if (!ini_get('display_errors')) {
    ini_set('display_errors', 1);
}
 
echo ini_get('display_errors');
?>

Para los que no sabian que esto existía, pues ya lo saben, para todos, sigan leyendo en PHP.net si quieren tener más información al respecto :) .

Crear Thumbnails en PHP

| Categorías General, Personal, Programacion | | Comentario 0

Number of View: 592

Esta es una simple función en PHP que he utilizado para crear thumbnails de imagenes JPG, pero que igual puede funcionar para otros formatos, solo cambiando las funciones que PHP tiene para JPG por funciones para otros formatos.

La función recibe tres parámetros: el archivo original, el nombre del nuevo archivo y la anchura de la imagen nueva.  Aquí les dejo el código:

1
2
3
4
5
6
7
8
9
10
11
12
function MakeThumbs($file, $thumbnail, $thumbWidth) {
	if (stristr ( $file, ".jpg" ) || stristr ( $file, ".JPG" )) {
		$original = imagecreatefromjpeg ( $file );
		$ancho = imagesx ( $original );
		$alto = imagesy ( $original );
		$anchomini = $thumbWidth;
		$altomini = ($alto * 100) / $ancho;
		$thumb = imagecreatetruecolor ( $anchomini, $altomini );
		imagecopyresampled ( $thumb, $original, 0, 0, 0, 0, $anchomini, $altomini, $ancho, $alto );
		imagejpeg ( $thumb, $thumbnail , 100 );
	}
}

Namespaces en PHP

| Categorías General, Programacion | | Comentario 0

Number of View: 909

PHP 5 ya tiene un buen rato en el medio, y todos estamos esperando la llegada de PHP 6.  Entre las notables de mejoras estamos esperando los llamados Namespaces.  Aqui les dejo un ejemplo de PHP.NET para que vayan familiarizandose con esta nueva manera de programar en PHP( ya en otros lenguajes lo hemos visto).  No soy ningun experto en Namespaces, pero ire posteando lo que vaya aprendiendo poco a poco…


< ?php
namespace my\name; // see "Defining Namespaces" section

class MyClass {}
function myfunction() {}
const MYCONST = 1;

$a = new MyClass;
$c = new \my\name\MyClass; // see "Global Space" section

$a = strlen('hi'); // see "Using namespaces: fallback to global
                   // function/constant" section

$d = namespace\MYCONST; // see "namespace operator and __NAMESPACE__
                        // constant" section
$d = __NAMESPACE__ . '\MYCONST';
echo constant($d); // see "Namespaces and dynamic language features" section
?>

Desarrolladores Web Dominicanos

| Categorías General | | Comentario 0

Number of View: 471

Desarrolladores Web Dominicanos es una comunidad creada por mi compañero, socio y amigo David Tavarez con la idea de reunir a una cantidad considerable de desarrolladores web de nuestro pais para discusion de temas de desarrollo, discusiones que aporten al desarrollo de los mismos desarrolladores…

Hasta el momento han surgido 3 discusiones bastantes interesantes entre las que destaco PHP vs ASP.

La direccion del sitio es http://webdevdominicana.ning.com/

Espero que se den una vueltecita por alla y pues que aporten y colaboren con nosotros…Esta comunidad esta creciendo lentamente, pero cada vez se tornan mejores las propuestas de nuestros miembros…

Ajax de manera simple con Williams Mendez :P

| Categorías General | | Comentario 0

Number of View: 1319

Este es un pequeño tutorial que muestra de manera sencilla como funciona Ajax o mejor dicho, como hacerlo funcionar…

Todos deben saber que las etiquetas HTML aceptan atributos, unas aceptan unos atributos y otras otros atributos…el caso es que todos aceptan el atributo “id”, y es así como identificamos una “parte” en específico de nuestra web.

Lo más común en el uso de Ajax es actualizar el contenido de un “div”, por lo cual crearemos un “div” vacio, el cual llenaremos al pulsar un botón.  En este caso,  escribiré todo el codigo(incluyendo todo el javascript) y luego explicaré como funciona.  Y aquí vamos:

Ajax.html

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>Mi primer Ajax</title>
<script type=”text/javascript”>

function GetXmlHttpObject(){
var xmlHttp=null;
try{
xmlHttp=new XMLHttpRequest();
}catch (e){
try{
xmlHttp=new ActiveXObject(“Msxml2.XMLHTTP”);
}catch (e){
xmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
}
return xmlHttp;
}

function AjaxRequest(method,url,xmlHttp,Params){
var query_string = constructURL(Params);
xmlHttp.open(method,url,true)
xmlHttp.setRequestHeader(“Content-Type”, “application/x-www-form-urlencoded”);
xmlHttp.send(query_string);
return xmlHttp;
}
function  constructURL(params){
var URL = ”;
var length = 0;
for(i in params){
URL += i+’='+params[i]+’&’;
}
var ran = Math.random()* 500;
URL+= ran;
return URL;
}

function LlenarDiv(){
var   params = null;
var xmlHttp = GetXmlHttpObject();
xmlHttp = AjaxRequest(“POST”,”texto.txt”,xmlHttp,params);

var response = null;
xmlHttp.onreadystatechange=function(){
if (xmlHttp.readyState==4){
if(xmlHttp.status==200)    {
//Aqui es donde seleccionamos nuestro “div” y cambiamos el contenito HTML
//que contiene por la respuesta del servidor, o sea, por el texto que devuelve
document.getElementById(‘div_vacio’).innerHTML = xmlHttp.responseText;
}
}
}
return false;
}
</script>

</head>

<body >

<div id=”MyDiv”>

<input type=”button” name=”mi_boton”  value=”Llamada Ajax” onclick=”LlenarDiv();”/>

</div>

<div id=”div_vacio”>
</div>
</body>
</html>

Luego creamos un simple archivo de texto llamado “texto.txt”, en el mismo directorio donde esta nuestro archivo Ajax.html(para este caso):

texto.txt

Esta es mi primera experiencia con Ajax.  De ahora en adelante hare las cosas bien :P

Bueno ya se me hace tarde y tengo que ponerme a estudiar…así que no podré dar detalles sobre esto…

La idea es que al pulsar el boton, se da un evento y aprovechamos el evento para llamar la funcion LlenarDiv() escrita en Javascript.  En esta funcion creamos un objeto xmlHttp, que es diferente para Microsoft Internet Explorer y para el resto de los navegadores sobre el planeta :S:S( que porqueria :S).

Luego de crear el objeto con la URL y el metodo,  empezamos a recibir diferentes estados de la peticion, y pues cuando la petición nos devuelve un estado 200, todos sabes que es porque se ha encontrado una web valida, de manera que esto que nos devuelve el servidor lo colocamos dentro del DIV que hemos elegido para nuestro EFECTO AJAX :P

Lamento tener que marcharme, si hay dudas, pues dejenme un comentario…see ya..