quarta-feira, 10 de dezembro de 2014

Instalação Cassandra no Linux CentOS


Baixar a versão mais nova do Cassandra


Neste momento a versão mais nova é:
http://www.apache.org/dyn/closer.cgi?path=/cassandra/2.0.2/apache-cassandra-2.0.2-bin.tar.gz

Comandos:

$ wget http://ftp.unicamp.br/pub/apache/cassandra/2.0.2/apache-cassandra-2.0.2-bin.tar.gz
$ tar -zxvf apache-cassandra-2.0.2-bin.tar.gz
$ sudo cp -r apache-cassandra-2.0.2 /usr/local
$ cd /usr/local/apache-cassandra-2.0.2/config

Abrir arquivo:

$ vim cassandra.yaml

verificar diretórios das variáveis dentro do arquivo:

-data_file_directories
-commitlog_directory
-saved_caches_directory

Criar então os diretórios correspondentes:

$ sudo mkdir -p /var/lib/cassandra/data
$ sudo mkdir -p /var/lib/cassandra/commitlog
$ sudo mkdir -p /var/lib/cassandra/saved_caches
$ sudo mkdir -p /var/log/cassandra

Dar as permissões para o usuário:

usuário atual:
$ sudo chown -R $USER:$GROUP /var/lib/cassandra
$ sudo chown -R $USER:$GROUP /var/log/cassandra

ou usuário específico:
$ sudo chown -R userx:user-groupx /var/log/cassandra/
$ sudo chown -R userx:user-groupx /var/lib/cassandra/

Para que o Cassandra aceite conexões de outros computadores modifique o arquivo:
/usr/local/apache-cassandra-2.0.2/conf/cassandra.yaml na variável rpc_address mudar de localhost para 0.0.0.0

Inicia ao cassandra em Foreground (para testarmos)
$ /usr/local/apache-cassandra-2.0.2/bin/cassandra -f

Inicia ao cassandra em Background
$ /usr/local/apache-cassandra-2.0.2/bin/cassandra

Para matar o processo:

$ pkill -f CassandraDaemon

Instalando e configurando PIP e PyCassa do Python


O python já está instalado no Linux. No caso do Cent OS provavelmente o PIP não estará instalado.

Para instalar execute:

$ easy_install pip

Na máquina de desenvolvimento (Windows) instalar primeiramente o Python 2.7 - Atenção para a versão
(Download e intalar http://www.python.org/getit/)

Abrir o CMD e executar

$ python --version

Se não encontrar o python.exe então deverá adiciona-lo no path do windows o caminho geralmente é
C:\Python27\

Depois disso, basta instalar o Setuptools e o PIP. Links abaixo:

Setuptools
http://www.lfd.uci.edu/~gohlke/pythonlibs/#setuptools

PIP
http://www.lfd.uci.edu/~gohlke/pythonlibs/#pip

Adicionar o caminho abaixo no path do Windows:
C:\Python27\Scripts

Configurar proxy para utilizar o PIP como instalador:

Caso esteja em uma empresa/lugar onde seja necessário configurar o proxy, execute o comando abaixo no Prompt do DOS trocando pelos dados corretos de configuração do proxy usuário e senha:

set HTTP_PROXY=http://username:password@proxyserver.domain.com
set HTTPS_PROXY=https://username:password@proxyserver.domain.com

Ou ainda,

set HTTP_PROXY=http://SeuUsuário:suaSenha@EndereçoIp:Porta
set HTTPS_PROXY=https://SeuUsuário:suaSenha@EndereçoIp:Porta

Intalar o PyCassa


$ pip install pycassa


Links adicionais:

Mais detalhes em:
http://pycassa.github.io/pycassa/installation.html

Exemplos de como utilizar o PyCassa
http://pycassa.github.io/pycassa/tutorial.html

Instalação Hadoop e Mahout no Linux CentOS

Baixar a versão mais nova do Hadoop


http://ftp.unicamp.br/pub/apache/hadoop/common/
Neste momento a versão mais nova está no link: http://ftp.unicamp.br/pub/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz

Comandos:

$ wget http://ftp.unicamp.br/pub/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz
$ tar -zxvf hadoop-1.2.1.tar.gz
$ sudo cp -r hadoop-1.2.1/ /usr/local

Instalar o Java SDK


No Linux CentOS podemos usar o yum. Na versão atual do Java SDK o

Comandos: 

$ yum install java-1.7.0-openjdk-devel
ou
$ yum install java-devel

Baixar a versão mais nova do Mahout

http://ftp.unicamp.br/pub/apache/mahout/
Neste momento: http://ftp.unicamp.br/pub/apache/mahout/0.8/mahout-distribution-0.8.tar.gz

Comandos:

$ wget http://ftp.unicamp.br/pub/apache/mahout/0.8/mahout-distribution-0.8.tar.gz
$ tar -zxvf mahout-distribution-0.8.tar.gz
$ sudo cp -r mahout-distribution-0.8/ /usr/local

Adicionar as linhas abaixo no Arquivo ~/.bachrc:

export HADOOP_PREFIX=/usr/local/hadoop-1.2.1
export PATH=$PATH:$HADOOP_PREFIX/bin
export MAHOUT_HOME=/usr/local/mahout-distribution-0.8
export PATH=$PATH:$MAHOUT_HOME
export JAVA_HOME=/usr/lib/jvm/java-1.6.0

Configurando o ssh para conexão de um servidor no outro sem pedir a senha:

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

Configurando o Cluster

No master:
/etc/hosts adicionar:
192.168.0.123  master
192.168.0.131  slave1
192.168.0.132  slave2

$HADOOP_HOME/conf/master adicionar:
master

$HADOOP_HOME/conf/slaves adicionar:
master
slave1

Em todas as máquinas:

conf/core-site.xml

<property>
<name>fs.default.name</name>
<value>hdfs://master:54310</value>
<description>The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation. The uri's scheme determines the config property (fs.SCHEME.impl) naming the FileSystem implementation class. The uri's authority is used to determine the host, port, etc. for a filesystem.</description>
</property>

conf/mapred-site.xml

<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
<description>The host and port that the MapReduce job tracker runs at. If "local", then jobs are run in-process as a single map and reduce task.
</description>
</property>

conf/hdfs-site.xml

Atenção: <value>2</value> abaixo refere-se a quantidade de nós disponíveis.

<property>
<name>dfs.replication</name>
<value>2</value>
<description>
Default block replication. The actual number of replications can be specified when the file is created. The default is used if replication is not specified in create time.
</description>
</property>

Logo depois executar

Comando:

$ start-all.sh

Links:

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/
http://www.higherpass.com/linux/Tutorials/Installing-And-Using-Hadoop/1/
http://wiki.apache.org/hadoop/PoweredBy

terça-feira, 27 de maio de 2014

GEM: Tutorial Rápido - Instando o Rails

Para saber o quê é Gem vá ao site Ruby Gems. Pra ficar claro a importância da coisa. O próprio Rails é uma Gem.

Tem o funcionamento muito parecido com o Homebrew ou ainda com o apt-get. Ou seja, a ideia é facilitar.

Antes de tudo, atualize-o. No terminal:

gem update --system

Depois disso instale o Bundler digitando:

gem install bundler

Hora de atualizar o rbenv. Se não sabe o que é, pare esse tutorial agora é leia esse e instale o rbenv antes de tudo isso aqui.

No terminal:

rbenv rehash

Instalando o Rails:

gem install rails --no-ri --no-rdoc

Atualize o rbenv:

rbenv rehash

Verifique a versão do Rails:

rails -v

Detalhes, no momento da instalação do Rails, pode-se escolher uma versão especifica, basta adicionar mais um argumento. Ex.:

gem install rails --no-ri --no-rdoc --version=4.0.0

Fácil! Seja Feliz!


segunda-feira, 26 de maio de 2014

RBENV: Tutorial Rápido

Esse tutorial considera o OSX. Neste caso, use Homebrew!

No terminal:

brew install rbenv

Depois:

brew install ruby-build 

Edite o .bash_profile e no final do arquivo adicione a seguinte linha:

eval "$(rbenv init -)"

Salve o arquivo, para que a nova configuração seja carregada, digite no terminal:

source ~/.bash_profile

Pronto. Vá no site do Ruby e procure a versão stable mais recente. Neste momento é a versão 2.1.2. Então no terminal:

rbenv install 2.1.2

Depois:

rbenv rehash 

Para alterar mudar de uma versão para outra utilizando o RBENV basta executar rbenv global [versão] para global existem outras opções; procure na documentação.  Então:

rbenv global 2.1.2

Para verificar a versão atual do Ruby:

ruby -v

Para listar as versões disponíveis:

rbenv versions

Agora você pode gerenciar qual a versão do Ruby será a principal e alternar de uma para outra utilizando o RBENV. Lembre-se de sempre executar o rbenv rehash sempre que instalar uma nova versão do Ruby ou uma nova Gem no ambiente selecionado.

Seja Feliz!

sábado, 24 de maio de 2014

Vagrant: Tutorial Rápido

Algumas notas sobre Vagrant utilizando o OSX
No terminal digite:

vagrant box add hellobits http://files.hellobits.com/vagrant/hellobits-trusty64-virtualbox.box

  • Instalar plugin vagrant-vbguest
No terminal digite:

vagrant plugin install vagrant-vbguest

  • Transformar o diretório do projeto em ambiente Vagrant
No terminal, vá ao diretório de seu projeto e digite:

vagrant init hellobits

Depois edite o arquivo Vagrantfile que foi criado adicionando a linha abaixo à função.

config.vm.network :forwarded_port, guest: 3000, host: 3000

Isso vai redirecionar a porta 3000 (Caso esteja brincando com o Rails)
  • Iniciar o novo ambiente (Iniciar a máquina)
No terminal digite:

vagrant up

  • Entrar no ambiente criado (Entrar na máquina)

vagrant ssh

Ao terminar estará dentro do ubuntu.

Caso ocorra o erro abaixo:

Talvez dê um erro no vagrant up. Algo como:
...Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was...
Neste caso, dê o comando:

vagrant ssh

Depois, já dentro do ubuntu execute:

sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions

Para sair do ubuntu execute   

Exit

logo depois:

vagrant reload

Depois disso deve estar tudo ok:

vagrant ssh

Tudo que criar na pasta que escolheu para ser a sua pasta de projeto será visto dentro do ubuntu se for modificado no ubuntu é modificado também no OSX.

Ou seja, está rodando um ubuntu dentro do OSX, e pode levantar quantas máquinas quiser. Se algo der errado basta dar um:

$ exit 
$ vagrant destroy
$ vagrant init hellobits
$ vagrant up
$ vagrant ssh

e começar tudo novamente, lembre-se de manter o seu projeto sempre em um repositório de controle de versão. (Github por exemplo)
  • Para dar um shutdown no vagrant?

vagrant halt

Bom trabalho e seja feliz.

domingo, 16 de setembro de 2012

MIME type, 1982

O padrão MIME types foi criado em 1982, caramba eu tinha quase 1 ano de idade. E olha essa citação:

"And by the way, when people would ask me, 'Why do you care so much about putting media into e-mail?' I always said because someday I'm going to have grandchildren and I want to get pictures of them by e-mail. And people's reaction was to laugh and laugh." Ned Freed

É por causa de gente assim, gente que não fica feliz com qualquer coisa. Que pega o problema pra resolver e resolve. Alias, neste caso é até "pior"! O problema nem existia. Em suma, esses visionários fazem toda a diferença no mundo.

Seja Feliz!

sábado, 15 de setembro de 2012

Por que, porque, porquê e por quê para programadores


Veja a grafia e como defini-la de acordo com uma possível substituição:

Por que -> Por qual motivo
porque -> pois
porquê -> motivo (é substantivo)
por quê -> Pergunta no final da frase ou um "Por quê?" isolado

Aplicação numa frase para programadores:


Por que devemos usar mercurial no lugar do git? Pergunto isso porque todas as pessoas dizem que git é mais legal. Sendo assim, eu gostaria de entender o porquê de usarmos mercurial. Alguém saberia me dizer por quê?

Substituindo como o esquema acima, essa frase poderia ser assim também:


Por qual motivo devemos usar mercurial no lugar do git? Pergunto isso pois todas as pessoas dizem que git é mais legal. Sendo assim, eu gostaria de entender o motivo de usarmos mercurial. Alguém saberia me dizer por quê?

Repare que no último "por quê?" eu nem mesmo substituí. Sempre no final de frases ou quando estiver isolado devemos usa-lo. A primeira vista nem encontrei substituto à altura.

Essa regra é tão óbvia! Não sei por que esqueço toda hora!

Seja feliz, encontre um porquê!

terça-feira, 4 de setembro de 2012

Brigando com o front-end

Quem me conhece sabe que não sou lá essas coisas no front-end. Mesmo assim, resolvi fazer uma compilação de links com coisas que andei lendo e ouvindo nos últimos dias. Vou focar no Frontend WEB. Afinal iOS e Android já estão em um outro patamar e ficam para um próximo post. Basicamente minhas referências foram: Grok podcast e o Tableless.

HTML 


  • Existe essa ferramenta bastante interessante mas que muitos odeiam, o Haml um tipo de gerador HTML mais utilizado no ASP, PHP, RUBY.

CSS 


  • Temos o SASS. A ideia dele é tornar a escrita de CSS mais simples e limpa. Na verdade é um primo do HAML.

Javascript 


  • Uma lista muito boa da Smashing Magazine.
  • Para BDD com Javascript vejam o Jasmine. Fiquei impressionado, muito legal. Testar Javascript parece até divertido com o Jasmine. :D
  • O script Retina.js é bem interessante. Ele analisa se o dispositivo no cliente possui tela Retina e procura uma imagem com o final do nome como @2x.png para exibir. Deem uma olhada no link.

Setup Inicial


Um Tweet do Tableless citou o setup inicial com os seguintes itens:

  • jQuery,
  • Chosen (plugin para select boxes, deixa-os muito mais bonitos e user-friendly),
  • Modernizr(Facilita a verificação de compatibilidade do browser com HTML5, CSS3),
  • IcoMoon(ícones + ícones),
  • font-face(Fontes! Quanto as fontes, eu sou uma negação, precisa-se de um conjunto de soft skills que ainda não possuo e olhe lá se vou possuir um dia! :D ),
  • 1140 grid (Dizem que não é só pra alinhar né? :D Brincadeira desiners! Não me arriscarei a explicar o lado psicológico de Grid, já falei enquanto eu não precisar de verdade essa não é a minha, mas é legal.) ,
  • Normalize(HTML5 alternativa para CSS resets, é usado em vários projetos grandes.)
Adiciono mais um que é bastante indicado em vários sites


Desempenho



Deixe seus links nos comentários e seja feliz.



domingo, 2 de setembro de 2012

Exibir Arquivos Ocultos no Finder - Mac OS X

Esse post é jogo rápido!
Se quiser exibir pastas e arquivos ocultos no Finder abra um terminal e digite:

defaults write com.apple.finder AppleShowAllFiles TRUE
killall Finder

Abra o Finder e verá tudo!

Ficou feio demais? Está vendo coisas que não devia? Ok Faça o contrário:

defaults write com.apple.finder AppleShowAllFiles FALSE
killall Finder

Seja Feliz!

LaTeX + ABNT no Mac OS X

Baseando-me na minha atual necessidade, TCC da Pós, resolvi escrever um post explicando como configurar o LaTeX no MAC OSX. Usar o MS Word pra isso obviamente é bem simples também. Mas com o LaTeX você separa formato do conteúdo. Assim como HTML e CSS, por exemplo. E bom, se chegou até aqui já sabe das vantagens do LaTeX.

Passo-a-passo

Baixar o "pequenino" MPKG para instalar o MacTex que atualmente é de 1,8GB(Putz).
Instalação já é padrão para usuários do Mac OSX e no Lion funcionou perfeitamente.

É bem possível que você queira utilizar o MacTex para gerar um texto dentro da ABNT. Neste caso o mais simples é instalar o ABNTEX. Baixe a ultima versão estável. Escolha o ZIP, descompacte e copie o conteúdo da pasta texmf para dentro do
/usr/local/texlive/[ano]/texmf/
a versão indicada aí acima vai gerar o caminho
/usr/local/texlive/2011/texmf/

PS.: Eu recomendo fazer uma cópia da pasta texmf antes de sobrescreve-la Vai que...Bom, entendeu né?

Abra um terminal e digite "sudo texhash" se estiver na configuração padrão do MAC OS ele vai te pedir a senha do usuário logado, informe-a.

Se você usa o Textmate basta selecionar o LaTeX como tipo, digitar o exemplo abaixo e depois executar o command + r e ele gerará o PDF para você. Se você ainda não tem um editor para LaTeX pode baixar o Texworks que também é muito bom para isso. Basta fazer o dowload da ultima versão estável, instalar(Copiar o .app para a pasta Applications), executa-lo e digitar o exemplo abaixo. Após a execução que é bem intuitiva você já vai ver o PDF gerado na janela ao lado.

Observações

Seguindo instruções do próprio site do ABNTEX ele pede para que seja instalado o setspace.sty. Ele controla o espaçamento entre as linhas. No meu caso o setspace.sty já estava no caminho correto e funcionando. O caminho é
/usr/local/texlive/2011/texmf-dist/tex/latex/setspace/
para as versões descritas acima. Porém se não estiver funcionando para você, basta fazer o download aqui e depois coloque na pasta indicada acima, ou na pasta do arquivo abnt.cls
/usr/local/texlive/2011/texmf/tex/latex/abntex
Recomendo executar novamente o
sudo texhash
e para o leitor mais entendido de MacTex, se descobrir a não necessidade por favor deixe um comentário. Alias, gostaria muito de ouvir comentários para que eu e outros leitores possamos aprender maneiras mais simples de fazer essa instalação.

Exemplo para testes:


\documentclass{abnt}
\author{Cleydson Silva de Andrade}
\usepackage[brazil]{babel}
\usepackage[utf8]{inputenc}
\begin{document}
\title{Um exemplo é de artigo em 5 minutos}
\maketitle

\section{Introdução}

Aqui vem a introdução que aparecerá no documento. O único problema aqui é falta de correção ortográfica que o Microsoft Word fornece. :P

\section{Motivação}
Posso escrever qualquer coisa.
Mas somente quando eu coloco.\\
barra barra invertidas aí sim eu tenho quebra de linhas.

\end{document}

Seja Feliz!

terça-feira, 26 de junho de 2012

HATEOAS, REST e Microsoft

Algumas definições antes de começar o texto:

HATEOAS - Hypermedia As The Engine Of Application State
REST - Representational state transfer

Vamos aos comentários, não basta criar uma URI bonitinha e utilizar os verbos do HTTP para ter REST. Também não estou falando que se você está utilizando URI bonitinha e os verbos do HTTP mas não está usando REST está fazendo tudo errado. Não mesmo. Só não está utilizando o estilo arquitetural REST.
Diga-se de passagem já existe um movimento para interrompermos o uso da sigla REST você pode ler mais sobre isso no blog do Steve Klabnik mais especificamente neste link REST is over. Ainda no blog do Steve Klabnik recomendo o post A Hypermedia API Reading List Ele faz uma lista dos livros que ele recomenda sobre o assunto e os que ele não recomenda, passsa por links que ele recomenda e eu indicarei um deles muitíssimo interessante, velho mas ainda não perdeu o seu valor How I Explained REST to My Wife e uma versão em português aqui.
Ainda nesse caminho, um post que me chamou a atenção foi a Microsoft tornando mais simples a construção de WEB APIs com o MVC 4. No post do Scott Guthrie ASP.NET Web API(Part 1) podemos ver isso, ainda não tenho certeza se está sendo feito da maneira "correta", mas a tendência é que num futuro não muito distante as Hypermedia APIs consigam ser o carro chefe da integração entre sistemas. Só não me falem por favor que substituirão os WEB Services com SOAP, meu amigo, os arquivos texto existem aos quilos por aí. E por AQUI então? (Arquivo é mato!) Nem comento.

No site ASP.NET Web API:
“ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework.”
Melhor fazer uma observação para evitar tochas e pichações desnecessárias, quando na citação extraída do site temos a palavra “ideal” o site está fazendo referência ao mundo Microsoft .Net.
WEB APIs não são novidade, Twitter e Facebook por exemplo usam isso o tempo todo. É um mundo gigante a ser explorado, pensado e pesquisado.

Seja Feliz

quarta-feira, 20 de junho de 2012

Vênus

Dia 05 de junho de 2012. Vi uma cena bastante inusitada. Uma galera reunida para ver a transmissão ao vivo de Vênus passando na frente do Sol. "Estávamos" todos ali na Praça da Liberdade e a projeção foi feita no prédio do Espaço do Conhecimento na Fachada Digital. Muito interessante ver aquele planetinha (pouca coisa menor que a Terra.) passando entre a terra e o Sol. Fiquei ali por 30min aproximadamente, mas foi muito legal ver o interesse do público por esse tipo de assunto. Sempre achei que documentários desse tipo nunca eram assistidos. Mas pelo jeito tem um público bem interessado ainda. 
Detalhe, Vênus só vai passar entre o Sol e a Terra fornecendo imagens semelhantes daqui a 105 anos. Ou seja,...
Vou deixar também um link com fotos lindas para vermos e refletirmos sobre o Universo. 

sexta-feira, 20 de abril de 2012

50 linguagens de programação mais usadas

TIOBE Programming Community Index é um índice bastante interessante e surpreendente. Neste link acima você encontra as 50 linguagens de programação mais usadas. Aqui você encontra a definição do índice.
Neste momento temos:
  • C e Java nas top 2.
  • Objective-C em 4º e crescendo desde meados de 2009.
  • C# em 5º.
  • VB em 7º.
  • Python em 8º.
  • Ruby em 11º.
  • VB.Net em 14º.
Tente vislumbrar um futuro analisando os gráficos e seja feliz.

Personal Kanban

Muito interessante a apresentação do André Faria sobre Personal Kanban.
Aplicar o já conhecido Kanban para sua vida. Recomendo que todos a vejam.
Personal Kanban

Seja Feliz!





Uma coisa de cada vez!

Um colega da Pós-Graduação indicou um artigo bastante interessante da InfoQ. "Achieving More By Doing One Thing at A Time". Sou obrigado a extrair o trecho abaixo de uma citação do Joel Spolsky:
"The trick here is that when you manage programmers, specifically, task switches take a really, really, really long time. That's because programming is the kind of task where you have to keep a lot of things in your head at once. The more things you remember at once, the more productive you are at programming. A programmer coding at full throttle is keeping zillions of things in their head at once: everything from names of variables, data structures, important APIs, the names of utility functions that they wrote and call a lot, even the name of the subdirectory where they store their source code."
Imagina! Comutar de um assunto para outro é complicado. Principalmente para programadores. Concordo plenamente com o Joel. Já me acostumei com a troca de contexto, mas mesmo assim atrapalha bastante. Com certeza seria muito mais produtivo se o foco fosse único.
Sei que você passa pelo mesmo problema, se não passa é um privilegiado, neste caso não precisaria desejar mas vou desejar... Seja feliz!

Roslyn

InfoQ Brasil está bombando. Depois deem uma lida, super rapidinho no artigo do Mestre Elemar Roslyn: o ‘Compilador como Serviço’ da Microsoft. Dá uma introdução ao Roslyn bem interessante e como disse, rápida.
O Roslyn infelizmente não está totalmente implementado, na verdade está bem no início. Mas já dá pra sentir o que virá pela frente.
Seja Feliz

quinta-feira, 19 de abril de 2012

Erro MS Excel em servidor Windows 2008


Problema:

Você está no Windows 2008 64bits e ao tentar abrir um arquivo Excel via .Net Framework recebe a seguinte mensagem:
“Microsoft Office Excel não pode acessar o arquivo”
“Microsoft Office Excel cannot access the file”
Pra ser mais preciso, geralmente ocorre ao executar o método:
Excel.Workbooks.Open()
Pode vir acompanhado de erros mais detalhados como por exemplo:
System.Runtime.InteropServices.COMException (0x800A03EC)

Historinha:

Vou considerar que você já resolveu os problemas de permissão utilizando o DCOMCNFG.EXE. Foi lá na aba Security deu permissão para os usuários do pool do IIS no Launch and Activation Permissions e de quebra no Access Permissions. Vamos considerar que isso é o básico e o erro grave mesmo é o acima citado.
Não vou nem citar que talvez você já tenha analisado a execução dos processos com o Process Monitor, ativado tracer, já é analista sênior de event viewer, talvez já gerou até um Dump do processo, não, no Dump talvez já teria matado o problema.
O que importa é que existe algum bug maldito que exige que criemos uma pasta no Windows apenas para que o Excel funcione perfeitamente no caso descrito acima.

Solução:

Em caso de Windows 2008 x64:
Crie a pasta C:\Windows\SysWOW64\config\systemprofile\Desktop
Em caso de Windows 2008 x86:
Crie a pasta C:\Windows\System32\config\systemprofile\Desktop
É sério, você não entendeu errado não, é só criar a pasta e testar.



sábado, 7 de abril de 2012

Você só quer ganhar dinheiro? Será?

Segundo Frederick Herzberg o que realmente nos motiva na vida não é o dinheiro.
Se temos:
  • Conquistas reconhecidas.
  • Oportunidade de aprender.
  • Assumir responsabilidades.
  • Possibilidade de ajudar outras pessoas.
  • Crescer de modo geral.
Segundo Frederick esses fatores nos motivam.
Pense nisso, procure mais a respeito e seja feliz.

quarta-feira, 14 de março de 2012