Sockets em Python
Servidor
#!/usr/bin/env python import socket host = '' port = 50000 backlog = 5 size = 1024 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((host,port)) s.listen(backlog) while 1: client, address = s.accept() data = client.recv(size) if data: client.send(data) client.close()
Cliente
#!/usr/bin/env python
import socket
host = 'localhost'
port = 50000
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
s.send('Hello, world')
data = s.recv(size)
s.close()
print 'Received:', data
Execute o servidor em uma aba de Terminal e depois execute o cliente em outra aba para realizar o teste.
Nomeação de arquivos no CakePHP
Para nomear um arquivo utilizamos o underline para separar as palavras
Para nomear as classes utilizamos o padrão CamelCase.
Ex:
Controller -> PessoasController – pessoas_controller.php
Component -> MinhaMaoElement – minha_mao.php
Model -> PessoaFisica – pessoa_fisica.php
Behavior -> DataCaseBehavior – data_case.php
View -> SimplesPessoaView – simples_pessoa.php
Helper -> MyLinkHelper – my_link.php
DataCaseBehavior
Exibindo alert no CakePHP após salvar formulário
Se você deseja exibir uma mensagem dentro de um alert após salvar os dados em um formulário, ao invés da mensagem aparecer direto na tela, basta fazer uma pequena alteração no setFlash dentro do método do Controller (app/controller).
Por exemplo:
function add() {
(...)
//$this->Session->setFlash(__('Veiculo foi gravado', true));
}
Altere o comando setFlash para
function add() {
(...)
//$this->Session->setFlash(__('<script>alert('Veiculo foi gravado'); </script>', true));
}
Até a próxima!
CakePhp – Utilizando tabelas com nomes fora do padrão
Por padrão o Cakephp recomenda que você nomeie uma tabela no banco de dados com o nome no plural.
Mas e nos casos em que uma tabela se encontra no singular, ou nos casos em que o CakePHP não reconhece corretamente o plural de uma palavra? Como fazer com que o Model reconheça a tabela?
Neste caso utiliza-se o atributo $useTable informando o nome da tabela a ser utilizada.
Neste exemplo tenho uma tabela escrivães e o model Escrivão.
class Escrivão extends AppModel {
var $Escrivão;
var $name = 'Escrivão';
var $useTable = "escrivães";
}
Até a próxima dica!
Máscaras com CakePHP
1) Adicione o Jquery, conforme tutorial apresentado no post anterior (clique aqui para acessar o post)
2) Baixe o plugin maskedinput , clicando aqui
3) Adicione uma referência no arquivo \views\layouts\defaults.ctp
<?php
echo $this->Html->script('jquery.maskedinput-1.3');
?>
4) Em seu arquivo de visão, adicione uma referência id aos Input´s conforme exemplo a seguir:
echo $this->Form->input(‘cpf’, array(‘id’ => ‘cpf’) );
5) No mesmo arquivo de visão, escreva o seguinte script no topo do arquivo:
<script type="text/javascript">
jQuery(document).ready(function($){
$('#cpf').focus();
$("#cpf").mask("99999999999");
});
</script>
6) Veja o resultado
Integrando Jquery com CakePHP
1) baixe o Jquery, clicando aqui
2) Coloque o arquivo jquery-1.7.js dentro da pasta app\webroot\js, dentro do cake.
3) Adicione o seguinte código dentro do seu default.ctp, localizado dentro da pasta views\layouts do seu cake
<?php
echo $this->Html->script('jquery-1.7');
?>
4) No mesmo arquivo default.ctp, adicione, antes da tag </body> o seguinte código:
<?php echo $this->Js->writeBuffer(); // note: write cached scripts ?>
4) Chame o Javascript dentro do Controller desejado, através da variável $helpers, conforme é demonstrado no exemplo abaixo:
class CondutoresController extends AppController {
var $Condutor;
var $name = 'Condutores';
var $helpers = array('Js' => array('Jquery'));
...
}
5) Para testar se o JQuery foi importado corretamente, abra o seu view e coloque o seguinte código:
<script type="text/javascript">
jQuery(document).ready(function($){
alert("oi");
});
</script>
Até a próxima dica!
Setando JavaHL no Eclipse para Linux
Ao trabalhar com projetos SVN no Eclipse em Linux, se você obtiver uma mensagem semelhante a esta:
Failed to load JavaHL Library. These are errors that were encountered: no libsvnjavahl-1 in java.library.path no svnjavahl-1 in java.library.path no svnjavahl in java.library.path
Abra o terminal e faça o seguinte procedimento:
# sudo nano /usr/bin/eclipse
Adicionar o caminho para variável de ambiente LD_LIBRARY_PATH antes de começar Eclipse.
Para isso digite a seguinte linha de comando:
export LD_LIBRARY_PATH=/usr/lib/jni /opt/eclipse/eclipse
Salve o arquivo e reinicie o Eclipse.