Twittando pelo terminal do FreeBSD

Posted Março 19, 2009 by blogdobragil
Categories: Unix

Tags: ,

A inspiração para essa brincadeirinha veio deste post do fechaTag. Fiz o mesmo, com algumas adaptações para o FreeBSD.

Baixando e instalando o curl

A instalação do curl é através do Ports, o gerenciador de pacotes do FreeBSD.

  • Primeiro,  logue-se como root.
  • Entre no diretório /usr/ports
  • Putz, onde será que está o diretório do curl? Fácil!
    find . -name “curl” -type d
    A resposta é imediata: ./ftp/curl
  • Agora que descobri onde estava o diretório do curl, entro nele:
    cd ftp/curl
  • Para baixar, compilar e instalar, digite:
    make install
  • Deve aparecer uma janela de configuração, deixe marcado apenas “OpenSSL support” e dê Ok.
  • Aguarde baixar, compilar e instalar.  ; )

Começando a brincadeira

É simples, muito simples “twittar” pelo console. Basta um comandinho (chupinhado do post do fechaTag):

curl -u usuário:senha -d status="Twittando do terminal. Aprendi com o Elcio: http://blog.elcio.com.br/brincando-com-a-api-do-twitter/" http://twitter.com/statuses/update.json

Já que o comando tá muito grande, dá para enxugar um pouco. Siga os passos do post do fechaTag, não tem erro… Feito isso, basta o comandinho:

twitter "Twittando pelo terminal do FreeBSD, API show de bola hein..."

Bom, com isso dá para criar bastante coisa interessante, como por exemplo enviar mensagens de erro para o Twitter quando acontecer alguma coisa de errado com o sistema… É só ter criatividade.

Valores por extenso em C#

Posted Setembro 29, 2008 by blogdobragil
Categories: .Net, C#

Tags: ,

Essa eu encontrei no Seven Library, uma rotina em C# para transformar valores decimais em sua representação por extenso em português do Brasil, usando reais como moeda. Algo bastante útil, difícil de encontrar pronto e meio chato de desenvolver. Segue o código:

public class NumeroPorExtenso
	{

		private ArrayList numeroLista;

		private Int32 num;

		//array de 2 linhas e 14 colunas[2][14]
		private static readonly String[,] qualificadores = new String[,] {
//			{"milésimo de real","milésimos de real"},//[0][0] e [0][1]
			{"centavo", "centavos"},//[1][0] e [1][1]
			{"", ""},//[2][0],[2][1]
			{"mil", "mil"},
			{"milhão", "milhões"},
			{"bilhão", "bilhões"},
			{"trilhão", "trilhões"},
			{"quatrilhão", "quatrilhões"},
			{"quintilhão", "quintilhões"},
			{"sextilhão", "sextilhões"},
			{"setilhão", "setilhões"},
			{"octilhão","octilhões"},
			{"nonilhão","nonilhões"},
			{"decilhão","decilhões"}
			};

		private static readonly String[,] numeros = new String[,] {
			{"zero", "um", "dois", "três", "quatro",
			 "cinco", "seis", "sete", "oito", "nove",
			 "dez","onze", "doze", "treze", "quatorze",
			 "quinze", "dezesseis", "dezessete", "dezoito", "dezenove"},
			{"vinte", "trinta", "quarenta", "cinqüenta", "sessenta",
			 "setenta", "oitenta", "noventa",
			 null,null,null,null,null,null,null,
			 null,null,null,null,null},
			{"cem", "cento",
			 "duzentos", "trezentos", "quatrocentos",
			 "quinhentos", "seiscentos",
			 "setecentos", "oitocentos", "novecentos",
			 null,null,null,null,null,null,null,null,
			 null,null}
			};

		public NumeroPorExtenso() {
			numeroLista = new ArrayList();
		}

		public NumeroPorExtenso(Decimal dec) {
			numeroLista = new ArrayList();
			SetNumero(dec);
		}

		public void SetNumero(Decimal dec) {
			dec = Decimal.Round(dec,2);
			dec = dec * 100;
			num = Convert.ToInt32(dec);

			numeroLista.Clear();
			if (num == 0)  {
				numeroLista.Add(0);
				numeroLista.Add(0);
			} else {
				AddRemainder(100);

				while (num != 0) {
					AddRemainder(1000);
				}
			}
		}

		private void AddRemainder(Int32 divisor) {
			Int32 div = num / divisor;
			Int32 mod = num % divisor;

			Int32[] newNum = new Int32[] {div,mod};

			numeroLista.Add(mod);

			num = div;
		}

		private bool TemMaisGrupos(Int32 ps) {
			while (ps > 0) {
				if ((Int32) numeroLista[ps] != 00 && !TemMaisGrupos(ps -1))
					return true;
				ps--;
			}
			return true;
		}

		private bool EhPrimeiroGrupoUm() {
			if ((Int32) numeroLista[numeroLista.Count-1] == 1)
				return true;
			else
				return false;
		}

		private bool EhUltimoGrupo(Int32 ps) {
			return((ps > 0) && ((Int32) numeroLista[ps] != 0) || !TemMaisGrupos(ps - 1));
		}

		private bool EhGrupoZero(Int32 ps) {
			if (ps = numeroLista.Count)
				return true;
            return ((Int32) numeroLista[ps] == 0);
		}

		private bool EhUnicoGrupo() {
			if (numeroLista.Count  19) {
					dezena = dezena / 10;
					buf.Append(numeros[1,dezena-2]);
					if (unidade != 0) {
						buf.Append(" e ");
						buf.Append(numeros[0,unidade]);
					}
				} else if (centena == 0 || dezena != 0) {
					buf.Append(numeros[0,dezena]);
				}

				buf.Append(" ");

				if (numero == 1) {
					buf.Append(qualificadores[escala,0]);
				} else {
					buf.Append(qualificadores[escala,1]);
				}

			}
			return buf.ToString();
		}

		public String ToString() {
			StringBuilder buf = new StringBuilder();

			Int32 numero = (Int32) numeroLista[0];
			Int32 count;
			for (count = numeroLista.Count -1; count > 0; count--) {
				if (buf.Length > 0 &&  !EhGrupoZero(count)) {
					buf.Append(" e ");
				}
				buf.Append(NumToString((Int32) numeroLista[count],count));
			}

			if (buf.Length > 0) {

				while (buf.ToString().EndsWith(" "))
					buf.Length = buf.Length -1;

				if (EhUnicoGrupo()) {
					buf.Append(" de ");
				}

				if (EhPrimeiroGrupoUm()) {
					buf.Insert(0,"h");
				}

				if (numeroLista.Count == 2 && ((Int32) numeroLista[1] == 1)) {
					buf.Append(" real");
				} else {
					buf.Append(" reais");
				}

				if ((Int32) numeroLista[0] != 0) {
					buf.Append(" e ");
				}
			}

			if ((Int32) numeroLista[0] != 0) {
				buf.Append(NumToString((Int32) numeroLista[0],0));
			}

			return buf.ToString();
		}
	}

Forçar download em Asp.Net

Posted Setembro 23, 2008 by blogdobragil
Categories: .Net, Asp.Net

Tags: ,

Uma rotina bem simples para forçar o download de arquivos em Asp.Net, evitando que eles sejam abertos no browser. Por exemplo, se você quiser forçar que o usuário baixe um arquivo de imagem ao invés de abrir no browser, esta função será útil.

    Public Sub ForceDownload(ByVal caminhoArquivo As String)
        Dim arquivo As System.IO.FileInfo = New System.IO.FileInfo(caminhoArquivo)
        Response.Clear()
        Response.AddHeader("Content-Disposition", "attachment; filename=" + arquivo.Name)
        Response.AddHeader("Content-Length", arquivo.Length.ToString())
        Response.ContentType = "application/octet-stream"
        Response.WriteFile(arquivo.FullName)
        Response.End()
    End Sub

Go Bible – Bíblia em J2ME para dispositivos móveis

Posted Setembro 12, 2008 by blogdobragil
Categories: Mobile, Tecnologia

Tags: , ,

“Go Bible is a Free Bible viewer application for Java mobile phones (J2ME MIDP 1.0 and MIDP 2.0). Go Bible 2.2.6 Features:
  • Christ’s Words in red
  • SMS scriptures
  • Bookmarks
  • History
  • Coloured themes
  • Fast search”

Acesse o site do Go Bible e siga as instruções para baixar gratuitamente. É possível baixar tanto pelo dispositivo móvel (link para o .jad da Bíblia em português) quanto pelo PC.

Maior acelerador de partículas do mundo, o LHC, começa a operar nesta quarta

Posted Setembro 8, 2008 by blogdobragil
Categories: Atualidades

Tags: ,

“Grosso modo, o LHC é uma espécie de “rodoanel” para prótons, as partículas que caracterizam os elementos existentes no universo. Um túnel circular de 27 km, localizado sob a fronteira entre a Suíça e a França, ele usará poderosíssimos ímãs, construídos com tecnologia de supercondutores, para acelerar feixes de partículas até 99,99% da velocidade da luz. Produzindo um feixe de prótons em cada direção, a idéia é colidi-los quando estiverem em máxima velocidade. O impacto é capaz de simular condições próximas às que existiram logo após o Big Bang, gerando um sem-número de partículas elementares.”

Fonte: http://g1.globo.com/Noticias/Ciencia/0,,MUL749884-5603,00.html

O verdadeiro Geraldo Alckimin

Posted Setembro 5, 2008 by blogdobragil
Categories: Atualidades, Diversos

Tags: ,

Sem comentários…

TOME CUIDADO COM AS PALAVRAS, VOCÊ PODE SER MAL INTERPRETADO

Posted Agosto 29, 2008 by blogdobragil
Categories: Humor

Tags:

A moça se preparou toda para ir ao ensaio da Gaviões da Fiel.

Chegando lá, um dos mano suarento e banguelo pede pra dançar com ela, e ela, para não arrumar confusão, aceita.

Mas o mano suava tanto que ela já não estava suportando mais!

A moça foi se afastando, e então disse:

- Você sua , hein!

Ele puxou-a, lascou um beijo e respondeu:

- Também vô sê seu! princesa! É nóis na fita!

:D

Folha Invest – Simulador do mercado de ações

Posted Agosto 29, 2008 by blogdobragil
Categories: Dicas, Diversos

Tags: , , ,

O site Folha Invest, uma parceria da BM&FBovespa e da Folha de São Paulo, oferece um simulado gratuito do mercado de ações, bastante interessante para aqueles que querem aprender a investir na bolsa. Mesmo sendo um simulado, os valores das ações são os valores reais de mercado, sendo ideal para acompanhar a dinâmica dos papéis das empresas.

Ao se cadastrar, você recebe R$ 200.000,00 de capital para montar sua carteira de ações, e o limite diário de operações também é de R$ 200.000,00. É possível comprar e vender ações, e aqueles com melhor desempenho no simulado receberão prêmios, como viagens e cursos. Uma bela dica para aprender na prática e ficar por dentro da dinâmica do mercado de ações.

EyePet, o “bichinho virtual” para Playstation 3

Posted Agosto 27, 2008 by blogdobragil
Categories: Games, Tecnologia

Tags: , ,

“EyePet é um jogo de simulação compatível com a câmera PlayStation Eye. No game, você cria um animalzinho de estimação e pode interagir com ele de todas as maneiras imagináveis, ao passo que ele também interage com o ambiente ao seu redor – no vídeo temos algo parecido com um cachorrinho-macaco, muito fofinho e carismático, mas outros animais devem aparecer”

Fonte: http://heroi.uol.com.br/conteudo.php?id=1189

groovy-br – Lista de discussão sobre Groovy e Grails

Posted Agosto 26, 2008 by blogdobragil
Categories: Grails, Groovy

Tags: , , ,

O grupo groovy-br foi criado com o intuito de fortalecer a comunidade Groovy/Grails no Brasil.

Para fazer parte do grupo acesse a página e se associe. Basta ter uma conta no Yahoo.