Ativando mod_rewrite no Apache2.2 (Debian/Ubuntu)

7
May/10
2

Há algum tempo, tive problemas com o mod_rewrite e, como sempre fui acostumado a ativar da forma old school, me perdi; não achei a lista módulos no httpd.conf pra remover o comentário e ativar no Apache2.

Estudei essa estrutura (incomum pra mim) do Apache e descobri como ativar.

(Lembre-se de já ter instalado com o apt-get:  apt-get install apache2)

Antes de tudo, verifique se você tem o módulo "mod_rewrite" (somente para ter certeza que você não o excluiu): locate mod_rewrite.so

Provavelmente ele será encontrado em "/usr/lib/apache2/modules".

Verifique se o arquivo "rewrite.load" está na pasta "/etc/apache2/mods-enabled". Caso não estiver, copie do mods-available: sudo cp /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/.

Execute os comandos:

cd /etc/apache2/mods-enabled
touch rewrite.load
sudo gedit rewrite.load

E cole a linha no arquivo: LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

Agora, edite o arquivo /etc/apache2/sites-available/default (ou 000-default)
E procure o seguinte:

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

E mude o AllowOverride para "All": AllowOverride All

Após todos esses cansativos passos, reinicie o apache: service apache2 restart ou /etc/init.d/apache2 restart

Pronto, agora seu mod_rewrite está ativo.

Filed under: Geral

Novo site FACE Digital

8
Apr/10
0

Lançado ontem (07/04/10) o novo site da FACE Digital. Agora muito mais interativo, simples e direto.

No canto da tela, você pode ter o auxílio do Isy. Ele ajudará na navegação do site explicando cada sessão. Por isso é importante que você esteja com o áudio ligado.

A idéia principal do site é explicar cada sessão em que atuamos usando as respectivas tecnologias.

Web

Desenvolvido por Thaynã Moretti, usando as tecnologias: PHP5, MySQL, JavaScript (JQuery), xHTML/CSS2 e FaceCMS (Content Management System, desenvolvido por Andrei Rosseti).

E-Learning

Desenvolvido por Claudney Wilbert: e-learning interativo com uma questão no final do teste para verificarmos se você capturou informações da apresentação.

Multimídia

Desenvolvido por Claudney Wilbert.

Relacionamento

Parte visual desenvolvida por Claudney Wilbert (efeitos e etc) e XML (organização de dados do banco) desenvolvido por Andrei Rosseti e finalizado por Thaynã Moretti.

Obs.: A voz do Isy foi gravada e editada por Claudney Wilbert.

Visite o site e confira: http://www.facedigital.com.br/

Filed under: Portfólio

Lançamento do 'Nosso Bairro Tem'

4
Mar/10
1

O Nosso Bairro Tem é um novo serviço ligado ao Portal Joinville. Trata-se de um guia de utilidade pública que traz para os usuários do portal uma lista completa de lojas, bares, restaurantes, oficinas, escolas e outros estabelecimentos comerciais e de serviços espalhados por Joinville.

Acesse já: http://www.portaljoinville.com.br/nossobairrotem


Linguagens e técnicas usadas para o desenvolvimento: PHP5, MySQL5, JavaScript/Ajax+JQuery, xHTML+CSS2, CodeIgniter+DataMapper.

Codificação:

  • Thaynã Moretti
  • Andrei Rosseti

Desenvolvimento do layout:

  • Juliano Rocha

NDE / No Default Emoticons

4
Oct/09
8

Numa tarde vazia com um tédio tenebroso, decidi criar algum script para o MSN Plus!. Como nunca fui a favor dos emoticons padrões serem fixos (sem possibilidade de editar/remover/whatever), comecei a codar desenvolver o NDE (No Default Emoticons).

Na primeira versão, era apenas para uso pessoal e a funcionalidade principal era enviar todos os emoticons padrões em texto. Mas como alguns amigos gostaram da idéia e da funcionalidade do Script, resolvi criar uma interface gráfica (GUI) para o usuário ter mais liberdade e assim, selecionar quais emoticons devem ser stripado .

Caso alguém não tenha entedido ainda o funcionamento, segue alguns exemplos:

Um emoticon padrão sendo enviado como texto:

NDE

Janela de configuração:

Janela de Configuração

Emoticons personalizados + Emoticons padrões:

Emoticon Personalizado com Emoticon padrão

Bom, inicialmente é isso. O script ainda está em processo de desenvolvimento e, por enquanto, somente a janela de configurações funciona perfeitamente (ou não). Ainda não é possível desativá-lo (somente se você remover todos os emoticons da lista).

O NDE é EXTREMAMENTE Beta: "É por sua conta em risco".

* Versão 0.6b:

  • Bug em emoticons com "-" (ex.: :-O) [OK]
  • A janela "Sobre" não está com problemas; ela somente está incompleta.

* Versão 0.7b:

  • Global replacement. Ou seja, todos os emoticons repetidos e que estão na sua lista (ex.: :D :D :D ), serão transformados em texto. Bug reportado por vms. [OK]

* Versão 0.8b:

  • Se não houvesse nenhum emoticon na lista, ao enviar a mensagem o script retornava "undefined". Bug reportado por ezquimo. [OK]

Quem está usando a versão 0.7 ou inferior, por favor, atualize!

Baixe aqui (v0.8).

Camaleão h4x0r

24
Mar/09
1

Todos sabemos que camaleões mudam de cor instantaneamente, mas ver isso em um vídeo em que o dono (?) coloca o bichinho em cima de óculos com cores diferentes e o camaleão muda a sua cor na hora, é inacreditável.

Get the Flash Player to see this content.

Fake?

Novo Portal Joinville

9
Jan/09
0
Portal Joinville

O Portal Joinville agora está com uma nova roupagem e com muito mais interatividade para o usuário.

Acesse agora e cadastre-se pelo endereço: http://www.portaljoinville.com.br/

Como torcer o pé em 13 segundos.

9
Jan/09
1

Tagged as:

Conexão via socket com o Orkut

7
Jan/09
0

Esse código eu fiz há muito tempo atrás, só fiz algumas alterações e coloquei algumas frases em inglês pra ficar mais bonito. Mas vamos explicar um pouco antes de mostrar o código.

A conexão com o Orkut é beeem fresca, você precisa capturar 2 cookies: Auth & orkut_state.

Pegando o Auth

Faça uma conexão normal (porta 80) com www.google.com.

GET https://www.google.com/accounts/ClientLogin?Email=seu-email&Passwd=sua-senha&service=orkut HTTP/1.1

Caso tenha dado tudo certo, retornará algo mais ou menos assim:

HTTP/1.1 200 OK
Content-Type: text/plain
Cache-control: no-cache, no-store
Pragma: no-cache
Expires: Mon, 01-Jan-1990 00:00:00 GMT
Date: Wed, 07 Jan 2009 21:01:12 GMT
X-Content-Type-Options: nosniff
Content-Length: 563
Server: GFE/1.3
Connection: Close

SID=DQAAAHYAAADowNeryYp…
LSID=DQAAAHgAAABYeM3q3a…
Auth=DQAAAHgAAABYeM3q3a

Salve o valor do Auth e faça uma nova conexão.

Pegando o orkut_state

Abra conexão com o www.orkut.com e mande o GET:

GET /RedirLogin.aspx?auth=valor-do-auth HTTP/1.1

Retornará o orkut_state, nosso segundo cookie-mor.

HTTP/1.1 302 Moved Temporarily
Cache-control: no-cache, must-revalidate, no-cache="Set-Cookie", private
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Pragma: no-cache
Set-Cookie: orkut_state=ORKUTPREF=ID=5495970435752129405:INF=0:SET=33642447:LNG=79:CNT=10:RM=0:USR=bW9yZXR0eUBnbWFpbC5jb20=:...
Domain=www.orkut.com; Path=/; HttpOnly
Set-Cookie: S=neworkut_borg=ADTzEmsvDlBZ4Rh...; Path=/; HttpOnly
Content-Type: text/html; charset=UTF-8

Navegando no Orkut

E agora, finalmente, você poderá fazer uma conexão direta com a Home.aspx, por exemplo… Tendo o orkut_state, você pode navegar em qualquer página do Orkut.

GET /Home.aspx HTTP/1.1
Cookie: orkut_state=valor-do-orkut_state

Código de exemplo feito por mim

alias orkutCookie {
sockclose orkutCookie
sockopen orkutCookie www.google.com 80
hadd -m userSettings logIn $1
hadd userSettings passWd $2-
}

on *:sockopen:orkutCookie: {
echo -a -> Connecting… Getting Auth, LSID and SID cookies from Google.
var %l = sockwrite -n $sockname
%l GET https://www.google.com/accounts/ClientLogin?Email= $+ $hget(userSettings, logIn) $+ &Passwd= $+ $hget(userSettings, passWd) $+ &service=orkut HTTP/1.1
%l Host: www.google.com
%l Connection: Close
%l
}

on *:sockread:orkutCookie: {
sockread %b
if ($regex(%b,^(\w+)=(.+)$)) hadd -m orkutCookies $regml(1) $regml(2)
}

on *:sockclose:orkutCookie:{
echo -a -> Done! Send Auth cookie to Orkut.
sendOrkutCookie
}

;sending auth cookie

alias sendOrkutCookie {
sockclose sendOrkutCookie
sockopen sendOrkutCookie www.orkut.com 80
}

on *:sockopen:sendOrkutCookie: {
var %l = sockwrite -n $sockname
%l GET /RedirLogin.aspx?auth= $+ $hget(orkutCookies, Auth) HTTP/1.1
%l Host: www.orkut.com
%l Connection: Close
%l
}

on *:sockread:sendOrkutCookie: {
sockread %b
if ($regex(%b,^Set-Cookie: orkut_state=(.+)$)) { hadd -m orkutCookies state $regml(1) }
}

on *:sockclose:sendOrkutCookie: {
echo -a -> OK! Orkut state caught! Now, connecting with orkut_state cookie on Orkut.com.
orkutCall
}

alias orkutCall {
sockclose orkutCall
sockopen orkutCall www.orkut.com 80
}

on *:sockopen:orkutCall: {
var %l = sockwrite -n $sockname
%l GET /Home.aspx HTTP/1.1
%l Host: www.orkut.com
%l Cookie: orkut_state= $+ $hget(orkutCookies,state)
%l Connection: Close
%l
}

on *:sockread:orkutCall: {
sockread %b

if ($regex(%b,JSHDF\['uid'\] = '(\d+)')) hadd -m orkutData profileUid $regml(1)
}

on *:sockclose:orkutCall: {
echo -a -> Profile Uid data saved.
echo -a -> author: Thaynã Moretti.
}

Sistema de tradução

7
Jan/09
0

Hoje, andei falando com o Skull_BoY e ele me pediu para fazer um sistema de tradução em mIRC Scripting: tudo que fosse digitado em um certo canal em inglês, fosse traduzido para português e enviado para outro canal.

Eu fiz o sistema, apesar de estar totalmente enferrujado em relação à MS.

alias t { return $token($1, $2, 32) }
alias x { return $replace($1-,&quot;,",&gt;,>,&#39;,',&lt;,<) }
on $*:text:/(.+)/iS:#: if ($chan == $t($hget(translate, channels), 1)) { translate $strip($1-) }     

alias translator {
if $regex($1,^off$) { hfree translate channels | halt }
if !$2 || $regex($1-2,/(#\w+)/g) < 2 {
echo -ga › sintáxe: /translator #canal1 #canal2 (onde " #canal1 " é o canal de onde o texto será capturado para tradução)

if ($hget(translate, channels)) { echo -ga › canais ativos/registrados no momento: $v1 }
halt
}

hadd -m translate channels $1-2
echo -ga › ok! $1 e $2 registrados com sucesso!
}

alias translate {
set %rand $r(1,1000)
hadd -m $+(translate_,%rand) texto $1-

sockopen $+(translate_,%rand) translate.google.com 80
}

on *:sockopen:translate_*: {

var %w = sockwrite -n $sockname, %s = $+(sl=en&tl=pt&text=,$hget($sockname, texto),&btnTrTxt)

%w POST /translate_t HTTP/1.1
%w Host: translate.google.com
%w Connection: Close
%w Content-Type: application/x-www-form-urlencoded; charset="utf-8"
%w Content-Length: $calc($len(%s) + 1)
%w
%w %s
}

on *:sockread:translate_*: {
sockread %q
;echo -ga -> %q
if $regex(%q,/wrap=SOFT dir="ltr" rows=5 id=suggestion>(.+)<\/textarea>/iS) { msg  $t($hget(translate, channels), 2) tradução › $x($regml(1)) | sockclose $sockname }
}

on *:sockclose:translate_*: { hfree $sockname }

Sintáxe: /translator #canal-para-capturar #canal-para-enviar.

Tagged as: ,

Aplicativos para o Orkut

26
Dec/08
1

Se você é desenvolvedor (principalmente web), saiba que você pode criar aplicativos sociais para o Orkut. O Orkut oferece suporte para uma sandbox na qual é possível criar aplicativos usando o OpenSocial, um conjunto comum de APIs, HTML e JavaScript.

No momento, o Orkut suporta apenas a versão 0.7 da API do OpenSocial.

Criando sua primeira API

Primeiro, crie um arquivo XML. Escolha o nome e coloque a formatação padrão do XML (com utf-8). Veja um exemplo a seguir:

<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="Testando">
<Require feature="opensocial-0.7"/>
</ModulePrefs>
<Content type="html">
<![CDATA[
Testando!
]]>
</Content>
</Module>

Salve e suba o arquivo em algum FTP. Para você exportar essa API para o Orkut, siga os passos abaixo.

Acesso ao SandBox

Caso você tenha interesse, cadastre-se para ter acesso à sandbox aqui. É um formulário rápido, apenas quatro fields.

Após o cadastro, entre no Orkut pelo link: http://sandbox.orkut.com/ (caso a URL mude automaticamente para http://orkut.com/, provavelmente ocorreu algum erro no seu cadastro).

Caso tenha ocorrido tudo certo…

Vá em "Editar" no menu de Aplicativos.

Após aberto, note que agora há uma caixa de texto para você exportar a sua API. Veja na imagem:

Coloque o link do seu arquivo e clique em "Adicionar aplicativo" e siga os passos padrões. Após adicionado, o seu aplicativo ficará mais ou menos assim:

Bom, é isso. No próximo post, darei exemplos de API's importando arquivos JS e etc…

Agradecimentos: ffelipe (edição de imagens)

Tagged as: , ,