Archivio

Archivio per la categoria ‘Programmazione’

Android una nuova Tecnologia targata Google

13 novembre 2007 2 commenti

Dopo tanto parlare dell’imminente uscita di un telefonino targato Google, il gigante del Web ha mostrato al mondo la sua “mossa” sul fronte telefonia, niente hardware per ora, ma solo una nuova tecnologia software chiamata Android. Questa tecnologia sarà comune a molti produttori sarà infatti un vero e proprio sistema aperto che porterà almeno si spera, una boccata fresca nel mondo della telefonia e permetterà di sviluppare applicazioni molto interessanti. La BigG ha già rilasciato un’sdk per lo sviluppo e ci mostra questa nuova tecnologia in un video dimostrativo.

Spero di riuscire di trovare del tempo per mettere le mani su questa nuova tecnologia e di postare il prima possibile del codice a riguardo :-)

Come sempre:
Stay Tuned!!!!

Fonte: PuntoInformatico.it

Technorati Tags: , ,

Categorie:Blog, Programmazione, Tecnologia Tag:

Effettuare Logging in .NET con Apache log4net

6 novembre 2007 Nessun commento

Per un’applicazione molto semplice sviluppata in .NET dovevo eseguire il log di tutto quello che l’Applicazione eseguiva, permettendone il controllo. Dopo aver provato a creare dei log fatti “a mano” mi sono ricordato della librearia di logging sviluppata da Apache e l’ho inserita nel mio progetto, metteno infatti a disposizione una pratica dll da incorporare. L’utilizzo è molto semplice (ma presenta notevoli opzioni e possibilità di effettuare il logging in vari modi) basta infatti inserire il markup dell’assembly in questo modo:

[assembly: log4net.Config.XmlConfigurator(Watch=true)]

e configurare il codice in modo da creare un reference al Log(un possibile esempio):

   public class Log    {       public readonly ILog logger;


       public Log() {


           logger = LogManager.GetLogger
           (System.Reflection.MethodBase.GetCurrentMethod()
            .DeclaringType);


           logger.Info("Logger inizializzato");


       }


    } 

Utilizzando la Reflection si crea inoltre un codice portabile in ogni applicazione, basta infatti creare questa Classe ed accedere all’oggetto logger per poter generare dei messaggi di log:

logger.Warn("Eccezione")

Un’altra fase fondamentale del logging tramite log4Net è la configurazione dell mezzo su cui loggare, il metodo più semplice è l’Output a Console ma di maggiore utilità è l’Output su file di Testo. Vediamo come:

Il modo più semplice è quello di utilizzare il file di Configurazione presente nella propria Applicazione nel caso di Applicazioni Windows basta aggiungere al file App.Config questo codice all’interno della sezione <configuration></configuration>:

   <configSections>
      <section name="log4net"
      type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
 <log4net>
    <appender name="RollingFile"
       type="log4net.Appender.RollingFileAppender">

      <file value="C:\Log\App.log" />
      <appendToFile value="true" />
      <maximumFileSize value="1KB" />
      <datePattern value="yyyyMMdd-HHmm" />
      <maxSizeRollBackups value="2" />
     <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %level %logger - %message%newline" />
      </layout>
    </appender>    <root>
     <level value="ALL" />
   <appender-ref ref="RollingFile" />
   </root>
 </log4net>

Con questa configurazione si ha quindi un log su file di Testo, che non appena il file supera la dimensione scelta in maximumfileSize ne crea un’altro, evitando di creare file di log di dimensioni enormi. Questa è solo una delle possibili configurazioni della libreria Apache log4net, maggiori informazioni e dettagli possono essere reperite qui.

Maggiori Dettagli

Buon Log a Tutti :-)

SQL Injection!!!!

13 settembre 2007 Nessun commento

Sono praticamente a secco di tecniche di Hacking ma una serie di post che ho trovato girovagando per Internet mi hanno convinto ad approfondire l’argomento sulla SQL Injection. Praticamente questa tecnica si utilizza principalmente in tutti quei siti web dinamici che hanno del codice lato server (php,ASP,JSP etc) che accede ad un database sottostante per inserire ed autenticare gli utenti del sistema. In pratica una volta inseriti la USER e la PWD in un form, il codice li passa ad un DB SQL tramite una classica query del tipo SELECT field wher USER=”valore inserito nel form” AND PWD=”valore inserito nel form” e qui sta la tecnica del SQL injection, molti db per esempio l’ottimo mySQL hanno sempre un utente root nel sistema quindi il primo campo del form nel sito web possiamo riempirlo con questo dato, per quanto riguarda la password possiamo inserire una cosa di questo tipo 123′ or ’1′ =’1 in questo modo riformulando la query andiamo ad inserire una pwd che crea un’affermazione sempre vera che ci da accesso al sito web. Questa tecnica può essere facilmente aggirata dagli sviluppatori del sito, validando i campi o inserendo delle sequenze di escape che eliminano la condizione in OR.

PS:Questo post è solo un modo per far capire a chi sviluppa siti web, quanto sia importante la sicurezza e non certo un modo per creare problemi a qualcuno.

Maggiori Informazioni sulla tecnica.

Un modo per proteggersi (php).

Categorie:Blog, Java, Programmazione, Sicurezza Tag:

Percorsi Formativi Microsoft

29 luglio 2007 Nessun commento

Una serie di lezioni video (Webcast) per tutti coloro che desiderano conoscere le prinicipali tecnologie di sviluppo software, legate al colosso di Redmond.

PS: Il formato video di questi video (webcast) non è compatibile né con la piattaforma Mac né con quella Linux, in quanto i filmati utilizzano un codec proprietario Microsoft, non ancora disponibile sui player OpenSource (VLC incluso) :-( (.

Per chi può!!!!

Buona Lezione.

Technorati Tags: , ,

Powered by ScribeFire.

Categorie:.Net, Blog, Programmazione Tag:

Cosa conoscere per lavorare nel grande mondo dell’Informatica? Qualcuno prova a rispondere!!!

14 giugno 2007 Nessun commento

Questa domanda, specialmente per chi come me, inizia ora a lavorare nel mondo dell’IT, è molto ricorrente. Non si può infatti pretendere di conoscere i vari framework di sviluppo, le varie tecnologie (.NET,J2EE etc) in breve tempo; bisogna scegliere e chi come sempre la fa da padrone, è il mercato. Qualcuno ha analizzato le varie richieste di lavoro (relative all’Australia ma valide un pò dappertutto) e ne ha fatto uno studio interessante, corredato da grafici.

Powered by ScribeFire.

Categorie:Blog, Programmazione, World Tag:

Creare il Web Con Ruby On Rails

26 maggio 2007 Nessun commento

Ruby on Rails il nuovo framework per creare applicazioni Web, utilizzando il classico approccio MVC (Model View Controller). Il framework sfrutta le potenzialità di Ruby il linguaggio ad oggetti OpenSource; famoso per la sua semplicità ma allo stesso tempo molto completo e strutturato.  Rails  smplifica notevolmente lo sviluppo di applicazioni Web, proponendo al programmatore una serie di passi tipici per chi crea questo genere di applicazioni. La parte di accesso ai dati nel database per esempio viene notevolmente semplificata, non necessitando infatti né la scrittura a mano di codice SQL (comunque possibile per chi è un fan dell’SQL) né la creazione di file di mapping tra classi e tabelle nel DB come avviene in Hibernate.

Ci sono poi moltissime altre funzionalità tutte da scoprire che rendono Rails molto appetibile, basti solo pensare che Apple lo includerà quasi sicuramente nella sua prossima release di Macosx e la rivista Oracle Magazine gli ha già dedicato in diversi numeri molti articoli di Tutorial.

Per approfondire e metterci le mani :-) )

Guida in Italiano (HTML.it)

Framework All in One per Macosx (Locomotive)

MySql5 Download

Good Code Folks :-) )

Categorie:Blog, Programmazione, Web Tag:

Ajax Prima Parte!!

25 maggio 2007 1 commento

Ajax: tutti conoscono quest’acronimo ormai, la tecnologia mostrata al mondo da Google ma inventata non si sa bene da chi (Microsoft forse :-( () sta riscuotendo grande notorietà. Ajax riesce infatti in modo non troppo complesso ad eliminare tutte le problematiche di gestione dei dati client-server, rendendo le WebApplication sempre più simile alle classiche applicazioni desktop side. Andiamo dunque a vedere un piccolo esempio di come la tecnologia funziona, Ajax utilizza il linguaggio JavaScript di Netscape per la programmazione lato client e si appoggia ad uno qualsiasi dei framework lato server (JSP-ASP-ASP.NET-PHP etc). Nell’esempio verrà utilizzato il framework JSP-Servlet che io conosco meglio :-) . In questo piccolo frammento di codice usiamo Ajax per inserire e farci restituire una stringa di testo senza la necessità di dover ricaricare la pagina!!!!

CODICE LATO CLIENT

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title>INVIO DI DATI Tramite Ajax</title>

<script type=”text/javascript”>
var xmlHttp;

function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject(“Microsoft.XMLHTTP”); //creo l’oggetto XMLHttpREquest
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}

function createQueryString() {
var firstName = document.getElementById(“firstName”).value;
var middleName = document.getElementById(“middleName”).value;
var birthday = document.getElementById(“birthday”).value;

var queryString = “firstName=” + firstName + “&middleName=” + middleName
+ “&birthday=” + birthday;

return queryString;
}

function doRequestUsingGET() {
createXMLHttpRequest();

var queryString = “GetAndPostExample?”;
queryString = queryString + createQueryString()
+ “&timeStamp=” + new Date().getTime();
xmlHttp.onreadystatechange = handleStateChange; //gestisco lo stato di XMLHttpRequest nel Get
xmlHttp.open(“GET”, queryString, true);
xmlHttp.send(null);
}

function doRequestUsingPOST() {
createXMLHttpRequest();

var url = “GetAndPostExample?timeStamp=” + new Date().getTime();
var queryString = createQueryString();

xmlHttp.open(“POST”, url, true);
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.setRequestHeader(“Content-Type”, “application/x-www-form-urlencoded”);
xmlHttp.send(queryString);
}

function handleStateChange() {
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
parseResults();
}
}
}

function parseResults() {
var responseDiv = document.getElementById(“serverResponse”);
if(responseDiv.hasChildNodes()) {
responseDiv.removeChild(responseDiv.childNodes[0]);
}

var responseText = document.createTextNode(xmlHttp.responseText);
responseDiv.appendChild(responseText);
}

</script>
</head>

<body>
<h1>Inserisci il tuo nome, cognome e data di nascita:</h1>

<table>
<tbody>
<tr>
<td>Nome:</td>
<td><input type=”text” id=”firstName”/>
</tr>
<tr>
<td>Cognome:</td>
<td><input type=”text” id=”middleName”/>
</tr>
<tr>
<td>Data di Nascita:</td>
<td><input type=”text” id=”birthday”/>
</tr>
</tbody>

</table>

<form action=”#”>
<input type=”button” value=”Send parameters using GET” onclick=”doRequestUsingGET();”/>

<br/><br/>
<input type=”button” value=”Send parameters using POST” onclick=”doRequestUsingPOST();”/>
</form>

<br/>
<h2>Server Response:</h2>

<div id=”serverResponse”></div>

</body>
</html>

CODICE LATO SERVER “SERVLET”

import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class GetAndPostExample extends HttpServlet {

protected void processRequest(HttpServletRequest request,
HttpServletResponse response, String method)
throws ServletException, IOException {

//Set content type of the response to text/xml
response.setContentType(“text/xml“); // invio dati in formato XML

//Get the user’s input
String firstName = request.getParameter(“firstName”);
String middleName = request.getParameter(“middleName”);
String birthday = request.getParameter(“birthday”);

//Create the response text
String responseText = “Hello ” + firstName + ” ” + middleName
+ “. Your birthday is ” + birthday + “.”
+ ” [Method: " + method + "]“;

//Write the response back to the browser
PrintWriter out = response.getWriter();
out.println(responseText);

//Close the writer
out.close();
}

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//Process the request in method processRequest
processRequest(request, response, “GET”);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//Process the request in method processRequest
processRequest(request, response, “POST”);
}
}

Il codice è molto semplice e di facile comprensione, spero che il piccolo esempio possa far capire a tutti che Ajax è un paradigma di programmazione Web di facile comprensione, ma che apre scenari, davvero interessanti nel mondo delle Applicazioni Web.

Good Code Folks :-) )

Categorie:Blog, Java, Programmazione Tag:

Java vs Ruby On Rails

18 maggio 2007 Nessun commento

[youtube=http://www.youtube.com/watch?v=PQbuyKUaKFo]
Il Famoso linguaggio per il Web Ruby On Rails attacca il grande Java in uno spot in puro stile  Apple “Get a Mac”.

Guardatelo!!!!

Categorie:Blog, Programmazione, Web Tag:

La Potenza del Web 2.0!!!

11 maggio 2007 Nessun commento

Navigando ho trovato in un blog, questo simpatico link che fornisce un’elenco di un numero elevato di applicazioni che girano direttamente sul proprio browser, ce ne sono di moltissimi tipi e categorie, dateci un’occhiata potreste trovarne una che fa al caso vostro!!!

Categorie:Blog, Programmazione, Tecnologia Tag:

Sun muove guerra ad Ajax e SilverLight!!!

9 maggio 2007 Nessun commento

La notizia che aspettavo :) ) dopo l’arrivo di SilverLight ed il massivo utilizzo di Ajax nelle applicazioni del web 2.0 anche Sun vuole mettersi in lizza con una sua tecnologia
proprietaria che si chiamerà JavaFx e verrà integrata in tutto il framework Java, dando agli sviluppatori notevoli possibilità grafiche, che adesso sono assenti nelle tecnologie java per il Web!!!

E’ proprio il caso di dire:

Good Code Folks!!!

JavaFX

Fonte PuntoInformatico.it

Categorie:Blog, Java, Programmazione Tag: