Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Zoik

#1
Java / Re: Duda sobre un array en java
14 Julio 2015, 10:52 AM
A ver, imagino que la condición del bucle la entiendes, vayamos a el if:

cumplirá la condición si el contador del bucle es menor o igual a el tamaño del bucle - 1, si se cumple sumará en el primer caso 1 + 2 = 3, 2 + 3 = 5, 3 + 4 = 7 y 4 + 5 = 9.

Un saludo.
#2
Java / Re: JavaFX, conexión por socket
25 Junio 2015, 18:54 PM
Bueno, me respondo en otro post, no se si será el método mas correcto pero aquí lo dejo por si a alguien le interesa.

Código (java) [Seleccionar]

package app.view;

import org.controlsfx.dialog.Dialogs;

import app.client.Client;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;
import javafx.stage.Stage;

public class NewServerController
{
@FXML
private TextField hostnameIpTextField;
@FXML
private TextField puertoTextField;
@FXML
private TextField userTextField;
@FXML
private TextField passwordTextField;
@FXML
private TextField nameTextField;

private Stage stage;
private boolean okClicked = false;

public void setDialogStage(Stage stage)
{
this.stage = stage;
}

public boolean isOkCliked()
{
return okClicked;
}

private boolean isInputValid()
{
String errorMessage = "";

if(hostnameIpTextField.getText() == null
|| hostnameIpTextField.getText().length() == 0)
errorMessage += "Hostname/Ip no válido!\n";
if(puertoTextField.getText() == null
|| puertoTextField.getText().length() == 0
|| Integer.parseInt(puertoTextField.getText()) < 0
|| Integer.parseInt(puertoTextField.getText()) > 65535)
errorMessage += "Puerto no válido!\n";
if(errorMessage.length() == 0)
{
return true;
} else
{
Dialogs.create()
           .title("Campos inválidos")
           .masthead("Por favor, corrige los campos no válidos")
           .message(errorMessage)
           .showError();
       return false;
}
}

@FXML
private void handleConectar() throws InterruptedException
{
if(isInputValid())
{
Client client = new Client(hostnameIpTextField.getText(), Integer.parseInt(puertoTextField.getText()));
client.start();
client.join();
boolean ok = client.getOk();
if(ok)
{
System.out.println("Conexion exitosa, cierro modal...");
okClicked = true;
stage.close();
}  else
{
System.out.println("Conexion fallida...");
}

}
}

@FXML
private void handleCancelar()
{
stage.close();
}

}


Código (java) [Seleccionar]
package app.client;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client extends Thread
{

private String hostname;
private int puerto;
private Socket socket;
private DataOutputStream mensaje;
private DataInputStream entrada;
private boolean ok = false;

public Client(String hostname, int puerto)
{
this.hostname = hostname;
this.puerto = puerto;
}

public boolean getOk()
{
return ok;
}

public boolean InitClient()
{
try
{
socket = new Socket(hostname, puerto);
entrada = new DataInputStream(socket.getInputStream());
mensaje = new DataOutputStream(socket.getOutputStream());
System.out.println(entrada.readUTF());
mensaje.writeUTF("Hola que tal!");
System.out.println(entrada.readUTF());
socket.close();
} catch(UnknownHostException e)
{
e.printStackTrace();
return false;
} catch(Exception e)
{
e.printStackTrace();
return false;
}
return true;
}

public synchronized void run()
{
System.out.println("Inicio Thread");
ok = InitClient();
System.out.println("Conexion finalizada, notifico a thread principal");
notifyAll();
System.out.println("Notificado a thread");
}

}


Me sigue congelando la screen, pero al menos me espera a tener la respuesta afirmativa del thread del socket.

Un saludo y agradecería me comentarais si hay alguna forma mejor.
#3
Java / JavaFX, conexión por socket
25 Junio 2015, 13:05 PM
Buenas a todos gente.

Tengo una preguntilla respecto a este tema, como podria hacer para tener una gui y que a la hora de conectar con el servidor no se me congelase la interface, pongo el código hasdta ahora:

Código (java) [Seleccionar]

package app;

import java.io.IOException;

import app.view.NewServerController;
import app.view.RootController;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Modality;
import javafx.stage.Stage;


public class Main extends Application
{

private Stage stage;
private BorderPane rootLayout;

public static void main(String[] args)
{
launch(args);
}

@Override
public void start(Stage stage) throws Exception
{
this.stage = stage;
this.stage.setTitle("Fenrir");

initRootLayout();
}

public void initRootLayout()
{
try
{
FXMLLoader loader = new FXMLLoader();
loader.setLocation(Main.class.getResource("view/Root.fxml"));
rootLayout = (BorderPane) loader.load();

RootController controller = loader.getController();
controller.setMain(this);

Scene scene = new Scene(rootLayout);
stage.setScene(scene);
stage.show();
} catch(IOException e)
{
e.printStackTrace();
}
}

public boolean showNewServerDialog()
{
try
{
FXMLLoader loader = new FXMLLoader();
loader.setLocation(Main.class.getResource("view/NewServer.fxml"));
BorderPane page = (BorderPane) loader.load();

Stage stage = new Stage();
stage.setTitle("Conectar a servidor");
stage.initModality(Modality.WINDOW_MODAL);
stage.initOwner(this.stage);
Scene scene = new Scene(page);
stage.setResizable(false);
stage.setScene(scene);

NewServerController controller = loader.getController();
controller.setDialogStage(stage);

stage.showAndWait();

return controller.isOkCliked();
} catch(IOException e)
{
e.printStackTrace();
return false;
}
}

}


Código (java) [Seleccionar]

package app.client;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client
{

private String hostname;
private int puerto;
Socket socket;
DataOutputStream mensaje;
DataInputStream entrada;

public Client(String hostname, int puerto)
{
this.hostname = hostname;
this.puerto = puerto;
}

public boolean InitClient()
{
try
{
socket = new Socket(hostname, puerto);
entrada = new DataInputStream(socket.getInputStream());
mensaje = new DataOutputStream(socket.getOutputStream());
System.out.println(entrada.readUTF());
mensaje.writeUTF("Hola que tal!");
System.out.println(entrada.readUTF());
socket.close();
} catch(UnknownHostException e)
{
e.printStackTrace();
return false;
} catch(Exception e)
{
e.printStackTrace();
return false;
}
return true;
}

}


Código (java) [Seleccionar]

package app.view;

import org.controlsfx.dialog.Dialogs;

import app.client.Client;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;
import javafx.stage.Stage;

public class NewServerController
{
@FXML
private TextField hostnameIpTextField;
@FXML
private TextField puertoTextField;
@FXML
private TextField userTextField;
@FXML
private TextField passwordTextField;
@FXML
private TextField nameTextField;

private Stage stage;
private boolean okClicked = false;

public void setDialogStage(Stage stage)
{
this.stage = stage;
}

public boolean isOkCliked()
{
return okClicked;
}

private boolean isInputValid()
{
String errorMessage = "";

if(hostnameIpTextField.getText() == null
|| hostnameIpTextField.getText().length() == 0)
errorMessage += "Hostname/Ip no válido!\n";
if(puertoTextField.getText() == null
|| puertoTextField.getText().length() == 0
|| Integer.parseInt(puertoTextField.getText()) < 0
|| Integer.parseInt(puertoTextField.getText()) > 65535)
errorMessage += "Puerto no válido!\n";
if(errorMessage.length() == 0)
{
return true;
} else
{
Dialogs.create()
           .title("Campos inválidos")
           .masthead("Por favor, corrige los campos no válidos")
           .message(errorMessage)
           .showError();
       return false;
}
}

@FXML
private void handleConectar() throws InterruptedException
{
if(isInputValid())
{
Client client = new Client(hostnameIpTextField.getText(), Integer.parseInt(puertoTextField.getText()));
boolean connected = client.InitClient();
if(connected)
{
okClicked = true;
stage.close();
}
}
}

@FXML
private void handleCancelar()
{
stage.close();
}

}


Código (java) [Seleccionar]

package app.view;

import javafx.fxml.FXML;
import app.Main;

public class RootController
{

private Main main;

public void setMain(Main main)
{
this.main = main;
}

@FXML
private void handleNewServer()
{
boolean okClicked = main.showNewServerDialog();
}

}


Imagino que se hará la ejecución de la conexión del socket en un thread a parte, pero no me acaba de quedar claro como haría la trata de errores en el thread.

La idea que tenia era que en cuanto le de a conectar, me abra el socket en un thread separado para que la interface no se congele y en cuanto se conecte correctamente  (o no) avise al thread principal para que actue en consecuencia.

Un saludo y gracias de antemano.
#4
Desarrollo Web / Re: Cargar web en diálogo
17 Junio 2015, 01:51 AM
Bueno, buscando una de las soluciones es c# con el plugin WebKit.net por si a alguien le sirve, este plugin nos proporciona una navegador con la base de Chrome, dejando atrás internet explorer.

Un saludo y espero alternativas.
#5
Desarrollo Web / Cargar web en diálogo
17 Junio 2015, 00:28 AM
Buenas a todos,

tengo una dudilla sobre una aplicación web que vi hace un tiempo en la que llevaban acabo una acción que ahora quiero replicar.

La aplicación era de gestión de un centro pero lo que realmente me interesa era que mediante un exe, abrían una especie de diálogo a través de chrome, este diálogo no tenia ni barra ni nada solo se veía lo web y la típica X de cerrar.

Me gustaría saber como hacían esto o si hay alguna alternativa.

Un saludo y gracias de antemano.
#6
Desarrollo Web / Hostings warez, se comen?
11 Mayo 2015, 20:25 PM
Buenas gente, he estado leyendo sobre el tema pero no me acaba de quedar claro.

Tengo dos preguntas clave:

1)

Bien empiezo desde el comienzo.

Hoy en día para tener contenido ilegal protegido por copyright o no (las web pornográficas son un ejemplo), digamos mejor que para tener contenido sensible un hosting normal no sirve ya que la mayoría tienen ciertos términos que prohíben dicho contenido.

Bien me he puesto a indagar y por lo visto la alternativa a estos hostings, son los warez, hostings que tienen una política de privacidad en la que protegen al cliente (de la DMCA en general).

Según he estado leyendo recomiendan hostings de holanda suiza o de los países del este.

Hasta aquí todo claro, pero lo que no acabo de entender es como alojar los archivos, supongamos, si quisiera hacer una web de leer cómics online, por decir algo. Que sería lo recomendable, contratar un hosting warez para alojar la web y luego aparte otro para alojar los ficheros?

Ya que estoy me gustaría saber que servidores warez recomiendan.

2)

Si una persona tuviese ya su web montada y quisiese hacerla rentable con una api de publicidad, como lo haría?, la mayoría de apis en sus términos dicen explícitamente que no puedes utilizarla en webs de contenido protegido por copyright.

Si hay alguna api de publicidad que no tenga éste requisito me gustaría saber de ella.

Un saludo y gracias de antemano.
#7
Madre de dios, ésto si es eficacia, la próxima vez te cronometro engel, muchas gracias.
#8
Tienes razón, me he liado un poco.

Resumiendo:

Si yo hago scraping a esta página por ejemplo http://www.coolmod.com/index.php para obtener sus productos, categorías, precios, etc y luego esta info la pongo en mi página con el objetivo de hacer un comparador de precios con otras páginas, ésta práctica es ilegal? Porqué en todas ellas me pone explícitamente que lo tengo "prohibido".

Un saludo y grácias de antemano

PD: En mi caso soy de España
#9
Buenas gente, un placer estar de nuevo por aquí.

He estado leyendo acerca del Web Scraping los últimos días y he encontrado opiniones dispares sobre si es una práctica legal o no (dejando de lado la ética de la misma).

Algunos dicen que si es legal pero..., me explico, por lo visto si la información que se extrae esta sujeta a "creative commons" y tu la coges sin permiso del autor para ganar algún tipo de beneficio económico por ejemplo publicándola en tu web sería ilegal siempre y cuando el autor diga explícitamente que no puedes hacerlo.

Otro ejemplo sería si a causa de este scraping se genera una denegación de servicio o cualquier mal funcionamiento en los servidores de la web.

Pues bien, después de escribir esto que no se si tiene o no sentido, me gustaría saber si alguien está puesto en el tema.

Os expongo mi duda, si una persona tiene X contenido, por ejemplo una web de compra online, y yo por scraping extraigo los precios productos y demás para publicarlo en mi web con el objetivo de hacer un comparador con otras webs de la misma índole, ésto sería ilegal si la web la publico para el uso de otra gente?

Os muestro un ejemplo real:

LINK: http://www.pccomponentes.com/avisolegal.html

CitarPropiedad Intelectual e Industrial
Todos los signos distintivos, marcas, nombres comerciales, contenidos, estructura, diseño y forma de presentación de los elementos y cualquier otra información que aparezca en este sitio Web son propiedad de PCCOMPONENTES por sí o como cesionaria y están protegidos por los derechos de propiedad industrial e intelectual.
El usuario tiene prohibida la reproducción, transformación, distribución, comunicación pública y, en general cualquier otra forma de explotación de los elementos referidos en el apartado anterior sin autorización expresa de PCCOMPONENTES.
El usuario se abstendrá de emplear medios que puedan suprimir, alterar, eludir o manipular cualesquiera dispositivos de protección o sistemas de seguridad que puedan estar instalados y que comporten un riesgo o daño o inutilización del sitio Web y/o sus contenidos.
PCCOMPONENTES no se responsabiliza del posible uso inapropiado que terceros realicen de esta página Web, ni de la información que a través de ella transmitan a terceros. El uso de los contenidos que pueda hacer el usuario y las eventuales consecuencias, daños o perjuicios que pudiesen derivarse, son de la exclusiva responsabilidad del usuario. PCCOMPONENTES se excluye por los daños y perjuicios de toda naturaleza causados a los usuarios por el uso de enlaces (links), directorios y herramientas de búsqueda, que permiten a los usuarios acceder a sitios Web pertenecientes y/o gestionados por terceros así como de la presencia de virus u otros códigos maliciosos en los contenidos que puedan producir cualquier tipo de daños en el sistema informático, documentos electrónicos o ficheros de los usuarios. PCCOMPONENTES se reserva el derecho de ejercitar las acciones legales que considere oportunas derivadas de cualesquiera usos ilícitos por parte de terceros de los contenidos de su página web.

En éste caso, la web expone claramente que está prohibido hacer scraping de ella, o vamos eso entiendo yo, pero ésto es tan sencillo?, es decir yo tengo una web cualquiera y solo con poner que no puedes coger datos de ella ya es imposible legalmente hacerlo? no tienen que sacar ningún tipo de licencia de "creative commons"?

Perdón por preguntar tanto pero es que me quiero informar mucho sobre éste tema.

Un saludo y gracias de antemano.
#10
PHP / Re: PHP, Curl y facebook
5 Marzo 2015, 06:57 AM
Muchas gracias por responder tan rápido cuando llegue a casa lo probaré todo y ya comento.

Un saludo.