WordPress es uno de los sistemas de gestión de contenidos más utilizados en todo el planeta. Su facilidad para diseñar a través de templates, distribuir contenido y crear páginas web de manera sencilla hacen que miles de creativos lo utilicen para crear sus primeras páginas web: desde portafolio, pasando por blogs, hasta portales de noticias y contenidos. Mediante este curso, aprenderás cómo diseñar y desarrollar páginas web desde cero con WordPress, aunque este sea tu primer contacto con el sistema.
os explico lo que se puede hacer con una cámara réflex y el móvil, y como hacerlo, porque lo he probado y funciona perfectamente, así que igual alguien no lo sabe y es interesante/curioso.
La idea es conectar la réflex al móvil por USB y poder controlar TODAS las funciones de la cámara desde el móvil. Es útil cuando la cámara esta en lugares donde es difícil agacharse o colocarse de forma cómoda para ver la pantalla o cambiar configuraciones.
una vez lo tenemos, instalamos la app, y simplemente conectamos el adaptador USB OTG al microUSB del movil, conectamos un cable miniUSB de la cámara al adaptador OTG (el mismo que usamos para conectar la cámara al PC y copiar fotos), y el móvil al detectar q se ha conectado la cámara nos pedirá si queremos abrir la app DSLR controller. le decimos q si y listos.
dslr-controller-app.
Si buscáis «dslr controller» en youtube podréis ver varios vídeo de gente q lo conecta y explica como funciona.
Las cámaras soportadas por ahora son las CANON EOS:
– GREAT: 1D mk IV, 5D mk II, 5D mk III, 50D, 550D, 6D, 60D, 600D, 650D, 7D, 1100D
– OK: 1D mk III, 1Ds mk III, 30D, 40D, 400D, 450D, 1000D
yo he probado con el cable del enlace que os pongo y mi 550D, y funciona perfectamente!
Enlaces Patrocinados: (regístrate o inicia sesión y no te molestarán más)
Si teneis alguna duda, preguntad!!
NOTA: esto funciona con otros móviles/tables también, pero el móvil o Tablet tiene que soportar OTG (on the go), o lo q es lo mismo, «usb host», sino no funcionara
Ionic es un framework de desarrollo de aplicaciones híbridas en HTML5 basado en AngularJS y que funciona con Apache Cordova (sí Cordova con V).
En mi opinión, sus puntos fuertes son:
Rendimiento muy bueno: sí, no es lo mismo que una aplicación nativa. Pero para un buen número de apps que hacen poco más que una aplicación web va que chuta. Y el mismo código te vale para IOS y Android.
Tiene un set de componentes visuales muy chulo y fácil de usar.
Si sabes AngularJS empezar a usarlo es inmediato.
Con este post empezamos una serie en la que elaboraremos una aplicación que presentará un listado de eventos. Utilizará unbackend en Node.js y permitirá autenticarse con Twitter.
Con ese comando lo que estamos diciendo a Ionic es que cree una aplicación básica con navegación basada en tabs, en el directorio events-app. Nos preguntará si queremos crear una cuenta ionic.io, la cual no es necesaria para poder hacer este tutorial.
¡Listo!, ahora entramos al directorio de la aplicación y la arrancamos para echarle un vistazo.
12
cd events-appionic serve
Ionic creará un servidor http y podremos abrir la página en nuestro navegador en la dirección http://localhost:8100. La idea es desarrollar utilizando el navegador y después probar en un móvil o un emulador.
Debes tener en cuenta que si vas a utilizar APIs de dispositivo (por ejemplo, el acelerómetro) tendrás que probar estas cosas en un emulador o dispositivo, ya que el navegador no implementa esto.
app-creada-1
app-creada-2
Para visualizar la aplicación con la resolución de otro dispositivo en el mismo navegador web puedes hacerlo:
En Firefox pulsando Ctrl-Shift-M.
En Chrome abriendo las herramientas de desarrollo (F12) y pulsando en el dibujito del teléfono arriba y en la izquierda.
Personalmente, suelo utilizar Firefox Developer Edition, y cuando el depurador se me queda corto me paso a Chrome un rato.
Estructura de directorios
Echemos un vistazo a los directorios que Ionic nos ha creado.
directorios
Se trata de un esqueleto web para una aplicación de Cordova, en la que se utiliza Gulp para automatización de algunas tareas yBower como gestor de dependencias frontend.
De aquí, lo importante lo tenemos en el directorio www.
directorio www
Este directorio debes verlo como el de aplicación web normal y corriente, con tres salvedades:
Puedes usar AngularJS. De hecho ya es una aplicación Angular básica con unos cuantos controladores y servicios.
Y por último, puedes usar los componentes de Ionic en forma de directivas AngularJS.
Por lo demás es lo mismo que te encontrarías en otra web. El index.html, carpetas para el CSS y JS etc.
Preparando el proyecto
Vamos a hurgar un poco en el código que viene de ejemplo y dejarlo limpito para lo que nosotros necesitamos. Que básicamente serán tres vistas: una para autenticarnos, otra para ver los eventos y otra para cerrar la sesión.
NOTA: el código tal cual lo dejamos en este paso puedes obtenerlo con:
<!DOCTYPE html><html><head><metacharset="utf-8"><metaname="viewport"content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"><title>Events App</title><linkhref="lib/ionic/css/ionic.css"rel="stylesheet"><linkhref="css/style.css"rel="stylesheet"><!-- ionic/angularjs js --><scriptsrc="lib/ionic/js/ionic.bundle.js"></script><!-- cordova script (this will be a 404 during development) --><scriptsrc="cordova.js"></script><!-- your app's js --><scriptsrc="js/app.js"></script><scriptsrc="js/controllers.js"></script><scriptsrc="js/services.js"></script></head><bodyng-app="eventsApp"><ion-nav-barclass="bar-positive"><ion-nav-back-button></ion-nav-back-button></ion-nav-bar><ion-nav-view></ion-nav-view></body></html>
app.js
El fichero JS principal. En él definimos el nombre de la aplicación (eventsApp) y tres dependencias, que son el propio framework Ionic, y servicios y controladores de la aplicación. Después configuramos el enrutador. En Ionic se utiliza Angular UI Router.
El router de Ionic difiere del router por defecto de Angular en que en este se utiliza el concepto de máquina de estados. Aquí utilizamos un estado abstracto tab y dos estados hijos: list y account. Por otra parte hay otra vista independiente, login.
Este sistema permite tener vistas anidadas. En este caso, las vistas que necesitamos (listado y configuración), se integran dentro de otra. A estas rutas les asignamos una plantilla HTML y un controlador.
El servicio que utilizaremos se encargará de proveer a la aplicación de la lista de eventos. De momento los tendrá en memoria. Más adelante se conectará al backend para obtener el listado.
Proporciona una única funcion: all. Para listar los eventos.
angular.module('eventsApp.services', []).factory('EventsService', function($http) {return { all: function() {// TODO: get events from backendvar events = [ {'speaker': 'Homer Simpson','title': 'Emprender en servicios web: Compuglobalhipermeganet','place': 'Sala 5','date': '15:00' }, {'speaker': 'Stewie Griffin','title': 'Cómo generar ingresos extra siguiendo gordos con una tuba','place': 'Salón de talleres 1','date': '17:00' }, {'speaker': 'Ralph Wiggum','title': '¡Corre plátano!','place': 'Sala 5','date': '19:00' } ];return events; } };});
controllers.js
Tenemos un controlador para el listado (que utiliza el servicio para listar los eventos), y otros para las vista de login y cuenta, que de momento no hacen nada más que mostrar un mensaje en la consola cuando se pulse un botón.
Esta directiva se utiliza para la navegación con los tabs, que son los menús que se ven en la parte de abajo.
12345678910111213
<ion-tabsclass="tabs-icon-top tabs-color-active-positive"><!-- List Tab --><ion-tabtitle="Eventos"icon-off="ion-ios-people-outline"icon-on="ion-ios-people"href="#/tab/list"><ion-nav-viewname="tab-list"></ion-nav-view></ion-tab><!-- Account Tab --><ion-tabtitle="Cuenta"icon-off="ion-ios-gear-outline"icon-on="ion-ios-gear"href="#/tab/account"><ion-nav-viewname="tab-account"></ion-nav-view></ion-tab></ion-tabs>
login.html
Desde esta vista mostraremos un botón para iniciar la sesión. Utiliza las directivas:
ion-view: para cargarse dentro del nav-view.
ion-content: un área para el contenido.
button: un botón normal corriente con ng-click=”logout()”. Al pulsarse ejecutará la función logout del controlador correspondiente.
12345
<ion-viewview-title="Autenticación"><ion-contentclass="padding"><buttonclass="button button-block button-positive"ng-click="authenticate()">Inicia sesión con Twitter</button></ion-content></ion-view>
vista de login
list.html
Igual que la vista de login, utiliza ion-view para ser cargada. Después utiliza el componente card para crear una tarjetita con la información de cada evento.
Con ng-repeat se van cargando los elementos del $scope y entre llaves van poniéndose los atributos de los objetos de eventos. Esto es AngularJS básico.
En esta primera parte del tutorial de Ionic hemos visto:
Cómo instalar Ionic.
Cómo crear el esqueleto de un proyecto y verlo en el navegador.
La estructura de una app hecha con Ionic.
En la segunda parte de esta serie veremos cómo crear un sencillo backend con Node.js y Express que permita autenticarse con Twitter y proporcione un listado de los eventos.
Responsive Design en ##http://seesparkbox.com/##seesparkbox##
Desde la llegada de HTML5 y CSS3, el Responsive Design o “Diseño Sensible” es una nueva técnica que se está empezando a utilizar cada vez más. Consiste básicamente en adaptar los diseños de las páginas web en función del tamaño de la ventana del navegador, cambiando según esta aumenta o disminuye y sin necesidad de disponer varias versiones de CSS o HTML.
Podéis ver un pequeño ejemplo si redimensionáis el blog o si lo véis en un iPad; o podéis flipar si comprobáis hasta que punto se puede utilizar esta técnica entrando a Smashing Magazine o en mi página personal.
El ejemplo que os voy a proponer es muy simple y solo cuenta con 3 pasos: Añadir un meta tag al header, añadir compatibilidad con navegadores antiguos y realizar modificaciones en el CSS.
1. Añadir el meta tag para la escala
En primer lugar debemos añadir el siguiente código entre las etiquetas “<head>” de nuestra página.
[html]<meta name=»viewport» content=»width=device-width, initial-scale=1.0″>[/html]
Básicamente lo que hace esta etiqueta es ajustar el ancho al ancho del dispositivo (sea un navegador o un dispositivo móvil) e indicar que no se debe hacer zoom inicialmente.
2. Añadir compatibilidad con navegadores antiguos
Como las versiones antiguas de Internet Explorer no soportan el meta “viewport”, debemos añadir un javascript que realice su función.
Ahora tendremos que escribir el código CSS necesario que deseamos modificar el función de la resolución. Voy a utilizar como ejemplo el CSS que yo he utilizado para desplazar la barra lateral a debajo del contenido cuando la resolución del dispositivo está entre 700px y 1000px (es decir, para que funcione en un iPad).
El funcionamiento es el mismo que si utilizásemos un condicional.
[css]
@media screen and (min-width: 700px) and (max-width: 1000px) {
/*Todo lo que añadamos aquí se utilizará solo en resoluciones X, donde 700px<=X<=1000px*/
}[/css]
Ya con el nuevo código CSS para desplazar la barra lateral para que no permita elementos flotantes a los lados y ajustar toda la maquetación a 700px tendríamos algo como lo siguiente:
[css]
@media screen and (min-width: 700px) and (max-width: 1000px) {
#container{
width: 700px;
}
Tened en cuenta que todo el código se encuentra dentro del condicional y que podríamos jugar con los valores de este de tal manera que mostremos un código a anchuras menores, mayores o entre otros dos valores. Las posibilidades son bastante extensas.
Topic: CSS3 Difficulty: Intermediate Estimated Completion Time: 1 hour Hello guys! In this tutorial I will teach you how to create a pure CSS3 Mega Menu. Mega Menus are usually used on corporate/e-commerce websites, but they become more popular because they are a great way to display/organize content. The design of this mega menu can be found on the The Bricks UI ….