Il blog si è spostato

19 Settembre 2009

Il blog si è spostato su http://micheleb26.netsons.org/blog/

avevo bisogno di caricare alcuni plug-in interessanti :-)


C++ e MySQL++

5 Settembre 2009

Per poter utilizzare la libreria MySQL++ su ubuntu è necessario installare i seguenti pacchetti:

- libmysql++2c2a
- libmysql++-dev

per la compilazione bisogna eseguire la riga:

g++ file_inp.cpp -o file_out -I/usr/include/mysql++/ -I/usr/include/mysql -L/usr/local/lib -lmysqlpp -lmysqlclient -lnsl -lz -lm

L’ho provato sul seguente codice:


#include <mysql++.h>
#include <iostream>
#include <iomanip>
using namespace std;
int main(int argc, char *argv[])
{
const char *db = "nome_database", *server = "server_db", *user = "nome_utente", *pass = "password";
// Connect to the sample database.
mysqlpp::Connection conn(false);

conn = conn.connect(db, server, user, pass);

// Retrieve a subset of the sample stock table set up by resetdb
mysqlpp::Query query = conn.query();
query << “select item from cliente”;
mysqlpp::Result res = query.store();
// Display the result set
cout << “We have:” << endl;
if (res) {
mysqlpp::Row row;
mysqlpp::Row::size_type i;
for (i = 0; row = res.at(i); ++i) {
cout << ‘\t’ << row.at(0) << endl;
}
}
else {
cerr << “Failed to get item list: ” << query.error() << endl;
return 1;
}
return 0;
}

In caso di problemi rimando a

http://tangentsoft.net/mysql++/
e
http://tangentsoft.net/mysql++/doc/

http://www.cyberciti.biz/tips/linux-unix-connect-mysql-c-api-program.html


C e MySQL

5 Settembre 2009

E’ necessario installare il seguente pacchetto libmysqlclient15-dev:

sudo apt-get install libmysqlclient15-dev

e seguire i passi qui descritti:

http://www.cyberciti.biz/tips/linux-unix-connect-mysql-c-api-program.html

Per la compilazione usare la riga: gcc -o file_out $(mysql_config --cflags) file_in.c $(mysql_config --libs)


C++ e MySQL

5 Settembre 2009


// connette a mysql e stampa la prima colonna della tabella selezionata;
#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>
#include <iostream>

using namespace std;

const char* host = “localhost”; // host di connessione
const char* database = “nome_database”; // database di connessione
const char* db_user = “nome_utente”; // nome utente per la connessione
const char* db_pass = “password”; // password non cifrata
const char* query = “select * from cliente”; //comando

int main()
{
MYSQL mysql;
MYSQL_RES* result;
MYSQL_ROW row; // restituisce NULL se non avviene con successo
if (! mysql_init (&mysql)) {
printf (“Errore nella allocazione di memoria.\n”);
exit (EXIT_FAILURE);
}
if (! mysql_real_connect (&mysql, host, db_user, db_pass, “”, 0, NULL, 0))
{
printf (“Errore nella connessione.\n”);
exit (EXIT_FAILURE);
}// restituisce zero se avviene con successo
if (mysql_select_db (&mysql, database))
{
printf (“Errore nella selezione del database.\n”);
exit (EXIT_FAILURE);
}
printf (“Connessione avvenuta.\n”); // esegue la query
if (mysql_query (&mysql, query))
{
printf(“Errore nella query.\n”);
goto error;
}
result = mysql_store_result (&mysql);
cout << “Codice cliente\t” << “Partita IVA\t” << “Ragione sociale\n”;
cout << “———————————————–\n”;
while(( row = mysql_fetch_row(result)) != NULL)
{
cout << row[0] << “\t” << row[1] << “\t” << row[2] << endl;
}
cout << endl;
error:// chiude le risorse
mysql_close (&mysql);
exit (EXIT_SUCCESS);
}

Per compilare si deve usare:

g++ -o file_out $(mysql_config --cflags) file_in.cpp $(mysql_config --libs)

Per utilizzare il MySQL++ non sono ancora riuscito a farlo funzionare, comunque lascio dei riferimenti:

http://forge.mysql.com/wiki/Connector_C%2B%2B
http://dev.mysql.com/tech-resources/articles/mysql-connector-cpp.html
http://tangentsoft.net/mysql++/doc/html/refman/
http://tangentsoft.net/mysql++/doc/html/userman/
http://tangentsoft.net/mysql++/


Ruby e MySQL

5 Settembre 2009

Per poter accedere a MySQL da Ruby è necessario installare il modulo mysql con il comando

sudo gem install mysql

(Se non funziona provate a installare libdbd-mysql-ruby e libmysql-ruby in base alla vostra versione di Ruby dal repository)

Per utilizzare la “gemma” si usa require "mysql"

Esempio completo:


#!/usr/bin/ruby -w
# simple.rb - simple MySQL script using Ruby MySQL module

require "mysql"

begin
# connect to the MySQL server
dbh = Mysql.real_connect("localhost", "nome_utente", "password", "nome_database")
# get server version string and display it
puts "Server version: " + dbh.get_server_info
rescue Mysql::Error => e
puts "Error code: #{e.errno}"
puts "Error message: #{e.error}"
puts "Error SQLSTATE: #{e.sqlstate}" if e.respond_to?("sqlstate")
ensure
# disconnect from server
dbh.close if dbh
end

Riferimenti:

http://www.kitebird.com/articles/ruby-mysql.html
http://www.ruby-lang.org/en/documentation/
http://www.ruby-doc.org/


Python e MySQL

5 Settembre 2009

Per poter accedere a MySQL da Python occorre installar l’API python-mysqldb

poi aggiungere la riga import MySQLdb

Esempio completo:


#!/usr/bin/env python
# periodi.py

import sys
import MySQLdb

conn = MySQLdb.connect(host="localhost", user="nome_utente", passwd="password", db="nome_database")

cursore = conn.cursor()

cursore.execute('SELECT * FROM cliente')

tupla = cursore.fetchall()

print
print 'codice cliente\tpartita IVA\tragione sociale'
print '-------------------------------------------------'
for record in tupla:
print '%d\t\t%s\t%s' % (record[0], record[1], record[2])

print 'end.'
print

Riferimenti:

http://www.kitebird.com/articles/pydbapi.html
http://mysql-python.sourceforge.net/MySQLdb.html
http://www.blackbirdblog.it/programmazione/python/python-e-mysql
http://docs.python.org/contents.html


JDBC, come accedere ad un database da Java

5 Settembre 2009

Premetto che io dispongo del JDK 1.6.0_14 della Sun installato in /usr/lib/jvm/java-6-sun-1.6.0.14 sulla mia Ubuntu e del database MySQL 5.0.51a e che farò riferimento a questi strumenti per la mia guida.

Per poter accedere al database da Java è necessario scaricare il driver di MySQL da qui.

Estrarre il file tar.gz con il comando tar zxfv mysql-connector-java-5.1.8.tar.gz (cambiate i numeri 5.1.8 in base alla versione del driver che avete scaricato).

Dopo di ciò bisogna copiare il driver nella directory /usr/lib/jvm/java-6-sun-1.6.0.14/jre/lib/ext

sudo cp mysql-connector-java-5.1.8-bin.jar /usr/lib/jvm/java-6-sun-1.6.0.14/jre/lib/ext

e modificare la variabile di sistema CLASSPATH:

export CLASSPATH=$CLASSPATH:mysql-connector-java-5.1.8-bin.jar

Anche se sinceramente ho visto che a me funziona anche settare suddetta variabile.

Ora bisogna passare al codice:

Aggiungiamo il package import java.sql.*;

poi le variabili

Connection con = null;
Statement st = null;
ResultSet rs = null;

Aggiungiamo ora il driver con la riga

Class.forName("com.mysql.jdbc.Driver");
o esclusivamente la riga
DriverManager.registerDriver(new com.mysql.jdbc.Driver());

A questo punto abbiamo il driver, aggiungiamo la connessione:

con = DriverManager.getConnection("jdbc:mysql://localhost/nome_database", "nome_utente", "password");

Se il database non ha password si può utilizzare la funzione:

con = DriverManager.getConnection("jdbc:mysql://localhost/nome_database");

Per eseguire le query abbiamo bisogno di uno statement, quindi:

st = con.createStatement();

Ora per eseguire effettivamente la query si utilizza la riga

rs = st.executeQuery("select * from cliente");

e per vedere i risultati:

while (rs.next())
{
System.out.println("Codice cliente: " + rs.getString(1));
System.out.println("Partita IVA: " + rs.getString(2));
System.out.println("Ragione sociale: " + rs.getString(3));
System.out.println(" ");
}

Quando abbiamo finito con il database chiudiamo la connessione:

con.close();

Un esempio completo lo si trova di seguito:


mport java.sql.*;

public class DBConn
{

public static void main(String args[])
{
new DBConn();
}

public DBConn()
{
Connection con = null;
Statement st = null;
ResultSet rs = null;

try
{
//Class.forName("com.mysql.jdbc.Driver");
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
}/*catch(ClassNotFoundException e)
{
System.out.println("Errore: " + e.getException().getMessage());
System.exit(1);
}*/catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

try
{
con = DriverManager.getConnection("jdbc:mysql://localhost/cremonesi", "michele", "hellasverona");
}catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

try
{
st = con.createStatement();
}catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

try
{
rs = st.executeQuery("select * from cliente");
}catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

System.out.println();
try
{
while (rs.next())
{
System.out.println("Codice cliente: " + rs.getString(1));
System.out.println("Partita IVA: " + rs.getString(2));
System.out.println("Ragione sociale: " + rs.getString(3));
System.out.println(" ");
}
}catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

try
{
con.close();
}catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

}
}

Risorse:

http://dev.mysql.com/usingmysql/java/
http://www.soft-land.org/articoli/jdbc


SkyLUG un Linux user group dedicato all’astronomia

25 Agosto 2009

SkyLUG

SkyLUG

Questo gruppo nasce per avvicinare il mondo Linux all’astronomia e di aiutare i meno esperti all’installazione e alla
configurazione di questo famoso sistema operatvio free.

Si possono postare anche domande che riguardano solo il software e non l’astronomia. Questo gruppo è aperto a chiunque sia appassionato di open source e di astronomia.

Da visitare:

http://tech.groups.yahoo.com/group/skylug/


Nel 2010 arriverà Firefox 3.6

25 Agosto 2009

La fondazione Mozilla sta già pensando alla nuova release di Firefox, la 3.6, nome in codice Namoroka.

È  già stata rilasciata una linea guida per gli sviluppatori e una prima alpha del browser.

Tra le novità c’è la possibilità di nascondere la barra dei menù, un po’ come accade sul browser di casa Google, Chrome, in modo da dare più spazio visibile alle pagine web. Tale funzione risulta particolarmente utile a coloro che sviluppano plug-in.

Firefox

Firefox 3.6

Inoltre viene aggiunto Compositor, un nuovo framework per la visualizzazione dei contenuti che permette di migliorare l’aggiornamento e lo scorrimento delle pagine con contenuti dinamici, migliorare il sincronismo tra audio e video, rendere i contenuti interattivi più reattivi all’input dell’utente e introdurre il supporto nativo ai widget. Incrementa le performance del motore JavaScript TraceMonkey e supporta una più estesa gamma di proprietà CSS3. Possiamo trovare anche il supporto per l’interfaccia nsISound, un sistema di notifiche sonore per i servizi online, ad asempio l’arrivo di nuova posta elettronica sulla propria webmail o su un servizio di messaggistica istantanea come Meebo.

Insomma le novità sembrano essere davvero tante. Dovremo aspettare però la seconda metà del 2010 per poter scaricare la versione finale di questa release.

Fonti:


Mac OS Snow Leopard disponibile il 28 agosto

25 Agosto 2009

Roma – Snow Leopard arriverà prima del previsto, il 28 agosto anziché a settembre come in precedenza Apple aveva affermato, una possibilità che da giorni in molti avevano pronosticato. Arriverà agli utenti che hanno acquistato un Mac negli ultimi mesi come aggiornamento gratuito, oltre ad essere disponibile negli Apple Store e nei negozi autorizzati al prezzo di 29 euro (49 per il Family Pack).

Con questa release, Apple mette definitivamente in cantina le sue macchine con processore PowerPC: Mac OS 10.6 sarà disponibile solo per gli ultimi prodotti equipaggiati con processore Intel e richiede almeno un 1 GB di RAM per funzionare a dovere. Per chi effettuerà l’upgrade da Tiger il prezzo sale a 169 euro (229 per il Family Pack) ma sono incluse le ultime versioni di iWork e iLife.

Le applicazioni di base del sistema sono a 64bit ma rimane il supporto per quelle a 32bit. Viene inoltre integrato il supporto per Microsoft Exchange e in generale sono state migliorate le prestazioni di tutti gli elementi principali del sistema, in particolare il Finder, che secondo i test condotti da Apple risulta più intuitivo, e Time Machine, la cui velocità è stata aumentata dell’ottanta per cento (sempre secondo le stime fornite da Cupertino).

In contemporanea uscirà anche la versione server di Snow Leopard, che presenta nuove feature quali Podcast Producer 2 e Mobile Access Server, e costerà 499 euro.

Giorgio Pontico

Fonte:
http://punto-informatico.it/2696786/PI/News/snow-leopard-libero-ad-agosto.aspx
http://www.apple.com/pr/library/2009/08/24macosx.html