edit odbcinst.ini and add those following lines:
[sample]
Description = Test to DB2
Driver = IBM DB2 ODBC DRIVER
[IBM DB2 ODBC DRIVER]
Description = DB2 Driver
Driver = /opt/odbc_cli/clidriver/lib/libdb2.so
FileUsage = 1
DontDLClose = 1
#export DB2INSTANCE=db2inst1
#nxn = pyodbc.connect(conn)
#cursor = cnxn.cursor()
#cursor.execute(select)
#rows = cursor.fetchall()
#for i in rows:
paypal plugin
terça-feira, 22 de outubro de 2013
how to export GUI interfaces from ssh connection
pre-req
*set ssh_config with this param -> X11Forwarding yes*Xserver installed
1. connect via ssh
>_ssh -X <ipremote>
2. check display
>_ echo $DISPLAY
localhost:11.0
3. type xauth command
>_xauth list
user/unix:0 MIT-MAGIC-COOKIE-1 7e8c728da41234234234fdsasds7b448
user/unix:10 MIT-MAGIC-COOKIE-1 1285795756a1234wdfsdfsdsf6327cb9
user/unix:11 MIT-MAGIC-COOKIE-1 290da2a214632148732552sdfsfe0c83
3a. copy magic cookie from user/unix:11, the entire line
user/unix:11 MIT-MAGIC-COOKIE-1 290da2a214632148732552sdfsfe0c83
3b. type to check if xserver is working
>_xclock
4. get root
>_sudo su - root
5. as root, export DISPLAY VARIABLE from your ssh connection display
>_export DISPLAY=localhost:11.0
6. add you magic cookie,as root.
>_xauth add user/unix:11 MIT-MAGIC-COOKIE-1 290da2a214632148732552sdfsfe0c83
6a. type to check if xserver is working
>_xclock
7. exit from root and back to your user
>_exit
8. try to execute gui interfaces :)
>_firefox
quinta-feira, 17 de outubro de 2013
pyodbc db2 windows 7 64 bits
install python -> http://www.python.org/ftp/python/2.7.5/python-2.7.5.amd64.msi
====================================================================================================================================
auth internet IBM
download driver
http://www-933.ibm.com/support/fixcentral/swg/downloadFixes?parent=ibm~Information+Management&product=ibm/Information+Management/IBM+Data+Server+Client+Packages&release=10.1.*&platform=Windows+64-bit,+x86&function=fixId&fixids=DSClients-ntx64-rtcl-10.1.300.533-FP003&includeRequisites=1&includeSupersedes=0&downloadMethod=http
The following files implement this fix.
v10.1fp3_ntx64_rtcl.exe (157.63 MB) -> download
====================================================================================================================================
instalar o pyodbc 64bits -> http://code.google.com/p/pyodbc/downloads/detail?name=pyodbc-3.0.7.win-amd64-py2.7.exe&can=2&q=
=======================================================================================================================================
import pyodbc
conn = pyodbc.connect('Driver={IBM DB2 ODBC DRIVER};Database=DB2database;Hostname=X.X.XXX.XXX;Port=XXXXX;Protocol=TCPIP;Uid=XXXXXXXXXXX;Pwd=XXXXXXXXXXX;')
restful with web2py
@is_autenticated
@request.restful()
def user():
response.view = 'generic.json'
def GET(tablename,id):
if tablename=='user':
if id=="0":
rows = db(db.user_login.id_user_profile==db.user_profile.id).select()
else:
rows = db((db.user_login.id_user_profile==db.user_profile.id) &(db.user_login.id==id )).select()
data = [[row.user_login.id,row.user_login.intranet,row.user_login.name,row.user_profile.description] for row in rows]
columns = [
{ "sTitle": "Id" },
{ "sTitle": "Intranet" },
{ "sTitle": "Name" },
{ "sTitle": "Profile", "sClass": "center" }
]
sDom= 'R<C><"#buttonPlaceholder">H<"clear"><"ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix"lfr>t<"ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix"ip>',
bAutoWidth= 'false',
bJQueryUI= 'true',
bLengthChange= 'false',
return dict(aaData = data,aoColumns=columns,bAutoWidth=bAutoWidth,bLengthChange=bLengthChange)
elif tablename=="profile":
rows = db(db.user_profile).select()
data = [[row.id,row.description] for row in rows]
columns = [
{ "sTitle": "Id" },
{ "sTitle": "Descrição" }
]
return dict(aaData =data,aoColumns=columns)
elif tablename=="actions":
return dict(aaData = db(db.actions_type).select())
elif tablename=="log":
return dict(aaData = db(db.log_user.id_user==id).select())
else:
raise HTTP(400)
web2py.... view - using left join in SQLFORM.grid
def log():
query = (db.log_user)
left = [db.actions_type.on(db.log_user.id_actions_type==db.actions_type.id),
db.user_login.on(db.log_user.id_user_login==db.user_login.id)]
#query = db.log_user
#fields = [db.log_user.id,db.log_user.description,db.log_user.id_actions_type,db.log_user.id_user_login,db.user_login.name]
fields = [db.log_user.id,db.user_login.name,db.actions_type.description,db.log_user.description]
datasource = SQLFORM.grid(query=query,fields=fields,orderby=[db.log_user.id],left=left,
user_signature=False,details=True,editable=True,deletable=True)
return dict(log=datasource)
quinta-feira, 10 de outubro de 2013
helpful web2py functions - portuguese comments
how to alter SQLGRID
def items():
#cadastro(request.args(0))
#crud.select(dbOBJECT.nota_fiscal_produtos, dbOBJECT.nota_fiscal_produtos.id_nota_fiscal=args )
nf = request.args(0)
query = ((dbOBJECT.nota_fiscal_produtos.id_nota_fiscal==nf)&
(dbOBJECT.nota_fiscal_produtos.id_produto==dbOBJECT.produto.id))
fields = [dbOBJECT.nota_fiscal_produtos.id_nota_fiscal,dbOBJECT.produto.nome,dbOBJECT.nota_fiscal_produtos.quantidade,
dbOBJECT.nota_fiscal_produtos.preco_unit,dbOBJECT.nota_fiscal_produtos.total_preco]
extra_links = [
A('Adicionar',_class="btn btn-primary",_href=URL("nf","produto",args=nf))
]
datasource = SQLFORM.grid(query=query,fields=fields,user_signature=False,details=True,editable=False,
create=True,args=[nf])
return dict(grid=datasource)
def buscar():
#dbOBJECT.produto.id.readable=False # para nao aparecer na grid
#datasource = SQLFORM.smartgrid() # tras todos os dados da tabela produto
#dbOBJECT.nota_fiscal.ativa.readable=False
links = [
dict(header='Funções',
#body=lambda row : A('lista', _class='btn', _href='#', callback=URL('item', args=row.nota_fiscal.nf))
body=lambda row : [A(SPAN(_class='icon pen icon-pencil'),SPAN(_class='buttontext button'),'Editar',
_class='button btn', _href=URL('atualizar', args=row.nota_fiscal.id)),
A(SPAN(_class='icon magnifier icon-edit'),SPAN(_class='buttontext button'),'Items',
_class='button btn', _href=URL('items', args=row.nota_fiscal.nf)),
A(SPAN(_class='icon magnifier icon-list-alt'),SPAN(_class='buttontext button'),'PDF',
_class='button btn',_id="btn_pdf", _href=URL('visualizar', args=[row.nota_fiscal.nf,1])),#('?nfid=%s'% row.nota_fiscal.nf)),
A(SPAN(_class='icon magnifier icon-zoom-in'),SPAN(_class='buttontext button'),'Ver',
_class='button btn', _href=URL('visualizar', args=[row.nota_fiscal.nf,0])),]
)]
query = (dbOBJECT.nota_fiscal.id_fornecedor==dbOBJECT.fornecedor.id)
fields = [dbOBJECT.nota_fiscal.nf,dbOBJECT.fornecedor.nome,dbOBJECT.nota_fiscal.data_emissao,
dbOBJECT.nota_fiscal.ativa,dbOBJECT.nota_fiscal.icms,dbOBJECT.nota_fiscal.total #,[dbOBJECT.nota_fiscal_produtos]
]
#left =dbOBJECT.nota_fiscal.on(dbOBJECT.nota_fiscal_produtos.id_nota_fiscal==dbOBJECT.nota_fiscal.nf)
#datasource = SQLFORM.smartgrid(query=query,
# user_signature=False,details=True,linked_tables=['fornecedor','nota_fiscal_produtos'])
datasource = SQLFORM.grid(query=query,fields=fields,orderby=[dbOBJECT.nota_fiscal.nf],
user_signature=False,details=False,editable=False,links=links)
#user_signature=False -> verifica tabela de autoridades
return dict(grid=datasource)
decoration function
def logoff_now(fn):
def wrapped():
session._unlock(response)
os.unlink(response.session_filename)
session.clear()
#response.flash = T("deslogado com sucesso!")
redirect(URL('default','login'))
return fn
return wrapped
def is_autenticated(fn):
def wrapped():
if not session.logged:
session.flash = T("Autentique-se por favor!")
redirect(URL('default','login'))
else:
return fn()
return wrapped
using python LDAP
import ldap
class Ldap_co(object):
def __init__(self):
self.server = "ldap://yourserver.com"
self.port = "389"
self.baseDN = "ou=xxxxxxx,o=xxx.com"
try:
self.l = ldap.initialize(self.server+":"+self.port+"/")
# ldap.VERSION2 if you're using a v2 directory
#l.protocol_version = ldap.VERSION3
except ldap.LDAPError, e:
print e
def search_people(self,searchFilter = "cn=*sharkguto*"):
searchScope = ldap.SCOPE_SUBTREE
retrieveAttributes = None
try:
ldap_result_id = self.l.search(self.baseDN, searchScope, searchFilter, retrieveAttributes)
result_set = []
while 1:
result_type, result_data = self.l.result(ldap_result_id, 0)
if (result_data == []):
break
else:
if result_type == ldap.RES_SEARCH_ENTRY:
result_set.append(result_data)
except ldap.LDAPError, e:
print e
return result_set
def auth_user(self,user,password):
try:
user=user.strip()
password = password.strip()
dn=""
resp=""
results = self.search_people("email="+user + "*")
#print results
dn= results[0][0][1]
uid= results[0][0][0].split(',')[0]
uid=uid.split('=')[1]
c=dn['c'][0]
o=dn['o'][0]
dept=dn['dept'][0]
ou=dn['ou'][0]
cn=dn['cn'][0]
fullname=dn['callupName'][0]
dnfinal = "uid="+uid+",c="+c+",ou="+ou+",o="+o
#print dnfinal
resp = self.l.bind_s(dnfinal,password)
#print resp
#resp = self.l.whoami_s()
if resp[0] == 97:
return dict(logged=True,department=dept,email=user,uid=uid,fullname=fullname)
except ldap.INVALID_CREDENTIALS:
self.l.unbind()
print 'Wrong username ili password'
return False
except ldap.SERVER_DOWN:
print 'AD server not awailable'
return False
except ldap.LDAPError, e:
print e
return False
segunda-feira, 7 de outubro de 2013
html post form and python
#!/usr/bin/python
import urllib
import urllib2
import os,sys
import re
def load_info(array_result=()):
dict_unknow={}
totalproc=0
totalmem=0
dict_unknow["POD"]="CUoD Processor Activation Code"
dict_unknow["MOD"]="CUoD Memory Activation Code"
dict_unknow["TCOD"]="On/Off CoD Enablement Code"
dict_unknow["TMOD"]="On/Off CoD Memory Enablement Code"
dict_unknow["VET"]="Virtualization Technology Code"
dict_unknow["STDP"]="Standard Trial CoD Processor Activation Code"
dict_unknow["STDM"]="Standard Trial CoD Memory Activation Code"
dict_unknow["STME"]="Standard Trial Active Memory Expansion Code"
dict_unknow["EXCP"]="Exception Trial CoD Processor Activation Code"
dict_unknow["EXCM"]="Exception Trial CoD Memory Activation Code"
dict_unknow["USTA"]="Utility CoD Enablement Code"
dict_unknow["USTO"]="Utility CoD Termination Code"
dict_unknow["URPT"]="Utility CoD Reporting Code"
dict_unknow["PAID"]="Utility CoD PrePaid Code"
codeval=""
if array_result[0]=="MOD":
codeval = str(array_result[1])[25:28]
totalmem+=int(codeval)
elif array_result[0]=="POD":
codeval = str(array_result[1])[26:28]
totalproc+=int(codeval)
#elif array_result[0]=="RMEM":
#codeval = str(array_result[1])[26:28]
if not codeval=="":
print "######################################"
print array_result[0],' ',array_result[1]
print dict_unknow[array_result[0]],' ',codeval,' ',array_result[2]
print "######################################"
#909EEC68478753B354590000000200461F
return totalproc,totalmem
def load_html(st='9117',n1='10',n2='06ebp'):
#url
url = 'http://www-912.ibm.com/pod/pod'
#create form to request
submitVars = {'system_type' : st,
'system_serial_number1' : n1,
'system_serial_number2' : n2 }
params = urllib.urlencode(submitVars)
response = urllib2.urlopen(url, params)
data = response.read()
#print(data)
regex = re.compile("<tr align=\"center\">\s*<td> (.*) </td>\s*<td> (.*) </td>\s*<td> (.*) </td>\s*</tr>")
r = regex.findall(data)
return r
def final(tp,tm):
print '==================FINAL====================='
print ' TOTAL CPU=',tp,' TOTAL MEMORY=',tm,'GB'
if __name__ == "__main__":
totalp=0
totalm=0
if ( len(sys.argv) == 3 ):
dictall = load_html(sys.argv[0],sys.argv[1],sys.argv[2])
for i in dictall:
tp,tm=load_info(i)
totalp+=int(tp)
totalm+=int(tm)
final(totalp,totalm)
else:
#print "Error de param"
dictall = load_html()
for i in dictall:
tp,tm=load_info(i)
totalp+=int(tp)
totalm+=int(tm)
final(totalp,totalm)
helpful commands
LINUX COMMANDS :
how many apache connections
netstat -an | grep 80 | wc -l
check how many sessions on apache
while true ; do ls /tmp/sess_* | wc -l ; sleep 1; done
how many conn for each ip
netstat -ntu | awk ' $5 ~ /^(::ffff:|[0-9|])/ { gsub("::ffff:","",$5); print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
zip -9 -r zipfile.zip directory
lsof -i -n -P ==> check opened ports
for listname in $(ls *.xls | sed "s/\./_/"| sed "s/\s/_/" | sed "s/xls/py/"); do touch $listname; done
#!/bin/bash
for i in $(ls -d $PWD/*.py | grep -v __init); do sed -e "s/\(^\s*'.*'\s*:\)/\L\1/g" $i > $i.lower ; done
for i in $(ls -d $PWD/*.py | grep -v __init); do mv $i $i.tmp ; done
for i in $(ls -d $PWD/*.py.lower | grep -v __init); do mv $i $PWD/$(basename $i .lower) ; done
terça-feira, 1 de outubro de 2013
barcode javascript phase 2
get decderWorker here decoderworker
html
<!DOCTYPE html> <meta charset=utf-8> <html lang="en"> <head> <title>BarcodeReader</title> </head> <body> <div id="container"> <video autoplay id="vid" width="480" height="320"></video><!--style="display:none;"--> <canvas id="canvas" width="640" height="480" style="border:1px solid #d3d3d3;"></canvas><br> <button onclick="snapshot()">Take Picture</button> <!--<button onclick="alert(getBarcodeFromImage('canvas'))">Scan</button>--> <img width="320" height="240" src="about:blank" alt="" id="picture"> <p id="result"><p> </div> <input class="centered" type="button" onclick='$("#bcTarget3").barcode({code:"1234567890", crc:false}, "int25",{barWidth:2, barHeight:30});' value=" int25 without crc "> <br /> <div id="bcTarget3">bcTarget3</div> <br /> <input class="centered" type="button" onclick='$("#bcTarget2").barcode("1234567", "int25",{barWidth:2, barHeight:30});' value=" int25 "> <br /> <div id="bcTarget2">bcTarget2</div> <br /> <p>id 2013100200001</p> <input class="centered" type="button" onclick='$("#bcTarget").barcode("2013100200001", "ean13",{barWidth:2, barHeight:30});' value=" ean13 "> <br /> <div id="bcTarget">bcTarget</div> <br /> <script type="text/javascript" src="http://barcode-coder.com/js/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="http://barcode-coder.com/js/jquery-barcode-last.min.js"></script> <script type="text/javascript"> </script> <script type="text/javascript"> var video = document.querySelector("#vid"); var canvas = document.querySelector('#canvas'); var ctx = canvas.getContext('2d'); var localMediaStream = null; var Result = document.querySelector("#result"); var onCameraFail = function (e) { console.log('Camera did not work.', e); }; function snapshot() { if (localMediaStream) { ctx.drawImage(video,0,0,canvas.width,canvas.height); DecodeBar(); } } navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia; window.URL = window.URL || window.webkitURL; navigator.getUserMedia({video:true}, function (stream) { video.src = window.URL.createObjectURL(stream); localMediaStream = stream; }, onCameraFail); var resultArray = []; var workerCount = 0; function receiveMessage(e) { if(e.data.success === "log") { console.log(e.data.result); return; } workerCount--; if(e.data.success){ var tempArray = e.data.result; for(var i = 0; i < tempArray.length; i++) { if(resultArray.indexOf(tempArray[i]) == -1) { resultArray.push(tempArray[i]); } } Result.innerHTML=resultArray.join("<br />"); }else{ if(resultArray.length === 0 && workerCount === 0) { Result.innerHTML="Decoding failed."; } } } var DecodeWorker = new Worker("decoderWorker.js"); var RightWorker = new Worker("decoderWorker.js"); var LeftWorker = new Worker("decoderWorker.js"); var FlipWorker = new Worker("decoderWorker.js"); DecodeWorker.onmessage = receiveMessage; RightWorker.onmessage = receiveMessage; LeftWorker.onmessage = receiveMessage; FlipWorker.onmessage = receiveMessage; function DecodeBar(){ resultArray = []; workerCount = 4; Result.innerHTML=""; DecodeWorker.postMessage({pixels: ctx.getImageData(0,0,canvas.width,canvas.height).data, cmd: "normal"}); RightWorker.postMessage({pixels: ctx.getImageData(0,0,canvas.width,canvas.height).data, cmd: "right"}); LeftWorker.postMessage({pixels: ctx.getImageData(0,0,canvas.width,canvas.height).data, cmd: "left"}); FlipWorker.postMessage({pixels: ctx.getImageData(0,0,canvas.width,canvas.height).data, cmd: "flip"}); } </script> </body> </html>
how to create QRCODE in Javascript
qrcode framework
test page
reader qrcode
generator
<html>
<head>
</head>
<body>
<div id="qr"></div>
<script type="text/javascript" src="qrcode.js"></script>
<script>
var draw_qrcode = function(text, typeNumber, errorCorrectLevel) {
document.write(create_qrcode(text, typeNumber, errorCorrectLevel) );
};
var create_qrcode = function(text, typeNumber, errorCorrectLevel, table) {
var qr = qrcode(typeNumber || 4, errorCorrectLevel || 'M');
qr.addData(text);
qr.make();
// return qr.createTableTag();
return qr.createImgTag();
};
document.getElementById('qr').innerHTML = create_qrcode("1234567890",10);
</script>
</body>
</html>
Assinar:
Postagens (Atom)