Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Java] Class DH Tools 0.2

  • 6 Respuestas
  • 3863 Vistas

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado BigBear

  • *
  • Underc0der
  • Mensajes: 543
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
« en: Enero 15, 2016, 12:22:38 pm »
Mi primer clase en Java , se llama DH Tools y tiene las siguientes opciones :

  • Realizar una peticion GET y guardar el contenido
  • Realizar una peticion POST y guardar el contenido
  • Crear o escribir archivos
  • Leer archivos
  • Ejecutar comandos y leer su respuesta
  • HTTP FingerPrinting
  • Leer el codigo de respuesta de una URL
  • Borrar repetidos en un ArrayList
  • Cortar las URL en un ArrayList a partir del query
  • Split casero xD
  • Descargar archivos
  • Capturar el archivo de una URL
  • URI Split
  • MD5 Encode
  • MD5 File
  • Get IP


El codigo de la clase :

Código: Java
  1. // Class : DH Tools
  2. // Version : 0.2
  3. // (C) Doddy Hackman 2015
  4. // Functions :
  5. //
  6. //public String toma(String link)
  7. //public String tomar(String pagina, String data)
  8. //public void savefile(String ruta, String texto)
  9. //public String read_file(String ruta)
  10. //public String console(String command)
  11. //public String httpfinger(String target)
  12. //public Integer response_code(String page)
  13. //public ArrayList repes(ArrayList array)
  14. //public ArrayList cortar(ArrayList array)
  15. //public String regex(String code, String deaca, String hastaaca)
  16. //public Boolean download(String url, File savefile)
  17. //public String extract_file_by_url(String url)
  18. //public String uri_split(String link, String opcion)
  19. //public String md5_encode(String text)
  20. //public String md5_file(String file)
  21. //public String get_ip(String hostname)
  22. //
  23. package dhtools;
  24.  
  25. import java.io.*;
  26. import java.net.*;
  27. import java.nio.channels.Channels;
  28. import java.nio.channels.ReadableByteChannel;
  29. import java.util.ArrayList;
  30. import java.util.Scanner;
  31. import java.util.regex.Matcher;
  32. import java.util.regex.Pattern;
  33. import java.security.*;
  34.  
  35. public class DH_Tools {
  36.  
  37.     public String toma(String link) {
  38.         String re;
  39.         StringBuffer conte = new StringBuffer(40);
  40.         try {
  41.             URL url = new URL(link);
  42.             URLConnection nave = url.openConnection();
  43.             nave.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0");
  44.             BufferedReader leyendo = new BufferedReader(
  45.                     new InputStreamReader(nave.getInputStream()));
  46.             while ((re = leyendo.readLine()) != null) {
  47.                 conte.append(re);
  48.             }
  49.             leyendo.close();
  50.         } catch (Exception e) {
  51.             //
  52.         }
  53.         return conte.toString();
  54.     }
  55.  
  56.     public String tomar(String pagina, String data) {
  57.         // Credits : Function based in http://www.mkyong.com/java/how-to-send-http-request-getpost-in-java/
  58.         String respuesta = "";
  59.  
  60.         try {
  61.             URL url_now = new URL(pagina);
  62.             HttpURLConnection nave = (HttpURLConnection) url_now.openConnection();
  63.  
  64.             nave.setRequestMethod("POST");
  65.             nave.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0");
  66.  
  67.             nave.setDoOutput(true);
  68.             DataOutputStream send = new DataOutputStream(nave.getOutputStream());
  69.             send.writeBytes(data);
  70.             send.flush();
  71.             send.close();
  72.  
  73.             BufferedReader leyendo = new BufferedReader(new InputStreamReader(nave.getInputStream()));
  74.             StringBuffer code = new StringBuffer();
  75.             String linea;
  76.  
  77.             while ((linea = leyendo.readLine()) != null) {
  78.                 code.append(linea);
  79.             }
  80.             leyendo.close();
  81.             respuesta = code.toString();
  82.         } catch (Exception e) {
  83.             //
  84.         }
  85.         return respuesta;
  86.     }
  87.  
  88.     public void savefile(String ruta, String texto) {
  89.  
  90.         FileWriter escribir = null;
  91.         File archivo = null;
  92.  
  93.         try {
  94.  
  95.             archivo = new File(ruta);
  96.  
  97.             if (!archivo.exists()) {
  98.                 archivo.createNewFile();
  99.             }
  100.  
  101.             escribir = new FileWriter(archivo, true);
  102.             escribir.write(texto);
  103.             escribir.flush();
  104.             escribir.close();
  105.  
  106.         } catch (Exception e) {
  107.             //
  108.         }
  109.     }
  110.  
  111.     public String read_file(String ruta) {
  112.         String contenido = null;
  113.         try {
  114.             Scanner leyendo = new Scanner(new FileReader(ruta));
  115.             contenido = leyendo.next();
  116.         } catch (Exception e) {
  117.             //
  118.         }
  119.         return contenido;
  120.     }
  121.  
  122.     public String console(String command) {
  123.         String contenido = null;
  124.         try {
  125.             Process proceso = Runtime.getRuntime().exec("cmd /c " + command);
  126.             proceso.waitFor();
  127.             BufferedReader leyendo = new BufferedReader(
  128.                     new InputStreamReader(proceso.getInputStream()));
  129.             String linea;
  130.             StringBuffer code = new StringBuffer();
  131.             while ((linea = leyendo.readLine()) != null) {
  132.                 code.append(linea);
  133.             }
  134.             contenido = code.toString();
  135.         } catch (Exception e) {
  136.             //
  137.         }
  138.         return contenido;
  139.     }
  140.  
  141.     public String httpfinger(String target) {
  142.  
  143.         String resultado = "";
  144.  
  145.         //http://www.mkyong.com/java/how-to-get-http-response-header-in-java/
  146.         try {
  147.  
  148.             URL page = new URL(target);
  149.             URLConnection nave = page.openConnection();
  150.  
  151.             String server = nave.getHeaderField("Server");
  152.             String etag = nave.getHeaderField("ETag");
  153.             String content_length = nave.getHeaderField("Content-Length");
  154.             String expires = nave.getHeaderField("Expires");
  155.             String last_modified = nave.getHeaderField("Last-Modified");
  156.             String connection = nave.getHeaderField("Connection");
  157.             String powered = nave.getHeaderField("X-Powered-By");
  158.             String pragma = nave.getHeaderField("Pragma");
  159.             String cache_control = nave.getHeaderField("Cache-Control");
  160.             String date = nave.getHeaderField("Date");
  161.             String vary = nave.getHeaderField("Vary");
  162.             String content_type = nave.getHeaderField("Content-Type");
  163.             String accept_ranges = nave.getHeaderField("Accept-Ranges");
  164.  
  165.             if (server != null) {
  166.                 resultado += "[+] Server : " + server + "\n";
  167.             }
  168.             if (etag != null) {
  169.                 resultado += "[+] E-tag : " + etag + "\n";
  170.             }
  171.             if (content_length != null) {
  172.                 resultado += "[+] Content-Length : " + content_length + "\n";
  173.             }
  174.  
  175.             if (expires != null) {
  176.                 resultado += "[+] Expires : " + expires + "\n";
  177.             }
  178.  
  179.             if (last_modified != null) {
  180.                 resultado += "[+] Last Modified : " + last_modified + "\n";
  181.             }
  182.  
  183.             if (connection != null) {
  184.                 resultado += "[+] Connection : " + connection + "\n";
  185.             }
  186.  
  187.             if (powered != null) {
  188.                 resultado += "[+] Powered : " + powered + "\n";
  189.             }
  190.  
  191.             if (pragma != null) {
  192.                 resultado += "[+] Pragma : " + pragma + "\n";
  193.             }
  194.  
  195.             if (cache_control != null) {
  196.                 resultado += "[+] Cache control : " + cache_control + "\n";
  197.             }
  198.  
  199.             if (date != null) {
  200.                 resultado += "[+] Date : " + date + "\n";
  201.             }
  202.             if (vary != null) {
  203.                 resultado += "[+] Vary : " + vary + "\n";
  204.             }
  205.             if (content_type != null) {
  206.                 resultado += "[+] Content-Type : " + content_type + "\n";
  207.             }
  208.             if (accept_ranges != null) {
  209.                 resultado += "[+] Accept Ranges : " + accept_ranges + "\n";
  210.             }
  211.  
  212.         } catch (Exception e) {
  213.             //
  214.         }
  215.  
  216.         return resultado;
  217.  
  218.     }
  219.  
  220.     public Integer response_code(String page) {
  221.         Integer response = 0;
  222.         try {
  223.             URL url = new URL(page);
  224.             URLConnection nave1 = url.openConnection();
  225.             HttpURLConnection nave2 = (HttpURLConnection) nave1;
  226.             nave2.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0");
  227.             response = nave2.getResponseCode();
  228.         } catch (Exception e) {
  229.             response = 404;
  230.         }
  231.         return response;
  232.     }
  233.  
  234.     public ArrayList repes(ArrayList array) {
  235.         Object[] listando = array.toArray();
  236.         for (Object item : listando) {
  237.             if (array.indexOf(item) != array.lastIndexOf(item)) {
  238.                 array.remove(array.lastIndexOf(item));
  239.             }
  240.         }
  241.         return array;
  242.     }
  243.  
  244.     public ArrayList cortar(ArrayList array) {
  245.         ArrayList array2 = new ArrayList();
  246.         for (int i = 0; i < array.size(); i++) {
  247.             String code = (String) array.get(i);
  248.             Pattern regex1 = null;
  249.             Matcher regex2 = null;
  250.             regex1 = Pattern.compile("(.*?)=(.*?)");
  251.             regex2 = regex1.matcher(code);
  252.             if (regex2.find()) {
  253.                 array2.add(regex2.group(1) + "=");
  254.             }
  255.         }
  256.         return array2;
  257.     }
  258.  
  259.     public String regex(String code, String deaca, String hastaaca) {
  260.         String resultado = "";
  261.         Pattern regex1 = null;
  262.         Matcher regex2 = null;
  263.         regex1 = Pattern.compile(deaca + "(.*?)" + hastaaca);
  264.         regex2 = regex1.matcher(code);
  265.         if (regex2.find()) {
  266.             resultado = regex2.group(1);
  267.         }
  268.         return resultado;
  269.     }
  270.  
  271.     public Boolean download(String url, File savefile) {
  272.         // Credits : Based on http://stackoverflow.com/questions/921262/how-to-download-and-save-a-file-from-internet-using-java
  273.         // Thanks to Brian Risk
  274.         try {
  275.             URL download_page = new URL(url);
  276.             ReadableByteChannel down1 = Channels.newChannel(download_page.openStream());
  277.             FileOutputStream down2 = new FileOutputStream(savefile);
  278.             down2.getChannel().transferFrom(down1, 0, Long.MAX_VALUE);
  279.             down1.close();
  280.             down2.close();
  281.             return true;
  282.         } catch (IOException e) {
  283.             return false;
  284.         }
  285.     }
  286.  
  287.     public String extract_file_by_url(String url) {
  288.         return url.substring(url.lastIndexOf('/') + 1);
  289.     }
  290.  
  291.     public String uri_split(String link, String opcion) {
  292.         String resultado = "";
  293.         try {
  294.             URL url = new URL(link);
  295.             if (opcion == "protocol") {
  296.                 resultado = url.getProtocol();
  297.             } else if (opcion == "authority") {
  298.                 resultado = url.getAuthority();
  299.             } else if (opcion == "host") {
  300.                 resultado = url.getHost();
  301.             } else if (opcion == "port") {
  302.                 resultado = String.valueOf(url.getPort());
  303.             } else if (opcion == "path") {
  304.                 resultado = url.getPath();
  305.             } else if (opcion == "query") {
  306.                 resultado = url.getQuery();
  307.             } else if (opcion == "filename") {
  308.                 resultado = url.getFile();
  309.             } else if (opcion == "ref") {
  310.                 resultado = url.getRef();
  311.             } else {
  312.                 resultado = "Error";
  313.             }
  314.  
  315.         } catch (Exception e) {
  316.             //
  317.         }
  318.         return resultado;
  319.     }
  320.  
  321.     public String md5_encode(String text) {
  322.         // Credits : Based on http://www.avajava.com/tutorials/lessons/how-do-i-generate-an-md5-digest-for-a-string.html
  323.         StringBuffer string_now = null;
  324.         try {
  325.             MessageDigest generate = MessageDigest.getInstance("MD5");
  326.             generate.update(text.getBytes());
  327.             byte[] result = generate.digest();
  328.             string_now = new StringBuffer();
  329.             for (byte line : result) {
  330.                 string_now.append(String.format("%02x", line & 0xff));
  331.             }
  332.         } catch (Exception e) {
  333.             //
  334.         }
  335.         return string_now.toString();
  336.     }
  337.  
  338.     public String md5_file(String file) {
  339.         //Credits : Based on http://stackoverflow.com/questions/304268/getting-a-files-md5-checksum-in-java
  340.         // Thanks to
  341.         String resultado = "";
  342.         try {
  343.             MessageDigest convert = MessageDigest.getInstance("MD5");
  344.             FileInputStream file_now = new FileInputStream(file);
  345.  
  346.             byte[] bytes_now = new byte[1024];
  347.  
  348.             int now_now = 0;
  349.             while ((now_now = file_now.read(bytes_now)) != -1) {
  350.                 convert.update(bytes_now, 0, now_now);
  351.             };
  352.             byte[] converting = convert.digest();
  353.             StringBuffer result = new StringBuffer();
  354.             for (int i = 0; i < converting.length; i++) {
  355.                 result.append(Integer.toString((converting[i] & 0xff) + 0x100, 16).substring(1));
  356.             }
  357.             resultado = result.toString();
  358.         } catch (Exception e) {
  359.             //
  360.         }
  361.         return resultado;
  362.     }
  363.  
  364.     public String get_ip(String hostname) {
  365.         String resultado = "";
  366.         try {
  367.             InetAddress getting_ip = InetAddress.getByName(hostname);
  368.             resultado = getting_ip.getHostAddress();
  369.         } catch (Exception e) {
  370.             //
  371.         }
  372.         return resultado;
  373.     }
  374. }
  375.  
  376. // The End ?
  377.  

Ejemplos de uso :

Código: Java
  1. package dhtools;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Collections;
  5.  
  6. public class Main {
  7.  
  8.     public static void main(String[] args) {
  9.         DH_Tools tools = new DH_Tools();
  10.         //String codigo = tools.toma("http://localhost/");
  11.         //String codigo = tools.tomar("http://localhost/login.php", "usuario=test&password=dsdsads&control=Login");
  12.         //tools.savefile("c:/xampp/texto.txt","texto");
  13.         //String codigo = tools.read_file("c:/xampp/texto.txt");
  14.         //String codigo = tools.console("ver");
  15.         //String codigo = tools.httpfinger("http://www.petardas.com");
  16.         /*
  17.          ArrayList array = new ArrayList();
  18.          Collections.addAll(array, "http://localhost/sql.php?id=dsaadsds", "b", "http://localhost/sql.php?id=dsaadsds", "c");
  19.          ArrayList array2 = tools.repes(tools.cortar(array));
  20.          for (int i = 0; i < array2.size(); i++) {
  21.          System.out.println(array2.get(i));
  22.          }
  23.          */
  24.         //System.out.println(tools.regex("1sadasdsa2","1","2"));
  25.         //System.out.println(tools.response_code("http://www.petardas.com/"));
  26.         /*
  27.          File savefile = new File("c:/xampp/mierda.avi");
  28.          if(tools.download("http://localhost/test.avi",savefile)) {
  29.          System.out.println("yeah");
  30.          }
  31.          */
  32.  
  33.         //System.out.println(tools.extract_file_by_url("http://localhost/dsaads/dsadsads/index.php"));
  34.         //System.out.println(tools.uri_split("http://localhost/index.php?id=dadsdsa","query"));
  35.         //System.out.println(tools.md5_encode("123"));
  36.         //System.out.println(tools.md5_file("c:\\xampp\\texto.txt"));
  37.         //System.out.println(tools.get_ip("www.petardas.com"));
  38.     }
  39.  
  40. }
  41.  

Eso seria todo.
« Última modificación: Febrero 27, 2016, 12:37:14 pm por ANTRAX »

Conectado Adalher

  • *
  • Underc0der
  • Mensajes: 80
  • Actividad:
    38.33%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Abril 22, 2019, 03:49:46 pm »
Hola BigBear,

algo de crítica para tu código (y por favor no dejarse intimidar al instante de ello). ;) :(

•   A primera vista: Demasiadas funciones coherentes en una clase. ;)
•   Las convenciones de código de Java comunes hacen el código claramente más entendible para todos los otros. Por ejemplo: CamelCase para clases y variables en vez de Snake-Case.
•   Tu nombramiento es… horripilante. String re, StringBuffer conte, URLConnection nave, BufferedReader leyendo – y esto es solo el primer método.
•   Exceptionhandling no esta existente.
•   Además no afecta solamente a los Exceptions, sino también a los Resource-Handling. Ningún recurso se finaliza de forma significativa, la mayoría de estos no se finalizan en absoluto.
•   Nunca se debería usar Raw-Types (como ArrayList array).

Gracias y saludos

Conectado Adalher

  • *
  • Underc0der
  • Mensajes: 80
  • Actividad:
    38.33%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Septiembre 15, 2019, 10:21:59 pm »
Hola BigBear,

viendo nuevamente tu código, te escribo esto:
Por favor utiliza tipos primitivos para esto. Pésimo.
Código: Java
  1. public Boolean download(String url, File savefile) {
  2.  

Esto se ve tan bien, me pregunto por qué decidiste NO usar un switch o state para esto:
Código: Java
  1. if (opcion == "protocol") {
  2.                 resultado = url.getProtocol();
  3.             } else if (opcion == "authority") {
  4.                 resultado = url.getAuthority();
  5.             } else if (opcion == "host") {
  6.                 resultado = url.getHost();
  7.             } else if (opcion == "port") {
  8.                 resultado = String.valueOf(url.getPort());
  9.             } else if (opcion == "path") {
  10.                 resultado = url.getPath();
  11.             } else if (opcion == "query") {
  12.                 resultado = url.getQuery();
  13.             } else if (opcion == "filename") {
  14.                 resultado = url.getFile();
  15.             } else if (opcion == "ref") {
  16.                 resultado = url.getRef();
  17.             } else {
  18.                 resultado = "Error";
  19.             }
  20.  

Otro gran trabajo produciendo código basura. ¡Bien hecho! Realmente estás retrocediendo en tus habilidades.

Si esto, de hecho, se compila, me comeré mi sombrero de mier**.
Código: Java
  1. public ArrayList cortar(ArrayList array) {
  2.     ...
  3.     //ese nombre de función kek
  4. }
  5.  
Esto tiene que ser un troll.

Me gusta como cuando vi este hilo supe que yo estaría aquí para criticarlo. Roflmao

Algunas tomas más:

Código: Java
  1. public String toma(String link) {
  2.         String re;
  3.         StringBuffer conte = new StringBuffer(40);
  4.  
En la mayoría de los contextos, usa StringBuilder, no StringBuffer.

Código: Java
  1. public String tomar(String pagina, String data) {
  2.         // Credits : Function based in http://www.mkyong.com/java/how-to-send-http-request-getpost-in-java/
  3.  
El código en los créditos es más claro y comentado.

Código: Java
  1. public void savefile(String ruta, String texto) {
  2.  
  3.         FileWriter escribir = null;
  4.         File archivo = null;
  5.  
¿Por qué estas variables tienen un alcance para todo el método? Eso es innecesario.
También savefile vs read_file, adhierete a UNA convención de denominación, por favor. No tienes consistencia.

Código: Java
  1. // read_file
  2. Scanner leyendo = new Scanner(new FileReader(ruta));
  3.  
Este scanner nunca se cierra.

Código: Java
  1. Runtime.getRuntime().exec("cmd /c " + command);
  2.  
Este código es solo para Windows. Intenta mantener multiplataforma tu Java.

Código: Java
  1. public String httpfinger(String target)
  2.  
Honestamente, ¿por qué necesitarías esto como un tipo de retorno de string? Un mapa de claves de encabezado a sus valores sería mucho más útil.

Código: Java
  1. public ArrayList repes(ArrayList array)
  2.  
Bruh, hay muchas maneras mejores de eliminar duplicados.

Código: Java
  1. public ArrayList cortar(ArrayList array)
  2.  
Ok, tienes que estar trolleando. Esta mier** no se compila.

Código: Java
  1. public String md5_file(String file)
  2.  
Esto tampoco compila. Tienes un nombre de variable duplicado.

Código: Java
  1. regex(String code, String deaca, String hastaaca)
  2.  
De nuevo, alcance retrasado. Literalmente declarado en la siguiente línea, ¿por qué inicializar a null? ¿El infierno?


Saludos


[Moderado by AXCESS]
« Última modificación: Septiembre 17, 2019, 08:43:17 pm por AXCESS »

Desconectado hielasangre

  • *
  • Underc0der
  • Mensajes: 237
  • Actividad:
    21.67%
  • Reputación 5
    • Ver Perfil
« Respuesta #3 en: Septiembre 16, 2019, 03:05:16 am »
No entiendo, reviviste un post de 3 años de antigüedad solo para mofarte que sabes programar mejor que otra persona? Wow, felicidades...
No solo lo reviviste, sino que al no recibir atención, 6 meses después lo volves a revivir, felicidades campeón!

Desconectado AXCESS

  • *
  • Moderador Global
  • Mensajes: 474
  • Actividad:
    51.67%
  • Reputación 12
    • Ver Perfil
    • Email
« Respuesta #4 en: Septiembre 17, 2019, 08:46:51 pm »
@Adalher

Todo aquello que le he destacado en rojo es absolutamente innecesario.

No le asiste el derecho de emplear términos que humillen o denigren al usuario.

Mucho menos si su intensión es el de ayudarlo, corrigiéndole sus errores, para que así aprenda.

En realidad uno se cuestiona si su intensión es el de ayudarlo (altruismo), o de denigrarlo (miseria humana), a través de sus faltas, ensalzando, en el proceso, su  “superioridad” intelectual.

No le borraré sus inapropiados comentarios, pero definitivamente es una advertencia, ante su actuar.

Es una pena que el conocimiento no venga en comunión con esa humildad que indica grandeza, y sí con el remanente olvido de que todos, en nuestros inicios, tuvimos fallas que pudiéranse, tristemente denominar.

« Última modificación: Septiembre 18, 2019, 01:25:56 am por AXCESS »

Conectado Adalher

  • *
  • Underc0der
  • Mensajes: 80
  • Actividad:
    38.33%
  • Reputación 0
    • Ver Perfil
« Respuesta #5 en: Octubre 18, 2019, 07:35:25 am »
Hola AXCESS,

la personalidad defectuosa de BigBear se ha tomado a tiempo completo. Yo ya señale muchas cosas que están mal con su código hasta el punto en que ni siquiera se compila, sin embargo, la respuesta que obtengo de ti es proporcionarme un perfil psicológico y por qué es inapropiado de mi parte brindarle a BigBear mejores formas de hacer las cosas.
Con toda seriedad, en lugar de hacer trucos psicológicos aquí, repasemos esto una vez más:
BigBear proporciona un código defectuoso, le sugiero que lo arregle señalandole MUCHOS errores que cometió. Si sientes que el está siendo agredido mentalmente, no lo está. La programación se trata de una cierta lógica, las cosas pueden ser 0 o 1. El código de BigBear es un 0. No tiene más sentido discutir esto contigo y cualquier programador que esté dispuesto a ayudar continuará señalando sus errores para que pueda aprender de ellos. Los errores en la programación no son exclusivamente de BigBear, todos los cometemos, pero es por eso que es bueno que otras personas revisen su código. Si no deseas que otras personas revisen el código de BigBear, que el no lo publique en línea y que el no lo publicite como una especie de cosa perfecta y maravillosa para hacer ciertas cosas, porque no lo es.


Saludos

Desconectado AXCESS

  • *
  • Moderador Global
  • Mensajes: 474
  • Actividad:
    51.67%
  • Reputación 12
    • Ver Perfil
    • Email
« Respuesta #6 en: Octubre 18, 2019, 07:25:08 pm »
@Adalher

A lo que me he referido ha sido a que no hay necesidad de” humillar” a nadie empleando términos, que si es honesto, y se pusiera en el lugar opuesto entendería.

Las deficiencias del conocimiento, sus observaciones y correcciones son válidas.  Si no, no tuviera sentido intercambiar y exponer los  trabajos.

Pero en cambio, el método usado para tal fin, ir señalando u corrigiendo (conocimiento en sí) y usar términos denominativos que pudieran ofender al usuario (forma de expresarse), no resulta positivo.

Solo me he referido a su dureza de denominaciones y términos (proyección) que no son ni educados, corteses, o pedagógicos. Completamente innecesarios.

Eso todo.
 
Lo de los juegos psicológicos de mi parte; u agresiones mentales por su lado… sobran.
Lamento que lo interprete de ese modo, y no sea capaz de ver el detalle de la educación, respeto y caballerosidad, de alguien que, como Ud. domina un saber y desea que otro aprenda de sus errores, sin sentirse abochornado, inferior, o arrepentido de confiar en que serán tolerantes y gentiles ayudándolo, al corregirle sus faltas.
 
Es sobre el aspecto humano y no sobre el conocimiento.
Es sobre el ser sensible, por encima de la fría lógica que develan los errores.
Solo hablo de cortesía o gentileza profesional al enseñarle a otro algo, destacándole dichas faltas , tal y como le enseñaron sus seres queridos, profesores y amigos.

Es Ud. un buen profesional, no me cabe la menor duda…
 y será aún mejor persona si logra entender esto que le digo.

Mis mejores deseos.

 

¿Te gustó el post? COMPARTILO!



[Video Curso] Iniciacion a Java por DesarrolloWeb y EscuelaIT Mayo 2014

Iniciado por graphixx

Respuestas: 3
Vistas: 3590
Último mensaje Febrero 23, 2015, 10:13:28 am
por Hu3c0
Java Extremo [Video Cursos Completos] [Español] [ISO] 2009

Iniciado por graphixx

Respuestas: 9
Vistas: 9246
Último mensaje Diciembre 04, 2017, 02:36:34 am
por graphixx
Como compilar programas Java en la consola de comandos de Windows

Iniciado por tar3kw0rm3d

Respuestas: 2
Vistas: 3932
Último mensaje Junio 04, 2013, 02:55:07 pm
por tar3kw0rm3d
[LIBRO] Programación avanzada en Java - Sonia Jaramillo Valbuena

Iniciado por graphixx

Respuestas: 5
Vistas: 8308
Último mensaje Enero 23, 2019, 07:14:41 pm
por jashin
[Java] Chat utilizando WebSockets con JavaEE y JavaFx

Iniciado por coke951

Respuestas: 3
Vistas: 5677
Último mensaje Diciembre 23, 2016, 10:23:24 pm
por coke951