mercoledì 2 luglio 2014

Nota su copyright: linguaggi di programmazione, esempi e non solo

Mi è capitato di ricevere email su aggiunta di linguaggi di programmazione ed esempi non solo sul blog, ma anche su di una mia app "Code" presente sul market Android.
Purtroppo non tutti i creatori di linguaggi di programmazione rilasciano codice ed esempi in libera diffusione, ma applicano delle regole di copyright.
Ovviamente non posso leggere tutte le regole perchè sono numerosissime, ma credo sempre di agire in buon senso e fare il possibile.
Se però, come scrivo normalmente nelle app, venissero violate delle norme su contenuti o proprietà di alcuni linguaggi o imperfezioni di scrittura, posso provvedere alla rimozione o risoluzione dell'anomalia.
Mi è capitato anche di ricevere un'email doveva veniva richiesta la rimozione di alcune mie app in alcune nazioni perchè avevo utilizzato una parola o meglio l'associazione di più parole che violavano la proprietà intellettuale di chi aveva utilizzato le stesse per altri scopi (il tutto documentato ovviamente).
Che dire, a me è sembrata una po' esagerata la storia, giusta richiesta ma un po' esagerata.
Comunque ho provveduto alla rimozione delle app in alcune nazioni e rinominate le stesse app riutilizzandole in altri paesi.
Saggio consiglio: occhio ai nomi che usate!

martedì 24 giugno 2014

Upload di file multipli in .Net con c#

Con poche righe di codice è possibile eseguire upload di file multipli in un sito web su piattaforma .Net con linguaggio c#.
E' molto importante ricordare nel "form" la proprietà enctype="multipart/form-data" e nell'oggetto "input" la proprietà multiple="multiple"
Nell'esempio è presente la parte client/html (Default.aspx), il codice associato (Default.aspx.cs) e le immagini d'aiuto.

Default.aspx
<asp:%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>asp:
<asp:html xmlns="http://www.w3.org/1999/xhtml">asp:
<asp:head runat="server">asp:
    <asp:title>asp:<asp:/title>asp:
<asp:/head>asp:
<asp:body>asp:
    <asp:form id="form1" runat="server" enctype="multipart/form-data"  method="post" >asp:
        <asp:table cellpadding="2" cellspacing="1" width="740px">asp:
            <asp:tr>asp:
                <asp:td width="120px">asp:
                    <asp:input type="file" id="File1" multiple="multiple" name="File1" runat="server" />asp:
                <asp:/td>asp:
            <asp:/tr>asp:
            <asp:tr>asp:
                <asp:td align="left">asp:
                    <asp:asp:Button id="Manual" Text="Upload" runat="server" OnClick="Upload_Click"  />asp:
                <asp:/td>asp:
            <asp:/tr>asp:
            <asp:tr>asp:
                <asp:td colspan="4">asp:
                    <asp:asp:ListBox ID="list_message" name="list_message" runat="server" width="600px" Height="200px">asp:<asp:/asp:ListBox>asp:
                <asp:/td>asp:
            <asp:/tr>asp:
        <asp:/table>asp:
    <asp:/form>asp:
<asp:/body>asp:
<asp:/html>asp:
Default.aspx.cs
public partial class _Default : System.Web.UI.Page
{
    string pathFileUploaded = "c:\\temp\\";

    protected void Page_Load(object sender, EventArgs e)
    {}
 
    protected void Upload_Click(object sender, System.EventArgs e)
    {
        if ((File1.PostedFile != null) && (File1.PostedFile.ContentLength >asp: 0))
        {
            HttpFileCollection uploadedFiles = Request.Files;
            for (int i = 0; i <asp: uploadedFiles.Count; i++)
            {
                HttpPostedFile userPostedFile = uploadedFiles[i];
                try
                {
                    if (userPostedFile.ContentLength >asp: 0)
                    {
                        string fn = System.IO.Path.GetFileName(userPostedFile.FileName);
                        try
                        {
                            userPostedFile.SaveAs(pathFileUploaded + fn);
                            list_message.Items.Add(userPostedFile.FileName + " inviato.");
                        }
                        catch (Exception ex)
                        {
                           list_message.Items.Add("Errore: " + ex.Message);
                        }
                    }
                }
                catch (Exception Ex)
                {
                   list_message.Items.Add("Errore: " + Ex.Message);
                }
            }
        }
        else
        {
            list_message.Items.Add("Selezionare almeno 1 file.");
        }
    }
}



sabato 21 giugno 2014

Digital Generation e la piccola esagerazione

Primi di giugno del 2014: "carissimi....bla bla bla...visto che le uscite sono maggiori delle entrate... bla bla bla...quindi 150$ per 1 thread".
Dunque, da 50$ ciascuno passate a 150$??? E tra un po' l'impiego della CPU con la versione 4.x sarà minimo del 50% e non più del 10%?
Capisco che ora i thread portano in cassa 2$ al giorno anzichè 1$, ma forse è un pochino esagerato!
No, forse è meglio aspettare tempi migliori per lo sharing, le regole qui cambiano velocemente.

martedì 17 giugno 2014

Esempio di creazione file con VBScript

Tramite l'utilizzo dell'oggetto "FileSystem" in VBScript è possibile creare dei file su di una directory e inserire all'interno di essi del contenuto.
In questo esempio vengono creati 2 file xml.
Come lanciarlo? Semplice: creare un file sul desktop chiamato ad esempio "customers.vbs" ed editarlo; inserire queste righe; salvare e fare doppio click sul file appena creato.
Verranno creati due file sul percorso "C:\" (cambiare eventualmente il percorso di destinazione).

Dim xml
Dim oFS, oTextStream, fileName
dim i

For nfile=1 to 2 'It writes 2 file
 fileName="C:\\customers_" & nfile & ".xml"
 Set oFS = CreateObject("Scripting.FileSystemObject")
 If oFS.FileExists(fileName) = True Then 
  Set aFile = oFS.GetFile(fileName)
  aFile.Delete
 end if
 set oFS = NOTHING

 xml=""
 
 xml=xml+""
 For i=1 to 10 'It writes 10 elements
   xml=xml+" "
 next
 xml=xml+""

 set oFS = CreateObject("Scripting.FileSystemObject")
 set oTextStream  = oFS.OpenTextFile(fileName, 8, True)
 oTextStream.WriteLine(xml)
 oTextStream.Close
 set oTextStream  = NOTHING
 set oFS = NOTHING
 xml=""

next

WSCript.Echo "OK Done"
WScript.Quit