quinta-feira, 5 de maio de 2011

Submarino vendeu notebook e entregou macarrão... só no Brasil

Servidora pública, que pretendia presentar a mãe neste domingo, recebeu pacote do site com duas embalagens de macarrão tipo miojo.

Para presentear a mãe no próximo domingo, a servidora pública brasiliense Maria Luiza Ferreira decidiu usar a loja virtual Submarino no último dia 2/5 para adquirir um notebook. A compra, no valor de 1200 reais, foi finalizada e até entregue antes do prazo. No entanto, em vez do computador, o pacote veio com algo muito menos tecnológico: dois pacotes de macarrão instantâneo, no valor de 89 centavos.
De acordo reportagem da rádio CBN, Maria Luiza, após constatar o ocorrido, entrou em contato com o atendimento ao cliente do Submarino, que não soube como remediar o problema imediatamente. “Falaram que eu tinha de devolver o notebook para receber o novo; informei que eu não tinha o produto, mas sim dois pacotes de miojo” disse a servidora à reportagem da rádio. A consumidora também afirmou que a empresa havia estipulado um prazo de dois dias para fornecer uma resposta – que não foi emitida dentro do prazo – e que, além disso, os atendentes alegaram não ser possível entregar o presente até o Dia das Mães.
Maria Luiza  informou à rádio que aguarda um posicionamento da empresa para ver se haverá necessidade de entrar na justiça. A assessoria de imprensa do Submarino informou ao IDG Now! que o produto será entregue, no máximo, até 06/05/2011 para a consumidora.
Fonte: IDG Now

quinta-feira, 28 de abril de 2011

Desenvolvedores estão ficando frustrados com a plataforma Android

Cresce descontentamento em relação à OS da Google devido à fragmentação do sistema e pela presença fraca no mercado de tablets, diz pesquisa.

A última pesquisa de dispositivos móveis da Appcelerator/IDC revelou uma crescente onda de frustração entre os desenvolvedores da plataforma Android, principalmente devido a preocupações como tablets decepcionantes, fragmentação do sistema operacional e múltiplas app stores.
Durante os últimos 12 meses, os dois relatórios trimestrais da Mobile Developer Report identificaram que o crescimento do interesse no Android diminuiu drasticamente o espaço entre a plataforma do Google e o líder da pesquisa, o iOS da Apple. Entretanto, em 11/4 deste ano, os níveis de interesse do Android entre os 2 700 pesquisados caiu pela primeira vez, de 87% para 85%, atrás dos 91% e 86% a respeito do iPhone e do iPad, respectivamente. Mais notório anda foi a queda em relação aos tablets Android, que caiu três pontos, chegando a 71%.
Quase três terços citaram a fragmentação dos dispositivos Android como principal aborrecimento, com mais mais de 30% mencionando que a fraca participação do sistema operacional no mercado de tablets, um nicho dominado quase que inteiramente pela Apple. O modelo aberto do Android também foi alvo de 28% das criticas de usuários preocupados com a existência de múltiplas lojas de aplicativos.
As únicas boas notícias para a Google é que, a não ser pela Apple, os desenvolvedores estão ainda menos atraídos pelo BlackBerry OS e Windows Phone 7, ambos com menos de 30% de interesse entre os desenvolvedores pesquisados. Com sua plataforma recém-lançada, a Microsoft terá como conforto o fato de que o Windows Phone está agora pelo menos no terceiro lugar com 29%, à frente da RIM, que conta com 27%.
A aparição modesta do Android talvez não seja uma surpresa tão grande, depois de tantos sustos em relação à segurança e o reconhecimento público da Google de que também está muito preocupado com a fragmentação, através do hardware dos aparelhos e das redes de telefonia. A companhia ainda irritou os desenvolvedores no começo deste mês, ao impedir temporariamente a disponibilização do código-fonte do sistema operacional da empresa para tablets, o Android 3.0 (denominado Honeycomb), permitindo o acesso somente aos grandes parceiros. Uma data para o relançamento para os desenvolvedores menores ainda será estipulada.
Um problema mais profundo que todas as donas dessas plataformas pretendem corrigir pode ser a sobrecarga dos desenvolvedores “O maior empecilho da Microsoft com seus desenvolvedores pode simplesmente ser o tempo disponível, pois 46% dos pesquisados indicaram que “estão sobrecarregados com iOS e Android", de acordo com os autores do estudo.
Neste contexto, o problema da fragmentação do Android provavelmente amplifica a ansiedade dos desenvolvedores por causa de uma divergência de habilidades de programação, necessárias para criar softwares para diferentes plataformas.
Fonte: IDGNow

terça-feira, 26 de abril de 2011

Americanos preferem o Android ao iPhone, e desprezam o Symbian


Nos EUA, 31% dos consumidores pretendem comprar um aparelho Android, ante 30% dos que deverão optar pelo aparelho da Apple. Nem 1% citou o Symbian.

Pela primeira vez no mercado americano, o Android superou o iPhone na preferência dos consumidores. Segundo pesquisa do instituto de pesquisa Nielsen, entre janeiro e março deste ano, 31% dos entrevistados disseram que seu próximo smartphone terá o Android como SO, pouco à frente dos que citaram o iOS (30%). O BlackBerry, por outro lado, não está mais na briga, pois só 22% deverão escolhê-lo.
ascensão da plataforma da Google é notória inclusive nesse estudo. Entre julho e setembro de 2010, seu índice ficara em 26%, ante 33% do produto da Apple. A queda do iPhone – de 9% – no entanto, deverá ser interrompida com o lançamento do iPhone 5, previsto para setembro.
Se o BlackBerry enfrenta dificuldade para retornar à velha forma, o Windows Phone 7 não consegue sequer decolar. O sistema da Microsoft, que começou a ser comercializado em novembro nos EUA, estava em melhor situação antes de ser lançado do que agora. Entre julho e setembro, 7% dos usuários tinham interesse em comprar um aparelho da plataforma – ou mesmo do Windows Mobile – número este que caiu para 6% na pesquisa conduzida entre janeiro e março.
Outros dados divulgados pela Nielsen chamam a atenção. Nem 1% dos entrevistados devem comprar um Symbian nos próximos meses – seu índice ficou em 0% – mas 1% lembraram do WebOS, sistema operacional que ainda não está no mercado –  e não há previsão de quando estará. Há também muitos consumidores indecisos: dois a cada dez não sabem que plataforma escolher para a próxima compra.
A partir dos números divulgados, é possível concluir que a disputa do mercado de smartphones continua restrita a Android e iPhone, apesar do pesado investimento da Microsoft no setor. A esperança da gigante dos softwares recai em sua parceria com a Nokia. Esta, porém, por mais útil que possa ser em termos globais, dificilmente a favorecerá nos EUA, visto que a empresa finlandesa nunca foi muito popular no país.
Fonte: IDGNow

quinta-feira, 14 de abril de 2011

São Paulo sobe 21 posições em ranking de produção científica

Um relatório divulgado na Grã-Bretanha diz que São Paulo subiu da posição 38 para o 17º lugar em um ranking de cidades com mais publicações científicas no mundo.
De acordo com o estudo feito pela Royal Society, a academia nacional de ciência britânica, a evolução da capital paulista nesse setor “reflete o rápido crescimento da atividade científica brasileira”.
O relatório, chamado Conhecimento, Redes e Nações: A Colaboração Científica no Século 21, analisa a publicação de trabalhos científicos por país no período entre 1996 e 2008.
O documento indica que o Brasil e outros países emergentes, liderados pela China, estão despontando como grandes potências na área de produção de estudos científicos, capazes de rivalizar com países que têm tradição nessa área, como os Estados Unidos, nações da Europa Ocidental e o Japão.
A representatividade dos estudos brasileiros teve leve aumento: entre 1999 e 2003, eles equivaliam a 1,3% do total de pesquisas científicas globais. Entre 2004 e 2008, essa porcentagem subiu para 1,6.
Mas “as reduções significativas no orçamento de ciência em 2011 levantam preocupações”, diz o relatório. Em meio aos cortes de R$ 50 bilhões anunciados pelo governo no orçamento federal, o Ministério de Ciência e Tecnologia deve perder R$ 1,7 bilhão.
China
Segundo o levantamento, o desempenho da China é ''particularmente notável'' - a publicação de documentos científicos do país superou as do Japão e da Europa nos últimos anos.
O país asiático só é ultrapassado pelos Estados Unidos, mas deve superá-los antes de 2020, se a atual tendência continuar.
Em 1996, os Estados Unidos tinham produção científica dez vezes maior que a chinesa; hoje, sua produção, com crescimento menor, não chega a ser o dobro da do país asiático.
No entanto, o relatório diz que ''ainda demorará algum tempo para que a produção dessas nações emergentes esteja à altura de ser uma referência para a comunidade científica internacional'', ressalta a pesquisa.
Áreas específicas
O estudo diz que há avanços em áreas específicas da ciência em alguns países, entre eles o Brasil.
''Existe diversificação de alguns países demonstrando lideranças em setores específicos, como a China em nanotecnolgia, e o Brasil em biocombustíveis, mas as nações avançadas do ponto de vista científico continuam a dominar a contagem de citações.''
A pesquisa também identificou nações emergentes no campo da ciência que não costumam ser associadas a uma base científica forte, como o Irã, a Tunísia e a Turquia.
As projeções feitas pelo relatório “sugerem que o sistema científico global está se desvencilhando de seu padrão anterior”.
“China e Coreia do Sul cumprem com suas ambiciosas metas de investimento em pesquisa e desenvolvimento, enquanto economias como Brasil e Rússia também prometem recursos substancialmente maiores para pesquisas.”
Com isso, é possível que nações emergentes – Brasil incluído – superem os investimentos de países como Japão e França no setor.
Fonte: BBC

quarta-feira, 13 de abril de 2011

Cinco pontos fundamentais para decisões relacionadas à carreira

Tomar decisões sobre o curso da carreira nunca é fácil, esteja o profissional procurando por um novo emprego ou avaliando a oferta de um empregador em potencial.
É por isso que ter um guia objetivo para a tomada de grandes é importante. A recrutadora da empresa norte-americana de RH Russel Reynolds Associates, Shawn Banerji, aconselha os executivos a seguirem cinco critérios na avaliação de uma oferta de emprego: posição, pessoas, plataforma, lugar e pagamento. “Esses são os cinco pontos que devem ser levados obrigatoriamente em consideração”, diz Banerji.
Essa metodologia ajuda a reduzir a complexidade da decisão direcionar o foco da análise e levar o executivo a refletir se vale mesmo a pena deixar a posição atual.
Confira os detalhes sobre cada ponto a ser a avaliado:
1 – Posição – Para determinar se a posição que está sendo oferecida é a certa para o profissional, ele deve ter respostas claras para uma série de perguntas: qual será seu papel efetivo na nova empresa? Quais serão as responsabilidades do papel e as expectativas para com o mesmo? Está confiante que pode ser bem sucedido no papel? Para quem se reportará? Qual a importância do cargo na escala de valor da companhia? Terá o poder necessário para fazer as realizações que espera?
2 – Pessoas – O profissional se dá bem com as pessoas com as quais trabalha atualmente ou com as quais pode vir a trabalhar? Banerji ressalta que isso é muito importante, já que o tempo gasto com os colegas chega a ser maior do que o investido em família e amigos.
3 – Plataforma – O profissional conta com uma plataforma com a qual se sente confiante e pronto para dar contribuição material? É importante considerar os objetivos de negócios da companhia: ela está passando por uma reformulação? Crescimento? Aquisições ou alienação? Banerji diz que essencial é entender como as habilidades e competências do profissional se alinham com a direção dos negócios.
4 – Lugar – Onde a vaga está localizada fisicamente? O mercado imobiliário na região facilita a realocação para assumir o novo cargo? O novo empregador ajudará com a mudança?
5 – Pagamento – O retorno da investida é proporcional ao risco que se está tomando ou a contribuição que será feita?
Apesar de os conselhos de Banerji terem sido direcionados aos executivos, eles se aplicam a profissionais de todos os níveis. Tente aplicá-los.
Fonte: Computerworld

quarta-feira, 6 de abril de 2011

Herança vs Composição

Gostaria de compartilhar o artigo publicado no site iMasters pelo colega Lucio Camilo, fazendo um comparativo interessante entre Herança e Composição.

Na verdade, esse artigo não é bem um comparativo, e sim uma "desqualificação" do uso da herança. Na minha opinião, não há solução ideal para todos os problemas, nem modelo ideal de arquitetura. Há sim uma solução específica para um problema específico.

Citando o velho exemplo do objeto Veículo, que pode ser especializado como Carro, Bicicleta, Carroça, Caminhão, é um caso claro onde a Herança se aplica muito bem. Mas volto a dizer, não sou defensor de arquitetura A, B ou C, defendo sim a avaliação de cada problema, e a aplicação da solução adequada para cada um, seja com Herança, Composição, Agregação, ou seja lá o que for.

Vamos ao artigo publicado:
Há algum tempo, herança era considerada a ferramenta básica de extensão e reuso de funcionalidade. Qualquer linguagem que não possuísse o conceito de herança “não servia para nada”. Atualmente, todos os artigos sobre padrões de projeto desaconselham a utilização de herança.

E agora?

Um princípio básico de padrões de projeto é “dar prioridade à composição”, preferir sempre “tem-um” ao invés de “é-um”. Quanto à herança, deve ser utilizada com muita prudência e em pouquíssimas situações.
Uma das poucas certezas que temos no desenvolvimento de aplicações é que existirão alterações. Portanto, a utilização de herança para fins de reutilização não dá tão certo quando se tratam de manutenções nos códigos já existentes.
Supondo que utilizamos uma classe pai para encapsular o comportamento de algum objeto. Dessa forma, todas as nossas classes filhas herdarão esses comportamentos. E o problema ocorre quando alguma das classes filhas não precisam de algum dos comportamentos que estão encapsulados. Passamos a ter que mudar o código na classe filha para que o método que foi herdado funcione da maneira específica para esse objeto. Ou, pior ainda, quando esse objeto não necessitar desse comportamento, então teríamos que sobrescrever o método para que ele não faça nada.
Alguns dos problemas dessa implementação é que o encapsulamento entre classes e subclasses é fraco, e o acoplamento é forte. Assim, toda vez que uma superclasse for alterada, todas as subclasses podem ser afetadas. Perceba que estamos violando o princípio básico de OO (Alta Coesão, Baixo Acoplamento).
Ainda com herança, a estrutura está presa ao código, e não pode sofrer alterações facilmente em tempo de execução, fazendo diminuir a capacidade de polimorfismo.
Quando utilizamos composição, instanciamos a classe que desejamos dentro de nosso código. Dessa forma, estamos estendendo as responsabilidades pela delegação de trabalho a outros objetos. Em vez de codificar um comportamento estaticamente, definimos pequenos comportamentos padrão e usamos composição para definir comportamentos mais complexos. Ainda na utilização de composição, podemos mudar a associação entre classes em tempo de execução e permitir que um objeto assuma mais de um comportamento.
Ao utilizar a composição, teremos muito mais flexibilidade, além de ser mais comum em muitos padrões de projetos. Porém, na herança, temos uma possibilidade de desenvolver mais rápido, diminuindo o tempo de desenvolvimento, levando em conta que perdemos muito mais tempo mantendo e alterando o código original do que com o desenvolvimento inicial. Portanto, nosso esforço deve ser sempre voltado para a reutilização e para a manutenção.

Aproveito para indicar um artigo interessante que conta com códigos mostrando o motivo de nunca se utilizar herança: veja aqui.
Fonte: iMasters

segunda-feira, 4 de abril de 2011

Algumas verdades sobre programação

Este artigo é a tradução de artigo escrito por David Veksler, no qual ele conta o que sua experiência como programador lhe ensinou.

O texto original pode ser encontrado aqui.

E vamos ao que interessa:
  • Um programador gasta cerca de 10% a 20% do seu tempo escrevendo código. Normalmente escreve entre 10 e 12 linhas por dia, que estarão presentes no produto final independentemente do seu nível de perícia ou experiência. Bons programadores gastam cerca de 90% do seu tempo pensando, pesquisando e experimentando maneiras de encontrar a solução ótima. Os programadores ruins gastam quase 90% do tempo debugando e fazendo alterações muitas vezes aleatórias na tentativa de “fazer funcionar”.
  • Um bom programador é dez vezes mais produtivo do que um programador comum. Um excelente programador é entre 20 e 100 vezes mais produtivo do que um convencional. Não é um exagero. Estudos desde os anos 60 têm mostrado isso consistentemente. Um mau programador não é só improdutivo - além de não concluir o trabalho com êxito, gera dores de cabeça e trabalho extra para outras pessoas consertarem.
  • Excelentes programadores gastam pouco do seu tempo escrevendo (código que de fato estará no resultado final). Os programadores que gastam muito do seu tempo escrevendo provavelmente não estão encontrando e utilizando soluções existentes para problemas antigos. Bons programadores são ótimos em reconhecer e em reutilizar padrões comuns e não têm medo de refatorar seu código constantemente, a fim de atingir a solução ótima. Programadores ruins escrevem código que falha em integridade conceitual, não-redundância, hierarquia e padrões, tornando complicada a refatoração, fazendo com que seja mais fácil jogar fora todo o trabalho e recomeçar.
  • Software, como qualquer coisa, obedece às leis da entropia. Contínuas mudanças levam ao desgaste do software e de sua integridade conceitual planejada originalmente. A entropia é inevitável, no entanto, programadores que falham ao estabelecer a integridade conceitual criam sistemas que se desgastam tão rapidamente, que muitas vezes se tornam inúteis e caóticos demais mesmo antes de serem concluídos. Possivelmente, o motivo mais comum para falha em projetos é o rompimento da integridade conceitual devido à entropia descontrolada (o segundo mais comum é a entrega de um produto diferente do que o cliente esperava). A entropia desacelera exponencialmente o desenvolvimento e é o principal motivo para deadlines desesperadoras.
  • Um estudo realizado em 2004 revelou que 51% dos projetos falham ou irão falhar em alguma funcionalidade importante e que 15% simplesmente vão falhar como um todo, o que é um grande avanço desde 1994, quando 31% dos projetos falhavam criticamente.
  • Embora muitos softwares sejam desenvolvidos em equipe, não se trata de uma atividade democrática. Geralmente somente uma pessoa é responsável pelo “design” do sistema e o resto do time o completa com detalhes.
  • Programar é um trabalho pesado. É uma atividade mental intensa. Bons programadores pensam sobre seu trabalho 24/7. Eles escrevem seu código mais importante no chuveiro, sonhando etc., porque o trabalho mais importante é feito longe do teclado. Projetos não são concluídos mais rapidamente gastando mais tempo no escritório ou adicionando pessoas novas ao projeto.
“Um excelente operário pode ser duas ou até três vezes mais produtivo que um operário comum, já um bom programador pode fazer com que seu trabalho seja mais do que 10 mil vezes mais produtivo do que um programador comum” - Bill Gates
Fonte: http://dotmac.rationalmind.net (Traduzido por iMasters)