El documento resume los principales cambios introducidos en Java 7, incluyendo mejoras en el lenguaje como literales binarios, switch con cadenas y try-with-resources, así como nuevas características como invokedynamic, NIO2 y el framework Fork/Join para aprovechar procesadores multicore. También menciona las mejoras planeadas para Java 8 como Coin y soporte para closures.
Keynote at the security meeting NoConName 2012 (#ncn2k12)
Abraham Pasamar, CEO of INCIDE, gave a keynote called "Avoiding Antivirus: use of Crypters" on November 3rd at the NoConName, the security meeting took place in Barcelona.
Clase de Groovy para Seminario de ingeniería en informática. Cátedra de Pablo Cosso. Clase a cargo de Nicolás Bello Camilletti.
Mas información y código fuente: http://www.assembla.com/spaces/clase-groovy/
Cómo explotar EternalBlue en Windows Server 2012 R2Telefónica
Paper de Sheila A. Berta (@UnaPibaGeek) sobre cómo conseguir explotar con éxito EternalBlue en sistemas operativos Windows Server 2012 R2. Más información en el artículo http://www.elladodelmal.com/2017/07/como-explotar-eternalblue-en-windows.html
Keynote at the security meeting NoConName 2012 (#ncn2k12)
Abraham Pasamar, CEO of INCIDE, gave a keynote called "Avoiding Antivirus: use of Crypters" on November 3rd at the NoConName, the security meeting took place in Barcelona.
Clase de Groovy para Seminario de ingeniería en informática. Cátedra de Pablo Cosso. Clase a cargo de Nicolás Bello Camilletti.
Mas información y código fuente: http://www.assembla.com/spaces/clase-groovy/
Cómo explotar EternalBlue en Windows Server 2012 R2Telefónica
Paper de Sheila A. Berta (@UnaPibaGeek) sobre cómo conseguir explotar con éxito EternalBlue en sistemas operativos Windows Server 2012 R2. Más información en el artículo http://www.elladodelmal.com/2017/07/como-explotar-eternalblue-en-windows.html
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]RootedCON
Presentación en exclusiva para RootedCON de una extensión para el navegador Chrome que lo transformará en un navegador de ataque. Consiguiendo altas velocidades de ataque sin hacer caer el web-server puesto que se adapta a el. Permite estadísticas de ataque, es multiproceso y multi thread con un bus de comunicación interno entre los componentes, muy ergonómico y sencillo de usar.
Algunas características: Fuzzea, craquea, ejecuta los eventos javascript, audit pasivo mientras navegas, IA de aprendizaje, tanteador de paramestros, logger, notificador de inicio/fin, gestor de wordlists y simbiosis con apps externas.
El web hacking no es nada nuevo, y es un tema mas que explotado, sin embargo una app free revolucionaria que va a ser usada en todo el planeta, por su potencia y facilidad de uso.
Según la evolución de las herramientas de web hacking, cada vez se han ido unificando mas en tools que lo hacen todo y cada vez mas cercanas al navegador (proxies) pero ahora la tool de ataque es el propio navegador, el cual realizara el hack manual y también el hack automatico combiando.
Las páginas web con contenido dinamico, hacen que muchas tools queden obsoletas al no emular el javascript, y aunque se emule el javascript nunca se hará mejor que desde el propio navegador. Esta tool dispara los eventos javascript de la página para atacar desde un estado de normalidad y adaptandose a la velocidad que absorva el servidor. A su vez, aprovecha la sandbox de protección mas potente que existe, para evitar vulnerabildiades de contra-ataque (ataque a traves del ataque)
La ponencia, combinará detalles técinos sobre comunicación entre componentes chrome y la sandbox de protección, con evolución del web-hacking y un poco de inteligencia artificial.
La IA consiste en:
- aprendizaje simple: retroalimentar las wordlist según se navega
- sistema experto: tantear parámetros de la forma mas efectiva
- aprendizaje complejo: aprender los ataques manuales elaborados por el auditor.
En esta introducción podremos conocer 40 novedades que trae la nueva versión de la plataforma a liberarse el próximo mes de Septiembre 2017.
Accede a la presentación con audio en: https://youtu.be/UeuxAkFKr6I
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]RootedCON
Presentación en exclusiva para RootedCON de una extensión para el navegador Chrome que lo transformará en un navegador de ataque. Consiguiendo altas velocidades de ataque sin hacer caer el web-server puesto que se adapta a el. Permite estadísticas de ataque, es multiproceso y multi thread con un bus de comunicación interno entre los componentes, muy ergonómico y sencillo de usar.
Algunas características: Fuzzea, craquea, ejecuta los eventos javascript, audit pasivo mientras navegas, IA de aprendizaje, tanteador de paramestros, logger, notificador de inicio/fin, gestor de wordlists y simbiosis con apps externas.
El web hacking no es nada nuevo, y es un tema mas que explotado, sin embargo una app free revolucionaria que va a ser usada en todo el planeta, por su potencia y facilidad de uso.
Según la evolución de las herramientas de web hacking, cada vez se han ido unificando mas en tools que lo hacen todo y cada vez mas cercanas al navegador (proxies) pero ahora la tool de ataque es el propio navegador, el cual realizara el hack manual y también el hack automatico combiando.
Las páginas web con contenido dinamico, hacen que muchas tools queden obsoletas al no emular el javascript, y aunque se emule el javascript nunca se hará mejor que desde el propio navegador. Esta tool dispara los eventos javascript de la página para atacar desde un estado de normalidad y adaptandose a la velocidad que absorva el servidor. A su vez, aprovecha la sandbox de protección mas potente que existe, para evitar vulnerabildiades de contra-ataque (ataque a traves del ataque)
La ponencia, combinará detalles técinos sobre comunicación entre componentes chrome y la sandbox de protección, con evolución del web-hacking y un poco de inteligencia artificial.
La IA consiste en:
- aprendizaje simple: retroalimentar las wordlist según se navega
- sistema experto: tantear parámetros de la forma mas efectiva
- aprendizaje complejo: aprender los ataques manuales elaborados por el auditor.
En esta introducción podremos conocer 40 novedades que trae la nueva versión de la plataforma a liberarse el próximo mes de Septiembre 2017.
Accede a la presentación con audio en: https://youtu.be/UeuxAkFKr6I
Sesión de presentación de sistemas enterprise y herramientas de software con licencia abierta para su creación.
Conferncia dictada en el Congreso de Estudiantes de Ciencias y Sistemas (COECYS), Guatemala 2014
Conceptos basicos de aprendizaje de maquina, asi como sus aplicaciones e implementaciones en Java, presentación realizada en el Oracle Develooper Tour 2016.
Presentación utilizada en el grupo de usuarios Java de Guatemala, demostrando principos basicos para la creación de aplicaciones HTML5 con AngularJS y Java EE.
Lighttpd es un webserver que nacio como un Proof of Concept de "The C10K problem": "It's time for web servers to handle ten thousand clients simultaneously".
Tres años despues, Lighttpd es un webserver estable, rapido e increiblemente flexible; lo que lo hace una opcion ideal para servir aplicaciones web hechas a medida.
En esta charla se discuten los distintos abordajes para lograr tolerancia a fallas en sistemas distribuidos y microservicios, especialmente con microservice chassis y service mesh.
Posteriormente se comentan algunas opciones para su implementación utilizando MicroProfile Fault Tolerance y Linkerd
En esta charla conjunta con el Colegio de Ingenieros de Guatemala hablamos acerca de Kubernetes como plataforma de orquestación de contenedores, incluyendo:
- Motivaciones e historia de Kubernetes
- Arquitectura básica de funcionamiento
- Uso de objetos centrales -e.g. Container, Pod, Deployment, Service-
Para la charla se ejecutan diversas pruebas básicas con Minikube y Oracle Cloud con el objetivo de presentar Kubernetes a las personas que estan iniciando con la plataforma.
En esta presentación se presenta una discusión acerca del nuevo glosario del ingeniero de software incluyendo:
- TDD
- DDD
- Cloud Native
- 12 factors
- DevOps
- CQRS
- Event Sourcing
Que significan todos esos términos y como pueden ayudarlos en su jornada cloud.
Palestra apresentada no TDC Porto Alegre 2020, na sala Oracle. Revisitamos os Dessign Patterns nos Microsserviços para conversar como é que o ecosistema tem evoluido.
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Víctor Leonel Orozco López
Estos slides corresponden a la charla "Desde Java 8 on premise para Java 11 en la nube, hasta Java 14 en el infinito" en la cual exploramos cuales son las limitantes y caracteristicas técnicas que un proyecto debe considerar al momento de actualizar versiones de Java, especialmente desde Java 8 hasta Java 11.
La charla fue parte del Oracle #GroundBreakersTour 2020
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Víctor Leonel Orozco López
Estos slides corresponden a la charla "Desde Java 8 on premise para Java 11 en la nube, hasta Java 14 en el infinito" en la cual exploramos cuales son las limitantes y caracteristicas técnicas que un proyecto debe considerar al momento de actualizar versiones de Java, especialmente desde Java 8 hasta Java 11.
La charla fue parte del Oracle #GroundBreakersTour 2020
Durante esta presentación se cubren aspectos típicos de la carrera de desarrollador de software, incluyendo como funciona la carrera típica de desarrollador de software, tipos de desarrollador por función, niveles -i.e junior, mid, senior, architect- asi como algunas consideraciones de lo que he visto en estos 10 años.
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Telefónica
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0xWord escrito por Ibón Reinoso ( https://mypublicinbox.com/IBhone ) con Prólogo de Chema Alonso ( https://mypublicinbox.com/ChemaAlonso ). Puedes comprarlo aquí: https://0xword.com/es/libros/233-big-data-tecnologias-para-arquitecturas-data-centric.html
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital, siendo este un componente electrónico, por tanto se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
Recopilación de los puntos más interesantes de diversas presentaciones, desde los visionarios conceptos de Alan Turing, pasando por la paradoja de Hans Moravec y la descripcion de Singularidad de Max Tegmark, hasta los innovadores avances de ChatGPT, y de cómo la IA está transformando la seguridad digital y protegiendo nuestras vidas.
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...espinozaernesto427
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta intensidad son un tipo de lámpara eléctrica de descarga de gas que produce luz por medio de un arco eléctrico entre electrodos de tungsteno alojados dentro de un tubo de alúmina o cuarzo moldeado translúcido o transparente.
lámparas más eficientes del mercado, debido a su menor consumo y por la cantidad de luz que emiten. Adquieren una vida útil de hasta 50.000 horas y no generan calor alguna. Si quieres cambiar la iluminación de tu hogar para hacerla mucho más eficiente, ¡esta es tu mejor opción!
Las nuevas lámparas de descarga de alta intensidad producen más luz visible por unidad de energía eléctrica consumida que las lámparas fluorescentes e incandescentes, ya que una mayor proporción de su radiación es luz visible, en contraste con la infrarroja. Sin embargo, la salida de lúmenes de la iluminación HID puede deteriorarse hasta en un 70% durante 10,000 horas de funcionamiento.
Muchos vehículos modernos usan bombillas HID para los principales sistemas de iluminación, aunque algunas aplicaciones ahora están pasando de bombillas HID a tecnología LED y láser.1 Modelos de lámparas van desde las típicas lámparas de 35 a 100 W de los autos, a las de más de 15 kW que se utilizan en los proyectores de cines IMAX.
Esta tecnología HID no es nueva y fue demostrada por primera vez por Francis Hauksbee en 1705. Lámpara de Nernst.
Lámpara incandescente.
Lámpara de descarga. Lámpara fluorescente. Lámpara fluorescente compacta. Lámpara de haluro metálico. Lámpara de vapor de sodio. Lámpara de vapor de mercurio. Lámpara de neón. Lámpara de deuterio. Lámpara xenón.
Lámpara LED.
Lámpara de plasma.
Flash (fotografía) Las lámparas de descarga de alta intensidad (HID) son un tipo de lámparas de descarga de gas muy utilizadas en la industria de la iluminación. Estas lámparas producen luz creando un arco eléctrico entre dos electrodos a través de un gas ionizado. Las lámparas HID son conocidas por su gran eficacia a la hora de convertir la electricidad en luz y por su larga vida útil.
A diferencia de las luces fluorescentes, que necesitan un recubrimiento de fósforo para emitir luz visible, las lámparas HID no necesitan ningún recubrimiento en el interior de sus tubos. El propio arco eléctrico emite luz visible. Sin embargo, algunas lámparas de halogenuros metálicos y muchas lámparas de vapor de mercurio tienen un recubrimiento de fósforo en el interior de la bombilla para mejorar el espectro luminoso y reproducción cromática. Las lámparas HID están disponibles en varias potencias, que van desde los 25 vatios de las lámparas de halogenuros metálicos autobalastradas y los 35 vatios de las lámparas de vapor de sodio de alta intensidad hasta los 1.000 vatios de las lámparas de vapor de mercurio y vapor de sodio de alta intensidad, e incluso hasta los 1.500 vatios de las lámparas de halogenuros metálicos.
Las lámparas HID requieren un equipo de control especial llamado balasto para funcionar
Es un diagrama para La asistencia técnica o apoyo técnico es brindada por las compañías para que sus clientes puedan hacer uso de sus productos o servicios de la manera en que fueron puestos a la venta.
6/27/11 What is really important to note here is that we are using a slide from JavaOne 2005, this means that from the beginning we have been following the same principles and we are committed to continue to follow these principles as we evolve the language. - We want the code to be easy to read. - The language won't hide anything, and it should do what it seems to do - Even if there are great ideas and features, we are very careful deciding if that feature should be included in the language, some good features add so much weight, it's actually better to leave it out of the language. Again, we are committed to evolved the language, but very cautiously, we want java to be around for very long time.
6/27/11 Finally we have support for binary literals, and also support for underscores, that allow you to group together, and make it easier to read the literals.
6/27/11 Before Java SE 7, you can only use integer constants and enum constanst in the case of the switch statement. Now with JDK 7 you can also have String, as they are also constants.
6/27/11 This is an example pre Java SE 7. In this code, the monthNameToDays method has two parameters, a string representing a month, and an int for the year. The method will return an int representing the number of days that month has in that particular year. Because it was not possible to use string in switch statements, we ended up with a bunch of if statements, plus a bunch of comparison for the months, using the method equals from the String class. Long, ugly and easy to make mistakes!!!!
6/27/11 This is an example pre Java SE 7. In this code, the monthNameToDays method has two parameters, a string representing a month, and an int for the year. The method will return an int representing the number of days that month has in that particular year. Because it was not possible to use string in switch statements, we ended up with a bunch of if statements, plus a bunch of comparison for the months, using the method equals from the String class. Long, ugly and easy to make mistakes!!!!
6/27/11 Now, lets have a look at a different topic, Generic. Lets go back in time, before the JDK 5, before we have generics, when we created collections without specifying the type for the elements stored in that collection.
6/27/11 Now, lets have a look at a different topic, Generic. Lets go back in time, before the JDK 5, before we have generics, when we created collections without specifying the type for the elements stored in that collection.
6/27/11 Now, lets have a look at a different topic, Generic. Lets go back in time, before the JDK 5, before we have generics, when we created collections without specifying the type for the elements stored in that collection.
6/27/11 As we can see the result is that many people have written compilers that will take all sorts of languages and created compilers for them; you can see functional languages, dynamically typed languages, list based languages and so on.
6/27/11 The biggest issue for dynamically typed languages running on the JVM is performance, specifically of how method calls get made. Since Java was designed with static typing it is possible to resolve methods at compile time and include the reference directly in the code (dynamic class loading might seem like an issue, but the new class is still static in its references). The JVM has four ways to invoke a method; most calls will go through invokevirtual. For interfaces invokeinterface is used, static methods use invokestatic and constructors are called by invokespecial. Since these all required a full method signature compiler writers for dynamically typed languages must resolve the reference every time a method is called in case a type involved in the call has changed. To make life easier we are including the first new bytecode in the JVM instruction set since it was launched. This is called InvokeDynamic and will not be used by Java (at least not until Java SE 8). The basic idea is that when a method is first called bootstrap code will resolve the reference and store a method handle in a callsite (effectively a function pointer). Subsequent calls to the method will find there is already a method handle and call the method through the callsite. If a type involved in the method signature changes the compiled code can detect this, resolve the method based on the new signature and store the changed reference in the call site. Therefore the method only needs to be resolved when changes are made not every time the method is called. This is much more efficient.
To help understand this we provide a diagram. To shorten this presentation you may want to remove the details of how invokedynamic works as this does not impact on most developers.
6/27/11 Java SE 7 als includes some updates to the client libraries.
6/27/11 The Nimbus look and feel was introduced in Java SE 6 update 10 as a replacement for the metal cross platform L&F. In Java SE 7 this has been moved to a standard part of the platform (previously it was an oracle extension package, now it is in the javax.swing.plaf package). The decision was made not to make this the default L&F, this will continue to be Metal. Although many people in the community wanted this it was decided that the impact on existing applications would be too great.
6/27/11 The Jlayer component provides an easy way to add an overlay to existing Swing components. Examples are a progress wheel or highlighting only vallid choices in a multiple-choice component.
Although the Path class is a replacement for the File class there are some differences worth noting. Since Path is an interface it cannot be instantiated directly (unlike File which is a class). The Paths class provides a set of factory methods for creating Path objects, but there are also ways to create a Path from another Path. This is logical because a hierarchical filesystem allows a path to be created between two files in a relative way (frequently using .. To indicate moving to the parent). Path supports both absolute paths, i.e. how to access the file from the root of the filesystem and relative paths, i.e. how to access the file relative to the current directory.
6/27/11 Java SE 7 includes updates to the concurrency APIs first introduced in Java SE 5. This is an update to an update;the orinial utilities were defined in JSR166. This was eXtended in JSR166x (Java SE 6) and extended further through JSR166y (Java SE 7). Introduces the fork-join framework for fine grained parallelism The Phaser which is a reusable synchronization barrier, similar in functionality to CyclicBarrier and CountDownLatch but supporting more flexible usage. A TransferQueue is a BlockingQueue in which producers may wait for consumers to receive elements. A TransferQueue may be useful for example in message passing applications in which producers sometimes (using method transfer(E)) await receipt of elements by consumers invoking take or poll, while at other times enqueue elements (via method put) without waiting for receipt. Non-blocking and time-out versions of tryTransfer are also available. A TransferQueue may also be queried, via hasWaitingConsumer(), whether there are any threads waiting for items, which is a converse analogy to a peek operation. Like other blocking queues, a TransferQueue may be capacity bounded. If so, an attempted transfer operation may initially block waiting for available space, and/or subsequently block waiting for reception by a consumer. Note that in a queue with zero capacity, such as SynchronousQueue, put and transfer are effectively synonymous. This is implemented by the LinkedTransferQuue which is an unbounded TransferQueue based on linked nodes. This queue orders elements FIFO (first-in-first-out) with respect to any given producer. The head of the queue is that element that has been on the queue the longest time for some producer. The tail of the queue is that element that has been on the queue the shortest time for some producer.
The fork-join framework is designed for fine grained tasks where a large task can easily be broken up into a large number of sub-tasks. This is best suited to sub-tasks that do not rely on shared, mutatable data. The framework will work well with shared, read-omly data, but if multiple subtasks are trying to modify shared data the issues of locking and contention reduce the frameworks overall efficiency.
6/27/11 Here’s a very quick look at the major features being proposed for Java SE 8 Project Jigsaw will bring true modularity to the Java platform and applications. The idea is to move away from jar files and their limitations and support things like versioning and simplified inter-dependency definitions. Project Lambda will bring closure-like support to Java in the form of lambda expressions. This is a replacement for single abstract method classes which are used frequently in Java and anonymous inner classes. This will also build on the fork-join framework to provide ParallelArray functionality to enhance support for multi-processor/core machines. There will also be more small language changes in the form of an extension to project Coin. There are no details of what these changes will be at this time.
6/27/11 To conclude we can see that Java SE 7 is an incremental change over Java SE 6 providing evolutionary, not revolutionary new features. The changes that are included provide a good, solid set of enhancements to make developers lives easier whilst not affecting backwards compatability. Support for things like the fork-join framework will enable applications to benefot from developments in hardware without having to write complex code. Java SE 8 which we only covered very briefly will introduce more substantial features that will help Java developers to be even more productive. The important thing to get from this presentation is that Java is not “the new Cobol”. It is adapting to the needs of developers and new types of applications and platforms.