Auguri di buon capodanno e di buon 2008 a TUUUUTTI!
Ora scappo che mancano 5 minuti! 😀
"Usa un non metodo come metodo avendo nessun limite come limite." (Bruce Lee)
Auguri di buon capodanno e di buon 2008 a TUUUUTTI!
Ora scappo che mancano 5 minuti! 😀
Ben due settimane senza scrivere nulla! WoW!
Ebbene, torno con non poche novità , prime fra tutte quelle inerenti JLS e i prossimi rilasci. Dunque tra poco, molto probabilmente questa sera stessa, verrà rilasciato JavaLightServer versione 0.4.2 contenente molte bugfix e migliorie soprattutto nei comandi CWD e LS, inoltre, non appena rilasciata, mi metto subito a lavoro a tempo pieno (soprattutto ora che sono in vacanza) sulla versione 0.5 dove ci saranno pesanti migliorie lato server e non meno importanti aggiornamenti lato client:
Queste sono le principali novità di cui goderà JavaLightServer versione 0.5. Colgo l’occasione per annunciare che con la versione 0.5 si conclude il ciclo delle Alpha, quindi dalla 0.6 JLS sarà un software abbastanza adulto da poter iniziare ad essere usato (e sperimentato) anche oltre la “comune” rete LAN di casa, io stesso per primo lo sperimenterò, quindi lo stadio di sviluppo del progetto diverrà Beta. Infine c’è da dire che JLS 0.5.y sarà l’ultimo ciclo di versioni che supporterà ancora la connessione via client Telnet, quindi dalla 0.6 sarà d’obbligo l’utilizzo del JavaLightClient per testare ed/od usare JLS.
Ultima notizia, ma non per questo meno importante, pubblicherò qui sul mio blog (e ovviamente anche sul sito della comunità ufficiale) una serie di mini-howto per tutti gli utenti e/o sviluppatori interessati al progetto, quindi partendo da un primo che si occuperà di spiegare come funziona la struttura del programma ai successivi che ne studieranno le funzioni e il loro utilizzo anche in altri progetti basati su questo.
Saluti
hawake
E’ stato annunciato da qualche giorno il rilascio ufficiale di OpenSuSE 11 Alpha0. Essa contiene tutti gli ultimissimi pacchetti base aggiornati alle ultimissime versioni (kernel 2.6.24, KDE 3.5.8, GCC 4.3, KDE 4 RC1 …). Inoltre ci sono alcuni cambiamenti nel modulo di YaST di gestione delle sorgenti, unendo le sorgenti d’installazione classiche con quelle della comunità , cosa che IMHO speravo da tempo. Ovviamente essendo un’alpha ha ancora moltissimi problemi… ad es. è inevitabile almeno un crash durante l’installazione…
Il link alla notizia è qui: http://news.opensuse.org/?p=563.
Saluti
hawake
Ieri è uscito finalmente NetBeans 6.0 release Stable! Fantastico, lo stò già testando con JLS. Devo dire che è un po’ più lentino del 5.5 forse sarà dovuto alla poca RAM di cui dispongo (768 MB), fattostà , però, che i programmatori dietro questo IDE hanno fatto veramente un ottimo lavoro. Tra una settimana potrò dire meglio e con più certezza di come effettivamente ci si trova con questo programma.
Saluti
hawake
Ieri notte, con Tommy, abbiamo risolto un paio di bachi nel client di JLS (che ancora deve essere rilasciato).
Adesso i comandi che vengono implementati nel client arrivano al server senza problemi, il problema l’abbiamo risolto riscrivendo una parte del server (quella, appunto, di gestione delle socket) ma credo proprio che dovremo riscrivere praticamente tutto JLS, principale, dato che per lo scambio di dati (e anche per il download/upload) dovrò implementare il tutto affinché sia il più veloce possibile.
Eccovi il codice:
-questa è la main-
/*
* JavaLightServer - Interactive Shell Client 0.1
* Also knowed as JavaLightClient -
* Copyright (C) 2007 hawake - hawake[at]gmail[dot]it
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see
*/
package JLC;
import java.io.*;
import java.net.*;
public class JavaLightClient {
public static void main(String [] args) throws UnknownHostException, IOException, Exception {
try {
if(args[0] != null && args[1] != null) {
int ArgsParsed = Integer.parseInt(args[1]);
String command = "";
boolean finito = false;
String ciao = "127.0.0.1";
Client client = new Client();
client.connect(ciao, ArgsParsed);
System.out.println("\nConnected to " + ciao + " port: " + ArgsParsed + "; your IP is: " + client.address());
String welcome = client.read();
if(welcome != null) {
System.out.println(welcome);
}
while (!finito) {
InputStreamReader tastiera = new InputStreamReader(System.in);
BufferedReader buf = new BufferedReader(tastiera);
command = buf.readLine();
if (command.equals("ls")) {
client.send((command+"\n").getBytes());
System.out.println(client.read());
} else if (command.equals("exit")) {
client.send(command.getBytes());
client.read();
client.close();
finito = true;
}
}
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("\nJavaLightClient 0.1 console version\nUsage:\n\tjava JavaLightClient [IP] [port]");
}
}
}
e della classe Client, che gestisce la comunicazione e la socket:
package JLC;
import java.io.*;
import java.net.*;
class Client {
public Client(Socket s) throws IOException {
this.initialized = true ;
this.socket = s;
this.input = this.socket.getInputStream();
this.output = this.socket.getOutputStream();
}
public Client() {
this.initialized = false ;
this.socket = null;
}
public String address() {
return this.socket.getInetAddress().toString();
}
public void connect( String host, int port) throws UnknownHostException, IOException {
if( !this.initialized )
this.socket = new Socket(host,port);
this.input = this.socket.getInputStream();
this.output = this.socket.getOutputStream();
}
public void send(byte[] byteStream) throws IOException {
this.output.write(byteStream);
this.output.flush();
}
public String read() throws IOException{
String buffer = "";
byte b;
while( (b = (byte)this.input.read()) != (byte)'\n' ) {
buffer += (char)b;
}
return buffer.trim();
}
public void close() throws Exception {
this.input.close();
this.output.close();
}
private Socket socket = null;
private InputStream input ;
private OutputStream output ;
private boolean initialized = false ;
}
Il tutto rilasciato ovviamente sotto GNU GPL v3.
Saluti
hawake
Devi effettuare l'accesso per postare un commento.