Category Archives: book

“Learning Spring Boot” is available for pre-order! /cc @JavaMUG @NashvilleJUG

3021OS_mockupcover_normalThe day is here! You can now pre-order your copy of Learning Spring Boot!

At this very moment, I am working with the finishing editors to polish up this book and get it uploaded to the printers. It should be out SOON! I’m naturally eager to get the word out. But it isn’t just about money. Spring Boot is something I’m incredibly passionate about. In fact, I have been working for the past five weeks on another feature, auto-configuration of Spring Security OAuth2.

Suffice it to say, I can’t wait to see it ship. I just hope you are as eager to get your copy as I am!

Book Review: “Vaetra Unveiled” by @DanielRMarvello

VaetraUnveiledCover_tnI just finished Vaetra Unveiled by Daniel Marvello. It was a delightful read! I wanted to write up my reactions to it.

Vaetra Unveiled is a classic swords-and-sorcery novel. There is action, suspense, and charm amongst the characters. Daniel does a great job at world building in the sense that I could imagine everywhere the story took me without getting bogged down in it.

For the record, I have also read The Hobbit and Lord of the Rings, paragons of high fantasy. Sometimes Tolkien’s world building, or rather culture/history/mythology building would overload me, causing me to sometimes skip over songs and other material.

I enjoyed seeing how magic was presented. Daniel’s take on magic is quite interesting. I promise not to give anything away. The main character, Jaylan Forester, in his various pursuits, begins to encounter magic, something he isn’t used to dealing with. He doesn’t understand it, let alone how it works. As he tries to solve the problem at hand, he discovers his own gifts in that arena. I won’t say more than that, but it was fun adventuring along with Jaylan as he tries to figure out the rules of vaetra.

Having read Doctor Strange comic books for years, I rather enjoyed seeing that vaetra isn’t just made up on a whim. Instead, vaetra appears to have a real set of rules that empower and constrain who can do what. No one has infinite power, and the various characters have to work together to free some innocent “mundanes”.

Which leads me to another good point. I enjoyed that there was real plot as well. As George Lucas stated, the point is to tell a story, not show off the set that was built. There were a couple moments along the way where I felt Jaylan was a bit dimwitted and I thought not “getting it” as fast as I thought he would. But it was only a couple. For what turns out to NOT be a 500-page tome of fantasy, it was nice that I could read it with the Kindle app on my iPhone in about five days. It certainly whets my appetite to the read the rest of the series.

The only con I can think of is that sometimes Jaylan feels a bit simplistic. Perhaps a bit too much of the good side. This may be my own bias after having read the first ten Jack Reacher novels, where when Reacher sees something wrong, he dispenses hard core justice. Jaylan is nothing of the kind. Perhaps a little more nitty gritty and some tougher decisions would strengthen Jaylan’s character. But at the end of the day, his character was believable.

About Daniel Marvello

Daniel has been of great assistance to me. I discovered his blog while working on Python Testing Cookbook. My desire to pick up and write the fictional novel i had started 20 years ago was rekindled as I helped my wife polish her trade novel. Googling about structure and tips, I found Daniel’s article on the details of a beat sheet. Suffice it to say, I wooed him to beta read Darklight. As a beta reader, I felt like he provided me top quality feedback in grammar, diction, and POV.

The side effect is that I developed a desire to read his own craft. A) I enjoy a good story. B) Could he really write fiction analogous to the critique he provided me? C) For a Kindle book, it only cost $3. D) Since my cheapskate days are behind me, I honestly like to support other people that seem to deserve it. I’m glad I did!

According to @PacktPub: “Learning @SpringBoot” slated for release at end of November /cc @JavaMUG

learning-spring-boot-mock-coverGreetings readers!

I have hammering my editor to give me an updated plan for when Learning Spring Boot is expected to come out. They had been hinting that it would be at the end of October. Hearing nothing after turning in the manuscript, I finally got word that it is expected to be ready to ship at the end of November.

That wasn’t the answer I was looking for! I was hoping for something more like “a couple weeks from now”. Sadly, that’s not the case.

I have also inquired as to when it will be listed on their website. They indicate that within two weeks of release is when they usually post new books. I immediately responded, asking if there was anyway to accelerate that. I expressed the fact that LOTS of people tracking my blog as well as my twitter feed have expressed interest in pre-ordering. and would probably fill up their order queues today if it was possible.

Are you ready to order a copy? Get on twitter and shout out to @PacktPub that you want to go ahead and place your order for “Learning @SpringBoot”! Who knows? Perhaps that will push them to make an exception. 🙂

In the meantime, I promise to keep you all informed as things pan out.


Beneath every great forest lies something even greater. See #SpringBoot book cover from @PacktPub

learning-spring-boot-mock-coverI recently got confirmation of the cover image of “Learning Spring Boot”. I don’t have the official cover, but I created a mock up based on the stock image.

I’m really excited about this. About a month ago, Packt sent me a collection of stock images to pick from, and this one was PERFECT. To top it off, I just read Dave Syer’s drafted foreword, and it only solidifies my feelings. (I don’t want to steal the thunder. You’ll have to get the book to read his epic opening words.)

You see, this image shows a great forest. Tall trees. Beautiful beams of light shining through. And just the right amount of mystic charm to please the eye. And yet, a forest’s greatest strength lies beneath it. No forest can stand strong unless it has a strong set of roots that have grown and solidified over the years. A deep undergrowth of roots that supplies the nutrients.

That’s what Spring Boot is. It is a strong growth of patterns, discoveries, who knows how many hours of real world experience, and more. This can be seen by those that begin to use it. But it wouldn’t exist today if it wasn’t for the strong foundation of the Spring Framework. Ten years ago, Spring Boot was impossible. Spring didn’t exist yet.

But today, after ten years of development, the Spring Framework is the de facto standard for application development on the JVM. I remember when the 10,000th issue was opened against the Spring Framework. It was a landmark event. Tens of thousands of contributions to the project. Thousands of committers. Hundreds of pages of polished, detailed documentation. All for a project that has been open source from day one. It truly represents a community effort to create something greater.

Many conferences are conducted every year around the world to discuss Spring. Millions of copies have been downloaded and permeated the Java development space. People chat back and forth in hallways, on chat channels, and at JUG meetings about “the Spring way”.

And as I remember from the first presentation I saw from Graeme Rocher on Grails, his bottom line comment was “Grails IS Spring”. Grails didn’t sit on top of Spring. Grails didn’t use Spring. Grails WAS Spring.

Well Spring Boot can say the same. Just visit, and you’ll find 60+ guides showing “the Spring way” of solving common problems. Guess what; almost all of them use Spring Boot. Not because it’s “the product to sell”. Nope. The people that wrote those guides (including me) LOOOOOOVED using Spring Boot to solve these problems and so many more. And that is what got me so fired up that I had to write another book after having been burned out over three years ago.

Stay tuned!

“Learning #SpringBoot” enters finishing stage with @PacktPub

packt-logoGreetings readers,

Having just sent off the last rewrites, my book has entered the finishing stage. This is the point where my publisher begins to turn the crank on converting my LibreOffice manuscript into a printable tome. They also sell e-copies and even have a subscription library model. You can pay a flat rate and essentially access any book they have, including mine when it becomes available. My goal is to post a link the moment I see at available for ordering.

So what’s in this book?

For those that haven’t kept up, here is a quick listing of the chapter titles for Learning Spring Boot:

  • Chapter 1, Quick Start with Groovy
  • Chapter 2, Quick Start with Java
  • Chapter 3, Debugging and Managing Your App
  • Chapter 4, Accessing Data with Spring Boot
  • Chapter 5, Securing Your App with Spring Boot

First of all, this book is in NO WAY comprehensive. To cover everything Spring Boot does would require multiple titles. People that construe Spring Boot as being the solution to über JARs or just embedded servlet containers are missing the point. Spring Boot is an entirely new approach to app development that polishes up rough edges of Java that have been around for years. In the paraphrased words of Andrew Glover at this year’s SpringOne keynote, “Spring Boot has made Java fun again!”

This book attacks several of these key areas from the context of helping everyday developers do their job. When you sit down to build an app, you want to start writing functional code on Day One, not get buried in architectural layers and UML diagrams, right?

Spring Boot is designed from the ground up to write solid apps using Spring that you can carry all the way to the server room. And it comes packed with production-grade services you’ll need to maintain it over the life of the project.

platform-spring-bootWhy can’t I just read the reference docs?

A good question that authors must always be ready to answer when pitching their idea or trying to sell copies later on is this: “Why would I buy your book?”

I won’t lie to you. Spring Boot’s reference doc is quite stunning. I have seen many ref docs, and have always found Spring docs to historically have some of the most in depth material I can find. MANY open source projects come in light on this front. However, it’s become tricky to have lots of depth without getting lost. Spring Boot’s ref docs actually do a fantastic job of diving in, and yet still giving you paths to other areas you might need.

Even then, when its time to sit down and start producing apps, you want examples and demos and a handful “this is the best way to get started.” I have extracted material from the reference docs, but tried to link together a chain of useful concepts that can get you in motion the first week you start a new project. These concepts aren’t always arranged in the reference docs in the same order you might be using them to crank out your e-commerce site. (If they were, it would be a tutorial, right?)

This book is also filled with tips. Small sections all over the place that try to answer the question, “Why did you do that right there?” No decision is ever 100% right. Things depend on the context, so I fee it’s important to supply a context for why you may choose one path or another.

Ideally, you should be able to read this book cover-to-cover, and then when you visit the reference docs, use them with even greater effectiveness.

Are there other books out there?

Right now, no. Nothing. Nada. Zip. You can’t find another book on Spring Boot. My publisher and I worked hard to get this one to market as fast as possible. Why? Because Spring Boot is hot! The session at least year’s SpringOne conference was packed to the hilt. At this year’s SpringOne (a week ago) almost every talk wove in detail about Spring Boot even including Grails plan to rewrite itself on top of Boot with their 3.0 release.

People are hungry for this, so we hammered out an outline that would cover the arguably most popular topics people are clamoring to read about.

I have other colleagues and friends in the software industry that have been talking about book deals. One reached out to me to write a proposal, but I had to politely decline because they asked me the week after I had signed my contract.

Are other books coming? For sure. I’m sure many publishers are working up deals, consulting existing authors, or ears open for new proposals on the topic. But no one is going to have anything available next month.

Big shout out to @altfatterz @geowarin @furikuri @royclarkson @phillip_webb and @rob_winch as I wrap up “Learning #SpringBoot”

polishing-learning-spring-bootI just shipped out my last rewrite for Learning Spring Boot. I am TIRED. The past five nights, I have stayed up later than midnight to get in last edits and incorporate feedback from my reviewers.

These guys are really talented. I couldn’t ask for a more solid team to pick over my material and offer substantial feedback. It can be humbling at times. But the reward is tremendous. I really hope this book meets a lot of people’s needs.

I have overheard those not quite familiar with Spring Boot try to capture it in a single statement. “This is Dropwizard.” “This is a web app in 100 lines or less.”

Sorry, but Spring Boot is WAY more than that. My book tries to cover quite a bit of ground, but as I concluded in my closing sentence, “This is only the beginning.” Spring Boot tackles LOTS of things, and makes them easier. And it’s just getting started. Frankly, I’m not sure what it will look like a few short years from now. But for the time being, I’m very satisfied at getting this written and edited. I hope you enjoy it.

Despite being buried at #s2gx, managed to submit chapter 1 rewrite for “Learning #SpringBoot” to @PacktPub

learning_spring_boot_ch1_odtThere was a mix-up of communications with my editor. I told her that I was out this week. But it appears that just won’t cut it. Packt Pub is FAST! Thankfully, I invested time during last night’s flight to work on Chapter 2 – Quick Start with Java. This morning, after fixing up Spring-a-Gram, I was able to polish up and submit the rewrite for Chapter 1 – Quick Start with Groovy.

Word is that they’ll actually have this book out sometime in October. Wow! Everyone I talk to is stunned at the speed this book is being cranked out. I have become very glad that my other TWO talks I submitted for SpringOne did NOT get approved! When would I have time considering I still have to prep slides.

As a side note, I also SUPER glad to have used asciidoctor. It made edits super, super, SUPER simple to deploy. Stay tuned!

That’s a wrap! “Learning #SpringBoot” ‘s 1st draft has been submitted to @PacktPub

learning-spring-boot-ch-5Last night, I worked from 9:30pm until 2am on Learning Spring Boot. Whew! It was tough work, but I needed to pull it across the finish line. I had the code lined up quite nicely for the entire chapter. I simply need to tell the story of how all this stuff worked together.

As I’ve said before, security by itself is complicated. There is a lot of fine details involved. When someone first starts reading the reference docs of Spring Security, it can get real intimidating real fast. That isn’t Spring Security’s fault. It’s inherent to the nature of locking something down except for the right people in the right context with the right protections. “right” and “wrong” can be very hard to define in just a couple sentences.

I tried to walk through what is happening, provide a little “why is this happening” and finally leave some links for those that want to dig a little deeper and understand the incredibly complex stuff that Spring Security is ACTUALLY doing for them. The protocols Spring Security picks up and handles are quite complex, and when you get to the end, I hope the reader has a strong appreciation for how simple Spring Security has made it to give the developer control while still protecting system integrity.

With all that said, I breathed a big “whew!” as I bundled up this chapter’s manuscript and emailed it over to my editor at Packt. I have already started receiving feedback on the other chapters from my review team. These people are sharp! They really know Spring and have spotted some sloppy mistakes on my part. After I parse all their comments, this should be one well honed book!

asciidoctorI also have truly enjoyed the development process of this book. Writing it in asciidoctor has let me focus 95% of my effort on the content. I work with an IDE open so I can tweak the code, run it, tweak again, and then commit the changes. My manuscript simply includes code files and fragments, and I layer it with some prose to explain what is happening and why it’s happening. Here and there I put tips and notes to answer questions I can foresee.

Then on the command line, I constantly regenerate an HTML rendering of the book. I read through it in chunks and polish it up. After all is done, I finally open up the LibreOffice output and and walk through to fine tune bits of code that overrun the width of the page. By staying away from the word processor as much as possibly, the integrity of this book’s content has been kept at what I feel is tip-top shape.

Chapter 5 of Learning #SpringBoot almost done!

This Thursday I’ll be submitting the first draft for Chapter 5 – Securing Your App with Spring Boot inside Learning Spring Boot. If you have no experience with Spring Security, then I hope you’ll enjoy this chapter. Security by itself is a complex topic. There is no single thing that instantly makes your entire application secure from everything.

Spring Security is a powerful application level security tool. You get very detailed control and can customize to your heart’s content. But as is often the case, people want to use some basic settings that enact a common security model: authentication and authorization.

When you add Spring Security to a Spring Boot project, things get automatically locked down. This is handy for demos, but this chapter will show you can then go in and configure things more to your liking. My plan is to walk through in-memory based options (good for testing and getting started) as well as a configuring a couple different databases that are commonly used. With that sort of introduction to Spring Boot + Spring Security, it becomes much easier to read the online reference docs if you want to cut over to an LDAP-based user data store.

As I said earlier, security doesn’t start and end at the application level. I want this chapter to be comprehensive in the sense that security doesn’t end at the application level. Spring Boot does a fantastic job of inverting the concept of a container by having the app bring along embedded Tomcat to run itself. In this chapter, we’ll see how to configure Spring Boot’s embedded Tomcat servlet container use SSL, strengthening the end-to-end security of your app.

Chapter 4 of Learning #SpringBoot submitted…upgrading manuscript to 1.1.5.RELEASE

learning-spring-boot-ch-4Yesterday afternoon, I bundled up Chapter 4, Data Access with Spring Boot for Learning Spring Boot and shipped it off to Packt Publishing. They were happy to receive it on time.

Then I saw Spring Boot release version 1.1.5.RELEASE. I just updated all my source code to the latest version, edited the fragments, and fixed the links in my asciidoctor files. Reading through all the issues of this release, nothing appears to be of any impact to this book.

Naturally, I’ll recheck everything after I wrap up Chapter 5, Securing Your App. In the next and final chapter, I’ll show how Spring Boot speeds up securing apps. By merely adding Spring Security to your classpath, Spring Boot leaps into action and locks things down with suitable defaults. You can easily alter various settings. Finally, you can start plugging in custom configurations as needed.

secure-ssl-appSecurity, in my experience, has historically been a tricky subject. I’ve seen countless teams apply security as the last step. People also don’t understand that security is a multi-layer effort. It’s not ALL contained in the application.

And security requires a certain understanding; a frame of mind. When I worked on the commercial engineering team a couple years ago, I applied several strategies to prevent users having their data compromises. Not all of these ideas were my own. Many came from a teammate that had a prankster’s perspective.

If you look at the second image in this blog, you’ll see a perfect depiction about how people will do something like configure SSL for a website and call it a day. SSL only secures one aspect of things. Usernames and passwords only cover a few more aspects.

This chapter will help cover how Spring Boot makes it much simpler to secure the embedded Tomcat servlet container. It will show how to institute authentication and authorization to verify you are who you say you are and that you’re authorized to do what you must. It’s important to plug in security from the get go, and Spring Boot makes this even easier than ever. But never stop looking for attack vectors that you must block to avoid issues.