Wednesday, January 30, 2019

Cold-weather Imposed Imprisonment

Extreme cold snap has forced people indoors.

A lot my friends and coworkers are stuck indoors today due to cold weather. Here's some ideas to make the most of the cold-weather imposed imprisonment.

1) Make an awesome breakfast!
Have you taught your kids how to make french toast or cook bacon?! Don't have kids? More bacon for you.

2) Plan your summer vacation!
I've been having a lot of fun with https://roadtrippers.com/.

3) Take an online class or tutorial!
I know many of my FB friends have access to Skillsoft. There is some good stuff in there. For those without access to Skillsoft there are still a ton of free courses. For example, https://modernstoicism.com/introduction-to-online-course/

4) Humble Bundle!
Humble Bundle has book, comic, audio, and game bundles. This is a great opportunity to get some stuff and have the proceeds go to charity.

5) Family TV!
Check out The Librarian franchise for family friendly adventure.

6) Hot Chocolate/Cider!
Gather in the kitchen to make and drink your hot beverages together.

7) House cleaning!
I've had a couple piles of books in my living room that have been staring me down. Today, I will find them a new home. And I don't want to hear anything about whether they "spark joy."

8) Lunch!
Fix a food that you crave when it's cold out. Grilled cheese, chili, pot roast, etc. Again, get the kids involved. I've seen a lot of posts of people saying they wish they learned X in school. If you know X then your kids don't need to learn it in school. And cooking is one example of X that I've seen people complain about.

9) Pan popcorn and a movie!
Pan popcorn is the best! Let the kids or your spouse pick the movie and just soak in being with people you love.

10) Magazine catch up!
I've been cutting back on the number of magazine subscriptions I have and still I have a pile of unread magazines. This will seem wasteful but something I've do to get myself to read more of my magazines is to skim through a magazine and tear out the long articles that I want to read then put the rest in recycling. I'll usually end up with 3 articles that are ready next time I'm ready to read. It is all about divide and conquer.

11) Mix tape!
When was the last time you made a mix tape?! Okay, in this day and age I realize that few people use tapes anymore. Make your music mix in whatever format you use - tape, CD, playlist, etc.

12) Make something!
A friend posted pictures of a cold weather cat house she made for a stray near her office. In December, I made a geodesic dome cat house out of cardboard for my girlfriend's indoor cats. That would have been a really good project to do with kids.
http://www.domerama.com/calculators/2v-geodesic-dome-calculator

13) Write a letter!
Revive the lost art of letter writing.
https://www.ted.com/talks/lakshmi_pratury_on_letter_writing
If that's too hard then send a postcard.

14) READ!
When else can you truly enjoy a good book then on a snow day?!

15) Board games!
Board games are a great way to socialize and build logic skills.

The Flash - Stop Motion

The Flash:  Stop MotionThe Flash: Stop Motion by Mark Schultz
My rating: 5 of 5 stars

Superman. Batman. Wonder Woman. The Flash. Green Lantern.They are the world's greatest super heroes, fighting endlessly against corruption and injustice. Each of them is a formidable opponent of evil, but banded together their powers are unmatched. Ever ready, they stand united as the --
JUSTICE LEAGUE of AMERICA

As the Flash, Wally West may be struggling to find his place within the ranks of the JLA, but he knows he has one great advantage over every trial he has ever faced: he is the Fastest Man Alive. Now, for the first time, he has met his match. A scientist has created something that can move even faster than Wally West -- and it's killing people in Keystone City. Forced to battle the one foe who can truly stay one step ahead of him, the Flash soon learns that the consequences of the creature's actions reach far beyond Keystone and threaten the future itself with annihilation.

View all my reviews

Sorry, no review this time. I pasted in the publisher's summary instead. I didn't want to provide any spoilers.

Friday, January 25, 2019

Strong Fathers, Strong Daughters Devotional

Strong Fathers, Strong Daughters Devotional: 52 Devotions Every Father NeedsStrong Fathers, Strong Daughters Devotional: 52 Devotions Every Father Needs by Meg Meeker
My rating: 5 of 5 stars

I wish I could convince more fathers to read this book. Think of this as your weekly guide to a better father, daughter relationship.

View all my reviews

Wednesday, January 23, 2019

Your Best Brain

Your Best Brain: The Science of Brain ImprovementYour Best Brain: The Science of Brain Improvement by John Medina
My rating: 5 of 5 stars

A good combination of theoretical and practical knowledge to help you understand and care for your brain.

View all my reviews

Monday, January 21, 2019

Comment Before You Finalize Your Code

Joke about commenting code.
I've often heard programmers say, "Why should I bother commenting my code now? It'll only change!" We comment code to make the software easier to debug, test, and maintain. By commenting your code while coding (or beforehand), it will be easier for you to debug the software.
    As you debug your software, you will undoubtably find flaws. If a flaw is in your conversion from the algorithm to the code, you'll need to change only the code, not the comments. If the flaw is in your algorithm, you'll need to change both the comments and code. But how would you even know you had an algorithmic error unless you had comments?


Reference:
Kernighan, B., and Plauger, P., The Elements of Programming Style, New York: McGraw-Hill, 1978.

Saturday, January 19, 2019

Historic [Software] Preservation

Building being maintained to keep it in active use and relevant.


At its most basic, historic preservation is about keeping old places alive, in active use, and relevant to the needs of communities today. In software engineering, historic preservation is called software maintenance. The only difference between them is that the word "places" is better represented by the word "systems".

At its most basic, software maintenance is about keeping old systems alive, in active use, and relevant to the needs of communities today.

Tuesday, January 15, 2019

Get It Right Before You Make It Faster

Slow and complete is better than fast and not finished.

It is far easier to adapt a working program to make it run faster than to adapt a fast program to make it work. Don't worry about optimization when doing your initial coding. On the other hand, don't use a ridiculously inefficient algorithm or set of data structures.
    Every software project has tough schedule pressures. Some may not be very pressured during their early phases, but even they step up the pace later. Given this situation, anytime a component is produced on, or ahead of, time and it works reliably, it is cause for celebration. Try to be the reason for celebration rather than desperation. If you get your program working (however slowly it runs), everybody on your team will appreciate it.


Reference:
Kernighan, B., and Plauger, P., The Elements of Programming Style, New York: McGraw-Hill, 1978.

Wednesday, January 09, 2019

The Antidote: Happiness for People Who Can't Stand Positive Thinking

The Antidote: Happiness for People Who Can't Stand Positive ThinkingThe Antidote: Happiness for People Who Can't Stand Positive Thinking by Oliver Burkeman
My rating: 4 of 5 stars

Despite the fact that the title implies that this is a self-help book, it really is not. It is more of a journalistic study of philosophies that don't focus on the positive. There are no step-by-step guides of how to change your life. It is more like following along with a friend is learning about different techniques and giving them a go.

View all my reviews

Tuesday, January 08, 2019

Use Optimal Data Structures

Data structures & algorithms are intimately interrelated. (Jerry Yoakum)

The structure of data and the structure of programs manipulating that data are intimately interrelated. If you select the right data structures, your algorithms (and thus your code) become easy to write, and easy to read, and therefore easy to maintain. Read any book on algorithms or on data structures (they're one and the same!).
    When preparing to write a program, you should develop the algorithms and data structures together. Try two or three or more different pairs before you select the best one. And be sure to encapsulate the data structure in one component so that, when you later find a better structure, you can change it easily.


Reference:
Kernighan, B., and Plauger, P., The Elements of Programming Style, New York: McGraw-Hill, 1988.

Get Javascript in WordPress

I've been working on a WordPress site for a client/friend. He wanted some custom generated content so I used Javascript. However, by default Javascript is disabled in WordPress. Thankfully GoDaddy support had the answer.

https://www.godaddy.com/garage/3-ways-to-insert-javascript-into-wordpress-pages-or-posts/

We're not using GoDaddy for hosting but they still came through with a good answer so I want to give them credit. I used method 1.

Image of text describing how to disable WordPress filtering of script tags.

In addition to giving proper credit, this post will serve as a reminder to me what was done to get Javascript working on his site. Changing the theme and possibly updating the theme will likely break this fix.

Monday, January 07, 2019

Design Is Multidimensional

Complete software design is multidimensional. (Jerry Yoakum)

When designing a home, architects represent it in many ways to fully understand and convey its essence to builders, buyers of materials, and home buyers: elevations, floor plans, framing, trusses, electrical routing, plumbing routing, concrete shape, door and window framing details, and other points of view. The same is true of software design.
    A complete software design includes at least:

  1. Packaging. Often drawn as a hierarchy chart, this captures "what is part of what?" It often implies data visibility. It also shows encapsulation, such as data and functions within objects.
  2. Needs hierarchy. This captures "who needs whom?" Drawn as a network of components, arrows indicate which components need something. The needs might be data, logic, or any other information.
  3. Invocation. This captures "who invokes whom?" Drawn as a network of components, arrows indicate which components "call," "interrupt," or "send messages to" others.
  4. Processes. Sets of components are packaged together as asynchronous processes. These are copies of components that are running simultaneously with other processes. Zero, one, or more copies may exist at one time. This should also specify conditions that cause a process to be created, executed, stopped, and destroyed.

Reference:
Witt, B., Baker, F., and Merritt, E., Software Architecture and Design, New York: Van Nostrand Reinhold, 1994.

Sunday, January 06, 2019

Scrum Bums: A Get Fuzzy Collection

Scrum Bums: A Get Fuzzy CollectionScrum Bums: A Get Fuzzy Collection by Darby Conley
My rating: 5 of 5 stars

Get Fuzzy is my go to comic to cheer me up. Scrum Bums does not disappoint.

View all my reviews

Wednesday, January 02, 2019

Think Like a Freak

Think Like a Freak: The Authors of Freakonomics Offer to Retrain Your BrainThink Like a Freak: The Authors of Freakonomics Offer to Retrain Your Brain by Steven D. Levitt and Stephen J. Dubner
My rating: 5 of 5 stars

There is a lot to like about this book. I really enjoyed the multiple short stories format that remained connected without repeating large chunks.

View all my reviews