lunes, 29 de abril de 2013

Perl: Read a Table from database using DBI

¿How to read a Table from database using DBI? 

#!/usr/bin/perl -w

use strict;
use warnings;
use DBI;

use constant DATABASE => "mydatabase";
use constant HOSTNAME => "myhostname";
use constant USERNAME => "user";
use constant PASSWORD => "123";

my $dbh = db_connect();

print "\nRead MyTable table : \n";

my $rows = read_table($dbh);
my $affected_rows = print_table($dbh, $rows);
print "Affected rows: $affected_rows: \n";

#
sub read_table {
    my $dbh = shift;

    my $sql1 = qq(
        SELECT * FROM MyTable

    );
    my $sth1 = $dbh->prepare_cached( $sql1 );
    $sth1->execute();
    my $sql_return = $sth1->fetchall_arrayref( {} );
       
    return $sql_return;
}

#
sub print_table {
    my $dbh = shift;
    my $rows = shift;

    foreach my $row (@$rows) {       
          print "$row->{
columnName_01}\n";
          print "$row->{columnName_02}\n";  
        }

  my $arraySize = scalar (@$rows);
  return $arraySize;
   
}
   
sub db_connect {
   
    my $db   = DATABASE;
    my $host = HOSTNAME;
    my $user = USERNAME;
    my $pass = PASSWORD;

    my $dbh = DBI->connect(
        join(':', 'dbi:mysql', $db, $host), $user, $pass,
        { AutoCommit => 1, PrintError => 1, RaiseError => 1 },
    );

    return $dbh;
}

viernes, 26 de abril de 2013

Perl: Modules installing on Ubuntu system

¿What Perl Modules Already Installed On My System?
¿Qué módulos tengo instalado en el sistema?

How to list installed perl module? List installed perl module:

$ instmodsh

Available commands are:
   l            - List all installed modules
   m <module>   - Select a module
   q            - Quit the program
cmd? l
Installed modules are:
   Class::Load
   Data::OptList
   Dist::CheckConflicts
   ExtUtils::MakeMaker
   List::MoreUtils
   MRO::Compat
   Module::Implementation
   Module::Runtime
   Mojolicious
   Package::DeprecationManager
   Package::Stash
   Package::Stash::XS
   Params::Util
   Perl
   Perl::Metrics::Simple
   String::Util
   Sub::Exporter
   Sub::Install
   Sub::Uplevel
   Test::Deep
   Test::Exception
   Test::Fatal
   Test::NoWarnings
   Test::Requires
   Test::Tester
   Try::Tiny
   local::lib


Other way:
 
perl -e 'while (<@INC>) { while (<$_/*.pm>) { print "$_\n"; } }'
 
Show all perl paths:
 
perl -E 'say join "\n", @INC'
 
Find a file: 
sudo find / -type f -name 'Example.pm'
 
 
¿What Know if a Perl Modules Already Installed On My System?

perl -MNameModule -e 1
If not installed throw error "Can' locate module....."

For example: 
perl -MException::Base -e 1
perl -MLog::Log4perl -e 1

Install using CPAN:


For example:

sudo perl -MCPAN -e 'install IO::EventMux'
sudo perl -MCPAN -e 'install Log::Log4perl'
sudo perl -MCPAN -e 'install Test::Class'
sudo perl -MCPAN -e 'install Log::Dispatch'
sudo perl -MCPAN -e 'install Params::Validate'
sudo perl -MCPAN -e 'install DBD::mysql'
sudo perl -MCPAN -e 'install JSON::XS'
sudo perl -MCPAN -e 'install Cache::Memcached'  

sudo perl -MCPAN -e 'install Thread'    
sudo perl -MCPAN -e 'install Thread::Pool'

sudo perl -MCPAN -e 'install Exception::Base'
sudo perl -MCPAN -e 'install XML::LibXML' 

Install using System:

For example:

sudo apt-get install libtest-class-perl
sudo apt-get install liblog-dispatch-perl
sudo apt-get install libparams-validate-perl
sudo apt-get install libdbd-mysql-perl
sudo apt-get install libjson-xs-perl
sudo apt-get install libjson-perl
sudo apt-get install libjson-any-perl
sudo apt-get install libcache-memcached-perl

sudo apt-get install libnumber-format-perl
sudo apt-get install libtest-log-dispatch-perl
sudo apt-get install libconfig-inifiles-perl
sudo apt-get install libwww-perl
sudo apt-get install libdigest-md5-perl
sudo apt-get install libproc-daemon-perl
sudo apt-get install libxml-simple-perl

sudo apt-get install libxml-libxml-perl

¿Cómo saber si tenemos un módulo instalado?

Si Module::Util está instalado, use pm_which:
:~$ pm_which EL::Modulo

Use perldoc, pues para saber si un módulo está instalado y donde se encuentra (supuesto que el módulo contiene documentación en su interior) use perldoc -l:
:~$ perldoc -l EL::Modulo

También puede comprobar la existencia cargando el módulo:
:~$ perl -MEL::Modulo -e 1

Instale pmtools y use el comando pminst (Se puede obtener en http://search.cpan.org/~mlfisher/pmtools/.)

Sigue un ejemplo de uso:
pp2@nereida:~/src/perl/IPC-PerlSSH/lib/IPC$ pmdesc EL::Modulo # descripción

pp2@nereida:~/src/perl/coro$ pminst odulo
EL::Modulo
pp2@nereida:~/src/perl/IPC-PerlSSH/lib/IPC$ pmload EL::Modulo  # Que modulos carga

Módulos en el Núcleo de Perl:
:~> perl -MModule::CoreList -e \
   'print Module::CoreList->first_release("Data::Dumper")."\n"'


Referencias:-Saber que Módulos están Instalados: http://www.davioth.com/lhp/node188.html




martes, 23 de abril de 2013

Android: Adapter personalizado


Un Adapter es una extensión de la clase "android.widget.BaseAdapter" que intermedia entre las clases backend de datos y la frontend vista (LayoutInflater). Por ejemplo:

Object <--- ObjectAdapter --->  ObjectLayoutInflater

LayoutInflater es la clase que convierte xmls de vista frontend  a objetos.




Referencia:
-Como crear un adapter en Android.
http://www.nosolounix.com/2010/12/ejecutar-desde-eclipse-en-movil-android.html

miércoles, 17 de abril de 2013

Programación Python desde cero

Aprender Python desde cero en 10 pasos.

El siguiente video es un taller para Aprende a programar en Python desde cero:

A continuación los primeros pasos desde consola Linux:

1) ¿Cómo sabemos si tenemos instalado Python?
consola:~$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Si no lo tenes instalado hay que instalarlo. En Linux Ubuntu es como sigue:

sudo apt-get install python python-psycopg2 python-reportlab \
python-egenix-mxdatetime python-tz python-pychart python-mako \
python-pydot python-lxml python-vobject python-yaml python-dateutil \
python-pychart python-webdav

sudo apt-get install python-cherrypy3 python-formencode python-pybabel \
python-simplejson python-pyparsing

sudo apt-get install python-gtk2 python-glade2 \
    python-matplotlib python-egenix-mxdatetime python-hippocanvas

#sudo apt-get install python-xml 


2) El primer código hola mundo en python.
>>> print "Hola mundo"
Hola mundo

3) ¿Listas y diccionarios?
>>> milista=[10,5,"Hola",True]
>>> print milista
[10, 5, 'Hola', True]
>>> usuarios={"Daro":"micuenta", "Carlos":"czantanay", "Codejobs":"codejobs"}
>>> print usuarios["Daro"]
micuenta

4) Tipos implícitos de datos en python:
>>> dato_int=1
>>> dato_str="mi cadena"
>>> type(dato_int)
<type 'int'>
>>> type(dato_str)
<type 'str'>
...presionar Ctrl L para limpiar pantalla.

5) Algunas operaciones en python:
>>> 2 ** 3
8
>>> 100/5
20
>>> 100 % 2
0
>>> 10.5 / 2
5.25
>>> 10.5 // 2
5.0

6) ¿Cómo ejecutar un archivo python?
consola:~$ nano my_first_program.py
#Creamos un archivo...
#El archivo del primer programa:
daro = "micuenta"
if daro == "micuenta":
        print "Mi cuenta es @" + daro
elif daro == "cualquier cosa":
        print "cualquier cosa"
else:
        print "Visita @codejobs"
#guardamos y salimos... presionar: Ctrl O enter + Ctrl X
consola:~$ python my_first_program.py
Mi cuenta es @micuenta

7) ¿Cómo hacer Ciclos en python?
>>>  # bucles while:
consola:~$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> i = 0
>>> while i<5:
...     i = i + 1
...     print i
...
1
2
3
4
5
>>> # bucles for:
>>> lenguajes = ["php", "Java", "Perl", "Python", "C"]
>>> for item in lenguajes:
...     print "->" + item
...
->php
->Java
->Perl
->Python
->C
>>>

8) ¿Cómo definir funciones en python?
consola:~$ nano my_second_program.py
#Creamos un archivo...
#El archivo del primer programa:
def suma(dato1, dato2):
        print dato1 + dato2

def desplegar(cadena, numero):
        print numero * cadena

suma(5, 5)
desplegar("cadena ", 5)
#guardamos y salimos... presionar: Ctrl O enter + Ctrl X
consola:~$ python my_second_program.py
10
cadena cadena cadena cadena cadena

9) ¿Cómo leer desde consola?
>>> nombre = raw_input("Ingrese su nombre: ")
Ingrese su nombre:


10) ¿Cómo programar orientado a objetos en python?

#El archivo se debe llamar igual que el nombre de la clase.
consola:~$ nano MiPrimeraClase.py
class MiPrimeraClase:
        """Comentarios"""
        nombre = "daro"
        def __init__(self, nombre):
                self.nombre = nombre
        def hola(self):
                print "Hola " + self.nombre

#Instanciar la clase
miprimeraclase = MiPrimeraClase("cacho")
miprimeraclase.hola()
#guardamos y salimos... presionar: Ctrl O enter + Ctrl X

consola:~$ python MiPrimeraClase.py
Hola cacho

Tener en cuenta que:
"Programar programa cualquiera. Para programar bien hay que estudiar. Estudie."

Referencias:
-Taller de programacion Python en Youtube.
-Python Training for HP OSO.
-Python: Orientación a objetos..


jueves, 4 de abril de 2013

Android: Init with Android on Linux Ubuntu

Init to develop with Android on Ubuntu
How to init a development with Android on Linux Ubuntu?

1) Download:
Search in: http://www.android.com/ 
Open: http://developer.android.com/sdk/index.html
Download: adt-bundle-linux-x86-20130219.zip

2) Install:
Unzip on Home folder.
Home->adt-bundle-linux-x86-20130219

3) First project.
Run Eclipse... Home->adt-bundle-linux-x86-20130219->eclipse
Help->About ADT

New->Android Application Project
Run As->Android Application
Select... Yes
Select... "Launch a New Android Virtual Device"; Select Manager; Select New; Select... Device: Nexus S (4.0,480x800:dhpi)
Select... Target: Android 4.2.2 - API Level 17
Click... Start.



Select... Run Configuration -> Select... Target -> "Always prompt to pick device".

Referencias: