Como instalar PIP en Windows

 

Muchas veces debemos ir a entornos Windows a compilar o a empaquetar aplicaciones para este entorno, o simplemente a veces no tenemos más que usar Windows por obligación, pues en esos casos traigo un tutorial de como instalar PIP en Windows.

  1. Primero debemos descargar

    http://python-distribute.org/distribute_setup.py

  2. Luego entramos en CMD y ejecutamos

    c:\Python27\python.exe c:\distribute_setup.py

  3. Luego instalamos PIP usando easy install así:

    c:\Python27\Scripts\easy_install.exe pip

     

Y listo ya tendremos instalado nuestro PIP, pero recuerda Tux espera tu pronto regreso ;).

Disponible Ubuntu 12.04.4

Ha salido a relucir la cuarta versión de Ubuntu LTS que fue concebida en abrir del 2012, como motivo de actualizaciones y parches de seguridad, también vienen actualizadas sus diferentes sabores que podemos descargar desde aquí:

 

Para descargar Ubuntu 12.04.4, pueden hacerlo desde aquí:

 

http://www.ubuntu.com/download

Yo personalmente me acabo de mudar a Ubuntu 13.10 que es la versión actual y me va genial, minimizaron los recursos del sistema y al inicio solo me consume 250 mb de ram, estoy esperando la versión 14.04 que también será LTS.

[SNIPPET]Centrar Ventana QT5

Añado este snippet para centrar una ventana en QT usando C++, ya que en español no hay mucha información.

 

1
2
3
4
5
6
7
8
9
10
11
12
void MainWindow::centerWidget()
{
QDesktopWidget *s = QApplication::desktop();
int ancho = s->width();
int alto = s->height();
QSize tam_ventana = this->size();
int mov_ancho = tam_ventana.width();
int mov_alto = tam_ventana.height();
int coo_ancho = (ancho/2) - (mov_ancho/2);
int coo_alto = (alto/2) - (mov_alto/2);
move(coo_ancho,coo_alto);
}

Saludos espero les sirva.

Organizar codigo en CPP

Esta es una de las maravillas literarias para programadores que he encontrado en la web y no quería dejar de transmitirla, el post original(en ingles) esta aquí y su traducción aca:

http://razonartificial.com/2013/01/organizacion-del-codigo-fuente-en-cpp/

Introducción

Si bien muchos programas simples caben en un solo archivo C o Cpp, cualquier proyecto serio va a necesitar dividir el código en varios ficheros con el fin de ser manejable. Sin embargo, muchos principiantes no se dan cuenta hasta que punto esto es importante (Sobre todo por que muchos lo han intentado y les ha dado más problemas que soluciones y decidieron que no merecía la pena el esfuerzo). En este artículo intentaré explicar porqué hacerlo y cómo hacerlo correctamente. Cuando sea necesario, doy une breve explicación de como trabajan los compiladores y enlazadores para ayudar a entender porque se tienen que hacer las cosas de una manera determinada.

Continue reading

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.