Skip to main content

Being out of the box

Often being in a box is a matter of point of view. Oftentimes when I'm trying to think of ideas and solutions, and I feel stuck, I remember ask myself the "who, what, where, why, when, and how" types of questions . But when I don't remember that tool for thought, I'm  lucky enough to be working with a group of people who regularly show me other ways to think "out-of-the-box" as it were.

Today I was asked a question that I tried to answer for a co-worker. They were using R studio and editing an HTML table, and they needed to get some space between some columns. It was a technical issue, and my first idea, adding a non-breaking space to a collapsed column in-between the columns, didn't work. I didn't understand why it didn't work, because in other circumstances it would have worked fine. In fact, the behavior I got seemed entirely wrong and I didn't know why. I knew at worst my solution should have no effect, but that fact that it simply inserted the exact "&nbsp" text mystified me. So, my reaction was to dig in deeper and figure out why my solution wasn't working, before long my co-worker was trying to wrest control of his computer back from me as I got completely absorbed in trying to help him. 

I ran out of time and thus I mentioned the problem to another colleague, who is one of these "out of the box" people. As she so often does, she came up with an entirely different approach which easily solved the problem. Her answer was to simply set the column widths - and get the white-space that way. She was thinking about the original problem, which was great, but I had asked about why am I seeing thing "&nbsp" string? She probed a little, to get the original question and then had a better solution for it. 

Thinking about the solution she did come up with, I realized I was focusing on the question of "why doesn't this work" while she looked at the larger problem of "how can you solve the original problem". These are obviously two different frames of reference. "Why" doesn't x or y work versus, "what" is the problem that needs to be solved and how can we look at it differently. It's often a matter of having too narrow of a focus. "I have a hammer, how can I use that to put these two boards together?" against "Instead of using two pieces of wood together, what if I simply cut the piece I need out of that other piece of wood over there?"

I try to shake my frame of reference up when I ask myself "who, what, where, why, when, and how" and it just seemed to me that this was a good example of how I should be ever watchful for those sorts of moments.

Comments

Popular posts from this blog

Unit Testing - What to Test

This I wrote to answer a question that came up when we were discussing our software process and I was training developers on how to unit test. It seems a simple enough question, but I kept pondering it and delving deeper until I realized I needed to write this monograph. What unit tests should we write? How do we know what to test? Ideally, unit tests should cover every path through the code. It should be your chance to see every path through your code works as expected and as needed. If you are practicing Test Driven Development then it's implied everything gets a test. In the real world, you might not be allowed to test everything - for instance, if the testing suite ends up taking a week to run, then the world will have changed by the time it finishes and the test results will be obsolete. Unit testing at it's basic is testing an object, a method - the smallest unit of your code that it can test independently. It should test the inputs "goes into" an...

Risk Mitigations for Custom Applications

  In many healthcare applications, often due to the cloistered nature of the use cases – e.g. it will only be accessed by users authorized in a particular facility, such as an operating room suite – the needs for Authentication and Authorization are minimized when the system is designed and implemented. This presents a risk as soon as you allow for the possibility of users with ill-intent or that otherwise want to operate outside their given roles. Custom applications need to consider these possibilities and implement the following measure to ensure the integrity of the system. 1.   Authentication and Authorization Controls: Multi-Factor Authentication (MFA): Implement MFA for all user logins. This adds an extra layer of security beyond just a username and password. Role-Based Access Control (RBAC): Grant users access only to the data and functionalities they need for their specific role. This minimizes the potential for unauthorized access. Strong Password Policies: ...

JavaScript and JQuery Palettes...

I have been immersing myself in the world of d3js and more, specifically Plotly.js . This has required me to look at palettes, and to create some palettes - which I did with Paletton . I find it tedious, so I am creating some helpers, like the code below which displays a given list of palettes (each of which is simply an array of colors in your favorite format). <table id="Palette"> <tbody></tbody> </table> <script> var defaultColorsPalette = ["#ffd99a", "#225ea8", "#ffc09a", "#9dc4f4", "#ffbf58", "#ffdb58", "#257294", "#ff9658", "#61a1f3", "#ffa719", "#ffce19", "#ff6e19","#ffe99a", "#2a82f2", "#ff9e00", "#ffc900", "#ff5f00", "#036bf0" ]; //via colorweb2 var sequentialMultihueBlueYellowPalette = ["#ffffd9", "#edf8b1", "#c7e9b4",...