Freddy Guime

Episode 50. How many Classes would a ClassLoader Load if the ClassLoader was Loading the parent Classes?

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

Episode 49. Don’t put Pressure on me! (About Generational Garbage, and Pressures)

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!

Episode 48. Let’s get Groovy with GRADLE in JAVA!

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…..:)

Episode 47. Stop. Maven Time!

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…..:)

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…..:)

Episode 45. Java EE coming up! What’s cooking for EE?

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!

 

JavaOne 2014. Wow, I see a lot of Things! with Internet! And Music! And Agile!

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

 

Episode 44. Let’s show MicroServices some luv!

So it’s all the rage, and things have been getting smaller and slimmer (think your first cell phone), 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!)

 

Episode 43. Don’t cross the Streams (Streams in Java 8)

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!

 

Homage to Basic

It’s been a while…it has a sense of the old. You see it, but when you see the Beginner’s All Purpose Symbolic Instruction Code, it transforms everything around it. The letters become big and blocky, the monitor becomes concave, and all computers are grey. The keyboard feels heavy and has a personality, oh how I yearn for the times that Basic brings.

Like your first fling, you can’t never forget it. I would say it hasn’t aged as well as I would’ve liked it to, but it will forever a memory on most developers. Ah these younglings who have never experience such an era. It’s not even the language but what it meant to program back in the 80 and 90s.

…You could really understand a computer…

There was so little code between you and the metal. A single-task OS (sometimes not even that), a bunch of interrupts, a CPU that could only process an instruction at a time, back when 640k was too much. You could actually directly interface with the serial port and send bits (I still remember being ecstatic when I managed to turn on a single LED using one of the bits for the Parallel port by “printing” from basic to LPT1. It was a time of discovery, of wonderment and amazement. Of course that’s still happening, but let me indulge in the old-curmudgeon “Back-in-my-day…”

… You really really understood a computer…

Fat32, bootloaders, sectors, all of it. Today is very very hard to know what happens on the CPU. I work on an area where understanding the complexities and intricancies of the hardware pays large dividends. I’m talking about CPU L2 cache lining, evictions, branch predictions, concurrency, Main memory access semantics vs GPUs. And I claim that I don’t know today’s architecture like I knew the 8086 (or the Apple II c) for that matter. And don’t even let me get started with USB vs Serials and all the billions lines of code between me and those pesky transistors.

…You really really manipulated a computer with BASIC…

And it was great! You didn’t have to learn assembly to make a computer sing. I remember installing the Speech Synthesis card for the Apple 2 and making it read aloud what I typed. What a thrill that was. There was no software for it. You had to program it yourself, the manual came with instructions on what were the commands to send to what memory addresses.

I was untrained and unrefined and plain when I started programming BASIC. If anyone would looked at that code today, they would scream. It would have been the perfect example of many things that shouldn’t be done.

I was 9. and I was a Deity

In the christening that all developers go to, I still remember writing

10 print “hello world”

and then I added my first hack

20 goto 10

I was hooked

My flavor was the apple II c basic, and how I was so excited. Only 5 1/4 floppies, no hard drive. Terminal green screen, and not a care in the world. I would create silly things, a birthday card maker that printed text in those never-ending paper reams. The tick-tack of the dot matrix printer head still lodged in my memory. I remember creating my first bootable program…it was a matter of renaming a .bas a certain way, Android still does the same thing today 😉 and making it list the content of the current floppy drive at boot up.

I remember discovering how to center things on the screen…there was no internet back then, and books about programming in my neck of the woods were hard to get. How excited I was when I discover you needed to take the length of what you wanted to print, divide it by two, and then subtract it from the (halved) number of characters that you could fit in a line. Then you printed that # of spaces, and tagged what text you wanted. It was my first empirical algorithm.

I remember how I tried in that tight REPL until I got it.

Ah, those days.

When I moved to the x86, what a change. It had color, it had a better basic, it had peek and poke, and bload and bsave, and a hard drive. It has a shell, and TSR programs. Oh the days. I remember how I started creating more and more unrefined, crufty, yet cool as hell programs. The first one was simply just changing the Video Mode, oh lusty CGA, and then putting pixels on the screen. I finally learned about GOSUB.

My biggest memories were from when I decided to take my first consulting gig. I created a BASIC program that would show the different maps of my native country (Ecuador). I remember mapping every single line on the screen with line commands and point commands. I didn’t looked far ahead as to use files or image formats. It was all raw hand-coded BASIC.

I was 14

I remember how I panicked because the original basic could only hold so much memory, and my subroutine to draw one last map put it over the top. I couldn’t save nor load it. There was no github, no svn, nothing. I freaked out for twenty minutes until I realized that I had made a copy for a demo the day before in a 3 1/2 inch floppy. I lost a day’s worth of work, but I was so relieved it didn’t matter.

I remember learning empirically how to create sprites. I have so much flicker since I didn’t know nor understood about double buffering, yet it was my first video game. A sprite moved, and you have to shoot it down. Spacebar fired the missile, and the pattern of the enemy was so predictable. Yet I showed to anyone who would peek in my room. Those days I would eat lunch next to my computer while I tinkered in basic. It took a very persistent mom to drag me to the outside world and get sunlight.

I also remember creating what could be the predecessor of music-typing. I remember learning the piano and sometimes not feeling the pattern the music sheet was telling me to play. So I created an actual graphic music sheet composer that would play on that single-tone speaker, it even have legattos, and “:” and tempo. It was the most complex piece of code I created… Once I typed the last command I didn’t save, went for lunch, and then got distracted. When I came back my sister has rebooted the computer (ok it wasn’t mine, it was a shared computer for the whole family), and I lost it all…

Those are the experiences that shape you…

I was so angry, for the whole of two hours. Fuming, thinking this is impossible, I can’t do it again. But then remembering the end-result that I achieved once. It was still there, hinting at the greatness that I enjoyed for 20 minutes. it was possible to do it again.

And I did.

It took almost 6 hours of continuous programming (my first hack-a-thon I guess). But it was greater than my original one…how couldn’t it be, I discovered what I was doing wrong in the first one, how to make things simpler. And I immediately saved three copies, and learned the one shortcut that I will always from then on take the time to learn. F5, Alt-F-S, and today Ctrl-S. I typed the longest song that I needed to play for my piano class. I showed to anyone with a pair of ears that would listen. How proud I was. It was me, it was the computer playing for me, what I told it to. I made it do that.

Is so different than today. I stayed next to my computer to create video games, while today most kids stay next to their computer to play them (I know, I’m about to say ‘getoffmylawn’).

Basic was my first love. The reason that I became a Computer Scientist, there was just no other way. Before that day I remember saying “I want to be an Architect”, or a “Mechanical Engineer”, a Business Owner, I played with Legos, played with the Atari, played the piano…but that Apple II C and Basic sealed my fate. I felt like a deity. A Puppet Master that could do anything I wanted. I can change things, and I learned how to change things. It was so intoxicating, so simple back then. There was no object orientation, no dependency inversion, no unit tests, no databases and ODBC drivers, no IDE, no shell, no design patterns, no mouse, no Path (or classpaths) no installers or configuration settings, nor registries, there was nothing but you and the pureness of the machine in front of you…

It’s been 26 years since my first line of code was written, and when I close my eyes I do miss Basic. A clueless girlfriend, always meaning well, but get tangled so quickly in those goto statements, and really didn’t have too much to work with. I remember when I dumped her for C++. Such a sleazy, sexy and screwed-up language. I guess a guy is always interested in bad (language) girls…

I find it funny how I settled for the down-to-earth Java spouse, C++ was really wrecking my life. Still my first love will always be there and be special to me.

Happy 50th Birthday BASIC.

Freddy