Archive

Archive for the ‘Artigo’ Category

Estudos sobre IHC (Continuação)

March 28th, 2010 2 comments

Estou percebendo que a preocupação com usabilidade tem crescido, vi que Luiz China da Bluesoft fez um vídeo sobre ergonomia e usabilidade. Segue o vídeo e o slide. Gostei bastante da apresentação, pois ele coloca pontos interessantes de autores conhecidos na área. Vale a penas assistir.

Usabilidade e Ergonomia por Luiz China from Bluesoft on Vimeo.

Slides – Ergonomia e Usabilidade

Como já discutido anteriormente, o estudo de projetos de interfaces não está relacionado apenas com as possibilidades e limitações tecnológicas; é muito mais abrangente que somente um elemento técnico. O estudo do ser humano e seu comportamento também está diretamente relacionado ao desenvolvimento de interfaces. Envolve o conhecimento sobre o humano, sobre a tecnologia e sobre as maneiras como um influencia e é influenciado pelo outro.

Procurar entender o usuário do sistema sobre diferentes óticas é algo imprescindível para o bom design de interface. Lembrando que, quando se fala de usuário, estamos falando de fatores humanos. Então, procura-se entender a percepção visual, a psicologia cognitiva de leitura, memória humana e raciocínio dedutivo e indutivo.

A interface é a forma que se estabelece um diálogo entre o programa e o ser humano. Se esses princípios forem levados em consideração, esse diálogo será harmonioso e um ritmo será estabelecido entre o usuário e o programa; caso não aconteça essa valorização, o sistema quase sempre será tratado por “não-amigável”.

Um dos fundadores da Ergonomia, Alphonse Chapanis diz que os seres-humanos recebem um estímulo, processam a informação recebida e produzem um resultado sob a forma de uma resposta.

As habilidades humanas para lidar com abstrações são chamadas de informação. Estas são as habilidades mentais, também conhecidas como cognitivas. É importante lembrar que não se deve deixar iludir pela aparente divisão das características humanas: estrutural-mecânica versus mental. Esta distinção é apenas uma conveniência. No entanto, existem interações complexas entre elas: o corpo afeta a mente e vice-versa” (CHAPANIS, 1996).

A ligação que existe entre homem-computador é exatamente essa. Estímulos, processamento e resultados em forma de resposta. Como isso será feito é exatamente o foco da disciplina de IHC.

Tudo parte da percepção humana. O que significa percepção?

Em psicologia, neurociência e ciências cognitivas, percepção é a função cerebral que atribui significado a estímulos sensoriais, a partir de histórico de vivências passadas. Através da percepção um indivíduo organiza e interpreta as suas impressões sensoriais para atribuir significado ao seu meio. Consiste na aquisição, interpretação, seleção e organização das informações obtidas pelos sentidos. A percepção pode ser estudada do ponto de vista estritamente biológico ou fisiológico, envolvendo estímulos elétricos evocados pelos estímulos nos órgãos dos sentidos. Do ponto de vista psicológico ou cognitivo, a percepção envolve também os processos mentais, a memória e outros aspectos que podem influenciar na interpretação dos dados percebidos. Fonte: wikipédia

Mecanismos de percepção humana:

  • Modelo Construtivista
    Acredita que a visão do mundo é construída de forma ativa por informação obtida do ambiente somada ao conhecimento previamente armazenada.
  • Modelo Ecologista
    Defende que percepção é um processo direto que envolve a detecção de informação do ambiente e não requer quaisquer processos de construção ou elaboração, ou seja, os objetos carregam certas características que dirigem nossa percepção sobre eles.

Para se ter um bom IHC é necessário estudar esses conceitos antes de começar a desenhar telas que achamos que serão mais intuitivas. Não podemos nos basear em intuição. Estudar como o cérebro humano processa as informações é a forma mais correta de se ter um bom IHC. Isso tem sido meu foco nos últimos meses, estudar a parte mais humana da computação. Veja que todo esse estudo tem um link muito forte com a web semântica, que é um tema para outro estudo. Tudo está interligado.

Bem, essa foi mais uma síntese do que estou estudando. IHC é um tema bastante abrangente e acho melhor ir escrevendo pequenas sínteses do que estou estudando do que esperar para escrever tudo de uma vez só. Grande abraço a todos. Espero que tenham gostado. :-)

BlogBlogs.Com.Br

Categories: Artigo, IHC Tags: ,

Tecnologia Apple :-)

March 26th, 2010 1 comment

Bem, já tem algum tempo que venho brincando com meu iPod Touch, já tive boas conversas com @rponte e @rodrigogalba a respeito do que se pode fazer com ele. Já escutei alguns amigos apaixonados por mobilidade que não gostaram do iPod por ter várias limitações. Já vi amigos deixarem de usar pois não gostaram de saber que ele só sincroniza com um PC, mas isso é papo pra outra conversa, o que eu quero mostrar aqui é que fazendo algumas coisinhas ele abre um leque grande para brincar um pouco.

Estudar a arquitetura desse brinquedinho é o que eu quero. Sempre que encontro alguns amigos sou cobrado para que eu blogue o que ando fazendo com meu iPod. Então vamos lá. Eu costumo dizer que exitem os dois lados da moeda, o que a Apple deixa e o que a Apple não deixa. E adianto que já fiz tudo que ela não deixa e agora estou fazendo o que ela deixa. Antes de mais nada, você tem que ter coragem, eu fiz para entender mais do SO, colocar aplicativos interessantes como o iTerminal. Uma ferramente que só instala se seu aparelho estiver passado pelo processo de Jailbreak.

Bem mas o que vou mostrar aqui? Acho que antes de falar do desenvolvimento para iPhone vou mostrar algumas coisinhas que fiz com meu iPod. Para você fazer tudo isso é necessário fazer o Jailbreak no seu aparelho. :-) Feito isso, basta ir ao Cydia e entrar em Sections e começar a deixar seu iPod poderoso.

Source: cydia.hackulo.us

Sections -> Hackulo.us

  • Hackulo Security
  • Source GUI

Source: cydia.iphonecake.com

Sections -> [iPhoneCake]

  • AppCake
  • AppSync (Escolha a versão do seu Firmeware)

Sections -> Networking

  • OpenSSH
  • Automatic SSH
  • cURL
  • network-cmds
  • Nmap – Caso queira fazer varredura em host procurando portinhas abertas. :-)

Sections -> Administration

  • adv-cmds
  • Darvin Tools
  • Kernel Extensions Tools
  • PAM (Apple)
  • PAM Modules
  • Profile Directory
  • shell-cmds
  • system-cmds
  • Top

Sections -> Terminal Support

  • MobileTerminal ( Esse é importante.)

Sections -> SBSettings Addons

  • sbsettingstoggles

Sections -> Packaging

  • Escolha o que você achar melhor (apt-get ou aptitude)

Com um tempo você vai achar muitas coisas interessantes no Cydia. Mas feito isso vc já pode instalar o que você quiser. Agora você tem um SO baseado no BSD com bibliotecas e aplicativos linux rodando. Cuidado que a memória RAM do seu iPod é de apenas 128 MB. Só executar o comando “top” para ficar monitorando. Veja algumas imagens:

Acesso SSH ao meu iPod

SKD Java 1.5.0 customizado para iPod/iPhone

Hostname

Mas bem essa é a parte ilegal né? O que seria a parte legal? Porque eu falo na parte legal? Porque eu coloquei até o java pra rodar no iPod mas não vou construir aplicações java para iPhone/iPod, não tem serventia, como eu falei, foi apenas para fins de aprendizado e conhecimento do aparelho. Agora você ter um terminal em suas mãos a qualquer hora é muito interessante, hoje conectei em um servidor e um amigo meu fez uma configuração em outro, pois estava em um lugar onde não tinha computador. Serviu e ajudou bastante.

Mas vamos ao que interessa de verdade. Desenvolver aplicações para a plataforma Apple, principalmente para iPod/iPohone. Para começar, tenho que ter um Apple, não rola desenvolver em outro hardware/SO. Apesar de ter gente endoidando e colocando o MacOSX em outras máquinas.

Acho que todos estão acompanhando as notícias e estão vendo o quanto o mercado mobile está crescendo. Essa semana vi a notícias de que o o iPhoneOS superou o PS3 portátil em SO para games. Veja o gráfico a baixo:

Então está claro que a o mercado ta recebendo bem a plataforma e que o crescimento é certo. Então como faço para entrar nesse mercado? Como já foi dito. Ter um Mac, não é preciso ter um iPhone/iPod pois o SKD do iPod/iPhone tem um simulador. Mas nada como nossa app rodando no nosso aparelho né? Caso você queira desenvolver algo profissionalmente é de extrema importância estar inscrito no iPhone Developer Program, custa apenas US$ 99,00. :-) Bem nem tudo são flores né? Apple é assim mesmo. Cobra e cobra caro. Fazendo a inscrição nesse programa você terá acesso a informações privilegiadas e personalizadas, poderá testar seu aplicativo no aparelho e publicar na App Store. Quer um exemplo de privilégio? Quem tem essa inscrição pode baixar o SKD do iPad. Eu não tenho. :-(

Qual a linguagem utilizada para desenvolver? Simples assim, Objective-C. Quem já teve algum contato com alguma linguagem orientada a objetos não terá grandes dificuldades com essa. Sintaxe é bem parecida com C/C++ e com poderosos conceitos de Smalltalk (Flexibilidade da transmissão de mensagens entre objetos)

Bem, acho que hoje deu pra começar algo né galera? O próximo e falo sobre o ambiente de desenvolvimento e um pouco da linguagem. As coisas são devagar pois eu preciso de tempo para estudar e escrever. Uma pena né? :-( Mas como estou metido em um pequeno projeto vou tentar publicar mais coisas interessantes.

Então ficamos acertados. Próximo post será sobre o xCode e uma introdução ao Objective-C. Espero que tenham gostado e vamos dar uma atenção maior ao mundo dos aplicativos mobile. Essa é uma tendência.

Bom final de semana para todos. :-)

Programadores pensam em Usabilidade?

March 4th, 2010 2 comments

O título do post me veio a mente quando parei para pensar e percebi que mesmo sem notar eu estava focando meus estudos em usabilidade. Quando estudava CSS, biblioteca JS como jQuery eu não estava pensando em apenas fazer softwares bonitinhos, e sim em melhorar cada vez mais a interface com o usuário. Exite um vídeo que já está virando um clássico que retrata bastante um sentimento sentido por ambos os lados. Que lados são esse? O lado do Design e o lado do desenvolvedor.

Vamos a eles:

O desabafo de um Web Designer

Desabafo de um Desenvolvedor Web

Já tivemos outros post sobre o assunto. O @rponte blogou sobre esse tema aqui, mas como eu disse estou iniciando uma série baseada em estudos que estou fazendo nessa linha área e quero compartilhar com vocês.

Mas tudo na vida tem que existir uma motivação, em um dos materiais que estou lendo, diz que a fraca usabilidade pode fazer falhar até a solução tecnologicamente mais avançada

Muitas vezes conversando com alguns amigos percebo que, nós, que estamos na implementação não pensamos o que o usuário espera do nosso software. Mas será? Eu acredito que todos tentam entregar o que o cliente pediu, mas quem nunca viu o cliente olhando com aquela cara de quem não está entendendo nada?? Mesmo ele sabendo o que o software vai gerar ele não tem noção do que está vendo na tela. Em muitos casos nos preocupamos bastante com a tecnologia empregada na construção do software, falamos muito na arquitetura super-hiper-mega mágica, mas não pensamos na interface.

Pois deixa eu contar um segredo. “O usuário não ta nem vendo pra tecnologia usada pra fazer o software dele.. Ele quer é usar e fazer a coisa acontecer…

Os métodos ágeis pregam que entregar software funcionando é mais importante que documentação detalhada. Mais uma prova que o cliente quer usar, quer ver a coisa acontecendo. Já tive experiência com implantação de software e já ouvi frases como essa:

“Esse seu software aumentou em 8 passos a emissão da nota fiscal…”

“Porque não posso usar o teclado nessa tela?”

Outra novidade para nós. O cliente é como uma pessoa que come com os olhos, não sabe se a comida é boa, mas se é bonita, ele come. O cliente compra o software com os olhos. Quem diz que a beleza vem depois é MENTIROSO, ou será que quando você primeiro descobre o QI de uma mulher para depois analisar se ela é bonita aos seus olhos??? :-) NUNCA!!!

Veja algumas áreas que se relacionam com IHC (Interação-Humano Computador)

  • Psicologia Cognitiva
  • Ergonomia e Fatores Humanos
  • Aspectos Sociais e Organizacionais
  • Engenharia
  • Design
  • Antropologia
  • Sociologia
  • Filosofia
  • Linguística
  • Inteligência Artificial
  • Ciências da Computação

Todas essas áreas com estão relacionadas com nosso estudo, e ainda tem gente que acha que pode negligenciar essa área. Quem já leu a bíblia? Eu entendo que mesmo você sendo um ateu deveria ler a bíblia, pois não pode negligenciar o livro mais lido do mundo. Se você não se preocupa com IHC está sendo burro e pode colocar todo um projeto a baixo.

Mas falamos de usabilidade e ainda não definimos o que é isso, então lá vai.

“Usabilidade é um termo usado para definir a facilidade com que as pessoas podem empregar uma ferramenta ou objeto a fim de realizar uma tarefa específica e importante.Fonte: Wikipédia

Este post tem como objetivo apresentar o que estou estudando e que estarei postando em breve. Estarei me aprofundando um pouco mais no assunto fazendo um link com tecnologias que nos ajudarão a melhorar a usabilidade em nossos softwares. Não quero que ninguém vire design ou que o design seja um programador, mas que tenhamos esse cuidado para não acontecer algo parecido com essa imagem a baixo. :-)

Um grande abraço e até o próximo post.

Categories: Artigo, IHC, Vídeos Tags: ,

Não procure emprego, deixe que ele te procura

February 23rd, 2010 6 comments

Bem, quando falo em procurar emprego, na minha mente, vem logo a figura da pessoa que já está inserida no mercado de trabalho, ou seja, exclui o que está começando a carreira. Mas não vou deixar essa figura de fora não.

  • Estagiário
    • Esse é o profissional que está ingressando no mercado de trabalho, o tema não parece caber muito para essa pessoa, mas cabe sim. Já tive a oportunidade de trabalhar com vários estagiários, e presenciar várias situações. E tem uma frase que ouvi de uma analista que trabalha comigo que diz muita coisa e nunca mais esqueci: “A fase de estágio é onde é formado o carater do profissional.” Ta mais do que explicado né? Se você está começando agora, lembre-se disso. A Fase de estágio é onde você será formado. Pense que é sua primeira experiência com uma chefia, com projetos de verdade, mesmo que vc esteja sendo monitorado mas no final será gerado artefatos que irão para produção. Então lembre-se, existe uma forma de entrar, uma forma de passar e mostrar seu potencial, e uma forma de sair. Saia sempre pela porta da frente.
  • Quilometragem
    • De onde eu tirei isso, né? Ouvi isso quando consegui ser programador na Fortes Informática. Um dos programadores chegou pra mim e disse. “Pantoja, vc está na fase de fazer o contador girar. Não se preocupe com o salário. Ganhe experiência”. E foi isso que fiz por um bom tempo. Tentei extrair dos mais experientes tudo que eu podia. E hoje eu agradeço bastante o que fizeram por mim. Mas acredite, isso não acaba aqui. Se vc quer realmente crescer, você vai entender que o aprendizado é continuo. O contador nunca vai parar, quanto mais vc estuda mais descobre que ainda falta muita coisa. Mas perceba uma coisa, a medida que você aprende você começa a compartilhar. Lembre-se que seu conhecimento, se compartilhado, terá um valor maior. Comece a se mostrar, mas de forma sábia. Leia neste post o que o autor quis dizer com o título (Quer se tornar um programador de sucesso? Pare de escrever código)

O momento em que você começa a compartilhar suas conquistas profissionais é o momento onde vc tem que entender o título desse post. É o momento que você tem que entender que o que você faz é que vai ditar as regras. O produto que você gera que vai definir seu preço no mercado, sua experiência vai valer muito mais que várias certificações no currículo. É onde você vai entender que uma indicação vale mais que um currículo bem escrito. Na nossa área existem basicamente dois tipos de profissionais. Os que sabem resolver problemas e os Code Monkeys. Em qual você se encaixa? Como vc é visto hoje? Você sabe responder essa pergunta?

Valorize sua rede de contatos, lembre-se sempre deixe as portas abertas. Mostre seu trabalho e aguarde que a recompensa virá. No post anterior, tem um link para um vídeo onde o palestrante fala de 8 pontos para ter sucesso na carreira. São eles:

  1. Paixão (Fazer as coisas por amor e não por dinheiro.)
  2. Trabalhe (Nada vem fácil, mas quando se trabalhar com amor você acaba se divertindo.)
  3. Seja BOM no que você faz. (Pratique, pratique e pratique um pouco mais..)
  4. Mantenha o Foco
  5. Esforce-se (Mentalmente e Fisicamente)
  6. Dê algo de valor
  7. Contribua com Idéias
  8. Seja persistente

Pois é estava querendo escrever isso a um bom tempo e hoje eu consegui. Sou um apaixonado pelo que faço e não me canso de tentar melhorar meu trabalho, mesmo sabendo que ainda peco bastante em alguns pontos, mas ninguém é perfeito né? O Importante é que sempre devemos tentar fazer o melhor. O resto é consequência!

Grande abraço a todos e até o próximo post. :-)

Categories: Artigo, Carreira, Dicas Tags: ,

Arquitetura MVC.. (MVC1 e MVC2)

May 26th, 2009 1 comment

Quando estudamos a evolução da computação observamos a evolução arquitetural das aplicações voltadas para web. Ouvimos falar em camadas, no paradigma MVC, siglas como MVC1 e MVC2, mas o que é tudo isso? Tentarei explicar uma dúvida que surge na cabeça de muitas pessoas, mas que procurando algumas referências não é algo muito complicado de se entender. Essa dúvida surgiu na minha cabeça e por isso tentarei explicar como cheguei a uma conclusão.

MVC1 foi a primeira geração para implementar a arquitetura MVC em páginas JSP. Onde requisições HTTP são enviadas para uma página JSP que implementa um controlador que envia as requisições para o modelo para que sejam retornadas para a camada de visão.

Esse tipo de abordagem combina Visão, controle e funcionalidades que serão colocadas dentro das páginas JSP, isso quebra o paradigma MVC, pois as funcionalidades não deveriam estar contidas dentro da visão. Essa abordagem é mais adequada para quem quer prototipar, não é recomendada para desenvolvimento muito sério. Outro ponto importante dessa abordagem é que ele aceita vários controles, para cada módulo pode-se implementar um controlador.

Então surge o MVC2, esse termo foi inventado pela SUN para descrever uma arquitetura para aplicações web. A primeira grande diferença é que o MVC2 aceita apenas um controlador para toda a aplicação. Outra coisa importante é a possibilidade de implementar web services tornando possível que a camada de visão seja formada por outras aplicações com codificação diferente.

Essa abordagem é mais aconselhada para aplicações de grande porte, pois ela divide de forma clara as camadas e divide o código, separando tudo que é visão, controle e lógica de negócio, facilitando a implantação de técnicas de qualidade de código. Como por exemplo: Testes unitários que tem como objetivo aumentar a qualidade do código na busca eterna contra erros de codificação.

Então essa foi uma breve explicação sobre o que é MVC1 e MVC2. Espero ter clareado as idéias.

Abração!!!

Categories: Artigo, Java Tags:

Decepção com a Informática….

March 18th, 2009 6 comments

Com o passar do tempo, venho percebendo que o profissional de informática vem se frustrando são colocados muitos motivos para justificar essa decepção, entre elas vem a remuneração que não é satisfatória. Mas porque será que tanta gente se decepciona com a profissão de informática??

Isto é um questionamento que venho me fazendo a muito tempo. Será que eu também vou me decepcionar com a profissão que escolhi? Escolhi por ser um apaixonado por informática, por adorar tecnologia e querer sempre fazer parte da explosão que a informática proporciona.

Mas falar dos motivos da decepção não seria o foco pois não faria diferença para quem já está decepcionado. Salário baixo é um assunto interessante a ser tratado isso realmente causa desmotivação mas vamos falar de um assunto que pode dar suporte ao profissional para continuar trabalhando com prazer e tendo sucesso e reconhecimento na área que é o que eu acredito que a grande maioria busca. Se você entra em uma área buscando apenas dinheiro não tem o que falar. Você vai se decepcionar!!!

Requisitos mínimos..

O mercado está inundado de profissionais que só sabem o básico, que tiveram formação em faculdades péssimas com qualidade de ensino péssimo. Isso é ruim, pois para quem está em constante atualização, tem uma boa formação e que realmente se esforçou para ter seu lugar no mercado, fica complicado entrar e exigir salários para fazer algo que tem outro que faz “quase igual” (Copia e Cola), mas não sabe o que está fazendo. Sabe que vai funcionar mas não sabe o que realmente está acontecendo. Essa é uma diferença básica, entre o bom profissional e o péssimo profissional, o bom sabe resolver problemas, sabe criar, sabe como funciona, já o péssimo sabe fazer o “Feijão com Arroz“. Copia e cola isso simplesmente vai funcionar porque alguém já deixou pronto.

Outro aspecto importante que deve ser observado é que não conheço um profissional da informática que queira ser diferente , que realmente seja um diferencial e que sabe aproveitar as oportunidades que não saiba inglês. Se você não tem conhecimento em inglês e está inserido nesse contexto então você já está atrás de muitos profissionais. INGLÊS É BÁSICO!!! Os verdadeiros manuais de como fazer algo e como a coisa foi feita está em inglês, material em português de qualidade existe sim, mas acredite, é bem mais complicado achar.

Oportunidades…

Observando o mercado, notamos que as oportunidades existem. O sonho de trabalhar em uma empresa grande, como Microsoft, ou Google pode existir e acredite isso motiva, mesmo parecendo uma ilusão. Mas a internet é um mundo de oportunidades, se você acha que não vai nunca sair do lugar em sua empresa, que seu salário nunca vai ser o que vc sempre quis, que tem que fazer um concurso e viver trabalhando para o governo para ganhar um salário decente, mesmo que isso lhe custe o prazer de fazer o que gosta, está completamente errado, não estou dizendo que concurso público não é uma boa oportunidade, e ainda digo mais, tudo que é feito com a verdadeira vontade é fácil de obter êxito. Então oportunidades existem, se buscarmos na história da informática no mundo, veremos que as grandes empresas de hoje, são o que são, porque ela aproveitaram as oportunidades do momento, mas e nós??? que oportunidades teremos para mostrar nosso potêncial??

Empresas como Facebook que ganha muito dinheiro com um site de relacionamento disponibilizou na internet uma API para desenvolvedores fazerem suas próprias aplicações, não sei quantos viram oportunidade nisso, mas para quem não sabe a empresa está convocando os desenvolvedores de aplicações para dispositivos móveis para participar de uma triagem. Serão selecionados 50 projetos para serem financiados por um fundo de 10 milhões de dolares, isso é uma grande oportunidade para quem está inserido nesse mundo. Cada projeto receberá um fundo de 100 mil dólares para tocar seu projeto. Isso é ou não é uma oportunidade???

Apple disponibiliza nos seus notebooks todo o suporte para desenvolvimento de aplicações para seu celular o iPhone. Onde você pode desenvolver aplicações de disponibilizar para o público. Muitos não sabem mas a apple monitora os nomes dos desenvolvedores que tem aplicações se destacando, então veja as coisas melhorando né???

Poderia passar o dia falando das oportunidades encontradas na internet que podem fazer você sair da lama para o céu. E acredite isso é apenas uma dica, todas os sites de relacionamentos tem sua API. Todo dia tecnologias para web são lançadas ou aprimoradas.

Mas não é só na web, a mobilidade está crescendo. Com a inundação do mercado com tecnologias como 3G. SmartPhones estão ai para isso, carregados de funcionalidades e dando suporte para o profissional da informática fazer loucuras que muita pessoa não pensou ainda. Não adianta sair reinventando a roda nem ter a idéia genial. Apenas tem que estar preparado para o que está entrando no mercado. Se você é especialista em CRUD acredite, você não vai muito longe e vai se decepcionar.

Conclusão..

Tenha uma visão diferenciada da sua área, acredite no seu potêncial, leia bastante, esteja antenado nas mudanças, pois você trabalha com isso, saiba criar e não copiar seja especialista em algo, não seja especialista em CRUD, pois isso todo mundo sabe fazer. Aprenda inglês o mais rápido possível, pelos menos a leitura para que você consiga se atualizar e se comunicar com o mundo. Esteja em constante atualização que as portas sempre estaram abertas.

Um grande abraço a todos.