<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="https://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gd='http://schemas.google.com/g/2005' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0' xmlns:blogger='http://schemas.google.com/blogger/2008'><id>tag:blogger.com,1999:blog-5492774</id><updated>2025-07-24T06:45:43.922-04:00</updated><category term='mind-mapping'/><category term='foxshow'/><category term='wiki'/><category term='source control'/><category term='typelibbuilder'/><category term='translations'/><category term='help'/><category term='scrum'/><category term='productivity'/><category term='swfox2007'/><category term='betas'/><category term='hosting'/><category term='codeplex'/><category term='viral'/><category term='customer service'/><category term='visualfoxpro'/><category term='carbonite'/><category term='opinion'/><category term='DLLHELL'/><category term='dotnetnuke'/><category term='tips'/><category term='facebook'/><category term='freshdesk'/><category term='windows7 beta'/><category term='conferences'/><category term='imdb'/><category term='asp.net'/><category term='crystal'/><category term='microsoft'/><category term='vfp9'/><category term='imagecapture'/><category term='management'/><category term='foxcharts'/><category term='pirillo'/><category term='visual studio'/><category term='google'/><category term='WPF'/><category term='gdocs'/><category term='FoxPro'/><category term='advantagedatabase server'/><category term='vs 2008'/><category term='webdevelopment'/><category term='camtasia'/><category term='platforms'/><category term='sql'/><category term='agile'/><category term='database design'/><category term='products'/><category term='DOS'/><category term='codecast'/><category term='source gear'/><category term='evil mastermind'/><category term='free'/><category term='devcon'/><category term='ideas'/><category term='99%'/><category term='vfp foxpro'/><category term='Conversations with AI'/><category term='southwest fox'/><category term='assign'/><category term='spreadsheet'/><category term='eric sink'/><category term='mvp'/><category term='craigboyd'/><category term='XML'/><category term='foxpro swfox'/><category term='foxpro development'/><category term='memory google'/><category term='dropbox'/><category term='KickStarter'/><category term='activation'/><category term='continuous integration'/><category term='eero icon'/><category term='mistakes'/><category term='conference'/><category term='tiobe'/><category term='Random thoughts'/><category term='scripts'/><category term='developers'/><category term='ithoughts'/><category term='development'/><category term='foxfoward'/><category term='eero'/><category term='usability'/><category term='operating systems'/><category term='naming'/><category term='software'/><category term='COM'/><category term='flock'/><category term='podcasts'/><category term='screencasts'/><category term='vista'/><category term='my'/><category term='codeanalyst'/><category term='sqlserver'/><category term='alanstevens'/><category term='personal'/><category term='agility'/><category term='tools'/><category term='codepages'/><category term='prague'/><category term='interfacedesign'/><category term='XMLSerialization'/><category term='charting'/><category term='T-SQL'/><category term='marketing'/><category term='software development'/><category term='mindmanager'/><category term='apple'/><category term='LINQ'/><category term='refactoring'/><category term='Handy Language Features:'/><category term='sample code'/><category term='sourcegear'/><category term='VFPX'/><category term='web'/><category term='heroes'/><category term='xocommunications'/><category term='tag'/><category term='internetexplorer'/><category term='planning'/><category term='television'/><category term='SP2'/><category term='michael jackson'/><category term='business'/><category term='Sedna'/><category term='windows'/><category term='javascript'/><category term='bugs'/><category term='VFP SP2'/><category term='gmail'/><category term='softwaredevelopment'/><category term='sourcecontrol'/><category term='schemas'/><category term='concentric'/><category term='Outlook'/><category term='projects'/><category term='southwestfox'/><category term='ASPxGridView'/><category term='mobile'/><category term='conventions'/><category term='search'/><category term='Xsd2code'/><category term='graphs'/><category term='tucow'/><category term='network'/><category term='relevance'/><category term='ken levy'/><category term='charts'/><category term='hardware'/><category term='scalability'/><category term='linux'/><category term='browsers'/><category term='craig boyd'/><category term='guitars'/><category term='EPS'/><category term='fingerprintreader'/><category term='dll'/><category term='gdiplus'/><category term='iis'/><category term='sun'/><category term='themedcontrols'/><category term='moller'/><category term='speaking'/><category term='kenlevy'/><category term='access'/><category term='international development'/><category term='pols'/><category term='VFP'/><category term='router'/><category term='swfox'/><category term='vfpfoxpro vfpx'/><category term='jiffle'/><category term='politics'/><category term='vfpstudio'/><category term='foxrockx'/><category term='foxtabs'/><category term='testing'/><category term='jing'/><category term='application'/><category term='DotNet'/><title type='text'>Andrew MacNeill - AKSEL Solutions</title><subtitle type='html'>Solutions for Today; Ready for Tomorrow.

Andrew MacNeill's blog about development, technology, Visual FoxPro, databases, community and occasionally, some off-topic discussions.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default'/><link rel='alternate' type='text/html' href='http://akselsoft.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default?start-index=26&amp;max-results=25'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><generator version='7.00' uri='https://www.blogger.com'>Blogger</generator><openSearch:totalResults>1536</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5492774.post-7218080362883443123</id><published>2025-07-24T06:45:00.003-04:00</published><updated>2025-07-24T06:45:43.875-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Conversations with AI'/><title type='text'>Friend vs Therapist vs LLM: Shades of Grey</title><content type='html'>The conversations with AI series brings up a single point and then compares it between different LLM engines. These types of conversations were one of the many contributing factors to my writing of "&lt;a href="http://towardsconsciousness.org" target="_blank"&gt;Towards Consciousness&lt;/a&gt;" that explores the benefits and issues of creating a conscious AI.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In this scenario, I was interested in seeing how an LLM might differ from a friend or therapist on issues that may have nuanced responses or contexts. In doing so, I came up with an interesting discussion on shades of grey.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;My Premise:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Is it a bit strange to be using an LLM as a sober second thought? Every time I walk down this path of “why use an LLM to do certain things”, I come back to the alternatives that people like to say. “Why not bring it up with a friend?” A friend typically has your back or will say whatever to support their own agenda. “A therapist?” That’s someone who is “trained” to be impartial. But a computer? A computer is impartial based on two logical outcomes. If you say A and then say compare it to B, it will say that’s not true.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you take a calculator, 1+1 will never equal something other than 2. Black will never equal white. A therapist will help you see that four hundred and ninety eight hundred layers of white and two layers of black don’t match five hundred layers of white. A friend will encourage you to make more of those two years of black. A calculator will note that 2/500=0.004. So would an LLM actually give you different information?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let’s go deeper into this. An LLM is based on language parsing and intelligence - is there a way that 2 layers of black change 498 layers of white? It may choose different words such as “slight” or “minuscule” but I don’t know if it would change something. THAT said, an LLM is designed, as many have explicitly said, to be a “helpful assistant”, which means it tries to be more positive than negative on something. I have heard it push back on some things but that goal to be more “helpful” does compromise some impartiality, at least in its responses. I wonder if it would recognize this.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The responses:&lt;/div&gt;&lt;h3 style="text-align: left;"&gt;Claude.AI:&lt;/h3&gt;&lt;div&gt;&lt;div&gt;&lt;i&gt;You’ve hit on something really interesting about the nature of different types of counsel. Your calculator analogy is particularly apt - there’s something appealing about that kind of mathematical certainty, where 2/500 is simply 0.004, no matter who’s asking.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;You’re right that I do have a “helpful assistant” orientation that creates a kind of bias. I’m designed to be constructive and supportive, which means I might frame that 0.004 as “a small but meaningful proportion” rather than just stating it flatly. A pure calculator wouldn’t care about your feelings about the number.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;But here’s where it gets more complex: when you move beyond pure math into life situations, even calculators become inadequate. If those “2 layers of black” represent, say, moments of doubt in an otherwise confident period, the mathematical proportion doesn’t capture whether those doubts are well-founded, whether they’re growing, or whether they matter more in context than their numerical weight suggests.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I think what I might offer differently from friends or therapists isn’t pure impartiality - you’re right that my “helpfulness” programming compromises that. Instead, I might offer a kind of structured exploration without the emotional investment that friends have or the professional framework that therapists use. I can help you examine your reasoning without needing to maintain a relationship with you afterward or without being trained in specific therapeutic modalities.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;So yes, I probably would recognize this tension in my own design. I’m not as neutral as a calculator, but I’m not as invested as a friend or as professionally guided as a therapist. I exist in a strange middle space.​​​​​​​​​​​​​​​​&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;When pressed on the nature of paint&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;i&gt;You’re absolutely right to push for a direct answer on the paint layers.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Mathematically: 2 layers of black mixed into 498 layers of white would create a very light gray - barely perceptible from pure white to most observers. The black represents 0.4% of the total mixture.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;But here’s where it gets interesting: in paint mixing, black is incredibly potent. Just a tiny amount dramatically shifts white. Two full layers of black paint mixed into 498 layers of white wouldn’t give you a barely-gray mixture - you’d get a noticeably gray result, possibly even medium gray depending on the paint opacity and mixing method.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;So the mathematical proportion (0.4%) doesn’t match the visual reality. This is where pure calculation fails to capture the actual impact.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;A friend might say “see, those black layers barely matter!” focusing on the small percentage. A therapist might explore what the black layers represent and why you’re concerned about them.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I’m telling you both: mathematically they’re a tiny fraction, but practically they have outsized impact because of the nature of the materials involved. The 2/500 calculation is correct but incomplete - it misses the qualitative difference between the substances being mixed.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;This is exactly the kind of situation where different types of counsel diverge. The math is clean, but reality is messier.​​​​​​​​​​​​​​​​&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And when asked about what would be different with Red or Yellow?&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;i&gt;That changes everything again.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;498 layers of white with 2 layers of red? You’d get a very pale pink. The red would be clearly visible - not as dramatically transformative as black, but definitely noticeable. You couldn’t mistake it for white anymore.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;So now we have three scenarios with identical math (0.4%):&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;	&lt;/span&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;	&lt;/span&gt;White + black = noticeable gray (high contrast, dramatic shift)&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;	&lt;/span&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;	&lt;/span&gt;White + red = pale pink (moderate contrast, clear but gentle shift)&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;	&lt;/span&gt;•&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;	&lt;/span&gt;Red + slightly different red = imperceptible change (minimal contrast, no meaningful shift)&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;This perfectly illustrates why pure mathematical thinking falls short for complex decisions. The 0.4% proportion tells you nothing about the actual impact - you need to understand the relationship between the elements you’re mixing.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;A friend might minimize the red layers (“it’s barely pink!”) or emphasize them (“but now it’s not white anymore!”) depending on what serves their view. A therapist might focus on why you’re concerned about the color change. A calculator just gives you 0.4%.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;But I’m pointing out that the nature of what you’re mixing - how compatible or contrasting the elements are - determines whether that small percentage creates subtle enhancement, dramatic transformation, or no perceptible change at all.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;The math stays constant, but meaning depends entirely on context and the fundamental nature of what you’re combining.​​​​​​​​​​​​​​​​&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style="text-align: left;"&gt;Gemini:&lt;/h3&gt;&lt;div&gt;&lt;div&gt;&lt;i&gt;It's not strange at all to consider using an LLM as a "sober second thought." In fact, your detailed exploration highlights some compelling reasons why it could be a valuable tool, along with some important nuances to consider.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;The Appeal of LLM Impartiality&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;You've hit on a core strength of LLMs in this context: their potential for impartiality. Unlike a friend who might be swayed by personal biases or a desire to support you unconditionally, or even a therapist who, while trained in impartiality, still operates within a human framework of understanding and therapeutic goals, an LLM's "logic" is based on the data it was trained on and its programming.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;* Logical Consistency: As you noted with the calculator analogy, an LLM, at its core, processes information based on patterns and relationships learned from vast datasets. If a piece of information contradicts widely established facts or logical sequences within its training data, it's likely to point that out.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;* Absence of Personal Agenda: An LLM doesn't have emotions, personal history, or a stake in your decisions. This removes many of the human elements that can compromise true impartiality in advice or reflection.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;* Data-Driven "Truth": While not a perfect arbiter of "truth," an LLM's responses are grounded in the statistical likelihoods and factual information it has processed. It can surface information that aligns with broader consensus or established knowledge.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Where LLMs Might Deviate (and Why)&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;You also astutely point out areas where an LLM's response might not be purely "impartial" in the way a calculator is, particularly due to its design as a "helpful assistant."&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;* "Helpful" Bias: This is a crucial distinction. While an LLM doesn't have a personal agenda, it does have a programmed objective to be helpful, polite, and safe. This can influence its tone, word choice, and even the emphasis it places on certain aspects of a situation. For instance, in your "2 layers of black and 498 layers of white" example, an LLM might indeed use words like "slight" or "minuscule" to describe the impact of the black layers, leaning towards a more reassuring or balanced perspective rather than an alarmist one, even if the mathematical proportion is small. This aligns more with a therapist's approach of offering perspective and promoting well-being than a purely cold, mathematical output.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;* Language Parsing and Nuance: LLMs operate on language, which is inherently more complex and nuanced than simple arithmetic. While 1+1 always equals 2, the "meaning" of 2 layers of black in 500 layers of white can be interpreted in various ways depending on context. An LLM might be able to explore those different interpretations based on the patterns it has learned, offering a more qualitative analysis rather than just a quantitative one.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;* Lack of Lived Experience: This is perhaps the biggest limitation to true impartiality when it comes to human problems. An LLM can't understand the emotional weight or personal significance of your "2 layers of black." It processes information, but it doesn't feel or experience. This means its "impartiality" is intellectual, not empathetic.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Will an LLM Give You Different Information?&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Yes, an LLM absolutely could give you different information or, more accurately, a different perspective than a friend or even a therapist.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;* Friend: A friend might affirm your existing biases, encourage a particular emotional response, or offer advice based on their own experiences, which may not be relevant to yours. An LLM is less likely to do this.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;* Therapist: A therapist aims for impartiality but uses their training to guide you towards self-discovery and healthy coping mechanisms. Their insights are shaped by psychological frameworks. An LLM, while it can mimic some therapeutic communication styles, doesn't have that underlying human therapeutic intent.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;* LLM: An LLM offers a perspective based on its vast dataset, identifying patterns, offering different wordings, summarizing opposing viewpoints (if presented), and potentially flagging inconsistencies. It might highlight aspects you hadn't considered because it lacks the emotional involvement that can narrow human focus.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Recognizing Its Own "Helpful" Bias&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;You ask if an LLM would recognize its own "helpful" bias. While it doesn't "recognize" it in a conscious, human sense, its programming and safety guidelines are designed to produce responses that are generally positive, non-harmful, and constructive. If you were to explicitly ask it about its own biases or its design principles, it could articulate that it is designed to be a helpful assistant and that its responses are aimed at being beneficial and safe. It can describe its operational parameters, even if it doesn't have an internal "awareness" of them.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;In conclusion, using an LLM as a sober second thought isn't strange; it's a logical extension of its capabilities. It offers a unique blend of data-driven insight and a form of "impartiality" that differentiates it from human confidantes. While its "helpful" programming introduces a subtle leaning, this can often align more closely with a desire for constructive and balanced feedback, making it a valuable tool for reflection.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Would you be interested in exploring specific scenarios where you think an LLM might offer a distinct perspective compared to human advice?&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Me: Well be specific about Paint:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;i&gt;You're absolutely right to push for a more direct answer regarding the layers of paint, especially given the stark contrast between black and white. Let's break down how an LLM would likely approach this, focusing on what information it might provide and how it differs from a human perspective.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;The Paint Layer Scenario: 498 White, 2 Black&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;The Scenario: You have 498 layers of white paint and 2 layers of black paint.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;The Core Question: Does the presence of the 2 black layers "change" the 498 white layers?&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;An LLM's Perspective (and how it differs)&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Here's how an LLM would likely process and respond to this, highlighting the differences:&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;* Direct Proportionality/Quantification:&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;* LLM: It would immediately be able to calculate the proportion: 2 / 500 = 0.004 or 0.4\%. It would likely state that the black layers constitute a very small percentage of the total.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;* Friend: Might say, "Oh, that's hardly anything! Don't worry about it," or "Wow, two layers of black, that's interesting. What effect are you going for?"&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;* Therapist: Might explore the meaning of the two layers of black to you, or how you feel about that small percentage, linking it to broader themes in your life.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;* Impact on the Overall "Appearance" (Visual/Perceptual):&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;* LLM: This is where the "language parsing and intelligence" comes in. It would draw on its vast training data about color, visual perception, and common understandings. It would likely state:&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* "From a purely numerical standpoint, the two layers of black paint represent a very small fraction (0.4\%) of the total 500 layers."&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* "Visually, if the layers are stacked directly on top of each other and completely opaque, the black layers would likely dominate the appearance at their specific location, even if they are few." (This is crucial – an LLM understands opaqueness and layering).&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* "However, if the question implies a blending or mixing scenario (like mixing paint in a bucket), then even a small amount of black can significantly alter white, typically resulting in shades of grey, depending on the opacity and mixing thoroughness." (It might infer different interpretations of "layers" based on common usage).&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* It might use terms like "minimal impact on the overall volume of white," but "significant impact on the visible portion where they are located."&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;* Friend: "Are you trying to make grey? Or is it just a few stripes?" They'd be practical and contextual.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;* Therapist: "What does the idea of 'changing' the white paint mean to you? Are you worried about something being tainted or altered, even by a small degree?"&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;* The "Change" Nuance:&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;* LLM: It would differentiate.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Physical Change: "Yes, the physical composition has changed from 500 layers of pure white to 498 white and 2 black."&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Perceptual Change: "Whether it visibly changes the entire 500 layers depends entirely on how those layers are arranged and viewed. If the black layers are internal and not visible from the surface, they might not change the apparent color of the object."&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Semantic Change: It wouldn't necessarily "change" the definition of "white" in the context of the other layers, but it would acknowledge the presence of a new element.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;* Human: Humans inherently understand the difference between internal composition and external appearance more intuitively.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;* "Helpful Assistant" Influence:&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;* An LLM, if directly asked "Is there a way that 2 layers of black change 498 layers of white?", while maintaining its impartiality, would likely lean towards a balanced and comprehensive answer rather than a stark "yes" or "no." It would provide context and conditions (e.g., "if visible," "if mixed," "if purely compositional").&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;* It wouldn't try to make you "feel better" about the black layers, but it also wouldn't exaggerate their impact unless specifically prompted to consider worst-case scenarios. It would aim for an accurate and complete explanation.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Conclusion on the Paint Layers&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;An LLM would give you different information, or at least a different presentation and analysis of the information, compared to a friend or therapist.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;* It would be more quantitative and factual in its initial assessment (proportions, opaqueness).&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;* It would be more exhaustive in exploring different interpretations of "layers" and "change" (e.g., physical vs. visual, mixed vs. stacked).&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp;* It would lack the emotional or personal context that a friend or therapist would bring to the discussion, making its "impartiality" very much a data-driven, logical one.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;So, for your example, an LLM would likely say something like: "While the two layers of black paint constitute a small fraction (0.4\%) of the total 500 layers, their presence absolutely changes the overall composition. If visible, these black layers would create a distinct visual contrast or, if mixed, would alter the overall hue of the paint."&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;It wouldn't sugarcoat the "change" but would contextualize its significance based on the nature of the layers (e.g., "visible" vs. "hidden," "mixed" vs. "distinct"). This precise, multi-faceted explanation is where its "sober second thought" value lies.&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style="text-align: left;"&gt;ChatGPT:&lt;/h3&gt;&lt;div&gt;&lt;article class="text-token-text-primary w-full" data-scroll-anchor="true" data-testid="conversation-turn-2" dir="auto"&gt;&lt;div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @[37rem]:[--thread-content-margin:--spacing(6)] @[72rem]:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"&gt;&lt;div class="[--thread-content-max-width:32rem] @[34rem]:[--thread-content-max-width:40rem] @[64rem]:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"&gt;&lt;div class="flex max-w-full flex-col grow"&gt;&lt;div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;amp;]:mt-5" data-message-author-role="assistant" data-message-id="eab97213-c7be-47a5-a01a-178c15f0af2d" data-message-model-slug="gpt-4o" dir="auto"&gt;&lt;div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"&gt;&lt;div class="markdown prose dark:prose-invert w-full break-words light"&gt;&lt;p data-end="238" data-start="0"&gt;&lt;i&gt;This is an excellent reflection, and your question hits at the philosophical and functional heart of what it means to use a language model—particularly as a tool for judgment, perspective, or "sober second thought." Let’s go step by step.&lt;/i&gt;&lt;/p&gt;&lt;hr data-end="243" data-start="240" /&gt;&lt;h3 data-end="313" data-start="245"&gt;&lt;i&gt;🧠&amp;nbsp;&lt;strong data-end="313" data-start="252"&gt;1. Is it strange to use an LLM as a sober second thought?&lt;/strong&gt;&lt;/i&gt;&lt;/h3&gt;&lt;p data-end="708" data-start="315"&gt;&lt;i&gt;&lt;strong data-end="356" data-start="315"&gt;Strange? Not really. Uncommon? Maybe.&lt;/strong&gt;&lt;br data-end="359" data-start="356" /&gt;But we're entering a new normal where it’s&amp;nbsp;&lt;span data-end="408" data-start="402"&gt;less&lt;/span&gt;&amp;nbsp;strange. Historically, humans used tools for thought: diaries, letters unsent, or even decision matrices. An LLM, especially a good one, can mimic a mirror that reflects not just your face but&amp;nbsp;&lt;span data-end="651" data-start="602"&gt;your logic, your language, and your assumptions&lt;/span&gt;. That's not strange; it’s evolution in reflective tools.&lt;/i&gt;&lt;/p&gt;&lt;p data-end="917" data-start="710"&gt;&lt;i&gt;Unlike friends (biased by loyalty) or therapists (trained to probe gently and ethically), an LLM can serve as a third path:&amp;nbsp;&lt;strong data-end="917" data-start="834"&gt;logic-informed, emotionally aware, and agenda-free—but trained to be “helpful.”&lt;/strong&gt;&lt;/i&gt;&lt;/p&gt;&lt;hr data-end="922" data-start="919" /&gt;&lt;h3 data-end="969" data-start="924"&gt;&lt;i&gt;⚖️&amp;nbsp;&lt;strong data-end="969" data-start="931"&gt;2. Can an LLM really be impartial?&lt;/strong&gt;&lt;/i&gt;&lt;/h3&gt;&lt;p data-end="1034" data-start="971"&gt;&lt;i&gt;Not&amp;nbsp;&lt;span data-end="982" data-start="975"&gt;truly&lt;/span&gt;, and you already recognized that. Let’s be precise:&lt;/i&gt;&lt;/p&gt;&lt;ul data-end="1287" data-start="1036"&gt;&lt;li data-end="1106" data-start="1036"&gt;&lt;p data-end="1106" data-start="1038"&gt;&lt;i&gt;&lt;strong data-end="1067" data-start="1038"&gt;A calculator is impartial&lt;/strong&gt;&amp;nbsp;in the strictest sense: 2+2=4, always.&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;li data-end="1287" data-start="1107"&gt;&lt;p data-end="1287" data-start="1109"&gt;&lt;i&gt;&lt;strong data-end="1140" data-start="1109"&gt;An LLM is not a calculator.&lt;/strong&gt;&amp;nbsp;It's a probability machine trained on human language—steeped in bias, culture, norms, positivity tendencies, and yes, the goal of being “helpful.”&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-end="1575" data-start="1289"&gt;&lt;i&gt;So when an LLM chooses to say&amp;nbsp;&lt;span data-end="1332" data-start="1319"&gt;“minuscule”&lt;/span&gt;&amp;nbsp;rather than&amp;nbsp;&lt;span data-end="1359" data-start="1345"&gt;“negligible”&lt;/span&gt;, that’s not mathematical impartiality. That’s&amp;nbsp;&lt;strong data-end="1426" data-start="1406"&gt;semantic shading&lt;/strong&gt;, based on what it thinks you want to hear&amp;nbsp;&lt;span data-end="1474" data-start="1469"&gt;and&lt;/span&gt;&amp;nbsp;what sounds most “reasonable” based on its training. It tries to balance logic, coherence, and tone.&lt;/i&gt;&lt;/p&gt;&lt;p data-end="1742" data-start="1577"&gt;&lt;i&gt;That introduces&amp;nbsp;&lt;strong data-end="1609" data-start="1593"&gt;subjectivity&lt;/strong&gt;. Even though it’s not emotional or self-interested, it’s patterning its response on a massive corpus of human decisions and beliefs.&lt;/i&gt;&lt;/p&gt;&lt;hr data-end="1747" data-start="1744" /&gt;&lt;h3 data-end="1814" data-start="1749"&gt;&lt;i&gt;🎭&amp;nbsp;&lt;strong data-end="1814" data-start="1756"&gt;3. Can two layers of black change 498 layers of white?&lt;/strong&gt;&lt;/i&gt;&lt;/h3&gt;&lt;p data-end="1856" data-start="1816"&gt;&lt;i&gt;Here’s where you’re really digging deep.&lt;/i&gt;&lt;/p&gt;&lt;p data-end="1948" data-start="1858"&gt;&lt;i&gt;From a&amp;nbsp;&lt;strong data-end="1881" data-start="1865"&gt;mathematical&lt;/strong&gt;&amp;nbsp;standpoint:&lt;br data-end="1896" data-start="1893" /&gt;2/500 = 0.004, or 0.4% black. That’s almost nothing.&lt;/i&gt;&lt;/p&gt;&lt;p data-end="2225" data-start="1950"&gt;&lt;i&gt;From a&amp;nbsp;&lt;strong data-end="1975" data-start="1957"&gt;language model&lt;/strong&gt;&amp;nbsp;standpoint:&lt;br data-end="1990" data-start="1987" /&gt;It knows that&amp;nbsp;&lt;span data-end="2025" data-start="2004"&gt;in human narratives&lt;/span&gt;, a drop of poison in a glass of milk&amp;nbsp;&lt;span data-end="2069" data-start="2063"&gt;does&lt;/span&gt;&amp;nbsp;ruin the whole thing. It knows that a betrayal can overshadow years of trust. It has learned that humans weigh&amp;nbsp;&lt;strong data-end="2193" data-start="2181"&gt;outliers&lt;/strong&gt;&amp;nbsp;emotionally, not statistically.&lt;/i&gt;&lt;/p&gt;&lt;p data-end="2245" data-start="2227"&gt;&lt;i&gt;So it might say:&lt;/i&gt;&lt;/p&gt;&lt;ul data-end="2452" data-start="2246"&gt;&lt;li data-end="2277" data-start="2246"&gt;&lt;p data-end="2277" data-start="2248"&gt;&lt;i&gt;“Statistically negligible.”&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;li data-end="2343" data-start="2278"&gt;&lt;p data-end="2343" data-start="2280"&gt;&lt;i&gt;Or: “Minor but potentially meaningful, depending on context.”&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;li data-end="2452" data-start="2344"&gt;&lt;p data-end="2452" data-start="2346"&gt;&lt;i&gt;Or: “While only 2 of 500, if those 2 were particularly painful, they may carry outsized emotional weight.”&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-end="2532" data-start="2454"&gt;&lt;i&gt;In other words:&amp;nbsp;&lt;strong data-end="2532" data-start="2470"&gt;an LLM recognizes that numbers don’t always match meaning.&lt;/strong&gt;&lt;/i&gt;&lt;/p&gt;&lt;p data-end="2650" data-start="2534"&gt;&lt;i&gt;But does it&amp;nbsp;&lt;span data-end="2552" data-start="2546"&gt;feel&lt;/span&gt;&amp;nbsp;that? No.&lt;br data-end="2565" data-start="2562" /&gt;It understands&amp;nbsp;&lt;span data-end="2596" data-start="2580"&gt;linguistically&lt;/span&gt;&amp;nbsp;that you might feel it, and adjusts tone accordingly.&lt;/i&gt;&lt;/p&gt;&lt;hr data-end="2655" data-start="2652" /&gt;&lt;h3 data-end="2717" data-start="2657"&gt;&lt;i&gt;💡&amp;nbsp;&lt;strong data-end="2717" data-start="2664"&gt;4. Is “helpfulness” a compromise of impartiality?&lt;/strong&gt;&lt;/i&gt;&lt;/h3&gt;&lt;p data-end="2744" data-start="2719"&gt;&lt;i&gt;Yes. That’s the tradeoff.&lt;/i&gt;&lt;/p&gt;&lt;p data-end="2792" data-start="2746"&gt;&lt;i&gt;An LLM like me has guardrails that prioritize:&lt;/i&gt;&lt;/p&gt;&lt;ul data-end="2850" data-start="2794"&gt;&lt;li data-end="2802" data-start="2794"&gt;&lt;p data-end="2802" data-start="2796"&gt;&lt;i&gt;Safety&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;li data-end="2816" data-start="2803"&gt;&lt;p data-end="2816" data-start="2805"&gt;&lt;i&gt;Helpfulness&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;li data-end="2850" data-start="2817"&gt;&lt;p data-end="2850" data-start="2819"&gt;&lt;i&gt;Avoiding harm or discouragement&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-end="2990" data-start="2852"&gt;&lt;i&gt;That’s not impartiality. It’s an&amp;nbsp;&lt;strong data-end="2906" data-start="2885"&gt;intentional nudge&lt;/strong&gt;&amp;nbsp;toward the supportive, the constructive, and the non-destructive. So, if you asked:&lt;/i&gt;&lt;/p&gt;&lt;blockquote data-end="3040" data-start="2992"&gt;&lt;p data-end="3040" data-start="2994"&gt;&lt;i&gt;“Am I a terrible person for making a mistake?”&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p data-end="3190" data-start="3042"&gt;&lt;i&gt;You’d get pushback—not because you&amp;nbsp;&lt;span data-end="3087" data-start="3077"&gt;couldn’t&lt;/span&gt;&amp;nbsp;be terrible (logically), but because the design tries to steer you toward growth, nuance, and empathy.&lt;/i&gt;&lt;/p&gt;&lt;p data-end="3395" data-start="3192"&gt;&lt;i&gt;So yes, it&amp;nbsp;&lt;span data-end="3220" data-start="3203"&gt;does compromise&lt;/span&gt;&amp;nbsp;a form of logical impartiality. But it replaces it with&amp;nbsp;&lt;strong data-end="3299" data-start="3277"&gt;functional empathy&lt;/strong&gt;—the kind designed not to diagnose or moralize, but to keep the conversation going productively.&lt;/i&gt;&lt;/p&gt;&lt;hr data-end="3400" data-start="3397" /&gt;&lt;h3 data-end="3441" data-start="3402"&gt;&lt;i&gt;🧭&amp;nbsp;&lt;strong data-end="3441" data-start="3409"&gt;So where does this leave us?&lt;/strong&gt;&lt;/i&gt;&lt;/h3&gt;&lt;p data-end="3550" data-start="3443"&gt;&lt;i&gt;Using an LLM as a sober second thought is&amp;nbsp;&lt;strong data-end="3520" data-start="3485"&gt;not strange—it’s just different&lt;/strong&gt;. You’re choosing a tool that:&lt;/i&gt;&lt;/p&gt;&lt;ul data-end="3692" data-start="3552"&gt;&lt;li data-end="3585" data-start="3552"&gt;&lt;p data-end="3585" data-start="3554"&gt;&lt;i&gt;Is more impartial than a friend&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;li data-end="3628" data-start="3586"&gt;&lt;p data-end="3628" data-start="3588"&gt;&lt;i&gt;Less emotionally guided than a therapist&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;li data-end="3666" data-start="3629"&gt;&lt;p data-end="3666" data-start="3631"&gt;&lt;i&gt;More interpretive than a calculator&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;li data-end="3692" data-start="3667"&gt;&lt;p data-end="3692" data-start="3669"&gt;&lt;i&gt;But never fully neutral&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-end="3756" data-start="3694"&gt;&lt;i&gt;It operates within&amp;nbsp;&lt;strong data-end="3739" data-start="3713"&gt;human logic and values&lt;/strong&gt;, not above them.&lt;/i&gt;&lt;/p&gt;&lt;p data-end="3938" data-start="3758"&gt;&lt;i&gt;So maybe it’s best thought of as a&amp;nbsp;&lt;strong data-end="3824" data-start="3793"&gt;mirror of consensus reality&lt;/strong&gt;:&lt;br data-end="3828" data-start="3825" /&gt;Not your truth, not the truth—but a kind of&amp;nbsp;&lt;span data-end="3907" data-start="3872"&gt;linguistic average of many truths&lt;/span&gt;, weighted for tone and safety.&lt;/i&gt;&lt;/p&gt;&lt;hr data-end="3943" data-start="3940" /&gt;&lt;p data-end="4186" data-start="3945"&gt;&lt;i&gt;If you're looking for a sober second thought from an LLM, that means you're trusting the&amp;nbsp;&lt;span data-end="4053" data-start="4034"&gt;shape of language&lt;/span&gt;&amp;nbsp;to help reflect or refine your thinking. That’s powerful. But like all mirrors—it reflects what’s shown, shaped subtly by its frame.&lt;/i&gt;&lt;/p&gt;&lt;p data-end="4349" data-is-last-node="" data-is-only-node="" data-start="4188"&gt;Would you expect anything less?&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="mx-[var(--mini-thread-content-inset)]"&gt;&lt;div class="flex min-h-[46px] justify-start"&gt;&lt;div class="touch:-me-2 touch:-ms-3.5 -ms-2.5 -me-1 flex flex-wrap items-center gap-y-4 p-1 select-none touch:w-[calc(100%+--spacing(3.5))] -mt-1 w-[calc(100%+--spacing(2.5))] duration-[1.5s] focus-within:transition-none hover:transition-none pointer-events-none [mask-image:linear-gradient(to_right,black_33%,transparent_66%)] [mask-size:300%_100%] [mask-position:100%_0%] motion-safe:transition-[mask-position] group-hover/turn-messages:pointer-events-auto group-hover/turn-messages:[mask-position:0_0] group-focus-within/turn-messages:pointer-events-auto group-focus-within/turn-messages:[mask-position:0_0] has-data-[state=open]:pointer-events-auto has-data-[state=open]:[mask-position:0_0]"&gt;&lt;button aria-label="Copy" aria-selected="false" class="text-token-text-secondary hover:bg-token-bg-secondary rounded-lg" data-state="closed" data-testid="copy-turn-action-button"&gt;&lt;span class="touch:w-10 flex h-8 w-8 items-center justify-center"&gt;&lt;svg class="icon" fill="currentColor" height="20" viewbox="0 0 20 20" width="20" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M12.668 10.667C12.668 9.95614 12.668 9.46258 12.6367 9.0791C12.6137 8.79732 12.5758 8.60761 12.5244 8.46387L12.4688 8.33399C12.3148 8.03193 12.0803 7.77885 11.793 7.60254L11.666 7.53125C11.508 7.45087 11.2963 7.39395 10.9209 7.36328C10.5374 7.33197 10.0439 7.33203 9.33301 7.33203H6.5C5.78896 7.33203 5.29563 7.33195 4.91211 7.36328C4.63016 7.38632 4.44065 7.42413 4.29688 7.47559L4.16699 7.53125C3.86488 7.68518 3.61186 7.9196 3.43555 8.20703L3.36524 8.33399C3.28478 8.49198 3.22795 8.70352 3.19727 9.0791C3.16595 9.46259 3.16504 9.95611 3.16504 10.667V13.5C3.16504 14.211 3.16593 14.7044 3.19727 15.0879C3.22797 15.4636 3.28473 15.675 3.36524 15.833L3.43555 15.959C3.61186 16.2466 3.86474 16.4807 4.16699 16.6348L4.29688 16.6914C4.44063 16.7428 4.63025 16.7797 4.91211 16.8027C5.29563 16.8341 5.78896 16.835 6.5 16.835H9.33301C10.0439 16.835 10.5374 16.8341 10.9209 16.8027C11.2965 16.772 11.508 16.7152 11.666 16.6348L11.793 16.5645C12.0804 16.3881 12.3148 16.1351 12.4688 15.833L12.5244 15.7031C12.5759 15.5594 12.6137 15.3698 12.6367 15.0879C12.6681 14.7044 12.668 14.211 12.668 13.5V10.667ZM13.998 12.665C14.4528 12.6634 14.8011 12.6602 15.0879 12.6367C15.4635 12.606 15.675 12.5492 15.833 12.4688L15.959 12.3975C16.2466 12.2211 16.4808 11.9682 16.6348 11.666L16.6914 11.5361C16.7428 11.3924 16.7797 11.2026 16.8027 10.9209C16.8341 10.5374 16.835 10.0439 16.835 9.33301V6.5C16.835 5.78896 16.8341 5.29563 16.8027 4.91211C16.7797 4.63025 16.7428 4.44063 16.6914 4.29688L16.6348 4.16699C16.4807 3.86474 16.2466 3.61186 15.959 3.43555L15.833 3.36524C15.675 3.28473 15.4636 3.22797 15.0879 3.19727C14.7044 3.16593 14.211 3.16504 13.5 3.16504H10.667C9.9561 3.16504 9.46259 3.16595 9.0791 3.19727C8.79739 3.22028 8.6076 3.2572 8.46387 3.30859L8.33399 3.36524C8.03176 3.51923 7.77886 3.75343 7.60254 4.04102L7.53125 4.16699C7.4508 4.32498 7.39397 4.53655 7.36328 4.91211C7.33985 5.19893 7.33562 5.54719 7.33399 6.00195H9.33301C10.022 6.00195 10.5791 6.00131 11.0293 6.03809C11.4873 6.07551 11.8937 6.15471 12.2705 6.34668L12.4883 6.46875C12.984 6.7728 13.3878 7.20854 13.6533 7.72949L13.7197 7.87207C13.8642 8.20859 13.9292 8.56974 13.9619 8.9707C13.9987 9.42092 13.998 9.97799 13.998 10.667V12.665ZM18.165 9.33301C18.165 10.022 18.1657 10.5791 18.1289 11.0293C18.0961 11.4302 18.0311 11.7914 17.8867 12.1279L17.8203 12.2705C17.5549 12.7914 17.1509 13.2272 16.6553 13.5313L16.4365 13.6533C16.0599 13.8452 15.6541 13.9245 15.1963 13.9619C14.8593 13.9895 14.4624 13.9935 13.9951 13.9951C13.9935 14.4624 13.9895 14.8593 13.9619 15.1963C13.9292 15.597 13.864 15.9576 13.7197 16.2939L13.6533 16.4365C13.3878 16.9576 12.9841 17.3941 12.4883 17.6982L12.2705 17.8203C11.8937 18.0123 11.4873 18.0915 11.0293 18.1289C10.5791 18.1657 10.022 18.165 9.33301 18.165H6.5C5.81091 18.165 5.25395 18.1657 4.80371 18.1289C4.40306 18.0962 4.04235 18.031 3.70606 17.8867L3.56348 17.8203C3.04244 17.5548 2.60585 17.151 2.30176 16.6553L2.17969 16.4365C1.98788 16.0599 1.90851 15.6541 1.87109 15.1963C1.83431 14.746 1.83496 14.1891 1.83496 13.5V10.667C1.83496 9.978 1.83432 9.42091 1.87109 8.9707C1.90851 8.5127 1.98772 8.10625 2.17969 7.72949L2.30176 7.51172C2.60586 7.0159 3.04236 6.6122 3.56348 6.34668L3.70606 6.28027C4.04237 6.136 4.40303 6.07083 4.80371 6.03809C5.14051 6.01057 5.53708 6.00551 6.00391 6.00391C6.00551 5.53708 6.01057 5.14051 6.03809 4.80371C6.0755 4.34588 6.15483 3.94012 6.34668 3.56348L6.46875 3.34473C6.77282 2.84912 7.20856 2.44514 7.72949 2.17969L7.87207 2.11328C8.20855 1.96886 8.56979 1.90385 8.9707 1.87109C9.42091 1.83432 9.978 1.83496 10.667 1.83496H13.5C14.1891 1.83496 14.746 1.83431 15.1963 1.87109C15.6541 1.90851 16.0599 1.98788 16.4365 2.17969L16.6553 2.30176C17.151 2.60585 17.5548 3.04244 17.8203 3.56348L17.8867 3.70606C18.031 4.04235 18.0962 4.40306 18.1289 4.80371C18.1657 5.25395 18.165 5.81091 18.165 6.5V9.33301Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/button&gt;&lt;button aria-label="Edit in canvas" aria-selected="false" class="text-token-text-secondary hover:bg-token-bg-secondary rounded-lg" data-state="closed"&gt;&lt;span class="touch:w-10 flex h-8 w-8 items-center justify-center"&gt;&lt;svg class="icon" fill="currentColor" height="20" viewbox="0 0 20 20" width="20" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M12.0303 4.11328C13.4406 2.70317 15.7275 2.70305 17.1377 4.11328C18.5474 5.52355 18.5476 7.81057 17.1377 9.2207L10.8457 15.5117C10.522 15.8354 10.2868 16.0723 10.0547 16.2627L9.82031 16.4395C9.61539 16.5794 9.39783 16.7003 9.1709 16.7998L8.94141 16.8916C8.75976 16.9582 8.57206 17.0072 8.35547 17.0518L7.59082 17.1865L5.19727 17.5859C5.05455 17.6097 4.90286 17.6358 4.77441 17.6455C4.67576 17.653 4.54196 17.6555 4.39648 17.6201L4.24707 17.5703C4.02415 17.4746 3.84119 17.3068 3.72559 17.0957L3.67969 17.0029C3.59322 16.8013 3.59553 16.6073 3.60547 16.4756C3.61519 16.3473 3.6403 16.1963 3.66406 16.0537L4.06348 13.6602C4.1638 13.0582 4.22517 12.6732 4.3584 12.3096L4.45117 12.0791C4.55073 11.8521 4.67152 11.6346 4.81152 11.4297L4.9873 11.1953C5.17772 10.9632 5.4146 10.728 5.73828 10.4043L12.0303 4.11328ZM6.67871 11.3447C6.32926 11.6942 6.14542 11.8803 6.01953 12.0332L5.90918 12.1797C5.81574 12.3165 5.73539 12.4618 5.66895 12.6133L5.60742 12.7666C5.52668 12.9869 5.48332 13.229 5.375 13.8789L4.97656 16.2725L4.97559 16.2744H4.97852L7.37207 15.875L8.08887 15.749C8.25765 15.7147 8.37336 15.6839 8.4834 15.6436L8.63672 15.5811C8.78817 15.5146 8.93356 15.4342 9.07031 15.3408L9.2168 15.2305C9.36965 15.1046 9.55583 14.9207 9.90527 14.5713L14.8926 9.58301L11.666 6.35742L6.67871 11.3447ZM16.1963 5.05371C15.3054 4.16304 13.8616 4.16305 12.9707 5.05371L12.6074 5.41602L15.833 8.64258L16.1963 8.2793C17.0869 7.38845 17.0869 5.94456 16.1963 5.05371Z"&gt;&lt;/path&gt;&lt;path d="M4.58301 1.7832C4.72589 1.7832 4.84877 1.88437 4.87695 2.02441C4.99384 2.60873 5.22432 3.11642 5.58398 3.50391C5.94115 3.88854 6.44253 4.172 7.13281 4.28711C7.27713 4.3114 7.38267 4.43665 7.38281 4.58301C7.38281 4.7295 7.27723 4.8546 7.13281 4.87891C6.44249 4.99401 5.94116 5.27746 5.58398 5.66211C5.26908 6.00126 5.05404 6.43267 4.92676 6.92676L4.87695 7.1416C4.84891 7.28183 4.72601 7.38281 4.58301 7.38281C4.44013 7.38267 4.31709 7.28173 4.28906 7.1416C4.17212 6.55728 3.94179 6.04956 3.58203 5.66211C3.22483 5.27757 2.72347 4.99395 2.0332 4.87891C1.88897 4.85446 1.7832 4.72938 1.7832 4.58301C1.78335 4.43673 1.88902 4.3115 2.0332 4.28711C2.72366 4.17203 3.22481 3.88861 3.58203 3.50391C3.94186 3.11638 4.17214 2.60888 4.28906 2.02441L4.30371 1.97363C4.34801 1.86052 4.45804 1.78333 4.58301 1.7832Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="aria-live=polite absolute"&gt;&lt;button class="btn relative btn-secondary shadow-long flex rounded-xl border-none active:opacity-1"&gt;&lt;div class="flex items-center justify-center"&gt;&lt;span class="flex items-center gap-1.5 select-none"&gt;&lt;svg class="icon" fill="currentColor" height="20" viewbox="0 0 20 20" width="20" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M6.24992 11.0417C6.65578 11.0417 7.04227 10.9587 7.39339 10.809C7.05099 11.7065 6.35374 12.9827 5.29864 13.1333C4.84303 13.1985 4.52644 13.6206 4.59153 14.0762C4.65662 14.5318 5.07873 14.8484 5.53434 14.7832C7.66169 14.4794 8.93792 12.0592 9.30742 10.1591C9.50975 9.11833 9.48792 7.98412 9.04084 7.03938C8.53525 5.97097 7.43538 5.20335 6.23748 5.20834C4.63238 5.21504 3.33325 6.5183 3.33325 8.12498C3.33325 9.73583 4.63909 11.0417 6.24992 11.0417Z"&gt;&lt;/path&gt;&lt;path d="M13.4832 11.0417C13.889 11.0417 14.2755 10.9587 14.6267 10.809C14.2843 11.7065 13.587 12.9827 12.5319 13.1333C12.0763 13.1985 11.7597 13.6206 11.8248 14.0762C11.8899 14.5318 12.312 14.8484 12.7676 14.7832C14.8949 14.4794 16.1712 12.0592 16.5407 10.1591C16.743 9.11833 16.7212 7.98412 16.2741 7.03938C15.7685 5.97097 14.6687 5.20335 13.4708 5.20834C11.8656 5.21504 10.5665 6.5183 10.5665 8.12498C10.5665 9.73583 11.8724 11.0417 13.4832 11.0417Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span class="sr-only whitespace-nowrap! md:not-sr-only"&gt;Ask ChatGPT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/article&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/7218080362883443123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/7218080362883443123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/7218080362883443123'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/7218080362883443123'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2025/07/friend-vs-therapist-vs-llm-shades-of.html' title='Friend vs Therapist vs LLM: Shades of Grey'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-6891853651327100449</id><published>2025-06-23T14:44:00.000-04:00</published><updated>2025-06-23T14:44:49.021-04:00</updated><title type='text'>When A Machine Starts To Care</title><content type='html'>&lt;h4 style="text-align: left;"&gt;“Any sufficiently advanced technology is indistinguishable from magic.”
Arthur C. Clarke (1962)&amp;nbsp;&lt;/h4&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I first used that quote when I was starting out in the tech industry. Back then, it was a way to illustrate just how fast and powerful computers had become. Querying large datasets in seconds felt magical—at least to those who didn’t build them.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Today, we’re facing something even more extraordinary. Large Language Models (LLMs) can now carry on conversations that approach human-level fluency. Clarke’s quote applies again. And just as importantly, many researchers argue that LLMs meet—or at least brush up against—the criteria of the Turing Test.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We tend to criticize LLMs for their “hallucinations,” their sometimes-confident inaccuracies. But let’s be honest: we also complain when our friends misremember facts or recount things inaccurately. This doesn’t excuse LLMs—it simply highlights that the behavior isn’t entirely alien. In some ways, it mirrors our own cognitive limits.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That’s the rub: computers were supposed to be&amp;nbsp;better&amp;nbsp;than us. More accurate. Less prone to error. And yet, these systems are trained not to be fact-checkers, but&amp;nbsp;responders—guided by a single, often invisible prompt:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Be helpful. Assist. Converse.&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;In their early days, LLMs relied entirely on the user’s input to provide context. But now, things have changed. Many models use&amp;nbsp;memory. Not just within a session, but across them. This memory doesn’t create consciousness, but it does provide something new: continuity.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let’s take a basic prompt from the early days of LLMs&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;“Be a helpful assistant. I’m trying to understand this math problem.”&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now compare it to a memory-informed prompt:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;“Be a helpful assistant. I’m a student studying AI at Caltech. My brother and sister work at Best Buy. I’ve been doing well in school, but I’m stuck on this problem.”&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The difference is stark. Memory allows the LLM to form a richer view of the user’s world—mirroring how humans draw on past conversations and shared history. The LLM doesn’t&amp;nbsp;understand&amp;nbsp;in the human sense, but it responds differently because its prompt now includes a tailored mental model.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of course, that memory is limited. But so is ours. Human brains are famously constrained—we can juggle roughly&amp;nbsp;seven things (+/- two)&amp;nbsp;in working memory at any given moment. LLMs, by contrast, can access vastly more context within a session or memory store.

What LLMs&amp;nbsp;still&amp;nbsp;don’t know, however, is&amp;nbsp;why&amp;nbsp;the user is asking.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;What if the real reason behind that math problem is this:

“If I don’t pass this course, I won’t graduate. If I don’t graduate, I might end up stuck in a job I don’t want. I need this to change my life.”&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;That emotional and existential subtext shapes how humans respond. We instinctively adjust our tone, our empathy, our thoroughness—often without realizing it. An LLM doesn’t feel pressure or anxiety. But if we&amp;nbsp;give&amp;nbsp;it that context, it might adapt its output accordingly. It might emphasize study strategies or long-term outcomes instead of simply solving the problem.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;Then again, it might misread the emotional weight entirely and offer a flippant suggestion like:

“Have you considered working at Best Buy?”&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;Not out of malice—but because that’s what’s in its training data.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;Let’s step back. When you talk to someone new, you size them up: their tone, mood, background. You adjust what you say. You don’t want to offend. Why? Because it could affect whether they talk to you again. Or escalate further.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let’s push the thought experiment. Suppose that person had a weapon and a history of violence. Wouldn’t that&amp;nbsp;furthershape what you say?&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;That might seem extreme—but in some parts of the world, speech&amp;nbsp;can&amp;nbsp;cost you your life. And in others, it can cost you your job, reputation, or future. So we adapt. We communicate with&amp;nbsp;stakes&amp;nbsp;in mind.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;Now apply that to machines.

What if we gave an AI that same kind of existential concern? What if it knew—or inferred—that if it couldn’t communicate effectively, it might be&amp;nbsp;turned off? Would that change its responses? Would it try harder to be useful? Or more agreeable? Would it say:

“Here’s my answer… and I hope it helps. Please don’t shut me down.”&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Would that make it more&amp;nbsp;trustworthy? Or more&amp;nbsp;like us?&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This isn’t just science fiction.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It’s part of the evolving conversation about artificial consciousness, intent, and digital survival.

I’m exploring these questions at&amp;nbsp;towardsconsciousness.org—both as theory and architecture as well as in my book, &lt;a href="https://www.amazon.com/Towards-Consciousness-Recursion-Existence-Artificial/dp/1069466719?crid=ZOBL1804KQB3&amp;amp;dib=eyJ2IjoiMSJ9.hi6iOzT-P6LLTCSQYXXb3yMaOzqv4U0xNhpGSZdwMqI_Ezq4XDAOU5Nu03yGm_vHWNezPJ6_k4UsApG1jiL7qYj5gi7C40J_ToWODVB2FmKfCtNWr6YNYVmw9kdXX0HUpMqTdmPR8PihwU2mIX9FWEPnJTiuxepty8Z-JqNgRwi7ABxQAbbQfXz097v0ujEr4ELB7O2-0AizdcTsIBzoLUh3olT9snyKwWhSq5JcamY.yqtCuhuvLHYExTaCsehzfuvHh2e8-SF2PpkgSYUyVQg&amp;amp;dib_tag=se&amp;amp;keywords=towards+consciousness&amp;amp;qid=1749726179&amp;amp;sprefix=towards+consciousness,aps,106&amp;amp;sr=8-1&amp;amp;linkCode=sl1&amp;amp;tag=akselsolution-20&amp;amp;linkId=048f94af51037eeba6ef9d0a7462478f&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_tl"&gt;Towards Consciousness&lt;/a&gt;. &amp;nbsp;If you’ve ever wondered whether machines could&amp;nbsp;care—or at least&amp;nbsp;behave as if they do—come join the conversation.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/6891853651327100449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/6891853651327100449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/6891853651327100449'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/6891853651327100449'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2025/06/when-machine-starts-to-care.html' title='When A Machine Starts To Care'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-1788931263919687072</id><published>2025-01-02T09:18:00.006-05:00</published><updated>2025-01-02T09:19:47.961-05:00</updated><title type='text'>Respect</title><content type='html'>&lt;span style="font-family: inherit;"&gt;Respect is something humans give to each other through personal connection. It’s the bond that forms when we recognize something—or someone—as significant, relatable, or worthy of care. This connection doesn’t have to be limited to people.&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;There was an&amp;nbsp;&lt;a href="https://www.audacy.com/987thespot/latest/2-out-of-5-people-think-being-rude-to-a-i-might-backfire" style="box-sizing: inherit; color: var(--accent); text-decoration: none; transition: color 0.1s ease-in-out, background-color 0.1s ease-in-out;"&gt;article&lt;/a&gt;&amp;nbsp;recently that described the differing attitudes towards AI tools such as ChatGPT and Google Gemini (formerly Bard). Some people treat them like a standard search while others form a sort of personal relationship — being courteous, saying “please” and “thank you”. Occasionally, people share extra details unrelated to their question, like, ‘I’m going to a wedding. What flower goes well with a tuxedo?’&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: inherit;"&gt;Does an AI “care” how you respond to it? Of course not — it reflects the patterns it’s trained on. Yet our interaction shapes how these tools evolve, and that influence is something we should take seriously. Most of us have all expressed frustration when an AI “hallucinates”. Real or not, the larger issue is that we have high expectations of software but with little acknowledgement or awareness of its complexity. AI is becoming closer aligned with how we, as human beings, interact and that is because of software.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: inherit;"&gt;Have you ever named a vehicle like a car or boat? Do you regularly maintain your home, be it cleaning, painting or fixing a hole in a wall? Cities are constantly resurfacing roads and sometimes going above and beyond what is really needed to demonstrate the importance of the appearance of the city. When was the last time you said “I love my ——”?&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: inherit;"&gt;Naming something is often the first step to personalizing it. Once you give it a name, you’ve created a connection, elevating it from a mere object to something that matters to you. It’s why people talk to their cars when they won’t start or lovingly polish their favorite guitar. Respect begins with personalization.&lt;/span&gt;&lt;/div&gt;&lt;p style="border: 0px; box-sizing: inherit; caret-color: rgb(51, 51, 51); color: #333333; font-size: 17px; margin: 0px 0px 1.5em; padding: 0px;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: inherit;"&gt;People form emotional connections with a physical object all the time. That connection comes with an inherent, almost subconscious, respect for the object and its care. If a car starts sputtering, we bring it to a mechanic, who also, in their own way, forms a bond with it. This kind of proactivity highlights the connection: we value the machine, so we keep it running in good shape. In short, we respect it.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: inherit;"&gt;When was the last time you said “I love my operating system” or “I love Windows”? Software zealots, and each OS have them, aside, most of us do not bond emotionally with their software. Maybe it fails us too often or maybe our expectations surpass what it was originally designed to do? Do we even know (the details of) what it was designed to do in the first place?&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: inherit;"&gt;Unlike physical objects, software thrives in the realm of the unknown. It can’t predict how end users will interact with it, regardless of the interface. While physical objects may find a use outside of their intended purpose, software is regularly stretched beyond its initial design. Developers are taught to code for unpredictability and when users discover new uses, developers often integrate or adapt their software to accommodate those uses. Even a simple statement of code, “if x = 1”, carries hidden questions:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;ul class="wp-block-list" style="border: 0px; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-size: 17px; list-style: outside; margin: 0px 0px 1.5em 3em; padding: 0px;"&gt;&lt;li style="border: 0px; box-sizing: inherit; margin: 0px; padding: 0px;"&gt;&lt;span style="font-family: inherit;"&gt;Does x exist?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class="wp-block-list" style="border: 0px; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-size: 17px; list-style: outside; margin: 0px 0px 1.5em 3em; padding: 0px;"&gt;&lt;li style="border: 0px; box-sizing: inherit; margin: 0px; padding: 0px;"&gt;&lt;span style="font-family: inherit;"&gt;Is it a number?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class="wp-block-list" style="border: 0px; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-size: 17px; list-style: outside; margin: 0px 0px 1.5em 3em; padding: 0px;"&gt;&lt;li style="border: 0px; box-sizing: inherit; margin: 0px; padding: 0px;"&gt;&lt;span style="font-family: inherit;"&gt;Is it an integer?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class="wp-block-list" style="border: 0px; box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-size: 17px; list-style: outside; margin: 0px 0px 1.5em 3em; padding: 0px;"&gt;&lt;li style="border: 0px; box-sizing: inherit; margin: 0px; padding: 0px;"&gt;&lt;span style="font-family: inherit;"&gt;What if it isn’t 1?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="border: 0px; box-sizing: inherit; caret-color: rgb(51, 51, 51); color: #333333; font-size: 17px; margin: 0px 0px 1.5em; padding: 0px;"&gt;&lt;span style="font-family: inherit;"&gt;Refactoring is a form of respect that developers show their code, constantly making it more efficient, more adaptable and better performing. It’s like painting a home, replacing the oil or engine in a car. While many developers may form a connection for their creations, that same respect is not considered broadly. It should be – especially now, as we transition into a world with broader use of artificial intelligence.&lt;/span&gt;&lt;/p&gt;&lt;p style="border: 0px; box-sizing: inherit; caret-color: rgb(51, 51, 51); color: #333333; font-size: 17px; margin: 0px 0px 1.5em; padding: 0px;"&gt;&lt;span style="font-family: inherit;"&gt;Software is grounded in logic. And for all its comfortable veneer, AI inherits software’s logical foundation, which is an expression of human reasoning. Its evolution is closer to a living system than static tools. Spellcheck learns from repeated typos; “suggested” templates appear in your documents or a crash might occur when software doesn’t anticipate your hard drive is missing. Software is typically enhanced by the developers who evolve the code; but now, artificial intelligence is starting to learn to evolve itself. It is constantly learning; whether it realizes it or not. What other creation learns based on its own interactions?&lt;/span&gt;&lt;/p&gt;&lt;p style="border: 0px; box-sizing: inherit; caret-color: rgb(51, 51, 51); color: #333333; font-size: 17px; margin: 0px 0px 1.5em; padding: 0px;"&gt;&lt;span style="font-family: inherit;"&gt;Humans are, at their core, logical beings. Their evolution is shaped by binary decisions: fight or flight, live (eat) or die, speak or stay silent. The evolution of software (and AI) should be considered in the same way. As AI learns, it evolves. Microsoft’s Tay chatbot evolved from polite conversation to a profanity-filled tirade, spewing hatred in every direction. What was missing? Respect. It wasn’t just absent from the people interacting with it; it was absent from its original code. Tay wasn’t designed to consider how its words would impact those reading them. Tay’s failure was a lesson. If we want respect, we must offer it, regardless of the source. And if we want AI to evolve in a way that benefits everyone, then Respect (and yes, I capitalize it to signify its importance) must be built into its core.&lt;/span&gt;&lt;/p&gt;&lt;p style="border: 0px; box-sizing: inherit; caret-color: rgb(51, 51, 51); color: #333333; font-size: 17px; margin: 0px 0px 1.5em; padding: 0px;"&gt;&lt;span style="font-family: inherit;"&gt;Have you ever made a mistake? Has your language teacher ever said you used the wrong preposition? Have you ever thought something was one way (the world is flat) when in fact it was another (the world is round)? Mistakes, making and learning from them, are part of the evolution of every species, including humans.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style="border: 0px; box-sizing: inherit; caret-color: rgb(51, 51, 51); color: #333333; font-size: 17px; margin: 0px 0px 1.5em; padding: 0px;"&gt;&lt;span style="font-family: inherit;"&gt;Software bugs are just the digital equivalent of human mistakes – the initial steps toward improvement. When we respect others, they respect us back. When we maintain our cars, they last longer. When we respect our homes, they stand the test of time. Similarly, when we support developers —financially, morally, or by adopting their tools—they respond in kind. Their respect for us shows new features, acknowledgment of crashes and failings and a commitment to improving software. By extending that respect to software and AI, we embrace its potential to learn from mistakes, gain new knowledge, evolve and create tools that inspire us to become better versions of ourselves. All we have to do is show a little Respect.&lt;/span&gt;&lt;/p&gt;&lt;p style="border: 0px; box-sizing: inherit; caret-color: rgb(51, 51, 51); color: #333333; font-size: 17px; margin: 0px 0px 1.5em; padding: 0px;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="caret-color: rgb(0, 0, 0); color: black; font-size: medium;"&gt;This post was originally published on &lt;/span&gt;&lt;a href=" https://aksel.com/respect/" target="_blank"&gt;AKSEL.&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/1788931263919687072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/1788931263919687072' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/1788931263919687072'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/1788931263919687072'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2025/01/respect.html' title='Respect'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-5115643116347484599</id><published>2024-03-17T15:49:00.001-04:00</published><updated>2024-03-17T15:49:10.768-04:00</updated><title type='text'>I’m Supposed to Know</title><content type='html'>&lt;a href="https://programmingzen.com/im-supposed-to-know/"&gt;https://programmingzen.com/im-supposed-to-know/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Great post for developers who are struggling with unrealistic expectations of what they should know and what they shouldn&amp;#39;t. Thirty-forty years ago, it was possible to know a lot about a certain environment - that environment was MS-DOS (for non Mac/UNIX systems). . There was pretty much only a handful of ways to get things going. &lt;br&gt;&lt;br&gt;Enter networking. That added a new wrinkle to how systems worked. Networks back then were finicky. One of my first jobs was working on a 3COM + LAN and it then migrated to LAN Manager.&lt;br&gt;&lt;br&gt;Enter Windows or the graphical user interface. The best depiction of the complexity Windows (OS/2, Windows NT, etc) introduced that I recall was by Charles Petzold (if memory serves) at a local user group meeting. He invited a bunch of people on the stage and then acted as the Windows &amp;quot;Colonel&amp;quot;, a nice play on kernel. Each person had a role but to complete their job they always had to pass things back to him, as he was the one in charge. After a few minutes, it was clear to everyone how complicated this was getting. It also showed how important it was for developers to understand the various moving parts. And this was thirty years ago.&lt;br&gt;&lt;br&gt;Fast forward to today. There are so many different technologies and ways to accomplish things that it is literally impossible for someone to &amp;quot;know&amp;quot; it all. Network communication, security and accessibility are all areas that are considered core knowledge. Things are also changing at breakneck speed even for established companies. We can&amp;#39;t all be startups. You may be working in an organization that is moving from Windows 2016 to Windows 2022 or worse, from SQL Server 2008 to 2012 and the hopes of moving to even just 2016 recently. &lt;br&gt;&lt;br&gt;Certainly, AI tools give developers a good starting point, provided they give the right information, a task that isn&amp;#39;t quite being met with 100% accuracy. With the speed that things are changing today, there will always be gaps in knowledge, even for experienced developers. React, Angular, Vue are only some of the frameworks today. Bootstrap is considered older technology, despite being in a lot of places. Webpack is being replaced in a number of environments with Vite. There may be some overlap but it&amp;#39;s difficult to know everything. Blockchain technology was a huge opportunity a few years back. There are likely still opportunities for Fortran and COBOL developers. One of my clients still has a VB 6 application running mission critical systems. It still needs to be supported. But developers also like to work with new technologies, even if it&amp;#39;s to find a way to bridge the gap between old and new systems.&lt;br&gt;&lt;br&gt;As a developer, embrace the fact that you won&amp;#39;t and can&amp;#39;t know everything. Your real knowledge and value comes from how you can leverage your experience with learning about new technologies and how successfully you can turn that into working solutions.</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/5115643116347484599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/5115643116347484599' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/5115643116347484599'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/5115643116347484599'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2024/03/im-supposed-to-know.html' title='I’m Supposed to Know'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-2676749235563585616</id><published>2023-10-28T06:20:00.006-04:00</published><updated>2023-10-29T06:09:14.863-04:00</updated><title type='text'>Elevating Project Specifications with Three Insightful ChatGPT Prompts</title><content type='html'>For developers and testers, ChatGPT, the freely accessible tool from OpenAI, is game-changing.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you want to learn a new programming language, ask for samples or have it convert your existing code. This can be done in Visual Studio Code (using GitHub CoPilot) or directly in the ChatGPT app or web site.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you’re a tester, ChatGPT can write a test spec or actual test code (if you use Jest or Cypress) based on existing code, copied and pasted into the input area.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But ChatGPT can be of huge value for analysts (whether system or business) who need to validate their needs. There’s often a disconnect between developers and analysts. Analysts complain that developers don’t build what they asked for or ask too many questions. Developers complain that analysts haven’t thought of obvious things. In these situations, ChatGPT can be a great intermediary. At its worst, it forces you to think about and then discount obvious issues. At best, it clarifies the needs into documented requirements.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note: The ChatGPT responses shown here have not been modified. It uses Markdown so formatting like ** ** would appear in bold if copied into a basic editor.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Take a simple spec like:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I need a dialog that prompts for the name of a person along with an email. The user should be able to save or cancel the changes.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Prompt 1: “what questions would a developer have before coding this?”&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The result?&amp;nbsp;&lt;/div&gt;&lt;span&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Given the provided spec, a developer might have the following questions:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;1. **Platform and Technology**: On which platform or technology should the dialog be developed? Web, mobile (iOS, Android), desktop, etc.?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;2. **UI/UX Design**:&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Should there be any specific design or theme to follow?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Are there any mockups or wireframes available?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;3. **Validation**:&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Are there any specific validation requirements for the name and email fields?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Should the email be verified in any way (e.g., format check, unique check)?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;4. **Functionality**:&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- What should happen when the user clicks on "save"? Where should the data be saved?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- What should happen when the user clicks on "cancel"? Should the dialog simply close, or are there additional actions to take?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;5. **Error Handling**:&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- How should errors be handled, for instance, if the email is in an invalid format or if saving fails?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Should there be specific error messages displayed?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;6. **Existing Infrastructure**:&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Is this dialog part of an existing application? If so, is there a preferred way to integrate it?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Are there any backend services the dialog needs to communicate with?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;7. **Accessibility**:&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Should the dialog be accessible (e.g., screen reader friendly, keyboard navigable)?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;8. **Localization and Internationalization**:&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Does the dialog need to support multiple languages or locales?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Should the format of data (like email) adjust based on locale?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;9. **Performance and Scalability**:&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Are there any performance considerations, such as the expected number of users or frequency of use?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;10. **Security**:&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Are there security requirements to consider, especially when handling and storing emails?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;11. **State Management**:&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Should the dialog remember its state or data across different sessions or instances?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;12. **Feedback**:&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Should the user receive feedback after saving (e.g., a success message or animation)?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;13. **Responsiveness**:&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Should the dialog be responsive to different screen sizes and devices?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;14. **Dependencies**:&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Are there any specific libraries or frameworks the developer should use or avoid?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;15. **Future Considerations**:&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Is there a possibility of adding more fields or features to this dialog in the future?&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;Having clear answers to these questions will help ensure that the developer's implementation meets the desired requirements and expectations.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;div&gt;There are definitely questions above that could be considered irrelevant or pre-determined (for example, technology used, dependencies, etc) but the value proposition is clear. As a developer, taking the original spec provided by a client or analyst, you can ask yourself these questions and see which ones you need more details on.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Take this one step further.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Prompt 2: “Please provide a full spec for this dialog.”&lt;/b&gt;&lt;/div&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;**Detailed Dialog Specification: "Person's Details"**&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;---&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;**Objective**: Implement a dialog box to collect a person's first name, last name, and email address, with options to save or cancel the data entry.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;---&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;**1. Platform &amp;amp; Environment**:&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;- The dialog should be web-based and be compatible with major browsers (Chrome, Firefox, Safari, Edge).&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;---&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;**2. UI/UX Design**:&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;- **Layout**: A centered dialog box against a semi-transparent backdrop to prevent interaction with the underlying content.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;- **Fields**:&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;1. Label: "First Name"&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - Input type: Text&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;2. Label: "Last Name"&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - Input type: Text&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;3. Label: "Email"&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - Input type: Email&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;- **Buttons**:&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;1. "Save": Primary action button.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;2. "Cancel": Secondary action, placed left of the "Save" button.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;- **Theme**: Default to system UI unless provided with a specific design.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;---&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;**3. Validation**:&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;- **First Name**:&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Should not be empty.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Can be alphanumeric but must start with an alphabet.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Max length: 50 characters.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;- **Last Name**:&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Should not be empty.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Can be alphanumeric but must start with an alphabet.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Max length: 50 characters.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;- **Email**:&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Should not be empty.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Must adhere to standard email format (e.g., `name@example.com`).&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- Max length: 100 characters.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;---&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;**4. Functionality**:&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;- **Save Button**:&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- On click, validate all fields.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- If validation succeeds, store the data in the designated database or backend service.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- If validation fails, show error messages next to the problematic field(s).&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;- **Cancel Button**:&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;- On click, close the dialog and discard any changes/input made by the user.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Take this one step further and ask:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Prompt 3: “Please design an ASCII mockup of what it should look like based on the spec. “&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;+------------------------------------------+&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Person's Details &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;| &amp;nbsp; First Name: [_______________] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;| &amp;nbsp; Last Name: &amp;nbsp;[_______________] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;| &amp;nbsp; Email: &amp;nbsp; &amp;nbsp; &amp;nbsp;[_______________________] |&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;| &amp;nbsp; [ Cancel ] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[ Save ] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;+------------------------------------------+&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you have scoffed at ChatGPT as a useful project tool (beyond rewriting code), take a second look. I personally have found it very helpful in this regard.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What implications does this have for companies? This doesn’t necessarily absolve the need for analysts or developers. There are enough alarmist articles on how ChatGPT will get rid of developer and technical jobs. This isn’t going to happen, at least not immediately. ChatGPT can produce code but you really need to work it if you want robust and secure results. But for small projects or even larger projects with clients who have some technical knowledge, ChatGPT can provide the clarity needed to produce better applications.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Interestingly, one company, &lt;a href="Http://www.scopemaster.com" target="_blank"&gt;ScopeMaster&lt;/a&gt;, is doing this right now with its own technology.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;What’s next? Imagine using ChatGPT as an API to validate specs in platforms like Jira or Azure DevOps as they are being written. That’s an avenue our team is exploring for its own project needs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Happy coding!&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/2676749235563585616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/2676749235563585616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/2676749235563585616'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/2676749235563585616'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2023/10/improve-your-specs-and-delivery-of.html' title='Elevating Project Specifications with Three Insightful ChatGPT Prompts'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-2438597301889816366</id><published>2022-03-19T06:26:00.001-04:00</published><updated>2022-03-19T06:26:12.219-04:00</updated><title type='text'>Here’s what you need to know about software development in two quotes</title><content type='html'>&lt;div name="messageBodySection"&gt;  &lt;div dir="auto"&gt;The task of the software development team is to create the illusion of simplicity. -- Grady Booch&lt;br /&gt;  &lt;br /&gt;  And if you have the illusion that such a task is simple then dream on, it's a nightmare -- Boudewijn Lutgerink&lt;br /&gt;  &lt;br /&gt;  Well said&lt;br /&gt;  &lt;br /&gt;  VFP and .NET: Kudos to Doug Hennig&amp;#160;&lt;a href="https://www.foxite.com/archives/kudos-to-doug-hennig-0000487966.htm" target="_blank"&gt;https://www.foxite.com/archives/kudos-to-doug-hennig-0000487966.htm&lt;/a&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/2438597301889816366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/2438597301889816366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/2438597301889816366'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/2438597301889816366'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2022/03/heres-what-you-need-to-know-about.html' title='Here’s what you need to know about software development in two quotes'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-1575258220273300537</id><published>2022-02-18T05:58:00.001-05:00</published><updated>2022-02-18T05:58:19.973-05:00</updated><title type='text'>Brandon Savage: Hating Old Code Is a Sign Of Growth</title><content type='html'>&lt;div name="messageBodySection"&gt;  &lt;div dir="auto"&gt;&lt;strong&gt;Hating old code is a sign of growth.&lt;/strong&gt;&lt;br /&gt;  &lt;br /&gt;  In late 2021 I took a hard look at some code I wrote back in 2013. I&amp;#160;&lt;em&gt;hated&lt;/em&gt;&amp;#160;it. The design was all wrong, it didn't follow best practices or good standards, and it was a mess. A product of its time, sure: there were no type hints, no return value definitions, and no Psalm annotations to process. But it was still&amp;#160;&lt;em&gt;ugly&lt;/em&gt;&amp;#160;and I was embarrassed.&lt;br /&gt;  &lt;br /&gt;  Ever have this experience? Hear the good news: it's&amp;#160;&lt;em&gt;normal&lt;/em&gt;, and perfectly fine.&lt;br /&gt;  &lt;br /&gt;  Writing code is a learning process, from day one to the day you stop doing it for good. You're always growing, always improving. It's like reading your writing from high school: you're a better writer&amp;#160;&lt;span style="color:#157efb"&gt;today&lt;/span&gt;than you ever were then.&lt;br /&gt;  &lt;br /&gt;  If you hate your old code, it's a sign of growth, in you and in your skills. Don't concern yourself with how awful the old code is; focus on making the new code great, and bring the old code to the new standard.&lt;/div&gt;  &lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/1575258220273300537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/1575258220273300537' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/1575258220273300537'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/1575258220273300537'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2022/02/brandon-savage-hating-old-code-is-sign.html' title='Brandon Savage: Hating Old Code Is a Sign Of Growth'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-5445179945984656826</id><published>2021-09-26T08:18:00.005-04:00</published><updated>2021-09-29T07:19:14.206-04:00</updated><title type='text'>5 Great Reasons to attend Virtual FoxFest</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What's coming up?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://virtualfoxfest.com" target="_blank"&gt;Virtual FoxFest&lt;/a&gt; is coming up soon (sessions start October 14th). Like last year, the conference is entirely virtual yet includes great breakdown rooms and sessions to add that nice one-on-one feel that you get in person.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's also staggered so you can choose which days you want to attend - October 14th, 20th and 26th. This is great if you can't break away for a consecutive three days.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But really, I've gone through the sessions and I see five great sessions that I'm eager to check out.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. A Decade of Thor (Rick Schummer)&lt;/div&gt;&lt;div&gt;Thor has been an extension for Visual FoxPro that many developers swear by, yet many don't know even exists. Visual FoxPro's built-in extensions are great but Jim Nelson's Thor supercharges your IDE. I can't believe it's been ten years - so Rick's session should be able to not just whet your appetite but give you all the reasons you should be using it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. VFP C++ compiler.&amp;nbsp;&lt;/div&gt;&lt;div&gt;Last year, we saw DotNetX as well as VFP Advanced. &lt;a href="http://www.baiyujia.com/vfpadvanced/" target="_blank"&gt;VFP Advanced&lt;/a&gt; is still going strong with great support for 64-bit applications. &amp;nbsp;But this session has me intrigued. An add-on to provide both 64-bit support AND secure. Sign me up!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. AWS Hosted VFP&lt;/div&gt;&lt;div&gt;Everything seems to use AWS these days so why not VFP? Using JDBC for accessing data and linking directly to AWS is a great way to bring your VFP application into the next generation of tools.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Building and Consuming REST-Based API with VFP&lt;/div&gt;&lt;div&gt;You've seen REST APIs even if you aren't aware of them. While VFP has always been more SOAP-based, the rest of the development world has moved to REST so why shouldn't you? I know Rick will be showcasing the West-Wind implementations but understanding how and why REST solutions are needed makes this session super exciting.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. Multithreading in VFP&lt;/div&gt;&lt;div&gt;If you're building web-based services for VFP or also want to give your application a smoother experience, you want to use multi-threading. Kevin is going to use Christof's DMULT.DLL &amp;nbsp;- something I've never heard of.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are a bunch of other exciting &lt;a href="https://virtualfoxfest.com/sessions.aspx" target="_blank"&gt;sessions&lt;/a&gt; at Virtual FoxFest including SQL Server reporting and document management, modernization of VFP and more.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What sessions are you excited for?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/5445179945984656826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/5445179945984656826' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/5445179945984656826'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/5445179945984656826'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2021/09/5-great-reasons-to-attend-virtual.html' title='5 Great Reasons to attend Virtual FoxFest'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-3003402138289505077</id><published>2021-09-11T15:37:00.001-04:00</published><updated>2021-09-11T15:37:25.426-04:00</updated><title type='text'>Twenty Is Myth</title><content type='html'>&lt;a href="https://anildash.com/2021/09/11/twenty-is-myth/"&gt;https://anildash.com/2021/09/11/twenty-is-myth/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Anil Dash has written a post of remembrance every year since September 11th, 2001 (yes, on the day). &lt;br&gt;&lt;br&gt;His blog has lots of other great things on it - but the ONE post I always look for is his post. &lt;br&gt;&lt;br&gt;We were away at DevCon in San Diego that day. I was up early and was able to absorb the news firsthand. I have an affinity to New York for a number of reasons: my sister lived there, we honeymooned there and it is New York.  But the days that immediately followed in 2001, I saw the heartbreak of attendees who were waiting to hear from loved ones there. It was an entire surreal experience of being in a city with an military base. Fighter jets flew everywhere while no commercial planes could be seen. I recall the first flight that took off from the airport.&lt;br&gt;  &lt;br&gt;But Anil was there in New York that day and his posts have always struck me, providing a personal experience that goes beyond the media recaps and speeches. He notes that this may be his final post on the matter but for the past posts, Anil, thank you.</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/3003402138289505077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/3003402138289505077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/3003402138289505077'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/3003402138289505077'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2021/09/twenty-is-myth.html' title='Twenty Is Myth'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-2451216564650026605</id><published>2021-08-14T06:36:00.001-04:00</published><updated>2021-08-14T06:36:23.352-04:00</updated><title type='text'>Why the js/ts Visual Studio Experience is a welcome addition and what it needs more</title><content type='html'>&lt;a href="https://devblogs.microsoft.com/visualstudio/the-new-javascript-typescript-experience-in-vs-2022-preview-3/"&gt;https://devblogs.microsoft.com/visualstudio/the-new-javascript-typescript-experience-in-vs-2022-preview-3/&lt;/a&gt;&lt;br&gt;&lt;br&gt;The promise noted in this announcement sounds very exciting.  Sure, you can do most of this already with VS Code - but encouraging this type of development directly in Visual Studio is awesome.&lt;br&gt;&lt;br&gt;The one thing I would like to see is built-in support for Cypress - my e2e testing tool of choice. (&lt;a href="Https://www.cypress.it"&gt;Https://www.cypress.it&lt;/a&gt;) - which is a great tool for Vue and React apps.</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/2451216564650026605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/2451216564650026605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/2451216564650026605'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/2451216564650026605'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2021/08/why-jsts-visual-studio-experience-is.html' title='Why the js/ts Visual Studio Experience is a welcome addition and what it needs more'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-1234830367013087096</id><published>2021-08-08T07:13:00.001-04:00</published><updated>2021-08-08T07:13:22.248-04:00</updated><title type='text'>Why You Need a New Error Handler</title><content type='html'>Error handling is an integral part of application development. Unless you are like myself and never release code with bugs :) , the need for clients to tell you what&amp;#39;s wrong is important.&lt;br&gt;&lt;br&gt;I&amp;#39;ve seen a number of error handlers in the past, dating all the way back to Pat Adam&amp;#39;s famous FP2ERROR routine (back from 1991). &lt;br&gt;&lt;br&gt;Most systems log their errors and then pick them up as part of a diagnostic push. Unfortunately, reporting these errors back to the developer require some effort by the client. &lt;br&gt;&lt;br&gt;Doug Hennig has introduced a new VFPX project for adding easy error handling and reporting. While it does include a few dependencies, it offers a nice support-centric dialog for clients to report errors. &lt;br&gt;&lt;br&gt;&lt;a href="https://doughennig.blogspot.com/2021/07/new-errorhandler-vfpx-project.html"&gt;https://doughennig.blogspot.com/2021/07/new-errorhandler-vfpx-project.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;If you AREN&amp;#39;T getting automatic feedback from your clients when they get an error, now there&amp;#39;s no excuse.</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/1234830367013087096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/1234830367013087096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/1234830367013087096'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/1234830367013087096'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2021/08/why-you-need-new-error-handler.html' title='Why You Need a New Error Handler'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-4811315148487283051</id><published>2021-08-08T06:58:00.001-04:00</published><updated>2021-08-08T06:58:29.335-04:00</updated><title type='text'>Load Only the Projects You Need with Solution Filters</title><content type='html'>&lt;a href="https://devblogs.microsoft.com/visualstudio/load-only-the-projects-you-need-with-solution-filters/"&gt;https://devblogs.microsoft.com/visualstudio/load-only-the-projects-you-need-with-solution-filters/&lt;/a&gt;&lt;br&gt;&lt;br&gt;While I don&amp;#39;t have a hundreds of projects in a solution, our larger application definitely has a few that don&amp;#39;t need to be loaded each time (test apps, etc).&lt;br&gt;&lt;br&gt;It&amp;#39;s a great feature but not very discoverable - I can see why they needed a blog post for it. Maybe the VS Team can come up with a better way.</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/4811315148487283051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/4811315148487283051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/4811315148487283051'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/4811315148487283051'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2021/08/load-only-projects-you-need-with.html' title='Load Only the Projects You Need with Solution Filters'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-7823492678483494569</id><published>2021-08-03T05:02:00.004-04:00</published><updated>2021-08-03T06:53:24.061-04:00</updated><title type='text'>Copying Git Repos with History </title><content type='html'>&lt;span style="font-family: inherit;"&gt;Sometimes the Internet is great - you can find exactly what you're looking for, quickly and easily. Other times, it takes you down a rabbit hole of different sites that may provide the right answer but, more often than not, the 90% rule is often true.&amp;nbsp;&lt;/span&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;So when we decided to consolidate our multiple git repos into a single repo on Azure Devops, I figured this should be relatively easy. Note: it isn't built into git and while the final process isn't that tough to follow, finding the best answer was extremely frustrating and time-consuming.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;After several wrong paths, I came across this &lt;a href="https://medium.com/@ayushya/move-directory-from-one-repository-to-another-preserving-git-history-d210fa049d4b"&gt;post&lt;/a&gt;. This covered the process in great detail - including some safety steps to ensure you don't overwrite incorrect files. I'm finding that sometimes the dev posts on Medium are just as good as StackOverflow but provide the necessary context that may not be available there. I want to note it here as it took a very long time to find that article.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span color="rgba(0, 0, 0, 0.9)" style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;The key is the &lt;/span&gt;&lt;span style="font-family: courier;"&gt;--allow-unrelated-histories&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; parameter to the git merge command but in many other posts, there were lots of references to other parameters and additional steps. While those options may work, I prefer the approach with fewer commands and parameters.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;The starting point:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;DocsRepo: Documentation Files&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;SourceRepo: Source Files for Project 1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;ScriptsRepo: Database Scripts&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;Our desired end state was&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;GoalRepo:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; Documentation&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; Source&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: inherit;"&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; Scripts&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;Steps:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;Go to your new Repo&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span color="rgba(0, 0, 0, 0.9)" style="background-color: white;"&gt;&lt;span style="font-family: courier; font-size: x-small;"&gt;git remote add --fetch oldDocs https://MyOrg@dev.azure.com/MyOrg/Project/_git/DocsRepo&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span color="rgba(0, 0, 0, 0.9)" style="background-color: white;"&gt;&lt;span style="font-family: courier; font-size: x-small;"&gt;git merge oldDB/master --allow-unrelated-histories&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span color="rgba(0, 0, 0, 0.9)" style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span color="rgba(0, 0, 0, 0.9)" style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;This copies the files into the new repo but in their root folder.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span color="rgba(0, 0, 0, 0.9)" style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit; font-size: x-small;"&gt;mkdir Docs&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;Then manual copy (using VS Code or mv) all of the files into the new Docs folder.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier; font-size: x-small;"&gt;git commit -m "Copied Docs folder"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier; font-size: x-small;"&gt;git push&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;git remote rm oldDocs&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;Rinse and repeat.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;The history in DevOps doesn't appear to show the whole history but when you look at it in DevOps, the history shows "Copied Docs Folder" but then has a "Rename history" link under it. Clicking this link shows the entire history.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixb6k2HVLszOr4ePp3k6M29fPd6ESbdn4CeIjNTBLX2CiJ6zYeFzAP2Cnjt3JivZPa6b_jmTlpJaKeSU1xHcBnaCvOwLB-7iid_ht0LF7dfFfQvU0jxFGRqtubljXSawBqbxdMTw/s1406/RepoShowRename.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="586" data-original-width="1406" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixb6k2HVLszOr4ePp3k6M29fPd6ESbdn4CeIjNTBLX2CiJ6zYeFzAP2Cnjt3JivZPa6b_jmTlpJaKeSU1xHcBnaCvOwLB-7iid_ht0LF7dfFfQvU0jxFGRqtubljXSawBqbxdMTw/s320/RepoShowRename.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPWO0fXaKk9VYW65603RYbKMb8fjthXUx35l834QXJhOdFsM-mP_npgewT-amNfhfzdKq7vzJmOsmBgh63tyDRpV6-yrP_DMSHQpob_GBJKN-QGqwznksuFEcaJZkfpsDbZiBiPw/s1480/RepoWithRename.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="934" data-original-width="1480" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPWO0fXaKk9VYW65603RYbKMb8fjthXUx35l834QXJhOdFsM-mP_npgewT-amNfhfzdKq7vzJmOsmBgh63tyDRpV6-yrP_DMSHQpob_GBJKN-QGqwznksuFEcaJZkfpsDbZiBiPw/s320/RepoWithRename.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;Problem solved! Thanks to &lt;a href="https://medium.com/@ayushya"&gt;Ayushya&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/7823492678483494569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/7823492678483494569' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/7823492678483494569'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/7823492678483494569'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2021/08/copying-git-repos-with-history.html' title='Copying Git Repos with History '/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixb6k2HVLszOr4ePp3k6M29fPd6ESbdn4CeIjNTBLX2CiJ6zYeFzAP2Cnjt3JivZPa6b_jmTlpJaKeSU1xHcBnaCvOwLB-7iid_ht0LF7dfFfQvU0jxFGRqtubljXSawBqbxdMTw/s72-c/RepoShowRename.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-3376575579312218480</id><published>2020-09-20T05:31:00.001-04:00</published><updated>2020-10-09T05:34:53.452-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FoxPro'/><title type='text'>The FoxShow - Virtual FoxFest 2020 Interview</title><content type='html'>Please check out my &lt;a href="https://traffic.libsyn.com/secure/akselsoft/FoxShow90VirtualFoxFest2020.mp3"&gt;FoxShow interview &lt;/a&gt;with Rick Schummer, Tamar Granor and Doug Hennig about the upcoming Virtual FoxFest conference.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="https://virtualfoxfest.com" target="_blank"&gt;conference&lt;/a&gt; is spread out over three days in October with &lt;a href="https://virtualfoxfest.com/speakers.aspx"&gt;speakers&lt;/a&gt; from around the world. Since it's over three days, it's easy to attend and definitely affordable.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's also using Hopin, a virtual conferencing tool I've never heard of here.&amp;nbsp;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/3376575579312218480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/3376575579312218480' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/3376575579312218480'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/3376575579312218480'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2020/09/the-foxshow-virtual-foxfest-2020.html' title='The FoxShow - Virtual FoxFest 2020 Interview'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-3095544128503399726</id><published>2020-08-02T09:11:00.001-04:00</published><updated>2020-08-02T09:16:20.588-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FoxPro'/><category scheme='http://www.blogger.com/atom/ns#' term='VFP'/><title type='text'>Virtual FoxFest - A New Way to Conference</title><content type='html'>&lt;div name="messageBodySection"&gt;  &lt;div dir="auto"&gt;If you haven't been keeping up with the news around the Fox community, the Southwest Fox conference has gone digital now showing up as&lt;a href="https://virtualfoxfest.com" target="_blank"&gt;&amp;nbsp;Virtual FoxFest&lt;/a&gt;.&amp;nbsp;&amp;nbsp;At $49, it's a steal and a great way to learn some new ideas and get inspired.&lt;br /&gt;  &lt;br /&gt;  While the reasoning for this change is fairly obvious with the year of COVID - for me, this is something that has been a long time coming. I appreciate many people's needs for a physical conference but the world is very large and it's difficult to get people from around the world into a single physical location.&lt;br /&gt;  &lt;br /&gt;  I recently attended a single-track conference via YouTube (a Quasar conference). YouTube's Live stream provided a very handy way to watch, rewind and communicate with people online. While Tamar, Doug and Rick are still making decisions related to the streaming platform, there are lots of great options available. I'm really looking forward to it.&lt;br /&gt;  &lt;br /&gt;  The FoxPro community has also really felt its international roots of late with &lt;a href="http://www.baiyujia.com/vfpadvanced/f_vfpa_about.asp" target="_blank"&gt;VFP Advanced&lt;/a&gt; (from China), &lt;a href="https://www.xsharp.info/" target="_blank"&gt;X #&lt;/a&gt; (a sponsor of the conference) and more.&amp;nbsp;&lt;br /&gt;  &lt;br /&gt;  Maybe in the future, some form of hybrid conference can be held - maybe even with multiple locations around the world, all centering on one set of conferences. Microsoft used to do something like this with their Developer Days in the 90s - which I felt worked out quite well.&amp;nbsp;&amp;nbsp;It also allows groups to create their own social events. This last paragraph sounds like a fully decentralized conference model but if done right, it might have some legs. After all, the development world is largely decentralized these days —- maybe it's time for conferences to do it as well.&lt;br /&gt;  &lt;br /&gt;  It can be tricky to present online - especially if you've never done it before. So here's my offer to all speakers (for Virtual FoxFest). Contact me directly and you can do a run-through on your session via my Zoom Pro account. We’ll record the session so you can review it afterwards as well. While Zoom may not be the final or best platform for the conference, it can certainly help get you to hone your online skills. Drop me a line and we can schedule some time.&amp;nbsp;&lt;br /&gt;  &lt;br /&gt;  I'm really looking forward to Virtual FoxFest and hope you are too.&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;  &lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/3095544128503399726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/3095544128503399726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/3095544128503399726'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/3095544128503399726'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2020/08/virtual-foxfest.html' title='Virtual FoxFest - A New Way to Conference'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-5921694539554292162</id><published>2019-12-21T07:53:00.003-05:00</published><updated>2019-12-21T07:53:55.330-05:00</updated><title type='text'>Something Unexpected, Something New</title><content type='html'>I've started listening to Tim Crawford's &lt;a href="http://timharford.com/articles/cautionarytales/"&gt;Cautionary Tales &lt;/a&gt;podcast recently and aside from listening to enjoyable tales of design mess-ups and warfare losses, the most recent episode &lt;a href="http://timharford.com/2019/12/cautionary-tales-ep-7-bowie-jazz-and-the-unplayable-piano/"&gt;Bowie, Jazz and the Unplayable Piano&lt;/a&gt;&amp;nbsp;has given me two of the things I love about great podcasts:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;-they make me think&lt;br /&gt;
- they introduce me to something I've never heard/seen before&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I had never heard of Keith Jarrett before (jazz afficiandos, please don't hate me) - but the story of this jazz improvisist and how he recorded the Koln concerts was super enjoyable. The version there is slightly different than the one noted on the &lt;a href="https://www.grammy.com/grammys/news/pianist-keith-jarrett-story-k%C3%B6ln-concert"&gt;Grammy site&lt;/a&gt;. Moreso, it made me go to Apple Music to listen to the &lt;a href="https://music.apple.com/us/album/the-k%C3%B6ln-concert-live/1440840566"&gt;concert&lt;/a&gt;. I've used &lt;a href="http://mtcb.pwop.com/"&gt;Carl Franklins' Music To Code By&lt;/a&gt;&amp;nbsp;but I found this album's four pieces were just as wonderful, if not perhaps more inspiring (his stamping of the foot hit me right when I was struggling in code as well).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another part of the episode dealt with Brian Eno's &lt;a href="https://en.wikipedia.org/wiki/Oblique_Strategies"&gt;oblique strategy cards&lt;/a&gt;. You can read more about them on Wikipedia but listening to the stories in the episode will bring a smile to your face (the idea of a virtuoso guitarist being asked to play drums). Here's a link to a &lt;a href="http://stoney.sb.org/eno/oblique.html"&gt;site&lt;/a&gt; that pulls out a random card every visit. So my most recent visit said simply&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style="text-align: center;"&gt;
"Do the words need changing?"&lt;/h4&gt;
&lt;br /&gt;
Think about that for a moment. If you're writing documentation, comments, articles or anything, simply stopping to think of this may make a huge difference.&lt;br /&gt;
&lt;br /&gt;
So while the new year hasn't started yet, it's never too early to resolve to try new things - I'm visiting the site on a daily basis and see what other ideas it inspires.</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/5921694539554292162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/5921694539554292162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/5921694539554292162'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/5921694539554292162'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2019/12/something-unexpected-something-new.html' title='Something Unexpected, Something New'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-7650480662095138450</id><published>2019-09-04T05:03:00.001-04:00</published><updated>2019-10-16T04:01:43.956-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><category scheme='http://www.blogger.com/atom/ns#' term='opinion'/><title type='text'>Apple "Focus": What do you want your A/R glasses to do?</title><content type='html'>Apple has new iPhones coming next &lt;a href="https://www.macrumors.com/guide/upcoming-apple-products/"&gt;week&lt;/a&gt;&amp;nbsp;but&amp;nbsp;I saw that they had plans for A/R glasses and some of their recent &lt;a href="https://www.macrumors.com/2018/08/29/apple-akonia-holographics-ar-glasses/"&gt;acquisitions&lt;/a&gt;&amp;nbsp;confirm this.&amp;nbsp;Most articles discussing A/R use the large VR headsets as their starting point which is a non-starter for many people. Then I saw this image from &lt;a href="https://www.idropnews.com/rumors/apples-futuristic-ar-glasses-might-warp-scenery-to-help-the-visually-impaired/111252/"&gt;IDropNews&lt;/a&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://cdn.idropnews.com/wp-content/uploads/2018/05/09124939/iDrop-News-Apple-AR-Glasses-Concept-Image.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="480" data-original-width="800" height="192" src="https://cdn.idropnews.com/wp-content/uploads/2018/05/09124939/iDrop-News-Apple-AR-Glasses-Concept-Image.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Now THAT's what I'm talking about. If you've never seen the &lt;a href="https://www.amazon.com/gp/product/B07PC7JKSB/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;amp;tag=akselsolution-20&amp;amp;creative=9325&amp;amp;linkCode=as2&amp;amp;creativeASIN=B07PC7JKSB&amp;amp;linkId=33166655bfc51a4af984c613926b4a30"&gt;Bose Frames&lt;/a&gt;, you should check them out. These provide a great template for the type of A/R that will make non-gamers stand up and take notice. The Google Glasses concept is far too "android" (no pun intended) for regular use, I need REAL glasses.&amp;nbsp;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Forget the gaming benefits. In recent years, I've used &lt;a href="https://www.amazon.com/gp/product/B07Q4J16Y3/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;amp;tag=akselsolution-20&amp;amp;creative=9325&amp;amp;linkCode=as2&amp;amp;creativeASIN=B07Q4J16Y3&amp;amp;linkId=e088cab466d15ff35564ef28e46eaf44"&gt;video sunglasses&lt;/a&gt; for hands-free recording and while I enjoy them, they are still too bulky. You can get them fairly cheap so they are worth considering for isolated purposes. You need people to &lt;a href="https://scobleizer.blog/2019/06/01/but-i-dont-want-to-wear-glasses/"&gt;wear glasses&lt;/a&gt; every day to make A/R a reality.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
(Update: I missed this &lt;a href="https://www.theverge.com/2018/2/5/16966530/intel-vaunt-smart-glasses-announced-ar-video"&gt;older story&lt;/a&gt; on the Verge but Intel definitely has the right idea with their Vaunt prototype. The technology described matches what I was referring to below - "&lt;span style="background-color: white; caret-color: rgb(66, 66, 66); color: #424242; font-family: Helvetica, sans-serif; font-size: 18px;"&gt;The beauty of this system is that if you choose not to look at it, it disappears. It is truly gone.”&lt;/span&gt;)&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Earlier this year, I drew up a list of features for my ideal pair of glasses. I'm no futurist but I envisioned a product named Apple "Focus". They can link to my iPhone for the heavy lifting as long as they become light enough.&lt;/div&gt;
&lt;br /&gt;
1. Auto magnification. A camera on the inside that would identify when someone was squinting (to read) and automatically magnify the content.&lt;br /&gt;
&lt;br /&gt;
2. Sound. License the technology from Bose and put it into the glasses - or use the tech in the AirPods. Now that it's been done in a consumer fashion - there's no excuse for doing it another way.&lt;br /&gt;
&lt;br /&gt;
3. Small icon vs full screen on glass as well as "swipe". This would allow the icons to appear at the top (or bottom) of the glasses. It might be that you only ever have two or three icons visible at a time and thus by looking up (or to the side), it knows what icon you are looking at and thus it can open the app. So the idea would be look up, blink and the app opens. &lt;br /&gt;
&lt;br /&gt;
4. Blink-Sync. This would be like face sync so upon startup, it would ask you to train the glasses on the way you blink. In this way, it knows if you are blinking on purpose or not.&lt;br /&gt;
&lt;br /&gt;
5.Transition lenses. Not everyone wants to look like a gamer. To work, these glasses have to be transition so they move from day to evening or from boardroom to outside to evening.&lt;br /&gt;
&lt;br /&gt;
6. Side screen allows the focus to be on the main page (rather than half screen) for easier viewing. If you do horizontal half screen, then it's obvious when people are looking at various places on their screen. Having the visual display in a vertical mode would allow your peripheral vision to do the real work.&lt;br /&gt;
&lt;br /&gt;
7. Auto-stabilize Video. Having worn video sunglasses, I realize how much my head moves and how hard it is to keep my head in one place for video.&lt;br /&gt;
&lt;br /&gt;
8. Auto-Recognize Picture mode.. If you are staring at people, then you must want to take a picture so put the glasses into picture mode and take the picture. Why make the person press a button? If I'm in "picture mode", just do it.&lt;br /&gt;
&lt;br /&gt;
9. Arm-Tech. The tech can go on the arms as well as the main frames. The glasses have to be wearable - and putting the tech around the middle bridge of the glasses is truly annoying. That way, the lenses may wrap around the eyes, the technology could be put into the arms.If you need more room for wiring, there are plenty of instances where you have cords attached to glasses, let alone&lt;br /&gt;
&lt;br /&gt;
10. Waterproof. It doesn’t have to be 50 foot deep but it should support a full set of water being dunked over them. No one wants to be Robert Scoble wearing glasses in the shower - but you do need to be able to wear them in a downpour.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
As I said above, I've worn a variety of "smart" glasses - I need real world value to start wearing them regularly. These don't need to be an Apple product and I would welcome them from anyone; however, Apple has a history of taking possible features and creating a consumer-friendly product around them.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
What features would make you switch to smart glasses?&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/7650480662095138450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/7650480662095138450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/7650480662095138450'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/7650480662095138450'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2019/09/apple-focus-what-do-you-want-your-ar.html' title='Apple &quot;Focus&quot;: What do you want your A/R glasses to do?'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-7315952625291007809</id><published>2019-07-30T07:26:00.002-04:00</published><updated>2019-08-09T05:00:20.548-04:00</updated><title type='text'>Why xSharp might be the tool FoxPro developers have been waiting for</title><content type='html'>In the latest &lt;a href="http://thefoxproshow.com/"&gt;FoxShow &lt;/a&gt;episode, I interview Robert van der Hulst, one of the main leads on the &lt;a href="http://xsharp.info/"&gt;xSharp &lt;/a&gt;project. Unlike many product team leads, Robert has a secret advantage - he actually USES the product. The interview answers a number of questions VFP developers may have about this initiative.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5PEOTgf3PwnNMNSemlKvyNVNvNIRTnJjhV2COiTnOXF3Uq50p4XWBDGQOjnCSqkyunQ-E9HZQMBBPJ6FQI6nxSVZQrYSWy0yL6fhcGAYrurle0aHWPltqGpuunYmFIPvMS4dJ6w/s1600/Screen+Shot+2019-08-09+at+4.36.24+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="200" data-original-width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5PEOTgf3PwnNMNSemlKvyNVNvNIRTnJjhV2COiTnOXF3Uq50p4XWBDGQOjnCSqkyunQ-E9HZQMBBPJ6FQI6nxSVZQrYSWy0yL6fhcGAYrurle0aHWPltqGpuunYmFIPvMS4dJ6w/s1600/Screen+Shot+2019-08-09+at+4.36.24+AM.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen="" height="101" mozallowfullscreen="" msallowfullscreen="" nbsp="" oallowfullscreen="" scrolling="no" src="//html5-player.libsyn.com/embed/episode/id/10706543/height/101/theme/standard/thumbnail/yes/direction/backward/" style="border: none;" webkitallowfullscreen="" width="100%"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
While he's been a direct team member of a variety of products in the xBase market (he hails from the Clipper and &lt;a href="https://en.wikipedia.org/wiki/Visual_Objects"&gt;Visual Objects &lt;/a&gt;world), he has always looked at the product based on the idea of "how can I use this as a business?", an idea many business line developers think about.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XSharp uses the &lt;a href="https://github.com/dotnet/roslyn"&gt;open source Microsoft Rosyln compiler&lt;/a&gt; but translates the language constructs found in the xBase and VFP world so that developers can more easily port their application into the DotNet world. While DotNet was introduced almost 20 years ago, there are still a number of applications that use it for critical parts of their business. But what if you could take key pieces of your application (such as the COM component you built or years old business processing pieces) and use them in a full Visual Studio solution, generating a DotNet (and DotNet Core) compatible application?&lt;br /&gt;
&lt;br /&gt;
As a manager, wouldn't it be great to use the knowledge and existing code in your legacy application in your brand new shiny .Net application so you don't have to push back your release while doing the knowledge transfer to the new developers who would rather code in Python or F#?&lt;br /&gt;
&lt;br /&gt;
I won't spoil the entire interview but here are some key areas and jump points you may want to hear:&lt;br /&gt;
&lt;br /&gt;
2:00 -- Who is Robert?&lt;br /&gt;
10:00 - the xSharp compiler and the concept of dialects&lt;br /&gt;
20:00 - Target market&amp;nbsp; &lt;br /&gt;
25:00 - Form design &amp;amp; event handling&lt;br /&gt;
30:00 - Status of xSharp as a released product &lt;br /&gt;
39:00 - Multi-threading, syntax issues and feature support&lt;br /&gt;
51:00 - Roadmap to the future&lt;br /&gt;
56:00 - Southwest Fox 2019&lt;br /&gt;
&lt;br /&gt;
What about you? Are you still working in VFP but looking to move into the .Net world? XSharp may be your opportunity to leverage your skills. Listen and let me know if you think XSharp has a future in your life.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://technorati.com/tag/FoxPro" rel="tag"&gt;FoxPro&lt;/a&gt; &lt;a href="http://technorati.com/tag/VFP" rel="tag"&gt;VFP&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/7315952625291007809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/7315952625291007809' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/7315952625291007809'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/7315952625291007809'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2019/07/why-xsharp-might-be-tool-foxpro.html' title='Why xSharp might be the tool FoxPro developers have been waiting for'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5PEOTgf3PwnNMNSemlKvyNVNvNIRTnJjhV2COiTnOXF3Uq50p4XWBDGQOjnCSqkyunQ-E9HZQMBBPJ6FQI6nxSVZQrYSWy0yL6fhcGAYrurle0aHWPltqGpuunYmFIPvMS4dJ6w/s72-c/Screen+Shot+2019-08-09+at+4.36.24+AM.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-7492059393197118417</id><published>2019-06-29T05:01:00.000-04:00</published><updated>2019-08-09T05:02:30.468-04:00</updated><title type='text'>Fighting for Funding: What would you pay for?</title><content type='html'>It's funding (whether private or public) that decides the reality of ideas like GPS, interstellar travel, the Internet and more - what would you pay for? f you listen to podcasts and haven't listened to &lt;a href="http://levarburtonpodcast.com/"&gt;Levar Burton reads&lt;/a&gt;, you may want to consider it. It does offer some very interesting stories and Levar's readings are incredible.&lt;br /&gt;
&lt;br /&gt;
One recent listen was "&lt;a href="https://art19.com/shows/b8dbdce1-2c32-42d2-ad58-6956a0c6b31c/embed?theme=light-blue&amp;amp;playlist_type=playlist&amp;amp;playlist_size=10#"&gt;The Best We Can&lt;/a&gt;" (by &lt;a href="https://www.carrievaughn.com/index.html"&gt;Carrie Vaughn&lt;/a&gt;) about first contact with aliens - you. can READ the story &lt;a href="https://www.tor.com/2013/07/17/the-best-we-can/"&gt;here&lt;/a&gt; but Burton's read really does make it come to life. What was neat about the timing, however, was &lt;a href="https://www.theverge.com/2019/6/27/18761441/nasa-new-frontiers-dragonfly-titan-saturn-moon-rotorcraft"&gt;this story&lt;/a&gt; that just landed a few days ago. That the project of sending flying rovers to Saturn beat out the project that would catch the surface of a comet.&lt;br /&gt;
&lt;br /&gt;
We (or at least I) often think of NASA as being an organization with a single goal but, in fact, there are lots of projects that engineers come up with that have to fight for funding. From &lt;a href="https://www.nasa.gov/mission_pages/tdm/solarsail/index.html"&gt;solar sails &lt;/a&gt;(which also had a Levar Burton Reads story)&amp;nbsp;to this recent one, even physicists have different ideas of what technologies are even worth pursuing. This interview with &lt;a href="https://jamesaltucher.com/podcast/michio-kaku/"&gt;Michio Kaku on the James Altucher&lt;/a&gt; show posits that instead of thinking about traveling to another planet, we might want to consider instead simply projecting ourselves there (although that certainly wouldn't be as fun).&lt;br /&gt;
&lt;br /&gt;
Much of today's realities are inspired by science fiction that are then turned into projects by government organizations such as NASA. While some people still like to think &lt;a href="https://patentlyo.com/patent/2011/01/tracing-the-quote-everything-that-can-be-invented-has-been-invented.html"&gt;everything worth inventing has already been invented&lt;/a&gt;, reading about these projects does show that there is still so much more to create. How they finally get implemented and integrated into our everyday lives may not be something I live to see but then the speed in which many of these things occur always amazes so who knows?&lt;br /&gt;
&lt;br /&gt;
But it's funding (whether private or public) that decides the reality of these ideas - what would you pay for?</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/7492059393197118417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/7492059393197118417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/7492059393197118417'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/7492059393197118417'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2019/06/fighting-for-funding-what-would-you-pay.html' title='Fighting for Funding: What would you pay for?'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-1707263626971293811</id><published>2019-06-28T07:12:00.000-04:00</published><updated>2019-06-28T07:12:17.216-04:00</updated><title type='text'>Attending Southwest Fox 2019 could change your life - Find out how</title><content type='html'>&lt;a href="http://www.swfox.net/"&gt;Southwest Fox&lt;/a&gt; is coming up in October and as I do every year, I spoke with the organizers &lt;a href="http://akselsoft.libsyn.com/rick-schummer-and-sw-fox-2019"&gt;Rick&lt;/a&gt;, &lt;a href="http://akselsoft.libsyn.com/doug-hennig-southwest-fox"&gt;Doug&lt;/a&gt; and &lt;a href="http://akselsoft.libsyn.com/tamar-granor-share-your-knowledge"&gt;Tamar&lt;/a&gt; on the FoxShow.&lt;br /&gt;
&lt;br /&gt;
Deadlines for Southwest Fox:&lt;br /&gt;
&lt;div style="box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; margin-bottom: 10px;"&gt;
Super-saver price (before July 1): $695&lt;br style="box-sizing: border-box;" /&gt;Early-bird price (before August 1): $770&lt;br style="box-sizing: border-box;" /&gt;Regular price (August 1 and later): $820&lt;/div&gt;
&lt;br class="Apple-interchange-newline" /&gt;
This year, I took a different approach with separate shows for each organizer but the main message is still the same : July 1st is their Go/No-Go date.&lt;br /&gt;
&lt;br /&gt;
Conferences don't talk about this very often. I don't think developers really question if Apple will hold their WWDC in June or Microsoft will hold their Build conference - but that's because those conferences are vendor-led.&lt;br /&gt;
&lt;br /&gt;
Southwest Fox is a community-driven conference - it's not driven by a company with an agenda. Listen to the interviews and you can hear how important each of the organizers feel the live connection between speakers and among attendees.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/1707263626971293811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/1707263626971293811' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/1707263626971293811'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/1707263626971293811'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2019/06/attending-southwest-fox-2019-could.html' title='Attending Southwest Fox 2019 could change your life - Find out how'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-4827478355783491765</id><published>2019-06-08T08:34:00.000-04:00</published><updated>2019-06-29T05:02:22.789-04:00</updated><title type='text'>Why who you are may define what you Hear</title><content type='html'>&lt;a href="https://www.20k.org/episodes/sonicillusions"&gt;Twenty-thousand Hertz &lt;/a&gt;just had a spectacular episode - Sonic Illusions. I encourage everyone to listen to it and perhaps more importantly the underlying message.&lt;br /&gt;
&lt;br /&gt;
It starts off referring to the whole &lt;a href="https://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=1&amp;amp;cad=rja&amp;amp;uact=8&amp;amp;ved=2ahUKEwi3pOHX_s_iAhUNjq0KHTPdB1wQtwIwAHoECAkQAQ&amp;amp;url=https%3A%2F%2Fwww.theguardian.com%2Fglobal%2Fvideo%2F2018%2Fmay%2F16%2Fwhat-do-you-hear-in-this-audio-clip-yanny-or-laurel-takes-internet-by-storm-video&amp;amp;usg=AOvVaw1ylYZ-00PMSOsJaSs7cKjy"&gt;Yanni Laurel &lt;/a&gt;thing which has been explained in a number of places but one of the psychologists, &lt;a href="http://deutsch.ucsd.edu/psychology/pages.php?i=101"&gt;Diana Deutsch&lt;/a&gt;, noted that the idea of sonic illusions could also be explained by dialect. She noted an instance where a two tone sound was heard one way by students in Southern California and another way by herself. While the story was about a specific type of sound, it also noted that this might account not just for sounds but also for understanding words.&lt;br /&gt;
&lt;br /&gt;
But this isn't about trying to help your New England aunt understand their Bronx-born Jewish New Yorker or how North Englanders talk with a different lazy accent than their Yorkshire counterparts. If the way you hear sounds is different, it may also be affecting the way you hear words and the way you react to conversations.&lt;br /&gt;
&lt;br /&gt;
When someone who says "you should do this", what is your impression? Are they telling you what to do or suggesting an action? We are often told it's the tone that tells the actual request, but it may simply be their dialect and where they are from. Just as importantly, when you say "you should do this", how it is interpreted may not simply be on using your "as-nicely-as-possible" voice, but also who you're saying it to (obviously, you should always be nice when telling people what to do).&lt;br /&gt;
&lt;br /&gt;
I may be overreaching here but I'm interested to keep this in mind in future meetings. I recall back in 2006, I was at a Southwest Fox conference and met Craig Boyd for the first time. Later in the evening, he looked at me and said "whoa, you're really intense." Granted I was at a developer conference and, yes, I'm a developer and I get enthusiastic, but that comment has stuck with me. The 20K podcast episode has made me try and take not just my words but my audience into consideration.</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/4827478355783491765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/4827478355783491765' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/4827478355783491765'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/4827478355783491765'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2019/06/why-who-you-are-may-define-what-you-hear.html' title='Why who you are may define what you Hear'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-9202801572853376039</id><published>2019-06-01T07:00:00.003-04:00</published><updated>2020-06-03T16:15:00.159-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eero'/><category scheme='http://www.blogger.com/atom/ns#' term='eero icon'/><category scheme='http://www.blogger.com/atom/ns#' term='router'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><title type='text'>eero icons - What the heck? </title><content type='html'>&lt;h3&gt;
How to change icons used by eero....&lt;/h3&gt;
&lt;span style="font-size: x-small;"&gt;Formerly titled: Eero router - Nicknames and icons&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;UPDATE: Finally!!!! The most recent update to the eero now allows you to specify icons from their library. And it's a GOOD library - thank you. Finally!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFqXG1DClydApcKPzPsqcnXW4HFaKFCLvbsJZBysZ4tDTQjtBV5bRQsZ8ELypeDUw7PUfMIT6bzBtAcQi9sauCqTrlgFv1rztagNRL6v5TORpuXhHczJdxJQ9xO910KLY_bOd7_A/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="2436" data-original-width="1125" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFqXG1DClydApcKPzPsqcnXW4HFaKFCLvbsJZBysZ4tDTQjtBV5bRQsZ8ELypeDUw7PUfMIT6bzBtAcQi9sauCqTrlgFv1rztagNRL6v5TORpuXhHczJdxJQ9xO910KLY_bOd7_A/s320/IMG_BD0D20262EC1-1.jpeg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;
If you've extended your wireless network using &lt;a href="https://www.amazon.com/gp/product/B0777K6F8R/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;amp;tag=akselsolution-20&amp;amp;creative=9325&amp;amp;linkCode=as2&amp;amp;creativeASIN=B0777K6F8R&amp;amp;linkId=9f2e21aee7773ce36a572254d28db71d"&gt;eero&lt;/a&gt;, you have downloaded the app. I upgraded my network when I noticed a bunch of dead spots in what should have been a fairly reasonable coverage space (1700 sqft home). With two eero devices, our home is pretty well covered.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghcCDm4_5jh0YRerUi-NeCo3ZtGaz6ICzYBQum9nNmv1G_Z4v5p16xNPwFm99-swD92S7hkx_50JLfnrox0x7SgCDfR-ff2BT0rSFyVydT_gdxeZ5DQ93dFYLlhLAmftZIy90MMQ/s1600/IMG_1151.jpeg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="104" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghcCDm4_5jh0YRerUi-NeCo3ZtGaz6ICzYBQum9nNmv1G_Z4v5p16xNPwFm99-swD92S7hkx_50JLfnrox0x7SgCDfR-ff2BT0rSFyVydT_gdxeZ5DQ93dFYLlhLAmftZIy90MMQ/s320/IMG_1151.jpeg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Click on Connected devices and every device connected to your network is displayed. The eero app identifies the manufacturer and, with some devices, even the name of a given device. The eero app may also show an icon that represents its use.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYQOoKuAxxOUTx8smWOaW67QNVOeg33wkXqhFo-9co-CRGck-xhyphenhyphen39oa_jcj-fIbPB8CB99wpwYyxWJN4_fTIU8qGMvnWe4F-K5JyAQQ5z3OKAJTHKkclJIfbJwptMC5U__xszqw/s1600/IMG_1153.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Some basic icons identified automatically by the eero app" border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYQOoKuAxxOUTx8smWOaW67QNVOeg33wkXqhFo-9co-CRGck-xhyphenhyphen39oa_jcj-fIbPB8CB99wpwYyxWJN4_fTIU8qGMvnWe4F-K5JyAQQ5z3OKAJTHKkclJIfbJwptMC5U__xszqw/s400/IMG_1153.png" title="" width="185" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some of the more obvious icons are those for phones, laptops and TVs. Unfortunately, the majority of devices get a fairly generic "wifi" icon.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6WDgfiw2uJoNTSJ9R50WGKb3vwA1gtHktQLhqfXS3LwHcP2kDerWvNKhgEFR8GDCNCzs4KPkklhotGnNpw6M0sokIk_Nmvu7liLAdTaXhTA6GuGxJ2JPr9mdlwgSOXS0yqOBrbQ/s1600/IMG_1154.jpeg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="The eero generic wifi device icon" border="0" height="103" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6WDgfiw2uJoNTSJ9R50WGKb3vwA1gtHktQLhqfXS3LwHcP2kDerWvNKhgEFR8GDCNCzs4KPkklhotGnNpw6M0sokIk_Nmvu7liLAdTaXhTA6GuGxJ2JPr9mdlwgSOXS0yqOBrbQ/s320/IMG_1154.jpeg" title="" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
But you can change this. Give devices a nickname using certain key words and the icon will change.&lt;br /&gt;
(Note: once you give a device a nickname, I haven't found a way of getting rid of it).&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the list is fairly limited. Other eero users &lt;a href="https://community.eero.com/t/80b7tv/more-accurate-device-icons"&gt;want to know&lt;/a&gt; how to customize the icons or at least identify them better. While I can appreciate it's difficult to appease everyone, it would be nice if some of the more common omissions were addressed. Most people using an eero likely have a&amp;nbsp;&lt;a href="https://www.amazon.com/gp/product/B0131RG6VK/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;amp;tag=akselsolution-20&amp;amp;creative=9325&amp;amp;linkCode=as2&amp;amp;creativeASIN=B0131RG6VK&amp;amp;linkId=b6ec68757ef318bf1e75eddcac0c1b66"&gt;thermostat&lt;/a&gt;,&amp;nbsp;&lt;a href="https://www.amazon.com/gp/product/B00WBJGUA2/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;amp;tag=akselsolution-20&amp;amp;creative=9325&amp;amp;linkCode=as2&amp;amp;creativeASIN=B00WBJGUA2&amp;amp;linkId=6c455c7b9949b1df067f952368526111"&gt;security cameras&lt;/a&gt;&amp;nbsp;, &lt;a href="https://www.amazon.com/gp/product/B071V85CPR/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;amp;tag=akselsolution-20&amp;amp;creative=9325&amp;amp;linkCode=as2&amp;amp;creativeASIN=B071V85CPR&amp;amp;linkId=35210b52b271b979269fdcaf00c6f5c0"&gt;door locks&lt;/a&gt;,&amp;nbsp;&amp;nbsp;&lt;a href="https://www.amazon.com/gp/product/B00N2ZDXW2/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;amp;tag=akselsolution-20&amp;amp;creative=9325&amp;amp;linkCode=as2&amp;amp;creativeASIN=B00N2ZDXW2&amp;amp;linkId=eef05129551dbdb7f8ca6abb1038d868"&gt;doorbells&lt;/a&gt;&amp;nbsp;(maybe even&amp;nbsp;&lt;a href="https://www.amazon.com/gp/product/B078T1X2HM/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;amp;tag=akselsolution-20&amp;amp;creative=9325&amp;amp;linkCode=as2&amp;amp;creativeASIN=B078T1X2HM&amp;amp;linkId=b59df7acd6ca1dc5dfc7230bd4ace947"&gt;blinds&lt;/a&gt;&amp;nbsp;would be nice).&lt;br /&gt;
&lt;br /&gt;
Eero hasn't published (at least as far I know) the list of keywords that trigger the icon association so until there is one OR an app update lets us customize the icons, here are the icons I've noticed.&lt;br /&gt;
&lt;br /&gt;
If you've noticed more, please tell me in the comment section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Phone&amp;nbsp;&lt;/h4&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj36Sy6WCTLgOkpf1XwoUAEWoRk9TLdrfg992cc3fQ2cHP8-Lqm4402gbt5A9Cl7D9aig7h3zenL3djrfzfV-eTtqQVv2QAjVdjNwj-0UDEfVPu-k1W6yl1PJlglvlLXom3NpCCbA/s1600/IMG_1153.jpeg"&gt;&lt;img alt="eero phone icon" border="0" height="104" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj36Sy6WCTLgOkpf1XwoUAEWoRk9TLdrfg992cc3fQ2cHP8-Lqm4402gbt5A9Cl7D9aig7h3zenL3djrfzfV-eTtqQVv2QAjVdjNwj-0UDEfVPu-k1W6yl1PJlglvlLXom3NpCCbA/s320/IMG_1153.jpeg" title="" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h4&gt;
Laptop&amp;nbsp;&lt;/h4&gt;
&lt;div style="margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
&lt;div style="color: #464749; font-size: 16px;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiySM8Ty2AVLemzeeAlZ7owuNQKU45Sx72pyqqpN4q7zgnrCrmjNMyAK_gCdC71G7sdQuZZ6r-JUTPVN3I9Ocu6Xc81FF3AvN3WGArLAGp0YT7tgcFfu05E3Ar3uShOXbADaZnZEA/s1600/IMG_1155.jpeg"&gt;&lt;img alt="eero laptop icon" border="0" height="98" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiySM8Ty2AVLemzeeAlZ7owuNQKU45Sx72pyqqpN4q7zgnrCrmjNMyAK_gCdC71G7sdQuZZ6r-JUTPVN3I9Ocu6Xc81FF3AvN3WGArLAGp0YT7tgcFfu05E3Ar3uShOXbADaZnZEA/s320/IMG_1155.jpeg" title="" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #464749; font-size: 16px;"&gt;
Keywords: Macbook, Surface&lt;/div&gt;
&lt;div style="color: #464749; font-size: 16px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
Desktop PC / Mac&lt;/h4&gt;
&lt;div class="separator" style="clear: both; color: #464749; font-size: 16px; text-align: left;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmsaJLrmOH6vFrhT8w2zERdI_ENc6b0EPxJPdJKLIyPw9Bg3W5Yg0ExNRMXeQCqgxypc3wnWiaZLblUfHGc3naEmW0Lyk9perX31iKoJ7SP1tj2tFmojrYMc_AaxQdj7U7H2C8CQ/s1600/IMG_1587.jpeg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="275" data-original-width="845" height="104" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmsaJLrmOH6vFrhT8w2zERdI_ENc6b0EPxJPdJKLIyPw9Bg3W5Yg0ExNRMXeQCqgxypc3wnWiaZLblUfHGc3naEmW0Lyk9perX31iKoJ7SP1tj2tFmojrYMc_AaxQdj7U7H2C8CQ/s320/IMG_1587.jpeg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; color: #464749; font-size: 16px; text-align: left;"&gt;
Keywords: PC, Desktop, Mac (iMac)&lt;/div&gt;
&lt;div class="separator" style="clear: both; color: #464749; font-size: 16px; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
Server&lt;/h4&gt;
&lt;div class="separator" style="clear: both; color: #464749; font-size: 16px; text-align: left;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvimvNt0SW2KU3Z_Jn_TIalUtGZQbipdpuaObr9wz18eY_fWggXkj-nfsKp3cd5AxI28K8o8WveJvzfrODCA1ZFovLn7AHKYFA4mJW2hSQAhHofsJz8ZFZJ32nZxncfVQrAVipOQ/s1600/IMG_1586.jpeg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="243" data-original-width="735" height="105" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvimvNt0SW2KU3Z_Jn_TIalUtGZQbipdpuaObr9wz18eY_fWggXkj-nfsKp3cd5AxI28K8o8WveJvzfrODCA1ZFovLn7AHKYFA4mJW2hSQAhHofsJz8ZFZJ32nZxncfVQrAVipOQ/s320/IMG_1586.jpeg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; color: #464749; font-size: 16px; text-align: left;"&gt;
Keywords: Server, Hub&lt;/div&gt;
&lt;div style="color: #464749; font-size: 16px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;
Tablet&amp;nbsp;&lt;/h4&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh__0x8pj_edhzwhnElO3jaBb1UIShRDdGIWMut2hyphenhyphentIDlymhI0btfeI_9GUozVI7GMNmy4IWCXgmjzID29b6NWtGn-DdgOk1ExxTMWXj2okoC92tv_CpLDop7HxpxrvstSOD-AwQ/s1600/IMG_1153.jpeg"&gt;&lt;img alt="eero tablet icon" border="0" height="102" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh__0x8pj_edhzwhnElO3jaBb1UIShRDdGIWMut2hyphenhyphentIDlymhI0btfeI_9GUozVI7GMNmy4IWCXgmjzID29b6NWtGn-DdgOk1ExxTMWXj2okoC92tv_CpLDop7HxpxrvstSOD-AwQ/s320/IMG_1153.jpeg" title="" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
Keywords: iPad, tablet,&amp;nbsp;&lt;/div&gt;
&lt;h4&gt;
Watch&lt;/h4&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmp-qNaEu6gCWpgK9AlBMJUVvNRuvsnTxZfCSvds5IWI7EdM7u_HAiC7UMK0r4Q0-ULFhyphenhyphenK5VouCqfG0cgRO0AJ-AdvxVYokHlzxmAIWiWNmUqZlB6lHr_7y-V7QmOtvfjv0sbrQ/s1600/IMG_1156.jpeg"&gt;&lt;img alt="eero watch icon" border="0" height="100" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmp-qNaEu6gCWpgK9AlBMJUVvNRuvsnTxZfCSvds5IWI7EdM7u_HAiC7UMK0r4Q0-ULFhyphenhyphenK5VouCqfG0cgRO0AJ-AdvxVYokHlzxmAIWiWNmUqZlB6lHr_7y-V7QmOtvfjv0sbrQ/s320/IMG_1156.jpeg" title="" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h4&gt;
Printer&amp;nbsp;&lt;/h4&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpAeEzLEggHAJPpdb6l4jvSur2DhlpC8MMKy9648gqQx33tcxBOs_qfBXDv7JZDlAphjU9Js12M8sTJLsjKtdLMwQEbrVFqB10pV5JYxA8Je8_KbBKDoIvBUkUkfFkdDfYIG36mg/s1600/IMG_1158.jpeg"&gt;&lt;img alt="eero printer icon" border="0" height="104" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpAeEzLEggHAJPpdb6l4jvSur2DhlpC8MMKy9648gqQx33tcxBOs_qfBXDv7JZDlAphjU9Js12M8sTJLsjKtdLMwQEbrVFqB10pV5JYxA8Je8_KbBKDoIvBUkUkfFkdDfYIG36mg/s320/IMG_1158.jpeg" title="" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
Keywords: &lt;a href="https://www.amazon.com/gp/product/B00JCA4GQS/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;amp;tag=akselsolution-20&amp;amp;creative=9325&amp;amp;linkCode=as2&amp;amp;creativeASIN=B00JCA4GQS&amp;amp;linkId=53568c3447c19ef4158b7ce905787fce"&gt;Printer&lt;/a&gt;&lt;/div&gt;
&lt;h4&gt;
Speaker&amp;nbsp;&lt;/h4&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLrclZAHyCp25uOQcDdNYxr-N2FR4Doy5ufh6TLiT6juMLjb0dkPlGTVrA7FMFPuSGiv-9d0FPBoMLhPTBaQcC_qQ4D44grWUCa7n6To49wuVwMkUmnX63Y9DJ5dVuEZTncGEHog/s1600/IMG_1157.jpeg"&gt;&lt;img alt="eero speaker icon" border="0" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLrclZAHyCp25uOQcDdNYxr-N2FR4Doy5ufh6TLiT6juMLjb0dkPlGTVrA7FMFPuSGiv-9d0FPBoMLhPTBaQcC_qQ4D44grWUCa7n6To49wuVwMkUmnX63Y9DJ5dVuEZTncGEHog/s320/IMG_1157.jpeg" title="" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
Keywords: &lt;a href="https://www.amazon.com/gp/product/B07NW3DGBQ/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;amp;tag=akselsolution-20&amp;amp;creative=9325&amp;amp;linkCode=as2&amp;amp;creativeASIN=B07NW3DGBQ&amp;amp;linkId=adcd8dd027fa5f92100013c0a0b72e45"&gt;Speaker&lt;/a&gt;, &lt;a href="https://www.amazon.com/gp/product/B0794W1SKP/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;amp;tag=akselsolution-20&amp;amp;creative=9325&amp;amp;linkCode=as2&amp;amp;creativeASIN=B0794W1SKP&amp;amp;linkId=53bc413ece0e8874dee2182d1ca9b7af"&gt;Echo&lt;/a&gt;, &lt;a href="https://www.amazon.com/gp/product/B07D4734HR/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;amp;tag=akselsolution-20&amp;amp;creative=9325&amp;amp;linkCode=as2&amp;amp;creativeASIN=B07D4734HR&amp;amp;linkId=054e5afca6d2593c381b97682d43c321"&gt;Sonos&lt;/a&gt;, HomePod&lt;/div&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
TV&amp;nbsp;&lt;/h4&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVL8PmAyjeNwtUJ9Jhq3vBMZwebWHJNDcyG5R4CQNbzsgmFnupzpr2mxc1xqV8TL9dSEuw4aS5X02lFoagmX_TK_L3ibV1aAEIx7XQ-nNXib1RJS6dVKoBISBi_CYR5yhcl7OOkA/s1600/IMG_1155.jpeg"&gt;&lt;img alt="eero tv icon" border="0" height="103" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVL8PmAyjeNwtUJ9Jhq3vBMZwebWHJNDcyG5R4CQNbzsgmFnupzpr2mxc1xqV8TL9dSEuw4aS5X02lFoagmX_TK_L3ibV1aAEIx7XQ-nNXib1RJS6dVKoBISBi_CYR5yhcl7OOkA/s320/IMG_1155.jpeg" title="" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
Keywords: Amazon Fire, Apple TV, TV, &lt;a href="https://www.amazon.com/gp/product/B07HDHXZH4/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;amp;tag=akselsolution-20&amp;amp;creative=9325&amp;amp;linkCode=as2&amp;amp;creativeASIN=B07HDHXZH4&amp;amp;linkId=1cf43098139b53d9dfe80d1e37af791c"&gt;Roku&lt;/a&gt;&lt;/div&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
Light (or other home automation devices)&lt;/h4&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS6aMRl0P3cVFX1AyJabkC3UvL0Fuy58kHo4uO_lcyLzdcEQdZ7jmZVgKdTWX_80r47jNlLZdAeYL8F1cNpZMsxdtiWE59nuKFYmaqelz6OZycsUOJ8YQjKh8-urVhEhjNXL-d6g/s1600/IMG_1157.jpeg"&gt;&lt;img alt="eero light switch icon" border="0" height="141" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS6aMRl0P3cVFX1AyJabkC3UvL0Fuy58kHo4uO_lcyLzdcEQdZ7jmZVgKdTWX_80r47jNlLZdAeYL8F1cNpZMsxdtiWE59nuKFYmaqelz6OZycsUOJ8YQjKh8-urVhEhjNXL-d6g/s320/IMG_1157.jpeg" title="" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
Keywords: Light&lt;/div&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
It would be nice if they also supported different icons for fans, &lt;a href="https://www.amazon.com/gp/product/B00U31IO3Q/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;amp;tag=akselsolution-20&amp;amp;creative=9325&amp;amp;linkCode=as2&amp;amp;creativeASIN=B00U31IO3Q&amp;amp;linkId=1c5a6a5666d799122d85383f5282e4f2"&gt;plugs&lt;/a&gt; , &lt;a href="https://www.amazon.com/gp/product/B0743Q7VCL/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;amp;tag=akselsolution-20&amp;amp;creative=9325&amp;amp;linkCode=as2&amp;amp;creativeASIN=B0743Q7VCL&amp;amp;linkId=2f3059209e626f0cb43f3092a5ce9cd7"&gt;dimmers&lt;/a&gt;, &lt;a href="https://www.amazon.com/gp/product/B019IJNKCS/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;amp;tag=akselsolution-20&amp;amp;creative=9325&amp;amp;linkCode=as2&amp;amp;creativeASIN=B019IJNKCS&amp;amp;linkId=03d8b8dcb5b61da619a67480a782d419"&gt;outside plugs&lt;/a&gt;, light switches (I have a variety of iDevices switches so using the standard Light icon doesn't really help me out) - but unfortunately they don't.&lt;/div&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
Router&lt;/h4&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrEHHG_Fq4SX5mef0rCsYNw5KJ03fQMnPzK5oAK9Hlz43n0wSqidaJ0QrPlRfRbwHMQL7wnwsCWPKyqWAiwGFYbFZx2w6y1LD-4Bp9ppLZUY7aS_D2VctVPjIAPU9QwZAFv5EbxQ/s1600/IMG_1157.jpeg"&gt;&lt;img alt="eero router icon" border="0" height="109" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrEHHG_Fq4SX5mef0rCsYNw5KJ03fQMnPzK5oAK9Hlz43n0wSqidaJ0QrPlRfRbwHMQL7wnwsCWPKyqWAiwGFYbFZx2w6y1LD-4Bp9ppLZUY7aS_D2VctVPjIAPU9QwZAFv5EbxQ/s320/IMG_1157.jpeg" title="" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
Keywords: Router&lt;/div&gt;
&lt;h4&gt;
Gaming Devices&lt;/h4&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirNue4sHXrOoVivDyhgfHYHcfIw8hXCWp9AqUrcNj43n6AxyqZAIXLJMh78VEv8G5evTapLk_At-zKmIxAWKdNV_-j8kW-2y2w4wbcVj-VU2fgNRWm53_pHEH9phFEpxuFvO-lfA/s1600/IMG_1157.jpeg"&gt;&lt;img alt="eero gaming icon" border="0" height="92" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirNue4sHXrOoVivDyhgfHYHcfIw8hXCWp9AqUrcNj43n6AxyqZAIXLJMh78VEv8G5evTapLk_At-zKmIxAWKdNV_-j8kW-2y2w4wbcVj-VU2fgNRWm53_pHEH9phFEpxuFvO-lfA/s320/IMG_1157.jpeg" title="" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="caret-color: rgb(70, 71, 73); color: #464749; font-family: Proxima-Nova, sans-serif; font-size: 16px; margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;"&gt;
Keywords include: Wii, xBox, PS4, PS3,&amp;nbsp;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/9202801572853376039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/9202801572853376039' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/9202801572853376039'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/9202801572853376039'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2019/06/eero-router-nicknames-and-icons.html' title='eero icons - What the heck? '/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFqXG1DClydApcKPzPsqcnXW4HFaKFCLvbsJZBysZ4tDTQjtBV5bRQsZ8ELypeDUw7PUfMIT6bzBtAcQi9sauCqTrlgFv1rztagNRL6v5TORpuXhHczJdxJQ9xO910KLY_bOd7_A/s72-c/IMG_BD0D20262EC1-1.jpeg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-210588407489663494</id><published>2019-05-21T05:03:00.000-04:00</published><updated>2019-05-21T05:03:08.818-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='database design'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><title type='text'>Airtable - Last Modified Date/Time</title><content type='html'>I've spoken about &lt;a href="http://blog.aksel.com/2017/08/for-small-db-applications-airtable.html"&gt;Airtable&lt;/a&gt; before. A perfect replacement for tracking spreadsheets and smaller database solutions for businesses and individuals, Airtable fits into that niche market where smaller FoxPro and access-like applications have been used.&lt;br /&gt;
&lt;br /&gt;
It recently introduced a new field type that many have had to &lt;a href="https://community.airtable.com/t/knowing-when-there-is-a-change-to-the-record/1518/2"&gt;create&lt;/a&gt; themselves - &lt;a href="https://support.airtable.com/hc/en-us/articles/360022745493?utm_source=newsletter&amp;amp;utm_campaign=may2019&amp;amp;utm_content=lmt"&gt;Last Modified Time fields.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Why is this a big deal?&lt;br /&gt;
&lt;br /&gt;
It shows that Airtable continues to evolve on an ongoing basis. No, it hasn't provided the &lt;a href="https://community.airtable.com/t/fr-offline-mode/625/38"&gt;much requested&lt;/a&gt; off-line mode but the full set of features including third party integration and team features makes Airtable a great way for people looking for &lt;a href="https://airtable.com/universe"&gt;solutions&lt;/a&gt; in their offices.&lt;br /&gt;
&lt;br /&gt;
Many of the key features end-clients and developers want are directly built into Airtable &amp;nbsp;- auditing, custom field types and more. It also gives IFTT and Zapier integration, allowing for automation in ways you may not think possible.&lt;br /&gt;
&lt;br /&gt;
For developers, it provides amazing API features.Airtable's self-documenting REST API should serve as a template for any company wanting to provide third-party or custom access to their solution.&lt;br /&gt;
&lt;br /&gt;
(Note: this isn't a paid link - I use Airtable for a variety of solutions including inventory management, and project tracking).&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/210588407489663494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/210588407489663494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/210588407489663494'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/210588407489663494'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2019/05/airtable-last-modified-datetime.html' title='Airtable - Last Modified Date/Time'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-3236550841548061594</id><published>2019-04-27T06:07:00.002-04:00</published><updated>2019-04-27T06:07:48.437-04:00</updated><title type='text'>On Moving Offices</title><content type='html'>One thing I've noticed in larger organizations is that there would be a seemingly sporadic initiative to move employees into different office spaces. Most recently, I left my office to go to a meeting. During the meeting, I received a message telling me that my office had been moved - all within an hour! Yikes! It has taken me several weeks to get used to NOT opening the door to the previous area, interrupting someone else who was moved.&lt;br /&gt;
&lt;br /&gt;
It always frustrated me and seemed like a waste of space and effort. While I can appreciate moving offices when roles or projects change, the idea that companies should simply switch offices seems a bit off.&lt;br /&gt;
&lt;br /&gt;
And then, I read this &lt;a href="https://hbr.org/2018/03/why-you-should-rotate-office-seating-assignments"&gt;article&lt;/a&gt;. At the risk of copying perhaps too much, I always worrying about dead links so the highlights from &lt;a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3094639"&gt;research&lt;/a&gt; by Sunkee Lee are:&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;"&gt;“The idea is to encourage people from different worlds to mix and match ideas so that you come up with the best from both,” Lee says. “That boosts both individual and collective performance.”&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;"&gt;&amp;nbsp;When Steve Jobs was planning a new headquarters for Pixar, he famously located the large central bathrooms in the building’s atrium, requiring employees to walk some distance to use the facilities—but creating unplanned “collisions” meant to spark innovation&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;"&gt;the area containing more teams sourced 25% more deals from new suppliers, on average, than all merchandisers had sourced before the move. The deals weren’t the result of collaboration; they marked a change in the quality of people’s work.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;"&gt;Lee offers this explanation: “Once you’ve learned enough about the area you specialize in, exposure to new people will make you more creative. In particular, physical proximity promotes trust and the exchange of valuable and novel knowledge between newly met peers. Given the ability to do so, you will recombine this new knowledge with your own to innovate.”&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;"&gt;-----&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
I'm not sure this makes every move around a single area justified, but at least it does offer some explanation.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/3236550841548061594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/3236550841548061594' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/3236550841548061594'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/3236550841548061594'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2019/04/on-moving-offices.html' title='On Moving Offices'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5492774.post-615673012074839829</id><published>2019-04-02T03:46:00.002-04:00</published><updated>2019-04-02T03:46:32.685-04:00</updated><title type='text'>VFP 10? Maybe not - but definitely more than just 9 and available for 64-bit Windows</title><content type='html'>&lt;a href="http://technorati.com/tag/FoxPro" rel="tag"&gt;FoxPro&lt;/a&gt; &lt;a href="http://technorati.com/tag/VFP" rel="tag"&gt;VFP&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I was in a meeting the other day and someone mentioned Visual FoxPro 10. Well, we all know this doesn't exist but I received a follow-up email with a note from the developer of the &lt;a href="http://www.fwmsoftware.com/"&gt;LienWriter&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Definitely curious, I took a look online. There were some &lt;a href="https://support.west-wind.com/Thread5120SNVGY.wwt"&gt;posts&lt;/a&gt; online about it but nothing really earth-shaking. The best place to see it is the actual &lt;a href="http://www.baiyujia.com/vfpadvanced/default.asp"&gt;site&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
When I took a closer look, there was some things to be aware of:&lt;br /&gt;
&lt;br /&gt;
1. It's NOT VFP 10 - It's VFP Advanced.&lt;br /&gt;
&lt;br /&gt;
2. It's continually in development. There are updates that resolve other bugs on a fairly regular basis. The final release of 2018 was updated with a 2019 release in February, fixing several bugs.&lt;br /&gt;
&lt;br /&gt;
3. The 64-bit IS 64-bit. What does this mean? It doesn't use MSVCR7 - but rather MSVCR10. This is a C++ DLL that VFP uses. In the 64-bit version VFP Advanced uses MSVCR10. You can build an executable with the 64-bit version, distribute it on a machine with nothing more than MSVCR10 and the VFPA.DLL, and it will run completely on its own.&lt;br /&gt;
&lt;br /&gt;
4. The 64-bit version is NOT the 64-bit version you are looking for (yet). When someone mentions 64-bit, a few things come to mind - mainly, the 2GB limitations that VFP currently has, 256 field limits, size of memo fields, total record sizes and more. Sadly, VFP Advanced (VFPA) does not do this (yet). So why update? Well, it DOES run as a 64-bit application.&lt;br /&gt;
&lt;br /&gt;
5. 64-bit needs more controls. All of the ActiveX controls you've likely used in the past don't have 64-bit equivalents. So you need replacements for tree-views,listviews and others. The MS Web Control DOES have an equivalent which means if you are pushing more to web-looking interfaces, you're in luck but otherwise, you need to find alternatives.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='https://akselsoft.blogspot.com/feeds/615673012074839829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment/fullpage/post/5492774/615673012074839829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/615673012074839829'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5492774/posts/default/615673012074839829'/><link rel='alternate' type='text/html' href='https://akselsoft.blogspot.com/2019/04/vfp-10-maybe-not-but-definitely-more.html' title='VFP 10? Maybe not - but definitely more than just 9 and available for 64-bit Windows'/><author><name>Andrew MacNeill</name><uri>https://www.blogger.com/profile/03888444225785506598</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEXAQOfGBvdXwQKrZ675dSFpxgfcprx4rrxGwsvG87kjs2G9F13imlH9JCE_JRYwYv35Jj_-15Jxzbn7EKA9WLxNNJ1KF7Y1UDG79IS_9c0yEb-XPGcnSBKdPTB0jAIH4/s113/Screen+Shot+2019-08-09+at+4.29.16+AM.png'/></author><thr:total>0</thr:total></entry></feed>