Advanced REST client
El Advanced Rest Client es una extensión de Chrome. Su función es permitir lanzar peticiones a servicios web o APIs RestFul. Se puede hacer cualquier tipo de petición: GET, POST, PUT, DELETE…. Permitiendo pasar parámetros a las peticiones y muestra el resultado devuelto por el servicio que queremos probar.
Lo puedes descargar aguí.
Captura de la pantalla principal:
Cómo acceder al ResourceBundle en un action Struts
A continuación se muestra un ejemplo en el cual se accede al ResourceBundle en un action de struts.
public static String getLocalizedMessage(HttpServletRequest request, String messageKey) { //Obtenermos el MessageResources de la request. MessageResources messageResources = (MessageResources) request.getAttribute(Globals.MESSAGES_KEY); String localizedMessage = null; if(messageResources != null) { //buscamos la key deseada en la request. localizedMessage = messageResources.getMessage( request.getLocale(), messageKey); } if(localizedMessage == null) { localizedMessage = ""; } return localizedMessage; } //Ejemplo de uso //(suponemos que en el properties tenemos la key: key.welcome=bienvenido) getLocalizedMessage(request, "key.welcome");
Como usar la API de Twiter (parte 2)
A continuación, se muestra un ejemplo de como usar la API de Twiter con PHP.
En primer lugar comentar que se va a utilizar la librería TwitterAPIExchange. Esta librería contiene las funciones necesarias para conectar la API con los credenciales del usuario y realizar de una manera sencilla las operaciones deseadas.
Variable settings con los tokens a usar:
$settings = array( 'oauth_access_token' => "", 'oauth_access_token_secret' => "", 'consumer_key' => "", 'consumer_secret' => "" );
Ejemplo 1: Listar los ids de los amigos que tiene el usuario robertopf81
//DOC: https://dev.twitter.com/docs/api/1.1/get/friends/ids function listIdsFriends($usuario, $settings){ ini_set('display_errors', 1); require_once('TwitterAPIExchange.php'); $url = 'https://api.twitter.com/1.1/friends/ids.json'; $getfield = '?cursor=-1&screen_name='.$usuario.'&count=5000'; $requestMethod = 'GET'; $twitter = new TwitterAPIExchange($settings); $json = $twitter->setGetfield($getfield)->buildOauth($url, $requestMethod)->performRequest(); return $json; } //ahora la utilizariamos así: $friends = listIdsFriends("robertopf81", $settings); $jsonFriends = json_decode($friends); $num_friends = count($jsonFriends->ids); for($i=0; $i<$num_friends; $i++){ $user = $jsonFriends->ids[$i]; echo "Friend ". ($i+1) . ": " . $user . "
"; }
Ejemplo 2: Seguir a un nuevo amigo llamado usuarioaseguir.
//DOC: https://dev.twitter.com/docs/api/1.1/post/friendships/create function follow($usuario, $settings){ ini_set('display_errors', 1); require_once('TwitterAPIExchange.php'); $url = 'https://api.twitter.com/1.1/friendships/create.json'; $requestMethod = 'POST'; $postfields = array( 'screen_name' => $usuario,'follow' => "true" ); $twitter = new TwitterAPIExchange($settings); return $twitter->buildOauth($url, $requestMethod)->setPostfields($postfields)->performRequest(); } //ahora la utilizariamos así: $respuesta = follow("usuarioaseguir", $settings); echo $respuesta; $json = json_decode($respuesta); echo ''; echo "Usuario: ".$json->name." (@".$json->screen_name.")"; echo "
"; echo "ID USER: ".$json->id_str; echo "
"; echo "Fecha Envio: ".$json->created_at;
Se han dejado en github estos ejemplos y alguno más: ver aquí.
Como usar la API de Twiter (parte 1)
Si tienes una cuenta de twiter y quieres realizarte una aplicación personalizada que utilice toda la información que hay en twiter (número de seguidores, amigos, tweets, etc), la gente de Twiter nos facilita una serie de llamadas rest que podemos utilizar para interactuar con ellos. Más información aquí.
En primer lugar decir que a día de hoy la versión de la API de twitter es la 1.1 (la 1.0 ya está deprecada). Esta versión 1.1 requiere usar autentificación OAUTH, de otra forma no podremos poner a funcionar la aplicación.
Por lo tanto para poder utilizar la api se deben seguir estos pasos:
1/ Crear una cuenta de desarrollador: esto se hace en https://dev.twitter.com/
2/ Una vez creada la cuenta de desarrollador ya podrás crear una nueva aplicación en la zona de «Mis Aplicaciones«.
3/ Tras crear la aplicación lo siguiente es crear los Tokens de acceso. (API keys y Access Tokens)
4/ Llegados a este punto ya podriamos utilizar la api. Existen ya un gran número de librerias que nos facilitaran el uso del api twiter para no tener que implementarlo de cero. Además, hay librerías para casi cualquier lenguaje posible. (Ver aquí)
Codemotion ES: Feliz 15 aniversario, SQL Injection
Charla impartida por Chema Alonso en el Codemotion del 2013. Habla sobre el SQL Injection.
Saber que tipo de memoria RAM tengo instalada en windows
Si deseas saber el tipo de memoria RAM que tienes instalada sin necesidad de abrir tu pc. En windows, desde la consola de comandos (CMD), puedes ejecutar la siguiente sentencia:
wmic memoryChip list
De esta forma se te mostrará un listado con la información referente a los distintos módulos de memoría que hay instalados en tu equipo.
Plugin xml Sitemaps para WordPress
En primer lugar está bien definir en que consiste un sitemap o mapa de un sitio web. Se puede ver en la wikipedia.
Si tienes una página realizada con wordpress debes saber que tienes unos cuantos plugins que te generan el sitemap. Entre ellos me gustaría destacar el Google XML Sitemaps que se puede descargar de aquí.
Permite configurar a través de WordPress el sitemap de tu web, accediendo para ello al menú de “Ajustes” del panel de administración del WordPress. Una vez configurado el plugin se encargará de actualizar automáticamente tu sitemap y notificar esta actualización a los robots de los principales buscadores (Google, Yahoo, Bing y Ask) que así sabrán que deben volver a visitarte porque hay novedades.
Videotutoriales para aprender a programar IOS
A continuación se muestran unos videos bastante interesantes para iniciación de programación en iOS 7.
Capítulo 1:
Capítulo 2:
Capítulo 3:
Capítulo 4:
Capítulo 5:
Concatenar múltiples filas de una columna en una sentencia SQL para Oracle
Ejemplo:
Tenemos 1 tabla llamada ciudades, con los campos: id, nombreCiudad y nombrePais. Y queremos sacar un listado de todos los paises con sus ciudades concatenadas separadas por una coma. Para ello bastaria con ejecutar esta sentencia:
Select nombrePais, rtrim(xmlagg(xmlelement(ciudades, nombreCiudad ||’,’)).extract(‘//text()’), ‘,’)
from ciudades group by nombrePais;
Funciones utilizadas
rtrim – Se usa para quitar la la última coma de la cadena formada.
xmlagg – Retorna una colección de nodos en formato XMLFormat object, con todas las ciudades de cada pais (ya que hemos agrupado por pais en el group by).
xmlelement – Se utiliza para generar el formato que van a tener los nodos. El primer campo el es identificador del tag que se le asigna dentro del xml y el segundo campo el contenido de ese tag.
extract – En este caso se usa para extraer del docuemtno xml generado el texto.
Nota: Si en lugar de campos separados por comas se deseara separar las ciudades con saltos de línea se podría hacer lo siguiente:
Select nombrePais, rtrim(xmlagg(xmlelement(ciudades, nombreCiudad || CHR(13) || CHR(10))).extract(‘//text()’), CHR(13) || CHR(10))
from ciudades group by nombrePais;
Instalar linux mediante memorias USB
Para instalar un Sistema Operativo Linux desde una memoria USB o pendrive se puede utilizar la herramienta: Universal USB Installer.
Universal USB Installer te permite escoger qué distribución Linux instalar. Para ello basta con descargar la ISO si no la tienes y crear un espacio en la memoria USB donde guardar tus documentos y archivos. Como ventajas se pueden resaltar:
– Es compatible con las principales versiones de Linux
– Es muy fácil de usar
– Es portable, no necesita instalación
Categorias
- adobe (2)
- agile (1)
- Alfresco (1)
- Android (26)
- Angular (6)
- angularjs (10)
- apache (1)
- axis (2)
- Bases de datos (14)
- Bootstrap (1)
- C# (3)
- Cámara (1)
- chrome (3)
- Codeigniter (2)
- Control de Versiones (2)
- CSS (25)
- CVS (1)
- Django (9)
- Django Rest Framework (1)
- DNS (1)
- Docker (3)
- dominio (1)
- eclipse (5)
- Entity Framework (2)
- ETL (1)
- Firefox (6)
- flash (1)
- freecad (1)
- Git (12)
- GitHub (4)
- gpg (2)
- Groovy (1)
- Handlebars (1)
- hibernate (4)
- hosting (1)
- HTML (50)
- HTML 5 (26)
- Impresión 3D (9)
- Inkscape (1)
- IOS (2)
- ireports (3)
- Java (44)
- Javascript (55)
- JBoss (5)
- JPA (2)
- JQuery (20)
- Json (7)
- JSP (6)
- Keycloak (1)
- Lamp (1)
- LDAP (2)
- lean (1)
- linkedin (1)
- LINQ (1)
- linux (13)
- Livecycle (1)
- log (1)
- microcontroladores (1)
- MongoDB (4)
- MySQL (8)
- Node.js (5)
- OC4J (1)
- Openshift (2)
- Oracle (6)
- Patrones de Diseño (1)
- Photoshop (2)
- php (20)
- PostgreSQL (1)
- python (19)
- rabbitmq (1)
- Raspberry PI (13)
- Raspherry PI (5)
- React (6)
- seguridad (3)
- Selenium (3)
- Sencha Touch (1)
- Sin categoría (29)
- Spring (17)
- spring-boot (3)
- SQL (7)
- SQLServer (1)
- SSO (1)
- struts (2)
- SVN (1)
- Talend (1)
- Tomcat (6)
- unity (3)
- Visual Studio Code (2)
- vmware (5)
- Web Services (11)
- windows (18)
- wordpress (10)
- Xiaomi (1)
- xml (2)
Trabajos Realizados
- App Android – Autoka Fr
- App Android – Cartelera Cántabra
- App Android – Gramática y Vocabulario Ingles
- App Android – Hoja de Gastos
- App Android – Hotel Torre Cristina
- App Android – OcioEnjoy
- App Android – Visor CardBoard
- App Firefox – Managapp
- DiamanteBomba – DisasterCode
- Generador de Partes de Trabajo
- GitHub – Android Web Generator
- GitHub – Dynamic Angular Gallery
- GitHub – Dynamic React Gallery
- GitHub – Sotilizator
- GitHub – SpringAngularJS
- GitHub – Swiper Dynamic Angular Gallery
- HazParejas – DisasterCode
- RompeCabezas – DisasterCode
- Unity Game – English Couple
- Unity Game – Kill Wasp
- WordPress – El Buen Apicultor
- WordPress – El Cajón de los Retales
- WordPress – El Vestidito Azul
- WordPress – Feuchas
- WordPress – Fragua de Navajas Ponce
- WordPress – Humor a las Tres
- WordPress – Photo Places