Cambiare automaticamente i limiti di banda in amule

Categories: Linux

Tags:

Ogni home-server che si rispetti ha il suo amule installato come demone. Peccato che amule, come tutti i programmi di file sharing succhia-banda, possono renderci la navigazione lenta anche quando non stiamo scaricando, o abbiamo pochi download in coda, dato che sfruttano la nostra banda in uscita per condividere i files scaricati. Di contro limitando molto la banda in uscita rischiamo di scaricare lentamente (politica di amule).

amule

Per ovviare a questo problemuccio ho scritto questo script che in base al numero dei download in coda, alza o abbassa i limiti di banda del nostro client peer-to-peer preferito, a patto che sia stato compilato con l’utility amulecmd, o, nel caso delle distribuzioni “a pacchetto”, sia installato il pacchetto relativo ad amulecmd.
Continue Reading »

Coders4fun Quiz #1

Categories: C, Quiz

Tags:

Cosa stamperà il seguente codice in c++?

#include <iostream>

int main()
{
	int i = 0;
	for (i = i == 0; i < 9; i = 1 + i * 2);
		std::cout<<i<<std::endl;
	return 0;
}

Si prega di non imbrogliare e di rispondere senza l’aiuto di nessun compilatore! :)

P.S.
Ovviamente l’esempio è compilabile!

Localizzazione di un progetto wx c++ (wx side)

Categories: C, Source Code

Tags:

Questo articolo presuppone la conoscenza di poEdit o di gettext trattati nel precedente articolo “Localizzazione di un progetto wx c++ (usare poEdit)”

wxWidgets

Aggiungere la localizzazione ad un programma scritto in wx è abbastanza semplice. Una volta ottenuti i files .po per tutti le lingue che vogliamo supportare, rinominiamoli con il nome della nostra applicazione e spostiamoli in subdirectory diverse per ogni linguaggio, esempio:

rootDelProgetto/locale/it
rootDelProgetto/locale/it_CH
rootDelProgetto/locale/en_US
rootDelProgetto/locale/en_GB

Continue Reading »

Viva firefox! :D

Categories: News, Site

Tags:

Questo post è dedicato a tutti gli utenti non-ie di coders4fun!
firefox batte ie

Grazie a tutti voi per questo importante risultato!!!

Localizzazione di un progetto wx c++ (usando poEdit)

Categories: C, Source Code

Tags:

In questi giorni febbrili per il primo rilascio di UsbAutostarter, progettino lasciato in asso per un po’, ma che finalmente sta per vedere la luce, ho dedicato il mio pochissimo tempo libero alla localizzazione del programmino, per poterlo uppare su sourceforge. Purtroppo, per un “wxWidgets esordiente” come me, le cose non sono mai semplici sia per la scarsa documentazione online, sia per i pochissimi esempi di codice che si trovano in giro. Fortunatamente molti dei meravigliosi programmi scritti in wx sono open e sbirciando nel codice di amule, sono riuscito a capire come localizzare il progetto wx.

Logo poEdit

Innanzitutto dobbiamo predisporre all’internazionalizzazione i sorgenti del progetto: per distinguere le stringhe da localizzare con quelle che invece devono rimanere invariate, useremo la macro _(). Per es:

...
wxMessageBox( _("testo da localizzare") );
...
wxMessageBox( wxT("testo invariato") );

Continue Reading »

Nuova versione della classe MySQLDump per il backup di DB MySQL

Categories: MySQL, Source Code, php

Tags:

Guest post di Daniele

Oggi vi presento la nuova versione (2.0) della classe MySQLDump già introdotta da questo articolo nel quale si spiega come utilizzare questo strumento per semplificare il backup di database MySQL mediante pagine php.

I miglioramenti non sono molto numerosi dato che si partiva dal già ottimo lavoro di inandrea ma penso possano rivelarsi abbastanza utili: ora è infatti possibile esportare struttura e/o dati non solo dell’intero database selezionato ma anche di una singola tabella.

Ipotizziamo di avere un database denominato ‘ilmiodatabase’ e, all’interno di questo la tabella ‘lamiatabella’. Ora vediamo come esportare struttura e dati per la nostra tabella. (Attenzione che l’interfaccia della classe è leggermente cambiata rispetto alla precedente versione).

//Includo la libreria
@include_once('lib_dump.php');
//Connessione al database
$connection = @mysql_connect('127.0.0.1','username','password');
//Creazione di una istanza della classe MySQLDump
//1° parametro: il nome del database da esportare
//2° parametro: il file che conterrà il dump
//3° parametro: il tipo di file creato (true = compresso, false = semplice)
//4° parametro: la codifica dei dati (true = esadecimale, false = plain text)
$dumper = new MySQLDump('ilmiodatabase','filedidump.sql',false,false);
//Espotazione della struttura della tabella 'lamiatabella'
$dumper->getTableStructure('lamiatabella');
//Espotazione dei dati contenuti nella tabella 'lamiatabella'
$dumper->getTableData('lamiatabella');

Continue Reading »

Wordpress Plugin: Wiki-Dashboard 0.1

Categories: News, Source Code, Wiki-Dashboard, Wordpress, php

Tags:

Wiki-Dashboard è un plugin per Wordpress che permette di avere uno spazio condiviso tra tutti gli autori di un blog per potersi scambiare delle note a ‘mo di wiki, ma può risultare utile anche nei blog mono-autore, permettendo di avere una sorta di blocco note dove si possono prendere appunti.

Funzionalità del plugin:

  • Testo dove poter scrivere le note in una sottopagina della bacheca
  • Il testo è condiviso tra tutti gli autori del blog, e tutti possono modificarlo
  • Parser bbCode per la formattazione del testo
  • Supporto per l’internazionalizzazione

Screenshots:
Wiki-Dashboard mostra il testo:

Wiki-Dashboard View

Wiki-Dashboard durante l’editing del testo:
Wiki-Dashboard Edit
Continue Reading »

Interfaccia alla classe MySQLDump per il backup

Categories: MySQL, Source Code, Web, php

Tags:

La classe MySQLDump è stata aggiornata a una nuova versione e questo articolo contiene informazioni obsolete. Per informazioni sulla nuova versione controllare l’articolo sulla nuova versione

Dopo il successo dell’articolo Backup di un database mysql da php, ho deciso di scrivere un piccolo post su un file che può ritornare utile per scaricare il backup del db di un sito o di un blog wordpress direttamente dal browser.
Per usare lo script, basta semplicemente scaricarlo e modificare le prime linee, dove è contenuta la configurazione:

// Configurazione del DB
$server = "IP del server (localhost dovrebbe andare bene nella maggior parte dei casi=";
$username = "Nome utente del db";
$password = "Password del db";
$dbToDump = "Nome del db di cui fare il dump";
// password per accedere alla pagina php. Ricordati di cambiare la password di default!!!
$backupPassword = "UltraSecretKeyThatYouMUSTInsertHere";
// nome del file in cui salvare il backup
$filename = "backup.sql.gz";

Dopo ciò, si può uploadare il file nel server, nella stessa cartella dove è presente la classe MySQLDump.
Per accedere allo script bisogna specificare due parametri: la password per accedere allo script (pass), e un altro parametro (t) che se è 1 separerà le SQL insert ogni 100 righe.
Per esempio, se si è uploadato il file nella directory principale del sito, basta scrivere nella barra degli indirizzi del browser:

http://www.iltuosito.it/backup.php?pass=UltraSecretKeyThatYouMUSTInsertHere&t=1

…e il browser aprirà la finestra di dialogo per scaricare il file con il backup del db!

Download MySqlDump Interface.php. Downloads: 430

Per ulteriori informazioni sulla classe MySQLDump, leggere l’articolo originale, o scaricare il sorgente da qui:

Download MySQLDump. Downloads: 1973

Stringa auto-dimensionante in c

Categories: C, Source Code

Tags:

In questo articolo spiegherò come creare una struttura con relative funzioni associate per permettere di utilizzare una stringa che incrementi la sua dimensione appena lo spazio allocato non basta più per conservare i caratteri, utilizzando soltanto le caratteristiche del linguaggio c (niente classi quindi).
Una stringa del genere è molto utile nei casi dobbiamo lavorare con stringhe di cui non si conosce a priori la lunghezza (per es. una stringa letta da un file xml): possiamo quindi leggere i caratteri ad uno ad uno fino a quando non arriviamo alla fine della stringa, senza preoccuparci dell’allocazione della memoria.
Innanzitutto analizziamo la struttura dati che definisce la stringa autoincrementante:

// Struct containing the growing string
typedef struct
{
	// stringa
	char * text;
	// lunghezza della stringa (comprensiva dello zero terminatore)
	int length;
	// capacità della stringa
	int capacity;
} growing_string;

La variabile text sarà il posto dove effettivamente andremo ad allocare la stringa, length indicherà la lunghezza della stringa corrente mentre capacity la memoria allocata per la stringa.
Per capire meglio la differenza tra length e capacity guardiamo la prossima immagine:

Capacity-Length

Capacity rappresenta quindi lo spazio allocato in memoria per la stringa, mentre length rappresenta il numero di caratteri effettivamente occupati (comprensivo di zero terminatore). Si capisce facilmente che se si aggiungono abbastastanza caratteri da fare in modo che length sia maggiore di capacity, allora bisogna riallocare lo spazio di memoria in modo da far entrare più caratteri.
Continue Reading »

Come realizzare stampe in formato A3 con Crystal Report

Categories: .NET, C

Tags:

Da qualche settimana ho cominciato ad utilizzare per lavoro la versione di Crystal Report fornita in bundle con Visual Studio 2005. Devo dire che è uno strumento potente, che consente di realizzare report di diversa natura e tipologia rimanendo all’interno dell’ambiente .NET e non dovendo ricorrere ad applicativi esterni verso cui esportare i dati, come Excel.
Ciò nonostante, a mio avviso questo applicativo possiede delle pecche che mi auguro possano essere risolte nelle release successive.
Una cosa che mi ha letteralmente fatto uscire di senno è stata la realizzazione delle stampe di grafici in formato A3. Spesso infatti i dati che intendiamo visualizzare su un grafico sono molti e la stampa in formati di dimensione inferiore, come l’A4, non consente di ottenere una rappresentazione nitida e precisa.

Grafico Crystal Report

La cosa triste che ho potuto constatare è che Crystal Report imposta automaticamente lo spazio per realizzare il progetto del report in relazione ai settings della propria stampante installata. Mi spiego meglio: se la stampante che ho installata sul mio PC non supporta la stampa in formato A3, non mi è possibile effettuare progetti dei report di dimensione A3.
Questo fatto è molto limitante per diverse ragioni. Intanto perchè spesso i report creati non necessitano di essere stampati su carta ma basta soltanto che siano visualizzati sul monitor dell’utente, e quindi non vedo la ragione per cui se non devo stampare un report non devo neanche poterlo progettare in quel formato. Un altro motivo consiste nel fatto che le impostazioni della stampante eventualmente installata sul PC dello sviluppatore, non è detto che corrispondano con quelle delle eventuali stampanti installate sui PC degli utenti reali del software.
Continue Reading »

« Prev - Next »