Ringtones no iPhone?
Aug/100
Os ringtones no iPhone são pagos (via iTunes), mas quem vai pagar USD$2 por toque? O que podemos fazer é criarmos pelo iTunes. Vou deixar passo à passo aqui para todo mundo entender
Na Biblioteca no iTunes, selecione a música desejada, clique com o botão direito e selecione "Obter Informações" (se for em inglês, "Get Info").
Na tela de informações, clique na aba "Opções" e ajuste as opções de início e fim da música (distância máxima entre pontos de 35 segundos).
Salve as modificações e novamente clique com o botão direito sobre a música (agora já editada com os intervalos) e selecione "Criar versão AAC" e em alguns segundos a música será duplicada. Na nova versão (repare a duração na lista), mais uma vez com o botão direito sobre a música e selecione "Mostrar no Windows Explorer" (caso for OSX: "Mostrar no Finder").
O quase-ringtone é localizado e no formato "m4a". Para finalizar, altere o formato do arquivo para "m4r" e execute-o para abrir no iTunes como um toque
Sincronize os toques com o iPhone para finalizar.
BONUS TIEM!
Baixe aqui um ringtone para colocar de toque para sua namorada: Star Wars – Imperial March
Ativando mod_rewrite no Apache2.2 (Debian/Ubuntu)
May/102
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.
Novo site FACE Digital
Apr/100
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/
Lançamento do 'Nosso Bairro Tem'
Mar/100
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
Oct/098
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:

Janela de configuração:

Emoticons personalizados + Emoticons padrões:

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.:
), 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
Mar/091
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.
Fake?
Novo Portal Joinville
Jan/090
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/
Conexão via socket com o Orkut
Jan/090
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
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
Jan/090
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 x { return $replace($1-,",",>,>,',',<,<) }
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.








