- Python Types and Objectsby Shalabh Chaturvedi
- Python Attributes and Methodsby Shalabh Chaturvedi
- Python official documentation
- PEP 252 -- Making Types Look More Like Classesand many other PEPs like PEP 3115 -- Metaclasses in Python 3000and PEP 3119 -- Introducing Abstract Base Classesby Guido van Rossum and others
- Python’s super() considered super!and PEP 3135 -- New Superby Raymond Hettinger
- A Guide to Python's Magic Methodsby Rafe Kettler
- Improve Your Python: Python Classes and Object Oriented Programmingby Jeff Knupp
- Drastically Improve Your Python: Understanding Python's Execution Modelby Jeff Knupp
- OOP Concepts in Python 2.x - Part 1by Leonardo Giordani
- OOP Concepts in Python 2.x - Part 2by Leonardo Giordani
- OOP Concepts in Python 2.x - Part 3by Leonardo Giordani
Pesquisar este blog
terça-feira, 8 de julho de 2014
Pra quem deseja estudar Orientação a Objetos.
Pra quem deseja estudar Orientação a Objetos, recomendo python pois a linha de aprendizado é mais curta que em java e outras linguagens, segue uns links abaixo, recomendo o livro Python Programming for the Absolute Beginner, 3rd Edition by Michael Dawson pra quem esta começando:
terça-feira, 7 de janeiro de 2014
Instalando o Selenium no Python na plataforma Windows.
Para instalar o selenium dentro do python para executar os script do selenium pelo python siga os passos abaixo.
1. Instalar o Python 2.7.xx
2. Instalar o setuptools do python: https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11.win32-py2.7.exe#md5=57e1e64f6b7c7f1d2eddfc9746bbaf20
3. Instalar o PIP: https://sites.google.com/site/pydatalog/python/pip-for-windows
4. Digite o comando abaixo sem aspas no prompt do windows, na pasta C:\Python27\Scripts>
"pip install -U selenium"
5. Selenium instalado no Python execute um script selenium para testar.
Pode criar um .bat com o comando pra executar o script selenium:
C:\Python27\python.exe C:\Scripts\teste.py
Insira no Arquivo teste.py as linhas de código abaixo e execute o .bat criado, exemplo:
Dica: Quando o browser é atualizado o Firefox, é necessário atualizar novamente o selenium, executando o comando "pip install -U selenium".
1. Instalar o Python 2.7.xx
2. Instalar o setuptools do python: https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11.win32-py2.7.exe#md5=57e1e64f6b7c7f1d2eddfc9746bbaf20
3. Instalar o PIP: https://sites.google.com/site/pydatalog/python/pip-for-windows
4. Digite o comando abaixo sem aspas no prompt do windows, na pasta C:\Python27\Scripts>
"pip install -U selenium"
5. Selenium instalado no Python execute um script selenium para testar.
Pode criar um .bat com o comando pra executar o script selenium:
C:\Python27\python.exe C:\Scripts\teste.py
Insira no Arquivo teste.py as linhas de código abaixo e execute o .bat criado, exemplo:
import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys class PythonOrgSearch(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() def test_search_in_python_org(self): driver = self.driver driver.get("http://www.python.org") self.assertIn("Python", driver.title) elem = driver.find_element_by_name("q") elem.send_keys("selenium") elem.send_keys(Keys.RETURN) self.assertIn("Google", driver.title) def tearDown(self): self.driver.close() if __name__ == "__main__": unittest.main()
Dica: Quando o browser é atualizado o Firefox, é necessário atualizar novamente o selenium, executando o comando "pip install -U selenium".
quinta-feira, 11 de abril de 2013
Implementando Segurança em PHP ao Pegar os Dados via POST ou GET
/* Filtro de caracteres especiais para segurança. Stripslashes e mysql_real_escape_string esta função pode ser usada para limpar os dados recuperados de um banco de dados ou de um formulário HTML, geralmente é chamado de escape de dados.*/Campo nome: Zak's Derick's
Escaped string: Zak\'s and Derick\'s Laptop
Assim o banco de dados vai entender que é um caractere especial, não causando problema ao colocar a aspa simples, evitando o SQL Inject.
// pega e filtra os valores do post
$username = (isset($_POST['username'])) ? trim($_POST['username']) : '';
$username = stripslashes($username);
$username = mysql_real_escape_string($username);
Outra forma seria remover os caracteres especiais criando uma lista negra, geralmente é chamado de black list.
<?php
function anti_injection($sql) {
// Remove palavras suspeitas de injection.
$sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"), "", $sql);
//Remove espaços vazios.
$sql = trim($sql);
//Remove tags HTML e PHP.
$sql = strip_tags($sql);
//Adiciona barras invertidas à uma string.
$sql = addslashes($sql);
return $sql;
}
$id = anti_injection($_GET['id']);
?>
Outro mais simples:
http://codigofonte.uol.com.br/codigo/php/seguranca/remover-caracteres-indesejados-e-evitar-a-sql-injection
Outra forma seria permitir somente os dados que eu quero receber, geralmente é chamado de white list.
$input = "' or 1='1";
$input = strip_tags($input); // retirar tags php
$output = eregi_replace("[^a-z0-9ã-õá-úà-úãõâ-ûç,.;]", '', $input);
echo $output;
Obs: - Não retirar palavras reservadas do SQL: SELECT, UPDATE, etc.
Outro exemplo mais simples:
function checa($string)
{
$string = preg_match("/^[0-9A-z]*$/i", $string);
return $string;
}
Dica para os testadores, insira os caracteres abaixo nos campos de entrada,
para analisar o erro que vai gerar.
* \\\\ ' & ¨% $ # ( ) { [ } ] / ^~`´º
Boa leitura:
apresentacaosegurancaphp.pdf
Realizando um conexão com MySql por Python
Tive a necessidade de criar um Report Online, agora alimentar através de uma aplicação desktop, primeiro passo criar a conexão a Aplicação com o Servidor de Banco de Dados.
#!/usr/bin/python
# Biblioteca python que deve ser instalada
# http://sourceforge.net/projects/mysql-python/
import MySQLdb
db1 = MySQLdb.connect('servidor_endereco', 'nome_usuario', 'senha','nome_banco')
cursor = db1.cursor()
sql = 'SELECT * FROM tb_report WHERE 1'
cursor.execute(sql)
rows = cursor.fetchall()
#Imprime as linhas da tabela.
for row in rows:
print row
cursor.close()
-> No caso de tentar realizar uma conexão remota local para servidor, tem a necessidade de configurar o servidor primeiro, leia o link:
http://marcosvreis.wordpress.com/2012/01/30/habilitando-conexo-remota-no-mysql-server/
#!/usr/bin/python
# Biblioteca python que deve ser instalada
# http://sourceforge.net/projects/mysql-python/
import MySQLdb
db1 = MySQLdb.connect('servidor_endereco', 'nome_usuario', 'senha','nome_banco')
cursor = db1.cursor()
sql = 'SELECT * FROM tb_report WHERE 1'
cursor.execute(sql)
rows = cursor.fetchall()
#Imprime as linhas da tabela.
for row in rows:
print row
cursor.close()
-> No caso de tentar realizar uma conexão remota local para servidor, tem a necessidade de configurar o servidor primeiro, leia o link:
http://marcosvreis.wordpress.com/2012/01/30/habilitando-conexo-remota-no-mysql-server/
sábado, 16 de fevereiro de 2013
Processo de Teste com TestLink + Scrum + Bugzilla
Ultimamente tive a necessidade de trabalhar com processo de teste com metodologia ágil, tive que montar uma apresentação do processo de teste com testlik + scrum + Bugzilla, segue abaixo o link da apresentação para quem quiser conhecer mais sobre teste.
Recently I needed to work with the testing process with agile methodology, I had to mount a presentation of the testing process with Testlik + Scrum + Bugzilla, below is the link of the presentation for anyone wanting to know more about the test.
sexta-feira, 18 de janeiro de 2013
Comandos Linux Uteis
Dar Permissão em Pasta e Arquivo:
Sudo chmod [opções] modo[,modo] arquivo1 [arquivo2 ...]
Permissão total:
chmod 777 + (nome do arquivo ou pasta)
ex. chmod 777 teste.xls
Outra forma fácil no ubuntu é
Passos:
1.Selecionar um arquivo
2. Clicar no botão direito
3. Selecionar a opção propriedades
4. Selecione a aba permissões
5. Mude as permissões como queira.
Numerical permissions
| # | Permission | rwx |
|---|---|---|
| 7 | full | 111 |
| 6 | read and write | 110 |
| 5 | read and execute | 101 |
| 4 | read only | 100 |
| 3 | write and execute | 011 |
| 2 | write only | 010 |
| 1 | execute only | 001 |
| 0 | none | 000 |
Sabe mais:
http://pt.wikipedia.org/wiki/Chmod
http://en.wikipedia.org/wiki/Chmod
Instalar SNMP - protocolo SNMP (do inglês Simple Network Management Protocol - Protocolo Simples de Gerência de Rede.
sudo apt-get install snmp
quinta-feira, 27 de dezembro de 2012
Montar HD no linux dividido em duas partições.
Ao tentar montar um HD que tem duas partições no Linux distribuição Ubuntu, tive dificuldades, no entanto um amigo me ajudou realizando as operações abaixo no terminal do linux.
Passos:
cd Área\ de\ Trabalho/
mkdir part1
mkdir part2
sudo mount /dev/sdb1 part1
sudo mount /dev/sdb2 part2
Desmontar Partições:
sudo umount /dev/sdb1 part1
sudo umount /dev/sdb2 part2
Passos:
cd Área\ de\ Trabalho/
mkdir part1
mkdir part2
sudo mount /dev/sdb1 part1
sudo mount /dev/sdb2 part2
Desmontar Partições:
sudo umount /dev/sdb1 part1
sudo umount /dev/sdb2 part2
Assinar:
Postagens (Atom)
