Fork me on GitHub

Viagens, opiniões e afins

by Andre Fonseca


Groovy como opção

Durante o encontro de TI, houve uma apresentação do Guilherme Chapiewiski, onde ele falou um pouco do que ele acredita que venha ser as tecnologias que estão na “moda” ou que virão a ser moda. Em sua apresentação ele apresentou o Ruby, Python (Django), falou do Java e por fim do ASP.NET. De cada uma citada, ele apresentou seu entendimento de prós e contras. Concordo com ele em parte mas não é o objetivo aqui deste post.
Acabou que devido o interesse por parte dos participantes no tema não tive a oportunidade de conversar com ele depois, pois acredito que na palestra dele “faltou” falar também no Groovy. O Groovy é uma linguagem criada, totalmente, em Java, com o objetivo de ser algo parecido com Ruby, python, etc. Hoje, com as melhorias continuas que vem recebendo, tornou-se um excelente opção frente as demais. Possui característica semelhantes ao Ruby, Python, etc, como por exemplo a questão da flexibilidade para sintaxe e escrita de código, tipagens dinamicas, closures, etc. (veja exemplo abaixo)

nome = ["a","b","C"]
nome.each{
     println it
}

Outro exemplo

//Exemplo retirado do site do Groovy.
import groovy.xml.MarkupBuilder
import org.custommonkey.xmlunit.*
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
xml.records() {
  car(name:'HSV Maloo', make:'Holden', year:2006) {
    country('Australia')
    record(type:'speed', 'Production Pickup Truck with speed of 271kph')
  }
  car(name:'P50', make:'Peel', year:1962) {
    country('Isle of Man')
    record(type:'size', 'Smallest Street-Legal Car at 99cm wide and 59 kg in weight')
  }
  car(name:'Royale', make:'Bugatti', year:1931) {
    country('France')
    record(type:'price', 'Most Valuable Car at $15 million')
  }
}

A sua comunidade é bastante ativa e vem trabalhando firme no proposito de torná-la interessante e poderosa, o que a torna uma séria candidata a ser a segunda linguagem “oficial” da plataforma JAVA ( para mim no curto tempo JAVA deixará ser uma linguagem a se codificar para uma plataforma para desenvolver sobre – assunto para outro post). Isso porque, além de todo o trabalho, Groovy oferece aos desenvolvedores Java uma transição suave, pois permite que escreve em sintaxe JAVa dentro de seus programas, trabalha com classe Java, etc.
Além de tudo isso já citado, ainda temos a questão da grande quantidade de extensões, plugins, frameworks feitos em e para groovy que so enriquecem, como por exemplo, existe uma implementação Rails em groovy que é excelente.

Published by Andre, on março 29th, 2009 at 1:39 am. Filled under: Groovy,Informática,Java,novidadesNo Comments

Como fazer um telnet pelo python num servidor OpenVMS

Este post é para lembrar como posso fazer um telnet do meu código em Python para um servidor VMS. Isso será muito util para um robot que estou fazendo para disparar rotina de backup de forma automatizada. Assim que terminar coloco aqui todo o código ou disponibilizo no github.

#python test script:
import sys, telnetlib
host = 'hostname'
user = 'username\r'
password = 'mypasswd\r'
tn = telnetlib.Telnet(host)
tn.read_until('Username: ')
tn.write(user)
tn.read_until('Password: ')
tn.write(password)
tn.read_until('[c')             #last char of session header message
tn.write('\255\253\003')        #this is the 'fix' command added
tn.read_until('$ ')             #scan for prompt
tn.write('dir\r')               #issue directory command
d = tn.read_until('$ ')         #save results in d
tn.close()
print d
Published by Andre Fonseca, on março 29th, 2009 at 12:49 am. Filled under: Informática,pythonNo Comments

Sites para descobrir a localização de Ip

Li num blog uma coisa interessante que muito interessa ao pessoal que tem blog pois sempre chega aqueles comentários mal criados.
Vejam o link abaixo
http://www.geekeblog.com/localizando-endereo-pelo-ip/

Published by Andre, on março 24th, 2009 at 5:06 pm. Filled under: atualidades1 Comment

Erro ao conectar RDB via odbc (VMS )

Esse post é para eu lembrar como se faz para resolver um problema. Quando tenta-se conectar a um RDB que está num alpha via ODBC (tem que ter o driver para isso) e aparece o erro [ORACLE][ODBC][RDB]RDB-F-BAD_DB_HANDLE ….
As configurações do obdc, em meu caso pelo menos, são: Service : Generic e String : attache ‘filename file$db’;
Googleando a internet achei que a solução seria (funcionou no meu caso)
1 – Log no seu aplha
2 – Vá para o diretório sys$manager
3 – Veja o log do banco ( faça um dir por dir *SQLSRV_DIS*.LOG
4- Entre no arquivo… nas últimas linhas deve aparecer algo parecido com :

---EVENT BEG: EVENT_LOG ------------------------ Tue Mar 11 12:02:41.340 2008— %SQLSRV-I-EVENT_LOG, event logged at line 2814 in file CMD.C;1 %SQLSRV-I-CONNECTNAME, Connect : CONNECT_0000028 %SQLSRV-I-CONNECTSTATE, Connect state: 4 %SQLSRV-I-USERNAME, User name: FIELD %SQLSRV-I-NODENAME, Node : 192.168.1.1 %SQLSRV-I-APPLNAME, Application : odbcad32 %SQLSRV-I-SERVICENAME, Service : GENERIC ---EVENT END: EVENT_LOG ------------------------ Tue Mar 11 12:02:41.360 2008— ---EVENT BEG: EVENT_LOG ------------------------ Tue Mar 11 12:02:41.670 2008— %SQLSRV-I-EVENT_LOG, event logged at line 4455 in file COM_DIALOG.C;1 %SQLSRV-E-READERR, Error on read %SYSTEM-F-LINKDISCON, network partner disconnected logical link ---EVENT END: EVENT_LOG ------------------------ Tue Mar 11 12:02:41.680 2008— ---EVENT BEG: EVENT_LOG ------------------------ Tue Mar 11 12:02:41.700 2008— %SQLSRV-I-EVENT_LOG, event logged at line 286 in file DISP.C;1 %SQLSRV-W-EXCEPTION_RAISE, Exception raised: DBS_SYSERVICEFAILED %SQLSRV-I-CONNECTNAME, Connect : CONNECT_0000028 %SQLSRV-I-CONNECTSTATE, Connect state: 2 %SQLSRV-I-USERNAME, User name: FIELD %SQLSRV-I-NODENAME, Node : 192.168.1.1 %SQLSRV-I-APPLNAME, Application : odbcad32 %SQLSRV-I-SERVICENAME, Service : GENERIC ---EVENT END: EVENT_LOG ------------------------ Tue Mar 11 12:02:41.710 2008— ---EVENT BEG: EVENT_LOG ------------------------ Tue Mar 11 12:02:41.940 2008— %SQLSRV-I-EVENT_LOG, event logged at line 2814 in file CMD.C;1 %SQLSRV-I-CONNECTNAME, Connect : CONNECT_0000029 %SQLSRV-I-CONNECTSTATE, Connect state: 4 %SQLSRV-I-USERNAME, User name: FIELD %SQLSRV-I-NODENAME, Node : 192.168.1.1 %SQLSRV-I-APPLNAME, Application : odbcad32 %SQLSRV-I-SERVICENAME, Service : GENERIC ---EVENT END: EVENT_LOG ------------------------ Tue Mar 11 12:02:41.960 2008—

A origem deste problema vem da questão da versão do SQL que está sendo executado (Versão 7) sendo assim é necessário mudar a versão do serviço generic para a 7.1 , para isso tem que ser feito os passos

1- Va para o sys$system
2- execute run sqlsrv_manager71
3 – Vai aparecer o prompt SQLSRV
4 – Digite o comando : show service generic full;

Service GENERIC
State:                    RUNNING
Owner:                    SQLSRV$DEFLT
Owner Password:                Protocol:                 SQL/Services     Default Connect Username:      Default Connect Password:     SQL version:              STANDARD     Autostart:                on     Process init:                  Attach:                        Schema:                        Reuse:                    SESSION     Database Authorization:   CONNECT USERNAME     dbsrc file:                    SQL init file:                 Appl Transaction Usage:   SERIAL     Idle User Timeout:             Idle Exec Timeout:        1800 seconds     Min Executors:            2     Max Executors:            10     Running Executors:        2     Clients Per Executor:     1     Active Clients:           1 Access to service GENERIC     Granted to users:         PUBLIC  PRIVILEGED_USER 'SQLSRV$DEFLT' SQLSRV>

5 – Execute a sequencia

SQLSRV> shutdown service generic;
SQLSRV> alter service generic sql version 7.1;
SQLSRV> show service generic full;
SQLSRV> start service generic;
SQLSRV> exit
Published by Andre, on março 17th, 2009 at 5:45 pm. Filled under: automação,rdb,vmsNo Comments