Las distribuciones de Linux mas vistosas (y como instalarlas)

Avatar de abner coronadoAbner coronado

Linux es un S.O. multiproposito, se pueden encontrar diferentes distribuciones enfocadas a redes, programación, seguridad, o como un sistema operativo completo. Aunque sea un S.O. famoso mucha gente tiene miedo de cambiarse a Linux debido a que no saben que distribución elegir de tantas que existen.

Hoy les voy a enseñar 4 de las distro mas amigables para iniciar en el mundo de los S.O. libres que se creo en parte gracias al programador Linus Torvalds.

Ver la entrada original 442 palabras más

Instalar el módulo Rewrite de Apache en versiones más recientes de Ubuntu

MongoDB, MySQL, and ORMs: when and where to use them

Avatar de Jonathan Nacionalesiamalivingcontradiction

I had a really interesting conversation on facebook today with a friend I knew from school. We are both professional developers now, and we occasionally exchange ideas on software development. I feel that this particular conversation was worth documenting for posterity because of the natural progression of ideas. I think that the overall conversation simplifies  a lot of very complicated ideas into a narrative structure.

Edgar: What’s your opinion on this hilarious discussion?

http://www.youtube.com/watch?v=URJeuxI7kHo

Me: I’ve actually seen this. We use both MongoDB and MySQL at work. There is a religious war between different teams, here.

Edgar: I think MySQL is better in situations where you need reliability above all else.

Me: You can get reliability with MongoDB. You just don’t have transactions across documents. Databases have transactions across tables. MongoDB only supports transactions for a single document. That issue is important when you design your application.

Me: The problem…

Ver la entrada original 1.237 palabras más

MySQL Database Replication

What’s New in PHP 5.5

Avatar de AwaissoftCanvas Code

PHP 5.5 was recently released, introducing several exciting new features to the language. In this article, we’ll go through some of the most interesting additions and discuss the benefits they provide to developers.

Generators

Generators are one of the most eagerly anticipated new features. They provide a way to handle iteration without having to write a class that implements the Iterator interface. Making a class conform to the Iterator interface requires a substantial amount of boilerplate code, so being able to avoid this by using generators can significantly reduce the size and complexity of code that developers must write.

Generators derive their functionality from the new yield keyword. A generator looks very similar to a normal function, but instead of returning a single value, a generator may yield any number of values.

To properly illustrate the power of generators, an example is needed. Consider PHP’s range() function, which returns an…

Ver la entrada original 1.236 palabras más

Creando consultas Select con Zend_Db_Select – PHP Tips

Uno de los frameworks con los cuales mas me gusta trabajar es con ZendFramework, sobre todo con las funciones de conexión y consulta MySQL, ya que el uso de estas me simplifica el trabajo. Hoy voy a explicar un poco el uso del Zend_Db_Select en la versión de ZendFramework 1.12. Vamos a suponer que la conexión a la base de datos ya la tenemos configurada.


// $db es la conexión a la base de datos

$select = $db->select();

$select->from('mitable');

$select->where('id LIKE ?' => $id);

$stmt = $select->query();

$result = $stmt->fetchAll();

Este seria un ejemplo básico de selección de un dato de una tabla y devolver todos los datos con ese Id.

Para mas información y mas métodos http://framework.zend.com/manual/1.12/en/zend.db.select.html

 

 

 

Acceder a datos JSON con jQuery – jQuery Tips

Una de las maneras para rellenar un formulario dinámicamente en base a una petición AJAX es por medio de JSON.

Supongamos el siguiente escenario. Tenemos un formulario que se tiene que autorellenar en base a una petición AJAX, por ejemplo, le pasamos el código de una persona y nos tiene que mostrar los datos.


// Fichero datos.php

$datos = array(

1 => array('nombre' => 'Yo', 'apellidos' => 'mismo'),

2 => array('nombre' => 'Tu', 'apellidos' => 'aquel'),

);

$codigo = filter_input(INPUT_POST, 'codigo', FILTER_SANITIZE_NUMBER_INT);

foreach ($datos as &$dato) {
 $dato = utf8_encode($dato);
 }
 echo json_encode($datos[$codigo]);


<!-- Fichero formulario.html -->

<form id='formulario'>
 <input type='text' id='codigo'>
 <button type='button' id='buscar'>Buscar Registro</button>
 <input type='text' id='nombre'>
 <input type='text' id='apellidos'>
</form>
<script>
$('#buscar').click(function(){
 $.post('datos.php', {codigo:$('#codigo').val()}, function(data){
 data = JSON.parse(data);
 $('#nombre').val(data.nombre);
 $('#apellidos').val(data.apellidos);
 });
 return false;
});
</script>

En este ejemplo los datos están almacenados dentro de un array, lo normal es que fueran resultado de una consulta SQL.

En el formulario pongo, por ejemplo, el 1 para obtener los datos, estos se mandan vía post al fichero de datos, antes de devolverlos los codifico con utf8_encode para que no de ningún error, luego les damos formato con json_encode, y una vez que lo recibimos los tenemos que tratar con JSON.parse para poder acceder a ellos como si fueran un objeto.

PHP en Mac OS X 10.9 Mavericks – Mac OS X Tips

Mac OS X MavericksYa ha pasado mas de una semana desde la llegada del nuevo Mac OS X Mavericks, y tengo que decir que me esta gustando bastante, a parte de ser gratuito, funciona muy bien.

Una de mis «sorpresas» ha sido comprobar que la configuración que tenia para el desarrollo de PHP ha desaparecido, y he tenido que remontarlo todo, pero vamos no me ha supuesto mucho tiempo.

Cambio en la versión de PHP.

En Mac OS 10.8, creo recordar que la versión que tenia instalada era la 5.3.14, estoy hablando un poco de memoria, pero seguro que era la 5.3, en esta nueva versión tenemos de serie la 5.4.17, si queréis comprobarlo solo tenéis que abrir una terminal y escribir php -v

¿Donde esta mi PEAR?

Así es, como suena, todo mi directorio con las librerías PEAR ha desaparecido, también decir que lo tenia dentro del sistema y no en proyecto así que esto puede llegar a ser comprensible,  pero si abrimos un terminal y vamos al directorio  /usr/lib/php nos encontraremos un ejecutable llamado install-pear-nozlib.phar se nos instalara PEAR, no olvidar instalarlo como root.


sudo install-pear-nozlib-phar

¿Yo tenia el XDebug instalado, no?

Si cambiamos el PHP cambiamos las extensiones, así que si teníamos instalado por ejemplo el XDebug pues ya yo esta, así que toca reinstalarlo. Lo mas sencillo, el metodo PECL, pero antes de ejecutarlo es mejor que instaléis las «command line development tools’ ya que si no lo hacéis, casi seguro que os saldrá el siguiente error.


fatal error: 'php.h' file not found
#include <php.h>
         ^

Instalar command line development tools


sudo xcode-select --install

Una vez instalado ya podemos instalar el Xdebug


sudo pecl install xdebug

Una vez instalado tenemos que agregar la linea «zend_extension=xdebug.so» a nuestro php.ini, esto lo veremos  en el siguiente apartado, pero si agregamos esa linea como nos dicen nos dará error, la linea que tenemos que agregar para que nos funcione es la siguiente


zend_extension = "/usr/lib/php/extensions/no-debug-non-zts-20100525"

¿Donde esta el php.ini?

La respuesta a esta pregunta es sencilla, de serie no esta como tal, esta como php.ini.default, al cual tenemos que cambiarle el nombre a php.ini o crear un enlace simbólico a este, para que la configuración se nos aplique. Este fichero podemos encontrarlo en el directorio /etc, y es un fichero de solo lectura, así que si queremos modificar algo o bien le cambiamos los permisos a escritura mientras lo editamos, o si usamos el vi o vim, los cuales tengo que decir que para estas cosas de configuraciones yo los uso siempre, guardamos los cambios con wq!.

Cosas que agregar al php.ini

En el fichero no están definidos los path de búsqueda, así que buscar donde dice include_path y agregar, los directorios que queremos incluir. Por ejemplo, si tenemos instalado PEAR querremos incluir en el path el directorio de PEAR.


include_path = ".:/usr/lib/php/pear"

Si usais el vi/vim una manera muy sencilla de llegar hasta esta linea es hacer lo siguiente una vez abierto el fichero:

Pulsamos ESC a continuación escribimos /include_path y pulsamos ENTER, y así nos va hasta la linea donde pone include_path.

Si la linea empieza con ; quitarlo ya que sino continuara siendo un comentario.

En el ejemplo anterior de la extensión de Xdebug, una manera muy sencilla de agregar la linea, como esta se puede poner al final del fichero podemos hacer lo siguiente:


sudo echo zend_extension = "/usr/lib/php/extensions/no-debug-non-zts-20100525" >> /etc/php.ini

Comparando cadenas con strcmp – PHP Tips

Una de las maneras mas sencillas de comparar 2 cadenas con PHP es mediante strcmp.  La comparación entre las 2 cadenas se realiza de manera binaria y es sensible a mayúsculas y minúsculas.

Uso:

int strcmp(string1, string2);

Valores devueltos:

< 0 si string1 es menor que string2, >0 si string1 es mayor que string2 y 0 si son iguales.

Mucho cuidado con:

Una de las cosas con las que hay que tener cuidado a la hora de usar el strcmp es que cuando las 2 cadenas son iguales devuelve 0. Veamos el siguiente ejemplo:

$string1 = "Hola";

$string2 = "Hola";

$string3 = "Adios";

if (strcmp($string1, $string2)) {

echo "Las cadenas son iguales";

} else {

echo "Las cadenas no son iguales";

}

// Esto devolvera "Las cadenas no son iguales";

if (strcmp($string1, $string3)) {

echo "Las cadenas son iguales";

} else {

echo "Las cadenas no son iguales";

}

// Esto devolverá "Las cadenas son iguales";

En el ejemplo anterior al comparar dos cadenas iguales nos dice que no son iguales y si comparamos dos distintas nos dicen que son iguales, esto es debido a que strcmp devuelve un numero que es 0 cuando son iguales, el cual se interpreta dentro del if como falso, y cuando son distintas devuelve un numero que no es 0 el cual es interpretado como verdadero.

El uso adecuado dentro de un if del strcmp es:


$string1 = "Hola";

$string2 = "Hola";

$string3 = "Adios";

if (strcmp($string1, $string2) === 0) {

echo "Las cadenas son iguales";

} else {

echo "Las cadenas no son iguales";

}

// Ahora si devolvera que las cadenas son iguales

Mas información: http://us1.php.net/manual/es/function.strcmp.php

Conexion php mysql de forma prolija

Avatar de Juan Cambajcsis

Una de las cosas mas importantes en un proyecto web es la organización del código para permitir la escalabilidad del mismo. Les voy a enseñar una manera rápida y sencilla de «ordenar» el código en lo que a conexiones a bases de datos se refiere. Lo voy a hacer en php orientado a objetos, aunque de forma muy básica. Esta metodología o esquema es valida para cualquier lenguaje de programación.

Ver la entrada original 346 palabras más