quarta-feira, 27 de março de 2013

Programa alterar arquivo .csv

Galera segue o link de um programa para alterar aqueles arquivos .csv sem perder o formato original!

http://www.baixaki.com.br/download/csved.htm




Vitor Yudi Hansen

Salvar e ler arquivo .txt no ios

Bom dia pessoal!

fiz um método, bem simples, para vocês entenderem o conceito..

de como gravar um arquivo txt ou apenas ler esse arquivo pelo IOS.

nesse exemplo,

vou gravar a data que a aplicação foi iniciada pela primeira vez,
na verdade fiz o metodo de ler e gravar,
entao, você pode implementar do jeito que quiser...
eu utilizei eles para gravar a data que o app foi aberto pela primeira vez..



-(BOOL)saveFile{
    
    NSDate* date = [NSDate date];
    
    //Create the dateformatter object
    
    NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
    
    //Set the required date format
    
    [formatter setDateFormat:@"ddMMyyyy"];
    
    //Get the string date
    
    NSString* str = [formatter stringFromDate:date];
    
    
    NSError *err;
    
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"dataIni.txt"];
    
  
    
    BOOL ok = [str writeToFile:filePath atomically:TRUE encoding:NSUTF8StringEncoding error:NULL];
    
    if (!ok) {
        NSLog(@"Error writing file at %@\n%@",
              filePath, [err localizedFailureReason]);
    }
    
    return ok;
    
}

-(NSString*)getFile{
    
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"dataIni.txt"];
    NSString *str = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL];
    
    return str;
}

Pronto!!
É isso ai galera!!!
abss



Vitor Yudi Hansen

segunda-feira, 25 de março de 2013

Brasileiro apoia novo Papa, mas quer Igreja mais liberal

Esses dias atrás vi uma noticia no terra, essa aqui.
Onde a maioria dos brasileiros que apoiaram a escolha do novo papa, pedem uma igreja mais liberal...

Eu sou católico,

e tenho uma opinião bem diferente dessa.

1º - Se a pessoa se diz católica, presumi-se que ela saiba o que a Igreja prega. E se ela conhece o que a Igreja prega, ela vai ter absoluta certeza de que a Igreja Católica não precisa mudar, não sendo mais liberal, como liberando o uso de preservativos, etc.

2º - Se a pessoa também se diz católica, alguma coisa deve estar muito errada! Por que a quantidade de pessoas que levantam a bandeira católica quando se pergunta a religião, deveria, ao menos lotar todas as igrejas nas missas dominicais... e isso não acontece...

3º - Se para a pessoa tanto faz, ser católica ou não, seguir x ou y , não é a Igreja que tem que ser mais liberal, pois quando dizem que a Igreja vem perdendo fieis, eu não acredito nisso... Pois voltando ao primeiro item... quem é fiel, sabe o que a Igreja prega e vive... e apesar dos erros do passado... a Igreja hoje está bem diferente... Embora possam falar sobre a pedofilia que alguns padres cometem, eu acho que eles devem ser punidos, e serem afastados da Igreja, porém, não é apenas na Igreja que isso existe...
Já vi casos de pastores, enfim, de todas as religiões...

4º - Se as pessoas pedem mudanças para serem católicas... sinceramente, nunca serão... por que a Igreja Católica Apostólica Romana não precisa se moldar as pessoas... Mas as pessoas tem que entender, e ai sim, se aceitar, segue, senão... deixe a Igreja viver a vida dela... Simples assim... AS pessoas apontam tantos erros, de pessoas ligadas a Igreja, falam que a Igreja precisa mudar isso, mudar aquilo...
Mas para que?
Para que importa a opinião da Igreja, se quem pede mudança, não são os fieis que vão as missas, servem em paroquias, etc...
Tudo o que é ligado ao Catolicismo toma proporções enormes!
E que bom... por que a Igreja incomoda...
de algum fato, as pessoas sabem... que o que a Igreja Católica Apostólica Romana diz, é verdade...
senão não lutariam tanto contra ela...

Não lutariam tanto para Ela mudar...

Para ela aceitar preservativos, aborto, casamento gay.

A Igreja, prega uma vida regrada, de que a pessoa tenha relação sexual depois do casamento. Para que ela vai liberar preservativos?

Existe um método natural que a Igreja recomenda, para entender assita esse vídeo:




Aborto... A Igreja é a favor da VIDA!!! Nunca vai aceitar o aborto!
NUNCA!
olha a definição do aborto:

Casamento gay dentro da Igreja..

Também não vai aceitar...
Pois o Casamento é o sacramento do Matrimonio!
E se você casar na Igreja Católica Apostólica Romana significa que você aceita o SACRAMENTO DO MATRIMÔNIO...
enfim... se você estudar um pouco da Igreja, e o que Ela diz...
você não vai pedir uma Igreja mais liberal...

Será que precisamos de uma Igreja Católica Apostólica Romana mais liberal?

Ou precisamos que as pessoas conhecem, e vivam, aquila bandeira que levanta?
Se você se diz católico... embora todos tenhamos defeitos, pecados, etc... Então, viva o que ela pede...

Se arrependendo dos erros, e sempre, sempre, buscando ser melhor...
Respeitando a opinião do do próximo...
e amando a todos, independente de cor, raça, sexo e inclusive religião...

E esse texto não vai contra ninguém .. simplesmente defende o fato de... se você quer ser católico... seja pelo que a Igreja prega... e não que ela se molde a alguém...

Fiquem com Deus...




Vitor Yudi Hansen

sexta-feira, 22 de março de 2013

quinta-feira, 21 de março de 2013

Consumir Rest no IOS

Pessoal,

segue um método que fiz,
para consumir um rest no ios
bem genérico!!

abss


=D


- (NSString *) getDataFrom:(NSString *)url{
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    [request setHTTPMethod:@"GET"];
    [request setURL:[NSURL URLWithString:url]];
    
    NSError *error = [[NSError alloc] init];
    NSHTTPURLResponse *responseCode = nil;
    
    NSData *oResponseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&responseCode error:&error];
    
    if([responseCode statusCode] != 200){
        NSLog(@"Error getting %@, HTTP status code %i", url, [responseCode statusCode]);
        return nil;
    }
    
    return [[NSString alloc] initWithData:oResponseData encoding:NSUTF8StringEncoding];
}


Vitor Yudi Hansen

quarta-feira, 20 de março de 2013

PHDress

Já ouviram falar de phdress?
veja o conceito!
http://signup.phdress.com/


Vitor Yudi Hansen

Reindexar Indices Magento via ssh


Quando precisamos reindexar índices de forma um pouco mais eficiente no magento podemos utiliza comandos ssh para isso, ou direto do terminal em uma instalação local em linux.
Segue abaixo como fazer isso:
1- Vá para a pasta shell de sua instalação do magento:
cd shell
2- Reindexe todos os índices através do seguinte comando:
php -f indexer.php reindexall
Tudo pronto.
É possível pegar uma lista de todos os comandos disponíveis no reindexador através utilizando o seguinte comando:
php -f indexer.php help
Para ver os índices passíveis de reindexação utilize tente o seguinte:
php -f indexer.php info
Lista de comandos para os índices padrão do magento:
php indexer.php --reindex catalog_product_attribute
php indexer.php --reindex catalog_product_price
php indexer.php --reindex catalog_url
php indexer.php --reindex catalog_product_flat
php indexer.php --reindex catalog_category_flat
php indexer.php --reindex catalog_category_product
php indexer.php --reindex catalogsearch_fulltext
php indexer.php --reindex cataloginventory_stock
php indexer.php --reindex tag_summary


Vitor Yudi Hansen

segunda-feira, 18 de março de 2013

Papa Francisco

Um site muito legal da canção nova falando sobre o novo papa!

vale a pena ver...

http://papa.cancaonova.com


Vitor Yudi Hansen

sábado, 16 de março de 2013

Semana Santa por Felipe Aquino


Domingo de Ramos

         O Domingo de Ramos dá início à Semana Santa e lembra a entrada triunfal de Jesus em Jerusalém, aclamado pelos judeus.
A Igreja recorda os louvores da multidão cobrindo os caminhos para a passagem de Jesus, com ramos e matos proclamando: “Hosana ao Filho de David. Bendito o que vem em nome do Senhor”. (Lc 19, 38 – MT 21, 9). Com esse gesto, portando ramos durante a procissão, os cristãos de hoje manifestam sua fé em Jesus como Rei e Senhor.

Quinta-feira Santa

Hoje celebramos a Instituição do Sacramento da Eucaristia. Jesus, desejoso de deixar aos homens um sinal da sua presença antes de morrer, instituiu a eucaristia. Na Quinta-feira Santa, destacamos dois grandes acontecimentos:

Bênção dos Santos Óleos

Não se sabe com precisão, como e quando teve início a bênção conjunta dos três óleos litúrgicos.
Fora de Roma, esta bênção acontecia em outros dias, como no Domingo de Ramos ou no Sábado de Aleluia.
O motivo de se fixar tal celebração na Quinta-feira Santa deve-se ao fato de ser este último dia em que se celebra a missa antes da Vigília Pascal. São abençoados os seguintes óleos:         

Óleo do Crisma – Uma mistura de óleo e bálsamo, significando plenitude do Espírito Santo, revelando que o cristão deve irradiar “o bom perfume de Cristo”. É usado no sacramento da Confirmação (Crisma) quando o cristão é confirmado na graça e no dom do Espírito Santo, para viver como adulto na fé. Este óleo é usado também no sacramento do sacerdócio, para ungir os “escolhidos” que irão trabalhar no anúncio da Palavra de Deus, conduzindo o povo e santificando-o no ministério dos sacramentos. A cor que representa esse óleo é o branco ouro.

Óleo dos Catecúmenos – Catecúmenos são os que se preparam para receber o Batismo, sejam adultos ou crianças, antes do rito da água. Este óleo significa a libertação do mal, a força de Deus que penetra no catecúmeno, o liberta e prepara para o nascimento pela água e pelo Espírito. Sua cor é vermelha.

Óleo dos Enfermos – É usado no sacramento dos enfermos, conhecido erroneamente como “extrema-unção”. Este óleo significa a força do Espírito de Deus para a provação da doença, para o fortalecimento da pessoa para enfrentar a dor e, inclusive a morte, se for vontade de Deus. Sua cor é roxa.

Instituição da Eucaristia e Cerimônia do Lava-pés
        
Com a Missa da Ceia do Senhor, celebrada na tarde de quinta-feira, a Igreja dá início ao chamado Tríduo Pascal e comemora a Última Ceia, na qual Jesus Cristo, na noite em que vai ser entregue, ofereceu a Deus-Pai o seu Corpo e Sangue sob as espécies do Pão e do Vinho, e os entregou para os Apóstolos para que os tomassem, mandando-lhes também oferecer aos seus sucessores.
Nesta missa faz-se, portanto, a memória da instituição da Eucaristia e do Sacerdócio. Durante a missa ocorre a cerimônia do Lava-Pés que lembra o gesto de Jesus na Última Ceia, quando lavou os pés dos seus apóstolos.
O sermão desta missa é conhecido como sermão do Mandato ou do Novo Mandamento e fala sobre a caridade ensinada e recomendada por Jesus Cristo. No final da Missa, faz-se a chamada Procissão do Translado do Santíssimo Sacramento ao altar-mor da igreja para uma capela, onde se tem o costume de fazer a adoração do Santíssimo durante toda à noite.

Sexta-feira Santa

Celebra-se a paixão e morte de Jesus Cristo. O silêncio, o jejum e a oração devem marcar este dia que, ao contrário do que muitos pensam, não deve ser vivido em clima de luto, mas de profundo respeito diante da morte do Senhor que, morrendo, foi vitorioso e trouxe a salvação para todos, ressurgindo para a vida eterna. Às 15 horas, horário em que Jesus foi morto, é celebrada a principal cerimônia do dia: a Paixão do Senhor. Ela consta de três partes: liturgia da Palavra, adoração da cruz e comunhão eucarística. Depois deste momento não há mais comunhão eucarística até que seja realizada a celebração da Páscoa, no Sábado Santo.

Ofício das Trevas

Trata-se de um conjunto de leituras, lamentações, salmos e preces penitenciais. O nome surgiu por causa da forma que se utilizava antigamente para celebrar o ritual. A igreja fica às escuras tendo somente um candelabro triangular, com velas acesas que se apagam aos poucos durante a cerimônia.

Sermão das Sete Palavras

Lembra as últimas palavras de Jesus, no Calvário, antes de sua morte. As sete palavras de Jesus são: “Pai, perdoa-lhes, pois não sabem o que fazem…”, “Em verdade te digo: hoje estarás comigo no Paraíso”, “Mulher, eis aí o teu filho… Eis aí a tua Mãe”, “Tenho Sede!”, “Eli, Eli, lema sabachtani? – Meus Deus, meus Deus, por que me abandonastes?”, “Tudo está consumado!”, “Pai, em tuas mãos entrego o meu Espírito!”. Neste dia, não se celebra a Santa Missa.
Por volta das 15 horas celebra-se nas igrejas católicas a Solene Ação Litúrgica comemorativa da Paixão e Morte de Jesus Cristo. À noite as paróquias fazem encenações da Paixão de Jesus Cristo com o Sermão do Descendimento da Cruz e em seguida a Procissão do Enterro, levando o esquife com a imagem do Senhor morto.         

Sábado Santo

No Sábado Santo ou Sábado de Aleluia, a principal celebração é a “Vigília Pascal”.

Vigília Pascal

Inicia-se na noite do Sábado Santo em memória da noite santa da ressurreição gloriosa de Nosso Senhor Jesus Cristo. É a chamada “A mãe de todas as santas vigílias”, porque a Igreja mantém-se de vigília à espera da vitória do Senhor sobre a morte. Cinco elementos compõem a liturgia da Vigília Pascal: a benção do fogo novo e do círio pascal; a proclamação da Páscoa, que é um canto de júbilo anunciando a Ressurreição do Senhor; a liturgia da Palavra, que é uma série de leituras sobre a história da Salvação; a renovação das promessas do Batismo e, por fim, a liturgia Eucarística.

Domingo de Páscoa

A palavra páscoa vem do hebreu Peseach e significa “passagem”. Era vivamente comemorada pelos judeus do antigo testamento.
A Páscoa que eles comemoram é a passagem do mar Vermelho, que ocorreu muitos anos antes de Cristo, quando Moisés conduziu o povo hebreu para fora do Egito, onde era escravo. Chegando às margens do Mar Vermelho, os judeus, perseguidos pelos exércitos do faraó teriam de atravessá-lo às pressas. Guiado por Deus, Moisés levantou seu bastão e as ondas se abriram, formando duas paredes de água, que ladeavam um corredor enxuto, por onde o povo passou. Jesus também festejava a Páscoa. Foi o que Ele fez ao cear com seus discípulos.
Condenado à morte na cruz e sepultado, ressuscitou três dias após, num domingo, logo depois da Páscoa judaica. A ressurreição de Jesus Cristo é o ponto central e mais importante da fé cristã. Através da sua ressurreição, Jesus prova que a morte não é o fim e que Ele é, verdadeiramente, o Filho de Deus. O temor dos discípulos em razão da morte de Jesus na Sexta-Feira transforma-se em esperança e júbilo. É a partir deste momento que eles adquirem força para continuar anunciando a mensagem do Senhor. São celebradas missas festivas durante todo o domingo.

A data da Páscoa

A fixação das festas móveis decorre do cálculo que estabelece o Domingo da Páscoa de cada ano, assim: A Páscoa deve ser celebrada no primeiro domingo após a primeira lua cheia que segue o Equinócio da Primavera, no Hemisfério Norte (21 de março). Se esse dia ocorrer depois do dia 21 de abril, a Páscoa será celebrada no domingo anterior. Se, porém, a lua cheia acontecer no dia 21 de março, sendo domingo, será celebrada de 25 de abril. A Páscoa não acontecerá nem antes de 22 de março, nem depois de 25 de abril. Conhecendo-se a data da Páscoa, conheceremos a das outras festas móveis.


Cordeiro

         O cordeiro que os israelitas sacrificavam no templo no primeiro dia da páscoa como memorial da libertação do Egito, na qual o sangue do cordeiro foi o sinal que livrou os seus primogênitos. Este cordeiro era degolado no templo.
Os sacerdotes derramavam seu sangue junto ao altar e a carne era comida na ceia pascal. Aquele cordeiro prefigurava a Cristo, ao qual Paulo chama “nossa páscoa” (Cor 5, 7).
João Batista, quando está junto ao rio Jordão em companhia de alguns discípulos e vê Jesus passando, aponta-o em dois dias consecutivos dizendo: “Eis o Cordeiro de Deus que tira o pecado do mundo” (Jô 1, 29 e 36).Isaías o tinha visto também como cordeiro sacrificado por nossos pecados (Cf. Is 53, 7-12).
Também o Apocalipse apresenta Cristo como cordeiro sacrificado, agora vivo e glorioso no céu. (Cf. AP 5,6.12; 13, 8).

Ovo
         O costume e tradição dos ovos estão associados com a Páscoa há séculos. Símbolo da fertilidade e nova vida. A existência da vida está intimamente ligada ao ovo, que simboliza o nascimento. O sepulcro de Jesus ocultava uma vida nova que irrompeu na noite pascal. Ofertar ovos significa desejar que a vida se renove em nós.

Coelho
        
Por serem animais capazes de gerar grandes ninhadas e reproduzirem-se várias vezes ao ano, sua imagem simboliza a capacidade da Igreja de produzir novos discípulos de Jesus, Filho de Deus.

Pão e vinho
        
Na ceia do senhor, Jesus escolheu o pão e o vinho para dar vazão ao seu amor.
Representando o seu corpo e sangue, eles são dados aos seus discípulos para celebrar a vida eterna.

Cruz
         A cruz mistifica todo o significado da Páscoa na ressurreição e também no sofrimento de Cristo.
No Conselho de Nicea em 325 d.c., Constantim decretou a cruz como símbolo oficial do cristianismo.
Então não somente um símbolo da Páscoa, mas símbolo primordial da fé católica.

Círio Pascal
        
É uma grande vela que é acesa no fogo novo, no Sábado Santo, logo no início da celebração da Vigília Pascal. Assim como o fogo destrói as trevas, a luz que é Jesus Cristo afugenta toda atreva do erro, da morte, do pecado. É o símbolo de Jesus ressuscitado, a luz dos Povos. Após a bênção do fogo acende-se, nele, o Círio. Faz-se a inscrição dos algarismos do ano em curso; depois crava-se neste, cinco grãos de incenso que lembram as cinco chagas de Jesus e as letras “alfa” e “Omega”, primeira e última letra do alfabeto grego, que significa o princípio e o fim de todas as coisas.

Fonte:


Vitor Yudi Hansen

sexta-feira, 15 de março de 2013

Exemplo Simples NSTimer


MyViewController.h
...
@interface MyViewController : UIViewController  {
 NSTimer *aTimer;
}
@property (nonatomic, retain) NSTimer *aTimer;
...


MyViewController.m
...
@synthesize aTimer;
...


- (void)viewDidLoad {
 [super viewDidLoad];
 // rodar o runScheduledTask em 5 segundos..
 aTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(runScheduledTask) userInfo:nil repeats:NO];
}


- (void)runScheduledTask {
 // coloque aqui seu código...
 ...
 // Coloque aTimer = nil para cancelar.
 aTimer = nil;
}


}

Simples assim..

=D

Vitor Yudi Hansen

MySQL, Amazon Web Services (AWS) EC2 e Out of Memory (OOM)

Tenho um server aws, e nos últimos dias, estava com problema no mysql, direto quando a maquina chegava a 100% ele caia..

Como resolver esse problema, então? 

No meu caso, resolvi adicionando uma partição de SWAP à minha instância. Verifiquei que instâncias no AWS em princípio não possuem uma partição de SWAP, e, em casos onde a instância possui pouca memória, isso pode ser primordial para o bom funcionamento do sistema. 

O processo é simples e vou exemplificar como pode ser executado em duas etapas, a primeira no console do AWS e a segunda em um shell para a instância: 

1. Abra o Console AWS (http://console.aws.amazon.com) e vá para: EC2 → Volumes 

2. Clique em: "Create Volume". Selecione o tipo (Standard), o tamanho e a zona; 

3. Clique com o botão direito em cima do volume e selecione "Attach Volume", para associá-lo à instância que está rodando; 

4. Abra um shell para a sua instância: 

$ ssh -i <arq.pem> <usuario>@<IP_da_instancia> 

Obs.: Vamos exemplificar utilizando /dev/xvdf, para o novo volume anexado. 

5. Execute o fdisk

$ sudo fdisk /dev/xvdf 

E utilize a sequência:

1. n     Cria uma nova partição;
2. p     Primária;
3. Enter    Seleciona o número 1;
4. Enter    Seleciona o primeiro setor;
5. Enter    Seleciona o último setor;
6. t     Para selecionar o tipo de partição;
7. 82     Linux swap;
8. w     Salva e sai.


Depois ative a SWAP: 

$ sudo mkswap /dev/xvdf1
$ sudo swapon /dev/xvdf1
 

Pronto, criamos um novo volume, anexamos à instância rodando, particionamos como SWAP e o ativamos. 

Mas existem outras maneiras de resolver o problema, como: 

1. Ajustando adequadamente as configurações e buffers do MySQL. Ex.: key_buffer_size, innodb_buffer_pool; 

2. Ajustando o OOM score do seu sistema, por exemplo: 

# cat /proc/$(pidof mysqld)/oom_score_adj
# echo '-20' > /proc/$(pidof mysqld)/oom_score_adj
# cat /proc/$(pidof mysqld)/oom_score
 

O range do OOM Score vai de -1000 a 1000 (ou -17 até 15 em sistemas mais antigos). Lembrando que, utilizando o valor mínimo, não desabilita o OOM Score, somente reduz suas chances de ser convidado a se retirar da memória. 


mais informaçoes...

http://www.dbasquare.com/2012/05/31/mysql-oom-killer-and-everything-related/


Vitor Yudi Hansen

quarta-feira, 13 de março de 2013

Migrando Magento de servidor

Este tutorial fornece informações detalhadas sobre como mover uma loja de Magento de um hospedeiro para outro (ou para uma conta diferente de hospedagem).

Backup de banco de dados MySQL

Em servidores SiteGround tiver phpMyAdmin incluídas por defeito no cPanel de sua conta. Em outros casos, você terá que usar a mesma ferramenta ou um similar que é capaz de exportar seu banco de dados MySQL. informações detalhadas sobre como realizar um backup do MySQL você pode encontrar no nosso MySQL Tutorial .

Alternativamente, se você não tiver o phpMyAdmin instalado, mas você tem acesso shell você pode usar a ferramenta mysqldump. 
A sintaxe é a seguinte

mysqldump-h HOST-u USER-p DATABASENAME> filename.sql

Onde:

Host é o nome do servidor de banco de dados ou pode ser omitido se você estiver executando o servidor MySQL local.
USUÁRIO - um usuário com privilégios totais para o banco de dados Magento.
DATABASENAME - é o nome completo do banco de dados que está executando o Magento.
ARQUIVO - pode ser qualquer coisa que você achar adequado para o arquivo de backup.

Também se você tiver Plesk, DirectAdmin ou qualquer outro web hosting ferramenta de gerenciamento, você pode olhar para as opções disponíveis. Muitos painéis permitem que você despejar o banco de dados com apenas alguns cliques. Por exemplo cPanel tem uma opção para isso.

Transferência de Arquivos

Você vai precisar baixar todos os arquivos de sua loja e enviá-los no novo local. Esta pode ser uma tarefa demorada, considerando que uma instalação Magento padrão consiste em vários arquivos. Uma boa alternativa é para arquivar os arquivos antes de fazer o download / upload, se possível.

Se você tiver acesso SSH você pode fazer logon no servidor - Diretório> instalação magento e arquivar todos os arquivos usando o seguinte comando:
czif tar-ARCHIVENAME.tar.gz

Isso irá criar um arquivo tarball de todos os arquivos no diretório.

Agora você pode baixar o arquivo e enviá-lo facilmente para o novo local. Para extraí-lo no novo local use o seguinte comando na pasta de destino desejado para a instalação do Magento:
xzif tar-ARCHIVENAME.tar.gz


Ajuste de Configuração

Depois que os arquivos são restaurados você deve alterar o arquivo de configuração, a fim de corresponder às novas configurações. Tudo que você precisa mudar aqui é os detalhes do banco de dados no novo local. Estes são armazenados no aplicativo arquivo / etc / local.xml. As linhas que você precisa alterar são:
<host> <! [CDATA []]></ host hostname><username> <! [CDATA [USER username ]]></><senha> <! [CDATA []]></ PASSWORD senha><dbname> <! [CDATA []]></ DATABASENAME dbname>

Onde:

HOSTNAME deve ser o nome do host do banco de dados, mais comumente - localhost
Usuário é um usuário que tem privilégios para o banco de dados
SENHA é a senha para o usuário do banco de dados
DATABASENAME é o nome do banco de dados completo do banco de dados você vai usar com o Magento transferidos

Restaurar banco de dados

Depois de ter ajustado as opções acima, você deve restaurar o banco de dados no novo local.

Uma boa prática é adicionar várias opções no arquivo de backup do MySQL antes de carregá-la. A seguir deve ser adicionado no início do arquivo SQL:
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET OLD_CHARACTER_SET_CLIENT = @ @ CHARACTER_SET_CLIENT;
OLD_CHARACTER_SET_RESULTS SET = @ @ CHARACTER_SET_RESULTS;
SET OLD_COLLATION_CONNECTION = @ @ / literal;
SET NAMES utf8;
OLD_UNIQUE_CHECKS SET = @ @ UNIQUE_CHECKS, UNIQUE_CHECKS = 0;
OLD_FOREIGN_KEY_CHECKS SET = @ @ FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS = 0;
SET OLD_SQL_MODE = @ @ SQL_MODE, SQL_MODE 'NO_AUTO_VALUE_ON_ZERO';
SET @ @ @ = OLD_SQL_NOTES SQL_NOTES, SQL_NOTES = 0;

A próxima opção deve ser adicionada ao final do arquivo, depois todas as outras consultas:
SET SQL_MODE OLD_SQL_MODE = @;
FOREIGN_KEY_CHECKS SET = @ OLD_FOREIGN_KEY_CHECKS;
UNIQUE_CHECKS SET = @ OLD_UNIQUE_CHECKS;
CHARACTER_SET_CLIENT SET = @ OLD_CHARACTER_SET_CLIENT;
CHARACTER_SET_RESULTS SET = @ OLD_CHARACTER_SET_RESULTS;
SET / literal OLD_COLLATION_CONNECTION = @;
SET SQL_NOTES = @ OLD_SQL_NOTES;

Agora você pode importar o banco de dados usando o phpMyAdmin -> Importar ou outra ferramenta MySQL dependendo o tipo de acesso que você tem para o site.

No caso de você gostaria de restaurar o banco de dados via comando shell você pode usar o seguinte:
mysqldump-h HOST-u USER-p DATABASENAME <filename.sql

e digite a senha para o usuário do banco de dados quando for solicitado. 

Note-se que se a loja online Magento é suposto para trabalhar com um nome de domínio diferente na nova localização você deve alterar as entradas para ele no banco de dados MySQL. 

A tabela deve editar é core_config_data e os valores que você precisa para mudar estão na coluna caminho. Alterar a web / insegura / base_url e web / secure / base_url para coincidir com o novo nome de domínio, alterando o valor da coluna para ambos os registros.


Vitor Yudi Hansen

terça-feira, 12 de março de 2013

Primeiros-passos-no-amazon-ec2


Quanto custa?

O EC2 pode ser usado gratuitamente por durante 1 ano (AWS Free Usage Tier). A versão gratuita já é bastante interessante. O poder de processamento dessa versão supera o poder de processamento da minha VM com CentOS.
Após o período gratuito ou caso você opte por algum plano pago, os valores são bem atrativos. Com planos a partir de 0.02 dólares por hora. Com o plano mais barato, caso a instância seja utilizada 24/7, o custo máximo será por volta de 14 dólares mensais. Para maiores detalhes Amazon EC2 Pricing.
Lembrando que mesmo usando a versão gratuita, você terá que cadastrar um cartão de crédito internacional.

Criação da primeira VM

Para iniciar no cloud, você precisa criar uma nova instância de uma VM utilizando uma Amazon Machine Image (AMI). Existem várias imagens disponíveis para Linux e Windows. Imagens pré definidas pela Amazon e outras pela comunidade (Community AMIs). No meu caso escolhi a imagem comunidade bitnami-tomcatstack, AMI ID: ami-0eec1167, que vem com o Ubuntu, Tomcat 6, Java 6, Apache e MySQL. As instruções desse post serão baseadas nesse imagem.
Para criar a instância você utilizará um wizard (next, next ... and next) dentro do AWS Management Console. Essa criação possui alguns detalhes que estão comentados abaixo.
Instance tags - Você pode colocar tags na sua instância, "web server", "database", "homologação", "produção", "queridinho" etc. Esses tags fazem muito sentido para quem possui muitas instâncias, sendo muito fácil para aplicar filtros.
Security Group - É o lugar onde você pode liberar as portas do seu servidor, a versão Default vem com tudo bloqueado. No meu caso criei um Security Group novo e liberei as portas de SSH (22) e HTTP (80).
Key pair name - Serve para criar uma chave pública e privada para conectar (SSH) com a sua instância. Faça o download da chave na hora da criação, pois depois não é possível baixar Key pair via o AWS Management Console.

Endereço da sua instância

O Amazon criará automaticamente um endereço Public DNS para sua instância, que será algo do tipo ec2-11-22-3-444.compute-1.amazonaws.com. Porém se você quiser adicionar um IP, basta ir em Elastic IPs no AWS Management Console, criar um IP e associá-lo a sua instância.

Acessando a sua instância usando SSH

Basta clicar na sua instância com o botão direito e ir na opção Connect. Será exibido a linha de comando para conectar via SSH. Não se esqueça de aplicar as permissões chmod 400 no arquivo .pem, sem essas permissões o SSH não funcionará. O arquivo .pem é o arquivo que foi baixado na criação do seu Key pair.
Use chmod to make sure your key file isn't publicly viewable, ssh won't work otherwise: chmod 400 instancia.pem
Lembrando de alterar o usuário "ubuntu" que aparece na linha de comando para se conectar via SSH, pelo usuário bitnami, que é o usuário padrão criado pela imagem que bitnami.
De ssh -i instancia .pem bitnami @ec2-50-16-0-227.compute-1.amazonaws.com Para ssh -i instancia .pem bitnami ec2-50-16-0-227.compute-1.amazonaws.com

Alterando a senha padrão do Tomcat Manager

O usuário e senha padrão para o Tomcat Manager são manager e bitnami respectivamente. Para alterá-los basta acessar o arquivo /opt/bitnami/apache-tomcat/conf/tomcat-users.xml e alterar para usuário e senha mais convenientes.
sudo vi /opt/bitnami/apache-tomcat/conf/tomcat-users.xml

Alterando a senha do root do MySQL

O usuário root do MySQL da instalação padrão do bitnami não possui senha, para defina-la basta executar o comando abaixo.
mysqladmin -u root password NEWPASSWORD

Criando um usuário e um banco de dados no MySQL

Apesar de trivial, a receita de bolo abaixo é bem útil.
mysql --user=root mysql> create database meu-banco; mysql> grant usage on . to meu-user@localhost identified by 'minha-senha'; # Eu preciso de todos os privilégios para executar DDL e DML mysql> grant all privileges on meu-banco.* to meu-user@localhost;

Fazendo o deploy da sua aplicação

A maneira mais simples de fazer o deploy é diretamente pelo Tomcat Manager. Na minha aplicação o arquivo WAR tem por volta de 10MB. A primeira vez que tentei fazer o deploy através do Tomcat Manager não funcionou, tive que repetir o processo pelo menos duas vezes até funcionar.

Cuidado com o botão Terminate!!!

No AWS Management Console, se você clicar com o botão direito na sua instância, aparecerá a opção Terminate logo acima de Reboot, Stop e Start. Essa opção não é para fazer Stop forçado, essa opção é para apagar a sua instância, você não poderá usá-la novamente. Ela ficará na sua lista de instâncias por algum tempo (no meu caso ficou menos de uma hora), porém logo mais sumirá.

Conclusão

Com os poucos passos acima a minha aplicação Java está funcionando perfeitamente no EC2. Por enquanto essa experiência está sendo muito boa, muito menos restritiva da que foi com o GAE. Restrições que caracterizam umas das grandes diferenças entre IaaS (EC2) e PaaS (GAE).
Algo que não posso deixar de levar em consideração, é que com a hospedagem anterior eu tinha um suporte diferenciado, bastava eu abrir um Support Ticket ou Sales Ticket, que em menos de uma hora eu recebia uma resposta. Na Amazon esse tipo de atendimento só está disponível para as contas com suporte Premium através do AWS Premium Support. Por outro lado, podemos obter muita informação através de fóruns, blogs (como esse que vos fala) e obviamente na própria documentação da Amazon.



Vitor Yudi Hansen