by Stiod Desenvolvimento Web
Assine nosso RSS

Archive for the 'Offtopic' Category

`svn revert` é para os fracos

Rafael SDM Sierra
No Gravatar

Eu estava andando de bicicleta pela Av. Rebouças hoje quando encontro o maior bugfix que já vi:
Bug Fix

Há!

Rafael SDM Sierra
No Gravatar

Piada de programador:

P: O que é um (pod)?
R: Um podcast.

Ha!
Tá, não foi tão engraçado

Canal por assinatura

Rafael SDM Sierra
No Gravatar

Se tem algo que eu realmente gostaria de entender é porque eu não posso simplesmente acessar o site do Discovery Brasil ou do Mundo Fox e pagar um valor X por mês pra ter acesso a mesma programação exibida na televisão paga comum, mas pela internet.

Um esforço nesse sentido é o serviço Google Video, ou pelo menos era, isso porque ele permitia a compra de vídeos específicos pra você assistir, infelizmente não encontrei nenhum exemplo pra colocar aqui, mas mesmo esse modelo tem um problema, eu pago por um único vídeo, se aparecer outro eu preciso (precisava) comprar novamente.

Quando você pensa nos custos de manutenção do modelo de cabos, é até pouco que se paga pelos pacotes de canais, pois pra quem não sabe, a empresa, seja Net, Velox ou qualquer outra empresa de TV a cabo, tem que arcar com os custos dos cabos (e suas manutenções), com o custo de colocação e ainda tem que pagar o aluguel do poste (ou você acha que é só sair pendurando tudo nos postes?), isso sem falar no valor já embutido do suporte ao usuário (nenhum suporte é gratuito).

Agora quando você pensa que as velocidades de navegação na internet estão cada vez crescendo mais (até mesmo no Brasil! Quem diria!), e que essa mesma internet está sub-utilizada (o que? você não sabia?), faz sentido dizer que deveríamos usa-la também para ver TV.

Se você acha que é ruim ficar sentado na frente do computador pra assistir TV, saiba que já existem TVs (daquela que você assiste normalmente) com acesso a internet, ou seja, não existe mais diferença entre um monitor de computador e uma televisão.

Isso sem mencionar que você paga pra não assistir nem 50% dos canais disponíveis, ou você assiste NHK, TCM e outros canais do tipo? (tudo bem, eu assistia NHK as vezes, mas isso não vem ao caso :P), pois é, aqui eu apenas iria assistir a Fox, Discovery, Warner, Cartoon Network e Nick (é, esses dois também, algum problema?)

Pois bem, quanto tempo eu vou ter que esperar pra remover essas empresas intermediárias do meu pagamento mensal, e usar apenas a internet?

From: Yoshio, To: me, Subject: q boixta

Rafael SDM Sierra
No Gravatar

Recebi esse email do Gean, e acho que merece um post :P


from: Yoshio Iwamoto <xxxx@gmail.com>
to: Rafael Jorge <yyyy@gmail.com>,
date: Feb 8, 2008 2:59 AM
subject: q boixta
mailed-by: gmail.com

2:59 AM (8 hours ago)


O Oracle não LIMIT nem OFFSET como o PostgreSQL e o MySQL.

Pra fazer paginação é um parto, tem que usar o ROWNUM, só que olha como essa bosta funciona:

ROWNUM is a pseudocolumn (not a real column) that is available in a
query. ROWNUM will be assigned the numbers 1, 2, 3, 4, ... N, where N
is the number of rows in the set ROWNUM is used with. A ROWNUM value
is not assigned permanently to a row (this is a common misconception).
A row in a table does not have a number; you cannot ask for row 5 from
a table—there is no such thing.

Até ai blz, teoricamente ele deveria funcionar como se fosse um campo virtual da tabela, onde o primeiro registro tem valor 1, e vai incrementando a cada registro:

ROWNUM / campos
1 valor1
2 valor2
3 valor3
...

Daí o obvio eu pensei, era fazer o "LIMIT e OFFSET" no Oracle assim:
[sql]
SELECT campos FROM tabela WHERE ROWNUMBER BETWEEN 11 AND 20 ORDER BY
campo_com_data;
[/sql]

Isso são os resultadados da página 2 se forem 10 resultados por página, certo? Porém:

  1. 1. O ROWNUMBER é calculado antes do ORDER BY, a solução para isso é criando um subselect:
    [sql]
    SELECT *
    FROM (SELECT campos
    FROM tabela
    ORDER BY campo_com_data)
    WHERE ROWNUMBER BETWEEN 11 AND 20;
    [/sql]
  2. 2. O ROWNUMBER não fuciona dessa forma na clausula WHERE, logo tenho que usar ele como um campo, fora do SELECT que contém o ORDER BY:
    [sql]
    SELECT *
    FROM ( SELECT novatabela.*, ROWNUM rnumber
    FROM ( SELECT campos
    FROM tabela
    ORDER BY campo_com_data) novatabela
    )
    WHERE rnumber BETWEEN 11 AND 20;
    [/sql]

  3. 3. Vou me matar

É por essas e outras que tem mais resultados no google sobre como migrar do Oracle para PostgreSQL do que o inverso. E quem migra do PG para o Oracle nunca mais usa Oracle.