quinta-feira, 18 de junho de 2009

Calculador de números primos em C


O Crivo de Eratóstenes é um algoritmo simples e prático para encontrar números primos até um certo valor limite.

Meu marido foi desafiado em um debate no orkut a fazer um algoritmo em C para calcular números primos.
Logo abaixo o desenvolvimento dele...
Essa ai vai até [0,MAX).



É curtinho, mas dá pra gastar um tempinho fazendo teste de mesa para entender a lógica.

P.S.: tentei colocar em HTML mas o blogger não deixou... ¬¬

sexta-feira, 5 de junho de 2009

Somar horas, minutos e segundos no PHP ( Sum of times )

Sério! Essa informação deveria pelo menos estar à venda por ai... foi muito difícil encontrar alguma informação CORRETA de como fazer isso!!!
Pra começar, quero deixar claro que o meu objetivo aqui é colocar o total de horas!!
TOTAL, ou seja, tipo um banco de horas...onde eu tenho que acumular o quantidade de horas extras que alguém fez, por exemplo.



$times = array(
'01:30:22',
'34:17:03',
);

$seconds = 0;

foreach ( $times as $time ){
list( $g, $i, $s ) = explode( ':', $time );
$seconds += $g * 3600;
$seconds += $i * 60;
$seconds += $s;
}

$hours = floor( $seconds / 3600 );
$seconds -= $hours * 3600;
$minutes = floor( $seconds / 60 );
$seconds -= $minutes * 60;

echo "{$hours}:{$minutes}:{$seconds}";


Achei essa função aqui: http://www.codingforums.com/archive/index.php/t-150266.html
Bom, isso serviu muito bem pra mim, espero que ajude alguém.

segunda-feira, 6 de abril de 2009

Tabelas com chaves do tipo UNIQUE, inserindo e alterando com a sintaxe REPLACE (sql)

Melhor forma de inserir e alterar uma tabela que possui chave do tipo UNIQUE no banco da dados:

Bom, partindo do príncipio de que uma tabela com chave única, nunca vai ter mais de uma linha, porque ela tem uma única chave primária...então não precisamos fazer um baita código usando janelas diferentes para incluir dados e outra para alterar...

A única coisa a fazer é usar uma query que faça inserção para no caso de ainda não existirem registros na tabela e que também faça a substituição dos registros existentes.

Criamos a seguinte tabela de chave do tipo UNIQUE.

CREATE TABLE IF NOT EXISTS `composicao` (
`id_comp` int( 1 ) NOT NULL ,
`coordenador` varchar( 255 ) NOT NULL ,
`vice` varchar( 255 ) default NULL ,
`membro1` varchar( 255 ) default NULL ,
UNIQUE KEY `id_comp` ( `id_comp` )
)

Agora inserindo dados ou alterando:

$query=("REPLACE INTO composicao SET
coordenador='".($_POST["form_coordenador"])."',
vice='".($_POST["form_vice"])."',
membro1='".($_POST["form_membro1"])."'");


Está feito: Se o registro existe, ele vai ser substituído e se a tabela ainda estiver vazia, vai ser preenchida.

É básico, mas as vezes não é lembrado...

Namastê

sexta-feira, 20 de março de 2009

Como se queimar usando o Twitter

Eu não uso o twitter, mas sei que esse "site","rede social", ou seja lá o que for, já está dando o que falar... aparentemente as pessoas vão lá e escrevem o que estão pensando, ou o que estão fazendo, ou falam de alguém...
Numa dessas um cara resolveu fazer um comentário sobre o seu atual e o seu futuro-ex-emprego, provavelmente...

O tal de @theconnor diz o seguinte: A Cisco me ofereceu um emprego, e agora eu preciso pesar a utilidade de um gordo salário contra viajar todo dia pra San Jose e detestar o trabalho"

EHeheheh, acho que isso teve uma repercursão maior do que ele esperava...pq alguns minutos depois o Tim Levad, advogado da Cisco, retrucou:Quem é o gerente de contração(?). Tenho certeza que eles adorariam saber que você vai odiar o trabalho. Nós aqui na Cisco somos versados na web”


Antes chamavam o orkut de destruidor de lares...acho que o twitter logo logo vai fazer alguém perder o emprego :P

FONTE: http://uoltecnologia.blog.uol.com.br/
indicação de blog...

sexta-feira, 6 de março de 2009

Arquivos mp3 alheios

Eu sou uma pessoa que não tem quase nenhuma mp3 no computador, em compensação eu fico fuçando músicas alheias pelo iTunes e etc... daquela forma q vc consegue, acessar as músicas das pessoas conectadas na mesma rede que vc está.

A música abaixo é uma das minhas preferidas ultimamente, não costumo mudar meu gosto mas admito quando alguma música nova ou cantora é boa...



:****

quarta-feira, 4 de março de 2009

Genial... auhauhauhauahuahuaa




Morri!!!

ahuHAUhauHUhuahuHAUhauhUhauhA
ahuHAUhauHUhuahuHAUhauhUhauhA
ahuHAUhauHUhuahuHAUhauhUhauhA


HERE

:***

Google lovers ;)






Nerdson não vai a escola


P.S.: Hj tem LOST! uhuuuuuuuu

:***

domingo, 1 de março de 2009

Polaroid

Eu sempre fiz no photoshop as fotografias tipo polaroid para colocar nas páginas web que eu faço...
Alguém teve a idéia de fazer um programa que gera uma "polaroid"... aproveitem para baixar que ainda é free... está em versão beta...

Link: Poladroid

quinta-feira, 26 de fevereiro de 2009

Gmail é como banho...todos os dias!!!!



Google investiga bloqueio de três horas do Gmail

Eu não sei se todo mundo chegou a perceber que o gmail ficou fora do ar no dia 24/02 (carnaval -feriado)... sim eu estava em casa sem fazer nada pq eu odeio carnaval... e como todo santo dia eu acesso meu email do gmail... é óbvio que isso me causou um princípio de crise de abstinência googlelística....

O Google está investigando as causas do bloqueio do serviço de e-mail Gmail, que deixou milhões de pessoas sem ter acesso à sua caixa de entrada durante mais de três horas (sim, isso foi o suficiente mara me deixar nervosa...).

Quem entrava nas contas do Gmail logo após o acesso ter sido normalizado descobria que o sistema tinha uma ferramenta que exigia que se introduzissem caracteres em um espaço para seguir a outra página, um teste conhecido como Captcha, usado para determinar se o usuário é humano.

Possivelmente o bolsista que ficou cuidando se o servidor do google estava funcionando, saiu para curtir o carnaval e deixou todo mundo na mão... previsivel!!!


Fonte: Folha online

sexta-feira, 20 de fevereiro de 2009

Explicando a classe do post anterior

A única coisa que uma pessoa precisa saber para usar uma classe é como usar os métodos!! Não precisa nem saber programar... hauhauhuah
Mas é sério... heheheh, passo-a-passo...explicando a classe de controle de erros do post anterior


VEJA o RESULTADO e TESTE AQUI (coloque menos de 3 caracteres e ele mostrará o erro)


Crie um arquivo onde vc terá campos de preenchimento, isso servirá para testar os métodos da classe, vc terá que colocar antes de efetuar as inclusões em banco de dados, ou testes de campos por exemplo os seguintes passos:


include ClassNew.php;

// Teste se está sendo submetida a página

if($salvar){
//nome do campo que foi feito o preeenchimento
$campo="Nome";
//instancia o objeto...coloque assim mesmo
$variavel_periodo = new ClassNew;
/*aqui em baixo a variável $form_nome é
o nome do input text*/
$variavel_periodo->setNome($form_nome, $campo);
/*o valor dentro do parenteses deve ser o número
mínimo de caracteres q você quer que o campo
em questão ($form_nome) deve ter, neste exemplo eu
coloquei 3.*/
$variavel_periodo->setTammin(3);
$variavel_periodo->verifica();
$erro.=$variavel_periodo->PegaErros();
if($erro){
echo $erro;
}
}

(exemplo do campo)
Nome



Agora o que vai aparecer na tela caso a pessoa (usuário do sistema) preencha o campo com menos de 3 caracteres (no caso desse exempo) é a variável $erro que vai mostrar a mensagem que vai vir de lá de dentro da classe dizendo o seguinte:

O campo "Nome" tem menos de "3" caracteres!!

Essa classe me facilitou a vida em 200% agora não preciso mais fazer um milhão de "if's" para testar se todos os campos obrigatórios de um sistema estão sendo preenchidos corretamente...

Espero ajudar! Baixe o arquivo de testes
:-)

Au revoir

quarta-feira, 18 de fevereiro de 2009

Classe de controle de erros

Sou a favor do conceito de que o conhecimento deve ser de graça... então estou postando aqui uma das classes que fiz...

Fiz essa classe para usar nos sistemas que desenvolvi, fiz baseada em uma classe de um framework open source... desde a primeira vez que comecei a fazer um sistema ficava de cara com um monte de "if's" para controlor (filtrar) a entrada de dados e os erros...isso me facilitou e tmbm diminui qualquer projeto em no mínimo 40%


class ClassNew{
var $nome=null;
var $tammin=null;
var $campo=null;
var $erro;
function setNome($nome,$campo){
$this->nome = $nome;
$this->campo= $campo;
}
function setTammin($tammin){
$this->tammin = $tammin;
}
function verifica(){
$length=strlen($this->nome);
$tam=$this->tammin;
if($length < $tam){
$this->erro.=
"O campo".$this->campo."tem".$this->tammin.
"caracteres";
}
}
function PegaErros(){
return $this->erro;
}
}
?>

Depois é só aplicar os métodos
Ex.:

include "ClassNew.php";
if($salvar){
$campo="Período";
$variavel_periodo = new ClassNew;
$variavel_periodo->setNome($form_periodo, $campo);
$variavel_periodo->setTammin(3);
$variavel_periodo->verifica();
$erro.=$variavel_periodo->PegaErros();
$campo2="Data";
$variavel_data = new ClassNew;
$variavel_data->setNome($form_data, $campo2);
$variavel_data->setTammin(10);
$variavel_data->verifica();
$erro.=$variavel_data->PegaErros();
if($erro){
echo $erro;
}
}
?>


Depois disso é só verificar se a variável é true ou false... :-)
Espero que ajude!

Auf wiedersehen!!!!!



mais detalhes no próximo post...

;)

terça-feira, 17 de fevereiro de 2009

Flash - MovieClip Anti-Aliasing

Me responda, pq essa coisa vem desabilitada!?!?!?
Levei quase uma semana tentando descobrir como fazer para que as imagens rotacionadas no flash não ficassem todas distorcidas e com serrilhado...
Finalmente depois de um milhão de pesquisas Googlelísticas não descobri...fui descobrir no manual do Flash que vem dentro dele mesmo...
Até registrei o momento...

As imagens estavam ficando com serrilhado cada vez que movie clip rotacionava elas no evento onRollOver.
A maneira como resolvi foi a seguinte:
Selecionei a imagem na Library do Flash, e cliquei com o botão direito do mouse em Properties (vide imagem abaixo)



Logo após, abriu uma caixa onde selecionei o checkbox com a opção Allow Smoothing (vide imagem abaixo)



Pronto, agora seu movie clip ou sua imagem não vão distorcer quando você colocar alguma evento para eles....

Auf Wiedersehen!!!

quarta-feira, 11 de fevereiro de 2009

Só pra que todo mundo saiba... e acesse!!!



Fiz um outro blog, pra relatar as coisa boas e as ruins de estar morando na Europa...

Nesse blog eu vou colocar alguns relatos... não to querendo me exibir não, mas é que passei tanto trabalho pra me adaptar nos primeiros meses que acho útil relatar algumas coisas em um blog pras pessoas não pensarem que morar em outro país é a oitava maravilha do mundo...

Mas é claro, vou colocar várias coisas legais por lá também

Aproveitem e dêem uma olhada...e já coloquem nos seus favoritos... ando com preguiça de atualizar mas essa semana dou um jeito.

clica ai: PAPO FURADO

Até breve

segunda-feira, 9 de fevereiro de 2009

Junções... Parte II

Outer join (RIGHT JOIN)
Quando usar?
Inclui no resultado todos os registros da tabela à direita mesma que não possuam relação com a tabela à esquerda.
Ex.:
SELECT categ_salarial.kcd_categ, emp.nm_emp
FROM emp RIGHT OUTER JOIN categ_salarial
ON (categ_salarial.kcd_categ=empl.cd_categ);


Outer join (FULL JOIN)
Mostra todos os registros das tabelas mesma que não haja relação entre elas.
Ex.:
SELECT categ_salarial.kcd_categ, emp.nm_emp
FROM emp FULL OUTER JOIN categ_salarial
ON (categ_salarial.kcd_categ=empl.cd_categ);


Self Join
Quando deseja-se fazer uma relação com a própria tabela (auto-relacionamento)
Ex.:
SELECT funcion.nm_emp, gerencia.nm_emp
FROM emp gerencia, emp funcion
WHERE gerencia.cd_chefe = funcion.kcd_emp;

quarta-feira, 28 de janeiro de 2009

Junções... Parte I


Mais uma da série: "colocando no blog pq sempre esqueço como faz..."

Hoje vamos falar sobre JUNÇÕES:
Elas são necessárias quando se pretende obter dados provenientes de mais de uma tabela em pesquisa SQL no banco de dados.

Existem vários tipos de junções que podem ser utilizadas para pesquisar e cada uma delas possue uma particularidade...vejamos:

Natural Join:
Quando usar?
Quando os atributos possuem os mesmos nomes nas tabelas.
Ex.:
SELECT emp.nm_emp, dept.nm_dept, nm_loc FROM emp NATURAL JOIN dept;

Inner Join (USING)
Quando usar?
Quando os atributos possuem os mesmos nomes nas tabelas e há uma condição de igualdade, neste caso o cd_depto ser o mesmo nas duas tabelas de pesquisa.
Ex.:
SELECT emp.nm_emp, dept.nm_dept, nm_loc
FROM emp INNER JOIN dept USING (cd_depto);

Inner Join (ON)
Quando usar?
Quando os atributos NÃO possuem os mesmos nomes nas tabelas.
Ex.:
SELECT emp.nm_emp, dept.nm_dept, nm_loc FROM emp INNER JOIN dept 
ON emp.cd_dept = dept.Kcd_depto;

Non-equijoin (BETWEEN)
Quando usar?
Pode ser usada quando não existe uma relação direta entre os atributos das tabelas.
Ex.:
SELECT nm_emp, categ_salarial.kcd_categ, emp.vl_sal
FROM emp, categ_salarial
WHERE emp.vl_salario BETWEEN categ_salarial.vl_min AND categ.salarial.vl_max;

Outer join (LEFT JOIN)
Quando usar?
Inclui no resultado todos os registros da tabela à esquerda mesma que não possuam relação com a tabela à direita.
Ex.:
SELECT categ_salarial.kcd_categ, emp.nm_emp
FROM categ_salarial LEFT OUTER JOIN emp
ON (categ_salarial.kcd_categ=empl.cd_categ);

Por hoje é só, continuo amanhã...
Não abusem, junções pode dar tonturas e sintomas do tipo...

quinta-feira, 8 de janeiro de 2009

XP Extreme Programming

É uma metodologia ágil para equipes pequenas e médias e que pretendem desenvolver software com requisitos vagos e em constante mudança. Adota-se a estratégia de constante acompanhamento e realização de muitos pequenos ajustes durante o desenvolvimento de software.

Valores:
Comunicação, simplicidade, feedback e coragem :-)

Princípios básicos:
* Feedback rápido;
* Assumir simplicidade;
* Mudanças incrementais;
* Abraçar mudanças;
* Trabalho de qualidade;

Uma equipe que utiliza metodologia XP, geralmente é composta da seguinte forma:

• Gerente de Projeto;
• Coach;
• Analista de Teste;
• Redator Técnico;
• Desenvolvedor;

A situação é clara para toda equipe, mas você deve estar se perguntado que diabos é o tal de Coach?!?!?!?!?

Coach: É o responsável técnico do projeto. O XP recomenda que um profissional tecnicamente bem preparado seja destacado para orientar a equipe de modo que ela siga as boas práticas recomendadas pelo XP. Embora também possa atuar na implementação do sistema, sua tarefa principal é assegurar o bom funcionamento do processo e buscar formas de melhorá-lo continuamente.


A metolodogia XP é indicada para equipes que possuam de 2 à 10 pessoas.

Práticas do Extreme Programming:

Cliente Presente: A presença do cliente permite que os desenvolvedores compreendam melhor o que se espera do software.

Jogo do Planejamento: Uma vez por semana os desenvolvedores se reúnem com o cliente para priorizar um pequeno conjunto de funcionalidades que, no conjunto, possam ser implementadas e testadas completamente naquela semana.

Stand Up Meeting: Realiza-se uma reunião no início de cada dia, cujo objetivo é atualizar todos os membros da equipe a respeito do que ocorreu no dia anterior.

Programação em Par: Programação em Par é uma das práticas mais conhecidas e mais polêmicas utilizadas em projetos XP. Quando é adotada, todo e qualquer código produzido no projeto é implementado por duas pessoas juntas, diante do mesmo computador, revezando-se no teclado.

Desenvolvimento Orientado a Testes: Implementar testes automatizados antes de cada funcionalidade, de cada classe e de cada método criados no sistema. Quando isso é feito, cria-se um mecanismo automatizado que aponta os problemas assim que eles são inseridos, o que reduz o tempo de depuração.

Refatoração: Para evitar que a aplicação se transforme em uma casa suja, desorganizada e difícil de manter, equipes XP utilizam a prática de refatoração. Frequentemente, sempre que encontram uma oportunidade para melhorar o código o sistema é alterado em pequenas partes.


Isto é um resumo do trabalho apresentado na disciplina de Engenharia de Software.

Novo ano Blog novo

Pois é, o blog mudou, mas não foi só o layout, o conteúdo tmbm, pq isso aqui tava uma varzea, faz tempo que não posto nada útil, então a partir desta semana vocês podem vir aqui e ler alguma coisa de fundamento.

Se tiverem alguma dica de post ou dúvida mandem um comentário... se eu souber posso ajudar, ou até mesmo pesquisar...

Mais uma novidade, o post vai ser em português em inglês... (é mais para treinar mesmo)... se acharem algum erro me ajudem, estou aqui para aprender... :-)

quarta-feira, 7 de janeiro de 2009

Adobe Illustrator - Pen Tool



Pra quem assim como eu, com o tempo acaba esquecendo como usar as ferramentas da Adobe.
Fazia tempo que eu não usava o Illustrator, e acabei me esquecendo como usar a ferramente Pen.

Até que encontrei esses vídeos no youtube.

Graças a essa boa alma que gastou seu tempo colocando esse tutorial, eu consegui usar essa ferramenta.

Fonte: IllustrationDan

:-)