Re: [pgbr-geral] Configurando Timezones por databases
Em 13/10/2011 23:21, Leandro Guimarães Faria Corce DUTRA escreveu: Le 2011-O-13 18h5, Flávio Alves Granato a écrit : Onde se encaixa o modelo não relacional nesta teoria? O famoso NoSQL, agora viu que não disse programação OO. Sim, acho que não é necessário implementar a complexidade de um modelo relacional em todas as situaçãos, apesar de ele poder ser usado. Acho que estou lesado, não entendi… o modelo relacional é mais simples, a complexidade fica toda dentro dos tipos… Opinião de cada um. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
2011/10/14 Flávio Alves Granato flavio.gran...@gmail.com: Acho que estou lesado, não entendi… o modelo relacional é mais simples, a complexidade fica toda dentro dos tipos… Opinião de cada um. Absolutamente não. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Em 14/10/2011 10:33, Guimarães Faria Corcete DUTRA, Leandro escreveu: 2011/10/14 Flávio Alves Granatoflavio.gran...@gmail.com: Acho que estou lesado, não entendi… o modelo relacional é mais simples, a complexidade fica toda dentro dos tipos… Opinião de cada um. Absolutamente não. Onde o modelo relacional é mais simples que o NoSQL como comentei? === Sem flames senhores, pois sei que o Leandro responderá ponderadamente. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
2011/10/14 Flávio Alves Granato flavio.gran...@gmail.com: Onde o modelo relacional é mais simples que o NoSQL como comentei? Não existe um modelo NoSQL, ele é simplesmente a reversão às bases de dados prerrelacionais, dos anos sessenta e setenta. Isso dito, o modelo relacional trabalha com tipos, que equivalem às classes de OO e encapsulam a complexidade. O que o modelo relacional acrescenta são as relações (vulgo tabelas, desde que tenham ao menos uma chave natural declarada), que representam conjuntos de predicados (afirmações sobre o mundo real). Já NoSQL não tem nenhuma abstração, como todas as vezes que essa abordagem foi proposta antes, com outros nomes — redes, grafos, hierarquias, BDOO e vai por aí afora — tem‐se de criar um modelo específico para cada uso, sem nenhuma organização lógica. Parece mais simples ao pensar‐se somente nesse uso, mas por falta de abstrações e de independência de dados em relação à organização física, a complexidade vai se acumulando até inviabilizar a escalabilidade e (ou) a extensão do uso. Vide que, nesta atual moda NoSQL, os poucos casos de sucesso são ou extremamente restritos funcionalmente, ou contam com uma qualidade excepcional de programadores e SysAdmins para fazer funcionar, como é notoriamente o caso do Google. Mas o Google faz até o MySQL funcionar… enquanto os casos de fracasso sucedem‐se um após o outro. Ademais, vide o que SQL tem sido usado como abstração lógica para implementações normalmente associadas ao NoSQL, como é o caso do Yahoo! Himalaya (se não me falha a memória), agora o serviço MySQL do Google, e o MS SQL Server com Hadoop da MS. E temos os nossos próprios exemplos, se não me engano HadoopDB, Greenplum e um outro que me foge à memória. Quem escreveu bem a respeito foi o criador do Postgres http://en.wikipedia.org/wiki/Michael_Stonebraker#cite_note-10. Quanto à ilusão do ORM, o nosso David Fetter http://people.planetpostgresql.org/dfetter/index.php?/archives/40-Removing-Much-of-the-Suck-from-ORMs.html http://thoughts.j-davis.com/2007/12/03/on-orms-and-impedence-mismatch/. Quanto a outras discussões que deixo pendentes (lembro de duas), é de propósito: chegaram a um nível de animosidade e repetitividade que precisa mais tempo do que disponho para dar respostas que evitem a repetição do que aconteceu agora, dos meus argumentos serem ignorados por quem ainda não entendeu o modelo relacional nem parece querer entender, se preocupando antes em ganhar a discussão a qualquer custo… ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Em 14/10/2011 12:44, Guimarães Faria Corcete DUTRA, Leandro escreveu: 2011/10/14 Flávio Alves Granatoflavio.gran...@gmail.com: Onde o modelo relacional é mais simples que o NoSQL como comentei? Não existe um modelo NoSQL, ele é simplesmente a reversão às bases de dados prerrelacionais, dos anos sessenta e setenta. Isso dito, o modelo relacional trabalha com tipos, que equivalem às classes de OO e encapsulam a complexidade. O que o modelo relacional acrescenta são as relações (vulgo tabelas, desde que tenham ao menos uma chave natural declarada), que representam conjuntos de predicados (afirmações sobre o mundo real). Um SGBD como o PostgreSQL trabalha bem com um mundo não relacional? A gente vê alguns projetos grandes partindo para o lado NoSQL, cita algumas razões para estes projetos darem certo mais abaixo. Já NoSQL não tem nenhuma abstração, como todas as vezes que essa abordagem foi proposta antes, com outros nomes — redes, grafos, hierarquias, BDOO e vai por aí afora — tem‐se de criar um modelo específico para cada uso, sem nenhuma organização lógica. Parece mais simples ao pensar‐se somente nesse uso, mas por falta de abstrações e de independência de dados em relação à organização física, a complexidade vai se acumulando até inviabilizar a escalabilidade e (ou) a extensão do uso. hummm... não concordo a escalabilidade, mas concordo com a extensão do uso. Se bem que os casos em que vi troca de um SGBD por um NoSQL foi de MySQL para algum NoSQL. Realmente o MySQL precisa evoluir mais para acompanhar seus pares SGBD como o PostgreSQL Vide que, nesta atual moda NoSQL, os poucos casos de sucesso são ou extremamente restritos funcionalmente, ou contam com uma qualidade excepcional de programadores e SysAdmins para fazer funcionar, como é notoriamente o caso do Google. Mas o Google faz até o MySQL funcionar… enquanto os casos de fracasso sucedem‐se um após o outro. concordo, mas não conheço um caso de fracasso e arrependimento do uso de NoSQL, claro que fracassos não são tão divulgados quanto casos de sucesso, mas... Ademais, vide o que SQL tem sido usado como abstração lógica para implementações normalmente associadas ao NoSQL, como é o caso do Yahoo! Himalaya (se não me falha a memória), agora o serviço MySQL do Google, e o MS SQL Server com Hadoop da MS. E temos os nossos próprios exemplos, se não me engano HadoopDB, Greenplum e um outro que me foge à memória. Sem chance, uma coisa é uma coisa e outra coisa é outra coisa. Aquele velho ditado cada macaco no seu galho, vai ser mais um caso de bagunça para você alardear por ai e beatificar o modelo relacional. Quem escreveu bem a respeito foi o criador do Postgres http://en.wikipedia.org/wiki/Michael_Stonebraker#cite_note-10. Quanto à ilusão do ORM, o nosso David Fetter http://people.planetpostgresql.org/dfetter/index.php?/archives/40-Removing-Much-of-the-Suck-from-ORMs.html http://thoughts.j-davis.com/2007/12/03/on-orms-and-impedence-mismatch/. Quanto a outras discussões que deixo pendentes (lembro de duas), é de propósito: chegaram a um nível de animosidade e repetitividade que precisa mais tempo do que disponho para dar respostas que evitem a repetição do que aconteceu agora, dos meus argumentos serem ignorados por quem ainda não entendeu o modelo relacional nem parece querer entender, se preocupando antes em ganhar a discussão a qualquer custo… Como diria Maria para o Joãozinho, à força não hehehe ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Configurando Timezones por databases
Pessoal, com a chegada do horário de verão, estou com um probleminha para resolver. Aqui na empresa, possuímos diversos databases de vários sistemas espalhados pelo Brasil inteiro, em um único servidor. Com o horário de verão chegando, não é possível simplesmente alterar o parâmetro no postgres.conf pois diversos estados não irão aderir ao horário de verão. O parâmetro de timezone no meu postgres.conf está como 'unknown'. Isso quer dizer que ele sincroniza com a variável de ambiente de TZ do Linux, correto? Quando bater o horário de verão, o meu servidor vai ajustar a hora automaticamente, e todas as bases devem ficar no horário de verão ( 1 hora adiantado). Para resolver o problema, pensei em dar um ALTER DATABASE database SET TIMEZONE TO 'Brazil/West', (offset -4) nos estados que não adotam o horário de verão, atrasando em 1 hora estas bases. O problema é que se eu altero o timezone da base, TODAS as datas da base, mesmo as anteriores ao horário de verão, vão ser alteradas no output. Como evitar isso? Talvez o a coluna is_dst em pg_timezone_names ajude em algo? Não entendi direito como ela funciona... Dados úteis: Versão do postgres: 8.4 Timezone atual de todas as bases: 'Brazil/East' Desde já, agradeço! -- Pedro Ivo Bispo de França ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Em 13 de outubro de 2011 10:47, Pedro Ivo Bispo França pe...@xbrain.com.brescreveu: Pessoal, com a chegada do horário de verão, estou com um probleminha para resolver. Aqui na empresa, possuímos diversos databases de vários sistemas espalhados pelo Brasil inteiro, em um único servidor. Com o horário de verão chegando, não é possível simplesmente alterar o parâmetro no postgres.conf pois diversos estados não irão aderir ao horário de verão. O parâmetro de timezone no meu postgres.conf está como 'unknown'. Isso quer dizer que ele sincroniza com a variável de ambiente de TZ do Linux, correto? Quando bater o horário de verão, o meu servidor vai ajustar a hora automaticamente, e todas as bases devem ficar no horário de verão ( 1 hora adiantado). Para resolver o problema, pensei em dar um ALTER DATABASE database SET TIMEZONE TO 'Brazil/West', (offset -4) nos estados que não adotam o horário de verão, atrasando em 1 hora estas bases. O problema é que se eu altero o timezone da base, TODAS as datas da base, mesmo as anteriores ao horário de verão, vão ser alteradas no output. Como evitar isso? Talvez o a coluna is_dst em pg_timezone_names ajude em algo? Não entendi direito como ela funciona... Dados úteis: Versão do postgres: 8.4 Timezone atual de todas as bases: 'Brazil/East' Bom dia Pedro, Ja tive muitos problemas com relação a horário de verão, a melhor solução que encontrei até hoje foi trabalhar com as bases de dados sempre em utc e deixar a aplicação fazer o cast para o timezone do estado especifico. []'s Edson Souza ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Obrigado pela resposta Edson! Queria deixar essa solução em último caso... Vamos torcer que alguém venha com alguma ideia genial... []'s Em 13 de outubro de 2011 10:58, Edson neto edson.edsn...@gmail.comescreveu: Em 13 de outubro de 2011 10:47, Pedro Ivo Bispo França pe...@xbrain.com.br escreveu: Pessoal, com a chegada do horário de verão, estou com um probleminha para resolver. Aqui na empresa, possuímos diversos databases de vários sistemas espalhados pelo Brasil inteiro, em um único servidor. Com o horário de verão chegando, não é possível simplesmente alterar o parâmetro no postgres.conf pois diversos estados não irão aderir ao horário de verão. O parâmetro de timezone no meu postgres.conf está como 'unknown'. Isso quer dizer que ele sincroniza com a variável de ambiente de TZ do Linux, correto? Quando bater o horário de verão, o meu servidor vai ajustar a hora automaticamente, e todas as bases devem ficar no horário de verão ( 1 hora adiantado). Para resolver o problema, pensei em dar um ALTER DATABASE database SET TIMEZONE TO 'Brazil/West', (offset -4) nos estados que não adotam o horário de verão, atrasando em 1 hora estas bases. O problema é que se eu altero o timezone da base, TODAS as datas da base, mesmo as anteriores ao horário de verão, vão ser alteradas no output. Como evitar isso? Talvez o a coluna is_dst em pg_timezone_names ajude em algo? Não entendi direito como ela funciona... Dados úteis: Versão do postgres: 8.4 Timezone atual de todas as bases: 'Brazil/East' Bom dia Pedro, Ja tive muitos problemas com relação a horário de verão, a melhor solução que encontrei até hoje foi trabalhar com as bases de dados sempre em utc e deixar a aplicação fazer o cast para o timezone do estado especifico. []'s Edson Souza ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Pedro Ivo Bispo de França X-Brain - Desenvolvimento de Sistemas Ltda Contato: +55 43 3304-2204 | +55 43 9608-3678 Avenida Tiradentes, 501 Sala 702 Torre 1 - Jd. Shangrilá Londrina - Paraná - 86070-545 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
2011/10/13 Pedro Ivo Bispo França pe...@xbrain.com.br: Aqui na empresa, possuímos diversos databases de vários sistemas espalhados pelo Brasil inteiro, em um único servidor. Com o horário de verão chegando, não é possível simplesmente alterar o parâmetro no postgres.conf pois diversos estados não irão aderir ao horário de verão. Rapaz, tinha de ter pensado isso na criação da base e do aplicativo. O certo é deixar o servidor configurado corretamente, com o relógio de máquina em UTC e o SO configurado na cidade de referência correta para fuso e horário de verão. Todos os atributos temporais têm de ser declarados WITH TIMEZONE, para também irem para UTC mais ou menos fuso e horário de verão. Então, a aplicação e usuários sempre lidarão com o tempo dando a informação de hora local e fuso, ou UTC. Só assim a base ficará realmente consistente. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
On 13-10-2011 10:47, Pedro Ivo Bispo França wrote: O problema é que se eu altero o timezone da base, TODAS as datas da base, mesmo as anteriores ao horário de verão, vão ser alteradas no output. Como evitar isso? Talvez o a coluna is_dst em pg_timezone_names ajude em algo? Não entendi direito como ela funciona... Isso porque você *não* armazena o timezone no campo data/hora (aka timestamp without time zone). Quando estamos trabalhando com data/hora temos que fazer a seguinte pergunta: a zona horária de armazenamento é a mesma que a de apresentação? Se sim, podemos utilizar o tipo de dado 'timestamp without time zone'; senão, o tipo de dado deve ser 'timestamp with time zone'. A coluna is_dst indica se a zona horária possui horário de verão ou não (aka daylight saving time). Aplicações que funcionam em múltiplas zonas horárias geralmente escolhem uma zona horária padrão (por exemplo, horário de Brasília), utilizam o tipo de dado 'timestamp with time zone' e ao manipular os campos data/hora sempre utilizam AT TIMEZONE 'foo' [1] de acordo com cada caso. [1] http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-ZONECONVERT -- Euler Taveira de Oliveira - Timbira http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Euler, mas eu armazeno a data em um timestamp with time zone, porém, ele não armazena o timezone no momento da gravação, a hora armazenada é a equivalente em UTC, e no momento do display, ele faz o ajuste dependendo da timezone atual. Confere? Não vejo um jeito de adaptar isso tudo e deixar os dados consistentes. Se eu pudesse, falaria para todo mundo seguir um horário só e pronto, mas ajustar o relógio corretamente com a do estado é uma demanda do cliente. Ainda estou analisando que rumo tomar... Obrigado pelas colaborações gente Em 13 de outubro de 2011 13:03, Euler Taveira de Oliveira eu...@timbira.com escreveu: On 13-10-2011 10:47, Pedro Ivo Bispo França wrote: O problema é que se eu altero o timezone da base, TODAS as datas da base, mesmo as anteriores ao horário de verão, vão ser alteradas no output. Como evitar isso? Talvez o a coluna is_dst em pg_timezone_names ajude em algo? Não entendi direito como ela funciona... Isso porque você *não* armazena o timezone no campo data/hora (aka timestamp without time zone). Quando estamos trabalhando com data/hora temos que fazer a seguinte pergunta: a zona horária de armazenamento é a mesma que a de apresentação? Se sim, podemos utilizar o tipo de dado 'timestamp without time zone'; senão, o tipo de dado deve ser 'timestamp with time zone'. A coluna is_dst indica se a zona horária possui horário de verão ou não (aka daylight saving time). Aplicações que funcionam em múltiplas zonas horárias geralmente escolhem uma zona horária padrão (por exemplo, horário de Brasília), utilizam o tipo de dado 'timestamp with time zone' e ao manipular os campos data/hora sempre utilizam AT TIMEZONE 'foo' [1] de acordo com cada caso. [1] http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-ZONECONVERT -- Euler Taveira de Oliveira - Timbira http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Pedro Ivo Bispo de França X-Brain - Desenvolvimento de Sistemas Ltda Contato: +55 43 3304-2204 | +55 43 9608-3678 Avenida Tiradentes, 501 Sala 702 Torre 1 - Jd. Shangrilá Londrina - Paraná - 86070-545 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
2011/10/13 Pedro Ivo Bispo França pe...@xbrain.com.br: Euler, mas eu armazeno a data em um timestamp with time zone, porém, ele não armazena o timezone no momento da gravação, a hora armazenada é a equivalente em UTC, e no momento do display, ele faz o ajuste dependendo da timezone atual. Confere? Não vejo um jeito de adaptar isso tudo e deixar os dados consistentes. Mas é isso mesmo, e assim que tem de ser. A consistência está no armazenamento em UTC. Se eu pudesse, falaria para todo mundo seguir um horário só e pronto, mas ajustar o relógio corretamente com a do estado é uma demanda do cliente. Ainda estou analisando que rumo tomar... Isso é uma configuração do cliente, a qual a aplicação tem de ler para trabalhar corretamente. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
entendi... Estou pensando em por uma flag no banco, que diz se o estado participa ou não do horário de verão. A aplicação, ao abrir a sessão le esse parâmetro, e da um AT TIMEZONE correspondente, se a data estiver nos períodos de horário de verão. O que acham? Se tiverem uma idéia melhor, podem sugerir []'s Em 13 de outubro de 2011 13:37, Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org escreveu: 2011/10/13 Pedro Ivo Bispo França pe...@xbrain.com.br: Euler, mas eu armazeno a data em um timestamp with time zone, porém, ele não armazena o timezone no momento da gravação, a hora armazenada é a equivalente em UTC, e no momento do display, ele faz o ajuste dependendo da timezone atual. Confere? Não vejo um jeito de adaptar isso tudo e deixar os dados consistentes. Mas é isso mesmo, e assim que tem de ser. A consistência está no armazenamento em UTC. Se eu pudesse, falaria para todo mundo seguir um horário só e pronto, mas ajustar o relógio corretamente com a do estado é uma demanda do cliente. Ainda estou analisando que rumo tomar... Isso é uma configuração do cliente, a qual a aplicação tem de ler para trabalhar corretamente. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Pedro Ivo Bispo de França X-Brain - Desenvolvimento de Sistemas Ltda Contato: +55 43 3304-2204 | +55 43 9608-3678 Avenida Tiradentes, 501 Sala 702 Torre 1 - Jd. Shangrilá Londrina - Paraná - 86070-545 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
2011/10/13 Pedro Ivo Bispo França pe...@xbrain.com.br: Estou pensando em por uma flag no banco, que diz se o estado participa ou não do horário de verão. A aplicação, ao abrir a sessão le esse parâmetro, e da um AT TIMEZONE correspondente, se a data estiver nos períodos de horário de verão. Na verdade, é um pouco mais simples. A base de dados de tempo, que já está disponível no SO, tem essa informação. Ela não consta por estado, porque poderia acontecer de um estado ter parte no horário de verão, parte fora ou, mais provavelmente, parte num fuso horário, parte noutro (por exemplo, Fernando de Noronha é parte de Pernambuco, e o oeste do Amazonas segue o Acre). Em vez disso, os fusos têm nomes, mas acaba‐se usando mais uma cidade de referência, como se vê na tabela 8‐12 na seção 8.5.1.2 do manual http://www.postgresql.org/docs/9.1/interactive/datatype-datetime.html. Portanto, basta recuperar essa informação do SO e informá‐la ao abrir a sessão do cliente, ou antes de começar uma transação, sem se preocupar com determinar em que fuso ou horário se está; a informação vira praticamente um biscoito mágico (/magic cookie/) que a aplicação busca no SO e passa para a base. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Nossa...muito obrigado!! Ajudou bastante!! Vou tentar resolver o problema desta forma! Obrigado a todos que contribuiram Em 13 de outubro de 2011 14:45, Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org escreveu: 2011/10/13 Pedro Ivo Bispo França pe...@xbrain.com.br: Estou pensando em por uma flag no banco, que diz se o estado participa ou não do horário de verão. A aplicação, ao abrir a sessão le esse parâmetro, e da um AT TIMEZONE correspondente, se a data estiver nos períodos de horário de verão. Na verdade, é um pouco mais simples. A base de dados de tempo, que já está disponível no SO, tem essa informação. Ela não consta por estado, porque poderia acontecer de um estado ter parte no horário de verão, parte fora ou, mais provavelmente, parte num fuso horário, parte noutro (por exemplo, Fernando de Noronha é parte de Pernambuco, e o oeste do Amazonas segue o Acre). Em vez disso, os fusos têm nomes, mas acaba‐se usando mais uma cidade de referência, como se vê na tabela 8‐12 na seção 8.5.1.2 do manual http://www.postgresql.org/docs/9.1/interactive/datatype-datetime.html. Portanto, basta recuperar essa informação do SO e informá‐la ao abrir a sessão do cliente, ou antes de começar uma transação, sem se preocupar com determinar em que fuso ou horário se está; a informação vira praticamente um biscoito mágico (/magic cookie/) que a aplicação busca no SO e passa para a base. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Pedro Ivo Bispo de França X-Brain - Desenvolvimento de Sistemas Ltda Contato: +55 43 3304-2204 | +55 43 9608-3678 Avenida Tiradentes, 501 Sala 702 Torre 1 - Jd. Shangrilá Londrina - Paraná - 86070-545 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
2011/10/13 Shander Lyrio shan...@nucleo45.com.br: O problema ocorre quando vários clientes de fusos horários diferentes tem seu sistema hospedado em um mesmo servidor, o que não é incomum em SaaS. Se o sistema roda no servidor, isso é bom — mas, se isso significa que ele não se comunica com o cliente, isso é ruim. Nesse caso, a informação teria de ser prestada pelo usuário. Ainda tenho um caso mais complicado e neste precisei incluir um campo para cada usuário indicando em qual fuso horário ele se encontra. CQD acima. Imagina um sistema de logística onde gente do Brasil inteiro insere dados, cada um estando em um fuso horário diferente. Qual o problema? Na prática a teoria é outra coisa. Nada a ver. Teoria é explicação da realidade, só isso. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Em 13/10/2011 15:39, Guimarães Faria Corcete DUTRA, Leandro escreveu: 2011/10/13 Shander Lyrioshan...@nucleo45.com.br: O problema ocorre quando vários clientes de fusos horários diferentes tem seu sistema hospedado em um mesmo servidor, o que não é incomum em SaaS. Se o sistema roda no servidor, isso é bom — mas, se isso significa que ele não se comunica com o cliente, isso é ruim. Nesse caso, a informação teria de ser prestada pelo usuário. Ainda tenho um caso mais complicado e neste precisei incluir um campo para cada usuário indicando em qual fuso horário ele se encontra. CQD acima. Imagina um sistema de logística onde gente do Brasil inteiro insere dados, cada um estando em um fuso horário diferente. Qual o problema? Concordo, não vejo problema a não ser quando o mesmo usuário é usado em vários logins ao mesmo tempo e em diferentes lugares, fora isso acho que é bem fácil de resolver. Na prática a teoria é outra coisa. Nada a ver. Teoria é explicação da realidade, só isso. Desculpe-me, mas teoria é um ponto de vista de um mundo ideal e que sabemos fica bem longe do mundo real. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
2011/10/13 Flávio Alves Granato flavio.gran...@gmail.com: Em 13/10/2011 15:39, Guimarães Faria Corcete DUTRA, Leandro escreveu: 2011/10/13 Shander Lyrioshan...@nucleo45.com.br: Imagina um sistema de logística onde gente do Brasil inteiro insere dados, cada um estando em um fuso horário diferente. Qual o problema? Concordo, não vejo problema a não ser quando o mesmo usuário é usado em vários logins ao mesmo tempo e em diferentes lugares, fora isso acho que é bem fácil de resolver. Nesse caso, a gente volta à solução ideal — o cliente tem de informar à aplicação onde está — e ao contorno — o usuário terá de informar toda vez que abrir uma sessão. Na prática a teoria é outra coisa. Nada a ver. Teoria é explicação da realidade, só isso. Desculpe-me, mas teoria é um ponto de vista de um mundo ideal e que sabemos fica bem longe do mundo real. Cada ponto de vista representa uma teoria. Quando não corresponder à realidade, busca‐se outra teoria que corresponda melhor. Ainda não arranjaram teoria melhor que o modelo relacional. É como Unix: quem não conhece, está sujeito a cometer os mesmo erros vez após vez. E hoje temos a lei de Moore para camuflar os problemas até que seja tarde demais para consertá‐los. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Em 13-10-2011 15:39, Guimarães Faria Corcete DUTRA, Leandro escreveu: 2011/10/13 Shander Lyrioshan...@nucleo45.com.br: O problema ocorre quando vários clientes de fusos horários diferentes tem seu sistema hospedado em um mesmo servidor, o que não é incomum em SaaS. Se o sistema roda no servidor, isso é bom — mas, se isso significa que ele não se comunica com o cliente, isso é ruim. Nesse caso, a informação teria de ser prestada pelo usuário. O Sistema roda na Web, um browser não passa automaticamente o fuso horário numa requisição http, também não tem como você pedir para o browser te passar esta informação do sistema operacional do usuário por questões de segurança. Todo sistema cliente/servidor tem que se comunicar obviamente com o servidor, senão não seria necessário o segundo, o que é comunicado é a questão. Pela sua colocação então, todos os sistemas web que rodam em algum browser são ruins. Bom ou Ruim depende de contexto e a afirmação categórica de algum deles sem contexto é irrelevante. Imagina um sistema de logística onde gente do Brasil inteiro insere dados, cada um estando em um fuso horário diferente. Qual o problema? Seu CPD pode estar em São Paulo, importar os arquivos de carga do cliente, a coleta destes documentos serem descentralizadas e alguém em Pernambuco lançar a coleta deste documento uns minutos depois. No tracking você vai ver algo bizarro como a coleta ser realizada antes do arquivo ter sido processado pelo cliente. Na prática a teoria é outra coisa. Nada a ver. Teoria é explicação da realidade, só isso. Teoria é a tentativa de explicação da realidade pelos olhos de quem tentou dar esta explicação. Vista de apenas um ângulo é no mínimo limitada. -- Shander Lyrio http://about.me/shander ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Qual o problema? Concordo, não vejo problema a não ser quando o mesmo usuário é usado em vários logins ao mesmo tempo e em diferentes lugares, fora isso acho que é bem fácil de resolver. Nesse caso, a gente volta à solução ideal — o cliente tem de informar à aplicação onde está — e ao contorno — o usuário terá de informar toda vez que abrir uma sessão. Concordo e esta função deve ficar a cargo da aplicação, já que ela é quem acompanha o usuário. Na prática a teoria é outra coisa. Nada a ver. Teoria é explicação da realidade, só isso. Desculpe-me, mas teoria é um ponto de vista de um mundo ideal e que sabemos fica bem longe do mundo real. Cada ponto de vista representa uma teoria. Quando não corresponder à realidade, busca‐se outra teoria que corresponda melhor. Ainda não arranjaram teoria melhor que o modelo relacional. É como Unix: quem não conhece, está sujeito a cometer os mesmo erros vez após vez. E hoje temos a lei de Moore para camuflar os problemas até que seja tarde demais para consertá‐los. As vezes é bom não ter regras e as vezes é bom ter regras, às vezes é bom ter relacionamentos e às vezes não. Concordo que o modelo relacional esta bem consolidado, mas realmente precisamos relacionar todos os nossos dados? Em transações bancárias por exemplo sim, mas e nas outras aplicações? Creio que um modelo hibrido seria bom onde objetos complexos vivem em harmonia com o modelo relacional. Claro cada situação é uma situação. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Em 13/10/2011 15:59, Shander Lyrio escreveu: Em 13-10-2011 15:39, Guimarães Faria Corcete DUTRA, Leandro escreveu: 2011/10/13 Shander Lyrioshan...@nucleo45.com.br: O problema ocorre quando vários clientes de fusos horários diferentes tem seu sistema hospedado em um mesmo servidor, o que não é incomum em SaaS. Se o sistema roda no servidor, isso é bom — mas, se isso significa que ele não se comunica com o cliente, isso é ruim. Nesse caso, a informação teria de ser prestada pelo usuário. O Sistema roda na Web, um browser não passa automaticamente o fuso horário numa requisição http, também não tem como você pedir para o browser te passar esta informação do sistema operacional do usuário por questões de segurança. Todo sistema cliente/servidor tem que se comunicar obviamente com o servidor, senão não seria necessário o segundo, o que é comunicado é a questão. Pela sua colocação então, todos os sistemas web que rodam em algum browser são ruins. Creio que seja mais fácil do que você colocou em sua argumentação e que pelo contrário seja uma questão de segurança saber a que real horário o cliente acessou a sua máquina, se não seria a segurança do *indows você não tem acesso ao código fonte logo você esta seguro, é só uma analogia. Bom ou Ruim depende de contexto e a afirmação categórica de algum deles sem contexto é irrelevante. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Pessoal, então se em uma aplicação WEB não tem como solicitar do browser a localização do usuário, então nos resta pré-cadastrar se um estado está ou não utilizando o horário de verão e setar o timezone da sessão de acordo com esta informação. Correto? Abraços Em 13 de outubro de 2011 16:12, Flávio Alves Granato flavio.gran...@gmail.com escreveu: Qual o problema? Concordo, não vejo problema a não ser quando o mesmo usuário é usado em vários logins ao mesmo tempo e em diferentes lugares, fora isso acho que é bem fácil de resolver. Nesse caso, a gente volta à solução ideal — o cliente tem de informar à aplicação onde está — e ao contorno — o usuário terá de informar toda vez que abrir uma sessão. Concordo e esta função deve ficar a cargo da aplicação, já que ela é quem acompanha o usuário. Na prática a teoria é outra coisa. Nada a ver. Teoria é explicação da realidade, só isso. Desculpe-me, mas teoria é um ponto de vista de um mundo ideal e que sabemos fica bem longe do mundo real. Cada ponto de vista representa uma teoria. Quando não corresponder à realidade, busca‐se outra teoria que corresponda melhor. Ainda não arranjaram teoria melhor que o modelo relacional. É como Unix: quem não conhece, está sujeito a cometer os mesmo erros vez após vez. E hoje temos a lei de Moore para camuflar os problemas até que seja tarde demais para consertá‐los. As vezes é bom não ter regras e as vezes é bom ter regras, às vezes é bom ter relacionamentos e às vezes não. Concordo que o modelo relacional esta bem consolidado, mas realmente precisamos relacionar todos os nossos dados? Em transações bancárias por exemplo sim, mas e nas outras aplicações? Creio que um modelo hibrido seria bom onde objetos complexos vivem em harmonia com o modelo relacional. Claro cada situação é uma situação. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Pedro Ivo Bispo de França X-Brain - Desenvolvimento de Sistemas Ltda Contato: +55 43 3304-2204 | +55 43 9608-3678 Avenida Tiradentes, 501 Sala 702 Torre 1 - Jd. Shangrilá Londrina - Paraná - 86070-545 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Em 13/10/2011 16:16, Pedro Ivo Bispo França escreveu: Pessoal, então se em uma aplicação WEB não tem como solicitar do browser a localização do usuário, então nos resta pré-cadastrar se um estado está ou não utilizando o horário de verão e setar o timezone da sessão de acordo com esta informação. Correto? Não há necessidade, o google já faz essa localização bem precisa em suas aplicações, claro utilizando de outros meios para pegar esta localização mais precisa, mas me pergunto se já pego qual a língua do browser para eu mostrar a linguagem nativa do usuário na aplicação, então o que me impediria de pegar também o fuso horário dele? Nada. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Pelo Google achei comentários como o [1] que menciona a respeito de pegar a hora do cliente e não do servidor através de linguagem. Seria a isso que que se refere? [1] http://www.hardware.com.br/comunidade/hora-php/966338/ Abraços, Eduardo Alexandre Em 13 de outubro de 2011 16:25, Flávio Alves Granato flavio.gran...@gmail.com escreveu: Não há necessidade, o google já faz essa localização bem precisa em suas aplicações, claro utilizando de outros meios para pegar esta localização mais precisa, mas me pergunto se já pego qual a língua do browser para eu mostrar a linguagem nativa do usuário na aplicação, então o que me impediria de pegar também o fuso horário dele? Nada. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Em 13/10/2011 16:27, Eduardo Alexandre escreveu: Pelo Google achei comentários como o [1] que menciona a respeito de pegar a hora do cliente e não do servidor através de linguagem. Seria a isso que que se refere? [1] http://www.hardware.com.br/comunidade/hora-php/966338/ Sim, é disso mesmo que falo. Saber qual o momento certo seu usuário logou na aplicação é importante e crítico. Pois ajuda resolver casos de acesso indevido, ataque e até mesmo melhorar seu relacionamento com ele, vide aqueles serviços onde seu suporte esta onde a luz do sol esta iluminando o mundo. Logo, você não precisa pagar adicional noturno e nem perder o suporte a seu cliente. Bem é para empresas globais. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
E analisando aqui, o pior não é nem descobrir a timezone do cliente. É descobrir se ele está adotando ou não o bendito horário de verão. Isso é uma questão política e não só geográfica. (A bahia está entrando recentemente no horário de verão se não me engano) Tem como saber se o usuário está ou não sob efeito do horário de verão somente vendo a timezone em que ele se encontra? Em 13 de outubro de 2011 16:27, Eduardo Alexandre eduardog...@gmail.comescreveu: Pelo Google achei comentários como o [1] que menciona a respeito de pegar a hora do cliente e não do servidor através de linguagem. Seria a isso que que se refere? [1] http://www.hardware.com.br/comunidade/hora-php/966338/ Abraços, Eduardo Alexandre Em 13 de outubro de 2011 16:25, Flávio Alves Granato flavio.gran...@gmail.com escreveu: Não há necessidade, o google já faz essa localização bem precisa em suas aplicações, claro utilizando de outros meios para pegar esta localização mais precisa, mas me pergunto se já pego qual a língua do browser para eu mostrar a linguagem nativa do usuário na aplicação, então o que me impediria de pegar também o fuso horário dele? Nada. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Pedro Ivo Bispo de França X-Brain - Desenvolvimento de Sistemas Ltda Contato: +55 43 3304-2204 | +55 43 9608-3678 Avenida Tiradentes, 501 Sala 702 Torre 1 - Jd. Shangrilá Londrina - Paraná - 86070-545 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Em 13/10/2011 16:53, Pedro Ivo Bispo França escreveu: E analisando aqui, o pior não é nem descobrir a timezone do cliente. É descobrir se ele está adotando ou não o bendito horário de verão. Isso é uma questão política e não só geográfica. (A bahia está entrando recentemente no horário de verão se não me engano) Tem como saber se o usuário está ou não sob efeito do horário de verão somente vendo a timezone em que ele se encontra? Agora tem, já que o Lula sancionou a lei que fixa os dias de início e fim do horário de verão. Agora quais dias, já são outra história e não é um dia fixo do mês, se não me engano é tipo segundo sábado de outubro e segundo sábado de fevereiro... ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
2011/10/13 Shander Lyrio shan...@nucleo45.com.br: O Sistema roda na Web, um browser não passa automaticamente o fuso horário numa requisição http, também não tem como você pedir para o browser te passar esta informação do sistema operacional do usuário por questões de segurança. Que questões? Pergunta de leigo… Me corrija se estiver errado, mas hoje pode‐se determinar com precisão razoável onde está o usuário, no limite pede‐se que ele confirme a informação ao abrir ou a sessão, ou a transação. …o que é comunicado é a questão. Pela sua colocação então, todos os sistemas web que rodam em algum browser são ruins. E isso seria absurdo, se for verdade? Em última instância, pergunta‐se ao usuário. O que é ruim, mas pode resolver. Seu CPD pode estar em São Paulo, importar os arquivos de carga do cliente, a coleta destes documentos serem descentralizadas e alguém em Pernambuco lançar a coleta deste documento uns minutos depois. No tracking você vai ver algo bizarro como a coleta ser realizada antes do arquivo ter sido processado pelo cliente. Ou seja, um problema de procedimento… Nada a ver. Teoria é explicação da realidade, só isso. Teoria é a tentativa de explicação da realidade pelos olhos de quem tentou dar esta explicação. Vista de apenas um ângulo é no mínimo limitada. Por isso é debatida publicamente. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
2011/10/13 Flávio Alves Granato flavio.gran...@gmail.com: As vezes é bom não ter regras e as vezes é bom ter regras Se não há regras, não há como criar um sistema… um sistema sem regras é um sistema inconsistente. às vezes é bom ter relacionamentos e às vezes não. Concordo que o modelo relacional esta bem consolidado, mas realmente precisamos relacionar todos os nossos dados? Mas o modelo relacional não tem nada a ver com relacionamentos! Ele é sobre relações (tabelas com chave(s) natural(is) declarada(s)), não sobre relacionamentos entre relações. Em transações bancárias por exemplo sim, mas e nas outras aplicações? Creio que um modelo hibrido seria bom onde objetos complexos vivem em harmonia com o modelo relacional. Claro cada situação é uma situação. Esse modelo é o relacional, vide _The Third Manifest_… o modelo relacional não está bem implementado nem na linguagem SQL em si, nem nas implementações SQL (SGBDs), mas isso são restrições tecnológicas arbitrárias, não problemas do modelo. Sabendo dessas limitações, pode‐se decidir por violar o modelo em alguns casos, como por exemplo criar chaves artificiais onde absolutamente necessário; violá‐lo sistematicamente é pedir para apanhar da vida. Para resumir, classes de OO equivalem a tipos de dados no modelo relacional. E, portanto, OO e o modelo relacional são ortogonais. Só entram em conflito quando quem não conhece o modelo relacional tenta reinventar a roda aplicando uma técnica de programação, que é a OO, na gestão de dados. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
2011/10/13 Eduardo Alexandre eduardog...@gmail.com: Pelo Google achei comentários como o [1] que menciona a respeito de pegar a hora do cliente e não do servidor através de linguagem. Seria a isso que que se refere? [1] http://www.hardware.com.br/comunidade/hora-php/966338/ Basicamente sim, mas não basta a hora: tem de saber a diferença para UTC, e isso se sabe pela cidade de referência do fuso. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
2011/10/13 Pedro Ivo Bispo França pe...@xbrain.com.br: E analisando aqui, o pior não é nem descobrir a timezone do cliente. É descobrir se ele está adotando ou não o bendito horário de verão. Por isso que se deve usar não a diferença de fuso (+2 ou -3, por exemplo), mas o nome do fuso ou, mais claramente, a cidade de referência. Isso é uma questão política e não só geográfica. (A bahia está entrando recentemente no horário de verão se não me engano) Todas essas informações políticas estão disponíveis na última base de dados de fusos horários, que foi recentemente tirada do ar; atualizações desde então, até que o litígio que a tirou do ar acabe, ficam a cargo do freguês. Para o Brasil, o Observatório Nacional publica todas as alterações com antecedência. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
2011/10/13 Flávio Alves Granato flavio.gran...@gmail.com: Agora tem, já que o Lula sancionou a lei que fixa os dias de início e fim do horário de verão. O problema não é haver lei, que sempre houve, mas o governo resistir a emitir medidas provisórias acochambrando para a Globo transmitir a visita do Papa, a Copa do mundo e coisas assim. Agora quais dias, já são outra história e não é um dia fixo do mês, se não me engano é tipo segundo sábado de outubro e segundo sábado de fevereiro... Procure por ‘TZ database’. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
2011/10/13 Shander Lyrio shan...@nucleo45.com.br: Responder perguntas sempre dizendo, que se deveria procurar uma chave natural, ou que se estivesse usando chave natural isso ou aquilo não aconteceria, ou ainda que sugiro que procure chave natural não resolve o problema de ninguém, principalmente quando não se consegue achar uma única chave natural viável nem num simples cadastro de clientes. Sempre há uma chave natural. Pode ser que, por limitações tecnológicas, seja necessário acrescentar uma artificial, mas nunca à exclusão de ao menos uma natural. A pena é inconsistência da base. Apenas põe mais dúvida na cabeça do povo, que vai consultar a teoria no livro do Date e sabe o que o cara vai encontrar lá?? id_customer, id_dept, id_employer, id_state ... e não adianta dizer para procurar em outros livros, eu já li vários e é sempre a mesma coisa. O livro do Date é para ser usado, não adorado. Sim, ele coloca ids; não, não quer dizer que ele advogue chaves artificiais. Nem todo id é artificial, e muitas vezes se simplifica um exemplo porque o assunto não é chave. Vou tentar escrever para ele sugerindo esclarece isso na próxima edição, mas o problema é do leitor: perceber que os exemplos não são explanação de princípios. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
2011/10/13 Flavio Henrique Araque Gurgel fha...@gmail.com: Basicamente sim, mas não basta a hora: tem de saber a diferença para UTC, e isso se sabe pela cidade de referência do fuso. A hora GMT é a hora zero de onde os fusos horários são calculados. Em Informática, GMT foi substituída pela UTC. Tratar a hora no SGBD como GMT é uma boa. Por isso o WITH TIME ZONE. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Em 13-10-2011 16:16, Pedro Ivo Bispo França escreveu: Pessoal, então se em uma aplicação WEB não tem como solicitar do browser a localização do usuário, então nos resta pré-cadastrar se um estado está ou não utilizando o horário de verão e setar o timezone da sessão de acordo com esta informação. Correto? Acredito que sim, infelizmente, nem pelo ip você consegue uma informação fiável do estado em que o usuário está se conectando. Aqui temos trabalhado desta forma há 4 anos sem problemas. Também é a forma utilizada pela maioria, senão todos os sites de CMS ou foruns internacionais, no momento do cadastro do usuário é você informa sua timezone. Uma outra forma seria você pegar via JavaScript a hora da máquina do usuário mas eu não gosto muito desta opção já que a alteração no sistema seria muito maior para popular todas as requisições feitas ao servidor de aplicação. Abraço, -- Shander Lyrio http://about.me/shander ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Em 13-10-2011 16:25, Flávio Alves Granato escreveu: Em 13/10/2011 16:16, Pedro Ivo Bispo França escreveu: Pessoal, então se em uma aplicação WEB não tem como solicitar do browser a localização do usuário, então nos resta pré-cadastrar se um estado está ou não utilizando o horário de verão e setar o timezone da sessão de acordo com esta informação. Correto? Não há necessidade, o google já faz essa localização bem precisa em suas aplicações, claro utilizando de outros meios para pegar esta localização mais precisa, mas me pergunto se já pego qual a língua do browser para eu mostrar a linguagem nativa do usuário na aplicação, então o que me impediria de pegar também o fuso horário dele? Nada. O que impediria o fato de que a língua pode ser configurada no browser, se você configura errado vem informação errada, mas seu timezone não pode ser configurado no browser, até porque, voce com seu notebook no Recife ou no Acre, seu idioma não muda, mas seu timezone com certeza sim. Abraço, -- Shander Lyrio http://about.com/shander ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Em transações bancárias por exemplo sim, mas e nas outras aplicações? Creio que um modelo hibrido seria bom onde objetos complexos vivem em harmonia com o modelo relacional. Claro cada situação é uma situação. Esse modelo é o relacional, vide _The Third Manifest_… o modelo relacional não está bem implementado nem na linguagem SQL em si, nem nas implementações SQL (SGBDs), mas isso são restrições tecnológicas arbitrárias, não problemas do modelo. Sabendo dessas limitações, pode‐se decidir por violar o modelo em alguns casos, como por exemplo criar chaves artificiais onde absolutamente necessário; violá‐lo sistematicamente é pedir para apanhar da vida. Para resumir, classes de OO equivalem a tipos de dados no modelo relacional. E, portanto, OO e o modelo relacional são ortogonais. Só entram em conflito quando quem não conhece o modelo relacional tenta reinventar a roda aplicando uma técnica de programação, que é a OO, na gestão de dados. Onde se encaixa o modelo não relacional nesta teoria? O famoso NoSQL, agora viu que não disse programação OO. Sim, acho que não é necessário implementar a complexidade de um modelo relacional em todas as situaçãos, apesar de ele poder ser usado. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Em 13/10/2011 17:54, Shander Lyrio escreveu: Em 13-10-2011 16:25, Flávio Alves Granato escreveu: Em 13/10/2011 16:16, Pedro Ivo Bispo França escreveu: Pessoal, então se em uma aplicação WEB não tem como solicitar do browser a localização do usuário, então nos resta pré-cadastrar se um estado está ou não utilizando o horário de verão e setar o timezone da sessão de acordo com esta informação. Correto? Não há necessidade, o google já faz essa localização bem precisa em suas aplicações, claro utilizando de outros meios para pegar esta localização mais precisa, mas me pergunto se já pego qual a língua do browser para eu mostrar a linguagem nativa do usuário na aplicação, então o que me impediria de pegar também o fuso horário dele? Nada. O que impediria o fato de que a língua pode ser configurada no browser, se você configura errado vem informação errada, mas seu timezone não pode ser configurado no browser, até porque, voce com seu notebook no Recife ou no Acre, seu idioma não muda, mas seu timezone com certeza sim. Concordo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Em 13-10-2011 16:17, Flávio Alves Granato escreveu: Creio que seja mais fácil do que você colocou em sua argumentação e que pelo contrário seja uma questão de segurança saber a que real horário o cliente acessou a sua máquina, se não seria a segurança do *indows Você não tem como garantir que o horário da máquina do usuário esteja correto a não ser que seja um ambiente controlado. Com JavaScript você consegue o horário, mas este horário está atualizado com o horário de verão ou não? está correto? Todos os browsers respondem da mesma forma? Além disso, você precisaria mudar toda a aplicação para em cada requisição ao servidor de aplicações começar a enviar este horário também como parâmetro o que raramente é uma opção. Abraço, -- Shander Lyrio http://about.com/shander ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
O mais simples é isso mesmo, o usuário informa sua timezone. Num ERP isto pode ser implícito, o usuário pode ser cadastrado com uma TZ fixa ou a TZ pode ser associada ao servidor onde ele está se logando. Um funcionário do operacional pode nem saber que existe TZ e esta ser fixa no seu cadastro; um usuário gerencial pode informar em que filial ele quer se logar e o sistema pegar a TZ dela. Em 13 de outubro de 2011 17:50, Shander Lyrio shan...@nucleo45.com.br escreveu: Em 13-10-2011 16:16, Pedro Ivo Bispo França escreveu: Pessoal, então se em uma aplicação WEB não tem como solicitar do browser a localização do usuário, então nos resta pré-cadastrar se um estado está ou não utilizando o horário de verão e setar o timezone da sessão de acordo com esta informação. Correto? Acredito que sim, infelizmente, nem pelo ip você consegue uma informação fiável do estado em que o usuário está se conectando. Aqui temos trabalhado desta forma há 4 anos sem problemas. Também é a forma utilizada pela maioria, senão todos os sites de CMS ou foruns internacionais, no momento do cadastro do usuário é você informa sua timezone. -- Atenciosamente, Alexsander da Rosa http://rednaxel.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Em 13-10-2011 17:26, Guimarães Faria Corcete DUTRA, Leandro escreveu: 2011/10/13 Shander Lyrioshan...@nucleo45.com.br: O Sistema roda na Web, um browser não passa automaticamente o fuso horário numa requisição http, também não tem como você pedir para o browser te passar esta informação do sistema operacional do usuário por questões de segurança. Que questões? Pergunta de leigo… Alguém(s) resolveu restrigir as coisas que um browser pode ou não fazer para evitar a propagação de vírus, imagina entrar em um site sem querer e automaticamente estar contaminado. Por isso qualquer acesso direto ao SO é barrada. Me corrija se estiver errado, mas hoje pode‐se determinar com precisão razoável onde está o usuário, no limite pede‐se que ele confirme a informação ao abrir ou a sessão, ou a transação. Exato, em um ambiente como o google com milhões de usuários, possivelmente milhares da sua localidade ou com número de ip parecido já cadastraram anteriormente suas localizações. A estatística te dá uma precisão razoável. Se alguém conseguir estas informações do google será um afortunado. …o que é comunicado é a questão. Pela sua colocação então, todos os sistemas web que rodam em algum browser são ruins. E isso seria absurdo, se for verdade? Se você não tem uma opção melhor para resolver o problema, remar contra a solução te faz parte do problema. Ela não precisa ser uma boa solução no amplo sentido da palavra, basta ser melhor que a que já exite e já vai ter o seu devido mérito. Em última instância, pergunta‐se ao usuário. O que é ruim, mas pode resolver. Isto acontece inúmeras vezes, e se a opção ruim que você der for melhor do que a que ele tem atualmente, você já avançou muito. Seu CPD pode estar em São Paulo, importar os arquivos de carga do cliente, a coleta destes documentos serem descentralizadas e alguém em Pernambuco lançar a coleta deste documento uns minutos depois. No tracking você vai ver algo bizarro como a coleta ser realizada antes do arquivo ter sido processado pelo cliente. Ou seja, um problema de procedimento… A informática existe para resolver estes problemas. Cadastrar o timezone de cada um uma única vez no sistema resolve este problema de procedimento. É mais fácil ter um campo de timezone do que impedir a coleta descentralizada de documentos. Esta coleta descentralizada reduz o custo de movimentação de cargas de forma gigantesca. Por isso é debatida publicamente. E nunca se chega a um consenso que abranja todos os problemas. Abraço, -- Shander Lyrio http://about.com/shander ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Em 13/10/2011 18:18, Shander Lyrio escreveu: Em 13-10-2011 16:17, Flávio Alves Granato escreveu: Creio que seja mais fácil do que você colocou em sua argumentação e que pelo contrário seja uma questão de segurança saber a que real horário o cliente acessou a sua máquina, se não seria a segurança do *indows Você não tem como garantir que o horário da máquina do usuário esteja correto a não ser que seja um ambiente controlado. Com JavaScript você consegue o horário, mas este horário está atualizado com o horário de verão ou não? está correto? Todos os browsers respondem da mesma forma? Além disso, você precisaria mudar toda a aplicação para em cada requisição ao servidor de aplicações começar a enviar este horário também como parâmetro o que raramente é uma opção. Abraço, Sim e raramente é um requisito funcional. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Le 2011-O-13 18h5, Flávio Alves Granato a écrit : Onde se encaixa o modelo não relacional nesta teoria? O famoso NoSQL, agora viu que não disse programação OO. Sim, acho que não é necessário implementar a complexidade de um modelo relacional em todas as situaçãos, apesar de ele poder ser usado. Acho que estou lesado, não entendi… o modelo relacional é mais simples, a complexidade fica toda dentro dos tipos… -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (61) 3546 7191 gTalk: xmpp:leand...@jabber.org +55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803 BRAZIL GMT-3 MSN: msnim:chat?contact=lean...@dutra.fastmail.fm ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Configurando Timezones por databases
Le 2011-O-13 18h12, Shander Lyrio a écrit : Sempre há uma chave natural, quase nunca faz sentido usá-la. Absurdo. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (61) 3546 7191 gTalk: xmpp:leand...@jabber.org +55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803 BRAZIL GMT-3 MSN: msnim:chat?contact=lean...@dutra.fastmail.fm ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral