domenica 25 agosto 2013
Processing.org - Arkanoid
Ecco il piccolo progettino realizzato per il corso Creative Programming for Digital Media & Mobile Apps basato su Processing.org. Un prototipo clone di Arkanoid ecco i sorgenti
Etichette:
processing,
programming
Ubicazione:
13048 Santhià VC, Italia
martedì 23 luglio 2013
Oracle + Procedure + Tomcat + Connection Pool + Ibatis
Utilizzando il connection pool di tomcat via app attrraverso ibatis/mybatis alcune chiamate a Store Procedure Oracle generavano errore
Caused by: java.lang.RuntimeException: unexpected invocation exception: unexpected invocation exception: null at oracle.ucp.jdbc.proxy.PreparedStatementProxyFactory.invoke(PreparedStatementProxyFactory.java:138) at oracle.ucp.jdbc.proxy.CallableStatementProxyFactory.invoke(CallableStatementProxyFactory.java:101) at $Proxy17.getResultSet(Unknown Source) at com.ibatis.sqlmap.engine.execution.SqlExecutor.getFirstResultSet(SqlExecutor.java:337) at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:299) at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQueryProcedure(SqlExecutor.java:283) at com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteQuery(ProcedureStatement.java:34) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:173)
La soluzione è semplicemente NON chiamare le procedure con ibatis.callProcedure() ma con ibatis.update()
[via]
Etichette:
Connection Pool,
ibatis,
java,
Oracle,
tomcat
Ubicazione:
Santhia' VC, Italia
venerdì 12 luglio 2013
Certificazioni MongoDB 10gen
Etichette:
10gen,
Certificazione,
mongodb,
MOOC
Ubicazione:
Santhia' VC, Italia
mercoledì 1 maggio 2013
MongoDB Index
Visualizzare gli indici presenti sul db
use test;
db.system.indexes.find();
Visualizzare gli indici presenti sulla colection
db.<collection_name>.getIndexes()
Crea l' indice univoco eliminando le chiavi duplicate
db.accounts.ensureIndex( { username: 1 }, { unique: true, dropDups: true )
Creare un indice su elementi che possono anche non esserci nell'elenco dei documenti
db.addresses.ensureIndex( { "size": 1 }, { unique: true, sparse: true } )
Index Size
db.<collection_name>.indexSize();
Forzare l'uso di uno specifico indice
Elimina l'uso degli indici
db.people.find().hint({$natural:1})
Note:
- l'indice _id per default è sempre univoco anche se non specificato sulla getIndexes()
- L'indice di default viene creato di tipo BTREE
- In caso di utilizzo di query su indice sparse le query default non ritornano i documenti che non posseggono quel field.
Etichette:
mongodb,
performance
Ubicazione:
Santhia' VC, Italia
martedì 23 aprile 2013
MongoDB Shell
Alcune info prese dal corso di Mongo sulla Mongo University
Ritorna la funzionalità:
PRIMARY> db.names.save
function (obj) {
if (obj == null || typeof obj == "undefined") {
throw "can't save a null";
}
if (typeof obj == "number" || typeof obj == "string") {
throw "can't save a number or string";
}
if (typeof obj._id == "undefined") {
obj._id = new ObjectId;
return this.insert(obj);
} else {
return this.update({_id:obj._id}, obj, true);
}
}
Uso di variabili assegnate:
> db.names.save({name:"furetto"});
> db.names.find();
{ "_id" : ObjectId("515ea7d69f97aede503daa70"), "name" : "furetto" }
> var f = db.names.findOne();
> f;
{ "_id" : ObjectId("515ea7d69f97aede503daa70"), "name" : "furetto" }
> f.name2 = "pippo";
pippo
> f;
{
"_id" : ObjectId("515ea7d69f97aede503daa70"),
"name" : "furetto",
"name2" : "pippo"
}
> db.names.save(f);
> db.names.find();
{ "_id" : ObjectId("515ea7d69f97aede503daa70"), "name" : "furetto", "name2" : "pippo" }
Dati Testi con Javascript:
> for(i=0;i<1000;i++){db.scores.insert({"score":i})};
Escludere _id dalle query:
> db.names.find({"name2":"pippo"},{"_id:" 0, "name2":1});
{ "name2" : "pippo" }
Query tra estremi anche di caratteri:
>db.names.find({"name2":{$gte : "p", $lte:"z"}})
Query per tipologia di campo (per le tipologie di field vedi specifiche json):
> db.names.find({"name2": {$type : 2})
>db.names.find({"name2":{$gte : "p", $lte:"z"}})
Query per tipologia di campo (per le tipologie di field vedi specifiche json):
> db.names.find({"name2": {$type : 2})
martedì 19 marzo 2013
Raspberry Pi - configurare - NetGear 150N - RTL8188CUS
Preso il Rapsberry PI direttamente da RS. Chiavetta USB WI-FI - NetGear150N.
Configurato in dhcp sulla mia rete interna.
Inserire la chiavetta nel Raspberry,
lsusb e vedete se la chiavetta viene vista dal sistema
NetGear, Inc. WNA1000M 802.11bgn [Realtek RTL8188CUS]
le configurazioni di
/etc/network/interfaces
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
il file wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="xxxxx"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk="xxxxxxxxx"
}
riavviare e togliere il cavo di rete.
[via omer.me ]
Etichette:
linux,
RaspberryPI
Ubicazione:
Santhia' VC, Italia
sabato 2 marzo 2013
MongoDB - Rename Database
Non è possibile rinominare un database di mongo. Il metodo possibile è copiare il db e poi eliminare quello vecchio.
db.copyDabatase("original","newdb","localhost");
use original;
db.dropDatabase();
se abbiamo db molto grosso dobbiamo tenere conto della necessità di parecchio spazio su disco per eseguire l'operazione.
db.copyDabatase("original","newdb","localhost");
use original;
db.dropDatabase();
se abbiamo db molto grosso dobbiamo tenere conto della necessità di parecchio spazio su disco per eseguire l'operazione.
Etichette:
mongodb,
performance
Ubicazione:
Santhia' VC, Italia
Iscriviti a:
Post (Atom)

