Ordenar un array múltiple por dos filtros

Aunque parezca tonto, muchas veces cuando desarrollamos nos encontramos con pequeños escalones que nos hacen cuestionarnos como programadores. Recientemente estaba solventando unos detalles con un catalogo de productos y el cliente quería que cuando se imprimiera el producto se ordenara por dos patrones (orden y peso), pues después de complicarme un montón y buscar mas de mil métodos de ordenamiento, me di cuenta que una función de php mas 3 lineas de código lo hacen todo por ti.

Esta función es array_multisort() y a continuación les daré un pequeño ejemplo de como podemos usar esta función en este tipo de problemas.

$carrito = array(
array('ID' => 1, 'nombre' => 'Baguette', 'peso' => '500', 'orden' => '13'),
array('ID' => 2, 'nombre' => 'Napolitana', 'peso' => '100', 'orden' => '11'),
array('ID' => 3, 'nombre' => 'Pan de molde', 'peso' => '200', 'orden' => '12'),
array('ID' => 4, 'nombre' => 'Rosca', 'peso' => '80', 'orden' => '11')
);
# Obtenemos en un array nuevo los datos a ordenar y que vamos a pasar al array_multisort
$sort = array();
foreach($carrito as $i=>$j) {
$sort['orden'][$i] = $j['orden'];
$sort['pero'][$i] = $j['peso'];
}
# ordenamos por orden y despues por peso ambos de forma ascendente (ASC)
array_multisort($sort['orden'], SORT_ASC, $sort['peso'], SORT_ASC,$carrito);

Y con esto ya nuestro «$carrito» ya quedaría ordenado como queremos y listo para imprimir.

Homestead de Laravel

homestead

Como programadores ya estamos cansados de realizar todas las configuraciones de nuestro sistema operativo para poder realizar los proyectos que tengamos en mente, que por lo general nos toma un día entero configurarlo. Laravel posee una herramienta que nos ayuda mucho en cuanto a configuración de ambiente para desarrollo se refiere, este es Homestead pero, ¿que es esto?.

Homestead es un ambiente para desarrollo local que en solo unos pocos pasos nos configura todo lo necesario para llevar a cabo nuestro proyectos en Laravel y prácticamente cualquier proyecto en php, esto a mi punto de vista es increíble ya que no es necesario «Envenenar» tu ordenador, ni el de oficina para hacer tu trabajo. En este post sabremos como instalar Homestead en MacOSX, linux y Windows.

Lo primero que hay que hacer es descargarnos e instalar VirtualBox y Vagrant, ambos vienen para los tres sistemas operativos al cual vamos a realizar la instalación.

Una vez tengan instalado estos dos programas, nos dirigiremos a nuestra consola y agregaremos el paquete de «laravel/homestead» a nuestra instalacion de vagrant con el siguiente comando:

vagrant box add laravel/homestead

Ya instalado el paquete procederemos a instalar y usar homestead, el cual existen dos maneras, una de ellas es instalando los paquetes a través de «Composer+PHP». La otra, que es la que yo prefiero porque a mi parecer es la mas sencilla es a través de «Git», esta ultima es la que vamos a explicar en este post.

Como buena practica pueden crear dos directorios distintos, uno con todos tus proyectos y otro donde este el homestead. En lo particular yo tengo uno llamado «Sites» en mi carpeta raiz y otro llamado «homestead» donde tengo instalado nuestro sistema. Una ves definan su estructura procedemos a clonar con git nuestro homestead con el siguiente comando:

git clone https://github.com/laravel/homestead.git Homestead

Una vez finalizado solo nos queda configurar y editar nuestro archivo «homestead.yaml», este nos mostraría algo como esto:

ip: "192.168.10.10"
memory: 1024
cpus: 1

//en estas lineas estaria la configuracion
//para la llave ssh
authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

//esta seria la configuración de mapeo para el
//sharing de nuestra maquina local con la maquina
//virtual, donde el "map" seria la ruta de nuestra
//maquina local y el "to" la ruta de nuestra maquina
//virtual.
folders:
    - map: ~/Sites
      to: /home/vagrant/Sites

//aquí seria la configuración de mapeo con nuestro nginx
//ya instalado en nuestra maquina virtual, si deseas
//agregar mas proyectos solamente debes mapearlos en esta
//seccion donde "map" va a ser el url del navegador y el "to"
//la ruta de nuestra maquina virtual.
sites:
    - map: tuprojecto.dev
      to: /home/vagrant/Sites/tuproyecto/public

variables:
    - key: APP_ENV
      value: local</span>

Ya configurado nuestro archivo homestead.yaml lo que tenemos que hacer es acceder a nuestra maquina virtual. Este comando lo vamos a ejecutar dentro de nuestro directorio de Homestead que previamente creamos. Primero arrancamos nuestra maquina virtual:

vagrant up

Y después accedemos a ella:

vagrant ssh

Ya dentro de nuestra maquina virtual simplemente nos dirigimos a nuestro directorio sites y creamos nuestro proyecto en laravel (No solamente puedes usar laravel, puedes usar cualquier otro Framework que desees usar).

cd Sites/
composer create-project laravel/laravel tuproyecto

Una vez finalizada la instalación ya deberían de tener su proyecto listo para empezar tanto en tu maquina virtual como en tu maquina local según la ruta que hallan designado. pero para poder comprobarlo en el navegador debemos realizar un ultimo paso que es bastante sencilllo que es editar nuestro archivo host.

//ruta para mac y linux
nano /etc/hosts

Y editamos las siguientes lineas:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1    localhost
255.255.255.255    broadcasthost
::1             localhost
#VAGRANT
192.168.10.10     tuproyecto.dev

Listo!!! con esto ya deberíamos acceder al URL de tu proyecto «http://tuprojecto.dev» en nuestro navegador sin problemas.Si deseas agregar otro proyecto solamente crea tu proyecto en tu maquina virtual, ejecutas el siguiente comando dentro de tu maquina virtual y después solo editas tu archivo Hosts:

serve tuprojecto2 /home/vagrant/Sites/tuprojecto2/public

Espero que les sirva de ayuda y les recomiendo usar ese tipo de ambiente para que te ahorres 2 horas solamente de configuración para poder correr sus proyectos. Si tienen alguna duda o pregunta no duden en comentarlo.

 

 

Composer

composer-logo

Composer es una herramienta para el manejo de dependencias en PHP que te permite declarar librerías en tu proyecto y composer las instalara y las configurara por ti. Esto es algo que la mayoría de los desarrolladores de php deben usar a diario y en este post vamos a saber como instalar y configurar en nuestro ordenador.

Para los sistemas Linux y Unix es tan fácil como escribir estos comandos en nuestro terminal:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
mv composer.phar /usr/local/bin/composer
php -r "unlink('composer-setup.php');"

Con estos comandos ya tenemos instalado composer de manera global en nuestro ordenador, si queremos mantener composer dentro de una carpeta en particular, solo debemos mover nuestro «composer.phar» a el directorio donde deseemos.

Para Windows simplemente descargate el ejecutable desde este link y la sigue el proceso de instalación normal.

Espero que este artículo sirva de ayuda y guía para usar esta poderosa herramienta, para más información no dudes en visitar la web oficial.

SubimeText en Ubuntu

Sublime text es un editor de texto que poco a poco esta agarrando fuerza y favoritismo como herramienta de trabajo dentro de estudiantes y profesionales dentro del área de la informática y que esta disponible para las plataformas Windows, Linux (En sus diferentes distribuciones) y Mac OSX, para instalar este editor de texto simplemente vamos al sitio de Sublime Text y en la sección de descargas podemos obtener este editor en sus diferentes versiones para sus diferentes plataformas.

En esta entrada vamos a aprender como instalar sublimeText por la terminal de ubuntu con solo tres lineas de comando mediante apt-get, para hacerlo solo nos basta con escribir lo siguiente:

sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer

Con esto solo esperamos que termine de instalar, y a programar se ha dicho.

LAMP en Ubuntu

Install-lamp-ubuntu

Para empezar en este articulo es importante resaltar que este este proceso que describo sirve especialmente para Ubuntu, aunque estoy seguro que para las otras distribuciones basadas en Debian también sirva.

Lo que primero vamos a hacer es abrir la terminal de comandos y actualizar los repositorios y el sistema operativo con los siguientes comandos:

sudo apt-get update
sudo apt-get upgrade

Una vez realizado todo este proceso seguimos con la instalación de servidor de MySQL, por lo general basta con colocar en la consola:

sudo apt-get install mysql-server

aunque si deseas instalar una versión especifica lo puedes hacer de la siguiente manera donde las «X» es el numero de la versión:

sudo apt-get install mysql-server-X.X

Una vez que establezcas la contraseña del servidor de base datos, procederemos a instalar el servidor apache y el lenguaje PHP en la computadora con los siguientes comandos:

sudo apt-get install apache2 php5

En algunos casos, dependiendo del sistema operativo que uses, tendrás que instalar a mano las librerías que comunican nuestros servicios (MySQL, Apache y PHP), por lo que deberás que colocar lo siguiente:

sudo apt-get install libapache2-mod-auth-mysql php5-mysql

Ya con esto solo nos quedaría reiniciar nuestro servicio apache que lo podemos hacer son el siguiente comando:

sudo /etc/init.d/apache2 restart

Para probar nuestros servicios nos dirigimos a la siguiente ruta:

cd /var/www/

y creamos un archivo .php para verificar que todo el proceso este correcto, para crear el archivo:

echo "<?php phpinfo();?>" >> info.php

Ya con esto tenemos todo lo necesario para empezar a programar en php en nuestra pc, laptop, etc. podemos verificar lo instalado colocando en la url del navegador:

http://localhost/info.php

Solo nos faltaría instalar el phpmyadmin, que es de suma ayuda para todo desarrollador, y esto se hace simplemente colocando el siguiente comando en la terminal:

sudo apt-get install phpmyadmin

Realizas toda la configuración que necesites, y una vez que termines solo te diriges a la url del navegador y colocas:

http://localhost/phpmyadmin

Listo, ya tienes lo básico para ser empezar a ser un programador web, así que suerte!!!