Category Archives: Uncategorized

Why do we need experts?

In this day and age, the DIY (Do It Yourself) movement is strong. The internet has made it super simple to start reading about somthing, but a few things from Amazon, and reach and get going! On one hand, that’s really good. I’ve seen countless businesses launched in this fashion. Many show up on Shark Tank. But sometimes, we need experts. Sometimes we need people with a very focused sense of knowledge, and if we don’t hire them, we’ll end up either paying too much, or losing out on opportunity.

Real Estate Experts

I have a handful of rental properties. In fact, it’s the principal part of my retirement portfolio, given 401K funds don’t work. Every month, my tenants send in a check to my property manager. Property manager collections 10% fee, sends the rest to me. And I then send in a payment to my lender, with extra rent used to pay down the debt faster.

See how that works? It’s not hard. But it’s something in which you need the right experts in the right places.

My property management company are experts at writing leases, enforcing leases, changing locks with tenants, maintaining the property, doing background checks, and maintaining quality of that process.

But their motivation is to keep the property rented, so they resist raising rents. I recently got notice of a tenant wanting to vacate, and my property manager showed me the proposed rent rate. Within five minutes, I ALSO got an email from my other agent.

Other agent? Who’s that? I have a real estate agent on retainer whose job is to find me new tenants when my properties are available. She gets paid a month of rent for this service, meaning she is motivated to keep the rates up.

Her email tipped me of that the market rent rate of these properties had risen about 12% from what my property manager was doing. This is called “opportunity cost”, something only the right experts in the right places can alert you to.

Other Experts

But this isn’t confined to real estate. There are many areas in life where we should listen to experts. I have seen people slap together “RESTful” interfaces in many places that had nothing to do with REST. For example, I tinkered with the API for my house thermostat, only to discover it was NOTHING like REST.

curl -s -H 'Content-Type: text/json' -H 'Authorization: Bearer ACCESS_TOKEN' 'https://api.ecobee.com/1/thermostat?format=json&body=\{"selection":\{"selectionType":"registered","selectionMatch":"","includeRuntime":true\}\}'

This thing barely scratches the surface of an API. There is no hypermedia. The URIs aren’t very “pretty” (which isn’t REALLY a REST thing). It’s more of a query language than anything, which as I’ve said before, isn’t really REST.

My impression after struggling with their API, is that they are experts at building thermostats, not APIs.

Spring Experts

So if you’re seeking to work with a certain technology, a certain business, or other, it pays to go and learn what the most experienced people are doing. It’s part of why I love going to SpringOne Platform every year. I meet people that are ALSO using Spring in incredible detail against some of the largest systems.

It’s an opportunity to see how they have conquered many problems, and an opportunity to share things they may not know, making us all better Spring experts.

Python Testing Cookbook 2nd Edition is coming!

I had totally forgotten about this, but back in February, Packt Publishing approach me about writing a 2nd Edition to Python Testing Cookbook. This is a title I wrote back in 2011, and from which I still get royalty checks! It’s not huge. In fact, it’s more symbolic than anything. I get real a warm fuzzy knowing people are still using this book today to test their Python apps.

I declined the offer back in February, because I felt neither qualified to write it, nor motivated since I’ve shifted to writing Spring-based books. An email showed up two days ago that had been stuck in an acquisition editor’s drafts for months. They have found another author (congrats, Packt!), but since he or she can potentially use my material, they are dealing me in a slice of the royalty pie for this new work.

Yippee!

I wish this author the best of luck. And I appreciate that I’m being rewarded for past effort by being a part of this new one as well. It just goes to show that writing a book can open doors you never see happening.

Happy writing!

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

evidence-our-car
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.

Cheers!

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.