[SP-pm] Perl e horário de verão

Geraldo Netto geraldonetto at gmail.com
Sat Mar 1 16:29:05 PST 2014


ehehehe :P

BTW, juro solenemente que conheço o PBP, mas nunca li até começar essa
brincadeira do horário de verão...


Grande Abraço!

Geraldo Netto
Sapere Aude => Non dvcor, dvco
São Paulo, Brasil, -3gmt
site: http://exdev.sf.net/

2014-03-01 20:24 GMT-03:00 Daniel Vinciguerra <dan.vinciguerra at gmail.com>:
> Geraldo,
>
> Relax, sem criticas por minha parte... desenvolvi por muito tempo em Java e
> C# e sei bem o que é isso... ;-)
>
> E-mail só a titulo informativo e nada mais!
>
> Grande abraço,
>
>
>
>
> Daniel Vinciguerra
> Web Solutions Architect and Co-Owner at Bivee
> http://github.com/dvinciguerra
>
>
> 2014-03-01 16:35 GMT-03:00 Tiago Peczenyj <tiago.peczenyj at gmail.com>:
>
>> Pra mim ta certo
>>
>> Em 01/03/2014 16:33, "Stanislaw Pusep" <creaktive at gmail.com> escreveu:
>>
>>> Esta data é "apenas" o início do horário de verão! Não existe meia-noite
>>> do dia 19 de Outubro de 2014 no Brasil, o relógio muda de 23:59:59 direto
>>> para 01:00:00. O comportamento do DateTime é polêmico nesse caso pois a
>>> documentação sugere que "Date" e "Time" serão tratados como duas partes
>>> relativamente independentes. Só que não é assim que funciona: se você omitir
>>> a parte do "Time", 00:00:00 será usado por default, o que tem implicações
>>> esquisitas. Infelizmente, meia-noite não é a única excessão, em alguns
>>> períodos/timezones a hora "pula" de 1am para 2am ou mesmo 2am para 3am.
>>> Empiricamente, assume-se que meio-dia é uma hora default segura para
>>> inicializar o objeto DateTime. E a documentação, fala disso? Não!
>>> Olha, DateTime é espetacular de tão útil, mas precisa conhecer bem para
>>> não dar o tiro no próprio pé. Ou, sei lá, para o tiro só pegar de raspão.
>>>
>>>
>>> 2014-03-01 20:04 GMT+01:00 Tiago Peczenyj <tiago.peczenyj at gmail.com>:
>>>>
>>>> vai ver que essa data, a 00:00:00, tem alguma peculiaridade.
>>>>
>>>> será? Eu estou do lado do DateTime. E vc?
>>>>
>>>>
>>>> 2014-03-01 15:35 GMT-03:00 Stanislaw Pusep <creaktive at gmail.com>:
>>>>
>>>>> ORLY???
>>>>>
>>>>> $ perl -MDateTime -le 'DateTime->new(year => 2014, month => 10, day =>
>>>>> 19, time_zone => "America/Sao_Paulo"); print "OK"'
>>>>> Invalid local time for date in time zone: America/Sao_Paulo
>>>>>
>>>>> Where's your God now?
>>>>>
>>>>>
>>>>> 2014-03-01 18:52 GMT+01:00 Tiago Peczenyj <tiago.peczenyj at gmail.com>:
>>>>>
>>>>>> Use DateTime. É bom
>>>>>>
>>>>>> Em 01/03/2014 14:04, "Geraldo Netto" <geraldonetto at gmail.com>
>>>>>> escreveu:
>>>>>>
>>>>>>> Opa!
>>>>>>>
>>>>>>> Ehehehhe!!!
>>>>>>>
>>>>>>> Devo admitir aqui que a maior parte do desenvolvimento que eu faço é
>>>>>>> feito em java
>>>>>>> Além disso, a última vez que eu tinha feito alguma coisa em perl foi
>>>>>>> em 2006 quando o Fernando Correa da RIO-PM trabalhava em SP
>>>>>>> e tinha me ajudado a fazer um front-end em perl-tk p/ aumentar e
>>>>>>> diminuir o volume do audio no linux
>>>>>>>
>>>>>>> BTW, foi lá que eu também conheci o Blabos e depois, em alguns
>>>>>>> encontros sociais, o Solli :P
>>>>>>>
>>>>>>>
>>>>>>> See Ya!!!
>>>>>>>
>>>>>>> Geraldo Netto
>>>>>>> Sapere Aude => Non dvcor, dvco
>>>>>>> São Paulo, Brasil, -3gmt
>>>>>>> site: http://exdev.sf.net/
>>>>>>>
>>>>>>> 2014-03-01 12:18 GMT-03:00 Daniel Vinciguerra
>>>>>>> <dan.vinciguerra at gmail.com>:
>>>>>>> > herman++
>>>>>>> >
>>>>>>> > Caiu em desuso após o PBP "definir" como um bom padrão nomes de sub
>>>>>>> > todo
>>>>>>> > maiúsculo ou todo minusculo... mas o perlcritic só pega no nível de
>>>>>>> > severidade --brutal
>>>>>>> >
>>>>>>> > (eu particularmente uso e gosto porque, IMHO, deixa muito mais
>>>>>>> > fácil a
>>>>>>> > leitura)
>>>>>>> >
>>>>>>> > []'s
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> > Daniel Vinciguerra
>>>>>>> > Web Solutions Architect and Co-Owner at Bivee
>>>>>>> > http://github.com/dvinciguerra
>>>>>>> >
>>>>>>> >
>>>>>>> > 2014-02-28 21:28 GMT-03:00 Hernan Lopes <hernanlopes at gmail.com>:
>>>>>>> >
>>>>>>> >> nossa, um camel case!
>>>>>>> >> CamelCase anda tão fora de moda que me deixa surpreso ao ver que
>>>>>>> >> pessoas
>>>>>>> >> ainda o preferem ao invés de under_line
>>>>>>> >>
>>>>>>> >>
>>>>>>> >>
>>>>>>> >> 2014-02-28 11:59 GMT-03:00 Geraldo Netto <geraldonetto at gmail.com>:
>>>>>>> >>
>>>>>>> >>> Bom Dia Pessoal!
>>>>>>> >>>
>>>>>>> >>> Consegui evoluir no código com a api do posix mesmo
>>>>>>> >>> crio as datas com POSIX::strftime
>>>>>>> >>> e calculo o horário de verão pegando a saida do comando cal no
>>>>>>> >>> shell
>>>>>>> >>>
>>>>>>> >>> yep, eu sei que é feito, mas resolve o meu problema de um jeito
>>>>>>> >>> rápido...
>>>>>>> >>> por hora, a idéia é só gerar o "okay" da gerencia p/ matar umas 4
>>>>>>> >>> versões shell que fazem o mesmo trabalho, mas precisam de alguns
>>>>>>> >>> parâmetros diferentes e alguma intervenção humana especificamente
>>>>>>> >>> no
>>>>>>> >>> período de horário de verão
>>>>>>> >>>
>>>>>>> >>> a minha dúvida é primária, suponho...
>>>>>>> >>> mas eu não entendi o porque usar o shift
>>>>>>> >>> se eu posso verificar com o defined() se o @_[<número>] está
>>>>>>> >>> definido?
>>>>>>> >>>
>>>>>>> >>> Aceito sugestões e Mais uma vez, Valeu mesmo pela força! :P
>>>>>>> >>>
>>>>>>> >>>
>>>>>>> >>> BTW, código todo a seguir:
>>>>>>> >>>
>>>>>>> >>> #!/usr/bin/perl
>>>>>>> >>>
>>>>>>> >>> use strict;
>>>>>>> >>> use warnings;
>>>>>>> >>>
>>>>>>> >>> use POSIX;
>>>>>>> >>>
>>>>>>> >>>
>>>>>>> >>> # a inicia a data em 1900 entao, se for passado 95 => 1995
>>>>>>> >>> sub calcularDeslocamentoAno {
>>>>>>> >>>     die "ano invalido" unless defined(@_[0]) && return ($_[0] >
>>>>>>> >>> 99 ?
>>>>>>> >>> $_[0] - 1900 : $_[0]);
>>>>>>> >>> }
>>>>>>> >>>
>>>>>>> >>> sub criarData {
>>>>>>> >>>     die "parametros invalidos" unless (defined(@_[0]) &&
>>>>>>> >>> defined(@_[1]) && defined(@_[2]));
>>>>>>> >>>     #Usage: POSIX::strftime(fmt,             sec, min, hour,
>>>>>>> >>> mday,
>>>>>>> >>> mon, year, wday = -1, yday = -1, isdst = -1)
>>>>>>> >>>     return POSIX::strftime("%Y,%m,%d", 0, 0, 0, @_[0], (@_[1]
>>>>>>> >>> -1),
>>>>>>> >>> &calcularDeslocamentoAno(@_[2]), 0, 0);
>>>>>>> >>> }
>>>>>>> >>>
>>>>>>> >>> sub calcularDiaInicioHorarioVerao {
>>>>>>> >>>     my $dia_inicio = `cal 10 2013 | tail -4 | head -1 | cut -d' '
>>>>>>> >>> -f7`;
>>>>>>> >>> }
>>>>>>> >>>
>>>>>>> >>> sub calcularDiaFimHorarioVerao {
>>>>>>> >>>     my $dia_fim = `cal 2 2014 | tail -4 | head -1 | cut -d' '
>>>>>>> >>> -f7`;
>>>>>>> >>> }
>>>>>>> >>>
>>>>>>> >>> sub  trim {
>>>>>>> >>>     my $s = shift;
>>>>>>> >>>     $s =~ s/^\s+|\s+$//g;
>>>>>>> >>>     return $s;
>>>>>>> >>> }
>>>>>>> >>>
>>>>>>> >>> print &criarData(2, 5, 2014);
>>>>>>> >>> print &trim($dia_inicio);
>>>>>>> >>> print &trim($dia_fim);
>>>>>>> >>>
>>>>>>> >>> Geraldo Netto
>>>>>>> >>> Sapere Aude => Non dvcor, dvco
>>>>>>> >>> São Paulo, Brasil, -3gmt
>>>>>>> >>> site: http://exdev.sf.net/
>>>>>>> >>>
>>>>>>> >>> 2014-02-26 23:41 GMT-03:00 Geraldo Netto
>>>>>>> >>> <geraldonetto at gmail.com>:
>>>>>>> >>> > Opa!
>>>>>>> >>> >
>>>>>>> >>> > Tudo okay Pessoal?
>>>>>>> >>> >
>>>>>>> >>> > Eu sou o Geraldo, um ghost reader da SPPM (e algumas outras
>>>>>>> >>> > PMs)
>>>>>>> >>> > e eu ando trabalhando vagarosamente num projetinho
>>>>>>> >>> > que eu dependo de verificação do horário de verão
>>>>>>> >>> >
>>>>>>> >>> > A idéia é separar o ano em 3 partes:
>>>>>>> >>> >
>>>>>>> >>> > fim do horário de verão (terceiro domingo de fevereiro)
>>>>>>> >>> > fora do horário de verão
>>>>>>> >>> > início do horário de verão (terceiro sábado de fevereiro)
>>>>>>> >>> >
>>>>>>> >>> > E baseado nisso, lançar um shell que vai receber o timezone,
>>>>>>> >>> > data de
>>>>>>> >>> > início e de fim
>>>>>>> >>> > p/ fazer a coleta de dados pelo hp openview (comando ovpmbatch)
>>>>>>> >>> >
>>>>>>> >>> > Só que...
>>>>>>> >>> > -eu tenho um servidor tru64 (sem suporte)
>>>>>>> >>> > -rodando perl 5.8 (2002 pelo o que o version diz...)
>>>>>>> >>> > -sem sudo/root/possibilidade de instalação de pacotes de
>>>>>>> >>> > terceiros
>>>>>>> >>> >
>>>>>>> >>> > -<inclua-aqui-todas-as-limitações-que-vocês-imaginarem-de-infra>
>>>>>>> >>> > -meu "core business" é análise de desempenho de software,
>>>>>>> >>> > então o código não pode ser muito "perlish"
>>>>>>> >>> > porque alguém pode precisar dar manutenção depois de mim
>>>>>>> >>> >
>>>>>>> >>> > Embora eu ainda não tenha código real (só comecei a brincar)
>>>>>>> >>> > Eu estou pensando em ir com a api do posix, especificamente a
>>>>>>> >>> > função/método strftime
>>>>>>> >>> >
>>>>>>> >>> > Eventualmente vocês teriam alguma sugestão?
>>>>>>> >>> >
>>>>>>> >>> >
>>>>>>> >>> > Grande Abraço!
>>>>>>> >>> >
>>>>>>> >>> > Geraldo Netto
>>>>>>> >>> > Sapere Aude => Non dvcor, dvco
>>>>>>> >>> > São Paulo, Brasil, -3gmt
>>>>>>> >>> > site: http://exdev.sf.net/
>>>>>>> >>> =begin disclaimer
>>>>>>> >>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>> >>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>>>>> >>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>> >>> =end disclaimer
>>>>>>> >>
>>>>>>> >>
>>>>>>> >>
>>>>>>> >> =begin disclaimer
>>>>>>> >>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>> >>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>>>>> >>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>> >> =end disclaimer
>>>>>>> >>
>>>>>>> >
>>>>>>> >
>>>>>>> > =begin disclaimer
>>>>>>> >    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>> >  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>>>>> >  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>> > =end disclaimer
>>>>>>> >
>>>>>>> =begin disclaimer
>>>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>>>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>> =end disclaimer
>>>>>>
>>>>>>
>>>>>> =begin disclaimer
>>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>> =end disclaimer
>>>>>>
>>>>>
>>>>>
>>>>> =begin disclaimer
>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>> =end disclaimer
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Tiago B. Peczenyj
>>>> Linux User #405772
>>>>
>>>> http://about.me/peczenyj
>>>>
>>>> =begin disclaimer
>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>> =end disclaimer
>>>>
>>>
>>>
>>> =begin disclaimer
>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> =end disclaimer
>>>
>>
>> =begin disclaimer
>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>
>
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>


More information about the SaoPaulo-pm mailing list