jueves, 30 de octubre de 2014

Script para espiar el contenido de dispositivos USB y copiarlo a la PC


Hace poco quería un escritp en bash que me indicara cuando la carga de la bateria de mi laptop estuviera llena, no tuve mucha suerte con la búsqueda, sin embargo encontré un escritp en bash que realiza las siguientes  funciones:
  1. Detectar cuando se conecta un dispositivo USB a la computadora
  2. Copiar todo el contenido de ese dispositivo hacia la computadora
Básicamente con esas funciones podemos hacer un sin fin de cosas:
Descripción de los archivos y lo que hace:
1. Crear la carpeta /home/.USBDRIVES/
2. Comprobar cada 5 segundos si hay algún dispositivo USB (o CD/DVD) conectado al ordenador.
3. En caso de que esté alguno conectado, creará una carpeta dentro de /home/.USBDRIVES/ con el nombre del USB (por ejemplo: memoria-2gb) y además, copiará todos los archivos .doc, .pdf, etc., hacia esta carpeta que recién acaba de crear.
4. En caso de que no haya ningún USB conectado, simplemente esperará 5 para volver a verificar.
El script en bash y los archivos que son copiados lo pueden descargar desde aquí
El script debe ser ejecutado de preferencia como root para que su funcionamiento no se vea limitado o bien con un usuario que sea sudo.
Para que el script pueda funcionar sin ningún tipo de problemas, lo mejor es que sea iniciado con privilegios administrativos (root), así como es obvio que se necesita que se inicie junto al ordenador, de esta forma nos aseguramos que si el ordenador es reiniciado o apagado, cuando vuelva a iniciar el script estará ahí funcionando, listo para extraer de cualquier USB lo que deseamos ;)
1. Supongamos que tenemos ambos archivos en /opt/ (/opt/usb-spy.sh y /opt/usb-spy.files), debemos darle privilegios de ejecución:
sudo chmod +x /opt/usb-spy.sh
2. Abrimos el archivo /etc/rc.local :
sudo nano /etc/rc.local
3. En él escribimos arriba de la línea final (exit 0) lo siguiente:
/opt/usb-spy.sh &
4. Ahora presionamos [Ctrl]+[X] para guardar y salir del archivo, presionamos [S] o [Y] (en dependencia del idioma del sistema) y luego [Enter]. Esto bastará para que se guarden los cambios que hicimos.
Y listo, esto bastará para que el script se inicie como root cuando encendamos el ordenador.
Es importante verificar que el archivo usb-spy.files esté en el mismo directorio de usb-spy.sh

miércoles, 29 de octubre de 2014

Cómo saber los puertos abiertos o conexiones establecidas a nuestra computadora

Cursando la materia de seguridad en centros de informática, me hizo curiosear un poco más acerca de las múltiples amenazas y riesgos que se pueden generar al usar internet sin precaución.
En una de mis tantas búsquedas, quería saber cómo ver la lista de servicios y puertos que éstos servicios se habían establecido en mi laptop.
Para esto usé la aplicación: netstat
Por ejemplo, para mostrar todos los datos de conexiones que tenía abierta hice lo siguiente:
sudo netstat -punta
Al ejecutar el comando me muestra la siguiente información.
Como pueden apreciar se puede ver el protocolo, datos recibidos, puerto e IP de escucha así como el puerto e IP de la conexión que se permitan, si es una conexión que ya está establecida o no, PID, etc. En fin, muchos datos que son útiles y que se pueden terminar en caso de ser necesario.
Bueno es solo un pequeño tip que espero les sea de utilidad
Saludos y no dejen de visitar...

Puertos de los servicios más conocidos en Linux

Recientemente quería saber qué puertos estaban siendo ocupados por aplicaciones en mi sistema operativo, pero sobre todo quería saber cuáles eran normales y cuáles no, para terminar el proceso en caso de que hubieran cosas "raras" en los procesos.
Buscando un poco en la web, encontré la siguiente lista de puertos asociados a algunas aplicaciones o servicios, esto los puede sacar de apuros cuando detecten actividad inusual.

Aquí te presentamos los puertos más conocidos por orden de menor a mayor:
21 FTP
22 SSH
23 Telnet
25 smtp (correo saliente)
53 dns (resolución de nombres)
80 web (servidor web)
110 pop (correo entrante)
143  imap
443  web seguro (https)
993 imap seguro
995 correo entrante seguro (ssl)
2082  CPanel
 2083  CPanel seguro (https)
 2086  WHM
 2087  WHM seguro (https)
 2095  Webmail cpanel
 2096  Webmail cpanel (https)
 3306  Mysql
 8443  Plesk

Para saber qué puertos están a la escucha visita este post

Comando w

¿w? ¿Eso es un comando? Es lo que os estaréis preguntando muchos al ver el titulo de este post, y la respuesta afirmativa es sí, existe el comando w.
Resulta que hace poco, estaba buscando cómo saber qué usuarios se han conectado a mi laptop, ya sea en modo remota o local. Bueno, pues este comando nos informa acerca de esos usuarios conectados.
Esto nos ayuda a detectar anomalías en inicios de sesión en nuestra máquina. En cuestión de seguridad lo pueden usar.
La salida que genera es similar a esta:

Sigan leyendo....

martes, 28 de octubre de 2014

Agunos trucos para Latex

Cuando se escribe en Latex, a veces es necesario renombrar algunas secciones o títulos que vienen por default. Aquí les muestro algunos que he utilizado:
Estas opciones van después del apartado que dice: \begin{document}
\renewcommand\contentsname{Título para el índice}
\renewcommand\listfigurename{Título para lista de figuras}
\renewcommand\listtablename{Título para lista de tablas}
\renewcommand\refname{Título para bibliografía}
\renewcommand\abstractname{Título para el abstract}
\renewcommand{\tablename}{Nombre que aparece abajo de las tablas}
\renewcommand{\appendixname}{Apéndices}
\renewcommand{\appendixtocname}{Apéndices}
\renewcommand{\appendixpagename}{Apéndices}
\renewcommand{\glossaryname}{Índice para el Glosario}
\renewcommand{\acronymname}{Índice para los Acrónimos}

No mostrar una sección o capitulo en la tabla de contenido:
basta con agregar un * de este modo
\section*{Nombre de la sección}

Agregar una entrada a la tabla de contenido sin que haya una sección como tal en el documento:
\addcontentsline{toc}{section}{Glosario}
\addcontentsline{toc}{section}{Acrónimos}

Modificar los márgenes del documento esto va después del \begin{document}
\onehalfspacing \marginsize{3cm}{2.5cm}{2.5cm}{2.5cm}

En alguna ocasión intenté agregarle un superíndice a una palabra, como decir,
kilómetros cuadrados, pero no funcionó de la manera normal, así que encontré esta solución:
metros (kg/m\textsuperscript{2})




viernes, 24 de octubre de 2014

Sistema de control Takagi-Sugeno en C

/*
 * Autor: A. L. I. Fernando Merino
 * Nombre del archivo: sistemaTakgi.c
 * Descripción: Simula un sistema difuso, usando el método de Takgi-Sugeno
 * genera un archivo con los  puntos en pares (x,y) para graficar en gnuplot,
 * si desean graficar adicionalmente los puntos que estén utilizando generen
 * un archivo extra con los puntos y grafiquenlos, para comparar resultados
 * 24-octubre-2014*/

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <math.h>

/*define el total de comandos que se enviará a gnuplot*/
#define NUM_COMANDOS 5

void seleccionGaussiana();
double gaussiana(double c, double gama, double x);
double gaussDerecha(double c, double gama, double x);
double gaussIzquierda(double c, double gama, double x);
void graficarPuntosDesdeArchivo(char *cad, char *archivo, char *archivo1, char *archivo2);

int main(){
 printf("\n\tFunciones de Takgin-Sugeno\n");
 seleccionGaussiana();
    return 0;
}

void seleccionGaussiana(){
 FILE * puntGI = fopen("gaussIzquierda.txt", "w");
 FILE * puntGD = fopen("takagiSugeno.txt", "w");
 FILE * archivoPuntos = fopen("gaussiana.txt", "w");
 double x,cenGaus,anchoGaus,inicio, fin;
 double cenIzq,anchoIzq,cenDer,anchoDer;
 double ug=0,ugi=0,ugd=0,y1=0,y2=0,y3=0,y;
 /*datos que se pueden configurar:
  * muestreo [0,20]
  * las variables a y b se pueden leer desde teclado, a tiene que ser menor a b
  * opcionalmente también se puede especificar el perido de muestreo*/
 printf("Ingrese los siguientes datos:\n");
 printf("Inicio de la muestra: ");
 scanf("%lf",&inicio);
 printf("Fin de la muestra: ");
 scanf("%lf",&fin);
 printf("\nConfigure la Gaussiana Izquierda:");
 printf("\nIngresa el centro: ");
 scanf("%lf",&cenIzq);
 printf("Ingresa ancho a los lados del centro: ");
 scanf("%lf",&anchoIzq);
 
 printf("\nConfigure la Gaussiana central:");
 printf("\nIngresa el centro: ");
 scanf("%lf",&cenGaus);
 printf("Ingresa ancho a los lados del centro: ");
 scanf("%lf",&anchoGaus);
 
 printf("\nConfigure la Gaussiana derecha:");
 printf("\nIngresa el centro: ");
 scanf("%lf",&cenDer);
 printf("Ingresa ancho a los lados del centro: ");
 scanf("%lf",&anchoDer);
 
 for(x=inicio;x<=fin;x+=0.01){
  /*obtiene el valor de las membresías de cada valor de x*/
  ugi = gaussIzquierda(cenIzq,anchoIzq,x);
  ug = gaussiana(cenGaus,anchoGaus,x);
  ugd = gaussDerecha(cenDer,anchoDer,x);
  /*obtiene las y*/
  y1=0.214285714*x+2.642857143;
  y2=-0.416666667*x+0.75;
  y3=0.342857143*x-1.528571429;
  /*se susitituye en la fórmula final*/
  y=((ugi*y1)+(ug*y2)+(ugd*y3))/(ugi+ug+ugd);
  /*se guarda en un arhivo de texto con los puntos (x,y)*/
  fprintf(puntGD, "%lf %lf \n", x, y);
 }
 fclose(archivoPuntos);
 fclose(puntGD);
 fclose(puntGI);
 graficarPuntosDesdeArchivo("set title \"Graficando funciones\"",
        "plot \"takagiSugeno.txt\" using 1:2 with lines",
        "replot \"puntosAnalizar.txt\" using 1:2 with lines",
        "replot \"gaussIzquierda.txt\" using 1:2 with lines");
}

/*funciones finales de membresia*/
double gaussiana(double c, double gama, double x){
 double ux = 0, expo=0;
 expo = pow((x-c)/gama,2);
 ux = pow(2.7182818284,-0.5*expo);
 return ux;
}

double gaussIzquierda(double c, double gama, double x){
 double ux = 0, expo=0;
 expo = pow((x-c)/gama,2);
 ux = pow(2.7182818284,-0.5*expo);
 if(x<=c){
  ux=1;
 }
 return ux;
}

double gaussDerecha(double c, double gama, double x){
 double ux = 0, expo=0;
 expo = pow((x-c)/gama,2);
 ux = pow(2.7182818284,-0.5*expo);
 if(x&gtc){
  ux=1;
 }
 return ux;
}

void graficarPuntosDesdeArchivo(char *cad, char *archivo, char *archivo1, char *archivo2){
 int i;
 /*lista de comandos para ejecutar y configurar la visualización que tendrán
     * los puntos en la gráfica con gnuplot*/
    char * configGnuplot[] = {cad, 
                                "set ylabel \"----grado de membresía---&gt\"",
                                "set xlabel \"----Universo X---&gt\"",
                                archivo,
                                archivo1,
                                archivo2
                               };
    /*Se crea una archivo de tipo popen, es una tebería IPC que se usa, para
     * ejecutar gnuplot y enviarle el archivo a graficar*/
    //FILE * ventanaGnuplot = popen("gnuplot -persist", "w");
    FILE * ventanaGnuplot = popen("gnuplot -persist", "w");
    // Executing gnuplot commands one by one
    for (i=0;i<NUM_COMANDOS;i+ +){
  fprintf(ventanaGnuplot, "%s \n", configGnuplot[i]);
 }
}

martes, 21 de octubre de 2014

Insertar código de programas en Latex

Para insertar código en sus documentos latex, el documento debe de estar estructurado más o menos de la siguiente manera:

En este ejemplo todo el código y el cuerpo del documento está en el archivo principal, si ustedes lo desean lo pueden separar.

%https://www.sharelatex.com/learn/Code_listing
\documentclass{article}
\usepackage[utf8]{inputenc}
 
\usepackage{listings}
\usepackage{color}
 
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.9,0.5,0.0}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}

\definecolor{mygreen}{rgb}{0,0.6,0}
\definecolor{mygray}{rgb}{0.5,0.5,0.5}
\definecolor{mymauve}{rgb}{0.58,0,0.82}

\lstset{ %
  backgroundcolor=\color{white},   % choose the background color; you must add \usepackage{color} or \usepackage{xcolor}
  basicstyle=\footnotesize,        % the size of the fonts that are used for the code
  breakatwhitespace=false,         % sets if automatic breaks should only happen at whitespace
  breaklines=true,                 % sets automatic line breaking
  captionpos=b,                    % sets the caption-position to bottom
  commentstyle=\color{red},    % comment style
  deletekeywords={...},            % if you want to delete keywords from the given language
  escapeinside={\%*}{*)},          % if you want to add LaTeX within your code
  extendedchars=true,              % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8
  frame=single,                    % adds a frame around the code
  keepspaces=true,                 % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
  keywordstyle=\color{green},       % keyword style
  language=C,                 % the language of the code
  morekeywords={*,...},            % if you want to add more keywords to the set
  numbers=left,                    % where to put the line-numbers; possible values are (none, left, right)
  numbersep=5pt,                   % how far the line-numbers are from the code
  numberstyle=\tiny\color{mygray}, % the style that is used for the line-numbers
  rulecolor=\color{black},         % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here))
  showspaces=false,                % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
  showstringspaces=false,          % underline spaces within strings only
  showtabs=false,                  % show tabs within strings adding particular underscores
  stepnumber=1,                    % the step between two line-numbers. If it's 1, each line will be numbered
  stringstyle=\color{mymauve},     % string literal style
  tabsize=2,                       % sets default tabsize to 2 spaces
  title=\lstname                   % show the filename of files included with \lstinputlisting; also try caption instead of title
}

\lstdefinestyle{mystyle}{
    backgroundcolor=\color{backcolour},
    commentstyle=\color{red},
    keywordstyle=\color{blue},
    numberstyle=\tiny\color{codegray},
    stringstyle=\color{codepurple},
    basicstyle=\footnotesize,
    breakatwhitespace=false,
    breaklines=true,
    captionpos=b,
    keepspaces=true,
    numbers=left,
    numbersep=10pt,
    showspaces=false,
    showstringspaces=false,
    showtabs=false,
    tabsize=2
}

\lstdefinestyle{customc}{
  belowcaptionskip=1\baselineskip,
  breaklines=true,
  frame=L,
  xleftmargin=\parindent,
  language=C,
  showstringspaces=false,
  basicstyle=\footnotesize\ttfamily,
  keywordstyle=\bfseries\color{green!40!black},
  commentstyle=\itshape\color{purple!40!black},
  identifierstyle=\color{black},
  stringstyle=\color{orange},
}

\lstdefinestyle{customasm}{
  belowcaptionskip=1\baselineskip,
  frame=L,
  xleftmargin=\parindent,
  language=[x86masm]Assembler,
  basicstyle=\footnotesize\ttfamily,
  commentstyle=\itshape\color{purple!40!black},
}

\lstset{escapechar=@,style=customc}
\lstset{style=mystyle}
\lstset{literate=
  {á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
  {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
  {à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
  {À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
  {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
  {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
  {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
  {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
  {œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
  {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
  {€}{{\EUR}}1 {£}{{\pounds}}1
}

\begin{document}
Aquí se muestra un ejemplo en lenguaje Python, junto con su etiqueta que llevará el código.
\begin{lstlisting}[language=Python, caption=Código de ejemplo en Python]
import numpy as np
 
def incmatrix(genl1,genl2):
    m = len(genl1)
    n = len(genl2)
    M = None #to become the incidence matrix
    VT = np.zeros((n*m,1), int)  #dummy variable
 
    #compute the bitwise xor matrix
    M1 = bitxormatrix(genl1)
    M2 = np.triu(bitxormatrix(genl2),1) 
 
    for i in range(m-1):
        for j in range(i+1, m):
            [r,c] = np.where(M2 == M1[i,j])
            for k in range(len(r)):
                VT[(i)*n + r[k]] = 1;
                VT[(i)*n + c[k]] = 1;
                VT[(j)*n + r[k]] = 1;
                VT[(j)*n + c[k]] = 1;
 
                if M is None:
                    M = np.copy(VT)
                else:
                    M = np.concatenate((M, VT), 1)
 
                VT = np.zeros((n*m,1), int)
 
    return M
\end{lstlisting}

Un ejemplo de código en C
\begin{lstlisting}[language=C, caption=Gauss-Jordan en C]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <ncurses.h>

/*Declaración de procedimientos y funciones*/
void gausJordan(float **matriz,int n,float *raices);
void imprimirMatriz(float *raices,int n);
void leerValores(float **matriz,int n);

/*Función principal*/
int main(){
 int n;
 float **matriz,*raices;
 printf("Ingrese el número de ecuaciones (n): ");
 scanf("%d",&n);
 getchar();
 matriz=(float**) malloc (sizeof (float*)*n);
 raices=(float*) malloc (sizeof (float*)*n);
 leerValores(matriz,n);
 gausJordan(matriz,n,raices);
 printf("Solución \n\n");
 imprimirMatriz(raices,n);
 getchar();
 return 0;
}
/*Procedimiento para mostrar en pantalla los elementos de la matriz*/
void imprimirMatriz(float *raices,int n){
 int i;
 for(i=0;i<n;i++){
  /*algún otro código aquí*/
 }
}

/*Procedimiento que realiza el proceso de Gauss-Jordan*/
void gausJordan(float **matriz,int n,float *raices){
 int i,j,k;
 float termino;
 for(i=0;i<n;i++){
  /*tu código aquí*/
 }
}
\end{lstlisting}

\end{document}

lunes, 20 de octubre de 2014

Agregar referencias, glosario y acronimos en archivos Latex

Recientemente me fue necesario usar latex para iniciar mi tesis de licenciatura. Para los que no estén familiarizados, latex de acuerdo con wikipedia "es un sistema de composición de textos, orientado a la creación de documentos escritos que presenten una alta calidad tipográfica. Por sus características y posibilidades, es usado de forma especialmente intensa en la generación de artículos y libros científicos que incluyen, entre otros elementos, expresiones matemáticas."
El problema que se me presentó, no sabía cómo compilar mi archivo principal para poder incluir las referencias, el glosario y los acrónimos en el texto.
Busqué por mucho tiempo información en la web, pero sin resultados satisfactorios, finalmente encontré un ejemplo bastante práctico, así que ahora os presento una solución más acertada de lo que estaba buscando en ese entonces.
Modifiqué dicho ejemplo para que aceptara el español, y estos son los pasos a seguir:

En el ejemplo, el editor que usé se llama "Texmaker" desconozco si las funciones con el que este editor cuenta, también la tengan otros editores, he usado también el editor kile, texstudio, lyz, gummi, texworks, y funcionan muy bien. Todos los editores antes mencionados son gratuitos, de modo que los pueden descargar y utilizar libremente:
Aquí también hago uso de la línea de comandos, de tal modo que es necesario usar linux, o al menos que tengan en windows (para usuarios de windows) un emulador de una terminal.

archivo principal:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\makeatletter
\usepackage{times}
\usepackage{setspace}
\usepackage{anysize} 
\usepackage{bm}
\usepackage[spanish]{babel}
\usepackage{multirow}
\usepackage{ae}
\usepackage{url}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{color}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{latexsym}
\usepackage{epsfig}
\usepackage{multirow}
\usepackage{cite}
\usepackage{apacite}
\usepackage{fancyhdr}
\usepackage{appendix}

\usepackage[acronym]{glossaries}
\makeglossaries
\glossarystyle{altlistgroup} 
\include{glosarioacronimos}
\renewcommand{\glossaryname}{Glosario}
\renewcommand{\acronymname}{Acrónimos}

\begin{document}

\title{Cómo crear glosario con lista de acrónimos}
\author{Merino Merino Jesús Fernando}
\date{\today}
\maketitle
%se incluye un archivo en donde estará el cuerpo del texto, así como
%las referencia hacía los acrónimos
\include{temaX}
 
%Print the glossary
%\printacronyms % not working
\printglossary[type=\acronymtype]
%\printnoidxglossary[type=\acronymtype]
Texto entre la lista de acrónimos y el glosario

%\printglossaries
%\printglossary
\printglossary[title=Glosario,toctitle=Glosario]

\addcontentsline{toc}{section}{Glosario}
\addcontentsline{toc}{section}{Acrónimos}
\bibliographystyle{apacite}
\bibliography{bibliografia}

\end{document}


archivo de referencias llamado bibliografia
@ARTICLE{Alfonso2010a,
 author = {M. Alfonso and B. Bernardo and C. Carlos and D. Domingo},
 title = {El problema de los gatos y los perros},
 journal = {Mascotas},
 year = {2010},
 volume = {50},
 pages = {112-115}
}
@ARTICLE{Alfonso2010b,
 author = {M. Alfonso and M. Marta and N. Nuria},
 title = {Mi viaje a {EEUU}},
 journal = {Revista de viajes},
 year = {2010},
 volume = {14},
 pages = {50-56}
}
@ARTICLE{Patricio2011,
 author = {A. Patricio},
 title = {Una estrella rosa en el fondo del mar},
 journal = {El mar},
 year = {2011},
 volume = {3},
 pages = {1071-1090}
}
@ARTICLE{Zacarias2009,
 author = {R. Zacarias and G. Graciela},
 title = {?`{C}u\'al te gusta m\'as?},
 journal = {Flores},
 year = {2009},
 volume = {5},
 pages = {45-49}
}
@BOOK{Coulouris,
    author  =   {Coulouris, G., and Dollimore, J., and Kindberg, T.},
    title   =   {Sistemas Distribuidos. Conceptos y dise\~no},
    publisher=  {Pearson Educaci\'on, S. A.},
    address =   {Madrid},
    year    =   {2001},
    edition = {3},
}

@ARTICLE{Oms1,
 author = {Centro de prensa},
 title = {Obesidad y sobrepeso},
 journal = {Organizaci\'on Mundial de la Salud},
 year = {2012},
 volume = {311},
 pages = {1-2}
}
@misc{oms2,
   author = {OMS},
   title  = {Obesidad y sobrepeso},
   year   = {2014},
   url    = {http://www.who.int/mediacentre/factsheets/fs311/es/},
   note   = {[Accesado 5-Octubre-2014]}
}
@misc{wiki:xxx,
 author = {Wikipedia},
 title = {Redefinición de planeta de 2006 --- Wikipedia{,} La enciclopedia libre},
 year = {2010},
 url = {http://es.wikipedia.org/w/index.php?title=Redefinici%C3%B3n_de_planeta_de_2006&oldid=32754396},
 note = {[Internet; descargado 2-febrero-2010]}
}
@misc{wiki:xx1,
 author = {Wikipedia},
 title = {Redefinición de planeta de 2006 --- Wikipedia{,} La enciclopedia libre},
 year = {2010},
 url = \url{http://es.wikipedia.org/w/index.php?title=Redefinici%C3%B3n_de_planeta_de_2006&oldid=32754396},
 note = {[Internet; descargado 2-febrero-2010]}
}
@misc{sololapiz,
   author = {Jason Brubaker},
   title  = {Inking a Graphic Novel?},
   year   = {2010},
   howpublished    = {\url{http://www.remindblog.com/2010/02/18/inking-graphic-novel/}},
   note   = {[Accesado 9-Feb-2012]}
}
@misc{webpage1,
   author = {Jason Brubaker},
   title  = {Inking a Graphic Novel?},
   year   = {2010},
   url    = {http://www.remindblog.com/2010/02/18/inking-graphic-novel/},
   note   = {[Accesado 9-Feb-2012]}
}
@ARTICLE{CENETEC,
 author = {CENETEC},
 title = {Prevenci\'on y diagn\'ostico de sobrepeso y obesidad en ni\~nos y adolescentes en el primer nivel de atenci\'on},
 journal = {CENETEC},
 year = {2012},
 pages = {1-2}
}

archivo con nombre: glosarioacronimos.bib
 
%Definición de términos
\newglossaryentry{prevalencia}{
    name=prevalencia,
    description={En epidemiología, proporción de personas que sufren una enfermedad con respecto al total de la población en estudio}
}
\newglossaryentry{maths}{
    name=mathematics,
    description={Mathematics is what mathematicians do}
}

%Definición de acrónimos
\newacronym{oms}{OMS}{Organización Mundial de la Salud}
\newacronym{cenetec}{CENETEC}{Centro Nacional de Excelencia Tecnológica en Salud}
\newacronym{imss}{IMSS}{Instituto Mexicano del Seguro Social}
\newacronym{issste}{ISSSTE}{Instituto de Seguridad y Servicios Sociales de los Trabajados del Estado}
\newacronym{sedesol}{SEDESOL}{Secretaría de Desarrollo Social}
\newacronym{dof}{DOF}{Diario Oficial de la Federación}
\newacronym{imc}{IMC}{Índice de Masa Corporal}
\newacronym{ensanut}{ENSANUT}{Encuesta Nacional de Salud y Nutrición}

archivo de tema incluido llamado temaX.tex
\section{Sección de referencias}
Una referencia se considera al fuente de donde se obtiene información acerca de algo, por ejemplo, podemos citar libros de la siguiente manera, decir, de acuerdo con \cite{Alfonso2010a} la manera de citar correctamente es de este modo. 
Las referencias que se mencionen directamente en el texto, son las únicas que aparecen en la sección de bibliografía o referencias. Si se tiene un archivo en donde están todas las entradas bibliográficas, pero si no se hacen referencias directas a ellas, no apareceran en el texto al momento de compilar.

En lo personal, prefiero compilar primero las referencias y después el glosario y los acrónimos, para evitar problemas de referenciados dentro del texto.
La compilación de citas se realiza de la siguiente manera:
\begin{enumerate}
\item Ir a la compilación del archivo principal, seleccionar "BibTex", clic en compilar.
\item Ir de nuevo a la compilación del archivo, seleccionar "Compilación rápida" luego clic en compilar.
\item Realizar los pasos 1 y 2 hasta que en el archivo en la parte final muestre correctamente las referencias.
\end{enumerate}

La compilación de referencias se tiene que realizar cada vez que se agreguen nuevas referencias, si por alguna razón ustedes agregan o modifican datos bibliográficos de una referencia, entonces es necesario volver a compilar el archivo con los pasos anteriores, para que la información de referencias se actualice.

\textbf{Un tip: cuando se considere necesario incluir referencias bibliográficas al final del texto, pero sin hacer mención de dichas citas dentro del texto, realizan lo siguiente, en alguna parte del texto, citen los autores que deseen, luego compilen conforme a los pasos anteriores, después eliminen las citas que previamente había incluido, es decir, las citas que ustedes no mencionan directamente en el texto, pero que sí las quieren agregar en su base de referencias, ahora vuelvan a compilar pero de manera normal, es decir, directamente en "Compilación rápida" sin usar el modo " Bitex, de esa manera se compilan las referencias pero no se hacen mención dentro del texto, al mismo tiempo es incluido dentro de las citas referenciadas al final del documento"}

Ejemplo:
\cite{Alfonso2010a, Alfonso2010b, Patricio2011, Zacarias2009, Coulouris, Jesus, Boria, Castillos, Deitel1, Tanenbaum, Norman, Bernstein, Simel, Oms1, oms2, wiki:xxx, wiki:xx1, sololapiz, webpage1, CENETEC, DOF, MartinK, Majem, Casademunt, Casanova, Barranco, Bonada, Lagua}

\section{Sección con entradas del glosario}
Indicar que una palabra está dada en el glosario, es necesario  declarar ahí previamente, es decir, no se puede hacer referencia a una palabra en el glosario que no se haya dado de alta previamente en el archivo del glosario, lo mismo ocurre con los acrónimos.
La compilación de los glosario y acrónimos usando Texmaker se realiza de la siguiente manera:
\begin{enumerate}
\item Ir al menú herramientas
\item Seleccionar la opción "Abrir línea de comandos"
\item Una vez que se abre la consola escribir lo siguiente

 \begin{enumerate}
 \item pdflatex aquiNombreArchivoPrincipal
 \item makeglossaries aquiNombreArchivoPrincipal
 \item pdflatex aquiNombreArchivoPrincipal
 \end{enumerate}
\end{enumerate}

Después de hacer eso, cierre la consola, y compile el archivo usando la opción "Compilación rápida".

La \Gls{prevalencia} en personas con obesidad y sobrepeso es aterradora. La \glspl{prevalencia} es mínima comparada con la del año anterior.
\section{Sección con acrónimos}
En México instituciones como: La \acrfull{sedesol}, El \acrfull{imss}, El \acrfull{issste}, La Secretaría de Salud, así como el Gobierno Federal, han puesto en marcha diferentes programas para combatir los problemas de obesidad y sobrepeso. Los programas propuestos por estas instituciones básicamente recomiendan dietas, ejercicios físicos, y algunos consejos para mantener el peso en un nivel saludable para la salud.


para compilar los archivos de referencias usar la opción de bibtex varias veces y luego usar la opción compilación rápida

Para compilar los glosarios y acrónimos
hacer lo siguiente desde consola:
pdflatex nombredelarchivoprincipal
makeglossaries aquiNombreArchivoPrincipal
pdflatex nombredelarchivoprincipal

luego compilar en modo compilación rápida y listo