Category: Tecnologia


Salve,

Tive um problema após a instalação do ZendServer CE 5.6. Simplesmente não foi criado o link em /tmp/ como de costume, então é fácil resolver:

sudo ln -s /usr/local/zend/mysql/tmp/mysql.sock /tmp/mysql.sock

Se estiver usando o Navcat e ao criar a conexão com o MySQL mesmo colocando todos os dados ele insistir que não está conectando no servidor MySQL, vá para a aba Advanced marque a opção Use socket file: e passe o caminho do link simbólico: /tmp/mysql.sock

Sem problemas agora, é só mandar conectar ou testar para ter uma certeza que funcionou.

Valeu!

Salve,

No post Usando o Snippely em vários locais com Dropbox no Ubuntu Natty 11.04 foi ensinado no Ubuntu, mas serve para qualquer Linux. No Mac OSX, por causa das suas frescuras e estrutura de diretório diferente do Linux, você vai ter um puta trabalho…pra descobrir onde fica o bendito banco de dados do Snippely. Mas agora eu achei e compartilho como usa ele junto com Dropbox.

~/Library/Preferences/com.snippely.{parte variável pela instalação}/Local\ Store/

Agora é entrar na pasta, apagar o application.db e criar o link simbólico:

ln -s ~/Dropbox/Snippely/application.db .

* lembrando que o caminho para seu arquivo application.db no Dropbox pode ser diferente, é só você definir ai o caminho como você usa.

Valeu!

Salve,

Estou usando agora o MacOSX e, por hora, o melhor gerenciador de ambiente de desenvolvimento PHP para MacOSX é o MAMP e pra complementar tem o MAMP Pro que te dá mais ferramentas bacanas. Pra quem está no Linux acho que não precisa de um gerenciador por que o apt-get/yum já faz um ótimo trabalho para gerenciar esses pacotes/programas e é super fácil, ponto para o Linux.

Meu problema foi: no MAMP eu não achei como instalar ( ferramenta nele ) as extensões, coisa que no Wamp e outros tem. Isso é um super #fail. No Linux seria via pecl já estaria tudo lindo, mas no MacOSX não tem local fixo de instalação dos pacotes do PHP, ai deixa a merda fedida de usar.

Como eu tinha instala o PHP pelo Brew antes, ele continua instalado aqui, para saber basta ver se existe o comando php, via terminal. Se existir será fácil:

sudo pecl install mongo

Ele instala aqui: /usr/lib/php/extensions/no-debug-non-zts-20090626/
Depois é criar o link simbólico para a pasta de extensão do MAMP que fica aqui: /Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/

* O pecl que vem no MAMP não rodou aqui, dá erro no Config.php, que eu não cheguei a procurar pois já estou com o pecl instalado aqui, mesmo sendo de outra instalação.

Depois que criou o link simbólico, agora é necessário adicionar no php.ini. Isso vai depender de duas coisas: qual versão do PHP está usando e se está usando o MAMP Pro. Seu php.ini será um desses:

/Applications/MAMP/bin/php/php5.2.17/conf/php.ini
/Applications/MAMP/bin/php/php5.3.6/conf/php.ini
/Library/Application Support/appsolute/MAMP PRO/conf/php.ini

Ai voce adiciona: extension=mongo.so

E reinicia o MAMP e pronto. Espero que eles consigam fazer uma ferramenta para realizar essa tarefa por que o valor não é tão baratinho e é algo de extrema importância.

Valeu!

Salve,

Com problema ao especificar o valor do frete para o Pagseguro, demorei mas consegui. Infelizmente a documentação não deixa de forma clara. Então segue a dica:

Na configuração do frete no painel do Pagseguro, escolha o tipo Frete fixo e Adicional com valor fixo informe 0 ( zero ) para o Valor fixo para os adicionais, na adição dos itens, informe o valor do frete no primeiro item e nos demais informe 0 ( zero ). Pronto, agora ele vai aceitar lá como valor de frete o que você informou.

Para calcular o frete direto com o webservice dos Correios/ECT com PHP use a biblioteca que peguei do iMasters e adaptei ( refatorei várias coisas e adicionei funcionalidades ) aqui:  https://github.com/silasrm/correios

Salve,

Precisei limpar todos os campos de um form e achei que o jQuery teria algo já pronto, mas não encontrei, com isso nas pesquisa achei a solução super simples do Pau Sanchez:

jQuery.fn.reset = function () {
  $(this).each (function() { this.reset(); });
}

Eu coloquei num arquivo, chamei e usei: $(‘#meu_form’).reset();

Muito fácil!

Salve,

Que o Dropbox é uma mão na roda com sua solução de nuvem integrada ao sistema de arquivo fácil e rápido todos sabem, então juntando isso com o Snippely, ferramenta para guardar Snippets bem fácil, bonita e muito boa feita em Adobe Air, é algo muito bom e simples de integrar.

* O nome da pasta do Snippely dentro da .appdata pode ser diferente entre usuários/máquinas

  1. Instale o Snippely
  2. Configure sua conta do Dropbox
  3. Mova o arquivo ~/.appdata/com.snippely.6E4C758165F11BBEC90F106AA88CF53EB51547B1.1/Local\ Store/application.db para sua pasta do Dropbox: mv ~/.appdata/com.snippely.6E4C758165F11BBEC90F106AA88CF53EB51547B1.1/Local\ Store/application.db ~/Dropbox/Snippely/application.db
  4. Crie um link simbólico desse arquivo no Dropbox: ln -s ~/Dropbox/Snippely/application.db ~/.appdata/com.snippely.6E4C758165F11BBEC90F106AA88CF53EB51547B1.1/Local\ Store/application.db

Pronto, agora é só criar e ao salvar o Dropbox atualizará seu banco de dados de snippets. Onde você desejar usar, é só fazer o link simbólico do arquivo.

Salve,

Atualizado: tive problemas ao instalar no Ubuntu 11.04, não sei a causa de não funcionar como antes, mesmo passando o ORACLE_HOME ele não estava pegando, ai descobrir que o erro erá por está fixado um padrão de diretório onde deve-se colocar os arquivos do instant client, com isso tive que seguir o padrão, eliminando 2 passos e deixando mais organizado a instalação.

Receita rápida para funcionar o suporte a Oracle no PHP, no Ubuntu Linux, usando versão 10.10 ou 11.04 64bits.

Primeiro baixe os arquivos do Instant Client aqui, versão 10.2.0.5 ou 11.2.0.2, eles são:

  • basic-10.2.0.5.0-linux-x64.zip
  • sqlplus-10.2.0.5.0-linux-x64.zip
  • sdk-10.2.0.5.0-linux-x64.zip

Vá para a pasta /usr e crie a seguinte estrutura:

cd /usr/lib
sudo mkdir -p oracle/10.2.0.5/client
cd oracle/10.2.0.5/client

Descompacte os arquivos baixados, lembrando que precisa está como root ou usando o sudo:

sudo unzip basic-10.2.0.5.0-linux-x64.zip
sudo unzip sdk-10.2.0.5.0-linux-x64.zip
sudo unzip sqlplus-10.2.0.5.0-linux-x64.zip

Mova tudo da pasta instantclient_10_2 para a atual e apague a instantclient_10_2

sudo mv instantclient_10_2/* .
sudo rm -rf instantclient_10_2/

Crie os links simbólicos:

sudo ln -s /usr/lib/oracle/10.2.0.5/client/libclntsh.so.10.1 /usr/lib/oracle/10.2.0.5/client/libclntsh.so
sudo ln -s /usr/lib/oracle/10.2.0.5/client/libocci.so.10.1 /usr/lib/oracle/10.2.0.5/client/libocci.so
sudo ln -s /usr/lib/oracle/10.2.0.5/client/ /usr/lib/oracle/10.2.0.5/client/lib
sudo ln -s /usr/lib/oracle/10.2.0.5/client/sdk/include /usr/lib/oracle/10.2.0.5/client/include

Instale a extensão oci8 via PECL:

sudo pecl install oci8

Ele vai pedir o caminho da do Instant Cliente, então você informa:

instantclient,/usr/lib/oracle/10.2.0.5/client/

Adicione a extensão no php.ini:

extension=oci8.so

Baixe o pacote PDO_OCI, via PECL, para compilarmos:

sudo pecl download pdo_oci

Descompacte e entre na pasta do PDO_OCI:

sudo tar xvfz PDO_OCI-1.0.tgz
cd PDO_OCI-1.0

Agora siga os passos da compilação:

sudo phpize
sudo ./configure --with-pdo-oci=instantclient,/usr,10.2.0.5

Se você teve problema no passo acima, principalmente em versão 32bits, abra o arquivo configure, procure por pdo_driver e nas linhas desse bloco ( IF/ELSE IF/ELSE ), mude os caminhos da pasta do php onde tem php/ext/ para php5/ext/ pois no Ubuntu a pasta do PHP é php5 em vez de php.

sudo make
sudo make install

Adicione a extensão no php.ini:

extension=pdo_oci.so

Recarregue o apache:

sudo service apache2 reload

** Plus:

Adicione o sqlplus no /usr/bin para poder executar/conectar/fazer consultas via terminal:

sudo ln -s /usr/lib/oracle/10.2.0.5/client/sqlplus /usr/bin/

Edite o arquivo /etc/ld.so.conf e adicione o caminho para a pasta de instalação do InstantClient /usr/lib/oracle/10.2.0.5/client/ e depois recarregue a ldconfig:

sudo vim /etc/ld.so.conf
sudo ldconfig

Pronto. Crie um arquivo chamando o phpinfo() e veja se está instalado o suporte a Oracle.

Meu ambiente de trabalho em 7 itens

Salve,

Após o Duodraco ( @duodraco ) iniciar o meme para que as pessoas indicadas falem sobre o ambiente de trabalho, chegou a minha vez, convidado pelo Bruno Gomes ( @brgomes ).

Segue meu ambiente:

1 – S.O.: Ubuntu ( atualmente 10.10 ). Simplesmente meu apaixonei pelo pequeno Linux, que chegou arrebentando e conquistando milhões de usuários de outras distros e novos usuários para o mundo Linux. Chegou e trás ousadia em criações e melhorias para o Linux. Simplesmente me dá agilidade e ferramentas muito boas que sem elas eu seria um nada, coisas que não consigo viver sem :D .

2 – IDE: Netbeans ( atualmente 6.9 ). Usei várias IDE’s e editores, depois migrei para o Eclipse como IDE principal, mas nunca deixei de experimentar outras ( como as da Active State, KDevelop e outras ), e ainda usando editores para coisas simples e rápidas. Mas depois que tentei usar o Netbeans para PHP ( já tinha usado ele completo pra java, quando trabalhei com a linguagem, e achava hiper-pesado ) e vi que era leve, tinha ótimos recursos e ainda é multiplataforma como o Eclipse, não voltei mais para o Eclipse e sou feliz.

3 – Git: já usei subversion antes de começar com git e quando trabalhava com Java. Como na empresa meu superior não liga e não apoia versionamento ( maluco né? ) e depois de criar um repositório para os sistemas da empresa e ele apagar, desistir e comecei no git. Comecei com o belo github, me ensinou muito, criei meus repositório na minha máquina do trabalho. Depois fiz o Workshop de Git com a School of Net do @wesleywillians e aprende coisa pra caramba e fiquei mais apaixonado, sensacional. Nunca mais usei subversion, é ruim ou bom isso? :D

4 – Filezilla: o monstro do FTP. No lado bom. Conheci, achei fácil, simples e eficiente. De lá pra cá só dá ele. Onde vou ele vai, mais uma paixão. Prove e comprove.

5 – Navegadores: Firefox é minha paixão. Acho sensacional, apesar de comer muita memória :( . Tenho o Chrome, para quando tiver que abrir sistemas pra testes, testar a interface e etc, mais leve, mas poucas coisas me agradam. Opera, ainda não reinstalei :( . IE 9 numa VM com Windows. Infelizmente ainda tem trabalhos para se testar no IE anterior ao 9, e ai é dá os pulos diversos e chatos.

6 – Gerenciamento de Tarefas: Getting Things GNOME, até achar um melhor. Não conseguia me acostumar com nenhum online, plugin de navegador, desktop e etc. O GTG me deixou feliz, por ser simples, fácil e rápido. Se encontrar um melhor quem sabe ou troco :D

7 – Terminal + Guake: sem esse eu não sou nada. Seja pra mover arquivos ( bem mais rápidos que abrir gerenciador de arquivos ou ir pela IDE ), seja pra editar algo que está fora do projeto, seja pra acessar o mysql ou SQL Server ( tsql roda beleza, mas só terminal ) ou qualquer outra atividade que seja trabalhosa abrir outra ferramenta. Apenas um F12 ele surge, aperta F12 de novo ele esconde.

Extra – Podcast e músicas. Guanacast, Nerdcast, Rapaduracast e outros, além das músicas dos mais diversos estilos, para tornar as coisas mais felizes, dá risada e parecer maluco para os outros que não estão escutando. Simplesmente muito bom.

Fica ai o convite para continuar o meme:

@hugohenrique

@mlalbuquerque

@marcelorodrigo

@plcosta

@gpupo

Valeu!

Salve,

Fiz esse artigo aqui mostrando o arquivo que ele procura para tentar instalar e como instalar manual, confira aqui: http://silas.theducks.com.br/2010/01/13/hplip-plugin/

Mas agora eu consegui resolver para instalar sem ter tanto trabalho. Pois apesar desse contorno que fiz e consegui instalar uma vez, agora ao selecionar o arquivo .run baixado o botão de Next não ativa, não sei o motivo e nem o programa informa, com isso dediquei meu tempo em conseguir passar sobre o proxy.

Apesar de não trabalhar, mas já saber um básico de python e estudar a linguagem, fui olhar os arquivos onde dá erro. Cheguei numa função que usa urllib para pega as informações. O problema agora é saber por que ele não pega as configurações de proxy do sistema. Para verificar se está com as configurações de proxy, no terminal faça:

env | grep -i proxy

E retornará algo como:

NO_PROXY=localhost,127.0.0.0/8,*.local
http_proxy=http://10.0.0.9:8080/
FTP_PROXY=ftp://10.0.0.9:8080/
ftp_proxy=ftp://10.0.0.9:8080/
all_proxy=socks://10.0.0.9:8080/
ALL_PROXY=socks://10.0.0.9:8080/
HTTPS_PROXY=https://10.0.0.9:8080/
https_proxy=https://10.0.0.9:8080/
no_proxy=localhost,127.0.0.0/8,*.local
HTTP_PROXY=http://10.0.0.9:8080/

Tudo certinho. O wget pega essas configurações ou as informadas no ~/.wgetrc mas esse urllib não pega. Então procurando no google achei essa página informando que isso seria um bug do urllib, mas por incrível que pareça não é. Ele simplesmente usa uma outra maneira de setar proxy, algo tão bizarro que é difícil de acreditar, então usei assim, no terminal:

sudo http_proxy=http://10.0.0.9:8080 hp-plugin

Não me pergunte o por que dele precisar que faça isso antes da chamada do comando. Importa que funcionou e não quero me preocupar por agora em saber as decisões bizarras dos outros :mrgreen:

Ai vai abrir a parte gráfica, só apertar Next e 10s depois está instalado, dependendo é claro da sua conexão, mas o arquivo é tão pequeno ( 1.7MB ) que seja bem rápido mesmo.

Agora você tem uma nova maneira ou a maneira mais correta de instalar plugin/driver usando HPLip mesmo estando sobre proxy.

Valeu!

Salve,

Sempre desejei investir tempo no aprendizado e trabalhos com Python. Estudo ela, mas em ritmo lento, já tenho livro e só faltava um curso/mini-curso pra dá um empurrão e aprender com a experiência de alguém muito bom em Python. Com isso participei do mini-curso de Python ocorrido no Linguágil 2010, o mestre foi o Marco André. Ótimo instrutor, gostei pra caramba do mini-curso, foi sensacional e me deixou empolgado.

Ai estou testando a criação de aplicação desktop e escolhi o PyGTK pra isso. Depois quero ver a parte de web com o Django, mas minha paixão pra web é o PHP, então vamos começar por desktop mesmo.

Procurei uns sites mostrando o início do uso do PyGTK e foi bacana e rápido aprender, muito fácil. Segue meu código simples:

import pygtk
pygtk.require('2.0')
import gtk

class mainWindow:
 def __init__( self ):
 #janela principal
 self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
 self.window.set_title('IlA')

 #caixa vertical para criacao de N elementos/widgets
 self.vBox = gtk.VBox()

 #label
 self.label = gtk.Label('Eu sou um label')

 #caixa de entrada
 self.iBox = gtk.Entry()

 #caixa horizontal
 self.hBox = gtk.HBox()

 #botao
 self.button = gtk.Button('Ola Mundo')
 self.button.connect('clicked', self.clickedButton)

 #adiciona elementos
 ##label
 self.hBox.pack_start(self.label, expand=False, fill=True)
 ##caixa de entrada
 self.hBox.pack_start(self.iBox, expand=False, fill=True)
 ##caixa horizontal
 self.vBox.pack_start(self.hBox, expand=False, fill=True)
 ##botao
 self.vBox.pack_start(self.button, expand=False, fill=True)

 self.window.add(self.vBox)
 self.window.connect('destroy', self.closeAll)
 self.window.show_all()

 def clickedButton( self, button ):
 print self.iBox.get_text()

 def closeAll( self, window ):
 self.window.hide()
 gtk.main_quit()

if __name__ == '__main__':
 mainWindow()
 gtk.main()

Aqui tem um curso de Python e tem usando PyGTK: http://infog.casoft.info/?tag=aulas

Aqui a documentação do PyGTK: http://pygtk.org/docs/pygtk/

Valeu e vamos que vamos!

Powered by WordPress | Theme: Motion by 85ideas.

Bad Behavior has blocked 12 access attempts in the last 7 days.