-
NILFS is a log-structured file system supporting versioning of the entire file system and continuous snapshotting, which allows users to even restore files mistakenly overwritten or destroyed just a few seconds ago.
Discussion on Hacker NewsNILFS was developed by NTT Laboratories and published as an open-source software under GPL license, and now available as a part of Linux kernel.
Read More -
K8s is a very complex beast. But it give you a very good set of security defaults, and it is also a very well done implementation of a microservice application.
Read More -
This weekend I enjoyed with NTT Hackathon. We developed a Microsoft Kinetic-powered store: you can see objects, consult a catalog via arm swipe, and order 3D prints via hand claps. 3D Printing was powered by OctoPrint after a bad experience with SkyForge. We hope SkyForge will be production-ready in a couple of software-iterations (their lack of a full WebService API is simple to fix).
Read More -
NTT and some partners, in a late paper to the ECOC 2012, show a successful transmission of 1 petabit per second data transfer over a 12-core optical fiber 52.4 km long.
Seen on SlashDot -
The real reason Git rocks
Feb 10, 2012 · 4 min read ·
I have learned Git. I forget about all my childhood for making space about all the magic, but I got it.
And I know because git rocks. The real reason Git rocks. And I will reveal you.
Read More -
The revamp of Jython 2.5, the python interpreter written in Java, is a very good news, because give us the chance to think of a new way of coding. Looking at Google trends, JRuby and Jython are emerging as key pieces of a new puzzle.
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();
}
}
Read More