elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 63
51  Programación / Java / Re: contribución mini ejemplo de lenguaje interpretado en: 16 Noviembre 2018, 18:45 pm
recien estoy estudiando y mejorando mi habilidad en IA cuando tenga algo hare tutorial bueno y si les es importante usar opencv lo hare con eso
52  Programación / Java / Re: contribución mini ejemplo de lenguaje interpretado en: 16 Noviembre 2018, 17:46 pm
ahora estoy trabajando en el algebrea booleana para luego hacer condicionales
luego hare funciones y talves termine en bucles

bueno este desarrollo es incremental y tendre un tiempo de refactoring para mejorar el rendimiento la testeabilidad y facilidad de lectura

ya he escrito codigo mas complicado y con mas limpieza

***** que p**a he hecho con mi vida he puesta a la programación en un pedestal le dedique mucho de mi no se si esta bien o esta mal no se que mas sentir

la sarna con gusto no pica

estoy estudiando AI

quieren que les enseñe como se usa inteligencia artificial para hacer cosas aterradoras
saltar captchas, controlar los clasificadores de imagen ( que reconoscan mal el rostro ) una aplicacion con un solo botonazo y devuelva shell para los que tienen el dedo gordo como yo

hagan su pedido
53  Seguridad Informática / Nivel Web / Re: Script/método para inferir versión de Wordpress en: 16 Noviembre 2018, 06:55 am
que malito eres

bueno yo en mis malos tiempos(mejores momentos de mi vida) solia ver el código fuente de la pagina buscar el archivo style.css ojala que las cosas no hayan cambiado

otra manera es ver los archivos javascript tienes que leerlo luego buscas en el control de versiones de wordpress que el archivo sea exactamente igual
54  Programación / Java / contribución mini ejemplo de lenguaje interpretado en: 15 Noviembre 2018, 21:32 pm
hola para todos aquellos que se preguntan como crear su propio evaluador de expresiones del tipo 5*4 +3 -2 *(5) a qui les tengo un pequeño ejemplito en menos de 81 lineas y sin usar regex


Código
  1. package javaapplication17;
  2.  
  3. import java.util.HashMap;
  4.  
  5. public class Interpreter {
  6.  
  7.    private final HashMap<String, String> variables = new HashMap<>();
  8.  
  9.    public static void main(String[] args) {
  10.         Interpreter interpreter = new Interpreter();
  11.        //calculation
  12.        for (String text : new String[]{
  13.            "1",
  14.            "12",
  15.            "5^2",
  16.            "12+13",
  17.            "4+2-1",
  18.            "(1)",
  19.            "(4/2+1*2)",
  20.            "(1+3)+(5+6-3+13)",
  21.            "3*(4+2)",
  22.            "3*4*(5+3)+16+2",
  23.            "8*7+(4+3+6*(5+4))",}) {
  24.  
  25.            System.out.println("text= " + text + " " + interpreter.evalProgram(text));
  26.        }
  27.        //programing feature booleans
  28.        System.out.println();
  29.        System.out.println("booleans");
  30.        System.out.println();
  31.        for (String text : new String[]{
  32.            "1<2",
  33.            "2>3",
  34.            "12>13",
  35.            "12<14",
  36.            "(5+1)<14",
  37.            "14<(5+1)",
  38.            "(1+2)-3<4*2",
  39.            "true",
  40.            "false",
  41.            "false&true",
  42.            "false&true",
  43.            "false&true|true",
  44.            "true&false|true",
  45.            "1+2<3&4<2|false",
  46.            "(1+2)*3-1<4|false&true|(3+1)<4"}) {
  47.            Interpreter programEvaluetor = new Interpreter();
  48.            final String evalBoolean = programEvaluetor.evalProgram(text);
  49.            System.out.println(text + " = " + evalBoolean);
  50.        }
  51.        //simple scripts
  52.  
  53.        System.out.println();
  54.        System.out.println("programs");
  55.        System.out.println();
  56.        for (String text : new String[]{
  57.            "1",
  58.            "3+2-1",
  59.            "3+2-1\n1+2+1",
  60.            "4*5\n5*3",
  61.            "5*8\n4+2\n5+5+5",
  62.            "a=3*4\na",
  63.            "b=3*4\nb",
  64.            "abc=3*4\nabc\ncde=2*5+1\ncde",
  65.            "a=2\nb=3\nc=a+b\nc",
  66.            "c=true\nc",}) {
  67.            Interpreter programEvaluetor = new Interpreter();
  68.            System.out.println("=======program================================");
  69.            System.out.println(text);
  70.            System.out.println("=======endprogram=============================");
  71.            System.out.println("=======output program=========================");
  72.            System.out.println(programEvaluetor.evalProgram(text));
  73.            System.out.println("=======end output program=====================");
  74.            System.out.println("");
  75.            System.out.println("");
  76.        }
  77.  
  78.        //conditionals programs
  79.        System.out.println();
  80.        System.out.println("conditionals programs");
  81.        System.out.println();
  82.        for (String text : new String[]{
  83.            "1\nif(true){\n2\n}",
  84.            "if(false){\n1\n}",
  85.            "2\nif(true){\n1\n}",
  86.            "2\nif(false){\n1\n}\n3",
  87.            "1\nif(true){\n2\n}\n3",}) {
  88.            Interpreter programEvaluetor = new Interpreter();
  89.            System.out.println("=======program================================");
  90.            System.out.println(text);
  91.            System.out.println("=======endprogram=============================");
  92.            System.out.println("=======output program=========================");
  93.            System.out.println(programEvaluetor.evalProgram(text));
  94.            System.out.println("=======end output program=====================");
  95.            System.out.println("");
  96.            System.out.println("");
  97.        }
  98.        //conditionals programs
  99.    }
  100.  
  101.    private boolean evalCondition(String condition) {
  102.        final String evalBoleanExpresion = evalBoleanExpresion(condition.substring(3, condition.length() - 2));
  103.        return Boolean.parseBoolean(evalBoleanExpresion);
  104.    }
  105.  
  106.    private String evalProgram(final String expresion) {
  107.        String[] comands = expresion.split("\n");
  108.        String result = "";
  109.        boolean run = true;
  110.        for (int i = 0; i < comands.length; i++) {
  111.            String comand = comands[i];
  112.            if (comand.startsWith("if")) {
  113.                run = evalCondition(comand);
  114.                continue;
  115.            }
  116.  
  117.            if (comand.startsWith("}")) {
  118.                run = true;
  119.                continue;
  120.            }
  121.  
  122.            if (run) {
  123.                final String evalComand = evalComand(comand);
  124.                if (!evalComand.isEmpty()) {
  125.                    result += evalComand + "\n";
  126.                }
  127.            }
  128.  
  129.        }
  130.  
  131.        return result.isEmpty() ? "" : result.substring(0, result.length() - 1);
  132.    }
  133.  
  134.    private String evalComand(String expresion) {
  135.        String[] comandPart = expresion.split("=");
  136.        String result = "";
  137.  
  138.        if (comandPart.length == 1) {
  139.            String candidate = comandPart[0];
  140.            if (candidate.equals("true") || candidate.equals("false")) {
  141.                return eval(expresion);
  142.            }
  143.            if (candidate.chars().allMatch(Character::isLetter)) {
  144.                return "" + variables.get(candidate);
  145.            }
  146.            return eval(expresion);
  147.        }
  148.        if (comandPart.length == 2) {
  149.            variables.put(comandPart[0], (eval(comandPart[1])));
  150.  
  151.            return "";
  152.        }
  153.  
  154.        return result;
  155.    }
  156.  
  157.    private String eval(String inputString) {
  158.  
  159.        String buffer = "";
  160.        int beginIndex = -1;
  161.  
  162.        for (int i = 0; i < inputString.length(); i++) {
  163.            final char character = inputString.charAt(i);
  164.            if (character == '(') {
  165.                beginIndex = i;
  166.                buffer = "";
  167.                buffer += character;
  168.            }
  169.            if (!buffer.isEmpty()) {
  170.                String charLetter = (character + "");
  171.                buffer += charLetter.equals("(") || charLetter.equals(")") ? "" : charLetter;
  172.            }
  173.            if (character == ')') {
  174.  
  175.                buffer += character;
  176.                inputString = inputString.substring(0, beginIndex) + evalParentesis(buffer) + inputString.substring(beginIndex + buffer.length());
  177.                i = 0;
  178.                buffer = "";
  179.  
  180.            }
  181.        }
  182.  
  183.        return "" + evalExpresion(inputString);
  184.    }
  185.  
  186.    private String evalParentesis(String coeficientString) {
  187.  
  188.        return evalExpresion(coeficientString.substring(1, coeficientString.length() - 1));
  189.    }
  190.  
  191.    private String evalExpresion(String expresion) {
  192.        String result = "";
  193.        if (expresion.contains("<")
  194.                || expresion.contains(">")
  195.                || expresion.contains("&")
  196.                || expresion.contains("|")
  197.                || expresion.contains("true")
  198.                || expresion.contains("false")) {
  199.            result = evalBoleanExpresion(expresion);
  200.        } else {
  201.            result = evalAddExpresion(expresion) + "";
  202.        }
  203.  
  204.        return result;
  205.    }
  206.  
  207.    private int evalAddExpresion(String expresion) {
  208.        char[] characters = expresion.toCharArray();
  209.        String buffer = "";
  210.        int result = 0;
  211.        for (int i = 0; i < expresion.length(); i++) {
  212.            char character = expresion.charAt(i);
  213.            buffer += character;
  214.            if (i == characters.length - 1
  215.                    || characters[i + 1] == '+'
  216.                    || characters[i + 1] == '-') {
  217.  
  218.                if (buffer.startsWith("-")) {
  219.                    result -= evalSub(buffer.replace("-", ""));
  220.                } else {
  221.                    result += evalSub(buffer.replace("+", ""));
  222.                }
  223.                buffer = "";
  224.            }
  225.  
  226.        }
  227.  
  228.        return result;
  229.    }
  230.  
  231.    private int evalSub(final String expresion) {
  232.        char[] characters = expresion.toCharArray();
  233.        String buffer = "";
  234.        int result = 1;
  235.        for (int i = 0; i < expresion.length(); i++) {
  236.            char character = expresion.charAt(i);
  237.            buffer += character;
  238.            if (i == characters.length - 1
  239.                    || characters[i + 1] == '*'
  240.                    || characters[i + 1] == '/') {
  241.  
  242.                if (buffer.startsWith("/")) {
  243.                    result /= evalExpo(buffer.replace("/", ""));
  244.                } else {
  245.                    result *= evalExpo(buffer.replace("*", ""));
  246.                }
  247.                buffer = "";
  248.            }
  249.  
  250.        }
  251.  
  252.        return result;
  253.    }
  254.  
  255.    private int evalExpo(final String expresion) {
  256.        char[] characters = expresion.toCharArray();
  257.        String buffer = "";
  258.        int result = 1;
  259.        for (int i = expresion.length() - 1; i >= 0; i--) {
  260.            char character = expresion.charAt(i);
  261.            buffer = character + buffer;
  262.            if (i == 0 || characters[i - 1] == '^') {
  263.                result = (int) (Math.pow(Integer.parseInt(evalElement(buffer.replace("^", ""))), (result)));
  264.                buffer = "";
  265.            }
  266.  
  267.        }
  268.        return result;
  269.    }
  270.  
  271.    private String evalElement(String expresion) {
  272.  
  273.        if (expresion.chars().allMatch(Character::isLetter)) {
  274.            return variables.get(expresion);
  275.        } else {
  276.            return expresion;
  277.        }
  278.  
  279.    }
  280.  
  281.    private String evalBoleanExpresion(String expresion) {
  282.        char[] characters = expresion.toCharArray();
  283.        String buffer = "";
  284.        boolean result = true;
  285.        for (int i = 0; i < expresion.length(); i++) {
  286.            char character = expresion.charAt(i);
  287.            buffer += character;
  288.            if (i == characters.length - 1
  289.                    || characters[i + 1] == '&'
  290.                    || characters[i + 1] == '|') {
  291.  
  292.                if (buffer.startsWith("&")) {
  293.                    result &= Boolean.parseBoolean(evalBooleanElement(buffer.replace("&", "")));
  294.                } else if (buffer.startsWith("|")) {
  295.                    result |= Boolean.parseBoolean(evalBooleanElement(buffer.replace("|", "")));
  296.                } else {
  297.                    result = Boolean.parseBoolean(evalBooleanElement(buffer));
  298.                }
  299.                buffer = "";
  300.            }
  301.  
  302.        }
  303.  
  304.        return result + "";
  305.    }
  306.  
  307.    private String evalBooleanElement(final String expresion) {
  308.        String result = "";
  309.        if (expresion.contains("<") || expresion.contains(">")) {
  310.  
  311.            String[] split = expresion.split("<|>");
  312.            String left = evalExpresion(split[0]);
  313.            String right = evalExpresion(split[1]);
  314.  
  315.            if (expresion.contains("<")) {
  316.                result = "" + (Integer.parseInt(left) < Integer.parseInt(right));
  317.  
  318.            }
  319.            if (expresion.contains(">")) {
  320.                result = "" + (Integer.parseInt(left) > Integer.parseInt(right));
  321.            }
  322.        } else {
  323.            result = expresion;
  324.        }
  325.  
  326.        return result;
  327.    }
  328. }
  329.  
  330.  
  331.  

en un futuro agregare la funcionalidad de de agregar variables funciones bucles y condicionales para que se paresca a javascript   ::)

porfavor cuentenme lo que quieran del post preguntas traumas amensas o respuesta troll pero no me ignoren por que soy una perra de atención


diganme si lo han usado y en que
55  Programación / Java / Re: Java - Swing - JRadioButton en: 15 Noviembre 2018, 15:25 pm
1 para que el compilador te oblige a que escribas el cuerpo de metodo a implementar
2 por que cuando escribieron el metodo addChangeListener lo hicieron asi

addChangeListener(ChangeListener l){
....
}


dale una repasada a lo que son las clases e interfaces y como se usan y tambien a los inner clases
56  Programación / Java / Re: Java - Swing - JRadioButton en: 14 Noviembre 2018, 22:39 pm
eclipse no tiene nada que ver

tienes que pasarle un objeto por que asi funciona el patron de diseño observador

y se le pasa un objeto entero debido a que java en las versiones anterirores a la 8 a los metodos solo puedes pasarle objetos no hay forma de pasar como parametros a metodos
57  Programación / Java / Re: Java - Swing - JRadioButton en: 14 Noviembre 2018, 00:00 am
cuando el usuario le hace click al radiobutton
58  Programación / Java / Re: Control de prioridad de ejecución de núcleos. en: 13 Noviembre 2018, 23:57 pm
waaa no lei bien

le quitas el parrallel(linea 3) y ya  se ejecuta en un solo nucleo
o programas normal con bucles y sin usar hilos y ya no habría forma de usar varios nucleos
59  Programación / Java / Re: Control de prioridad de ejecución de núcleos. en: 13 Noviembre 2018, 18:25 pm
la "mejor forma y mas facil" de hacerlo es con stream

este es un ejemplo de como
creo un stream de los numeros del uno al 6 (1)
luego le ordeno que los calculos sean en paralelo (2)
luego lo multiplico cada elemento por 2 (3)
luego filtro los que son mayores a 3 (4)
luego le saco el minimo de todos (5)
y en caso de que haya error muera muera tragica y pateticamente sin darle auxilio

Código
  1.  
  2. int min = Stream.of(1, 2, 4, 5, 6).   //1
  3.                parallel().                      //2
  4.                mapToInt((x) -> x * 2). //3
  5.                filter((x) -> x > 3).        //4
  6.                min().                           //5
  7.                orElseThrow(NoSuchElementException::new);//6
  8.        System.out.println(min);
  9.  
  10.  


recuerda que lo mas probable cuando uses streams malogre el rendimiento (es solo para gente grande con pelos en el pecho y lomo plateado)

los stream mejorar el rendimiento solo cuando son calculos de muy alto costo computacional para casos chicos incluso puede empeorar la unica forma de tener un grado de seguridad es con experimentos realistas o un analisis estadisco de datos historicos de forma muy rigurosa

leea para tener fundamento teorico
1 experimentcion k a la n
2 universal escalability law
3 historgrama
4 percentiles
5 usa el "#$%$ excel
60  Programación / Java / Re: Envio de emails programados con springboot + vaadin 8 en: 8 Noviembre 2018, 22:16 pm
xdddddd


mira que bonita ventenita

gracias por el aporte me sera muy util a mi y a los demás cuando tenga que implentarlo
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 63
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines