Visualizzazioni totali

martedì 13 dicembre 2011

Creare hotspot con Ubuntu 11.10 e disconnessioni

Oggi ho scoperto per puro caso che era possibile utilizzare la scheda wifi del pc come hotspot (alla stregua del software Connectify).
Mi sono imbattuto pero' in un problema: la connessione continuava a connettere e disconnettere e la navigazione dai dispositivi connessi era praticamente impossibile.
Per risolvere bisogna
disconnettere la connessione
entrare in Rete->Wireless->configura

Impostare di ignorare gli indirizzi IPv6 e da terminale digitare
sudo killall dnsmasq
Riabilitando poi il wi fi tutto funziona alla perfezione


lunedì 12 dicembre 2011

AWUS036NH e Ubuntu 11.10

Visto che ho avuto diversi problemi con l'installazione della Alfa Network AWUS036NH  su Ubuntu 11.10 con il nuovo Kernel 3 posto la guida coretta per l'installazione:

Per iniziare dal sito di Alfa Network ho scaricato i driver aggiornati
Driver

Poi ho eseguito l'installazione seguendo questa procedura:
  1. Copy driver for network card to Desktop
  2. Open a terminal
  3. sudo –i
  4. cd /home/ubuntu/Desktop
  5. tar -xf 036NH_2009_1110_Linux.tar.bz2
  6. cd 2009_1110_RT3070_Linux_STA_v2.1.2.0
  7. gedit os/linux/config.mk
  8. Change "HAS_WPA_SUPPLICANT=n" and "HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n" to y
  9. make && make install
  10. gedit /etc/modprobe.d/blacklist.conf and add:
    a. blacklist rt2x00usb
    b. blacklist rt2x00lib
    c. blackist rt2800usb
  11. reboot
Infine ho seguito creato questo script, compilato e eseguito.

#!/bin/bash
#A little script to get the AWUS036NH working in ubuntu 11.10
#It also boosts the tx power to 1W
#Coded by GUNN4R, 15 Oct 2011
if [ "$#" -eq 0 ]
then
  echo -e "Not Enough Arguements!\\nUsage:\\nboost.sh start  -- starts the card"
  echo "boost.sh wlan5  -- this boosts the tx power to 1MW"
  exit
fi

sudo modprobe rt2800usb
sleep 2

if [ "$1" = "start" ]
then
  echo '148f 3070' | sudo tee /sys/bus/usb/drivers/rt2800usb/new_id
  ifconfig
else
  sudo ifconfig $1 up
  sudo iw reg set BO
  sudo iwconfig $1 txpower 30
  iwconfig
fi
 
Salvare in un file su desktop con nome  AWUS036NH.sh
aprire Terminal e portarsi sulla cartella scrivania
eseguire i comandi:
sudo chmod 755 AWUS036NH.sh
./AWUS036NH.sh start


Alla prossima

lunedì 5 dicembre 2011

Cross Compilazione Gtk+ su Windows

Ho eseguito diversi invani tentativi di compilare su linux gli exe pre windows.

Mi sono deciso poi ad installare VirutalBox ed a creare una macchina virtuale con C::B.
Per compilare le GTK+ su  Windows ho scaricato l'intero

All-in-one bundles GTK dal sito delle Gtk+.

GLi interventi successivi sono stati i seguenti:

- estratto l'archivio in una directory su c: (nel mio caso c:\gtk+)

- inserito nel PATH di sistema il percorso c:\gtk+\bin

- Dentro ai percorsi di ricerca di code:blocks aggiunto c:\gtk+\include\gdk-pixbuf-2.0

 

La compilazione e' riuscita e un semplice programma ora gira anche sotto windows .

venerdì 2 dicembre 2011

Glade e errore durante esecuzione da programma

Questo problema mi ha afflitto per tutta la settimana.
Dopo aver seguito una bella guida dal sito di Glade

Guida alla costruzione di interfacce con glade

mi sono imbattuto nel seguente problema durante l'esecuzione del programma citato.

Warning: cannot create instance of abstract (non-instantiatable) type `GtkBox'
  builder.add_from_file()
 
Solo piu tardi ho scoperto che era dovuto ad un bug di Glade 3.10 (installato di default da Ubuntu 11.10) 
e che per ora e' risolvibile solo installando Glade 3.08 e ricreando l'interfaccia.
Per far cio ho usato Synaptic Package Manager scegliendo glade 3.08 che in automatico carica le dipendenze dovute 

martedì 29 novembre 2011

Interagire da shell con cartelle aventi nomi contenenti spazi

Altro problema.

Linux (e nel mio caso Ubuntu) non e' ancora del tutto insostituibile nello shell.
Per questo spesso mi trovo a combattere con nomi di cartelle o file che hanno tra i loro caratteri uno o piu spazi.
Es.
/home/simone/Windows XP/Una cartella con degli spazi

Per usare i comandi da shell basta anteporre una "\" allo spazio e il gioco e fatto.

Es.
CD /home/simone/Windows\ XP\Una\ cartella\ con\ degli\ spazi


Ridimensionare Vdi

Durante la creazione di una macchina virtuale con XP ho creato un'immagine disco (vdi dinamica) per virtual box un po' troppo piccola e di conseguenza non riuscire ad installare Visual Studio.
Ho cercato invano nell'interfaccia la possibilità di eseguire un ampliamento del disco virtuale.
Fortunatamente esiste un comando di virtualbox per ridimensionare l'unità (a macchina spenta ovviamente).
Es.
VBoxManage modifyhd Windows\ XP.vdi --resize 150000
In questo caso ho modificato il disco a 15Gb.
 
Ovviamente in seguito ho dovuto utilizzare un programma di ridimensionamento delle partizioni
per ampliare l'unità e sfruttare il nuovo spazio, nel mio caso ESEUS Partition Master Free.


VirualBox

Per comodità ho installato VirtualBox su Ubuntu.
Dopo l'installazione di Windows XP al suo interno ho installato anche Code::Blocks
Infine Windows Visual C++ runtime 2008 cosi da poter compilare sotto windows anche librerie come stdafx.h

mercoledì 23 novembre 2011

Cross compilazione per windows

Dopo svariate prove con le gtk oggi provo a cross compilare una semplice applicazione per ambiente windows da linux.
Per far cio' seguo la guida trovata su wiki:

CrossCompilare con Linux

Per la compilazione e' necessario installare wine e mingw
Da Ubuntu Software Center tra i diversi wine io ho scelto l'ultimo (Wine Windows Program Loader 1.3) e (Minimalist GNU Win32(Cross) Compiler).

martedì 15 novembre 2011

fatal error: gtk/gtk.h: No such file or directory

In seguito all'installazione di code::blocks,compilando un semplice wizard gtk 
si riceve l'errore:

fatal error: gtk/gtk.h: No such file or directory

Questo e' dovuto alla mancanza nativa delle librerie gtk per lo sviluppo.

Io ho installato le libgtk-dev 3.0.
CB aggiunge nei settings del proggetto i riferimenti:

  • `pkg-config gtk+-2.0 --cflags`

  • pkg-config gtk+-2.0 --libs`
Questi pero' vanno cambiati con

  • pkg-config gtk+-3.0 --cflags`
  • pkg-config gtk+-3.0 --libs`
Semplice no?

Problemi con Online account di ubuntu

Oggi, reinstallando ubuntu 11.10 su un altro pc, nel tentativo di loggarmi con il mio account di google negli online account ho incotrato diversi problemi a mantenere il login.
In pratica, una volta inserite le credenziali, il programma mi diceva subito che erano scadute
La soluzione l'ho trovata in queste pagine

https://launchpad.net/~rye/+archive/ubuntuone-support

Installando questa patch tutto e' andato a posto (dopo il consueto riavvio)
Consiglio di leggere questo per l'installazione
Read about installing

martedì 8 novembre 2011

Program Arguments di code::blocks

Ho avuto problemi a passare argc e argv con code::blocks e credo di non essere stato l'unico.
L'unica via che ho trovato e' stato di mettere a debug direttamente nel codice l'inizializzazione dei parametri.

Problemi di link con sqlite

Stamattina ho perso un mucchio di tempo per far funzionare l'esempio proposto sul sito di sqlite

#include <iostream>
#include <stdio.h>
#include <sqlite3.h>

static int callback(void *NotUsed, int argc, char **argv, char **azColName){
  int i;
  for(i=0; i<argc; i++){
    printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
  }
  printf("\n");
  return 0;
}

int main(int argc, char **argv){
  sqlite3 *db;
  char *zErrMsg = 0;
  int rc;

  if( argc!=3 ){
    fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
    return(1);
  }
  rc = sqlite3_open(argv[1], &db);
  if( rc ){
    fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
    sqlite3_close(db);
    return(1);
  }
  rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
  if( rc!=SQLITE_OK ){
    fprintf(stderr, "SQL error: %s\n", zErrMsg);
    sqlite3_free(zErrMsg);
  }
  sqlite3_close(db);
  return 0;
}


sul sito viene proposto di creare un database  dal terminale con il comando
"sqlite3 test.db"
e questo e' vero e funziona.

Non viene pero' indicato che nel linker vanno specificate alcune cose altrimenti il programma non viene compilato e restituisce errori tipo:

undefined reference to `sqlite3_open'
undefined reference to `sqlite3_errmsg'
undefined reference to `sqlite3_close'
undefined reference to `sqlite3_exec'
undefined reference to `sqlite3_free'
undefined reference to `sqlite3_close'

undefined reference to `pthread_mutex_trylock'

Nel mio caso ho risolto così:
Alla prossima

venerdì 4 novembre 2011

Le prime rogne con il c++

Stamattina sono diventato matto per risolvere un problema legato all'inclusione delle librerie

#include <string>
#include <iostream>
#include <exception>

Una qualunque di esse mi dava un errore di riferimento.

A nulla sono valsi i tentativi di copiare le opzioni di compilazione del compilatore da un programma che invece le linkava correttamente.

Il tutto era dovuto semplicemente al fatto che, partendo il mio progetto da una creazione guidata, la stessa generava un file ".c" e non ".cpp".

Rinominando il file la cosa si e' risolta

Database

Dato che sicuramente avro' bisogno di un database ho scelto SQLite. L'ho ponderato con altre soluzioni ma mi sembra che per il tipo di lavoro che devo svolgere vada piu che bene e non sia particolarmente difficile e pesante (ho gia lavorato con MySQL, SQLServer e ovviamente ACCESS).

Per l'installazione semplicemente
"sudo apt-get install sqlite"
Ho inoltre installato dal solito Ubuntu Software Center 
SQLiteMan 

Scelte didattiche, Ubuntu e Code::Blocks

Ciao a Tutti

Questo e' il primo post del mio blog.

E' necessario percio' che prima mi presenti: sono un appassionato di informatica che ormai da circa 15 anni lavora nel settore.
Durante la mia carriera informatica sono venuto a contatto con realta' diverse.

Attualmente e' mio interesse personale approfondire la conoscenza dell'architettura linux e la programmazione ad essa associata.

Dopo un'attenta documentiazione tramite Google ho deciso di iniziare con qualcosa di semplice per complicarmi eventualmente la vita in un secondo momento, quando il know-how me lo permetterà.

Ecco il motivo per qui scelgo Ubuntu, distribuzione a me cara e nota.

Tralasciando l'installazione della attuale release 11.10 gli step affrontati successivamente sono:

1- Calibrazione del S.O. con :
  • Modifica del file hosts con aggiunta delle voci relative alla rete interna (dns dei nomi della rete tipo 
             192.168.1.1 router

  • installazione della stampante con printing
2- Installazione della libreria build-essential (sudo apt-get install build-essential)
3- Installazione di code:blocks (da Ubuntu Software Center)