logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!
Abr 26

Silverlight Developer Center… em português no MSDN

Escrito por rene em 1, 4, 6, AR, blog, Blogs, bug, comunidade, Desenvolvedor, desenvolvedores, developer, event, Evento, Eventos, mg, MSDN, O, on, online, referencia, Ria’s Geral, silverlight, Treinamento, treinamentos, Ved, web, Webcast @ 04 26th, 2010 | via http://blogs.msdn.com/renedepaula/ | Sem comentários
rene
? 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 »

  tiro o meu chapéu pro trabalho dos meus colegas do MSDN: webcasts, eventos, treinamentos online, blogs… nao é pra menos que a comunidade em torno do MSDN tenha centenas de milhares de desenvolvedores envolvidíssimos. acho que já divulguei o devcenter…(read more)

Abr 26

SQLite

Escrito por Gabriel Versallini em .NET, 1, 4, 6, AR, Banco de Dados, BI, blog, dados, fonte, for, Formação, Google, if, int, lite, mg, Microsoft, O, on, PHP, redeRIA, RIA, Ria’s Geral, site, SQLite, Tutorial, UI, Vídeo, Wordpress @ 04 26th, 2010 | via http://www.versallini.com.br | Sem comentários
Gabriel Versallini
? 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 »

“Banco de dados é um conjunto de registros dispostos em estrutura regular que possibilita a reorganização dos mesmos e produção de informação. Um banco de dados normalmente agrupa registros utilizáveis para um mesmo fim.” Fonte: Wikipedia

SQLite é uma pequena biblioteca C que implementa um banco de dados SQL completo, embutido e sem configurações.  A biblioteca já vem incorporada ao PHP 5 e pode ser incluída de forma muito simples a programas desenvolvidos em C e C++. Na prática, o SQLite funciona como um “mini-SGBD”, capaz de criar um arquivo em disco, ler e escrever diretamente sobre este arquivo.

“Small. Fast. Reliable. Choose any three.” As últimas três palavras chamou minha atenção, o slogan seria perfeito sem elas. Mas voltando ao que interessa, segue um vídeo tutorial que encontrei no youtube.

Site Oficial: http://www.sqlite.org/

Ah, vale a pena citar que o SQLite é utilizado em aplicações da Google, McAffe, Microsoft, Toshiba, GE, Skype. Agora surgiu uma nova pergunta: Quando utilizar o SQLite?

Bom estudo!
Abraço

Abr 25

Localização e Decodificação de Código de Barras em Imagens Digitais

Escrito por Edgard Davidson em 1, 3d, 4, 6, Access, Algoritmos, app, Apresentação, AR, auto, Banco de Dados, bar, BI, class, codec, código, Componente, Componentes, custom, dados, demo, dll, Documentação, empresas, exemplo, flash, for, FullScreen, git, ide, IE, if, image, imagens, int, lógica, Mercado, mg, O, on, padrão, PDI, Processamento Digital de Imagens, processo, produto, pt, RIA, Ria’s Geral, screen, Tema, UI, uint, Ved, Vídeo, Vídeos, wave, XML, XP, zend @ 04 25th, 2010 | via http://edgarddavidson.com | 1 comentário
Edgard Davidson
? X
  • Bookmarks

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

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

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Neste post, eu pretendo demonstrar um dos meus trabalhos com processamento digital de imagens.  O objetivo do trabalho que vou demonstrar é desenvolver um algoritmo para fazer a localização e leitura automática de códigos de barras em imagens digitais para automatizar o processo de indexação.  Os códigos de barras lineares são usados em muitas aplicações onde o uso de um código numérico ou alfanumérico pode representar o índice em uma base de dados para identificar um determinado objeto, produto ou simplesmente um dado. No meu caso, o requisito era ler o código de barras em imagem digital. Esse código de barras representa o índice da documentação contida na imagem em uma base de dados.  O trabalho era ler o referido código de barras da imagem digitalizada e vinculá-la a com seus respectivos registro no banco de dados. Para fazer isso, eu tinha duas alternativas: fazer a indexação manualmente (digitando o código de imagem por imagem), ou através da indexação automática pela leitura do código de barras. Só para ter uma grandeza de volume, estou falando de um montante de 100 mil ou mais imagens, chegando em alguns casos a mais de 1 milhão. Imagine fazer isso manualmente!

Atualmente, existem várias empresas que fornecem OCX, DLL, ActiveX, componentes de  localização e decodificação automática de códigos de barras  para você integrar na sua aplicação.  No meu caso, eu não queria fazer a aquisição desses add-in’s. Eu precisava desenvolver o meu próprio algoritmo com as minhas devidas customizações.

A seguir vou explicar como funciona o algoritmo, mas antes, é necessário entendermos um pouco sobre o formato de codificação dos códigos de barras. Vou explicar brevemente os código de barras code 39. Para os demais códigos de barras lineares a lógica é a mesma, mudando apenas o dicionário e se ele é intercalado ou não como é o caso do  Code 2_5 intercalado.

Compreendendo o Código de Barras Code 39
O Code 39 é um código de barras alfanumérico que representa,  além das letras do alfabeto e números decimais, os símbolos:

- * $ / % +

O Code 39 pode ser longo o suficiente para guardar informações codificadas. Os caracteres do Code 39 são construídos usando cinco barras e quatro espaços perfazendo um total de nove elementos. Necessariamente, para representar qualquer sequência alfanumérica, cada barra ou espaço pode ser “largo”ou “estreito”e três dos nove elementos são sempre largos. O Code 39, inclui um caracter inicial “*”, as informações codificadas e o caracter final “*”, conforme ilustrado figura abaixo:

O asterisco é usado somente como código de início e fim. Dessa forma é possível verificar se o código de barras está de cabeça pra cima ou de cabeça para baixo.

A fim de obter um algoritmo genérico que possa identificar qualquer tipo de código de barras linear, é necessário definir apenas como identificar barras “largas”e “estreitas”em um conjunto de sucessivas barras paralelas. Este post utiliza uma nomenclatura para caracterizar os elementos mais “largos”através do binário “1”e os elementos mais ‘estreitos”, o binário “0”. Para desenvolver o referido algoritmo, foi utilizado dois vetores; o primeiro, para armazenar as barras e o segundo, para armazenar os espaços.  Sendo assim, o código de barras Code 39 que representa o número 39 pode ser compreendido a partir da apresentação da seguinte estrutura:

B = (00110110000101000110)
E = (1000001000010001000)

onde B representa o vetor de barras e E o vetor de espaços. Como cada caracter do Code 39 é representado por cinco barras e quatro espaços, a partir do conhecimento do dicionário juntamente com a construção de dois vetores (onde um contém a representação dos elementos “largos”e “estreitos”das barras e o outro os espaços entre eles), foi possível realizar a identificação dos caracteres do código de barras utilizando a seguinte estrutura de código:

B[i + 0] > 0 ) B8
B[i + 1] > 0 ) B7
B[i + 2] > 0 ) B6
B[i + 3] > 0 ) B5
B[i + 4] > 0 ) B4
E[i + 0] > 0 ) B3
E[i + 1] > 0 ) B2
E[i + 2] > 0 ) B1
E[i + 3] > 0 ) B0

onde i é a posição corrente do elemento no vetor, (B8,B7,B6,B5,B4) representam as barras “largas”e (B3,B2,B1,B0) representam os espaços “largos”. Cada combinação destes padrões representam um determinado caracter, de acordo com as combinações de padrões pré-existentes no dicionário do código de barras Code 39. Neste algor?tmo, apenas o conhecimento da distribuição entre barras “largas”e espaços “largos” são suficientes para identificar um caracter junto ao dicionário. Neste exemplo, o número 39 pode ser representado com a seguinte combinação de padrões:

Caracter Barras Espaços Padrão
* B6, B5, B3 x x xx xx x
3 B8, B7, B2 xx xx x x x
9 B7, B5, B2 x xx x xx x

A partir das referidas combinações, é possível identificar, de forma rápida, qualquer outro caracter contido no dicionário. Para localizar o código de qualquer posição da imagem, eu usei um algoritmo semelhante ao que eu já publiquei sobre localização de placas de veículos.

Abaixo segue um vídeo que gravei explicando um pouco mais o algoritmo e a demonstração da aplicação funcionado.

C´odigos de barras lineares ´e uma simbologia bastante utilizada e est´a bastante relacionada `a
capta¸c˜ao autom´atica para identifica¸c˜ao de dados. Sua utiliza¸c˜ao pode ser encontrada nos mais
diferentes locais, tais como supermercados, ind´ustrias e correios. Existe uma grande variedade
de tipos de c´odigos de barras utilizados para identificar produtos e os mais conhecidos s˜ao os
padr˜oes EAN, UPC, Code 39 e o Interleaved 2 of 5. Para maiores detalhes vejam [1, 2, 3, 4, 5]
Os c´odigos de barras lineares s˜ao usados em muitas aplica¸c˜oes onde o uso de um c´odigo
num´erico ou alfanum´erico simples, pode representar o ´?ndice em uma base de dados para identificar
um determinado objeto, produto ou simplesmente um dado. A maior limita¸c˜ao, naturalmente,
est´a na quantidade de dados que podem ser armazenados em um c´odigo de barras linear

Abr 25

Usando Shared Objects no Flex

Escrito por Luis Messias em .NET, 1, 3d, 4, 6, action, Actionscript, Adobe, api, app, AR, back, BI, Bindable, blog, browser, busca, camp, class, classe, cliente, collection, comunicação, Cookie, dados, DataGrid, DataProvider, Desenvolvedor, desenvolvedores, Dica, email, err, erro, error, event, events, exemplo, Exemplos, flash, Flex, for, function, gc, Geral, html, ide, IE, if, int, itemRenderer, label, layout, lista, mg, MXML, NaN, O, on, padrão, pt, redeRIA, RIA, Ria’s Geral, RoR, servidor, site, string, tag, TAT, Tema, TextInput, UI, uint, update, utils, ValidationResultEvent, Ved, vs, XML, XP, zend @ 04 25th, 2010 | via http://blog.luismessias.com | Sem comentários
Luis Messias
? 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 »



Funcionalidade muito utilizada em sites, a qual é o armazenamento de dados no cookie do browser, esta função é muito utilizada para salvar as preferências de usuários como: login, email, ultimo acesso entre outras informações.
No Flex isso também é possível podendo ser até mais poderoso do que as formas atuais, para fazer isso você deve utilizar o SharedObject.

A função do Shared Objects (ShO) é armazenar dados localmente, funcionando como um cookies do browser. Assim você pode armazenar dados e chamá-los durante a sessão atual ou em outra futura sessão. Contudo estes dados não podem ser acessados por outra aplicação Flex mais sim apenas pela aplicação criadora.

Shared Objects vs Cookies

É comum desenvolvedores confundirem ShO com cookies.
Os cookies que aderem ao padrão RFC 2109 geralmente têm as seguintes características:

• Eles podem expirar, e geralmente é feito isso no final da sessão por default.
• Podem ser desabilitados pelos clientes.
• Há um limite de 300 cookies sendo no Maximo 20 por site.
• Um cookie tem o espaço de armazenamento de 4 kb.
• Há a possibilidade de serem considerados como arquivos maliciosos.
• Há uma comunicação entre cliente e servidor para armazenamento dos dados.

Shared Object tem as seguintes características:

• Eles não expiram por default.
• Por padrão o seu limite de armazenamento é de 100 kb.
• Eles podem armazenar dados simples como: String, Date, Array ….
• A aplicação pode indicar locais específicos para o armazenamento dos dados.
• Não há transmissão e comunicação entre o cliente e o servidor para a busca e armazenamento dos dados.

Com a classe SharedObject é possível realizar qualquer manipulação dos dados que ficarão armazenados no cliente. Esta possui os seguintes métodos:

• clear() – Limpa permanentemente todos os dados contidos no Shared Object.
• flush() – Grava os dados do ShO no cliente.
• getLocal() – Retorna uma instancia do ShO no cliente, caso não exista o mesmo cria uma.
• getSize() – Retorna o tamanho em Bytes do ShO no cliente. Uma observação o tamanho default é de 100kb, contudo isto pode ser alterado para mais.

Na prática:
Criando uma lista de contatos.

Criar uma classe chamada ShareObjectHelper a qual irá realizar a manipulação dos dados do Shared Object, tais como: incluir, remover e listar.
Esta é uma classe bem simples no qual será usado um ArrayCollection para armazenar todos os dados que armazenarão dos contatos que o usuário incluiu.

package {
	import mx.collections.ArrayCollection;
	import flash.net.SharedObject;
 
	public class SharedObjectHelper {
 
		private var _sharedObject:SharedObject;
		private var _dpSharedObject:ArrayCollection;
		private var _nomeArquivoSharedObject:String;
 
		/**
		 * Construtor
		 */
		public function SharedObjectHelper(valor:String) {
			inicializaHelper(valor);
		}
 
		/**
		 * @private
		 * Responsavel por recuperar a instancia do SharedObject baseado no
		 * parametro.
		 *
		 */
		private function inicializaHelper(valor:String):void {
			_dpSharedObject = new ArrayCollection();
			_nomeArquivoSharedObject = valor;
			_sharedObject = SharedObject.getLocal(_nomeArquivoSharedObject);
 
			if (getObjects()) {
				_dpSharedObject = getObjects();
			}
		}
 
		/**
		 * Retorna todos um array de dados que está armazendo no SharedObject
		 * @return ArrayCollection
		 */
		public function getObjects():ArrayCollection {
			return _sharedObject.data[_nomeArquivoSharedObject];
		}
 
		/**
		 * Adiciona um dado ao array de dados.
		 * @param Object
		 */
		public function addObject(o:Object):void {
			_dpSharedObject.addItem(o);
			updateSharedObjects();
		}
 
		/**
		 * @private
		 * Vincula o array de dados a um SharedObject.
		 */
		private function updateSharedObjects():void {
			_sharedObject.data[_nomeArquivoSharedObject] = _dpSharedObject;
			_sharedObject.flush();
		}
	}
 
}
<?xml version="1.0"?>
<mx:Application xmlns:local="*" xmlns:mx="http://www.adobe.com/2006/mxml"
				creationComplete="init()" backgroundColor="#ffffff"
				layout="vertical" 
				backgroundGradientAlphas="[1.0, 1.0]" 
				backgroundGradientColors="[#D3D3D3, #E7E7E7]" viewSourceURL="srcview/index.html">
	<mx:Script>
		<![CDATA[
			import mx.events.ValidationResultEvent;
			import mx.validators.ValidationResult;
			import mx.collections.ArrayCollection;
			import mx.utils.ObjectUtil;
			import flash.net.SharedObject;
 
			[Bindable]
			public var dpContatos:ArrayCollection = new ArrayCollection();
 
			public var shoHelper:SharedObjectHelper;
 
			/**
			 * @private
			 * Inicializa a classe SharedObjectHelper e ja cria/recupera
			 * instancia de um objeto SharedObject.
			 */
 
 
			private function init():void {
				shoHelper = new SharedObjectHelper("contatos");
 
				if (shoHelper.getObjects()) {
					dpContatos = shoHelper.getObjects();
				}
 
			}
 
			/**
			 * @private
			 * Adiciona um contato na lista de contatos e executa o addObject da classe
			 * sharedObjectHelper.
			 */
			private function addContato():void {
				if(valNome.validate().type == ValidationResultEvent.VALID){
					/* Cria um objeto dinamico com os atributos dos fomularios */
					var objInsert:Object = {nome: txtNome.text, apelido: txtApelido.text};
					shoHelper.addObject(objInsert);
 
					dpContatos = shoHelper.getObjects();
 
					/* Limpa os campos do formularios */
					txtNome.text = '';
					txtApelido.text = '';
				}
			}
 
			/**
			 * @private
			 * Remove um contato do DataGrid e da lista de contatos do SharedObejct
			 */
			public function removeContato():void {
				if (dgContatos.selectedIndex > -1) {
					dpContatos.removeItemAt(dgContatos.selectedIndex);
				}
			}
 
		]]>
	</mx:Script>
	<mx:StringValidator id="valNome" source="{txtNome}" property="text" 
		required="true" requiredFieldError="Campo Obrigatório"
		triggerEvent="''"/>
 
	<mx:Panel title="Contatos" layout="vertical" horizontalAlign="center" width="400">
 
 
		<mx:Form width="100%">
			<mx:FormItem label="Nome" width="100%">
				<mx:TextInput id="txtNome" width="100%"/>
			</mx:FormItem>
			<mx:FormItem label="Apelido" width="100%">
				<mx:TextInput id="txtApelido" width="100%"/>
			</mx:FormItem>
			<mx:Button id="b2" label="Salvar" click="addContato()"/>
		</mx:Form>
 
		<mx:DataGrid id="dgContatos" dataProvider="{dpContatos}" width="100%">
			<mx:columns>
				<mx:DataGridColumn headerText="Nome" dataField="nome"/>
				<mx:DataGridColumn headerText="Apelido" dataField="apelido"/>
				<mx:DataGridColumn headerText="Opções" width="80" textAlign="center">
					<mx:itemRenderer>
						<mx:Component>
							<mx:Button label="Excluir" width="8" click="outerDocument.removeContato()"/>
						</mx:Component>
					</mx:itemRenderer>
				</mx:DataGridColumn>
			</mx:columns>
		</mx:DataGrid>
	</mx:Panel>
 
</mx:Application>
?

Abr 24

Adobe AIR com SQLite

Escrito por Luis Messias em .NET, 1, 4, 6, action, Actionscript, Adobe, Adobe Air, Air, api, app, AR, auto, Banco de Dados, BI, Bindable, blog, carregar, class, classe, código, collection, control, Controls, Curso, Cursos, dados, DataGrid, DataProvider, demo, Desktop, err, erro, error, event, EventListener, events, exemplo, Exemplos, flash, Flex, for, function, html, ide, IE, if, int, lite, mg, O, on, pt, redeRIA, refresh, RIA, Ria’s Geral, RoR, SQLite, state, string, tag, TAT, Tema, Tutorial, UI, utils @ 04 24th, 2010 | via http://blog.luismessias.com | 1 comentário
Luis Messias
? 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 »



Adobe acrescentou a possibilidade de utilizar bancos de dados locais, quando eles criaram AIR. Este é um dos muitos recursos que ajudam a tornar o Adobe AIR uma ótima solução para aplicações desktop multi-plataforma. Neste rápido tutorial vou mostrar como criar um banco de dados de arquivo e abrir uma conexão com ele. O código é muito simples, então vamos pular direto para ele. A primeira coisa é criar um arquivo para o banco de dados. Em SQLite, que é o mecanismo de banco de dados utilizado no Adobe AIR, o banco de dados completo é armazenado em apenas um único arquivo. É realmente um sistema muito bom compacto e portátil. Eu usei a função applicationStorageDirectory sobre a classe File para criar um arquivo que aponta para o armazenamento de aplicação local e com o nome dbTest.db. No meu caso (no Seven), o caminho real no disco é C:UsersusuárioAppDataRoamingSQLiteExampleLocal Store. O arquivo não é criado, até iniciar a aplicação.

import flash.data.SQLStatement;
import flash.errors.SQLError;
import flash.events.Event;
import flash.events.SQLErrorEvent;
import flash.events.SQLEvent;
import flash.events.TimerEvent;
import flash.filesystem.File;
import flash.utils.Timer;
 
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.utils.ObjectUtil;
 
import org.osmf.events.TimeEvent;
 
// sqlconn é uma variável que precisamos para definir uma
// coneção com a nosso banco de dados
private var sqlconn:SQLConnection = new SQLConnection();
// sqlstate é um SQLStatement que precisamos para executar
// o executar os comandos sql
private var sqlstate:SQLStatement = new SQLStatement();
// ArrayCollection é usado como dataprovider para a nossa datagrid.
// Tem de ser bindable para que os dados em nosso datagrid
// mudem automaticamente, quando mudamos o nosso ArrayCollection
[Bindable]
private var dp:ArrayCollection = new ArrayCollection();
 
// função que chamamos no inicio da aplicação
private function init():void
{
	// primeiro precisamos de "setar" o arquivo para o banco de dados
	// Se o banco de dados não existe, ele irá criar
	// um banco de dados quando inicia
	var db:File = File.applicationStorageDirectory.resolvePath("dbTest.db");
	// depois de "setar" o arquivo para o banco de dados,
	// precisamos de abri-lo.
	sqlconn.openAsync(db);
	// precisamos de "setar" os event listners de para que possamos
	// saber se temos algum erro, quando o banco de dados é
	// totalmente aberto e também para saber quando recebemos um
	// resultado de uma query sql, o ultimo é para ler
	// os dados do banco de dados.
 
	sqlconn.addEventListener(SQLEvent.OPEN, db_opened);
	sqlconn.addEventListener(SQLErrorEvent.ERROR, error);
	sqlstate.addEventListener(SQLErrorEvent.ERROR, error);
	sqlstate.addEventListener(SQLEvent.RESULT, resault);
}
 
private function db_opened(e:SQLEvent):void
{
	// quando um banco de dados é aberto precisamos do link do SQLStatment
	// para a nossa conexão, se não "setar" esta conexão vamos ter um
	// erro quando executar o SQLStatment.
	sqlstate.sqlConnection = sqlconn;
	// escrevemos o SQLStatment.
	// no SQLStatment criamos uma tabela no banco de dados com o nome "aluno",
	// com 3 colunas (id, nome, apelido)
	sqlstate.text = "CREATE TABLE IF NOT EXISTS aluno " +
		"( id INTEGER PRIMARY KEY AUTOINCREMENT, nome TEXT, apelido TEXT);";
	// depois de conectar o SQLStatment  a nossa SQLConnection e escrever o
	// comando sql, precisamos de executar o SQLStatment
	// nada vai mudar até executar o SQLStatment.
	sqlstate.execute();
	// depois de carregar o banco de dados e criar a tabela
	// se já não existir, chamamos de método refresh() para popular o datagrid
	refresh();
}
 
// função para adicionar um item no banco de dados
private function addItem():void
{
	// este comando SQL é para adicionar um item na tabela
	sqlstate.text = "INSERT INTO aluno (nome, apelido) " +
		"VALUES('"+nome.text+"','"+apelido.text+"');";
	sqlstate.execute();
	refresh();
}
 
// função para chamar quando queremos fazer o refresh de dados no datagrid
private function refresh(e:TimerEvent = null):void
{
	// objeto timer que precisamos se o SQLStatment está ainda em execução,
	// caso contrário tentamos novamente depois de 10 milliseconds.
	var timer:Timer = new Timer(10,1);
	timer.addEventListener(TimerEvent.TIMER, refresh);
	if ( !sqlstate.executing )
		// precisamos checar se o SQLStatment está ainda executando
		// o ultimo comando sql.
		// se sim, usamos o timer para voltar a executar em 10 milliseconds.
		// senão checar, podemos ter erro pq o SQLStatment
		// não pode executar 2 comandos aomesmo tempo.
	{
		// SQLStatment que retorna todos os dados da tabela "aluno".
		sqlstate.text = "SELECT * FROM aluno"
		sqlstate.execute();
	}
	else
	{
		timer.start();
	}
}
 
// função que é chamada se receber algum resultado do comando sql.
// também pode ser chamado, quando for inserir algum dado
private function resault(e:SQLEvent):void
{
	// com o sqlstate.getResult().data pegamos o array de objetos
	// para cada linha do banco de dados
	var data:Array = sqlstate.getResult().data;
	// passamos o array de objetos para o
	// dataprovider para popular o datagrid
	dp = new ArrayCollection(data);
}
 
// função que remove um item do banco de dados
private function remove():void
{
	// SQLStatment para excluir da tabela o id que tem o
	// mesmo número que selecionamos no datagrid para excluir
	sqlstate.text = "DELETE FROM aluno WHERE id="+dp[dg.selectedIndex].id;
	sqlstate.execute();
	refresh();
}
 
// função que é chamada quando recebemos um erro do comando sql
// ou conexão sql e mostra esse erro em um alert.
private function error(e:SQLErrorEvent):void
{
	Alert.show(e.toString());
}

Aplicação básica para entender e aprender como você pode armazenar dados em banco de dados SQLite. O exemplo é muito básico, mas você deve pegar uma idéia de como fazê-lo.

Aplicativo AIR aqui (view source habilitado).

Abr 23

Verificando número perfeito em C

Escrito por Gabriel Versallini em .NET, 1, 4, 6, blog, C#, class, dados, ide, if, image, mg, O, on, redeRIA, RIA, Ria’s Geral, Wordpress @ 04 23rd, 2010 | via http://www.versallini.com.br | Sem comentários
Gabriel Versallini
? 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 »

Resolução da primeira questão do trabalho de Estrutura de Dados, onde um número só é considerado perfeito quando a soma de seus divisores é igual ao dobro do número.

Até a próxima!
Um abraço

Abr 23

Iniciando no C

Escrito por Gabriel Versallini em .NET, 1, 4, 6, blog, C#, class, dados, ide, if, image, mg, O, on, redeRIA, RIA, Ria’s Geral, Wordpress @ 04 23rd, 2010 | via http://www.versallini.com.br | Sem comentários
Gabriel Versallini
? 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 »

Resolução da primeira questão do trabalho de Estrutura de Dados, onde um número só é considerado perfeito quando a soma de seus divisores é igual ao dobro do número.

Até a próxima!
Um abraço

Abr 23

Adobe® Ideas 1.0 for iPhone

Escrito por Tecinfor em Adobe, Aplicativos, AR, Design, git, ide, Ideas, iphone, O, on, photoshop, Plugin, pt, Ria’s Geral, UI, XP @ 04 23rd, 2010 | via http://tecinfor.net | Sem comentários
Tecinfor
? 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 »

Adobe Ideas é o seu caderno digital, permitindo-lhe captar e explorar idéias em qualquer lugar que você vá. Adobe Ideas é um companheiro ideal para as aplicações de design profissional da Adobe, incluindo Adobe Illustrator ® e Adobe Photoshop ®.
conceitos de design Sketch sentado em um café, ou capturar e [...]

No related posts.

Related posts brought to you by Yet Another Related Posts Plugin.

Abr 23

SVN, Eclipse, Linux

Escrito por Felipe Borella em 1, 4, Access, apache, app, AR, BI, carregar, control, Controls, Eclipse, for, git, ide, IE, if, int, Linux, lite, O, on, Password, Pessoal, pt, rest, RIA, Ria’s Geral, servidor, site, Software, SVN, TAT, Teste, UI, update, UX, web, window, windows, XP @ 04 23rd, 2010 | via http://www.fborella.com.br/blog/ | Sem comentários
Felipe Borella
? 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 »

Salve pessoal gente boa !

Hoje quero passar aqui para dar uma ajuda quem vai instalar o SVN no linux e poder sincronizar com o Eclipse no seu windows ou linux e afins.

bem vamos la partindo do principio que o seu linux esta cabaço (virgem da silva).

subversion: Controlador de versão.

libapache2-svn: Biblioteca de integração entre apache e subversion.

apache2: Servidor Web Apache

entao no seu console digite

# sudo apt-get install subversion libapache2-svn apache2

depois de ter instalado o apache agora é mandar brasa no resto.

seguindo

# sudo apt-get install subversion libapache2-svn

Quando terminar de instalar vamos configurar o arquivo do svn seja com o seu joe ou vi
Observe que criei uma pasta no /var a pasta svn (mkdir svn apliquei as permissoes chmod 0777 na pasta).

Supondo que você esteja na pasta /var

# mkdir svn

Depois

# chmod 0777 /var/svn -R
# sudo joe /etc/apache2/mods-enabled/dav_svn.conf
# dav_svn.conf - Example Subversion/Apache configuration
#
# For details and further options see the Apache user manual and
# the Subversion book.
#
# NOTE: for a setup with multiple vhosts, you will want to do this
# configuration in /etc/apache2/sites-available/*, not here.
?
#  ... 
# URL controls how the repository appears to the outside world.
# In this example clients access the repository as http://hostname/svn/
# Note, a literal /svn should NOT exist in your document root.

?
  # Uncomment this to enable the repository
  DAV svn
?
  # Set this to the path to your repository
  #SVNPath /var/lib/svn
  # Alternatively, use SVNParentPath if you have multiple repositories under
  # under a single directory (/var/lib/svn/repo1, /var/lib/svn/repo2, ...).
  # You need either SVNPath and SVNParentPath, but not both.
  SVNParentPath /var/svn
?
  # Access control is done at 3 levels: (1) Apache authentication, via
  # any of several methods.  A "Basic Auth" section is commented out
  # below.  (2) Apache  and , also commented out
  # below.  (3) mod_authz_svn is a svn-specific authorization module
  # which offers fine-grained read/write access control for paths
  # within a repository.  (The first two layers are coarse-grained; you
  # can only enable/disable access to an entire repository.)  Note that
  # mod_authz_svn is noticeably slower than the other two layers, so if
  # you don't need the fine-grained control, don't configure it.
?
  # Basic Authentication is repository-wide.  It is not secure unless
  # you are using https.  See the 'htpasswd' command to create and
  # manage the password file - and the documentation for the
  # 'auth_basic' and 'authn_file' modules, which you will need for this
  # (enable them with 'a2enmod').
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
?
  # To enable authorization via mod_authz_svn
  #AuthzSVNAccessFile /etc/apache2/dav_svn.authz
?
  # The following three lines allow anonymous read, but make
  # committers authenticate themselves.  It requires the 'authz_user'
  # module (enable it with 'a2enmod').
  #
    #Require valid-user
  #

Pronto, só falta adicionar os usuários, para isso utilize o comando abaixo:

# sudo htpasswd -cm /etc/apache2/dav_svn.passwd seu_usuario

Vai pedir a senha e repetir a senha você segue normalmente os passos até finalizar o procedimento.

Próximo passo é criar um repositorio.

# sudo svnadmin create /var/svn/teste

Reinicie o apache dessa forma

# sudo /etc/init.d/apache2 force-reload

Se aparecer isso você instalou com sucesso.
“Revision 0″

Importando seu projeto para o repositorio.

# svn import /pasta/seuprojeto http://localhost/svn/teste

Baixando o Svn para fazer checkout no Eclipse.
Com o Eclipse aberto va em Help/Software Update

Na aba Avaiable Software
Add Site

Adicione http://subclipse.tigris.org/update_1.4.x e Ok.

Espere carregar e Desmarque o Mylyn

e depois clique em Install ao final reinicie a IDE ( ele pede se você quer reiniciar a IDE clique OK )

Depois de intalado… com o Eclipse aberto va em File / New / Other / Svn / Checkout Projects from SVN

Next

Create new Repository

adicione o endereco http://localhost/svn/teste ( ou o ip do seu servidor svn no lugar de localhost )

Next

Selecione a linha do http e Finish. pronto tera seu projeto do svn no Eclipse.

Ate o proximo post onde explicarei como desfrutar do SVN, controle de Versoes, Revisoes.

Felipe o/

Abr 23

Sunday Night Football em Silverlight- esse eu queria ter visto

Escrito por rene em 1, 4, 6, AR, blog, Blogs, bug, esporte, mg, MSDN, O, RIA, Ria’s Geral, silverlight, smooth streaming, Sun, televisao, UAU, user experience, Vídeo, wow, XP @ 04 23rd, 2010 | via http://blogs.msdn.com/renedepaula/ | Sem comentários
rene
? 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 »

  well, eu queria ter visto nao pelo futebol americano (nao gosto de esporte algum, nem peteca), mas sim pra ver a experiência de ter cinco cameras simultaneas pra escolher.  e pra ver a qualidade do HD tambem, claro.  veja o resumo da…(read more)

« 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