November PragPub

The November PragPub is out!

It’s not hard to spot the glaring problem in security these days: bonehead users. We give them excellent security advice like “Use long, hard-to-remember passwords,” “Change your passwords often,” and “Use two-factor authentication,” and they don’t follow our advice. There’s the problem, right there. And of course the solution is…

Right. When you can’t come up with a good solution to a problem, maybe you need to redefine the problem. In the case of security, maybe you need to define the bonehead user out of the equation. The best tool in the world is useless if the user won’t use it.

In this November PragPub, Troy Hunt looks at Apple’s Face ID, Touch ID, No ID, and PINs, and comes up with some ideas about security as friction and what Pragmatic Security might look like.

We’ve got a couple of code-rich features this month, too. Venkat Subramaniam continues his series on refactoring to functional style in Java 8, this month tackling a particularly knotty problem: exploiting the benefits of functional style with one-to-many relationships.

You’re probably not as familiar with the other language featured this month. Crystal is a very young language. It’s a functionally-flavored object-oriented language out of Argentina, and its slogan is: “Fast as C, slick as Ruby.” Ivo Balbaert is writing a book on Crystal and this month he shows how Crystal’s macros can radically simplify your code.

Karen Xie is a young software engineer, but she has already had some cool jobs and some interesting experiences. This month she shares her experience as a young woman in software engineering.

Marcus Blankenship is a more seasoned developer, but he remembers a time when he was just getting started and deleted 42,000 lines of code before checking it in. He found that there’s a difference between just learning from a mistake and actually growing from having made a mistake.

Johanna Rothman wants to keep you from making a mistake at the very beginning of a project, by showing you strategies for deciding what tasks to tackle first.

Plus: Antonio Cangiano has all the new tech books, I have the tech news, and John Shade “improves” some tweets by expanding them to 280 characters.

I hope you enjoy it!

Fire in the Valley

I just wanted to remind everyone that Fire in the Valley, the seminal history of the personal computer, is available here. So if you missed the first edition back in 1984 or the second edition in 2000, you can read the latest edition, in which Paul Freiberger and I bring the story to a close, telling the whole life story of the personal computer from its birth to its recent death.

Or if you prefer listening, there’s an audiobook version.

October PragPub


The scary cover of this issue of PragPub is false advertising. There’s nothing scary in this issue. So if life has you stressed out, come relax with this totally not-scary October PragPub.

Change can be a little scary. But they say change is the only constant. Keeping up with change requires constant learning. And encouraging learning in a business requires more than practices and programs, it requires a work environment optimized for learning. Diana Larsen knows how to create that environment, and talks about it in this issue.

Diana’s advice is pragmatic and experience-based. But sometimes what looks like an excellent program for improving your workplace needs a little tweaking to make it fit your particular situation. Sandy Mamoli recounts a case of a company trying to implement a purpose-driven, responsive self-management program and running into difficulties. It’s an enlightening description of what it can take to make a truly useful program be truly useful for you.

All right, maybe change isn’t the only constant. Derek Sivers makes a convincing argument that coincidence is another constant. Highly unlikely events happen every day. Life is nothing but a string of remarkable coincidences, and they are remarkable only when we remark on them. Expecting coincidences puts you more in sync with reality.

Those three articles are packed with practical advice, but what they don’t have is executable code. Our fourth feature this month fills that need. Venkat Subramaniam is back with another example of how to refactor code to functional style in Java 8. This time he looks at the popular Decorator pattern, and in a series of before-and-after examples shows how taking a functional approach can declutter the pattern, resulting in highly concise, elegant, and expressive code that is easier to understand and maintain.

Our regular columnists are here as well. Marcus Blankenship writes about the challenges of the programmer/manager, and this month shares a personal story of a time he fell short as a manager, and what he learned from the experience. Johanna Rothman is our project expert, and this month she answers the question, when the problem’s not with the team but with the system, how do you prove it to management? And John Shade? He’s skeptical about the new venture Elon Musk is considering.

Of course Antonio Cangiano has all the latest tech books and your editor has some interesting tech stories for your edification and a puzzle for your entertainment. We hope you enjoy this totally not-scary October PragPub!