Facebook Fanpage


miércoles, 29 de mayo de 2013

Instalar Symfony2 desde cero

Hola amigos bloggueros hoy les dire como instalar Symfony2 versión 2.2.1, no soy un experoto en el tema a decir verdad es la primera vez que instalo symfony2, la instalación la realizare en un entorno linux, yo personalmente estoy utilizando LinuxMint14.
Lo primero que expliare es como configurar un servidor web en nuestro equipo y despues explicare la instalación de Symfony2, la instalación la hago desde cero para que aquellos que se estan iniciando en el mundo de la programación puedan instalar este espectacular framewirk.


1) Primero instalamos Apache
# apt-get install apache2 apache2.2-common apache2-utils ssl-cert  apache2-mpm-prefork
2) Instalamos y habilitamos el módulo para utilizar modrewrite
# apt-get install libapache2-mod-proxy-html
Para habilitar el modulo en apache, ejecutamos:
# a2enmod rewrite
3) Instalamos PHP5
# apt-get install php5 libapache2-mod-php5 php5-common php5-intl
4) Instalamos Mysql
# apt-get install mysql-server mysql-client php5-mysql
5) Por último instalamos phpmyadmi
# apt-get install phpmyadmin
 
Con estos sencillos pasos ya tendremos un servidor web instalado en nuestro equipo.

Ahora continuamos con la instalación de Symfony2.  
Mi IDE favorito para programar es Netbeans, por lo que es el que utilizaré en este ejemplo. Si no lo hemos cambiado, nuestro workspace (donde se encuentran los proyectos a los que podemos acceder desde Netbeans) lo encontraremos en la carpeta NetBeansProjects en nuestra carpeta Home.

1) Procedemos a crear una nueva carpeta con el nombre de nuestro proyecto en el workspace de Netbeans:
$ mkdir /home/NetBeansProjects/miproyecto
2)Entramos en la carpeta que acabamos de crear:
$ cd /home/NetBeansProjects/miproyecto
3)Descargamos Symfony2 (comprueba la última versión en http://symfony.com/download):
Y descomprimimos:
$ tar zxvf Symfony_Standard_Vendors_2.0.0-RC4.tgz
4)Borramos el archivo comprimido que hemos descargado:
$ rm Symfony_Standard_Vendors_2.0.0-RC4.tgz
 
Ya tenemos instalado un proyecto básico en Symfony2. Ahora vamos a configurar Apache para poder acceder desde nuestro navegador favorito.

1) Creamos un nuevo archivo donde irá la configuración de nuestra web:
# vi /etc/apache2/sites-available/miproyecto
Que contendrá el siguiente contenido (cambia “jhongo” por el nombre de tu carpeta Home):

<VirtualHost *:80>
   ServerAdmin email@email.com
   DocumentRoot /home/jhongo/NetBeansProjects/miproyecto/Symfony/web
   ServerName miproyecto.com
   ServerAlias *.miproyecto.com
   ErrorLog /var/log/apache2/miproyecto_error.log
   CustomLog /var/log/apache2/miproyecto_access.log common
   DirectoryIndex index.php
   <Directory "/home/jhongo/NetBeansProjects/miproyecto/Symfony/web">
        Options Indexes FollowSymLinks
        Order Allow,Deny
        Allow from all
        AllowOverride all
        <IfModule mod_php5.c>
           php_admin_flag engine on
           php_admin_flag safe_mode off
           php_admin_value open_basedir none
        </ifModule>
   </Directory>
</VirtualHost>
 
2) Creamos un enlace simbólico de este archivo en sites-enabled para indicar que es una web activa:
# ln -s /etc/apache2/sites-available/miproyecto /etc/apache2/sites-enabled/miproyecto
3) Para que se apliquen los cambios, reiniciamos el servidor Apache:
# /etc/init.d/apache2 restart
4) Por último, forzamos en el archivo /etc/hosts la ip de nuestra web, que en este caso será localhost o 127.0.0.1
# vim /etc/hosts
5) añadimos esta línea al final del fichero:
127.0.0.1 www.miproyecto.com miproyecto.com
 
Después de todo esto, ya podremos acceder a nuestro nuevo proyecto en Symfony2 desde el navegador escribiendo la url que hemos configurado (www.miproyecto.com ó miproyecto.com).

Como primer paso, debemos comprobar si cumplimos con la configuración básica para que funcione nuestro proyecto. Lo haremos desde la siguiente url:

http://miproyecto.com/config.php

Symfony2 config

Como vemos, nos encontramos con dos problemas (podríamos tener más, deberemos resolverlos según sea necesario). En este caso el error es que las carpetas app/cache y app/logs no tienen los permisos necesarios.

Lo arreglaremos así:
chmod 777 /home/NetBeansProjects/miproyecto/Symfony/app/cache
chmod 777 /home/NetBeansProjects/miproyecto/Symfony/app/logs
 
En ocaciones nos genera problemas la intalación con el composer, así que explicare la corrección de este error, empesemos:

  1. Abre una consola de comandos y accede al directorio raíz de tu proyecto Symfony2: 
  2. Ejecuta el siguiente comando:
     
    $ curl -s https://getcomposer.org/installer | php
      
    
   3. Instalamos librerias de terceros
      
     $ php composer.phar install
 
Si todo ha funcionado bien, en el directorio raíz de tu proyecto Symfony2 verás un nuevo archivo llamado composer.phar.

Para comprobar que se ha instalado correctamente, ejecuta el siguiente comando que muestra el menú de opciones de Composer:

$ php composer.phar
 
Instalar Composer de esta manera es correcto, pero te obliga a realizar una nueva instalación para cada proyecto Symfony2. Si tienes muchos proyectos, es mucho mejor que instales Composer de forma global en tu ordenador, para que todos los proyectos utilicen la misma versión de Composer.

Para instalar Composer globalmente, mueve el archivo composer.phar a algún directorio ejecutable del sistema, como por ejemplo:

$ sudo mv composer.phar /usr/local/bin/composer
 
Comprueba que todo funciona bien ejecutando el comando composer sin opciones desde cualquier directorio del sistema.

La instalación global de Composer también facilita su mantenimiento, ya que sólo hay que ejecutar el siguiente comando para actualizar la versión de Composer de todos los proyectos:

$ sudo composer self-update



Una vez arreglados los problemas, ya podemos acceder a nuestro proyecto web con Symfony2 mediante esta url:

http://miproyecto.com/app_dev.php/

Symfony2 home

domingo, 26 de mayo de 2013

Problemas con msvcr100.dll instalando Wampserver en Windows

Si nuestro sistema no dispone de la librería msvcr100.dll de visual C++ (de Micrrosoft), al instalar wampserver recibiremos un error y Wampserver no se iniciará correctamente…

Este puede ser uno de los problemas más comunes de los nuevos usuarios de Wampserver..!!!

Desarrollo wampserver para Windows
Resulta que últimamente se habla de sobre errores, y que wamp no se isntala bien, y que se queda “Color Naranja” el icono y problemas similares.
Que si existen desde luego…!!!
En este artículo sólo pretendo recordar que hay veces que al descargar Wampserver desde la Web del autor, olvidamos instalar las librerias necesarias C++ para quewampserver funcione corretamente.
 

A pesar de que el autor de wampserver lo sugiere…

link-y-solucion-para-wampserver
Si que es cierto, que en la caja de los links de las descargas y soluciones, viene el texto en inglés, y eso puede acarrear algún contratiempo y uno no se percate que nos avisa que si no disponemos de las librerias C++ mejor las descarguemos de la web deMicrosoft, para no tener problemas en la instalación.
Hay que reconocerlo…???
======================================================================

En la caja de diálogo de Wampserver, no ofrece tres enlaces;
1- El del archivo de la aplicación

2- El de la actualización y solución para sistemas de windows de 32bit (x86)
c++-para-32bits

3- El de la actualización y solución para sistemas de windows de 64bit (x64)
c++-para-64bits

Podemos descargar la actualización que mejor nos convenga y la instalamos.
======================================================================
 

Si no disponemos en nuestro sistema el archivo MSVCR100.dll, durante la comoda instalación de wampserver obtendremos este error..!!!

Error msvcr100.dll no encontrado
Aunque no impedrirá finalizar la instalación de Wampserver, Apache no funcionará, incluso volviendo a instalar los servicios una y otra vez.
Este problema puede pasar en cualquier sistema operativo de windows, pero yo personalmente en el que he visto más esta caja de error, ha sido en Windows 8 pro, que es el sistema que estoy usando ahora actualmente.
No olvidéis descargar e instalar los paquetes de Microsoft para la versión que estéis usando.
Os ahorrareis algunos quebraderos de cabeza.
======================================================================
 

También se puede obtener el archivo MSVCR100.dll…

También se puede obtener el archivo “msvcr100.dll” desde una web externa a la deMicrosoft.
Yo lo he probado y funciona perfectamente, a decir verdad lo estoy usando en el sistema en el que estoy escribiendo este artículo, y lo descargue de aquí…
http://es.dll-files.com/msvcr100.dll.html
Si te decides por estos “lares“, es bajo tu responsabilidad.
Funciona correctamente y parece alejado del tema del “Malware” y malos “rollos“, o sea que no parecen ser archivos dudosos y corruptos.
Creo que es una web totalmente seria y a mí me ha funcionado, pero he de reconocer que antes de usarlo le he pasado el antivirus “Comodo” y uno online conVirustotal y no he obtenido problemas.
Pero no olvidemos leer la forma de instalarlo que anuncian desde la web…!!
saludos…
 
======================================================================
Si te sientes libre, deberias conocer otras opciones libres..!!!
======================================================================

lunes, 20 de mayo de 2013

Herramientas para comprimir CSS y Javascript

Los que trabajamos con proyectos web tenemos que estar atentos al tiempo que tardan nuestras páginas en ser abiertas por los navegadores.
Una de las técnicas más usadas para reducir este tiempo es el reducir el tamaño de los archivos css y Javascript, existiendo varias herramientas que podemos utilizar (aunque también hay como hacerlo desde el htaccess). Aquí os dejo con una lista publicada hace unos meses en devcurry.com





  • JSMin – borra comentarios y espacios en blanco en los archivos JS.
  •  JSO (JavaScript Optimizer) – Permite gestionar los archivos JS y CSS controlando la cantidad de datos transmitidos entre servidor y cliente.
  •  Packer – Comprime JS desde la web.
  •  JSCompress.com – Usa JSMin o Packer para reducir el tamaño de los ficheros
  •  YUI Compressor – Herramienta de Yahoo que promete ser la más segura y eficiente de todas.

domingo, 19 de mayo de 2013

Heramientas en javascript para acelerar la creación y mejorar los formularios


Cuando nos enfrentamos al desarrollo de formularios, los cuales se deben resolver rápidamente y debe tener determinadas características, nos vuelve a nosotros cientos de sitios que visitamos con diferentes "plugins" y herramientas que nos podrían servir.



Sin embargo, arrancamos a navegar y se nos cruza por la cabeza ideas y vamos agregándole características que de a poco nos va cerrando.
Este proceso nos lleva tiempo, bastante y ni pensar en herramientas que no se lleguen a integrar perfectamente.
Ese fue mi caso, y bueno ahora como simple reducción de tiempo, deseo compartir algunas herramientas que vienen a suplir la necesidad de buscar (es obvio que lo que usamos anteriormente, no llegamos a guardarlo)
Resumo algunas herramientas interesantes



Es un framework para la construcción y validación de formularios en HTML5 y apuntando al concepto de responsive web design.

Característica:
Completanmete responsive
Soporte de teclado
Inputs personalizable para select, radio, checkbox y file
Calendario personalizado usando jQuery UI (con fallback)
Validación "Sobre Item o On the spot"
Localization
Texto de sugerencia para HTML5

Soporte para:
IE8+, Webkit, Firefox, Opera, iOS5+, Android 4.0+
jQuery: 1.7+, UI 1.8+
Licencia: GPL or MIT


JQuery File Upload


Caracteristicas
Soporta subida Multiple (file upload)
Soporte Drag & Drop
Barra de progreso para las subidas.
Subidas Cancelables
Permite recontinuar subidas.
Permite subida por bloques
Cambio de tamaño del lado de cliente para las imágenes. Resize.
Soporte imágenes previa
No se necesitan plugins extra, como Flash.
Subida via XMLHttpRequests si soporte y empleo de iframes como fallback para navegadores sin soporte.

Requerimientos:

jQuery v. 1.6+
jQuery UI widget factory v. 1.8+
jQuery Iframe Transport plugin (included)
JavaScript Templates engine v. 2.1.0+ (optional)
JavaScript Load Image function v. 1.1.6+ (optional)
JavaScript Canvas to Blob function v. 2.0.0+ (optional)
Bootstrap CSS Toolkit v. 2.0+ (optional)



Validar los dominios de email? mas fácil que emplear Kicksend email, no hay. Altamente recomendable.

Si quieres agregar autocomplete, recomiendo que evalúes esta opción TextJS


Sin embargo existe un Framework mas completo, o al menos integra la mayoria de los elementos básicos para la creación de formularios como es el de 99Lime
Es bueno que den una ojeada a Kickstart

Espero les sirva, Saludos!

Colección de plugins para mejorar el rendimiento editando HTML, CSS, PHP en nuestros códigos bajo SublimeText2


Luego de evaluar y realmente admitir que este editor de texto es TREMENDO, quizás quizás por la simplicidad de uso, o por las posibilidades de expansión que este tiene (permite cambiar los shortcuts, agregar propios, permite plugins, soporte múltiple lenguajes, etc.).




Además de admitir que es un editor liviano, y por encima de todo pensado para y por programadores, rescato el alto nivel de adopción por parte de la comunidad de programadores.

Quizas esto se deba en gran medida al soporte de multiple plataformas (*nix /Windows/Mac)
Es importante también destacar lo simple que es implementar un plugin o desarrollar uno sin tener que ser un programador en un lenguaje mas complejo. En este caso los plugins estan desarrollado en el sencillo lenguaje Python.

Te dejo una hoja de trucos que puede llegar a servirte (fuente Falasco.org)


http://falasco.org/img-falasco.org/download/cheatsheet-sublimetext2.pdf



Bueno comencemos con el listado de plugins que me parecieron mas que necesarios e interesantes para cualquier desarrollador web:


A Sublime Text 2 plugin that uploads code snippets to JustPaste.me. Once uploaded, the link is immediately copied to your clipboard, ready to share with your friends!
https://github.com/Apathetic012/JustPaste#readme



Sublime Text CSS Media Query Snippets:Coleccion de snippets de media query para los usos mas comunes (layouts base)

Desktop/Laptop
Ipad (general)
Ipad Landscape
Ipad Portrait
Smartphone (general)
Iphone 4 (retina)
Smartphone Portrait
Smartphone Landscape
https://github.com/davezatch/Media-Query-Snippets


PHP Syntax Checker:Este plugin permite verificar la sintaxis del archivo PHP editado al momento de guardar los cambios.
https://github.com/naomichi-y/php_syntax_checker


MySignature - Sublime text 2 plugin:Es un plugin liviano que mejora las caracteristicas de autocompletado, agregandole al popup presentado la forma de el método y su argumento.
Este plugin esta orientado para javascript.
https://github.com/eladyarkoni/MySignaturePlugin


HTML Attributes:Te permite mejorar el autocomplete de los atributos para HTML.
https://github.com/agibsonsw/HTMLAttributes

SublimeText Doctypes:Este es un paquete de Sublime Text el cual incluye snippets, fragmentos de codigo para el uso del tipo de documentos html a usar
https://github.com/datevid/sublime-text-doctypes


AndyJS: JS y jQuery autocompletado
 

Es necesario colocar un archivo de sintaxis, se explica en el sitio. Una vez disponible, se puede conmutar entre javascript y JQuery.

https://github.com/agibsonsw/AndyJS



Un poco mas sobre los plugins.

Si estas interesado en desarrollar plugins existe mucha info en el foro de Sublime como tambien herramientas, pero lo básico es manejar un poco de python.
Tenes un instructivo muy básico en http://www.sublimetext.com/docs/plugin-basics
Sin embargo en NetTuts tenes un tutorial mas que interesante

Un plugin bastante interesante es el AndyPython que te va a simplificar el desarrollo de estos.
Incluye autocompletado para el API de Subllime. Ideal para comenzar a desarrollar tus propios plugins
https://github.com/agibsonsw/AndyPython

jueves, 2 de mayo de 2013

Crear Subredes Clase A, B, C






Este manual tratara de explicar en breves pasos el metodo de creacion de subredes o mejor conocido 
como Subneteo. El primer paso que debemos recordar son las clases de redes que existen para nuestro 
uso, estas son 3 las cuales enumero a continuacion: 
– Clase A : comprendida de la red 1 a la 126 
– Clase B: comprendida de la red 128 a la 191 
– Clase C: comprendida de la red 192 a la 224 

Ahora tenemos que recordar cuales son las mascaras de subred que tienen por default cada una de las 
clases de Red. 
– Clase A: 255.0.0.0 
– Clase B: 255.255.0.0 
– Clase C: 255.255.255.0 

Teniendo estos conceptos claros entraremos en materia , ¿Para que nos sirve crear subredes? 
La respuesta es que crear subredes nos permite tener una mejor administracion de red. Aunque no es el 
unico motivo, el motivo mas importante es que cuando creamos subredes reducimos el trafico de 
broadcast de nuestra red global. 

No solo es crear subredes y ya , tenemos que estudiar la cantidad de subredes que necesitamos , el 
crecimiento que tendra la empresa. Con este pequeño estudio podremos decidir que clase de red es la 
que mas nos conviene. 

Con fines practicos utilizaremos una red de Clase A que sera la 10.0.0.0 y haremos 7 subredes. 

Recordemos la mascara de subred de este tipo de clase; 255.0.0.0. Hecho esto empezemos con el 
subneteo propiamente dicho. 
La ecuacion que define la cantidad de bits que tenemos que tomar prestados a la parte de la mascara de 
subred para crear las subredes necesarias es la siguiente: 
2N - 2 = x donde “N” es el numero de bits que pediremos prestados y “x” es el numero de subredes 
que queremos. 

En este caso vamos a sustituir los valores que tenemos. 2N - 2 = 7 , ya tenemos el valor de las subredes 
que necesitamos ahora solo tenemos que buscar una potencia de dos que al restarle dos nos de 7 o mas, 
si ocupamos el valor de “3” tenemos 8 pero al restarle “2” solo nos quedan 6, entonces no nos sirve. 
Por lo cual el numero “4” es el indicado ya que al elevar y restar 2 nos quedan 14 redes utilizables , 
aquí se pueden preguntar que solo queremos 7 y las demas que se le van a hacer , bueno pues las 7 
restantes se pueden guardar para un posterior uso. 


Volvamos a sustituir el nuevo numero en nuestra formula inicial 24 – 2 = 14. Como digimos 
anteriormente “N” es el numero de bits que tomariamos prestados a la mascara de subred para poder 
crear las subredes, por lo que tomaremos 4 bits de que octeto se preguntaran, estan de acuerdo que los 
bits del primer octeto ya estan ocupados y que por eso es el numero 255 en decimal. 
Dejenme explicarlo con mas detalle, 255.0.0.0 , es el numero decimal que representa la mascara de 
subred, pero el numero real es un numero en binario que se veria de la siguiente forma: 
11111111.00000000.00000000.00000000 

Recordemos lo que aprendimos en electronica, donde 1 representa encendido y 0 es apagado, aquí lo 
aplicamos a que 1 esta lleno y el 0 es vacio. 
Por eso digo que el primer octeto ya esta ocupado , por eso los 4 bits los tomaremos del octeto 
siguiente con lo cual podriamos decir que la nueva mascara de subred en modo binario quedaria de 
esta forma: 
11111111.11110000.00000000.00000000 

Ahora convirtamoslo a decimal para saber que numero es y asi lo pongamos en la configuracion. 
255.240.0.0 En decimal esa es la nueva mascara de subred que ocuparan todas las subredes que 
tengamos. Ahora solo nos falta encontrar de que tamaño seran las subredes que haremos. 
Aquí veamos otro concepto, Cuantas numeros existen en el rango de 0 a 255 ? Si contamos tambien a 
el numero 0 como un valor real tendriamos 256 numeros, de acuerdo. 
Ahora si a esos 256 valores les restamos el numero que encontramos en la mascara de subred ya 
tendremos los numeros que sobran que seran los saltos de cada subred. 
256-240 = 16 Los saltos seran de 16 en 16 pero en que octeto haremos los saltos? Bueno recordemos 
cual es la red que ibamos a subnetear y la mascara de subred que hicimos: 
la red es la 10.0.0.0 y la mascara nueva de subred es la 255.240.0.0 , estamos de acuerdo que el octeto 
que modificamos de la mascara de subred es el segundo asi que el octeto que tenemos que modificar en 
la red tambien tiene que ser el segundo, asi que si hubieramos modificado el tercero se tendria que 
hacer el proceso en el tercero. 

Ahora ya empezaremos a crear las subredes. 


Numero de Subred Subred Broadcast Rango de IP's Utilizables 


# SubredSubredBroatcastRango de Host Utilizables
110.0.0.010.15.255.25510.0.0.1 10.15.255.254
210.16.0.010.31.255.25510.16.0.1 10.31.255.254
310.32.0.010.47.255.25510.32.0.1 10.47.255.254
410.48.0.010.63.255.25510.48.0.1 10.63.255.254
510.64.0.010.79.255.25510.64.0.1 10.79.255.254
610.80.0.010.95.255.25510.80.0.1 10.95.255.254
710.96.0.010.111.255.25510.96.0.1 10.111.255.254
810.112.0.010.127.255.25510.112.0.1 10.127.255.254
910.128.0.010.143.255.25510.128.0.1 10.143.255.254
1010.144.0.010.159.255.25510.144.0.1 10.159.255.254
1110.160.0.010.175.255.25510.160.0.1 10.175.255.254
1210.176.0.010.191.255.25510.176.0.1 10.191.255.254
1310.192.0.010.207.255.25510.192.0.1 10.207.255.254
1410.208.0.010.223.255.25510.208.0.1 10.223.255.254
1510.224.0.010.239.255.25510.224.0.1 10.239.255.254
1610.240.0.010.255.255.25510.240.0.1 10.255.255.254

1 10.0.0.0 10.15.255.255 10.0.0.1 10.15.255.254 
2 10.16.0.0 10.31.255.255 10.16.0.1 10.31.255.254 
3 10.32.0.0 10.47.255.255 10.32.0.1 10.47.255.254 
4 10.48.0.0 10.63.255.255 10.48.0.1 10.63.255.254 
5 10.64.0.0 10.79.255.255 10.64.0.1 10.79.255.254 
6 10.80.0.0 10.95.255.255 10.80.0.1 10.95.255.254 
7 10.96.0.0 10.111.255.255 10.96.0.1 10.111.255.254 
8 10.112.0.0 10.127.255.255 10.112.0.1 10.127.255.254 
9 10.128.0.0 10.143.255.255 10.128.0.1 10.143.255.254 
10 10.144.0.0 10.159.255.255 10.144.0.1 10.159.255.254 
11 10.160.0.0 10.175.255.255 10.160.0.1 10.175.255.254 
12 10.176.0.0 10.191.255.255 10.176.0.1 10.191.255.254 
13 10.192.0.0 10.207.255.255 10.192.0.1 10.207.255.254 
14 10.208.0.0 10.223.255.255 10.208.0.1 10.223.255.254 
15 10.224.0.0 10.239.255.255 10.224.0.1 10.239.255.254 
16 10.240.0.0 10.255.255.255 10.240.0.1 10.255.255.254 

Ahora haremos un subneteo pero de una clase B que sera la 128.0.0.0 tambien con 7 subredes. 
Recordemos ahora la mascara de subred de la clase B: 255.255.0.0 es decir en numero binario seria: 
11111111.11111111.00000000.00000000 

Utilizaremos los numeros que hemos encontrado en el ejemplo anterior para este mismo caso, por lo 
que sabemos que tenemos que tomar 4 bits del octeto , vemos que los 2 primeros octetos estan llenos 
asi que ocuparemos el tercer octeto para trabajar. Por lo que la nueva mascara de subred nos quedaria 
de la siguiente manera. 
11111111.11111111.11110000.00000000 que en numero decimal es 255.255.240.0 

Sabemos que los saltos son de 16 numeros por lo que vimos anteriormente, asi que nuestras subredes 
quedarian de la siguiente manera. 

Numero de Subred Subred Broadcast Rango de IP's Utilizables 
1 128.0.0.0 128.0.15.255 128.0.0.1 128.0.15.254 
2 128.0.16.0 128.0.31.255 128.0.16.1 128.0.31.254 
3 128.0.32.0 128.0.47.255 128.0.32.1 128.0.47.254 
4 128.0.48.0 128.0.63.255 128.0.48.1 128.0.63.254 
5 128.0.64.0 128.0.79.255 128.0.64.1 128.0.79.254 
6 128.0.80.0 128.0.95.255 128.0.80.1 128.0.95.254 
7 128.0.96.0 128.0.111.255 128.0.96.1 128.0.111.254 
8 128.0.112.0 128.0.127.255 128.0.112.1 128.0.127.254 
9 128.0.128.0 128.0.143.255 128.0.128.1 128.0.143.254 
10 128.0.144.0 128.0.159.255 128.0.144.1 128.0.159.254 
11 128.0.160.0 128.0.175.255 128.0.160.1 128.0.175.254 
12 128.0.176.0 128.0.191.255 128.0.176.1 128.0.191.254 
13 128.0.192.0 128.0.207.255 128.0.192.1 128.0.207.254 
14 128.0.208.0 128.0.223.255 128.0.208.1 128.0.223.254 
15 128.0.224.0 128.0.239.255 128.0.224.1 128.0.239.254 
16 128.0.240.0 128.0.255.255 128.0.240.1 128.0.255.254 


Ahora surgen algunas dudas, por que no cambie el “0” que esta despues del 128 , la respuesta es muy 
facil en todas las redes de clase B, en el primer octeto donde podemos tomar prestados bits es en el 
tercero, es decir, los primeros dos octetos permanecen inmutables, por lo que no se puede mover. 
Por ultimo haremos una red de tipo c que sera la 192.1.1.0 tambien con 7 subredes. Ocupamos los 
calculos iniciales y solo tenemos que recordar la mascara de subred de la clase C la cual es 
255.255.255.0 o en numero binario: 
11111111.11111111.11111111.00000000 en el ultimo octeto tomamos los 4 bits, con lo cual la nueva 
mascara de subred quedaria de la siguiente forma: 

11111111.11111111.11111111.11110000 y en numero decimal es 255.255.255.240 , sabemos que los 
saltos son de 16 numeros ahora solo nos resta crear las subredes, con lo que quedaria de la siguiente 
manera. 


Numero de Subred Subred Broadcast Rango de IP's Utilizables 
1 192.1.1.0 192.1.1.15 192.1.1.1 192.1.1.14 
2 192.1.1.16 192.1.1.31 192.1.1.17 192.1.1.30 
3 192.1.1.32 192.1.1.47 192.1.1.33 192.1.1.46 
4 192.1.1.48 192.1.1.63 192.1.1.49 192.1.1.62 
5 192.1.1.64 192.1.1.79 192.1.1.65 192.1.1.78 
6 192.1.1.80 192.1.1.95 192.1.1.81 192.1.1.94 
7 192.1.1.96 192.1.1.111 192.1.1.97 192.1.1.110 
8 192.1.1.112 192.1.1.127 192.1.1.113 192.1.1.126 
9 192.1.1.128 192.1.1.143 192.1.1.129 192.1.1.142 
10 192.1.1.144 192.1.1.159 192.1.1.145 192.1.1.158 
11 192.1.1.160 192.1.1.175 192.1.1.161 192.1.1.174 
12 192.1.1.176 192.1.1.191 192.1.1.177 192.1.1.190 
13 192.1.1.192 192.1.1.207 192.1.1.193 192.1.1.206 
14 192.1.1.208 192.1.1.223 192.1.1.209 192.1.1.222 
15 192.1.1.224 192.1.1.239 192.1.1.225 192.1.1.238 
16 192.1.1.240 192.1.1.255 192.1.1.241 192.1.1.254
 

jueves, 11 de abril de 2013

¿Qué es Blueprint CSS? utilizado en yii framework


1. ¿Qué es Blueprint CSS?

Blueprint es un framework CSS que puede ahorrar tiempo y dolores de cabeza cuando se trabaja en un proyecto que involucra a HTML y CSS, ya sea con Rails, PHP, o simplemente trazar una página HTML. En este tutorial vamos a echar un vistazo a los trabajos internos de Blueprint y vamos a echar un vistazo a la aplicación de demostración que usa Blueprint para tener una mejor idea de cómo utilizar efectivamente utilizar el framework.
Blueprint: un marco CSS
Si usted es como yo, que en más de un desarrollador de un diseñador, entonces usted está familiarizado con el proceso de iniciar un nuevo proyecto y no saber qué hacer con su CSS. Usted sabe que su diseño probablemente cambiará a medida que el proyecto avanza, pero desea tener un diseño bonito desde el principio. Así que pasar algún tiempo escribiendo un poco de CSS que funciona en Firefox y Safari, oh espera, no te olvides de IE, cierto, cierto. A continuación, escribir algo de HTML que usted piensa que va a utilizar, y trabajar en conseguir todo el espacio se vea bien. Great! ¡Ya está! Ahora, tres días más tarde, los requisitos para su proyecto han cambiado y usted se encuentra rediseñando el diseño nuevo. Hmm ...
Ahora, incluso si usted es un diseñador estrella de rock que ya tiene todas estas cosas CSS descubierto, o si usted no está preocupado acerca de cómo su diseño cambiará con el tiempo, ya que se trabaja desde una plantilla PSD o algo así, eso no significa que que no hay nada que aprender aquí. Blueprint todavía puede proporcionar algunas herramientas para que puedas ...
Dedique su tiempo innovando, no replicante.
Este es el lema anunciado en blueprintcss.org Y creo que esto es exactamente lo Blueprint logra. Blueprint proporciona una base sólida para construir su proyecto en la parte superior de. Para ello, proporciona parámetros por defecto en todos los navegadores, de aspecto agradable tipografía por defecto, un marco de rejilla, formularios de aspecto agradable, y una hoja de estilo de impresión con impresoras construido en mente. Echemos un vistazo a cómo Blueprint alcanzar este objetivo:


2. Archivos Blueprint Fuente


  1. reset.css

    Este archivo establece los parámetros por defecto en todos los navegadores. Estoy seguro de que todos estamos familiarizados con el inicio de un nuevo proyecto, ir a nuestra página principal archivo CSS y añadir unas pocas estilos por defecto para el selector del cuerpo, como 'margin: 0; padding: 0; font-family: Helvetica, Arial, sans-serif; "o algo por el estilo. Esto es lo que hace reset.css, y más.Reinicia estilos por defecto de espacios, mesas, fuentes, etc para que pueda trabajar desde cero.

  2. typography.css

    Este archivo configura alguna tipografía predeterminada agradable. No voy a explicar todos los estilos pero he de decir que se trata de mis partes favoritas del Blueprint porque, para mí, no hay nada más desalentador que tratar de diseñar una página y ver algunas veces negro nuevo texto romano atascado en el esquina superior izquierda de la página. Ugh. Typography.css Blueprint me impide volver a ver de nuevo. El typography.css también establece algunos estilos muy bonitos alrededor tamaños de fuente, la línea de alturas-, el estilo por defecto de tablas, etc

  3. grid.css

    Este archivo se encarga de la parte de diseño de cuadrícula de plano. Vamos a echar un vistazo a las clases que se utiliza en un momento. Una cosa importante a observar con la red, por defecto se utiliza un ancho de 950px, con 24 columnas cada una con un ancho de 30px 10px y un margen entre columnas. Esto puede sonar constrictiva, pero si este no es el diseño que desee, siempre puede utilizar una cuadrícula Blueprint CSS Generator para generar un diseño de cuadrícula personalizado. Si este último párrafo completamente confundido, por favor, sigue leyendo como vamos a construir un diseño utilizando una cuadrícula en un poco. Si usted no está familiarizado con los diseños de rejilla CSS y quiere un poco de fondo, Raj Cuál CSS Framework cuadrícula debe usted utilizar para el diseño web? es una buena introducción.


  4. ie.css

    Blueprint soporta IE, así que por supuesto que necesita es propia hoja de estilo específica para cuidar de esos pequeños detalles que hacen de IE tan especial :) Lo bueno es que el Plan se ocupa de esto por usted, por lo que todos sus estilos básicos funcionará en todos los principales navegadores (creo que incluso soporta IE 5).

  5. print.css

    Este archivo establece algunos de los estilos predeterminados de impresión, por lo que las versiones impresas de su sitio se ve mejor de lo que normalmente lo haría. El archivo print.css también tiene una opción donde usted puede llenar en su nombre de dominio a fin de que los vínculos relativos se muestran entre paréntesis tras el enlace de texto en la versión impresa de la página. Sin rellenar esta sección sólo enlaces remotos se imprimirán correctamente. Echa un vistazo a la parte inferior del archivo print.css src, vinculado anteriormente.

  6. forms.css

    Este archivo proporciona buen aspecto formularios predeterminados, así como clases para notificaciones de error o incluso notificaciones de flash si está usando algo como Rails. Dado que esta es la única sección que no voy a cubrir con más detalle, he aquí algunos de los estilos por defecto del formulario en uso:
    Pruebas Blueprint Formulario
¿Significa esto que tengo que incluyen seis diferentes hojas de estilo?
Modelo No. viene con tres hojas de estilo comprimidos para las páginas HTML, que contiene screen.css # 's 1-3 y 6 de arriba, print.css y ie.css. La razón por la que se indica las diferentes partes del marco anterior es debido a que el marco es modular, cada una de esas piezas trabaja de forma independiente el uno del otro. Lo bueno de esto es que si usted decide que uno de los aspectos del Plan, como un diseño de cuadrícula, no se ajusta a su proyecto, pero usted todavía desea los beneficios de reset.css y typography.css, usted no tiene que utilizar la red, sino los otros estilos seguirá funcionando.

3. Vamos a crear un diseño con Blueprint

Book Haven
Este sitio es una idea que me había dando vueltas en mi cabeza, así que pensé que iba a traer a la vida aquí. Es un sitio donde la gente que les gusta escribir novelas como un hobby puede ir a revisar las novelas de escritores otro hobby, así como cargar su propio ser revisado.
Me doy cuenta de que todos ustedes, los diseñadores rockstar que pegó alrededor al comienzo están a punto de salir después de echar un vistazo a mi diseño, pero lo interesante de este diseño es que yo no escribí ninguna CSS para ello. Este diseño utiliza sólo estilos Blueprint y si bien no es el final de todos los diseños, proporciona una solución flexible, de aspecto agradable diseño para mi proyecto. Desde que mi diseño es probable cambio, Blueprint hace que sea fácil de actualizar mi disposición, y cuando mi sitio es completamente funcional, puedo pensar en añadir algo de mi propio estilo de hacer las cosas se ven más bonitas.

4. Break it Down

El encabezado del documento
  1. cabeza >  
  2.   meta  http-equiv "Content-type"  content "text / html; charset = UTF-8"  />  
  3.   título Book Haven </ titulo >  
  4.   
  5.   <- Marco CSS ->  
  6.     enlace  rel "stylesheet"  href "plano / screen.css"  tipo "text / css"  media"pantalla de proyección"  />  
  7.     enlace  rel "stylesheet"  href "plano / print.css"  tipo "text / css"  media ="print"  />  
  8.     <- [If IE]> <link rel="stylesheet" href="blueprint/ie.css" type="text/css" media="screen, projection" /> <[endif] ->  
  9.   
  10.     <- Importación de lujo de tipo plug-in. ->  
  11.     enlace  rel "stylesheet"  href "blueprint / plugins / fancy-type / screen.css" tipo "text / css"  media "pantalla de proyección"  />  
  12. </ cabeza >    
Así es como una etiqueta head típico debe buscar cuando usted está utilizando Blueprint. Es necesario incluir los archivos del framework CSS, que consiste en screen.css, print.css y ie.css.
Una gran cosa acerca de Blueprint: es sólo CSS, por lo que puede ser anulado como cualquier otro CSS.Así es como Blueprint trabajo plugins. En este ejemplo estoy usando el Modelo de lujo del tipo de plugin que ofrece cierta tipografía estilo elegante. Usted puede ver que he vinculado al archivo de fantasía del tipo CSS debajo archivos del framework CSS, por lo que el CSS fancy-tipo tiene la capacidad de sobrescribir estilos definidos por el marco. Para ello, hay varios plugins disponibles BP que simplemente sobrescribir los aspectos del marco o añadir nuevos estilos para que usted utilice.

Por último debe incluir el archivo CSS donde se puede sobrescribir los estilos del marco y añadir su propio estilo a la página.
El encabezado de página
Página Imagen de cabecera
    <body>
      <div class="container">

        <div id="header" class="span-24 last">

          <h1 id="book_haven"> <img src="images/header.gif" encabezado alt="Book image" id="header-image" /> </ h1>
        </ Div>

        <hr />
        <div id="subheader" class="span-24 last">
          <h3 class="alt"> obtener opiniones sobre su última novela, y leer lo que otras personas están escribiendo. </ h3>
        </ Div>

        <hr />  
  
Lo más importante a destacar en este código: Su red debe estar rodeado de un <div> con una clase de "contenedor" de lo contrario no se mostrará como una cuadrícula. Los <hr /> etiquetas son utilizadas por Blueprint para separar secciones de su página verticalmente. El 'alt' clase es traído a usted por el plugin de fantasía del tipo y proporciona una buena manera de darle vida a un texto (puede aplicarse a cualquier elemento de texto).
El contenido principal
cuerpo principal
  1. div  clase "span-17 colborder"  id "content" >  
  2.       h3  clase "fuerte" Libro destacado: "El mundo sin nosotros" </ h3 >  
  3.       >  
  4.         img  clase "right"  src "images / en todo el mundo book.gif"  alt "libro destacado"  />  
  5.         Lorem ipsum dolor sit amet, consectetuer adipiscing elit.   
  6.       </ >  
  7.       >  
  8.         Cras sagittis. Fusce porttitor felis sed Massa. En hac habitasse platea dictumst.             
  9.       </ >  
  10.   
  11.       hr  />  
  12.       div  clase "span-8 colborder" >  
  13.         h4  clase "anteponer-5" subir un libro </ h4 >  
  14.         >  
  15.           Nam vitae tortor id sodales ante facilisis.   
  16.         </ >        
  17.       </ div >  
  18.   
  19.       div  clase "span-8 último" >  
  20.         h4  clase "anteponer-5" Escribir comentario </ h4 >  
  21.         >  
  22.           Nam vitae tortor id sodales ante facilisis. Mauris ipsum.   
  23.         </ >        
  24.       </ div >  
  25.     </ div >  
  26.   
  27.     div  clase "span-6 últimos"  id "sidebar" >  
  28.   
  29.       div  id "reciente-books" >  
  30.         h3  clase "caps" Libros recientes </ h3 >  
  31.   
  32.         div  clase "caja" >  
  33.            href "#"  clase "tranquilo" Higiene </ >  
  34.           div  clase "tranquilo" noviembre 29, 2008 </ div >  
  35.           div  clase "tranquilo" por Craven </ div >  
  36.         </ div >  
  37.   
  38.       </ div >  
  39.   
  40.       div  clase "anteponer-top"  id "reciente-reviews" >  
  41.         h3  clase "caps" Comentarios recientes </ h3 >  
  42.         div  clase "caja" >  
  43.           lapso  clase "tranquilo" Thor Higiene revisada </ lapso >  
  44.           div  clase "tranquilo" Rating: 4/5 </ div >  
  45.            href "#"  clase "tranquilo" Lea esta revisión </ >  
  46.         </ div >  
  47.   
  48.       </ div >  
  49.     </ div >  
  50.   
  51.     hr  />  
Hay un montón de cosas importantes en este fragmento de código! Vamos a empezar por la parte superior con <div class="span-17 colborder">. Esta etiqueta se declara la mayor div resumidas esa página, la que contiene la sección de Libros destacados, así como las dos secciones más pequeñas de abajo. La clase 'span-17 "se refiere a la disposición de la rejilla Blueprint. Se declara que la anchura de este div debería abarcar 17 de las 24 columnas de la página. La otra clase se utiliza, "colborder ', es la abreviatura de borde de la columna y le dice Blueprint para poner un borde a la derecha de este div entre él y la barra lateral.
Importante : el uso de la "colborder" clase en realidad ocupa una columna completa. Dado que nuestro principal div utiliza 17 columnas (palmo-17), se puede esperar que la barra lateral podría ocupar siete columnas (desde el 17 + 7 = 24, el número de columnas en nuestra página), pero dado que la propiedad 'colborder' ocupa una columna a sí mismo, esto deja sólo 6 columnas de la izquierda de la barra lateral para ocupar div (17 + 1 + 6 = 24).
Antes de llegar a la barra lateral tenemos que mirar a los de dos div menor, los titulada 'Subir un libro "y" Escribir comentario ". Esto es en realidad una red Blueprint anidar otra cuadrícula Blueprint. Dado que la red interna está anidado dentro de un div que abarca 17 columnas, el ancho máximo para esta red, en lugar de 24, es de 17.
Por lo tanto, la primera div tiene 'palmo-8' de las clases y 'colborder', lo que significa que el ancho se extenderá por 8 columnas y tendrá un borde a la derecha. El segundo div aquí tiene clases "palmo-8 'y' último '. Esta es una importante parte del marco de rejilla Blueprint. La columna más a la derecha en una cuadrícula debe haber utilice el "último" de clase. Esto le dice a BP que esta es la última columna de esta red y no es necesario para hacer espacio para más. Observe cómo nos dieron la habitación por 17 columnas, para empezar, cada uno de los divs abarcó 8 columnas y la propiedad 'colborder' tomó la última columna (8 + 8 + 1 = 17).
OK, de vuelta a la barra lateral. La barra lateral div tiene clases de 'span-6' y 'últimos'. Estoy seguro de que ustedes se han enterado ahora de cómo funcionan estas clases. Esta barra lateral se completa la grilla que el principal período de div-17 comenzó. En caso de que no se dio cuenta, la clase 'palmo-#' puede tomar cualquier número entre 1 y 24, a menos que decida utilizar una red más grande, en cuyo caso el 'span-#' clase puede tener cualquier número, siempre y cuando el número es menor que el número total de columnas de la cuadrícula.
Se trata de la más simple de HTML podría llegar a demostrar la cuadrícula.
  1. div  clase "contenedor" >  
  2.       div  clase "span-24" >  
  3.           Encabezamiento  
  4.       </ div >  
  5.       div  clase "span-4" >  
  6.           Barra lateral izquierda  
  7.       </ div >  
  8.       div  clase "span-16" >  
  9.           Contenido principal  
  10.       </ div >  
  11.       div  clase "span-4 última" >  
  12.           Barra lateral derecha  
  13.       </ div >      
  14.   </ div >      
Echemos un vistazo a algunas más de las clases CSS que hemos utilizado en el diseño.
  1. 'Caps': Esta clase se utiliza en los títulos de la barra lateral. Se trae a nosotros por el plugin de fantasía del tipo y ofrece un estilo agradable para los títulos en mayúsculas.
  2. 'Box': Este es un gran día para la visualización de los elementos de lista. Se distingue fácilmente estos artículos del resto de la página y proporciona un buen margen entre los elementos y el relleno agradable para los elementos interiores.
  3. 'Tranquilo': Esta es una clase CSS que cambia el color del texto para que sea suave y gris que se ve en el texto de la barra lateral.
  4. 'Prepend-top': Esta se utiliza en la sección de "Comentarios recientes" de la barra lateral.Simplemente se aplica un margen de 1.5em a la parte superior del elemento. Hay una clase similar llamado 'append de fondo ", que tiene el mismo efecto en la parte inferior de un elemento.
  5. 'Prepend-5': Estoy utilizando esta clase para empujar los títulos de la div es menor a la derecha. En Blueprint hay varias clases de espacio: prepend, añadir, tire y empuje. Anteponer y append agregar relleno a la izquierda y derecha, respectivamente. Tire y empuje añadir un margen a la izquierda y derecha, respectivamente. Una vez más, usted puede hacer tanto añadiendo, anteponiendo, jalar y empujar lo que quieras, siempre y cuando no se utiliza un número mayor que el número total de columnas en la cuadrícula (como el prefijo-25 en una cuadrícula con 24 columnas).
    Desglose Diseño Pie
Si usted no está familiarizado con el modelo de caja CSS y no saben la diferencia entre el relleno y el margen, aquí es breve lección aa. En CSS, acolchado añade espacio dentro de las fronteras del elemento y de hecho aumenta el tamaño del elemento. Por ejemplo, si usted tiene una tabla con bordes y agregar relleno a la mesa, es realmente empujar los límites de la mesa. Margen, por el contrario, añade un espacio fuera de la frontera y no aumenta el tamaño del elemento. Esto puede tener el efecto de empuje de otros elementos fuera de la corriente de uno o mover el elemento actual de la página. He aquí una gran imagen para demostrar el modelo de caja CSS:
Modelo de cuadro de CSS
Diseño Web Introducción

5. Resumen

Este tutorial pretende mostrar cómo Blueprint CSS se puede utilizar para preparar el terreno para su próximo proyecto, o por lo menos tener algo del peso de sus hombros alrededor restablece y la tipografía.Además, si usted está usando Blueprint con Rails, echa un vistazo a su repositorio en Github , ya que tienen algunas características que le permiten integrar fácilmente y configurar Blueprint para trabajar con su proyecto Rails.
Lo mejor modelo es que es sólo CSS. Todo es CSS. Así que si usted está interesado en Blueprint ir a ver la fuente y si usted tiene algún conocimiento de CSS debe ser capaz de entender cómo funciona todo.Blueprint también no es una base de código muy grande, es probable que tenga menos CSS que la mayoría de nosotros usamos en un proyecto típico. Incluso se puede leer la fuente en su navegador a través del repositorio en Github Blueprint .
Los dejo con algunos recursos en Blueprint:
  • El sitio web está en Blueprint blueprintcss.org . Este es el lugar más fácil para descargar el framework.
  • Por defecto Blueprint utiliza un diseño fijo, si usted está a favor de diseños líquidos aquí es un plug-in que te permitirá Blueprint para funcionar con un diseño líquido.
  • Más plugins Blueprint
Fuente: http://net.tutsplus.com