PÁGINAS DE INTERÉS


Microsoft Office Online



Microsoft Office posee una versión en linea que puedes usar de forma gratuita. Office Online tiene a disposición de los usuarios, Word, Excel, PowerPoint, OneNote, y Outlook disponibles desde la web y completamente integrados con OneDrive para almacenar, editar, y compartir todos tus documentos en linea.

StackEdit


StackEdit es el editor de Markdown perfecto para quien prefiere escribirlo todo desde el navegador, y puedes olvidarte de cualquier temor a perder texto escrito porque se sincroniza en tiempo real y todo se salva en la nube. Además es completamente personalizable y puedes ajustar su apariencia a tu gusto. Está pensado en espacial para quienes escribimos en la web, y se integra con varias plataformas de contenidos como WordPress, Blogger, Tumblr, y hasta GitHub.

Spotify


Aplicación que permite escuchar música sin necesidad de descargar un cliente.
Spoty no solo tiene aplicación web, también muchos otros servicios con Pandora, Rdio, Google Play Music, etc. Pero al menos en mi opinión es la mejor de todas.

Todoist



Todoist tiene aplicaciones para cualquier plataforma que se te ocurra, también puedes usarla desde la web y nunca instalar nada. De hecho puedes integrarla completamente en tu navegador para añadir tareas mientras navegas.
Si buscas una aplicación que te ayude a organizarte, esta es una de las mejores opciones

Netflix



Netflix es otra aplicación web, pues solo necesitas abrir tu navegador para disfrutar de miles de películas y programas de televisión en streaming desde la comodidad de dónde sea que están conectando tu PC.

ACTIVIDAD OPCIONAL - PARIDAD

CALCULO DE PARIDAD


Esta actividad consiste en el desarrollo de una pequeña aplicación ejecutable que rellena una matriz de 4*5 simulando el envío de una transmisión de datos. El programa rellena la matriz de forma automática y calcula la paridad. Permite la modificación de un bit que permite la introducción de un fallo de forma manual, el programa puede detectar ese fallo y corregir la matriz en consecuencia.

El programa cuenta de tres clases como se puede ver a continuación:


La clase ejecutar se compone únicamente del método main que llamará a nuestro menú, que estará en la clase MenuDeOpciones y que sera la que lleve todo el programa a cabo.

public class Ejecutar {

 public static void main(String[] args) {
  MenuDeOpciones m = new MenuDeOpciones();
  m.menu();
 }
}



La clase ventana sera la encargada de crearnos la ventana sobre la que luego vamos a escribir y mostrar todo el programa.

public class Ventana extends JFrame implements ActionListener {

 /**
  * 
  */
 private static final long serialVersionUID = 1L;
 public int i = 0;
 public JTextArea a = new JTextArea();
 public JTextField b = new JTextField();

 public Ventana() {
  setBounds(0, 0, 500, 625);
  setResizable(false);
  setLayout(null);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  a.setBounds(0, 0, 500, 500);
  a.setEditable(false);
  add(a);

  b.setBounds(0, 525, 200, 30);

  add(b);
  b.addActionListener(this);
 }

 public void escribir(String texto) {
  a.append(texto);
 }

 public void setTexto() {
  a.setText("");
 }

 @Override
 public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
  i = Integer.parseInt(b.getText());
  b.setText("");
 }

 public int getI() {
  return i;
 }

 public void setI() {
  i = 0;
 }
}

La clase más importante de este proyecto es MenuDeOpciones donde se realizan los cálculos necesarios para la ejecución del programa en todas sus opciones.

public class MenuDeOpciones {

 private int[][] matriz;

 private Random azar;
 private int[][] matriz2 = new int[6][5];
 private int paridad = 0;
 private int[][] matriz3 = new int[6][5];
 private Ventana v = new Ventana();
 private int opcion;

 public MenuDeOpciones() {
  matriz = new int[5][4];

  azar = new Random();
  v.setVisible(true);
 }

 public void menu() {
  v.escribir("MENU DE OPCIONES\n");
  v.escribir("-----------------\n");
  v.escribir("1.RELLENAR MATRIZ\n");
  v.escribir("2.GENERAR 20 + 10 BITS\n");
  v.escribir("3.MODIFICAR UN BIT\n");
  v.escribir("4.COMPROBAR\n");
  v.escribir("5.CORREGIR/MOSTRAR MATRIZ ORIGINAL\n");
  v.escribir("6.MOSTRAR BITS EN MATRIZ\n");
  v.escribir("7.SALIR\n");

  while (opcion != 7) {
   opcion = v.getI();
   try {

    Thread.sleep(100);
   } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   if (funcionamiento() == true) {
    switch (opcion) {
    case 1:
     rellenarMatriz();
     break;
    case 2:
     generar();
     break;
    case 3:
     modificar();
     break;
    case 4:
     comprobar();
     break;
    case 5:
     corregir();
     break;
    case 6:
     mostrar(matriz);
     break;
    case 7:
     salir();
    default:
     v.escribir("");
    }
    v.setI();
    v.escribir("MENU DE OPCIONES\n");
    v.escribir("-----------------\n");
    v.escribir("1.RELLENAR MATRIZ\n");
    v.escribir("2.GENERAR 20 + 10 BITS\n");
    v.escribir("3.MODIFICAR UN BIT\n");
    v.escribir("4.COMPROBAR\n");
    v.escribir("5.CORREGIR/MOSTRAR MATRIZ ORIGINAL\n");
    v.escribir("6.MOSTRAR BITS EN MATRIZ\n");
    v.escribir("7.SALIR\n");
    opcion = v.getI();
   }

  }
 }

 private void salir() {
  v.setTexto();
  try {
   v.escribir("PROCESO TERMINADO");
   Thread.sleep(2000);
  } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

  System.exit(0);

 }

 private void mostrar(int[][] t) {
  v.setTexto();

  for (int i = 0; i <= t.length - 1; i++) {
   for (int j = 0; j <= t[0].length - 1; j++) {
    v.escribir(t[i][j] + "\t");
   }
   v.escribir("\n");
  }
  v.setI();
  v.escribir("\n");
 }

 private void corregir() {
  if (paridad == 0) {
   paridadPar();
  } else {
   paridadImpar();
  }
  mostrar(matriz2);
 }

 private void comprobar() {

  // PARIDAD PAR

  if (paridad == 0) {
   int conta = 0;
   for (int i = 0; i < matriz.length; i++) {
    for (int j = 0; j < matriz[0].length; j++) {
     matriz3[i][j] = matriz[i][j];
    }
   }
   for (int i = 0; i < matriz.length; i++) {

    for (int j = 0; j < matriz[0].length; j++) {
     if (matriz[i][j] == 1) {
      conta++;
     }
    }
    if (conta % 2 == 0) {
     matriz3[i][4] = 0;
     conta = 0;
    } else {
     matriz3[i][4] = 1;
     conta = 0;
    }

   }

   for (int i = 0; i < matriz.length - 1; i++) {

    for (int j = 0; j < matriz.length; j++) {
     if (matriz[j][i] == 1) {
      conta++;
     }
    }
    if (conta % 2 == 0) {
     matriz3[5][i] = 0;
     conta = 0;
    } else {
     matriz3[5][i] = 1;
     conta = 0;
    }

   }
   for (int i = 0; i <= matriz3.length - 1; i++) {
    for (int j = 0; j <= matriz3[0].length - 1; j++) {
     if (matriz3[i][j] == matriz2[i][j]) {
      conta++;
     }

    }
   }
   if (conta == 30) {

    v.escribir("COMPROBACION CORRECTA\n");
   } else {
    v.escribir("COMPROBACION ERRONEA\n");
   }

  }

  // PARIDAD IMPAR
  if (paridad == 1) {
   int conta = 0;
   for (int i = 0; i < matriz.length; i++) {
    for (int j = 0; j < matriz[0].length; j++) {
     matriz3[i][j] = matriz[i][j];
    }
   }
   for (int i = 0; i < matriz.length; i++) {

    for (int j = 0; j < matriz[0].length; j++) {
     if (matriz[i][j] == 1) {
      conta++;
     }
    }
    if (conta % 2 == 0) {
     matriz3[i][4] = 1;
     conta = 0;
    } else {
     matriz3[i][4] = 0;
     conta = 0;
    }

   }

   for (int i = 0; i < matriz.length - 1; i++) {

    for (int j = 0; j < matriz.length; j++) {
     if (matriz[j][i] == 1) {
      conta++;
     }
    }
    if (conta % 2 == 0) {
     matriz3[5][i] = 1;
     conta = 0;
    } else {
     matriz3[5][i] = 0;
     conta = 0;
    }

   }
   for (int i = 0; i <= matriz3.length - 1; i++) {
    for (int j = 0; j <= matriz3[0].length - 1; j++) {
     if (matriz3[i][j] == matriz2[i][j]) {
      conta++;
     }

    }
   }
   if (conta == 30) {

    v.escribir("COMPROBACION CORRECTA\n");
   } else {
    v.escribir("COMPROBACION ERRONEA\n");
   }
  }

 }

 private void modificar() {
  int f = 0;
  int c = 0;
  v.setTexto();
  v.escribir("INTRODUZCA LA FILA NUMERO A MODIFICAR\n");
  try {

   Thread.sleep(2000);
   f = v.getI();
  } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  v.escribir("INTRODUZCA LA COLUMNA NUMERO A MODIFICAR\n");
  try {

   Thread.sleep(2000);
   c = v.getI();
  } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  v.escribir("INTRODUZCA EL NUEVO VALOR\n");
  try {
   Thread.sleep(2000);
   matriz[f][c] = v.getI();

  } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }

 private void generar() {
  v.setTexto();
  v.escribir("0.PARIDAD PAR\n");
  v.escribir("1.PARIDAD IMPAR\n");

  while (opcion != 0 && opcion != 1) {
   opcion = v.getI();
   try {
    Thread.sleep(100);
   } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }

   switch (opcion) {
   case 0:
    paridadPar();
    break;
   case 1:
    paridadImpar();
    break;
   default:
    v.escribir("");
   }

  }

  v.setI();
  // v.setTexto();

 }

 private void paridadImpar() {
  int conta = 0;
  paridad = 1;
  for (int i = 0; i < matriz.length; i++) {
   for (int j = 0; j < matriz[0].length; j++) {
    matriz2[i][j] = matriz[i][j];
   }
  }
  for (int i = 0; i < matriz.length; i++) {

   for (int j = 0; j < matriz[0].length; j++) {
    if (matriz[i][j] == 1) {
     conta++;
    }
   }
   if (conta % 2 == 0) {
    matriz2[i][4] = 1;
    conta = 0;
   } else {
    matriz2[i][4] = 0;
    conta = 0;
   }

  }

  for (int i = 0; i < matriz.length - 1; i++) {

   for (int j = 0; j < matriz.length; j++) {
    if (matriz[j][i] == 1) {
     conta++;
    }
   }
   if (conta % 2 == 0) {
    matriz2[5][i] = 1;
    conta = 0;
   } else {
    matriz2[5][i] = 0;
    conta = 0;
   }

  }
  mostrar(matriz2);
  v.escribir("\n");
 }

 private void paridadPar() {
  paridad = 0;
  int conta = 0;
  for (int i = 0; i < matriz.length; i++) {
   for (int j = 0; j < matriz[0].length; j++) {
    matriz2[i][j] = matriz[i][j];
   }
  }
  for (int i = 0; i < matriz.length; i++) {

   for (int j = 0; j < matriz[0].length; j++) {
    if (matriz[i][j] == 1) {
     conta++;
    }
   }
   if (conta % 2 == 0) {
    matriz2[i][4] = 0;
    conta = 0;
   } else {
    matriz2[i][4] = 1;
    conta = 0;
   }

  }

  for (int i = 0; i < matriz.length - 1; i++) {

   for (int j = 0; j < matriz.length; j++) {
    if (matriz[j][i] == 1) {
     conta++;
    }
   }
   if (conta % 2 == 0) {
    matriz2[5][i] = 0;
    conta = 0;
   } else {
    matriz2[5][i] = 1;
    conta = 0;
   }

  }
  mostrar(matriz2);
  v.escribir("\n");
 }

 private void rellenarMatriz() {
  for (int i = 0; i < matriz.length; i++) {
   for (int j = 0; j < matriz[0].length; j++) {
    matriz[i][j] = azar.nextInt(2);
   }
  }
  v.setI();
  v.setTexto();

 }

 private boolean funcionamiento() {
  opcion = v.getI();
  if (opcion > 0 && opcion <= 7) {
   return true;
  }
  return false;
 }

}



Para descargar el ejecutable del programa y la carpeta del proyecto Pinche Aqui.

windows7

PRESENTACION WINDOWS 7


HACKERS

¿QUÉ SON LOS HACKERS?


"Hackers". Cuando muchos de nosotros escuchamos esta palabra nos viene a la mente un estereotipo de persona que debido a sus conociemientos en informática, seguridad de sistemas y telecomunicaciones entre otros, se dedica a actividades ilegales a través de internet.
Esta idea es errónea, pues un hacker por dedinición es :
Término para designar a alguien con talento, conocimiento, inteligencia e ingenuidad, especialmente relacionadas con las operaciones de computadora, redes, seguridad, etc.
Algunos de los hackers más famosos del mundo defienden que la idea de que un hacker es aquel que detecta algún tipo de fallo en la seguridad y lo intenta solucionar.

FUENTE: Youtube

Como el termino hacker puede hacer referencia a una gran comunidad de personas y no todas usan sus conocimientos para el bien colectivo, hay diversas clasificaciones. Os muestro una de ellas.

WHITE HAT HACKERS

Por denominación, estos son los considerados "buenos". Encargados de la seguridad informática.
Este grupo vulnera sistemas para estudiarlos y detectar posibles fallos en su seguridad.

GREY HAT HACKERS

Este grupo vulvera sistemas y accede a ellos para luego ofrecer sus servicios como administradores de seguridad y corregir esos fallos.

BLACK HAT HACKERS

Aquellas personas que realizan actividades en las que acceden a sistemas para extraer información y poder sacar un beneficio económico de ello. También son creadores de virus, malware o spyware.

FUENTE:  Youtube

LOS HACKERS MAS FAMOSOS DE LA HISTORIA


  • Kevin Mitnick: Conocido como "el Cóndor". El Departamento de Justicia de Estados Unidos lo calificó como “el criminal informático más buscado de la historia” de ese país.


  • Adrián Lamo: Conocido como "el hacker vagabundo". Su trabajo más famoso fue la inclusión de su nombre en la lista de expertos de New York Times y penetrar la red de Microsoft. 


  • Stephen Wozniak: Wozniak comenzó su carrera como hacker de sistemas telefónicos para realizar llamadas gratis; se dice que hasta llamó al Papa en los años 70.


  • Sven Jaschan: El creador del virus Sasser, quien fue detenido en mayo de 2004 tras una denuncia de sus vecinos que perseguían la recompensa incitada por la empresa Microsoft, ya que el virus afectaba directamente la estabilidad de Windows 2000, 2003 Server y Windows XP. En ese momento Sven Jaschan sólo tenía 17 años.


  • Michael Calce: El día de San Valentín de 2000, con apenas 15 años de edad, lanzó un ataque que afectó a eBay, Amazon y Yahoo!, tras lo cual fue condenado a uso limitado de Internet.


FUENTES


SISTEMAS OPERATIVOS


¿QUÉ SON LOS SISTEMAS OPERATIVOS?


Hoy en día casi todo hogar tiene por lo menos un ordenador que hasta los usuarios mas inexperimentados en informática sabe usar. Esto se debe a la implantación de sistemas operativos cuya interfaz de usuario es "amigable". Pero quizá más de uno se preguntará, ¿en qué consiste o qué es un sistema operativo?
Un sistema operativo es un software (conjunto de programas e instrucciones) que hace de intermediario entre el hardware y las aplicaciones que habitualmente usamos.
En pocas palabras, se asegura de que los programas y los usuarios funcionen al mismo tiempo pero sin interferir entre ellos.


FUENTE: Youtube

TIPOS DE SISTEMAS OPERATIVOS 


  • MS-DOS : El famoso MS-Dos desarrollado por Microsoft. Aun goza de cierta popularidad debido a la gran existencia de software disponible y a la base instalada en ordenadores con procesadores Intel.

  • WINDOWS: Uno de los gigantes por excelencia. Desde su primera version (Windows 3.1) hasta las más modernas (Windows 8, 8.1 y 10) han sido desarrolladas por Microsoft. Con este SO se implanta el modelo mas vistoso de ventanas creando una interfaz sencilla de manejar.

  • OS/2: Sistema desarrollado por IBM que cuenta con una interfaz intuitiva y fácil de aprender a manejar. Su uso no es muy extendido debido a la gran competencia que generó Windows.

  • MAC OS: Este sistema operativo fue desarrollado por Apple y todos sus ordenadores funcionan con él. Es un sistema muy bueno para la gestión de archivos y usarlos de manera eficaz.

  • UNIX: Creado por los laboratorios Bell en 1969. Es un SO multiusuario y multitarea lo que quiere decir que muchos usuarios pueden estar usando una misma computadora por medio de terminales o usar muchas de ellas.

  • LINUX: Tiene su origen en UNIX y es un SO completamente libre lo que permite al usuario copiar, cambiar o modificar su código.  Es el resultado de la contribución de un gran número de empresas o grupos de personas. Hay diversas distribuciones basadas en el componente central GNU/Linux.


LOS MAS USADOS

A finales de este año 2015 y tras consultar varios rankings, el uso de Windows en sus diferentes versiones para PC sigue liderando el mercado con una mayoría abrumadora sobre otros sistemas operativos como Mac o Linux.



Cabe destacar que dentro de las diferentes versiones de Windows, Windows XP ha decaído desde que el gigante informático dejara de dar soporte en el año 2014. En la actualidad Windows 7 lidera la lista.


Ahora bien, si nos preguntamos la satisfacción general de los usuarios con sus respectivos SO obtenemos la imagen siguiente:





Para cualquier consulta o duda, no duden en dejar sus comentarios.


Fuentes:

 

HISTORIA DE LA INFORMATICA

HECHOS IMPORTANTES DE INTERNET


SUPERCOMPUTADORAS

  

LOS ORDENADORES MAS POTENTES DEL MUNDO


Las supercomputadoras son el tipo de ordenador más potente que existe. Se les denomina asi por la gran cantidad de operaciones por segundo que son capaces de realizar. Para haceros una idea, el supercomputador mas potente actualmente (2015) es capaz de realizar 33.86 petaflops. Un petaflop es 1*10E15 cálculos por segundo.



 Todo este potente conjunto de hardware, ¿Para qué? ¿Cuál es su función? Son preguntas que se nos pueden venir a la cabeza cuando se habla de estos ordenadores. Algunas de sus funciones son las siguientes:
  • Predecir el clima. 

    • Estos ordenadores pueden calcular de antemano la formación de fenómenos meteorológicos como pueden ser tornados y huracanes y su evolución.
  •  Estudiar el universo.

    •  Gracias a simulaciones hechas por estas computadoras pueden estudiarse la formación de galaxias y el nacimiento de nuevas estrellas.
  •  Simulacion del cerebro humano.

    •  BlueGene es una supercomputadora de IBM encargada de reproducir mediante simulaciones las funciones de un cerebro humano.
  •  Funciones militares. 

    • Con estos modelos pueden testear sin ningún tipo de riesgo cualquier armamento nuclear y comprobar los datos de estas pruebas.
  •  Mecánica cuántica.

    •  Las supercomputadoras se utilizan en gran medida en el tratamiento de la información en la mecánica cuántica. Se utilizan para estudiar los sistemas físicos a nivel atómico.
  •  Grandes desafios.

    •  Los llamados problemas sin resolver son a menudo objetos de uso por supercomputadoras. Pueden ser desde problemas matemáticos a técnicas de plegamiento de proteínas.

Fuente: Youtube

  Desde 1993 existe un proyecto que determina cual es la supercomputadora más rapida del mundo. La última actualización de la lista se hizo en junio de 2015. Os dejo las diez primeras.

Fuente: Youtube

  1. Tianhe-2 (MilkyWay-2) - TH-IVB-FEP Cluster, Intel Xeon E5-2692 12C 2.200GHz, TH Express-2, Intel Xeon Phi 31S1P. País: China. PF/s: 33,86
  2. Titan - Cray XK7 , Opteron 6274 16C 2.200GHz, Cray Gemini interconnect, NVIDIA K20x. Propietario: Cray Inc. País: Estados Unidos. PF/s: 17,59
  3. Sequoia - BlueGene/Q, Power BQC 16C 1.60 GHz, Custom. Propietario: IBM País: Estados Unidos. PF/s: 17,17
  4. K computer, SPARC64 VIIIfx 2.0GHz, Tofu interconnect. Propietario: Fujitsu. País: Japón. PF/s: 10,51
  5. Mira - BlueGene/Q, Power BQC 16C 1.60GHz, Custom.  Propietario: IBM. País: Estados Unidos. PF/s: 8,58
  1. Piz Daint - Cray XC30, Xeon E5-2670 8C 2.600GHz, Aries interconnect , NVIDIA K20x . Propietario: Cray Inc. País: Estados Unidos. PF/s: 6,27
  2. Shaheen II - Cray XC40, Xeon E5-2698v3 16C 2.3GHz, Aries interconnect. Propietario: Cray Inc. País: Arabia Saudí. PF/s: 5,53
  3. Stampede - PowerEdge C8220, Xeon E5-2680 8C 2.700GHz, Infiniband FDR, Intel Xeon Phi SE10P .Propietario: Dell. País: Estados Unidos. PF/s: 5,16
  4. JUQUEEN - BlueGene/Q, Power BQC 16C 1.600GHz, Custom Interconnect. Propietario: IBM. País: Alemania. PF/s: 5
  5. Vulcan - BlueGene/Q, Power BQC 16C 1.600GHz, Custom Interconnect.
Propietario: IBM. País: Estados Unidos. PF/s: 4,29

FUENTES:
TOP500List
Wikipedia