Chrome chegou à versão 12 e traz muitas novidades…

Chrome chegou à versão 12 e traz muitas novidades…

Criado por Pedro Simões em 27 de Março de 2011 | 65 comentários

Tal como prometido pela equipa de desenvolvimento do Chrome, as versões estão a sair a um ritmo estável e cadenciado. Em todas elas são apresentadas novidades que vão sendo amadurecidas e passadas para as versões mais estáveis.

O incremento dos números de versão reflete sempre uma alteração a nível do motor do Chrome ou do motor do Javascript. Por essa razão saíram esta semana duas novas versões na família Chrome. A versão Beta atingiu a versão 11 e a Dev chegou à 12. Qualquer uma delas está repleta de novidades que vão com certeza ser do agrado dos muitos utilizadores.

Estas duas versões são a antecâmara do que vai ser passado para a versão final do Chrome. São aqui testadas e amadurecidas novas funcionalidades antes de serem disponibilizadas a todos os utilizadores do Chrome. Cada uma das duas versões tem por isso número de versão distinto, consoante a maturidade das implementações.

Algumas dessas novas funcionalidades não são disponibilizadas de forma directa, sendo necessário activá-las através da interface que os programadores disponibilizaram dentro do Chrome. Ficou assim mais simples activar ou desactivar cada uma delas, sem termos de recorrer a adições de flags à linha de comando do executável do Chrome. Coloquem na Omnibox do vosso Chrome o texto about:flags e activem as que entenderem ser necessárias.

Chrome Dev 12

Esta versão é, dentro da familia Chrome, a uma das mais desenvolvidas e a que apresenta sempre as maiores novidades. Apenas tem à sua frente a versão Canary, e mesmo esta apenas retém durante alguns dias essas mesmas novidades.

A release 12 desta versão apresenta algumas novidades que vão com certeza ser incorporadas nas restantes versões, depois da devida maturação e resolução de eventuais bugs que surjam. Depois de ter visto o seu ícone ser alterado, o Chrome voltou atrás e nesta versão aparece o antigo. Provavelmente esta alteração será revertida.

Outras novidades que a versão 12 apresenta estão relacionadas com funcionalidades do próprio browser. Existe uma nova página quando abrimos um separador novo. Esta aparenta estar preparada para equipamentos com suporte para toque. Para já, está numa fase ainda muito embrionária e apenas disponibiliza o acesso às WebApps instaladas. Se a quiserem testar devem activa-la na zona de experiências do Chrome (about:flags).

Outra novidades que também está acessível na mesma zona é a disponibilização de um contador de FPS sempre que a aceleração por hardware for usada.

Chrome Beta 11

A nova versão beta do Chrome trouxe para a ribalta algumas das funcionalidades que estão em testes na versão Dev há já algum tempo. A primeira e mais visível é a alteração do logótipo do Chrome (que entretanto voltou à original na versão Dev). Existiram ainda alterações no motor Webkit e no V8, motor de JavaSript, e foram adicionadas funcionalidades como transformações CSS 3D e compositing suportadas por aceleração GPU.

Para além das novidades mais óbvias, existe uma que fará as delicias de todos os utilizadores desta versão Passou a estar disponível o suporte para a utilização de uma funcionalidade que o HTML5 implementa e que é o HTML5 Speech Recognition, ou seja, o reconhecimento de voz. Passamos a poder introduzir texto no Chrome através da utilização da nossa voz, podendo assim ditar texto para o Chrome e este converte-o de forma automática. Podem testar esta funcionalidade nesta página. Devem ter instalado no vosso computador a versão Beta 11 ou a Dev 12.

Todas as novidades que têm sido apresentadas para o Chrome estão a torna-lo num browser muito apetecido de usar. Está na linha da frente na implementação de funcionalidades que representam os avanços neste campo.

Este browser é desde as suas primeiras versões capaz de competir de forma igual com as restantes propostas do mercado, com uma vantagem óbvia por libertarem actualizações com uma elevada frequência. Deixamos de ter de esperar meses ou anos a fio para vermos implementadas as funcionalidades que precisamos agora.

Se não são utilizadores do Chrome aconselhamos que o testem de forma exaustiva, para que entendam que é tão bom ou melhor que o browser da vossa preferência.

Licença: Freeware
Sistemas Operativos: Windows/ Linux/ Mac OS
Download Versão Canary: Windows
Download Versão Dev: Windows | Debian (32bits / 64bits) | Fedora (32bits / 64bits) | Mac
Download Versão Beta: Windows | Debian (32bits / 64bits) | Fedora (32bits / 64bits) | Mac
Download Versão Estável: Windows | Linux | Mac
Homepage: Google Chrome

MyCod.es – Crie e altere a informação de um código QR

MyCod.es – Crie e altere a informação de um código QR

Criado por Pedro Pinto em 24 de Março de 2011 | 27 comentários

Os códigos QR vieram para ficar! Em tempos, numa deslocação a Espanha, achei interessante ver numa feira municipal uma barraca onde se vendiam pulseiras e outras bugigangas, um cartaz com um código QR para as pessoas consultarem o site.

No entanto, os códigos QR são hoje usados em cartões de visitas, publicidades indoor e outdoor, etc.

E se for necessário alterar o url associado a um determinado código QR?

O QR Code é a evolução natural dos actuais códigos de barras. Este código de barras bi-dimensional, foi criado pela empresa Nipónica Denso-Wave, em 1994. Devido ao sucesso desta “tecnologia”, muitas empresas estão a inserir nas suas publicidades códigos QR que “levam” os utilizadores normalmente às páginas dos produtos em questão. E se o URL associado ao código QR mudar, é necessário fazer novo investimento?

Até à relativamente pouco tempo, tal alteração não era possível de ser efectuada. Recentemente, com o aparecimento do serviço online mycod.es é possível criar facilmente códigos QR, associar um URL e posteriormente alterar esse mesmo URL.

Principais características do serviço mycod.es

  • Fácil criar códigos QR e associar URLS
  • Suporte para estatísticas
  • Suporte para notificações, através do site online
  • Reaproveitamento do código QR

qr_01

Depois de aceder ao serviço, basta indicar o URL e uma pequena designação. Depois basta carregar no botão Add, e o código QR é automaticamente criado.

qr_02O serviço possibilita um controlo total sobre o código QR. É possível verificar se funciona correctamente, detalhes, estatísticas com um bom nível de detalhe, apresentação do número de scans e remover o código QR.

qr_07Na versão gratuita, é possível criar até 5 códigos QR com um máximo de 50 scans por mês. No entanto, a empresa disponibiliza outros planos de preços (ver aqui).

O conceito associado a este serviço é bastante interessante. É pena não ser possível mais scans por cada código QR criado na versão gratuita.

É hora de darem asas a vossa imaginação e arranjarem uma ideia genial para colocar um código QR.

Artigos relacionados

Homepage: MyCod.es

Bump – É só bater o Android no iPhone

Bump – É só bater o Android no iPhone

Criado por Pedro Pinto em 27 de Março de 2011 | 9 comentários

Partilha simples de informação entre smartphones com Android e também iPhone.

Há uns anos a possibilidade de ligar dois equipamentos em rede era algo complexo.Ainda me lembro a primeira vez que tentei ligar dois computadores entre eles. Na altura tinha um cabo paralelo e lembro-me foi uma tarefa árdua. Nos dias de hoje tudo é bem mais simples, há mais tecnologias e aplicações que facilitam este processo.

Recentemente experimentei uma aplicação bastante engraçada que permite partilhar informação entre um Android e iPhone. Vamos conhecer o Bump.

bump_000

O Bump simplifica aquilo que por norma é chato de realizar nos smartphones, configurar os equipamentos para poder partir informação. Com o Bump, para partilhar informação entre equipamentos (Android e iPhone) basta apenas bater um equipamento no outro (tipo como se estivéssemos a comemorar).

bump_01

O Bump está dividido em duas partes: a aplicação que corre que dispositivo e um algoritmo inteligente que corre na cloud dos servidores do serviço Bump. A aplicação recorre ao acelerómetro para activar o “bump” sendo que essa informação é de imediato enviada para a cloud. O Bump usa a ligação wifi/3G para efectuar a transferência de ficheiros entre equipamentos.

Vejam o Bump em acção:

Como instalar o Bump no Android?

Caso queiram experimentar esta aplicação, basta que apontem o vosso leitor de códigos QR para a imagem abaixo, e serão encaminhados para a aplicação no Android Market.

qr_bump01

Como instalar o Bump no iPhone?

Para instalar o Bump no iPhone basta aceder a AppStore aqui, ou carregando na imagem seguinte

appStore

Com o Bump acabou-se o “stress” de configurar os smartphones para partilharem informação entre eles. Basta ter o bump instalado e a correr (no Android ou iPhone) e fazer o “bump” entre eles.

Homepage:Bump

Extensão Chrome: Speechify

Extensão Chrome: Speechify

Criado por Pedro Simões em 27 de Março de 2011 | 6 comentários

As novidades que o Google Chrome disponibiliza são depressa aproveitadas por quem desenvolve extensões. Ainda esta semana foi disponibilizada a versão Beta 11 e que traz o suporte para HTML5 Speech Recognition e já aparecem extensões que conseguem dar esta funcionalidade à maioria dos motores de busca, apesar de estes ainda não o suportarem.

Com o  Speechify vão poder ditar o que pretendem pesquisar para o vosso browser e este dará os resultados que procuram. Apenas necessitam de carregar no ícone do microfone que será apresentado junto a todas as caixas de pesquisa.

O Speechify consegue adicionar esta funcionalidade à maioria dos motores de pesquisa que estão actualmente na Internet. São suportadas as pesquisas no Gogole, no Bing, no Yahoo e em muitos outros. Se quiserem passam a poder pesquisar no Pplware sem recorrerem ao teclado.

Basta ditar o texto e tudo será tratado de forma automática. Infelizmente a conversão de voz para texto está baseada em inglês e a maioria das palavras ditas em português não são compreendidas. No idioma inglês tudo se processa de forma muito correcta.

Depois de instalado o Speechify, passamos a ter junto das caixas de pesquisa um pequeno microfone que podemos usar para chamar o Speechify. Abre-se uma pequena caixa e podemos começar a falar para que o nosso áudio seja convertido em texto. Devem falar pausadamente e de forma clara, pois assim o Speechify consegue entender melhor o que lhe foi dito.

Outra funcionalidade interessante que o Speechify disponibiliza é a capacidade de colocarmos Tweets directamente a partir de áudio que indiquemos. Basta carregarmos no ícone que fica disponível no zona de extensões do Chrome e podemos então aceder a esta função.

Basta mais uma vez carregar no microfone e quando este indicar que está preparado podemos começar a ditar o que pretendemos ver escrito. Mais uma vez tudo se processo de forma automática, devendo apenas ter em atenção se o texto que o Speechify detectou está certo.

O Speechify é uma excelente extensão e será muito útil para conseguirmos agilizar a utilização do browser. Lamentavelmente ainda não entende de forma correcta o nosso Português e por isso é propenso a erros na interpretação.

Esta extensão é muito similar a outra que j apresentámos aqui no Pplware. O Voice Search foi na altura testado e também ele fazia uso desta função no Google Chrome, mas na altura que a apresentámos o suporte para o HTML5 Speech Recognition era ainda muito rudimentar e tinha de ser activado de forma manual. Agora com a disponibilização desta função de forma nativa na versão Beta 11 do Chrome tudo fica mais fácil.

Usem o Speechify para pesquisarem nos vossos motores de busca preferidos ou para introduzirem conteúdo em caixas de texto, sem terem de tocar no teclado. Testem e vão com certeza ficar agradados.

O Speechify requer para funcionar que tenham instalado pelo menos a versão Beta 11 do Chrome ou outra versão mais recente (Dev, Canary ou Chromium).

Veja aqui mais extensões e aplicações Chrome

    Leia mais informação sobre plugins Chrome no Forum Pplware: Google Extensions e Google Chrome

    Download: Speechify 1.3
    Homepage: Speechify

    DropPages – Criar um site no Dropbox de forma simples

    DropPages – Criar um site no Dropbox de forma simples

    Criado por Pedro Simões em 28 de Março de 2011 | 21 comentários

    Falar do Dropbox aqui no Pplware é recordar e descobrir um vasto conjunto de ferramentas e de funções que achamos simplesmente fenomenais e obrigatórias. É uma forma diferente de ter um serviço simples, mas ao mesmo tempo imprescindível. São muitas e variadas as propostas que vos apresentámos para adicionar ao serviço principal.

    Uma das que mais gozo me deu escrever, e porque é uma função inerente ao próprio serviço e que não foi com certeza planeada, foi a possibilidade de alojarmos pequenos sites. Não é difícil criar no Dropbox um site, mas agora ficou ainda mais fácil com o aparecimento do DropPages.

    Se bem se recordam do que publicámos, bastava colocar os ficheiros html numa pasta pública e estavam expostos ao mundo. Era no entanto importante que quem o fizesse tivesse um mínimo conhecimento sobre html e, se pretendesse usar, sobre CSS. Existe sempre a limitação de não serem suportadas linguagens de compilação do lado do servidor, tais como o php ou outras.

    Infelizmente o endereço que é disponibilizado para acesso ao vosso site é um pouco confuso e difícil de decorar. A solução proposta era criarem um endereço no bit.ly, o que na altura era óptima.

    Por forma a contornar alguns destes problemas e para simplificar o processo de criação de sites dentro do DropBox, foi criado o serviço DropPages. Com este novo serviço o processo de criação de HTML deixa de ser necessário e os utilizadores apenar têm de criar ficheiros de texto, com recurso à sintaxe Markdown. Esta linguagem é parecida com a que é usada para criar páginas em Wikis e é extremamente simples de entender e de aplicar.

    Por forma a dar alguma beleza imediata aos sites que vão criar e para vos retirar o processo de estarem a criar uma imagem do vosso agrado, são disponibilizados três templates que devem usar para criar o vosso site.

    O processo de criação é extremamente simples. Em primeiro lugar descarregam um desses três templates e colocam-no numa pasta do vosso DropBox. O nome da pasta que criarem para partilhar com o DropPages é extremamente importante. Será esse o endereço que vai ser público para o vosso site. No nosso caso escolhemos pplware.droppages.com.

    Depois de criada a pasta devem partilhar com o serviço DropPages. Basta que adicionem o endereço server1@droppages.com à partilha e esperem que ele vos aceite.

    Enquanto aguardam a resposta podem ir tornando o site mais a vosso gosto. Para isso acedam à pasta e preparem-se para editar os conteúdos. Existem dentro dessa pasta outras três que contêm o seguinte:

    • Content – Aqui deverão colocar o vosso conteúdo. Um ficheiro por página e se pretenderem ter secções devem criar pastas e aí dentro colocar os ficheiros. Lembrem-se que deve sempre existir um ficheiro index dentro da pasta e das sub-pastas. Os ficheiros podem ter a extensão txt.
    • Templates – Esta é a pasta onde está o template e todas as suas definições. Alberga o esquema das páginas que vão ser criadas. Podem alterá-lo para terem uma página mais personalizada.
    • Public – É aqui dentro que está o vosso conteúdo público, tal como o CSS, o JavaScript e as imagens. Alterem o CSS se tiverem confiança para tal.

    Ao receberem a mensagem a indicar que a partilha da pasta foi aceite pelo DropPage a vossa página está pública. Este serviço tem a vantagem de não necessitarem de qualquer conta ou acesso FTP, de terem várias cópias (no vosso PC, no DropBox e no DropPages) e de ser extremamente simples de criar ou editar as vossas páginas.

    Testem o serviço e criem os vossos sites. Criem um para alojar as vossas fotos, o vosso CV ou apenas para partilharem com amigos o que bem entenderem. O Pplware testou e criou um pequeno site sem qualquer dificuldade. Acedam-lhe e vejam as potencialidades do DropPages. Demorámos 2 minutos a fazer o que ali podem encontrar.

    Artigos relacionados:

    Download: Temas DropPages
    Homepage: DropPages
    Homepage: DropBox

    Site do MySQL atacado via SQL Injection

    Site do MySQL atacado via SQL Injection

    Criado por Pedro Pinto em 29 de Março de 2011 | 42 comentários

    Parece que o feitiço se virou contra o feiticeiro, mas segundo informação disponibilizadas no site Techie Buzz, a página oficial do projecto MySQL (motor de base de dados bastante popular) foi atacado através de um mecanismo denominado de SQLInjection (alguns sites referem que foram utilizados mecanismos mais elaborados como XSS e blind SQLi).

    Ao que tudo indica, além do ataque ter sido efectuado com sucesso foram ainda “roubados” dados importantes da empresa. O ataque ao que consta foi realizado através de uma página de consulta de cliente, tendo já sido divulgadas algumas passwords, inclusive a de um Director de produtos do MySQL com apenas 4 dígitos. Algumas passwords de administradores do serviço blogs.mysql.com foram também já tornadas públicas.

    sql_injection

    Mas como funciona um ataque de SQL Injection?

    O SQL injection tal como o nome indica é um mecanismo que permite  “injectar” instruções SQL dentro de uma consulta (query) realizada à base de dados. Desta forma, o hacker pode “construir” a query SQL e obter informações privilegiadas que se encontram guardadas na base de dados (ex. passwords de utilizadores).

    Imaginem por exemplo um formulário HTML para autenticação de um utilizador num determinado site. Depois do utilizador carregar no botão enviar, é executado no MySQL a seguinte query SQL:

    SELECT user,passwd FROM users WHERE user = 'pplware' AND passwd='123456'

    Os dados user e passwd são passados via POST numa query do tipo:

    SELECT user,passwd FROM users WHERE user = '$user' AND passwd='$passwd';

    Agora imaginem que é um hacker e que no campo password colocou:

    '123456';DROP TABLE users;

    Neste caso a query ficava algo do tipo:

    SELECT user,passwd FROM users WHERE user =  'pplware' AND passwd='123456';DROP table users;

    Veja uma demonstração de como funciona o mecanismo SQL Injection:

    Caso seja um utilizador com conta no site mysql.com é aconselhável que proceda rapidamente à alteração da sua password.

    Desenvolvimento para Windows Phone 7 – Parte IV

    Desenvolvimento para Windows Phone 7 – Parte IV

    Criado por Pedro Simões em 1 de Abril de 2011 | 2 comentários

    Por Helder Ferreira para o PPLWARE.COM

    Utilização dos recursos do dispositivo

    Após no último artigo termos analisado os principais controlos disponibilizados para esta plataforma de desenvolvimento, vamos neste artigo utilizar recursos do dispositivo.

    Nos dispositivos Windows Phone 7, temos acesso a vários sensores que são incluídos de base nos mesmos, aqui a vantagem dada pela Microsoft é que do lado de quem desenvolve aplicações não é necessário preocupar com questões mais técnicas relativamente aos sensores visto existirem regras do lado dos fabricantes para que todos os dispositivos funcionem da mesma forma.

    Deste modo a equipa de desenvolvimento pode focar os esforços nas regras de negócio das suas aplicações e não na criação de vários métodos para funcionarem em dispositivos distintos.

    Introdução aos Launchers e Choosers

    Nas aplicações Silverlight para Windows Phone são utilizadas estas duas opções para aceder a funcionalidades build-in dos dispositivos, quando executamos um destes métodos a aplicação é desactivada e a aplicação seleccionada é executada. Quando a aplicação termina a nossa aplicação é reactivada. Este processo é chamado de tombstoning em artigos futuros iremos falar mais sobre este processo e do impacto que pode ter nas nossas aplicações visto estarmos a falar de um sistema sem multitasking.

    Os Launchers e Choosers estão no namespace Microsoft.Phone.Tasks, por isso temos que incluir uma directiva Using no nosso código para utilizar estes recursos.

    Launchers

    A forma de utilizar estas classes é comum, ou seja:

    1. Criar uma nova instância da classe;
    2. Atribuir as propriedades à mesma;
    3. Executar o método Show.

    Vamos então ver alguns exemplos:

    PhoneCallTask – Usado para efectuar chamadas indicando o número a ser marcado, ou podemos também exibir a lista de contactos a partir da qual o utilizador pode seleccionar o contacto para o qual deseja fazer a chamada.

    Vamos adicionar no XAML um simples botão para efectuar a chamada,

    <Button Name="ButtonDialer" Content="Efectuar chamada"   VerticalAlignment="Bottom" Click="ButtonDialer_Click"   Height="79" Margin="0,0,0,10" />

    E no código vamos então adicionar o comportamento,

    private void ButtonDialer_Click(object sender, RoutedEventArgs e)
    {
    // launcher.
    PhoneCallTask phoneCallTask = new PhoneCallTask();
    // Informação de contacto para o qual desejamos efectuar a chamada
    phoneCallTask.PhoneNumber = "(352)-555-5555";
    phoneCallTask.DisplayName = "pplware";
    // Lançamento do objecto.
    phoneCallTask.Show();
    }

    Corremos o projecto e quando o utilizador clicar no botão a chamada é efectuada.

    SmsComposeTask – Assim como para efectuar uma chamada, temos também o launcher para enviar mensagens de texto.

    XAML

    <Button Name="ButtonSmsr" Content="Enviar sms"
    VerticalAlignment="Bottom" Click="ButtonSms_Click"
    Height="79" Margin="0,0,0,10" />

    CODE

    private void ButtonSms_Click(object sender, RoutedEventArgs e)
    {
    // launcher.
    SmsComposeTask smsComposeTask = new SmsComposeTask();
    // Informação de contacto para o qual desejamos enviar o sms
    smsComposeTask.Body = "Mensagem";
    smsComposeTask.To = "(352)-555-5555";
    // Lançamento do objecto.
    smsComposeTask.Show();
    }

    EmailComposeTask – Vamos terminar esta secção apresentando o Launcher de envio de email.

    XAML

    <Button Name="ButtonEmail" Content="Enviar email"
    VerticalAlignment="Bottom" Click="ButtonEmail_Click"
    Height="79" Margin="0,0,0,10" />

    CODE

    private void ButtonEmail_Click(object sender, RoutedEventArgs e)
    {
    // launcher.
    EmailComposeTask emailComposeTask = new EmailComposeTask();
    // Informação de contacto para o qual desejamos efectuar a chamada
    emailComposeTask.To = "xpto@hotmail.com";
    emailComposeTask.Subject = "Exemplo de email";
    emailComposeTask.Body = "Corpo da mensagem";
    // Lançamento do objecto.
    emailComposeTask.Show();
    }

    De notar que se executarmos este launcher no emulador, o sistema vai apresentar uma mensagem indicando que a conta de correio electrónico não se encontra configurada. Mas no caso de estarmos a executar a aplicação directamente num dispositivo é apresentado um ecrã em que podemos seleccionar a conta de correio electrónico a utilizar e após isso a mensagem pronta a ser enviada.

    Choosers

    A principal diferença dos launchers em relação aos choosers prendesse no facto de neste último caso o sistema lança um evento quando o utilizador efectua uma intervenção.

    Vamos ver o caso em que a aplicação não sabe o número para o qual deve efectuar uma chamada e pede a intervenção do utilizador para seleccionar um número da sua lista de contactos.

    PhoneNumberChooserTask – Se pretendermos que o utilizador seleccione um contacto existente na sua lista, apenas temos que instanciar o chooser PhoneNumberChooserTask.

    Neste caso já é lançado um evento quando o utilizador selecciona o contacto para o qual deseja efectuar a chamada. Nesse evento obtemos o número para o qual o utilizador deseja efectuar a chamada e lançamos o launcher PhoneCallTask da mesma forma que já fizemos anteriormente.

    XAML

    <Button Name="ButtonDialerChooser" Content="Lançar contactos"
    VerticalAlignment="Bottom" Click="ButtonDialerChooser_Click"
    Height="79" Margin="0,0,0,10" />

    CODE

    private void ButtonDialerChooser_Click(object sender, RoutedEventArgs e)
    {
    PhoneNumberChooserTask phoneNumberChooser = new PhoneNumberChooserTask();
    phoneNumberChooser.Completed += new EventHandler<PhoneNumberResult>(phoneNumberChooser_Completed);
    phoneNumberChooser.Show();
    }   void phoneNumberChooser_Completed(object sender, PhoneNumberResult e)
    {
    if (e.TaskResult == TaskResult.OK)
    {
    // Chooser.
    PhoneCallTask phoneCallTask = new PhoneCallTask();
    // Informação de contacto para o qual desejamos efectuar a chamada
    phoneCallTask.PhoneNumber = e.PhoneNumber;
    // Lançamento do objecto.
    phoneCallTask.Show();
    }
    }

    CameraCaptureTask – Com este método podemos tirar proveito das capacidades da câmara fotográfica presente nos dispositivos. Por exemplo, com um simples botão na nossa aplicação invocamos a aplicação built in do sistema para tirar uma foto ou um vídeo e podemos logo de seguida efectuar o tratamento ou apresentação da mesma.

    XAML

    <Button Name="ButtonCamera" Content="Tirar foto"
    VerticalAlignment="Bottom" Click="ButtonCamera_Click"
    Height="79" Margin="0,0,0,10" />
    <Image Height="400" x:Name="ContainerImagem" />

    CODE

    private void ButtonCamera_Click(object sender, RoutedEventArgs e)
    {
    // Chooser.
    CameraCaptureTask cameraCaptureTask = new CameraCaptureTask();
    cameraCaptureTask.Completed += new EventHandler<PhotoResult>(cameraCaptureTask_Completed);
    // Lançamento do objecto.
    cameraCaptureTask.Show();
    }
    void cameraCaptureTask_Completed(object sender, PhotoResult e)
    {
    if (e.TaskResult == TaskResult.OK)
    {
    //simply use the picture.
    BitmapImage bitmapImage = new BitmapImage();
    bitmapImage.SetSource(e.ChosenPhoto);
    ContainerImagem.Source = bitmapImage;
    }
    }

    De notar neste exemplo, que declaramos o evento cameraCaptureTask.Completed, o que faz com que após o utilizador tirar a foto um evento é lançado na nossa aplicação com o resultado que neste caso corresponde a uma foto.

    Nesse evento apenas aplicamos a foto a um BitmapImage (using System.Windows.Media.Imaging;) e após este passo atribuímos a imagem ao controlo de imagem ContainerImagem para conseguirmos visualizar o resultado.

    Nota: Caso estejam a utilizar o emulador, a câmara é substituída por uma Webcam instalada no vosso sistema para que seja mais fácil testar a nossa aplicação.

    Estes são apenas alguns exemplos de como utilizar Launcher e Choosers, para uma referência completa de todos os métodos existentes podem aceder à ajuda do namespace tasks em namespace Microsoft.Phone.Tasks

    Para terminar vamos verificar como utilizar um componente muito em voga nos dispositivos mais actuais e que pode marcar a diferença nas vossas aplicações.

    Acelerómetro

    Resumindo, não passa de um sensor que consegue detectar alterações à posição actual do dispositivo normalmente em 3 eixos, x,y e z.

    A utilização deste tipo de sensores pode ser bastante interessante no âmbito de utilização da nossa aplicação, um dos exemplos mais típicos é por exemplo mudar a música em execução com um shake ao dispositivo.

    Vamos ver um exemplo.

    XAML

    <!--LayoutRoot is the root grid where all page content is placed-->
    <Grid x:Name="LayoutRoot" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"  Background="Transparent">
    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="50" />
    <ColumnDefinition Width="50" />
    <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
    <RowDefinition Height="50" />
    <RowDefinition Height="50" />
    <RowDefinition Height="50" />
    <RowDefinition Height="618*" />
    </Grid.RowDefinitions>   <TextBlock Grid.Column="1" Grid.Row="0" Text="X" />
    <TextBlock x:Name="txt_x"  Grid.Column="2" Grid.Row="0"/>
    <TextBlock Grid.Column="1" Grid.Row="1" Text="Y" />
    <TextBlock x:Name="txt_y"   Grid.Column="2" Grid.Row="1"/>
    <TextBlock Grid.Column="1" Grid.Row="2" Text="Z" />
    <TextBlock  x:Name="txt_z"  Grid.Column="2" Grid.Row="2"/>
    <Button Content="Iniciar" x:Name="btnIniciar" Grid.Column="2" Margin="50,35,129,494" Grid.Row="3" Click="btnIniciar_Click" />
    </Grid>

    CODE

    // Construtor
    Accelerometer accelerometer = new Accelerometer();
    public MainPage()
    {
    InitializeComponent();
    }   private void btnIniciar_Click(object sender, RoutedEventArgs e)
    {
    accelerometer.Start();
    accelerometer.ReadingChanged += new EventHandler<AccelerometerReadingEventArgs>(accelerometer_ReadingChanged);
    }   void accelerometer_ReadingChanged(object sender, AccelerometerReadingEventArgs e)
    {
    Deployment.Current.Dispatcher.BeginInvoke(() => ProcessAccelerometerReading(e));
    }   private void ProcessAccelerometerReading(AccelerometerReadingEventArgs e)
    {
    // Actualiza os controlos
    txt_x.Text = e.X.ToString("0.00");
    txt_y.Text = e.Y.ToString("0.00");
    txt_z.Text = e.Z.ToString("0.00");
    }

    Neste exemplo, colocamos algumas caixas de texto numa página e um botão para que o sistema inicie a captura dos dados do acelerómetro.

    Quando clicamos no botão o sistema inicia a captura dos dados relativos à sua posição, x,y e z e no evento accelerometer_ReadingChanged delegamos o objecto AccelerometerReadingEventArgs e para a função ProcessAccelerometerReading que por sua vez trata de preencher as caixas de texto com os dados da posição do dispositivo.

    Fazemos esta delegação, visto o processo de captura de dados estar a executar numa thread extra, e nestes casos não conseguimos efectuar o binding directo dessa thread à nossa camada de UI (caixas de texto).

    Executando o projecto no dispositivo podemos observar a posição actual do mesmo sendo reflectiva nas caixas de texto no ecrã.

    Espero que esta breve introdução à utilização dos recursos que são disponibilizados pelos dispositivos vos tenha dado algumas ideias para as vossas aplicações.

    Uma vez mais, caso tenham alguma questão não hesitem em enviar mensagem.

    Até à próxima e boa programação em Windows Phone 7.

    Artigos relacionados:

    ElectroDroid 2.0 – Electrónica é no Android

    ElectroDroid 2.0 – Electrónica é no Android

    Criado por Pedro Pinto em 17 de Fevereiro de 2011 | 44 comentários

    Na sequência dos artigos que temos publicado sobre o fantástico mundo da electrónica, mais concretamente sobre a plataforma Arduino, tive a curiosidade de pesquisar no market do Android por aplicações a nível da electrónica.

    A aplicação mais bem “cotada” neste segmento é o ElectroDroid (que recentemente foi actualizada para a versão 2.0), uma vez que disponibiliza um conjunto de ferramentas úteis para quem gosta e trabalha nesta área.

    electro_000

    ElectroDroid é a aplicação mais completa da área da electrónica para a plataforma Android. A aplicação encontra-se dividida em três partes: Calculadoras, Pinout e Recursos.

    No separador Calculadoras podemos encontrar ferramentas de cálculo e informação sobre:

    • Código de cores das resistências
    • Código de cores das Bobines
    • Lei de Ohm
    • Calculadora de Reactância
    • Divisor de Tensão
    • Resistência equivalente
    • Resistência valor/série/paralelo
    • Carga do condensador
    • Amplificador operacional
    • Resistência para diodo LED
    • Calculadora LM317
    • Potência dissipada
    • Calcular vida da bateria

    electro_02

    No separador Pinout podemos encontrar informação sobre:

    • Pinout para porta USB
    • Pinout para porta Série
    • Pinout porta paralela
    • Pinout porta Ethernet
    • Pinout SCART
    • Pinout DVI
    • Pinout HDMI
    • Pinout VGA
    • Pinout S-Video
    • Pinout Jack
    • Pinout Firewire
    • Pinout RCA
    • Pinout XLR

    electro_03

    No separador Pinout podemos encontrar informação sobre:

    • Tabela de resistividade
    • Diâmetro de cabos AWG e SWG
    • Tabela de Amperagem
    • Tabela de resistências
    • Tabela de Condensadores
    • Códigos de marcação de condensação
    • Símbolos de circuitos esquemáticos
    • Símbolos e abreviações
    • Prefixos – Unidades SI

    electro_01

    Novidades da versão 2.0

    • Suporte para Android 2.3 Gingerbread;
    • Suporte para backups;
    • Base de dados PICmicro;
    • Grande parte do código reescrito para optimização
    • Correcção da UI para ecrã grande;
    • Opção para desactivar a confirmação ao sair;
    • Potência como variável na lei de Ohm;
    • Valor de pico (pF, pH,…) e pequena alteração no formulário
    • Mais ícones de alta resolução
    • Tabela de Amperagem
    • Símbolos de circuitos esquemáticos
    • Tradução para português

    Como instalar o ElectroDroid 2.0  no Android?

    Caso queiram experimentar esta aplicação, basta que apontem o vosso leitor de códigos QR para a imagem abaixo, e serão encaminhados para a aplicação no Android Market.

    qr_electroou pesquise por “ElectroDroid ” no Android Market

    Em Resumo…

    A aplicação ElectroDroid disponibiliza informação bastante interessante para quem gosta da área da electrónica. Com o ElectroDroid passamos a ter muita da matéria que é leccionada em cursos/disciplinas de electrónicas reunida numa só aplicação. Experimentem e deixem o vosso feedback….e cuidado com os curto—circuitos!

    Homepage: ElectroDroid

    HDClone 4.0.3 – É tão fácil clonar um disco!

    HDClone 4.0.3 – É tão fácil clonar um disco!

    Criado por Pedro Simões em 17 de Fevereiro de 2011 | 25 comentários

    HDClone é uma ferramenta que permite copiar o nosso disco, transformando-o numa imagem ISO. Posteriormente e depois de instalado e particionado o novo disco, o HDClone coloca a imagem no novo suporte. Já pensou nas vantagens desta mecânica?

    É excelente para poupar tempo quando estamos a expandir as capacidades do nosso PC ao adquirir um disco novo com maior capacidade. Imagine que o seu PC tem algum problema de hardware, com esta ferramenta salva as definições e conteúdo do seu disco, repara a máquina, com segurança sem correr risco de perda de dados e quando estiver tudo funcional volta a colocar o disco tal e qual como estava em termos de conteúdos.

    A versão freeware é muito limitada, embora apta para desempenhar essa função de copy/paste de conteúdos, falta-lhe o suporte para algumas funções. À medida que a aplicação aparece mais “graduada” isto é “Free, Basics, Standard e Profissional” aumentam as capacidades e com isso o grau de utilidade.

    Pode ser uma solução bastante viável para quem pretende fazer cópias integrais dos vossos discos para garantir que não têm problemas caso necessitem de reinstalar o vosso PC de forma rápida.

    Novidades desta versão:

    • Alinhamento 4k para drives modernas
    • Capacidade para extender volumes em EXT4

    Licença: Freeware
    Sistemas Operativos: Windows 2K/XP/Vista/7
    Download: HDClone Free Edition 3.9.2 Inglês [22.4MB]
    Download: HDClone Free Edition 3.8.5 Português [11.3MB]
    Homepage: HDClone

    Desenvolvimento para Windows Phone 7 – Parte III

    Desenvolvimento para Windows Phone 7 – Parte III

    Criado por Vítor M. em 21 de Março de 2011 | 4 comentários

    Por Helder Ferreira para o PPLWARE.COM
    Depois de nos últimos artigos termos efectuado a instalação de todas as aplicações necessárias nas nossas máquinas, e agora que já temos todo o ambiente de desenvolvimento funcional, vamos começar a analisar alguns dos controlos que podemos utilizar nas nossas aplicações para Windows Phone 7.

    Vou começar por apresentar os controlos específicos para o desenvolvimento em Windows Phone 7:

    • Controlos base;

    Neste ponto estão presentes os controlos mais conhecidos do silverlight, para WP7 foi criado um subconjunto mas o comportamento e utilização são em tudo semelhantes.

    Não me vou demorar muito neste ponto, se bem que são os controlos que provavelmente mais iremos utilizar no dia-a-dia, não trazem nada de novo em relação ao que já existe no silverlight.

    • Bing Maps;

    Se bem que já não é uma novidade, é um controlo que com a utilização da geolocalização do WP7 se torna num controlo muito interessante, vamos ver um exemplo.

    Vamos começar por adicionar o controlo a uma página do WP7, para isso basta aceder à toolbox do lado esquerdo e “arrastar” para a nossa página o controlo “Map”.

    Caso não esteja disponível, temos que adicionar o controlo ao nosso projecto, para isso basta clicar com o botão direito do rato sobre a toolbox e seleccionar “Choose items”.

    No ecrã seguinte basta seleccionar o item “Map”, ao seleccionar ok é adicionado um novo ícone à nossa toolbox com o controlo de mapas.

    Neste momento basta correr o projecto e já temos o mapa na nossa aplicação, mas neste momento de pouco nos serve o mapa apresentado desta forma. Vamos lá adicionar mais algumas funcionalidades.

    Começamos por adicionar mais alguns botões para responderem ao nosso imput:

    Adicionando estes botões vamos criar o código que o sistema vai executar, para que o Visual Studio crie o método basta clicar duas vezes sobre cada um dos botões, de imediato o sistema cria o evento “_Click” e após isso basta adicionar o código de seguida.

    Temos que ter em atenção que para que o sistema reconheça o nosso código temos que adicionar o using do namespace do controlo:

    Feito, neste momento já conseguimos controlar pelos botões o nível de zoom assim como a vista aérea ou a vista de ruas. Como podem ver, é muito simples utilizar este controlo. Só uma atenção, é apresentada uma mensagem no emulador indicando que não temos as credenciais válidas ao utilizar este controlo. Esta situação é normal, para resolver esta situação é necessário efectuar um registo de desenvolvimento.

    Em artigos futuros explicarei como efectuar esse registo e como utilizar as capacidades de geolocalização do dispositivo para sabermos a nossa localização actual e apresentar no mapa.

    • Controlo WebBrowser;

    Não muito a dizer sobre este controlo, basta arrastar o controlo para uma página e atribuir o endereço da página a ser visualizada no tag source do mesmo.

    E o resultado:

    • Controlo Pivot;

    Este controlo pode ser utilizado para transição de páginas, apresentação de dados e tem como principal vantagem a utilização da navegação por defeito do sistema. Ou seja, ao aplicar este controlo nas nossas aplicações vamos herdar a navegação e optimização para utilização por toque do sistema, sem a necessidade de criar código para isso.
    O utilizador apenas tem que usar os gestos reconhecidos pelo sistema (Pan, Flick ou swipe) para alternar pelos conteúdos de cada PivotItem.
    Vamos ao exemplo.

    Uma vez mais basta arrastar o controlo que está na toolbox com o nome de pivot, desta não estavam à espera :D , para a vossa página. Caso o ícone não esteja disponível basta efectuar o mesmo procedimento já explicado em cima e adicionar o controlo à vossa toolbox.
    Podemos então criar os que necessitamos e adicionar o conteúdo a cada um dos mesmos.

    Exemplo:

    E para cada um dos itens vamos adicionar o conteúdo:

    Usando este controlo como base de navegação da nossa aplicação é muito simples e conseguimos que o utilizador consiga navegar de uma forma muito simples por várias páginas na nossa aplicação.

    • Controlo Panorama;

    Este controlo, utilizado em praticamente todo o sistema operativo, é uma forma de expandir o look and feel do mesmo à nossa aplicação. A grande diferença deste controlo para o Pivot é que, no caso do Pivot cada um dos itens é idealizado para ser visualizado nos limites do dispositivo enquanto no caso do Panorama a página não está limitada aos limites do smartphone e vai sendo apresentada por secções em que o utilizador pode navegar.

    Para além disso as animações das várias camadas deste controlo (títulos/conteudo), são apresentadas a velocidades diferentes o que cria um impacto visual muito interessante e que vai informando o utilizador em que “secção” se encontra da página.

    Não vou aprofundar mais sobre este componente neste artigo pois futuramente vamos usar este controlo na nossa aplicação.

    Aqui fica esta breve apresentação dos controlos mais utilizados nas aplicações para Windows Phone 7, num próximo artigo vamos explorar algumas das capacidades dos dispositivos e do sistema operativo e como aceder às mesmas.

    Como sempre o vosso feedback é muito importante. E caso tenham alguma questão não hesitem em enviar.

    Artigos relacionados: