Java Pub House

OracleCodeOne just happened... and Freddy and Bob couldn't go... So they recruited the help of Josh Juneau to go out there and capture interviews from anyone who would talk to us! Apparently they did, and we packaged all in this hour-long episode for your enjoyment! Everything from community building, to what's hot in the Java space, to takes from the conference are covered in this series of five minute interviews.

So take a listen! It's the next best thing if we couldn't go to OracleCodeOne.

And don't forget to follow JavaPubHouse on twitter! Where we will be sharing new tech news, and tutorials!

Lastly, if you haven't visited us in a while, javapubhouse.com had a new facelift. We made it easier to find episodes, and information about our podcast!

We thank DataDogHQ for sponsoring this podcast episode



Don't forget to SUBSCRIBE to our cool NewsCast! Java Off Heap


We want to thank

For participating!

Do you like the episodes? Want more? Help us out! Buy us a beer!



And Follow us! @javapubhouse and @fguime and @bobpaulin
Direct download: JPHE78_mixdown.mp3
Category:general -- posted at: 12:51am CST

So you may have thought about using NoSQL or a Document Database for taking care of you needs. But do you know why that might be not be a good (or a pretty bad idea?). Or you may have a Database that have been running fine, but it seems that you can't work with it anymore? (Is it time to move to NoSql? Would it help?).

We dive into the "Why" would you choose Databases vs NoSQL Data Stores, or when to ditch your MongoDB and actually come back to MySQL. In our current time of "WebScale" and "CloudReady" we get bombarded by choices! (Mongo, Dynamo, MariaDB, ElasticSearch) and while some of the offerings are great, it might not mean that is the Right choice for what we need to store.

So take a listen as we explore normalization and the strength and weaknesses of relational data vs unstructured data.



We thank DataDogHQ for sponsoring this podcast episode



Don't forget to SUBSCRIBE to our cool NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!



And Follow us! @javapubhouse and @fguime and @bobpaulin

 

Direct download: JPHE77_mixdown.mp3
Category:general -- posted at: 11:39pm CST

It's coming! If you have been using Oracle Java 8, you should know that starting on January 2019 we will have to get an oracle license for running Oracle's JDK in production. OR, if you want to keep using Oracle Java (or OpenJDK) for free, and still receive security updates, then you gotta move to 11!

In this episode we have no other than @DrDeprecator itself giving us a tour on what are the less-known changes (and goodies) that are coming when upgrading from 8 to 11. We go through most of the JEPs that usually don't make the news but are actually pretty awesome!

So take a listen, and start downloading the new Java 11!



We thank DataDogHQ for sponsoring this podcast episode



We also thank Stuart Marks a.k.a. Dr Deprecator for joining us in this episode (do follow him!)

Don't forget to SUBSCRIBE to our cool NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!



And Follow us! @javapubhouse and @fguime and @bobpaulin

 

Direct download: JPHE76_mixdown.mp3
Category:general -- posted at: 12:11am CST

While Freddy is travelling from Chicago through the West Coast in a minivan, Bob talked to Todd Ginsberg about the new darling language from the JVM. Kotlin is much more than a novelty now, and with Android support, and some time to "work out the kinks" it has been used Mainstream. Have you been curious on what makes Kotlin interesting, and "fun?". Have you been thinking of taking it for a spin? Well, wait no more! Listen to this episode as Todd takes us through the coolest part of Kotlin!


We thank DataDogHQ for sponsoring this podcast episode



We also thank Todd Ginsberg for joining us in this episode!

Don't forget to SUBSCRIBE to our cool NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!



And Follow us! @javapubhouse

 

Direct download: JPHE75_mixdown.mp3
Category:general -- posted at: 10:55am CST

In this episode we interview Janine Patterson on her talk of "Integration Test Coverage with JaCoCo" and dive into the nuances of Units vs Integration tests. We dive into Gherkin sentences as we use Cucumber, and challenges of integration tests (hint... use Docker). We also dive into the best way to execute these (Spring Runner). In all, if you were interested in upping your integration testing game, this is the one episode to listen to!
We thank DataDogHQ for sponsoring this podcast episode



We also thank Janine Patterson for joining us in this episode (do follow her!)

Don't forget to SUBSCRIBE to our cool NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!



And Follow us! @javapubhouse and @fguime and @bobpaulin

 

Direct download: JPHE74_mixdown.mp3
Category:general -- posted at: 9:50am CST

Episode 73. Spring Boot 2.0 is out! Hear all about it with Greg Turnquist It's new, it's shiny, and is powerful! The new Spring Boot 2.0 framework is out! And we interviewed Spring's own @gregturn to tell us what's new, what's improved and what has changed in 2.0. Diving into a bunch of topics including Reactive APIs, Bob, Greg and I set to explore Spring Boot 2.0 (and why you should upgrade). @gregturn is also the author of Learning Spring Boot 2.0, and he is an authority on many thing Spring.

This is an episode you don't want to miss!
We thank DataDogHQ for sponsoring this podcast episode



We also thank Greg Turnquist for joining us in this episode (do follow him!)

Don't forget to SUBSCRIBE to our cool NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!



And Follow us! @javapubhouse and @fguime and @bobpaulin

 

Direct download: JPHE73_mixdown.mp3
Category:general -- posted at: 5:45pm CST

We went to one of the best sources to learn what's happening with Var and Java 10, @stuartmarks! Also, what has been (and is being deprecated) on Java 10, and 11. And little inside perspective of having a new java version every six months!

Included is a the "convConvenience Factory Methods for Collections" List.of, Set.of, Map.of that @stuartmarks did for Java 9! (and his new contributions for Java 10). And a interesting trick of the non-deterministic order of unmodifiable sets! (A Stuart Marks special!)

So come and listen to this episode which contains great tips and tricks directly from one of the contributors to the Java Programming Language API!

We thank DataDogHQ for sponsoring this podcast episode



We also thank Stuart Marks (Dr Deprecator) for joining us in this episode (do follow him!)

Don't forget to SUBSCRIBE to our cool NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!



And Follow us! @javapubhouse and @fguime and @bobpaulin
Direct download: JPHE72_mixdown.mp3
Category:general -- posted at: 7:59pm CST

Episode 71. Jigsaw part II, and Java 10 Highlights! So we finally wrapped Jigsaw in this episode (the most prominent feature for Java 9 (and included a small errata from @stuartmarks). But Java is moving at a breakneck speed, and Java 10 was just released a couple of days ago! We couldn't resist covering some of the new and interesting features of the language. So come take a listen to finish up with Jigsaw, and learn what's new for Java 10.


We thank DataDogHQ for sponsoring this podcast episode


Don't forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap


Do you like the episodes? Want more? Help us out! Buy us a beer!



And Follow us! @javapubhouse and @fguime and @bobpaulin

 

Direct download: JPHE71_mixdown.mp3
Category:general -- posted at: 11:21pm CST

It was both the most anticipated and (one of the) most controversial features in Java 9. What's the bruhaha all about? What is Jigsaw (or the Java Platform Module System)? What does it bring? Can I use it? And if so, why would I use it? All these questions are answered as we dive into the history of JSR-376 (it has been years in the making). And since Jigsaw is so big, there might be a two-parter for us! So stay tuned!

We thank DataDogHQ for sponsoring this podcast episode




Don't forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!



And Follow us! @javapubhouse and @fguime and @bobpaulin

Direct download: JPHE70_mixdown.mp3
Category:general -- posted at: 6:58pm CST

So it's the holidays and now we are winding down the year. Even so, sometimes this is the best time to actually do some performance testing. And there's no better (foss) tool to do so than JMeter! Come and let's dive into how to use JMeter for those stress and performance testing that needs to get done (you're doing stress tests right?)


Don't forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!



And Follow us! @fguime and @bobpaulin

Direct download: JPHE69_mixdown.mp3
Category:general -- posted at: 11:40pm CST

Episode 68. Clouding it up with Microsoft Service Fabric

Clouds are everywhere and are puffy! In this Sponsored Episode, we dive into one of the main prominent cloud providers out there (Microsoft), who is outreaching to us Java Developers! (gasp!). In this episode, the Microsoft Service Fabric team (with @mani_ramaswamy, @HuruliS and Raunak Pandya) takes us in a soup-to-nuts tour on how to get started with Azure's service cloud, including what makes it different from others. Bob and I dive and explore how well would this work for us Java folk (and the answer is "very well") taking questions from how to build and deploy cloud, to what native support is there is for us Java Folk .

We thank Microsoft's Service Fabric team for sponsoring this podcast!


Don't forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!



And Follow us! @javapubhouse and @fguime and @bobpaulin

Direct download: JPHE68_mixdown.mp3
Category:general -- posted at: 6:46pm CST

We sneaked in! Bob and I managed to get into JavaOne (sshhhh....) and made drive-by interviews with some of the luminaries and notable atendees at JavaOne, from Dr. Deprecator @stuartmarks to @reza_rahnman, @edburns, @prpatel, @saturnism, @javaclimber and @shelajev. All in snippets of 10 minute awesomeness talking from deprecation, collections, Eclipse Enterprise for Java, Containerization, and getting Kids involed, it's a great melting pot of topics and opinions!


Don't forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!



And Follow us! @fguime and @bobpaulin and @javapubhouse

Direct download: JPHE67_mixdown.mp3
Category:general -- posted at: 6:27pm CST

So we talked about how to create a rest service (using things like Apache CXF and Spring MVC), but sometimes, we actually need to consume these rest services. Luckily within the Java ecosystem there is a lot of way to skin that cat, and in today's episode we at least cover 4 ways of doing so (including my favorite of the day, Feign). Come take a listen as we dive into Appache HttpComponents, Apache CXF with JaxRS, Spring RestTemplate and Netflix Feign on this fully-loaded episode.


Don't forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!



And Follow us! @fguime and @bobpaulin

Direct download: JPHE66_mixdown.mp3
Category:general -- posted at: 7:31pm CST

What a strange omission, of all the concepts, one that all of us should always have is Caching. We have used it (and most likely we have been burned by it). Come and take a listen on how to correctly (or at least not as incorrectly) think about caching, finding out your "game plan", and using JSR-107, or Hazelcast, or Apache Ignite or Spring. LRU? Time-based? How much memory? Long distribution tails? cacheable keys? All concepts that you should ask before creating/using a cache!


Don't forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!



And Follow us! @fguime and @bobpaulin

Direct download: JPHE65_mixdown.mp3
Category:general -- posted at: 10:05pm CST

You heard about it, and you are probably using it already. It is the Spring framework that took over the Web (Spring Boot!). But what makes it so special? and what lurks under the covers? How did it became a thing and what is it really trying to accomplish? Come take a listen with our own Pivotal insider, Michael Minella! (@michaelminella


Don't forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!



And Follow us! @fguime and @bobpaulin

Direct download: JPHE64_mixdown.mp3
Category:general -- posted at: 9:10pm CST

The Java Content Repository (JSR-170 and JSR-283) have been around for a while. For those who don't know it's an actual way of managing content (or assets, or text, or images, or a catalog). Its use can be almost anything, and yet, we didn't know we had it! The best part? It's a JSR so not just that there are different, compatible implementations, but the underlying storage can be changed in a jiffy. Want to store as files in the filesystem, done. How about a Database? also done. How about using something that the cool kids use like Mongo? It Got you covered man! (or Woman!)


Don't forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!



And Follow us! @fguime and @bobpaulin

Direct download: JPHE63_mixdown.mp3
Category:general -- posted at: 11:03pm CST

So let's talk about one of (if not the) largest, and most interesting framework hosted at Apache. Camel is essentially an implementation of the Enterprise Integration Patterns (EIP) book (which is a mandatory read for the serious dev!). It has so many contributions (and connections) that there is almost no popular system that it can't connect to. In this episode we dive into the reasoning and "spirit" of Camel, to make sense on how to use it. If you ever used Camel, or have run into camel and scratched your head, then definitively take a listen!




A Big Thanks to LaunchDarkly for sponsoring our podcast! Feature flagging is easy, feature flag management is hard. What LaunchDarkly has done is essentially take a system like Google or Facebook has made in-house and bring this to the masses. With features like percentage rollouts, audit logging, and flag statuses, teams have complete control over features at scale. When you effectively separate business logic from code, you can build better software, faster without the risk

Don't forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!



 

Direct download: JPHE62_mixdown.mp3
Category:Patterns -- posted at: 9:38pm CST

It's not the "cool kid" anymore, but it sure is everywhere! If you ever generated an xml file from a java class (or have created a java class from a definition) you have been using Jaxb! And if you have used for some time, you can see that Jaxb sometimes works, and other times...well. Come take a listen and understand what's happening under the covers! And how you can make JAXB, oh well, "behave!".





A Big Thanks to LaunchDarkly for sponsoring our podcast! Feature flagging is easy, feature flag management is hard. What LaunchDarkly has done is essentially take a system like Google or Facebook has made in-house and bring this to the masses. With features like percentage rollouts, audit logging, and flag statuses, teams have complete control over features at scale. When you effectively separate business logic from code, you can build better software, faster without the risk

Don't forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!



Direct download: JPHE61_mixdown.mp3
Category:general -- posted at: 9:32am CST

So you have heard about it, and probably ran into it already. Docker is a super cool tech that let us create / manage and deploy applications (It is really what would come out if Devs and Ops decided to have a kid). Come hear how you can too master the art of Docker, and more importantly why is it so "accepted" and revered.



A Big Thanks to LaunchDarkly for sponsoring our podcast! Feature flagging is easy, feature flag management is hard. What LaunchDarkly has done is essentially take a system like Google or Facebook has made in-house and bring this to the masses. With features like percentage rollouts, audit logging, and flag statuses, teams have complete control over features at scale. When you effectively separate business logic from code, you can build better software, faster without the risk

Don't forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!

Direct download: JPHE60_mixdown_2.mp3
Category:general -- posted at: 12:01am CST

Yeah, today Streams might seem like old news, but you know what? It's worth revisiting and discovering what we didn't know from before. In this episode, Bob, Michael, and I come back to revisit Streams and share what was good, bad (and evil) of them. Including some great trivia on default implementations (a weird Java 8 feature). If you have started to use streams, but not sure if they make sense, or if you are about to dive into them, take a listen! The perspective is great!

Don't forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!

Direct download: JPHE59_mixdown.mp3
Category:general -- posted at: 1:51pm CST

So REST is just a webpage that returns JSON right? Well, no! Apparently I've been doing REST All wrong! It's much more rich and complete than what we are led to believe. Come join us with Bob Paulin as we talk what the real deal on REST is (and how to implement REST endpoints in Java) 

Don't forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap


Do you like the episodes? Want more? Help us out! Buy us a beer!

Direct download: JPHE58_mixdownmono.mp3
Category:general -- posted at: 3:55pm CST

Threadlocal is great! It can help you get out of sticky situations, and give you a great boost of performance and/or isolation. But with great tools comes great responsibility. Threadlocal can also be misused, and create memory leaks, or object corruption, and unknown sharing. So if you ever had seen one and never quite got what it does, or even if you were consider using one. Take a listen! And steer the people in the right way for the use of Threadlocal.

Also, Thanks Michael for pointing the issue with episode 55 and rebasing!

Don't forget to SUBSCRIBE to our cool new NewsCast!

Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!

Direct download: JPHE57.mp3
Category:general -- posted at: 4:56pm CST

So you heard about sun.misc.unsafe. Even if you are in certain circles you might have heard about that it was (almost) removed from Java 9. And if you were really paying attention you would've heard the cries of every major Java Framework to the news. While it didn't happen (Unsafe is still in Java 9, and possibly in Java 10+), we should dive into why is it so attractive, and creates such a divided opinion (JVM implementers want it gone. Performance nuts want it in)

Don't forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap



Do you like the episodes? Want more? Help us out! Buy us a beer!

Direct download: JPHE56.mp3
Category:general -- posted at: 9:38pm CST

Source Control, it's one of those tools that professionally we MUST need to master, and even if you are a hobbyist is a great thing to learn. In today's episode we cover one of the "hottest" source control system out there (Git). Created by Linus Torvals, it's quirky and weird when coming from Subversion (or gosh forbid, Visual Sourcesafe). But not to worry, if you have always been wondering about Git, and how it really works (or more importantly, how to use it), this is the episode to listen to!

Don't forget to SUBSCRIBE to our cool new NewsCast! Java Off Heap


Do you like the episodes? Want more? Help us out! Buy us a beer!

Direct download: JPHE55.mp3
Category:general -- posted at: 9:07pm CST

As a developer, we probably spend most of our time figuring out what went wrong. Debugging really an art, and we sometimes get intimidated by it. Well, if you ever found a bug that has trying to scare you, never fear! Bob and I walk through how to become a master debugger and just Zap those bugs away!

Don't forget to SUBSCRIBE to our NewsCast Java Off Heap






We thank Hazelcast for sponsoring the show! If you need a distributed implementation of the Java collections, no need to look further than Hazelcast!

Follow
Me
on
Twitter! (@fguime) (thanks!)

Man, summer is over! As our side of the earth tilts away from the sun, how about keeping us warm and comfy by sending us a beer?

Direct download: JPHE54.mp3
Category:general -- posted at: 9:29pm CST

You always hear about it, Spring MVC this, Spring MVC that, wondering what really happens under the hood. Well, wonder no more! In this episode we break up and analyze Spring MVC to the core, so that you know exactly what happens! Taking it from the last episode (JavaEE), we push forward to how modern software development happens today!

Don't forget to SUBSCRIBE to our NewsCast Java Off Heap


We thank Codeship for being a Sponsor of the show! Need Continuous Delivery made simple? Check Codeship.com! And use code JAVAPUB20 for a 20% discount! Now with Organizations!

We also thank Hazelcast for sponsoring the show! If you need a distributed implementation of the Java collections, no need to look further than Hazelcast!



Follow
Me
on
Twitter! (@fguime) (thanks!)

How about a summer shandy?

Direct download: JPHE53.mp3
Category:general -- posted at: 8:02am CST

So let's try to understand this Java EE World, shall we? Going from the very basic request, we unravel the magic that a Java EE Container creates. When we see the tricks behind the wall, it suddenly looks a lot like SE with some sprinkled web stuff on top! If you want to really know what happens every time you go to a browser and type http://, you should hear this podcast!

Don't forget to SUBSCRIBE to our NewsCast Java Off Heap

 


We thank Codeship for being a Sponsor of the show! Need Continuous Delivery made simple? Check Codeship.com! And use code JAVAPUB20 for a 20% discount!

 

We also thank Hazelcast for sponsoring the show! If you need a distributed implementation of the Java collections, no need to look further than Hazelcast!

Links



Follow
Me
on
Twitter! (@fguime) (thanks!)

Ok, so now is allergy season, and I heard beer with honey is good for you. Or better yet, beer made of honey (Mead!)

Direct download: JPHE52.mp3
Category:general -- posted at: 8:13pm CST

If you stepped into the Java EE world, you must have run into Spring. There is Spring XD, Spring Batch, Spring everything-under-the-sun. Sometimes we keep using it as a rut, but today we take a look at Spring (and Spring Core) with a new set of eyes and learn the real reason for Spring Beans. A great introduction if you never been exposed to Spring, and a even better reminder of why Spring Beans exists in the first place!

Don't forget to SUBSCRIBE to our NewsCast Java Off Heap


We thank Codeship for being a Sponsor of the show! Need Continuous Delivery made simple? Check Codeship.com! And use code JAVAPUB20 for a 20% discount!



Follow
Me
on
Twitter! (@fguime) (thanks!)

Ok, so now is allergy season, and I heard beer with honey is good for you. Or better yet, beer made of honey (Mead!)

Direct download: JPHE51.mp3
Category:general -- posted at: 3:09pm CST

You worked with them "all the time", whenever you know it or not! Classloaders are the little workers that make sure all the code is there and ready to be executed. Bob revisits this topics and goes into more detail on how the ClassLoading hierarchy works, when to watch out, and how different frameworks (OSGI, and Java EE containers) may be configured to load classes. If you have run into "ClassNotFound" exceptions, this can help you explain why!

Don't forget to SUBSCRIBE to our NewsCast Java Off Heap


We thank Codeship for being a Sponsor of the show! Need Continuous Delivery made simple? Check Codeship.com! And use code JAVAPUB20 for a 20% discount!



Follow
Me
on
Twitter! (@fguime) (thanks!)

Ok, so now is allergy season, and I heard beer with honey is good for you. Or better yet, beer made of honey (Mead!)

Direct download: JPHE50.mp3
Category:general -- posted at: 10:21pm CST

We know how important it is to mind your p's and q's when it comes to garbage (and garbage collection). We go deep into how Generational Garbage Collectors work including reference types (strong, weak, soft, phantom), also how Garbage Collection Pressure (GC Pressure) happens, and how can we create code that is friendly to Generational GCs. In all is a collection of Garbage-related issues that all of us should know. Come and take a listen!

Follow us! @fguime , and @bobpaulin

Subscribe to our new Podcast, JavaPubHouse's Off-Heap!
We cover the current tech news related to our famously popular language, and will give our two cents on what it means to us as Java Professionals. So come and subscribe!

 

Help us pay for bandwidth! (Or a beer!)

 

Questions, feedback or comments! (comments@javapubhouse.com)

Subscribe to our podcast!

Direct download: JPHE49.mp3
Category:Memory -- posted at: 7:31pm CST

Strike 1, Strike 2, and STRIKE 3! We cover the last of the build tools, GRADLE. It's hip, it's cool, it wears a cool leather jacket and rides around on a great motorcycle. The last of the build tools, it has learned from prior mistakes and has combined the best of Ant and Maven into one groovy package. Learn about the last of the build tools, and when to really use it!


We thank Codeship for being a Sponsor of the show! Need Continuous Delivery made simple? Check Codeship.com! And use code JAVAPUB20 for a 20% discount!



Follow
Me
on
Twitter! (@fguime) (thanks!)

It's now cold, oh, how I wish for a beer? (Have any?) beer...beer...beeeeeer.....:)

Direct download: JPHE48.mp3
Category:Tools/Libraries -- posted at: 10:46pm CST

So moving to a more recent build tool we cover probably one of the more popular one. Maven is now incredibly robust, and helps fixing what is known as Jar Hell. Have you ever used two libraries that depended on different versions of a logging framework? Well, Maven makes using tons of libraries incredibly easy. Come and take a listen!


We thank Codeship for being a Sponsor of the show! Need Continuous Delivery made simple? Check Codeship.com! And use code JAVAPUB20 for a 20% discount!



Follow
Me
on
Twitter! (@fguime) (thanks!)

It's now cold, oh, how I wish for a beer? (Have any?) beer...beer...beeeeeer.....:)

Direct download: JPHE47.mp3
Category:general -- posted at: 7:37pm CST

Episode 46. I've got ANTs in my build!

It's old, but as build tools go you will find apache Ant everywhere. Here we talk on how ant works and explore the build file. While it looks weird, there is nothing to fear! By the end of the episode you will be on your way to tackle any ANT build that have ever been thrown at you!


We thank Codeship for being a Sponsor of the show! Need Continuous Delivery made simple? Check Codeship.com!



Follow
Me
on
Twitter! (@fguime) (thanks!)

It's now cold, oh, how I wish for a beer? (Have any?) beer...beer...beeeeeer.....:)

Direct download: JPHE46.mp3
Category:Tools/Libraries -- posted at: 8:02pm CST

So we are covering what has been in the works for Java EE 8 (JSR-366). This Spec serves as an umbrella for other specs (features) of Java EE.

Some of it is very new, and some of it is already available for all of us to use. Come join me and Bob as we discuss the different things that are going to come down the pike. If you work on the EE space, you gotta listen to keep current! And if you are a J2SE guy like myself, there is still a lot that we can reuse from the JavaEE tools!

Follow
Me
on
Twitter! (@fguime) (thanks!)

It's now cold, oh, how I wish for a beer? (Have any?) beer...beer...beeeeeer.....:)

Direct download: JPHE45.mp3
Category:Java EE -- posted at: 7:30pm CST

This is our yearly pilmigrade to JavaOne, where we get to meet good old friends, create new memories, and best of all, geek out for an entire week on Java! We got to learn about the big things waiting for Java (the Internet of Things), and got to talk about how people are making a difference in Java (With the adopt-a-jsr program). We got to talk to great people like Peter Pilgrim(@peter_pilgrim), Marcel Offermans (@m4rr5), Heather VanCura (@jcp_org), Bruno Souza (@brjavaman), Mattias Karlsson (@matkar) and Geert Bevin (@gbevin). In all, is a great podcast to get a feel of what has been happening at J1! (Oh, and you gotta follow them!)

Follow us! @fguime , and @bobpaulin

Help us pay for bandwidth! (Or a beer!)

 

Questions, feedback or comments! (comments@javapubhouse.com)

Subscribe to our podcast!

 

Direct download: JPHJavaOne2014.mp3
Category:general -- posted at: 9:11pm CST

So it's all the rage, and things have been getting smaller and slimmer (think your first cell phone compared to today's), well, code is no different! Today we cover a trend on what is considered one of the better ways to scale, yet like everything else there are caveats. Bob is actually going to take us for a spin on creating our own MicroService by using Spring Boot!

Follow us! @fguime , and @bobpaulin

Help us pay for bandwidth! (Or a beer!)

 

Direct download: JPHE44.mp3
Category:JEE -- posted at: 6:41pm CST

So now we deep dive into what the "Real" advantages of Java 8 are :). The lambdas were just a head-fake (to quote Randy Pausch), the real meat is all the support that was brought because of lambdas, most importantly Streams. Streams are now pervasive in Java 8, and thanks to the way it was implemented is mostly backwards compatible! Oh boy, take a listen to start really tapping into the power of Lambdas and Java 8!

Follow us! @fguime , and @bobpaulin

Help us pay for bandwidth! (Or a beer!)

 

 

Questions, feedback or comments! (comments@javapubhouse.com)

Subscribe to our podcast!

 

Direct download: JPHE43.mp3
Category: -- posted at: 9:09pm CST

Lambdas... You have heard about it, it's like those celebrities that are everywhere (Tom Selleck). Well, is time to go and actually meet the great start. In this episode, me (Freddy) and Bob go deep into Lambdas, what they really are (are they magical?) and why would you want to use them. So Join in and let's listen to the most awaited feature of Java 8!

(And yes, the title is a reference to the "Revenge of the Nerds", how appropiate isn't it :)

Oracle Lambda Tutorial

Direct download: JPHE42.mp3
Category:Lambdas -- posted at: 10:03pm CST

And we are ramping up again! This is an exciting time to be developing in Java. With the advent of Java 8, lambdas, streams, Jigzaw and the Internet of Things, we are coming back big! In this episode we introduce our co-host Bob Paulin, and offer a glimpse of Java 8, Jigsaw, Streams, and OSGI Standard.

Follow
Me
on
Twitter! (@fguime)

And @Bobpaulin

 

Ah, beer, it's April, and we just finished taxes ($!)

Tweet, Tweet! (https://twitter.com/#!/fguime)


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

 

Direct download: JPHE41.mp3
Category:general -- posted at: 11:55pm CST

So you have programmed for a while, and may even never realized that you have been using them, but there are static methods (which in turn can create static classes), inner classes and static inner classes. Sometimes is hard to understand why or when to use these, but never fear! After listening to this episode you will never get an unexpected static surprise!


Follow
Me
on
Twitter! (@fguime) (thanks!)

It's now cold, oh, how I wish for a beer? (Have any?) beer...beer...beeeeeer.....:)

Tweet, Tweet! (https://twitter.com/#!/fguime)


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& amp;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



Direct download: JPHE40.mp3
Category:general -- posted at: 10:41pm CST

So, here's the deal, I went down from Chicago to JavaOne 2013, and took Bob Paulin along. There are sooo many sessions and such great content that it was really hard to know when to start. So we decided to do something cool! We set-up shop in the heart of JavaOne and grab unsuspecting speakers and ask them to spare a couple of minutes to tell us about their sessions (all awesomeness!). 

And the good news is that Oracle will make all of the presentations referred in this talk (and much more) available for everyone! Take a listen and prepare to be amazed by the awesome presenters of JavaOne.

 - Arun Gupta (@arungupta)

 - Bruno Souza (@brjavaman)

 - Danno Ferrin (@shemnon)

 - Hanz Dockter (@gradleware)

 - Charles Nutter (@headius)

 - Yoav Landman (@yoavlandman)

Direct download: JPHJavaOne.mp3
Category:general -- posted at: 9:21pm CST

It happens all the time, you are working and suddenly you need to database an object. And maybe you have a fancy O/R Mapper or something like that, but we seldomly ask 'do we really need this in a relational format?'. There are actual alternatives (from byte serialization to xml, to, oh, my, NoSql databases). Here we explore the reasons why you may want to skip the Object Relational mapping and concentrate more on ease of development!

Follow
Me
on
Twitter! (@fguime)(thanks!)

 

Hey it's Freaking HOT outside! beer...beer...beeeeeer.....:)


Tweet, Tweet! (https://twitter.com/#!/fguime)


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

Direct download: JPHE39.mp3
Category:general -- posted at: 8:30pm CST

So we hear about HyperThreading and how it is sooo cool, well, it is and it isn't. If you are really trying to squeeze performance out of your application HyperThreading might not be what you're looking for. There are so many other things that happens at the CPU level that have so weird names (like Thread Thrashing, 'say whaaaat?'). If you are really serious on squeezing every worthy CPU cycle of your app (or if you're interesting on what really really goes under the hood) take a listen! (ah! and treat me a beer, if you like what you hear!)

Follow
Me
on
Twitter! (@fguime)(thanks!)

 

Hey it's ALMOST SUMMER! and I would love to get a beer :)


Tweet, Tweet! (https://twitter.com/#!/fguime)


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

Direct download: JPHE38.mp3
Category:Multithreading -- posted at: 9:02pm CST

Have you ever wonder how bit masking work (or what is that?) and why do you need it? Or why a tree structure exists? (or what is breadth first vs depth first), or what are game trees? We put our Computer Science hat and go "depth first" in some fundamental compsci concepts, and, more importantly their utility, ending with Game trees (and they are not only used for games)!

Follow
Me
on
Twitter! (@fguime)(thanks!)

 

Hey it's SPRING! and I would love to get a beer :)


Tweet, Tweet! (https://twitter.com/#!/fguime)


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

Direct download: JPHE37.mp3
Category:Patterns -- posted at: 9:03pm CST

This is a presentation I did for the Chicago Java Users Group on the topic of multithreading. There are some solid foundations in here to start tackling multithreading programming. Some of it might've been already been seen in depth from our other episodes, but in all, it has good foundations for anyone that does multithreading programming.

Follow
Me
on
Twitter! (@fguime)(thanks!)

Hey it's winter (and not too many reasons to be outside, so might as well stay home and drink a few!) If you like what you hear, treat me a beer ! :) (It's the Java pub house after all :) 

Tweet, Tweet! (https://twitter.com/#!/fguime)


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)

Direct download: JPHE36.mp3
Category:Multithreading -- posted at: 1:52pm CST

You remember recursion right? that ugly, confusing thing they made you do either on CS-300, or at job interviews. Have you ever wondered how to make it safe and right? and why do we really use recursion? In this episode we go into proper recursion programming (and lose the fear of making it wrong), and understand why stacks get filled with it, and what problems do they really solve (answer, not many).

In addition we talk about the nature of Double objects, vs double the primitive (And why it is so hard to do == comparisons in doubles), plus some little known things about Strings (like interning). In all it has a little bit for everyone, so take a listen!

Follow
Me
on
Twitter! (@fguime)(thanks!)

And if you like what you hear, treat me a beer!

 

Hey it's winter (and not too many reasons to be outside, so might as well stay home and drink a few!) If you like what you hear, treat me a beer ! :) (It's the Java pub house after all :)



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

Direct download: JPHE35.mp3
Category:general -- posted at: 10:09am CST

Episode 34. New Year's (2013) Resolution! Less bugs and more coverage! ----

Ok, so we all celebrated (but may not remember) the end of the old year and the beginning of a new year! This is a time for starting new things, and trying to be a little better. How about starting by looking at our code and squish some bugs! By using findbugs we can easily test for the 'duh' (and some not so duh) bugs quickly by looking and automatically analyzing our code. After adding Findbugs, we can then add Emma, which will look and measure our unit test code coverage (if you are into such a thing). These two tools are like the Richard Simmons that let us lose the unwanted bug weight in this new year!

If you just joined us, remember to follow me on Twitter! (@fguime)

Beer of the Episode: Anchor Brewing's Liberty Ale

|~|P |~|P |~|P |~|P |~|P |~|P |~|P Anchor Brewing's Liberty Ale
|_|  |_|  |_|  |_|  |_|  |_|  |_|

 

Hey it's winter (and not too many reasons to be outside, so might as well stay home and drink a few!) If you like what you hear, treat me a beer ! :) (It's the Java pub house after all :)


|~|P |~|P |~|P |~|P |~|P |~|P |~|P Anchor Brewing's Liberty Ale
|_|  |_|  |_|  |_|  |_|  |_|  |_|


Tweet, Tweet! (https://twitter.com/#!/fguime)
Findbugs
Findbugs Ant (check out the excludeFilter attribute to include/exclude stuff
Emma
Emma User's Guide (2.3 is what we discussed in the podcast!)

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

Direct download: JPHE34.mp3
Category:Tools/Libraries -- posted at: 7:38pm CST

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
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

Direct download: JPHE33.mp3
Category:Tools/Libraries -- posted at: 10:35pm CST


Shout out to the Chicago Java User's Group! Glad to be part of the Board!

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!




Tweet, Tweet! (https://twitter.com/#!/fguime)
Java 7 Features
Compatibility issues (At least glance at this section!)
Oracle session: CON4153 - Migrating Real-World Million-Line Code Bases to Java 7: Lessons Learned

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

Direct download: JPHE32.mp3
Category:general -- posted at: 3:47pm CST


Big shout-out to everyone I met at JavaOne (including some avid podcast listeners!). Thanks for listening and for a great time down at JavaOne! Don't worry, we will be sharing all the stuff I learned on new episodes of the podcast.

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!

Beer of the Episode: Still hung-over from JavaOne's big concert (Go Pearl Jam!)


Tweet, Tweet! (https://twitter.com/#!/fguime)
Oracle Java Generics (what we're following on this podcast) http://docs.oracle.com/javase/tutorial/java/generics/
Dr Venkat presentation on Generics (Click on the "Media" at the right side for the presentation, a great presentation
Agile Developer (Dr Venkat's Must-check website and blog
Angelika Langer FAQ on Generics

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

Direct download: JPHE31.mp3
Category:general -- posted at: 11:14pm CST

Episode 30. I always thought Generics were as good as brand name Erasers (Java Generics part 1) ----
Hi there! Finally back on a (hopefully) standard schedule. I have been moving a house with three kids, two cats, one wife, one dog, and one grandma (they are heavy!, just kidding!) and just found the box with the podcast equipment! we hit the ground running with Generics. What are the benefits (and potential pitfalls) of Generics? Why do we even need them at all? The syntax looks pretty confusing, but with some Jedi Mind tricks one can actually start seeing how they work. If you use Generics (Almost everyone does :)) you should take a listen!

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!

Beer of the Episode: No beer, just coffee (it's hard to move a whole house



Tweet, Tweet! (https://twitter.com/#!/fguime)
Oracle Java Generics (what we're following on this podcast) http://docs.oracle.com/javase/tutorial/java/generics/

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


Direct download: JPHE30.mp3
Category:general -- posted at: 12:33pm CST

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
|~|P |~|P |~|P |~|P |~|P |~|P |~|P 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
|~|P |~|P |~|P |~|P |~|P |~|P |~|P Leinenkugel's Sunset Wheat
|_|  |_|  |_|  |_|  |_|  |_|  |_|

 

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)
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

Direct download: JPHE29.mp3
Category:general -- posted at: 10:11pm CST

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 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)
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

Direct download: JPHE28.mp3
Category:Tools/Libraries -- posted at: 7:51pm CST

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 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)
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

Direct download: JPHE27.mp3
Category:Tools/Libraries -- posted at: 5:39pm CST

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)
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

Direct download: JPHE26.mp3
Category:general -- posted at: 11:06pm CST

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
Create dynamic applications with javax.tools http://www.ibm.com/developerworks/java/library/j-jcomp/index.html
URLClassLoaders (loads .class files generatedhttp://docs.oracle.com/javase/6/docs/api/java/net/URLClassLoader.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)
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

Direct download: JPHE25.mp3
Category:general -- posted at: 11:01pm CST

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
Don't make me think http://www.amazon.com/Dont-Make-Me-Think-Usability/dp/0321344758/ref=sr_1_1?s=books&ie=UTF8&qid=1336346454&sr=1-1

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

Direct download: JPHE24.mp3
Category:Usability -- posted at: 6:26pm CST

It always starts when you do your first Thread.sleep(). Why do I have to check for InterruptedException? is it serious? why do I have to catch it? We start with answering these questions and step down the rabbit hole to discover the inner workings of Wait/Notify (and what the IllegalMonitorStateException really means). If you ever have to work with more than one thread (who doesn't nowadays?) take a listen! You'll be notify()ed of your success!

Twitter, twitter, twitter, twitter!(https://twitter.com/#!/fguime)

Wait/Notify http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html#wait()
Concurrency Utilities http://java.sun.com/developer/technicalArticles/J2SE/concurrency/
Thread description from the JVM Specshttp://docs.oracle.com/javase/specs/jvms/se5.0/html/Threads.doc.html#22488

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

Direct download: JPHE23.mp3
Category:Multithreading -- posted at: 4:43pm CST

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

In this podcast we talk about the Model-View-Controller pattern (and is prettier cousin, the Model-View-Presenter), and go over how to go about implementing the MVC/MVP Pattern (really, what to instantiate first, and how to wire the whole thing). We also cover the caveats of implementing the MVC, including escaped references in construction, and making the view alway update from the model state. Lastly we talk about where to store view information (such as window size and colors, etc. Hint: not in the model). In all, if you ever needed to touch MVC code, this will help you light the path to awesome interaction! (and ease of unit testing)

http://googletesting.blogspot.com/2009/02/with-all-sport-drug-scandals-of-late.html(Google reference to the MVP 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: JPHE12.mp3
Category:Patterns -- posted at: 1:00am CST

In this podcast we air our first question/feedback from our listener and dive a little into it (related to Dependency Injection). We also talk about how to create Thread Safe objects (There is the easy way, and the hard way). And at last! we have a Google group where you can add/post comments and open discussions.

Our new Google Groups
http://groups.google.com/group/javapubhouse/

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)

Direct download: JPHE11.mp3
Category:Multithreading -- posted at: 8:40pm CST

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)

Direct download: JPHE10.mp3
Category:Testing -- posted at: 7:57pm CST

In this episode we talk about the Decorator pattern and how it is applied. We cover a couple of caveats (especially when combined with the Observer pattern) and learn how to not be afraid of its verboseness. In all, it's the season of decorating, so let's decorate!

Questions, feedback or comments! comments@javapubhouse.com

Subscribe to our podcast!
ITunes link
Java 7 Recipes book!

Direct download: JPHE9.mp3
Category:Patterns -- posted at: 7:56pm CST

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://www.eclipse.org/aspectj/doc/next/quick5.pdf

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

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

Direct download: JPHE8.mp3
Category:general -- posted at: 3:00pm CST

In this episode we talk about Threads and Threading, the difference between Daemon and User Threads, and why changing priorities is not for the weak of heart. Also we cover Swing's golden Threading rule (with the Event Dispatching Thread). If you ever typed new Thread(), or if you heard to be careful about Swing and Threading, this episode is for you!

Direct download: JPHE7.mp3
Category:Multithreading -- posted at: 9:43pm CST

In this week's podcast we talk about Design Patterns (and the Grand Dads of the Software Patterns, the Gang-of-four), and dive into our first design pattern (of many), the Observer pattern. We discussed how to implemented (within Java), and went to describe its use in Java Swing, and why anonymous inner classes for Listeners doesn't create memory leaks (most of the time anyways). In all a great introduction to a first pattern (see what they are all about!)

Direct download: JPHE6.mp3
Category:Patterns -- posted at: 5:40pm CST

In this podcast we dive into the age-old producer and consumer problem, talked about the different aspects of it (what does it really solve?), and explain the difference between throughput vs latency. Lastly we discuss the ThreadPoolExecutor and how to fine tune it for your particular project needs!

Direct download: JPHE5.mp3
Category:Multithreading -- posted at: 8:33pm CST

In this episode we describe the most used collections in the Java framework, and how can they help you out. We also talk about maps (and the importance of immutable keys), and the equals/hashcode contract (why are these anyways? :). Finally we discuss how to safely access these collections/maps from different threads (and cover the check-then-act operations in maps). If you used a map, or ever got a ConcurrentModificationException, this episode is for you!

Direct download: JPHE4.mp3
Category:Multithreading -- posted at: 9:12pm CST

This episode goes deep into memory in Java, understanding how memory leaks happen (and how to solve them!), also how to design to avoid memory leaks, weak and soft references, and how the Garbage collector works (Eden, Tenured, Perm). This podcast will help everyone that needs to take care of a memory leak!

Kudos to VisualVM and VisualGC!

Direct download: JPHE3.mp3
Category:Memory -- posted at: 9:08pm CST

In this episode of Java pub house, we talk about Deadlocks, livelocks (and other spooky things). Most importantly we talk on how to spot them (using jstack, or visualvm), and how to program defensively against them. We also talk about escaped locks (the source of most deadlocks), and the wait/notify language construct. Finally we describe the unfairness of the lock (locks are not "fair" by default), and why is it so.

Direct download: JPHE2.mp3
Category:general -- posted at: 12:04pm CST

On this Episode, we talk about the keyword "volatile", and what does it really mean. Even if you are a multithreading guru, this chapter goes in deep of the different things that volatile protects you from, including L2 caches and code re-ordering. We also cover the use of synchronized, and why, even though is convenient, it might create more headache than it actually solves.

Direct download: JavaPubHouseEpisode1b.mp3
Category:Multithreading -- posted at: 10:46am CST

1