logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!
Set 24

Gestão 3.0 – Para Líderes Ágeis – Parte 1

Escrito por Edgard Davidson em .NET, 1, 2.0, 4, Agile, AR, arte, auto, BI, bug, C#, camp, Componente, Componentes, control, cultura, demo, Desenvolvedor, desenvolvedores, Desenvolvimento, Desenvolvimento de Software, developer, dynamic, economia, err, exemplo, for, game, gestão, ide, IE, if, int, jogo, Jogos, Livro, Mestrado, mg, O, on, Outros, Pessoal, problema, processo, Projetos, pt, rest, RIA, Ria’s Geral, S+S, social, Software, Tema, UI, Ved, XP @ 09 24th, 2011 | via http://edgarddavidson.com | Sem comentários
Edgard Davidson
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Ol? Pessoal.

Este post ? o primeiro de uma s?rie de posts que pretendo publicar, em formato de resenha, sobre “livros que estou lendo“. Como partida, fiz a primeira de v?rias outras do livro Management 3.0 Leading Agile Developers, Developing Agile Leaders. O livro pretende mostrar como ser um bom gerente ?gil. A base para isso ? o entendimento sobre pessoas e sistemas e a maneira como as pessoas pensam sobre sistemas. Antes de tudo, os gerentes devem compreender como sistemas sociais funcionam.

Introdu??o

GEST?O 1.0 = HIER?RQUICA

Representada por organiza??es hierarquizadas, onde o comando parte da alta ger?ncia funcional, de cima para baixo. Aqueles que est?o no alto da hieraquia tem altos sal?rios, grandes egos. em contrapartida, aqueles que est?o na base da hierarquia normalmente tem baixos sal?rios, poucas responsabilidades (especializado), e pouca motiva??o para fazer um bom trabalho. Fortemente baseada nos modelos fordistas e tayloristas do in?cio do s?culo. Sua gest?o ? focada no comando controle.

GEST?O 2.0 = MODISMO

S?o as organiza??es essencialmente “Gest?o 1.0”, mas que cont?m pessoas que j? perceberam que esse modelo n?o funciona bem “fora da caixa”. Ent?o s?o criados v?rios modelos adicionais de servi?os e processos como BSB, six-sigma, ITIL, Cobit, Qualidade total, entre outros.

GEST?O 3.0 = COMPLEXIDADE

? uma ger?ncia que percebeu que a organiza??o ? uma rede, formada por pessoas, seus relacionamentos e sua complexidade social e n?o por divis?es funcionais hier?rquicas. Abomina o comando-controle e advoga por uma cultura de lideran?a, hol?stica, org?nica, enxergando a organiza??o como um sistema (complexo) vivo e n?o apenas como uma m?quina.

Por que as coisas n?o s?o t?o simples?

CAUSALIDADE

O determinismos causal infere que as coisas que acontecem hoje s?o causadas por outras coisas que aconteceram antes. Podemos utilizar o determinismo causal, por exemplo, para prever com precis?o quando ser? a pr?xima vez que o cometa Halley passar? pr?ximo da atmosfera terrestre, com base na ?ltima vez que ele passou. Nesse sentido, o determinismo causal habilita que os desenvolvedores ? projetar, planejar e prever tudo o que dever? ser feito no projeto de desenvolvimento de software. Se abstra?rmos qualquer problema de bug, altera??o de requisitos ou cat?strofe interplanet?ria, a causalidade pemite prever com bastante precis?o. Pena que n?o podemos utilizar tamb?m c?lculos astron?micos para determinar a complexidade sist?mica onde projetos de software est?o inseridos. lol.

COMPLEXIDADE

Complexidade n?o tem rela??o com v?rias coisas pra fazer simultaneamente ou com em fazer coisas grandes, a complexidade ? intr?nseca. N?o obstante, v?rias teorias como por exemplo: teoria dos sistemas din?micos (Dynamical systems theory), teoria do caos (chaos theory), teoria dos jogos(game theory), tentam explicar por que alguns fen?menos s?o imprevis?veis e n?o podem ser calculados apenas com a experi?ncia e observa??es emp?ricas. O campo da ci?nica que estouda esses fen?menos ? nomeada como teoria da complexidade (complexity theory).

A teorias da complexidade, de certa forma, ? um “conforto” para gerentes, lideres de time e gestores em organiza??es que desenvolvem software. Isso significa que nem tudo est? perdido, h? um novo paradigma cient?fico, baseado na complexidade de sistemas, que ajuda a entender o problema da volatilidade e incertezas em desenvolvimento de softwares.

REDUCIONISMO

O reducionismo ? a abordagem que se baseia na desconstru??o de algo em partes menores, para analis?-las e a? sim entender o todo,. Entendimento do sistema pelo entendimento das partes. Essa t?cnica pode ser utilizada, por exemplo, para desconstruir um computador para entender como ele funciona, para dissecar um animal para entender como seus org?os internos funcionam. No entanto, em algumas ?reas, onde a imprevisibilidade ? uma constante, a utiliza??o da abordagem reducionista n?o ? capaz de determinar, por meio da desconstru??o e an?lise das partes, o entendimento do todo. Enquadra-se nisso, estudos sobre: organismos, consci?ncia humana, as economias, climas, e projetos de software

HOLISMO

O Holismo ? a ideia de que o comportamento do sistema n?o pode ser completamente determinado pelos seus componentes isolados. A vis?o hol?stica pode ser vista como o oposto ao reducionismo, onde a vis?o do sistema como um todo determina comportamentos importantes para ele.

GERENCIAMENTO ?GIL

Uma das bases do desenvolvimento ?gil de software est? na teoria da complexidade. Os valores e princ?pios ?geis corroboram para reconhecer que o determinismo causal ? insuficiente para entregar projetos de sucesso. Conceitos bem conhecidos como auto-organiza??o, multi-disciplinaridade, autonomia s?o oriundos da ci?ncia da complexidade.

O MODELO DA GEST?O 3.0

O modelo da gest?o 3.0 mostra como gerenciar equipes sabendo que os sistemas s?o complexos, n?o lineares, n?o previs?veis e carentes de adaptabilidade. Para o entendimento de sistemas complexos, ? necess?rio, a priori, uma vis?o hol?stica do todo como objetivo de estudar a complexidade social. A gest?o 3.0 ? um modelo de gest?o ?gil que aplica a teoria dos pensamentos complexos (complexity thinking) em equipes de desenvolvimento de software ?gil. Sob o olhar do pensamento dial?tico, esse modelo compreende os encalsos do reducionismo no ambiente de desenvolvimento de software (tese), aceita a oposi??o e acredita em uma vis?o hol?stica, sist?mica e social (ant?tese), para criar uma nova ideia denominada gest?o 3.0 (s?ntese). A figura abaixo ilustra o modelo de gest?o 3.0.

Jul 29

Busca por controles na árvore visual de aplicações Silverlight e WPF

Escrito por Kelps Sousa em .NET, 1, 2.0, 4, 6, AR, bar, Behavior, Behaviors, Blend, blog, busca, C#, camp, class, classe, código, Componente, Componentes, control, Controles, Dica, Dicas, DRE, event, Evento, Eventos, exemplo, expression, Expression Blend, for, galeria, Google, IE, if, int, layout, map, mg, Microsoft, mousewheel, MSDN, News, O, on, padrão, painel, problema, problemas, procura, pt, RIA, Ria’s Geral, S+S, Scroll, silverlight, Silverlight 3, Silverlight 4, site, social, TAT, template, Tree, UI, window, WPF, XAML, XP @ 07 29th, 2011 | via http://kelps-sousa.blogspot.com/ | Sem comentários
Kelps Sousa
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Ontem eu vi uma pergunta no fórum de Silverlight do MSDN sobre como achar todos os campos TextBox que existem dentro de uma ChildWindow. Já havia algumas respostas para a pergunta mas elas eram bem pontuais para aquele problema específico e necessitavam de várias suposições sobre a estrutura da aplicação para funcionar sem problemas (por exemplo, saber quais tipos de Panel estão sendo usados). Alguns anos atrás, quando eu comecei a fazer uma das minhas primeiras behaviors para publicar na galeria do Expression Blend, eu descobri uma classe do Silverlight (também existe no WPF) que serve justamente para permitir navergarmos na árvore visual de uma aplicação, tanto procurando controles filhos quanto pais de um determinado controle.

A behavior em questão é a que permitia que se fizesse scroll com a wheel do mouse (a rodinha) em controles que apresentassem scrollbar para aplicações feitas em Silverlight 3. Hoje essa behavior praticamente não é mais necessárias pois o Silverlight 4 já implementa esse comportamento nativamente, mas não era esse o caso na época. Para poder implementar essa função eu precisei criar um código que fosse capaz de ler toda a hierarquia visual do controle (vasculhando todos os componentes do qual o template do controle era composto), procurando por algum ScrollViewer. Se eu o encontrasse, a behavior assinava os eventos necessários do controle para que o scroll funcionasse como esperado.

Para navegar pela árvore visual, a classe que utilizei foi a VisualTreeHelper. Voltando ? dúvida do fórum, eu decidi criar um método genérico que fosse capaz de encontrar todos os controles de um determinado tipo em uma hierárquia utilizando essa classe, assim estaria garantindo que não precisaria ficar colocando “if”s para cada tipo de painel diferente que aparecesse na minha frente. Sem mais delongas, segue abaixo o método que eu fiz.

public static T[] SearchUIElements(UIElement root, int maxlevel = int.MaxValue, int level = 0)     where T : UIElement 

    var result = new List();

    if (root != null)         if (root is T)             result.Add(root as T);

        if (level < maxlevel)             var childrencount = VisualTreeHelper.GetChildrenCount(root);            DependencyObject child;            for (var i = 0; i < childrencount; i++)                 child = VisualTreeHelper.GetChild(root, i);                if (child is UIElement)                     result.AddRange(SearchUIElements(child as UIElement, maxlevel, level + 1));

            }        }    }

    return result.ToArray();}

Como vocês podem ver o método não é grande e é bem simples. Ele aceita 3 parâmetros:

  • root: controle raiz a partir de onde será iniciada a busca. Por exemplo: LayoutRoot.
  • maxlevel: número máximo de níveis que a busca irá “descer” nos descendentes. Este parâmetro é opcional e o seu valor padrão é int.MaxValue, garantindo que será lida a hierarquia inteira a partir do ponto inicial.
  • level: nível atual da busca. Esse parâmetro é utilizado apenas pela própria função para controlar quando a busca atingirá o nível máximo solicitado pelo usuário.

A função é genérica. O parâmetro T serve para indicar qual tipo de controle será procurado, assim como permitir que o retorno sejá tipado corretamente. A é executada de forma recursiva, chamando a si mesma para cada novo ítem na hierarquia.

O resultado da função é sempre um array do tipo de controle solicitado. Esta função sempre retorna uma array, mesmo que seja vazio (não será retornado null).

Abaixo temos um xaml de exemplo e algumas chamada ? função com a descrição do que será encontrado em cada caso.

<Grid x:Name="LayoutRoot">    <TextBox />    <TextBox />    <Grid>        <TextBox />        <TextBox />        <Grid>            <TextBox />        Grid>    Grid>Grid>
//acha TODOS os 5 campos TextBox var textboxes = SearchUIElements<TextBox>(LayoutRoot);

//acha apenas os 2 campos TextBox de LayoutRoottextboxes = SearchUIElements<TextBox>(LayoutRoot, 1);

//acha 4. Os 2 acima e os 2 que estão no primeiro Grid filhotextboxes = SearchUIElements<TextBox>(LayoutRoot, 2);

//acha TODOS os Grids a partir de LayoutRoot, inclusive ele mesmo var grids = SearchUIElements<Grid>(LayoutRoot);         

Agora que eu já mostrei como faz, você acha que consegue fazer uma função semelhante que navegue ao contrário na hierárquia? (procurando nos pais de um controle até chegar na raíz da aplicação…). Fica o desafio. Winking smile



Jul 24

Princípios de Projeto OO – Single Responsibility Principle (SRP)

Escrito por Edgard Davidson em 1, 2.0, 4, 6, Agile, Air, api, AR, BI, blog, Blogs, boolean, C#, camp, class, classe, classes, dados, Design, Design Pattern, Design Patterns, Dica, for, ide, if, image, int, Java, mg, Microsoft, MSDN, O, on, pattern, POO, pt, RIA, Ria’s Geral, S+S, Software, TAT, UI, UML, zend @ 07 24th, 2011 | via http://edgarddavidson.com | Sem comentários
Edgard Davidson
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Princ?pio da ?nica Responsabilidade:

“Nunca deve haver mais de um motivo para uma classe ser alterada”

Cada responsabilidade constitui-se uma dimens?o de mudan?as. Se uma classe tem mais de uma responsabilidade, ent?o haver? mais de uma raz?o para alter?-la. Quanto mais responsabilidades h? numa classe, mais fr?gil (maior risco de para de funcionar) torna-se o projeto.

Viola??o do princ?pio:

Considere a Classe TAD:

import java.util.Vector;

/**
 *
 * @author Edgard Davidson
 */
public class TAD 

    private Vector vector;

    public TAD()
        vector = new Vector();

    public void empilhar(Object element)
        vector.insertElementAt(element, 0);

    public Object desempilhar()
        if (!this.eVazia())
            Object result = vector.firstElement();
            vector.removeElementAt(0);
            return result;
         else
            return null;

    }

    public void enfileirar(Object element)
        vector.add(element);

    public Object desenfileirar()
        if (!this.eVazia())
            Object result = vector.firstElement();
            vector.removeElementAt(0);
            return result;
         else
            return null;

    }

    public int obtemTamanho()
        return vector.size();

    public boolean eVazia()
        return vector.isEmpty();

}

Como pode ser visto, a classe TAD (Tipo Abstrato de Dados) ? uma classe que possui mais de uma responsabilidade. Ela implementa o contrato de um Pilha com os m?todos (empilha e desempilha) e o contrato de uma Fila com os m?todos (enfileira e desenfileira). A classe TAD viola o princ?pio da ?nica responsabilidade. Para se adequar ao princ?pio, ? necess?rio aplicar a refatora??o Extrair Classe. Essa t?cnica de refatora??o ? a mais indicada para o caso da viola??o do SRP. Sempre que houver uma classe fazendo o trabalho que deveria ser feito por duas classes, aplique a referida refatora??o para criar uma nova classe movendo os campos e m?todos pertinentes da classe antiga para a classe nova.

Al?m de aplicar a refatora??o Extrair Classe, na adequa??o ? viola??o do princ?pio, foi renomeado tamb?m a classe TAD, que n?o possuia um nome significativo ao seu contrato. Ap?s aplica??o de Refatora??o temos:

Adequa??o ao princ?pio:

Antes de mostrar a solu??o, a figura abaixo ilustra o contrato de uma Pilha e o contrato de uma Fila. Ambas s?o estruturas de dados com comportamentos diferenciados. A pilha implementa um algoritmo de LIFO (Last In, First Out), o ?ltimo a entrar ? o primeiro a sair. J? a fila implementa um algoritmo de FIFO (First In, First Out), o primeiro a entrar ? o primeiro a sair.

O diagrama de classe original foi refatorado e a classe TAD foi renomeada para Pilha e todos os m?todos referentes ao contrato de uma fila, ap?s aplicado o Extrair Classe e foram movidos para a classe Fila

Implementa??o da classe Pilha

import java.util.Vector;

/**
 *
 * @author Edgard Davidson
 */
public class Pilha 

    private Vector vector;

    public Pilha()
        vector = new Vector();

    public void empilhar(Object element)
        vector.insertElementAt(element, 0);

    public Object desempilhar()
        if (!this.eVazia())
            Object result = vector.firstElement();
            vector.removeElementAt(0);
            return result;
         else
            return null;

    }

    public int obtemTamanho()
        return vector.size();

    public boolean eVazia()
        return vector.isEmpty();

}

Implementa??o da classe Fila

import java.util.Vector;

/**
 *
 * @author Edgard Davidson
 */
public class Fila 

    private Vector vector;

    public Fila()
        vector = new Vector();

    public void enfileirar(Object element)
        vector.add(element);

    public Object desenfileirar()
        if (!this.eVazia())
            Object result = vector.firstElement();
            vector.removeElementAt(0);
            return result;
         else
            return null;

    }

    public int obtemTamanho()
        return vector.size();

    public boolean eVazia()
        return vector.isEmpty();

}

Com essa nova implementa??o, a classe Pilha e a classe Fila s?o extremamente coesas, possuem apenas um prop?sito, uma ?nica responsabilidade e apenas um contrato

Outras refer?ncias

  • http://engenhariadesoftwareagil.com/?p=236
  • http://www.objectmentor.com/resources/articles/srp.pdf
  • http://davidhayden.com/blog/dave/archive/2005/05/29/1066.aspx
  • http://c2.com/cgi/wiki?SingleResponsibilityPrinciple
  • http://msdn.microsoft.com/en-us/magazine/cc546578.aspx
  • http://codebetter.com/blogs/david_laribee/archive/2008/09/09/why-solid-gimme-an-s.aspx
  • Head First Design patterns. pags 185, 336, 339, 367
  • Agile Principles, Patterns, and Practices in C#.
  • UML for Java Programmers
Jul 19

Body Online Suplementos Nutricionais

Escrito por Cognitiva Soluções em .NET, 1, 2.0, 3.5, 4, 6, AR, BI, blog, Blogs, C#, camp, campanha, cliente, consultoria, e-commerce, Google, IE, image, int, internet, mg, News, O, on, online, Redes Sociais, rest, RIA, Ria’s Geral, S+S, serviço, tv, UI, zend @ 07 19th, 2011 | via http://blog.cognitivasolucoes.com | Sem comentários
Cognitiva Soluções
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

A Cognitiva Soluções Empresariais está prestando consultoria a Loja Virtual Body Online Suplementos Nutricionais.

Acesse a Loja aqui.

Estamos prestando serviço de assessoria e-commerce. Fazendo campanhas publicitárias em redes sociais e na internet. Assim, nosso cliente entrará com o pé direito nesse novo mundo de possibilidades ilimitadas.

Jul 4

1° Evento #HoraExtraBH

Escrito por Edgard Davidson em 1, 2.0, 4, 6, Air, Android, aplicaçoes, AR, BI, C#, camp, case, cultura, Design, Eventos, iphone, mobile, O, on, Palestra, Ria’s Geral, S+S, servidor, UI @ 07 4th, 2011 | via http://edgarddavidson.com | Sem comentários
Edgard Davidson
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Inscreva-se j?: http://bit.ly/igiRXU

Dia: 09/07, s?bado

Local: UNA campus Aimores localizado na rua Aimores, 1451, bairro Lourdes

Programa??o:

  • 08:30 as 08:50 – Case 1 – Douglas aguiar – “consolidando uma nova cultura na empresa”
  • 09:00 as 09:40 – Palestra 1 – Edgard Davidson – “Porque virar professor?”
  • 09:50 as 10:10 – Case 2 – Herberth – “NOSQL + Python na Deskmetrics”
  • 10:20 as 11:00 – Case 3 – Rafael Spinola – Solucao com Servidores cloud
  • 11:10 as 11:30 – Case 4 – Dirceu Belem “Implantacao de aplicacoes para mobile como: ipad, iphone e android
  • 11:40 as 12:00 – Case 5 – Marcello Cardoso “Design centrado no usuario”
  • 12:00 as 13:00 – Mesa redonda
  • 13:00 as 14:00 – Pausa para almoco.
  • 14:00 as 16:30 – Dojo (Pra quem quiser ficar)


Jun 17

Abertas as inscrições para a nova turma do curso de Pós Graduação em Engenharia de Software Centrada em Métodos Ágeis

Escrito por Edgard Davidson em 1, 4, 6, AR, Arquitetura, bar, BI, blog, C#, camp, código, concurso, Curso, Cursos, Desenvolvimento, Desenvolvimento de Software, Desenvolvimento RIA, Desenvolvimento Web, educacao, event, fonte, for, IE, int, O, on, Pessoal, PHP, RIA, Ria’s Geral, S+S, Software, Tema, Teste, UI, uint, usabilidade, web @ 06 17th, 2011 | via http://edgarddavidson.com | Sem comentários
Edgard Davidson
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Ol? Pessoal

Est?o abertas as inscri??es para a nova turma do curso de P?s Gradua??o em Engenharia de Software Centrada em M?todos ?geis ofertado pela UNA

Estrutura curricular

  • M?todos ?geis de Desenvolvimento de Software
  • Engenharia de Requisitos ?geis
  • Modelagem ?gil de Software
  • Engenharia de Usabilidade
  • Programa??o Orienta??o a Objetos
  • Padr?es de Projeto
  • M?todos e T?cnicas de Pesquisa
  • Arquitetura de software
  • Teste de Software
  • Desenvolvimento RIA
  • Desenvolvimento WEB
  • Laborat?rio de Engenharia de Software ?gil

Carga hor?ria
360 h/aula com 1 ano de dura??o.

Dias e hor?rios – Semanal

  • Turma 01: (Sextas-feiras, das 19h10 ?s 22h40) e (S?bados, das 08h30 ?s 12h) e eventuais s?bados ? tarde, das 13h ?s 16h30). Campus Barro Preto
  • Turma 02: Diurno: Ter?a, Quinta e eventualmente outra dia da semana para fechamento de carga hor?ria: 8H30 ?S 12H. Campus Gujajaras

Acesse mais informa??es no stie oficial da UNA ou no blog do curso

Fa?a sua Inscri??o

Jun 10

AUG FlexDuck – Boas vindas aos novos managers

Escrito por Stefan Horochovec em 1, 2.0, 2009, 4, 6, Adobe, Adobe Flex, AR, AUG, BI, C#, camp, Catalyst, comunidade, Curso, demo, eduardo Kraus, email, empresas, encontro, err, event, Evento, Eventos, Ferramenta, flash, Flash Catalyst, Flex, Flex 4, FlexDuck, for, gratuito, IE, if, Mac, mobile, novidade, Novidades, O, on, online, Outros, Palestra, Palestras, Pessoal, Projetos, RIA, Ria’s Geral, S+S, site, Software, TAT, Tecnologia, UI, UX, XP, zend @ 06 10th, 2011 | via http://www.horochovec.com.br/blog | Sem comentários
Stefan Horochovec
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá pessoal!

Recentemente eu me desliguei da coordenação do AUG FlexDuck e resolvi fazer esse post para comunicar a todos da comunidade, explicar meus motivos e desejar uma boa sorte aos novos coordenadores.

O AUG FlexDuck para quem não se lembra ou não sabe foi fundado no dia 23/03/2009, na época a pessoa de contato foi a querida Rachel Luxemburg. Fiquei muito feliz quando eu abri meu email naquela manhã e vi que tinha um email com o título: “Flex Duck (I love that name!)”. O email continha as informações sobre como configurar o site do groupo no Adobe Groups.

A partir desta data, foram 2 anos e 3 meses a frente do grupo, aonde tivemos cerca de 12 eventos presenciais, aonde visitamos diversas universidades da região sudoeste do Paraná, tivemos encontros realizados em parceria com núcleos de tecnologia da região. Também realizamos um curso gratuito de Adobe Flex 4 para acadêmicos do estado do Paraná, ficamos muito felizes que tivemos mais de 60 alunos no curso, realizados em 4 sábados no período da tarde no final do ano passado. Esse ano, realizamos dois encontros onlines trazendo duas palestras para a comunidade, a primeira com Eduardo Horvarth sobre o Adobe Flash Catalyst, e a segunda com Igor Costa sobre Adobe Flex Mobile.

O FlexDuck iniciou como um grupo regional e hoje vive um misto. Reuniões presenciais nas cidades aonde ele está representado, Pato Branco, Francisco Beltrão e Dois Vizinhos, e reuniões online trazendo palestrantes para demonstrar o uso da tecnologia Flex em conjunto com outras ferramentas.

Com essas iniciativas, chegamos a um número de 150 usuários cadastrados no Adobe Groups e vinculados ao grupo, um número que me deixa muito feliz.

Vocês não sabem como é difícil convencer as pessoas a se cadastrarem no site do grupo, criando um perfil na Adobe, etc, etc, etc. A pessoa não perderá 5 minutos da vida dela com essa atitude, mas mesmo assim, não faz. O FlexDuck chegou a sortear em reuniões do grupo, mais de R$ 5.000,00 em prêmios, entre licenças de softwares (cedidas pela Adobe USA e FDT) e bolsas de estudos (cedidas pela RIACycle e Eduardo Kraus), e inclusive ganhadores de prêmios não fizeram sua vinculação ao grupo, o que me deixou muito chateado (nunca foi obrigatório que alguém se cadastrasse no grupo, mesmo ganhando algum prêmio).

Mas enfim, devido a novos projetos pessoais, estou me afastando da coordenação do AUG. E com isso, duas novas pessoas estarão a frente do grupo. A primeira delas, é o Diego Maehler (Dois Vizinhos), que irá atuar como Manager, e nosso Co-Manager será o professor Roberto Padilha (Francisco Beltrão).

Espero que todos recebam os novos managers com muito carinho, são pessoas que estão abrindo tempo de sua vida pessoal por acreditar que vale a pena fazer esse trabalho pela comunidade. Eu digo com toda a sinceridade, vale muito a pena sim, é muito legal esse trabalho, e realmente só estou deixando o posto por estar me envolvendo com outros projetos (em breve novidades virão).

Quero agradecer a todos que confiaram em mim a frente do grupo, principalmente a Rachel no primeiro momento, que era a pessoa que acompanhava os grupos aqui no Brasil, depois ao John Koch, que é o atual Community Manager aqui na América Latina, que eu tive um enorme prazer de conhece-lo no Flash Camp Brasil em Macéio.

Também quero agradecer as empresas que acreditaram no trabalho do grupo e nos patrocinaram, são elas: RIACycle, PowerFlasher e ao Eduardo Kraus, pelas bolsas de estudos e licenças de softwares.

Também quero agradecer a todos da comunidade, nesse caso, não irei citar nomes porque senão o post vai ficar muito extenso e não quero correr o risco de esquecer de ninguém que me ajudou nessa jornada. Um muito obrigado a todos que fizeram favores pelo AUG!

Esse é somente um “até breve” meu a comunidade. Não estou me afastando, muito pelo contrário….

Um forte abraço a todos os membros do AUG FlexDuck!

Mai 19

Enriquecendo sua aplicação flex utilizado eventos do teclado

Escrito por Willian Mano em .NET, 1, 2.0, 4, app, AR, arte, Atalhos, BI, blog, break, browser, C#, camp, case, class, classe, código, código fonte, err, erro, event, Evento, Eventos, exemplo, flash builder, Flex, fonte, for, git, html, IE, if, int, internet, map, mg, O, on, redeRIA, rest, RIA, Ria’s Geral, Rich Internet Application, S+S, screen, Screencast, screencasts, Scroll, site, state, TAT, Tema, Tutorial, Twitter, UI, Ved, XP @ 05 19th, 2011 | via http://blog.willianmano.eti.br/ | Sem comentários
Willian Mano
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Como a maioria deve saber o significado de RIA é rich internet applications. Há muito tempo atrás, assistindo a um dos screencasts do? Vedovelli, ele falou que o flex é muito rico e que você pode melhorar a experiência dos usuários trabalhando os pequenos detalhes da aplicação. Coisas como limpar os campos e mudança de foco são primordiais para deixar suas aplicações mais intuitivas e fáceis de serem usadas.

Baseado nisso eu passei a prestar um pouco mais de atenção nesses detalhes e uma das coisas que veio ? cabeça foi os eventos de teclado. Claro eu não poderia de deixar de citar meu amigo? @brunoaraujo_id que foi o primeiro que eu vi a manipular esse tipo de evento e quem também me mostrou um exemplo no qual vou mostrar aqui.

Historinhas ? parte, vamos ao que interessa.

Nesse tutorial eu irei (tentarei) explicar como trabalhar com eventos de teclado e também como eles podem ser úteis na sua aplicação.

Primeiro vamos a um simples exemplo para que possamos observar um pouco melhor a classe KeyboardEvent.

Seu browser não suporta iframes.

No exemplo acima tem duas caixas de texto, quando você digita algo na primeira caixa de texto ele exibe na caixa de baixo as propriedades do evento. Nesse primeiro passo nós iremos observar apenas o? charCode e o? keyCode.

  • charCode: é o código do caractere, ele obedece a tabela ASCII e você pode pegar o valor de cada caractere? aqui. Lembrando que cada caractere tem seu código, ou seja, o a minúsculo é diferente do A MAIÚCULO.
  • keyCode: é o código numérico que corresponde ao valor da tecla no teclado. Ele pode variar conforme sistema operacional e dispositivo.

O mapeamento desses eventos é bem simples você deve apenas verificar qual a tecla pressionada e apartir dai executar alguma ação. Exemplo.

switch(event.keyCode) 

  //Quando o usuário apertar o esc
  case 27:
    //Executa alguma ação
  break;
  //Quando o usuário apertar o enter
  case 13:
    //Executa alguma ação
  break;

Bom, já sabemos qual evento iremos trabalhar e como pegar o código de uma tecla apertada, mas em que isso será útil? O próximo evento ilustra isso perfeitamente.

No exemplo acima eu estou mapeando os eventos do enter e do esc.

Quando o usuário está no state de login e pressiona enter ele verifica se o campo está vazio, se estiver mostrará uma mensagem de erro, caso contrário ele passará para o próximo state. Se o usuário pressionar esc o campo será limpo.

No state de senha ao pressionar esc ele também verifica se o campo está vazio, se estiver ele vai volta para o state de usuário, caso contrário ele irá limpar o campo. Se o usuário apertar enter ele irá dar uma alert avisando que naquele momento seria a hora de fazer o login.

Bom, mais explicações pelo código fonte, ele está bem simples de fácil compreensão.

Você pode também criar atalhos em seu aplicativo, pode por exemplo, fazer com que um ctrl+n deixe o texto em negrito.

Vamos a uma rápida passada sobre isso.

Volte para o primeiro exemplo e pressione ctrl + i.

O resultado do evento será:

[KeyboardEvent type="keyDown" bubbles=true cancelable=false eventPhase=3 charCode=105 keyCode=73 keyLocation=0 ctrlKey=true altKey=false shiftKey=false]

Notem que agora o ctrlKey tem o valor true. Usando no seu código você verifica se ele é true e depois verifica o código da tecla para criar as combinações de atalhos. Agora é só usar a criatividade.

Espero que essas informações tenham sido úteis para vocês.

Abraço e até a próxima.

Post to Twitter

Abr 29

(off) PREÇO JUSTO

Escrito por SamuelFacchinello em 1, 2.0, 4, 6, AR, bar, blog, Blogs, C#, camp, campanha, Flex, Google, mg, O, on, Pov, Ria’s Geral, S+S, site, Twitter, zend @ 04 29th, 2011 | via http://desenvolvendoemflex.blogspot.com/ | Sem comentários
SamuelFacchinello
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá povo, estou fazendo este OFF TOPIC para insentivar a campanha #precojusto entre no site abaixo e assine este protesto. Vamos lutar por um Brasil melhor (ou pelo menos mais barato)!!!!

http://www.precojustoja.com.br

Abr 29

(off) Dev também quer preço justo!

Escrito por Daniel Schmitz em 4, AR, BI, camp, campanha, Desenvolvedor, Desenvolvimento, Flex, for, futuro, int, Mercado, mobile, O, Outros, RIA, Ria’s Geral, Tecnologia, Ved @ 04 29th, 2011 | via http://flex.etc.br | Sem comentários
Daniel Schmitz
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Você desenvolvedor FLEX sabe que o futuro desta tecnologia está diretamente ligada ao mobile. E sabemos também que o desenvolvimento mobile está a pleno vapor lá fora, enquanto o mercado interno começa a dar os primeiros passos. Agora pagar 2400 reais num IPAD é #foda! Ninguém merece!

Por isso estou criando esse post off topic para divulgar a campanha #precojusto. Acesse e assine!

http://www.precojustoja.com.br

« Entradas anteriores | Entradas recentes »

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2791 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com