CAT | Dicas
锘Resolvendo o problema de drop da bateria do seu Android
Sem coment谩rios · Post por Petter Rafael em Android, Dicas
Antes de mais nada, o Google j谩 desmistificou a dita “calibragem da bateria“ que muitos Apps fazem ao simplesmente apagar o arquivo batterystats.bin, isso 茅 lenda, agora vamos a uma forma de “calibrar”, ou melhor, acertar a vis茫o que o Android tem da sua bateria.
Aviso: Fa莽a o procedimento aqui descrito por sua conta e risco, n茫o nos responsabilizamos.
Este problema ocorre geralmente com quem troca de ROM, pois ao instalar uma nova vers茫o do Android 茅 poss铆vel que naquele momento a sua bateria n茫o esteja com 100% de carga e com isso os arquivos batt_offset_data, batt_phasing_data e batt_tuning_data, todos localizados em /pds/public/battd/ podem informar ao sistema que uma bateria n茫o totalmente carrega est谩 com 100% de carga e com o uso o Android ir谩 se perder no c谩lculo percentual de energia e com isso ocorrem os drops (saltos) de descarga da bateria.
Estes drops geralmente ocorrem do 60% para o 50% e do 30% para o 19%.
Como corrigir?
Simples, carregue totalmente o seu smartphone.
Agora voc锚 ter谩 que utilizar um explorador de arquivos que tenha permiss茫o de ROOT (o gerenciador de arquivos nativo da CyanogenMod j谩 suporta ROOT e funciona muito bem) e simplesmente ir谩 renomear estes arquivos, voc锚 pode simplesmente adicionar o _bkp ao final de cada arquivo.
Por fim reinicie o smarpthone.
Por n茫o ter os arquivos o Android se encarrega de cria-los novamente com os valores padr茫o e com isso os erros de leitura e c谩lculo da carga da bateria tendem a se resolver.
Se mesmo ap贸s o procedimento os drops da bateria persistirem, o jeito 茅 realmente substituir por uma bateria nova, afinal a cada ano uma bateria de 铆ons de l铆tio perde cerca de 10% da sua capacidade de carga.
Leia mais:
Recuperando o pr贸ximo registro no Oracle PL/SQL
Sem coment谩rios · Post por Petter Rafael em Dicas, Oracle
J谩 falamos sobre o comando LAG do PL/SQL, agora e se precis谩ssemos utilizar os valores do pr贸ximo registro de uma instru莽茫o SELECT?
Semelhante ao LAG temos a fun莽茫o anal铆tica LEAD no Oracle PL/SQL que tem a fun莽茫o de retornar o registro anterior sem precisarmos reprocessar tudo novamente. Veja a sintaxe:
lead ( expression [, offset [, DEFAULT] ] ) OVER ( [ query_partition_clause ] order_by_clause ) |
Veja um exemplo:
SELECT product_id, order_date, lead (order_date,1) OVER (ORDER BY order_date) AS next_order_date FROM orders; PRODUCT_ID 聽聽 ORDER_DATE 聽聽 NEXT_ORDER_DATE 1000 聽聽 聽聽 25/09/2007 聽聽聽聽聽聽聽 26/09/2007 2000 聽聽聽 聽 26/09/2007 聽聽聽聽聽聽聽 27/09/2007 1000 聽聽聽聽 27/09/2007 聽聽聽聽聽聽聽 28/09/2007 2000 聽 聽聽聽 28/09/2007 聽聽聽聽聽聽聽 29/09/2007 2000 聽聽 聽聽 29/09/2007 聽聽聽聽聽聽聽 30/09/2007 1000 聽聽聽 聽 30/09/2007 聽聽聽聽聽聽聽 <NULL> |
O uso do LEAD 茅 bem simples, assim como o LAG, agora 茅 f谩cil trabalhar tanto o registro anterior como o pr贸ximo registro de um SELECT, bem 煤til quando vamos gerar arquivos texto utilizando quebras pela itera莽茫o dos registros.
Leia mais:
Quando tentamos acessar algum objeto do Oracle por alguma aplica莽茫o externa (PHP, Java, C#, etc) e recebemos o seguinte erro:
ora-06550: line string, COLUMN string: string |
ou
ora-00942: TABLE OR VIEW does NOT exist |
Esse erro pode ocorrer por diversos problemas, os mais comuns 茅 a falta de um GRANT ou uma ROLE, por茅m os erros que menos ocorrem s茫o os que s茫o mais dif铆ceis de serem resolvidos.
Este erro tamb茅m pode ser disparado caso voc锚 esteja acessando uma instancia errada.
Explicando melhor, em um ambiente de grande porte diversas instancias do Oracle pode estar espalhadas em diversos servidores, assim caso o seu editor de PL/SQL esteja apontando para uma instancia e a sua aplica莽茫o para outra pode ser que ao realizar testes no editor PL/SQL tudo transcorra bem mas a aplica莽茫o emita o erro acima.
Para verificar em qual instancia voc锚 est谩 executando o PL/SQL pode utilizar a query abaixo:
SELECT instance_name, host_name FROM v$instance; |
A partir da铆 茅 s贸 corrigir e pronto.
Leia mais:
O LAG 茅 uma fun莽茫o anal铆tica do PL/SQL Oracle e tem a finalidade de retornar o registro anterior da tabela. Veja a sintaxe:
lag ( expression [, offset [, DEFAULT] ] ) OVER ( [ query_partition_clause ] order_by_clause ) |
Veja um exemplo:
SELECT ename,hiredate,sal, LAG(sal, 1, 0) OVER (ORDER BY hiredate) AS PrevSal FROM emp WHERE job = 'CLERK'; Ename聽 Hired聽聽聽聽聽聽聽聽 聽聽聽聽 SAL聽聽聽聽聽 PREVSAL --------聽 --------------- -------- ------------ SMITH聽 17-DEC-80聽聽 800聽聽聽聽聽聽 0 JAMES聽 03-DEC-81聽聽 950聽 聽聽聽 800 MILLER 23-JAN-82聽 1300聽聽 聽聽 950 ADAMS聽 12-JAN-83聽 1100聽聽聽 1300 |
O exemplo 茅 bem simples e f谩cil de ser entendido, nele exibimos o sal谩rio (coluna SAL) e tamb茅m exibimos o sal谩rio anterior (coluna PREVSAL).
Leia mais:
Em um ambiente de produ莽茫o 茅 interessante que a configura莽茫o de exibi莽茫o de erros esteja em OFF no servidor PHP, pois informa莽玫es acerca de um erro, seja ele ocasional ou causado propositalmente pelo usu谩rio, pode fornecer informa莽玫es importantes sobre o banco de dados utilizado, servidor Web, servidor PHP e at茅 mesmo da sua pr贸pria aplica莽茫o.
Mas em um ambiente de desenvolvimento a exibi莽茫o de erros e warnings se torna essencial para a depura莽茫o e testes do sistema, como resolver este conflito?
O ideal 茅 n茫o deixar os ambientes de produ莽茫o e desenvolvimento divergentes para evitar surpresas desagrad谩veis no momento da publica莽茫o em produ莽茫o, a solu莽茫o fica ent茫o em configurar os scripts que est茫o em testes para que eles exibam os erros, veja um exemplo:
ini_set('display_errors', 1); ini_set('log_errors', 1); ini_set('error_log', dirname(__FILE__) . '/ERROS.LOG'); error_reporting(E_ALL); |
No trecho de c贸digo abaixo informamos para que o script PHP em quest茫o exiba todos os erros e warnings e de quebra que os salve no arquivo ERROS.LOG que ficar谩 armazenado na pasta que o script PHP.
Leia mais:
Continuando a falar de Regex vamos agora conhecer a fun莽茫o de alguns metacaracteres (ou alias):
| Metacaracter | Fun莽茫o | Exemplo |
| \ | Escape | \鈥 representa 鈥 |
| ^ | Posi莽茫o inicial da linha | ^C todas as strings que come莽am com C |
| $ | Posi莽茫o final da linha | $o todas as strings que terminam com o |
| [] | Lista | [rot] qualquer string que contenha qualquer um dos caracteres da lista |
| {n} | N煤mero de caracteres | {r} n煤mero de ocorr锚ncias |
| | | Alternativa | (鈥榚u鈥 | 鈥榲oc锚鈥) busca as duas alternativas |
| . | Qualquer caracter | (鈥榲oc.鈥) ir谩 retornar voc锚 ou voce |
Estas s茫o metacaracteres b谩sicos comuns a implementa莽玫es de Regex na maioria das linguagens e tamb茅m funcionais em PL/SQL, caso voc锚 queira se aprofundar poder谩 procurar literatura especializada sobre Regex.
Para quem j谩 茅 acostumado a realizar buscas com o comando LIKE ver谩 algumas semelhan莽as, por茅m o LIKE tem a tend锚ncia a n茫o trazer todas as informa莽玫es, por isso utilizamos constantemente o %, j谩 Regex tem a tend锚ncia de trazer tudo, logo n贸s 茅 que precisamos nos preocupar em restringir a nossa busca.
No pr贸ximo post vamos mostrar alguns exemplos pr谩ticos de como utilizar Regex no PL/SQL.
Leia mais:
J谩 comentei sobre o modo como o PL/SQL lida com os par芒metros enviados, ele simplesmente movimenta todo o conte煤do ao inv茅s de apenas acessar a instancia daquele objeto (par芒metro) em mem贸ria, em consequ锚ncia temos uma gradativa perda de performance quando passamos par芒metros maiores como um CLOB ou at茅 mesmo uma PL Table.
Uma das solu莽玫es que apresentei foi definir a vari谩vel de forma global, assim tanto o objeto chamador como o objeto chamado teriam acesso a vari谩vel sem a necessidade que o conte煤do da mesmo transitasse como par芒metro, mas e se por quest玫es t茅cnicas n茫o pud茅ssemos trabalhar desta forma?
Ter铆amos ent茫o que utilizar a cl谩usula NOCOPY na defini莽茫o dos par芒metros, isso iria instruir ao PL/SQL para n茫o movimentar todo o conte煤do do par芒metro, o mesmo seria somente 鈥減ontuado鈥, veja um exemplo:
Movimentando todo o conte煤do:
PROCEDURE pc_teste(varNome聽 IN VARCHAR2) IS ... |
Apenas apontoando para o par芒metro:
PROCEDURE pc_teste(varNome聽 IN OUT NOCOPY VARCHAR2) IS ... |
Por茅m 茅 preciso tomar cuidado com alguns detalhes:
- 脡 obrigat贸rio o uso de par芒metros no formato IN OUT, somente IN ou somente OUT ir谩 reportar erros de compila莽茫o;
- Par芒metros com NOCOPY n茫o podem ser debugados o que pode dificultar no momento de detectar poss铆veis bugs na sua aplica莽茫o.
Leia mais:
Ganhar dinheiro pela internet, os blogs – Parte I
Sem coment谩rios · Post por Petter Rafael em Dicas, Diversos
Continuando a falar em formas de ganhar dinheiro pela internet, a forma mais 鈥渢radicional鈥 e mais acess铆vel para a maioria das pessoas que querer empreender pela internet 茅 a gera莽茫o de conte煤do.
Via de regra 茅 empregado o uso de algum sistema CMS para gerar tanto o front-end quanto a 谩rea administrativa, tirando a necessidade de investimento em desenvolvimento de software ou conhecimento t茅cnico, para isso o ideal 茅 a contrata莽茫o de um servidor que j谩 d锚 suporte para isso e o registro de um dom铆nio.
Quanto as op莽玫es gratuitas n茫o s茫o aconselh谩veis, a n茫o ser que n茫o pretenda rentabilizar o neg贸cio, os dois maiores problemas de uma hospedagem gratuita ou servi莽o gratuito s茫o a limita莽茫o para implementar programas de rentabiliza莽茫o e a impossibilidade de registro de dom铆nio, no caso da rentabiliza莽茫o fica limitado e mais complicado a convers茫o de trabalho em dinheiro via publicidade e no caso do registro do dom铆nio al茅m de voc锚 ter dificuldades em implementar SEO alguma outra entidade poder谩 registrar seu nome como um dom铆nio impossibilitando seu trabalho futuro.
Para escolher o servidor o ideal 茅 uma empresa id么nea, que n茫o somente libere seu espa莽o, mas que tamb茅m instale (lembre-se, voc锚 n茫o precisar谩 de conhecimento t茅cnico) e fa莽a o setup e demais configura莽玫es para que o seu blog funcione corretamente.
Antes de iniciar um blog 茅 preciso se atentar sobre os seguintes detalhes:
- Determine um tema (assunto) de prefer锚ncia que voc锚 j谩 conhece e goste;
- Procure os blogs de maior relev芒ncia sobre o mesmo tema e veja os erros e acertos (lembre-se, aprender com o erro alheio 茅 menos dolorido e mais r谩pido);
- Estude a possibilidade de parcerias com empresas ou at茅 mesmo outros blogs;
- Estude a possibilidade de expandir o blog para outras ramifica莽玫es. Por exemplo, e-commerce, etc.
Com o servidor configurado, dom铆nio registrado e tema escolhido procure conhecer mais pelo sistema de CMS que escolheu, atualmente o mais indicado 茅 o WordPress mas existem muitos outros.
Quanto a parte t茅cnica pe莽a para a sua hospedagem disponibilizar plug-ins para o WordPress que atendam as seguintes tarefas:
- Implementa莽茫o de SEO;
- Prote莽茫o de spam;
- Validador de falhas de seguran莽a;
- Integra莽茫o com redes sociais (Facebook, Google+, Twitter, etc);
- Gerenciador de tag麓s;
- Gerenciador do Google Analytics;
- Gerenciador de programas de rentabilidade (veremos detalhes adiante);
Com os passos acima resolvidos o ideal 茅 come莽ar a agregar postagens, assim voc锚 ir谩 se familiarizar com o sistema do CMS e ver谩 como de fato ser谩 o seu novo trabalho, lembre-se, no in铆cio o trabalho ser谩 muito e o dinheiro pouco, mas no m茅dio e longo prazo o trabalho continuar谩 sendo muito mas o dinheiro tender谩 a aumentar, tudo ir谩 depender da sua dedica莽茫o e persist锚ncia.
J谩 com algumas postagens o ideal 茅 que comece a explorar o mundo da rentabiliza莽茫o, de in铆cio o mais indicado s茫o programas que paguem para exibir ou por clique em bannres veiculados em seu blog (da铆 a import芒ncia do aumento de tr谩fego).
No pr贸ximo post vamos explorar um pouco sobre o mundo da rentabiliza莽茫o para que o seu blog comece a gerar receita.
Leia mais:
Vamos supor que voc锚 precise fazer a seguinte compara莽茫o no PL/SQL:
IF varTexto || varText2 || varTexto3聽 = 鈥榯este de compara texto (string)鈥 THEN ..... END IF; |
脡 bem prov谩vel que dependendo do tamanho m谩ximo alcan莽ado pela concatena莽茫o das vari谩veis ocorra o seguinte erro:
ORA-04030: sem espa莽o de mem贸ria para processo durante tentativa de aloca莽茫o de 16328 bytes (koh-kghu CALL ,pmuccst: adt/record) |
Embora o erro aponte para uma poss铆vel falta de mem贸ria no banco de dados Oracle na verdade a concatena莽茫o dentro do IF que est谩 causando o erro.
Uma solu莽茫o mais imediatista (embora bem deselegante) seria dividir o IF com a concatena莽茫o em 3 IF麓s encadeados.
Leia mais:
Tenho visto ultimamente muitas d煤vidas acerca de como ganhar dinheiro trabalhando na internet e se todos estes planos e kits 鈥渋nfal铆veis鈥 funcionam de fato, tenho boas e m谩s not铆cias para todos, realmente 茅 poss铆vel ganhar um bom dinheiro operando e trabalhando exclusivamente pela internet, esta 茅 a boa not铆cia, a m谩 not铆cia 茅 que n茫o existe milagre e voc锚 ter谩 que trabalhar muito, estudar e ter perseveran莽a.
Come莽ando pelos problemas, assim resolvemos tudo em primeiro lugar, estes kits para ganhar dinheiro f谩cil pela internet e as tais pir芒mides n茫o funcionam, ali谩s todo e qualquer an煤ncio que juntar as palavras 鈥済anhar dinheiro f谩cil na internet鈥 devem ser desconsiderados pois somente ir茫o gerar dinheiro para quem encabe莽ou a ideia e come莽ou vendendo o kit, que provavelmente ir谩 ludibriar diversas pessoas e realmente ganhar谩 um bom dinheiro.
No caso das pir芒mides, somente os dois primeiros n铆veis ir茫o ganhar algum dinheiro, pois chegar谩 um n铆vel que n茫o ser谩 mais poss铆vel repassar a revenda para ningu茅m mais e o sistema da pir芒mide ir谩 ruir, resumindo, esquemas de pir芒mide n茫o tem sustenta莽茫o financeira e est茫o fadados ao fracasso no m茅dio prazo.
Assim como em outras 谩reas profissionais para obter bons resultados trabalhando em um home office somente pela internet ir谩 depender da sua capacidade de inovar, aprender e criar (n茫o necessariamente nesta ordem), quaisquer propostas f谩ceis e r谩pidas devem ser exclu铆das sumariamente pois somente te far茫o gastar recursos (f铆sicos e financeiros) e ir茫o te desviar do foco.
Um dos m茅todos mais utilizados para empreender, ou pelo menos come莽ar a empreender, utilizando a internet 茅 a gera莽茫o de conte煤do e utilizando programas de publicidade ou venda indireta, este 茅 um m茅todo que ainda gera bons resultados, mas ir谩 depender da sua capacidade de alavancar visitantes para o seu site/blog.
Este 茅 um assunto espec铆fico, iremos tratar em um pr贸ximo post, pois existe espa莽o e existe demanda para que pessoas possam empreender e de fato ganhar dinheiro utilizando a internet, s贸 茅 preciso desmistificar hist贸rias de ganhos enormes em pouco espa莽o de tempo.


