The document discusses new features in Java SE 7 including Project Coin, NIO.2, invokedynamic, and improvements to concurrency including fork/join frameworks. It covers threading concepts like wait, notify, and synchronization. Examples are provided showing the use of fork/join pools to parallelize tasks like summing arrays and counting words in files and folders.
soft-shake.ch - Java SE 7: The Fork/Join Framework and Project Coinsoft-shake.ch
Julien Ponge
This talk introduces part of the Java SE 7 novelties. The fork/join framework aims at making parallel programming simpler, while Project Coin brings a set of subtle yet useful changes to the Java programming language.
http://soft-shake.ch/2011/conference/sessions/java/2011/09/06/java7.html
This document summarizes new features and enhancements in Java 7 including Project Coin, NIO.2, invokedynamic, Fork/Join framework, and concurrency utilities. It discusses how these features make threads, parallelism, and concurrency easier to work with in Java. Code examples are provided to illustrate the use of ForkJoinPool, Callable, and try-with-resources statements.
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...julien.ponge
The document discusses new features in Java SE 7 including the Fork/Join framework for parallel programming, language evolutions through Project Coin such as try-with-resources statements, and diamond syntax for generic types which simplifies generic class instance creation. It also covers varargs syntax simplification and restrictions on using diamond syntax with anonymous inner classes.
Software Testing - Invited Lecture at UNSW Sydneyjulien.ponge
This document provides an overview of software testing concepts and the JUnit testing framework. It discusses the importance of testing, different types of testing, unit testing with JUnit, best practices for writing tests, integrating tests into builds with Ant and Maven, and logging. Examples of JUnit tests are also provided. The key points covered are:
- Why testing is important to find bugs, prevent regressions, and allow for refactoring
- Unit testing, functional testing, and other types of testing
- How to write automated unit tests with JUnit
- Best practices like testing edge cases, achieving good code coverage
- Integrating tests into builds with Ant and Maven
- Using logging frameworks like Log
Cleanup and new optimizations in WPython 1.1PyCon Italia
This document summarizes optimizations and cleanup made to the WPython interpreter in version 1.1. Key changes include removing an unnecessary type object "hack" from version 1.0, fixing tracing for optimized loops, removing redundant checks and opcodes, adding new opcode functions, and implementing specialized opcodes for common patterns like comparisons.
This document discusses concurrent programming and multithreaded programming in Java. It covers key topics such as creating and controlling threads, thread safety and synchronization, and using bounded queues to allow cooperation between producer and consumer threads.
Dagger is a dependency injection framework that allows injecting collaborators into objects without requiring manual passing of dependencies. RxJava implements reactive programming, allowing observable streams to be manipulated through operators like map and filter. Retrofit makes REST API calls simply by defining an interface and allows results to be easily converted to Java objects. Together these libraries help create testable Android applications by decoupling classes and managing dependencies and asynchronous processes in a declarative way.
soft-shake.ch - Java SE 7: The Fork/Join Framework and Project Coinsoft-shake.ch
Julien Ponge
This talk introduces part of the Java SE 7 novelties. The fork/join framework aims at making parallel programming simpler, while Project Coin brings a set of subtle yet useful changes to the Java programming language.
http://soft-shake.ch/2011/conference/sessions/java/2011/09/06/java7.html
This document summarizes new features and enhancements in Java 7 including Project Coin, NIO.2, invokedynamic, Fork/Join framework, and concurrency utilities. It discusses how these features make threads, parallelism, and concurrency easier to work with in Java. Code examples are provided to illustrate the use of ForkJoinPool, Callable, and try-with-resources statements.
Java 7 Launch Event at LyonJUG, Lyon France. Fork / Join framework and Projec...julien.ponge
The document discusses new features in Java SE 7 including the Fork/Join framework for parallel programming, language evolutions through Project Coin such as try-with-resources statements, and diamond syntax for generic types which simplifies generic class instance creation. It also covers varargs syntax simplification and restrictions on using diamond syntax with anonymous inner classes.
Software Testing - Invited Lecture at UNSW Sydneyjulien.ponge
This document provides an overview of software testing concepts and the JUnit testing framework. It discusses the importance of testing, different types of testing, unit testing with JUnit, best practices for writing tests, integrating tests into builds with Ant and Maven, and logging. Examples of JUnit tests are also provided. The key points covered are:
- Why testing is important to find bugs, prevent regressions, and allow for refactoring
- Unit testing, functional testing, and other types of testing
- How to write automated unit tests with JUnit
- Best practices like testing edge cases, achieving good code coverage
- Integrating tests into builds with Ant and Maven
- Using logging frameworks like Log
Cleanup and new optimizations in WPython 1.1PyCon Italia
This document summarizes optimizations and cleanup made to the WPython interpreter in version 1.1. Key changes include removing an unnecessary type object "hack" from version 1.0, fixing tracing for optimized loops, removing redundant checks and opcodes, adding new opcode functions, and implementing specialized opcodes for common patterns like comparisons.
This document discusses concurrent programming and multithreaded programming in Java. It covers key topics such as creating and controlling threads, thread safety and synchronization, and using bounded queues to allow cooperation between producer and consumer threads.
Dagger is a dependency injection framework that allows injecting collaborators into objects without requiring manual passing of dependencies. RxJava implements reactive programming, allowing observable streams to be manipulated through operators like map and filter. Retrofit makes REST API calls simply by defining an interface and allows results to be easily converted to Java objects. Together these libraries help create testable Android applications by decoupling classes and managing dependencies and asynchronous processes in a declarative way.
Carol McDonald gave a presentation on Java concurrency utilities introduced in J2SE 5.0. She discussed motivation for improved concurrency tools, common concurrency issues, and key utilities like Executor framework, locks, synchronizers, and concurrent collections. The utilities make concurrent programming easier and improve performance of multithreaded Java applications.
About Those Python Async Concurrent Frameworks - Fantix @ OSTC 2014Fantix King 王川
This document discusses Python asynchronous concurrency frameworks and their future. It compares Twisted, Tornado, Gevent, and the new asyncio module. Twisted and Tornado use callbacks while Gevent uses greenlets. asyncio aims to provide an event loop like Twisted. It also introduces coroutines, tasks, and futures. The document argues that asyncio could serve as a common event loop that existing frameworks adapt to for better interoperability in the future.
~10min dive to Python Asynchronous IO
HTML version (recommended): https://dl.dropboxusercontent.com/u/1565687/speak/Python3%20AsyncIO%20Horizon/index.html
Easy Going Groovy 2nd season on DevLOVEUehara Junji
The document appears to be a slide presentation about Groovy programming. It includes slides with code samples and descriptions of Groovy features like Grails, Griffon, Spock testing, and integrating Ant tasks. Later slides demonstrate using Groovy with HtmlUnit to programmatically upload a file to a wiki site.
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...Uehara Junji
The document compares Java and Groovy implementations of a word counting program. The Java version uses HashMaps and file input/output to count word frequencies, while the Groovy version uses a default map with integer values and sorts the entries by value before outputting. Both programs take a file, split the contents on whitespace, count each word, and output the results.
The document discusses different designs for asynchronous algorithms and reactive programming. It explores how to abstract sequences, control flow, cancellation, chaining of algorithms, and other aspects to support features like async generators, operators, testing, and failure handling. Push-based sequences, pull-based async generators, and Subject-Observer designs like SFRP are compared for supporting asynchronous and reactive programming.
Groovy is a dynamic language that provides different types of metaprogramming techniques. In this talk we’ll mainly see runtime metaprogramming. You’ll understand the Groovy Meta-Object-Protocol (MOP), the metaclass, how to intercept method calls, how to deal with method missing and property missing, the use of mixins, traits and categories. All of these topics will be explained with examples in order to understand them. Also, you’ll see a little bit about compile-time metaprogramming with AST Transformations. AST Transformations provide a wonderful way of manipulating code at compile time via modifications of the Abstract Syntax Tree. You’ll see a basic but powerful example of what we can do with AST transformations.
This talk is a look into some of the surprising performance cases in Java -- with the goal of illustrating a few simple truths about the nature of compilers.
This document discusses multithreaded and asynchronous programming in C# and file I/O. It covers delegates and how they allow invoking methods asynchronously on separate threads. It also discusses the Threading namespace which provides classes for creating and managing threads like Thread, ThreadStart, and Timer. The document shows examples of getting thread information, passing parameters to threads, locking for thread safety, and using the Dispatcher class to update the UI from a non-UI thread.
The JVM JIT compiler and deoptimizer are triggered under certain conditions like method invocation counts, changes in program behavior, and hot spots. The JIT initially compiles code to generate fast machine instructions while the deoptimizer reverts back to interpreted execution if needed.
This document summarizes several proposed changes for Java 7 including better integer literals with underscores for clarity, improved type inference for constructors and argument positions, new features like string switches and automatic resource management, and new libraries such as NIO2 and the fork/join framework for parallel programming.
The Kotlin 101 presentation was the very first presentation of the Kotlin Usergroup Vienna (https://www.meetup.com/Kotlin-Vienna/), held at a meeting from the Java Student Usergroup in 2016 (https://www.meetup.com/Java-Vienna/). It explains the raw (syntactical) fundamentals of the language targeting a Java developer audience.
The document discusses topics related to just-in-time (JIT) compilation in the Java Virtual Machine (JVM). It explains that the JIT compiler is triggered when methods are invoked many times based on invocation and back-edge counters, compiling frequently used code to machine code for improved performance. It also discusses why ahead-of-time compilation is not well-suited for Java due to its dynamic nature, and what can cause compiled code to be deoptimized, such as class initialization failures, null pointer exceptions, and unstable control flow.
This document summarizes a presentation about Kotlin given to the Kotlin Vienna Meetup. The presentation introduced Gadsu, a medical records application built with Kotlin, discussed using Kotlin in various environments like Travis CI and Codecov, showed code examples using Kotlin features like extension methods and delegates, and covered lessons learned from the project. Some benefits of Kotlin mentioned included improved null safety, extension methods, and more compact syntax compared to Java.
This document discusses common concurrency problems in Java and how to address them. It covers issues that can arise from shared mutable data being accessed without proper synchronization between threads, as well as problems related to visibility and atomicity of operations. Specific problems covered include mutable statics, double-checked locking, volatile arrays, and non-atomic operations like incrementing a long. The document provides best practices for locking, wait/notify, thread coordination, and avoiding deadlocks, spin locks, and lock contention.
The document discusses concurrency programming in Java. It covers the scope of concurrency including multi-threading, multi-core, and distributed systems. It then discusses key aspects of concurrency programming like shared data/coordination for correctness and performance. It provides examples of thread-safety issues and how to address them using locks, volatile fields, and final fields to safely publish objects between threads.
Gor Nishanov, C++ Coroutines – a negative overhead abstractionSergey Platonov
C++ coroutines are one of the few major features that may land in C++17. We will look at the current standardization status, available experimental implementations and develop a small coroutine adapter over raw C networking APIs that will beat hand-crafted state machine in performance.
The document discusses Java SE 7 features including Project Coin, NIO.2, invokedynamic, and Fork/Join framework. It provides examples of using try-with-resources to automatically close resources without finally blocks, and using the Fork/Join framework to easily parallelize tasks by splitting work, forking subtasks, and joining results.
What can be done with Java, but should better be done with Erlang (@pavlobaron)Pavlo Baron
Erlang excels at building distributed, fault-tolerant, concurrent applications due to its lightweight process model and built-in support for distribution. However, Java is more full-featured and is generally a better choice for applications that require more traditional object-oriented capabilities or need to interface with existing Java libraries and frameworks. Both languages have their appropriate uses depending on the requirements of the specific application being developed.
An introduction on testing Node.js code.
Covers frontend (UI) testing, backend unit tests and code coverage.
Also mentions how to use a Makefile to run frontend and backend tests at the same time.
Carol McDonald gave a presentation on Java concurrency utilities introduced in J2SE 5.0. She discussed motivation for improved concurrency tools, common concurrency issues, and key utilities like Executor framework, locks, synchronizers, and concurrent collections. The utilities make concurrent programming easier and improve performance of multithreaded Java applications.
About Those Python Async Concurrent Frameworks - Fantix @ OSTC 2014Fantix King 王川
This document discusses Python asynchronous concurrency frameworks and their future. It compares Twisted, Tornado, Gevent, and the new asyncio module. Twisted and Tornado use callbacks while Gevent uses greenlets. asyncio aims to provide an event loop like Twisted. It also introduces coroutines, tasks, and futures. The document argues that asyncio could serve as a common event loop that existing frameworks adapt to for better interoperability in the future.
~10min dive to Python Asynchronous IO
HTML version (recommended): https://dl.dropboxusercontent.com/u/1565687/speak/Python3%20AsyncIO%20Horizon/index.html
Easy Going Groovy 2nd season on DevLOVEUehara Junji
The document appears to be a slide presentation about Groovy programming. It includes slides with code samples and descriptions of Groovy features like Grails, Griffon, Spock testing, and integrating Ant tasks. Later slides demonstrate using Groovy with HtmlUnit to programmatically upload a file to a wiki site.
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...Uehara Junji
The document compares Java and Groovy implementations of a word counting program. The Java version uses HashMaps and file input/output to count word frequencies, while the Groovy version uses a default map with integer values and sorts the entries by value before outputting. Both programs take a file, split the contents on whitespace, count each word, and output the results.
The document discusses different designs for asynchronous algorithms and reactive programming. It explores how to abstract sequences, control flow, cancellation, chaining of algorithms, and other aspects to support features like async generators, operators, testing, and failure handling. Push-based sequences, pull-based async generators, and Subject-Observer designs like SFRP are compared for supporting asynchronous and reactive programming.
Groovy is a dynamic language that provides different types of metaprogramming techniques. In this talk we’ll mainly see runtime metaprogramming. You’ll understand the Groovy Meta-Object-Protocol (MOP), the metaclass, how to intercept method calls, how to deal with method missing and property missing, the use of mixins, traits and categories. All of these topics will be explained with examples in order to understand them. Also, you’ll see a little bit about compile-time metaprogramming with AST Transformations. AST Transformations provide a wonderful way of manipulating code at compile time via modifications of the Abstract Syntax Tree. You’ll see a basic but powerful example of what we can do with AST transformations.
This talk is a look into some of the surprising performance cases in Java -- with the goal of illustrating a few simple truths about the nature of compilers.
This document discusses multithreaded and asynchronous programming in C# and file I/O. It covers delegates and how they allow invoking methods asynchronously on separate threads. It also discusses the Threading namespace which provides classes for creating and managing threads like Thread, ThreadStart, and Timer. The document shows examples of getting thread information, passing parameters to threads, locking for thread safety, and using the Dispatcher class to update the UI from a non-UI thread.
The JVM JIT compiler and deoptimizer are triggered under certain conditions like method invocation counts, changes in program behavior, and hot spots. The JIT initially compiles code to generate fast machine instructions while the deoptimizer reverts back to interpreted execution if needed.
This document summarizes several proposed changes for Java 7 including better integer literals with underscores for clarity, improved type inference for constructors and argument positions, new features like string switches and automatic resource management, and new libraries such as NIO2 and the fork/join framework for parallel programming.
The Kotlin 101 presentation was the very first presentation of the Kotlin Usergroup Vienna (https://www.meetup.com/Kotlin-Vienna/), held at a meeting from the Java Student Usergroup in 2016 (https://www.meetup.com/Java-Vienna/). It explains the raw (syntactical) fundamentals of the language targeting a Java developer audience.
The document discusses topics related to just-in-time (JIT) compilation in the Java Virtual Machine (JVM). It explains that the JIT compiler is triggered when methods are invoked many times based on invocation and back-edge counters, compiling frequently used code to machine code for improved performance. It also discusses why ahead-of-time compilation is not well-suited for Java due to its dynamic nature, and what can cause compiled code to be deoptimized, such as class initialization failures, null pointer exceptions, and unstable control flow.
This document summarizes a presentation about Kotlin given to the Kotlin Vienna Meetup. The presentation introduced Gadsu, a medical records application built with Kotlin, discussed using Kotlin in various environments like Travis CI and Codecov, showed code examples using Kotlin features like extension methods and delegates, and covered lessons learned from the project. Some benefits of Kotlin mentioned included improved null safety, extension methods, and more compact syntax compared to Java.
This document discusses common concurrency problems in Java and how to address them. It covers issues that can arise from shared mutable data being accessed without proper synchronization between threads, as well as problems related to visibility and atomicity of operations. Specific problems covered include mutable statics, double-checked locking, volatile arrays, and non-atomic operations like incrementing a long. The document provides best practices for locking, wait/notify, thread coordination, and avoiding deadlocks, spin locks, and lock contention.
The document discusses concurrency programming in Java. It covers the scope of concurrency including multi-threading, multi-core, and distributed systems. It then discusses key aspects of concurrency programming like shared data/coordination for correctness and performance. It provides examples of thread-safety issues and how to address them using locks, volatile fields, and final fields to safely publish objects between threads.
Gor Nishanov, C++ Coroutines – a negative overhead abstractionSergey Platonov
C++ coroutines are one of the few major features that may land in C++17. We will look at the current standardization status, available experimental implementations and develop a small coroutine adapter over raw C networking APIs that will beat hand-crafted state machine in performance.
The document discusses Java SE 7 features including Project Coin, NIO.2, invokedynamic, and Fork/Join framework. It provides examples of using try-with-resources to automatically close resources without finally blocks, and using the Fork/Join framework to easily parallelize tasks by splitting work, forking subtasks, and joining results.
What can be done with Java, but should better be done with Erlang (@pavlobaron)Pavlo Baron
Erlang excels at building distributed, fault-tolerant, concurrent applications due to its lightweight process model and built-in support for distribution. However, Java is more full-featured and is generally a better choice for applications that require more traditional object-oriented capabilities or need to interface with existing Java libraries and frameworks. Both languages have their appropriate uses depending on the requirements of the specific application being developed.
An introduction on testing Node.js code.
Covers frontend (UI) testing, backend unit tests and code coverage.
Also mentions how to use a Makefile to run frontend and backend tests at the same time.
This document discusses parallel, distributed, and asynchronous processing in enterprise clouds. It covers parallel programming with multi-core CPUs, distributed computing trends, and asynchronous programming techniques. Specifically, it discusses Java's ForkJoin framework, parallel programming in Java SE8 and .NET, and asynchronous programming methods.
Closures for Java and other thoughts on language evolution
The document discusses goals for language changes including simplifying programs, reducing bugs, and adapting to changing requirements like multicore processors and concurrency. It proposes adding closures to Java to help meet these goals by allowing for more concise code, avoiding repetition, and making programming with concurrency easier. Specific examples are given of how closures could help implement common patterns like try-with-resources and iteration in a more readable way while also enabling flexibility for programmers to extend the language.
The document discusses new features introduced in Java 7 including:
1) The addition of null-safe and exception-chaining operators to safely handle null values and exceptions.
2) Automatic resource management using try-with-resources to ensure open resources are closed.
3) Inference of generic types for collections to simplify declarations.
4) Allowing strings in switch statements.
5) Underscores in numeric literals for improved readability.
While most bugs reveal their cause within their stack trace, Java’s OutOfMemoryError is less talkative and therefore regarded as being difficult to debug by a majority of developers. With the right techniques and tools, memory leaks in Java programs can however be tackled like any other programming error. This talks discusses how a JVM stores data, categorizes different types of memory leaks that can occur in a Java program and presents techniques for fixing such errors. Furthermore, we will have a closer look at lambda expressions and their considerable potential of introducing memory leaks when they are used incautiously.
The document provides an overview of Groovy and Java code examples for performing common tasks like printing "Hello World", reading files, making web requests, using strings, importing packages, and using Swing/SwingBuilder for GUIs. It also shows examples of using Groovy with Java libraries for Excel files, Ant, and JSON. Additional sections cover parallel processing with GPars, contract programming with GContracts, method chaining, Grails basics, and Gaelyk controllers and views.
The document discusses multithreading in Java, including the evolution of threading support across Java releases and examples of implementing multithreading using Threads, ExecutorService, and NIO channels. It also provides examples of how to make operations thread-safe using locks and atomic variables when accessing shared resources from multiple threads. References are included for further reading on NIO-based servers and asynchronous channel APIs introduced in Java 7.
Gevent is a Python library that uses greenlets to provide a synchronous-looking API for asynchronous applications. It uses a single OS thread and event loop to handle many connections concurrently by switching between greenlets frequently. This allows applications to achieve high concurrency with low memory usage compared to multithreading. Gevent patches common libraries like sockets to be non-blocking and cooperative. When data is available on a socket, the socket's greenlet is resumed to process it rather than blocking the entire program.
The document discusses using Clojure for Hadoop programming. It introduces Clojure as a new Lisp dialect that runs on the Java Virtual Machine. It then covers Clojure's data types and collections. The remainder of the document demonstrates how to write mappers and reducers for Hadoop jobs using Clojure, presenting three different approaches to defining jobs.
Asynchronous programming done right - Node.jsPiotr Pelczar
This document discusses asynchronous programming and avoiding race conditions. It covers how asynchronous actions allow the main program flow to continue processing without blocking on I/O. It also discusses how asynchronous programming works with callbacks and promises rather than sequential execution. It provides examples of using libraries like Async to control asynchronous flows and common pitfalls to avoid like double callbacks and unexpected asynchronous behavior.
The next document shows a Try-Catch block to handle an ArithmeticException from dividing by zero. It prints the exception message. The following document creates two threads, a main thread and a new child thread, running loops that print
Clojure for Java developers - StockholmJan Kronquist
This document provides an overview of the Clojure programming language from the perspective of a Java developer. It begins with an introduction to the presenter and an outline of what will not be covered. It then discusses some popular Clojure applications and frameworks. The core sections explain that Clojure was created in 2007, is a Lisp dialect that runs on the JVM and JavaScript, and is designed for concurrency. It provides an example of Clojure code, discusses reasons for using Clojure like its functional nature and interactive development environment. It addresses common complaints about Clojure and discusses Lisp concepts. It also covers Clojure data types, programming structures, working with Java classes using macros, editor support
The Ring programming language version 1.5.1 book - Part 65 of 180Mahmoud Samir Fayed
This document describes a cards game application developed using the Ring programming language and Qt GUI library. The application deals 5 cards to each of two players. When a player clicks on a card, it is revealed. If the card matches another revealed card, the player scores a point for each matching card. If the card is a "5", the player scores for all revealed cards. The application tracks each player's score, handles clicking cards to reveal them, and checks for matches or a "5" to score points. It also includes functionality to start a new game and close the application.
The document discusses using Clojure for Hadoop programming. Clojure is a dynamic functional programming language that runs on the Java Virtual Machine. The document provides an overview of Clojure and how its features like immutability and concurrency make it well-suited for Hadoop. It then shows examples of implementing Hadoop MapReduce jobs using Clojure by defining mapper and reducer functions.
JVM Mechanics: When Does the JVM JIT & Deoptimize?Doug Hawkins
HotSpot promises to do the "right" thing for us by identifying our hot code and compiling "just-in-time", but how does HotSpot make those decisions?
This presentation aims to detail how HotSpot makes those decisions and how it corrects its mistakes through a series of demos that you run yourself.
The document discusses the Apache Commons project, which develops reusable Java components. It notes that Commons components allow for faster and smaller development by avoiding reinventing common functions. The document outlines several active Commons components like Collections, IO, Lang, and Logging, as well as sandbox and dormant components. It emphasizes that 80% of Commons components have no dependencies on each other, promoting flexibility and reuse.
Voxxed Days Vilnius 2015 - Having fun with JavassistAnton Arhipov
The document discusses using Javassist, a Java bytecode engineering library, to dynamically generate Java proxies at runtime. It provides examples of using Javassist with a Java agent to transform class files and generate proxies within a ClassFileTransformer. It also summarizes how Javassist is used within the JRebel application reload agent to refresh configurations and notify plugins of class reloading.
This document discusses Python-GTK and provides information about:
- Installing necessary packages like python-pywapi and glade
- Links to the author Yuren Ju's online profiles
- An assumption that the audience has experience with at least one programming language
- A graph showing Python's popularity based on the TIOBE index
- Comments from others that Python is suitable for beginners and experts alike and is flexible
- Examples of successful projects using Python including the author's first experience four years ago
The document provides updates on changes to the PMP exam effective August 31, 2011, including a 4-6 week delay in exam results as the new exam structure is validated. It also outlines updates to the PMP application to track experience hours by domain instead of task. Additionally, it announces the PgMP exam will be updated on January 1, 2012 based on a role delineation study identifying current program management practices. Finally, it welcomes 28 new R.E.P.s and provides PMI membership and credential statistics as of August 31, 2011.
The document provides updates on changes to the PMP exam effective August 31, 2011, including a 4-6 week delay in exam results as the new exam structure is validated. It also outlines updates to the PMP application to track experience hours by domain instead of task. Additionally, it announces the PgMP exam will be updated on January 1, 2012 based on a role delineation study identifying current program management practices. Finally, it welcomes 28 new R.E.P.s and provides PMI membership and credential statistics as of August 31, 2011.
The document provides information on changes to the Project Management Professional (PMP) exam effective August 31, 2011, including:
1) Exam results will now take 4-6 weeks to deliver due to validation of the new exam structure.
2) The application has been updated to require tracking hours by process group rather than task.
3) Details are provided on attending the R.E.P. Recognition Breakfast at the upcoming PMI Global Congress.
4) The Program Management Professional (PgMP) exam will also be updated effective January 1, 2012 based on a new role delineation study.
BrightWare L.L.C is an IT company in Saudi Arabia that provides software development, integration, consulting, and staffing services. It aims to utilize technology to realize clients' visions and become an employer of choice. Services include enterprise application integration, development, IT consulting, staffing, and acting as a Kaspersky antivirus reseller. Clients include government agencies and private sector companies.
Bakkah Inc. is a management consulting firm that provides consulting, training, and outsourcing services. It has experience in business management and offers customized solutions to help organizations improve business strategy, operations, and talent management. Bakkah has alliances with organizations like PMI, SHRM, and CIPD and has provided consulting projects to clients in areas like human resources, project management, and financial systems. It also offers training programs like PMP exam preparation.
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Zilliz
Join us to introduce Milvus Lite, a vector database that can run on notebooks and laptops, share the same API with Milvus, and integrate with every popular GenAI framework. This webinar is perfect for developers seeking easy-to-use, well-integrated vector databases for their GenAI apps.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
8. class Sum implements Callable<Long> {
private final long from;
private final long to;
Sum(long from, long to) {
this.from = from;
this.to = to;
}
public Long call() {
long acc = 0;
for (long i = from; i <= to; i++) {
acc = acc + i;
}
return acc;
}
}
9. ExecutorService executor = Executors.newFixedThreadPool(2);
List<Future<Long>> results = executor.invokeAll(asList(
new Sum(0, 10),
new Sum(100, 1000),
new Sum(10000, 1000000)
));
for (Future<Long> result : results) {
System.out.println(result.get());
}
10. 1.0 Threads made easy
1.1
1.2
1.3
1.4
5 Concurrency made easier
6
7 Parallelism made easier
11. Sum of an array
n1 n2 n3 n4 n5 n6 n7 n8 n9 ... ... ... ...
sum1 sum2 sum3
sum1 + sum2 sum3 + (...)
total sum
16. 16
Folder word
counting task
10
5
1
Document word Document word Folder word
counting task counting task counting task
3 2
fork()
Document word Document word
n join() counting task counting task
19. No I/O
No synchronization / locks
Decompose in simple recursive tasks
Do not decompose below a threshold
Take advantage of multicores with no pain
You have more F/J candidate algorithms than
you think!
21. private void writeSomeData() throws IOException {
DataOutputStream out = new DataOutputStream(new FileOutputStream("data"));
out.writeInt(666);
out.writeUTF("Hello");
out.close();
}
22. private void writeSomeData() throws IOException {
DataOutputStream out = new DataOutputStream(new FileOutputStream("data"));
out.writeInt(666);
out.writeUTF("Hello");
out.close();
}
what if...
23. private void writeSomeData() throws IOException {
DataOutputStream out = null;
try {
out = new DataOutputStream(new FileOutputStream("data"));
out.writeInt(666);
out.writeUTF("Hello");
} finally {
if (out != null) {
out.close();
}
}
}
24. private void writeSomeData() throws IOException {
DataOutputStream out = null;
try {
out = new DataOutputStream(new FileOutputStream("data"));
out.writeInt(666);
out.writeUTF("Hello");
} finally {
if (out != null) {
out.close();
}
}
}
...this is still far from correct!
25. try (
FileOutputStream out = new FileOutputStream("output");
FileInputStream in1 = new FileInputStream(“input1”);
FileInputStream in2 = new FileInputStream(“input2”)
) {
// Do something useful with those 3 streams!
// out, in1 and in2 will be closed in any case
out.write(in1.read());
out.write(in2.read());
}
26. public class AutoClose implements AutoCloseable {
@Override
public void close() {
System.out.println(">>> close()");
throw new RuntimeException("Exception in close()");
}
public void work() throws MyException {
System.out.println(">>> work()");
throw new MyException("Exception in work()");
}
}
28. AutoClose autoClose = new AutoClose();
try {
autoClose.work();
} finally {
autoClose.close();
}
>>> work()
>>> close()
java.lang.RuntimeException: Exception in close()
at AutoClose.close(AutoClose.java:6)
at AutoClose.runWithMasking(AutoClose.java:19)
at AutoClose.main(AutoClose.java:52)
29. AutoClose autoClose = new AutoClose();
try {
autoClose.work();
} finally {
autoClose.close();
}
MyException
m asked by Run
>>> work() time Exception
>>> close()
java.lang.RuntimeException: Exception in close()
at AutoClose.close(AutoClose.java:6)
at AutoClose.runWithMasking(AutoClose.java:19)
at AutoClose.main(AutoClose.java:52)
37. try (AutoClose autoClose = new AutoClose()) {
autoClose.work();
}
>>> work()
>>> close()
MyException: Exception in work()
at AutoClose.work(AutoClose.java:11)
at AutoClose.main(AutoClose.java:16)
Suppressed: java.lang.RuntimeException: Exception in close()
at AutoClose.close(AutoClose.java:6)
at AutoClose.main(AutoClose.java:17)
38. public void compress(String input, String output)
throws IOException {
try(
FileInputStream fin = new FileInputStream(input);
FileOutputStream fout = new FileOutputStream(output);
GZIPOutputStream out = new GZIPOutputStream(fout)
) {
byte[] buffer = new byte[4096];
int nread = 0;
while ((nread = fin.read(buffer)) != -1) {
out.write(buffer, 0, nread);
}
}
}
40. Not just syntactic sugar
Clutter-free, correct code
close():
- be more specific than java.lang.Exception
- no exception if it can’t fail
- no exception that shall not be suppressed
(e.g., java.lang.InterruptedException)
49. class SomeClass<T extends Serializable & CharSequence> { }
Non-denotable type
SomeClass<?> foo = new SomeClass<String>();
SomeClass<?> fooInner = new SomeClass<String>() { };
SomeClass<?> bar = new SomeClass<>();
SomeClass<?> bar = new SomeClass<>() { };
50. class SomeClass<T extends Serializable & CharSequence> { }
Non-denotable type
SomeClass<?> foo = new SomeClass<String>();
SomeClass<?> fooInner = new SomeClass<String>() { };
SomeClass<?> bar = new SomeClass<>();
SomeClass<?> bar = new SomeClass<>() { };
No denotable type
to generate a class
71. // 123 in decimal, octal, hexadecimal and binary
byte decimal = 123;
byte octal = 0_173;
byte hexadecimal = 0x7b;
byte binary = 0b0111_1011;
// Other values
double doubleValue = 1.111_222_444F;
long longValue = 1_234_567_898L;
long longHexa = 0x1234_3b3b_0123_cdefL;
72. public static boolean isTrue(String str) {
switch(str.trim().toUpperCase()) {
case "OK":
case "YES":
case "TRUE":
return true;
case "KO":
case "NO":
case "FALSE":
return false;
default:
throw new IllegalArgumentException("Not a valid true/false string.");
}
}
73. public static boolean isTrue(String s) {
String str = s.trim().toUpperCase();
int jump = -1;
switch(str.hashCode()) {
case 2404:
if (str.equals("KO")) {
jump = 3; Bucket
}
break;
(...)
switch(jump) {
(...)
case 3:
case 4:
case 5:
return false;
default: Real code
throw new IllegalArgumentException(
"Not a valid true/false string.");
}
}
74. Oracle Technology Network (more soon...)
Fork and Join: Java Can Excel at
Painless Parallel Programming Too!
http://goo.gl/tostz
Better Resource Management with
Java SE 7: Beyond Syntactic Sugar
http://goo.gl/7ybgr