10/27/09

Java Hashing

Java Hashing: "Every Java object has two very important methods i.e. hashCode() and an equals() method. These methods are designed to be overridden according to their specific general contract. This article describes why and how to override the hashCode() method that preserves the contract of HashCode.

Contract For HashCode The contract for hashCode says‘If two objects are equal, then calling hashCode() on..."



(Via Javalobby Front Page.)

10/26/09

The Problem With iPhone Killers…

The Problem With iPhone Killers…: "Here we are again. The hype leading up to a new mobile device is reaching a fever pitch. Motorola’s Droid sounds, looks, and by some accounts, is impressive. As such, everyone’s favorite superlative is being thrown out there once again: ‘iPhone killer.’ Of course, we’ve heard this before — maybe a dozen times. The BlackBerry Storm was the iPhone killer, the Palm Pre was the iPhone killer, the G2, etc. Not only does the iPhone still survive, it thrives. Why?"



(Via .)

10/25/09

Article:Modular Java: Static Modularity

Article:Modular Java: Static Modularity: "Modularity is an important aspect of large Java systems. Build scripts and projects are often split up into modules in order to improve the build, but this is rarely taken into account at runtime. This second part of the Modular Java series discusses static modularity, the creation of bundles, how to install them into an OSGi engine and how to set up (versioned) dependencies between bundles. By Alex Blewitt"



(Via InfoQ.)

My IT-blog » Dependency Injection with Google Guice by example

My IT-blog » Dependency Injection with Google Guice by example: "In this blogpost, I’ll explain Dependency Injection with Google Guice through a lot of examples. Hope you like it."



(Via My IT-blog.)

x86 Assembly for C Programmers 1 : endeavormac4

x86 Assembly for C Programmers 1 : endeavormac4: "Introduction
I’m writing a series of tutorials on x86 assembly for C programmers who are already familiar with many of the basics of programming and computing. The assembly tutorials available online just aren’t doing it for me, and I need something organized the way I think, on the topics I’m interested in, presented in a way which make comprehensive understanding easy. I’ll do the work, go find the answers, and then drop everything here for you to enjoy."



(Via endeavormac4.)

10/24/09

javamelody - Project Hosting on Google Code

javamelody -

Project Hosting on Google Code
: "The goal of JavaMelody is to monitor Java or Java EE applications servers in QA and production environments. It is not a tool to simulate requests from users, it is a tool to measure and calculate statistics on real operation of an application depending on the usage of the application by users.

JavaMelody is opensource (LGPL) and production ready: in production in an application of 25 person years. JavaMelody is easy to integrate in most applications and is lightweight (no profiling and no database)."


10/21/09

Refactoring SQL Applications - O'Reilly Media

Refactoring SQL Applications - O'Reilly Media: "Refactoring SQL Applications
ByStephane Faroult, Pascal L'Hermite
Publisher:O'Reilly Media
Released: August 2008
Pages: 304"



(Via .)

10/18/09

Reduce Linux power consumption, Part 2: General and governor-specific settings

Reduce Linux power consumption, Part 2: General and governor-specific settings: "This three-part series is your starting point for tuning your system for
power efficiency. In Part 2, follow a step-by-step guide on the general
settings of the Linux CPUfreq subsystem and get more details on the five
in-kernel governors -- performance, powersave, userspace, ondemand, and
conservative -- and their settings."



(Via developerWorks : Linux : Technical library.)

Learn Linux, 101: File and directory management

Learn Linux, 101: File and directory management: "You've probably heard that everything in Linux is a file,
so start on the right path with a solid grounding in file and directory
management -- finding, listing, moving, copying, and archiving.
You can use this material in this article to study for the LPI 101
exam for Linux system administrator certification, or just to learn for fun."



(Via developerWorks : Linux : Technical library.)

Reduce Linux power consumption, Part 3: Tuning results

Reduce Linux power consumption, Part 3: Tuning results: "This three-part series is your starting point for tuning your system for
power efficiency. In Part 3, the author compares the performance of the five
in-kernel governors in both tuned and untuned states to show you how to
optimize a Linux-based System x server."



(Via developerWorks : Linux : Technical library.)

Learn Linux, 101: Streams, pipes, and redirects

Learn Linux, 101: Streams, pipes, and redirects: "If you think streams and pipes make a Linux expert sound like a
plumber, here's your chance to learn about them and how to redirect and split
them. You even learn how to turn a stream into command arguments. You can
use this material in this article to study for the LPI 101 exam for
Linux system administrator certification, or just to learn for
fun."



(Via developerWorks : Linux : Technical library.)

Comment lines by Scott Johnson: Loading Java resource bundles via HTTP

Comment lines by Scott Johnson: Loading Java resource bundles via HTTP: "Learn how to load a Java resource bundle that resides in a different Web
application. Before Java Platform Standard Edition (Java SE) 6, support for
accomplishing this was not part of the JDK. But with the addition of the
ResourceBundle.Control class in Java SE 6, loading a 'remote' resource bundle became possible by simply extending the Control class and adding some custom code."



(Via developerWorks : Java technology : Technical library.)

Comment lines by Kevin Sutter: An update on Java Persistence API 2.0

Comment lines by Kevin Sutter: An update on Java Persistence API 2.0: "As the JPA Expert Group (JSR-317) nears completion of the JPA 2.0
specification, this article introduces you to some of the new concepts and features in this updated specification. It also explains how you can experience this new functionality with the Apache OpenJPA project, an open-source, robust, high performance, scalable implementation of the JPA specification."



(Via developerWorks : Java technology : Technical library.)

Dynamic, typesafe queries in JPA 2.0

Dynamic, typesafe queries in JPA 2.0: "A query for persistent Java objects is typesafe if a compiler can verify it for syntactic correctness. Version 2.0 of the Java Persistence API (JPA) introduces the Criteria API, which brings the power of typesafe queries to Java applications for the first time and provides a mechanism for constructing queries dynamically at run time. This article describes how to write dynamic, typesafe queries using the Criteria API and the closely associated Metamodel API."



(Via developerWorks : Java technology : Technical library.)

10/11/09

Presentation:The Agile PMO: Real Time Governance

Presentation:The Agile PMO: Real Time Governance: "The PMO needs to be aware of how well each project is performing at any given time. Agile practices give transparency, with clear reporting of what’s done, its cost, and how well constructed it is.

Learn how you can create a real-time governance capability that anticipates challenges, makes timely course corrections, and seizes opportunities to maximize the business impact of IT investments. By Ross Pettit and Jane Robarts"



(Via InfoQ.)

10/7/09

More precise BASH debugging

More precise BASH debugging: "
$ env PS4=' ${BASH_SOURCE}:${LINENO}(${FUNCNAME[0]}) ' sh -x /etc/profile



by David Winterbottom (codeinthehole.com) (Via Command-Line-Fu.)

10/6/09

memcached and Grails, Part 2: Integrating memcached into Grails

memcached and Grails, Part 2: Integrating memcached into Grails: "James Goodwill completes his two-part introduction to integrating
memcached and Grails with a sample Grails application and a Java-based memcached
client. Learn how to integrate Spymemcached into your Grails-built, contact-management
application, then try caching individual request results with memcached. You'll also
use the memcached client commands introduced in Part 1 to test the effectiveness of your new cache."



(Via developerWorks : Java technology : Technical library.)

10/5/09

Multithreading and the Java Memory Model

Multithreading and the Java Memory Model: "At the New England Software Symposium, I attended Brian Goetzs session
called 'The Java Memory Model'. When I saw the phrase 'memory model' in
the title I thought it would be about garbage collection, memory
allocation and memory types. Instead, it is really about
multithreading. The difference is that this presentation focuses on visibility, not locking or atomicity. This is..."



(Via Javalobby Front Page.)

10/2/09

Why bugs don’t get fixed

notes and rants : Why bugs don’t get fixed: "I’ve run into more and more people lately who are astounded that software ships with known bugs. I’m frightened that many of these people are software testers and should know better. First, read this ‘old’ (but good) article from Eric Sink. I doubt I have much to add, but I’ll try."



(Via notes and rants.)

Building iPhone Apps with HTML, CSS, and JavaScript

Building iPhone Apps with HTML, CSS, and JavaScript: "Now web designers and developers can join the iPhone app party without having to learn Cocoa's Objective-C programming language. It's true: You can write iPhone apps quickly and efficiently using your existing skills with HTML, CSS, and JavaScript. This book shows you how with lots of detailed examples, step-by-step instructions, and hands-on exercises.



  • Learn how to build iPhone apps with standard web tools


  • Refactor a traditional website into an iPhone web app


  • Hook into advanced iPhone features (e.g. accelerometer, geolocation, vibration, and sound) with JavaScript


  • Do most of your development with the operating system of your choice


"

Cost of Testing

Cost of Testing: "A lot of people have been asking me lately,
what is the cost of testing, so I decided, that I will try to measure
it, to dispel  the myth that testing takes twice as long. James Sugrue"



(Via Javalobby Front Page.)

Presentation:Whats New and Exciting in JPA 2.0

Presentation:What's New and Exciting in JPA 2.0: "Java Persistence API (JPA) 2.0, introduced with Java EE 6, adds in and specifies fully many things which were missing in JPA 1.0. This presentation discusses several features of JPA 2.0 such as advanced locking, enhanced query language, a shared cache API, expression/criteria API, property standardization, more flexible object modeling and more advanced O/R mapping support. By Mike Keith"



(Via InfoQ.)

Opensource ActionScript Debugger - De Monster

Opensource ActionScript Debugger - De Monster: "InfoQ reported a Flash and AIR debugger Arthropod earlier this year. De MonsterDebugger is another debugger launched this year for Flash, Flex and AIR application development. By Moxie Zhang"



(Via InfoQ.)

9/29/09

Simple Proxy Server in Java ~ Joey's Scribble's

Simple Proxy Server in Java: "In this post, I am going to show how a simple Proxy server can be designed in Java which will provide the core functionalities of a proxy. From Wikipedia, “a proxy server is a server (a computer system or an application program) that acts as an intermediary for requests from clients seeking resources from other servers.” The proxy server generally has some resources, or has access to some resources and when it receives request from a client, it access the appropriate resource and sends back the response."



(Via Joey's Scribble's.)

Developing A Simple Pluggable Java Application | SolitaryGeek

Developing A Simple Pluggable Java Application: "Most of the applications we use on daily basis are pluggable. Popular applications like Firefox, Eclipse, NetBeans, JEdit, Wordpress, Hudson are all pluggable. In fact, pluggability has played a major part in the success of most of these applications. Why not make the Java applications we develop pluggable as well? Yes, we get pluggability out of the box, if our applications are based on a rich client platform like NetBeans or Eclipse. But for some reasons if you decide not to use those platforms, it doesn’t mean that they should not be pluggable. In this article, we will learn how to write a simple pluggable application that will load it’s plugins dynamically."



(Via SolitaryGeek.)

Monitor home energy with AMEE

Monitor home energy with AMEE: "Electricity is invisible. To understand how people use it, you need to make it visible. This tutorial will show you how easy it is to build a Web-based energy monitoring system yourself, using a Current Cost real-time energy monitor and AMEE, a neutral Web-based API for energy data, combined with some XML, Ruby, Rails, and Ajax."



(Via developerWorks : Linux : Technical library.)

Tech Tip: TCP/IP Access Using bash

Tech Tip: TCP/IP Access Using bash: "


Most of us default to wget, curl, netcat and
others when in need of network data from the commandline,
not knowing, or perhaps forgetting, that bash often provides
the support that we need using redirection from
/dev/proto/host/port."



(Via Linux Journal - The Original Magazine of the Linux Community.)

RESTful SOA with Open Source

RESTful SOA with Open Source: "With the exponential growth of the Web, REST as an architectural
style [REF-1] has found its niche in the modern services landscape with
its popularity poised to grow even further. JAX-RS is a new JCP
specification [REF-2] that provides a Java API for RESTful Web services
over the HTTP protocol. JAX-RS uses annotations on POJOs (Plain Old
Java Objects) to map to the RESTful architectural style of..."



(Via Javalobby Front Page.)

Testing Exceptions in JUnit 4.7

Testing Exceptions in JUnit 4.7: "JUnit 4.7 introduced a few features that make it a little easier to work with exceptions. JUnit 4 introduced the expected parameter, which makes a test succeed if and only if a certain exception is thrown. For example, in the following code sample, we are testing a UserManager class. When the login() function is called, it should throw an UnknownUserException when no user is found."



(Via Javalobby Front Page.)

9/24/09

Sonar to identify security vulnerabilities

Sonar to identify security vulnerabilities: "

During the last few months, Sonar has definitely become the leading Open Source Platform to manage Java code quality. The objective to democratize access to code quality is becoming concrete.


However when analyzing source code, quality is only one aspect of things. The ultimate platform should be able to handle Quality, Security and Architecture. Sonar 2.0 will take care of Architecture with a DSM and several valuable Object Oriented metrics.


What is the plan to handle Security ? Technically speaking, there is no difference between a quality rule and a security rule. They both consist in writing a piece of code that analyzes an Abstract Syntax Tree (AST) or the bytecode depending on what needs to be done.


Sonar already embarks a bunch of security rules that detect security vulnerabilities. What is really missing today in Sonar is the possibility to group rules by security categories. This will be implemented at some point in time with tags associated to each rule. For now and for people concerned by Security, there are two solutions to detect security breaks. First is to use the Security Rules Plugin that highlights files with such breaks. The second one is to look directly at available security rules :


SQL Injection Vulnerability


Read this very well-written page on the OWASP web site, to quickly understand why you should activate the two following Findbugs rules :



  • Nonconstant string passed to execute method on an SQL statement

  • A prepared statement is generated from a nonconstant String


Password Management Vulnerability


Those two other Findbugs rules will create respect for the person who someday invented the word ‘password’



  • Hardcoded constant database password

  • Empty database password


Error Handling and Logging flaws


When there is an airplane crash, the black box is the only way to perfectly understand what happened to be able fix the root cause. A software has its own black box, and the following PMD rules will make it effective :



  • Preserve Stack Trace.

  • Avoid Catching Throwable

  • Exception As Flow Control

  • Avoid Throwing Null Pointer Exception

  • Avoid Print Stack Trace

  • Avoid Using System Println


Insecure direct object reference


Do you feel confident to give the keys of your car to somebody you don’t know ? To avoid this, here are the Findbugs/PMD rules that should get activated :



  • May expose internal representation by returning reference to mutable object

  • May expose internal representation by incorporating reference to mutable object

  • May expose internal static state by storing a mutable object into a static field

  • Public static method may expose internal representation by returning array


And some more…



  • Do Not Call System Exit

  • Servlet reflected cross site scripting vulnerability



Those available rules are a good start to identify security vulnerabilities. If you want to increase the set of existing rule to help Sonar grow on the subject, please create Jira tickets on the ‘Security rule’ component to request for new rules.


"



(Via Sonar.)

InfoQ: Opinion: Pair Programming Is Not For The Masses

InfoQ: Opinion: Pair Programming Is Not For The Masses: "Pair Programming continues to be one of the most debated and controversial practices of recent years. Most proponents don't falter in their praise of the benefits, but many of even these same people will admit they struggle to get pairing really going in their shops. Why? Obie Fernandez opinions 10 reasons why this might be so."



(Via InfoQ.)

InfoQ: Modular Java: What Is It?

InfoQ: Modular Java: What Is It?: "Over the last few years, modularity for Java has been an active discussion topic. From the (now defunct) JSR 277 to the recognition of JSR 291 and the ongoing JSR 294, modularity is seen as a necessary step in Java's evolution. Even future JVM-based languages like Scala are considering modularity. This article, the first in a multi-part series on Modular Java, discusses what modularity means, and why you should care."



(Via InfoQ.)

9/23/09

InfoQ: Encrypting the Internet

InfoQ: Encrypting the Internet: "The evolution of the Internet has resulted in large quantities of information being exchanged by businesses or private individuals. The nature of this information is typically both public and private, and much of it is transmitted over the hyper text transfer protocol (HTTP) in an insecure manner. A small amount of traffic, however, is transmitted by way of the secure sockets layer (SSL) over HTTP, known as HTTPS. HTTPS is a secure cryptographic protocol that provides encryption and message authentication over HTTP. The introduction of SSL over HTTP significantly increases the cost of processing traffic for service providers, as it sometimes requires an investment in expensive end-point acceleration devices. In this article, we present new technologies and results that show the economy of using general-purpose hardware for high-volume HTTPS traffic. Our solution is three pronged. First, we discuss new CPU instructions and show how to use them to significantly accelerate basic cryptographic operations, including symmetric encryption and message authentication. Second, we present results from a novel software implementation of the RSA algorithm that accelerates another compute-intensive part of the HTTPS protocol—public key encryption. Third, we show that the efficiency of a web server can be improved by balancing the web server workload with the public key cryptographic workload on a processor that is enabled with simultaneous multi-threading (SMT) technology. In conclusion, we show that these advances provide web services the tools to greatly reduce the cost of implementing HTTPS for all their HTTP traffic."



(Via InfoQ .)

9/15/09

Improve Application Responsiveness With Terracotta for Hibernate

Improve Application Responsiveness With Terracotta for Hibernate: "Terracotta released version 3.1 today, which includes Terracotta for Hibernate, a plug-in distributed cache for the Hibernate frame. Along with last months acquisition of EhCache, this continues Terracotta's moves to become the definitive solution for scalable Java applications. Including the Hibernate plug-in is bound to increase the usefulness and relevance of Terracotta across the Java..."



(Via Javalobby Front Page.)

JPA Implementation Patterns: Mapping Inheritance Hierarchies

JPA Implementation Patterns: Mapping Inheritance Hierarchies: "This week I will dwell on the choices offered when mapping inheritance hierarchies in JPA. JPA provides three ways to map Java inheritance hierarchies to database tables:

InheritanceType.SINGLE_TABLE - The whole inheritance hierarchy is mapped to one table.


James Sugrue"



(Via Javalobby Front Page.)

9/11/09

11/9, ottavo anniversario

11/9, ottavo anniversario: "

Per non dimenticare


Otto anni fa, 343 dei colleghi di questi vigili del fuoco persero la vita nel tentativo di salvare le persone intrappolate nelle Torri Gemelle di New York, colpite dall'attentato più sanguinoso della storia contemporanea: quattro aerei dirottati e usati come missili umani.

Otto anni. Vuol dire che c'è una generazione di giovani adulti che all'epoca non poteva rendersi conto di cosa significò quell'attentato, insieme a quello simultaneo contro il Pentagono e quello fallito grazie alla ribellione dei passeggeri e probabilmente destinato a colpire la Casa Bianca o il Campidoglio. L'11 settembre 2001 sta ormai diventando un episodio storico, epocale ma psicologicamente remoto e irreale, quanto il crollo del Muro di Berlino o il disastro di Chernobyl.

Per non dimenticare, o per conoscere quel martedì mattina di settembre che cambiò il mondo, consiglio di scaricare il monumentale, documentatissimo libro digitale Crono911, che spiega in italiano tutta la vicenda con la ricchezza che soltanto otto anni di indagini, montagne di documenti prima segretati e una ricerca meticolosa possono consentire.

Per gli ottusi che ancora credono alle favolette dei complottisti, segnalo la foto qui sopra: mostra i vigili del fuoco di New York che, impotenti e distrutti, aspettano che crolli il WTC7, la 'terza torre', quella che secondo i complottisti fu minata di nascosto. A dimostrazione che il crollo non fu né inatteso né straordinario, se non nella mente di chi non sa nulla d'incendi e di chi vuole fare soldi sulle sciagure e sull'ingenuità del prossimo.
"



(Via Il Disinformatico.)

Alan Turing, governo GB chiede scusa

Alan Turing, governo GB chiede scusa: "

Governo britannico: sorry, mister Turing


Con soli cinquantasette anni di ritardo, il governo del Regno Unito ha chiesto ufficialmente scusa per il trattamento che inflisse nel 1952 a uno dei suoi più brillanti matematici: Alan Turing, l'uomo che aveva decifrato i codici segreti nazisti, cambiando le sorti della Seconda Guerra Mondiale, e aveva nel contempo gettato le basi dell'informatica moderna.

E' sua quella che poi prese il nome di macchina di Turing: un concetto astratto che dimostrò nel 1936 che una macchina semplice era in grado di effettuare qualunque calcolo matematico, anche il più complesso, purché rappresentabile come procedura (algoritmo) e che quindi si poteva immaginare un 'calcolatore' artificiale programmabile. In sostanza, non importa quale computer, telefonino o altro apparecchio elettronico stiate usando: sotto sotto, se contiene un sistema operativo o un programma, state usando una macchina di Turing.

E' suo il test di Turing: un metodo per determinare se una macchina è intelligente o no, ossia se 'pensa'. Alan Turing si poneva già domande di questo calibro nel 1950, quando il suo articolo intitolato Computing Machinery and Intelligence smontò tutti i preconcetti dell'epoca e dimostrò che era concepibile che un giorno si potesse arrivare a un'intelligenza artificiale indistinguibile da quella umana, liquidando il mito dell'unicità e della superiorità dell'intelletto umano. Considerato lo stato della tecnologia informatica dell'epoca, è come se un biologo avesse scoperto il funzionamento dei neuroni di una mosca e avesse intuito e dimostrato che tanti neuroni messi insieme potevano produrre la Nona di Beethoven.

Il test di Turing è un esperimento nel quale un essere umano deve decidere se le risposte che gli arrivano tramite telescrivente sono prodotte da un altro essere umano o da una macchina: se non azzecca, la macchina è da considerare a tutti gli effetti intelligente. Finora nessuna macchina ha superato il test, ma gli esperimenti proseguono tramite iniziative come il Premio Loebner.

Ed è sua gran parte del lavoro top secret di crittanalisi che permise ai britannici di decifrare i codici cifrati militari tedeschi, quelli basati su macchine come Enigma. Insieme al matematico Gordo Weichman, Turing progettò un dispositivo elettromeccanico, chiamato in inglese bombe, che automatizzava i tentativi di decifrazione e fu fondamentale nel consentire la lettura in tempo quasi reale dei messaggi segreti del nemico. Questa conoscenza delle comunicazioni naziste permise di alterare drasticamente il corso della Seconda Guerra Mondiale, salvando un numero incalcolabile di vite. La natura del suo lavoro militare fu così segreta che l'alta onorificenza che gli fu conferita nel 1945, l'Order of the British Empire, aveva la laconica motivazione 'per servizi resi al Foreign Office'.

Ma allora perché il governo britannico ha pubblicato ieri le proprie scuse formali ad Alan Turing sul sito ufficiale del primo ministro, Number10.gov.uk? Perché nel 1952, mentre stava lavorando allo sviluppo dei primi computer moderni, fu processato per il reato di omosessualità, o gross indecency (oscena indecenza) nell'eufemistico gergo legalese dell'epoca, esattamente come era successo a Oscar Wilde più di cinquant'anni prima. Qualunque atto omosessuale era illegale nel Regno Unito di allora, e a Turing fu data la scelta fra il carcere e la 'cura' tramite castrazione chimica. Scelse la seconda opzione e fu sottoposto a iniezioni di estrogeni talmente forti da fargli crescere il seno.

La condanna portò alla revoca di tutti i suoi privilegi di sicurezza, rendendogli impossibile lavorare significativamente nel campo in cui eccelleva. Nel 1954 fu trovato morto, avvelenato dal cianuro probabilmente contenuto in una mela morsicata trovata accanto al suo letto, come la protagonista di Biancaneve, che era la sua fiaba preferita. La morte fu archiviata come suicidio Alan Turing aveva solo 41 anni.

Le scuse del governo britannico non sono arrivate spontaneamente: sono il risultato di una petizione, avviata dal programmatore britannico John Graham-Cumming, che in pochi mesi ha raccolto migliaia di adesioni prestigiose. Da qui la scelta del primo ministro Gordon Brown di porgere le scuse ufficiali per il trattamento 'raccapricciante' (come lo definisce Brown) al quale fu sottoposto.

'Per quelli fra noi che sono nati dopo il 1945, in un'Europa unita, democratica e in pace, è difficile immaginare che il nostro continente fu un tempo teatro del momento più buio dell'umanità. E' difficile credere che in tempi ancora alla portata della memoria di chi è ancora vivo oggi, la gente potesse essere così consumata dall'odio – dall'antisemitismo, dall'omofobia, dalla xenofobia e da altri pregiudizi assassini – da far sì che le camere a gas e i crematori diventassero parte del paesaggio europeo tanto quanto le gallerie d'arte e le università e le sale da concerto che avevano contraddistinto la civiltà europea per secoli,' scrive il primo ministro.

E' davvero difficile da immaginare. Forse Alan Turing avrebbe dovuto porsi un altro quesito nella propria ricerca: anziché chiedersi se esista l'intelligenza artificiale, domandarsi se ve ne sia a sufficienza di quella naturale.
"



(Via Il Disinformatico.)

9/10/09

Tech Tip: Port Forwarding in Virtualbox with VBoxManage

Tech Tip: Port Forwarding in Virtualbox with VBoxManage: "


VirtualBox is a free, powerful and versatile
virtualization program which is available for Linux, Mac, and Windows hosts,
and can virtualize many different Operating Systems. VirtualBox was
originally developed by Innotek, but was purchased by Sun and renamed Sun
xVM VirtualBox."



(Via Linux Journal - The Original Magazine of the Linux Community.)

9/9/09

JPA Implementation Patterns: Field Access vs. Property Access

JPA Implementation Patterns: Field Access vs. Property Access: "I will continue the JPA implementation patterns series by discussing the relative merits of field access vs. property access.
The JPA specification allows two ways for the persistence provider
to access the persistent state of an entity. The persistence provider
can either invoke JavaBeans style property accessors (getters and
setters) or access the instance fields of the entity directly...."



(Via Javalobby Front Page.)

Introducing Apache Mahout

Introducing Apache Mahout: "Once the exclusive domain of academics and corporations with large research budgets, intelligent applications that learn from data and user input are becoming more common. The need for machine-learning techniques like clustering, collaborative filtering, and categorization has never been greater, be it for finding commonalities among large groups of people or automatically tagging large volumes of Web content. The Apache Mahout project aims to make building intelligent applications easier and faster. Mahout co-founder Grant Ingersoll introduces the basic concepts of machine learning and then demonstrates how to use Mahout to cluster documents, make recommendations, and organize content."



(Via IBM developerWorks.)

9/2/09

Thanks for the memory

Thanks for the memory: "Running out of Java™ heap isn't the only cause of a java.lang.OutOfMemoryError. If native memory runs out, OutOfMemoryErrors that your normal debugging techniques won't be able to solve can occur. This article explains what native memory is, how the Java runtime uses it, what running out of it looks like, and how to debug a native OutOfMemoryError on Windows® and Linux®. A companion article covers the same topics for AIX® systems."



(Via IBM developerWorks.)

The rsync family

The rsync family: "Summary: Synchronizing two machines (such as a laptop and a desktop computer) is easier and faster when you use rsync, which boasts an efficient algorithm and options for just about everything you might need. And if a command-line operation isn't your thing, several graphic tools make using rsync easier still."



(Via IBM developerWorks.)

9/1/09

Top 10 tips for writing successful Software as a Service

Top 10 tips for writing successful Software as a Service: "Discover 10 essential tips for creating Software as a Service (SaaS) applications
that come in on time and under budget, yielding a positive and preferable return on
investment."



(Via developerWorks : Open source : Technical library.)

Application Logging: What, When, How | Javalobby

Application Logging: What, When, How: "Logging is a fundamental part of applications. Every application has a varying flavor of logging mechanism. A well designed logging system is a huge utility for system administrators and developers, especially the support team. Logs save many valuable hours for both the support team or developers. As users execute programs at the front end, the system invisibly builds a vault of event information (log entries) for system administrators and the support team."



(Via Javalobby .)

What is Data Mining? | E-Commerce Center

What is Data Mining?: "Generally, data mining (sometimes called data or knowledge discovery) is the process of analyzing data from different perspectives and summarizing it into useful information – information that can be used to increase revenue, cuts costs, or both. Data mining software is one of a number of analytical tools for analyzing data. It allows users to analyze data from many different dimensions or angles, categorize it, and summarize the relationships identified. Technically, data mining is the process of finding correlations or patterns among dozens of fields in large relational databases."


(Via E-Commerce Center.)

Java Performance Tuning, Profiling, and Memory Management | Javalobby

Java Performance Tuning, Profiling, and Memory Management: "Java application performance is an abstract word until you face its real implications. It may vary depending on your interpretation of the word 'performance'. This article is meant to give the developer a perspective of the various aspects of the JVM internals, the controls and switches that can be altered to optimal effects that suit your application. There is no single size that can fits all."



(Via Javalobby.)

Sonar for code quality «

Sonar for code quality: "Sonar is a tool to analyze and visualize code quality in Java projects. It isn’t a static code analysis tool itself, rather it uses a number of open source tools to analyze the code, then Sonar gathers the metrics. Its strength is in providing a dashboard, trend reports, and drill downs to help visualize the state of a software project’s code quality."



(Via Coveros.)

JPA Implementation Patterns: Using UUIDs as Primary Keys

JPA Implementation Patterns: Using UUIDs as Primary Keys: "The default way in JPA for primary keys is to use the @GeneratedValue annotation with the strategy attribute set to one of AUTO, IDENTITY, SEQUENCE, or James Sugrue"



(Via Javalobby Front Page.)

Anatomy of the Linux virtual file system switch

Anatomy of the Linux virtual file system switch: "Linux is the very definition of flexibility and extensibility. Take the
virtual file system switch (VFS). You can create file systems on a variety of
devices, from traditional disk, USB flash drives, memory, and other storage
devices. You can even embed a file system within the context of another file system.
Discover what makes the VFS so powerful, and learn its major
interfaces and processes."



(Via developerWorks : Linux : Technical library.)

Learn Linux, 101: The Linux command line

Learn Linux, 101: The Linux command line: "GUIs are fine, but to unlock the real power of Linux, there's no
substitute for the command line. In this article, Ian Shields introduces
you to some of the major features of the bash shell, with an emphasis on the features that are
important for LPI certification. By the end of this article, you will
be comfortable using basic Linux commands like echo and exit,
setting environment variables, and gathering system information.
[The first two notes following Listing 8 have been updated to correct the process IDs
(PIDs). -Ed.]"



(Via developerWorks : Linux : Technical library.)

Learn Linux, 101: Text streams and filters

Learn Linux, 101: Text streams and filters: "There's a lot more to text manipulation than cut and paste,
particularly when you aren't using a GUI. Study for the Linux Professional
Institute Certification (LPIC) 101 exam, or learn
for fun. In this article, Ian Shields introduces you to text manipulation on
Linux using filters from the GNU textutils package. By the end of this
article, you will be manipulating text like an expert."



(Via developerWorks : Linux : Technical library.)

Learn Linux, 101: A roadmap for LPIC-1

Learn Linux, 101: A roadmap for LPIC-1: "Use this roadmap to find IBM developerWorks articles that will help you
learn and review
basic Linux tasks. And if you're also pursuing professional certification as
a Linux system administrator,
these articles can help you study for the Linux
Professional Institute Certification (LPIC) exam 101 and exam 102.
This roadmap is organized according to the
43 objectives in the 101 and 102 exams, which you are required to pass for
LPI level 1 certification."



(Via developerWorks : Linux : Technical library.)

8/26/09

Tech Tip: More ssh Tunneling

Tech Tip: More ssh Tunneling: "

Using ssh tunnelling I can protect services which are
not normally protected and/or encrypted against unauthorized access.
In this example I show how I set up a secure connection to my IRC proxy,
but you can use this same recipe for other things.

"


(Via Linux Journal - The Original Magazine of the Linux Community.)

8/25/09

32-bit Java 6 on Mac OS X Snow Leopard

32-bit Java 6 on Mac OS X Snow Leopard: "It looks like Java developers have one big reason to upgrade to Snow Leopard on their Macs when its released this Friday. According to Axel and the blog that he linked to, it looks like were going to see what lots of Java developers on the Mac have been waiting for."



(Via Javalobby Front Page.)

JBoss Announced the HornetQ project

JBoss Announced the HornetQ project: "JBoss has announced the availability of HornetQ, an open source, multi-protocol, embeddable, high performance, clustered, asynchronous messaging system. The HornetQ code-base was worked on under the name JBoss Messaging 2.0 for the last couple of years. By Dionysios G. Synodinos"



(Via InfoQ.)

Implementing composite keys with JPA and Hibernate

Implementing composite keys with JPA and Hibernate: "Nowadays, with the widespread use and deployment of Object-Relational Mapping (ORM) tools, you don't generally have to think too hard about such arcane issues as composite keys. Normally, the choice of key design can be a simple integer, and this can be left with confidence to the tooling. Occasionally, you come across a situation where a composite key is required, and you need a strategy for this. This tip shows you how to implement composite keys with JPA and Hibernate."



(Via developerWorks : Java technology : Technical library.)

8/20/09

Nirvana di Roberto Totaro

Nirvana di Roberto Totaro: "

www.nirvanacomix.com il sito di Nirvana di Roberto Totaro

"



(Via Balloons - Il blog delle comic strip.)

Attenzione utenti. L'iPhone vi spia

Attenzione utenti. L'iPhone vi spia: "



Con iPhone e gli smartphone di nuova generazione, l’utente si trova per la prima volta a doversi preoccupare di cosa fanno tutte le applicazioni che scarica sul proprio telefono cellulare. La connessione permanente ed il comportamento non sempre cristallino di sviluppatori ed inserzionisti rischiano di compromettere seriamente la privacy dell’utente.


Tutto è cominciato quando un programmatore si è accorto che il Sistema Operativo del Palm Pre invia quotidianamente le coordinate GPS degli utenti a Palm. E sebbene questo comportamento fosse chiaramente riportato nella policy sulla privacy della società, nessun utente ne era praticamente a conoscenza. E su iPhone le cose non vanno meglio.


Per quanto ne sappiamo, Apple non pratica nessuna profilazione dei propri utenti attraverso le applicazioni preinstallate su iPhone. Tuttavia, stando all’opinione di alcuni sviluppatori, la società di analisi del mercato mobile Pinch Media può essere considerata alla stregua di uno Spyware. E l’elenco delle informazioni carpite all’insaputa dell’utente è letteralmente spaventoso:



  • ID unico dell’iPhone

  • Modello di iPhone posseduto

  • Versione del Sistema Operativo

  • Versione dell’applicazione in uso

  • Se l’applicazione è piratata

  • Se il telefono ha il jailbreak

  • Ora e data di avvio/chiusura dell’applicazione

  • Le coordinate GPS dell’utente

  • Il genere, il mese e l’anno di nascita (se Facebook è installato)


In seguito alla divulgazione di queste informazioni, Pinch Media ha prontamente pubblicato un comunicato stampa in cui afferma che i propri servizi hanno natura benigna e che servono ad aiutare gli sviluppatori nel loro lavoro: non saremmo quindi di fronte ad un software malevolo, con intenti evidentemente malevoli o che permettere di identificare inequivocabilmente gli utenti. Secondo la società, in assenza di intento doloso e di dati sensibili (numeri di telefono, mail e così via) non si può parlare di spyware.


Resta tuttavia il fatto che un numero enorme di informazioni sull’utente vengono usate indiscriminatamente, senza un’adeguata informazione preventiva e, sopratutto, senza un modo per disabilitarne l’invio. Chi fosse legittimamente preoccupato dalla faccenda può scorrere una lista delle applicazioni coinvolte, aggiornata in tempo reale, e su quale tipo di informazioni divulgano.


(Via melablog.)

Boot Linux on the Beagle Board

Boot Linux on the Beagle Board: "The Beagle Board is an open-hardware single-board computer that is both
inexpensive and capable of running Linux at a reasonable speed. Get to know
the Beagle Board, and learn how to get a Linux development environment
together on the cheap."



(Via developerWorks : Linux : Technical library.)

Un meraviglioso trojan rubapassword

Un meraviglioso trojan rubapassword: "

Oggi ho ricevuto uno spam con mittente falsificato dell'Agenzia delle Entrate che pubblicizzava il sito http://bancadati2009.altervista.org/ .


Un accesso a questo sito fa scaricare un programma di 1.6 MB. Dopo una veloce analisi ho scoperto con un misto di orrore e fascinazione che si tratta di un classico trojan per rubare cookie e password salvate da browser e client FTP, come quelli di origine russa ed ucraina da cui si fa impestare il 10-20% degli utenti Windows. Solo che questo è scritto in perl e compilato con perl2exe, e chiaramente scritto da un italiano. Metto online qui il sorgente originale che ho estratto...

"



(Via Md at debian.org.)

8/14/09

jCryption

jCryption is a javascript HTML-Form encryption plugin, which encrypts the POST/GET-Data that will be sent when you submit a form.
It uses the Multiple-precision and Barrett modular reduction libraries for the calculations and jQuery for the rest.
jCryption is completly free and dual licensed under the MIT and GPL licenses like jQuery.

Clonezilla

Clonezilla, based on DRBL, Partition Image, ntfsclone, partclone, and udpcast, allows you to do bare metal backup and recovery. Two types of Clonezilla are available, Clonezilla live and Clonezilla SE (server edition). Clonezilla live is suitable for single machine backup and restore. While Clonezilla SE is for massive deployment, it can clone many (40 plus!) computers simultaneously. Clonezilla saves and restores only used blocks in the harddisk. This increases the clone efficiency. At the NCHC's Classroom C, Clonezilla SE was used to clone 41 computers simultaneously. It took only about 10 minutes to clone a 5.6 GBytes system image to all 41 computers via multicasting!

8/5/09

Ingegneria sociale, reverse engineering e utopia

Ingegneria sociale, reverse engineering e utopia: "

Dopo aver apprezzato 'Geometria del Male', sto affrontando ora la lettura de 'Il tempo della fine - Codice Arquer', di Sigismondo Panvini. Sin da subito si capisce che è un libro decisamente interessante, lo ho iniziato da un paio di giorni, ma c'è un passo molto interessante che secondo me fornisce un'ottima descrizione di come funzioni il controllo a lungo termine della nostra società, che riporterò di seguito. Questa argomentazione mi ha invogliato a mettere nero su bianco una considerazione che secondo me è fondamentale per comprendere come funziona la matrix in cui viviamo.

Una delle 'false credenze' che secondo me condizionano più di ogni altra la società in cui viviamo, è quella di considerare la nostra società come il frutto di una sorta di evoluzionismo sociale, secondo cui si sarebbe affermata nel mondo la migliore società possibile, secondo la concezione darwiniana della selezione naturale. Secondo questa visione scatterebbe in maniera automatica l'idea che quindi certi 'difetti' della società diventerebbero qualcosa paragonabile a un difetto 'genetico' e quindi ci si deve come 'rassegnare' di fronte a questi difetti che sono come intrinsechi e immutabili. Questa visione delle cose, porta con se due conseguenze incredibili, che contribuiscono entrambe a permettere alla 'matrix' di sopravvivere. La prima riguarda appunto il fatto che considerare la nostra società come il frutto della 'casualità' e di un processo evolutivo, porta a pensare che sia effettivamente vero che i più grandi della terra stiano operando per fare del loro meglio, e che quindi se non riescono loro a sistemare le cose per il pianeta, risulta pressoché vano qualsiasi sforzo. Questo fattore è fondamentale, scoraggia le persone, le allontana dall'idea di poter veramente cambiare le cose, migliorare la società.
Ma la seconda conseguenza di questa falsa credenza è assolutamente decisiva per il destino dell'umanità. Il fatto di pensare alla società come il frutto della 'casualità' o dell'evoluzionismo sociale (quindi risultante dall'adattamento e dalla competitività), distoglie da quella che potrebbe essere una visione alternativa, ovvero quella della società come frutto dell'ingegneria sociale, di un complessissimo modello matematico dove un numero molto alto di variabili è stato calcolato minuziosamente per psico-programmare la popolazione mondiale, in modo tale che non riesca neanche a rendersi minimamente conto di essere inserita in questa matrix sociale e culturale che viene pianificata da secoli o forse addirittura da millenni.
Diventa quindi fondamentale capire cosa stia alla base della nostra società. Un processo casuale, evolutivo che ha portato ai giorni nostri, oppure una lunga, precisa, meticolosa pianificazione secondo un modello che segue variabili che sono ai più sconosciute, che sono principalmente di origine psicologica, con un impatto a lungo termine pressoché inimmaginabile a chi non ha molta dimestichezza con la psicologia ?

Se si accetta l'ipotesi dell'ingegneria sociale, possiamo ipotizzare che la nostra società sia quindi la risultante di un modello matematico studiato a livello teorico, dove un insieme di variabili è stata altamente predetta e controllata per psico-programmare la popolazione mondiale. Quello che sta avvenendo in questo momento storico, è una sorta di decriptazione di queste variabili. Applicando una sorta di reverse engineering si potrebbero alterare i valori di queste variabili che sono state tutte scelte per arrivare alla società di oggi, per invertire questa tendenza, e arrivare in maniera piuttosto semplice a una sorta di società utopistica. Una società 'fantastica' che oggi secondo la concezione dell'evoluzionismo sociale è appunto utopia, se immaginata come il frutto di ingegneria sociale, non è più utopia ma qualcosa di facilmente realizzabile.

Quanto segue è tratto da 'Il tempo della fine - Codice Arquer' - di Sigismondo Panvini
Se si conosce a fondo la natura umana è possibile intervenire per determinare eventi collettivi. Si tratta di una analisi di tendenza, suffragata da osservazione, statistica, elaborazione dei dati. Se è possibile leggere così il formarsi della storia, appare del tutto probabile quello che Arquer affermava nel 1567. La cosidetta arte dei Caldei, altro non era che la conoscenza di postulati geometrici, che consentiva loro previsioni di eventi futuri con altissima precisione. Se si è profondi conoscitori della psiche e della natura umana, la predizione delle conseguenze sociali degli eventi previsti diventa una conseguenza logica e statistica. È possibile che in tempi lontanissimi fosse germogliata una conoscenza della psiche umana adoperata allo scopo di detenere il potere e che, per legittimare il dominio di taluni uomini, si sia alterato il normale corso degli eventi. Ma è difficilissimo poter provare una simile teoria, tuttavia cambiare la mentalità degli uomini attraverso l’uso di strumenti psicologici appropriati appare possibile. Decidemmo d’indagare in questa direzione chiedendo lumi a una sociologa, la professoressa Adalgisi, che dopo una lunga esperienza nei servizi sociali del ministero della Giustizia si era da poco ritirata in pensione.
‘La mentalità degli individui può essere modificata da un insieme sistematico di suggestioni appropriate. La convergenza di culture e tradizioni diverse verso un unico blocco sociale è stimolato da comuni protocolli di integrazione. Conoscendo la struttura sociale e le leggi che ne determinano il funzionamento, ritengo che i nostri progenitori abbiano compiutamente analizzato i vari aspetti che interagiscono nelle complesse variabili umane e fossero in grado di prevedere i tempi di reazione umana a certi eventi, così come le modalità che spingono al cambiamento la società. E la spiegazione di come gli antichi avessero potuto prevedere le conseguenze sociali di certi eventi. Gli antichi hanno effettuato un’analisi di tendenza, interpretando i fatti storici in chiave di divenire sociale, ponendo cioè la biografia in correlazione con la storia. Sono riusciti a fornire una teoria completa della società, stimolando qualità della mente che permettono la comprensione di realtà intime dell’individuo in rapporto con le più vaste compagini sociali, nella ricerca delle implicazioni tra futuro e storia. Questa, più d’ogni altra, è la prova della preesistenza di una cultura che, nel lontano passato, doveva aver affinato tecniche psicosociologiche che l’hanno portata a prevedere lo svolgersi della storia, le cui linee tendenziali sono state misurate per mezzo della matematica astronomica e della geometria dei solidi. Si tratta di un metodo, per molti versi, simile alle ricerche sociali applicate, che centri di studi statistici e istituti demoscopici effettuano per orientare gli investimenti aziendali, per scoprire livelli di gradimento sulle proposte politiche di questo o di quel partito, o di questo o quel candidato a un’importante carica pubblica.
‘Possiamo allora ritenere che i nostri progenitori abbiano potuto concepire anche l’idea di modello matematico che nella sua accezione moderna è comparsa verso la fine dell’800, con Henri Poincaré (1854-1912), matematico, fisico e filosofo. Il modello mateinatico cui ci riferiamo, non aspira a cogliere l’essenza dei fenomeni ma si limita a fornire un’analogia che permetta di rappresentarne alcuni aspetti. John von Neumann (1903-1957), logico matematico e uno dei più versatili ingegni del ‘900, riprendendo in forma compiuta il pensiero di Poincarè ha esplicitato la teoria dei inodelli:’per modello s’intende un costrutto matematico che, con l’aggiunta di certe interpretazioni verbali, descrive dei fenomeni osservati. La giustificazione di un costrutto matematico del genere è soltanto e precisamente che ci si aspetta che funzioni, ovvero che descriva correttamente i fenomeni di un’area ragionevolmente ampia. Inoltre, esso deve soddisfare certi criteri estetici, ovvero rispetto alla quantità di informazione che fornisce, deve essere piuttosto semplice’. Questa spiegazione collimerebbe con le rivelazioiii di Arquer, secondo cui la Bibbia è un codice matematico e astronomico. Non dobbiamo affatto dimenticare come la disciplina matematica ha esteso via via i suoi confini fino a includere tutte le scienze umane, statistiche, sociali, economiche, politiche e la bioh) gia, dimostrandosi l’unica strada per trattare e rappresentare la complessità e l’etereogenicità dei fenomeni da studiare.
‘In tempi a noi vicini, la Grande Finanza Internazionale ha sostenuto con adeguati strumenti tecnologici l’azione di disgregazione delle culture tradizionali, allo scopo di omologare le differenti culture con quella dominante. I mezzi impiegati per ottenere risultati ditale portata, sono la televisione e il computer, ma tutti i sistemi d’informazione concorrono allo scopo; il risultato cercato è lo sviluppo di nuove relazioni tra vari componenti delle diverse società, così da modificarne l’assetto. L’informazione con la sua rappresentazione visiva svolge un ruolo unificante nella società.
‘Il progresso tecnologico ha contribuito alla smaterializzazione, ma contemporaneamente alla velocizzazione e diffusione delle notizie. Il cambiamento attiene principalmente alla natura dell’informazione ma anche alla sua esteriorizzazione e amplificazione. L’immediata conseguenza è da un lato la scarsa attendibilità delle notizia e dall’altra la estrema vuinerabilità del sistema sociale dove la notizia viene percepita come verità. Ciascuna informazione che raggiunga un soggetto contribuisce a determinare uno stato d’animo, innesta un processo di astrazione e valutazione, contribuisce a illuminarne la comprensione degli eventi letti interiormente in chiave sociale. La convergenza di media, computer e telecomunicazioni, in ciò che viene definito ipermedia, sta concretizzando la trasformazione qualitativa del modo in cui viviamo e la nostra percezione della realtà che ci circonda. Al computer possiamo chiedere di pensare l’impensabile e il non pensato in precedenza. Esso rende possibile un mare di nuove teorie, idee, ideologie, intuizioni artistiche, progressi tecnici, innovazioni economiche e politiche che erano,nel senso più letterale, impensabili e inimmaginabili prima d’ora. In tal modo esso accelera i cambiamenti storici e alimenta la spinta verso la diversità sociale della terza ondata’ (Alvin Toppler La Terza Ondata).
‘Una vasta operazione chirurgica dell’intelletto umano è in progressione e ne siamo, consciamente o meno, tutti coinvolti; è una reazione a catena che percuote indistintamente tutti i protagonisti. Taluni teorici della società dell’informazione sostengono che alla tradizionale definizione di origine marxiana di terra, lavoro e capitale quali fattori di produzione, se ne debbano sostituire dei nuovi, quali quelli dell’informazione e della conoscenza, che divengono gli elementi cruciali del cambiamento. La teoria valore- lavoro, secondo costoro, deve essere sostituita dalla teoria valore- conoscenza’.
Quello che aveva argomentato la professoressa Adalgisi, avvalorava l’ipotesi di un disegno di potere architettato da qualcuno che, usando la conoscenza delle leggi della psicologia sociale, aveva alterato l’equilibrio naturale. Se propendiamo per la considerazione che esista solo lo spazio a determinare gli accadimenti, che il tempo non sia altro che la misurazione del suo movimento e che esi— stono delle immutabili leggi di natura, dobbiamo propendere per un rapporto di causalità nella determinazione degli eventi. Se invece introduciamo anche un altro principio altrettanto importante come quello della casualità, le cose cambiano.
Secondo Carl Gustav Jung, le cosidette leggi di natura non sono altro che verità statistiche, costrette perciò ad ammettere delle eccezioni. ‘Se lasciamo che la natura faccia da sé’, sostiene Jung, ‘vediamo che ogni processo subisce interferenze parziali o totali da parte del caso, in misura tale che in circostanze naturali, un corso di eventi che si conformi in tutto e per tutto alle cosìdette leggi di natura, rappresenta un’eccezione’.
Se anche questo postulato risulta vero, la possibilità di alterare gli eventi sulla base di un disegno preordinato, si riduce a poco più di un terzo delle possibilità. Ma in questo modo si perviene alla dimostrazione dell’assunto di Arquer, secondo cui la storia non è altro che la risultante di eventi procurati e casualità. Arquer insiste molto sull’argomento, su come sia stato possibile alterare la percezione del tempo instillando nella mente dell’uomo la concezione del suo andamento lineare. Nel corso di un programma di simulazione del clima, alcuni ricercatori fecero un’inaspettata scoperta. Una delle simulazioni climatiche si basava su dodici variabili, incluse relazioni non lineari; ripetendo la stessa simulazione con valori leggermente diversi (una serie di dati veniva prima arrotondata a sei cifre decimali e successivamente a tre), l’evoluzione del ‘clima’ elaborata dal computer si discostava nettamente dai risultati precedenti: a quella che si configurava appena una perturbazione, dopo una effimera somiglianza iniziale, si sostituiva un modello climatico completamente diverso. Queste osservazioni hanno portato allo sviluppo della ‘Teoria del Caos’ che pone limiti definiti alla prevedibilità dell’evoluzione di sistemi complessi non lineari. Nei sistemi lineari, una variazione nello stato iniziale di un sistema (fisico, chimico, biologico, economico) provoca una variazione corripondentemente nel suo stato finale. Al contrario, nei sistemi non lineari non è possibile prevedere le risultanze finali nel loro comportamento. Un sistema può anche configurarsi in modo caotico in certi casi e in modo non caotico in altri. E impossibile prevedere con precisione il comportamento che un sistema caotico avrà dopo un intervallo di tempo anche breve. Per calcolare il comportamento del sistema, anche se descritto da un’equazione molto semplice, è necessario inserire i valori delle condizioni iniziali. Siccome i nostri sistemi sono certamente non lineari, una modifica apparentemente irrilevante dei dati produce un radicale cambiamento dei risultati. I dati relativi alle condizioni iniziali dovrebbero essere misurati con un’accuratezza che tenga conto di infinite variabili, il che è owiamente impossibile. Si spiega perché le previsioni meteorologiche, benché decritte con equazioni deterministiche della fisica ed elaborate con raffinate tecniche di calcolo eseguite da super computer, producono risultati estremamente approssimativi e il più delle volte fallaci; i processi atmosferici sono estremamente complessi, in quanto comprendono fenomeni limitati e di breve durata (come temporali e trombe d’aria) e fenomeni estesi per migliaia di chilometri, stabili per alcuni giorni o mesi (gli anticicloni interessano aree vaste quanto l’Europa e permangono per settimane; i sistemi monsonici impegnano oceani e continenti per mesi). Ci sono poi altri fattori che possono modificare sensibilmente il comportamento delle perturbazioni: le catene montuose, i laghi e la presenza di ampie zone boschive.
In conclusione, nella totalità dei sistemi biologici, chimici, fisici, economici e sociali, esistono elementi talmente variabili, che, interagendo fra loro, sono imprevedibili e proprio perché non individuabili possono condurci a previsioni errate. A questo punto il destino del mondo non sarebbe scritto e predeterminato, ma lascerebbe spazio a cambiamenti notevoli rispetto alle volontà di alcuni potenti. I sistemi caotici non possono essere ritenuti imprevedibili perché irregolari, né si può parlare di completo disordine, in quanto i sistemi caotici sono sistemi dinamici riconducibili a una logica più complessa, che ancora non siamo stati in grado di raggiungere. Il caos non deve essere considerato come totale mancanza di ordine, ma altresì come un ordine così complesso da sfuggire alla misurazione umana. Il che tuttavia non esclude il fatto che questa conoscenza ci derivi da culture più avanzate della nostra.




(Via Duffy's Blog.)

Sun VirtualBox 3.0.4 released

The 3.0.4 maintenance release was made available to download from the UsualPlace earlier today.

See the changelog for what has changed.

Git for Subversion users, Part 1: Getting started

Git for Subversion users, Part 1: Getting started: "Distributed version control systems (DVCSs) offer a number of advantages over centralized VCSs, and for Subversion users looking to explore this model, Git is a great place to start. Using Subversion as a baseline, this first of two articles shows how to install Git, set up a remote repository, and begin using basic Git commands."

(Via developerWorks : Linux : Technical library.)

Java Web services: Granular use of WS-Security

Java Web services: Granular use of WS-Security: "WS-Security for SOAP Web services doesn't have to be an all-or-nothing proposition. By configuring WS-Security at the operation or message level, you can apply an appropriate degree of protection to every exchange, reducing or eliminating the WS-Security overhead for operations that don't need full protection. Dennis Sosnoski continues his Java Web services series with a look at granular WS-Security in Web Services Description Language (WSDL) using Apache Axis2 and Rampart."

(Via developerWorks : Java technology : Technical library.)

8/3/09

How to setup Cisco VPN using VPNC Ubuntu Jaunty (9.04)

This guide is for ubuntu users who want to connect to Cisco VPN. We will be using VPNC (it is in ubuntu 9.04 repo). This guide assumes you have profile file in .pcf format (we will use cisco.pcf as an example here).


Let’s begin and follow the steps exactly replacing your own pcf file:
Open terminal and run the following commands
* Create a directory
mkdir vpnclient
Change to that directory:
cd vpnclient
* Download cisco-decrypt file which will be used to decrypt the group password from your pcf file:
wget http://www.debuntu.org/files/cisco-decrypt.c
sudo apt-get install libgcrypt11-dev
gcc -Wall -o cisco-decrypt cisco-decrypt.c $(libgcrypt-config --libs --cflags)
chmod +x cisco-decrypt
sudo cp cisco-decrypt /usr/bin
* Download pcf2vpnc to convert pcf files in vpnc configuration format
wget http://svn.unix-ag.uni-kl.de/vpnc/trunk/pcf2vpnc
chmod +x pcf2vpnc
sudo cp pcf2vpnc /usr/bin
* Go to windows vpn profiles directory and convert .pcf files to .conf files
pcf2vpnc cisco.pcf > cisco.conf
Note:replace above cisco.pcf with your own .pcf file.
sudo cp cisco.conf /etc/vpnc/
* install vpnc and connect to vpn
sudo apt-get install vpnc resolvconf
sudo vpnc cisco
Enter username for <vpn> :

Enter password for <vpn>:

VPNC started in background (pid: 6092)…
* To disconnect simply do
sudo vpnc-disconnect
After your VPN has been established then connect to your remote desktop
Go to Applications >> Internet >> Terminal server client
Or
In terminal run
tsclient
Credir goes here

8/2/09

ssh and attach to a screen in one line.

ssh and attach to a screen in one line.: "$ ssh -t user@host screen -x <screen name>

If you know the benefits of screen, then this might come in handy for you. Instead of ssh'ing into a machine and then running a screen command, this can all be done on one line instead. Just have the person on the machine your ssh'ing into run something like


screen -S debug

Then you would run


ssh -t user@host screen -x debug

and be attached to the same screen session.

by David Winterbottom (codeinthehole.com)

(Via Command-Line-Fu.)

1/3/09

script per rimozione completa di parallels

da http://www.nicoladagostino.net/

#!/bin/sh
kextPath="/System/Library/Extensions"
killall -9 Parallels
killall -9 prl_dhcpd
kextunload $kextPath/Pvsnet.kext
kextunload $kextPath/Pvsvnic.kext
kextunload $kextPath/vmmain.kext
kextunload $kextPath/hypervisor.kext
rm -rf $kextPath/Pvsnet.kext
rm -rf $kextPath/Pvsvnic.kext
rm -rf $kextPath/vmmain.kext
rm -rf $kextPath/hypervisor.kext
rm -rf /Library/Parallels
rm -rf /Library/Receipts/Parallels*
rm -rf /Applications/Parallels
rm -rf /Library/StartupItems/Parallels
rm -rf ~/Library/Preferences/com.parallels.Parallels.plist
rm -rf ~/Library/Parallels
rm -rf ~/.parallels_settings
rm -rf ~/Library/Preferences/com.trolltech.unknown-organization.plist
rm -f /dev/vm-main
rm -f /dev/hypervisor
touch /System/Library/Extensions 
sleep 2
touch /System/Library/Extensions/
echo "Completed Removal of Parallels"

1/2/09

Scribd

http://www.scribd.com/


Today, Scribd is the place where you publish, discover and discuss original writings and documents. More than 50 million people each month are finding or sharing fun, functional or fantastical writings and documents on Scribd.com and tens of thousands of other websites that have embedded Scribd's document reader.