InfoQ Homepage Java Content on InfoQ
-
Graph Databases, NOSQL and Neo4j
Peter Neubauer introduces Graph databases and how they compare to RDBMS' and where they stand in the NOSQL-movement, followed by examples of using a graph database in Java with Neo4j.
-
Book Excerpt and Interview: Deploying HTML5
Deploying HTML5 is a book written by Aditya Yadav, a former Sr. Architect for ThoughtWorks and actual CTO of a consultancy firm, explaining the HTML5 standard components, showing how they are implemented across major browsers and providing code samples for using them.
-
An In-Depth Look at Clojure Collections
If you're familiar with Clojure, then you may know that at its heart lays a powerful set of immutable, persistent, collection types. This article covers the underpinnings of these collection types including a deep dive into a couple of them; namely vectors and maps, and presents an example of how viewing a problem through the lens of the "Clojure way" can greatly simply a design.
-
JSR 292 and the Multi-lingual JVM
Java 7 is looking to improve support for dynamic languages using the Java Virtual Machine for their runtime environment. John Rose has been leading a project to explore some options, and JSR 292 will standardise some of this work for Java 7. InfoQ takes a look at the problems JSR 292 solves, and talks to JRuby lead Charles Nutter to find out more about InvokeDynamic in practice.
-
Unit and Integration Testing for GWT Applications
Bertrand Paquet and Gael Lazzari of Octo Technology explore Unit Testing GWT applications and introduce their own open source gwt-test-utils framework to support unit and integration testing of GWT code with standard tools such as JUnit and Easymock.
-
Book Excerpt and Interview: jBPM Developer Guide
A new book by Mauricio "Salaboy" Salatino, the jBPM Developer Guide, provides a detailed jBPM programming guide for Java developers with several real-life examples. InfoQ spoke with Salatino to learn the motivations behind the book and learn from his experience both using and writing about the jBPM Business Process Management suite.
-
Implementing Google's "Did you mean" Feature In Java
Leandro Moreira shows how to implement a domain specific version of Google’s “Did you mean” feature based on the SpellChecker project in the Apache Lucene sandbox using thee alternative algorithms (Levenshtein, Jaro-Winkler and N-gram).
-
Key Takeaway Points and Lessons Learned from QCon London 2010
This article presents the main takeway points as seen by the many attendees who blogged about QCon. Comments are organized by tracks and sessions: Keynotes, Tutorials, 2015 Software Development, Agile Evolution, AlphaGeeks on .NET, Architectures You've Always Wondered About, Pragmatic Cloud Computing, Cool Stuff with Java, Dev and Ops: A single team, Software Craftsmanship, NoSQL and many more!
-
Scaling Clojure Web Apps with Google AppEngine
InfoQ takes a look at how a combo of Clojure and Google AppEngine (GAE) powers a new online project management tool, how Clojure integrates with GAE's key/value store, and the power of LISP.
-
A Discussion with Allard Buijze on CQRS with the Axon framework
The Axon framework is a Java implementation of the Command and Query Responsibility Segregation. InfoQ talked with its creator, Allard Buijze, to find out more.
-
Authorizing Process Access and Execution with JBoss jBPM
Centralized BPM deployments can greatly benefit from the ability to control access to process definitions and instances ensuring that users can use and monitor only a set of processes that they are authorized for. In this article Boris Lublinsky shows how to extend JBoss jBPM to define and support process access authorization.
-
Memory Barriers and JVM Concurrency
Memory barriers, or fences, are a set of processor instructions used to apply ordering limitations on memory operations. This article explains the impact memory barriers have on the determinism of multi-threaded programs. We'll look at how memory barriers relate to JVM concurrency constructs such as volatile, synchronized and atomic conditionals.