tag:blogger.com,1999:blog-62246881648920819852024-02-19T01:56:50.525-03:00MetamorfuzzyCleydson Silva de AndradeUnknownnoreply@blogger.comBlogger33125tag:blogger.com,1999:blog-6224688164892081985.post-73789656955680404002014-12-10T23:26:00.002-02:002014-12-10T23:26:48.073-02:00Instalação Cassandra no Linux CentOS<br />
<h3>
Baixar a versão mais nova do Cassandra</h3>
<div>
<br />
Neste momento a versão mais nova é:</div>
http://www.apache.org/dyn/closer.cgi?path=/cassandra/2.0.2/apache-cassandra-2.0.2-bin.tar.gz<br />
<h4>
</h4>
<b>Comandos:</b><br />
<br />
$ wget http://ftp.unicamp.br/pub/apache/cassandra/2.0.2/apache-cassandra-2.0.2-bin.tar.gz<br />
$ tar -zxvf apache-cassandra-2.0.2-bin.tar.gz<br />
$ sudo cp -r apache-cassandra-2.0.2 /usr/local<br />
$ cd /usr/local/apache-cassandra-2.0.2/config<br />
<br />
Abrir arquivo:<br />
<br />
$ vim cassandra.yaml<br />
<br />
verificar diretórios das variáveis dentro do arquivo:<br />
<br />
-data_file_directories<br />
-commitlog_directory<br />
-saved_caches_directory<br />
<br />
Criar então os diretórios correspondentes:<br />
<br />
$ sudo mkdir -p /var/lib/cassandra/data<br />
$ sudo mkdir -p /var/lib/cassandra/commitlog<br />
$ sudo mkdir -p /var/lib/cassandra/saved_caches<br />
$ sudo mkdir -p /var/log/cassandra<br />
<br />
Dar as permissões para o usuário:<br />
<br />
usuário atual:<br />
$ sudo chown -R $USER:$GROUP /var/lib/cassandra<br />
$ sudo chown -R $USER:$GROUP /var/log/cassandra<br />
<br />
ou usuário específico:<br />
$ sudo chown -R userx:user-groupx /var/log/cassandra/<br />
$ sudo chown -R userx:user-groupx /var/lib/cassandra/<br />
<br />
Para que o Cassandra aceite conexões de outros computadores modifique o arquivo:<br />
<b>/usr/local/apache-cassandra-2.0.2/conf/cassandra.yaml </b>na variável <b>rpc_address</b> mudar de <b>localhost </b>para <b>0.0.0.0</b><br />
<br />
Inicia ao cassandra em Foreground (para testarmos)<br />
$ /usr/local/apache-cassandra-2.0.2/bin/cassandra -f<br />
<br />
Inicia ao cassandra em Background<br />
$ /usr/local/apache-cassandra-2.0.2/bin/cassandra<br />
<br />
Para matar o processo:<br />
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
$ pkill -f CassandraDaemon</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-52556402818487566792014-12-10T23:23:00.000-02:002014-12-10T23:23:35.041-02:00Instalando e configurando PIP e PyCassa do Python <br />
O python já está instalado no Linux. No caso do Cent OS provavelmente o PIP não estará instalado.<br />
<br />
Para instalar execute:<br />
<br />
$ easy_install pip<br />
<br />
Na máquina de desenvolvimento (Windows) instalar primeiramente o Python 2.7 - Atenção para a versão<br />
(Download e intalar http://www.python.org/getit/)<br />
<br />
Abrir o CMD e executar<br />
<br />
$ python --version<br />
<br />
Se não encontrar o python.exe então deverá adiciona-lo no path do windows o caminho geralmente é<br />
C:\Python27\<br />
<br />
Depois disso, basta instalar o Setuptools e o PIP. Links abaixo:<br />
<br />
Setuptools<br />
http://www.lfd.uci.edu/~gohlke/pythonlibs/#setuptools<br />
<br />
PIP<br />
http://www.lfd.uci.edu/~gohlke/pythonlibs/#pip<br />
<br />
Adicionar o caminho abaixo no path do Windows:<br />
C:\Python27\Scripts<br />
<br />
<h3>
Configurar proxy para utilizar o PIP como instalador:</h3>
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:<br />
<br />
set HTTP_PROXY=http://username:password@proxyserver.domain.com<br />
set HTTPS_PROXY=https://username:password@proxyserver.domain.com<br />
<br />
Ou ainda,<br />
<br />
set HTTP_PROXY=http://SeuUsuário:suaSenha@EndereçoIp:Porta<br />
set HTTPS_PROXY=https://SeuUsuário:suaSenha@EndereçoIp:Porta<br />
<br />
<h3>
Intalar o PyCassa</h3>
<br />
$ pip install pycassa<br />
<br />
<br />
<h3>
Links adicionais:</h3>
Mais detalhes em:<br />
http://pycassa.github.io/pycassa/installation.html<br />
<br />
Exemplos de como utilizar o PyCassa<br />
http://pycassa.github.io/pycassa/tutorial.html<br />
<div>
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-13030088588110699872014-12-10T23:17:00.000-02:002014-12-10T23:24:40.015-02:00Instalação Hadoop e Mahout no Linux CentOS<div>
<h3>
Baixar a versão mais nova do Hadoop</h3>
<br />
http://ftp.unicamp.br/pub/apache/hadoop/common/<br />
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<br />
<h4>
Comandos:</h4>
$ wget http://ftp.unicamp.br/pub/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz<br />
$ tar -zxvf hadoop-1.2.1.tar.gz<br />
$ sudo cp -r hadoop-1.2.1/ /usr/local<br />
<br />
<h3>
Instalar o Java SDK</h3>
<br />
No Linux CentOS podemos usar o yum. Na versão atual do Java SDK o<br />
<h4>
Comandos: </h4>
$ yum install java-1.7.0-openjdk-devel<br />
ou<br />
$ yum install java-devel<br />
<br />
<h3>
Baixar a versão mais nova do Mahout</h3>
http://ftp.unicamp.br/pub/apache/mahout/<br />
Neste momento: http://ftp.unicamp.br/pub/apache/mahout/0.8/mahout-distribution-0.8.tar.gz<br />
<h4>
Comandos:</h4>
$ wget http://ftp.unicamp.br/pub/apache/mahout/0.8/mahout-distribution-0.8.tar.gz<br />
$ tar -zxvf mahout-distribution-0.8.tar.gz<br />
$ sudo cp -r mahout-distribution-0.8/ /usr/local<br />
<br />
Adicionar as linhas abaixo no Arquivo <b>~/.bachrc</b>:<br />
<br />
export HADOOP_PREFIX=/usr/local/hadoop-1.2.1<br />
export PATH=$PATH:$HADOOP_PREFIX/bin<br />
export MAHOUT_HOME=/usr/local/mahout-distribution-0.8<br />
export PATH=$PATH:$MAHOUT_HOME<br />
export JAVA_HOME=/usr/lib/jvm/java-1.6.0<br />
<br />
Configurando o ssh para conexão de um servidor no outro sem pedir a senha:<br />
<br />
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa<br />
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys<br />
<h4>
Configurando o Cluster</h4>
No master:<br />
/etc/hosts adicionar:<br />
192.168.0.123 master<br />
192.168.0.131 slave1<br />
192.168.0.132 slave2<br />
<br />
$HADOOP_HOME/conf/master adicionar:<br />
master<br />
<br />
$HADOOP_HOME/conf/slaves adicionar:<br />
master<br />
slave1<br />
<br />
Em todas as máquinas:<br />
<br />
<b>conf/core-site.xml</b><br />
<br />
<property><br />
<name>fs.default.name</name><br />
<value>hdfs://master:54310</value><br />
<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><br />
</property><br />
<br />
<b>conf/mapred-site.xml</b><br />
<br />
<property><br />
<name>mapred.job.tracker</name><br />
<value>master:54311</value><br />
<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.<br />
</description><br />
</property><br />
<br />
<b>conf/hdfs-site.xml</b><br />
<br />
<b>Atenção</b>: <value>2</value> abaixo refere-se a quantidade de nós disponíveis.<br />
<br />
<property><br />
<name>dfs.replication</name><br />
<value>2</value><br />
<description></div>
<div>
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.<br />
</description><br />
</property><br />
<br />
Logo depois executar<br />
<h4>
Comando:</h4>
$ start-all.sh<br />
<h3>
Links:</h3>
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/<br />
http://www.higherpass.com/linux/Tutorials/Installing-And-Using-Hadoop/1/<br />
http://wiki.apache.org/hadoop/PoweredBy</div>
<div>
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-29184375133995976992014-05-27T00:27:00.001-03:002014-05-27T00:27:37.027-03:00GEM: Tutorial Rápido - Instando o RailsPara saber o quê é Gem vá ao site <a href="https://rubygems.org/" target="_blank">Ruby Gems</a>. Pra ficar claro a importância da coisa. O próprio <a href="https://rubygems.org/gems/rails" target="_blank">Rails é uma Gem</a>.<br />
<br />
Tem o funcionamento muito parecido com o <a href="http://brew.sh/" target="_blank">Homebrew</a> ou ainda com o <a href="http://wiki.ubuntu-br.org/AptGet" target="_blank">apt-get</a>. Ou seja, a ideia é facilitar.<br />
<br />
Antes de tudo, atualize-o. No terminal:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">gem update --system</span><br />
<br />
Depois disso instale o <a href="http://bundler.io/" target="_blank">Bundler</a> digitando:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">gem install bundler</span><br />
<br />
Hora de atualizar o rbenv. Se não sabe o que é, pare esse tutorial agora é <a href="http://metamorfuzzy.blogspot.com.br/2014/05/rbenv-tutorial-rapido.html" target="_blank">leia esse</a> e instale o rbenv antes de tudo isso aqui.<br />
<br />
No terminal:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">rbenv rehash</span><br />
<br />
Instalando o Rails:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">gem install rails --no-ri --no-rdoc</span><br />
<br />
Atualize o rbenv:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">rbenv rehash</span><br />
<br />
Verifique a versão do Rails:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">rails -v</span><br />
<br />
Detalhes, no momento da instalação do Rails, pode-se escolher uma versão especifica, basta adicionar mais um argumento. Ex.:<br />
<br />
gem install rails --no-ri --no-rdoc --version=4.0.0<br />
<br />
Fácil! Seja Feliz!<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-52180111130340022372014-05-26T01:51:00.003-03:002014-05-26T01:57:30.049-03:00RBENV: Tutorial RápidoEsse tutorial considera o OSX. Neste caso, use <a href="http://brew.sh/" target="_blank">Homebrew</a>!<br />
<br />
No terminal:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">brew install rbenv</span><br />
<br />
Depois:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">brew install ruby-build </span><br />
<br />
Edite o .<span style="font-family: Courier New, Courier, monospace;">bash_profile</span> e no final do arquivo adicione a seguinte linha:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">eval "$(rbenv init -)"</span><br />
<br />
Salve o arquivo, para que a nova configuração seja carregada, digite no terminal:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">source ~/.bash_profile</span><br />
<br />
Pronto. Vá no site do <a href="https://www.ruby-lang.org/en/downloads/" target="_blank">Ruby</a> e procure a versão <i>stable</i> mais recente. Neste momento é a versão 2.1.2. Então no terminal:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">rbenv install 2.1.2</span><br />
<br />
Depois:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">rbenv rehash </span><br />
<br />
Para alterar mudar de uma versão para outra utilizando o RBENV basta executar <span style="font-family: Courier New, Courier, monospace;">rbenv global [versão]</span> para global existem outras opções; procure na documentação. Então:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">rbenv global 2.1.2</span><br />
<br />
Para verificar a versão atual do Ruby:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">ruby -v</span><br />
<br />
Para listar as versões disponíveis:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">rbenv versions</span><br />
<br />
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 <span style="font-family: Courier New, Courier, monospace;">rbenv rehash</span> sempre que instalar uma nova versão do Ruby ou uma nova Gem no ambiente selecionado.<br />
<br />
Seja Feliz!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-87589678478224157852014-05-24T23:18:00.000-03:002014-05-26T01:59:46.905-03:00Vagrant: Tutorial Rápido Algumas notas sobre Vagrant utilizando o OSX<br />
<div>
<div>
<ul>
<li>Instalar a última versão do <a href="https://www.virtualbox.org/wiki/Downloads" target="_blank">Virtual Box</a>.</li>
<li>Instalar o <a href="https://www.vagrantup.com/downloads" target="_blank">Vagrant</a>. </li>
<li>Adicionar o Box do <a href="http://simplesideias.com.br/sobre" target="_blank">Nando Vieira</a>. Ou qualquer outro. Crie o seu se preferir. (<a href="http://simplesideias.com.br/usando-o-vagrant-como-ambiente-de-desenvolvimento-no-windows" target="_blank">Tutorial completo</a>)</li>
</ul>
No terminal digite:</div>
<div>
<br />
<span style="background-color: white; font-family: Courier New, Courier, monospace;">vagrant box add hellobits http://files.hellobits.com/vagrant/hellobits-trusty64-virtualbox.box</span><br />
<span style="background-color: white; font-family: Courier New, Courier, monospace;"><br /></span></div>
<div>
<ul>
<li>Instalar plugin vagrant-vbguest</li>
</ul>
</div>
<div>
No terminal digite:</div>
<div>
<br />
<span style="font-family: Courier New, Courier, monospace;">vagrant plugin install vagrant-vbguest</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div>
<ul>
<li>Transformar o diretório do projeto em ambiente Vagrant</li>
</ul>
</div>
<div>
No terminal, vá ao diretório de seu projeto e digite:<br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">vagrant init hellobits</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div>
Depois edite o arquivo Vagrantfile que foi criado adicionando a linha abaixo à função.</div>
<div>
<br />
<span style="font-family: Courier New, Courier, monospace;">config.vm.network :forwarded_port, guest: 3000, host: 3000</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span>Isso vai redirecionar a porta 3000 (Caso esteja brincando com o Rails)</div>
<div>
<ul>
<li>Iniciar o novo ambiente (Iniciar a máquina)</li>
</ul>
No terminal digite:</div>
<div>
<br />
<span style="font-family: Courier New, Courier, monospace;">vagrant up</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div>
<ul>
<li>Entrar no ambiente criado (Entrar na máquina)</li>
</ul>
<div>
<br /></div>
</div>
<div>
<span style="font-family: Courier New, Courier, monospace;">vagrant ssh</span><br />
<br /></div>
<div>
Ao terminar estará dentro do ubuntu.</div>
<div>
<br /></div>
<div>
<span style="font-size: large;">Caso ocorra o erro abaixo:</span></div>
<div>
<br />
Talvez dê um erro no vagrant up. Algo como:</div>
<div>
<blockquote class="tr_bq">
<span style="color: #cc0000;">...Failed to mount folders in Linux guest. This is usually because<br />the "vboxsf" file system is not available. Please verify that<br />the guest additions are properly installed in the guest and<br />can work properly. The command attempted was...</span></blockquote>
</div>
<div>
Neste caso, dê o comando:</div>
<div>
<br />
<span style="font-family: Courier New, Courier, monospace;">vagrant ssh</span></div>
<div>
<br />
Depois, já dentro do ubuntu execute:</div>
<div>
<br />
<span style="font-family: Courier New, Courier, monospace;">sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions</span></div>
<div>
<br />
Para sair do ubuntu execute </div>
<div>
<br />
<span style="font-family: Courier New, Courier, monospace;">Exit</span></div>
<div>
<br />
logo depois:</div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;">vagrant reload</span></div>
<div>
<br />
Depois disso deve estar tudo ok:</div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;">vagrant ssh</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div>
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.</div>
<div>
<br /></div>
<div>
Ou seja, está rodando um ubuntu dentro do OSX, e pode levantar quantas máquinas quiser. Se algo der errado basta dar um:</div>
<div>
<br /></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">$ exit </span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;">$</span><span style="font-family: 'Courier New', Courier, monospace;"> </span><span style="font-family: Courier New, Courier, monospace;">vagrant destroy</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;">$</span><span style="font-family: 'Courier New', Courier, monospace;"> </span><span style="font-family: Courier New, Courier, monospace;">vagrant init hellobits</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;">$</span><span style="font-family: 'Courier New', Courier, monospace;"> </span><span style="font-family: Courier New, Courier, monospace;">vagrant up</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;">$</span><span style="font-family: 'Courier New', Courier, monospace;"> </span><span style="font-family: Courier New, Courier, monospace;">vagrant ssh</span></div>
<div>
<br /></div>
<div>
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)</div>
<div>
<div>
<ul>
<li>Para dar um shutdown no vagrant?</li>
</ul>
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;">vagrant halt</span></div>
</div>
<div>
<br /></div>
<div>
Bom trabalho e seja feliz.</div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-82280562196353168732012-09-16T22:35:00.001-03:002012-09-17T08:11:24.935-03:00MIME type, 1982O padrão MIME types foi criado em 1982, caramba eu tinha quase 1 ano de idade. E olha essa citação:<br />
<br />
<blockquote class="tr_bq">
"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</blockquote>
<br />
É 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.<br />
<br />
Seja Feliz!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-76895960991588812812012-09-15T08:39:00.000-03:002012-09-15T08:39:02.374-03:00Por que, porque, porquê e por quê para programadores<br />
Veja a grafia e como defini-la de acordo com uma possível substituição:<br />
<br />
<span style="font-size: large;">Por que -> Por qual motivo</span><br />
<span style="font-size: large;">porque -> pois</span><br />
<span style="font-size: large;">porquê -> motivo (é substantivo</span><span style="font-size: large;">)</span><br />
<span style="font-size: large;">por quê -> Pergunta no final da frase ou um "Por quê?" isolado</span><br />
<br />
<h4>
Aplicação numa frase para programadores:</h4>
<br />
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ê?<br />
<br />
<h4>
Substituindo como o esquema acima, essa frase poderia ser assim também:</h4>
<br />
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ê?<br />
<br />
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.<br />
<br />
Essa regra é tão óbvia! Não sei por que esqueço toda hora!<br />
<br />
Seja feliz, encontre um porquê!<br />
<div>
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-85076958345773138762012-09-04T00:29:00.004-03:002012-09-04T10:07:12.840-03:00Brigando com o front-endQuem 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: <a href="http://grokpodcast.com/" target="_blank">Grok podcast</a> e o <a href="http://tableless.com.br/" target="_blank">Tableless</a>.<br />
<br />
<h3>
HTML </h3>
<br />
<ul>
<li>Existe essa ferramenta bastante interessante mas que muitos odeiam, o <a href="http://haml.info/" target="_blank">Haml</a> um tipo de gerador HTML mais utilizado no ASP, PHP, RUBY.</li>
</ul>
<br />
<h3>
CSS </h3>
<br />
<ul>
<li>Temos o <a href="http://sass-lang.com/" target="_blank">SASS</a>. A ideia dele é tornar a escrita de CSS mais simples e limpa. Na verdade é um primo do HAML.</li>
</ul>
<br />
<h3>
Javascript </h3>
<br />
<ul>
<li>Uma <a href="http://www.smashingmagazine.com/learning-javascript-essentials-guidelines-tutorials/" target="_blank">lista muito boa da Smashing Magazine</a>.</li>
<li>Para BDD com Javascript vejam o <a href="http://pivotal.github.com/jasmine/" target="_blank">Jasmine</a>. Fiquei impressionado, muito legal. Testar Javascript parece até divertido com o Jasmine. :D</li>
<li>O script <a href="http://retinajs.com/" target="_blank">Retina.js</a> é 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 <a href="http://tableless.com.br/retina-js-imagens-para-telas-retina/" target="_blank">link</a>.</li>
</ul>
<br />
<h3>
Setup Inicial</h3>
<br />
Um <a href="http://twitter.com/tableless/statuses/231339413999853568" target="_blank">Tweet do Tableless</a> citou o setup inicial com os seguintes itens:<br />
<br />
<ul>
<li><a href="http://jquery.com/" target="_blank">jQuery</a>,</li>
<li><a href="http://harvesthq.github.com/chosen/" target="_blank">Chosen </a>(plugin para select boxes, deixa-os muito mais bonitos e user-friendly),</li>
<li><a href="http://modernizr.com/" target="_blank">Modernizr</a>(Facilita a verificação de compatibilidade do browser com HTML5, CSS3),</li>
<li><a href="http://keyamoon.com/icomoon/" target="_blank">IcoMoon</a>(ícones + ícones),</li>
<li><a href="http://www.font-face.com/" target="_blank">font-face</a>(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 ),</li>
<li><a href="http://cssgrid.net/" target="_blank">1140 grid</a> (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.) ,</li>
<li><a href="http://necolas.github.com/normalize.css/" target="_blank">Normalize</a>(HTML5 alternativa para CSS resets, é usado em vários projetos grandes.)</li>
</ul>
Adiciono mais um que é bastante indicado em vários sites<br />
<br />
<ul>
<li><a href="http://twitter.github.com/bootstrap/" target="_blank">Twitter bootstrap</a>.</li>
</ul>
<br />
<h3>
Desempenho</h3>
<br />
<ul>
<li>Melhorando a velocidade do site, <a href="http://metamorfuzzy.blogspot.com.br/2011/07/praticas-para-um-site-otimizado-by.html" target="_blank">já postei sobre isso</a>, mas é sempre legal abordar o assunto, segue <a href="http://tableless.com.br/diminua-tempo-viagem-rtt/" target="_blank">mais um link</a> muito interessante.</li>
</ul>
<br />
Deixe seus links nos comentários e seja feliz.<br />
<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-21937223764400039542012-09-02T22:49:00.002-03:002012-09-03T15:26:33.244-03:00Exibir Arquivos Ocultos no Finder - Mac OS X<div style="text-align: justify;">
Esse post é jogo rápido!</div>
<div style="text-align: justify;">
Se quiser exibir pastas e arquivos ocultos no Finder abra um terminal e digite:</div>
<div style="text-align: justify;">
<br /></div>
<pre>defaults write com.apple.finder AppleShowAllFiles TRUE
killall Finder
</pre>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Abra o Finder e verá tudo!</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ficou feio demais? Está vendo coisas que não devia? Ok Faça o contrário:</div>
<div style="text-align: justify;">
<br /></div>
<pre>defaults write com.apple.finder AppleShowAllFiles FALSE
killall Finder
</pre>
<pre>
</pre>
<div style="text-align: justify;">
Seja Feliz!</div>
<div style="text-align: justify;">
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-56950325166030738552012-09-02T22:38:00.000-03:002012-09-23T13:02:57.765-03:00LaTeX + ABNT no Mac OS X<div style="text-align: justify;">
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.</div>
<h3>
Passo-a-passo</h3>
<div style="text-align: justify;">
Baixar o "pequenino" <a href="http://mirror.ctan.org/systems/mac/mactex/MacTeX.mpkg.zip" target="_blank">MPKG</a> para instalar o <a href="http://www.tug.org/mactex" target="_blank">MacTex</a> que atualmente é de 1,8GB(Putz).</div>
<div style="text-align: justify;">
Instalação já é padrão para usuários do Mac OSX e no Lion funcionou perfeitamente.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
É bem possível que você queira utilizar o MacTex para gerar um texto dentro da ABNT. Neste caso o mais simples é instalar o <a href="http://abntex.codigolivre.org.br/" target="_blank">ABNTEX</a>. Baixe a <a href="http://codigolivre.org.br/frs/?group_id=46" target="_blank">ultima versão estável</a>. Escolha o ZIP, descompacte e copie o conteúdo da pasta texmf para dentro do<br />
<pre class="shell">/usr/local/texlive/[ano]/texmf/</pre>
a versão indicada aí acima vai gerar o caminho<br />
<pre class="shell">/usr/local/texlive/2011/texmf/</pre>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
PS.: Eu recomendo fazer uma cópia da pasta texmf antes de sobrescreve-la Vai que...Bom, entendeu né?</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
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.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Se você usa o <a href="http://macromates.com/" target="_blank">Textmate</a> 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 <a href="http://www.tug.org/texworks/" target="_blank">Texworks</a> que também é muito bom para isso. Basta fazer o <a href="http://code.google.com/p/texworks/downloads/list?can=3&q=OpSys%3DOSX" target="_blank">dowload</a> 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.</div>
<h3>
Observações</h3>
<div style="text-align: justify;">
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 é <br />
<pre class="shell">/usr/local/texlive/2011/texmf-dist/tex/latex/setspace/</pre>
para as versões descritas acima. Porém se não estiver funcionando para você, basta fazer o <a href="http://www.ctan.org/tex-archive/macros/latex/contrib/setspace" target="_blank">download aqui</a> e depois coloque na pasta indicada acima, ou na pasta do arquivo abnt.cls<br />
<pre class="shell">/usr/local/texlive/2011/texmf/tex/latex/abntex</pre>
Recomendo executar novamente o <br />
<pre class="shell">sudo texhash</pre>
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.</div>
<h3>
Exemplo para testes:</h3>
<br />
<pre class="brush:shell">\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}</pre>
<br />
Seja Feliz!<br />
<br />Unknownnoreply@blogger.com0Belo Horizonte - MG, Brasil-19.9190677 -43.9385747-19.9227997 -43.9435102 -19.9153357 -43.933639199999995tag:blogger.com,1999:blog-6224688164892081985.post-57944659730019465522012-06-26T23:48:00.000-03:002012-12-18T00:43:06.852-02:00HATEOAS, REST e Microsoft<div style="text-align: justify;">
<span style="background-color: white;">Algumas definições antes de começar o texto:</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
HATEOAS - Hypermedia As The Engine Of Application State</div>
<div style="text-align: justify;">
REST - Representational state transfer</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
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.</div>
<div style="text-align: justify;">
Diga-se de passagem já existe um movimento para interrompermos o uso da sigla REST você pode ler mais sobre isso no blog do <a href="http://blog.steveklabnik.com/">Steve Klabnik</a> mais especificamente neste link <a href="http://blog.steveklabnik.com/posts/2012-02-23-rest-is-over">REST is over</a>. Ainda no blog do <a href="http://blog.steveklabnik.com/">Steve Klabnik</a> recomendo o post <a href="http://blog.steveklabnik.com/posts/2012-02-27-hypermedia-api-reading-list">A Hypermedia API Reading List</a> 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 <a href="http://tomayko.com/writings/rest-to-my-wife">How I Explained REST to My Wife</a> e uma versão em português <a href="http://distopico.wordpress.com/traducao-de-how-i-explained-rest-to-my-wife/">aqui</a>.</div>
<div style="text-align: justify;">
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 <a href="http://weblogs.asp.net/scottgu/about.aspx">Scott Guthrie</a> <a href="http://weblogs.asp.net/scottgu/archive/2012/02/23/asp-net-web-api-part-1.aspx">ASP.NET Web API(Part 1)</a> 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.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
No site <a href="http://www.asp.net/web-api">ASP.NET Web API</a>:</div>
<blockquote class="tr_bq">
<div style="text-align: justify;">
“ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework.”</div>
</blockquote>
<div style="text-align: justify;">
<span style="background-color: white;">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.</span></div>
<div style="text-align: justify;">
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.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Seja Feliz<br />
<br /></div>
<div style="font-weight: bold;">
<a href="https://plus.google.com/101865823741523678612?rel=author" target="_blank">Cleydson</a></div>Unknownnoreply@blogger.com0Belo Horizonte - MG, Brasil-19.9190677 -43.9385747-20.0384977 -44.096503199999994 -19.799637699999998 -43.7806462tag:blogger.com,1999:blog-6224688164892081985.post-73424695524297666892012-06-20T01:35:00.000-03:002012-06-20T01:35:00.542-03:00VênusDia 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 <a href="http://www.espacodoconhecimento.org.br/?dateselect=2012-06-05&sdate=5%2F6%2F2012&stag=palavra+chave&ac=spst&cat=10" target="_blank">projeção foi feita</a> no prédio do Espaço do Conhecimento na <a href="http://www.espacodoconhecimento.org.br/?page_id=253" target="_blank">Fachada Digital</a>. 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. <div>
Detalhe, Vênus só vai passar entre o Sol e a Terra fornecendo imagens semelhantes daqui a 105 anos. Ou seja,...<br /><div>
Vou deixar também um<a href="http://www.theatlantic.com/infocus/2012/06/the-2012-transit-of-venus/100313/" target="_blank"> link com fotos lindas</a> para vermos e refletirmos sobre o Universo. </div>
<div>
<div>
<br /></div>
</div>
</div>Unknownnoreply@blogger.com0Belo Horizonte - MG, Brasil-19.9190677 -43.9385747-20.0384977 -44.096503199999994 -19.799637699999998 -43.7806462tag:blogger.com,1999:blog-6224688164892081985.post-33988169450675504942012-04-20T00:44:00.002-03:002012-04-20T00:44:35.820-03:0050 linguagens de programação mais usadasO <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html" target="_blank">TIOBE Programming Community Index</a> é um índice bastante interessante e surpreendente. Neste link acima você encontra as 50 linguagens de programação mais usadas. <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/tpci_definition.htm" target="_blank">Aqui</a> você encontra a definição do índice.<br />
Neste momento temos:<br />
<ul>
<li>C e Java nas top 2.</li>
<li>Objective-C em 4º e crescendo desde meados de 2009.</li>
<li>C# em 5º.</li>
<li>VB em 7º.</li>
<li>Python em 8º.</li>
<li>Ruby em 11º.</li>
<li>VB.Net em 14º.</li>
</ul>
Tente vislumbrar um futuro analisando os gráficos e seja feliz.Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-6224688164892081985.post-30371650280011871092012-04-20T00:44:00.001-03:002012-04-20T00:44:21.192-03:00Personal KanbanMuito interessante a apresentação do <a href="http://blog.andrefaria.com/sobre" target="_blank">André Faria</a> sobre <a href="http://en.wikipedia.org/wiki/Personal_Kanban" target="_blank">Personal Kanban</a>.<br />
Aplicar o já conhecido Kanban para sua vida. Recomendo que todos a vejam.<br />
<div id="__ss_7483678" style="width: 425px;">
<strong style="display: block; margin: 12px 0 4px;"><a href="http://www.slideshare.net/andrefaria/personal-kanban" target="_blank" title="Personal Kanban">Personal Kanban</a></strong> <iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/7483678" width="425"></iframe> <br />
<div style="padding: 5px 0 12px;">
<br />
Seja Feliz!</div>
</div>
<br />
<br />
<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-11167182184868305442012-04-20T00:44:00.000-03:002012-04-20T00:44:02.629-03:00Uma coisa de cada vez!Um colega da Pós-Graduação indicou um artigo bastante interessante da InfoQ. "<a href="http://www.infoq.com/news/2012/04/achieving-more" target="_blank">Achieving More By Doing One Thing at A Time</a>". Sou obrigado a extrair o trecho abaixo de uma citação do Joel Spolsky:<br />
<blockquote>
"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."</blockquote>
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.<br />
Sei que você passa pelo mesmo problema, se não passa é um privilegiado, neste caso não precisaria desejar mas vou desejar... Seja feliz!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-33582593734561466002012-04-20T00:43:00.000-03:002012-04-20T00:43:30.282-03:00RoslynInfoQ Brasil está bombando. Depois deem uma lida, super rapidinho no artigo do <a href="http://elemarjr.net/" target="_blank">Mestre Elemar</a> <a href="http://www.infoq.com/br/news/2012/04/roslyn-compilador-como-servico" target="_blank" title="Roslyn">Roslyn: o ‘Compilador como Serviço’ da Microsoft</a>. Dá uma introdução ao Roslyn bem interessante e como disse, rápida.<br />
O <a href="http://msdn.microsoft.com/pt-br/roslyn" target="_blank">Roslyn </a>infelizmente não está totalmente implementado, na verdade está bem no início. Mas já dá pra sentir o que virá pela frente.<br />
Seja FelizUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-24486812227942472682012-04-19T23:25:00.000-03:002012-04-19T23:25:01.078-03:00Erro MS Excel em servidor Windows 2008<br />
<h4>
Problema:</h4>
<div class="MsoNormal">
Você está no Windows 2008 64bits e ao tentar abrir um
arquivo Excel via .Net Framework recebe a seguinte mensagem:</div>
<div class="MsoNormal">
<span style="color: red;">“Microsoft Office Excel não pode acessar o arquivo”</span></div>
<div class="MsoNormal">
<span lang="EN-US"><span style="color: red;">“Microsoft
Office Excel cannot access the file”</span><o:p></o:p></span></div>
<div class="MsoNormal">
Pra ser mais preciso, geralmente ocorre ao executar o método:
</div>
<span style="color: blue;">Excel.Workbooks.Open()</span>
<br />
<div class="MsoNormal">
Pode vir acompanhado de erros mais detalhados como por
exemplo:</div>
<div class="MsoNormal">
<span lang="EN-US"><span style="color: red;">System.Runtime.InteropServices.COMException
(0x800A03EC)</span><o:p></o:p></span></div>
<h4>
<span lang="EN-US">Historinha:</span></h4>
<div class="MsoNormal">
Vou considerar que você já resolveu os problemas de permissão
utilizando o DCOMCNFG.EXE. Foi lá na aba <i>Security</i>
deu permissão para os usuários do pool do IIS no <i>Launch and Activation Permissions</i> e de quebra no <i>Access Permissions</i>. Vamos considerar que
isso é o básico e o erro grave mesmo é o acima citado. </div>
<div class="MsoNormal">
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. </div>
<div class="MsoNormal">
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.
</div>
<h4>
Solução:</h4>
<div class="MsoNormal">
Em caso de Windows 2008 x64:</div>
<div class="MsoNormal">
<span lang="EN-US">Crie a
pasta C:\Windows\SysWOW64\config\systemprofile\Desktop<o:p></o:p></span></div>
<div class="MsoNormal">
Em caso de Windows 2008 x86:</div>
<div class="MsoNormal">
<span lang="EN-US">Crie a
pasta C:\Windows\System32\config\systemprofile\Desktop<o:p></o:p></span></div>
<div class="MsoNormal">
É sério, você não entendeu errado não, é só criar a pasta e
testar. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-43313978867732598752012-04-07T03:32:00.000-03:002012-04-20T00:45:35.754-03:00Você só quer ganhar dinheiro? Será?Segundo Frederick Herzberg o que realmente nos motiva na vida não é o dinheiro.<br />
Se temos:<br />
<ul>
<li>Conquistas reconhecidas.</li>
<li>Oportunidade de aprender.</li>
<li>Assumir responsabilidades.</li>
<li>Possibilidade de ajudar outras pessoas.</li>
<li>Crescer de modo geral.</li>
</ul>
Segundo Frederick esses fatores nos motivam.<br />
Pense nisso, procure mais a respeito e seja feliz.<br />
<div>
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-68598771904701817752012-03-14T22:51:00.000-03:002012-04-19T19:52:06.771-03:00Mocks não são StubsArtigo indispensável pra quem quer aprender um pouco mais a fundo os conceitos de testes de unidade.<br />
<a href="http://www.infoq.com/br/articles/mocks-Arent-Stubs">http://www.infoq.com/br/articles/mocks-Arent-Stubs</a><br />
e o original em inglês<br />
<a href="http://martinfowler.com/articles/mocksArentStubs.html">http://martinfowler.com/articles/mocksArentStubs.html</a><br />
Seja Feliz.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-87326472765793903562012-03-14T20:19:00.000-03:002012-04-19T19:43:30.035-03:00Salomão SchvartzmanPra quem não conhece esse incrível ser humano, vou deixar <a href="http://bandnewsfm.band.com.br/colunista.aspx?cod=102" target="_blank">aqui o link</a> para que possam procurar mais e ouvir seus comentários.<br />
Fui obrigado e me sinto compelido em copiá-lo em suas despedidas. Não estou gostando nada do meu tradicional "Até mais", acredito que o "Seja Feliz" do Salomão tem muito mais a ver com o meu desejo de que todos sejam felizes. Apesar disso, tenho clareza, tenho a lucidez de quem está para morrer, de que ao dizer "Seja Feliz", desejo na verdade que você tenha um estado de espírito feliz. É onde vive a real felicidade, pelo menos a mais duradoura.<br />
A felicidade duradoura não está em um objetivo na vida, afinal ao alcançá-lo ficamos eufóricos, felizes mas dali em diante inicia-se um processo de "desfelização" contínuo, até o nosso encontro com o próximo objetivo. Perceba, tente tratar a vida com mais bom humor, seja menos cinza. Do lado de cá vou tentar também. Prometo.<br />
E seja feliz.<br />
<div>
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-36462066213759556092012-02-02T12:51:00.000-02:002012-04-19T19:46:25.249-03:00Como construir um coração de verdade?Esse final de semana vi parte de um documentário que vou fazer questão de ver inteiro. Fantástico! Não tenho palavras para elogiar os pesquisadores. A descoberta envolvendo o processo de reconstrução de partes do corpo e a pesquisa envolvida..., com certeza vai fazer parte de soluções para aumentar nossa longevidade num futuro não muito distante.<br />
Fiquei encantado com a possibilidade de reconstruirmos dedos, mãos, pernas e até quem sabe um orgão complexo como um coração. Que os filhos das próximas gerações possam utilizar tais tecnologias!<br />
Fica aqui o LINK <a href="http://natgeotv.com/pt/como-construir-um-coracao/sobre">http://natgeotv.com/pt/como-construir-um-coracao/sobre</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-16769362491330850452012-02-02T01:01:00.000-02:002012-04-19T19:50:22.001-03:00Decifrando declarações C / C++ / Objective-CSeguindo a dica do Carlos Brando(<a href="http://nomedojogo.com/" target="_blank" title="Nome do Jogo">http://nomedojogo.com/</a>) fui até o artigo <a href="http://ieng9.ucsd.edu/~cs30x/rt_lt.rule.html" target="_blank" title=""Right-Left" Rule">"Right-Left" Rule</a> e fica incrivelmente simples ler as declarações em C / C ++ / Objective-C e a filharada toda do C, depois de ler esse artigo. Por favor, se está, esteve, e/ou pra evitar que um dia tenha dúvidas a respeito da leitura de declarações de variáveis nessas linguagens e suas variações, leia esse artigo. Se não quiser ler a versão em inglês procure no blog do Carlos Brando, lá tem um resumo em português.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-23060605040109368922011-11-18T10:04:00.001-02:002012-04-20T01:11:10.995-03:00Minha bandeira é mais bonita que a sua...Sempre vejo este tipo de discussão. Devo realmente gastar meu tempo com Ruby On Rails? Django e Python? .net MVC? IOS ou Android? Pô não seria melhor estudar o Titanium e matar os dois de uma vez? Estudar J2ME? Não morreu?<br />
<br />
Para quem está sem tempo de ler minha conversa vai uma resposta rápida:<br />
-Estude/Leia sobre tudo! Se estiver sem tempo pare de ver televisão.<br />
Dica pra quem sabe da minha empreitada:<br />
-Não invente de construir uma casa do zero. Não vai sobrar tempo pra quase nada!<br />
<br />
Agora vamos para uma conversa um pouco mais elaborada mas sem muita frescura:<br />
<br />
Se você programa em Ruby e utiliza o Rails ótimo! Show de bola tá na crista da onda! Apesar de que vai ficar esbarrando com o node.JS lá na crista. :D Obviamente se for mais para o lado Microsoft o topo da crista para o desenvolvimento web seria o Asp.Net MVC. Como trabalho a mais anos com tecnologias Microsoft participei muito tempo de comunidades e pude observar que não é comum a comunidade Microsoft se interessar por outras tecnologias. Obviamente temos exceções. Mas quando se trata do "gado" o interesse é básico e mesmo assim apenas por Microsoft. Já pude observar que extremistas de várias linguagens por exemplo JAVA também se comportam assim. Ex.: Se não roda na JVM é lixo! Em um determinado evento que fui um dev que lá estava criticou uma turma de desenvolvedores COBOL, dizendo que o Java era muito melhor pois era Free. E ele não estava em tom de brincadeira.<br />
<br />
Pense em sua integridade física e mental e responda: Vale a pena entrar em discussão com um ser iluminado desses? Não consegue perceber que existem inúmeras variáveis por trás de uma decisão de desenvolver algo em uma nova linguagem e/ou manter o atual cenário. Estou falando de tecnologia, conhecimentos das pessoas envolvidas e até mesmo política.<br />
<br />
Vou parafrasear uma frase ótima do Phillip Calçado <a href="http://podcast.dotnetarchitects.net/2009/08/podcast-5-linguagens-dinamicas/" target="_blank">neste podcast</a>:<br />
<blockquote class="tr_bq">
"Todos que conheço que programam em mais de uma linguagem, programam melhor em todas elas."</blockquote>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6224688164892081985.post-12567443550686943982011-11-11T23:39:00.001-02:002011-11-11T23:56:27.332-02:00Ótimas coisas grátis na InternetFiz uma rápida coletânea de <a href="http://metamorfuzzy.blogspot.com/p/gratis-free.html"><b>coisas grátis na Internet</b></a>. Outras quase grátis. Mas todas extremamente uteis.<br />
<div>
Dê uma olhada e deixe comentários e dicas. Com certeza deixei várias coisas de fora e sua contribuição será muito bem vinda. Alguns dos links foram retirados de uma palestra do <a href="http://twitter.com/viniciusteles" target="_blank">Vinícius Teles</a> então deixo aqui o meu agradecimento a ele. As outras foram coisas que fui encontrando e guardando para compartilhar aqui no <a href="http://metamorfuzzy.blogspot.com/">blog</a>. </div>
<div>
Posso afirmar com toda a certeza que valem muito a pena. Segue o link!</div>
<div>
<div>
<br /></div>
<div>
<a href="http://metamorfuzzy.blogspot.com/p/gratis-free.html" target="_blank"><b>Coisas grátis e muito boas na Internet.</b></a><br />
<div>
<br /></div>
<div>
Abraço</div>
<div>
<br /></div>
<div>
Cleydson</div>
</div>
</div>Unknownnoreply@blogger.com0