sábado, 9 de agosto de 2014

Instalando o skype via terminal no ubuntu




Essa dica vai para usuários da distrubuição ubuntu, porém um procedimento similar pode ser feito para outras distribuições linux.
Abra o terminal e digite os seguintes comandos:

  1. sudo add-apt-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner"
  2. sudo apt-get update
  3. sudo apt-get install skype
     
    Pronto, bom bate papo!

quarta-feira, 6 de agosto de 2014

Senha padrão do usuario root no kali linux


A dica de hoje vai para usuários iniciantes do Kali Linux. Durante a instalação, o Kali Linux solicita aos usuários que configurem uma senha padrão para o usuário root. Entretanto, caso você opte por iniciar a imagem live ao invés de instalar, as imagens i386, amd64, VMWare e ARM são configuradas com uma senha de root padrão – “toor, sem as aspas.

REFERÊNCIAS
http://br.docs.kali.org/introduction-pt-br/senhas-padrao-do-kali-linux

sábado, 2 de agosto de 2014

Programando em Python (introdução - história - instalação)




                         
Python é uma linguagem super poderosa, prática e bastante fácil de se aprender.
Muitas vezes quando estamos escrevendo um programa em Python nos perguntamos se estamos programando ou escrevendo um poema. De tão simples e prático as vezes parece um texto em inglês, pois parece muito com a linguagem humana.

Um pouco de história
A linguagem de programação Python foi criada em 1991 por Guido van Rossum no centro de matemática e ciencias da computação ( CWI, sigle holandesa) sede Holanda.
Guido Van Rossum é o principal autor da linguagem Python e nasceu em 1956 na Holanda e em meados de 2005 foi contratado como desenvolvedor Google Inc, onde atualmente trabalha.
O nome da linguagem de programação foi baseada na admiração de seu criador pelos humoristas britanicos do Monty Python, uma série de televisão de sucesso em 1969 e 1974.
O site oficial da linguagem é www.python.org e lá podemos encontrar o link download para a versão mais recente da linguagem em todo tipo de plataforma.

Instalando o Python
Antes de começar a programar vamos instalar primeiro o interpretador python, que é a linguagem em sí.
Digite os seguintes comandos no terminal para instalar o pacote (Linux):

sudo apt-get install python 3.4.0

Vamos instalar um outro pacote para nos auxiliar durante o processo de programação, vamos instalar a interface gráfica.

sudo apt-get install idle-python 3.4.0

para abrir usamos os seguintes comandos no terminal:

idle-python3.4.0 &

Observe que o & ("i comercial") é apenas para liberar o terminal depois de abrir a interface gráfica.


REFERÊNCIA:
"Building Skill in Python", Steven F. Lott, 2010
www.cwi.nl
www.python.org
http://www.vivaolinux.com.br/dica/Instalando-o-Python-33-no-Ubuntu-1204

sexta-feira, 1 de agosto de 2014

Programando em C (Introdução - Um pouco de história)


A linguagem C foi criada em 1972 no Bell Telephone Laboratories por Dennis Ritchie com a finalidade de permitir a escrita de um sistema operacional(o Unix), ultilizando uma linguagem de relativo alto nível, evitando assim o recurso ao Assembly.
Devido às suas capacidades através da divulgação do sistema Unix pelas universidades dos Estados Unidos, a linguagem C deixou cedo as portas dos laboratórios Bell, disseminou-se e tornou-se conhecida por todos os tipos de programadores, independentemente dos projetos em que estivessem envolvidos, sendo o livro The C Programming Language, de Kernighan &  Ritchie, o único elo comum entre os programadores.
Essa dispersão levou a que diferentes organizações desenvolvessem e ultilizassem diferentes versões da linguagem C, criando assim alguns problemas de portabilidade, entre outros. Diante de tal estade de coisas, e uma vez que a linguagem C se tinha tornado um verdadeiro fenômeno entre os programadores e organizações, o American National Standards Institute (ANSI) formou em 1983 um comitê para a definição de um padrão da linguagem C, padrão esse que visa ao funcionamento semelhante de todos os compiladores da linguagem, com especificações muito precisas sobre aquilo que a linguagem deve ou não fazer, seus limites, definições, etc.
O nome da linguagem( e a própria linguagem) resulta da evolução de uma outra linguagem de programação desenvolvida por Ken Thompson também nos Laboratórios Bell, chamada de B. Dessa forma, é perfeitamente natural que a evolução da linguagem B desse origem à linguagem C.

Qual a área de desenvolvimento C se destina?
Nenhuma em particular. É muitas vezes denominada de general purpose, que é uma das suas grandes vantágens, pois adapta-se aos desenvolvimento de qualquer projeto, como sistemas operacionais, interfaces gráficas, processamento de registro, etc. A linguagem C é até mesmo ultilizada pra escrever os compiladores de outras linguagens.

A filosofia da linguagem C é uma pouco parecida com a do Unix, incorporando, aliás, algumas das suas características( case sensitive, por exemplo).

REFERÊNCIA:
Damas, Luiz. Linguagem C, 10 ed, Rio de Janeiro: LTC, 2007

Inteoperabilidade entre as linguagens C e Fortran

É bastante buscado um programa que contenha um código tanto em Fortan quanto em C e na qual uma rotina escrita numa das linguagens seja capaz de chamar outra rotina escrita na outra linguagem. O compilador de Fortran da intel® tem suporte para o padronizado mecanismo do Fortran 2003 que parmite o código em Fortran se cominicar de forma confiável (ou interoperar) com um código em C.
 Como chamar um programa em C a partir de um em fortran e como chamar um programa fortran a partir de um em C, tema de hoje.

Para chamar funções em c a partir de um programa Fortran ou chamar subrotinas em Fortran a partir de C envolve resolver as seguintes problemas:

* 'Case sensitivity' ( uma vez que C é 'case sensitive' porém fortran não é)
* Possivel sublinhado adicional ("_") em nomes de funções em C (o
   sublinhado é adicinado por alguns compiladores em fortran.)
* Possiveis bibliotecas adicionais em Fortran que precisam ser linkadas para
   construir executáveis.
* Subrotinas em fortran são sempre "chamadas por referência" enquanto
   em C podem ser tanto "por referência quando por valor".

No que se segue, especificos exemplos são dados para compiladores intel e compiladores GNU. Se vc está usando outro compilador mudanças podem ser requeridas.

C chamando subrotinas em fortran suboutines

Exemplo de programas em C. Programa principal (c-call-f.c) -- note o sublinhado arrastado
no nome da função for_sub_:
 
#include 
void for_sub_(int *, double *, double *, int *);
int main()
{
int i = 1, ny = 3;
double pi = 3.14159;
double y[] = {1.1, 2.2, 3.3};
// pular uma linha para melhor visualizacao
printf("\n");
printf("_____________________________________________\n");
printf(" C chamando subrotina em fortran, passando\n");
printf(" i = %d, pi = %g\n", i, pi);
printf(" y[] = %g, %g, %g\n", y[0], y[1], y[2]);
printf("_____________________________________________");
//pular uma linha para melhor visualizacao
printf("\n");
for_sub_(&i, &pi, y, &ny);
return 0;
}

Programa exemplo: subrotina em fortran, em "formato livre (free format)" ( f_sub.f)

subroutine FOR_SUB(i, pi, y, ny)
IMPLICIT NONE
integer :: i, ny
double precision :: pi
double precision :: y(ny)
! pular uma linha para melhor visualizacao no terminal
print *, " "
print *, "____________________________________________"
print *, "Esta eh uma subrotina em Fortran..."
print *, "i = ", i, ", pi = ", pi
print *, "y = ", y(1:ny)
print *, "____________________________________________"
! pular uma linha para melhor visualizacao no terminal
print *, " "
end subroutine FOR_SUB

Como compilar:

Usando compiladores Intel icc e ifort

$ icc -c c-call-f.c
$ ifort -free -c f_sub.f
$ icc -o c-call-f-icc  c-call-f.o  f_sub.o -L/u/local/
compilers/intel/fce/current/lib -lifcore -limf
$ ./c-call-f-icc

Usando compiladores GNU gcc e gfortran

$ gcc -c c-call-f.c
$ gfortran -ffree-form -c f_sub.f
$ gcc -o c-call-f-gcc  c-call-f.o f_sub.o  -lgfortran
$ ./c-call-f-gcc 

Fortran chamando funções em C

Exemplo de programa: Programa principal em fortran,
em free format (f-call-c.f):

program f_call_c
IMPLICIT none 
integer :: i = 1, ierr
double precision :: pi = 3.14159 
print *, "______________________________" 
print *, "Fortran chamando C, passando"
print *, "i = ", i, "pi = ", pi
ierr = cfun(i, pi)
print *, "______________________________"
end program f_call_c

Programa exemplo: função em C(cfun_c) -- note que o sublinhado arrastado no nome da
função cfun:
 
#include 
int cfun_(int *ip, double *xp)
{
int i = *ip;
double x = *xp;
printf("\n");
printf("______________________________"); 
printf("Esta eh uma funcao em C...\n");
printf("i = %d, x = %g\n", i, x);
printf("______________________________");
printf("\n"); 
return 0;
}

Como se compilar

Usando compiladores Intel icc and ifort

$ ifort -free -c f-call-c.f $ icc -c cfun.c
$ ifort -o f-call-c-icc f-call-c.o cfun.o $ ./f-call-c-icc

Usando compiladores GNU gcc and gfortran

$ gfortran -ffree-form -c f-call-c.f
$ gcc -c cfun.c
$ gfortran -o f-call-c-gcc f-call-c.o cfun.o
$ ./f-call-c-gcc
 
 
REFERÊNCIAS:
http://hpc.ucla.edu/hoffman2/software/c-fortran-interop.php 
https://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html
https://software.intel.com/sites/products/documentation/hpc/composerxe/
en-us/2011Update/fortran/win/bldaps_for/common/bldaps_interopc.htm
http://stackoverflow.com/tags/fortran-iso-c-binding/info
http://www.pgroup.com/userforum/viewtopic.php?p=7398&sid=2a05571
a922045c6c4ae26d65bbf9fba