Recuperando tabela de partições que Windows Vista apagou

hd em chamas

Pensei no título desse post em algo como “Micro$oft, a saga continua agora em outra galáxia” ou algo assim, mas resolvi fazer uma coisa mais informativa. Sei que muita gente passa por isso e nem sempre é fácil achar informação válida sobre o assunto.

Meu mais recente notebook veio com Windows Vista. Quando instalei Linux nele resolvi deixar o Vista lá para caso eu precisasse ver alguma coisa no IE. Ficou por alguns meses numa boa com o dual boot rolando sem problemas. Até que um dia eu precisei entrar no Windows ele não deu boot: tela azul e restarta sozinho sem que eu consiga ver a mensagem de erro. Deixei ele de lado lá…

Hoje precisei usar IE para debugar um javascript que está dando problema somente nele. Resolvi colocar o CD de recovery do Windows para ver se ele dava sinal de vida. Conclusão sem me perguntar nada ele disse: formatando… copiando arquivos… Nisso eu pensei: puts ferrou! Dei reboot antes que ele passasse por cima das minhas partições Linux. Ubuntu Live CD to the rescue! Dei boot num Ubuntu Live CD e a “recuperação” de fato tinha apagado todas as partições e criado uma única novamente somente para o Windows. Ok, sem pânico.

Última vez que passei por problema semelhante foi há uns 10 anos atrás, quando meu Windows foi infectado pelo vírus Chernobyl(CHI). Esse vírus ficava quietinho na sua máquina e somente agia se você ligasse ela num dia 26 de abril, aniversário do acidente nuclear na Ucrânia. Ele apagava o primeiro megabyte do seu disco rígido. Com isso ia pro espaço seu boot loader e sua tabela de partições. Depois desse dia eu exterminei o Windows da minha vida e passei a usar somente Linux.

Google é nosso amigo. Na época eu consegui um software que varria o disco e procurava por partições perdidas e depois recriava a tabela de partições. Se eu consegui resolver esse mesmo problema há tanto tempo atrás, não devia ser tão dificil resolver nos dias de hoje. E realmente não foi. Achei dos programas de código aberto para fazer o trabalho: gpart e TestDisk.

Eu optei por usar o TestDisk, me pareceu ser mais completo. Ele demorou cerca de 30 minutos para fazer o scan no disco de 160gb. Detectou todas as minhas 3 partições Linux (swap, uma de sistema que fica no “/” e outra que uso como “/home”). Foi só marcar elas como primárias novamente e salvar a nova tabela de partições. É preciso dar um boot no Live CD para o sistema reler a tabela de partições (na verdade tem uma forma de fazer isso sem boot, mas eu esqueci como é). Por último é só restaurar o GRUB a partir do Live CD do Ubuntu.

Depois disso o Ubuntu apagado pelo Windows rolou numa boa e eu deixei o Windows de mão de novo. Ô sisteminha…

Links legais:

11 comentários : 31.03.2009 03:50 PM

Fazendo thumbnails de tamanho fixo com attachment_fu

O plugin attachment_fu é quase que o plugin padrão para tratar do upload de arquivos em aplicações Rails. Ele suporta também o resize de imagens mantendo as proporções, mas não suporta crop. Sempre precisamos criar avatar ou coisas semelhantes. E em geral o avatar tem um tamanho fixo, como 80x80. Para isso é necessário fazer o crop da imagem. Adicione o método resize_image, como abaixo, no seu modelo:

class Photo < ActiveRecord::Base
  belongs_to :owner, :class_name => "Person"
  has_attachment :content_type => :image,
    :processor => :rmagick,
    :storage => :file_system,
    :resize_to => '600>',
    :thumbnails => { 
      :album        => 'crop: 150x150',
      :icon         => '72>' }

  protected
  def resize_image(img, size)
    # resize_image take size in a number of formats, we just want
    # Strings in the form of "crop: WxH"
    reg = /^crop: (\d*)x(\d*)/i
    if (size.is_a?(String) && size =~ reg) ||
        (size.is_a?(Array) && size.first.is_a?(String) &&
          size.first =~ reg)
      img.crop_resized!($1.to_i, $2.to_i)
      # We need to save the resized image in the same way the
      # orignal does.
      self.temp_path = write_to_temp_file(img.to_blob)
    else
      super # Otherwise let attachment_fu handle it
    end
  end
end

Assim você sobrescreve o método original do attachment_fu para suportar uma sintaxe especial. Então quando você quiser um thumbnail ou até mesmo a imagem principal cortada de um tamanho específico, basta usar a string ‘crop: WxH’. Bom lembrar que isso só irá funcionar com o Rmagick. Eu dei uma olhada sobre como fazer usando o image_science, mas era um pouco mais chato. É bom setar: :processor => :rmagick na definição do has_attachment.

Eu também fiz um teste para garantir que os meus thumbnails estão sendo gerados no tamanho correto:

describe "photo resize" do
  it "should create thumbnails with correct size" do
    photo = new_photo
    photo.save!

    full, album, icon = *Magick::ImageList.new(
      photo.full_filename,
      photo.full_filename('album'),
      photo.full_filename('icon')
    )

    full.columns.should == 50
    full.rows.should == 64

    album.columns.should == 150
    album.rows.should == 150

    icon.columns.should == 50
    icon.rows.should == 64
  end
end

PS1: Sim, eu sou paranóico com testes e você também deveria ser!
PS2: Essa dica foi adaptada daqui.

3 comentários : 17.03.2009 07:04 PM

Lançamento da Revista TI Digital

Ontem na Livraria da Travessa, centro do Rio, foi o lançamento da Revista TI Digital de autoria da Arteccom. A mesma do Encontro de TI, do Encontro de Webdesign e da Revista Webdesign.

Grandes nomes da área de desenvolvimento nacional estão entre os colunistas, como Paulino Michelazzo e Guilherme Chapiewski. Eu tenho o honra de estar nesse time também! Vou escrever sempre sobre Ruby on Rails. Nesta primeira edição tivemos uma entrevista exclusiva com o David H. Hansson e comentários de nomes da nossa comunidade como Carlos Eduardo, Ronaldo Ferraz, Paulo Souza e Carlos Brando.

No primeiro artigo eu falei um pouco sobre REST e sobre como facilitar a sua vida usando o plugin resource_controller do James Golick. Então vamos em frente. Aceito sugestões para os próximos artigos!

Compre na banca mais próxima de você!

3 comentários : 06.03.2009 07:59 PM

mergulhaoinfo no imasters

Logo iMasters

Para quem acompanha meu blog agora uma ótima notícia! Está com algumas semanas de atraso, mas antes tarde do que nunca… o tempo está escasso. A partir de agora alguns dos meus posts, principalmente os técnicos, também serão publicados dentro do iMasters! O primeiro post já foi publicado, é a série de três vídeos da palestra no Encontro de TI. Acesse o post no iMasters.

1 comentário : 06.03.2009 07:20 PM

Redeparede: we are hiring!

Logo Redeparede

Sim é verdade! Estamos em busca de pessoas para trabalhar conosco, em nossa pequena, descentralizada, multidisciplinar e multilingue equipe! Atualmente nosso time é composto por duas pessoas nos EUA, uma na argentina e três no Brasil. Estamos passando por uma incrível fase de crecimento. Em novembro passado tivemos 1,5 milhões acessos. Fechamos fevereiro com 3,5 milhões de acessos e 7,5 milhões de pageviews. Quase 1/3 desses acessos são do Brasil. São números surpreendentes!

A má notícia é que no momento não estamos em busca de nenhum desenvolvedor Rails, apesar de termos alguns projetos que estamos pensando na viabilidade de terceirizar o desenvolvimento. Estamos em busca de um representante de vendas que entenda o que nós fazemos e saiba vender os nossos surpreendentes números de crescimento.

Também buscamos por um webdesigner. Buscamos experientes coders XHTML/CSS/JS. Layouts clean fazem o nosso estilo. Saber jQuery é sem dúvida um diferencial. Há muito o que melhorar em nossos CSSs e na estrutura XHTML de nosso site. Quem entrar nessa vaga irá trabalhar diretamente comigo, consertando o que está errado e desenvolvendo novas telas.

Interessados olhem mais detalhes em nossa página de Jobs.

0 comentários : 06.03.2009 06:48 PM

Windows live, o fim da saga!

Depois da desgraça toda que eu passei aí, nós conseguimos contatos com um pessoal da Microsoft nos EUA. Só em contato direto com eles conseguimos resolver tudo! Fala sério! Pelo menos lá eu estava conversando com gente que sabia o que estava falando.

Agora o Redeparede possui uma forma de fazer invites de pessoas do Gmail e também do Msn. A funcionalidade não está liberada oficialmente (não tem menu, mas até semana que vem deve entrar), mas já está funcional e vocês podem usar digitando diretamente na URL. Por exemplo, supondo que seu login é meu-login, então digite no seu navegador: http://redeparede.com.br/users/meu-login/invites. Você será levado para a página de invites.

Em breve um mini tutorial do plugin contacts que nós utilizamos para buscar os contatos do Gmail e do Msn.

1 comentário : 06.03.2009 06:10 PM