Toques para telemóvel
Mais um toque de telemóvel que irá fazer furor
Entrar na sala
Mais um toque de telemóvel que irá fazer furor
Entrar na sala
Conjurado por Ptaaruonn às infâmes 10:50
Coisas que têm a ver com isto: toques para telemóvel
Directamente da forja este magnífico toque para SMS
Morse:
Download
Conjurado por Ptaaruonn às infâmes 14:47
Coisas que têm a ver com isto: toques para telemóvel
Vamos lá mais uma vez tentar recuperar esta coisa.
Aqui está a nova edição do toque Darth Vader(mp3).
«Em qualquer conjunto dado de circunstâncias, o curso correcto de acção é
determinado pelos acontecimentos subsequentes.»
Ora viva!
Cá estou eu mais uma vez a dar um truque que poucas pessoas vão usar. Da última vez mostrei um script que fazia backups de websites geridos por cpanel que quase podia ser usado por pessoas que não percebiam nada de python. Agora vou mostrar a versão 2.0 do mesmo script, que pode ser usado por qualquer pessoa que saiba escrever. Sim, já não é preciso olhar para o código. A não ser, claro para o copiar, colar e guardar no computador.
Portanto, basta copiar o código python, e guardar num ficheiro de texto ao qual podem dar qualquer nome, desde que tenha extensão .py (para o windows. Em unix/linux pode ser qualquer coisa). Depois é só fazer um ficheiro de texto chamado "cpanel.accounts.txt" e atirar lá para dentro os dados das contas. Vamos ver um exemplo:
Ficheiro cpanel.accounts.txt-----------------------------
Ficheiro cpanel.accounts.txt-----------------------------
username=OMeuSite
password=AMinhaPass
domain=OMeuDominio
folder=APastaOndeVouGuardarOBackup
host=127.0.0.1:1234
dbs=soTemUmaDB
replace=yes
username=OMeuSite2
password=AMinhaPass2
domain=OMeuDominio2
folder=APastaOndeVouGuardarOBackup2
host=127.0.0.1:1234
dbs=dbPrincipal,dbSecundaria
replace=yes
Ficheiro cpanel-backup.py-----------------------------
#!/usr/bin/env python
from os import system
from datetime import date
def dbBackup(db, url, folder, replace = True):
db = db.strip()
download = "%s.sql.gz" % db
system("rm %s/%s" % (folder, download))
system("wget -P %s %s/getsqlbackup/%s" % (folder, url, download))
if not replace:
today = date.today()
newfile = "db-%s-%d%d%d.sql.gz" %\
(db, today.day, today.month, today.year)
system("rm %s/%s" % (folder, newfile))
system("mv %s/%s %s/%s" %(folder, download, folder, newfile))
def homeBackup(username, url, folder, replace = True):
if replace:
download = "home-%s.tar.gz" % username
else:
today = date.today()
download = "home-%s-%d%d%d.tar.gz" %\
(username, today.day, today.month, today.year)
system("rm %s/%s" % (folder, download))
system("wget -P %s %s/getbackup/%s" %\
(folder, url, download))
def doBackup(account):
url = 'http://%s:%s@%s' %\
(account['username'], account['password'], account['host'])
if account['replace'] == 'yes': replace = True
else: replace = False
for db in account['dbs'].split(','):
dbBackup(db, url, account['folder'], replace)
homeBackup(account['username'], url, account['folder'], replace)
def getAccounts(infile):
accounts = []
f = open(infile, 'r')
account = {}
for line in f:
line = line.strip()
if line == '##': break
if not line:
if not account == {}:
accounts.append(account)
account = {}
if line and not line[0] == '#':
pos = line.find('=')
key = line[0:pos].strip()
value = line[pos+1:].strip()
account[key] = value
f.close()
return accounts
if __name__ == '__main__':
accounts = getAccounts('cpanel.accounts.txt')
for account in accounts:
doBackup(account)
Descobri o que fazer àquelas pessoas que fumam em qualquer lado sem se preocupar se estão a matar quem está à volta. Fica aqui o truque:
Ora cá estamos nós no meu dia favorito para escrever frases motivadoras... logo que publico o post de frases motivadores do dia dos namorados, é logo uma enchente de choro e suicídios que até sinto o planeta agradecer-me por o ter livrado de mais alguns macaquinhos que o estão a tentar destruir.
Mas chega de divagações, aqui vão as frases de hoje. Sim, porque hoje vão ser três. Pensem nelas como uma sequência... frases relacionadas com vários estágios do relacionamento entre dois seres humanos (sejam lá de que sexo forem... homens... mulheres... ou qualquer outra coisa).
«Um malmequer de um amante significa mais do que uma orquídea de um amigo.»
«Mais vale um seixo dado por amor que um diamante dado por dever.»
«Aquele que ressona adormece primeiro.»
Fica em inglês porque traduzido não tem piada nenhuma:
"Yesterday is history, tomorrow is mystery, but today is a gift, thats why it's called present"
Conjurado por Ptaaruonn às infâmes 17:28
Coisas que têm a ver com isto: Frases que iluminam
Olha, mas fica aqui o post. E vão 3 anos, ainda é pequenino. Vamos ver como vai ser quando crescer.
E pronto passou-se mais um ano de verborreia sem sentido.
Este ano vamos ter uma festa de arromba: vamos ter um grupo de gaitas de foles, uma enorme travessa de haggis e tudo bem regado com o melhor hidromel.
Melhor que isto só aquelas paradas de aniversário das estações privadas de televisão ou ver apresentadores de noticiário a cantar...
Provavelmente poucas pessoas irão achar isto útil, portanto aqui vai:
Hoje andei à procura duma forma fácil de fazer backups dos meus websites. Aquilo tem um sistema de gestão bem conhecido, o cPanel. Mas ele obriga a fazer tudo à mão. O problema é que além de ter de me lembrar de fazer backups todos os dias (ou pelo menos de tempos a tempos) ainda por cima já vai em 3 sites e há mais um na calha.
Após uma curta pesquisa, encontrei este tutorial para fazer backups de websites com cPanel usando php mas não gostei (passwords em texto no servidor + requer ir lá buscar o backup à mão + apagar ou ter um servidor ftp para onde enviar o backup).
Portanto, arranjei a minha forma de fazer a coisa, mas com a minha linguagem interpretada favorita: Python!
Aqui vai o código com comentários úteis (mais fáceis de ver num editor com coloração de sintaxe).
Mesmo quem não perceber nada de python deve conseguir costumizar este script. Caso não consiga, pode esconjurar-me à vontade.
Ah, mais uma coisa: isto foi feito para funcionar em linux/unix. Quem estiver a usar o windows que se lixe pode tentar usar o cygwin, uma máquina virtual ou arranjar uma versão do wget para windows.
Para se conseguirem esquecer de vez que fazem backups, basta (mais uma vez, no linux/unix) criar uma tarefa cron para que o computador faça os backups sozinho.
Segue-se o código:
#!/usr/bin/env python
# primeiro, vamos importar uma bibliotecas que precisamos
from os import system
from datetime import date
# vamos buscar a data de hoje...
# porque o nome do ficheiro de backup é feito com a data de hoje
today = date.today()
#------------------------------
# aqui COMEÇAM as configurações
#------------------------------
# aqui vai o IP e porta do alojamento do cpanel
# podem copiar da url que usam para aceder ao cpanel
host = '12.345.67.89:2082'
# aqui é a pasta onde vão ficar os backups
backupsFolder = '/home/eu/backups'
o_meu_site = { # os dados sobre uma das contas
'username' :'o_meu_site',
'domain' :'o_meu_site.algures.pt',
'password' :'a-minha-super-password'}
o_site_do_meu_vizinho = { # os dados de outra conta
'username' :'o_site_do_meu_vizinho',
'domain' :'o_site_do_meu_vizinho.algures.pt',
'password' :'a-super-password-do-meu-vizinho'}
# vamos juntar as contas numa lista para fazer backups de tudo
accounts = [o_meu_site, o_site_do_meu_vizinho]
#-----------------------------
# aqui ACABAM as configurações
#-----------------------------
# ok, agora vamos percorrer a lista de contas
for account in accounts:
# indicamos a pasta de destino do backup
destinationFolder = '%s/%s' % (backupsFolder, account['username'])
# agora vamos ver onde está o backup
remoteURL = 'http://%s:%s@%s' % (account['username'],
account['password'], host)
# e vamos escrever o comando que vai lá buscar as cenas
wget = "wget -P %s %s" % (destinationFolder, remoteURL)
# primeiro vamos buscar o backup da base de dados
dbfile = 'getsqlbackup/%sdb.sql.gz' % account['username']
system("%s/%s"%(wget, dbfile))
#agora vamos buscar o backup da "home directory"
homefile = 'getbackup/backup-%s-%d-%d-%d.tar.gz' % (
account['domain'], today.month, today.day, today.year)
system("%s/%s"%(wget, homefile))
#e pronto, tá feito!
«Qualquer pessoa que faça uma contribuição significativa para qualquer campo do
saber e fique nesse campo tempo suficiente, torna-se uma obstrução para o
progresso deste - na proporção directa da importância do seu contributo
original.»
Eu sempre disse que essa consola era uma porcaria...
Roubado mas com carinho de http://www.estranhomasverdade.com/
Conjurado por C às infâmes 14:43
Coisas que têm a ver com isto: sistemas possíveis e indeterminados
Caros:
O Douro foi escolhido, de entre outras seis potenciais regiões portuguesas, como uma das concorrentes às Sete Maravilhas da Natureza, um concurso que agrega cerca de 250 outras regiões de todo o Mundo.
É importante para todos nós, e ainda mais, para o Turismo Nacional, a inclusão do Douro nesse grupo tão restrito de paisagens únicas e deslumbrantes.
Por isso, peço-vos um pouco (muito pouco mesmo…) do vosso tempo, para que acedam ao site http://www.new7wonders.com e que votem no Douro.
Mais importante ainda, é que divulguem este Concurso através das vossas mailing lists, para que assim possamos ter uma votação maciça e determinante.
Obrigado.
O Douro agradece-vos!
Epá, isto agora vai ser muito mais aborrecido. Não vão haver mais discursos patéticos, nada de bombas a rebentar, nada de cenas parvas em que se tenta ver através de binóculos sem destapar as lentes...
Mas pronto, coitado do homem. Já ninguém gosta dele, pelo menos não volta a ter de ir a reuniões onde ninguém o cumprimenta.
Isto, já para não falar que ele nunca mais vai correr o risco de morrer com um par de sapatos atravessados no crânio.
Portanto, talvez Obama até seja Cristo reencarnado (pouco provável, porque Ele deve ter agora 9 anos) mas de certeza vai ser muito mais aborrecido. Acho que deve ficar também lembrada esta faceta de bobo da corte do sr Bush, e não apenas a do presidente que fez uma guerra só porque estava chateado.
Antes de mais, para aqueles que não sabem o que são CSS Hacks: são técnicas para alterar a forma como se vê o estilo da página web. Costumam ser usados para conseguir o mesmo efeito em browsers diferentes.
Por vezes estes truques são necessários porque cada browser interpreta o CSS de forma diferente... outras vezes, porque os programadores dos browsers se enganaram e o browser não lê o CSS como era suposto.
Há quem advogue que não se deve usar CSS Hacks, mas enquanto não encontrar uma forma de obter os mesmos resultados com código "politicamente correcto", vai servido. Ah, outro detalhe, muitos CSS Hacks são baseados nos erros de programação dos browsers. Portanto de forma sintética:
«Um CSS Hack é um bug nos browsers que são usados para adaptar o CSS a outros bugs dos browsers.»
Posto isto, voltemos ao assunto que me levou a escrever este post.
Para todos aqueles que não são webdesigners mas as vezes trabalham com CSS (ou até para designers que não tenham isto tatuado nas costas das mãos), aqui vão uns hack para conseguir CSS que funcionem bem em todas as páginas.
Isto é no fundo um método que arranjei para adaptar facilmente CSS a vários browsers. Eu faço assim, se alguém tiver uma forma melhor, faça o favor de me esconjurar.
Eu escrevo o CSS, tal como pretendo para o browser que uso com mais frequência (Firefox 3.0 rula!). Depois, adapto para os restantes browsers sendo que IE6 + IE7 + FF3 + FF2 representam cerca de 90% dos browsers usados nos meus websites (nota: IE = Internet Explorer, FF=Firefox).
Então para introduzir os hacks eu adiciono as seguintes linhas por esta ordem exacta:
/* for FF2 (x:-moz-any-link) */
/* for FF3 (x:-moz-any-link, x:default) */
/* for IE6 and IE7 (*) */
/* for IE6 (_) */
div{
color:black;
}
div{
color:black
}
/* for FF2 (x:-moz-any-link) */
x:-moz-any-link, div{
color: white;
}
/* for FF3 (x:-moz-any-link, x:default) */
/* for IE6 and IE7 (*) */
/* for IE6 (_) */
div{
color:black
}
/* for FF2 (x:-moz-any-link) */
x:-moz-any-link, div{
color: white;
}
/* for FF3 (x:-moz-any-link, x:default) */
x:-moz-any-link, x:default, div{
color: blue;
}
/* for IE6 and IE7 (*) */
/* for IE6 (_) */
div{
color:black
}
/* for FF2 (x:-moz-any-link) */
x:-moz-any-link, div{
color: white;
}
/* for FF3 (x:-moz-any-link, x:default) */
x:-moz-any-link, x:default, div{
color: blue;
}
/* for IE6 and IE7 (*) */
div{
*color: red;
}
/* for IE6 (_) */
div{
color:black
}
/* for FF2 (x:-moz-any-link) */
x:-moz-any-link, div{
color: white;
}
/* for FF3 (x:-moz-any-link, x:default) */
x:-moz-any-link, x:default, div{
color: blue;
}
/* for IE6 and IE7 (*) */
div{
*color: red;
}
/* for IE6 (_) */
div{
_color: black;
}
**Testículo: Texto pequeno
**Abismado**: Sujeito que caiu de um abismo
**Pressupor:** Colocar pressão em alguma coisa
**Biscoito**: Fazer sexo duas vezes
**Coitado**: Pessoa vítima de coito
**Padrão**: Padre muito alto
**Estouro**: Boi que sofreu operação de mudança de sexo
**Democracia**: Sistema de governo do inferno
**Barracão**: Proíbe a entrada de caninos
**Homossexual**: Sabão em pó para lavar as partes íntimas
**Ministério**: Aparelho de som de dimensões muito reduzidas
**Detergente**: Acto de prender seres humanos
**Eficiência**: Estudo das propriedades da letra F
**Conversão**: Conversa prolongada
** Halogéneo**: Forma de cumprimentar pessoas muito inteligentes
**Expedidor:** Mendigo que mudou de classe social
**Luz solar**: Sapato que emite luz por baixo
**Cleptomanáaco**: Mania por Eric Clapton
**Tripulante:** Especialista em salto triplo
**Aspirado**: Carta de baralho completamente maluca
** Assaltante**: Um 'A' que salta
**Determine**: Prender a namorada do Mickey Mouse
*Pornográfico**: O mesmo que colocar no desenho
**Coordenada**: Que não tem cor
**Presidiário**: Aquele que é preso diariamente
**Ratificar:** Tornar-se um rato
**Violentamente**: Viu com lentidão--
Conjurado por Ptaaruonn às infâmes 10:48
Coisas que têm a ver com isto: teorias da conspiração
«Nenhuma experiência é um falhanço completo: pode sempre servir como exemplo
negativo no futuro.»
Com esta crise, convém dar umas dicas fazer uns tostões extra sem grande trabalho: