Java Pub House

Garbage collections are like the engine of a car, we know it works, we know that it powers the car, but not much else, but once it breaks down, we usually don't have a too much of a clue on how to fix it. In this episode we talk about how garbage collections happen, the things it looks for, and more importantly, how it changes your code (there are certain things that you can do to make your code garbage collector friendly). Having this knowledge will help you in the long road on troubleshooting any garbage collection issues (including tuning!), so take a listen to the garbage man!

There is a new band in town! Lambda Expression. Listen to me, and my one-man band in facebook (www.facebook.com/lambdaexpression). And LIKE! (doesn't cost anything!)

Hey! if you like what you hear, treat me a beer! (It's the Java pub house after all :) https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=Z8V2ZWV93UMW4

Vote for us in iTunes (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Follow us in Twitter!https://twitter.com/#!/fguime

The holy grail of JVM Tuning http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html
YourKit Java memory profiler http://www.yourkit.com/
Charlie Hunt Java performance bookhttp://www.amazon.com/Java-Performance-Charlie-Hunt/dp/0137142528

Questions, feedback or comments! comments@javapubhouse.com

Subscribe to our podcast! (http://javapubhouse.libsyn.com/rss)
ITunes link (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Java 7 Recipes book! (http://www.amazon.com/gp/product/1430240563/ref=as_li_ss_il?ie=UTF8&tag=meq-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=1430240563)

Direct download: JPHE22.mp3
Category:Memory -- posted at: 11:34pm CST

So you're programming along when suddenly support calls and says that the application just "disappeared", or, the server process is not there anymore, both of them leaving you with a hprof.pid file. You have just witnessed the murder of a Java Virtual Machine, and now is your turn to figure out what happen, and what can we do to prevent such senseless crashes. We cover the main reasons for crashes (most likely not your fault), and best of all, ways around it! So put on your detective hat and let's solve the mysteries surrounding JVM Crashes once and for all!

Hey! if you like what you hear, treat me a beer! (It's the Java pub house after all :) https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=Z8V2ZWV93UMW4

Vote for us in iTunes (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Follow us in Twitter!https://twitter.com/#!/fguime

Most JVM Options http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
Troubleshooting tips http://www.oracle.com/technetwork/java/javase/index-137495.html
-XX:+ShowMessageBoxOnError http://www.oracle.com/technetwork/java/javase/clopts-139448.html#gbmui
.hotspot_compiler to stop compilation of methods
More JVM Options (-Xint to disable JIT compiling)

Java 7 recipes book made it to the Java Magazine!http://www.oraclejavamagazine-digital.com/javamagazine/20120304?pg=3#pg10

Questions, feedback or comments! comments@javapubhouse.com

Subscribe to our podcast! (http://javapubhouse.libsyn.com/rss)
ITunes link (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Java 7 Recipes book! (http://www.amazon.com/gp/product/1430240563/ref=as_li_ss_il?ie=UTF8&tag=meq-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=1430240563)

Direct download: JPHE21.mp3
Category:Optimization -- posted at: 9:40pm CST

In this podcast we turn and talk of that embarassing uncle that every API has (java.util.date), you know, the one that you have to live with because is family, but don't really like that much? We dive into what to avoid when using Date (and Calendar), and the most common pitfalls that we have falled for (1000*60*60*24 anyone?). In all, if you have used date extensively you probably already migrated to JodaTime, but if you are a casual user, then take a listen, just to make sure you are not bitten by the Date traps!

Vote for us in iTunes (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Follow us in Twitter!https://twitter.com/#!/fguime

http://joda-time.sourceforge.net/ (Joda Time)
http://www.wolkje.net/2010/01/06/java-date-and-time-api-and-jsr-310/(New Date JSR + what goes under the covers)

Questions, feedback or comments! comments@javapubhouse.com

Subscribe to our podcast! (http://javapubhouse.libsyn.com/rss)
ITunes link (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Java 7 Recipes book! (http://www.amazon.com/gp/product/1430240563/ref=as_li_ss_il?ie=UTF8&tag=meq-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=1430240563)

Direct download: JPHE20.mp3
Category:general -- posted at: 8:19pm CST

We finish our discussion on the ObjectOutputStream by covering the SerialVersionUID, and then move onto ObjectOutputStream's citadine cousin, XMLEncoder and Decoder (and why would you go and hang out with it). We also make a quick introduction to "The Bean" (Java Beans that is), and discover there isn't too much to it. If you are persisting and/or transmitting, listen to the shocking conclusion (gasp!) of serialization!

Rate us in  iTunes (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Follow us in Twitter! https://twitter.com/#!/fguime

http://java.sun.com/developer/technicalArticles/Programming/serialization/ (Serialization/Deserialization)
http://docs.oracle.com/javase/1.5.0/docs/guide/serialization/spec/version.html#6678 (Compatible/Incompatible serialization changes)
http://java.sun.com/products/jfc/tsc/articles/persistence4/(XMLEncoder/Decoder)

Questions, feedback or comments! comments@javapubhouse.com

Subscribe to our podcast! (http://javapubhouse.libsyn.com/rss)
ITunes link (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Java 7 Recipes book! (http://www.amazon.com/gp/product/1430240563/ref=as_li_ss_il?ie=UTF8&tag=meq-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=1430240563)

Direct download: JPHE19.mp3
Category:general -- posted at: 10:52pm CST

We all have the need to serialize/deserialize objects (either through the "wire" or to file). In this podcast we go and analyze what exactly happens when we create an ObjectOutputStream and write to it, and more importantly what pitfalls are there to avoid (Out ot memory errors, stale object updates, Not Serializable Exceptions, and toenail fungus!). If you ever considered using ObjectOutput/InputStream, or are actively using in your current projects, take a listen!

https://github.com/eishay/jvm-serializers/wiki/ (Serialization performance comparison for Java, pick one!)

Questions, feedback or comments! comments@javapubhouse.com

Subscribe to our podcast! (http://javapubhouse.libsyn.com/rss)
ITunes link (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Java 7 Recipes book! (http://www.amazon.com/gp/product/1430240563/ref=as_li_ss_il?ie=UTF8&tag=meq-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=1430240563)

Direct download: JPHE18.mp3
Category:general -- posted at: 8:04pm CST

Every developer at one point in time runs into the question, what is beautiful code? Is it code that is expressed concisely? is it code that does a lot in a few lines of code. Well, while we're not the DeveloperPeople's magazine at least there are fundamental concepts that describe code beauty. And while there isn't a consensus (what is beauty anyways), at least there is a baseline for code that is not ugly (hint. It's maintainable). At least a conversation starter, this podcast covers the very minimum that code has to be to not be ugly!

Questions, feedback or comments! comments@javapubhouse.com

Subscribe to our podcast! (http://javapubhouse.libsyn.com/rss)
ITunes link (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Java 7 Recipes book! (http://www.amazon.com/Java-7-Recipes-Problem-Solution-Approach/dp/1430240563)

Direct download: JPHE17.mp3
Category:Our Craft -- posted at: 10:42pm CST

The State pattern is very useful, it's just hard to spot, and at the beginning a little hard to understand. On this podcast we cover the state pattern with a specific example of its use, plus tips on how to spot when to use it (really that's the hardest part of the state pattern). Check this podcast out, and add another pattern to your toolkit!

State Pattern (http://en.wikipedia.org/wiki/State_pattern)

Questions, feedback or comments! comments@javapubhouse.com

Subscribe to our podcast! (http://javapubhouse.libsyn.com/rss)
ITunes link (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Java 7 Recipes book! (http://www.amazon.com/Java-7-Recipes-Problem-Solution-Approach/dp/1430240563)

Direct download: JPHE16.mp3
Category:Patterns -- posted at: 11:06pm CST

Taking the performance theme, we move into the dark corners of Java Swing and discover that it is not a lame horse at all! Swing is very fast (with support for directX and OpenGL!), but sometimes is hard to get it to perform right. In this podcast we talk about how to make sure of respecting the EDT, offloading from the EDT, we explain how the EventQueue works, and show THE technique for fast GUI performance. If you know what Swing is, tune in! We will dispell Swing's performance myths!

Using Aspects to debug Swing Apps (http://weblogs.java.net/blog/alexfromsun/archive/2006/02/debugging_swing.html)
Java Flags for DirectX and OpenGL (http://docs.oracle.com/javase/1.5.0/docs/guide/2d/flags.html)
InvokeLater, InvokeAndWait(http://java.sun.com/products/jfc/tsc/articles/threads/threads1.html)

Questions, feedback or comments! comments@javapubhouse.com

Subscribe to our podcast! (http://javapubhouse.libsyn.com/rss)
ITunes link (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Java 7 Recipes book! (http://www.amazon.com/Java-7-Recipes-Problem-Solution-Approach/dp/1430240563)

Direct download: JPHE15.mp3
Category:Swing -- posted at: 7:56pm CST

In the second part of optimization, we talk about the tools (or more properly algorithms) that you can use to optimize a piece of code. Ever wonder how to make a piece of code faster? or difference between caching and Divide-and-Conquer? then tune in! You'll become the McGyver of code optimization.

Fork/Join Java 7 (http://docs.oracle.com/javase/tutorial/essential/concurrency/forkjoin.html)
Guava (http://code.google.com/p/guava-libraries/)
Charlie Hunt's book (http://www.amazon.com/Java-Performance-Charlie-Hunt/dp/0137142528)
OpenCL for Java (http://www.jocl.org/)
Aparapi(http://developer.amd.com/zones/java/aparapi/Pages/default.aspx)

Questions, feedback or comments! comments@javapubhouse.com

Subscribe to our podcast! (http://javapubhouse.libsyn.com/rss)
ITunes link (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Java 7 Recipes book! (http://www.amazon.com/Java-7-Recipes-Problem-Solution-Approach/dp/1430240563)

Direct download: JPHE14.mp3
Category:Performance -- posted at: 8:11pm CST

We all love speed, code speed that is! In this podcast we delve into code optimizations, and what does it mean to optimize for speed. We go over what is the mind-state that you need as you optimize code and offer sneaky shortcuts that allows 10-fold improvement with very little code change (Caching, or pregenerating, or timed-updates). More importantly we go over the process on defining when you have "arrived" at a good optimization point, and hopefully help you optimize what is really important (measuring for performance). If you need to scale up/out and around, listen to this episode!

If you feel you would like to share your optimization experience, go to https://groups.google.com/group/javapubhouse, and post!

Questions, feedback or comments! comments@javapubhouse.com

Subscribe to our podcast! (http://javapubhouse.libsyn.com/rss)
ITunes link (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
Java 7 Recipes book! (http://www.amazon.com/Java-7-Recipes-Problem-Solution-Approach/dp/1430240563)

Direct download: JPHE13.mp3
Category:Performance -- posted at: 4:55pm CST