-
Closure in Java: fast and nice!
Feb 26, 2010 · 4 min readprogramming_languages en evergreen lang · closure functional-java functional-programming html http java·I have decided to re-cook this subject, adding a my specialized Example also.
Let’s start!
Read More -
Erlang Book Review
Jul 19, 2009 · 7 min readen erlang featured lang reviews software · books development erlang framework functional-programming guide http ideas internet java oreilly performance programming-languages·
After reading an interesting article on Erlang and Java interoperability, I have decided to dedicate my spare time to Erlang.
O’Reilly has just published a wonderful book on Erlang, so I decided to dive into it.
Read More -
As processors become faster and multiprocessor systems become cheaper, the need to take advantage of multithreading in order to achieve full hardware resource utilization only increases the importance of being able to incorporate concurrency in a wide variety of application categories.
In this article we are evaluting a new approach to the concurrency. In the last five years computers are becoming even more parallel. Intel is pushing multi-core achiteture also on commodity personal computers. Neverless the computing power is ofter not well used: one again, hardware is a step head of our day-by-day software development. Remember when the 80286 came into light. The 286 was able to provide a multi-programming architecture but without memory management protection. We had to wait 386 hardware to see software working on preemptive multi-tasking, because software cannot cope with unprotected memory. In one word, it costs too much to develop a operating system without the new features the 80386 bring to us. What about concurrent programming? Can we look similarities in the concurrency field?
Read More -
Working for a very big customer, I found a very nasty interaction between Sun HttpClient (JDK 1.4) and Http Load Balancers.
Read More -
There is a future for SmallTalk? I was a very strong fan of the SmallTalk language, but in the last five years I have seen more and more contraction of its usage in the IT field.
Read More -
We read in wikipedia:
"Mac OS X is the successor to the original Mac OS, which had been Apple's primary operating system since 1984 [...] The first version released was Mac OS X Server 1.0 in 1999, and a desktop-oriented version, Mac OS X v10.0 followed in March 2001"
The funny thing about MacOSX launch was the huge hype on the retail box: it was named "The world's most advanced operating system" and really it was very huge leap ahead.
Read More -
Dynamic languages troubles
Jan 30, 2008 · 3 min readblog-objectsrootcom en software · again ant api arc build business car code complex database design easy eclipse example fix hard hosting http ibm import java lion microsoft perl php plugin project projects python ruby simple small smalltalk sql system tools trouble ui unix war web world·
I have read http://www.manageability.org/blog/stuff/chandler-failure and I think it is very danger way of exposing concepts.
Read More -
public static final String convertToString(HttpServletRequest request) {
StringBuffer msg = new StringBuffer();
try {
msg.append("*RequestURI:" + request.getRequestURI() + "\n");
msg.append("*ContentType:" + request.getContentType() + "\n");
msg.append("== Request Header\n");
Enumeration headers = request.getHeaderNames();
while (headers.hasMoreElements()) {
String headerName = "" + headers.nextElement();
msg.append(headerName + ":" + request.getHeader(headerName) + "\n");
}
msg.append("\n");
Enumeration attr = request.getParameterNames();
ArrayList l = new ArrayList();
String att;
while (attr.hasMoreElements()) {
att = (String) attr.nextElement();
l.add(att + " -> " + request.getParameter(att));
}
msg.append("=== Request ( " + l.size() + " ) ===\n");
Object a[] = l.toArray();
Arrays.sort(a);
for (int i = 0; i < a.length; i++) {
msg.append((String) a[i]);
msg.append("\n");
}
msg.append("=== === ===\n");
// Process the Session
HttpSession session = request.getSession();
// msg.append("\n");
Enumeration e = session.getAttributeNames();
TreeMap t = new TreeMap();
String k;
while (e.hasMoreElements()) {
k = (String) e.nextElement();
Object oggetto;
try {
oggetto = session.getAttribute(k);
} catch (Throwable notSerializableException) {
oggetto = "NON DESERIALIZZABILE. Chiave:" + k;
}
t.put(k, oggetto);
}
Object orderedKeys[] = t.keySet().toArray();
msg.append("=== Session ( " + orderedKeys.length + " " + (usertempz != null ? "+ 1UT" : " NO UT!") + " )===\n");
Object elem;
for (int i = 0; i < orderedKeys.length; i++) {
elem = t.get(orderedKeys[i]);
msg.append(orderedKeys[i]);
msg.append("\t-> ");
if (elem != null) {
nicePrintSessionObj(msg, elem);
} else {
msg.append("null");
}
msg.append("\n");
}
return msg.toString();
} catch (RuntimeException e) {
return msg + "\nERR: Cannot print session/request!!" + e.getMessage();
}
} -
Ma come fare a gestire la biancheria in questi casi? Ebbene il vostro mentore (cioè io...) ha la soluzione. Grazie a Radio Deejay, ho scoperto il seguente fantastico servizio: http://www.stendibiancheria.net/
che vi dice quando vi conviene stendere la biancheria. Questo modesto servizio, migliora le probabilià di essere più puliti del solito, ed evita che i panni bianchi si sporchino senza una valida ragione.
Read More -
Celeste
Celeste is a mail reading and organizing program. The name "Celeste" is a reference to an earlier mail reader named Baba, which was written at Xerox PARC by Steve Putz and John Maloney.
Nowadays, Celeste is maintained by Giovanni Giorgi (me).Latest Feature
A new revision is planned for the end of September 2006, and code name will be "Sonic". Sonic will include a smart mailing-list filter and a better "leave message on server" option. I implemented years ago an auto-filtering system in AppleScript. The filtering engine used the RFC2369 and some other tricks to detect yahoo mailing list. Sonic will have also an auto-filter for google mailing list too.The leave message on server option is quite bad now. It creates a lot of duplicated messages.
The new implementation will avoid dowloading twice a message, using a mix of messageId and timestamp to detect duplicated messages.
Read More