Monday, July 16, 2012

Roshka participa de WSA Paraguay 2012

Qué es WSA? De la WEB del concurso:

WSA (WORLD SUMMIT AWARDS) ES UNA CONFERENCIA Y PREMIO MUNDIAL CREADO PARA PROMOVER Y SELECCIONAR LOS MEJORES CONTENIDOS ELECTRÓNICOS Y APLICACIONES TECNOLÓGICAS CON EL OBJETIVO DE TENER UNA SOCIEDAD DE LA INFORMACIÓN MÁS INCLUSIVA.

Este es el sitio WEB internacional oficial, y este es el sitio WEB de Núcleo S.A. que organiza dicho concurso para el Paraguay.

Nosotros nos presentamos este año con 3 aplicaciones:


  • Bubble Drill (juego para iOS)
Bubble Drill es un juego muy divertido y adictivo que consiste que agrupar burbujas del mismo color para reventarlas y evitar que un gran taladro aplaste nuestro mundo.

Disponible de manera gratuita en el AppStore de Apple. Más información, acá.


  • Red Social Roshka (aplicación de Redes Sociales para ser utilizada desde celulares con SMS y MMS)
Red Social Roshka es una aplicación que permite  la conexión a redes sociales (Facebook, Twitter) en celulares usando tecnología SMS / MMS, por lo tanto habilitando a personas que no tienen acceso a la red de DATOS o a un SMARTPHONE acceder a servicios de redes sociales.

Sus principales funcionalidades son:

-FacebookChat
-Twitter
-Envio/recepción de fotos de facebook x MMS.
-Cambio de Status de Facebook.
-Cambio de Status en Twitter

Disponible en Facebook. Acá hay información de cuando la lanzamos al mercado.


  • iFogOfWar (juego para iOS)
iFogOfWar es un juego de estrategia para dos jugadores basado en el popular juego de tablero Stratego. Usa un tablero de 10x10 donde equipos con 40 piezas cada uno pelean por capturar la bandera enemiga.

Disponible de manera gratuita en el AppStore de Apple. Más información, acá.



    ------------------------------

    A través de esta entrada en el BLOG, queremos invitar a todas las empresas colegas a publicar sus producciones, para que este tipo de iniciativas siga haciendo crecer nuestra incipiente Industria Nacional del Software paraguayo.

    Y por supuesto, queremos pedirles que nos den sus votos (en forma de LIKEs en Facebook) para que tengan mayor consideración de parte del jurado internacional. Pueden bajar e instalar las aplicaciones sin problemas, son gratuitas. Además, los enlaces para votar:

    Gracias a todos de antemano.

    Saturday, July 7, 2012

    HTTP POST commands within Oracle's PL/SQL

    Sometimes for system integration it's pretty interesting to perform POST (or GET) HTTP request within Oracle's PL/SQL. It's pretty straightforward, but I have a hard time looking for a specific example (at least for POST) in Oracle's documentation.

    OK. But why on earth you would like to use PL/SQL to perform a HTTP POST request!? Turns out, there still are a lot of software shops or businesses with a software department with extremely highly skilled Oracle developers, that need to focus on solving complex business issues with a database instead of learning the new cool programming language that you can use to do this exact same task with two lines of code. For them, a PL/SQL wrapper around a RESTful API is pretty convenient.

    So, here's what I did to perform a POST passing two parameters along:

    create or replace
    package wsaccess_pkg as
    
      /* 
         suppose your RESTful API requires a POST with two parameters: id, name  
         and it returns a string containing an xml
      */
      
      -- id number
      -- name string
      
      function executews
      (
          p_id number,
          p_name varchar2
      )
      return varchar2;
      
    end wsaccess_pkg;
    
    create or replace
    package body wsaccess_pkg as
    
      function executews
        (
          p_id number,
          p_name varchar2
        )
      return varchar2 AS
        postData clob;
        xmlData clob;
        v_url varchar2(500);
        v_msg varchar(512);
        req utl_http.req;
        resp utl_http.resp;
      begin
      
        utl_http.set_response_error_check(enable => TRUE);
    
        -- this is your RESTful API's URL where you would POST data
        v_url := 'http://www.example.com/api/scoreCard';
    
        postData := '';
        postData := postData || 'id=' || p_id || '&';
        postData := postData || 'name=' || p_name || '&';
        
        -- begin request stating that method will be POST
        req := utl_http.begin_request(url => v_url, method => 'POST');
        
        -- setup request's headers. you need both: Content-Type and Content-Length
        utl_http.set_header(req, 'Content-Type', 'application/x-www-form-urlencoded');
        utl_http.set_header(req, 'Content-Length', length(postData));
        
        -- optionally, you might want to set User Agent header
        utl_http.set_header(req, 'User-Agent', 'MyCoolHttpClientFromWSAccessPkg/1.5');
        
        -- send data: this function handles URL encoding for us!
        utl_http.write_text(req, postData);
        
        -- read the response
        resp := utl_http.get_response(r => req);
        xmlData := '';
        begin
          loop
            utl_http.read_text(r => resp, data => v_msg);
            xmlData := xmlData || v_msg;
          end loop;
        exception
          when utl_http.end_of_body then
            null;
        end;
        
        -- end response
        utl_http.end_response(r => resp);
        
        return xmlData;
      end executews;
    
    end wsaccess_pkg;
    

    You could also parse the XML response and return a pure PL/SQL object. That's even better. But I would probably talk about in a separate blog entry.