O ÚNICO site que não é um blog, alojado no blogger. É assim tipo um é pá... um..., um coijo...

Mostrar mensagens com a etiqueta tutoriais. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta tutoriais. Mostrar todas as mensagens

terça-feira, fevereiro 03, 2009

Backups à preguiçoso

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!

sábado, janeiro 17, 2009

CSS Hacks

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 (_) */



Isto são apenas comentários no código CSS. A ordem é importante porque usa-se o efeito overload em que uma propriedade sobrepõe-se a outra.

Para o Firefox, o hack é feito no selector. Para o IE, o hack é feito nos elementos. Por exemplo, se tivermos uma div com texto preto por dentro:



div{
color:black;
}



E quisermos uma div com texto branco para o firefox2 (FF2) basta fazer o seguinte:



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 (_) */



Notem como eu fiz a parte a bold: adicionei o código entre parêntesis do comentário "for FF2", depois uma virgula e finalmente o selector do elemento que quero afectar. Agora, apenas no FF2 o texto será branco, sendo preto em todos os outros browsers.

Para o FF3 o processo é semelhante. Vamos dar cor azul ao texto do FF3:



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 (_) */



Mais uma vez, foi só copiar o texto entre parêntesis (x:-moz-any-link, x:default) para o sítio do selector, adicionar uma virgula e o selecto do elemento que queremos afectar (div). E agora temos texto branco no FF2, azul no FF3 e preto em todos os outros browsers.

Para o Internet Explorer 6 e 7 a coisa é um pouco diferente. Agora, é preciso preceder as directivas por um caractere especial. Para ambos os browsers (IE 6 e 7) o caractere é um asterisco (*).

"Oh não! Mas eu preciso de efeitos diferentes para cada um deles!" - dizem vocês, desesperados. Não se preocupem, porque para afectar apenas o IE6 existe podem usar o underscore (_). Assim, podem usar o asterisco para afectar os 2. Se quiserem afectar apenas o IE7, basta usar o underscore para repor o efeito que pretendiam para o IE6. Isto ficou um bocado confuso, vamos ver um exemplo.

Vamos colocar texto vermelho no IE7:



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 (_) */



Ok, temos texto vermelho no IE7. Oops, mas também temos texto vermelho no IE6! Não há problema, basta usar o hack para IE6 para repor o texto preto:



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;
}



E voilá! Texto preto em todos os browsers, excepto no FF2, FF3 e IE7. Nestes o texto é branco (FF2), azul (FF3) e vermelho (IE7).

Se quisermos suportar um quinto browser (por exemplo Opera) podemos fazer o CSS dedicado a esse browser e usar estes hacks para adaptar a estes quatro que aqui vimos.


Isto pode ser feito assim como aqui mostrei (CSS normal mais hacks em conjunto), ou podem escrever o CSS todo depois separar em ficheiros; (1) todos só hacks num ficheiro à parte chamado "hacks.css"; ou (2) um ficheiro para cada tipo de hack, por exemplo "IE67_hacks.css", "IE6_hacks.css", "FF2_hacks.css", ...

E pronto, acho que está bem explicado. Ora digam lá se não sou vosso amigo?

sexta-feira, outubro 03, 2008

Crise do subprime para leigo entender

Fácil de contar e de perceber... à moda do Brasil

...desculpem o grandessíssimo palavrão no fim...mas confesso que me deu uma vontade de rir difícil de conter.


Como só os brasileiros conseguem fazer... Aqui vai:

Para quem não entendeu ou não sabe bem o que é ou gerou a crise americana, segue breve relato econômico para leigo entender...
É assim:
O seu Biu tem um bar, na Vila Carrapato, e decide que vai vender cachaça "na caderneta" aos seus leais fregueses, todos bêbados, quase todos desempregados. Porque decide vender a crédito, ele pode aumentar um pouquinho o preço da dose da branquinha (a diferença é o sobre preço que os pinguços pagam pelo crédito).

O gerente do banco do seu Biu, um ousado administrador formado em curso de emibiêi(MBA), decide que as cadernetas das dívidas do bar constituem, afinal, um ativo recebível, e começa a adiantar dinheiro ao estabelecimento, tendo o pindura dos pinguços como garantia.

Uns seis zécutivos de bancos, mais adiante, lastreiam os tais recebíveis do banco, e os transformam em CDB, CDO, CCD, UTI, OVNI, SOS ou qualquer outro acrônimo financeiro que ninguém sabe exatamente o que quer dizer.

Esses adicionais instrumentos financeiros, alavancam o mercado de capitais e conduzem a operações estruturadas de derivativos, na BM&F, cujo lastro inicial todo mundo desconhece (as tais cadernetas do seu Biu).

Esses derivativos estão sendo negociados como se fossem títulos sérios, com fortes garantias reais, nos mercados de 73 países
.

Até que alguém descobre que os bêbados da Vila Carrapato não têm dinheiro para pagar as contas, e o Bar do seu Biu vai à falência. E toda a cadeia sifudeu !

Viu... é muito simples...!!!

sexta-feira, julho 11, 2008

Truques para abastecer

Assim que pode você tomar em sério os truques que a seguir lhes expõe para aproveitar ao máximo seu combustível e, portanto, seu dinheiro. Esperamos que lhe sejam proveitosos.

*1º.Truque: Encher o tanque pela manhã cedo. * A temperatura ambiente e do solo é mais baixa. Todas as estações de serviço têm seus depósitos debaixo terra. Ao estar mais fria a terra, a densidade da gasolina e do diesel é menor. O contrário se passa durante o dia, que a temperatura do solo sobe, e os combustíveis tendem a expandir-se. Por isto, se você enche o tanque ao meio-dia, pela tarde ou ao anoitecer, o litro de combustível não será um litro exactamente. Na indústria petrolífera a gravidade específica e a temperatura de um solo tem um papel muito importante. Onde eu trabalho, cada carregamento de combustível nos camiões é cuidadosamente controlada no que diz respeito à temperatura. Para que a cada galão vertido na cisterna do caminhão seja exacto.

*2º Truque: Quando encher o tanque, não aperte a pistola ao máximo. Segundo a pressão que se exerça sobre a pistola, a velocidade pode ser lenta, média ou alta. Prefira sempre o modo mais lento e poupará mais dinheiro. Ao surtir mais lentamente, cria-se menos vapor, e a maior parte do vertido converte-se num cheio eficaz. Todas as mangueiras surtidoras devolvem o vapor ao tanque. Se encherem o tanque apertando a pistola ao máximo uma verdadeira percentagem do precioso líquido que entra no depósito se transforma em vapor e volta pela mangueira do surtidor ao depósito da estação. Com o qual, conseguem menos combustível pelo mesmo dinheiro.

*3º. Truque: Encher o tanque antes que este baixe da metade. * Quanto mais combustível tenha no depósito, menos ar há no mesmo. O combustível se evapora mais rapidamente do que você pensa. Os grandes depósitos cisterna das refinarias têm tectos flutuantes no interior, mantendo o ar separado do combustível, com o objectivo de manter a evaporação ao mínimo.

*4º Truque: Não encher o tanque quando o posto estiver sendo reabastecido e nem imediatamente depois.* Se chegar ao posto de serviço e vê um camião cisterna que está repondo os tanques subterrâneos da mesma, ou os acaba de reabastecer, evite, se puder, abastecer em dita estação nesse momento. Ao reabastecer os tanques, remove-se o combustível restante nos mesmos e os sedimentos do fundo. Assim sendo você corre o risco de abastecer combustível sujo.

segunda-feira, julho 07, 2008

Truques para apresentações

Esta foi difícil de encontrar, gastei dois minutos inteirinhos. Portanto, não vá eu esquecer-me, aqui vai:

Já fez (ou faz) apresentações com Powerpoint ou OpenOffice (OpenOffice rula!) ?
Alguma vez desejou desligar o projector durante a apresentação?
Nesse momento, viu-se forçado a arrancar o cabo da porta VGA do computador?

Então este truque é para si!

1) Se desejar um ecrã preto pressione a tecla 'B'.
2) Caso prefira um ecrã branco prima a tecla 'W'.

Para voltar à apresentação, basta pressionar a mesma tecla novamente.


Caso nunca tenha desejado desligar o projector, talvez seja boa ideia ligar as luzes a meio e ver quantas pessoas estão a dormir. Ah, como bónus aqui vai outro truque:

3) Não desligar completamente as luzes durante a apresentação.

quinta-feira, agosto 17, 2006

Como fazer um planeta

Com certeza já estão a par dos problemas deste planeta: incêndios, inundações aquecimento global…

Pois bem aqui vai um guia para quem quer começar de novo:


Material:


- Enormes (quando eu digo enormes, quero dizer mesmo enormes) quantidades de entulho (sugiro uma nebulosa ou um campo de asteróides, de preferência metais como ferro e níquel)

- Uma nave espacial de colonização

- Um promotor de acreção da matéria (aconselho o uso de gravitrões – partículas com enorme massa e como tal com grande força de atracção gravitacional)

- Forma de enviar essa mesma partícula para o local exacto (eu pessoalmente escolhia um míssil interplanetário com detonação automática, para que expluda nas coordenadas pré determinadas

- Nave espacial (tipo cruzador ou maior, tem de ter motor de hiperspaço)

Procedimento


- Escolher o local para construir o planeta (ah deve ter pelo menos uma estrela para que se tenha energia, ou então criar uma, escolher cuidadosamente a posição do planeta relativamente à estrela.

- Montar o gravitrão dentro da ogiva do míssil interplanetário

- Pôr o míssil interplanetário na nave espacial (nota o míssil interplanetário so tem um alcance aproximado de 9 uA. (unidades astronómicas))

- Seguir com a nave espacial para uma distância segura do local pretendido, cuidado com o poço gravitacional, pois este pode impedir a nave de entrar no hiperespaço

- Disparar o míssil e detona-lo no local pretendido

- Esperar e observar o espectáculo

- Passados uns anos o planeta já deve estar pronto

- Terraforma-se o planeta, para que fique próprio para albergar vida, e seguidamente segue-se para lá com a nave de colonização.
Aconselha-se a desmanchar a nave para se obter matérias-primas para as primeiras construções.

eXTReMe Tracker