Archivo

Archive for the ‘Proyectos’ Category

Apuntes de GIT

git config –global user.[name|email] “<nombre|correo@>”

WorkDir -> Staging Area -> Local Repo [ -> RemoteRepo]
\                                                    /
Rama -> rama v1 -> ramav2

  • git init Crea la carpeta .git en la carpeta donde se este (directorio de trabajo)
  • git add [-A|”file”]
    • Añade todos los archivos del proyecto (A) o file al staging area (area intermedia donde se analizan los
      cambios) salvo los archivos contenidos en .gitignore
  • git commit -m “<mensaje>”
    Añade los archivos que están marcados en el staging area como modificados al repositorio local
    git rm [“file”]
    Elimina file de la zona de staging
    git checkout [id]
    Regresa a la versión identificada por id o cambia a la rama id
    git status Lee el estado de los cambios de archivos
    git log Lee los commits hechos hasta el momento.
    git reset [soft|mixed|hard]
    Regresa a la versión anterior
    soft: solo cambia el commit
    mixed: cambia el commit y staging area
    hard: cambia el directorio de trabajo, el staging area y el commit.
    git branch [-d][rama]
    crea una nueva rama. Usar con git checkout rama
    -d borra la rama

git merge [rama]
fusiona la rama con master. Hacer esto desde master.

git remote [add alias [url|ssh]]
vincula repositorio local con el remoto

git fetch
bajar cambios del repositorio remoto

git push [alias][rama]
subimos cambios del repositorio local

git clone
clona un repositorio

Anuncios

Mi Media Center

Mi media center consiste en un dispositivo silencioso, y disponible en cualquier momento (no hay que encenderlo cada vez que se quiera usar), así como con capacidad suficiente para reproducir cualquier película (por su formato, o tamaño) además de otros tipos de archivos multimedia.

Para ello he seleccionado una raspberry pi 2/3 modelo B, ya que no tiene ventilador (silencioso) y con su procesador es capaz de reproducir películas incluso en HD. Pero como en un pequeño ordenador todo no es el hardware, he decidido instalar; tras diversas investigaciones sobre velocidad y rendimiento; OpenElec. Este software es una distribución linux preparada y optimizada para ejecutar kodi (antiguo xbmc) como escritorio. Tiene algunas limitaciones como no poder cambiar la versión de kodi a voluntad, pero entre nosotros…no hace falta. Bien, pues vamos a ello….

Openelec

Lo primero es descargar Openelec desde aqui. Debemos seleccionar la opción de Raspberry 2/3 builds y dentro de esta sección el fichero “DiskImage” (img.gz). El fichero “update” se usa cuando solo queremos actualizar nuestro Openelec ya instalado (se copia la imagen en la carpeta Update y se reinicia).

Una vez descargada la imagen hay que copiarla a una microSD (cuanto más rápida mejor class10 p.e y al menos de 16Gb, aunque 8 también valen). Para realizar esta copia, se puede seguir las instrucciones de esta wiki, claro que a mi desde linux no me funciono


gunzip -d imagen.img.gz

parted -l (para saber donde está la SD, normamente /dev/mmcblk0)

sudo umount /dev/mmcblk0

sudo dd if=imagen.img of=/dev/mmcblk0 bs=4M

sudo sync

y desde windows es más simple (descoprimir la imagen gz con 7zip y usar Win32diskimager para “copiar” la imagen a la microSD).

Una vez realizado todo este proceso, conectar la Rpi a la tele por HDMI, a la red por ethernet (recomendable por velocidad) y por último a la corriente (recomendado cargador de al menos 2A, pero mejor 3A). Openelec arracará con un asistente. Para controlar la Rpi podemos instalar la app “kore” en nuestro móvil (no se si estará en el apple store) que nos encontrará el kodi muy rápido; o usar un teclado inalámbrico por USB (muy recomendable, al menos de respaldo, porque hay opciones que no funcionan con el kore). No olvidarse de activar SSH y samba en nuestro kodi, lo cual nos proporcionará funcionalidades adicionales. Además otro detalle es usar una IP fija desde el asistente, para que cada vez que se reinicie el kore no tenga problemas de encontrar la Rpi, aunque también se puede lograr mediante consola . Y una vez hecho todo esto….pasamos a configurar Kodi.

Kodi

La configuración de Kodi en mi caso es muy simplista, y se basa sobre todo en algunos addons (plugins) que extienden la funcionalidad de kodi.

Lo primero es ponerlo en español, hora, fecha y ajustar el skin. todo esto se hace desde System -> Appareance:

  • -> International: para el idioma, teclado y formato de fecha/hora
  • ->Skin->ajustes->pantalla principal y addon: configurar la pantalla ppal

Addon Pelis a la carta (link)

Este es el addon estrella, (sobre todo si no tenemos contenido offline) nos permite ver muchísimo contenido online y lo que es más importante…¡en castellano!. Para ello usa diversas páginas (que él llama canales). Algunas páginas usan un registro y en los ajustes de pelis a la carta se podrá añadir este para acceder a nuestro contenido personalizado. También el addon cuenta con numerosos servidores donde se aloja el contenido online, a los cuales se accede a través de los canales.

Para instalarlo se descarga y se puede copiar a la carpeta de descargas de kodi (mediante samba) y luego ya en kodi:

Sistema-> Ajustes->Addons -> Instalar desde zip ->Directorio de inicio->Descargas-> seleccionar addon y listo!

Como explicamos antes los canales basan su contenido en los servidores donde se aloja el contenido, pero a veces la conexión con estos servidores cambia y da un error de “fallo en el conector”, veremos como arreglarlo en el anexo 1.

Addon youtube

Este addon…sin comentarios..

Los addons se pueden instalar desde ficheros zip (como pelis a la carta) o desde repositorios. Los respositorios son urls que contienen otros respositorios y/o addons.

Vamos a añadir el repositorio SuperRepo…

Sistema->Gestor de archivos->Añadir fuente->

  • En nombre pondremos lo que querramos (SuperRepo)
  • y en dirección: http://srp.nu

Sistema->Ajustes->Addons->Instalar desde zip->SuperRepo-><version_kodi(jarvis>->all->instalar el fichero zip

Con esto hemos instalado todos los recursos de SuperRepo (addons, repos…)

Ahora vamos a instalar KaosBox repo, que es donde se encuentra el addon de youtube actualizado (el original de los repositorios de kodi no funciona!)

Sistema->Ajustes->Addons->Instalar desde repositorio->SuperRepo All..->Repositorio de Addons->KAOSbox repo

Sistema->Ajustes->Addons->Instalar desde repositorio->KAOSbox->Youtube

SuperFavourites Repo

Este addon sirve para guardar accesos directos a prácticamente cualquier rincón del programa.

Sistema->Ajustes->Addons->Instalar desde repositorio->Kodi addon repo..->Addons de programa->Super Favourites

Quasar

Este addon es nuevo antes se llamaba Pulsar y se usa para ver torrents online. Se descarga desde el github de su creador  y al instalarlo crea su propio repo conectado a github directamente para las actualizaciones…una maravilla vamos!

Se instala como cualquier zip (descarga e instalar desde zip). Para elegir la versión mirar en:

Sistema->Info del sistema->Hardware->CPU

Anexo 1: reparar servidores de pelis a la carta.

Son muchos los canales y conectores que fallan (el más habitual openload). Para comprobar los fallos podemos:

  • consultar el foro para ver los problemas y en muchos casos obtener las nuevas versiones, aunque es lioso porque hay que navegar por todos los hilos.
  • Acudir al github de desarrollo del plugin donde están las ultimas versiones de todo! (canales, servidores, librerías…). Hay que tener en cuenta la versión de nuestro “kodi” (kodi, mediaplex, boxee, xbmc..) en nuestro caso es el classic (basado en Python)

Una vez obtenidas las versiones adecuadas, hay que copiarlas a su carpeta correspondiente:

  • Para servidores:
    • /storage/.kodi/addons/plugin.video.pelisalacarta/servers
  • Para librerias:
    • /storage/.kodi/addons/plugin.video.pelisalacarta/lib
  • Para canales
    • /storage/.kodi/addons/plugin.video.pelisalacarta/channels

Yo los copio a la carpeta general downloads (accesible por samba) y luego por SSH los copio a su carpeta correcta.

Anexo 2: Servidores

Hay servidores que hay que incluir en la lista negra porque desde españa no se pueden ver:

Allmyvideos

Vidspot

 

Stitch 626 Framework

NOTA: el nombre del framework se debe a que me encanta este personaje, pero sólo lo utilizaré mientras esté en desarrollo por posibles problemas de copyright 😛

Este proyecto será un framework de PHP que nace de la curiosidad por aprender PHP y como funcionan los grandes frameworks (como Symfony, Laravel…), además de implementar mis propias ideas, pero siempre orientado a pequeños proyectos.

Los grandes frameworks de PHP son muy poderosos, pero su curva de aprendizaje puede ser exponencial debido por ejemplo:

  • A que usan varios lenguajes dentro del mismo, uno para plantillas, otro para el ORM, además de la particularidades de su propio código PHP,  las posibles limitaciones o dificultades que podrían suponer la interconexión de cada componente.
  • La magia interna que poseen, que al principio es estupenda pero a la larga, puede impedir entender como funciona y dificultar la detección de posibles errores.

Por otra parte éstos frameworks fueron creados por alguien que también empezó de cero (o no) alguna vez, implementando sus ideas y lo que creía que era mejor en su momento. Luego éstas criaturas fueron creciendo hasta convertirse en lo que son hoy, con el apoyo de las comunidades de adeptos obtenida y de un posible equipo de trabajo. Mi framework intenta seguir una filosofía “RISC”, es decir, hacer pequeñas cosas combinables para hacer cosas más grandes y ser lo más versátil posible, usar sólo PHP para facilitar en la medida de lo posible tareas comunes y repetitivas.

Su estructura es MVC (Model View Controller), aunque una versión fue HMVC (Hierarchical Model View Controller) éste último esquema se compone de pequeñas aplicaciones que cada una de ellas usa un patrón MVC y pueden ser independientes unas de otras. Ese esquema no terminó de convencerme porque aunque parece ser el más útil, sobre todo en proyectos gigantes dada la posible reutilización de éstas pequeñas aplicaciones, creo que excede de  la intención de éste framework, por lo que decidí cambiar a MVC de nuevo.

El único punto de entrada a la aplicación es el controlador frontal (app.php), cuando se introduce una URL el controlador frontal carga el KERNEL y llama al ROUTER el cual parsea dicha URL y carga el fichero de rutas para comparar dicha url con las rutas y así buscar que controlador y que acción debe ejecutar.

Dentro del KERNEL….

El ROUTER he decidido hacerlo autónomo, es decir, que no dependa o lo haga lo menos posible de .htaccess o del servidor, aunque son necesarios para las urls amigables.

El MODELO, esá basado en un solo archivo el cual contienen la definición de la tabla y los métodos asociados a dicha tabla. Este esquema responde a una cuestión de simplicidad, es mas sencillo buscar en un solo archivo que en 2 o en 3. La definición de la tabla se realizará mediante anotaciones de comentarios con un comando especial y luego se definirá con comandos SQL estandar.

Por otra parte las librerías se basaran en un query builder que contempla tanto funciones de consulta, edición y construcción de tablas

Los FORMS se integrarán en las vistas, obedeciendo también a un criterio de simplicidad y minimización de archivos, pero cumpliendo criterios de reusabilidad. Se implementará con un clase abstracta para no tener que instanciar ninguna clase dentro de las vistas.

Los GRIDS siguen definiéndose dentro del controlador, en lugar de en las vistas como sus hermanos FORMS, esto se debe a a varios factores:

  • Los grids necesitan de un paginador basado en la URL y desde la vista no hay control sobre la URL o sería muy complejo de implementar, concepto contrario a este framework.
  • También necesitan acceso al modelo que también ha de ser paginado.
Categorías:Desarrollo, PHP, Proyectos