pratiche di programmazione ottime e l’uso di standard solidi e aggiornati. </p> <h2>Sviluppo per il Web</h2> <p> I miei servizi spaziano dalla progettazione e lo sviluppo da zero di applicazioni web per le PMI, siti internet/intranet aziendali o personali, allo sviluppo di soluzioni software personalizzate. Sono molto ferrato nello sviluppo LAMP, padroneggio Javascript con eccellente abilit� in AJAX. Il mio linguaggio principale per il web � il PHP, ma non disdegno altre tecnologie come Java, Ruby etc. </p> <h2>Sviluppo software Cocoa</h2> <p> Sono particolarmente bravo nello sviluppo Cocoa per il Mac. Dal 2005 ad oggi, ho scritto pi� di 10.000 linee di codice che gira ogni giorno su pi� di <?php $count = SoftwareArtifact::total_downloads(); $count_rounded = 1000 * floor($count / 1000); print number_format($count_rounded, 0, ',', '.'); ?> computer Macintosh<sup>(<a href="#note-1">1</a>)</sup> in ogni parte del mondo. Se hai bisogno di consulenza sullo sviluppo di applicazioni Cocoa per il Mac, potrei essere la persona giusta per te. </p> <h2>Localizzazione italiana</h2> <p> Ho gi� coordinato ed effettuato la localizzazione di svariate applicazioni da me sviluppate, ed inoltre ho contribuito a localizzare applicazioni di terzi in Italiano. Se avete bisogno di aiuto per localizzare la vostra applicazione in Italiano, sar� lieto di aiutarvi. </p>
/** * @fn download * @short Action method that performs the download of a software artifact. * @details For software artifacts that are locally hosted, a DownloadManager is instantiated and the download * is automatically started. For externally hosted artifacts, the client is redirected to the appropriate URL. */ public function download() { if (!empty($_REQUEST['id'])) { $artifact = new SoftwareArtifact(); if ($artifact->find_by_id($_REQUEST['id']) === FALSE) { HTTP::error(404); } $artifact->downloads++; $artifact->save(); if (self::SOFTWARE_SAVE_DOWNLOADS) { // Logs the download $download = new SoftwareDownload(); $download->artifact_id = $_REQUEST['id']; $download->save(); } // Expires the cache of Download Stats // Remember: Download Stats are cached by release_id $this->expire_cached_page(array('action' => 'download_stats', 'id' => $artifact->release_id)); if ($artifact->URL) { $this->redirect_to($artifact->URL); } else { $filename = $artifact->local_file(); if ($filename) { $dl_mgr = new DownloadManager($filename); $dl_mgr->start_download(); } } } $this->redirect_to(array('action' => 'index')); }
/** * @fn software_artifact_add * @short Action method to save a software artifact. */ public function software_artifact_add() { if (!isset($_POST)) { $this->redirect_to(array('action' => 'software_list')); } $artifact = new SoftwareArtifact($_POST); if (!isset($_POST['enabled'])) { $artifact->enabled = '0'; } if (!isset($_POST['visible'])) { $artifact->visible = '0'; } $artifact->save(); // Expires the cache of Software & Sparkle feeds $this->expire_cached_software_pages(); $this->redirect_to(array('action' => 'software_artifact_list', 'id' => $_POST['release_id'])); }