Uno scrittoio digitale …

9 ottobre 2011

Java Observer Pattern

Archiviato in: code, java, oracle — Tag:, — admin @ 12:58

In relazione al pattern, java fornisce delle API già pronte all’uso:

observable
observer

Mitico :D

8 settembre 2011

Languages with multiple inheritance

Archiviato in: code, python — Tag:, , — admin @ 19:50

diamond problem

7 maggio 2011

List of Maven Repo

Archiviato in: code, java — Tag: — admin @ 17:22

http://mirrors.ibiblio.org/pub/mirrors/maven2/
https://repository.sonatype.org/index.html#welcome
http://mvnrepository.com/
http://repository.jboss.org/maven2/
http://search.maven.org/

Framework ad eventi

Archiviato in: code, java — Tag:, , , , — admin @ 11:51

oracle adf
zk

29 gennaio 2011

Another Java Proxy

Archiviato in: java — Tag:, , , , — admin @ 14:39
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class TraceProxy implements java.lang.reflect.InvocationHandler {

	private Object object;

	public static Object createProxyFor(Object object) {
		final TraceProxy traceProxy = new TraceProxy(object);
		System.out.println("\ntraceProxy = " + traceProxy);

		return Proxy.newProxyInstance(
			object.getClass().getClassLoader(),
			object.getClass().getInterfaces(),
			traceProxy
		);
	}

	private TraceProxy(Object object) {
		this.object = object;
	}

	@Override
	public Object invoke(Object proxy, Method m, Object[] args) throws Throwable {
		System.err.println("traceProxy = " + this);
		System.err.println("m = " + m);
		System.err.println("args = " + args);

		if (args != null) {
			for (Object object : args) {
				System.err.println(object);
			}
		}

		return m.invoke(object, args);
	}

	public static void main(String[] args) {
		CharSequence cs = (CharSequence) TraceProxy.createProxyFor("abcdefghilmnopqrstuvz");

		System.out.println("\ncall charAt");
		System.out.println("charAt result is '" + cs.charAt(2) + "'\n");

		//sleep ... altrimenti l'output non è chiaro
		try { Thread.sleep(10); } catch (InterruptedException e) { }

		System.out.println("call length");
		System.out.println("length result is '" + cs.length() + "'");
	}
}

8 gennaio 2011

Paura della UI ?

Archiviato in: java, linux, python, sapere è potere — Tag:, , — admin @ 21:57

Ecco un mitico software che aiuta in fase di creazione del nostro applicativo … Glade

4 novembre 2010

ClassLoader.getResourceAsStream

Archiviato in: java — Tag:, — admin @ 20:57

getClass().getResourceAsStream(File)
getClass().getClassLoader().getResourceAsStream(File)
Thread.currentThread().getContextClassLoader().getResourceAsStream(File)

quante alternative !!?

21 ottobre 2010

struts 2 i18n

Archiviato in: java — Tag:, — admin @ 14:35

un paio di link utili …

uno
due

19 ottobre 2010

Guice 4 Android

Archiviato in: code, java — Tag:, , , — admin @ 21:39

Non sò come e se funziona … ma è sicuramente da provare … roboguice
:D

Guice 2.0

Archiviato in: code, java — Tag:, , , , , — admin @ 21:36

La versione 2.0 aggiunge molte funzionalità interssanti al framework

 

16 ottobre 2010

The best java decompiler

Archiviato in: java — Tag:, , — admin @ 20:58

Is available here.

Java Decompiler

24 settembre 2010

Windows shortcut in java

Archiviato in: Senza categoria — Tag:, , — admin @ 16:47

> http://stackoverflow.com/questions/309495/windows-shortcut-lnk-parser-in-java
> http://kac-repo.xt.pl/cgi-bin/gitweb.cgi?p=jshortcut.git;a=blob;f=src/org/kac/Shortcut.java;hb=HEAD

13 agosto 2010

Differences between JDK and SDK

Archiviato in: java — Tag:, — admin @ 16:06

ho trovato queata fantastica definizione …

The JDK is a subset of what is loosely defined as a software development kit (SDK) in the general sense. In the descriptions which accompany their recent releases for Java SE, EE, and ME, Sun acknowledge that under their terminology, the JDK forms the subset of the SDK which is responsible for the writing and running of Java programs. The remainder of the SDK is composed of extra software, such as Application Servers, Debuggers, and Documentation.

28 luglio 2010

base Refactoring

Archiviato in: code — Tag:, , — admin @ 21:18

Applica costantemente i seguenti concetti per mantenere il codice pulito …

  • metodi di piccole dimensioni
  • nomi significativi a classi, metodi e variabili
  • ogni metodo deve fare una singola operazione
  • creare sottoclassi per aggiungere funzionalità invece di aggiungere metodi alla stessa
  • estrarre classi prima di ottenere un casino di codice
  • mantenere l’astrazione nelle classi
  • ogni classe dovrebbe eseguire una singola responsabilità

sicuramente può essere rifinita ed aggiornata … ma questa breve lista dovrebbe essere un buon punto di partenza.

4 luglio 2010

dbus

Archiviato in: code — Tag:, , , — admin @ 09:58

Non voglio riscrivere quello che già è spiegato molto bene sul web:
dbus
dbus-tutorial
wikipedia

Ho fatto un piccolo esempio in Python. Avendo usato rmi in Java mi sono trovato molto a mio agio.

Service

#!/usr/bin/env python

import dbus
import dbus.service
import dbus.glib
import gobject

class SomeObject(dbus.service.Object):
    def __init__(self, bus_name, object_path="/SomeObject"):
        dbus.service.Object.__init__(self, bus_name, object_path)

    @dbus.service.method("org.designfu.SampleInterface")
    def HelloWorld(self, hello_message):
        print (str(hello_message))
        return ["Hello", " from example-service.py"]

    @dbus.service.method("org.designfu.SampleInterface")
    def GetTuple(self):
        return ("Hello Tuple", " from example-service.py")

    @dbus.service.method("org.designfu.SampleInterface")
    def GetDict(self):
        return {"first": "Hello Dict", "second": " from example-service.py"}

session_bus = dbus.SessionBus()
name = dbus.service.BusName("org.designfu.SampleService", bus=session_bus)

SomeObject(name)

mainloop = gobject.MainLoop()
mainloop.run()

Client

#!/usr/bin/env python

import dbus

bus = dbus.SessionBus()
remote_object = bus.get_object("org.designfu.SampleService", "/SomeObject")

hello_reply_list = remote_object.HelloWorld(
	"Hello from example-client.py!", dbus_interface = "org.designfu.SampleInterface")

print "1)", hello_reply_list, "\n"

iface = dbus.Interface(remote_object, "org.designfu.SampleInterface")
print "2)", str(iface.GetTuple()), "\n"
print "3)", str(iface.GetDict()), "\n"

print remote_object.Introspect(dbus_interface="org.freedesktop.DBus.Introspectable")

24 maggio 2010

Python

Archiviato in: code, linux, sapere è potere — Tag:, , — admin @ 20:44

Da poco meno di un mese mi sono concentrato su questo simpatico linguaggio il cui nome deriva da una commedia Monty Python andata in onda nel corso degli anni 70.

Tutto quello che serve … sito ufficiale della comunità italiana

Le caratteristiche che mi hanno fatto puntare questo prodotto open source

  • interpretato estremamente veloce
  • interattivo
  • orientato agli oggetti
  • estremamente modulare (esiste un modulo per fare qualunque cosa)
  • tipizzazione dinamica
  • di alto livello se lo desideri
  • estendibile in C / C++
  • portabile

NOTA PER I JAVISTI
jython

5 maggio 2010

Pattern: Data Access Object Design in J2EE

Archiviato in: java — Tag:, , — admin @ 22:15

semplice e molto ben spiegato … ecco qui
è proprio vero … nella semplicità si trova la bellezza

17 aprile 2010

ancora su RESTful Web Services

Archiviato in: java — Tag:, , , — admin @ 11:37

ed una definiziona abbastanza semplice di RESTful

12 aprile 2010

RESTful Web Services

Archiviato in: java — Tag:, — admin @ 20:04

Ho particolarmnte gustato questa presentazione … queste tipologie di servizi mi intrigano non poco :D :D

ed un bel articolo firmato ibm.

2 aprile 2010

API YouTube 4 Java

Archiviato in: java — Tag:, , — admin @ 22:07

api

Articoli precedenti »

Funziona con WordPress