Category Archives: Uncategorized

#LearningSpringBoot – 1st edition vs 2nd edition

wayback-machineSomething I have unique insight into is what the approach to the 2014 1st edition vs. the 2017 soon-to-be 2nd edition. Most “next editions” are written by other authors. Not here.

I wrote the first by myself and I’m writing the second one now.

The 1st edition was relatively short. I had pitched ten chapters but Packt would only greenlight five. It’s only fair to point out that Spring Boot had just reached 1.0 GA release only a few months before my pitch. It wasn’t a “proven” technology yet.

learning-spring-bootSo I pushed forward. With just five chapters, I narrowed the scope to the most critical things people wanted.

  • Core stuff: building web apps with Spring MVC, Spring Security, and Spring Data.
  • Given Boot was so new, I spent a chapter on debugging and maintaining apps, and helping people understand autoconfiguration.
  • Also showed the magic of the Groovy-based Spring Boot CLI.
  • Threw in a little about profiles and switching between development and production.

Many things I wanted to cover just didn’t make the cut.

b05771_mockupcover_normalWhich brings me to the 2nd edition. We’ve got ten chapters and a clean slate. The field is wide open. This isn’t some rehash to turn a nickel. (That type of work frankly bores me!)

This edition is aimed at Spring Boot 2.0, which will be based on Spring Framework 5.0. Some of the goodies include:

  • Reactive Streams API found in Spring MVC, Spring Data, and to some degree, Spring Cloud.
  • Spring Cloud was just getting started back in 2014. Today, it’s a staple toolbox used for any cloud native/microservice solutions.
  • Reactive apps use asynchronous, non-blocking paradigms. Messaging and WebSockets with Spring Boot really shines here.
  • Unit testing, embedded integration testing, mock testing, and slice testin
  • Taking your app to production

junior-devAll these things are various facets where Spring Boot kicks major booty. And I plan to cover all of them. My goal is to write a down-to-earth title that helps people build Real World apps. Spring Boot is such a popular tool for serving customer needs, I can’t wait to deliver.


We won’t own our own information until we do

Not a week goes by when I hear some story about people displeased with how their own content has been misused. People gripe that entering stuff into Facebook no longer belongs to them. Other people copy-and-paste such stuff into other places. Things go “viral”.

I chuckle at how so many politicians act like we are still in a pre-YouTube era. They say and do stupid things in front of small crowds. Someone inevitably grabs a clip with their phone, posts it to YouTube, and it blazes across the twittersphere. Or someone makes an accusation or promise, and in minutes, a video interview from fifteen years surfaces and gets re-posted to the interwebs.

The truth is, there should be some sense of ownership of our content. If I post something, somewhere, I understand people’s desire to hold onto it and have the last word. Unless you speak it in front of someone else, and they make an independent copy, it makes sense that you should be able to effectively delete your posting. What you said and the repercussions thereof are your own issue to deal with.

The truth is, we can’t “own” anything we write anywhere unless we can wrap it using encryption technology. Essentially, if every blurb you posted was an encrypted bundle, people would have to come to you to decrypt and read it. Throw away the key, and that blurb is gone forever. For certain avenues, like everything I write on Facebook, I can understand retaining a hold on it. And if someone wanted to copy-and-paste it, it would be really nice is the encryption traveled with it. Copy it 1000 times, as long as the wrapper is in place, and you still control it.

But there in lies the rub. Encryption technology has proven far too difficult for mass consumer adoption. Just now, the web is headed towards moving all web traffic from HTTP to HTTPS to prevent intermediate snooping. This should have happened years ago. But the next big leap would be encrypting all email traffic. With people losing laptops and thumbdrives, lots of security breaches have happened. If ALL email was wrapped in encryption, privacy would be a much stronger concept. But the process of doing that is arduous. Exchanging keys, keeping your private key secure, and then entering passphrases all the time is a hassle.

Take that concept and apply it to every other medium in which you write something. Even this blog entry! It’s safe to say, such a concept won’t come to pass until it becomes effortless to prove on a terminal you are who you say you are, and to lock and unlock keys suitably. Seeing the web move to SSL is a good sign. I just hope we can migrate along these paths faster than we can figure out to integrate stuff together smoother. We must own the pipes and the traffic our data rides along.

When in doubt, capture it on your phone

broken-retina-screenThis afternoon, I dropped my laptop. Sadly, I could tell it was kaput. The image to right isn’t fuzzy due to a shaky camera. So I loaded up my family so we could drive to Nashville to the nearest Apple store and get the ball rolling on repairs.

After dropping it off, we walked back out to the car to get a bite to eat, since repairs were estimate to take less than an hour. We encountered a woman parked next to us. She stopped us and accused us of hitting the back-left bumper of her car and causing damage. She then pointed to a ding on the front-right part of our bumper, and said that was where we had hit her.

I was startled and not sure what to do. When we had parked earlier, I was quite sure we hadn’t hit anyone. Before I could collect my thoughts, my wife spoke up, “The paint on your car doesn’t match the color of ours.” Wow! She is sharp. I walked over and confirmed it. The woman’s car had bits of orange on it. Our car was dark cherry red. Distinctly different.

But this didn’t dissuade her accusations. She mumbled something, thinking that we had merely scraped off the exterior paint, implying her vehicle had an undercoat of orange. Again, my wife quickly pointed out that her scrape and our ding were at different levels. Her scrape was clearly six inches higher off the ground from the ding on our. I walked over and stood next to our ding, and held my hand against my leg, marking the height. Then I walked over to the woman’s car, and demonstrated that there was no way we could do this.

evidence-her-carShe wasn’t accepting that either. So my wife promptly said we would be happy to call the police to sort this out. I thought that would do it for sure. Most people don’t want to deal with law enforcement. But not her. After thinking for a few minutes, she asked us to call. I made a call and waited for cop to arrive.

The whole time, I could hear Judge Mulian’s voice in the back of my head, “show us your evidence!” (Okay, I watch court TV. Don’t judge me!) I knew that no matter what transpired, we might get sued. I needed to gather all the evidence I could here and now, and save it for the future. I took a picture of the ding and the scape. I also took a picture standing right next to it with my finger pointing to each. That way, each picture clearly demonstrated the difference in height. (And I figured it might make good blogging material, if not at least capture it historically).

The police officer arrived quickly, and spotted these glaring holes faster than us. We were promptly told we could leave because it was clear we weren’t responsible for the damages to the woman’s car. But I knew, that wouldn’t stop her from suing us anyway. Without clear evidence, we were at risk of losing. I was happy I had gathered all the pictures. I also had observed that the women never heard our address nor did she take a picture of our tag. The odds of her finding us and suing us is remote. But I have a record of the circumstances in my phone. Just in case.

Old public keys revoked; new keys generated

heartbleedRight now, I’ve added a widget to the right with some key links. Due to the heartbleed bug that has compromised an estimated 500,000 servers, most secrets are considered unsafe. Hence, I have revoked all past gpg keys and generated a new one.

I would sign the new key with the old one to maintain my trust linkage with the others, but that isn’t safe. Basically, I have to rebuild from scratch. I joined the strong set web of trust years ago. Now I need to email some of the people I knew that were in it, and see if we can sign the new keys.

If you have a public-private key pair, I suggest you do the same.

GregLTurnquist moves to WordPress!

wordpress-300x300I recently moved my financial blog to WordPress and the experience has been fantastic. So I asked, why not do the same here?

The features are fantastic including: nice mobile view, easy management of old and new links, very professional look-and-feel, and superior options and features.

I’ve been using this blog to write about software, writing, and a host of other things. Hopefully it’s been enjoyable for you.


Why I don’t much care for New Year’s resolutions

Every year, I hear about people committing to some sort of New Year’s resolution. I’ve never been much of a fan and here’s why. If you have some new commitment you want to make, why wait and make it during the New Year?

When I found out about duoLingo, I decided to dive in head first and work on my German. That was over two weeks ago.

When I sold my previous house back in May and had a large pool of cash, I decided to buy a big position in VNR stock and use the monthly distributions to pay off the HELOC. Again, why wait until now to think about something like that?

People seem to take on nebulous resolutions like losing weight or being nice, and there seems to be a high rate of people not carrying through. Well I prefer something much more concrete.

Back in July, I decided to try an experiment and not drink anymore soda on the day of my daughter’s fourth birthday. To this day, I’ve only drunk some Diet Sprite when I had a stomach virus back in November and needed SOMETHING that wouldn’t make me throw up. I have been drinking mostly water and tea, as well as black coffee. It’s been great. And it wasn’t as hard as I thought it would be. Is it a big difference. Not really. But I feel like it’s a good one.

I only discovered recently that my wife decided to stop drinking soda as well. I hadn’t noticed!

Bottom line: if you have something you want to change, go ahead and do it! Don’t make it some “New Year” resolution. At least, that my $0.02.

LinkedIn: To close or not to close my account, that is the question

LinkedIn and how annoying it has become

LinkedIn has become increasingly annoying over the past year. I started to get more and more emails that seem to be aimed at driving me to their site. I would periodically get emails about somebody being in the news. In fact it was someone I met once. Once! And he left my company a couple years ago. No one else seems to meet this criteria. I wasn’t interested.

I also would get other junk mail. This used to be a handy way to track people professionally that I would either work with, meet in the corporate offices, or interact with remotely while solving technical problems.

I finally was annoyed enough to find the microscopic text at the bottom that let me unsubscribe from these things. And then I got another email message. It appears there is more than one list I had to unsubscribe from.

If you have multiple mailing lists and settings, you’re doing it wrong!

LinkedIn introduces security hole a mile wide

In case you didn’t hear about it, LinkedIn came out with this new feature where they can hook into your iPhone’s email and display contact data. It’s touted as a handy feature to elaborate a cryptic email with “Vice President of Widgets Inc.” What’s not explained is how it works. LinkedIn intercepts all the email on your iPhone, pipes it through their servers, and then sends back an edited email message.

This feature is what’s known as “man-in-the-middle” with LinkedIn being “in the middle”, and hence subject to…(drum roll)…man in the middle attacks.  But that is not all. Maybe you aren’t hacked or monitored by any NSA monitoring program that is embedded at LinkedIn headquarters.

At a minimum, you are generating data for LinkedIn based on your email traffic. I already get enough spam from them. This one really shoots down their status in my opinion.

“If you’re not paying for something, you’re not the customer; you’re the product being sold.” –blue_beetle on the interwebs

This the type of data they need to collect to sell to advertisers. I have no problem with advertising. In fact I have ads shown on this blog site. But don’t try and tell me this email interceptor which if LinkedIn was hacked would become the target of a horrendous trojan attack vector is something else.

To top things off, LinkedIn hasn’t really provided me with a dime of value. When I was looking for new opportunities back in 2009-2010 amidst my desire to relocate, I reached to many people in my LinkedIn network. I didn’t get a single interview that way. I knew people that had left my old company that managed to get me in the door for interviews. My wife’s uncle in Tennessee also had contacts and helped me.

What DOES work for networking?

What really paid off was that I had met a world of people through the Spring community as well as the SpringOne 2008 conference. I continue to build a strong network of friends and technical peers through the Nashville Java User Group and the Spring community which I deem worlds more valuable than what I have with LinkedIn.

I also continue to build my personal brand by writing stuff here, on Spring’s blog site, and making open source contributions through GitHub projects. My resume is on display for anyone to see, and definitely tops those worthless LinkedIn endorsements.

Receiving an endorsement from a co-worker I haven’t seen for almost four years about “subversion” (which I barely used even back then) is totally useless! Stop the madness, please.

Hence, the reason I debate almost weekly to close my LinkedIn account. I can probably migrate the CV/resume content into my blog site and instead point people there. But I never seem to pull the trigger, instead holding on as a hedge. So maybe next week.

Branding is important

Today at the DevNexus conference, my colleagues and I from the Nashville Java Users Group synched up and put on our awesome t-shirts that Jeremy put together. This has already had immediate payoff. As other members of our group showed up, it was incredibly easy for them to find us in a room of 400+ people. Another fellow from middle Tennessee spotted us, and joined our table, totally unaware that there was a Nashville JUG. He said he used to be a member of the Middle TN JUG years ago.

This goes to show that proper branding to communicate who and what you are is important. And having a consistent, well used brand quickly conveys useful information. I first heard this mentioned by Steve Yeggee at the 2007 OSCON conference, and his point is very clear.

Branding is important.

Rod Johnson mentioned this briefly at last year’s QCON keynote in the context of personal brand. Investing in your own personal brand is just as important as your company’s brand. Brands communicate quality, content, and integrity, and it starts with you.

Keith Donald, a founder of SpringSource, discusses the important of having a good brand that aligns with your business, so the two serve each other in communicating things clearly to clients.

All of these people are pointing out that investing time and effort away from coding and instead in developing a good brand can have just as much, if not more, positive impact to the business you are conducting.

Open source – you’re hired!

My wife and I are gearing up for a date in just a couple hours. It’s kind of different: we are going to eat and then go to a local Starbuck’s and WRITE. Yes, just write. Not a movie, not a concert. Just writing on our laptops at a local coffee shop.

Okay, I’m not trying to bore you with our dating lifestyle. I just wanted to share the fact that my wife can jump between her Windows netbook, my MacBook Pro, Mac Pro, and Linux machines because she uses Libre Office to do all of her writing. I converted her a few years ago, and the results have been incredibly useful. There is no thought about what machine is being used. Because they ALL have Libre Office, it is a piece of cake for her to work on the story she has been writing for years.

Last night, I powered up her antique Windows 98 computer to dig up an old copy of her manuscript. It had over 30 pages of content that had been lost. Finding it was amazing. The trick was figuring out how to get it off the machine. At first, I tried to email it out. Unfortunately, Internet Explorer 5 doesn’t work with Yahoo Mail or GMail. I tried to install a newer browser, but couldn’t find one that would install successfully on that old system.

Next I tried inserting a thumb drive. Sadly, it needed drivers that I couldn’t install. We had copied it to a spare floppy disk (hadn’t used those in awhile). My next step would be to either pull the floppy drive out and plug it into a more up-to-date machine, or simply pull the entire hard drive. Before doing that, I decided to boot up the machine using an Ubuntu Live CD. That was tough because this machine had only about 500MHz of CPU power. Eventually it came up. I thought it would connect to the network immediately, but somehow it didn’t.

Starting up Firefox froze the system because there just wasn’t enough memory. Thankfully, the command-line interface saved the day. Ubuntu easily mounted the thumb drive. I decided at this point that installing Java and CrashPlan was ridiculous and I didn’t have the time for it. I copied the old manuscript files onto the drive, ejected it, and powered the machine down. I walked downstairs and gladly announced I had rescued the files.

The point is that through the power of open source software, Ubuntu, cheap thumb drives, and Libre Office have commodotized the ability to write. My wife and I don’t have to choose a computer, an operating system, or anything else in order to work on a fictional novel.

Layering is the ultimate graphics tool

Today I decided to spend a little time creating a graphic header for this blog. I don’t have much in graphics art tools. I could download Gimp, figure it out, and probably get disappointed that it can’t do something I want. Or maybe buy something else, install it, figure it out, and again get disappointed when it can’t do something I want. Looming over all of this is the fact that I just want to build a nice little image to head up a BLOG. This isn’t a book cover or some other professional endeavor, so why exert that much effort.

Instead, I figured if I could just layer the things that I want, a snapshot with Jing should do the trick. For starters, I’m a big Tron fan, so I figured some tiny image from the movie would look nice and be alright under Fair Use. In my mind, I could visualize some source code overlaid on it. Remembering how my mac’s Terminal app is slightly transparent, I figured out how to increase the transparency and reduce the brightness of the text. By placing the Terminal window over the image, it made a nice layered image.

I grabbed a screenshot with Jing and uploaded it to the blog. Unfortunately, the title and description displayed on top of the image looked terrible. I needed to layer the text on top of the image with some special formatting. Unfortunately, positioning a text editor on top would include the window frames and look terrible.

Next step: LibreOffice. I created a new text document and inserted the layered image I built before hand. Then I created a couple of text frames, changed the text color to white and background color to transparent. Tweaked the fonts, and put it in Print Preview. Zoomed in to 100% and grabbed another screenshot. Perfect! Uploaded to blog and requested the image be displayed in lieu of the text. Awesome!

The trick to all this? Thinking with a UNIX-like mentality: use several tools that each do one job well, and string them together to build a final product.

Now this I can do.  –Sam Flynn