Boné de nerd (com LEDs)!

Acabei de comprar um Boné de Nerd,  com painel de led personalizável. A  seguir, um vídeo e  sua especificação  técnica:

Características:

– Diversos efeitos de scroll;
– Programável sem  a necessidade  de um computador;
– Armazena  6 mensagens,  sendo a  primeira  mensagenm  com  capacidade para 512  caracteres, as demais 256 characteres;
– Simples programação e  troca  de mensagens;
– Manual em  inglês incluso;
– Alimentação: 2 baterias x CR2032 (incluso)!

Executando o serviço ffserver como daemon.

ffmpeg-logo

No pacote ffmpeg, encontramos o  programa  ffserver. Hoje esbarrei  com a necessidade de executá-lo como um serviço.  Constatei, que no rpm  do OpenSuse  11.1, o script para iniciar  a encerrar o  serviço  não esta  disponível. Sendo assim, a seguir o script que devemos armazenar na pasta /etc/inid.d :

Em primeiro lugar, comente a linha  a seguir no arquivo /etc/ffserver.conf:

#NoDaemon

Agora copie e salve  na  pasta /etc/init.d o arquivo ffserver com o conteúdo a seguir:

#! /bin/sh
# Author: Alessandro de Oliveira Faria (A.K.A. CABELO) <alessandrofaria@netitec.com.br>
#
# /etc/init.d/ffserver
#   and its symbolic link
# /usr/sbin/rcffserver
#
### BEGIN INIT INFO
# Provides:       ffserver
# Required-Start:
# X-UnitedLinux-Should-Start:
# Required-Stop:
# Default-Start:  3 5
# Default-Stop:
# Description:   Video streaming service.
### END INIT INFO
. /etc/rc.status
rc_reset
FFSERVER=/usr/bin/ffserver
CONFFILE=/etc/ffserver.conf
PID_FILE=/var/run/ffserver.pid
case "$1" in
 start)
 echo -n "Starting ffserver daemon "
 checkproc -p ${PID_FILE}  ${FFSERVER}
 case $? in
 0) echo -n "- Warning: daemon already running. " ;;
 1) echo -n "- Warning: ${PID_FILE} exists. " ;;
 esac
 $FFSERVER -f $CONFFILE 1> /dev/null 2> /dev/nul
 echo `pidof ffserver` > ${PID_FILE}
 rc_status -v
 ;;
 stop)
 echo -n "Shutting ffserver daemon "
 checkproc -p ${PID_FILE} ${FFSERVER} || \
 echo -n " Warning: daemon not running. "
 killproc -p ${PID_FILE} ${FFSERVER}
 rc_status -v
 ;;
 restart)
 $0 stop
 $0 start
 rc_status
 ;;
 status)
 echo -n "Checking for ffserver daemon "
 checkproc -p ${PID_FILE} ${FFSERVER}
 rc_status -v
 ;;
 *)
 echo "Uso: rcffserver {start|stop|restart|status}"
 exit 1
esac
exit 0

Mais  informações sobre o assunto, visite o Viva O Linux. Yes!

Venda do Microsoft Word é proibida nos EUA!

Juiz decidiu favoravelmente à canadense i4i que processou a empresa por violação de patente que manipula arquivos .XML.

11_word60Uma decisão do juiz da Divisão Tyler do Distrito Leste do Estado do Texas (Estados Unidos), Leonard Davis, proíbe a Microsoft de “comercializar, oferecer para venda ou importar para os Estados Unidos qualquer versão, atual ou futura, do Microsoft Word 2003, Microsoft Word 2007 e Microsoft Word que ofereça capacidade de abrir arquivos .XML, .DOCX ou .DOCM (um arquivo XML) contendo XML customizado”.

A decisão decorre do processo civil 6-07CV0113, de março de 2007, movido pela i4i Limited Partnership and Infrastructures for Information, Inc., empresa canadense com sede em Ontário, que acusa a Microsoft de infringir a patente U.S. No. 5.787.449 (conhecida como ‘patente 449’).

A patente, intitulada (tradução livre) “Métodos e sistemas para manipular a arquitetura e o conteúdo de um documento, separados um do outro” (do inglês “Method and System for Manipulating the Architecture and the Content of a Document Separately from Each Other”), foi concedida legalmente à i4i em 28/7/1998, a partir de quando a empresa teria todos os direitos sobre ela.

Na documentação apresentada à corte pelo advogado da i4i, Sam F. Baxter, do escritório McKOOL Smith. P.C. em 8/3/2007, a Microsoft, mesmo tendo conhecimento da existência dessa patente, usou e continua utilizando a tecnologia – sem autorização – no Word 2003, Word 2007, NET Framework e Windows Vista, “infringindo direta e indiretamente a patente 449”. Mesmo depois de informada de tal infração, afirma a petição, a desenvolvedora norte-americana teria continuado a utilizar a patente deliberadamente, gerando perdas e prejuízos à i4i.

Na Injunção Permanente (do inglês “Permanent Injunction”) proferida nesta terça-feira (11/8), sob o número 413, o juiz Leonard Davis determina que, em 60 dias (contados a partir da data da sentença), a Microsoft está proibida de vender os produtos do Word que infringem a patente 449.

Foi estipulado que a Microsoft deve pagar 200 milhões de dólares à i4i como indenização pela infração da patente 449. A empresa deve pagar ainda 40 milhões de dólares como indenização por prejuízos causados pela infração intencional da patente; outros 11,9 milhões de dólares devem ser pagos a título de perdas pós-veredicto e mas 37 milhões de dólares referentes a juros pré-julgamento.

Procurada por PC World, a Microsoft enviou uma declaração na qual seu porta-voz, Kevin Kutz afirma: “Estamos desapontados com a decição da corte. Acreditamos que as evidências claramente demonstram que nós não infringimos [qualquer patente] e que a patente da i4i não é válida. Iremos apelar do veredicto”.

thumb.php

Fonte da informação:  ZDNet e Techlider.

Pesquisando referências de bibliotecas!

gccegg-65Suponhamos que ao compilarmos um software, ocorre o seguinte  erro:

$ g++  programa.cc -o programa/lib/libguide.so: undefined reference to `pthread_atfork'collect2: ld returned 1 exit status$

Entre no site http://dev.linuxfoundation.org/dbadmin/commons/search.php e busque a  referência  da chamada pthread_atfork ou __pthread_atfork. E pronto! Teremos como resultado a libpthread Yes! Agora basta referência-la na compilação.

$ g++  programa.cc -o programa -lpthread

Qemu: Montando imagens.

Para montar  uma image  do QEMU  no filesystem,  devemos calcular  o [offset] da  partição. Ou seja multiplicar o setor inicial por 512 (quantiade de  bytes por setor). Veja o simples exemplo abaixo:

# sfdisk -luS hda1DB91.img
Disco hda1DB91.img: não foi possível obter a geometria

Disco hda1DB91.img: 248 cilindros, 255 cabeças, 63 setores/trilha
Unidades = setores de 512 bytes, contando a partir de 0

 Device Boot    Start       End   #sectors  Id  System
hda1DB91.img1            63    530144     530082  82  Linux swap / Solaris
hda1DB91.img2   *    530145   3984119    3453975  83  Linux
hda1DB91.img3             0         -          0   0  Vazia
hda1DB91.img4             0         -          0   0  Vazia

Efetue  o seguinte cálculo (setor inicial*512):

530145*512= 271434240

Agora  utilize o comando mount.

# mount -o loop,ro,noexec,offset=271434240 hda1DB91.img /mnt/suse9.1

Simples não…

Como copiar o seu CD do Playstation 1 no HD?

playstationGosto e muito dos  jogos do playstation 1.   Sendo assim, acho que não  preciso nem mencionar que utilizo o emulador ePSXe Yes!.

A seguir, os passos para criar uma imagen do seu jogo preferido no HD.  Vale a  pena ressaltar que esta imagen além de servir como backup, podemos utiliza-la no emulador ePSXe   ( Viva  \o/).

Em  primeiro lugar,  devemos detectar o ID do device (  no meu caso 3,0,0).

$ cdrecord -scanbus
scsibus3:
 3,0,0   300) 'TEAC    ' 'DVD+-RW DVW28SLC' 'A.06' Removable CD-ROM
 3,1,0   301) *
 3,2,0   302) *
 3,3,0   303) *
 3,4,0   304) *
 3,5,0   305) *
 3,6,0   306) *
 3,7,0   307) *

Em seguida,  insira  o Cd do game no driver  e execute o comando cdrdao como  no exemplo  a seguir.

$ cdrdao read-cd --read-raw --datafile spiderman.bin --device 3,0,0 --driver generic-mmc-raw spiderman.toc
Cdrdao version 1.2.2 - (C) Andreas Mueller <andreas@daneb.de>
 SCSI interface library - (C) Joerg Schilling
 Paranoia DAE library - (C) Monty

Check http://cdrdao.sourceforge.net/drives.html#dt for current driver tables.

WARNING: the deprecated pseudo SCSI syntax found as device specification.
Support for that may cease in the future versions of wodim. For now,
the device will be mapped to a block device file where possible.
Run "wodim --devices" for details.
Using libscg version 'Cdrkit-1.1.8'

3,0,0: TEAC DVD+-RW DVW28SLC    Rev: A.06
Using driver: Generic SCSI-3/MMC (raw writing) - Version 2.0 (options 0x0000)

Reading toc and track data...

Track   Mode    Flags  Start                Length
------------------------------------------------------------
 1      DATA    4      00:00:00(     0)     68:10:35(306785)
Leadout DATA    4      68:10:35(306785)

PQ sub-channel reading (data track) is supported, data format is BCD.
Raw P-W sub-channel reading (data track) is supported.
Copying data track 1 (MODE2_RAW): start 00:00:00, length 68:10:35 to "spiderman.bin"...
00:13:00

Para gravar o CD  a  partir  da  imagen,  basta  utilizar o comando a seguir…

$ cdrdao write –eject –speed 4 –device 3,0,0 –driver generic-mmc spiderman.toc

Fonte:  www.linuxnarede.com.br

Alocação dinâmica de matriz em C++

Já me deparei com  muito  código em C/C++ declarando matrizes como no exemplo a seguir:

int m[100000000];

Abaixo uma  maneira simples  para declarar e  dimensionar uma matriz durante  a  execução do  programa:

int* a = NULL;   // Inicializa o ponteiro
int n;           // Tamanho da matriz
cin >> n;        // Entrada de dados para o tamanho da matriz
a = new int[n];  // Allocação
for (int i=0; i<n; i++)
{
   a[i] = 0;       // atribuindo os valores para  cada elemento.
}
. . .  
delete [] a;  // Liberando a memória
a = NULL;