Mapeando unidades de rede do samba com fstab no Ubuntu 9.10

Existem várias formas de se mapear um compartilhamento samba via comando no ubuntu porém nada de mais prático se fosse automático não é mesmo? Vale aqui lembra-lo que este post tem o intuito de apenas ensinar a mapear unidades locais e não configurar o servidor samba, então, talvez dependendo da configuração do seu servidor, não irá funcionar como esperado.
Vá ao console e instale o smbfs e smbclient.
[shell]
sudo aptitude install smbfs smbfsclient
[/shell]
Feito isso, será necessário você criar seus diretórios que serão na verdade uma representação do diretório mapeado do seu servidor. Geralmente utiliza-se o diretório /mnt porém nada o impede de criar em outro lugar. Para o exemplo deste post simularemos que necessitamos mapear a o diretório instaladores do servidor.
Então criaremos o tal diretório localmente. Não precisa necessariamente ser o mesmo nome pois irá notar que será configurado os nomes dos mesmos.
[shell]
sudo mkdir /mnt/instaladores
sudo chmod 777 /mnt/instaladores #para garantir que todos usuários tenham acesso
[/shell]
Agora edite o arquivo fstab que se encontra em /etc/fstab
[shell]
sudo nano /etc/fstab
[/shell]
Adicione as seguintes linhas. Valendo lembrar que o ip do meu servidor seja o 192.168.0.1. Configure o arquivo de acordo com seus dados. Se tiver alguma dúvida, poste um comentário.
[shell]
//192.168.0.1/instaladores /mnt/instaladores cifs credentials=/etc/samba/user,noexec 0 0
[/shell]
Feito isso, note que existe uma referência ao arquivo “credencials” que é responsável por armazenar nosso usuário e senha do samba. Então crie o arquivo user no diretório /etc/samba.
[shell]
sudo nano /etc/samba/user
[/shell]
Informe o seu usuário e sua senha.
[shell]
username=seu_usuario
password=sua_senha
[/shell]
A partir de agora sempre que o computador for iniciado teremos nosso compartilhamento da rede montado em “/mnt/instaladores“. Para executar o mapeamento sem reiniciar, basta executar o seguinte comando:
[shell]
mount -a
[/shell]
É isso ai. Sei que nem sempre os posts nos ajudam 100% porém está aqui exatamente o que utilizamos aqui na nossa empresa. Abraços
Adriano Tadao
OI?!?
Ainda bem que, ultimamente, meus lapsos mentais de tempo tem ocorrido com menor intensidade e frequência.
Não fique assustado, se um dia isso acontecer com você. É mais “comun” do que se pensa; é mais real do que se deseja. Mas tudo bem, você pode viver com eles. Ouso dizer até, que há momentos em que você os procura, os deseja, como nas clássicas situações de vergonha alheia (se você não sabe o que é isso ou a profundidade que isso pode ter, sinta-se feliz, ok?).
Um dia você está lá, pronto para ter sua maior e melhor ideia, aquela que vai te transformar de um mero desconhecido para alguém de maior influência e relevância do mundo e de repente, não mais que de repente BOOM! Você se esquece. Tudo some e você fica lá, com aquela cara de quem não sabe nem mais seu nome.
Complicado? Não…
Você se recupera rápido. É tudo uma questão de prática, de costume. E já que o costume é soberano em tudo, o melhor modo de se aventurar é dar um passinho para trás e começar de novo. Como já foi muito bem dito aqui, dar um passo para trás é (muitas vezes) a melhor maneira de enxergar melhor aquilo que você tem na frente.
nayarac.
Inspiração
E alguém já pensou se o porco espinho tivesse outro nome?

A coisa mais impressionante e mágica que uma imagem pode fazer por você é te dar a capacidade de pensar diferente.
Vivemos em um mundo (off e online) onde as imagens comportam cada vez mais significados, signos, representações de um mundo, de uma verdade, de uma ideologia. Por isso que insisto: não dá pra separar o contexto histórico dessa análise. É como se tirássemos o grande THAN!! da coisa.
Juro que se você não soubesse o que é um porco espinho essa imagem não teria a menor graça. Aliás, se eu não soubesse, esse post nem estaria aqui.
E, para finalizar, a inevitável pergunta: e você, está consciente do contexto de sua imagem?
nayarac.
Imagem de: Oh Joy!: love this…, retirada de FFFFOUND!
Pormenores
Apesar de tudo o que acontece sempre e todo o tempo, o post de hoje vai na direção contrária. Isso porque nem toda correnteza é forte o suficiente para nos levar.
Assuntos e vontades temos de sobra. Acontece que a gente não acha muito legal sair por ai falando sobre tudo e todos; só quando nosso achismo fica bem guardado é que nos arriscamos a sobre algo que gostamos: isso evita um monte de coisas desnecessárias, podem acreditar.
Então, diante da presença do ausente, coloco aqui uma sugestão de (quem sabe) existir melhor, ao invés de colocar qualquer bobagem que possa saltar da minha cacholinha. Quem sabe assim, com essa simples percepção não seja mais fácil evitar desencontros mentais como o que eu relato aqui.
Colhendo frutos do Pomodoro, por cairo’sBLOG.
nayarac.
Ruby1.8 vs Ruby1.9
Muito já se falou[1] [2] sobre as vantagens da versão 1.9 em relação ao 1.8 do ruby, mas nós (como muitos de vocês que estão nos lendo) não estamos utilizando tal advento em produção, pois ela ainda apresenta algumas incompatibilidades com plugins que não conseguimos viver.
Como alguns devem saber, estou implementando para meu tcc um software que dentre outras coisas realiza o self-organizing-map, de Kohonen. Tal algoritmo não é tão complexo a nível de programação, mas como grande parte dos algoritmos de Inteligência Artificial, ele consome muito processamento.
Devido a isso, realizei diversas implementações (actionscript, ruby puro, ruby e c++) – em breve disponibilizarei – e o que realmente me chamou atenção foi quanto a performance da nova versão que nesse teste, foi quase 2x mais rápida:
Ruby 1.8:
[bash]script/performance/benchmarker 2 Train.test_rb
user system total real
#1 39.510000 7.040000 46.550000 ( 46.574937)
#1 41.900000 7.060000 48.960000 ( 49.245010)
#1 42.260000 7.020000 49.280000 ( 49.644825)
[/bash]
Ruby 1.9:
[bash]script/performance/benchmarker 2 Train.test_rb
user system total real
#1 28.100000 0.060000 28.160000 ( 28.193008)
#1 26.790000 0.100000 26.890000 ( 27.049028)
#1 27.150000 0.060000 27.210000 ( 27.616277)
[/bash]
É (ou já passou) a hora de mudar.
Sobre quase todas as coisas.
No último sábado, dia 07, aconteceu a edição 2009 do Imasters Intecon. E nós fomos lá conferir de pertinho tudo (ou quase) que rolou.
O evento foi super bacana e teve seus altos e baixos – como tudo quanto evento que existe. Não dá para dizer que foi impecável, porque não é da natureza humana que alguma coisa seja impecável. Eu achei uns pontos fracos, o Alexandre outros, o Adriano ainda outros e todo mundo que estava lá também faria um detalhezinho diferente. Então, vamos combinar que, de uma forma geral, foi bem organizado e que correu tudo bem também.
Só para constar (quem sabe a organização não está lendo isso também), os horários podiam ser seguidos, tanto em ordem de palestras quanto em tempo mesmo. Sei lá, talvez seja interessante pensar nisso. Afinal, você entra em um ambiente para ver tal palestrante e ele não está lá e também não existe informação de quando ele vai estar. E isso é bem chato.
Fora esse pormenor, sou da profunda opinião de que correu tudo bem.
Quando voltava da viagem, pensei em como escrever esse post sem colocar presunções, pré-opiniões, preferências e gostos pessoais. Mesmo porque o evento vale por si só, independente do que eu penso ou gosto nele. Me enriquece por certo motivos, enriquece o outro por outros motivos. Assim, cheguei a conclusão de colocar pequenos pensamentos que rolaram por lá, para que você aproveite o que foi dito de verdade e não o que eu disse sobre.
“Compartilhe seu trabalho, é a melhro forma de te conhecerem.” Fábio Sasso, fundador do Abduzeedo
“Redes são boas, mas nada substitui o cara a cara.” Leonardo Dias, CEO do TAXI.Labs
“O usuário aceita erros, só não aceita mentiras.” Marcelo Coutinho, Diretor do IBOPE Inteligência
“Tudo dá dinheiro, a questão é como você faz ele dar dinheiro”. Vivianne Vilelea, SEBRAE
“Vocês devem prestar atenção nisso que falo porque eu já errei e sei como é quebrar a cara.” Mário Nogueira, Sócio-fundador do Pagestacker
“Todo mundo precisa de acessibilidade.” Horácio Soares, Fundador do Acesso Digital
“Nenhum projeto decola logo que ele nasce. É preciso que você realmente se dedique nele e o faça voar.”
André Monteiro, Sócio-Fundador do Compra3 e Bruno Medeiros, Sócio-Fundador do Compra3
“Se é o trabalho que enaltece o homem, que pelo menos ele seja arte.” Gilberto Jr., Sócio-Fundador da Amanaiê
“Você não precisa de um palestrante especial, de um lugar específico nem mesmo de um tema para ter uma excelente troca de conhecimento. As pessoas precisam se enxergar e falar de suas experiências.” Matías Feldman, Coordenador do Crosstalent
“Você tem uma doença grave e o médico te dá duas opções: ou perder a perna direita ou a parte do seu cérebro responsável por identificar as músicas. Você pensa: nunca mais perna direita ou Banda Eva?!” Luli Radfahrer, Professor-Doutor da USP
Inspirem-se; é somente por isso que vale a pena.
nayarac.
Construtores
O pequeno post de hoje é para justificar toda essa economia de gestos que anda rolando por aqui.
“É que em terra de TCC o tempo não existe.” acervo pessoal
Ok que esse é um blog de assuntos mais profissionais que pessoais, mas essa pessoalidade que invariavelmente carregamos nos permite falar, por algumas vezes, de certo pormenores acadêmicos que passamos.
Tanto eu como o Alexandre estamos na reta final de nossas graduações. Não que isso seja fato admirável ou louvável, mas para quem está do lado de cá é sempre marcante. Ainda mais por querermos fazer desse término um novo começo: transformar esse pequeno fim em uma sólida base (mesmo que modesta) para os passos que sonhamos dar.
Sim, tudo é sonho – material ingrato e sem valor de mercado, mais peça de colecionador do que outra coisa e que ainda assim insistimos em ter. São esses sonhos que nos fazem dar, além da dignidade, os fins de semana, as noites, os amigos, as risadas, os pequenos momentos, enfim, tudo o que tivermos para um “textinho mais ou menos” que entregamos ao orientador.
(Não sou pessimista como pareço, apenas reconheço as grandes limitações que um graduando tem, que o sistema de ensino tem e tudo mais. Produzimos sim coisas boas, mas é inegável que o tempo dá uma qualidade melhor as produções. Sair da universidade produzindo como gênio é para poucos, acreditem.)
Assim, tanto profissional quanto pessoalmente, somos construtores do vir a ser. Porque são essas pequenas entregas que vão fazer você voar e sonhar mais alto. Eu sei que feriado é legal, que aproveitar a balada é legal também. Sei de tudo isso e concordo. Mas não abriria mão dos meus sonhos por nada disso. Construo o que quero, de maneira mais sólida ou mais frágil; depende de como eu escolho as bases.
Mas, como sempre digo na brincadeira, escolher uma coisa significa deixar de escolher outra. Por conta desse esforço em direção ao vácuo (não se esqueça: nada garante o sucesso, nem o fracasso) podemos perder saúde, família, amigos, amores. A linha que separa um construtor de um obcecado é fina e quase imperceptível. As vezes, é melhor seguir com a máxima do fundão: o importante é saber, no seu tempo. O sete passa, assim como o dez.
Dessa forma, registro somente aquilo que me cabe enquanto experiência: o esforço que te engrandece nunca é demais. Os resultados podem ser pequenos, mas a medida não é feita em números, quantidade de páginas ou ainda notas. Aquilo que você constrói é o que te sustenta depois.
Boa sorte para todos que, assim como nós, tentam construir um grande sonho, incluindo aqui o famigerado TCC.
nayarac.
PS: a primeira referência é para um poema de Vinícius de Morais, chamado O haver. O verso com a expressão é o seguinte:
“Resta essa imobilidade, essa economia de gestos
Essa inércia cada vez maior diante do Infinito
Essa gagueira infantil de quem quer balbuciar o inexprimível
Essa irredutível recusa à poesia não vivida.”
Leiam o texto todo, é belíssimo.
Populando banco de dados utilizando exemplares e faker
Ter dados para testes é fundamental para testar qualquer tipo de aplicativo entretanto, ficar populando banco de dados é um trabalho muito cansativo, sem contar que é muito chato. Pensando que este é o que se pode considerar um problema para qualquer desenvolvedor, este post lhe ajudará bastante.
Irei tratar do Faker. Para quem não o conhece, o mesmo é responsável por gerar dados fictícios sendo eles dados pessoais, empresariais, endereços enfim, muitas coisas. Garantindo assim uma grande praticidade.
O primeiro passo e óbvio é instalarmos o Faker.
[bash]
sudo gem install faker
[/bash]
Acessando a documentação, você poderá perceber a quantidade de coisas que ele é capaz de gerar. Faça um teste no console, abra-o e faça um require ‘faker’ e é só brincar.
Alguns exemplos
[bash]
#fazendo o require da gem
>> require ‘faker’
=> true
#Nomes
>> Faker::Name.name
=> "Arlo Moore"
#Sobrenomes
>> Faker::Name.last_name
=> "Stoltenberg"
#Cidades
>> Faker::Address.city
=> "Jerrellfort"
[/bash]
Chega de brincar e vamos a proposta do post: Gerar exemplares inteligentes.
Primeiramente, instale o plugin object_daddy para que possamos utilizar os exemplares. Pois, é com ele que utilizaremos o .generate na hora de popularmos o banco.
[bash]
script/plugin install git://github.com/flogic/object_daddy.git
[/bash]
Caso você utilize rspec, crie dentro da pasta spec uma pasta chamada exemplars e aqueles que não utilizam, crie dentro da pasta test.
Usuários rspec:

Não usuários rspec:

Agora dentro da pasta criada, você irá criando os exemplares de seus models. Por exemplo no meu caso tenho o model User. Então dentro desta pasta criarei um arquivo user_exemplar.rb. Em outras palavras é o nome do model seguido do sufixo ‘_exemplar.rb‘.

O exemplar inicialmente ficará assim:
[ruby]
class User
end
[/ruby]
Vamos ao que interessa! =)
Considera-se que minha classe de usuário possua os atributos: nome, sobrenome, nome da rua, número da casa e nome da cidade. Se fosse no modo convencional, ficaria assim:
[ruby]
class User
generator_for :name, “Adriano”
generator_for :sobrenome, “Tadao”
generator_for :street, “Rua Americana”
generator_for :number, “104”
generator_for :city, “Birigui”
end
[/ruby]
Mas como nos interessa um model inteligente capaz de gerar usuários de nomes diferentes isso ai não nos interessa! Ao invés de informarmos um valor estático, setaremos um método em seu lugar. Veja o exemplo:
[ruby]
class User
generator_for :name, :method=>:some_name
generator_for :surname, :method=>:some_surname
generator_for :street, :method=>:some_street
generator_for :number, :method=>:some_number
generator_for :city, :method=>:some_city
#Faremos com que os nomes sejam todos diferentes, para isso utilizaremos o while para garantir que não se repetirá
def self.some_name
begin
last_name = Faker::Name.name
end while User.find_by_name(last_name)!=nil
last_name
end
#Como o sobrenome não importa se irá repetir ou não, fica simples assim
def self.some_surname
Faker::Name.last_name
end
#Nome da rua que também poderá repetir
def self.some_street
Faker::Address.street_name
end
#O número da casa que este não utilizará o faker, apenas sorteará números de até três dígitos
def self.some_number
rand(999)
end
#O nome da cidade que também poderá ser repetido
def self.some_city
Faker::Address.city
end
end
[/ruby]
Ok! Nosso exemplar já está apto a popular nosso banco de dados. Veja como será o processo agora.
Abra o console (script/console) da aplicação em questão e faça o require do faker.
[bash]
>> require ‘faker’
=> []
#Gerar uma única vez
>> User.generate
=> #<User id: 3, name: "Camila Hamill", created_at: "2009-10-15 23:07:50", updated_at: "2009-10-15 23:07:50", surname: "Sauer", street: "Dixie Route", number: 152, city: "Yostfort">
#Gerar determinada quantidade de usuários.
>> 10.times{ User.generate }
=> 10
[/bash]
Para gerar determinada quantidade de vezes a sintax é a seguinte:
[bash]
[Quantidade].times{ [Model].generate }
[/bash]
Note no seu banco que está tudo lá gerado e salvo.
Abraços
Lançamento: Sinbi – Sindicato das Indústrias do Calçado e Vestuário de Birigui
Após de muito suor, orgulhosamente lançamos o site do sinbi
http://sindicato.org.br
A view do site foi desenvolvida em Flash, e a do painel administrativo em Flex. Por trás disso tudo, RubyOnRails.
Todas as 196 indústrias de Birigui tem acesso ao tal painel para atualizar suas informações, fotos, vagas de emprego, etc.
Veja o vídeo de lançamento

