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

Mocks não são Stubs

Artigo indispensável pra quem quer aprender um pouco mais a fundo os conceitos de testes de unidade.
http://www.infoq.com/br/articles/mocks-Arent-Stubs
e o original em inglês
http://martinfowler.com/articles/mocksArentStubs.html
Seja Feliz.

Salomão Schvartzman

Pra quem não conhece esse incrível ser humano, vou deixar aqui o link para que possam procurar mais e ouvir seus comentários.
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.
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.
E seja feliz.

quinta-feira, 2 de fevereiro de 2012

Como 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.
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!
Fica aqui o LINK http://natgeotv.com/pt/como-construir-um-coracao/sobre

Decifrando declarações C / C++ / Objective-C

Seguindo a dica do Carlos Brando(http://nomedojogo.com/) fui até o artigo "Right-Left" Rule 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.