UltimoMemo in tutti i linguaggi del mondo
E cosรฌ arrivรฒ l’ennesimo momento di saluti, abbracci e invio dell’ultimo memo. Forse qualcuno non lo sa, ma in Accenture ed in molte altre aziende, esiste l’usanza dell’UltimoMemo. Praticamente l’ultimo memo non รจ altro che una email, generalmente inviata l’ultimo giorno di lavoro a tutto il personale dell’azienda (all personal) o ad un gruppo di colleghi, contenente un messaggio di saluto, di ringraziamento, contenente inoltre i nuovi contatti e spesso una valanga di lamentale e randellate varie sparate a tutti. L’ultimo memo, secondo me รจ molto importante sia da un punto di vista di educazione (banalmente si saluta tutti) e sia perchรจ si ha pubblicamente la possibilitร di dire quello che si pensa (piรน o meno…) e che non si รจ mai riusciti a dire.
Ieri per me รจ stato l’ultimo giorno di lavoro in archebit e, anche se qui non c’รจ mai stata questa usanza, io ho scritto una mail di ultimomemo, non troppo polemica e diversa dal solito messaggio che vi riporto qui di seguito. L’oggetto era “Ultimo memo 2.0“:
<%
‘ *******************************************************************************
‘ * Author:ย ย ย ย ย ย ย ย ย ย Fabio Lalli
‘ * Versione:ย ย ย ย ย ย ย 2.0
‘ * Data:ย ย ย ย ย ย ย ย ย ย ย 31/03/2010
‘ * Titolo:ย ย ย ย ย ย ย ย ย ย ย ย Ultimo Memo
‘ * Linguaggio:ย ย ย vbscript / asp 3.0 – amarcord
‘ * Descrizione:ย ย Contiene lo script per la generazione dell’ultimo memo e
la disintallazione delle librerie installate
‘ * ATTENZIONE: bisogna avere la libreria Archebit installata ๐‘ ********************************************************************************
‘ * Creo l’oggetto per l’ultimo memo
set UltimoMemo = CreateObject(“Archebit.UltimoMemo”)‘ * Apro la comunicazione
UltimoMemo.Open()‘ * Definisco il messaggio
UltimoMemo.Message(“
Ciao a tutti.
Come piรน o meno tutti giร sapete oggi รจ il mio ultimo giorno di lavoro in azienda e per la seconda volta, a distanza di 5 anni, mi trovo a scrivere di nuovo qualche riga di saluti in Archebit.
Questi due anni di lavoro sono stati molto importanti per la mia crescita professionale: il confronto, la discussione e le incompresioni, gli scazzi e le delusioni, la condivisione di idee, le riflessioni e i momenti “brainsharing” durante i pranzi romani sono stati belli, affascintati, coinvolgenti e formativi.
Approfitto di questo ultimomemo per chiudere questa mia seconda parentesi con un grazie enorme rivolto a tutti, sia alle persone con le quali ho lavorato a stretto contatto sia agli altri, con i quali ho condiviso anche solo qualche momento al telefono o al caffรจ. Grazie a tutti perchรจ da tutti penso di aver imparato qualcosa, negativa o positiva che sia. Veramente.
Dal momento che come sapete vivo di web, i miei riferimenti non li troverete in questa email. Li troverete tutti (cellulare, mail, skype, msn…) in rete, su Facebook sopratutto, e su tutti gli altri social network. Se non siete assidui frequentatori di questi ambienti potete sempre cercare su Gooooogle (Fabio Lalli). Se vi interessa sapere quello che farรฒ nella vita professionale potete cercarmi su Linkedin.
A presto, tanto … questo mondo รจ piccolino. In bocca al lupo a tutti.
Fabio Lalli
PS: ho messo il commento al codice di programmazione per i non addicted. Per i tecnici invece, vi avviso che il codice รจ stato debuggato ed รจ funzionante e questa email ne รจ la dimostrazione. Non lo eseguite nel debugger ๐“)
‘ * Invio il messaggio
UltimoMemo.Send()‘ * Rimuovo tutte le librerie installate ma non le reference di sistema
UltimoMemo.Remove()
‘ * Chiudo la comunicazione
UltimoMemo.Close()‘ * Distruggo l’oggetto affinchรจ non possa esser riutilizzato
setย UltimoMemo = nothing
%>
A seguito dell’invio, ho ricevuto alcune email e messaggi di risposta, da quelli di auguri ed in bocca al lupo fino a quelli che mi hanno emozionato per la grande dimostrazione di stima ed amicizia. Grazie a tutti, ma soprattuttoย Giuliano, Stefano, David e Sonia. Tra i messaggi che ho ricevuto perรฒ ce ne รจ stato uno che mi ha fatto veramente ridere e che non posso non pubblicare e ringraziare pubblicamente. E’ il messaggio di Matteo aka Code , che si รจ superato con una mail di risposta “a tono” dall’oggetto “Goodbye FLalli Collection” e che vi riporto qui di seguito:
… e io ti saluto con la “Goodbye FLalli Collection” Some โGoodbye FLalliโ programs in many more-or-less well known programming languages
ActionScriptย 3.0 var t:TextField=new TextField();
t.text=”Goodbye FLalli!”;
addChild(t);
Ada — Goodbye FLalli in Ada
with Text_IO;
procedure Goodbye_FLalli is
begin
Text_IO.Put_Line(“Goodbye FLalli!”);
end Goodbye_FLalli;
Algol-68 ( # Goodbye FLalli in Algol 68
# print((“Goodbye FLalli!”,newline))
)
Amiga-E -> Goodbye FLalli in Amiga-E
PROC main() IS WriteF(‘Goodbye FLalli\n’)
AppleScript— “Goodbye FLalli” in AppleScript:
display dialog “Goodbye FLalli”
ASP-C# <!– Goodbye FLalli for ASP.NET usingย C# –>
<% @ Page %>
<%= “Goodbye FLalli!” %>
ASP-VBS Goodbye FLalli for Microsoft ASP (in VBScript)
<%@ language=”vbscript” %>
<html><body>
<%
Response.write “Goodbye FLalli!”
%>
</body></html>
ASP.NET <!– Goodbye FLalli inย ASP.NET –>
<%= “Goodbye FLalli!” %>
Assembler-Intel ; Goodbye FLalli for Intel Assembler (MSDOS)
mov ax,cs
mov ds,ax
mov ah,9
mov dx, offset GOODBYE
int 21h
xor ax,ax
int 21h
GOODBYE:
db “Goodbye FLalli!”,13,10,”$”
Assembler-Linux ;; Goodbye FLalli for the nasm Assembler (Linux)
SECTION .data
msgย ย ย ย dbย ย ย ย ย “Goodbye FLalli”,0xa ;
lenย ย ย ย equย ย ย ย $ – msg
SECTION .text
global main
main:
movย ย ย ย eax,4ย ย ย ย ย ย ย ย ย ; write system call
movย ย ย ย ebx,1ย ย ย ย ย ย ย ย ย ย ; file (stdou)
movย ย ย ย ecx,msgย ย ย ย ย ย ย ย ; string
movย ย ย ย edx,lenย ย ย ย ย ย ย ย ; strlen
intย ย ย ย 0x80ย ย ย ย ย ย ย ย ย ย ; call kernel
movย ย ย ย eax,1ย ย ย ย ย ย ย ย ย ; exit system call
movย ย ย ย ebx,0
intย ย ย ย 0x80ย ย ย ย ย ย ย ย ย ย ; call kernel
Assembler-PDP11 ;ย ย ย ย ย ย Goodbye FLalli in Assembler for the DEC PDP-11 with the
;ย ย ย ย ย ย RSX-11M-PLUS operating system
;
.title Goodbye
.ident /V0001A/
.mcall qiow$s, exit$s
.psect $code,ro,i
start:ย qiow$s #5,#5,,,,<#str, #len, #40>
exit$s
.psect $data,ro,d
str:ย ย ย .ascii / Goodbye FLalli!/
len=.-str
.end start
Assembler-Win32 ; Goodbye FLalli in Assembler for the Win32 architecture
TITLE Goodbye FLalli in win32. Tasm
VERSION T310
Model use32 Flat,StdCall
start_code segment byte public ‘code’ use32
begin:
Call MessageBox, 0, offset sHallo, offset caption, 0
Call ExitProcess, 0
start_code Ends
start_data segment byte public ‘data’ use32
sHalloย db ‘Goodbye FLalli’,0
caption db “Hi”,0
start_data Ends
End begin
BASIC 10 REM Goodbye FLalli in BASIC
20 PRINT “Goodbye FLalli!”
C# // Goodbye FLalli in Microsoft C# (“C-Sharp”).
using System;
class GoodbyeFLalli
{
public static int Main(String[] args)
{
Console.WriteLine(“Goodbye FLalli”);
return 0;
}
}
C++ // Goodbye FLalli in C++ (pre-ISO)
#include <iostream.h>
main()
{
cout << “Goodbye FLalli!” << endl;
return 0;
}
C-ANSI /* Goodbye FLalli in C, Ansi-style */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
puts(“Goodbye FLalli!”);
return EXIT_SUCCESS;
}
Clipper // Goodbye FLalli in Clipper
? “Goodbye FLalli”
CLP /* Goodbye FLalli in CLP for the IBM AS/400 */
PGM
SNDPGMMSGย MSG(‘Goodbye FLalli !’) MSGTYPE(*COMP)
ENDPGM
ColdFusion <!—Goodbye FLalli in ColdFusion—>
<cfset message = “Goodbye FLalli”>
<cfoutput> #message#</cfoutput>
CommandScript #Goodbye FLalli in Command Script 3.1
#Meta.Name: “Goodbye FLalli”
#Block(Main).Start
echo “Goodbye FLalli!”
#Block(Main).End
CSS /* Goodbye FLalli in CSS */
body:before {
content: “Goodbye FLalli”;
}
dBase * Goodbye FLalli in dBase IV
? “Goodbye FLalli!”
Delphi // Goodbye FLalli in Delphi
Program Goodbye_FLalli;
{$APPTYPE CONSOLE}
Begin
WriteLn(‘Goodbye FLalli’);
End.
Fortran Cย ย ย ย Goodbye FLalli in Fortran
PROGRAM GOODBYE
WRITE (*,100)
STOP
100 FORMAT (‘ Goodbye FLalli! ‘ /)
END
GoogleGadgets <?xml version=”1.0″ encoding=”UTF-8″ ?>
<!– Goodbye FLalli as a Google gadget –>
<Module>
<ModulePrefs title=”Goodbye FLalli example” />
<Content type=”html”>
<![CDATA[
Goodbye FLalli
]]>
</Content>
</Module>
HP-48 <<
@ Goodbye FLalli for the HP-48
@ << and >> are one char each
“GOODBYE FLALLI”
>>
HTML <HTML>
<!– Goodbye FLalli in HTML –>
<HEAD>
<TITLE>Goodbye FLalli!</TITLE>
</HEAD>
<BODY>
Goodbye FLalli!
</BODY>
</HTML>
HyperTalk — Goodbye FLalli in HyperTalk
answer “Goodbye FLalli”
Informix-4GL # Goodbye FLalli in Informix 4GL
MAIN
DISPLAY “Goodbye FLalli”
END MAIN
Java // Goodbye FLalli in Java
class GoodbyeFLalli {
static public void main( String args[] ) {
System.out.println( “Goodbye FLalli!” );
}
}
Java-Server-Pages <!– Goodbye FLalli for Java Server Pages –>
<%@ page language=’java’ %>
<%=”Goodbye FLalli!” %>
Java-Servlet import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
//
// Goodbye FLalli Java Servlet
//
public class GoodbyeFLalli extends HttpServlet {
public void service(HttpServletRequest request,
HttpServletResponse response)
throws IOException {
response.setContentType(“text/html”);
PrintWriter out = response.getWriter();
out.println(“<html><body>”);
out.println(“Goodbye FLalli!”);
out.println(“</body></html>”);
}
}
JavaScript <html>
<body>
<script language=”JavaScript”>
// Goodbye FLalli in JavaScript
document.write(‘Goodbye FLalli’);
</script>
</body>
</html>
Kix ; Goodbye FLalli inย Kix
Run( “Notepad.exe” )
Sleep 1
SetFocus( “Untitled – Notepad” )
$ReturnCode = SendKeys(“Goodbye FLalli”)
Sleep( 2 )
$ReturnCode = SendKeys(“~{F4}Y”)
LaTeX % Goodbye FLalli! in LaTeX
\documentclass{article}
\begin{document}
Goodbye FLalli!
\end{document}
Lingo Goodbye FLalli in Lingo (Macromedia Director)
on startmovie
alert “Goodbye FLalli”
end
Lisp ;;; Goodbye FLalli in Common Lisp
(defun GoodbyeFLalli ()
(print “Goodbye FLalli!”)
)
Logo ; Goodbye FLalli in Logo
DRUCKEZEILE [Goodbye FLalli!]
MATLAB % Goodbye FLalli in MATLAB.
disp(‘Goodbye FLalli’);
Modula-2 (* Goodbye FLalli in Modula-2 *)
MODULE GoodbyeFLalli;
FROM InOut IMPORT WriteString,WriteLn;
BEGIN
WriteString(“Goodbye FLalli!”);
WriteLn;
END GoodbyeFLalli.
MSDOS @ECHO OFF
REM Goodbye FLalli for DOS batch
ECHO Goodbye FLalli!
Pascal {Goodbye FLalli in Pascal}
program GoodbyeFLalli(output);
begin
WriteLn(‘Goodbye FLalli!’);
end.
Perl # Goodbye FLalli in perl
print “Goodbye FLalli!\n”;
PHP <?php
// Goodbye FLalli in PHP
echo ‘Goodbye FLalli!’;
?>
PL-SQL — Goodbye FLalli in Oracle PL/SQL (sqlplus)
set serveroutput on
begin
dbms_output.enable(10000);
dbms_output.put_line(‘Goodbye FLalli’);
end;
/
Postscript % Goodbye FLalli in Postscript
%!PS
/Palatino-Roman findfont
100 scalefont
setfont
100 100 moveto
(Goodbye FLalli!) show
showpage
Prolog % Goodbye FLalli in Prolog
goodbye :- display(‘Goodbye FLalli!’) , nl .
Python # Goodbye FLalli in Python
print “Goodbye FLalli”
QuickBASIC REM Goodbye FLalli in QuickBASIC
PRINT “Goodbye FLalli!”
END
Rationalย Rose ‘ Goodbye FLalli inย Rational Roseย scripting language
Sub Main
RoseApp.WriteErrorLog “Goodbye FLalli”
End Sub
Rexx.simple /* Goodbye FLalli in Rexx, simple version (writes to standard output) */
say ‘Goodbye FLalli!’
exit
Smalltalk.simple “Goodbye FLalli in Smalltalk (simple version)”
Transcript show: ‘Goodbye FLalli!’.
SQL # Goodbye FLalli in SQL
SELECT ‘Goodbye FLalli’;
T-SQL — Goodbye FLalli in T-SQL
PRINT ‘Goodbye FLalli’
TeX % Goodbye FLalli in plain \TeX
\immediate\write16{Goodbye FLalli!}
\end
Turing % Goodbye FLalli in Turing
put “Goodbye FLalli!”
Unix-Shell # Goodbye FLalli for the Unix shells (sh, ksh, csh, bash, …)
echo ‘Goodbye FLalli!’
VBScript ‘ Goodbye FLalli in VBScript (Windows Scripting Host)
msgbox “Goodbye FLalli”
Visual-FoxPro *Goodbye FLalli in Microsoft Visual FoxPro 5-9
? “Goodbye FLalli!”
VisualBasic.NET ‘Goodbye FLalli in Visual Basic .NET (VB.NET)
Imports System.Console
Class GoodbyeFLalli
Public Shared Sub Main()
WriteLine(“Goodbye FLalli”)
End Sub
End Class
VisualBasic6 ‘ Goodbye FLalli in Visual Basic 6
Private Sub Form_Load()
Print “Goodbye FLalli”
End Sub
VVVV Goodbye FLalli in VVVV
wml # Goodbye FLalli in Wesnoth Markup Language (wml)
#define GOODBYEFLALLI
[message]
speaker=”narrator”
message=_”Goodbye FLalli”
[/message]
#enddef
XHTML <?xml version=”1.0″?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<!– Goodbye FLalli in XHTML –>
<html
xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title>
Goodbye FLalli!
</title>
</head>
<body>
<p>
Goodbye FLalli!
</p>
</body>
</html>
XQuery (: Goodbye FLalli with XQuery ๐
let $i := “Goodbye FLalli”
return $i
XSLT <?xml version=”1.0″ encoding=”UTF-8″?>
<!– Goodbye FLalli in XSLT –>
<xsl:stylesheet version=”1.0″ xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”>
<xsl:template match=”/”>
<xsl:text>Goodbye FLalli!</xsl:text>
</xsl:template>
</xsl:stylesheet>
Grandissimo Code. Un forte abbraccio a tutti e in bocca al lupo per tutto.