martes, 31 de diciembre de 2013

Configurar la interface Negra en NetBeans

Probado es NetBeans 7.3 y 7.4

Tan solo deberemos ir al menú superior, y allí seleccionar Tool y Options

Una vez allí seleccionar MiscellaNews y Windows, en la esquina inferior izquierda tenemos un botón que pone import, deberemos pulsarlo e importar la configuración de colores deseada, si es que queremos una en concreto, para usar la que viene por defecto basta con seleccionar Nibus en el desplegable, Nibus Windows para la versión 7.3


Para instalar el pluging deberemos tenerlo descargado, podemos hacerlo desde:
http://plugins.netbeans.org/plugin/46003/?show=true
Ir una vez mas a Tool> y allí a Pluging
Allí a Downloaded y presionaremos el botón de Add Plugins
 Nos pedirá confirmación para instalarlo y listo A disfrutarlo ;)



warning: LF will be replaced by CRLF in git

Para todos los que usamos git, y colaboramos con gente que usa distintos sistemas Operativos (Windows, Mac) posiblemente nos de algún error de este tipo:

warning: LF will be replaced by CRLF in Assets/Materials/05
Es tan solo por la terminación del documento, que cada S.O. lo trabaja de una manera, lo podemos solucionar tecleando la siguiente linea, en una consola de comandos git
git config core.autocrlf false

Mostrar el número de linea en XCode

Para mostrar el número de linea en XCode es tan sencillo, como ir a XCOde, seleccionar Preferences.

Y en la ventana que se nos abre ir a Text Editing y allí marcar la casilla de Line numbers


sábado, 28 de diciembre de 2013

mostrar botón ver servidor ckeditor drupal

Para mostrar el botón ver servidor a la hora de intentar subir una imagen desde el CkEditor en Drupal, deberemos ir a la siguiente ruta:
  • admin/config/content/ckeditor/edit/Advanced
y después a:
  • admin/config/content/ckeditor/edit/Full
Así dejaras preparados los 2 perfiles

lunes, 23 de diciembre de 2013

Los bucles While y do- while - IOS

Los bucles While y do- while son muy similares también a los del resto de lenguajes. Su sintaxis es:

    while (<#condition#>) {
        <#statements#>
    }
    
    do {
        <#statements#>

    } while (<#condition#>);

Un par de ejemplos son:
    BOOL condicion = YES;
    
    while (!condicion) {
        NSLog(@"Condicion falsa");
        condicion = YES;
    }
    
    do {
        condicion = NO;
        NSLog(@"Condicion verdadera");
    } while (condition);

Podeis descargarlos desde:

bucle for in - IOS

El bucle for in en IOS es muy similar al de otros lenguajes. Su sintaxis es:

    for (<#type *object#> in <#collection#>) {
        <#statements#>

    }

Aqui os dejo un ejemplo

    NSArray *array =[[NSArray alloc] initWithObjects: @"texto1", @"texto2",@"texto3",@"texto4", nil];
    
    for (NSString *cadena in array) {
        NSLog(@"%@", cadena);
    }


Podeis descargarlo desde:
IOS-bucle-for-in

Bucle for - IOS

El bucle for en IOS es muy similar al del resto de lenguajes. Su sintaxis es:

    for (<#initialization#>; <#condition#>; <#increment#>) {
        <#statements#>

    }

Aqui os dejo un ejemplo:

    for (int i = 0; i<5; i++) {
        NSLog(@"Entra: %i", i);
    }

Aqui os dejo un ejemplo:

conditional switch - IOS

El conditional switch también es muy similar al de otros lenguajes, su sintaxis es:

    switch (<#expression#>) {
        case <#constant#>:
            <#statements#>
            break;
            
        default:
            break;

    }

Aqui teneis un ejemplo:

    int caso = 3;
    
    switch (caso) {
        case 1:
            NSLog(@"Estoy en el caso 1");
            break;
        case 2:
            NSLog(@"Estoy en el caso 2");
            break;
        case 3:
            NSLog(@"Estoy en el caso 3");
            break;
        default:
            NSLog(@"Caso sin identificar");
            break;
    }

Os dejo un ejemplo en:

Condicional If - IOS

El conditional if es muy similar al de cualquier otro lenguaje. Su sintaxis es la siguiente:

if(condicion){
    codigo a ejecutar
}

podemos verlo en los siguientes ejemplos:
    BOOL correcto = NO;
    
    if (correcto) {
        NSLog(@"correcto");
    }else{
        NSLog(@"No es correcto");
    }
    
    int numero = 2;
    if (numero < 2) {
        NSLog(@"Numero menor que 2");
    }else if (numero>2){
        NSLog(@"Numero mayor que 2");
    }else{
        NSLog(@"Numero es igual a 2");
    }



Un ejemplo en:
IOS-condicional-if

Tipos de variables en IOS

Tipos escalares

  • int Valor entero comprendido entre +/- 2.147.483.647.
  • float Valor en coma flotante comprendido entre +/- 16.777.216.
  • double Valor en coma flotante comprendido entre +/- 2.147.483.647
  • long Valor entrero con un tamaño que varia entre 32 bits y 64 bits, dependiendo de la arquitectura
  • long long Valor entero de 64 bits.
  • char Un unico caracter. Tecnicamente se representa como un int
  • BOOL Valor booleano, que puede tener los valores SI o NO.
  • NSInteger Cuando se compila en una arquitectura de 32 bits es lo mismo que un int, y cuando se hace en 64 bits puede tener un valor comprendido entre 0 y 2^64.
  • NSUInteger Cuando se compila en una arquitectura de 32 bits es lo mismo que un unsigned int y cuando se hace en 64 bits puede tener un valor comprendido entre 0 y 2^64.
La forma de declarar e inicializar una variable es:
Tipo Nombre = valor;

ej: int numeroEntero = 2;

Podemos ver un ejemplo en:
Tipos de variables

Otros tipos de datos son:


  • NSString Cadena de caracteres
Ej: NSString *cadena = @"cadena de caracteres";
    Se declara con el * delante ya que es un objeto, y estamos apuntando a su posicion de memoria.
    Se inicializa con el @ delante ya que es una forma abreviada de hacerlo.
EJ: cadena = [NSString stringWithFormat: @"Entero: %i", entero];
Es una forma de asignar valor al string concatenando variables

  • NSArray
  • NSMutableArray Coleccion ordenada de objetos accesibles mediante un indice
en un NSArray NO podemos añadir nuevos elementos.

Ej: NSArray *array = [[NSArray alloc] initWithObjects:@"Texto 1", @"texto2", nil];
    Hay que poner un nil (nulo) al final para avisar de que el array termina ahi,
    El alloc se usa para reservar el espacio en memoria

Si solo quisieramos declararlo sin datos:
NSArray *array = [[NSArray alloc] init];

Ej: NSMutableArray *mutableArray = [[NSMutableArray alloc] init];
[mutableArray addObject:@"texto 1"];

Es la forma de añadir nuevos objetos al MutableArray, al array NO se puede

  • NSDictionary
  • NSMutableDictionary Nos permite crear estructuras de datos sin necesidad de crear subclases
Con el Dictionary pasa lo mismo que con el array, si no es mutable no se puede modificar a posteriory

Ej: NSDictionary *diccionario = [[NSDictionary alloc] initWithObjectsAndKeys:cadena, @"int",nil];
NSLog(@"%@" ,[diccionario objectForKey:@"int"]);
NSMutableDictionary *mutableDictionary = [[NSMutableDictionary alloc] init];

[mutableDictionary setObject:cadena forKey:@"String"];
[mutableDictionary setObject:cadena forKey:@"String2"];
[mutableDictionary setObject:cadena forKey:@"String3"];

NSLog(@"%@",mutableDictionary); 
    Imprime el dictionary entero

Podemos ver un ejemplo en:
Otros Tipos de variables

domingo, 22 de diciembre de 2013

Etiquetas duplicadas en IE-8 - Drupal

Hace  unos días me encontré con un error que me trajo de cabeza, abría mi web en cualquier navegador moderno y funcionaba a la perfección, pero en IE8 hacia cosas muy extrañas, todo indicaba a que mi JavaScript tenia alguna función no compatible con Internet Explorer 8, después de revisarlo y hacer varios cambios seguía igual, o muy parecido, con el inspector de la pagina veo que solo en IE8 me aparecían varias etiquetas que yo no había añadido, me había duplicado etiquetas div, y lo peor me las duplicaba con el mismo ID por lo que mi JS se volvía loco y no sabia por donde atacar, no entendía por que, que razón podía tener IE8 para duplicarme etiquetas?, encontré el enlace que os dejo aquí:

viernes, 6 de diciembre de 2013

Fuentes personalizadas en nuestras webs

Para agregar una fuente personalizada (que no tenga el usuario instalada en su sistema como pueden ser las tipicas como Arial) deberemos declararla en nuestros estilos; para ello:

@font-face {
    font-family: "Nombre de nuestra fuente";
    src: url(Ruta de nuestra fuente/Nombre del archivo.otf) format('opentype');
}

y despues declararla en nuestros estilos como si fuera cualquier otra:

font-family: "Nombre de nuestra fuente";
Los unicos tipos de fuente compatibles con todos los navegadores son: TTF y WOFF
Para usar un TTF tendremos que poner el formato como sigue:
format('TrueType');

Tambien es recomendable no cargar una fuente personalizada, ya sea por url desde Google Fonts u otro site, o desde nuestro propio servidor, si el usuario ya tiene la fuente en cuestion en su dispositivo, para ello deberemos llamarla del sigueinte modo:
src: local("Nombre de la Fuente")

Todo junto seria algo asi:

@font-face {
    font-family: "Nombre de nuestra fuente";
    src: local("Nombre de nuestra fuente"), url(Ruta de nuestra fuente/Nombre del archivo.otf) format('truetype');
}

Aqui os dejo un ejemplo:

body{
    font-family: "FiraOpenType";
}

@font-face {
    font-family: "FiraOpenType";
    src: url(FiraSansOT/FiraSansOT-Regular.otf) format('opentype');
}

Para esto mismo es muy interesante que veais Google Fonts