Inicialmente este blog foi criado para armazenar algumas dicas e links de UNIX/Linux, OpenVMS, linguagem C, Assembly, TCP/IP e nerdezas afins. No entanto devido ao autor ter abandonado o seu plano de ser um super hacker e dominar o mundo (devido esposa, família, filhos, trabalho), a partir de 2012 este blog tem um tipo de nerdeza mais light (Android, Linux, RetroPie (retrogames), produtividade, e por aí vai). Estas dicas raramente serão criações minhas.
segunda-feira, 14 de abril de 2008
sexta-feira, 4 de abril de 2008
Projeto de Algoritmos
Achei esse conteúdo muito interessante para o estudo da disciplina Estrutura de Dados II: http://www.ime.usp.br/~pf/algoritmos/index.html.
O autor, Paulo Feofiloff, possui 2 características que eu aprecio muito: escreve todo código em C, e se preocupa com a elegância do código (indentação, comentários, etc.).
Posted by
Unknown
at
00:12
0
comments
Labels: C, estudo, programacao
sexta-feira, 28 de março de 2008
Monitorando tempo de execução de uma função
Esse macete eu achei especialmente útil na hora de estudar o desempenho dos diversos algoritmos de ordenação. Aprendi no "Advanced Programming in the UNIX Environment" (Stevens e Rago), no Seção 8.16.
Vamos direto à prática, para detalhes é necessário consultar o livro e/ou as man pages.
Primeiro temos que criar a seguinte função para imprimir o tempo:
#include <unistd.h>
static void imprimetempo(clock_t tempo) {
static long clktck = 0;
if(clktck == 0)
if((clktck = sysconf(_SC_CLK_TCK)) < 0)
perror("sysconf");
printf("%7.2f s", tempo / (double) clktck);
}
E para que esta função seja útil temos que chamá-la de maneira análoga ao exemplo abaixo:
#include <sys/times.h>
int main() {
clock_t ini, fim;
.
.
.
ini = times(NULL);
funcao_que_quero_ver_quanto_tempo_leva(argumentos);
fim = times(NULL);
printf("Tempo que levou: ");
imprimetempo(fim - ini);
.
.
.
return 0;
}
Posted by
Unknown
at
16:19
0
comments
Labels: C, estudo, programacao, unix
sábado, 8 de março de 2008
recuperando senha do root no FreeBSD
Essa dica foi retirada de http://under-linux.org/wiki/index.php/Dicas/FreeBSD/FreeBSD-Senha.
Na tela de contagem regressiva para escolha do boot, basta optar pelo prompt de comando para as opções de boot. Daí é só entrar com "boot -s" que vai entrar como administrador sem pedir senha alguma. Daí é só usar o passwd para trocar a senha. Se não funcionar é porque precisa montar as partições. Um "mount -a" deve resolver isso e então é só usar o passwd.
Essa me tirou do sufoco hoje! =D
Posted by
Unknown
at
04:35
0
comments
Labels: FreeBSD
segunda-feira, 3 de março de 2008
gerando números aleatórios
Essa eu aprendi no Programming in C - UNIX System Calls and Subroutines using C. Trata-se de uma gambiarra para gerar números aleatórios.
Abaixo uma função que gera n números aleatórios de zero a nove e guarda no vetor V passado a função como parâmetro:
#include <stdlib.h>
#include <time.h>
#define MAIOR 10
void geranumeros(int V[], int n) {
srand((unsigned int) time(NULL));
while(n > 0)
V[--n] = rand() % MAIOR;
}
Achei isso especialmente útil na hora de testar os algoritmos de ordenação ensinados na disciplina de Estrutura de Dados II.
Posted by
Unknown
at
16:27
0
comments
Labels: C, estudo, programacao
tags
- arch linux (3)
- arquitetura de computadores (1)
- assembly (4)
- backtrack (1)
- backup (2)
- bash (3)
- bluetooth (1)
- C (13)
- computador antigo (2)
- console (1)
- crunchbang (2)
- cubo de rubik (4)
- cygwin (3)
- DCL (5)
- debian (3)
- DHCP (1)
- DTXMania (2)
- dvd (2)
- eeepc (5)
- eletronica (4)
- emulationstation (1)
- estudo (11)
- fba (2)
- fifo (1)
- filho (3)
- filmes (2)
- firefox (2)
- fluxbox (1)
- FreeBSD (4)
- games (1)
- gcc (1)
- gdb (2)
- ingles (2)
- Inteligencia Artificial (1)
- java (6)
- jogos (7)
- link (49)
- Linux (30)
- Linux Mint (3)
- livros (1)
- LMDE (1)
- lubuntu (2)
- lxde (2)
- maquina virtual (2)
- MATE (2)
- NAT (2)
- neogeo (1)
- NetBeans (2)
- netcat (2)
- OpenBSD (1)
- OpenGL (1)
- OpenVMS (8)
- portableapps (1)
- ppp (1)
- programacao (13)
- programacao orientada a objetos (4)
- pt_BR (3)
- python (2)
- raspberry pi (2)
- retropie (2)
- Reverse Engineering (2)
- robotica (1)
- screen (1)
- shell (7)
- shellcode (4)
- simulador (1)
- slackware (1)
- suid (1)
- TCPIP (10)
- teste (1)
- TODO (1)
- ubuntu (7)
- UML (2)
- unicode (1)
- unix (4)
- utilidade (1)
- vax (1)
- Velox (1)
- video (2)
- vim (5)
- virtualbox (1)
- VMware (2)
- vxl (1)
- web (2)
- wifi (1)
- windows (6)
- wmaker (2)
- X (1)
- xfce (3)
- zorin os lite (2)