Subversion: Solucionando o erro “Não foi possível abrir uma sessão ra_local para URL”

Boa tarde pessoal, tudo bem?

Hoje, no desenvolvimento de um projeto, tive um problema ao dar um commit no Subversion (SVN).

Após muito pesquisar no Google, sem alguma solução definitiva e funcional, resolvi fazer um backup do projeto para testar algumas hipóteses que havia imaginado, e, felizmente, cheguei a tão simples e esperada fórmula para resolução:

1º passo: Antes de qualquer coisa, faça um backup do seu projeto;

2º passo: No final da última linha do erro, ele mostra um diretório. Copie seu caminho! No meu caso é /media/Arquivos/Subversion/Projeto, pois no meu erro:

svn: Não foi possível abrir uma sessão ra_local para URL
svn: Não foi possível abrir o repositório ‘file:///media/Arquivos/Subversion/Projeto

3º passo: Remova a pasta .svn de dentro desse diretório. Ou seja, via terminal acesse a pasta que apareceu no erro e apague a pasta oculta .svn. No meu caso:

cd /media/Arquivos/Subversion/Projeto
rm -rf .svn

Obs: Também é possível fazê-lo via modo gráfico, mas não vejo necessidade de mostrá-lo, pois dificilmente um usuário comum irá usar um repositório SVN, hehe.

E pronto! Só dar um commit e poderá notar que o problema estará resolvido (ao menos espero)!

Um abraço,

-Tiago Hillebrandt

Ativando o notificador (notify-osd) do Ubuntu no Audacious

Buenas galera!

Conforme solicitado pelo Heylouiz, estou disponibilizando um procedimento para configurar o notificador padrão do Ubuntu (notify-osd) no Audacious.

Primeiramente, baixe o script Python no link abaixo, sendo este necessário para envio da notificação.

http://www.hesistemas.com.br/python/enviar-notify.zip

Após baixar, salve e extraia o conteúdo do arquivo para sua Pasta Pessoal.

Agora no Audacious, clique com o direito e escolha a opção Preferências. Na janela que abriu, clique no item Plugins do menu à esquerda e vá na aba Geral. Por fim, ative o plugin Song Change.

E finalmente, escolha o novo item do menu à esquerda: Song Change.

No campo “Command to run when Audacious starts a new song” preencha o seguinte valor:

~/enviar-notify.py “%n” “Audacious”

E pronto, clique em Fechar. Seu notificador estará funcionando!

Exemplo de notificação enviada pelo script

Exemplo de notificação enviada pelo script

Um abraço,

-Tiago Hillebrandt

Webcam e wireless do notebook Philco PHN 14103 no Windows XP

Bom dia galera!

Todos sabem que sou fanático por Linux, mas hoje estou publicando um post para auxiliar na instalação da webcam e da placa wireless no notebook Philco PHN 14103 no Windows XP, pois essa semana formatei um e tive bastante dificuldades até encontrar a “bendita” solução.

O problema dele é o seguinte, após a instalação do XP ele não reconhece nem a webcam nem a placa wireless no Gerenciador de Dispositivos. É como se o dispositivo não existisse. A solução é quase inacreditável de tão simples: pressionar Fn+F11 para ativar a webcam e Fn+F10 para ativar a rede wireless. Só isso!

Já o problema de reconhecer somente 3 dos 4GB  de memória no XP, acredito que seja uma limitação do próprio sistema operacional (pra variar).

Espero ter ajudado, pois por mais que seja simples, me gerou uma bela de uma dor de cabeça, hehe.

Um abraço e até a próxima!

Atualização
Os drivers de placa de vídeo para o Linux, testados mais especificamente no Ubuntu 9.04 Jaunty Jackalope 32 bits, estão disponíveis nos links abaixo:

http://ncc-1701a.homelinux.net/~linux-sis/downloads/sisctrl_0.0.20051202-1_i386.deb
http://ncc-1701a.homelinux.net/~linux-sis/downloads/xorg-driver-sis671_0.9_i386.deb

Sugestão de Nome para Firewall no Ubuntu

Buenas galera!

Hoje estou elaborando um post diferente! Estou desenvolvendo uma interface gráfica para o iptables, pois hoje todas disponíveis para GNOME são simples e, por exemplo, o Firestarter não apresenta a possibilidade de escolher em qual protocolo determinada porta deverá ser aberta/fechada.

Firewall

Firewall

Contudo, a interface gráfica é muito parecida com a do FireStarter, como pode-se ver acima, porém está sendo desenvolvida do zero utilizando a linguagem Python.

Preciso de um nome para o software. Portanto, quem tiver sugestões favor postar nos comentários!

Até mais pessoal!

GCJ Beta 2008 – Triangle Trilemma

Buenas galera!

Segue a resolução de mais um problema do Google Code Jam 2008!

#!/usr/bin/python
#
# Google Code Jam 2008 – GCJ Beta 2008 – Triangle Trilemma – Large Input
# Copyright (C) 2009 Tiago Hillebrandt <tiagohillebrandt@gmail.com>
#

import
os

f = open(“A-large-practice.in”)

def integer():
s = f.readline()
s = s.strip()
s = int(s)
return s

def array():
s = f.readline()
s = s.strip()
s = s.split()

for i in range(len(s)):
s[i] = int(s[i])

return s

def angleType(a, b, c):
if ((a == b + c) or (b == c + a) or (c == a + b)):
return ” right”
else:
if ((a > b + c) or (b > a + c) or (c > a + b)):
return ” obtuse”
else:
return ” acute”

def triangleTrilemma():
for i in range(integer()):
coords = array()

x1 = coords[0]
y1 = coords[1]
x2 = coords[2]
y2 = coords[3]
x3 = coords[4]
y3 = coords[5]

if ((x1 – x2) * (y1 – y3) == (x1 – x3) * (y1 – y2)):
triangle = “not a”
else:
a = (x1 – x2) ** 2 + (y1 – y2) ** 2
b = (x1 – x3) ** 2 + (y1 – y3) ** 2
c = (x3 – x2) ** 2 + (y3 – y2) ** 2

if ((a == b) or (b == c) or (c == a)):
triangle = “isosceles” + angleType(a, b, c)
else:
triangle = “scalene” + angleType(a, b, c)

print “Case #” + str(i + 1) + “: “ + triangle + ” triangle”

if __name__ == ‘__main__’:
triangleTrilemma()

E novamente, quem quiser baixar, clique aqui.

Um abraço e até a próxima.

Round 1A – Minimum Scalar Product

Buenas pessoal!

A partir de hoje vou postar, aos poucos e conforme for conseguindo resolver, a resposta de vários desafios apresentados no Google Code Jam 2008, com o objetivo de estudar para o desafio que ocorrerá este ano.

Esta resolução, em Python, funciona para o produto escalar mínimo com a entrada pequena (small), assim como para a grande (large), bastando apenas renomear o arquivo aberto na segunda linha para alternar entre as entradas.

#!/usr/bin/python
#
# Google Code Jam 2008 – Round 1A
# Minimum Scalar Product – Large Input
#
# Copyright (c) 2009 Tiago Hillebrandt <tiagohillebrandt@gmail.com>
#

import os

f = open(“A-large-practice.in”)

def integer():
s = f.readline()
s = s.strip()
s = int(s)
return s

def coordinates():
s = f.readline()
s = s.strip() # remove blank spaces

s = s.split() # convert to array
for
i in range(len(s)):

s[i] = int(s[i])
return
s

def minimumScalarProduct():
for i in range(integer()):
integer() # read only to ignore it

x = coordinates()
y = coordinates()

x.sort()
y.sort()
y.reverse()

result = 0

for j in range(len(x)):
result += x[j] * y[j]

print “Case #” + str(i + 1) + “: “ + str(result)

if __name__ == ‘__main__’:
minimumScalarProduct()

Se preferir, você pode baixar o código-fonte e a entrada grande diretamente aqui.

Um abraço e até mais.

Enviando uma notificação para o notificador (notify-osd) do Jaunty

Olá pessoal, tudo bem?

Hoje estou publicando um script implementado em Python que permite enviar uma notificação para o notify-osd do Jaunty! No meu caso, integrei o script com o plugin Song Change, do Audacious, para exibir uma notificação com o nome da música e o artista, como mostra a imagem abaixo.

Exemplo de notificação enviada pelo script

Exemplo de notificação enviada pelo script

enviar-notify.py

#!/usr/bin/python
try:
import gtk
import pygtk
import os
import os.path
import pynotify
import sys
pygtk.require(‘2.0′)
except:
print “Erro: necessarios python-notify, python-gtk2 e gtk”
if __name__ == ‘__main__’:
if not pynotify.init(“notificacao”):
sys.exit(1)

n = pynotify.Notification(sys.argv[1], sys.argv[2], “/usr/share/icons/Human/scalable/status/dialog-info.svg”)
n.set_timeout(5000) # 5 segundos

if not n.show():
print “Falhou ao enviar notificacao”

sys.exit(1)

Modo de uso:

$ chmod +x enviar-notify.py
$ ./enviar-notify.py “Titulo” “Seu Texto”

É isso então pessoal!

Se preferir, baixe o script completo neste link.

Um abraço e até mais ver.

Ativando o Notificador de Atualizações no Jaunty

Buenas galera!

Como vocês devem ter notado, no Ubuntu Jaunty o ícone do notificador de atualizações (update-manager) não está disponível na barra de tarefas (área de notificação).

No meu ponto de vista desabilitá-lo trata-se de um regresso, afinal para um usuário nada mais útil do que um aviso, na interface gráfica, de que há atualizações disponíveis para o seu computador!

Se você  deseja ativá-lo, é só abrir o Terminal (Aplicativos > Acessórios > Terminal) e digitar:

$ gconftool -s –type bool /apps/update-notifier/auto_launch false

Agora basta reiniciar seu computador e pronto, seu notificador de atualizações está ativo e funcional, como no Intrepid!

Ícone do Gerenciador de Atualizações na Área de Notificações

Ícone do Gerenciador de Atualizações na Área de Notificações

Valeu galera, até mais!

Próxima Página »