Mejoras Kernel 13.3 Disponible

De la mano de Linux Spain, les muestro la traducción de las mejoras del kernel 13.3 que no son pocas, sin mas les dejo el copy paste.

Linus Torvalds publica el kernel 3.13, con soporte mejorado para SSD, implementación de nftables y más.

Linus publicó ayer la nueva versión del kernel que, a diferencia de otras versiones que implementaban mejoras graduales, incorpora bastantes novedades:

https://lkml.org/lkml/2014/1/19/148

Una de las cosas que se han incluido es un sistema “escalable de bloques para almacenamiento SSD de altas prestaciones”. Olvídate de la jerga: Esto significa, mientras que el acceso a discos duros tradicionales siempre ha sido lento, y el acceso a SSDs estaba lastrado por un sistema de acceso anticuado, ahora la velocidad de acceso a sistemas de almacenamiento SSD se multiplica por mil (o algo así), sin tener que modificar nada de las capas superiores del sistema operativo.

También se pre-jubila el venerable cortafuegos iptables, sustituyéndose por nftables. Nftables implementa una seudo-máquina virtual y un intérprete en el espacio de usuario que compila las reglas del firewall a bytecode. Este bytecode es luego pasado al kernel para su ejecución. De esta manera, no es necesario actualizar el kernel cada vez que aparecen nuevas coincidencias y características, sino que basta actualizar la utilidad del usuario, como si de cualquier otra aplicación se tratara.

Otras mejoras incluyen mejores en el soporte a tarjetas Radeon, un sistema para el control energético, soporte para la Arquitectura de Muchos Núcleos Integrados de Intel, soporte para las infraestructuras de pago por NFC y mucho más.

Más información y explicaciones en

http://kernelnewbies.org/Linux_3.13

[QT]Conexion SQLITE en QT 5 (2da Parte)

En la primera parte ya hemos visto como conectarnos a nuestra base de datos Sqlite, ahora debemos empezar a crear consultas, pues retomemos el codigo del proyecto anterior y añadamos un nuevo metodo a nuestro sql.h:

 

1
2
3
4
5
6
7
8
9
10
11
12
#ifndef SQL_H
#define SQL_H
#include <QtSql>
class sql
{
public:
   sql();
   bool conectar();
   void consulta();
   QSqlDatabase db;
};
#endif // SQL_H

Luego definiremos el método en nuestro sql.cpp así:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
.......
void sql::consulta()
{
   this->conectar();
   if(db.isOpen())
  {
     QSqlQuery qry;
     qry.exec("CREATE TABLE IF NOT EXISTS admins (id integer primary key autoincrement, user text, passwd varchar[8])"); // Crea Tabla ADMINS solo si no existe.
     QString stmt; //Statement
     QTextStream txtstr(&stmt);
     txtstr << "INSERT INTO admins (user, passwd) values (\"" << "admin" << ", " << "12345" <<"\")";
     if(qry.exec(stmt))
        return true;
     txtstr << "SELECT * FROM admins;
     if(qry.exec(stmt))
     {
         while(qry.next())
           {
           qDebug() << "id:" << qry.value(0).toString();
           qDebug() << "user: " << qry.value(1).toString();
           qDebug() << "paswd: " << qry.value(2).toString();
           }
}

db.close(); }

Si todo salio bien esto debería imprimir:

1
2
3
id: 1
user: admin
passwd: 12345

[QT]Conexion SQLITE en QT 5 (1Era Parte)

Conectar una base de datos SQLITE3 en Qt5 a veces puede ser un poco complicado pero si recordamos a las bases de programación, no es mas que un juego de niños. Pues bien comencemos:

Necesitaremos crear nuestro archivo sqlite.h que contendrá nuestra clase, contendrá esto:

1
2
3
4
5
6
7
8
9
10
11
#ifndef SQL_H
#define SQL_H
#include <QtSql>
class sql
{
public:
    sql();
    bool conectar();
    QSqlDatabase db;
};
#endif // SQL_H

Y nuestro archivo sql.cpp asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "sql.h"
#include 
#include 
#include 
#include 
#include 
sql::sql()
{
}
bool sql::conectar()
{
    if(QSqlDatabase::isDriverAvailable("QSQLITE")) //Verificamos que el driver QSQLITE este instalado.
    {
        db = QSqlDatabase::addDatabase("QSQLITE"); //Definimos que se usara SQLITE como driver
        db.setDatabaseName(QDir::homePath()+QDir::separator()+"data2.sqlite"); //Nuestra db en nuestro Home.
        bool db_ok = db.open(); //Creamos una bandera para ver si se puedo abrir la DB
        return db_ok;  //Retornamos true al metodo.
    }
    else
        qDebug() << "Driver no Disponible";
        return false;
}

Debemos añadir al archivo “.pro” de nuestro proyecto “sql” en el apartado:

1
QT += core gui

y dejarlo asi:

1
QT += core gui sql

De esta manera le decimos al proyeccto que usaremos las bibliotecas SQL de QT.

Con esto culminamos la conexión, en el siguiente apartado les dejare como realizar consultas a la DB a traves de QSqlQuery.

Tiny Core,Linux en su Minima Expresion.

Habíamos hablado anteriormente de Kolibri OS un sistema operativo desarrollado integramente en lenguaje ensamblador para maquinas con muy bajos recursos, pues ahora volvemos al mundo GNU/Linux con Tiny Core Linux.

Tiny core linux es una distribución GNU/Linux para maquinas con bajos recursos que nos permite revivir esas pentium 1 o intel 586/486 que tenemos abandonadas en el deposito como un recuerdo, pues este necesita solo e 14 MB de disco duro y 64 MB de ram para la ejecución de un entorno de escritorio completo. El proyecto es liderado por Robert Shingledecker y la comunidad, ademas de existir múltiples distribuciones basados en este, cada una ofreciendo diferentes entornos minimalistas-. Sin mas Les dejo algunas capturas:

Panel de Control

Panel de Control

Tiny Core Juego Instalado

Tiny Core Juego Instalado

Tiny Core Pantalla Principal

Tiny Core Pantalla Principal

 Descarga Tiny Core Linux

descarga

OpenBSD Fundation necesita tu ayuda.

puffy48

La OpenBSD fundation esta teniendo serios problemas financieros que pueden comprometer el futuro del proyecto. El principal gasto que los compromete es el de electricidad por el que necesitan aproximadamente 18.272 USD anuales, y aun obteniendo esta cantidad así no se asegura el futuro del proyecto, por eso han pedido la ayuda de la comunidad.

Open BSD da soporte a una docena de arquitecturas ademas de ser totalmente gratuito. Se encuentra entre unas de las opciones mas seguras y confiables para un servidor, esperemos que salgan adelante entre las dificultades.

[JAVA]Ejecutar JDialog desde Un JInternalFrame

java

tips

Me costo algo de trabajo encontrar como hacer esta pequeña maniobra de programación  así que la pasteo aquí para recordarlo yo , para hacerlo necesitaremos utilizar el método getFrameForComponent(), del objeto JOptionPane, bueno manos a la obra:

1
2
3
Frame f = JOptionPane.getFrameForComponent(this);
IngresarProductos dialog = new IngresarProductos(f, true);
dialog.show();

De esta forma nuestro JDialog se ejecutara como children de nuestro formPrincipal.

Saludos.

[PYQT] keyPressEvent en PyQT.

py2app-pyqt

En ocasiones queremos usar teclas de acceso rápido en nuestras aplicaciones en QT 4.7 se debe reescribir el método keyPressEvent(self, event), para conectar la señal de nuestro widget a los Slots correspondientes, les ejemplo en PyQt:

1
2
3
4
5
6
def keyPressEvent(self, event):
   key = event.key()
   if key == QtCore.Qt.Key_0:
      self.on_btn0_clicked()
 
 <a href="http://codigolibre.hol.es/2014/01/pyqt-keypressevent-en-pyqt/" class="more-link"><span class="btn btn-small">Continue reading</span></a>

Biblioteca Python

bostonpython-book-giveaway

Les anexo una pequeña biblioteca de libros acerca de Python que me he creado y la compartí hace tiempo en el foro de DesdeLinux para ir leyendo poco a poco y tener como referencia

Introducción:

  • Introducción a  Python :Arkaitz Ruiz y Pablo Orduña
  • Python para Todos: Raul Gonzales Duque
  • Tutorial Python 3: Guido Van Rossum
  • Introducción en Python 3: Mark Pilgrim traducido por Jose Miguel Gonzales Aguilera
  • Introducción a la Programacion en Python : Andrez Marzal , Isabel García
  • Python programming: An introduction to Computer Science

Interfaces Gráficas:

  • Python Card Interfaces: PyAr
  • Desarrollando Aplicaciones de Escritorio (PyQt): Daniel M. Maldonado
  • PyGtk 2.0 Jhon Finlay
  • Tkinter reference: a GUI for Python: Jhon W. Shipman
  • Tutorial python 2.5: Guido Van Rossum
  • WxPython in Action: Noel Rappin, Robin Dunn

DJango:

  • Django Book:Adrian Holovaty y Jacob Kaplan-Moss

Referencia:

  • Python Docs 2.5.2
  • MatPlobLib User Guide

Otros:

  • Numerical Python
  • SciPy Tutorial
  • Ejercicios de Programación: Algoritmos en Python
  • Y Muchos Códigos Mas.

descarga

Añadido:

Curso Django por Maestros del Web Version Pdf y Epub

descarga

Saludos.

Kolibri OS un SO realmente pequeño.

logo_600

Kolibri OS es un Sistema Operativo ligero que me ha dejado sorprendido por ser capas de ejecutarse desde un disquette de 1.4 MB, incluye varias aplicaciones por defecto, como navegador web, procesador de texto, editor gráfico, y mas de 30 juegos esta totalmente programado en lenguaje ensamblador por lo que su velocidad es sorprendente, ademas esta disponible totalmente en español y licenciado bajo GPL v2.

 Les anexo algunas imágenes corriendo en virtual box(50 mb de memoria le puse a la maquina virtual)

Colibri OS

Inicio del Sistema

Colibri OS2

Explorador de archivos.

Colibri OS3

Jugando un poco FreeCell

Barra Izquierda

Barra Izquierda

Ahora todo esta programado en Flat Assambler, segun wikipedia:

flat assembler (FASM) es un ensamblador libre, multi-paso, con el estilo de la sintaxis de Intel que soporta las arquitecturas IA-32 y x86-64.

Para que tengan una idea de la complejidad de rear un SO en ensamblador les dejo un ejemplo de un sencillo hola mundo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CODE SEGMENT
ASSUME CS:CODE, DS:CODE, SS:CODE, ES:CODE
ORG 100h
 
principio:
mov ah, 0Fh
mov ah, 0
int 10h
 
lea dx, mensaje_a_mostrar
mov ah, 9h
int 21h
 
int 20h
 
mensaje_a_mostrar db "¡Hola Mundo!$",0
 
CODE ENDS
end principio

 Pueden detallar la explicacion del código acá, ahora si nos vamos a mi querido python, eso se resumiría en una sencilla linea:

1
print "¡Hola Mundo!"

Pero Python esta por en un nivel mucho mas alto a nivel de sistema por lo que sus programas son mucho mas pesados, tienes varias capas de abstracción por encima, recordemos que la implementación standar de Python es CPython programada en lenguaje c, y este al mismo tiempo tiene los modulos principales en ASM, y el resto en el mismo lenguaje. Todo esta explicación solo para que entiendan la maravilla de software.

Por ultimo les dejo el link de descarga:

descarga

Saludos.

A casi 10 años del decreto 3390.

uso-software-libre-continua-avanzando-estado--L-1aBqW5

Las entidades publicas y escuelas venezolanas se encuentran en un periodo de cambio impulsado por el gobierno nacional en la cual se aplican medidas para incrementar el uso de la tecnología libre en las que podemos nombrar las “Canaimitas” como una de los intentos mas importantes de acercar la tecnología y el software libre a nuestro país, pero sin embargo existen múltiples factores que frenan el desarrollo de estas medidas.

Continue reading