Frameworks

Episode 33. Does code dream when it hibernates? A quick look on the big things of Hibernate

Databases have been around forever! (or at least from the 1970s) and there are many things that try to hook Object Objected Programming with Relational Databases (namely, O/R mappers). Hibernate is the most known O/R mapper and, while effective sometimes it can be confusing. In this podcast we delve on how to understand our misunderstood friend, and finally fix those pesky weird Hibernate exceptions once and for all!
If you just joined us, remember to follow me on Twitter! (@fguime)
and, well, it is Xmas! if you feel generous, and like what you hear, treat me a beer!

Tweet, Tweet! (https://twitter.com/#!/fguime)
Hibernate Mappings (Annotations)
Hibernate Mappings (Annotation Cheat Sheet)
Hibernate Mappings (on hbm)
Database Normalization
Vote for us in
iTunes (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
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)
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

Episode 28. Extra! Extra! JMS Delivering Messages to your App! Extra! Extra!

Episode 28. Extra! Extra! JMS Delivering Messages to your App! Extra! Extra! —-
Java Message Service (or JMS for short) is a collection of APIs and implementations that allows you to send “messages” across your applcation. But why is it so popular?, and what exactly is it trying to solve (what is a message anyways)? In this episode, we take our bycicle, and trace the delivery route of JMS to figure out the good, and avoid some JMS potholes along the way, making for a smooth message delivery experience!

 

Beer of the Episode: Leinenkugel’s Summer Shandy
|~|P |~|P |~|P |~|P |~|P |~|P |~|P Leinenkugel's Summer Shandy
|_| |_| |_| |_| |_| |_| |_|

It’s SUMMER! If you like what you hear, DEFINITIVELY, 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

|~|P |~|P |~|P |~|P |~|P |~|P |~|P Leinenkugel's Summer Shandy
|_|  |_|  |_|  |_|  |_|  |_|  |_|

Tweet, Tweet! (https://twitter.com/#!/fguime)
Enterprise Integration Patterns http://www.amazon.com/Enterprise-Integration-Patterns-Designing-Deploying/dp/0321200683
Intro to JMS Conceptshttp://docs.oracle.com/javaee/1.3/jms/tutorial/1_3_1-fcs/doc/basics.html
Apache ActiveMQ http://activemq.apache.org/
ActiveMQ Language Clients (ActionScript, Ajax, C, C++, C#, .Net, Delphi, Erlang, Flash, Haskell, Javascript, Perl, PHP, Pike, Python, Ruby, Smalltalk, Websockets) http://activemq.apache.org/cross-language-clients.html
RabbitMQ http://www.rabbitmq.com/
JMS Description and Implementation http://en.wikipedia.org/wiki/Java_Message_Service
Embed ActiveMQ Broker in code http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.html
JMS Tutorial http://docs.oracle.com/javaee/1.4/tutorial/doc/JMS.html#wp84181
Vote for us in iTunes (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
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)
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

 

Episode 27. There’s a Log File in the folder in the middle of the App

(Sing to the children’s song There’s a hole in the middle of the sea)
Logging is part of everyday production debugging life. If you ever had to troubleshoot a production application, the you most likely have looked at log files. These log files can either be a salvation, or an inmense source of frustration. In this podcast we delve into the different logging frameworks, and more importantly, what to log and not to log (and how to log it).

|~|P |~|P |~|P |~|P |~|P |~|P |~|P Beer! (or Mai Tais!)
|_|  |_|  |_|  |_|  |_|  |_|  |_|

It’s SUMMER! If you like what you hear, DEFINITIVELY, 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
|~|P |~|P |~|P |~|P |~|P |~|P |~|P Beer! (or Mai Tais!)
|_|  |_|  |_|  |_|  |_|  |_|  |_|

Tweet, Tweet! (https://twitter.com/#!/fguime) Java Logging Framework http://en.wikipedia.org/wiki/Java_logging_framework
SLF4J (The facade framework http://www.slf4j.org/
Log4J http://logging.apache.org/log4j/1.2/index.html
Java Logging API http://docs.oracle.com/javase/1.4.2/docs/guide/util/logging/
The linux utilities for windows! (Cygwin) http://www.cygwin.com/
Grep! Grep grepping grep! http://en.wikipedia.org/wiki/Grep
More Grep http://www.cyberciti.biz/faq/howto-use-grep-command-in-linux-unix/
Vote for us in iTunes (http://itunes.apple.com/us/podcast/java-pub-house/id467641329)
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)
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

Episode 20. Excuse me, do you know what Date it is, or what Date is? A discussion about Date and Calendar in Java

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)

Episode 18. Ahh, the perils of Serialization and Deserialization in Java

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)

Episode 15. Java Swing and Performance. It’s not slow!

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)

Episode 10. Testing, Testing, 1.2.3! (All about Unit Testing, And Dependency Injection)

For those Unit Testers out there (and those who want to do more unit tests), this podcast is for you! We cover JUnit in general, and explain how to shoe-in unit tests in current (and legacy code). We talked about Dependency Injection (and the Concern of Creation), and Mocking (what it is, and how is it used). In all, if you ever wondered why creating unit tests in your current code is hard, or why are people talking about Dependency Injection (DI), come in, and listen!

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)

 

Episode 8. What’s your Aspect?

In this episode we go over Aspects (and AspectJ), what really is, and when to use them. It turns out, that there is nothing misterious about them! We also cover how to set-up Aspects for J2SE so you can start using them immediately!

Questions, feedback or comments!comments@javapubhouse.com

VM Parameter
-javaagent:dep/aspectjweaver.jar

Example Aspect

@Aspect

public class OrderAspect {

    @Before("execution(* *.*(Order))") // must qualify
    public void anyCall() {
        System.out.println("Was called from anywhere");
    }
  }

Example aop.xml file

          <aspectj>
            <aspects>
              <aspect name="OrderAspect"/>
            </aspects>
            <weaver options="-verbose -showWeaveInfo">
            </weaver>
          </aspectj>

Example Folder Structure

src
 |
 |-META-INF
    |
    |-aop.xml

References:

http://www.eclipse.org/aspectj/doc/released/adk15notebook/ataspectj-pcadvice.html

http://blog.espenberntsen.net/2010/03/20/aspectj-cheat-sheet/

http://www.eclipse.org/aspectj/doc/next/quick5.pdf

(Using aspects with annotations)
http://stackoverflow.com/questions/2011089/aspectj-pointcut-for-all-methods-of-a-class-with-specific-annotation