Iniciando o Sublime do terminal no Mac OS

Apesar de gostar do Notepad++ e do Komodo, eu não me arrependo de ter mudado para o Sublime Text 2, comecei a usar ele no Linux e continuo no Mac (não sei como é o desempenho dele no Windows, mas deve ser bacana também).

Com o tempo de uso, executar tarefas no terminal é bem mais rápido do que em uma interface gráfica, então é comum estar sempre com um terminal aberto, certo?

Que tal iniciar o Sublime (ou qualquer outro aplicativo que você usa com frequência) através do terminal?

Quer abrir o projeto Eu Compraria?

sublime www/eucompraria

Ou ainda:

cd www/eucompraria
sublime.

Entendeu, né?

 

Executando o Sublime pelo terminal no Mac OS

Primeiro você precisa saber onde está instalado o Sublime, se você instalou no local padrão (Applications) e digitar:

open /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl

Se o Sublime abriu, você está pronto para criar um atalho. Se não abriu, você precisa descobrir onde ele está instalado para pegar o caminhodo "subl".

Para uma aplicação ficar disponível diretamente no terminal ela deve estar em algum diretório listado nas configurações do seu bash_profile, isto é assunto para outro post e provavelmente o seu /usr/local/bin é um destes diretórios, portanto vamos para o próximo passo: criar um link simbólico.

Digite no terminal:

ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/sublime

Caso você queira mudar o atalho que você deverá digitar no terminal, mude o sublime negritado no comando aí em cima para o que você desejar.

Pronto, seu sublime deve estar funcionando diretamente pelo terminal do seu mac, para testar digite

sublime

Ou ainda:

sublime nome-de-um-diretorio

 

Espero ter ajudado!

PHP short_open_tag

Uma vez um colega me disse que os erros bobos são os mais difíceis de serem detectados, e é onde acabamos perdendo mais tempo – por isso eu acho pair programming uma ótima idéia.

Resolvi escrever este post para que os leitores, quando se depararem com situação parecida, economizem o precisoso tempo indo direto a solução e não fazendo os testes como eu fiz. O problema: meu apache parou de executar algumas tags do PHP, imprimindo o código PHP na tela.

 

No Mac OS configurei o Apache, PHP, NodeJS e o MongoDB. Tesstei e todos estavam funcionando, porém vários dos meus projetos, como o And After e o Eu Compraria deixaram de funcionar corretamente. As páginas abriam, algumas sem CSS, tudo estranho! Fui verificar o código e o PHP não estava interpretando nada dentro do e estava imprimindo o código no HTML.

Com alguns testes descobri que <?php funcionava e <? não, com mais um pouco de pesquisa descobri uma configuração que nunca dei importância no PHP, a short_open_tag.

 

PHP short_open_tag

short_open_tag é a configuração que permite o atalho de sintaxe <? ser interpretado da mesma forma que <?php.

Como habilitar ou desabilitar a short_open_tag?

Esta configuração está no php.ini, portanto abra ele no seu editor de texto e faça uma busca por "short_open_tag", encontre a linha e altere o valor da configuração.

 

Não sei o motivo, mas no Mac OS o padrão (pelo menos da minha instalação) foi a short_open_tag desabilitada. Quer saber mais sobre o assunto? Documentação do PHP.

Javascript Rock

O  Dmitry Baranovskiy's escreveu um RAP do Javascript e John Fawcett fez esta maravilhosa obra de transformar a letra em rock!

Tomei a liberdade de traduzir a letra para o português, fiquem a vontade para sugerir melhorias na tradução.

Letra – Javasript Rock

You code in JS, but you mixing the types
And always forget the syntax for "splice".
To type "double equal" is like rolling the dice
And you scared to death … of prototypes

Você programa em JS mas você mistura os tipos
E você sempre esquece a sintaxe do splice
Escrever "igual igual" é como jogar dados
E você morre de medo de usar prototype


It's time to stand up and get some respect,
Just go to ECMA and start reading spec.
Unpuzzle, unlock it, uncode and decrypt
And gain yourself power of true JavaScript

É hora e levantar e ganhar algum respeito
Vá para o ECMA e comece a ler as especificações
Desembaralhe, desbloqueie, uncode e decodifique
E ganhe você mesmo o poder do verdadeiro Javascript

You add number to string and string to array
Divide it by object (you know it's ok)
The prototype chain you can see through the code…
It was a great journey from Netscape to Node.

Você adiciona número a string e string ao array
Divide por um objeto (você sabe que está ok)
Com o prototype você pode ver todo o código
Foi uma grande jornada do Netscape ao Node

 

O vídeo foi dica do grande Clécio no Facebook.

Se você gosta de músicas falando de tecnologia precisa conhecer o SEO RAP.

Zen Coding agora é Emmet

Emmet é uma ferramenta que substitui o Zen Coding, uma série de snippets de código que tornam o desenvolvimento mais ágil.

 

Nunca fui um adepto fervoroso do Zen Coding, tinha ele instalado mas não aproveitava muito o que ele tinha para oferecer. Agora, trabalhando apenas como freelancer, resolvi apostar mais no Emmet para ver se me ajuda a produzir mais.

Para mais informação, leia também:

MySQL error #2002 – No such file or directory

Ainda configurando meu ambiente de trabalho no Mac OS X, me deparei com um problema que eu não conhecia no MySQL: Error #2002 – No such file or directory.

O arquivo nao encontrado é o MySQL socket, então seu PHP está apontando para um arquivo de socket inexistente.

O primeiro passo é descobrir onde está o mysql.socket, para isso você precisa estar com o MySQL server rodando e abrir um terminal do MySQL. No terminal do MySQL digite status, e você terá informações parecidas com estas:

Connection id: 4 
Current database:
Current user: guilhermeserrano@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.5.28 MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 42 min 26 sec

O UNIX socket mostra o local correto do seu arquivo de socket, agora você só precisa fazer seu PHP apontar para este mesmo arquivo. Abra seu PHP.ini e procure pelos atributos listados abaixo, substituindo pelo valor correto (o do status no terminal do seu MySQL):

  • pdo_mysql.default_socket
  • mysql.default_socket
  • mysqli.default_socket
  • pdo_mysql.default_socket

Agora é só reiniciar seu Apache para aplicar as novas configurações e você estará apto a conectar ao MySQL com o PHP.

Dúvidas e sugestões nos comentários. 🙂