Arquivos

Posts Tagged ‘Nerdicas’

ABC++: Função que testa Expressão Regular.

setembro 22nd, 2010 No comments
int regexcmp(char *myregex, char *entrada) {
        /* aloca espaço para a estrutura do tipo regex_t */
        regex_t reg;

        /* compila a ER passada em (a)
         * em caso de erro, a função retorna diferente de zero
         */
        if (regcomp(&reg, myregex, REG_EXTENDED | REG_NOSUB) != 0) {
                fprintf(stderr, "erro regcomp\n");
                exit(1);
        }

        /* tenta casar a ER compilada (&reg) com a entrada
         *  se a função regexec retornar 0 casou, caso contrário não
         */
        return regexec(&reg, entrada, 0, (regmatch_t *) NULL, 0);
}// Fim da função

// exemplo de uso
//-----------------------------------------------------------------------------------
void main(int argc, char *argv[]){

        if(!regexcmp("<[[:alnum:]]+>", argv[1])){
                printf("Tem tags XML\n");
        }else{
                printf("Não tem tags XML");
        }
}
Categories: Notícias Tags:, ,

ABC++ Coletando lixo do C (Garbage colector para C e C++)

setembro 21st, 2010 No comments
/*
Pessoal,

Todos que usam C e C++ com mais seriedade sabem que a utilização da
memória pode ser um problema.
Matreizes dinâmicas, ponteiros de char e tudo o mais que pode crescer
e explodir o programa.
Não seria bom se a linguagem C tivesse um recurso para controlar a
memória ? Em alguns projetos, sim. Em outros é bom ter um controle
manual da memória.
Tudo que é automático falha automaticamente.
Mas e se fosse possível usar este recurso sempre que for conveniente
sem perder o poder de poder fuçar na unha quando for necessário ?

Hmmmm agora estamos falando como programadores de verdade!

A linguagem C é extensível e existe como adicionar uma lib que faça o
sujo trabalho de coletar o lixo para nós.

Sim, a biblioteca de GC (Garbage Colector),  possui um algoritmo de
"limpeza" de memória e basicamente você não vai ficar perdido em meio
a funções free() não finalizadas e também vai ter uma indicação melhor
em tempo de execução se alguma área de memória explodiu, e onde.
Isso dá uma grande agilidade e poder de depuração.
Bom, as referências dessa lib: Está hospedada e mantida pela HP. É
usada no projeto Mozilla, Inkscape, Mono e vários projetos.
Abaixo um simples exemplo de programa devorador de memória alocada e
como ele fica simples feito com a lib.
Vejam que basta utilizar GC_MALLOC() no lugar do mal-loco() original
ou seja a lib possui interface com o esquema de alocação de memória
feito por programadores cabra-macho sim senhor.
E notem também que o free() foi pra /dev/null

*/

//Exemplo de utilização da biblioteca. loop.c

#include "gc.h"
#include <assert.h>
#include <stdio.h>

int main()
{
        int i;

        GC_INIT();    /* Optional on Linux/X86; see below.  */
        for (i = 0; i < 10000000; ++i)
        {
                int **p = (int **) GC_MALLOC(sizeof(int *));
                int *q = (int *) GC_MALLOC_ATOMIC(sizeof(int));
                assert(*p == 0);
                *p = (int *) GC_REALLOC(q, 2 * sizeof(int));
                if (i % 100000 == 0)
                        printf("Heap size = %d\n", GC_get_heap_size());
        }
        return 0;
}
//EOF

// Compilação:
// cc -I/home/xyz/gc/include loop.c /home/xyz/gc/lib/libgc.a -o loop

//Referencias da lib:
//http://www.hpl.hp.com/personal/Hans_Boehm/gc/
//http://www.hpl.hp.com/personal/Hans_Boehm/gc/simple_example.html
Categories: Tecnologia Tags:, , ,

Nerdicas 11 – Aproveitando melhor seu monitor widescreen

julho 30th, 2010 2 comments

Os monitores widescreen são ótimos para ver filmes e vídeos, mas para editar textos, programar e criar webpages mostram bem poucas linhas e “desperdiçam” muito espaço lateral.

Mas com um pequeno suporte de madeira podemos colocar o monitor a 90 graus e aproveitar a largura dele como se fosse altura .

Fica como aqueles monitores de Arcade antigos.

No KDE fica fácil ajustar a tela para que ela funcione “de lado” a 90 graus.
Crie um script e coloque em:

~/.kde/Autostart com a seguinte linha:

#!/bin/bash
/usr/bin/kdialog --yesno "Virar tela 90%"
if [  "$?" == "0" ] ; then
/usr/bin/xrandr -o 1
fi

.

Isso gera um popup no KDE perguntando se deseja virar o vídeo a 90 toda vez que logamos no kde.
Um <enter> vira a tela e um <esc> sai do popup.

Na imagem como ficou meu “novo monitor de programação”:

Categories: Tecnologia Tags:, ,

Erro do Windows 7 com JDK 6

julho 24th, 2010 No comments

Fala pessoALL. Tudo tranquilo com vcs?

Bom, estou postando novamente para compartilhar o problema que tive com a instalação da JDK do Java 6 update 21. Troquei meu notebook por um da DELL e resolvi pegar esse fim de semana para fazer a instalação dos programas o qual eu utilizo no meu dia a dia de trabalho. Primeiro fiz as cópias de todos os meus arquivos para o notebook novo e depois resolvi instalar as ferramentas de desenvolvimento que eu utilizo.

Bom quando baixei a SDK do Java, tentei executá-la e obtive um erro um tanto quanto estranho. O erro apresentado foi o seguinte: “Erro ao aplicar transformações. Verifique se os caminhos de transformação especificados são válidos”. Como foi a primeira vez que obtive esse erro, fui dar uma googlada para verificar se achava alguma coisa, e pra minha surpresa a maioria dos itens que achei, não resolviam meu problema.  Quebrando um pouco a cabeça, cheguei a solução da seguinte maneira:

1º Passo: Executei o instalador em modo de log com o comando: jdk-6u21-windows-i586.exe -l*v c:\arquivo.log. Este comando faz com que seja gerado um arquivo de log, o qual armazenei na pasta raiz com o nome arquivo.log

2º Passo: Analisei o arquivo gerado e vi que ele extraia um arquivo .MSI em uma determinada pasta, no meu caso era: “C:\Users\Jederson\AppData\LocalLow\Sun\Java\jdk1.6.0_21″. Para localizar essa linha procure pelo termo: “Package we're running from ==>".

Com isso siga para o caminho localizado ai, e execute o arquivo .MSI, com isso a instalação irá percorrer sem problemas.

É isso ai pessoal. Java is the future.

Abraço ALL

Categories: Tecnologia Tags:,

Nerdicas 10 – Crtl+Alt+End para desligar o Linux

junho 7th, 2010 No comments

yo! Vamos a mais uma nerdica simples. Você, assim como eu, pode ter alguns servidores espalhados por aí, servidores de clientes que, por algum motivo ou outro, quer desligar o servidor durante do fim de semana ou por dar umas férias coletivas e fechar a empresa por algum tempo (ok, acho que ninguém faz mais isso hoje em dia…).

Geralmente os servidores não tem monitor e é um desperdício de tempo ir no local só para desligar o servidor e nem sempre temos a chance de fazer isso remoto. Pior ainda é fornecer a senha root (ou qualquer outra) para o dono da empresa e deixar ele fazer isso, já que é um perigo permitir acesso ao servidor sem necessidade e ainda mais se a pessoa, como é na maioria dos casos, não possui conhecimento em Linux.

Read more…

Categories: Tecnologia Tags:,

Nerdicas 9 – Personalizando o csh

maio 12th, 2010 No comments

yo!

O csh (ou tcsh), shell padrão do FreeBSD desde há um bom tempo não é muito legal, ao meu ver, então segue a dica para deixá-lo mais com a cara do bash.

Basta editar o arquivo .cshrc e para ativar as mudanças sem precisar relogar no sistema, basta executar:

source  .cshrc

1. Mudar a aparência:

set prompt="%B%n@%m:%~# "

O prompt ficará assim:

root@scoobydoo2:/home#

Read more…

Categories: Tecnologia Tags:,

Nerdicas 8 – port quebrado? Tente o portmanager

maio 10th, 2010 No comments

Outro dia, num dos servidor www que administro, uma atualização na árvore do ports resultou na quebra do php5-gd. No /var/log/httpd-error.log constava:

PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/lib/php/20060613/gd.so’ – Shared object &quot;libjpeg.so.10&quot; not found, required by &quot;gd.so&quot; in Unknown on line 0

Tentei atualizar o php5 para o php52 e as extensões. Depois tentei ir mais fundo e reinstalar a gd e a php52-gd, mas mesmo assim não resolveu. Era necessário recompilar mais coisas e eu não sabia por onde começar. Googlando um pouco descobri que o portmanager podia resolver o problema. Read more…

Categories: Tecnologia Tags:, , ,

Nerdicas 7 – Assistindo uma série inteira com o mplayer

maio 7th, 2010 No comments

Alguns animes tem aberturas que uma vez vistas não se deseja vê-las mais.

Principalmente se você está assistindo uma série inteira. É chato ficar teclando  para pular a apresentação. Você tem que ir pra frente e voltar algumas vezes para não perder pedaços…Enfim, dá preguiça ! Read more…

Nerdicas 6 – O comando date

maio 4th, 2010 No comments

O date é um comando que sempre foge á memória, pois seu formato é um pouco prolixo.
Vamos ser sinceros, todos já erramos na sintaxe desse monstinho !
Normalmente eu uso o ntpdate para acertar hora e data e mando o date as favas. Mas nem sempre isso é possível.

Vou passar a dica rápida para alterar a data do linux sem ter que mexer nas horas e minutos e como alterar as horas e minutos sem mexer na data. Read more…

Nerdicas 5 – Encriptação

abril 30th, 2010 No comments

Guardar senhas ou outras informações em um arquivo encriptado com o VIM

Sei que existe o ótimo kwallet que é um aplicativo que serve para armazenar senhas dos mais diversos aplicativos. Ele é ótimo e seria perfeito se tivesse integração com o firefox e com outros aplicativos não Qt … (hmm deu vontade de escrever um add on… Read more…