Search This Blog

Friday, September 20, 2019

Upcoming Event: Meet Qt Pittsburgh, PA Greater Area

Someone once said, "When it rains, it pours."  Usually, that is a bad thing, but in my case it appears to be a good thing.  I already hinted that I may soon be working on another book about Qt.  That project seems to be going well.

Just after finding out about that, I stumbled into an opportunity to do a Lightning Talk at a Qt event.

I will be giving a Lightning Talk at Meet Qt in Pittsburgh, PA on October 17, 2019.

The "Meet Qt Pittsburgh Greater Area" is a free, half day conference about Qt.

As soon as I heard about the event, I immediately thought of a couple of topics.

The first one was working with State Charts (Machines) in Qt Creator. With a couple of clicks you can turn them into C++ code that you can add to your project.  We have done it several times on a couple of projects here at Caliber Imaging & Diagnostics, and it is really nice to be able to simply update a drawing and fix the behaviour of a system.

While I really like to talk about Qt's SCXML support, I didn't think I could justice to it in 10-15 minutes.

The other topic came out of a question asked during a presentation of Qt's new level of MCU support. Imagine running Qt directly on an MCU without needing an OS!

The question was simple, "How can I develop Qt code if I don't have the hardware?" Great question, and the topic I will be dealing with at Meet Qt, Pittsburgh.

If you are interested in more information about this free event, check out the event page for it at https://www.qt.io/events/meet-qt-pittsburg-1565888110.

I hope to see you there!
-John

Friday, August 30, 2019

And Now For Something Completely Different...

In restarting this blog, my intent is to publish useful, software engineering related material every week or so.  To that point, I have almost 2 months of ideas planned out.  They including everything from using drawings to build state machines to some of the more useful design patterns I have found.

But something came up. Something I think you will enjoy when it is completed, but something that needs some immediate attention.

I have been contacted to write another book for Packt, and I am working to develop the proposal.

What's all this about writing another book?

One of the more frequent questions I when I tell people that I am a published author is "How did that happen?"

There are a couple of ways to get a book published. One method is to write the book and self-publish.

The next is to write a book and then shop it around to different publisher. This is the way many authors start out. The trick is to find a publishing house with an editor that will say yes. It is not easy.

In many ways it is like trying to find a job.  You network, send out "resumes" (or samples of your writing), make calls, etc. etc.

When I was looking for my last two jobs, I did all of that stuff, and it got me nowhere.  In the case of my last two jobs, the companies reached out to me (through a recruiter).  In the case of my first book, the same thing happened.

For "Hands-on Embedded Programming with Qt," an Acquisitions Editor reached out to me to see if I would be interested in writing a book on the book.  I actually declined at first, but he talked me into it, and I am glad he did.  (I like to say I was commissioned to write the book.) It was hard work, and there were some sleep deprived days, but in the end I really enjoyed it.

Recently, the Acquisitions Editor reached out to me with two book ideas.  I read both them and discovered that one proposal is almost exactly the next book I was thinking I should write.

So there you have it.  I've been commissioned to write another Packt book titled "REDACTED" that will be tentatively published in REDACTED of 2020.  I'm really looking forward to it, and I am hoping that now that I know the process, it will go quite easily.

And In the Meantime...

In the meantime, I still plan on covering the topics I had planned for the blog, but will also probably slip hints in about my progress on the new project.

Selling the Merch...

Please Check-out "Hands-on Embedded Programming with Qt".  It is available on both Amazon and Packt websites.

Monday, August 19, 2019

Time to Rethink Security Questions?

You have probably done it many times. You set up a new account, be it online or in a bank, and they ask you to give them an answer to several Security Questions so they can verify that it is really you.
  • What is your mother's maiden name?
  • What city were you born in?
  • What is the name of the high school you graduated from?
  • What is the name of your oldest sibling?
Have you ever thought about those questions?

In the Internet Connected Age, those are probably the most insecure questions they could be asking. Thanks to social (i.e. Facebook, LinkedIn) and Genealogy sites, most of the answers are easily accessible with little to no work.

Solving the Problem

While I would like to say that by writing this blog I am going to magically get the banking world to change its questions, I really doubt it.  So what can you do?

Personally, I use answers that I know that can't be easily found, but I can remember. For example, I could use "Alfred E. Neuman" as the basis
  • What is your mother's maiden name? Neuman
  • What city were you born in? Flint, Michigan
  • What is the name of the high school you graduated from? MAD
  • What is the name of your oldest sibling? Alfred
For those of you who don't know who I am talking about, take a look at this Wikipedia article: https://en.wikipedia.org/wiki/Alfred_E._Neuman.

Thursday, August 15, 2019

Why "Newest" Is Not Always "Best"

When I wrote Hands on Embedded Programming with Qt (https://www.amazon.com/dp/1789952069), I had a choice to make. Which version of Qt should I use? I chose to go with Qt 5.12. In the 8 months it took to write the book, Qt release several minor updates (5.12.1, 5.12.2, etc.) and then finally 5.13. So why didn't I update the book to use Qt 5.13? It wouldn't have taken much work. Qt 5.12 is a LTS (Long Term Support) version of Qt. That means that it will be getting updates long after Qt 5.13 has reached its end of life. If you are building an embedded system, especially a medical or other regulated system, you need to plan on supporting the device for years. Using a LTS solution is a great way to do that. It avoids major upgrades (and retesting) of the base framework on devices in the field. hashtagqt5 hashtagqt hashtagprogramming hashtagembeddedsoftware hashtagmedicaldevices hashtagmedicalsoftware

Tuesday, August 13, 2019

The Quest for the Perfect Tool

I have recently been involved in an effort to pick "the perfect Code Review Tool." That's really a funny idea when you think about it. "Perfect" could mean a lot of things to a lot of different people, even if they all agree what is.

Consider the case of find "The Perfect Car." The perfect car for what? The perfect car for carrying your teenage daughter and her friends around? The perfect car for to commute 50 miles a day to work and not spend half a weeks pay on fuel? Maybe it's the perfect car for running brisk TSD rallies on the snow covered back roads of central NY?

The same problem happens when looking for the perfect software tool. Even limiting it down to a specific tool, a Code Review Tool, isn't enough. There are still too many questions that come up: Does the whole team do reviews or only a couple of dedicated reviewers? Pre- or post-commit reviews? How does code review fit into the rest of your process? How big is the code set? Is only one project going to use this, or is it becoming the standard for many projects? What do the other projects want? What other tools are in use that it has to integrate with? How much money is there to spend? What platform does it have to run on? The list just keeps going on.

Sometimes the quest for "The Perfect " becomes less about finding the and more about finding out what you really want. As Joe Jackson once sung "You can't get what you want, until you know what you want."

So how do you find out what you want? That's a good question to blog about in the future.

Saturday, March 10, 2012

Who is John?

Hello and welcome. My name is John,... and I am a recovering software engineer.

I was 14 when I wrote my first piece of code.  It was the early '80s.  Times were different back then. It was just a couple of lines of BASIC. Just a little a few lines of code never hurt anyone, right?

Then it was a few more lines. Then a program or two. Soon BASIC wasn't enough. I needed more. I moved onto harder, more addictive languages: Pascal, Forth, Lisp, even some Assembler. I got really messed up back in those days.

I line-of-code together put could not . (because (were (mixed languages up)))

Postfix, prefix, infix... I needed a fix. I couldn't stop.  I needed more.  I couldn't just be a user. I had to be programmer!

I've tried to stop. I even got my degree in Electrical Engineering and declared "I will never write code for a living." But it didn't last.

Soon I was back into it again, but this time I was getting into the real hard core stuff: C, C++, meta-Assembler, Flex, Bison. I even started creating my own languages.

For years I have fought it, but I keep coming back to it. I've tried being just a software architect. I've tried being just a Integration Lead, but in the end, I come back to it. Writing code.

A friend of mine once summed it up well: "John, your a tool-smith. You write tools. It's who you are."

He's right. I am a Tool-smith. Over the years I have found, written, experimented with, researched and used many different tools in software engineering. In this blog, I hope to share some of what I have found.

(update, 2019)

That lasted for a while, and it still correct, but that's not the whole story.

I'm also an author and a teacher.  In 2018 I was approached to write my first teaching book, Hands-On Embedded Programming with Qt," (https://www.amazon.com/dp/1789952069).  It was a long project (8 months), but I found it was something I had to do. Qt is a tool, and teaching how to use it excited me.

So I now says and am a "Tool-smith, author, and teacher."  (... who uses the Oxford Comma.)