Não fazer o que o usuário quer, fazer o que ele precisa…

Em um dos grupos que participo, um dos membros disparou esta mensagem:

“Ae pessoal,
Meu tio tem uma pequena construtora e precisa de alguém para fazer um software para gestão dela.
Ele encaminhou o documento explicando o que precisa e tem boa noção de sistema, precisa de alguém mais para fazer a parte de programação, talvez até um já pronto possa ser adaptado… Ele tem certa urgência nesse trabalho…”

E anexou um este documento, com requisitos…. vejam que é uma coisinha simples… e claro, o contratante vai querer “aquele preço especial”….

Depois de ler esse requisitos, me lembrei dessa tirinha do Dilbert:

🙂

Rastreio

Se você faz compras pela internet, tanto nacional como internacional, com certeza deve utilizar o serviço de rastreio de encomendas dos correios, porém indico dois sites que ajudam a monitorar seus pacotes transportados pelos Correios de forma bem mais completa, com notificação por email, feed RSS, twitter…. mostra até o caminho que seu pacote esta percorrendo utilizando o google maps, simplesmente perfeito.

  1. http://www.encontreseupacote.com.br
  2. http://www.muambator.com.br/

Como retornar um update feito sem querer em um banco Oracle?

Você conhece o Rollback em Bancos transacionais? É uma mão na roda, quando se precisa recuperar algo que você fez e se arrependeu, como alteração dem vários campos com valores errados, ou até mesmo excluiu um ou mais registros e deu COMMIT. Sim, você pode recuperar os dados…

É uma tarefa muito simples, basta fazer um select normalmente na  tabela,  com os campos e condições que você quer e, no FROM, após o nome da tabela, colocar “as of timestamp systimestamp – interval ‘X’ minute“, onde esse “X” é o tempo que passou desde a a besteira que  fez até agora.

Veja a seguinte situação hipotética:

Imagine que se tenha uma tabela CLIENTE e você atualiza os clientes que não fazem compras há mais de 1 mês para Inativos. Você faz isso com um update,  atualizando o campo STATUS_CLIENTE para “I”, de inativo,  depois de fazer um select que retorna os  clientes que não compraram no último mês.

Após a execução do update (COMMIT), alguns clientes estavam com o STATUS “A” de Ativo, “D” de Devedor, “V” de VIP. Passa 30 minutos seu chefe entra na sala, e lhe fala que esse update não pode ser feito em clientes VIP, e agora? Faz assim:
[sql]
select ID_CLIENTE
from CLIENTE
as of timestamp systimestamp – interval ’30’ minute
where STATUS_CLIENTE = ‘V’;
[/sql]

PRONTO! Peguei todo mundo que tava com o campo STATUS_CLIENTE = ‘V’ 30 minutos atrás. Com os IDs, é possível fazer um novo  update, passando esse pessoal que  está com o STATUS = ‘I’, pra ‘V’.

Via: Estação ZEN

Howto: WordPress – Como retornar somente posts com a data de publicação igual a data atual?

Veja o seguinte problema:

“Você cadastra vários posts, com data de publicação futuras, e quer exbir em uma página somente os posts cuja data de publicação seja igual a data atual (do Sistema Operacional).”

É bem simples, basta utilizar essa sintaxe em seu wp_query:

[php]
$hoje = getdate();
query_posts(‘year=’ .$hoje[year] .’monthnum=’ .$hoje[mon] .’day=’ .$hoje[mday] );
[/php]

em um loop, ficaria assim:

[php]
< ?php $hoje = getdate(); $dhoje = new WP_Query(); $dhoje->query(‘year=’.$hoje[year].’&monthnum=’.$hoje[mon].’&day=’.$hoje[mday].’&showposts=1&cat=12′ );
while($dhoje->have_posts()) : $dhoje->the_post();
global $more;
$more = 0;
?>

< ?php the_title(); ?>

< ?php the_content(); ?>

< ?php endwhile; ?>
[/php]

De boa né?

Howto: WordPress: Agrupando posts por mês

Veja como fazer para puxar todos os posts de uma determinada categoria, exibindo em listas agrupadas por meses, assim:

Julho 2010

  • Titulo do post
  • Titulo do post

Junho 2010

  • Titulo do post
  • Titulo do post

Vejamos:

[sourcecode language=”php”]
< ?php $args=array( 'tag' => ‘tag1’,
‘posts_per_page’ => -1,
‘post_status’ => ‘publish’,
‘orderby’ => ‘date’,
‘order’ => ‘DESC’,
‘caller_get_posts’ =>1
);

$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
$ymdate = ”;
while ($my_query->have_posts()) : $my_query->the_post();
$ympost = mysql2date(“M Y”, $post->post_date);
if ( $ympost != $ymdate) {
$ymdate = $ympost;
echo ‘

Artigos do mes: ‘ . $ymdate . ‘

‘;
}
?>

< ?php the_time('F jS, Y') ?>


[/sourcecode]

[sourcecode language=”css”]

[/sourcecode]

[sourcecode language=”php”]

< ?php $args=array( 'cat' => ’12’,
‘posts_per_page’ => -1,
‘post_status’ => ‘publish’,
‘orderby’ => ‘date’,
‘order’ => ‘ASC’,
‘caller_get_posts’ =>1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
$ymdate = ”;
while ($my_query->have_posts()) : $my_query->the_post();
$ympost = mysql2date(“F Y”, $post->post_date);
if ( $ympost != $ymdate) {
$ymdate = $ympost;
echo ‘

‘.$ymdate.’

‘;
echo ‘

‘;
} wp_reset_query();
?>
[/sourcecode]

Perfeito!!!

Entendendo JOIN

Entendendo os JOIN

Este é um problema bastante comum entre desenvolvedores que lidam com banco de dados:
Realiza-se uma busca (SELECT) e como resultado tem-se uma lista de ID´s. Agora como trazer os dados desses ID´s?

Algumas pessoas utilizam a seguinte lógica para solucionar este problema:

[sql] SELECT * FROM países
foreach($países as $país) {
SELECT * FROM ciudades WHERE país = $país
foreach ($ciudades as $ciudad) {
[/sql]
Read More

Como criar interatividade com Jquery sem saber nada de JavaScript?

IxEdit é um framework que gera automaticamente o código JavaScript a partir dos parâmetros que especificou diretamente no browser, on-the-fly….  O código JavaScript gerado é projetado para executar com jQuery e jQuery UI, e apresenta interações poderosíssimas, sem a necessidade de se preocupar com as diferenças entre navegadores.

Qualquer pessoa com conhecimento básico de HTML e CSS pode criar interações em interfaces apenas marcando os elementos e selecionando as ações desejadas, no final é gerado que deve ser inserido diretamente no HEAD da página, veja o vídeo abaixo e entenda o que o IxEdit é capaz de fazer:

[youtube]http://www.youtube.com/watch?v=CcjZnwpBLBU[/youtube]