sábado, 3 de março de 2012

List


O comando list cria variáveis com os nomes passadas como parâmetros, e as popula com os valores do array que também é passado.

Exemplo:


$info = array('Café', 'marrom', 'cafeína');
list($bebida, $cor, $substancia) = $info;
echo "$bebida é $cor e $substancia o faz especial.n";


Retorno: Café é marrom e cafeína o faz especial.

sexta-feira, 2 de março de 2012

Orelhodoria


Outro dia desses, tava no ônibus, quando vi passar um carro de uma empresa na rua. Nesse carro, tinha uma daquelas mensagens 'como estou dirigindo?', e o telefone para contato. No lado do telefone, tinha o nome do departamento responsável: Ouvidoria.

Fiquei pensando nesse nome, Ouvidoria. Acho que eles inventaram esse nome só pro pessoal se sentir bem (ou menos mal) trabalhando nesse setor, já que, a julgar pelo nome, o que eles fazem lá é ouvir as reclamações das pessoas o tempo todo.

Será que um digitador trabalharia no setor de Dedolodoria? Se bem que digitador não é realmente um emprego...

sexta-feira, 10 de fevereiro de 2012

Função para limpar texto em javascript


Ontem, precisei de uma função em javascript pra tirar acentos e caracteres especiais de textos, tipo essa que o wordpress faz quando vamos criar um novo post.
O problema não era só trocar os caracteres especiais por traços, e sim trocar as letras acentuadas pelas respectivas sem acentos. Acabei achando  nesse blog o que eu precisava pra fazer essa parte.
O resto foi com expressões regulares.
A função ficou assim:
function limpar(texto)
{
 texto = texto.replace(/^\s+|\s+$/g, "");//tira espaços do inicio e do fim
 texto = texto.replace(/\s{2,}/g, " ");//tira espaços duplicados
 
 replacements = {
  "[áãàäâª]": "a",
  "[éèëê]": "e",
  "[íìï]": "i",
  "[óòôõö]": "o",
  "[ùúûü]": "u",
  "[ç]": "c"
 };
 regex = {};
 for (key in replacements) {
   regex[key] = new RegExp(key, 'g');
 }

 for(key in replacements){
   texto = texto.replace(regex[key], replacements[key]);//tira caracteres acentuados
 }
 texto = texto.replace(/[^A-Za-z0-9]/g, "-");//tira caracteres especiais
 texto = texto.toLowerCase();//coloca em minusculo
 return texto;
}

Constantes Mágicas


São constantes definidas pelo PHP e que não podem ser alteradas. Algumas podem mudar conforme o lugar onde são utilizadas.

Exemplo:


__LINE__;//linha atual do script
__FILE__;//caminho completo e nome do arquivo.se utilizado dentro de um include, o nome do arquivo incluido será utilizado.
__DIR__;//pasta do arquivo
__FUNCTION__;//nome da função
__CLASS__;//nome da classe
__TRAIT__;//nome do trait (php 5.4.0)
__METHOD__;//nome do método da classe
__NAMESPACE__;//nome do namespace


quinta-feira, 15 de dezembro de 2011

Algumas funções do MySQL


Contar registros duplicados:


SELECT id_cliente, count(id_cliente) 
FROM  clientes 
GROUP BY id_cliente 
HAVING count( id_cliente) > 1


Mostrar conexões ativas:
SHOW PROCESSLIST;


Gerar sql para otimizar várias tabelas:
SELECT CONCAT('OPTIMIZE TABLE ',TABLE_NAME,'; ')AS tabela from information_schema.TABLES WHERE TABLE_SCHEMA = 'nome_do_bd’


Gerar sql para truncar várias tabelas:
SELECT concat('TRUNCATE ',TABLE_NAME,' ;') FROM information_schema.`TABLES` T WHERE TABLE_SCHEMA = 'nome_da_base'

Comando find_in_set, para quando precisar procurar um registro em uma lista de valores (similar ao IN(), mas passando uma string já formatada com as virgulas):

select id_cliente, Find_In_Set(id_cliente, '172,171,182,183') FROM clientes

Contar horas entre datas:
SELECT TIMEDIFF(STR_TO_DATE('19/01/2011 00:00:00', '%d/%m/%Y %H:%i:%s'),now());


Insert-update: 

REPLACE INTO acesso (login, ip, data_ultimo_acesso )VALUES ('login','192.168.0.1', now());


quarta-feira, 16 de novembro de 2011

War


When I thought that I fought this war alone

You were there by my side on the frontline

And we fought to believe the impossible

When I thought that I fought this war alone

We were one with our destinies entwined

When I thought that I fought without a cause

You gave me the reason why

quinta-feira, 10 de novembro de 2011

Att


Acho engraçado quando as pessoas colocam nas assinaturas de e-mail 'Atenciosamente'. Principalmente quando o e-mail enviado se trata de alguma reclamação, ou com erros de digitação. Isso é contraditório. Se a pessoa escreveu 'atenciosamente', como ela digita errado, trocando as letras? E como alguém reclama de algo 'atenciosamente'?

Sem contar quando abreviam, e colocam 'Att'. Isso mostra que a pessoa dedicou tanta atenção ao e-mail...

Uma coisa que eu sempre detestei foram mensagens de aviso de recebimento. Não aquelas que a gente configura pra receber um aviso de que leram o e-mail, mas sim aquelas que a pessoa que recebe envia automaticamente, normalmente com aviso de que ela tá de férias, ou que tá fora do escritório. Isso ficou particularmente irritante quando comecei a monitorar uma conta de e-mail usada pra enviar uma newsletter pra mais de 20 mil endereços, mas aí eu lembrei que também detesto newsletter, e pensei 'bem feito pra mim'.

quarta-feira, 9 de novembro de 2011

Fui Guilhotinado

É estranho, o verbo guilhotinar não pode ser conjugado em todos os tempos; pode-se dizer: eu serei guilhotinado, tu serás guilhotinado, mas não se diz eu fui guilhotinado.

segunda-feira, 26 de setembro de 2011

24-6 Ora essa


, eu já lavava a louça antes, quando morava com o pai. Mas acho que nunca percebi quanta louça se suja porque não tinha acompanhado todo o processo de cozinhar e sujar a louça (exceto na hora de comer). A gente passa mais tempo sujando a louça do que comendo...
Se olhar por este lado, a cozinha nem deveria se chamar 'cozinha', e sim 'lavanderia de louça', ou algo parecido.

Agora (faz um mês...) temos dois gatos em casa. Um casal. Um deles se chama 'Saidaqui', e a outra, 'Tschiii!'. Tá, na verdade não são esses os nomes deles, mas como eu passo o dia todo falando assim com eles, provavelmente eles vão se convencer de que esses são os nomes deles.
Mas é bom ter um pouco de movimento dentro de casa. Quando eles não tão tentando subir na mesa da cozinha, entrar no banheiro ou caminhar em cima do teclado, eles são divertidos. Tem um colchão que fica em pé, atrás da porta do quarto, e que eles adoram escalar. Nos primeiros dias, eles apanhavam pra escalar, agora é dois toques e já tão lá em cima. Também tem dois ratos de brinquedo que eles adoram, e que a gente usa como isca quando queremos fazer eles irem pra algum lugar. A gente joga o rato e eles vão atrás, enquanto isso fechamos a porta. Dá pena, ás vezes, mas eles não tem pena quando tão caminhando no meu teclado e desligam o meu computador...

A gente tem dois vizinhos. Na casa ao lado, tem um casal que até hoje não sabemos se é um casal. Só sabemos que eles brigam, e muito. Ás vezes nós temos que ligar o rádio pra não ouvir as discussões. No outro lado, moram uns corinthianos. A gente sabe que são corinthianos porque quando o corinthians ganha, eles fazem uma baderna, e quando perde, é tanto silêncio que dá pra ouvir os vizinhos do outro lado brigando (mentira, sempre dá pra ouvir, com ou sem corinthianos). No dia que o corinthians ganhou o paulistão, foi muito estranho. Tinha gente pela rua gritando o nome do time (não vou digitar corinthians de novo...), gente bebendo na rua, foguetório... até hoje eu nunca vi uma revolução popular, mas acho que se acontecesse e o povo ganhasse, seria algo bem parecido.

Os estabelecimentos mais importantes pro povo daqui, são, nesta ordem:
-Bar;
-Pizzaria;
-Padaria;
-Lanchonete (ao invés de lancheria...);
Depois vem coisas como posto de saúde, hospital, etc. Todo santo dia alguém joga um panfleto de uma pizzaria diferente na nossa porta, e eu até acostumei com isso. Ás vezes fico até meio triste, quando olho na porta e não tem nada.

Aqui não tem cachorro na rua. E até hoje só ouvi um cachorro na casa de um vizinho latindo, mas não sei onde era. Mas em compensação, as motos são muito barulhentas. Eu adorava aquelas motos grandes, que fazem tanto barulho quanto um caminhão, mas confesso que cansei delas. Eu nem saio mais na janela pra ver quando uma delas tá passando, eu até torço pra que vá embora logo. Ô saco!

O feijão aqui carioca é mais barato que o feijão preto. E tem uma tal laranja 'bahia', que é a mesma de umbigo. Aqui tem tanta gente de fora que os forasteiros já começaram a batizar as coisas com os nomes de casa, talvez pra aliviar um pouco a saudade.

Aliás, tem uma história que diz que não tem mais ninguém no nordeste. Veio todo mundo pra cá. Mas isso deve ser exagero.

sexta-feira, 23 de setembro de 2011

5-6 Coisas que eu não sei...


Gorduras Trans:

Gordura trans age como a gordura saturada ao elevar o nível da lipoproteína (concentração endoplasmática) de baixa densidade no sangue (LDL ou "colesterol ruim"), isso faz com que os níveis de absorção da proteína de alta densidade HDL e o colesterol sejam pasteurizados, sendo que esta é responsável pela remoção de LDL do sangue. Isso aumenta as chances do aparecimento de um ateroma, isto é, a placa de gordura no interior de veias e artérias, que pode causar infarto ou derrame cerebral.

Está associada também à obesidade, visto que é utilizada em larga escala em quase todos os alimentos. Sabe-se pouco sobre como a gordura trans é incorporada no tecido cerebral do feto e membranas celulares. Resumindo, esse tipo de gordura causa o aumento do colesterol.

Glúten:

As pessoas portadoras de doença celíaca têm uma hipersensibilidade ao glúten. Nestas pessoas o glúten provoca danos na mucosa do intestino delgado, impedindo uma digestão normal. Após eliminar o glúten da dieta, o intestino volta a funcionar com normalidade. Outra manifestação de intolerância é a presença de lesões na pele chamada dermatite herpetiforme.

Os autistas podem ser sensíveis ao glúten e à caseína (uma proteína presente no leite). Ambas as substâncias parecem ter um efeito opiáceo nestes indivíduos.

Foi comprovado que quando ingerido em excesso, o glúten causa diminuição da produção da serotonina, o que leva a um quadro de depressão.

Açúcar Invertido:

O açúcar invertido é um ingrediente utilizado pela indústria alimentícia e consiste em um xarope quimicamente produzido a partir do açúcar comum, a sacarose. É usado principalmente na fabricação de balas, doces e sorvetes, para evitar que o açúcar cristalize e dê ao produto final uma desagradável consistência arenosa.

Além de conferir textura adequada aos produtos em que é utilizado como matéria prima, o açúcar invertido também auxilia na formação de cor e de aroma, através da chamada Reação de Maillard ou escurecimento não enzimático.

A inversão do açúcar provoca a quebra da sacarose em dois açúcares que formam a sua molécula: glicose e frutose. A fórmula da reação química é a seguinte:

O termo invertido decorre de uma característica física da sacarose, que se altera durante o processo de hidrólise: originalmente, um raio de luz polarizada que incide sobre a sacarose é desviado para a direita, ou seja, a sacarose é uma molécula dextrógira (D, +). Após o processamento de inversão, a glicose (D, +) e a frutose (L, -) resultantes têm a propriedade conjunta de desviarem a luz para a esquerda; ou seja, o açúcar invertido é levógiro.

(eu sempre achei que açúcar invertido fosse sal...)

15-9 Um sonho de uma noite de verão


Hoje eu sonhei que eu tinha ganho na mega-sena.
Daí eu ia de ônibus buscar o meu prêmio. Só que eu era sequestrado (sem trema) por alienígenas preto-e-branco.
Eu achei que eles se comunicavam através de um aparelhinho que um deles carregava na cintura (que emitia sons que lembravam o som de uma tabuinha batendo em outra, repetidamente, sendo transmitido através de um radinho de pilha mal-sintonizado em uma rádio AM e com a pilha meio fraca, além de outros sons repetidos), mas logo descobri que eles também falavam, embora não dissessem nada (embora falassem muito). Eu perguntava o que eles queriam comigo, mas eles respondiam em um idioma estranho. Eu só entendia que eles diziam 'somos nós', de um jeito estranho.
Quando eles me forçavam a chamá-los de 'mano', eu morria e acordava.

Hoje eu sonhei que eu ganhava na mega-sena.
Daí eu tinha um ataque cardíaco e morria. Daí acordei.

quarta-feira, 31 de agosto de 2011

Façanha #002


Quando trabalhava estagiava na Alisul, no CPD (centro de perda de dados), também fiz várias coisas das quais não me orgulho muito, mas que foram engraçadas, ou pelo menos são agora, quando lembro delas.

Certa vez, eles tinham comprado uma impressora enorme, que imprimia, escaneava, passava fax, fotocópia, acessava a rede e servia cafezinho. Acho que custava mais que um carro aquela impressora. Ela tinha entrada usb, entrada serial, de rede, etc. E lá fui eu tentar ligar a tal da impressora, só que não funcionava de jeito nenhum. Depois de muito quebrar a cabeça, chamei o colega, que descobriu que eu tinha ligado o cabo de rede na porta usb...

Teve a vez do toner. Eu nunca tinha trocado um toner de impressora antes, e me mandaram fazer isso, lá no último depósito no fim da empresa. No caminho, fui olhando aquele negócio, quando vi uma fitinha com uma ponta amarela, eu acho. E o que a gente faz quando vê uma fitinha? Ora, a gente puxa. E eu puxei a bendita fita, mas não era pra puxar, e também não dava pra pôr de volta. Tive sorte de não ter puxado muito,  e o toner serviu na impressora mesmo assim, mas imagina o desespero de estragar aquele negócio que devia custar mais do que o meu salário...

Outra vez, logo que entrei e não conhecia quase ninguém lá, me mandaram levar um cara que estava instalando um sistema de segurança na sala do Fulano (não lembro o nome dele). Só que o detalhe, é que eu não conhecia o Fulano ainda, e mal sabia onde era a sala dele. Quando cheguei na sala, tinha umas 4 pessoas que eu não conhecia, e nem sabia se o Fulano estava ali, apenas deduzi que tava porque me disseram que aquela era a sala dele. Aí nós entramos na sala, e eu falei, olhando pra todo mundo, que aquele era o Cicrano do sistema de segurança e que precisava instalar o programa no computador pra monitorar as câmeras. Por sorte,  o Fulano levantou do computador e se apresentou pro Cicrano... imagino o que teria acontecido se o Fulano não estivesse na sala, ninguém ia entender nada, muito menos eu...

A história das fontes queimadas não tem muita graça. Foi só que eu peguei um micro pra formatar, e na hora de ligar ele na fonte de luz da bancada, peguei o cabo que estava ligado na rede 220 e liguei na fonte que era 110, o que fez a fonte estourar e o CPD ficar cheio de fumaça e cheiro de queimado. Duas vezes.

Teve também da colega que me chamou porque o micro dela tava fazendo um barulho estranho. Ela ligou no cpd, e como eu disse, falou que o computador dela tava fazendo um barulho estranho. Aí eu disse que já passava na sala dela pra olhar, e desliguei, mas como eu sempre fui péssimo com o tal de telefone, esqueci de perguntar quem era, e não reconheci pela voz. E aí, como saber quem era? Daí, eu fui andando pelo corredor, bem devagarinho, sem fazer barulho, pra ver se ouvia algum barulho diferente, e no fim consegui ouvir o barulho de um cooler que estava batendo em algum cabo dentro do gabinete.

Façanha #001


- Aí, eu saí tarde do trabalho, e fui correndo pra chegar logo em casa, mas por causa da pressa, acabei perdendo a carteira de motorista.

-Como? te pegaram na sinaleira, ou em uma blitz?

-Não, eu não tava dirigindo. Tenho a carteira de motorista mas a última vez que dirigi um carro foi há uns 3 ou 4 anos.

-Então perdeu como?

-Eu tava correndo pra chegar logo na parada, aí a mochila abriu e caiu um livro, e a minha carteira. Dentro da carteira tava a carteira de motorista, e 50 pilas da Vanessa... ou seja, eu sou o primeiro ser-humano que perde a carteira de motorista por correr à pé.

quarta-feira, 24 de agosto de 2011

(speaking/whisper)


Though I can't know for sure, how things worked out for us
No matter how hard it gets, you have to realize
We weren't put on this earth to suffer and cry
We were made for being happy, so be happy
For me, for you, please...

quinta-feira, 4 de agosto de 2011


A gente sempre acha que as coisas vão ficar mais fáceis, e que a tecnologia vai sempre nos ajudar. Quando criaram a história de "De volta para o futuro", eles pensavam que o futuro seria mais fácil e mais prático.

Besteira. Mesmo com tanta tecnologia que temos poraí, as coisas complicam cada vez mais.

Veja por exemplo, na hora de comer. Se formos fazer a nossa própria comida, temos que ir em algum lugar comprá-la, e aí começam os nossos problemas.

Primeiro, a gente nunca encontra as coisas na quantidade em que quer. Na verdade, se tratando de comida, até encontra, mas logo ao lado do que nós queremos tem um outro produto com uma promoção imperdível onde a gente compra nãoseioquê e ganha outracoisaqualquer, que na verdade não precisamos (e nem iríamos querer). Aí acabamos sempre comprando mais do que tínhamos planejado, sem contar quando a gente quer o produto B mas só tem o produto A e o C, e o C está com uma promoção que, a partir de três unidades, eles custam dez centavos a menos. Isso é mais problemático quando se compra outros produtos, como uma caneta, por exemplo. Em mercados 'grandes' é impossível de se comprar uma caneta, ou um lápis, ou um caderno de 50 folhas. As canetas vêm em pacotes de no mínimo 5, uma de cada cor; lápis eu acho que nem vendem mais, só aquelas lapiseiras que até bússola tem; e cadernos, no mínimo aqueles de 20 matérias com adesivos do crepúsculo, ou coisa parecida.

Se formos em algum lugar comer, o problema muda. Primeiro, que cada lugar atende de um jeito diferente. O subway, por exemplo. A ideia do subway é que a gente faça o próprio lanche, mas não é assim que funciona. A gente vai lá e tem que ficar escolhendo o que quer que eles coloquem no lanche. Parece simples, mas quando a gente olha praquele monte de coisas, tem vontade de pedir um pouco de cada, mas como não queremos passar por mortos de fome, não podemos fazer isso. Aí o tempo vai passando, e a gente pede a primeira coisa que vem à mente:

-Hã, eu vou querer queijo.

-Só queijo?

-Queijo e aquilo ali.

Seja lá o que for aquilo ali... Agora, um mérito deles, que provavelmente foi a melhor coisa já inventada, é o menu com números. É claro que isso é feito pra nos enrolar, já que a foto ao lado do prato sempre parece muito melhor do que realmente é, mas só em poder pedir algo pelo número já ajuda bastante. Assim, a gente não passa vergonha tentando pedir algo que não sabe nem como se pronuncia. Eu, por exemplo, não faço idéia de como se pronuncia Croissant, ou Petit Gateau, e como ainda não encontrei nenhum lugar onde tenha um número ao lado de um desses negócios, ainda não pude experimentar.

quarta-feira, 3 de agosto de 2011

Contar dias ou horas entre datas em Mysql


Para contar quantas horas existem entre duas datas:

SELECT TIMEDIFF(STR_TO_DATE('19/01/1985 00:00:00', '%d/%m/%Y %H:%i:%s'),now());

Trocando TIMEDIFF por 'DATEDIFF' dá pra contar quantos dias tem entre essas datas.


quinta-feira, 14 de julho de 2011

Rolando um iframe automaticamente


Quando, por motivos pré-históricos, for necessário trabalhar com iframes ou frames, acontece um problema se o link onde o (pobre) usuário clicar estiver muito pra baixo, na tela.

O problema é que a página carrega no iframe/frame, mas a tela continua lá embaixo. Então o usuário tem que rolar a página pra cima, pra ver o inicio do frame (a menos que o programador tenha pensado nisso e colocado os controles na parte de baixo do frame, o que eu duvido muito que alguém faça, mas vai saber).

Pra fazer com que o frame role automaticamente pra cima, quando abrir, é só colocar esse código em algum lugar na página:


<script>
 parent.scrollTo(0, 0);
</script>


sexta-feira, 8 de julho de 2011

Script para limpar várias tabelas em Mysql


(Vou tentar tornar isso aqui um pouco mais útil)

Bom, ás vezes a gente precisa, por qualquer motivo que seja, dar um truncate table em vária tabelas de uma vez só. Talvez exista um jeito menos improvisado de se fazer, mas esse é o jeito que achei.

A primeira coisa é rodar essa consulta, que vai retornar todos os nomes das tabelas de determinado banco, concatenando com o texto 'TRUNCATE TABLE'.


SELECT concat('TRUNCATE ',TABLE_NAME,' ;') FROM information_schema.`TABLES` T WHERE TABLE_SCHEMA = 'nomedabase';



O retorno disso vai ser algo assim:


'TRUNCATE tabela1 ;'
'TRUNCATE tabela2 ;'
'TRUNCATE tabela3 ;'


Depois disso, é só tirar as aspas e executar.

terça-feira, 21 de junho de 2011

...a propósito...

Porque é que aquele povo que ouve reggae fala tanto sobre a Jamaica, se a coisa que eles mais gostam vem da Bolívia?

Suposições


Supõe-se um monte de coisas.

Supõe-se que todo mundo tenha tv em casa, por exemplo. Aí perguntam 'ué, mas passou na tv, vocês não viram?'.

Também supõe-se que a gente precise do papelzinho azul que sai da maquininha de cartão.  A gente sempre espera eles destacarem, mas depois fica perdido no fundo da carteira, ou no bolso, e depois de duas semanas joga fora porque aquilo não serve mais pra nada, não que antes tivesse servido.

Ainda há outros casos, como aquele vendedor que não fala nada e só fica batendo um troço. Supõe-se que todo mundo sabe o que ele tá vendendo, mas e quem nunca comprou nada dele, como vai saber? Aliás, como se vai saber que ele é um vendedor, e não só um cara que não tem o que fazer e fica incomodando os outros com aquele barulho chato? Tudo culpa das suposições.

E também, supõe-se que todo mundo consegue abrir embalagens sachê de catchup e mostarda. Por isso ninguém nem se preocupa de olhar se o serrilhado da embalagem tá no lugar certo, ou ao menos se o tal existe, afinal, supõe-se que todo mundo consegue abrir aquilo.
Mas às vezes as suposições são legais. Por exemplo, quando eu digo que perdi a minha carteira de motorista porque estava correndo, supõe-se que eu estava dirigindo em alta velocidade, fui pego e apreenderam a minha carteira, quando na verdade, eu estava correndo a pé pra não perder o ônibus e perdi a carteira quando a mochila,que eu supunha que estava fechada, se abriu e a carteira caiu, junto com um livro, e eu, supondo que apenas tinha caído o livro, não procurei por ela na hora.

Só que isso não vem ao caso, agora.