logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!
Mar 7

BlazeDS – do básico ao avançado – Parte 1

Escrito por DClick Team em 1, 2009, 4, 6, action, Actionscript, Adobe, AMF, apache, app, AR, arte, auto, BI, Blazeds, blog, botão, class, classe, cliente, código, código fonte, Componente, componente flex, Componentes, comunicação, configuração, control, Controls, Crossdomain, custom, dados, demo, developer, Diversos, Documentação, Download, Eclipse, err, erro, event, Evento, events, exemplo, Exemplos, falha, flash, Flex, fonte, for, framework, Frameworks, function, Galileo, git, handle, Hibernate, HTTPService, ide, IE, if, image, instalação, int, Java, library, LOB, Messaging, mg, MXML, NaN, O, on, opensource, Outros, Plugin, problema, problemas, pt, reference, referencia, Remoting, RIA, Ria’s Geral, runtime, screen, Screencast, screencasts, Segurança, Sem categoria, server, serviço, Serviços, servidor, site, spark, Spring, string, tag, TAT, Tecnologia, Twitter, UI, uint, web, Webservice, window, XML @ 03 7th, 2011 | via http://blog.dclick.com.br/pt/ | Sem comentários
DClick Team
? 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 »

BlazeDS é uma aplicação Java opensource mantida pela Adobe, sob licensa GNU Lesser General Public License, Version 3 (LGPL v3), que fornece um conjunto de serviços, todos sobre o protocolo HTTP(Hyper Text Transfer Protocol), para permitir uma aplicação Flex fazer chamadas a serviços remotos Java, retornando os dados tanto de forma assíncrona como em tempo real.

Por utilizar o formato de dados binário chamado AMF(Action Message Format) para a serialiazação e deserialização de dados, a comunicação entre uma aplicação Flex e o servidor Web se torna muito otimizada. Existem estudos feitos comparando as diversas tecnologias, como o Jamesward, mostrando o potencial do AMF.

Outra grande vantagem quando usamos o BlazeDS é a facilidade de ter classe Java automaticamente convertida para uma classe ActionScript e vice-versa.

O BlazeDS pode ser baixado do site da Adobe em dois formatos:

  1. Turnkey – Versão que já vem com exemplos e servidor tomcat pré configurado
  2. Binary – Versão com os binários

Você pode optar também por fazer o download do código fonte. A documentação também está disponível neste link.


Entendendo os arquivos de configuração do BlazeDS
A estrutura de arquivos do BlazeDS é bem simples, quando descompactamos o blazeds.war, presente na versão binária, podemos ver a seguinte estrutura:

Devemos nos atentar a duas pastas. A pasta lib, que contém todos os jars necessários, e a pasta flex, que contém todos os arquivos de configuração do BlazeDS. Vamos ver o que cada arquivo significa:

  1. services-config.xml: É neste arquivo que estão as principais configurações do BlazeDS como segurança, logging, serviços disponíveis (Canais), fábricas para a integração com Frameworks Java como Spring e EJB3 e as referências para os outros três arquivos de configuração.
  2. remoting-config.xml: É nesse arquivo que iremos configurar os serviços Java para serem “consumidos” pela aplicação Flex. Sempre quando configuramos este arquivo, iremos trabalhar com o componente Flex chamado RemoteObject.
  3. message-config.xml: Aqui é configurado tudo o que for relacionado com mensageria, sempre necessário quando trabalhamos com os componentes Flex Consumer e Producer. Um exemplo da utilização desta tecnologia seria fazer um bate bapo, ou até mesmo aplicações colaborativas, onde é desejável a iteração simultânea de diversos usuários.
  4. proxy-config.xml: Além da possibilidade de utilizarmos o componente RemoteObject, o Flex disponibiliza mais duas formas de integração: O HTTPService e o WebService. Porém, por questões de segurança, os serviços só podem ser chamados quando os mesmos estão no mesmo domínio que a aplicação, ou que exista uma configuração específica que permita um cliente Flex fazer a consulta (esta configuração é feita por um arquivo chamado crossdomain.xml e está sempre no servidor onde está o serviço chamado). Caso uma das duas condições acima não seja satisfeita, deveremos utilizar o BlazeDS como proxy , e é ai que configuração deste arquivo se torna necessário.



Criando o seu primeiro projeto com o BlazeDS

Para criar o projeto iremos precisar de:

  1. Eclipse Galileo JEE
  2. FlashBuilder Plugin
  3. BlazeDS 4 Binary
  4. Tomcat 6



Feito os downloads e a instalação do Eclipse e FlashBuilder, vamos iniciar o FlashBuilder para criar o projeto.
Antes de criar o projeto, vamos configurar o Tomcat:

  1. Nas preferências do Eclipse, vá em Server — Runtime Environments e clique em Add…
  2. Na pasta Apache selecione Apache Tomcat v6.0 e clique em Next
  3. Selecione a pasta onde você descompactou o Tomcat e clique em Finish

Feito a configuração do Tomcat, vamos criar o projeto:

  1. Vá em File – New – Flex Project
  2. Preencha os dados do primeiro passo como na imagem abaixo e clique em Next
  3. Neste passo vamos configurar os dados do servidor. Deixe tudo configurado como na imagem e clique em Next


    Para selecionar o “Target Runtime”, clique em New e depois escolha o Apache Tomcat 6, como na imagem abaixo.
  4. No último passo não será necessário mudar nada, clique em Finish

Agora vamos criar a classe Java que terá o serviço para retornar a string “HelloBlazeDS”

  1. Crie uma classe Java br.com.dclick.service.RemotingService
  2. Crie o serviço:
    1
    2
    3
    4
    5
    6
    7
    8
    package br.com.dclick.service;
    public class RemotingService {

    ? ? public String sayHello() {
    ? ? ? ? return “HelloBlazeDS”;
    ? ? }
    ? ?
    }

Agora vamos configurar o BlazeDS para disponibilizar o serviço que acabamos de criar.

  1. Abra o arquivo remoting-config.xml que está na pasta WebContent/WEB-INF/flex
  2. Para que seja possível chamar os métodos da classe Java, precisamos configurar um destination. Isso é necessário para cada classe Java.
    O arquivo fica assim:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    xml version=“1.0″ encoding=“UTF-8″?>
    “remoting-service” class=“flex.messaging.services.RemotingService”>
    ? ?
    ? ? ? ? “java-object”
    ? ? ? ? ? ? class=“flex.messaging.services.remoting.adapters.JavaAdapter”
    ? ? ? ? ? ? default=“true” />
    ? ?

    ? ?
    ? ? ? ? “my-amf” />
    ? ?

    ? ? “blazeServices”>
    ? ? ? ? ? ? ? ? ? ? br.com.dclick.service.RemotingService
    ? ? ? ?
    ? ?

Vamos colocar na aplicação a chamada para o servidor.

  1. A primeira coisa que precisamos fazer é configurar o RemoteObject. Fazer isso é muito simples:
    1
    2
    3
    4
    5
    ? ? ? ?
    ? ? ? ? “services” destination=“blazeServices”
    ? ? ? ? ? ? ? ? ? ? ? ? result=“services_resultHandler(event)”
    ? ? ? ? ? ? ? ? ? ? ? ? fault=“services_faultHandler(event)” />
    ? ?


    Alguns detalhes:

    * Perceba que a propriedade destination aponta para o destination que configuramos no arquivo remoting-config.xml

    * Precisamos declarar um id para poder referenciar o RemoteObject

    * Adicionamos um ResultHandler para tratar o resultdo do serviço

    * Adicionamos um FaultHandler para tratar a falha do serviço

  2. Os Handlers ficam assim:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    ? ? ? ?
    ? ? ? ? [CDATA[
    ? ? ? ? ? ? import mx.controls.Alert;
    ? ? ? ? ? ? import mx.rpc.events.FaultEvent;
    ? ? ? ? ? ? import mx.rpc.events.ResultEvent;

    ? ? ? ? ? ? protected function services_resultHandler(event:ResultEvent):void
    ? ? ? ? ? ? {
    ? ? ? ? ? ? ? ? Alert.show(event.result.toString());
    ? ? ? ? ? ? }

    ? ? ? ? ? ? protected function services_faultHandler(event:FaultEvent):void
    ? ? ? ? ? ? {
    ? ? ? ? ? ? ? ? Alert.show(event.fault.message);
    ? ? ? ? ? ? }

    ? ? ? ? ]]>
    ? ?


    Alguns detalhes:

    * A propriedade result do evento ResultEvent vai conter o resultado do serviço. No nosso caso o serviço retorna uma String “HelloBlazeDS”

    * A propriedade fault do evento FaultEvent contém os detalhes do erro.

  3. A última coisa é chamar o serviço. Vamos fazer isso no evento creationComplete, como segue:
    1
    2
    3
    4
    ? ? ? ? protected function application1_creationCompleteHandler(event:FlexEvent):void
    ? ? ? ? ? ? {
    ? ? ? ? ? ? ? ? services.sayHello();
    ? ? ? ? ? ? }
  4. A aplicação inteira fica assim:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    ? ? ? ? xml version=“1.0″ encoding=“utf-8″?>
    “http://ns.adobe.com/mxml/2009″
    ? ? ? ? ? ?? ? xmlns:s=“library://ns.adobe.com/flex/spark”
    ? ? ? ? ? ?? ? xmlns:mx=“library://ns.adobe.com/flex/mx” minWidth=“955″ minHeight=“600″
    ? ? ? ? ? ?? ? creationComplete=“application1_creationCompleteHandler(event)”>
    ? ?
    ? ? ? ? [CDATA[
    ? ? ? ? ? ? import mx.controls.Alert;
    ? ? ? ? ? ? import mx.events.FlexEvent;
    ? ? ? ? ? ? import mx.rpc.events.FaultEvent;
    ? ? ? ? ? ? import mx.rpc.events.ResultEvent;

    ? ? ? ? ? ? protected function services_resultHandler(event:ResultEvent):void
    ? ? ? ? ? ? {
    ? ? ? ? ? ? ? ? Alert.show(event.result.toString());
    ? ? ? ? ? ? }

    ? ? ? ? ? ? protected function services_faultHandler(event:FaultEvent):void
    ? ? ? ? ? ? {
    ? ? ? ? ? ? ? ? Alert.show(event.fault.message);
    ? ? ? ? ? ? }

    ? ? ? ? ? ? protected function application1_creationCompleteHandler(event:FlexEvent):void
    ? ? ? ? ? ? {
    ? ? ? ? ? ? ? ? services.sayHello();
    ? ? ? ? ? ? }

    ? ? ? ? ]]>
    ? ?
    ? ?
    ? ? ? ? “services” destination=“blazeServices”
    ? ? ? ? ? ? ? ? ? ? ? ? result=“services_resultHandler(event)”
    ? ? ? ? ? ? ? ? ? ? ? ? fault=“services_faultHandler(event)” />
    ? ?

Agora só falta fazer o deploy da aplicação e subir o servidor.

  1. Vá em Window – Show View – Other. Na janela que abrir, digite Servers e clique OK
  2. Na view Servers, clique com o botão direito em Tomcat v6.0 e selecione Add and Remove…
  3. Selecione a aplicação HelloBlazeDS e clique em Add e depois Finish
  4. Na view Servers, clique com o botão direito em Tomcat v6.0 e clique em Run

Agora é só executar a aplicação e ver o resultado:

Isso é tudo, guarde esse projeto configurado para ser usado nos próximos posts.

Fev 24

Android – Configurações iniciais e “Hello, world!”

Escrito por DClick Team em 1, 4, 6, Android, Aplicativos, AR, BI, blog, class, configuração, control, Curso, Cursos, Desenvolvimento, developer, development, Dica, dll, Download, Eclipse, err, exemplo, for, Google, html, IE, image, int, Java, Linux, lista, Mercado, mg, mobile, O, on, Outros, print, processo, reference, RIA, Ria’s Geral, SDK, Segurança, ssl, Sun, TAT, Tema, Teste, tool, Tutoriais, Tutorial, Twitter, UI, uint, update, UX @ 02 24th, 2011 | via http://blog.dclick.com.br/pt/ | Sem comentários
DClick Team
? 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 »

Este tutorial é o primeiro de uma série de tutoriais sobre o sistema operacional Android. Inicialmente falarei um pouco sobre o que é o android, para que os iniciantes entendam um pouco melhor o que está por trás deste Sistema Operacional que, em tão pouco tempo, conquistou uma fatia tão grande do mercado de mobiles.


O Android

É uma plataforma open source criada, como muitos devem saber, pelo Google. Mas não apenas por ele. Do desenvolvimento deste SO participou o grupo Open Handset Alliance, que conta com outros 47 grandes nomes, como: HTC, LG, Samsung, Motorola, Toshiba, Sprint Nextel, T-Mobile, Asus, Intel, e muitos outros (Mais informações sobre a OHA podem ser encontradas em: http://www.openhandsetalliance.com/).

O SO e a máquina virtual

Baseado no kernel 2.6 do Linux, o SO do Android é responsável por gerenciar a memória, os processos, segurança de arquivos e pastas e também redes e drivers. Cada aplicativo dispara um processo no sistema operacional e cada processo possui uma thread dedicada. O sistema operacional tem total controle sobre os processos e pode, se necessário, encerrá-los e reiniciá-los para liberar recursos.

A linguagem utilizada para desenvolvimento de aplicações em Android, como muitos devem saber, é Java. Mas o que poucos sabem é que o SO não possui uma JVM, e sim uma máquina virtual chamada Dalvik, otimizada para mobile.

Configuração inicial

A seguir está um tutorial passo-a-passo sobre como instalar o SDK do Android no Eclipse para que possamos começar a desenvolver para esta plataforma.

Assumirei que o Eclipse já está instalado e configurado na sua máquina. Desta forma, a primeira coisa que deve-se fazer é o download do SDK do android. Que pode ser obtido no seguinte endereço:

http://developer.android.com/sdk/index.html

Após fazer o download do SDK, extraia-o para alguma pasta do seu sistema, como “D:/Android_SDK”, por exemplo. Utilize o update manager do Eclipse para instalar os plug-ins disponíveis para o Android Development Tools (ADT) pela URL: https://dll-ssl.google.com/android/eclipse

Em seguida deve-se configurar o “caminho” para onde você salvou o SDK na guia “preferences” do seu Eclipse:

O próximo passo é instalar os pacotes do SDK disponíveis através do ADT:

Após selecionar os pacotes desejados, clique em “Install Selected” e confirme as licenças para cada um deles. O passo seguinte é instalar um AVD (Android Virtual Device) para que você possa testar seus aplicativos.

Na mesma janela do ADT, selecione a aba “Virtual Devices” , clique em “New”, configure como desejar e clique em “Create AVD”:

Em seguida teste seu AVD. Selecione-o na lista, clique em “Start…” e em seguida em “Launch”:

Parabéns! Seu Eclipse agora está configurado para que você comece a desenvolver aplicativos para Android.

Hello, World!

Agradecimentos ao @eduardohorvath pelo apoio e auxílio na estruturação do post.

Jan 7

Dica Flex – Utilizando o padrão Typesafe Enum no ActionScript 3.0

Escrito por Pablo Souza em 1, 2009, 4, 6, action, Actionscript, ActionScript 3, Adobe, app, AR, arte, BI, blog, boolean, break, case, class, classe, classes, código, demo, Dica, Download, err, erro, error, event, events, Excel, exemplo, Flex, for, function, handle, html, ide, IE, if, image, Java, library, Livro, MXML, O, on, Oracle, padrão, problema, pt, RIA, Ria’s Geral, RoR, Segurança, spark, state, string, TAT, Teste, UAU, UI, utf8, XML @ 01 7th, 2011 | via http://rectius.com.br/blog | Sem comentários
Pablo Souza
? 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 »

Um das grandes passagens do livro Code Complete é sem dúvidas aquela que diz: “se uma linguagem não suporta nativamente uma determinada implementação, você deve então programar ‘para a linguagem’ e não ‘na linguagem’ “. O exemplo que o livro apresenta para essas limitações é justamente com relação ao Typesafe Enum, nossa dica Flex de hoje.

Os Enums são muito utilizados para evitar redundância de código e garantir o máximo de segurança nas aplicações. Além de serem excelentes objetos para se trabalhar com estados e tipos, eles também são parte essencial quando trabalhamos com o padrão de projeto State. Ele é muito utilizado também para limitar as opções de argumentos para determinados métodos. O problema é que diferente do Java 5 ou do ActionScript 2, o ActionScript 3 não suporta Enums e não permite usar o modificador privado no construtor das classes.

Suponha que temos um método que retorna a URL de uma imagem em 3 diferentes tamanhos: Pequeno, médio e grande. Para retornar o caminho dessa imagem passamos como argumento do método qual o tamanho que esperamos. Sem utilizar o Typesafe Enum poderíamos fazer conforme código abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               initialize="application1_initializeHandler(event)">

    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;

            private static const PEQUENO:String     = "pequeno";
            private static const MEDIO:String     = "medio";
            private static const GRANDE:String   = "grande";

            protected function application1_initializeHandler(event:FlexEvent):void
            {
                trace( retornaCaminhoImagem("texto qualquer") );
            }

            private function retornaCaminhoImagem(tamanho:String):String
            {
                var caminho:String;
                switch(tamanho)
                {
                    case PEQUENO:
                    {
                        caminho = "http://www.suaurl.com/imagem_pequena.jpg";
                        break;
                    }
                    case MEDIO:
                    {
                        caminho = "http://www.suaurl.com/imagem_media.jpg";
                        break;
                    }
                    case GRANDE:
                    {
                        caminho = "http://www.suaurl.com/imagem_grande.jpg";
                        break;
                    }
                    default:
                    {
                        caminho = "[ERRO]";
                    }
                }

                return caminho;
            }

        ]]>
    </fx:Script>

</s:Application>

O problema no código acima é que podemos passar como argumento do método “retornaCaminhoImagem()” qualquer string:

1
trace( retornaCaminhoImagem("texto qualquer") );

Para resolvermos o problema acima vamos criar uma classe que implementa o padrão Typesafe Enum:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package enum
{
    public class ImageSizeEnum
    {

        public static const PEQUENO:ImageSizeEnum   = new ImageSizeEnum("pequeno");
        public static const MEDIO:ImageSizeEnum     = new ImageSizeEnum("medio");
        public static const GRANDE:ImageSizeEnum    = new ImageSizeEnum("grande");

        private var _tamanho:String;

        private static var _instance:Boolean = false;

        // Bloco estático
        {
            _instance = true;
        }

        public function ImageSizeEnum(tamanho:String)
        {
            if(_instance)
            {
                throw new Error("Você não pode instanciar um Typesafe Enum");
            }
            _tamanho = tamanho;
        }

        public function toString():String
        {
            return this._tamanho;
        }
    }
}

Repare no bloco estático que criamos, ele será excutado assim que a classe for carregada na memória, portanto antes do construtor da classe ser chamado e depois que todos os membros estáticos forem criados.

Agora crie um novo método chamado “retornaCaminhoTypesafeEnum()”:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private function retornaCaminhoTypesafeEnum(tamanho:ImageSizeEnum):String
            {
                var caminho:String;
                switch(tamanho)
                {
                    case ImageSizeEnum.PEQUENO:
                    {
                        caminho = "http://www.suaurl.com/imagem_pequena.jpg";
                        break;
                    }
                    case ImageSizeEnum.MEDIO:
                    {
                        caminho = "http://www.suaurl.com/imagem_media.jpg";
                        break;
                    }
                    case ImageSizeEnum.GRANDE:
                    {
                        caminho = "http://www.suaurl.com/imagem_grande.jpg";
                        break;
                    }
                    default:
                    {
                        caminho = "[ERRO]";
                    }
                }

                return caminho;
            }

Para utilizá-lo faça:

1
trace( retornaCaminhoTypesafeEnum(ImageSizeEnum.GRANDE) );

Faça alguns testes, tente instanciar nosso Enum para criar um novo tipo:

1
var enum:ImageSizeEnum = new ImageSizeEnum("novo_tipo");

Como resultado você deve ter recebido um erro em tempo de execução com a mensagem: “Você não pode instanciar um Typesafe Enum”.

Agora tente passar uma string qualquer como argumento do método “retornaCaminhoTypesafeEnum()”:

1
trace( retornaCaminhoTypesafeEnum("novo_tipo") );

Você deve ter visto um erro em tempo de compilação uma vez não ser possível passar como argumento do método uma string quando ele espera o tipo “ImageSizeEnum”.

Bom galera espero que tenham gostado. Veja aqui um projeto de exemplo.

Até a próxima!

Jan 3

Alterando a senha de um usuário do Active Directory usando Java

Escrito por DClick Team em .NET, 1, 4, 6, abas, AR, Artigo, auto, BI, class, classe, Diversos, err, exemplo, for, Google, html, ide, if, int, internet, Java, library, Microsoft, O, on, padrão, Password, print, problema, problemas, pt, rest, RIA, Ria’s Geral, Segurança, server, servidor, Software, ssl, string, Sun, TAT, Tema, Teste, tool, Tutoriais, Twitter, UI, utils, UX, window, windows, XP @ 01 3rd, 2011 | via http://blog.dclick.com.br/pt/ | 1 comentário
DClick Team
? 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 »

link temos os passos para se fazer isso. Veja que para importar o certificado temos que usar um comando parecido com sudo keytool -import -keystore ./jre/lib/security/cacerts -file server-certificate.crt, dependendo do seu sistema operacional e onde está o seu certificado (.crt).

Nas pesquisas que fizemos, usamos alguns softwares que nos auxiliaram. Usamos o Portcle (aplicação Java para gerenciar certificados) para ter certeza que o certificado estava importado no meu “cacerts” e uma outra aplicação Java para fazer browse no AD, o JXplorer. O JXplorer é importante para acharmos o DN (Distinguished Name) de um usuário para podermos fazer os testes.

Por fim, o que tínhamos que fazer era permitir que um usuário ou um grupo de usuários tivesse o privilégio de trocar a senha de qualquer usuário. Basta seguir este artigo para conseguir isso.

Abaixo temos um exemplo de uma classe simples que possui um método para trocar a senha e outro método para dar “unlock” do usuário.

Classe de teste:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.io.IOException;
import java.io.UnsupportedEncodingException;

import javax.naming.NamingException;
import javax.naming.ldap.LdapContext;

import br.com.dclick.utils.ad.ADUtil;

public class test {

? ? /**
? ?? * @param args
? ?? * @throws NamingException
? ?? * @throws IOException
? ?? * @throws UnsupportedEncodingException
? ?? */

? ? public static void main(String[] args) throws NamingException, UnsupportedEncodingException, IOException {
? ? ? ? // TODO Auto-generated method stub
? ? ? ? ? ? ? ?
? ? ? ? ADUtil adUtil = new ADUtil();
? ? ? ?
? ? ? ? LdapContext context = adUtil.createUserContext(
? ? ? ? ? ? ? ? “CN=modifyad, OU=domain, DC=com, DC=com, DC=br”,
? ? ? ? ? ? ? ? “senha”,
? ? ? ? ? ? ? ? “/Library/Java/Home/lib/security/cacerts”,
? ? ? ? ? ? ? ? “ldap://x.x.x.x:636″);
? ? ? ?
? ? ? ? adUtil.unlockAccount(context,
? ? ? ? ? ? ? ? “CN=usuario, OU=DClick, DC=domain, DC=com, DC=br”);
? ? ? ? adUtil.changePassword(context,
? ? ? ? ? ? ? ? “CN=usuario, OU=DClick, DC=domain, DC=com, DC=br”,
? ? ? ? ? ? ? ? “nova-senha”);
? ? ? ?
? ? ? ?
? ? }

}

Classe Java:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package br.com.dclick.utils.ad;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.DirContext;
import javax.naming.directory.ModificationItem;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;

/**
?* @author rafael.martinelli (rafael.martinelli@dclick.com.br)
?*
?*/

public class ADUtil {

? ?
? ? /**
? ?? * Método que retorna o contexto de conexão do usuário
? ?? * com poder de troca de senha. Deve-se registrar o certificado
? ?? * do AD na VM Java
? ?? *
? ?? * @param adminCN Ex: “CN=modifyad, OU=domain, DC=com, DC=com, DC=br”
? ?? * @param adminPassword
? ?? * @param keystore Ex: “/Library/Java/Home/lib/security/cacerts”
? ?? * @param ldapUrl Ex: “ldap://x.x.x.x:636″
? ?? * @return javax.naming.ldap.LdapContext
? ?? * @throws NamingException
? ?? */

? ? public LdapContext createUserContext(String adminDN,
? ? ? ?
? ? ? ? String adminPassword, String keystore,
? ? ? ? String ldapUrl) throws NamingException {
? ? ? ?
? ? ? ? Hashtable env = new Hashtable();
?
? ? ? ? System.setProperty(“javax.net.ssl.trustStore”, keystore);
?
? ? ? ? env.put(Context.INITIAL_CONTEXT_FACTORY, “com.sun.jndi.ldap.LdapCtxFactory”);
? ? ? ? env.put(Context.SECURITY_AUTHENTICATION, “simple”);
? ? ? ? env.put(Context.SECURITY_PRINCIPAL, adminDN);
? ? ? ? env.put(Context.SECURITY_CREDENTIALS, adminPassword);
? ? ? ? env.put(Context.SECURITY_PROTOCOL, “ssl”); // para poder modificar password y grupos del usuario.
? ? ? ? env.put(Context.PROVIDER_URL, ldapUrl);
? ? ? ? env.put(Context.REFERRAL, “ignore”);
? ? ? ?
? ? ? ? return new InitialLdapContext(env, null);
? ? ? ?
? ? }
? ??
? ? /**
? ?? * Troca a senha de um usuário no AD
? ?? *
? ?? * @param ldapContext
? ?? * @param userCN Ex: “CN=usuario, OU=DClick, DC=domain, DC=com, DC=br”
? ?? * @param newPassword
? ?? * @throws NamingException
? ?? * @throws UnsupportedEncodingException
? ?? * @throws IOException
? ?? */

? ? public void changePassword(LdapContext ldapContext, String userCN, String newPassword) throws NamingException, UnsupportedEncodingException, IOException {
? ? ? ? ? ?
? ? ? ? modifyAdAttribute(ldapContext, userCN, “unicodePwd”, getPassword(newPassword));
? ? ? ? System.out.println(“Password changed for “ + userCN);
? ? }
? ?
? ? /**
? ?? * Destrava um usuário do AD
? ?? *
? ?? * @param ldapContext
? ?? * @param userDN Ex: “CN=usuario, OU=DClick, DC=domain, DC=com, DC=br”
? ?? * @param newPassword
? ?? * @throws NamingException
? ?? * @throws UnsupportedEncodingException
? ?? * @throws IOException
? ?? */

? ? public void unlockAccount(LdapContext ldapContext, String userDN) throws NamingException, UnsupportedEncodingException, IOException {
? ? ? ?
? ? ? ? modifyAdAttribute(ldapContext, userDN, “lockoutTime”, “0″);
? ? ? ? System.out.println(“Account “ + userDN + ” unlocked”);
? ? ? ?
? ? }
? ?
? ?
? ?
? ??
? ? /**
? ?? * Modifica um atributo de um usuário/group no AD
? ?? *
? ?? * @param ldapContext
? ?? * @param userCN Ex: “CN=usuario, OU=DClick, DC=domain, DC=com, DC=br”
? ?? * @param attribute Ex: “unicodePwd”
? ?? * @param value Valor do attributo
? ?? * @throws NamingException
? ?? */

? ? private void modifyAdAttribute(LdapContext ldapContext, String userCN, String attribute, Object value) throws NamingException{
? ? ? ? ModificationItem[] modificationItem = new ModificationItem[1];
? ? ? ? modificationItem[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE,
? ? ? ? ? ? ? ? new BasicAttribute(attribute, value));
? ? ? ? ldapContext.modifyAttributes(userCN, modificationItem);
? ? }
? ?
? ?
? ? /**
? ?? * Gera o password no formato binário e com aspas, respeitando
? ?? * o que o AD precisa
? ?? *
? ?? * @param password
? ?? * @return
? ?? * @throws UnsupportedEncodingException
? ?? */

? ? private static byte[] getPassword(String password) throws UnsupportedEncodingException{
? ? ? ? String newQuotedPassword = “““ + password + “““;
? ? ? ? return newQuotedPassword.getBytes(“UTF-16LE”);
? ? }

}

Dez 15

Silverlight 5

Escrito por Alexandre Tadashi em .NET, 1, 4, 6, Air, Aplicativos, AR, arte, BI, blog, Blogs, browser, busca, class, classe, comunidade, control, Curso, Cursos, dados, Desenvolvimento, Desktop, Destaque, Download, event, Evento, events, exemplo, for, Google, IE, if, int, lista, mg, Microsoft, Microsoft Silverlight, NaN, News, Notícias, novidade, Novidades, O, Office, on, Outros, rest, RIA, Ria’s Geral, Segurança, silverlight, site, Tecnologia, Twitter, Vídeo, Vídeos, XAML, XP @ 12 15th, 2010 | via http://alexandretadashi.net/ | Sem comentários
Alexandre Tadashi
? 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 »

Durante o evento Silverlight Firestarter que ocorreu no dia 02 de Dezembro, foram apresentados novos recursos referente a próxima versão do Silverlight. A versão 5 da tecnologia ainda está em desenvolvimento, mas assim como aconteceu com as versões anteriores, ela promete chegar com uma série de melhorias e novos recursos, buscando sempre atender os pedidos da comunidade.
Assim como foi na versão atual do Silverlight, as evoluções nos recursos relacionados a áudio e vídeos são um destaque a parte, como por exemplo, o controle na velocidade dos vídeos e melhorias para a preservação do tom de áudio. No desenvolvimento de aplicações houve melhorias no Databinding, tornando a aplicação mais fácil de ser codificada via XAML, outra novidade interessante é que a nova versão traz uma nova classe de segurança que permite as aplicações executarem tarefas complexas sem sair do Browser, como por exemplo, acessar o Microsoft Office ou outros aplicativos desktop.
O fantástico recurso Pivot Viewer também está previsto para a nova versão do SKD do Silverlight, o Pivot Viewer é uma das grandes novidades do momento, ele permite criar coleções de dados que podem ser manipuladas visualmente.
No site do Tim Heuer você encontra uma lista com mais detalhes técnicos sobre os novos recursos previstos no Silverlight 5, a nova versão do Silverlight está previsto para 2011, enquanto não sai uma versão para download você poderá votar nas solicitações da comunidade ou sugerir novas funcionalidades no site http://silverlight.mswish.net/ .
Mais informações em?The Future of Microsoft Silverlight

Twitter: @atsh2

Dez 6

Ícone Guia (tab icon)

Escrito por DClick Team em 1, 4, 6, Adobe, AR, arte, blog, class, efeito, efeitos, err, erro, exemplo, Ferramenta, for, fundo, ide, IE, if, image, menu, mg, O, on, photoshop, RIA, Ria’s Geral, Segurança, TAT, Twitter, UI, XP @ 12 6th, 2010 | via http://blog.dclick.com.br/pt/ | Sem comentários
DClick Team
? 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 »

Os ícones da tab, são ícones de referência (ou ícones guia), ícones simples com apenas dois estados: não seleiconados e selecionados.

Conforme você já deve estar cansado de saber, você deve criar ícones para as resoluções já descritas nos posts anteriores, baixa, média e alta, tal como a tabela 1.

Estrutura

No estado de não selecionado os ícones da tab tem o mesmo preenchimento de gradiente e efeitos dos ícones do menu, mas sem nenhum brilho externo (glow etc).

Possuem sombra tênue na base e tem o mesmo gradiente na frente como os ícones de diálogo.

Esses ícones tem uma borda de segurança (safeframe) de 1px, que só pode ser sobreposta por conta dos efeitos do anti-alias.

Todas as dimensões especificadas nesta página são baseadas em um tamanho 32?32 px. Mantenha 1 px de padding em torno da caixa delimitadora dentro de um modelo feito no Photoshop por exemplo.

A arte final deve ter 32 x 32 px e obviamente PNG com fundo transparente, isso será sempre reforçado, pois é infelizmente um dos erros mais comuns na exportação de ícones.

Ícones não selecionados

Luz, efeitos e sombras

Passo a passo

Criar as formas básicas usando uma ferramenta como Adobe Illustrator.

Importar a forma de uma ferramenta como o Adobe Photoshop e dimensionar uma imagem de 32?32 px em um fundo transparente.

Adicionar os efeitos observados na Figura 13

Exportar o ícone tamanho 32?32 como um arquivo PNG com transparência.

Ícones Tab Selecionados

Os ícones da tab selecionados terão o mesmo preenchimento gradiente e efeitos como os ícones do menu, mas sem nenhum brilho externo (glow).

Passo a Passo

1. Criar o formato do ícone utilizando uma ferramenta como Adobe Illustrator, Fireworks, etc.

2. Importar esse formato no Adobe Photoshop (isso caso seu ícone seja complexo o suficiente para que não faça diretamente no Photoshop), e então aplique o tamanho de 32 x 32px de área com fundo transparente.

3. Adicione efeitos de acordo com a figura 14

4. Exporte o ícone com tamanho 32 x 32px como arquivo PNG e obviamente com fundo transparente.

Nov 30

Ícones da Barra de Status

Escrito por DClick Team em 1, 4, 6, Adobe, Android, Aplicativos, AR, arte, bar, blog, class, dados, efeito, efeitos, err, exemplo, Exemplos, Ferramenta, for, fundo, Gráfico, ide, IE, if, image, imagens, menu, mg, O, on, photoshop, procura, pt, RIA, Ria’s Geral, Segurança, TAT, Tema, Tutoriais, Twitter, UI, XP @ 11 30th, 2010 | via http://blog.dclick.com.br/pt/ | Sem comentários
DClick Team
? 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 »

Os ícones da barra de status servem para representar as notificações que acontecem no sistema operacional ou de seus aplicativos.

Graficamente eles são semelhantes aos ícones do menu, mas são menores e possuiem maior contraste, portanto não se deixe enganar e siga a Guideline.

Não esqueça das dimensões que são sempre pequenas, médias e grandes, tal como descrito nos primeiros posts, e que tem suas resoluções descritas na tabela 1.

.

Estrutura

.

  • Os cantos arredondados não devem ser muito extensos, devem respeitar uma margem máxima de 2px, para entender verifique a Figura 9 (o número das figuras não é de acordo os nossos posts e sim de acordo com a Guideline oficial) e perceba no canto direito superior esse detalhe e de como fazer o canto arredondado corretamente.
  • Todas as dimensões possuem 25 x 25px, e com um área de segurança (safeframe) de 2px, tal como na Figura 9.
  • Detalhe importante, os ícones da barra status podem vazar essa área de segurança na direita e na esquerda caso necessário, mas jamais poderá vazar nos cantos superior e inferior.
  • Como você já deve saber, a arte deve ser exportada com um PNG transparente, para isso eu sugiro o Fireworks como ferramenta para desenvolver esses ícones, ele é fácil de mexer para criar ícones com esses padrões.
  • Porém, o pacote enviado pela Android é em PSD, e você poderá editar e fazer seus ícones através do Photoshop.

.

Luzes, Efeitos e Sombras

.

Observe que os ícones da barra de status são ligeiramente menores, por isso eles possuem um alto contraste, para facilitar a sua visualização, dando um aspecto mais clean e objetivo das suas formas. Eu não sei se você usa um Photoshop ou outro programa gráfico em português, eu espero que não, vide que a maioria dos tutoriais não dão suporte a esses programas, ainda mais que as traduções ficam péssimas, mas, vou procurar deixar alguns detalhes em inglês e fazer comentários, o motivo é um só, imagine Depth, traduzido como profundidade, a gente sabe bem o que é um Depth em um gráfico, mas profundidade pode ter outro sentido, então tome cuidado com isso, as imagens ajudam a você entender o que é cada coisa.

.

Passo a Passo

.
1.  Em uma ferramenta como o Adobe Photoshop, crie uma forma base em uma imagem de 25?25 px com fundo transparente. Cuidado com o safeframe, e mantenha o superior e inferior de 2 pixels livre, recorde-se do que foi citado acima
2. Adicione cantos arredondados, conforme especificado na Figura 9.
3. Adicione luz, efeitos e sombras, conforme especificado na Figura 10.
4. Exportar o ícone com tamanho 25?25 como um arquivo PNG com fundo transparente.
.

“O que fazer e o que não se deve fazer”

.

Abaixo segue alguns exemplos do que se deve e não se deve fazer, ou seja, seguir os padrões é importante.

Nov 29

Ícones do Menu

Escrito por DClick Team em 1, 3d, 4, 6, Adobe, Android, AR, arte, BI, blog, class, dados, Dica, Download, efeito, efeitos, err, exemplo, Exemplos, Ferramenta, for, fundo, Geral, icones, ide, image, menu, mg, O, on, padrão, photoshop, pt, rest, RIA, Ria’s Geral, Segurança, TAT, Twitter, UI, XP @ 11 29th, 2010 | via http://blog.dclick.com.br/pt/ | Sem comentários
DClick Team
? 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 »


Segundo o padrão exigido do Android Guideline, os ícones do menu devem ser desenhados de maneira frontal, 2d, e não em 3D ou perspectiva.
Como disse, esse é um resumo, eles escrevem toda um detalhamento para o mais leigo dos leigos, acho que de forma geral dá para entender bem o que é essa exigência.

Não esqueça de aplicar as resoluções indicadas na Tabela1.

Estrutura

Com o objetivo de manter a coerência os ícones do menu devem usar a mesma paleta de cores e efeitos, abaixo vamos mostrar essa paleta e efeitos para você seguir o padrão.

Segundo a guideline, os ícones devem possuir cantos arrendondados, mas somente quando de maneira racional for necessário. Por exemplo, na FIGURA 7, o lugar racional para esse canto arredondado é o teto, e não o resto do objeto.

Todas as dimensões desta página se baseiam na resolução de um ícone 48 x 48px, com 6px de segurança em volta do ícone, totalizando 54 x 54 área total.

A arte final deve ficar com um arquivo PNG transparente.

Você pode conferir os ícones no pacote que postei no post Pacote para Download

Luzes, Efeitos e Sombras

Segue aqui alguns padrões que você deve usar para criar o efeito desejado, perceba a iluminação utilizada, as sombras e o tom.

Passo a passo

1.  Criar as formas básicas usando uma ferramenta como o Adobe Illustrator.
2. Importar a forma em uma ferramenta como o Adobe Photoshop e dimensionar uma imagem de 48?48 px em um fundo transparente. Cuidado com o safeframe.
3. Adicionar os efeitos observados, como descrito na Figura 8.
4. Exportar o ícone de 48?48 como um arquivo PNG com transparência habilitado.

“O que fazer e o que não se deve fazer”

Abaixo segue alguns exemplos do que se deve e não se deve fazer, ou seja, seguir os padrões é importante.

Nov 29

Segurança não e paranóia

Escrito por Kelps Sousa em .NET, 1, 4, 6, Android, AR, arte, auto, back, BI, blog, carregar, case, código, dados, Dicas, Download, e-book, entrevista, exemplo, Exemplos, for, futuro, Google, html, IE, int, Livro, Mac, map, Mate, mg, Microsoft, mobile, NaN, News, O, on, opensource, problema, Projetos, prova, pt, Revistas, RIA, Ria’s Geral, Segurança, SEO, server, serviço, Sugestões, tag, TAT, tv, Twitter, UI, uint, Ved, Vídeo, Vídeos, window, windows, windows 7, Windows Mobile, XAML @ 11 29th, 2010 | via http://kelps-sousa.blogspot.com/ | 2 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 »

Quem me segue no Twitter já deve estar sabendo que na última quarta-feira (24/11/2010) eu fui vítma de um sequestro relâmpago. Fui abordado à 3 quadras da esquina da Av. Jorge João Saad com a Av. Francisco Morato (muito cuidado se você mora ou trabalha na região). Fiquei como refém dos bandidos por quase 3h enquanto tentavam sacar e fazer compras com meus cartões de crédito e débito. Fora os gastos que fizeram nos meus cartões, levaram também o som do meu carro, meu celular e minha mochila que além do laptop tinha todos os meus carregadores, e-book reader, cabos de dados, headset, pen-drives e HDs externos. É sobre essa última perda que quero falar.

Graças a Deus não me machucaram. Os cartões têm seguro, vou recuperar o dinheiro perdido. O carro foi encontrado inteiro pela polícia na manhã seguinte (só levaram o som). Deixaram no carro todos meus documentos que estavam na carteira. Mas meu computador e, mais importante, os dados que estavam “espalhados” pela mochila (HDs, laptop e pen-drives e celular) eu não vou recuperar.

Os equipamentos em si serão repostos com o tempo (começei pelo celular). Mas os dados não. Como muitos de vocês, eu também não tinha o hábito de realizar backups com frequência e também não deixava meus dados criptografados pois achava que isso era exagero. Pois querem saber de uma coisa? Não é exagero!

Depois de todos os transtornos (BO, cancelamento de cartões, trocas de senhas…) o que mais me afetou nesse caso todo foi que:

  • Não recuperarei MUITOS dos dados que estavam naquela mochila, pois não tinham backup. Perdi fotos, músicas, vídeos, entrevistas gravadas para o xamlcast, projetos, documentos, exemplos de código, capítulos do livro que estou escrevendo…
  • Me sinto vulnerável pois os bandidos estão com acesso fácil à esses dados. Sei que provavelmente nada disso tem valor para eles e é pouco provável que façam algo, mas a sensação de vulnerabilidade não diminue por causa disso.
  • Aprendi a lição da forma mais cruel (e mais eficaz) possível. Estou escrevendo esse post para que vocês não precisem passar por isso para tomar providências e se previnir.

    O que aprendi com tudo isso?

    Backup

    Normalmente não fazemos backups ou não fazemos com frequencia pois “dá trabalho”. Pois bem, chega de ser preguiçoso. Estou sem dados agora por causa dessa preguiça e chegou a hora de levar isso a sério e resolver esse problema. Há muitas soluções de backup parcial ou totalmente automatizadas que invalidam essa desculpa então, mãos à obra.

    Após estudar algumas opções de backup, eu decidi que vou usar um Windows Home Server para a tarefa. Escolhi essa opção pois não terei que me preocupar com nada além de espaço de armazenamento depois que estiver configurado. Todos os computadores que eu comprar de agora em diante terão um plano de backup no Home Server e a vantagem é que para que o backup ocorra, basta que as 2 máquinas estejam na mesma rede. Além disso, tenho uma vantagem extra já que o Home Server também pode ser utilizado como central de mídia da casa, permitindo que eu assista a vídeos, ouça música ou veja minhas fotos de qualquer computador da rede ou até mesmo na minha TV, por meio do Xbox.

    Scott Hanselman fez alguns posts sobre o Windows Home Server que podem servir como um bom ponto de partida:

    • The Case of the Failing Disk Drive or Windows Home Server Saved My Marriage
    • Windows Home Server Unsupported Feature – Backup Duplication
    • Posts de Scott Hanselman marcados com a tag Home Server

    Criptografia

    Sim, a partir de agora vou criptografar todos os meus computadores, pen-drives e HDs externos. Se acontecer algo no futuro (espero nunca mais passar por algo assim novamente, mas nunca se sabe), ficarei tranquilo pois ninguém além de mim será capaz de acessar meus dados e eu poderei recuperar tudo dos meus backups (feitos no Home Server). Esse tipo de tranquilidade não tem preço.

    Após pesquisar um pouco, vi que há 2 opções interessantes de criptografia: o Bitlocker do Windows e o aplicativo opensource TrueCrypt. Decidi que vou usar o True Crypt pois tem uma criptografia mais alta, é extremamente seguro, open source, além do fato de o Bitlocker estar disponível apenas com a versão ultimate do Windows 7.

    O TrueCrypt é tão seguro que mesmo após 18 meses de tentativas, nem o FBI nem a CIA conseguiram burlar sua segurança para ajudar nossa Polícia Federal a ter acesso aos dados do banqueiro Daniel Dantas, acusado de crimes financeiros.

    Outra coisa interessante do TrueCrypt é que ele suporta emcriptação em hardware, se a sua CPU tiver suporte (processadores i5 e i7 têm), o que ajuda a diminuir qualquer possível perda de performance que possa ocorrer.

    Ande leve

    Perdi tudo pois estava tudo na minha mochila. É aquela velha mania de “talvez eu precise”. Pois acontece que quase nunca precisava de tudo aquilo. Minha mochila devia estar pesando uns 4Kg e eu posso dizer com segurança que 90% das vezes que precisei de algo dela no trabalho ou em qualquer outro lugar, foi para fazer algo que poderia esperar até eu chegar em casa ou que poderia ser feito de outra forma.

    Não vou mais carregar meu laptop para todo lugar (depois que comprar comprar um novo). Não vou mais deixar meus backups e originais juntos. Não vou mais carregar todos os meus gadgets se não for precisar deles.

    Próximos passos

    Agora quero ver esquemas de segurança para o celular. Eu tinha um MotoQ 11 com Windows Mobile 6.1. Estava com o serviço MyPhone da Microsoft que faz backups diários dos dados e memória do telefone, mas não fazia backup dos dados do cartão de memória (onde estavam alguns ítens que eu realmente não queria ter perdido). Como não levaram o meu chip, o esquema de localização, bloqueio e formatação remota do MyPhone não me foram úteis, mas o serviço me ajudou bastante mesmo assim.

    Como substituto provisório, estou com um LG Optimus One rodando Android 2.2. Ficarei utilizando esse aparelho até o meu Windows Phone 7 chegar, pouco antes do Natal (se tudo correr bem). Estou pesquisando quais são minhas opções tanto de criptografia quanto de backup para ambos os aparelhos. Aceitos sugestões.

    Outra coisa que me interessa é algum tipo de serviço que faça backup de dados remotamente ou na nuvem, de forma segura. Quero ter a maior cobertura possível do ponto de vista de segurança, daqui pra frente.

    Resumo

    Não brinquem com segurança. Não deixem pra depois. Façam seus backups hoje e, se possível, criptografem os dados, pelo menos os mais sensíveis também. Tomem cuidado. Fico triste e as vezes até desconsolado quando lembro de algumas coisas que perdi (principalmente dados) que não recuperarei. Não passem pelo que estou passando.

    Quero também aproveitar para agradecer a todos que me apoiaram e me enviaram palavras de consolo nesses últimos dias. Vocês não fazem idéia de como isso ajuda.



    Nov 6

    BPOS

    Escrito por Alexandre Tadashi em 1, 4, 6, Access, api, Aplicativos, AR, BI, blog, Blogs, busca, buscas, business, class, cliente, comunicação, conferência, configuração, control, css, Curso, Cursos, dados, Dicas, email, err, etica, event, Evento, Eventos, Ferramenta, filter, filtra, Flex, for, Formulário, Formulários, gc, Google, ide, IE, if, image, int, internet, live, mg, Microsoft, mobile, Notícias, O, Office, offline, on, online, Outros, Partilha, produto, Projetos, RIA, Ria’s Geral, Segurança, server, serviço, Serviços, sharepoint, silverlight, site, TAT, Treinamento, Twitter, UI, uint, UX, Vídeo, web, window, windows, Windows Mobile, XP @ 11 6th, 2010 | via http://alexandretadashi.net/ | Sem comentários
    Alexandre Tadashi
    ? 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 »

    Conheça o BPOS (Business Productivity Online Suite), um conjunto de produtos corporativos, fornecidos como serviços por assinatura, com baixo custo, hospedados pela Microsoft e vendidos por parceiros.
    O BPOS disponibiliza ferramentas de colaboração e comunicação hospedadas que apresentam os seguintes benefícios:

    * Alta disponibilidade
    * Segurança abrangente
    * Gerenciamento simplificado de TI

     
    O BPOS é composto dos seguintes serviços online:

    Implemente rapidamente mensagens de email que fornecem aos seus funcionários acesso online a calendários e contatos compartilhados, com modernas proteções de segurança, como filtragem de spam e antivírus através do Exchange Hosted Filtering, tem suporte ao Microsoft Office Outlook®, Outlook Anywhere e Outlook Web Access, permitindo que você tenha o melhor dos dois mundos, você tem o controle total da caixa dos emails de cada funcionário, podendo ter caixas de entrada de até 25 GB por usuário, o serviço tem suporte a dispositivos Windows Mobile® 6.0 e outros dispositivos Exchange ActiveSync® 12 , você terá flexibilidade para acessar de onde e como quiser os seus e-mails.


    Compartilhe documentos, contatos, calendários e tarefas em um único local. Baseado no Microsoft Office SharePoint® Server 2007, o SharePoint Online fornece uma grande capacidade de colaboração possibilitando aos membros da equipe o trabalho eficiente em conjunto, encontrar recursos organizacionais, fazer buscas no site da Intranet e gerenciar conteúdo e fluxos de trabalho, com o SharePoint Online é possível criar portais de equipe de trabalho, gerenciar e personalizar formulários, administrar conteúdos, compartilhar documentos em um único local, assim como contatos, calendários e tarefas, ter acesso offline dos documentos através do Outlook, criar sites baseado em modelos , como um blog ou site wiki, entre outros recursos que possibilitam realizar de forma eficiente qualquer tarefa em equipe, gerenciar fluxo de documentos com segurança e melhorar de forma significativa a comunicação na empresa.


    Permite aos usuários encontrar e se conectar rapidamente com a pessoa certa nos aplicativos que eles mais usam. O Office Communications Online proporciona acesso eficiente a programas de mensagem instantânea e presença que são gerenciados de maneira centralizada pelo departamento de TI e trabalham de forma transparente com um grande número de programas do Microsoft Office, possue mensagens instantâneas com chat baseado em texto usando Microsoft Office Communicator 2007, tem reconhecimento de presença contínua permitindo que usuários chequem a disponibilidade de outros usuários na rede, contém sensor de presença quando o usuário está utilizando aplicativos como Microsoft Office, com Outlook e sites do SharePoint, toda segurança corporativa com conexão diretamente ao serviço pela Internet sem conexões RAS ou VPN.


    Conecta você com funcionários, clientes e convidados através de reuniões em tempo real, sessões de treinamento e eventos usando apenas um computador conectado à Internet. Os serviços de conferência hospedados na rede do Microsoft Office Live Meeting fornecem aos seus funcionários o poder de trabalhar juntos onde estiverem, agendar reuniões de projetos, trocar ideias e colaborar em quadros de comunicação sem os custos de viagem.

    O Microsoft Office Live Meeting tem suporte ao cliente via Web para flexibilidade de atendimento remoto, você poderá compartilhar sua área de trabalho e ferramentas de quadro de comunicação, tem recursos que possibilitam criar apresentações em mídia avançada, vídeo conferência, permite gravar a reunião com alta fidelidade e possibilidade de uso de Web cam, sendo uma ferramenta completa e ideal para realizar qualquer atividade em grupo onde os usuários não estão no mesmo local.


    Se você deseja implantar o BPOS em sua empresa e precisa de serviços de configuração, migração, treinamento e suporte ao BPOS, entre em contato comigo.

    Twitter: @atsh2

    « 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