Archive for outubro, 2008

30
out

Caravana PHP Conference - ADD4

Como já vem sido anunciado através dos tempos blogs por todos os deuses e forças supremas blogueiros, amigos, twitter, email, listas, sinais de fumaça e afins, a ADD4 Comunicação está organizando junto às comunidades php, grupos e listas uma caravana para o PHP Conference Brasil 2008 ( www.phpconf.com.br ) que se dará nos dias 27,28 e 29 de Novembro deste ano, no qual a pessoa que vos fala tecla e Cairo, o estimado padwan, irão ministrar uma palestra sobre o phpBURN e ORMs em geral.

Pois bem, com a caravana vocês, minhas pequenas crianças, irão desfrutar das palestras do evento na categoria SILVER ( 28/11 e 29/11 ) além claro de ter um prazo mais bacana para pagar um preço ainda mais bacana de apenas R$ 25,00, e não é só isso, se você ligar agora pagar o boleto ( e confirmar isto junto à Add4 Comunicação ) entre os 15 primeiros ainda levará NA FAIXA ( SIM NA FAIXA ) uma camiseta SUPER COOL do phpBURN ( http://www.add4.com.br/phpconf2008/ ).

Para isso é muito fácil basta vocês preencherem o formulário no link Google Forms Caravana Add4 Comunicação e aguardar nosso contato, lembrando que as camisetas devem ser escolhidas até o dia 08/11/2008 para que de tempo de prepará-las e reserva-las. Os demais que não receberem na faixa a camiseta e tiverem interesse em adquirir uma, poderão reserva-las por R$ 25,00 cada, LEMBRANDO QUE APENAS A MAIS VOTADA SERÁ PRODUZIDA.

27
out

PhpConference Brasil - Promoção

Como prometido ( e nós sempre cumprimos nossa palavra ) estamos lançando uma promoção para o phpconference.

PHP Conference

Se você quer ir ao phpconference esta é sua chance, estamos dando 1 ( uma ) entrada para as 2 ( duas ) melhores melhores frases que descrevam suas espectativas sobre o Php Conference Brasil 2008.

As regras da promoção são simples, escreva uma frase nos contanto quais suas espectativas relativas ao php conference, lembramos que queremos frases e não redações para vestibular ;).

Mandem quantos emails quiserem e apenas UMA FRASE POR EMAIL.

Email: phpconf (arroba) add4.com.br

Os resultados serão divulgados aqui no dia 03/11/2008.

Participem

27
out

Mídia Social e colaborativa

Olá,

A Add4 Comunicação tem o orgulho de dizer que está participando do Knight Garage Challenge e nós estamos propondo um projeto para revolucionar as formas de comunicação pela internet no Brasil. O briefing básico do projeto pode ser encontrato no site através deste link.

Estamos abertos à perguntas e sugestões.

07
out

star-wars-ascii

- Existe nerd pra tudo certo?
- Tudo mesmo?
- TUDO!!!

Pois bem, nossa comunidade nerd esta bem representada com um camarada ( ainda anonimo ) que me mostraram hoje. O cara fez o filme Star Wars - A new Hope INTEIRO em ASCII por TELNET.

Confiram:

telnet towel.blinkenlights.nl

Afff!!!

07
out

PHP Conference 2008

Como todos já sabem pois já anunciamos em alguns ( vários ) lugares, este ano a Add4 Comunicação dará uma palestra sobre ORMs e seus benefícios no desenvolvimento ágil e estruturado no PHP Conference Brazil 2008.

Pois bem, estamos organizando um grupo para nos acompanhar no evento. Estaremos com camisetas ( limitadíssimas ) da Add4 e do PhpBURN para os membros da nossa comunidade e círculo de amigos, noivas, namoradas, amantes, etc. Quem tiver interesse em participar nos mande um email com Nome, Rg e palestras de interesse, pois organizaremos uma caravana ( sim isso vai tornar a entrada mais barata ) e assim nos integrarmos melhor.

Mandem os emails para phpconf (arroba) add4.com.br

Aguardamos vocês

02
out

Tradução: Rails Database Migration - Parte I

Aqui na Add4 Comunicação trabalhamos com Tecnologia, com isso nosso leque é enorme e uma das tecnolgias que estamos querendo começar a brincar é com Rails.

Uma das funcionalidades que mais tenho inveja de não ter em outros frameworks como Zend Framework e CodeIgniter é a migração de dados. Basicamente funciona da seguinte forma: Escreva o SQL em sua linguagem favorita, versione e navegue entre as várias versões do banco de dados.

Para entender um pouco mais sobre o funcionando das Migrations, eu comecei a traduzir um Guia Oficial que explica detalhadamente como funciona as migrações de dados no Rails.

Dividi em quatro partes, a primeira parte foi originalmente postada no meu blog e agora vou reproduzir aqui na integra.

Migrações em Banco de Dados em Rails

Migrações é a forma conveniente de você alterar seu banco de dados de uma maneira organizada e estruturada. Você poderia editar fragmentos de SQL na mão mas você teria a responsabilidade de comunicar aos outros desenvolvedores que eles precisam ir lá e executá-los. Você também necessita acompanhar as mudanças na máquina de produção na próxima vez que você for fazer deploy. O Active Record marca as migrações que já foram executadas e tudo que você precisa fazer é atualizar seu código e rodar rake db:migrate. O Active Record irá trabalhar para que suas migrações sejam executadas.

Migrações é a forma de você descrever essas transformações usando Ruby. A grande coisa disso tudo (como muito das funcionalidades do Active Record) é a independência do banco de dados: você não precisa se preocupar com mais nenhuma sintaxe para CREATE TABLE, ou que você se preocupe sobre variações de SELECT * (você pode abstrair os requisitos específicos de banco de dados SQL). Por exemplo, você poderia usar SQLite 3 no desenvolvimento, mas MySQL em produção.

Você aprenderá tudo sobre migrações incluindo:

  • Os geradores que você pode usar para criá-los
  • Os métodos que o Active Record provê para manipular seu banco de dados
  • As tarefas Rake que você pode manipular
  • Como eles são relativo ao schema.rb

1. Anatomia de uma migração

Antes de eu mergulhar nos detalhes de uma migração, aqui estão alguns exemplos curtos de coisas que você pode fazer:

class CreateProducts < ActiveRecord::Migration
  def self.up
    create_table :products do |t|
      t.string :name
      t.text :description

      t.timestamps
    end
  end

  def self.down
    drop_table :products
  end
end

A migração adiciona uma tabela chamada products com uma coluna string chamada name e uma coluna text chamada description. Uma chave primária chamada id também será adicionada, no entanto por padrão não precisamos pedir isso. As colunas timestamps created_at e updated_at que o Active Record preenche automaticamente também são adicionadas. Revertendo essa migração simplesmente remove a tabela.

Migrações não tem limite para alterar o esquema. Você pode usar para corrigir dados errados no banco de dados ou popular novos campos:

class AddReceiveNewsletterToUsers < ActiveRecord::Migration
  def self.up
    change_table :users do |t|
      t.boolean :receive_newsletter, :default => false
    end
    User.update_all ["receive_newsletter = ?", true]
  end

  def self.down
    remove_column :users, :receive_newsletter
  end
end

Esta migração adiciona a coluna receive_newsletter para a tabela users. Nós queremos que o padrão seja falso para novos usuários, mas para os usuários existentes nos consideramos que eles já fizeram a sua opção, então nos usamos o modelo User para setar a bandeira para true para usuários existentes.

1.1 Migrações sao classes

A migração é uma subclasse de ActiveRecord::Migration que implementa dois métodos: up (para realizar as transformações exigidas) e down (reverte o que foi feito).

O Active Record prover métodos para executar as tarefas comuns na definição dos dados independente do banco de dados (Você verá mais detalhes mais tarde):

  • create_table
  • change_table
  • drop_table
  • add_column
  • remove_column
  • change_column
  • rename_column
  • add_index
  • remove_index

Se você precisa executar tarefas específicas para seu banco de dados (por exemplo, criar uma chave estrangeira) então a função execute permite executar SQL arbitrarias. As migrações é apenas uma classe regular em Ruby, então você não esta limitado a apenas essas funções. Por exemplo, após adicionar uma coluna, você pode escrever código para setar o valor dessa coluna para dados existentes (se necessário usando seus modelos).

1.2 O que está no nome

Migrações sao armazenadas em arquivos em db/migrate, uma para cada classe de migração. O nome dos arquivos é na forma de YYYYMMDDHHMMSS_create_products.rb, ou seja, uma hora UTC identificando a migração seguida de um sublinhado e seguido do nome da migração. O Nome da classe de migração deve bater com a ultima parte do arquivo. Por exemplo, 20080906120000_create_products.rb deveria definir CreateProducts e 20080906120001_add_details_to_products.rb deveria definer AddDetailsToProducts. Se você acha que necessita mudar o nome do arquivo, então você deve atualizar o nome da classe dentro do arquivo ou então o Rails ira queixar-se que não existe a classe.

Internamente Rails usa apenas o numero da migração (data) para identificá-lo. Antes do Rails 2.1 os números das migrações eram iniciados em 1 e apenas incrementado cada vez que era gerado uma nova migração. Com múltiplos desenvolvedores era mais fácil haver colisões, necessitando você voltar e reordena-los. Você pode reverter para o esquema da velha numeração setando config.active_record.timestamped_migrations para false no environment.rb.

A combinação do tempo e o registro que permite executar as migrações foram a forma como o Rails fez para manipular as situações comuns que ocorrem com múltiplos desenvolvedores.

Por exemplo Alice adicionou a migração 20080906120000 e 20080906123000 e Bob adicionou 20080906124500 e rodou. Alice finaliza suas mudanças e checa nas suas migrações e Bob puxa as mais recentes atualizações. Rails sabe que ele não rodou as duas migrações de Alice assim rake db:migrate irá executá-los (Apesar que a migração do Bob seja executada uma hora mais tarde), e similarmente fazendo regreção da migração não teria executado esses dois métodos.

Claro que isso não substitui a comunicação dentro da equipe, por exemplo, na migração da Alice ela removeu uma tabela que Bob assumiu a existência na sua migração, então claro que um problema irá acontecer.

1.3 Mudando migrações

Ocasionalmente você comete um erro enquanto escrevia a migração. Se você já tiver executado a migração, então você não pode simplesmente editar e executar novamente a migração: Rails acha que a migração já foi executada, então ele não fará nada quando você rodar rake db:migrate. Você deve voltar a migração (por exemplo, com rake db:rollback), editar sua migração e rodar rake db:migrate para a correta versão.

No geral, editar migrações existentes não é uma boa idéia: você criará trabalho extra para você mesmo e para seus parceiros de trabalho e causar um maior problema se a versão da migração for rodada em uma máquina de produção. Em vez disso, você deve escrever uma nova migração para realizar as alterações que você solicita. Editando uma recém migração gerada e que ainda não foi commitada para o controle de versão (ou que geralmente não foi propagada além da sua máquina de desenvolvimento) é relativamente inofensivo. Apenas use com bom senso.

Até a próxima!

01
out

Php Conference Brasil

É com muito orgulho que eu, Kléderson Bueno, divulgo aqui no blog da Add4 Comunicação que estaremos participando do PHP Conference Brasil. A palestra enviada por mim para falar um pouco sobre ORM, Orientação a Objetos e nossa ferramenta em produção phpBurn, foi aprovada e está marcada para o dia 29/11/2008.

Esperamos atender todas as necessidades e desde já começamos a produzir um material para distribuir e apresentar durante a palestra. Aos que acompanham o blog eu estendo o convite e deixo aqui o banner para o PHP Conference. ( http://www.php.net/cal.php?id=3210&cm=11&cy=2008 )

PHP Conference Brasil - Add4 Comunicacao

Apareçam, a palestra vai ser bem interessante e será de grande valia para aumentarmos nossa comunidade em torno da ferramenta que agora foi transferida para o github .

Gostaria de confirmar também a presença de uma comunidade e equipe da Add4 Comunicação na Campus Party Brasil 2009 , este ano estaremos lá novamente agora como comunidade e família Add4.

Um grande abraço e nos vemos nestes eventos.

Klederson Bueno