Cá estou eu, mil anos depois, mantendo toda aquela aleatoriedade na vida e estudando pra variar!rs
No momento estudando Docker. Estudo vai, estudo vem, cheguei na parte de fazer uma montagem por vinculação. Que é quando a gente vai montar um volume no docker deixando ele vinculado no nosso host para que a gente mantenha os arquivos gravados na nossa máquina e não os perca quando o container for removido.
Como faz?
docker run -v "D:\meu\diretorio:/app" identidock
Qual o problema? Eu não uso o Docker for Windows porque eu sou pobre e uso o Windows 10 Home Single no momento. E para instalar o Docker for Windows é necessário o Windows 10 Professional ou Enterprise 64-bit. Sendo assim utilizo o Docker Toolbox e se tento montar o volume igual todo mundo (Linux, Docker for Windows, Mac [acho]) recebo o erro abaixo:
“Error response from daemon: invalid mode: …”
Se tu está limitado tanto quanto eu, veja bem… É simples resolver! \o/
Quando você instalou o Docker Toolbox veio o Oracle VM VirtualBox não veio? Então você vai lá nele e veja que deve ter uma máquina “default” rodando por lá.
Daí você clica em “Configurações” , vai na abinha “Pastas Compartilhadas” e adiciona uma pasta compartilhada colocando o endereço que você quer montar no volume do seu container e dê um nome para ele também.
Aí agora você substitui no seu comando docker run, o caminho do seu host pelo nome da pasta compartilhada que você criou no VirtualBox. 🙂
Pois bem, se você chegou até este post é sinal de que você já deve saber que para trabalhar com mapas do google em aplicativos Android é necessário gerar uma chave que vai identificar a sua solicitação de mapa pelo seu aplicativo.
Para gerar esta chave, é necessário realizar o seguinte comando. No windows, talvez seja necessário que você esteja dentro da pasta bin da sua instalação do Java.
No lugar de “<pasta_do_debug.keystore>”, coloque o endereço da pasta que possui o arquivo debug.keystore. Para localizar este arquivo, se você usa o eclipse, acesse o menu ‘Window’ > ‘Preferences’. Expanda o item ‘Android’ e em ‘Build’ copie o caminho especificado em ‘Default debug keystore’.
O que eu realmente quero falar, é que se você estiver usando o Windows em Português, você pode receber a seguinte mensagem de erro após tentar executar o comando acima:
erro de keytool: java.lang.IllegalArgumentException: unknown format type at
Este erro aconteceu aqui comigo, e no caso eu resolvi isto trocando ‘Formato’ e ‘Local’ em ‘Região e Idioma’ para Inglês (Estados Unidos).
Estava eu, linda e pomposa, gerando meus relatórios em PDF utilizando a biblioteca mPDF. O caso não é o PDF, mas se quiserem conhecer melhor esta biblioteca clique aqui #indico.
O caso é que em um determinado momento eu gerei uma listagem grande (18 páginas em PDF), mas ao invés de visualizar o PDF lindo eu recebi o erro abaixo:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 261904 bytes) in caminhoTal on line numeroTal
E aí? O que houve?
Aconteceu que o script que está sendo processado estourou o limite de memória indicado na configuração do PHP (php.ini). Sim, existe uma diretiva no php.ini chamada memory_limit quevai definir o máximo de memória que os seus scripts podem gastar. Até o PHP 5.2.0 o padrão desta variável era “8M” e a partir do PHP 5.2.0 ela recebe “16M” como padrão.
No momento eu estou com a versão 5.3.5 do PHP, mas mesmo assim a minha rotina extravazou o limite de memória.
Qual a solução?
Existe uma função do PHP que se chama ini_sete ela nos permite definir um novo valor para uma opção de configuração. Ela recebe dois parâmetros (string $varname, string $newvalue), no primeiro informamos a opção de configuração que queremos alterar e no segundo passamos o novo valor dessa configuração. Mais detalhes sobre a função ini_setaqui.
Claro que vale lembrar que alguns servidores não permitem que você altere as configurações do PHP e também bloqueiam a alteração de algumas configurações pela função ini_set, então vale verificar!
Então, antes do meu script eu inseri a seguinte linha:
<?
ini_set('memory_limit', '-1');
?>
Percebam que o meu $varname é igual a ‘memory_limit‘ e o meu $newvalue é igual a ‘-1’.
No lugar de ‘-1’ eu poderia ter informado um valor em megabytes, por exemplo “32M”, “64M” ou até “1024M”.
Acontece que neste caso eu estou gerando um relatório (listagem de dados), e essa listagem pode variar e muito no seu tamanho. Neste momento se trata de uma listagem de 18 páginas, mas futuramente ela pode ser 20, 30 ou mais páginas.
Então o $newvalue igual a ‘-1’ informa à minha configuração que eu NÃO quero impor um limite de memória neste momento.
Bom.. o que eu queria mostrar é isso. Espero poder ajudar alguém com isso.
Para conhecer mais algumas diretivas do php.ini leia isso.
Não é de hoje que o JQueryUI vem ajudando a nossa vida né?? \o/
Pois bem, venho falar hoje sobre um item muito interessante que eu trabalhei recentemente que é o “ButtonSet”. Ele nada mais é que um grupo de checkboxes com o visual de botão, isso aí… aqueles grupos de ‘botões’ que você aperta e ele permanece pressionado!
Primeiramente, faz o favor de baixar o JQueryUI lá no site oficial. Descompacta na sua pastinha de trabalho e vamos lá.
Hoje o JqueryUI está na sua versão 1.8.20 e já trás junto o JQuery versão 1.7.2.
Eu criei uma pastinha de trabalho chamada ‘ExemploBuuttonSet’ e descompactei os arquivos do JQueryUI dentro de uma outra pasta chamada ‘jquery-ui’.
Depois criei um arquivo html ‘buttonSet.html’ para importar os arquivos necessários para o JQueryUI funcionar, da seguinte forma:
Para ativar o buttonSet nos meus checkboxes que estão dentro da div ‘format’, eu faço o seguinte código. Este código pode ser inserido logo abaixo do código de importação dos arquivos do jQueryUI:
Pronto! Com esse código nós já temos o seguinte resultado.
Neste caso eu baixei o JQueryUI com o tema ‘ui-darkness’. Então a cor cinza representa os botões não clicados, o azul aparece quando colocamos o mouse sobre o botão e o laranja representa o botão clicado/marcado.
Para o sistema que estou desenvolvendo, eu utilizei esta série de botões para que o meu usuário pudesse selecionar as colunas que ele quer que um relatório exiba. Então ao marcar ou desmarcar um botão, eu tenho que atualizar uma tabela temporária e para isso eu chamo uma função javascript que vai disparar todo o processo.
Enfim… no fim das contas eu precisava que ao clicar em qualquer um destes botões, uma função fosse chamada para que eu pudesse pegar o id do checkbox clicado para disparar minha função.
E olha só que legal! Ao clicar em cada um dos meus botões, eu consigo pegar o id dele por exemplo. Com isso e mais um pouco de trabalho já dá pra fazer muita coisa legal no seu sistema.
Pois é, pode parecer até gambi né mas às vezes nós precisamos pegar o valor de uma variável PHP e jogar para uma variável JavaScript e vice-versa.
Até que é simples, veja o primeiro exemplo de pegar uma variável PHP e jogar para JavaScript:
//pegando a variável php e jogando numa variável javascript
var variavelJS = '';
alert(variavelJS);
Agora vamos fazer o contrário e escrever uma variável JavaScript através do nosso código PHP:
//criando variável JS
var variavelParaPHP= 'Elaine Cristina';
<?
//escrevendo a variável JS pelo PHP
echo "document.write(variavelParaPHP);"
?>
É uma bobeirinha, mas que muitos demoram a entender. Eu mesma quando estava começando a programar demorei um bocado para saber usar isso.
Confesso que utilizo mais a primeira opção, de passar uma variável PHP numa chamada JavaScript. Então fica aí disponível pra qualquer pessoa que estiver precisando de uma luzinha.