tallesl/blogsetbr huggingface dataset:
Cherri Bomb - Garotas fazendo rock
Autor: Lina Raelly | Publicado: 2013-02-26T15:53:00-04:00

É lógico que uma banda formada só por meninas, não poderia passar despercebida pelo Mulheres e Tal.

Cherri Bomb é uma banda americana de rock, fundada em 2008 por Julia Pierce, ex guitarrista da banda. Julia logo ao mudar-se para Califórnia queria formar uma banda só de garotas. Colocou panfletos por toda Los Angeles e acabou encontrando Nia Lovelis para a batera e Miranda Miller para a guitarra. Mais tarde a irmã de Nia, a Rena Lovelis, decidiu entrar para a banda e assumiu o baixo.

Em 14 de junho de 2011, elas assinaram com a Hollywood Records. A banda já abriu show para grandes bandas, como Foo Fighters. Em 18 de outubro de 2011 a banda lançou seu EP de estreia, Stark. 

Essas roqueiras com certeza serão influencias para muitas adolescentes. Apesar de seus 15 aninhos, elas sabem muito bem fazer um rock n' roll.

Já deu para perceber que elas são beeeem estilosas, sempre com muito preto, blusas pra lá de legais e muita cor no cabelo também não podia faltar. 

Gostou das meninas? Então dá uma conferida nesse clipe delas ;)

Não esquece de dar uma conferida também na nossa página no facebook. Bjks
Emma Watson
Autor: Sacha Kimberly | Publicado: 2013-02-11T12:48:00-04:00

Oie, vou mostrar pra vocês um pouco sobre a diva Emma ^.^

Emma Charlotte Duerre Watson nasceu em Paris, França, mas cresceu na Inglaterra, para onde se mudou com a família aos 5 anos de idade. Ela começou a se interessar pela atuação na infância, quando participava de grupos dramáticos na escola. Aos 9 anos de idade, a artista participou dos testes para a saga Harry Potter, inspirada nos livros de J.K. Rowling, e começou as filmagens em 2000.Emma já estampou as capas das principais publicações e foi garota-propaganda da grife Burberry. 

O site da Vogue tem uma lista com os 100 cortes de cabelo, entre eles está o corte mais curto da Diva.

Emma é citada entre as 12 estrelas mais bem vestidas de 2012, ocupando o 5º lugar do ranking da Teen.com.

Ela já participou de campanhas para Marcas como Burberry e Lancôme.

Emma é muito ligada a moda, e ja colaborou com a People Tree, uma marca de roupas orgânicas, e comentou que quer fazer novas colaborações.

Ela é muito fã de maquiagem, mas não usa com muito exagero, tenta manter sempre o básico, ae vai algumas dicas da própria:

Sobre borrões na
maquiagem: “Se você cometer algum erro ao passar delineador ou rímel,
coloque um pouco de base no cotonete para limpar o que ficou borrado. Eu
aprendi essa dica com a maquiadora Linda Cantello”.

Sobre blush e rímel:
“Eles sempre fazem eu me sentir bem. Eu sou muito preocupada em relação à
limpeza da minha pele e sempre tiro toda a maquiagem antes de dormir”.

“Também costumo molhar
os cílios antes de passar máscara, isso garante que eles fiquem mais
curvos”.

Emma também tem o
costume de passar a base logo após o banho, para que ela seja bem
absorvida e garanta um look mais leve.

A Emma é muito simples quem quiser se basear no estilo dela não vai ter muita dificuldade!!

Bjs!!

Sacha Rebelo
Review: Batom Vegas Volt da M.A.C
Autor: Deby | Publicado: 2013-02-13T10:00:00-04:00

Oi garotas.
Quem le sobre maquiagem tem uma noção sobre o que falam dos batons da M.A.C, antes de usar o meu primeiro (o Please Me) eu não acreditava tanto assim e achava até que exageravam. Mas quando usei meu primeiro percebi que era verdade e muito bom, desde lá minha coleção de batons M.A.C vem crescendo.

Um dos meus batons favorito é o Vegas Volt. Ele é um coral na medida certa nem muito laranja nem muito vermelho. O acabamento é amplified, ou seja, ele é cremoso mas com pigmentação alta.

Eu amo essa cor. Quando não sei que batom passar eu acabo pegando esse ou o meu outro favorito (que em breve terá resenha também). Se eu tivesse que escolher apenas um batom pra ficar entre todos os outros que tenho com certeza seria esse.

A cor do batom não ficou muito fiel nas fotos, mas foi o mais parecido que consegui.

Vocês já usaram esse ou algum outro da marca? Me contem os favoritos de vocês. Não se esqueçam de curtir nossa fanpage para estar sempre informadas.

Beijos, 

Deby.
Hidratação com maionese e Bepantol
Autor: Lina Raelly | Publicado: 2013-09-14T00:47:00-04:00

Oi gente bonita. Separei essa receitinha que achei numa página do facebook. Testei e aprovei, deixou meu cabelo beeem macio.

Ingredientes:

Duas colheres de sopa
de creme de hidratação da sua preferência;

Uma colher de
sopa de maionese;

Duas colheres de azeite de
oliva;

Ampolas de sua preferência;

Uma colher de café de Bepantol (de preferencia líquida);

Modo de usar:

Lave os cabelos com shampoo anti resíduos. 
Misture todos os ingredientes citados acima e aplique nos cabelos quase secos, separando por mechas, aplicando uniformemente em todo o comprimento.
Deixe agir pelo menos 1 hora, se possível, utilize touca térmica.
Enxague bem, sem deixar resíduos do creme no cabelo.

Observações:

Se não tiver shampoo anti resíduos, pode usar qualquer um.
Deixe o cabelo secar naturalmente.
Não aplicar a mistura nas raízes. 
SARAMPO
Autor: Vanessa | Publicado: 2011-03-19T12:45:00-07:00

O QUE É?

Doença infecciosa, altamente contagiosa, faz parte do grupo das doenças que se manifestam por alterações marcantes da pele, exantema eritematoso (pele avermelhada, com placas tendendo a se unirem) e com comprometimento de vários órgãos.

O sarampo é causado por um vírus chamado morbili vírus.

COMO SE TRANSMITE?

Os homens e os macacos são os únicos animais que abrigam naturalmente esse vírus.

Gotículas da respiração e mesmo o ar com o vírus ainda vivo são responsáveis pela disseminação da doença.

O período de contaminação se inicia 3 a 4 dias antes e vai até 4 a 5 dias após o surgimento das lesões da pele (rash cutâneo). O tempo que leva entre a contaminação e o aparecimento dos sintomas (período de incubação) é em média 2 semanas.

O QUE SE SENTE?

Febre muito alta, tosse intensa, coriza, conjuntivite e exantema máculo-papular (pele com placas ásperas avermelhadas).

O exame interno da bochecha permite identificar pequenos pontos branco-amarelados (enantema de Koplick) que confirma o diagnóstico.

COMO SE FAZ O DIAGNÓSTICO?

A história do paciente e o exame clínico permitem o diagnóstico na quase totalidade dos casos.

Em situações mais difíceis, a presença de anticorpos (reação do organismo para se defender desse vírus) no sangue é confirmatória da moléstia.

COMO SE TRATA?

Na imensa maioria das vezes o tratamento é voltado para diminuir os sintomas como febre e tosse, ou para combater alguma complicação quando antibióticos sao usados.

Casos muito especiais podem necessitar medicação do tipo gama globulina anti-sarampo, visando o próprio vírus ou o reforço da capacidade de defesa geral.

PROGNÓSTICO

O sarampo é certamente a mais grave das chamadas doenças comuns da infância: complicações graves e morte ocorrem em até 3/1000 casos.

COMO SE PREVINE?

A vacina anti-sarampo, altamente eficaz, é aplicada: 

12 meses - dose única
4-6 anos - 1º reforço
12 anos - 2º reforço

Pessoas não-vacinadas expostas podem se beneficiar da vacinação.

Mulheres grávidas ou que possam engravidar dentro de 90 dias não devem ser vacinadas.

Pacientes com leucemia, linfomas, HIV/SIDA e outros problemas sérios de imunidade devem ser avaliados individualmente. 

Fonte: http://www.abcdasaude.com.br/artigo.php?377
Como Prevenir Sufocamento e engasgos nas crianças
Autor: Saude Oeste | Publicado: 2012-05-30T11:48:00-07:00

As crianças, especialmente aquelas com menos de três anos de idade, são particularmente suscetíveis à obstrução e à morte devido ao pequeno calibre das suas vias aéreas, sua relativa pouca experiência com a mastigação e à tendência natural de colocar quaisquer objetos na boca. Elas também têm risco maior pela sua pouca capacidade de levantar a cabeça ou de se livrarem de espaços apertados.

Dicas para prevenção

Coloque sempre seu filho para dormir de costas, em um colchão firme e liso. Remova travesseiros, brinquedos e outros produtos "macios" do berço.

Sempre supervisione as crianças pequenas quando elas estão brincando ou comendo.

Não permita que crianças abaixo de seis anos comam alimentos redondos e duros como amendoins ou outras sementes, cenouras cruas, pipocas e doces duros.

Elas também não devem comer salsichas e uvas, a não ser que a pele ou a casca seja removida, o alimento seja partido em pedaços pequenos e não redondos.

Mantenha itens pequenos como moedas, alfinetes de segurança, jóias e botões fora do alcance do seu filho.

Aprenda primeiros socorros e reanimação cardiorrespiratória. 

Não permita que seu filho brinque com brinquedos que possam passar pelo buraco do tubo de papelão que vêm no centro do rolo de papel higiênico. Certifique-se de que todos os brinquedos do seu filho sejam apropriados para a idade conforme a certificação do fabricante. Inspecione todos os brinquedos regularmente para verificar danos e conserte ou ponha fora os brinquedos danificados.

Remova o capuz e os cordões da gola das roupas de seu filho. Para impedir estrangulamentos, nunca permita que a criança brinque em playgrounds com colar, bolsa, cachecol ou roupas com cordões na gola. Prenda os puxadores de cortinas longe do alcance das crianças. Nunca coloque nada no ou sobre o berço com corda ou fita maior do que 15 cm.

Não permita que crianças abaixo de seis anos durmam na cama de cima de um beliche. Certifique-se de que nenhum espaço entre as grades, cabeceira, pés ou entre as grades e a caixa da cama tenha mais do que 9 cm.

Fonte:  http://www.abcdasaude.com.br/artigo.php?400&-sufocamento-e-engasgos
3 anos: o desenvolvimento
Autor: Saude Oeste | Publicado: 2012-04-24T06:26:00-07:00

Departamento de Saúde Escolar da SBP

No terceiro ano de vida, seu filho está desenvolvendo mais intensamente suas habilidades sociais e aperfeiçoando sua forma de comunicação com adultos e outras crianças. Ele já corre, pedala, joga bola, explora os ambientes de forma muito mais intensa. É importante proporcionar atividades ligadas ao movimento, com brincadeiras ao ar livre e exploração do ambiente. Nessa idade elas progridem nos trabalhos artísticos, utilizando massa de modelar, tintas e pincéis, giz de cera, canetas coloridas e papel. Outras atividades que não podem faltar: música, leitura de histórias, cantigas e atividades que explorem o interesse pelo meio ambiente (animais, plantas, pessoas e suas obras).

Se seu filho ainda não largou as fraldas, deve ser incentivado com mais ênfase o uso do banheiro, tendo sempre todos os cuidados com a higiene. Se estimulado, ele vai adquirindo habilidades para se vestir, usar o banheiro, para se alimentar e até tomar banho.

A alimentação é importante e deve ser variada, equilibrada e oferecida como parte das atividades de educação nutricional. Também na alimentação deve ser incentivada a autonomia da criança.

Se seu filho já estiver na creche, é importante verificar a qualidade do atendimento. Veja se são oferecidas atividades complementares às ações da família, visando ao desenvolvimento físico, psicológico, intelectual e social da criança.

Os ambientes devem ser arejados, bem iluminados, higiênicos, seguros e adequados ao estímulo das crianças. Além dos brinquedos variados como bonecas, carros, bichos, é importante ter jogos como quebra-cabeças, jogos de relações de imagens e muito trabalho musical e de contação de histórias, para aperfeiçoar a oralidade. As brincadeiras ao ar livre são essenciais, sempre com muita supervisão por um adulto.

Assim como a sua casa, a creche tem que ser um ambiente seguro. Certifique-se que as escadas estejam protegidas com portões e as janelas com grades ou telas. Se tiver piscina, que tenha acesso restrito, com portão trancado a chave. Também deve ser evitado o acesso de crianças a certas dependências como a cozinha e depósito de produtos de limpeza. Verifique se as tomadas elétricas estão protegidas ou fora do alcance das crianças.
Não leve seu filho doente para a creche sem antes consultar o pediatra. Se ele estiver sendo medicado, prefira administrar os remédios em casa. Se for necessário dar alguma dose na creche, oriente a responsável pela criança e leve junto a receita médica e a bula do medicamento. Mantenha as vacinas em dia e sempre que seu filho receber uma dose, informe à creche para que eles acompanhem a reação do bebê. Lembre-se da dose anual da vacina contra a gripe (Influenza).

Participe sempre das reuniões da instituição, para acompanhar o desenvolvimento das crianças, para opinar e conhecer o trabalho pedagógico.

Fonte: http://www.conversandocomopediatra.com.br/paginas/3ano/saude_escolar_03.aspx

Fique por dentro do desenvolvimento do seu filho, consulte o médico regularmente, converse, brinque. O seu filho precisa de você. 
Amidalite
Autor: Saude Oeste | Publicado: 2012-05-22T12:53:00-07:00

É uma doença infecciosa que atinge as amídalas, órgãos de defesa contra infecções.

Causas

A amidalite pode ser causada por vírus (mais frequentes nas crianças), por bactérias (atinge mais os jovens e os adultos) ou pela associação dos dois agentes. Na amidalite bacteriana aparecem pontos de pus.

Sintomas

Os sintomas mais comuns são febre, dor de garganta, falta de apetite, hálito comprometido, dificuldade para engolir e, às vezes, inchaço dos gânglios do pescoço e da mandíbula, que têm a função de evitar a propagação da doença pelo organismo.

É importante observar os sintomas para não os confundir com os de outras doenças como gripe e mononucleose.

Diagnóstico e Tratamento

É preciso diferenciar a amidalite causada por vírus da bacteriana.

Nas amidalites por vírus, a infecção atinge preferencialmente a região da orofaringe (amídalas e faringe) e deve ser tratada com analgésicos e antiinflamatórios.

As amidalites bacterianas (as bactérias que mais comumente atingem as amídalas são os estreptococos e os estafilococos) provocam grande inflamação nas amídalas associada ao aparecimento de placas de pus na orofaringe, tornando necessário o uso de antibióticos específicos. Suspender a medicação assim que desaparecem os sintomas pode provocar complicações graves como febre reumática e nefrite porque a bactéria ainda permanece ativa no organismo.

Se a amidalite for crônica, outras causas devem ser pesquisadas para descobrir a razão da inflamação e buscar o tratamento adequado. A remoção cirúrgica das amídalas só é indicada em casos específicos que não respondem ao tratamento clínico e se repetem várias vezes ao ano, as chamadas amidalites de repetição.

Recomendações

Procure ficar longe do cigarro. Fumantes ativos e passivos estão mais propensos às infecções das amídalas;

Evite ambientes com ar-condicionado, que resseca as mucosas e diminui a resistência das amídalas;

Em amidalites de repetição é importante afastar a hipótese de refluxo gastroesofágico, responsável pela mudança no pH da garganta e que pode facilitar o surgimento de inflamações;

Prefira ingerir bebidas mornas, sopas e alimentos macios, uma vez que são mais tolerados durante as crises;

Tome muito líquido para hidratar as mucosas;

Não deixe de tomar os remédios prescritos pelo médico assim que os sintomas da amidalite bacteriana desaparecerem para evitar complicações da doença;

Não se automedique. Medicamentos usados sem indicação precisa podem favorecer o aparecimento de bactérias resistentes.

Fonte: http://drauziovarella.com.br/doencas-e-sintomas/amidalite/
Autor: CARLOS PAIVA | Publicado: 2012-03-29T05:14:00-07:00

"Mais sábios que os homens são os pássaros...Enfrentam as tempestades noturnas,tombam seus ninhos, sofrem perdas,dilaceram suas histórias...Pela manhã, têm todos os motivospara se entristecer e reclamar, mascantam, agradecendo a Deuspor mais um dia!!"
 PR, PAIVA
José de Freitas - Informações e serviços
Autor: alegriff | Publicado: 2010-09-24T14:20:00+01:00

Guias e condutores de visitantes:
Maurício Reis (Condutor de visitante): 86 9406-7296 / 8858-4862Maria de Lourdes (Condutora de visitante): 86 9926-6228
Informações turísticas: 86 9924-8530 / 9992-9999 
Secretaria Municipal do Meio Ambiente e Turismo (Prefeitura de José de Freitas)Praça Governador Pedro Freitas, 20, Centro, José de Freitas/PICEP: 64110-000 / blog: www.turismojosedefreitas.blogspot.com

Fotos de pontos turísticos de José de Freitas:

Quiosques da Praça Governador Pedro Freitas (Praça Central)

Teatro Municipal Barítono Raimundo Pereira

Praça das Rosas (inaugurada em janeiro/2006)

Pôr do Sol no balneário Bezerro

Painel com a arte de João Oliveira

Igreja de Nossa Senhora do Livramento

Vila Tejo (1917) Casa do fundador da cidade

Monumento de Nossa Senhora do Livramento

Palácio da cidade prefeito Ferdinand Freitas (sede da prefeitura)

Portal de entrada do balneário Bezerro

Parque de Vaquejadas Duplo 'R'

VISTA PANORÂMICA DA CIDADE DE JOSÉ DE FREITAS:
Hospedagem em José de Freitas (Hotéis e Pousadas)
Autor: alegriff | Publicado: 2010-09-24T05:18:00+01:00

HOTEL NOSSA SENHORA DO LIVRAMENTOAvenida Américo Celestino, S/N, Centro de José de FreitasAo lado da Praça de Eventos Freitas Filho, CEP 64110-000Contatos e reservas: (86) 9989-0179 / 3264-1538 Hospedagem com café da manhã e apartamentos confortáveis.
Secretaria do Meio Ambiente e Turismo de José de Freitas
Autor: alegriff | Publicado: 2010-10-02T04:04:00+01:00

A Secretaria Municipal do Meio Ambiente e  Turismo, criada pelo prefeito Robert Freitas, em Abril de 2010, vêm fomentar e desenvolver o setor turístico de José de  Freitas e região Entre Rios. Os aspectos geográficos e naturais  favorecem o município, quanto a diversidade, opções para o eco-turismo,  atrativos, esporte náutico e outros. O novo roteiro criado pelo Serviço  de Apoio às Micro e Pequenas Empresas, Sebrae no Piauí, contempla José  de Freitas e mais seis municípios da Grande Teresina.
Mastruz com Leite pela primeira vez na cidade de José de Freitas
Autor: alegriff | Publicado: 2010-12-21T21:57:00Z

A banda Forró Mastruz com Leite volta aos palcos piauienses para  apresentação exclusiva na 7ª Grande Vaquejada de José de Freitas. O show  acontecerá no dia 15 de janeiro com participação da banda cearense  "Forró Maior". O verdadeiro forró das antigas animará foliões na maior  casa de shows da cidade. O evento marca o quarto aniversário do "Parque  Duplo R", comemorado entre os dias 14 a 16 de janeiro/2011. A premiação  será de R$ 30 mil + moto extra divididos para profissionais e amadores. O  Bar do Vaqueiro receberá ambientação de festa, bem como toda estrutura  do Parque. Imperdível!

INGRESSOS ANTECIPADOS NA LOJA ROBEL MAGAZINE
INFORMAÇÕES: 8818 7299 e 9992 9999
Congresso Estadual de Guias de Turismo e Condutores de Visitantes do Piauí é adiado para o mês de novembro
Autor: alegriff | Publicado: 2010-10-08T19:37:00+01:00

O  Sindicato dos Guias de Turismo do Piauí – SINGTUR-PI, comunica que o 7º  CONGRESSO ESTADUAL DE GUIAS DE TURISMO E CONDUTORES DE VISITANTES do  Piauí que seria realizado no período de 24 a 26/09/2010 foi adiado para o  período de 26 a 28/11/2010, no município de José de Freitas, seguindo  mesma programação.
Restaurantes em José de Freitas
Autor: alegriff | Publicado: 2010-09-24T13:37:00+01:00

Bar o Paraíba (Localizado no lado A do açude do Bezerro)Barraca nº 01 - Associada a Associação de Barraqueiros do BezerroContatos: (86) 9407-9643 / 3264-1646 
Cardápio: Peixe recheado, Galinha caipira, Carneiro na brasa, Picanha na brasa, Contra-filé e demais delícias da culinária regional (experimente também a saborosa batata frita e o baião-de-dois com queijo do Paraíba)

Restaurante "O Paraíba"

Restaurante "O Paraíba"

Famoso peixe tambaqui na brasa com batatas

Saboroso baião-de-dois com queijo

  15 anos de tradição, restaurante aberto ao público, estacionamento, acesso ao açude, atendimento padrão.
Sétimo Congresso de Guias de Turismo possui histórias interessantes a contar para opinião pública
Autor: alegriff | Publicado: 2010-11-24T14:13:00Z

A idealização e todo o projeto de realização do sétimo Congresso de Guias de Turismo e Condutores de Visitante do Piauí, bem como a indicação para José de Freitas, é parte integrante do esforço do Jornalista Alexandre Carvalho com apoio do médico Robert Freitas. O Sindicato dos Guias de Turismo do Piauí inicializou toda diagramação e organização do evento junto a Secretaria Municipal do Meio Ambiente e Turismo e Prefeitura de José de Freitas em Maio de 2010. Portanto é importante destacar o mérito de pessoas empreendedoras que tem visão de futuro e almejam ver a prosperidade e progresso de sua terra natal.

Fonte: Arquivos da Secretaria do Meio Ambiente e Turismo de José de Freitas.
Culinária Freitense é referência no Estado do Piauí
Autor: alegriff | Publicado: 2010-09-28T05:32:00+01:00

Maria Anita Cunha e Socorro Oliveira são moradoras do município de José  de Freitas, mas possuem características em comum: as duas são produtoras  de linguiça caseira e de petas, respectivamente, com sucesso  garantido. Maria Anita comercializa a famosa linguiça a mais de 40 anos e  Socorro a mais de 16. São extremamente cativantes, contagiam seus  clientes com muita alegria. Mas, as duas são apenas representantes das  dezenas de produtores que fazem de José de Freitas mais bem vista no  ramo da culinária e geração de trabalho e renda.

Para encomendas: Pêta Caseira (86) 8805 1893 e Linguiça Caseira (86) 3264 1194
Açude do Bezerro: Opção de lazer aos Domingos em José de Freitas
Autor: alegriff | Publicado: 2010-10-08T19:56:00+01:00

O Ponto alto de lazer aos domingos no município de José de Freitas (48km  de Teresina) está localizado na Barragem do Bezerro. A brisa das águas,  aliada a inigualável culinária proporcionam a satisfação de visitantes e  turistas da capital e cidades vizinhas. A Barragem do Bezerro oferece  atrações a cada fim de semana, recebendo caravanas de diversos bairros  da periferia de Teresina. As barracas de alimentação estão estruturadas  para ofertar o famoso peixe recheado e a galinha caipira, pratos típicos  da região.
Procure os condutores de visitante: Maurício Reis (9406-7296) e Maria de Lourdes (9926-6228)
Total control over your models
Autor: Vinicius Assef | Publicado: 2011-04-30T23:20:00-03:00

Every single web2py application that uses database, has its own models dir.

This directory is particularly important due to some characteristics:
models directory files ares executed in alphabetical order;
Your application's database tables definitions stay in it;
Objects defined by these files become available on your app's global scope. They can be accessed by controllers and views.
I warn you to pay attention to the first one: files are executed in alphabetical order.

Some newbies have dificulties with that, and tend to think this is strange. I did it, until I concluded this is the most intuitive way to things work. It gives me freedom to organize my app.

However, to avoid some mistakes this way can bring to your app, we need to adopt a clear and fool proof convetion to name models files.

I use this simple and efficient structure:
models/0_db.py
models/1_menu.py
models/5_models.py
models/5_validators.py
I rename the automatically created db.py file to 0_db.py. So, I guarantee all basic definitions are executed before anything else. The DAL object, who provides all data access funcionalities, is created in this script.

I also rename menu.py to 1_menu.py forcing all menu definitions to be executed after DAL object instantiation.

With these modified names, I'm sure that all the code I'll develop will be executed after the scaffolding app web2py generated to me.

From that point I write models/5_models.py with my table definitions. Nothing but db.define_table() commands.

Validators  are written in models/5_validators.py. But, why separated from model definitions? First, because web2py recommends you don't mix validators with  db.define_table(). Second, because at this point I'm certain all tables are already created and all cross references between them will work with no need to adjust definition sequences. Sometimes it messes my scripts.

When I have many tables, I can separate them in various scripts, i.e, 5_models_accounts.py, 5_models_finances.py, etc. And, the same way, their validators.

Here, your creativity can fly, but remeber some principles:
Explicit is better than implicit.
Simple is better than complex.
Flat is better than nested.
Readabilty counts.
In the face of ambiguity, refuse the temptation to guess.
request.now ou datetime.now?
Autor: Vinicius Assef | Publicado: 2010-11-08T15:40:00-02:00

O Web2py tem a variável request.now que você pode usar no lugar de datetime.datetime.now() sem precisar importar nada. Essa variável guarda o horário que a requisição foi executada.

Eu estou fazendo uma aplicação com uma parte rodando via cron e me deparei com uma situação inusitada: todos os registros alterados no processo da cron tinham o mesmo horário de modificação. Isso porque eu usei o update=request.now na definição do campo que guarda a hora da última modificação do registro.

A situação é que, no shell (cron), a requisição ocorre apenas uma vez, no momento que ele é iniciado. Já na web, a requisição ocorre toda vez que uma URL é solicitada pelo browser. Como no shell a característica é executar processos em background, não existe a URL sendo solicitada. Na web, a cada clique de link ou de botão, uma nova requisição é realizada.

Então, o request.now, na verdade, contém o horário que a requisição iniciou.

Para resolver meu problema, eu passei a usar o update=datetime.datetime.now(). Conferindo os resultados depois dessa modificação, me deparei com o mesmo problema: todos os registros alterados pelo processo da cron com o mesmo horário de modificação.

Recorri à lista mundial do web2py e aprendi que esses valores para default e update são avaliados apenas no momento que os models são executados, quando associados a conteúdos fixos ou variáveis.

Para resolver o problema, temos que usar lambda assim: update=lambda:datetime.datetime.now(). Dessa forma, como temos a chamada de uma função (lambda no nosso caso), toda vez que um registro for modificado, esse conteúdo do update será reavaliado.

O mesmo vale para a propriedade default.

Portanto,  use os parâmetros default e update com lambda, para que atualizem o conteúdo no momento de inserção/alteração do registro.

Segue um exemplo:

from datetime import datetime
db.define_table('ficha',
    Field('nome', 'string'),
    Field('quando', 'datetime', default=lambda:datetime.now())
Markmin pronto pra usar
Autor: Vinicius Assef | Publicado: 2010-10-22T08:53:00-02:00

Se você já precisou permitir que os usuários do seu aplicativo inserissem conteúdo para ser mostrado, provavelmente pensou na alternativa de usar alguma linguagem de marcação que não fosse HTML.

A Wikipedia popularizou isso, e hoje temos várias por aí. Quase todas têm certa semelhança, mas o importante é que seu usuário não precisa estudar HTML para usar seu aplicativo.

O problema em alguns ambientes é fazer seu aplicativo entender isso e converter a linguagem de marcação em HTML para o browser mostrar.

O Web2py traz o Markmin, uma linguagem de marcação bem simples, que resolve a maioria dos seus problemas. E o melhor: é facinho de usar.

Bem, não vou ficar escrevendo muito. Veja: o Markmin no Web2py.
print vai pra console
Autor: Vinicius Assef | Publicado: 2010-10-29T08:12:00-02:00

Volta e meia precisamos depurar programas, principalmente quando o negócio do aplicativo é complexo ou quando estamos aprendendo uma tecnologia nova, pra ver como ela funciona.

No Web2py você pode depurar sua aplicação web sem interferir no resultado das suas páginas.

Se você usar o comando print do Python, o conteúdo printado sai na console do Web2py, ao invés de ser mostrado no browser.

Faça um teste e veja como funciona. Com isso você consegue entender melhor a sequência de eventos do Web2py e depurar sua aplicação.

Fica a dica.
Sendo mais ágil com o appadmin
Autor: Vinicius Assef | Publicado: 2011-03-20T04:20:00-03:00

No artigo "Quem alterou um registro" eu mostrei como o web2py agiliza e padroniza a criação e controle de dados das tabelas automaticamente.

Mas quando estamos testando o aplicativo e usando o appadmin, precisamos de agilidade para incluir e alterar registros no bd.

Daí, para passar a validação de quem incluiu um registro, faça conforme abaixo:

""" Alterando o auth.signature para permitir
inserts anônimos pelo appadmin. """

db.minha_tabela.created_by.required = False
db.minha_tabela.created_by.requires = IS_EMPTY_OR( \
    db.carro.created_by.requires)

db.minha_tabela.modified_by.required = False
db.minha_tabela.modified_by.requires = IS_EMPTY_OR( \
    db.carro.modified_by.requires)
Assim, você não vai precisar escolher um autor para o registro.

Observações:
Coloque o trecho de código mostrado, abaixo do db.define_table() da tabela que você está testando.
Só use esse recurso em ambiente de desenvolvimento porquê você terá registros sem a identificação de quem os incluiu/alterou.

Fica a dica.
Reusing frequently used queries and joins
Autor: Vinicius Assef | Publicado: 2011-10-21T16:45:00-02:00

In DAL chapter on Web2py book, there's a section called  "Query, Sets, Rows".

It explains the use of the Query object in a very short way and doesn't explore its power.

Let's see some examples to optimize your application, shorten your code and don't repeat yourself.

Frequently used  queries (i.e, common filtering by date):
db.define_table('show',
    Field('name', 'string'),
    Field('seen_on', 'datetime'))

rows1 = db((db.show.seen_on.month()==my_month) & \
            (db.show.seen_on.year()==my_year)) \
            .select(orderby='name')
print rows1
Now, if you want do the same query, plus filtering by name, too:
rows2 = db((db.show.seen_on.month()==my_month) & \
            (db.show.seen_on.year()==my_year) &\
            (db.show.name.like('Mary %')) \
            .select(orderby='name')
print rows2
See, date filtering part is duplicated. You can organize it in a better way, making your code like this:
db.define_table('show',
    Field('name', 'string'),
    Field('seen_on', 'datetime'))

db.show.my_filter = lambda m, y: db.show.seen_on.month()==m & \
                                  db.show.seen_on.year()==y

rows1 = db((db.show.my_filter(my_month, my_year)) \
            .select(orderby='name')
print rows1
 
rows2 = db((db.show.my_filter(my_month, my_year) & \
            (db.show.name.like('Mary %')) \
            .select(orderby='name')
print rows2
"Appending" personal filters to your table objects, you put them in a context and they goes everywhere with all other table properties and methods, throughout  your application.

You should make the same with joins. ;-)

Naturally this example doesn't show all benefits, but imagine some common cases:
a) Frequently used queries among your application: now they are standardized;
b) Complex and long queries: now they don't mess your code anymore. And are better readable;
c) Joins: now they are optimized and standardized.

As bigger your application and your team gets, better are the benefits.

What additional suggestion do you have to us? Tell us below.
Quem alterou um registro
Autor: Vinicius Assef | Publicado: 2011-02-08T23:10:00-02:00

Detalhes fazem a diferença, certo? O web2py se preocupa com eles para dar produtividade ao desenvolvedor.

Uma boa ideia é o auth.signature

Vamos a um exemplo:
db.define_table('cadastro',
  Field('nome', 'string', length=100),
  Field('telefone', 'string', length=20),
  auth.signature)

Esse comando vai criar uma tabela chamada cadastro com os campos id (criado automaticamente), nome e telefone, além de: created_on, created_by, modified_on e modified_by.

Isso faz com que possamos saber quando um registro foi incluído (created_on) ou alterado (modified_on).

O auth.signature funciona automaticamente integrado ao sistema de autenticação do web2py. Portanto, se um usuário logado incluir ou alterar o registro, o código de usuário dele ficará registrado nos campos created_by e modified_by.

Fica aí a dica.
Reusar queries usadas com frequência
Autor: Vinicius Assef | Publicado: 2011-10-21T16:44:00-02:00

No capítulo sobre DAL do livro de Web2py, existe uma seção chamada "Query, Sets, Rows".

Ela explica como usar o objeto Query de uma forma bem resumida e não explora todo o poder que ele tem.

Vamos ver alguns exemplos de como otimizar sua aplicação, encurtar seu código e praticar o princípio DRY (don't repeat yourself).

Consultas, ou queries, usadas com frequência (p.ex, filtragem comum por datas):
db.define_table('show',
    Field('name', 'string'),
    Field('seen_on', 'datetime'))

rows1 = db((db.show.seen_on.month()==my_month) & \
            (db.show.seen_on.year()==my_year)) \
            .select(orderby='name')
print rows1
Agora, se você quiser fazer a mesma query, mas filtrar também por nome:
rows2 = db((db.show.seen_on.month()==my_month) & \
            (db.show.seen_on.year()==my_year) &\
            (db.show.name.like('Mary %')) \
            .select(orderby='name')
print rows2
Viu? A parte que filtra por data está duplicada. Organize isso de um jeito melhor fazendo assim:
db.define_table('show',
    Field('name', 'string'),
    Field('seen_on', 'datetime'))

db.show.my_filter = lambda m, y: db.show.seen_on.month()==m & \
                                  db.show.seen_on.year()==y

rows1 = db((db.show.my_filter(my_month, my_year)) \
            .select(orderby='name')
print rows1
 
rows2 = db((db.show.my_filter(my_month, my_year) & \
            (db.show.name.like('Mary %')) \
            .select(orderby='name')
print rows2
"Adicionando" os filtros aos seus objetos table, você os coloca num contexto e eles estarão disponíveis em qualquer lugar da sua aplicação, assim como os outros métodos e propriedades.

Aconselho que você faça o mesmo com seus joins.

É natural que esse pequeno exemplo não mostre todos os benefícios dessa técnica, mas pense em alguns casos comuns:
a) Queries usadas com frequência: ficam padronizadas;
b) Queries longas e complexas: não deixam mais seu código bagunçado, e tornam-se mais fáceis de ler;
c) Joins: ficam otimizados e padronizados.

À medida que sua aplicação e sua equipe aumenta, você pode perceber melhor esses benefícios.

E você, tem alguma sugestão para melhorar? Colabore nos comentários.
Controle total sobre seus models
Autor: Vinicius Assef | Publicado: 2011-04-27T00:32:00-03:00

Toda aplicação web2py que usa banco de dados tem um diretório chamado models.

Esse diretório é particularmente importante devido a alguns fatores:
Os arquivos do diretório models são executados em ordem alfabética;
É ali que ficam as definições das tabelas dos bancos de dados de sua aplicação;
Os objetos definidos por esses arquivos ficam disponíveis com escopo global na aplicação. Ou seja, podem ser acessados pelos controladores e pelas views.
Talvez a caracterísitica que mais exija atenção, é a primeira: execução em ordem alfabética.

Algumas pessoas iniciantes têm certa dificuldade com isso e acham meio estranho esse comportamento. Eu também achava, até concluir que esse é o jeito mais intuitivo para tudo funcionar.

Entretanto, para evitar alguns inconvenientes que esse funcionamento pode trazer, precisamos adotar uma nomenclatura clara e o mais simples possível para organizar nossos scripts dentro do diretório models.

Eu adoto a seguinte estrutura básica:
models/0_db.py
models/1_menu.py
models/5_models.py
models/5_validators.py
Em quê isso ajuda?

Eu renomeio o db.py gerado automaticamente pelo web2py para 0_db.py. Assim, garanto que todas as definições básicas são executadas antes de qualquer coisa. O objeto DAL, que fornece toda a funcionalidade de acesso a dados, é criado nesse script.

Também renomeio o menu.py para 1_menu.py fazendo com que as definições de menu sejam executadas depois da instanciação do objeto DAL.

Com esses nomes modificados, garanto que o esqueleto gerado automaticamente pelo web2py vai ser executado antes das partes que eu vou desenvolver depois.

A partir daí, escrevo o models/5_models.py com todas as definições de tabelas. Vale ressaltar que eu deixo dentro desse arquivo apenas os db.define_table().

Para escrever os validadores, eu crio o models/5_validators.py. Mas por que separado? Primeiro, porque o web2py recomenda que você não coloque os validadores dentro do db.define_table(). Segundo, porque nesse ponto eu tenho certeza de que todas as tabelas já foram definidas. Assim, garanto que qualquer referência cruzada entre elas funcione sem precisar alterar a ordem de criação delas. Às vezes isso desorganiza o  script de criação das tabelas.

Se eu tiver muitas tabelas, nada me impede de dividir a definição delas em vários scripts, por módulos, por exemplo: 5_models_estoque.py, 5_models_financeiro.py, etc. E, da mesma forma, os validadores.

Aqui, sua criatividade é quem manda, mas lembre-se de alguns princípios:
Explícito é melhor do que implícito.
Simples é melhor do que complexo.
Linear é melhor do que encadeado.
A legibilidade conta.
Quando encontrar a ambiguidade, recuse a tentação de adivinhar.
Ensaio - Corpo são, mente sã...
Autor: Jamile Moura | Publicado: 2011-10-12T21:37:00-04:00

Estava chegando para a visita quando vejo minhas tias sentadas conversando com uma mulher de jaleco; parecia ser plantonista da UCI...não demoro muito naquela sala de espera, deixo minha bolsa e vou ao encontro de minha avó...passo um tempo em sua companhia, converso um pouco, sinto sua presença, observo serena descansar...acaba meu tempo e ao retornar ainda estão por lá as três numa conversa interminável...ainda com a mente em minha avó, tento escutar o que se conversava e entre uma frase e outra dita desapercebida, escuto um "busquem recarregam as energias, ocupem um pouco do seu tempo com algo que tragam bem estar para o enfrentamento desta fase"...Aquela pessoa se tratava da psicologa da Unidade de Cuidados Intensivos que ja havia percebido o desgaste com tudo que estava acontecendo...O dificil em meio a tudo é descobrir uma forma de recarregar...muitas coisas perdem o sentido, a motivação para tantas outras atividades corriqueiras e de rotina desaparece e o foco direcionado no estado de vunerabilidade da circunstancia toma conta...perde-se a disposição, as noites não são mais de sono e a tranquilidade fica a mercê da inquietação...Mais uma noite em claro e assim que o sol nasce o corpo cansado contraditoriamente insiste me se levantar para sair daquele estado de abandono...olho pela varanda do quarto que durmo e na paisagem que se apresenta estão duas imagens que sempre me indentifico; o prédio do Hospital Espanhol [local onde nasci] e o mar da praia do Porto da Barra...calço tenis e vou dar vitalidade ao corpo exausto; materializo o conselho citado...depois de 5km de corrida no circuito barra-ondina e meu corpo fica leve, livre, solto;a mente se acalma...durante essa experiência observo o homem fazendo arte com os malabares na praia, a familia chegando para o banho de sol com o bebe, o artista esculpindo esculturas na areia, sinto o cheiro de mar e me rendo ao barulhos das ondas quebrando num vai e vem constante...A vida tem se apresentado de uma forma diferentemente intensa para mim nesses ultimos dias..."A renovação das pessoas em nossas vidas simboliza esse incessante movimento de transferência que agiliza o fluxo e refluxo da vida, o ir e vir das ondas...O ciclo completa-se, mas não se encerra. Apenas recomeça, sem jamais parar..."Sei exatamento o que me trouxe até aqui mas não imagino aonde tudo isso erá me levar...Me permito viver o instante com a percepção de sua especificidade, na certeza de que remorso não terei por ter vivido...
A arte de ser Feliz...
Autor: Jamile Moura | Publicado: 2014-08-18T07:49:00-04:00

Ainda de olhos fechados percebo a claridade do dia que amanhece...Imagino que deva ser cedo para um despertar de manhã de domingo e mantenho os olhos fechados na esperança de que o sono volte e tome conta da mente antes que ela pense que dia é hoje... Inevitavelmente dos olhos ainda fechados escorrem as lágrimas que contornam o nariz até que a gota molha a mão que apoia a cabeça no travesseiro, fazendo um longo caminho para o coração lembrar do que a mente não consegue "esquecer"... O nó na garganta tenta interromper o processo do lamento, do vazio, da lembrança... Quatro meses já se passaram desde o fim de quatro meses vividos... Experiências diferentes, tempos iguais e mesma intensidade; para cada dia de esperança vivida, um dia de lamento... Estamos quites? Ainda não; a "conta" ainda não se fechou... E por isso a lágrima escorre e com ela mais um dia se inicia....

Sempre acreditei que a felicidade está nas pequenas coisas e ela é o reflexo da presença de Deus em nossas vidas... Mas não por isso devemos creditar os momentos de tristeza a uma "ausência" de Deus... São dois lados de uma mesma "moeda" que nossas escolhas devem pesar o momento e encarar os fatos, fazer por onde virar a "moeda"... e quando tomamos para nos a responsabilidade de nossas escolhas e assumimos as suas consequências a "moeda" estará sempre a nosso favor, mesmo que os momentos tristes ousem nos provar o contrario... Pq se olharmos ao redor existirá sempre um motivo para compensar...

O dia segue na companhia de pessoas queridas; em família, na celebração da vida, na comemoração pela mudança, no convite pelo novo... A noite chega e ao deitar olho em volta o quarto quase vazio... Me pergunto o quanto daquelas coisas ja embaladas em caixas abarrotadas na sala para serem levadas na mudança representam, são necessárias... Depois de 10 anos habitando aquele lugar, cada uma daquelas coisas acumulam lembranças e nas lembranças a dificuldade de se desfazer... Mas a mudança física exige uma mudança comportamental e o questionamento de permanecer incomoda enquanto não é respondido... Permanecer, ficar parado; essa é uma opção que nos faz perder o melhor do que a vida tem para nós; a motivação da mudança, do novo... Ao optar por avançar, Deus nos dá oportunidade de enfrentar novos desafios e com isso conquistamos aquilo que antes parecia impossível... E o que realmente importa é nossa atitude diante dos desafios, dos problemas e das lutas... Nada conquistaremos se ficarmos acovardados, paralisados pelo medo ou pela timidez... E se a felicidade está nas coisas simples, na presença de Deus; Ele encaminha ao final do ida uma mensagem através do alimento, escrita no papel de pão, para nutrir a alma da arte de ser Feliz... 
"Pq depois de toda noite de chuva, virá um lindo dia de sol..."
Autor: Jamile Moura | Publicado: 2013-07-13T20:21:00-04:00

Ja havia se passado 40min do final do expediente e eu ainda estava saindo do escritorio... atônita com a noticia da tarde eu dirigia até minha casa com a mente longe da direção do carro... chegando no meu quarto encontro duas crianças assitindo televisão, prontas para passear... ao me ver gritam ansiosas; vamos ao circo!!! Não tinha a menor intenção de frustar aquela expectativa criada, não tinha a menor vontade de atender aquele pedido... mas a vida não pára e o espetáculo tem que continuar... a caminho do picadeiro subestimo as crianças e pergunto; "vocês lembram quem é o vô Carlos?" E  para minha supresas inicia-se uma longa conversa...

- Lembro sim, ele morreu hj

- Não! Jesus chamou ele para morar lá no céu pq ele é um homem bom... ele está lá no céu agora...

- É ele era bem velinho, de cabelos brancos... ele foi o primeiro, depois foi meu avó, depois meu pai, depois eu...

- Ahhh, cadê meu vovô...tô com saudades dele, quando ele volta? Nem lembro mais do rosto dele... não consigo lembrar dele...

- Eu lembro; ele tem a pele da mesma cor que a minha, cabelo preto, olhos iguais ao meu e um jeito estranho... pq ele sempre viaja e volta... Mas o vô Carlos não volta mais...

A noite continua em chuva... o palhaço arranca sorrisos... os artistas impressionam os olhos atentos que não se atrevem piscar... e entre atrações, me viam lembranças...entre gargalhadas, segurava o choro contido...era parte de mim ali, parte de mim bem longe... pq pra mim ele foi muito mais que um homem bom... ele foi o dono daquele jipe verde que levava todos os netos a praia de Plakafor, ele era o capitão daquele barco branco e azul, ele era o dono da oficina mais irada que qualquer criança sonhara em um dia brincar, ele colhia mangas espadas tão doces quanto sua companhia em fim de tarde, ele era o pescador que trazia os maiores e mais gostosos peixes que a Bahia pudesse oferecer, ele era companhia perfeita para a Bohemia gelada, ele era a disposição montando as varas e ajustando os molinetes na praia em plena alvorada... ele era aquele sorriso discreto nas piadas dos primos mais velhos, ele era o mau humor nos atrasos dos almoços de domingo, ele era o apetite máximo nas entradinhas de acarajes e abaras, ele era a pose e o estilo ao sentar no Califas para comer um kibe enquanto observava quem passava pelos corredores do Shopping Barra, ele era o cafune no sofá assistindo tv, ele era o Sr Costa da Mansão Porto da Barra... e como a despedida é inevitável, a vida dá espaço; pq depois de toda noite de chuva, virá um lindo dia de sol... 

 
Ensaio - Minha cegueira...
Autor: Jamile Moura | Publicado: 2011-10-09T21:43:00-04:00

Eram 5:45hs da manha quando a tripulação anuncia a chegada. "Salvador 23graus".De todas as centenas de desembarques na terra natal, essa tinha algo de muito diferente e eu nao me sentia confortável.Logo na saída da esteira uma imagem me veio a mente: aquele casal simpático de avo e avo abraçados a espera da chegada dos netos para mais uma temporada de ferias nao estaria lá para me recepcionar. Entro no carro e o caminho sugerido ate o Porto da Barra e pela orla de itapua...mais lembranças de uma garotinha de 5anos com sandália ortope e camiseta regata fazendo questão de empurrar o carrinho de compras para a avo na feira...naquele carrinho estavam os temperos que preparariam o inigualável vatapá, caruru e galinha de xixim de D. Martha!Sim, Martha com H,assim como o tambem especial H duplo do Theophilo. Pequenos detalhes que fazem grande diferença...No decorrer do percurso a praia de plakafor... Praia de tantos momentos felizes em família...as ferias na praia de itapua tinha algo de tão especial quanto a leveza da espuma do leite batido com nescau, quanto o gostinho diferente do ovo mexido, quanto a riqueza dos almoços de domingo, quanto o inconfundivel sabor da cocada de coco verde...Chegar a Mansão Porto da Barra e olhar pra varanda do 7• andar em busca daquele mesmo casal sempre a espera de satisfação estampada no sorriso e braços abertos para mais um reencontro...Enxergo coisas que nao existem mais,fecho "meus olhos" para a dor da realidade que me cerca...
Ensaio -  apegos e perdas
Autor: Jamile Moura | Publicado: 2011-10-16T21:57:00-04:00

Nao sei exatamente por qual motivo o dia estava para mim mais cinza do que realmente o clima nublado de uma manha de horário de verão podia aparentar...acordei as 7h ou seria as 8h com um aperto no peito já saudoso da despedida que me esperava ao final do dia...como tem sido todos os dias nesta curta e repentina temporada em Salvador coloquei meus tênis e fui para a corrida... A cada passada me vinha na mente todos os últimos contatos com minha avo... Ao final da corrida caminhei pela beira da praia enquanto o mar convidativo insistentemente molhava meus pés descalços...nao resisti e mergulhei naquela água tranqüila e gelada da praia do porto da barra...de fato estava precisando lavar a alma e esse banho para um baiano e' melhor que muito despacho...pedi a benção a Yemanja e Oxum e fui para o dia da despedida...nao sei explicar como me sinto pq tudo e' muito novo, a novidade trás o imprevisível do desconhecido e ao desconhecido eu nao tenho a menor ansiedade de me apresentar...vida e morte, dois lados de uma mesma moeda que nas palavra do meu avo refletiam em; "isso nao devia existir a dor e' tão grande que nem sei se vale a pena ter vivido"...nestes instantes a recusa nos faz esquecer que só perdemos aquilo que um dia tivemos e para todo sorriso da alegria de ter tido algum dia haverá a lagrima da tristeza de se ter perdido e a perda e' apenas física por que toda a experiência em vida estará eternizada no exemplo e na saudade dentro de cada um que se permitiu viver...