The document discusses key concepts related to threads and concurrency in Java. It defines processes, threads, and the Java memory model. It then covers various concurrency utilities in Java like synchronized blocks, volatile fields, atomic classes, thread pools, blocking queues, and locking mechanisms like ReentrantLock. The last part discusses high-level concurrency constructs like semaphores, latches, barriers, and phaser.
This document provides an overview of common tools used for building, logging, and unit testing Java applications: Maven for build automation, Log4J2 and SLF4J for logging, and JUnit for unit testing. It describes the purpose and basic usage of each tool. For Maven, it covers the standard project layout, dependencies, lifecycle, and POM file. For logging, it explains Log4J2 configuration and best practices. And for testing, it introduces the JUnit framework and common assertions.
The document discusses key concepts related to threads and concurrency in Java. It defines processes, threads, and the Java memory model. It then covers various concurrency utilities in Java like synchronized blocks, volatile fields, atomic classes, thread pools, blocking queues, and locking mechanisms like ReentrantLock. The last part discusses high-level concurrency constructs like semaphores, latches, barriers, and phaser.
This document provides an overview of common tools used for building, logging, and unit testing Java applications: Maven for build automation, Log4J2 and SLF4J for logging, and JUnit for unit testing. It describes the purpose and basic usage of each tool. For Maven, it covers the standard project layout, dependencies, lifecycle, and POM file. For logging, it explains Log4J2 configuration and best practices. And for testing, it introduces the JUnit framework and common assertions.
This document provides an overview of rule engines and Drools rule engine concepts. It discusses why rule engines are used, how rules are defined in a rule engine using conditions and actions, and how a rule engine works with a working memory. It also covers Drools rule language concepts like patterns, bindings, and rule attributes. Additionally, it summarizes complex event processing, event stream processing capabilities in Drools Fusion, and temporal reasoning. Finally, it provides some Java programming notes and references for further reading.
This document compares several Java JSON parsers based on various criteria. It provides an overview of JSON and the Java APIs for processing JSON (JSR 339 and JSR 353). It then evaluates parsers like Jackson, Google GSON, javax.json and others based on criteria like community activity, performance, API features, dependencies and license. The conclusion is that Google GSON is best for small data and Jackson for large data according to previous benchmarks. It asks which parser may be best for RAM-constrained or IoT applications.
The document discusses the development of a Netty 4-based RPC system. It describes using Netty 4 as a non-blocking I/O framework for building asynchronous network applications. It then outlines the design of the RPC system, including components like stubs, skeletons, command handling, and deployment. Finally, it discusses performance testing done on the RPC system to evaluate aspects like throughput, response times, resource usage and scalability under different loads.
This document describes the multilayered architecture of the eSobi website. It consists of a presentation layer that handles requests and responses, a service locator layer that manages services and data access objects, a business logic layer that contains services, a data access layer for database interaction, a domain object layer for modeling data, and a utility layer. Aspect oriented programming is used to increase modularity by separating cross-cutting concerns like transactions using dynamic proxies.
This document discusses the evolution of Java, including new features introduced in Java 5, 6, and 7. It provides a review of 10 key features in Java 5 such as generics, autoboxing/unboxing, annotations, and new utility classes. It then describes 9 new features in Java 6, including pluggable annotation processing, common annotations, JAXB, JAX-WS, StAX, digital signatures, and the compiler API. Finally, it briefly mentions new features planned for Java 7.
Tomcat New Evolution discusses the new features introduced in Tomcat 6 and 7. Some key highlights include:
- Tomcat 6 introduced features like memory leak prevention, CSRF protection, session fixation protection, NIO connector, Comet support, logging improvements, web services support, and clustering.
- Tomcat 7 features included externalizing static resources, WebSocket support, easier embedded usage, and asynchronous logging.
- Both versions aimed to improve performance, security, and scalability through these new capabilities. Tomcat continues evolving to support newer standards and address common issues.
This document discusses changes and new features in jQuery versions 1.9, 2.0, and the use of Modernizr for browser feature detection. jQuery 1.9 removed several deprecated functions and made other API changes for consistency. New features included CSS property batching and the .finish() method. jQuery 2.0 reduced file size further and dropped support for older browsers. Modernizr detects CSS and JavaScript features and adds results to the page for conditional styling.
The document discusses the responsive web design framework Bootstrap. It provides an overview of Bootstrap including its global styles, grid system, responsive layouts, and supported media queries. Bootstrap offers advantages like being easy to get started with, having a great grid system and base styles, extensive components, bundled JavaScript plugins, and good documentation. It also discusses how Bootstrap supports older browsers with tools like Normalize CSS, Html5shiv, Respond JS, and Selectivizr.
The document discusses improvements made to Boilerpipe, a tool for extracting the main content from web pages. It describes known issues with extracting content, the necessary and optional parameters for integration, and different output modes. Testing on 150 news articles achieved a 94% success rate. Issues addressed included incorrect encodings, missing content bodies, and JavaScript or HTML escape characters. The failure cases were analyzed and solutions developed, such as handling encodings better and downloading the full HTML.
This document provides an overview and case studies of using the Yahoo Query Language (YQL), Flickr API, and Instagram API. It discusses obtaining API keys, usage limits, and makes API calls to retrieve stock quotes, city location IDs, photos from specific cities and areas, photo metadata, and conduct searches. Examples demonstrate retrieving JSON/XML data on stock prices, city WOEIDs, photos matching queries, and photo URLs. The document also references documentation on registering applications, pricing, Flickr app registration, and API endpoints for each service.
Build Cross-Platform Mobile Application with PhoneGapAllan Huang
This document provides an overview of building cross-platform mobile applications with PhoneGap. PhoneGap allows developers to create mobile apps using HTML, CSS and JavaScript that can be deployed across various platforms. It provides APIs to access device capabilities like the camera, contacts and more. The document outlines PhoneGap's architecture, features, recipes for common tasks and how to integrate with frameworks like jQuery Mobile. It also discusses advantages like writing code once for multiple platforms, and disadvantages like lower performance compared to native apps.
Web workers allow long-running scripts to run in background threads separate from the main thread of a web page, in order to avoid making the page unresponsive. They enable running scripts across threads and processing large data sets concurrently. Web workers communicate with the main thread through messaging and have access to some but not all browser APIs. There are different types of web workers including dedicated, shared, and inline workers that have different scopes and capabilities.
This document discusses how to create offline web applications using HTML5 application cache manifest files. It covers HTTP response headers, caching strategies, manifest file structure and directives, updating the cache, checking online/offline status, and the application cache API. The manifest file lists application assets to cache and supports caching, network, and fallback rules. Updates require modifying cache busting values or the manifest file itself.
This document discusses various options for data storage in the browser. It begins by covering cookies, which have limitations in terms of size and speed. Web storage, including sessionStorage and localStorage, allows for more data to be stored client-side and accessed asynchronously without involving the server. The document then covers Web SQL Database and Indexed Database, which provide more robust storage and querying of data through SQL and NoSQL approaches, respectively. It analyzes the advantages and disadvantages of each approach and considers their browser support and performance characteristics for different use cases.
This document discusses various JavaScript patterns for object creation, functions, and code reuse. It covers object and array literals, constructors, modules, namespaces, private/public members, and patterns for immediate functions, callbacks, and chaining methods. The goal of these patterns is to help organize code, provide cleaner interfaces, and improve performance and code reuse.
This document discusses an overview of how a web crawler works including parsing HTML, common parsers used, the structure of parsers, examples of extraction and transformation, and concludes with uses of web crawlers and a question and answer session.
The document discusses requirements and infrastructure considerations for setting up a large-scale eSobi site. It covers clustering, load balancing, failover, and session persistence strategies. The proposed infrastructure would be highly scalable and fault-tolerant with in-memory session replication and pluggable load balancing policies. A testing infrastructure is also recommended to ensure quality and reliability of the large-scale site.
9. InfraRED Features
Application Performance Statistics
JDBC Statistics
Automated Support for Multiple Application Servers
Call Information
User Friendly WEB GUI
Centralized Collection of Statistics and support for Clustered
Applications
Layer Wise Summary
Non-Intrusive and Minimal Overhead
Export Utilities