Thursday, September 29, 2011

Sobre o tempo

Por muito tempo, eu pensei que a minha vida fosse se tornar uma vida de verdade.
Mas sempre havia um obstáculo no caminho, algo a ser ultrapassado antes de começar a viver, um trabalho não terminado, uma conta a ser paga. aí sim, a vida de verdade começaria.

Por fim, cheguei à conclusão de que esses obstáculos eram a minha vida de verdade.
Essa perspectiva tem me ajudado a ver que não existe um caminho para a felicidade.
A felicidade é o caminho! Assim, aproveite todos os momentos que você tem.
E aproveite-os mais se você tem alguém especial para compartilhar, especial o suficiente para passar seu tempo; e lembre-se que o tempo não espera ninguém.
Portanto, pare de esperar até que você termine a faculdade; até que você volte para a faculdade; até que você perca 5 kg; até que você ganhe 5 kg; até que seus filhos tenham saído de casa; até que você se case; até que você se divorcie; até sexta à noite até segunda de manhã; até que você tenha comprado um carro ou uma casa nova; até que seu carro ou sua casa tenham sido pagos; até o próximo verão, outono, inverno; até que você esteja aposentado; até que a sua música toque; até que você tenha terminado seu drink; até que você esteja sóbrio de novo; até que você morra; e decida que não há hora melhor para ser feliz do que agora mesmo...
Lembre-se: felicidade é uma viagem, não um destino.

Tuesday, September 20, 2011

Teoria da Utilidade

Se cada um de nós pudesse predizer as consequências das nossas decisões obviamente que a nossa vida seria muito simplificada, mas contudo...
desinteressante!

Tuesday, September 13, 2011

Perhaps did you know... but


Some questions to a developer (on developer's day in Brazil)

  • What is SOLID?
  • Why is the Single Responsibility Principle important?
  • What is Inversion of Control? How does that relate to dependency injection?
  • How does a 3 tier application differ from a 2 tier one?
  • Why are interfaces important?
  • What is the Repository pattern? The Factory Pattern? Why are patterns important?
  • What are some examples of anti-patterns?
  • Who are the Gang of Four? Why should you care?
  • How do the MVP, MVC, and MVVM patterns relate? When are they appropriate?
  • Explain the concept of Separation of Concerns and it’s pros and cons.
  • Name three primary attributes of object-oriented design. Describe what they mean and why they’re important.
  • Describe a pattern that is NOT the Factory Pattern? How is it used and when?
  • You have just been put in charge of a legacy code project with maintainability problems. What kind of things would you look to improve to get the project on a stable footing?
  • Show me a portfolio of all the applications you worked on, and tell me how you contributed to design them.
  • What are some alternate ways to store data other than a relational database? Why would you do that, and what are the trade-offs?
  • Explain the concept of convention over configuration, and talk about an example of convention over configuration you have seen in the wild.
  • Explain the differences between stateless and stateful systems, and impacts of state on parallelism.
  • Discuss the differences between Mocks and Stubs/Fakes and where you might use them (answers aren’t that important here, just the discussion that would ensue).
  • Discuss the concept of YAGNI and explain something you did recently that adhered to this practice.
  • Explain what is meant by a sandbox, why you would use one, and identify examples of sandboxes in the wild.
  • Concurrency
    • What’s the difference between Locking and Lockless concurrency models?
    • What kinds of problems can you hit with locking model? And a lockless model?
    • What trade offs do you have for resource contention?
    • How might a task-based model differ from a threaded model?
    • What’s the difference between asynchrony and concurrency?
  • Are you still writing code? Do you love it?
  • You’ve just been assigned to a project in a new technology how would you get started?
  • How does the addition of Service Orientation change systems? When is it appropriate to use?
Your thoughts? I’ll add good questions from the comments throughout the day.

Monday, September 12, 2011

Chomsky e as 10 Estratégias de Manipulação Midiática


O lingüista estadunidense Noam Chomsky elaborou a lista das “10 estratégias de manipulação” através da mídia:

1- A ESTRATÉGIA DA DISTRAÇÃO

O elemento primordial do controle social é a estratégia da distração que consiste em desviar a atenção do público dos problemas importantes e das mudanças decididas pelas elites políticas e econômicas, mediante a técnica do dilúvio ou inundações de contínuas distrações e de informações insignificantes. A estratégia da distração é igualmente indispensável para impedir ao público de interessar-se pelos conhecimentos essenciais, na área da ciência, da economia, da psicologia, da neurobiologia e da cibernética. “Manter a atenção do público distraída, longe dos verdadeiros problemas sociais, cativada por temas sem importância real. Manter o público ocupado, ocupado, ocupado, sem nenhum tempo para pensar; de volta à granja como os outros animais (citação do texto 'Armas silenciosas para guerras tranqüilas')”.

2- CRIAR PROBLEMAS, DEPOIS OFERECER SOLUÇÕES

Este método também é chamado “problema-reação-solução”. Cria-se um problema, uma “situação” prevista para causar certa reação no público, a fim de que este seja o mandante das medidas que se deseja fazer aceitar. Por exemplo: deixar que se desenvolva ou se intensifique a violência urbana, ou organizar atentados sangrentos, a fim de que o público seja o mandante de leis de segurança e políticas em prejuízo da liberdade. Ou também: criar uma crise econômica para fazer aceitar como um mal necessário o retrocesso dos direitos sociais e o desmantelamento dos serviços públicos.

3- A ESTRATÉGIA DA GRADAÇÃO

Para fazer com que se aceite uma medida inaceitável, basta aplicá-la gradativamente, a conta-gotas, por anos consecutivos. É dessa maneira que condições socioeconômicas radicalmente novas (neoliberalismo) foram impostas durante as décadas de 1980 e 1990: Estado mínimo, privatizações, precariedade, flexibilidade, desemprego em massa, salários que já não asseguram ingressos decentes, tantas mudanças que haveriam provocado uma revolução se tivessem sido aplicadas de uma só vez.

4- A ESTRATÉGIA DO DEFERIDO
 
Outra maneira de se fazer aceitar uma decisão impopular é a de apresentá-la como sendo “dolorosa e necessária”, obtendo a aceitação pública, no momento, para uma aplicação futura. É mais fácil aceitar um sacrifício futuro do que um sacrifício imediato. Primeiro, porque o esforço não é empregado imediatamente. Em seguida, porque o público, a massa, tem sempre a tendência a esperar ingenuamente que “tudo irá melhorar amanhã” e que o sacrifício exigido poderá ser evitado. Isto dá mais tempo ao público para acostumar-se com a idéia de mudança e de aceitá-la com resignação quando chegue o momento.

5- DIRIGIR-SE AO PÚBLICO COMO CRIANÇAS DE BAIXA IDADE


A maioria da publicidade dirigida ao grande público utiliza discurso, argumentos, personagens e entonação particularmente infantis, muitas vezes próximos à debilidade, como se o espectador fosse um menino de baixa idade ou um deficiente mental. Quanto mais se intente buscar enganar ao espectador, mais se tende a adotar um tom infantilizante. Por quê?“Se você se dirige a uma pessoa como se ela tivesse a idade de 12 anos ou menos, então, em razão da sugestionabilidade, ela tenderá, com certa probabilidade, a uma resposta ou reação também desprovida de um sentido crítico como a de uma pessoa de 12 anos ou menos de idade (ver “Armas silenciosas para guerras tranqüilas”)”.

6- UTILIZAR O ASPECTO EMOCIONAL MUITO MAIS DO QUE A REFLEXÃO

Fazer uso do aspecto emocional é uma técnica clássica para causar um curto circuito na análise racional, e por fim ao sentido critico dos indivíduos. Além do mais, a utilização do registro emocional permite abrir a porta de acesso ao inconsciente para implantar ou enxertar idéias, desejos, medos e temores, compulsões, ou induzir comportamentos…

7- MANTER O PÚBLICO NA IGNORÂNCIA E NA MEDIOCRIDADE

Fazer com que o público seja incapaz de compreender as tecnologias e os métodos utilizados para seu controle e sua escravidão. “A qualidade da educação dada às classes sociais inferiores deve ser a mais pobre e medíocre possível, de forma que a distância da ignorância que paira entre as classes inferiores às classes sociais superiores seja e permaneça impossíveis para o alcance das classes inferiores (ver ‘Armas silenciosas para guerras tranqüilas’)”.

8- ESTIMULAR O PÚBLICO A SER COMPLACENTE NA MEDIOCRIDADE

Promover ao público a achar que é moda o fato de ser estúpido, vulgar e inculto…

9- REFORÇAR A REVOLTA PELA AUTOCULPABILIDADE

Fazer o indivíduo acreditar que é somente ele o culpado pela sua própria desgraça, por causa da insuficiência de sua inteligência, de suas capacidades, ou de seus esforços. Assim, ao invés de rebelar-se contra o sistema econômico, o individuo se auto-desvalida e culpa-se, o que gera um estado depressivo do qual um dos seus efeitos é a inibição da sua ação. E, sem ação, não há revolução!

10- CONHECER MELHOR OS INDIVÍDUOS DO QUE ELES MESMOS SE CONHECEM

No transcorrer dos últimos 50 anos, os avanços acelerados da ciência têm gerado crescente brecha entre os conhecimentos do público e aquelas possuídas e utilizadas pelas elites dominantes. Graças à biologia, à neurobiologia e à psicologia aplicada, o “sistema” tem desfrutado de um conhecimento avançado do ser humano, tanto de forma física como psicologicamente. O sistema tem conseguido conhecer melhor o indivíduo comum do que ele mesmo conhece a si mesmo. Isto significa que, na maioria dos casos, o sistema exerce um controle maior e um grande poder sobre os indivíduos do que os indivíduos a si mesmos. 

Universo


Saturday, September 10, 2011

Capitalismo


O Marco Zero

Estudo de caso

O estudo de caso é um dos mais antigos métodos utilizados no ensino por pesquisadores e estudantes para descrever, analisar e entender determinados fenômenos destacando as seguintes caracteristicas:

• Os estudos de caso objetivam a descoberta: o investigador se manterá atento a novos elementos que poderão surgir, buscando novas respostas e novas indagações no desenvolvimento do seu trabalho.
• Os estudos de caso enfatizam a interpretação contextual: para melhor compreender a manifestação geral de um problema, deve-se relacionar as ações, os comportamentos e as interações das pessoas envolvidas com a
problemática da situação a que estão ligadas.
• Os estudos de caso têm por objetivo retratar a realidade de forma completa e profunda: o pesquisador enfatiza a complexidade da situação procurando revelar a multiplicidade de fatos que a envolvem e a determinam.
• Os estudos de caso usam várias fontes de informação: o pesquisador recorre a uma variedade de dados, coletados em diferentes momentos, em situações variadas e com uma variedade de tipos de informantes.
• Os estudos de caso revelam experiência vicária e permitem generalizações naturalísticas: o pesquisador procura relatar as suas experiências durante o estudo de modo que o leitor possa fazer as suas generalizações naturalísticas, por meio da indagação: o que eu posso (ou não) aplicar deste caso na minha situação?
• Os estudos de caso tentam representar os diferentes pontos de vista presentes em uma situação social: a realidade pode ser vista sob diferentes perspectivas, não havendo uma única que seja a verdadeira. Assim, o pesquisador vai procurar trazer essas diferentes visões e opiniões a respeito da situação em questão e colocar também a sua posição.
• Os relatos do estudo de caso utilizam uma linguagem e uma forma mais acessível do que os outros relatórios de pesquisa, ou seja, os resultados de um estudo de caso podem ser conhecidos por diversas maneiras: a escrita, a comunicação oral, registros em vídeo, fotografias, desenhos, slides, discussões etc. Os relatos escritos apresentam, em geral, um estilo informal, narrativo, ilustrado por figuras de linguagem, citações, exemplos e descrições.

Friday, September 09, 2011

Revelações

Deus da Terra e do altar
Curve-se e escute nosso lamento
Nossos governantes terrenos vacilam
Nosso povo definha e morre
As paredes de ouro nos sepultam
As espadas do escárnio dividem
Não nos tome vosso trovão
mas leve nosso orgulho

O Tolo Intelectualizado

Sou um tolo intelectualizado
Então não sei o que devo fazer
Sobre esta complicada situação
Que foi aterrada sobre mim.

Enquanto estou descendo
Sozinho pelo Vale da Vida
Consegui uma vida inteira de experiência
É, tenho tanto a partilhar.

Abra o livro no capítulo um
Isso poderia significar
que a vida acabou de começar?
Para sempre dentro
de seus pensamentos mais obscuros
Ponderando sobre tudo que foi-lhe ensinado

Nunca me senti assim antes
É como se alguém abrisse a porta
para o livro da vida... ou da morte
Será que um dia haverá uma saída?

Alguém está me olhando de cima
Bem para o centro da minha alma
Não me dirão o que veem
Mas eu realmente quero saber

Quero deixar minha vida à minha vontade
Quero levantar a pedra imóvel
Quero andar pelo meio do fogo
Quero viver todos os meus desejos
Eu quero ir e ver o fogo queimar
Eu quero ver e sentir meu mundo girar
Eu quero saber que mais há para aprender
Eu quero passar de onde não há mais volta

Você quer mesmo ser
Apenas mais uma estatística ou sentir
Que realmente deveria aspirar
Que realmente merece mais

Você realmente sente
que tem tanto potencial aí dentro
O que você tem a partilhar
Poderia se tornar muito mais


Thursday, September 01, 2011

Tipos de teste

Alguns dos principais tipos de Teste de Sistema


Tipo de Teste
Descrição
Teste de Unidade
Teste em um nível de componente ou classe. É o teste cujo objetivo é um “pedaço do código”.
Teste de Integração
Garante que um ou mais componentes combinados (ou unidades) funcionam. Podemos dizer que um teste de integração é composto por diversos testes de unidade*1
Teste Operacional
Garante que a aplicação pode rodar muito tempo sem falhar.
Teste Positivo-negativo
Garante que a aplicação vai funcionar no “caminho feliz” de sua execução e vai funcionar no seu fluxo de exceção. *2
Teste de regressão
Toda vez que algo for mudado, deve ser testada toda a aplicação novamente.
Teste de caixa-preta
Testar todas as entradas e saídas desejadas. Não se está preocupado com o código, cada saída indesejada é visto como um erro.
Teste caixa-branca
O objetivo é testar o código. Às vezes, existem partes do código que nunca foram testadas.
Teste Funcional
Testar as funcionalidades, requerimentos, regras de negócio presentes na documentação. Validar as funcionalidades descritas na documentação (pode acontecer de a documentação estar inválida)
Teste de Interface
Verifica se a navegabilidade e os objetivos da tela funcionam como especificados e se atendem da melhor forma ao usuário.
Teste de Performance
Verifica se o tempo de resposta é o desejado para o momento de utilização da aplicação.
Teste de carga
Verifica o funcionamento da aplicação com a utilização de uma quantidade grande de usuários simultâneos.
Teste de aceitação do usuário
Testa se a solução será bem vista pelo usuário. Ex: caso exista um botão pequeno demais para executar uma função, isso deve ser criticado em fase de testes. (aqui, cabem quesitos fora da interface, também).
Teste de Volume
Testar a quantidade de dados envolvidos (pode ser pouca, normal, grande, ou além de grande).
Testes de stress
Testar a aplicação sem situações inesperadas. Testar caminhos, às vezes, antes não previstos no desenvolvimento/documentação.
Testes de Configuração
Testar se a aplicação funciona corretamente em diferentes ambientes de hardware ou de software.
Testes de Instalação
Testar se a instalação da aplicação foi OK.
Testes de Segurança
Testar a segurança da aplicação das mais diversas formas. Utilizar os diversos papéis, perfis, permissões, para navegar no sistema.



Muitos outros tipos de testes são possíveis. Entretando, é preciso entender os requisitos funcionais e não funcionais (garantia e utilidade) do negócio, para definir exatamente o nível de testes que pretende-se estabelecer para uma determinada aplicação. Testar demais é tão infeficiente quanto testar pouco.