mar 10

 

Olá,

Hoje vou deixar uma dica interessante para quem usa o FCKEditor.

As vezes precisamos pegar ou editar o texto do editor, mas o problema é que fica tudo dentro de um IFRAME, e fazer tudo manualmente é bem complexo.

Pensando nisso no FCKEditor existe uma API de acesso às funcionalidades do editor, e duas delas são exatamente estas, obter e alterar o conteúdo HTML.

Para obter o conteúdo do editor precisamos usar a seguinte função em javascript:

var editor = FCKeditorAPI.GetInstance(‘ID_DO_FCK_CRIADO‘);
conteudo = editor.GetHTML();
alert(conteudo);

 

 

Para alterar o conteúdo do editor precisamos usar a seguinte função em javascript:

var editor = FCKeditorAPI.GetInstance(‘ID_DO_FCK_CRIADO‘);
editor.SetHTML(‘mudei o conteúdo‘);

 

 

Obs: Você deve trocar o texto ID_DO_FCK_CRIADO, para o ID usado quando você criou o FCKEditor em sua página.

 

Um abraço a todos,

Fiquem com Deus.

fev 15

Falae pessoal,

Recentemente achei uma função bem útil no Arduino, chamada: map

Ela basicamente faz uma regra de 3 e te retorna o valor de X (na regra de três).
Funciona assim, exemplo:

// lê os dados qualquer da porta 0

int valor = analogRead(0);

// faz o mapeamento da faixa inicial e faixa final do valor 1 com a faixa inicial e faixa final do valor 2, através do valor passado no primeiro parâmetro

valor = map(valor, 0, 1023, 0, 255);

// escreve na porta 9 o valor gerado

analogWrite(9, valor);

Explicação detalhada:

Parâmetro 1:
É o valor que temos em mão, e que queremos que o mapeamento use como referência

Parâmetro 2:
Faixa inicial do “parâmetro 1″, ou seja, o menor valor possível para ele

Parâmetro 3:
Faixa final do “parâmetro 1″, ou seja, o maior valor possível para ele

Parâmetro 4:
Faixa inicial do valor a ser retornado em relação ao “parâmetro 2″, ou seja, o menor valor possível em relação ao “parâmetro 2″

Parâmetro 5:
Faixa final do valor a ser retornado em relação ao “parâmetro 3″, ou seja, o maior valor possível em relação ao “parâmetro 3″

Resumindo: O resultado desta função é um valor entre os “parâmetros 4 e 5″ em relação aos parâmetros “2 e 3″.

fev 11

Olá,

Não sei se já perceberam, mas no Gmail existe um recurso de notificações, que só funciona no Google Chrome.

Essas notificações aparecem quando você recebe um novo email, por exemplo.

Estas notificações não foram inventadas exclusivamente para o Google Chrome, na verdade é um padrão W3C que está sendo implementado aos poucos nos navegadores, mas somente no Chrome já está funcionando.

Referência: http://dev.w3.org/2006/webapi/WebNotifications/publish/Notifications.html

Mas como podemos usufruir deste recurso em nossos websites?

É bem simples, usando obviamente javascript, temos acesso a tudo. Os passos básicos são:

1 – Verificar se o navegador tem suporte

2 – Pedir permissão para exibir notificações

3 – Exibir as notificações

Vamos ao que interessa, o código:

function verificarSuporte()
{

var c = ( window.webkitNotifications !== undefined );

if ( !c )
{

alert(“Seu navegador não suporta notificações desktop. Por favor, use o Google Chrome!”);

}

return c;

}

Esta função é a que verifica se o seu navegador tem suporte a notificações desktop ou não. Se o navegador não suportar, a função exibe um alert.

function verificarPermissao()
{
if ( !verificarSuporte() ) return;
switch ( webkitNotifications.checkPermission() )
{
case 0: // PERMITIDO
alert( “Permitido” );
break;
case 1: // NÃO PERMITIDO
alert( “Não permitido” );
break;
case 2: // PERMISSÃO NEGADA
alert( “Permissão negada” );
break;
}
}

Esta função é a que verifica a permissão de exibir as notificações que seu navegador definiu para a sua página. Para cada caso de permissão, é exibido um alert com a descrição.

function solicitarPermissao()

{

if ( !verificarSuporte() ) return;

webkitNotifications.requestPermission();

}

Esta função que solicita ao navegador a permissão de exibir as notificações. Assim que ela é chamada, o navegador exibe uma caixa de confirmação.

function testeDeNotificacao()

{

if ( !verificarSuporte() ) return;

if ( webkitNotifications.checkPermission() == 0 )

{

var icone = “http://www.prsolucoes.com/downloads/logo_notificacao.png”;

var titulo = “Mensagem de PRSoluções”;

var subTitulo = “Eu irei desaparecer em 10 segundos!”;

var notificacao = webkitNotifications.createNotification( icone, titulo, subTitulo );

notificacao.show();

setTimeout( function() { notificacao.cancel() }, 10000 );

}

else

{

alert( “Por favor, solicite permissão primeiro.” );

}

}

Esta função exibe a notificação em si. É bem simples, basta passar a url do icone, o título e o sub-título.

Para ver um demo destas funcionalidades, acesse:

http://www.prsolucoes.com/notificacao/

Até a próxima.

fev 2

Olá,

Recentemente tive a necessidade de criar templates customizados por cliente em minha aplicação usando o PlayFramework e pensei até que seria complicado ou impossível usando o Play. Cheguei a postar na lista oficial e tal, mas a solução que foi enviada não funcionou.

Depois de vários testes e pesquisar bastante consegui fazer tudo funcionar perfeitamente.

Vou explicar tendo em vista que você já tenha uma aplicação qualquer com o Play.

Passo 1 – Crie uma pasta chamada: “customers” na raiz da sua aplicação:

/myapp/customers

Passo 2 – Crie uma nova pasta com um nome qualquer (vou colocar “cliente1″) na pasta “customers”:

/myapp/customers/cliente1

Passo 3 – Crie uma nova pasta com o nome “app” dentro da pasta “cliente1″:

/myapp/customers/cliente1/app

Passo 4 –  Mova sua pasta “views” para a pasta “app”:

De: /myapp/app/views

Para: /myapp/customers/cliente1/app/views

Passo 5 –  Mova sua pasta “public” para a pasta “cliente1″:

De: /myapp/public

Para: /myapp/customers/cliente1/public

Passo 6 – Abra seu arquivo de configuração (application.conf) e adicione o seguinte módulo:

# TEMPLATE

# ~~~~~

module.customer=customers/cliente1

Passo 7 – Execute o clean e reinicie sua aplicação

> play clean

> play run

Este recurso é bem interessante, assim você pode criar as views e arquivos estáticos para cada cliente que você tenha ou no caso criar templates diferentes para sua aplicação.

jan 27

Olá,

Hoje terminei meu projeto final do curso de Arduino.

O nome do projeto é ServerMonitor ou Monitor de Servidor.

É bem simples o projeto, você acessa uma página web onde informa o IP e PORTA SERIAL do Arduino e via ajax é feita uma requisição a um arquivo PHP que realizar um PING ao servidor solicitado e acende o LED do Arduino caso o servidor esteja offline e apaga se o servidor estiver online.

Veja algumas fotos:

Baixe os arquivos do projeto:

http://www.prsolucoes.com/downloads/servermonitor.zip

O código está meio porco, pois fiz de madrugada e nem me preocupei em separar em classes, refatorar e tal.

O ZIP contém os arquivos a serem colocados no seu servidor PHP local e o projeto do Arduino para ser feito o upload para o Arduino.

Se o servidor que você consultar estiver offline o LED da porta 13 vai acender(o LED que já vem no Arduino).

jan 12

Olá,

Eu estava precisando criar caracteres especiais no LCD usando o Arduino, e pesquisando achei este site:

http://icontexto.com/charactercreator/

Basta você ir marcando os quadrados até desenhar o seu caracter e automaticamente via javascript é criado o código em C para você copiar e colar no seu código.

jan 12
Segundo projeto com Arduino
icon1 admin | icon2 Arduino | icon4 12 de janeiro de 2011| icon3Sem Comentários »

Olá,

Ontem realizei meu segundo projeto com Arduino.

É um projeto simples também, porém um pouco mais interativo e interessante.

Conectei uma porta analógica a um LM35(sensor de temperatura) e aproveitando o LCD do primeiro projeto estou exibindo a temperatura atual.

Baseado nesta temperatura, ao chegar no limite de 32C° o LED vermelho da porta digital 13 acende e um cooler é ligado para resfriar o “ambiente”.

É claro que o cooler ficou bem lento, pois usei apenas os 5 volts da porta digital.

Após aprender como ativar uma carga maior por um relé para outro dispositivo, vou refazer o projeto ativando um cooler maior através de 12V de uma outra fonte.

Vejam as fotos:

jan 11

Olá,

Ontem fiz meu primeiro projeto com Arduino sozinho. É bem simples, mas o primeiro projeto agente nunca esquece.

É um LCD conectado no arduino, onde o arduino escreve uma mensagem no LCD.

Possui um potenciômetro para regular a luz do texto e um LDR para variar a luz de fundo de acordo com a luz ambiente(quanto mais escuro, mais aceso fica).

Apanhei um pouco, pois não conheço muito de eletrônica e mesmo olhando no datasheet liguei todos os fios ao contrário no LCD, só depois que vi e refiz as ligações foi que funcionou.

Para quem quiser, tem um bom tutorial aqui:

http://www.arduino.cc/en/Tutorial/LiquidCrystal

Abaixo tem algumas fotos.

jan 3

Olá,

Este mês de janeiro foi publicado um artigo que fiz para a revista Flash e Flex Developer’s Magazine, e o artigo fala sobre a criação de aplicações para iPhone usando o Flash / Flex, a partir de um arquivo de build feito com Gradle.

Site oficial:

http://ffdmag.com/

Link para download da revista:

http://ffdmag.com/magazine/1582-html5-what-will-html5-mean-for-streaming

nov 24

Olá,

Recentemente comecei a estudar o Gradle (http://www.gradle.org/) por ser uma ferramenta de build extremamente fácil de usar, mas poderosa por permitir a criação de tarefas de uma forma bem simples permitindo você fazer qualquer coisa que precisa, usando a simplicidade da linguagem Groovy.

É claro que também pode ser usado para outros fins e não somente build, mas podemos usar para fazer backup de banco de dados, cópia de arquivos, FTP, SSH, SCP, enviar email, deploy e tudo mais que precisar, o limite é sua imaginação.

Enfim, vamos ao que interessa. Eu estava com uma grande dificuldade de ficar executando uma BAT toda vez que precisava gerar uma aplicação para iPhone apartir de um projeto em Flash ou Flex. O próprio Flash possui esta opção, mas eu ficaria amarrado a ele toda vez que fosse gerar a aplicação para o iPhone, fora que eu não tenho esta opção para aplicações em Flash, então daria muito trabalho ter que manter um projeto em Flash configurado para suportar o projeto em Flash e tudo mais.

Foi ai que pensei em algo mais prático e como estava usando o Gradle já decidi criar uma TASK para ele que fizesse este trabalho para mim, apenas com um comando: gradle iphone_packager

Criei então a TASK e mais um arquivo de propriedades, de modo que você não precisa alterar a TASK, somente o arquivo de propriedades para cada projeto seu, e se futuramente você baixar uma nova versão da TASK ou quiser modificar, vai mudar um único arquivo.

Bom, segue então os dois arquivos necessários, e deverão ficar na pasta do seu projeto.

No meu caso ficou assim a estrutura do meu projeto com Gradle no FDT:

Lembrando que basta você configurar apartir do arquivo de propriedades apontando para os locais corretos do seu projeto, o que te da uma liberdade de colocar sua TASK onde preferir.

Arquivos(está configurado para o meu projeto com dados de teste, basta você alterar para o seu projeto):

1 – http://www.prsolucoes.com/downloads/gradle/iphone_packager/build.gradle

2 – http://www.prsolucoes.com/downloads/gradle/iphone_packager/gradle.properties

O packager do iPhone pede a lista de arquivos a serem colocados no arquivo a ser gerado(.IPA), então você coloca esta lista na configuração:

IPHONE_PACKAGER_FILE_OR_DIR

Basta você passar:

-C [pasta onde estão os arquivos] “ZombieTown.swf” “assets”

Obs: Não use a barra “\” no Windows, pois será interpretado como caracter de escape, use “/”, exemplo:

C:/workspace/projeto/arquivo.swf

Modo de uso (resumido):

- Instale o Gradle

- Baixar os arquivos de TASK acima

- Coloque ambos os arquivos na pasta do seu projeto Flash/Flex

- Edite o arquivo: gradle.properties colocando os caminhos de acordo com a instalação dos seus programas e do seu projeto

- Execute via linha de comando: gradle iphone_packager

« Posts Anteriores Próximos Posts »