Videotutoriales sobre Swift

SwiftHace ya un tiempo que Apple presentó su nuevo lenguaje de programación, Swift, para terminales móviles, el cual causó un gran revuelo y supone un nuevo paso para la completa integración de todo a través de aplicación para móvil.

El propio Apple puso a disposición de todo el que quisiese una web desde la que colgó algunos recursos como una primera guía de aprendizaje y desde donde tendremos acceso a toda la comunidad y un blog con el que poder informarse sobre las últimas actualizaciones.

Sin embargo, cuando más se aprende es compartiendo experiencias con otros usuarios que se han pegado con el lenguaje y han podido tener problemas parecidos. Por eso,  es conveniente conocer programadores ya expertos en Swift que nos ayuden a empezar y que mejor que mediante videotutoriales.

El canal de Skip Wilson nos ofrece un videotutorial para principiantes, otro más completo para aprender todo lo necesario sobre Swift y otro mucho más práctico sobre la creación de aplicaciones para iOS. El problema es que está en inglés, por lo que debemos tener un gran nivel con este idioma para seguir con todo detalle la serie de vídeos.

Para los que prefieren videotutoriales en español, pueden empezar con jotajotavm, que posee una serie de vídeos basados en Swift, que empiezan desde cero, pasando por la herencia y objetos e incluyendo aspectos de diseño y librerías para aplicaciones. Se tratan de vídeos cortos fáciles de ver con el que afianzar nuestra base y atrevernos a programar aplicaciones.

Existen otros canales que mediante las plataformas de vídeo exponen sus conocimientos sobre Swift, ¿qué otros canales conoces tú?

Publicado el

Biblioteca de libros de programación en español

Si hay una cosa importante para ser un buen desarrollador es conocer el inglés de tal manera que puedas leer documentación y manuales en la lengua de Shakespeare, pero si no es así o prefieres tener manuales en español, te convendría disfrutar de la biblioteca que se está montando en GitHub con todo tipo de recursos para la programación, tanto de lenguajes, PHP, Javascript, CSS, como metodología, bases de datos y algoritmos.

La iniciativa no solo esta en español, sino que dispone de de bastante idiomas, por supuesto en inglés, pero también alemán, italiano, portugués, ruso y otros muchos. Además esta abierta a las nuevas contribuciones, por lo que el número de recursos probablemente siga creciendo.

Podemos encontrar estos recursos en versión web, otros en PDF y por supuesto podremos adjuntar nuestra ayuda siguiendo las instrucciones convenientes para seguir aumentando esta comunidad.

A la par se está intentando crear una sección que incluya podcasts sobre programación, aunque actualmente solo está disponible en checo e inglés y no tienen mucho contenido, pero promete convertirse también en una referencia.

Podéis disfrutar de todos los recursos en inglés y español.

Publicado el

Añadir anuncios entre párrafos

anuncios

Si existe algún tipo de anuncio que me ha funcionado especialmente bien en todas las webs que he tenido, ha sido la inclusión de pequeños bloques de anuncios entre el contenido de los artículos. Pero a veces, principalmente dependiendo del tipo de plantilla, es bastante difícil colocar los anuncios de esa forma, por eso, tras mucho tiempo haciéndolo de una manera poco ortodoxa, he encontrado una pequeña función que soluciona drasticamente este problema.

Lo único que hay que hacer es copiar el código de más abajo en el archivo functions.php de nuestro WordPress e implementar en el lugar correcto el código del anuncio que queremos incluir entre el contenido.

/*
@author Brad Dalton - WP Sites
@link http://wpsites.net/web-design/ads-specific-paragraph-single-posts/
*/
add_filter( 'the_content', 'wpsites_adsense_middle_content' );
function wpsites_adsense_middle_content( $content ) {
if( !is_single() )
 return $content;
 $paragraphAfter = 2; //Número del párrafo después del que quieres que aparezca el anuncio
 
 $content = explode ( "</p>", $content );
 
 $new_content = '';
 
 for ( $i = 0; $i < count ( $content ); $i ++ ) {
 
   if ( $i == $paragraphAfter ) {
 
     $new_content .= '' //Dentro de las comillas introduces el código del anuncio
 
     $new_content .= $content[$i] . "</p>";
 
   }
 
 return $new_content;
 
 }

Puedes visitar el GitHub del creador de este fragmento de código, https://gist.github.com/braddalton/5487953


Tipos enum en Java

Si hay un desconocido en el lenguaje Java que resulta altamente efectivo cuando sabemos utilizarlo es, sin duda, los tipos enum. Los tipos enum son un tipo de dato definidos por el propio usuario en los que solo se pueden tomar los valores que se encuentran en un lista.

Se declaran como si de una clase a parte se tratase, en un propio archivo dándole nombre representativo a lo que va a albergar, por ejemplo Nivel, ejemplo presente en este artículo. Como indica el nombre, este tipo de dato enumerado tendrá variables relacionadas con niveles de algún tipo.

public enum Nivel {
    FACIL(10, -1),
    MEDIO(15, -2),
    DIFICIL(20, -3),
    IMPOSIBLE(30, -4);
 
    private final int numeroAlienigenas;
    private final int velocidadAlienigenas;
 
    Nivel(int numeroAlienigenas, int velocidadNavesAlienigenas) {
        this.numeroAlienigenas = numeroAlienigenas;
        this.velocidadAlienigenas = velocidadNavesAlienigenas;
    }
 
    public int getNumeroAlienigenas() {
    	return this.numeroAlienigenas;
    }
 
    public int getVelocidadAlienigenas() {
    	return this.velocidadAlienigenas;
    }
 
}

Como se puede apreciar en el ejemplo de arriba, se trata de un tipo enum con dos variables, el numero de alienígenas y la velocidad de sus naves. Desde el resto de las clases queremos acceder a los datos de los alienígenas tan solo debemos nombrar al tipo de nivel que queremos acceder, FACIL, MEDIO…. y recuperar la variable que queremos usar, por ejemplo:

switch(nivel){
            case 1:
                setNumEnemigos(Nivel.FACIL.getNumeroAlienigenas());
                NaveEnemiga.setDX(Nivel.FACIL.getVelocidadAlienigenas()); 
                break;
            case 2:
                setNumEnemigos(Nivel.MEDIO.getNumeroAlienigenas());
                NaveEnemiga.setDX(Nivel.MEDIO.getVelocidadAlienigenas());
                break;
            case 3:
                setNumEnemigos(Nivel.DIFICIL.getNumeroAlienigenas());
                NaveEnemiga.setDX(Nivel.DIFICIL.getVelocidadAlienigenas());
                break;
            case 4: 
                setNumEnemigos(Nivel.IMPOSIBLE.getNumeroAlienigenas());
                NaveEnemiga.setDX(Nivel.IMPOSIBLE.getVelocidadAlienigenas());
                break;
            default:
            	setNumEnemigos(Nivel.FACIL.getNumeroAlienigenas());
                NaveEnemiga.setDX(Nivel.FACIL.getVelocidadAlienigenas()); 
                break;

Las posibilidades son infinitas y es una buena opción de cara a crear grandes estructuras de datos organizadas por tipos, véase el ejemplo de los niveles, tal vez donde se puede apreciar de manera más claro, pero también podemos organizar características que compartan un objeto o un tipo de objeto, por ejemplo, un diccionario, en el podemos organizar algunas palabras que determinemos en diferentes idiomas.

La potencia y distintas posibilidades que tienen hacen que podamos usarlo y evitarnos que dentro de las clases tengamos que definir arrayList que distorsionan la limpieza del código y se convierten en grandes listas difíciles de apreciar y de organizar.


Tests online de java

java

Siempre que hacemos una entrevista de trabajo para optar a un puesto que nos pida controlar sobre algún lenguaje de programación, o cuando nos estamos preparando alguna certificación sea cuál sea el nivel de esta, debemos saber responder a preguntas de estricto conocimiento teórico.

Dependiendo del nivel que nos exijan habrá preguntas que nunca nos hayamos planteado o preguntas liosas que nos generen muchas dudas, el caso es que antes de eso tenemos que llevar una buena preparación.

Para ello es bueno poder, a parte de conocer el lenguaje, cosa que se presupone, enfrentarnos a posible preguntas para tener más soltura y saber a que nos enfrentamos. Preguntas teóricas que siempre pueden generarnos dudas o que no nos hemos planteado cuando estamos desarrollando.

Os traigo unos cuantos sitios donde podéis evaluaros con bastantes tests sobre Java:

Wiziq
Indiabix
Java