Il blog si è spostato su http://micheleb26.netsons.org/blog/
avevo bisogno di caricare alcuni plug-in interessanti
Il blog si è spostato su http://micheleb26.netsons.org/blog/
avevo bisogno di caricare alcuni plug-in interessanti
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
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)
#include <stdio.h>
// connette a mysql e stampa la prima colonna della tabella selezionata;
#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++/
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/
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
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
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:
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.
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:
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