Para instalar wysywyg lo he hecho desde el panel de administración, primero de la web drupal.org me he descargado el módulo y luego me he ido a la pestaña Módulos --> Instalar nuevo módulo, le he indicado donde estaba la carpeta y se ha instalado.
El segundo paso ha sido descargarme el plugin CKEditor instalarlo igual que wysywyg y luego nos descargamos el editor y descomprimimos la carpeta en sites/all/libraries,(en caso de no existir la carpeta crearla.)
Nos vamos a la pestaña módulos, buscamos los componentes instalados y los activamos, una vez hecho esto podemos entrar en cada uno y configurar su apariencia,perfiles, quien tiene acceso etc...
El Misterioso Mundo de la Programación
viernes, 17 de mayo de 2013
jueves, 16 de mayo de 2013
Modificar texto
A trabajar con algún tema , los textos que contienen no son los que necesitamos, para modificar estos textos nos vamos a la parte de Administración --> Configuración --> Traducir Interfaz, buscamos la palabra que queramos modificar editamos y la cambiamos por la nueva.
Tenemos que tener en cuenta que para poder hacer esto tenemos que tener activado el Módulo Locale.
martes, 14 de mayo de 2013
Instalando Drupal en local (Windows)
He decidido aprender Drupal, así que me instalé todo lo que necesitaba para comenzar.
Tenia instalado anteriormente el servidor XAMPP así que es el que he utilizado, primero me descargué de la url http://drupal.org/project/drupal la última versión de drupal (en mi caso la 7.22), lo descomprimí en la carpeta xampp/htdocs y renombre la carpeta que se crea a prueba, ya cada uno le pone el nombre que más le guste.
Luego me cree la base de datos, lo primero que hice fue mover la carpeta phpMyAdmin de xampp a xampp/htdosc, luego puse en la url http://localhost/phpMyAdmin y me cree la base de datos.
Una vez terminado ponemos en la url http://localhost/prueba y accedemos a la configuración de drupal, primero nos sale el idioma que queremos instalar, por defecto solo está inglés, si queremos instalarlo en español debemos irnos a la url http://drupal.org/project/es y descargarnos la versión española y lo descomprimimos en xampp\htdocs\drupal_prueba\profiles\standard\translations\ recargamos la página y ya vemos que nos sale la opción de español.
Seguimos los pasos que nos van indicando y al final poniendo localhost/prueba nos debe salir el panel de control y un tema por defecto, en el siguiente post explicaré que significa temas, módulos etc....
Tenia instalado anteriormente el servidor XAMPP así que es el que he utilizado, primero me descargué de la url http://drupal.org/project/drupal la última versión de drupal (en mi caso la 7.22), lo descomprimí en la carpeta xampp/htdocs y renombre la carpeta que se crea a prueba, ya cada uno le pone el nombre que más le guste.
Luego me cree la base de datos, lo primero que hice fue mover la carpeta phpMyAdmin de xampp a xampp/htdosc, luego puse en la url http://localhost/phpMyAdmin y me cree la base de datos.
Una vez terminado ponemos en la url http://localhost/prueba y accedemos a la configuración de drupal, primero nos sale el idioma que queremos instalar, por defecto solo está inglés, si queremos instalarlo en español debemos irnos a la url http://drupal.org/project/es y descargarnos la versión española y lo descomprimimos en xampp\htdocs\drupal_prueba\profiles\standard\translations\ recargamos la página y ya vemos que nos sale la opción de español.
Seguimos los pasos que nos van indicando y al final poniendo localhost/prueba nos debe salir el panel de control y un tema por defecto, en el siguiente post explicaré que significa temas, módulos etc....
miércoles, 24 de abril de 2013
Firmar una aplicación Android
Las aplicaciones Android deben ser firmadas con un certificado digital para poder ser instaladas, en la fase de desarrollo se firman con un certificado en modo debug, pero a la hora de ser instaladas hay que crear el propio certificado digital, que es similiar al que se utiliza para los tramites de la administración, pero no necesita una autoridad de certificación que avale los datos del certificado, la firma nos garantiza que la apk no ha sido modificado.
Vamos a ver los pasos para instalarlo desde eclipse:
Abrimos el menú Windows/Preferences/Android/Build, vemos que tenemos cargado un certificado en modo debug, que es el que se instala automaticamente, pero este no es válido para publicar una aplicación.
Para poder publicar, en el menú archivo/exportar una aplicación android, seleccionamos el proyecto que queremos firmar, y vemos que tenemos dos opciones, utilizar un certificado existente o crear uno nuevo:
Una vez que tengamos el certificado creado o elegido, en el paso siguiente vemos que se nos va a crear la apk del proyecto seleccionado y este proyecto tiene su certificado digital incorporado.
Vamos a ver los pasos para instalarlo desde eclipse:
Abrimos el menú Windows/Preferences/Android/Build, vemos que tenemos cargado un certificado en modo debug, que es el que se instala automaticamente, pero este no es válido para publicar una aplicación.
Para poder publicar, en el menú archivo/exportar una aplicación android, seleccionamos el proyecto que queremos firmar, y vemos que tenemos dos opciones, utilizar un certificado existente o crear uno nuevo:
Una vez que tengamos el certificado creado o elegido, en el paso siguiente vemos que se nos va a crear la apk del proyecto seleccionado y este proyecto tiene su certificado digital incorporado.
Sockets
La interfaz socket define las reglas que un programa ha de seguir para utilizar los servicios del nivel de transporte en una red TCP/IP. Esta interfaz se basa en el concepto de socket. Un socket es el punto final de una comunicación bidireccional entre dos programas que intercambian información a través de Internet.
Un socket se va a identificar por la dirección IP del dispositivo donde está, más un número de puerto (de 16 bits).
Vamos a ver dos tipos de socket:
Un socket se va a identificar por la dirección IP del dispositivo donde está, más un número de puerto (de 16 bits).
Vamos a ver dos tipos de socket:
- Sockets stream (TCP): los sockets stream ofrecen un servicio orientado a conexión, donde los datos se transfieren como un flujo continuo, sin encuadrarlos en registros o bloques. Este tipo de socket se basa en el protocolo TCP, que es un protocolo orientado a conexión. Esto implica que antes de transmitir información hay que establecer una conexión entre los dos sockets. Mientras uno de los socketsatiende peticiones de conexión (servidor), el otro solicita la conexión (cliente). Una vez que los dos sockets están conectados, ya se puede transmitir datos en ambas direcciones. El protocolo incorpora de forma transparente al programador la corrección de errores. Es decir, si detecta que parte de la información no llegó a su destino correctamente, esta volverá a ser trasmitida. Además, no limita el tamaño máximo de información a transmitir.
- Sockets datagram (UDP): los sockets datagram se basan en el protocolo UDP y ofrecen un servicio de transporte sin conexión. Es decir, podemos mandar información a un destino sin necesidad de realizar una conexión previa. El protocolo UDP es más eficiente que TCP, pero tiene el inconveniente que no se garantiza la fiabilidad. Además, los datos se envían y reciben en datagramas (paquetes de información) de tamaño limitado. La entrega de un datagrama no está garantizada: estos pueden ser duplicados, perdidos o llegar en un orden diferente al que se envió. La gran ventaja de este tipo de sockets es que apenas introduce sobrecarga sobre la información transmitida. Además, los retrasos introducidos son mínimos, lo que los hace especialmente interesantes para aplicaciones en tiempo real, como la transmisión de audio y vídeo sobre Internet. Sin embargo, presenta muchos inconvenientes al programador: cuando transmitimos un datagrama no tenemos la certeza de que este llegue a su destino, por lo que, si fuera necesario, tendríamos que implementar nuestro propio mecanismo de control de errores. Otro inconveniente es el hecho de que existe un tamaño máximo de datagrama, unos 1500 bytes dependiendo de la implementación. Si la información a enviar es mayor, tendríamos que fraccionarla y enviar varios datagramas independientes. En el destino tendríamos que concatenarlos en el orden correcto.
En conclusión, si deseas una comunicación libre de errores y sin preocupaciones para el programador es más conveniente que utilices sockets stream.
domingo, 7 de abril de 2013
Permisos en Android.
Para establecer permisos a una aplicación android, se hace en el archivo AndroidManifest.xml de la siguiente manera:
Los permisos mas usados en Android son:
Los permisos mas usados en Android son:
- CALL_PHONE
Servicios por los que tienes que pagar – llamar directamente a números de teléfono (muy alta) Permite realizar llamadas sin la intervención del usuario. - SEND_SMS
Servicios por los que tienes que pagar – envío SMS/MMS (muy alta) Permite a la aplicación mandar SMS. - WRITE_EXTERNAL_STORAGE
Almacenamiento – modificar/borrar archivos en SD (alta) Permites la lectura de archivos y su modificación, típico en aplicaciones de backup. - READ_OWNER_DATA
Tu información personal – leer datos de contacto (alta) Permiten leer información sobre el propietario del teléfono (nombre, correo electrónico, número de teléfono). Muy peligroso, algunas aplicaciones podrían utilizar esta información de forma no lícita. - READ_CALENDAR
Tu información personal – leer datos de calendario (moderada) Solo da este permiso si consideras que la aplicación realmente lo necesita. - WRITE_CALENDAR
Tu información personal – escribir datos de calendario (moderada) Este permiso no permite leer el calendario. Por las mismas razones que el anterior permiso, hay que plantearse si una aplicación nos pide este permiso con sentido o no. - READ_PHONE_STATE
Llamadas de teléfono - leer estado del teléfono e identidad (alta) Muchas aplicaciones piden este permiso para ponerse en pausa mientras hablas por teléfono. Sin embargo, también permite el acceso al IMEI, IMSI y al identificador único de 64 bits que Google asigna a cada terminal. En las primeras versiones de SDK este permiso no era necesario. - ACCESS_FINE_LOCATION
Tu ubicación – precisar la ubicación (GPS) (moderada) Localización basada en GPS. - ACCESS_COARSE_LOCATION
Tu ubicación – ubicación común (basada en red) (moderada) Localización basada en telefonía móvil (Cel-ID) y Wi-Fi. - BLUETOOTH
Comunicación de red crear conexión Bluetooth (baja) Conexión con otro dispositivo Bluetooth. - INTERNET
Comunicación de red – acceso íntegro a Internet (muy alta) Permite establecer conexiones a través de Internet. Este es posiblemente el permiso más importante, en el que más hay que fijarse a quién se le otorga. Muchas aplicaciones lo piden, pero no todas lo necesitan. Cualquier malware necesita una conexión para poder enviar datos de nuestro dispositivo. - ACCESS_WIFI_STATE
Comunicación de red – ver estado de conexión, ver estado de Wi-Fi(baja) Información sobre redes WiFi disponibles. - WAKE_LOCK
Herramientas del sistema – Impedir que el teléfono entre en modo de suspensión (baja) Algunas aplicaciones pueden necesitar de este permiso, y realmente a lo único que puede afectar es a nuestra batería. - CHANGE_CONFIGURATION
Herramientas del sistema – Modificar la configuración global del sistema (moderada) Permite cambiar la configuración (como locale). Pese a que es importante en sí, es muy común, así por ejemplo los widgets lo necesitan. - READ_SYNC_SETTINGS
Herramientas del sistema – leer ajustes de sincronización (baja) tan solo permite saber si tienes sincronización en segundo plano con alguna aplicación (como con un cliente de Twitter o Gmail). - WRITE_APN_SETTINGS
Herramientas del sistema – Escribir configuración del Punto de Acceso (moderada) Permite la configuración del punto de acceso a la red. Por ejemplo, encender y a apagar tu conexión de red o Wi-Fi. - MANAGE_APP_TOKENS
Herramientas del sistema – recuperar aplicaciones en ejecución(moderada) Permite saber qué aplicaciones están corriendo en segundo plano y cambiar el orden. - SET_PREFERRED_APPLICATIONS
Herramientas del sistema – establecer aplicaciones preferidas(moderada) Permite la asignación a una aplicación para que haga determinada tarea. Por ejemplo, la reproducción de vídeos. - VIBRATE
Controles de hardware – control de la vibración (baja) Permite hacer vibrar al teléfono. Los juegos lo suelen utilizar bastante. - CAMERA
Controles de hardware – realizar fotografías (baja) Permite acceso al control de la cámara y a la toma de imágenes. - RECORD_AUDIO
Controles de hardware – grabar audio (moderada) Permite grabar sonido desde el micrófono del teléfono.
jueves, 28 de marzo de 2013
Manejadores de Eventos
Android captura los distintos eventos de usuario de forma homogénea y se los pasa a la clase encargada de recogerlos para ello se utiliza un objeto de tipo View y dispone de dos técnicas para recoger los eventos:
- Escuchadores de eventos (Event Listener) : es una interfaz de la clase View que contiene un método callback que ha de ser registrado,este método será llamado por Android cuando se produzca la acción correspondiente. Para registrar un escuchador disponemos de dos formas:
- - Button boton = (Button)findViewById(R.id.boton);
- boton.setOnClickListener( new OnClickListener() {
public void onClick(View v) {
// Acciones a realizar
}
});
- - La segunda alternativa consiste en implementar la interfaz OnClickListener como parte de tu clase y recoger los eventos en el método onClick(). public class Ejemplo extends Activity implements OnClickListener{ protected void onCreate(Bundle savedValues) { Button boton = (Button)findViewById(R.id.boton); boton.setOnClickListener(this); } public void onClick(View v) { // Acciones a realizar } }
Diferentes escuchadores de eventos:
- onClick():Método de la interfaz View.OnClickListener. Se llama cuando el usuario selecciona un elemento. Se puede utilizar cualquier medio como la pantalla táctil, las teclas de navegación o eltrackball.
- onLongClick():Método de la interfaz View.OnLongClickListener. Se llama cuando el usuario selecciona un elemento durante más de un segundo.
- onFocusChange():Método de la interfaz View.OnFocusChangeListener. Se llama cuando el usuario navega dentro o fuera de un elemento.
- onKey():Método de la interfaz View.OnKeyListener. Se llama cuando se pulsa o se suelta una tecla del dispositivo.
- onTouch():Método de la interfaz View.OnTouchListener. Se llama cuando se pulsa o se suelta o se desplaza en la pantalla táctil.
- onCreateContextMenu():Método de la interfaz View.OnCreateContextMenuListener. Se llama cuando se crea un menú de contexto.
- Manejadores de eventos (Event Handler):Si estás creando un descendiente de la clase View, podrás utilizar varios métodos (callback) directamente usados como manejadores de eventos por defecto (Event Handlers). En esta lista se incluye:
- onKeyDown(int keyCode, KeyEvent e) Llamado cuando una tecla es pulsada.
- onKeyUp(int keyCode, KeyEvent e) Cuando una tecla deja de ser pulsada.
- onTrackballEvent(MotionEvent me) Llamado cuando se mueve el trackball.
- onTouchEvent(MotionEvent me) Cuando se pulsa en la pantalla táctil.
- onFocusChanged(boolean obtengoFoco, int direccion, Rect prevRectanguloFoco) Llamado cuando cambia el foco.
Suscribirse a:
Entradas (Atom)
