Publicado por: Dimmy Magalhães | 15/09/2010

Agendamento de Tarefas no Spring

Olá Senhores,

Outro dia me deparei com um problema, precisava que minha aplicação enviasse um email para o administrador de tempos em tempos sem interferência de qualquer evento.

Pois bem, foi quando eu conheci o Quartz, como ele o Spring Framework pode agendar tarefas com facilidade.

Para definir um agendamento, todo o trabalho é praticamente feio na configuração do applicationContext.xml do Spring.

Cria-se uma Session Bean que contém o método que será executado.

<bean id=”emailAction”

scope=”prototype” c

lass=”br.acoes.EmailAction”>

Em seguida, utiliza-se a classe MethodInvokingJobDetailFactoryBean para definir qual dos beans possui a tarefa e quais de seus métodos será executado:

<bean id=”quartzEmail” class=”org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean”>

<property name=”targetObject” ref=”emailAction”/>

<property name=”targetMethod” value=”enviar”/>

</bean>


Deve ser criado um temporizador para que o Quarzt saiba de quanto em quanto tempo ele será acionado, existem duas formas para se definir isso:

Simple trigger – Um agendador de tarefas simples, que será executado no intervalo de tempo definido em milisegundos (repeatInterval), possuindo um tempo de execução inicial (startDelay).

<bean id=”simpleTrigger” class=”org.springframework.scheduling.quartz.SimpleTriggerBean”>

<property name=”jobDetail” ref=”quartzEmail” />

<property name=”startDelay” value=”1″ />

<property name=”repeatInterval” value=”9000″ />

</bean>

Cron trigger – A tarefa pode ser executada em inúmeras configurações como por exemplo toda quinta as 19:00.  Para detalhes dessa configuração visite o site oficial.

<bean id=”cronTrigger” class=”org.springframework.scheduling.quartz.CronTriggerBean”>

<property name=”jobDetail” ref=”quartzEmail” />

<property name=”cronExpression” value=”0 0 21* * ?” />

</bean>

O último passo é definir o SchedulerFactoryBean com a lista dos detalhes de tarefa que devem ser executados:

<bean class=”org.springframework.scheduling.quartz.SchedulerFactoryBean”>

<property name=”triggers”>

<list>

<ref bean=”cronTrigger” />

</list>

</property>

</bean>

Com essas configurações, o método envia() da classe EmailAction será executado todo dia as 21 horas.

Abração

Enjoy!


Publicado por: Dimmy Magalhães | 26/05/2010

Transistor de 7.7A – O mundo eletrônico em escala atômica

Foi divulgado a criação do menor transistor do mundo, o tamanho dele é da ordem de 1/4 bilhões de metros. De acordo com a cientista Michelle Simmons, os computadores feitos com este transistor conseguirão “resolver problemas que, em um computador clássico, demorariam mais do que o tempo de vida do universo para serem resolvidos”. Seria o principal passo para  a soluções dos tais problemas NP-Completos.

Simmons diz que o transistor é o primeiro que nos põe em um caminho sólido em direção à computação quântica, que ela acredita que vai estar disponível em aplicações comerciais em apenas cinco anos.

O micro-micro-microship foi desenvolvido pelo CQCT – Centre for Quantum Computer Technology da Universidade de New South Wales e pela Universidade de Wisconsin-Madison. A parte atômica é “o primeito dispositivo eletrônico em silício sistematicamente criado na escala dos átomos individuais”. Ele tem potencial para destruir a famigerada Lei de Moore.

Eventualmente vai reduzir os CPUs atuais em um fator de cem, enquanto acelera a velocidade de processamento além dos atuais mega computadores e das redes de processamento.

Fonte: Telegraphc

Publicado por: Dimmy Magalhães | 06/04/2010

Arrumando a casa – Inspiron 1525 e Wireless

Quem não passou pelo problema de instalar o Ubuntu no seu lindo Inspiron 1525 e a porcaria placa Wireless não ser reconhecida nem por decreto do Presidente?! Bom, comigo isso é mais do que comum, logo que eu formato meu pc de 3 em 3 meses, para acabar com essa fuleragem história eu fui atrás de todos os tutoriais que eu já peguei para arrumar isso, condensei e pus aí oh!

Arruamando sua Placa de Wireless!

Primeiro Passo:
Conecte um cabo de rede no seu computador :(

Segundo Passo:
Execute as linhas de código a seguir no seu terminal:

echo -e 'blacklist bcm43xx\nblacklist wl' | sudo tee -a /etc/modprobe.d/blacklist
sudo apt-get install ndiswrapper-utils-1.9
mkdir ~/bcm43xx; cd ~/bcm43xx

Isso instalará a NDISWrapper e atualizará a BlackList dos seus drives nativos.

Terceiro Passo:
Execute a seguinte linha para identificar qual o drive do seu chipset

lspci -n | grep '14e4:43'

Ao identificar isso, siga a seguinte tabela para proceder no tutorial:

~~~~~Modelo~~~~~ Chipset PCI ID Subetapa a seguir Notes
BCM4306 Subetapa 2b
BCM4306 (rev 02) 14e4:4320 (rev 02) Subetapa 2f In Feisty & Hardy (and probably Gutsy), lspci shows: “Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 02)” (This is also reported to be the chipset of the Linksys WPC54G version 2.)
BCM4306 (rev 03) 14e4:4320 (rev 03) Subetapa 2g In Hardy, lspci shows: “Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)”
BCM4310 (rev 01) 14e4:4315 (rev 01) Subetapa 2e In Gutsy/Hardy, lspci shows “Broadcom Corporation BCM4310 USB Controller (rev 01)”.
BCM4310 (rev 02) 14e4:4312 Subetapa 2a I’m not sure which step to use for other revisions of BCM4310, but this is as good a guess as any. I’ll update this if I get feedback.
BCM4311 (Rev 01) 14e4:4311 (rev 01) Subetapa 2a* In Gutsy, lspci shows this card as “Network controller: Broadcom Corporation BCM94311MCG wlan mini-PCI (rev 01)”. Feisty shows the card as “Network controller: Broadcom Corporation Dell Wireless 1390 WLAN Mini-PCI Card (rev 01)”. *NOTE: I used to recommend 2b for this card, but for some folks, only 2a would work. I now have a feeling that 2a will work for everyone, so try 2a before falling back to the old 2b. If you need to remove one step 2, and try the other, see this. If 2a doesn’t work, try 2b before resorting to ndiswrapper compilation.
BCM4311 (Rev 02) 14e4:4311 (rev 02) Subetapa 2a In Gutsy, lspci shows: “Broadcom Corporation BCM94311MCG wlan mini-PCI (rev 02)”
BCM4311 (Rev 02) 14e4:4319 (rev 02) Subetapa 2b In Hardy, lspci shows: “Broadcom Corporation BCM4311 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (rev 02)”
BCM4312 (rev 01) 14e4:4312 (rev 01) Subetapa 2b In Gutsy, lspci shows: Broadcom Corporation BCM4312 802.11a/b/g (rev 01)
BCM4312 (rev 02) 14e4:4312 (rev 02) Subetapa 2a In Gutsy, lspci shows: Broadcom Corporation BCM4312 802.11a/b/g (rev 02)
BCM4318 (rev 01?) ? Subetapa 2a (?) Is there a rev 01? In that case, my guess is step 2a.
BCM4318 (rev 02) 14e4:4318 (rev 02) Subetapa 2a In Gutsy/Hardy, lspci shows “Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)” *NOTE: I used to recommend 2c for this card, but for some folks, only 2a would work. I now have a feeling that 2a will work for everyone, so try 2a before falling back to the (thought to be deprecated) 2c. If you need to remove one step 2, and try the other, see this. If 2a doesn’t work, try 2c before resorting to ndiswrapper compilation.
BCM4328 (rev 01) 14e4:4328 (rev 01) Subetapa 2d In Gutsy, lspci shows “Broadcom Corporation BCM4328 802.11a/b/g/n (rev 01)”
BCM4328 (rev 03) 14e4:4328 (rev 03) Subetapa 2d In Gutsy/Hardy, lspci shows “Broadcom Corporation BCM4328 802.11a/b/g/n (rev 03)” Windows Vista reports the device as “bcm4321AG”
Other BCM43xx It looks like 2a might be good for Rev 02 devices, so I’d try that step for other Rev 02 devices. Otherwise, you could try one of the others. Please give feedback if you try and succeed or fail with other devices.

Nota para a tabelinha aqui.

É baseado nessa tabela que iremos nos direcionar para a subetapa do Passo 3:

Subetapa 3a: sp34152 Driver Download/Extração

Execute os seguintes comandos:

sudo apt-get install cabextract
wget ftp://ftp.compaq.com/pub/softpaq/sp34001-34500/sp34152.exe
cabextract sp34152.exe

Subetapa 3b: sp33008 Driver Download/Extração

Execute os seguintes comandos:
sudo apt-get install cabextract
wget ftp://ftp.compaq.com/pub/softpaq/sp33001-33500/sp33008.exe
cabextract sp33008.exe

Subetapa 3c (Depreciado): Driverv3100640 Driver Download/Extração

Execute os seguintes comandos:
wget http://dlsvr03.asus.com/pub/ASUS/wireless/WL-100g-03/Driverv3100640.zip
unzip Driverv3100640.zip; cp Driver/WinXP/* ./

Subetapa 3d: R151517 Driver Download/Extração

Execute os seguintes comandos:
wget http://myspamb8.googlepages.com/R151517-pruned.zip
unzip R151517-pruned.zip

Subetapa 3e: R174291 Driver Download/Extração

Execute os seguintes comandos:
wget http://myspamb8.googlepages.com/R174291-pruned.zip
unzip R174291-pruned.zip

Subetapa 3f: WPC54Gv2 Driver Download/Extração

Execute os seguintes comandos:
wget http://myspamb8.googlepages.com/WPC54Gv2_40826-pruned.zip
unzip WPC54Gv2_40826-pruned.zip

Subetapa 3g: Driver_3607 Driver Download/Extração

Execute os seguintes comandos:

wget http://myspamb8.googlepages.com/Driver_3607.zip
unzip Driver_3607.zip

Quarto Passo
Configure NDISWrapper (e WPA Supplicant)

Execute os seguintes comandos:
sudo ndiswrapper -i bcmwl5.inf
ndiswrapper -l
sudo depmod -a
sudo modprobe ndiswrapper
sudo cp /etc/network/interfaces /etc/network/interfaces.orig
echo -e 'auto lo\niface lo inet loopback\n' | sudo tee /etc/network/interfaces
sudo ndiswrapper -m
echo 'ndiswrapper' | sudo tee -a /etc/modules
echo 'ENABLED=0' | sudo tee -a /etc/default/wpasupplicant

É possível que depois disso tudo a placa de wireless já seja reconhecida, caso contrário:

Vá em Sistema > Administração > Drives e Hardwares
Na nova janela clique para detectar os drives de placa de Wireless. Instale uma apropriada (No meu caso eu instalei a primeira Broadcom B43, mas você pode optar por outra que esteja listada) e depois reinicie seu computador.

Acabo de digitar esse post usando Ubuntu com conexão Wireless… chega de cabos :D

Enjou

Posts mais antigos »

Categorias

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.