Trucos sobre manejo de softwarelibre y gnu linux. También a los programas que hago en gambas3, python, java, etc.... Consejos y trucos sobre otros programas: excel, word, internet, instalación de programas, Arduino y demás....
Páginas
- Página principal
- Indice por Tags
- Indice por Fechas
- Podcasts sobre GNU/Linux en español
- FotoMontajes GNU/LINUX
- Gestión de Obras: Mediciones, Presupuestos, Facturas...
- Enlaces / Link
- Enlaces JsbSan
- Encuestas Y Estadisticas
- Tutoriales y Manuales de Gambas
- Revistas
- Video tutoriales
- Código fuentes de algunas aplicaciones:
- FORO JSBSAN
- Formulario de Informacion
- Libros Publicados
viernes, 3 de febrero de 2012
Desarrollando proyectos con wxWidgets
He encontrado un pequeño manual donde se explica como crear una simple agenda con c++, usando wxWidgets, wxFormBuilder y ZinjaI (un Ide para C++).
Esta aplicaciones están tanto en Gnu/Linux como en Windows, con lo cual nuestras aplicaciones se podrán compilar y crear los ejecutables para los dos sistemas.
El autor del manual el Pablo Novara, lo podeis descargar en:
Los enlaces de descarga de los programas son:
http://zinjai.sourceforge.net
http://www.wxwidgets.org
http://wxformbuilder.org
Os comento, para la instalación en gnu/linux, (ubuntu 11.10, en mi caso) después de instalar el zinjai (descargado desde http://zinjai.sourceforge.net), por la consola instale los siguiente porgramas:
$ sudo apt-get install wxformbuilder
$ sudo apt-get install doxygen
$ sudo apt-get install cppcheck
Voy a empezar a "trastearlo"... a ver lo que consigo aprender...
Saludos
jueves, 2 de febrero de 2012
Creando nuestra propia Wiki: instalar mediawiki en un servidor.
MediaWiki: Montar tu propia Wiki
He estado intentando buscar la forma de crear una pagina web tipo wiki, y encontré una web que lo explican, la entrada es algo antigua, y han cambiado un poco las pantallas, pero practicamente son los mismos pasos.
Os comento como se hace:
0. Descargamos la ultima versión de MediaWiki: http://www.mediawiki.org/wiki/Download
1. Lo primero que debemos hacer luego de descargar la última versión de MediaWiki es descomprimirla en nuestro disco. Una vez descomprimido lo subimos a nuestro servidor dentro de una carpeta.
Yo estoy usando una cuenta en un servidor gratuito:
Que admite PHP y Mysql.
Además tiene programas ftp para subir los archivos. Aunque por el elevado número de archivos, yo he usado FileZilla (ver este enlace ) porque resulta mucho más cómodo para cuando tenemos que subir muchos archivos.
2. Luego de subir todo, debemos crear nuestra base de datos Mysql, este es un proceso que es muy particular de cada Hosting (pero es relativamente sencillo).
En 000webhosting se hace pulsando el siguiente icono
Y se introducen los datos (nombre, usuario, claves, etc), que serán necesarios posteriormente en la configuración de la wiki.
3. Luego tenemos que ingresar a la url en donde hemos subimos los archivo y si todo salio bien tendremos que tener esto en pantalla:
Instalando mediawiki
Pulsamos “Set up the wiki”
4. Aquí vamos a ver que hay muchos campos para llenar, pero solamente comentare sobre los que son imprescindibles los demás el software los instalara por defecto y de esa forma evitaremos muchas complicaciones:
Wiki name: El nombre de la wiki.
Contact e-mail: Email que usara el software para realizar las notificaciones como así también el destino de las recuperaciones de passwords perdidas.
Admin username, Password y Password confirm: Los datos necesarios para ingresar al panel de administración del wiki.
Database config: En esta serie de campos directamente colocamos los mismos datos con los que creamos la base de datos en el punto anterior, recuerden que muchas veces en el host funciona colocar localhost, salvo ciertos casos como por ejemplo los que nos alojamos en Dreamhost, aquí simplemente ponemos el host de la base mysql y listo.
Luego de terminar eso y dejando todos los demás campos por defecto presionamos el botón “Install MediaWiki!”Nota:
Además nos sale una opción de configuración avanzada, en donde podemos definir desde el logo, hasta el tipo de wiki a crear (si todos el mundo puede acceder a crear articulos, etc).
5. Luego si hicimos todo bien nos aparecera un texto y abajo “Installation successful!” ahora simplemente, descargamos el archivo LocalSettings.php y lo subimos a nuestro servidor en la carpeta principal (donde esta el archivo index.php)
Una vez hecho esto, volvemos a irnos a la pagina de nuestra web... y tendríamos que ver esta pantalla:
Y si le damos a "iniciar sección", pasamos a que nos piden el login del usuario y contraseña:
Y una vez introducido nuestro usuario y password, entramos en la pagina inicial...
Y ya tenemos nuestra wiki preparada para ir introduciendo nuestros articulos.
Aqui podeis ver la wiki que estoy preparando:
Fuentes:
http://www.kabytes.com/programacion/guia-como-instalar-un-wiki/
http://alfonsomorcuende.com/blog/alfonso-morcuende/subir-imagenes-en-nuestra-wiki
miércoles, 1 de febrero de 2012
c++: Funcion Split sobre cadenas, usando la clase vector, strtok
Aquí os dejo varias formas de hacer la función split (partir una cadena en varias separadas por un carácter espacio " ").
He realizado tres funciones:
// fuentes:
// http://www.cplusplus.com/ reference/stl/vector/operator[ ]/
// http://social.msdn.microsoft. com/Forums/es-ES/vcppes/ thread/ef3bf7ee-c25c-4427- 97fc-78c8978e2c61
// http://www.cplusplus.com/ reference/string/string/c_str/
He realizado tres funciones:
1) vector<string> splitCadena(string cadena) -> esta recibe una clase cadena
2) vector<string> splitCaracteres(char * caracteres) -> esta recibe un array de caracteres.
Las dos devuelven vectores tipo string.
3) int tamano(vector<string> myvector) -> devuelve un entero indicando el numero de cadenas que contiene (tamaño del vector)
Código fuente:
#include <iostream>
#include <vector>
#include <string>
#include <stdio.h>
#include <string.h>
using namespace std;
//funcion que nos dice que tamaño tiene un vector.
int tamano(vector<string> myvector);
vector<string> splitCadena(string cadena);
vector<string> splitCaracteres(char * caracteres);
vector<string> splitCadena(string cadena){
vector<string> myvector(1);
char *ptr;
int a=1;
char linea[1000];
char * cstr;
cstr = new char [cadena.size()+1];
strcpy(cstr, cadena.c_str());
// empiezo a partir...
ptr=strtok(cstr," ");
strcpy(linea, ptr);
string cadenita (linea);
myvector[0] =cadenita;
while( (ptr = strtok( NULL, " " )) != NULL ) //Posteriores llamadas
{
myvector.resize(a+1);
strcpy(linea, ptr);
string cadenita (linea); // cadenita: es una cadena temporal que me sirve para parar los caracteres a una cadena
myvector[a]=cadenita; // se la asigno al vector
a++;
}
return myvector;
}
vector<string> splitCaracteres(char * caracteres){
vector<string> myvector(1);
char *ptr;
int a=1;
char linea[1000] ;// definimos una cadena de caracteres de 1000
// empiezo a partir...
//char* s1="holita";
ptr=strtok(caracteres," ");
strcpy(linea, ptr);
string cadenita (linea);
myvector[0] =cadenita;
while( (ptr = strtok( NULL, " " )) != NULL ) //Posteriores llamadas
{
myvector.resize(a+1);
strcpy(linea, ptr);
string cadenita (linea); // cadenita: es una cadena temporal que me sirve para parar los caracteres a una cadena
myvector[a]=cadenita; // se la asigno al vector
a++;
}
return myvector;
}
int main ()
{
//haciendo split a un array de caracteres y a una cadena de caracteres
cout << "-----------Sin usar la funcion split ...--------" << endl;
char *ptr;
int a=1;
char linea[1000];
char s1[1000]="Esto es una linea de caracteres";
vector<string> myvector (1);
//empiezo a partir....
ptr = strtok( s1, " " );
strcpy(linea, ptr);
// 1º elemento...
string cadenita (linea);
myvector[0] =cadenita;
//partir recursivamente...
while( (ptr = strtok( NULL, " " )) != NULL ) // Posteriores llamadas
{
// redimensiono....
myvector.resize(a+1);
// copio nuevo array de caracteres
strcpy(linea, ptr);
// los convierto en una cadena
string cadenita (linea);
//defino el nuevo vector, con esa cadena creada
myvector[a]=cadenita;
//aumento el contandor
a++;
}
//veo cual es el tamaño del vector creado
unsigned int i; //importante definirla asi, para que no de problemas en el for con sz
vector<int>::size_type sz = myvector.size();
cout << "myvector contiene:" << endl;
for (i=0; i<sz; i++)
cout << i<< ": " << myvector[i] << endl;
cout <<"--------------Usando funcion split en un char[]--------------------------------"<<endl;
vector<string> prueba(0);
char s2[]="Usando split en un char []";
//uso la funcion...
prueba=splitCaracteres(s2);
int sz2;
//uso funcion para saber el tamaño del vector
sz2=tamano(prueba);
cout << "Cadena a char[].... " << endl;
for (int i=0;i<sz2;i++)
cout << "vector string: " << i << ": " << prueba[i] << endl;
cout <<"----------------Split con una cadena -----------"<<endl;
vector<string> pruebaCadena(0);
string scadena="Usando Split en una cadena string";
cout << "Cadena a analizar: " << scadena << endl;
pruebaCadena=splitCadena(scadena);
int sz3;
//uso funcion para saber el tamaño del vector
sz3=tamano(pruebaCadena);
for (int i=0;i<sz3;i++)
cout << "vector string: " << i << ": " << pruebaCadena[i] << endl;
// system ("PAUSE"); usado en windows, para parar la pantalla de la consola
// return EXIT_SUCCESS;
return 0;
}
// determina el tamaño del vector..
int tamano(vector<string> myvector){
vector<int>::size_type sz2 = myvector.size();
return sz2 ;
}
// fuentes:
// http://www.cplusplus.com/
// http://social.msdn.microsoft.
// http://www.cplusplus.com/
Nota:
1) Windows a Linux Problemas con el juego de caracteres....
Este programa lo realice con DEV-C++ en windows XP.
El archivo lo abrí luego en linux, con el gedit, lo guarde como... con el juego de caracteres UTF8, para luego abrirlo con el codelite.
2)Usar el método push_back en vez de .resize
En vez de:
// redimensiono....
myvector.resize(a+1); //(linea a)
// copio nuevo array de caracteres
strcpy(linea, ptr);
// los convierto en una cadena
string cadenita (linea);
//defino el nuevo vector, con esa cadena creada
myvector[a]=cadenita; //(linea b)
Podemos hacer sustituir las lineas a y b por :
myvector.push_back(cadenita);
Suscribirse a:
Entradas
(
Atom
)










