Blog

Cargar extensión de php desde código (en tiempo de ejecución)

Publicado en Desarrollo web en diciembre 24, 2009 9:37 am

Para cargar una extensión en tiempo de ejecución en php, tenemos la función dl();

Para cargar por ejemplo la extensión para conectarse a una base de datos mysql haríamos:

if(!extension_loaded("mysql")){
  dl("php_mysql.".PHP_SHLIB_SUFFIX);
}

El valor de la constante PHP_SHLIB_SUFFIX almacena la extensión que tendría una librería dependiendo el sistema operativo en el que corra nuestra aplicación.

Disponible el SDK para Powershell 2.0

Publicado en Sistemas TI en diciembre 23, 2009 7:08 pm

Microsoft ha publicado la descarga del sdk para powershell 2.0, viene con ejemplos de código y documentación en los que se muestra cómo atacar a las diferentes APIs de powershell, y cómo usar características como acceso remoto, eventing, transactions y jobs en tus aplicaciones.

Ordenar arrays asociativos contenidos en otro array con php

Publicado en Desarrollo web en diciembre 23, 2009 4:27 pm

Algunas veces disponemos de un array que contiene a su vez varios arrays asociativos, que contienen por ejemplo datos obtenidos tras una consulta a la base de datos.

Puede que dicho array esté cacheado y no queramos atacar a la base de datos para ordenar esos resultados, por lo que nos vendría genial poder ordenar los arrays asociativos que contenga dicho array, en base a los valores que contenga una de las claves de los mismos.

Lo vemos más claro en un ejemplo. Tenemos el siguiente array:


$resultados = array(

array(

      'id' => 1,
      'nombre' => 'Enjuto',
      'apellido' => 'Mojamuto'

     ),

array(

      'id' => 2,
      'nombre'  => 'Marlo',
      'apellido'  => 'Brando'

     )

);

En php disponemos de la función usort(), que ordena en base a una función de comparación que nosotros especifiquemos.

Por ejemplo si quisiéramos ordenar en base a la clave id, en orden descendiente, la función sería:


function comparar($x, $y){

          if ( $x['id'] == $y['id'] )
             return 0;
          else if ( $x['id'] > $y['id'] )
             return -1;
          else
             return 1;

}

Y ahora llamamos a usort para que utilice dicha función:


//si no estamos en un entorno Orientado a Objetos
usort($resultados, array('comparar'));

//si estamos en un entorno Orientado a Objetos
usort($resultados, array('nombreDeClase','comparar'));

¿Por qué contratar nuestros servicios?

Publicado en Desarrollo web Nuestros servicios Sistemas TI en diciembre 22, 2009 9:06 pm

En Blackslot nos dedicamos a dos cosas: a la gestión de sistemas TI y el desarrollo avanzado de aplicaciones web para nuestros clientes.
Nuestro enfoque consiste en crear soluciones conjuntas o específicamente para cada uno de esas áreas sin salirnos del ámbito de internet.

Gestión de infraestructuras TI

En internet es clave disponer de una óptima infraestructura técnica de sistemas, que no sólo englobe la instalación y configuración del servidor o servidores involucrados en un proyecto. Nuestra apuesta es una gestión de sistemas en la que los profesionales encargados de administrar las infraestructuras de nuestros clientes o nuestras propias soluciones platform as a service, tengan siempre un punto de vista crítico sobre las necesidades reales que pueda tener el proyecto, ofreciendo un know-how junto a las tecnologías de desarrollo más vanguardistas disponibles en éste momento.

Desarrollo avanzado de aplicaciones para internet

Hoy en día, el desarrollo de un proyecto en internet requiere un punto de vista global que abarca más disciplinas que el diseño y desarrollo de una aplicación web. Además de contar con una buena arquitectura de software, que escale adecuadamente y sea fácilmente mantenible, nos enfrentamos con la problemática de conseguirlo haciendo un buen uso de los recursos de los que precisamos, tanto económicos como tecnológicos, tanto a medio como a largo plazo.

En Blackslot desarrollamos bajo plataformas maduras, como .net o php, haciendo uso de herramientas y frameworks como asp.net mvc y symfony que nos permiten desarrollar aplicaciones de una forma ágil, dotadas de una arquitectura sólida, escalable y de gran nivel de calidad.

Además podemos asegurar un gran nivel de estabilidad y fiabilidad tanto a medio como a largo plazo en nuestras aplicaciones, al realizar despliegues sobre nuestra propia infraestructura de sistemas. Este punto es nuestra mayor baza para poder asegurar un servicio completo y de gran calidad, sin importar lo ambicioso que pueda llegar a ser el proyecto.

Instalar WordPress desde nuestro panel de control

Publicado en Nuestros servicios Sistemas TI en diciembre 22, 2009 7:46 pm

1) En  el panel de control de nuestro dominio, seleccionamos la opción Aplicaciones web.

image

2) Seleccionamos Instalar aplicación web.

image

3) Localizamos la aplicación WordPress y pinchamos en Instalar.

image

4) En este punto se revisarán los requisitos de WordPress y si falta algo, el asistente nos avisará de ello. Tendremos que resolver el problema para poder continuar.

image

Nota: Para resolver este problema de Safe Mode, visita este artículo.

5) Aceptamos el texto legal.

Hosting WordPress en Blackslot 1

6) Ahora vamos a la parte más importante del proceso de instalación.

  1. Botón personalizado para acceder a la aplicación: Creará un botón de acceso a la aplicación en el panel de control.
  2. Directorio de destino: Si queremos que el blog aparezca como página principal de nuestro dominio, entonces hay que elegir la opción Carpeta raíz (/). Esto instalará WordPress directamente en el directorio /httpdocs de nuestro alojamiento.
    Si por el contrario queremos meterlo en un subdirectorio, como http://midominio.com/wordpress le indicamos en la opción otros el lugar deseado.
  3. Servidor de la base de datos: Lo normal es dejar el que viene por defecto.
  4. Nombre de la base de datos: Autogenera un nombre bastante difícil de recordar. Se puede sustituir por algo más sencillo, lo mismo para el usuario.
  5. Contraseña: Será la del usuario que se crea para la base de datos.
  6. Administrator’s login: Será el usuario administrador de WordPress (wp-admin), es importante recordarlo, así como la contraseña que le pongamos.
  7. Weblog title: Finalmente ponemos el título de nuestro blog y ya podemos pinchar en instalar.

Hosting WordPress en Blackslot 2

7) Una vez tenemos la aplicación instalada, podemos verla desde el panel y acceder a la misma.

Hosting WordPress en Blackslot 3

Hosting WordPress en Blackslot 4

Validar un nombre de dominio en php

Publicado en Desarrollo web en diciembre 22, 2009 11:47 am

$domain = "blackslot.com";
$expr   = '/^(([a-z0-9]([-a-z0-9]*[a-z0-9]+)?){1,63}.)+[a-z]{2,6}/i';

if(preg_match($expr,strtolower($domain))){
  echo "el dominio es válido";
}else{
  echo "el dominio no es válido";
}

Restaurar un backup de Plesk 8 en Plesk 9.*

Publicado en Sistemas TI en diciembre 22, 2009 2:48 am

En Plesk 9 se ha modificado la forma de realizar los backups que se usaba desde Plesk 7.5 y se ha sustituido el formato en el que se almacenaban.

Por tanto, para poder restaurar un backup de una versión antigua de Plesk, antes es necesario convertirlo a un formato que la nueva versión pueda manejar. Vamos a ello:

1. Sino tenemos aún el backup creado, en el servidor de origen, ejecutamos:

# /usr/local/psa/bin/pleskbackup all mibackup.psa

En caso de no encontrarse pleskbackup instalado, hay que entrar al panel de control y en SERVIDOR –> ACTUALIZADOR e instalar PLESK BACKUP MANAGER.

2. Una vez tenemos el archivo de backup generado, lo movemos al servidor de destino y convertimos el archivo a formato Plesk 9.

# /usr/local/psa/bin/pre9-backup-convert -v convert -d /var/lib/psa/dumps/ mibackup.psa

El directorio /var/lib/psa/dumps es la ubicación por defecto para almacenar los backups con Plesk 9. Ahí se creará un archivo .xml con los metadatos del backup.

3. En el panel de control, accedemos a SERVIDOR –> ADMINISTRADOR DE BACKUPS –> REPOSITORIO DEL SERVIDOR.

Ahora veremos un listado de los backups disponibles, entre ellos debería aparecer el que hemos convertido, pinchamos en él y veremos las opciones y podemos empezar el proceso de restauración.

IIS7, reglas de url rewrite que deberías conocer

Publicado en Desarrollo web en diciembre 18, 2009 2:52 pm

Cada vez es más importante disponer de una buena arquitectura de urls en nuestras aplicaciones y sitios web.

Arquitecturas de servicios como REST y la importancia de optimizar el SEO cara a resultados de búsquedas, suelen ser los dos motivos más importantes para que nuestra aplicación necesite disponer de su propia estrategia de urls corente al contenido que se ofrece en cada solicitud.

Desde hace ya dos años, IIS7 goza de su propio sistema de url rewrite nativo, que nos permite de una forma muy sencilla aplicar las reglas necesarias para implantar nuestra estrategia de urls.

Aquí van unos ejemplos de reglas imprescindibles que he ido recopilando estos últimos años:

Eliminar la última barra “/” de la url


<rule name="Eliminar la ultima barra en la url"
      stopProcessing="true">

  <match url="(.*)/$" />
  <conditions>
     <add input="{REQUEST_FILENAME}"
          matchType="IsFile" negate="true" />
     <add input="{REQUEST_FILENAME}"
          matchType="IsDirectory" negate="true" />
  </conditions>

<action type="Redirect"
        redirectType="Permanent" url="{R:1}" />
</rule>

Agregar la última barra “/” a la url

<rule name="Agregar la ultima barra a la url"
      stopProcessing="true">

  <match url="<span><span>(.*[^/])</span></span>$" />
  <conditions>
     <add input="{REQUEST_FILENAME}"
          matchType="IsFile" negate="true" />
     <add input="{REQUEST_FILENAME}"
          matchType="IsDirectory" negate="true" />
  </conditions>

<action type="Redirect"
        redirectType="Permanent" url="{R:1}/" />
</rule>

Convertir toda la url a minúsculas

<rule name="Forzar toda la url a minusculas"
      stopProcessing="true">

      <match url=".*[A-Z].*" ignoreCase="false" />
      <action type="Redirect" url="{ToLower:{R:0}}"
              redirectType="Permanent" />

</rule>

Quitar las www del hostname

<rule name="Quitar las www"
      stopProcessing="true">
     <match url="(.*)" />
     <conditions>
       <add input="{HTTP_HOST}" negate="true"
            pattern="^blackslot.com$" />
     </conditions>
     <action type="Redirect" url="https://blackslot.com/{R:1}"
             redirectType="Permanent" />
</rule>

Añadir las www al hostname

<rule name="Añadir las www"
      stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" negate="true"
                pattern="^www.blackslot.com$" />
      </conditions>
      <action type="Redirect" url="http://www.blackslot.com/{R:1}"
              redirectType="Permanent" />
</rule>

Forzar https

<rule name="Forzar https"
      stopProcessing="true">

      <match url="(.*)" />
      <conditions>
         <add input="{HTTPS}" pattern="^OFF$" />
      </conditions>
      <action type="Redirect"
              url="https://{HTTP_HOST}/{R:1}"
              redirectType="SeeOther" />
</rule>

Rechazar hotlinking a imágenes

<rule name="Rechazar hotlinking"
      stopProcessing="true">

      <match url=".*.(gif|jpg|png)$"/>
      <conditions>
        <add input="{HTTP_REFERER}"
                pattern="^$" negate="true" />
        <add input="{HTTP_REFERER}"
               pattern="^https://blackslot.com/.*$" negate="true" />
      </conditions>
      <action type="Rewrite" url="/images/gandalf_nopuedespasar.jpg" />
</rule>

WordPress

<rule name="Wordpress"
      stopProcessing="true">

            <match url="*" />
            <conditions>
                <add input="{REQUEST_FILENAME}"
                        matchType="IsFile" negate="true" />
                <add input="{REQUEST_FILENAME}"
                        matchType="IsDirectory" negate="true" />
            </conditions>
            <action type="Rewrite" url="index.php" />

</rule>

Symfony (producción)

<rule name="Symfony"
      stopProcessing="true">

      <match url="^(.*)$" ignoreCase="false" />
       <conditions logicalGrouping="MatchAll">
           <add input="{REQUEST_FILENAME}"
                  matchType="IsFile" negate="true" />
           <add input="{REQUEST_FILENAME}"
                   matchType="IsDirectory" negate="true" />
       </conditions>
       <action type="Rewrite" url="index.php"
                  appendQueryString="true" />

</rule>

Nuestros servidores virtuales HyperV R2

Publicado en Nuestros servicios en diciembre 17, 2009 7:08 pm

Microsoft HyperV R2 es una tecnología de servidor que permite a nuestros clientes disponer de una máquina dedicada y totalmente independiente, con ventajas adicionales sobre una solución de servidor dedicado.

Blackslot es el único proveedor en España que ofrece este servicio.

Además de capacidades de redundancia y migración automática entre diferentes nodos sin pérdida de servicio, nos permite realizar backups y clonaciones del servidor completo (no sólo de sus archivos), escalabilidad de recursos de hardware y estrategias de alta disponibilidad que se pueden implementar en varios minutos.

A diferencia de servidores virtuales que hacen uso de otras tecnologías de virtualización como Virtuozzo, nuestros servidores virtuales no comparten recursos de sistema con otrás máquinas alojadas que comparten anfitrión, haciendo de ellas la solución preferida para nuestros clientes que requieran un servidor independiente, flexible en cuanto a prestaciones de hardware y seguridad.

Además de esto a Blackslot nos permite ofrecer servicios impensables para servidores dedicados. Como ejemplo de estos servicios son:

Envío de máquinas virtuales.

Algunos de nuestros clientes necesitan disponer de servidores virtuales con ciertas características de hardware concretas, que estén ubicados en un entorno seguro y que tengan una instalación/configuración de sistema, aplicaciones y servicios realizada por ellos mismos o certificada por algún organismo externo.

Otros clientes necesitan redundancia total de sus servidores y equipos de oficina, junto un rápido soporte y reabastecimiento en caso de emergencia. En este caso nuestros clientes suelen elegir entre  enviar sus configuraciones o arquitectura de sistema interna, para que lo implantemos nosotros en un entorno virtual, o enviarnos directamente todo en máquinas virtuales listas para arrancar y funcionar.

Para ambos clientes nuestras soluciones HyperV R2 presentan una oportunidad para llevar a un nivel superior su gestión TI y tener la seguridad de contar con un respaldo total que evitaría, en caso de urgencia, incalculables pérdidas económicas para sus empresas.

Sistemas operativos Linux y Windows

A diferencia de otras opciones disponibles con otros proveedores, ofrecemos HyperV R2 con un amplio catálogo de sistemas operativos como Windows 2008 Server (Standard y Enterprise Editions), Windows 7 (Cualquier versión profesional y Enterprise), Suse Linux y otras distribuciones de Linux según requisitos de cliente.

Arquitecturas híbridas virtuales/físicas

Estamos implementando y gestionando soluciones que combinan servidores dedicados y servidores virtuales en una misma arquitectura.

La ventaja de disponer servidores virtuales para roles como servidor web frontal o de cache, reside en la posibilidad de escalar de forma automática sin tiempos de espera y de redundar o disponer de infraestructuras replicadas en otras ubicaciones físicas con un coste muy reducido, algo que mejora los tiempos de respuesta de la web para usuarios de otros países.

Esto unido a la posibilidad de disponer de aplicaciones centralizadas virtualizadas, que los clientes puedan utilizar sin instalar en su equipo, hace que se reduzcan costes que deberían ser asumidos en una infraestructura basada exclusivamente en hardware físico.

Desarrolla un proyecto php en windows y preséntalo en el próximo php|tek 2010 de Chicago

Publicado en Eventos en diciembre 14, 2009 2:50 am

A traves de la genial revista PHP Architect conocemos la iniciativa PHP on Windows® Contest, en la que se invita a todo desarrollador php a crear una aplicación web que corra bajo entornos Microsoft, o aportar una significante contribución a algún proyecto open source relacionada con el objetivo del concurso.

Entre los premios está un sistema de entretenimiento completo formado por:

  • Una TV Samsung 52” 1080p LCD HDTV (modelo LN52B540).
  • Un Samsung Digital 5.1 home theatre system (modelo TZ322T).
  • Una XBOX 360 Ultimate.
  • Un viaje al php|tek 2010 desde cualquier lugar de Estados Unidos.
  • Dar una charla sobre tu proyecto en el php|tek 2010.

Aunque el concurso es sólo para personas residentes en Estados Unidos, se puede participar, ser votado e incluso ganar por votación al enviar el proyecto, lo que puede darte una gran visibilidad a nivel mundial.

Fatan 76 días.

Nuevos servicios grid para ASP.net MVC y php bajo Windows

Publicado en Nuestros servicios en octubre 9, 2009 9:37 pm

Durante los últimos meses hemos estado preparando un servicio que nosotros mismos echábamos en falta para albergar proyectos desarrollados con las últimas tecnologías de servidor Microsoft y de programación web con asp.net y concretamente con su nuevo framework MVC.

gridsrv

Este framework permite utilizar una filosofía de desarrollo web totalmente distinta al desarrollo con web forms tradicionales, permitiendo desarrollar aplicaciones web de una forma ágil en pocos días con una arquitectura REST, como ya vienen permitiendo frameworks de tecnologías open source como Symfony, Zend Framework, Ruby on Rails, Django entre otros.

Esto abre un amplio y esperado abanico de posibilidades a desarrolladores .net que quieran un control más amplio sobre cada una de las partes de la arquitectura de su aplicación.

A pesar de su corta historia, este framework tiene ya a sus espaldas varios casos de éxito, como es por ejemplo el de StackOverflow.com, una comunidad imprescindible para todo desarrollador web.

Nuestro nuevo servicio tiene soporte nativo para este framework, además de otras características muy interesantes como bases de datos en Sql Server 2008 accesible directamente desde VisualStudio 2008 y 2010, con una serie de características simplemente excepcionales frente a su versión anterior, soporte para Silverlight 3 que presenta formas de servir contenidos multimedia de una forma nunca  antes vista, módulo de rewrite nativo de IIS7 para generar urls amigables cara al SEO de tu aplicación, totalmente compatible con reglas de Apache e integrado con las últimas versiones de muchos cms como WordPress (todo ello sin tener que instalar módulos como Isapi Rewrite).

No nos hemos olvidado de las aplicaciones php, tecnología que adoramos en Blackslot, y creemos que hemos conseguido el mejor alojamiento para las mismas bajo entornos Microsoft.

Contamos con la última versión de php (la 5.3) en la fecha de escribir este post, es una regla de oro que tenemos como prioridad de mantener, funcionando sobre fastcgi para iis7.

IIS7 ha demostrado que es capaz de superar en rendimiento a otros servidores web, de otras plataformas, sirviendo aplicaciones web php de alto tráfico como es el caso de Battle Stations.

¿Y qué hay para los no programadores o empresas que no tienen aplicaciones con estas necesidades?

Hemos pensado también en ellos, con servicios de correo como mailEnable, que permite de una forma muy eficiente disponer, además de buzones de correo, de contactos, tareas y calendarios, desde una interfaz web accesible desde cualquier navegador con un look and feel muy cuidado, sincronizable al móvil y Outlook

Nuestro panel de control plesk 9, especialmente adaptado para este servicio, hará de una forma fácil y cómoda toda la gestión de sus cuentas de correo, espacio web, dominios y todas esas cosas que crean “la magia” para que todo funcione como debe.

Este servicio lo hemos llamado Servidor Grid, ya que seguimos una arquitectura de sistemas basada en grid (de momento local en nuestro centro de datos en Madrid) sobre la cual lo hemos implementado, y lo tenéis por 12€/mes para un dominio y por 32€/mes para 10.

Por supuesto nos tenéis a vuestra disposición para atender vuestras dudas y si tenéis alguna idea o sugerencia, os falta algo en este servicio o creéis que podríamos mejorarlo de alguna forma, no dejéis de pasaros por nuestro foro de sugerencias.

CodeCamp .Net 2009

Publicado en Eventos en octubre 2, 2009 4:12 pm

Los días 17 y 18 de Octubre tendrá en lugar en Tarragona, el CodeCamp .net 2009, una cita imprescindible para todo desarrollador interesado en tecnologías .net.

En este evento podremos encontrar sesiones en las que se hablará sobre el inminente windows azure, opciones de desarrollo para surface/wpf, silverlight 3, desarrollo de aplicaciones para iPhone con mono/mono touch, desarrollo de juegos para XBox 360 con XNA y c# entre otros temas interesantes de la mano de ponentes de primera línea como Rodrigo Corral, Ibon Landa, José Manuel Alarcón, Bruno Capuano, Unai Zorrilla entre otros.

Como uno de nuestros principales objetivos en Blackslot es convertirnos en la mejor opción de alojamiento de aplicaciones web .net, estaremos encantados de recibir vuestras sugerencias e invitaros a un café si nos vemos por allí.

Nueva web y nuevos servicios

Publicado en Novedades en septiembre 27, 2009 1:17 am

Estas últimas semanas han sido bastante duras para nuestro equipo y los grandes (muy grandes) profesionales que trabajan con nosotros.

En estos últimos días hemos implementado nuestra propia infraestructura de servidores y de red en Madrid, hemos publicado nuestra web (esperamos que os guste) y nos encontramos perfilando, y en algunos casos testando por manos expertas, nuestros nuevos servicios.

En nuestra web actualmente podéis ver algunos de los servicios que llevamos meses ofreciendo, como son la administración de servidores junto al estudio, implementación y mantenimiento de proyectos a medida, tanto con tecnologías Microsoft como Linux/Unix.

Sin embargo podéis ver como hemos añadido dos tipos de servicios nuevos muy orientados a tecnologías Microsoft para internet.

Os los describo de forma breve.

Servidores grid

Pensados para desarrolladores web asp.net mvc y php bajo entornos Microsoft, disponen de todas las tecnologías Microsoft para desarrollo web (incluído el soporte para asp.net mvc) y de php en sus últimas versiones, además de SQL Server 2008 (actualmente), MySQL y servicios de correo MailEnable. Todo modularizado y fácil de gestionar desde una interfaz web o desde Visual Studio.

Servidores HyperV R2

La segunda versión de HyperV de Microsoft, un servidor prácticamente similar a un servidor físico real, con escalado prácticamente inmediato, snapshots, varias posibilidades de elección de sistema operativo, acceso Terminal Server o SSH en caso de ser Linux entre otras muchas características que comunicaremos más adelante.

Tenemos un foro de sugerencias para que nos aportéis ideas o cosas que os resultarían útiles, en estos últimos y el resto de nuestros servicios. Estaremos encantados de leerlas e implementar vuestras geniales aportaciones.

Al margen de los servicios orientados a desarrolladores y emprendedores que hacen uso de tecnologías Microsoft, hemos lanzado también una propuesta abierta de coworking.

Desde hace años, el equipo de Blackslot desarrolla proyectos en internet. Si tienes un proyecto y necesitas consejo, socios tecnológicos que te ayuden con el desarrollo, espacio para trabajar o inversión, estaremos encantados de hablar contigo.

Blackslot, soluciones de sistemas para aplicaciones de internet

Publicado en General en septiembre 2, 2009 8:22 pm

Sobre Blackslot

Somos una empresa que ofrece servicios avanzados de gestión y mantenimiento de sistemas, enfocados a servicios y aplicaciones de internet.

Hablando claro, nos ocupamos de asesorar a desarrolladores web sobre qué soluciones de sistemas son las más adecuadas para su proyecto y de que sus servidores e infraestructuras (estén donde estén contratadas) funcionen bien, asegurándonos de que se encuentren siempre en un estado óptimo.

Además de ofrecer estos servicios, actualmente nos encontramos automatizando y desarrollando plataformas que integran servicios de distintos proveedores (ya sean isp, hosters o proveedores que ofrezcan soluciones de cloud computing), con el objetivo de que los desarrolladores puedan gestionar, de una forma simple y rápida, una infraestructura de desarrollo y producción totalmente escalable que le ofrezca todo lo que necesite para disfrutar de su trabajo sin quebraderos de cabeza.

Apostamos por el i+d de una forma contundente, para ello colaboramos con proyectos innovadores en internet que tengan requerimientos de sistemas avanzados o fuera de lo común.

Sobre este blog

En este sitio web, además de comunicar lo que estamos investigando, desarrollando y novedades que surgan en nuestros servicios, se ha creado para compartir todo aquello que nos parezca interesante desde un punto de vista tecnológico.

Esperamos que sea de vuestro interés y nos vayáis conociendo un poco mejor.