segunda-feira, 19 de outubro de 2009

Anti-IF campaign



What Is the Anti-IF Campaign?

The objective of the Anti-IF Campaign is to raise awareness of effective use of the Object-Oriented paradigm.

The primary purpose of our campaign is to become aware of the design consequences of using IFs and of control structures in general, applied by following the path of the procedural paradigm in Object Oriented contexts. This greater awareness will enable you to understand how to achieve more effective results in terms of flexibility, comprehensibility, testability, and ability to evolve.

Why Was It Started?

The campaign was Francesco Cirillo’s idea: “Lots of teams want to be agile, but they don’t know the basics for cutting down on code complexity.” Knowing how to use objects lets developers eliminate IFs based on type, those that most often compromise software's flexibility and ability to evolve. Let’s start with these!”

Who Is It For?

  • Developers (Junior and Senior)
  • Business Analysts
  • Project Leaders
  • Software Quality Assurance Team Members

sexta-feira, 16 de outubro de 2009

Sugestão no Washington Post: Use Linux para evitar fraude bancária

O colunista de segurança Brian Krebs do Washington Post, recomendou que os clientes bancários considerem o uso de um LiveCD do Linux no lugar do Windows para acesso ao banco online. Ele conta a história de duas empresas que perderam respectivamente U$100.000 e U$447.000, quando o ladrões armados com malwares no PC de um funcionário das empresas foram capazes de interceptar um log do responsável pelo acesso às contas. Krebs ainda observa que ele não está sozinho em recomendar o uso de máquinas não-Windows para uso do home banking; O Centro de Informações e Análises Financeiras, um grupo da indústria apoiada por alguns dos maiores bancos do mundo, publicou recentemente diretrizes instruindo as empresas a realizar todas as atividades bancárias on-line a partir de uma máquina dedicada a isso rodando Linux. Krebs conclui seu artigo com um link para uma coluna anterior em que ele ensina leitores a usar um LiveCD Linux para acessar suas contas com segurança.

terça-feira, 13 de outubro de 2009

Browsers: uma breve história - Parte III

Macintosh e Windows

Como as especificações de design para páginas web, tornou-se mais preciso e as expectativas dos usuários cresceram, uma outra batalha na guerra dos navegadores web começou. Quanto mais detalhada era uma página web e mais rica a sua funcionalidade, maior era o fosso entre os navegadores. Como se isso não bastasse, existia também diferenças entre as plataformas. Como o Netscape trabalhava no Macintosh, era significativamente diferente de como ele funcionava no Windows. Houve diferenças entre si nos navegadores, mas também nos sistemas. Por exemplo, fontes tendiam a exibir menores em Macs, e maior no Windows (mesmo usando o mesmo browser). Cor tendiam a mostrar mais escura em um PC do que em um Mac. Determinados recursos disponíveis no IE 4.0 no PC talvez não estivesse disponível para usuários de Mac (Ainda que sempre o caminho).

Como podemos enfrentar essa guerra?

A guerra dos navegadores tem sido intensa e frustrante. Todo desenvolvedor web tem histórias de horror sobre a tentativa de tornar nos seus locais de trabalho, os principais navegadores. Nos primeiros dias as linhas de batalha foram divididas e bastante equilibradas. Isso tornou as coisas muito difíceis. O resultado foi que muitas vezes tivemos que desenvolver a um nível inferior, para manter os problemas do navegador para um mínimo. Hoje somos capazes de fazer mais.

O primeiro passo para lidar com questões de compatibilidade de navegadores, é definir claramente qual o navegador que um determinado site irá apoiar. Para nós, quando a utilização de um navegador cair abaixo de 3% já não se deve apoiá-lo ativamente. Isso não significa que um site não funciona em um navegador mais antigo. Significa apenas que não mais será feito testes com esse navegador e, se surgem problemas de exibição, não serão prontamente corrigidos.

Quando formamos nossos padrões baseados nos navegadores mais utilizados, e em 95-97% dos casos os nossos sites ficarão muito bem, isso não ajuda muito quando o nosso cliente ainda está usando um navegador obsoleto. Enquanto nós sempre incluiremos os nossos padrões de compatibilidade do navegador nas nossas propostas, também é uma idéia muito boa fazer uma prospecção de navegadores que eles usam (e talvez mais importante, que navegador usa seu chefe) antes de iniciar um projeto. Caso contrário, você estará enfrentando um problema real para o fim de um projeto quando o cliente chama dizendo que o site parece terrível em seu computador (não o tempo para começar a educá-los sobre questões de compatibilidade do navegador).

Apoio a navegadores mais antigos

Apoiar os navegadores mais utilizados e utilizando os meios mais eficientes de codificação faz sentido para projetos web. No entanto, a decisão de limitar o apoio ao navegador pode não fazer sentido para aquelas pessoas que ainda usam navegadores mais antigos (isto é particularmente problemático se o presidente possa ser uma dessas pessoas). É por isso que é extremamente importante comunicar e discutir as normas de compatibilidade do navegador com o seu cliente antes de iniciar um projeto. Também é uma boa idéia incluir normas de compatibilidade do navegador em qualquer proposta ou no contrato do projeto. E por favor, sempre fazer a pergunta "qual o browser que o presidente da empresa usa?", e talvez qual o navegador que a mãe dele usa também; vai que ele queira mostrar o que os "meninos" da empresa fizeram.

Manuseio com navegadores do futuro

Uma nota a respeito de navegadores do futuro. Podemos incluir o seguinte texto em nossos padrões técnicos "A Xpto não garante a compatibilidade com versões futuras dos vários navegadores. Se novos navegadores não exibem informações com precisão, correções podem ser feitas e, será cobrado homem-hora." Enquanto isto pode parecer óbvio (como você não pode apoiar um navegador que ainda não existe), é uma boa idéia deixar o cliente saber que as futuras versões do navegador pode agir de maneira diferente e teoricamente "quebrar" o site existente.

O que nos reserva o futuro?

Embora as questões de compatibilidade do navegador são de longe a parte mais frustrante no desenvolvimento web, as coisas melhoraram. A boa notícia é que a cada mês que passa, há menos navegadores mais antigos sendo usados. Para nosso grande alívio, a atual tendência dos navegadores é para a compatibilidade cross-browser e aderência aos padrões web já existentes. Esperemos que com menos pressão por novas versões de navegadores para oferecerem recursos novos e originais, os navegadores mais recentes se mantenham em conformidade com as normas existentes. Podemos sonhar, não podemos?

sexta-feira, 2 de outubro de 2009

Celestia 3D Space Simulation Software For Linux / Windows / OS X

celestia-europe-Io-jupiter
Celestia is a real-time visual space simulation astronomy program. It is a cross platform, open source software and released under the GNU General Public License. NASA and ESA have used Celestia in their educational and for interfacing to trajectory analysis software. It allows users to travel through an extensive universe, modeled after reality, at any speed, in any direction and at any time in history. Celestia displays and interacts with objects ranging in scale from artificial satellites to entire galaxies in three dimensions using OpenGL. It is a perfect software for astronomer, educator, student, and teacher for astronomy purpose.

Features

  1. Celestia displays the Hipparcos Catalogue (HIP) of almost 120,000 stars.
  2. Solar and lunar eclipse finder.
  3. Display the orbital paths of planets (including extrasolar planets), dwarf planets, moons, asteroids, comets, artificial satellites, and spacecraft.
  4. Celestia users can travel/fly through the Celestia universe using simple keyboard controls, at any speed from 0.001m/s to millions of light years/s
    Controls allow users to orbit stars, planets, moons and other space objects, track space objects such as spacecraft, asteroids and comets as they fly by, or travel to and/or fly through nebula and irregular, elliptical and spiral galaxies (over 10,000 galaxies included).
  5. Celestia displays such features as detailed atmospheres on planets and moons, planet shine on orbiting satellites, sunsets and sunrises, moving clouds, planetary rings, eclipse and ring shadows etc.
  6. Graphic screen-shots and movies can be captured in classic or HD resolutions (up to 1920x1080) on Windows and Linux platforms.

Packages

You need to install the following packages:

  1. celestia - A real-time visual space simulation
  2. celestia-common - Datafiles for Celestia, a real-time visual space simulation
  3. celestia-glut - A real-time visual space simulation (GLUT frontend)
  4. celestia-gnome - A real-time visual space simulation (GNOME frontend)
  5. celestia-kde - A real-time visual space simulation (KDE frontend)

Install Celestia Under Debian / Ubuntu Linux

Type the following commands:
sudo apt-get update
sudo apt-get install celestia-gnome celestia

How do I start Celestia?

Type the following command at a console (terminal):
$ celestia-gnome &
Alternatively, you can start Celestia in the following ways:

  • Applications menu
  • Choose Education > Celestia
Fig.01: Celestia displaying earth

Fig.01: Celestia displaying earth

Celestia Mouse, Keyboard and Joystick Controls

Celestia allows you to zoom in / out and rotate various objects from star to spacecraft using a mouse. It has "point and goto" interface which allows you to navigate through our universe.

Mouse Controls Description
Left Drag Camera orientation--Up/Down/Left/Right (also Up & Down arrow key)
Shift+Left Dbl Click on an object Deselect and Center selected object
Left Click on no object Deselect currently selected object
Right Click on an object Display object context menu if it has one
Scroll Wheel or Ctrl+Left Drag or Ctrl+Left Drag Left+Right Drag up/down Distance to selection adjust. (Home/End)

To see complet list press CTRL+H.

How do I view demo?

To view the demo click on Help menu > Demo.

Further readings:

(Image credit: Wikipedia)