sexta-feira, 8 de junho de 2012

Coloca o copo de água em cima do PC, e continue lendo ...



Não sou um fã de auto-ajuda. Em verdade, tenho por tal gênero tanto (ou mais) desprezo que por repolho refogado ou música sertaneja. Mas tenho que admitir que sim, precisamos, de quando em vez, um empurrãozinho, um conselho, um insight, enfim. Alguma coisa para dar motivação e energia para seguir em frente, fazendo o que diabos seja que façamos. Ou para esclarecer as confusões mentais que a eterna briga entre os nossos sonhos e as expectativas sociais acaba causando (profundo isso né? Li num livro).
Mas, e aí? Onde buscar tais coisas sem cair no mar de abobrinha de que são compostas coisas como O Segredo, A Cabana, A Puta que o Pariu, e sei lá mais o que estão inventando ultimamente? Bom, como eu sou um sujeito bacana, compartilharei com vocês algumas das coisas que eu li/vi/ouvi e que achei inspiradoras, interessantes, motivadoras, enfim, coisas para dar uma olhada quando der vontade de desistir de tudo e virar mindingo, ou quando bater aquela dúvida "será que largo a faculdade e viro cantor de sertanejo universitário?". Enfim, saca só:

Fabio Akita



Evangelista de Ruby, programador, empreendedor, blogueiro, palestrante, you name it. O Akita é mais do que conhecido na comunidade Ruby, e o AkitaOnRails, seu blog, é uma ótima fonte de conhecimentos sobre Ruby, Rails e desenvolvimento de software em geral. 
Mas, nem só de assuntos técnicos vive esse site. Com um disclaimer auto-explanatório logo no título, os posts [Off-Topic] do Akita são a coisa mais interessante do blog (na minha fecal opinião, pelo menos). Desde considerações mais específicas sobre gerência, até conselhos sobre fazer ou não um curso superior, passando por dicas sobre como configurar e usar melhor seu Mac (que eu passo batido porque não sou frutinha =P) e artigos famosos comentados.
Enfim, o cara é foda, um profissional de (muito) sucesso na sua área, e se você não concordar com tudo que ele diz (eu não concordo), no mínimo vai de dar coisas sobre as quais pensar.

Leo Babauta



Eu sei que vai parecer um pouquinho contraditório, porque eu falei mal de livros e autores de auto-ajuda e o Leo Babauta (que aliás, eu sempre leio/penso sem o 'a', Leo Babuta. Deixe aí nos comentários se você tem a mesma dislexia) é meio que um autor desse tipo. Mas tem uns detalhes.
Primeiro, ele realmente (até onde eu sei) vive seus preceitos. Segundo, os conselhos sobre produtividade que ele dá são mais the hard way que essa papagaiada de acredite que tudo é possível. Terceiro, não é para idolatrar o cara, é para ler o que ele escrever e pensar sobre. Dito isso, prossigamos.
Ele já escreveu alguns livros, e tem um punhado de sites, mas vou falar basicamente de dois: o mnmlist e o zenhabits
mnmlist é, como o nome sugere (se você for sagaz), um blog sobre minimalismo. Não sabe o que diabos é isso? Comece por aqui. Eu nem lembro como, ao certo, descobri esse blog, mas de cara me identifiquei. Sempre achei que ter coisas dá trabalho, e por ter sido sempre "pobre" (aspas para evitar encheções de saco), me acostumei a prescindir de coisas "supérfluas". Eu não vou ficar explicando os meandros filosóficos da coisa aqui (não que eles sejam muito profundos, é que já está na hora do almoço e eu estou com fome, e anda falta mais um item no post), mas, sério mesmo: se você acha que tem poucas roupas, sonha em comprar um iPad, acha que seu PC é um ancião porque foi comprado em 2010, dá uma lida nisso. Vai te dar, no mínimo, uma perspectiva nova das coisas.
Já o zenhabits é mais parecido com o que você talvez já tenha visto em livros, sites, blogs, ou ouvido de pessoas que comprar essa babaquice de auto-ajuda em geral. Mas tem um ponto que, pelo menos na minha opinião, que me faz dar um crédito. No Zen To Done (um conjunto de10 hábitos para ser mais produtivo. Sim, eu sei que o seu bullshitômetro está explodindo, mas me dá um crédito e continue lendo, please), décimo item, e aquele no qual ele coloca mais importância, é find your passion. Encontre sua paixão. Isso, para mim, salva a coisa toda, apesar do mal cheiro de auto-ajuda. Fazer aquilo que você ama é um dos princípios pelos quais eu tento (e fracasso miseravelmente, mas isso é história para outro dia) guiar minha vida, e é algo em que eu acredito firmemente.
E só para ser imparcial, um artigo criticando Leo Babauta, no qual eu esbarrei hoje meio que por acidente (no artigo, não no Babauta), durante a pesquisa para esse post.

Ira Glass on Storytelling


E por fim, mas de maneira alguma menos importante, esse vídeo. Ira Glass, caso você não saiba (e você provavelmente não sabe. Nem é arrogância, eu também só fui descobrir hoje), é um radialista, apresentador e produtor americano, mas isso não vem ao caso. O que vem é esse vídeo foda, feito com base no áudio de uma entrevista concedida por ele para a Current TV


Cara, isso é uma das coisas mais inspiradoras, motivadores, brilhantes e fodas que eu já vi. Mais até que Nerdcast de empreendedorismo. Se você faz QUALQUER coisa que envolva criatividade, e tem alguma pretensão de ser bom nisso, veja esse vídeo. Sério mesmo.
Se quiser a entrevista completa (que é mais específica, e cheia de like), tem aqui.

Bom, e é isso. Espero que não tenho ficado muito meloso, e que todos vocês três, caros leitores, tirem algo de útil disso tudo. 

PS: Putz, não tenho nada para falar no PS hoje. 
PPS: Ah, tem sim: Comentem, por favor, faz um bem desgraçado pro meu ego. E é legal também. =D
PPPS: Foi só eu reclamar, que apareceu mais PSs: Vou tentar manter isso semanal, ok? Toda sexta-feira, post novo. Update: Esse não foi sexta-feira por motivos técnicos.
PPPPS: Esse é o último, juro: Sigam o IzzyNobre no twitter. 90% é pura trollagem e babaquice, mas volta e meia ele posta algumas fotos de mulher gostos, digo, alguns pensamentos interessantes. Tipo, muito raramente mesmo. Mas, enfim.

sexta-feira, 25 de maio de 2012

Dia da Toalha: A saga continua ...

Com seiscentos milhões de raios, demônios, trovões, baratas, lagartixas e usuários de Windows! Eu prometi a mim mesmo que não iria postar (de novo) sobre o Dia da Toalha. Mas, Todo Dia Tem Uma Merda, como diria o bardo. A merda de hoje ... não, ok, não vou xingar o Kid, ele é gente boa (not really, mas eu gosto dele) e escreve bem. Não foi uma merda, esse texto sobre o Dia do Orgulho Nerd (que é o nome errado para o Dia da Toalha). Mas eu discordo profundamente (ok, nem tanto) de muito do que ele disse, e portanto emitirei aqui a minha opinião fecal sobre o assunto. Vamos as alegações do nosso querido troll Izzy Nobre:
  1. Movimentos de Orgulho Whatever nascem da rejeição por parte da sociedade de um determinado grupo, mas os nerds não são mais descriminados, logo, é pointless esse movimento todo.
  2. Ser nerd é um motivo bem besta pra se orgulhar. Essencialmente, você está se orgulhando porque curte ficção científica e quadrinhos.
  3. É muito fácil ser nerd hoje em dia.
Esses são resumidamente os argumentos que ele faz no post (resumi porque o texto é grande). E eis porque eu discordo deles:
  1. WAT? Mano, na boa: onde vocês vivem? Porque se aí é modinha descolada, desejável, cool e sei lá mais o que ser nerd, eu preciso me mudar JÁ. No meu mundo, falar que prefere jogar videogame a ir na balada, que prefere ler quadrinhos do que ir no cinema, que programa por diversão, ou qualquer coisa do gênero, é um vale-olhar-de-desprezo-puta-merda-que-nerd-loser garantido. A única que eu realmente vejo mudando é que coisas antes consideradas exclusivamente agora são mais aceitáveis e até mesmo consideradas interessantes hoje em dia. Mas a atitude nerd, ah, meu amigo, isso está MUITO longe de ser aceitável.
  2. Falando em atitude, é exatamente nisso que eu discordo desse segundo argumento. Ser nerd/geek NÃO é SÓ uma "lista de coisas que você gosta". É um tipo de atitude, um traço de personalidade. Não tem (só) a ver com gostar de quadrinhos (ou todo muleque que lê Turma da Mônica seria nerd), ou de videogames. Ser nerd é ser apaixonado por essas coisas, não meramente interessado. Não vou me aventurar numa definição precisa e exata (até porque tal coisa é provavelmente impossível) do que é ser nerd, mas sure as Hell, não é só uma lista de preferências pessoais.
  3. Aqui eu vou citar, para dar um pouco mais de contexto: 
    "Não existia wikipédia pra você ter um conhecimento básico de qualquer assunto aleatório, não havia IMDB pra você se inteirar sobre detalhes de produção dos seus filmes favoritos, não existia um programa televisivo de sucesso em que os protagonistas fosse nerds. O mundo não era um lugar amigável pra gente naquela época."
    Eu sou de uma geração mais nova que o Izzy Nobre (e tenho uma mínima noção de história recente também), então não vou discordar de que sim, hoje em dia informação é MUITO mais acessível. E nerds adoram informação, por mais trivial que seja (aliás, isso tem a ver com a tal atitude de que eu falei no item dois). Mas eu não sei se faz sentido afirmar que é fácil ou difícil ser nerd, para começo de conversa. Eu sei que rateadores gonna ratear, mas, como eu disse antes, nerdice é um traço de personalidade (e as vezes ele nem mesmo está relacionado a coisas comumente associadas a nerds) de ser "obcecado" por certos assuntos. Não é algo que você deliberadamente escolhe ser. Você pode, sim, escolher aprender mais sobre quadrinhos, programação, cinema, videogames, ou qualquer outro assunto que esteja na moda. Isso não te torna nerd. Te torna uma pessoa que gosta de qualquer uma dessas coisas. E não tem nada de errado com isso.
E é com esse pensamento que eu concluirei esse singelo post. Não sou um purista em relação a labels e classificações (na verdade, eu sou contra eles na maioria dos contextos), então não vou dizer que esse surto de pessoas se auto-denominando nerds é uma praga, que só os true-nerds vão pro céu, blá blá blá. Deixe quem quer se dizer nerd só por ter assistido Vingadores semana passada e gostado (e ainda saiu do cinema dizendo que foi foda o Darkseid ter aparecido na cena pós-créditos). Mas não me venha dizer que eu não tenho motivos para ter orgulho de ser nerd, ou que não há necessidade de exprimir esse orgulho e reafirmar meu direito a ser diferente. Sobre o último, eu já falei acima. E sobre o segundo, véi, na boa: todas as coisas incríveis que eu aprendi, todos os amigos que eu fiz, grande parte das minhas alegrias nessa vida de merda vieram (e continuam vindo) do fato de eu ser nerd. Eu tenho orgulho sim de ser nerd, de ser diferente. E enquanto tiver gente me olhando de cima pra baixo, me julgando e me chamando de loser por isso, eu continuar a comemorar o Dia da Toalha.

PS: Ano passado eu postei sobre mais ou menos esse mesmo assunto, se quiser, pode conferir aqui
PPS: Ano passado eu também prometi que ia manter essa porra atualizada, mas falhei miseravelmente. Dessa vez não prometo porra nenhuma, e vamos ver se Murphy não me sacaneia mais agora.

quinta-feira, 17 de maio de 2012

Learn to code or not, that's the question

Não era assim que eu tinha planejado o triunfail retorno do (Q,I,Ώ,f), mas, enfim, nada na vida acontece como a gente quer, e eu quero dar minha opinião de merda sobre esse assunto.
Que assunto? Então.
Tudo começou com um post publicado esses dias (ontem) pelo Jeff Atwood, do Coding Horror. Que eu me lembre eu nem sigo o feed desse puto, mas volta e meia pipoca um texto dele no twitter, ou em algum outro blog que eu acompanho, e sempre rende uma boa leitura. Ele é um desenvolvedor experiente, e tem umas opiniões interessantes sobre programação e desenvolvimento de software em geral.
O post em questão é esse: Please Don't Learn to Code. Motivado por um twitt do prefeito de Nova York, Mike Bloomberg, no qual ele diz que uma de suas resoluções de ano novo é aprender a programar, com a iniciativa Code Year, um projeto para incentivar pessoas a programar, ele (Jeff Atwood, não o prefeito) desce a lenha nesse movimento todo de "vamos juntos dar as mãos e aprender a programar". Ele destaca cinco principais problemas:
  • Mais código não é algo necessariamente bom. Pelo contrário, menos código significa manutenção mais simples, e como vocês sabem, manutenção is a bitch;
  • Escrever código não é o objetivo de um programador. Resolver problemas, sim;
  • Aprender a programar só por aprender a programar é uma solução para um problema que você talvez nem mesmo tenha;
  • O mundo já tem programadores novatos (e ruins) o suficiente;
  • Não dá para aprender a programar em 21 dias, não importa o que esses livros estúpidos te digam.
Se você já está aí balançando a cabeça em aprovação e dizendo "esse cara é foda, disse tudo", wait for it. Eu também tive uma reação similar, até ler esse outro post. Alfred Thompson, apesar de trabalhar para a Microsoft (e ter uma homepage que cheira a naftalina e daltonismo), é um cara gente boa. Além de desenvolvedor, também tem experiência em ensino, e fala (muito) sobre no seu blog. E ele discorda totalmente de tudo com que você acabou de concordar.
E o que eu acho disso, você (não) deve estar se perguntando. Bom, alguns pontos que o Jeff Atwood faz são realmente relevantes, não só para essa galera na onda do "Everyone should learn to code!", mas até para quem está no ramo pra valer. Mais código realmente não é algo bom. Assim como ele, eu também amo programar, mas por mais divertido, desafiador e interessante que pareça, NÃO tente implementar seu próprio ORM. Soluções prontas e reusáveis existem aos montes, use-as.
Mas voltando à questão: a divergência principal aqui é se programar é uma habilidade essencial, tanto quando escrever (bem), ler (e entender) e matemática, por exemplo. Você, que é uma pessoa sagaz, já sacou qual a opinião dos dois fulanos anteriormente citados, então aqui vai a minha: Sim e não. Programar, especificamente no sentido de escrever código, de escrever programas de computador, absolutamente não é.  A maior parte das pessoas simplesmente não precisa perder tempo aprendendo isso. Nisso eu concordo com Jeff, se o prefeito de Nova York tem que escrever JavaScript no seu trabalho diário, tem alguma coisa muito errada aí. Por outro lado, o tipo de pensamento analítico e algorítmico que aprender a programar encoraja e desenvolve é SIM uma habilidade que TODO MUNDO deveria cultivar. E de quebra, computer literacy (um termo que eu acabei de inventar (acho. provavelmente não), e significa ter uma ideia safadamente básica de como os computadores, softwares e a internet funcionam) geralmente vem de brinde, e essa, sem sombra de dúvida, é uma habilidade básica para sobrevivência no mundo de hoje. O que faz a diferença aqui é o foco.
O problema é focar no código ao invés de em desenvolver pensamento lógico. E nesse caso, eu concordo que o CodeYear é um pouco furado. Vai lá no site e dá uma olhada. É um ótimo recurso para introduzir, sei lá, adolescentes e jovens ao mundo da programação, mas não me parece exatamente voltado a desenvolver o tipo de habilidade de que eu estou falando. Talvez, inclusive, programação nem seja a melhor ferramenta para desenvolver esse tipo de habilidade em pessoas que NÃO serão programadores, mas que apenas precisam/desejam reforçar suas skills de resolução de problemas.
Enfim. Como tudo na vida, há ainda muito a ser dito sobre isso, mas aqui ficam meus dois centavos, inúteis que sejam.

PS: Desculpe, Jhonny. Eu sei que prometi o post para ontem, mas o universo conspirou contra.
PPS: Sim, todos os meus posts tem PSs. Deal with it.
PPPS: Turns out, as always, que eu não inventei o termo computer literacy porra nenhuma. Saca só.

domingo, 10 de julho de 2011

Screencast: Filtrando texto com grep e sed

Olá, queridos leitores! Que saudade de vocês três! Mas, enfim, como prometido, não demorei um ano para trazer um novo post, desde o último. Nessa madrugada trago a vocês meu mais novo empreendimento: O Screencast do (Q,I,Ώ,f)!!! Neste primeiro episódio, mostramos como realizar uma tarefa simples usando as poderosas ferramentas de processamento de texto do shell! Não perca tempo, ligue agora para, brincadeira, é de graça. Só clicar no play aí embaixo, e assistir:
 

PS: Se você puder, por favor, visitar o canal, dar um view e quem sabe um like e assinar o canal, fico muito gradicido, viu?

domingo, 5 de junho de 2011

Casualidades do Dia da Toalha

Esse post é fruto de uma conversa no twitter com a Fabiane (cujo blog, alias, eu recomendo, muito), e já que para um sujeito verborrágico como eu 140 caracteres não dá nem para as preliminares, trago o assunto para cá. Estava hesitante em escrevê-lo, porque boa parte das pessoas que conheço ainda associam nerds a um estereótipo negativo, coisas chatas em geral, mas, no fim, foda-se, como se ninguém soubesse que eu sou nerd. E chato.
Bom, feitos os devidos preâmbulos, vamos ao assunto do dia. Tudo começou numa quinta-feira, chovia muito … Não, na verdade era uma quarta, 25 de maio, o internacionalmente famoso Dia da Toalha, criado pelos fãs de Douglas Adams como homenagem póstuma ao gênio que nos trouxe a imortal saga de Arthur Dent e Ford Prefect (que eu sempre pronunciei, e de vez em quando ainda pronuncio, Ford Perfect. Maldita dislexia!), O Guia do Mochileiro das Galáxias. O nome da data vem de um trecho do livro onde são descritos os muitos usos de uma toalha para um mochileiro intergaláctico. Por ser, coincidentemente (ou não, vai saber), o aniversário da estreia do primeiro filme da trilogia Star Wars (parece que tem algo a ver com uma saga de um tal de Terry Pratchett, mas não conheço o autor, só cito aqui por que está na wikipedia) foi escolhida essa data para comemorar-se o Geek Pride Day, ou Dia do Orgulho Nerd (ou, de acordo com o inglês nórdico do Change, Dia do Prato Jéca). Muita discussão há, pequeno leitor, em relação a designação mais correta para este dia, e os nerds mais old school obviamente preferimos a mais antiga e canônica: o Geek Pride Day só surgiu em 2005, e o Dia da Toalha data de 2001. O amigo Azaghal sintetizou esse sentimento em uma frase: “Se você não sabe o que é o Dia da Toalha, não tem nada de que se orgulhar”.
Mas a questão do correto nome desta data é o que menos me incomodou na anteriormente referida quarta-feira, 25 de maio. Primeiramentemente, me estranha muito essa galera toda dizendo “você não é nerd só por assistir The Big Bang Theory, ou jogar RPG, ou curtir quadrinhos, ou Star Wars, ou Tolkien, ou usar camisa xadrez, ou fazer isso, ou aquilo”. Esquisita essa recente obsessão toda em separar os verdadeiros nerds dos falsantes usurpadores desse adjetivo tão distintivo. Por toda parte ouço neguinho falando “Ah, agora é moda ser nerd, mimimi”, mas tem colega meu que ainda fica puto quando começo a falar de RPG com um amigo, e, a despeito de toda a falação, o que eu mais vejo é gente fazendo todas as coisas anteriormente citadas, e mais outras, e negando serem nerds. Então, amigo, não, não é moda, cool, manero, supimpa e batuta ser nerd. No máximo é mais aceitável, no máximo, e não me lembro de ver ninguém, tanto ao vivo como na internet, reivindicando esse adjetivo sem ter uma boa percentagem de nerdice (se bem que moro num lugar relativamente “roça”, então talvez esteja rolando um delay. Enfim.). O que eu vejo, sim, é colocarem o nome em gente que não é exatamente da classe, mas até aí, CBPG, enquanto não chamarem o Justin Bieber, Rebbeca Black, Restart ou similares de nerds, estou tranquilo. No final das contas, quem é nerd de verdade sabe que o é, e sabe diferenciar um verdadeiro nerd de um seguidor de modinha, por um critério muito simples: nerds somos legais (ao menos aos nossos olhos), de uma maneira que outras pessoas não entendem. Então que se exploda essa (suposta) moda, modas vem e vão, mas o nerdpower permanece! .
Segundamente, e não é este o menos importante dos fatos internetísticos da supracitada quarta-feira (que a essas alturas já é notícia pré-historicamente velha, mas eu escrevo devagar), tem sempre a cambada escrota com as palavras de ordem “orgulho de ser babaca”, “bando de gordo melecão virgens que mora com a vó” e similares. Eu podia dizer como essa galera é quase que 100% composta de pessoas que só usam livros para escorar portas e cujo ápice de cultura é saber o nome do último ganhador do BBB (e só até começar o próximo). Podia citar o fato de que a grande maioria desses detratores não consegue escrever meia palavra correta, e quando conseguem, usam-na de forma inadequada, de que esses são os mesmos caras que hostilizam gays, negros, judeus, . Podia citar Bill Gates e Steve Jobs (os maiores clichês na defesa nerd de todos os tempos, mas, enfim alguns clichês são válidos, ainda que repetidos demais), podia até citar isso e isso (um absurdo foda, esse último, inclusive). Mas quer saber? Não vou perder tempo com isso, tenho que upar minha ficha de personagem de RPG. May the 4th be with you all.

PS: A despeito dos possíveis boatos de inatividade, não, este blog não morreu, nem passou a habitar o mesmo limbo de projetos alpha do sourceforge. Estive extremamente ocupado procrastinando praticamente tudo que eu (tenho que | gostaria de) fazer na vida, mas pretendo fazer um esforço sobre-humano para manter esta budega atualizada com alguma regularidade, entenda regularidade como você quiser. O que eu não faço por vocês, leitores (todos os três), hein?
PPS: Há! Aí está, senhor Nabo. Sua vez.

segunda-feira, 6 de dezembro de 2010

Progeria

Se você já ouviu falar da famosa Lei de Moore, certamente sabe que as coisas evoluem no mundo da tecnologia com uma velocidade espantosa. Embora seja aplicada à capacidade dos processadores, ela é uma espécie de termômetro para todo o resto: Sistemas operacionais, browsers, linguagens de programação (muito embora C ainda seja um padrão, mesmo sendo velhinha, as últimas bolachinhas do pacote surgiram nos últimos dez anos, se não menos). Tudo muda, cresce, evolui e morre muito rápido, e quem demora a se atualizar simplesmente se afoga nessa enxurrada de informações.
E isso tudo é muito bom, muito bacana, muito supimpa! Coisas que agora são possíveis, mal eram imagináveis há alguns anos; Fenômenos que afetam o próprio funcionamento da sociedade, como a popularização da internet, despontaram a pouco mais de uma década. Entretanto, como tudo na vida, existe o lado negativo: as coisas mudam tanto, as novidades surgem e são esquecidas tão rápido, que acabamos ficando rabugentos muito mais cedo. Qualquer um que se interesse realmente vai rapidamente experimentar vários browsers, sistemas operacionais, linguagens de programação, frameworks e o que mais estiver na moda. E a conclusão final é, basicamente, inevitável: todos são bons, todos são ruins. Cada coisa tem seu ponto forte, sua aplicabilidade, mas também tem seus pontos fracos, suas falhas e inconsistências. Depois de um mínimo de "passeio" pelas opções disponíveis, rapidamente se aprende que ferramentas são apenas isso: ferramentas! Não existe o sistema operacional perfeito, a linguagem perfeita, a IDE perfeita: existe o sistema/linguagem/IDE que resolve o seu problema HOJE, e pode não ser o mesmo que irá resolver seu problema amanhã.
Nada é perfeito: acostume-se!
Se por um lado isso acaba sendo uma coisa boa, já que uma certa dose de pragmatismo não faz mal a ninguém, mas não dá para negar que aquelas intermináveis discussões sobre o melhor sistema operacional, navegador, gerenciador de janelas (sim, eu já discuti isso! E muito!), linguagem de programação, personagem dos Muppets, pokemon ou filme do Tarantino (oops, acho que fui longe demais), enfim, aquelas flame-wars eram divertidas, ah se eram! 


PS: Eu poderia explicar o porquê do blog andar morto, mas todo mundo que lê esse trem estuda comigo, então, para bom entendedor.

segunda-feira, 4 de outubro de 2010

Eu quero um no meu quintal!

Nome científico: Pakku rotundus.
Nome popular: Pacman!



ISSO sim é arte, não aqueles biscuit  que sua vó tem no armário!
Mais aqui. Vi aqui.

terça-feira, 7 de setembro de 2010

Let's call it banana

Abstrações são importantes. Não importa o quanto você queira pagar de fodão, a verdade pura e cruel é que ninguém pode prescindir de abstrações. Toda a história da Computação, e da programação, mais especificamente, gira em torno de criar melhores abstrações para expressar mais claramente conceitos mais complexos. O assembly abstrai os bits, C abstrai o assembly, Python abstrai C e Prolog bate na cara de todo mundo.
Hoje em dia as abstrações (conte quantas vezes essa palavra vai aparecer, eu te desafio!) necessárias são de níveis cada vez maiores e, dada a sua já enfatizada importância, não é à toa que elas sejam o foco em muitos, se não todos os, paradigmas modernos de desenvolvimento de software, como Domain Driven Design, Language Oriented Programming. Orientação à Objetos é completamente focada em abstrações, e é basicamente O paradigma atual.
Ok, e daí? Daí que o que eu mais vejo na faculdade (na minha, especificamente, mas duvido que seja muito diferente em outros lugares) é descaso com as abstrações na hora de programar. Ok, aqui todo mundo ainda é, de uma forma ou outra, meio "lambaio" (thanks, Salles), e trabalhos de faculdade não são conhecidos pelo seu excelente design, mas é de pequeno que se entorta o pepino. Pausa para trocadilhos engraçaralhos de cunho sexual.  Se você não começar, agora, a se preocupar em dar nomes semânticos para classes, métodos, atributos, variáveis, constantes e o escambau à quatro, planejar os componentes e camadas do seu software,  deixar clara o propósito do seu código, não vai ser quando estiver com um projeto que precisaria de 6 meses para ser desenvolvido mas tem que ser entregue semana que vem nas mãos que vai começar a se preocupar.
Na minha opinião (e de muitos outros caras fodas, óbvio) propósito é palavra chave aqui. Abstrações, de qualquer tipo, são basicamente maneiras de deixar (ou pelo menos tentar deixar) claro o propósito do código. Desde usar ifs ao invés de gotos, até conceitos mais avançados como DSLs é tudo sobre deixar claro o propósito. Os softwares hoje, mesmo os mais básicos, chegam fácil a milhares de linhas de código, e se cada pessoa, a cada alteração, precisar quebrar a cabeça para entender o que diabos você queria fazer, fudeu.
Muito bom, muito bom. Mas, e agora? É só blablabla e você que se vire para descobrir como por esses sábios conselhos chupinhados de outros blogs melhores que esse em prática? Não, pequeno gafanhoto, eu me dei ao trabalho de elaborar uma pequena e singela lista de práticas que podem tornar seu código mas claro e com mais significado:
  1. Não tenha medo de criar novos níveis semânticos no seu código. Sempre que sentir que uma determinada ação ou propriedade não se encontra no seu devido lugar, crie um lugar para ela. Não tenha medo de criar uma nova classe (estou olhando para você, Carlos), de quebrar uma função em duas ou mais, menores, mas mais claras quanto ao seu propósito. Desperdice linhas e economize dor de cabeça na hora de refatorar ou alterar o código.
  2. Se preocupe com nomes, mas não perca (muito) tempo com eles. Esses métodos e atributos devem ficar juntos, mas o que eles são? Qual objeto representam? Chame de banana e siga em frente. É importante ter nomes com significado, afinal a idéia toda do software é mapear um problema para uma solução computacional da forma mais suave possível, mas quando você começa a perder mais tempo com filologia do que com programação, é sinal de que precisa rever suas prioridades. E melhorar seus conhecimentos sobre o domínio do problema também, se possível. Além do que, a metáfora básica da orientação à objetos é boa, mas nem de longe perfeita. Mas isso é assunto para outro(s) post(s).
  3. Evite ifs complexos. Se você está usando muitos ands (&), ors(|) ou constantes mágicas (x > 42), reveja seus conceitos, repense seu design. Aqui tem a lição completa
  4. Aprenda novas linguagens. Não apenas a sintaxe e semântica, mas o "jeitão" delas como um todo. Cada linguagem tem um jeito diferente de resolver certos problemas (nem sempre tão diferente, mas você entendeu o que eu estou querendo dizer), e conhecer várias ajuda não só a escolher a melhor ferramenta para solucionar seu problema, mas também a usar as ferramentas que você tem a mão de formas mais criativas e inteligentes.


E por hoje é só pessoal, esgotei meu estoque de sabedoria roubada. Você tem mais algum conselho profundo e transcendental sobre programação para adicionar à lista? Para isso que servem os comentários, comente!

PS: Agradecimentos ao pessoal do blog da Caelum e ao Phillip Calçado, cujos posts foram a inspiração e fonte de informação principal deste post.

PPS: Não esqueça de comentar!

PPPS: Sério, sua opinião é importante.

PPPPS: Ok, não é tão importante assim, mas seu comentário ajuda na minha auto-estima.


PPPPS: Anyway, comente. Já!

segunda-feira, 12 de julho de 2010

Ahahahahahahahahahaha!

Ahahahahah!!!!!!!!! Ahahahah.... ahahahaahahah ..... hunf, hunf, hunf ... Ahahahahaahahahahaha!!!!!
Cara, eu morro e não vejo tudo. Prestem bastante atenção nas trilhas sonoras, e mandem um abraço ao Cardoso.






PS: Oh, céus! Estará este blog, cujo objetivo original era engrandecer e propagar a ciência e cultura nerd, se tornando um mero amontoado de links engraçaralhos de gosto duvidoso? Estarei eu, enquanto autor dessas postagens que aqui se encontram, traindo o movimento nerd mundial?!?!?
...
Ah, foda-se.

PPS: Malditos vídeos, sempre quebram o layout.

segunda-feira, 5 de julho de 2010

The Big Bang Theory: erros de gravação

Assim como o Malandrox, o Sheldon também ERRA! Ele e toda a galera do seriado. É de chorar de rir essa compilação de erros de gravação, especialmente na parte onde o Leonard não consegue falar "prepared"!

Vi no pontogeek.

PS: Não coloquei o vídeo aqui porque quebrou meu layout.