Sun, 2 December 2012
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! |
Sun, 28 October 2012
And Shout out to Peter Hendriks and Tim Prijn for their presentation!(https://oracleus.activeevents.com/connect/sessionDetail.ww?SESSION_ID=4153). If interested, click on the 'media' icon on the right side! With the establishment of Java 7 as the de-facto JRE of Oracle, the clock is ticking down for Java 6! It will be End-Of-Life around February 2013, so we better get going and upgrade! In this episode we cover how to migrate to Java 7, and cover some of the most notable Java 7 features (Networking nuts, your prayers have been answered!) while preparing a path to upgrade. If you have a Java 6 (or 5 or 4) project, this is mandatory listening! If you just joined us, remember to follow me on Twitter! (@fguime) and IF you really really really really really really really really really really really really really REALLY like what you hear, treat me a beer!
|
Wed, 10 October 2012
It is also our Birthday (We have been airing episodes for a year!)! Happy to celebrate with everyone a year of the podcast (and if you want to celebrate it, treat me a beer! :) ). With this episode we wrap the concept of generics and bounds (super / extends) and talk about type erasure (and compiler warnings that goes 'Hm, dunno what you're doing but I can't make sure it's right' And, that...is that! If you just joined us, remember to follow me on Twitter! (@fguime) and IF you like what you hear, treat me a beer! |
Fri, 14 September 2012
Episode 30. I always thought Generics were as good as brand name Erasers (Java Generics part 1) ---- Ah! and if you are going to JavaOne check my t-shirt on the previous post And if you just joined us, remember to follow me on Twitter! (@fguime) Also, we are getting close to our first BIRTHDAY!If you have followed us all year long, or just recently join us, and like what you hear, treat me a beer! |
Mon, 20 August 2012
We go and visit the Primordial Java Concepts. As rules set in stone we explore the concept of multiple inheritance, method and variable scope (including the final keyword), abstract methods and @override. This is good for those starting up their Mad Java SkillZ (We're L33T, u K|\|0w?), or for those who were always curious why the language is this way. And if you like the podcast, subscribe to my Twitter Feed! http://www.twitter.com/fguime Beer of the Episode: Leinenkugel's Sunset Wheat
It's THE END OF 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
Tweet, Tweet!(https://twitter.com/#!/fguime) Scopeshttp://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html Override annotationhttp://stackoverflow.com/questions/94361/when-do-you-use-javas-override-annotation-and-why Abstract Methods and Classeshttp://docs.oracle.com/javase/tutorial/java/IandI/abstract.html 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) 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 |
Sun, 5 August 2012
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
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
Tweet, Tweet!(https://twitter.com/#!/fguime) Enterprise Integration Patternshttp://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 ActiveMQhttp://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 Implementationhttp://en.wikipedia.org/wiki/Java_Message_Service Embed ActiveMQ Broker in codehttp://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.html JMS Tutorialhttp://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) 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 |
Sun, 15 July 2012
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)
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
Tweet, Tweet! (https://twitter.com/#!/fguime) Java Logging Frameworkhttp://en.wikipedia.org/wiki/Java_logging_framework SLF4J (The facade frameworkhttp://www.slf4j.org/ Log4Jhttp://logging.apache.org/log4j/1.2/index.html Java Logging APIhttp://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 Grephttp://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) 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 |
Sun, 24 June 2012
As developers, we have to deal with Exceptions every day (or at least every other day). In this episode we dive a bit on exception (and exception handling), plus we talk about certain behaviors that are not so well-understood (try returning from a finally block, or why exception stack traces sometimes misteriously disappears). A good review for those who already know, and a great primer for those diving into Exceptions, this episode is sure to show some surprises! (~)P (~)P (~)P (~)P (~)P (Beer) (~)P (~)P (~)P (~)P 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 (Beer) (~)P (~)P (~)P (~)P
Tweet, Tweet! (https://twitter.com/#!/fguime) Try-with-resources constructhttp://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html Exception Definitionhttp://docs.oracle.com/javase/tutorial/essential/exceptions/definition.html Checked vs Unchecked Exceptions Debatehttp://www.ibm.com/developerworks/java/library/j-jtp05254/index.html More Exception Debates from C vs C++, still a useful read. http://www.250bpm.com/blog:4 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) 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 |
Wed, 6 June 2012
Episode 25. Reflection and vampire classes, and compiling Java from within Java. We have heard the word "Reflection" thrown around, what does it mean? it is a new Twilight series? is it about Vampires? In all, we shed sunlight into what reflection is (and more importantly why in the world you want to use it). And also cover a technique to compile and load programs within your program. Javascript guys had access to this by doing eval("your program here"), and while Java doesn't have an eval function, there are ways of achieving similar results (and very specific reasons to do this crazy technique. Mostly performance)
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
Nimbus code to get the dang CacheMode (considered a private variable) public class ButtonPainter extends AbstractRegionPainter { public ButtonPainter() { Class<?> c = null; PaintContext ctx = new PaintContext(new Insets(0,0,0,0), new Dimension(100,100), false, null, Double.POSITIVE_INFINITY, 2.0 ); try { c = Class.forName("javax.swing.plaf.nimbus.AbstractRegionPainter$PaintContext$CacheMode"); } catch (ClassNotFoundException e) { e.printStackTrace(); } if (c != null) { Object cacheMode = c.getEnumConstants()[2]; // NINE_SQUARE_SCALE for (Field field : ctx.getClass().getDeclaredFields()) { if (c.getName().equals(field.getType().getName())) { // if Field is the CacheMode try { // the following lines would not be necessary for example if // AbstractRegionPainter.cacheMode were protected or public. field.setAccessible(true); // make it accessible so that we can set it field.set(ctx, cacheMode); // set the cachemode // this is equivalent as sayin "ctx.cacheMode = CacheMode.NINE_SQUARE_SCALE" if it were public/protected break; } catch (IllegalAccessException e) { e.printStackTrace(); } } } } } @Override protected PaintContext getPaintContext() { return null; //To change body of implemented methods use File | Settings | File Templates. } @Override protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { //To change body of implemented methods use File | Settings | File Templates. } } Code to get instance from a source file public static Object getInstanceForSource(String className, String sourceForRule) { String filename = "tmp/" + className + ".java"; File file = new File(filename); writeFile(filename, sourceForRule); String classPath = System.getProperty("java.class.path"); String[] args = new String[]{ "-classpath", classPath, filename }; StringWriter compilerOutput = new StringWriter(); int status = com.sun.tools.javac.Main.compile(args,new PrintWriter(compilerOutput)); additionalInfo.value = compilerOutput.toString(); switch (status) { case 0: // OK // Make the class file temporary as well File classFile = new File("./tmp/"); try { // Try to access the class and run its main method URLClassLoader loader = new URLClassLoader(new URL[] {classFile.toURI().toURL()}); Class clazz = loader.loadClass(className); return clazz.newInstance(); } catch (Exception ex) { additionalInfo.value = "Exception in main: " + Utilities.exceptionToString(ex)+"\n"+additionalInfo.value; } break; case 1: System.out.println ("Status: Error" +"\n"+additionalInfo.value); break; case 2: System.out.println ("Status: CMDERR" +"\n"+additionalInfo.value); break; case 3: System.out.println ("Status: SYSERR" +"\n"+additionalInfo.value); break; case 4: System.out.println ("Status: ABNORMAL" +"\n"+additionalInfo.value); break; default: System.out.println ("Status: UNKNOWN" +"\n"+additionalInfo.value); break; } return null; } public static void writeFile(String fileName, String content) { Writer writer; File file = new File(fileName); try { writer = new BufferedWriter(new FileWriter(file)); writer.write(content); writer.close(); } catch (IOException e) { System.out.println ("I/O exception "+e); } } Tweet, Tweet!(https://twitter.com/#!/fguime) Reflection 'trail' http://docs.oracle.com/javase/tutorial/reflect/index.html 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) 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 |
Sun, 6 May 2012
Designers will come to you, and say "Hm, I think your program is not as user-friendly". And sometimes, when you ask them to elaborate, they seem to follow a hidden and cryptic ritual. They are right, yet, is hard to see how did they come up with those usability suggestion. Alas, behind every usability magician, there is a magic trick! and on this podcast we reveal in plain sight what makes interfaces usable (and quote a lot from Alan Cooper's book). Once you see the trick, you would never be daunted on spotting usability yourself, and making things much more usable before passing them on. Usability magic for all of us! If you like what you hear, treat me a beer! https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=Z8V2ZWV93UMW4 Twitter, twitter, twitter, twitter!(https://twitter.com/#!/fguime) The immates are running the asylum (Alan Cooper) http://www.amazon.com/The-Inmates-Are-Running-Asylum/dp/0672316498 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) 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 |