tag:blogger.com,1999:blog-54927742024-03-17T15:49:43.991-04:00Andrew MacNeill - AKSEL SolutionsSolutions for Today; Ready for Tomorrow.
Andrew MacNeill's blog about development, technology, Visual FoxPro, databases, community and occasionally, some off-topic discussions.Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.comBlogger1533125tag:blogger.com,1999:blog-5492774.post-51156431163474845992024-03-17T15:49:00.001-04:002024-03-17T15:49:10.768-04:00I’m Supposed to Know<a href="https://programmingzen.com/im-supposed-to-know/">https://programmingzen.com/im-supposed-to-know/</a>
<br>
<br>Great post for developers who are struggling with unrealistic expectations of what they should know and what they shouldn'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.
<br>
<br>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.
<br>
<br>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 "Colonel", 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.
<br>
<br>Fast forward to today. There are so many different technologies and ways to accomplish things that it is literally impossible for someone to "know" 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'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.
<br>
<br>Certainly, AI tools give developers a good starting point, provided they give the right information, a task that isn'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'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's to find a way to bridge the gap between old and new systems.
<br>
<br>As a developer, embrace the fact that you won't and can'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.Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-26767492355635856162023-10-28T06:20:00.006-04:002023-10-29T06:09:14.863-04:00Elevating Project Specifications with Three Insightful ChatGPT PromptsFor developers and testers, ChatGPT, the freely accessible tool from OpenAI, is game-changing.<div><br /></div><div>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. </div><div><br /></div><div>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.<div><br /></div><div>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.</div><div><br /></div><div>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.</div><div><br /></div><div>Take a simple spec like:</div><div><br /></div><div><i>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.</i></div><div><br /></div><div><b>Prompt 1: “what questions would a developer have before coding this?”</b></div><div><br /></div><div>The result? </div><span><a name='more'></a></span><div><br /></div><div><div>Given the provided spec, a developer might have the following questions:</div><div><br /></div><div><span style="font-family: inherit;"><i>1. **Platform and Technology**: On which platform or technology should the dialog be developed? Web, mobile (iOS, Android), desktop, etc.?</i></span></div><div><span style="font-family: inherit;"><i><br /></i></span></div><div><span style="font-family: inherit;"><i>2. **UI/UX Design**:</i></span></div><div><span style="font-family: inherit;"><i> - Should there be any specific design or theme to follow?</i></span></div><div><span style="font-family: inherit;"><i> - Are there any mockups or wireframes available?</i></span></div><div><span style="font-family: inherit;"><i> </i></span></div><div><span style="font-family: inherit;"><i>3. **Validation**:</i></span></div><div><span style="font-family: inherit;"><i> - Are there any specific validation requirements for the name and email fields?</i></span></div><div><span style="font-family: inherit;"><i> - Should the email be verified in any way (e.g., format check, unique check)?</i></span></div><div><span style="font-family: inherit;"><i> </i></span></div><div><span style="font-family: inherit;"><i>4. **Functionality**:</i></span></div><div><span style="font-family: inherit;"><i> - What should happen when the user clicks on "save"? Where should the data be saved?</i></span></div><div><span style="font-family: inherit;"><i> - What should happen when the user clicks on "cancel"? Should the dialog simply close, or are there additional actions to take?</i></span></div><div><span style="font-family: inherit;"><i> </i></span></div><div><span style="font-family: inherit;"><i>5. **Error Handling**:</i></span></div><div><span style="font-family: inherit;"><i> - How should errors be handled, for instance, if the email is in an invalid format or if saving fails?</i></span></div><div><span style="font-family: inherit;"><i> - Should there be specific error messages displayed?</i></span></div><div><span style="font-family: inherit;"><i><br /></i></span></div><div><span style="font-family: inherit;"><i>6. **Existing Infrastructure**:</i></span></div><div><span style="font-family: inherit;"><i> - Is this dialog part of an existing application? If so, is there a preferred way to integrate it?</i></span></div><div><span style="font-family: inherit;"><i> - Are there any backend services the dialog needs to communicate with?</i></span></div><div><span style="font-family: inherit;"><i><br /></i></span></div><div><span style="font-family: inherit;"><i>7. **Accessibility**:</i></span></div><div><span style="font-family: inherit;"><i> - Should the dialog be accessible (e.g., screen reader friendly, keyboard navigable)?</i></span></div><div><span style="font-family: inherit;"><i> </i></span></div><div><span style="font-family: inherit;"><i>8. **Localization and Internationalization**:</i></span></div><div><span style="font-family: inherit;"><i> - Does the dialog need to support multiple languages or locales?</i></span></div><div><span style="font-family: inherit;"><i> - Should the format of data (like email) adjust based on locale?</i></span></div><div><span style="font-family: inherit;"><i><br /></i></span></div><div><span style="font-family: inherit;"><i>9. **Performance and Scalability**:</i></span></div><div><span style="font-family: inherit;"><i> - Are there any performance considerations, such as the expected number of users or frequency of use?</i></span></div><div><span style="font-family: inherit;"><i> </i></span></div><div><span style="font-family: inherit;"><i>10. **Security**:</i></span></div><div><span style="font-family: inherit;"><i> - Are there security requirements to consider, especially when handling and storing emails?</i></span></div><div><span style="font-family: inherit;"><i> </i></span></div><div><span style="font-family: inherit;"><i>11. **State Management**:</i></span></div><div><span style="font-family: inherit;"><i> - Should the dialog remember its state or data across different sessions or instances?</i></span></div><div><span style="font-family: inherit;"><i><br /></i></span></div><div><span style="font-family: inherit;"><i>12. **Feedback**:</i></span></div><div><span style="font-family: inherit;"><i> - Should the user receive feedback after saving (e.g., a success message or animation)?</i></span></div><div><span style="font-family: inherit;"><i><br /></i></span></div><div><span style="font-family: inherit;"><i>13. **Responsiveness**:</i></span></div><div><span style="font-family: inherit;"><i> - Should the dialog be responsive to different screen sizes and devices?</i></span></div><div><span style="font-family: inherit;"><i><br /></i></span></div><div><span style="font-family: inherit;"><i>14. **Dependencies**:</i></span></div><div><span style="font-family: inherit;"><i> - Are there any specific libraries or frameworks the developer should use or avoid?</i></span></div><div><span style="font-family: inherit;"><i><br /></i></span></div><div><span style="font-family: inherit;"><i>15. **Future Considerations**:</i></span></div><div><span style="font-family: inherit;"><i> - Is there a possibility of adding more fields or features to this dialog in the future?</i></span></div><div><span style="font-family: inherit;"><i><br /></i></span></div><div><span style="font-family: inherit;"><i>Having clear answers to these questions will help ensure that the developer's implementation meets the desired requirements and expectations.</i></span></div></div><span><!--more--></span><div>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.</div><div><br /></div><div>Take this one step further. </div><div><br /></div><div><b>Prompt 2: “Please provide a full spec for this dialog.”</b></div><span><!--more--></span><div><br /></div><div><i>**Detailed Dialog Specification: "Person's Details"**</i></div><div><div><i><br /></i></div><div><i>---</i></div><div><i><br /></i></div><div><i>**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.</i></div><div><i><br /></i></div><div><i>---</i></div><div><i><br /></i></div><div><i>**1. Platform & Environment**:</i></div><div><i><br /></i></div><div><i>- The dialog should be web-based and be compatible with major browsers (Chrome, Firefox, Safari, Edge).</i></div><div><i><br /></i></div><div><i>---</i></div><div><i><br /></i></div><div><i>**2. UI/UX Design**:</i></div><div><i><br /></i></div><div><i>- **Layout**: A centered dialog box against a semi-transparent backdrop to prevent interaction with the underlying content.</i></div><div><i>- **Fields**:</i></div><div><i> 1. Label: "First Name" </i></div><div><i> - Input type: Text</i></div><div><i> 2. Label: "Last Name"</i></div><div><i> - Input type: Text</i></div><div><i> 3. Label: "Email"</i></div><div><i> - Input type: Email</i></div><div><i>- **Buttons**:</i></div><div><i> 1. "Save": Primary action button.</i></div><div><i> 2. "Cancel": Secondary action, placed left of the "Save" button.</i></div><div><i>- **Theme**: Default to system UI unless provided with a specific design.</i></div><div><i><br /></i></div><div><i>---</i></div><div><i><br /></i></div><div><i>**3. Validation**:</i></div><div><i><br /></i></div><div><i>- **First Name**: </i></div><div><i> - Should not be empty.</i></div><div><i> - Can be alphanumeric but must start with an alphabet.</i></div><div><i> - Max length: 50 characters.</i></div><div><i>- **Last Name**: </i></div><div><i> - Should not be empty.</i></div><div><i> - Can be alphanumeric but must start with an alphabet.</i></div><div><i> - Max length: 50 characters.</i></div><div><i>- **Email**: </i></div><div><i> - Should not be empty.</i></div><div><i> - Must adhere to standard email format (e.g., `name@example.com`).</i></div><div><i> - Max length: 100 characters.</i></div><div><i><br /></i></div><div><i>---</i></div><div><i><br /></i></div><div><i>**4. Functionality**:</i></div><div><i><br /></i></div><div><i>- **Save Button**:</i></div><div><i> - On click, validate all fields.</i></div><div><i> - If validation succeeds, store the data in the designated database or backend service.</i></div><div><i> - If validation fails, show error messages next to the problematic field(s).</i></div><div><i>- **Cancel Button**: </i></div><div><i> - On click, close the dialog and discard any changes/input made by the user.</i></div><div><i><br /></i></div><div><i><span><!--more--></span><br /></i></div><div><br /></div></div><div>Take this one step further and ask:</div><div><br /></div><div><b>Prompt 3: “Please design an ASCII mockup of what it should look like based on the spec. “</b></div><div><div><br /></div><div><span style="font-family: courier;">+------------------------------------------+</span></div><div><span style="font-family: courier;">| |</span></div><div><span style="font-family: courier;">| Person's Details |</span></div><div><span style="font-family: courier;">| |</span></div><div><span style="font-family: courier;">| First Name: [_______________] |</span></div><div><span style="font-family: courier;">| |</span></div><div><span style="font-family: courier;">| Last Name: [_______________] |</span></div><div><span style="font-family: courier;">| |</span></div><div><span style="font-family: courier;">| Email: [_______________________] |</span></div><div><span style="font-family: courier;">| |</span></div><div><span style="font-family: courier;">| [ Cancel ] [ Save ] |</span></div><div><span style="font-family: courier;">| |</span></div><div><span style="font-family: courier;">+------------------------------------------+</span></div></div><div><br /></div><div>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.</div><div><br /></div><div>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. </div><div><br /></div><div>Interestingly, one company, <a href="Http://www.scopemaster.com" target="_blank">ScopeMaster</a>, is doing this right now with its own technology.</div><div><br /></div></div><div>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.</div><div><br /></div><div>Happy coding!</div>Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-24385973018898163662022-03-19T06:26:00.001-04:002022-03-19T06:26:12.219-04:00Here’s what you need to know about software development in two quotes<div name="messageBodySection"> <div dir="auto">The task of the software development team is to create the illusion of simplicity. -- Grady Booch<br /> <br /> And if you have the illusion that such a task is simple then dream on, it's a nightmare -- Boudewijn Lutgerink<br /> <br /> Well said<br /> <br /> VFP and .NET: Kudos to Doug Hennig <a href="https://www.foxite.com/archives/kudos-to-doug-hennig-0000487966.htm" target="_blank">https://www.foxite.com/archives/kudos-to-doug-hennig-0000487966.htm</a></div> </div> Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-15752582202733005372022-02-18T05:58:00.001-05:002022-02-18T05:58:19.973-05:00Brandon Savage: Hating Old Code Is a Sign Of Growth<div name="messageBodySection"> <div dir="auto"><strong>Hating old code is a sign of growth.</strong><br /> <br /> In late 2021 I took a hard look at some code I wrote back in 2013. I <em>hated</em> 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 <em>ugly</em> and I was embarrassed.<br /> <br /> Ever have this experience? Hear the good news: it's <em>normal</em>, and perfectly fine.<br /> <br /> 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 <span style="color:#157efb">today</span>than you ever were then.<br /> <br /> 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.</div> </div> Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-54451799459846568262021-09-26T08:18:00.005-04:002021-09-29T07:19:14.206-04:005 Great Reasons to attend Virtual FoxFest<div><br /></div><div>What's coming up?</div><div><br /></div><div><a href="https://virtualfoxfest.com" target="_blank">Virtual FoxFest</a> 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.</div><div><br /></div><div>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.</div><div><br /></div><div>But really, I've gone through the sessions and I see five great sessions that I'm eager to check out.</div><div><br /></div><div>1. A Decade of Thor (Rick Schummer)</div><div>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.</div><div><br /></div><div>2. VFP C++ compiler. </div><div>Last year, we saw DotNetX as well as VFP Advanced. <a href="http://www.baiyujia.com/vfpadvanced/" target="_blank">VFP Advanced</a> is still going strong with great support for 64-bit applications. But this session has me intrigued. An add-on to provide both 64-bit support AND secure. Sign me up!</div><div><br /></div><div>3. AWS Hosted VFP</div><div>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.</div><div><br /></div><div>4. Building and Consuming REST-Based API with VFP</div><div>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.</div><div><br /></div><div>5. Multithreading in VFP</div><div>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 - something I've never heard of.</div><div><br /></div><div>There are a bunch of other exciting <a href="https://virtualfoxfest.com/sessions.aspx" target="_blank">sessions</a> at Virtual FoxFest including SQL Server reporting and document management, modernization of VFP and more.</div><div><br /></div><div>What sessions are you excited for?</div><div><br /></div>Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com2tag:blogger.com,1999:blog-5492774.post-30034021382895050772021-09-11T15:37:00.001-04:002021-09-11T15:37:25.426-04:00Twenty Is Myth<a href="https://anildash.com/2021/09/11/twenty-is-myth/">https://anildash.com/2021/09/11/twenty-is-myth/</a>
<br>
<br>Anil Dash has written a post of remembrance every year since September 11th, 2001 (yes, on the day).
<br>
<br>His blog has lots of other great things on it - but the ONE post I always look for is his post.
<br>
<br>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.
<br>
<br>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.Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-24512165646500266052021-08-14T06:36:00.001-04:002021-08-14T06:36:23.352-04:00Why the js/ts Visual Studio Experience is a welcome addition and what it needs more<a href="https://devblogs.microsoft.com/visualstudio/the-new-javascript-typescript-experience-in-vs-2022-preview-3/">https://devblogs.microsoft.com/visualstudio/the-new-javascript-typescript-experience-in-vs-2022-preview-3/</a>
<br>
<br>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.
<br>
<br>The one thing I would like to see is built-in support for Cypress - my e2e testing tool of choice. (<a href="Https://www.cypress.it">Https://www.cypress.it</a>) - which is a great tool for Vue and React apps.Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-12348303670130870962021-08-08T07:13:00.001-04:002021-08-08T07:13:22.248-04:00Why You Need a New Error HandlerError 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's wrong is important.
<br>
<br>I've seen a number of error handlers in the past, dating all the way back to Pat Adam's famous FP2ERROR routine (back from 1991).
<br>
<br>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.
<br>
<br>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.
<br>
<br><a href="https://doughennig.blogspot.com/2021/07/new-errorhandler-vfpx-project.html">https://doughennig.blogspot.com/2021/07/new-errorhandler-vfpx-project.html</a>
<br>
<br>If you AREN'T getting automatic feedback from your clients when they get an error, now there's no excuse.Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-48113151484872830512021-08-08T06:58:00.001-04:002021-08-08T06:58:29.335-04:00Load Only the Projects You Need with Solution Filters<a href="https://devblogs.microsoft.com/visualstudio/load-only-the-projects-you-need-with-solution-filters/">https://devblogs.microsoft.com/visualstudio/load-only-the-projects-you-need-with-solution-filters/</a>
<br>
<br>While I don't have a hundreds of projects in a solution, our larger application definitely has a few that don't need to be loaded each time (test apps, etc).
<br>
<br>It'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.Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-78234926784834945692021-08-03T05:02:00.004-04:002021-08-03T06:53:24.061-04:00Copying Git Repos with History <span style="font-family: inherit;">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. </span><div><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: inherit;">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.</span></div><div><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: inherit;">After several wrong paths, I came across this <a href="https://medium.com/@ayushya/move-directory-from-one-repository-to-another-preserving-git-history-d210fa049d4b">post</a>. 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.</span></div><div><span style="font-family: inherit;"><br /></span></div><div><span color="rgba(0, 0, 0, 0.9)" style="background-color: white;"><span style="font-family: inherit;">The key is the </span><span style="font-family: courier;">--allow-unrelated-histories</span><span style="font-family: inherit;"> 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. </span></span></div><div><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: inherit;">The starting point:</span></div><div><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: inherit;">DocsRepo: Documentation Files</span></div><div><span style="font-family: inherit;">SourceRepo: Source Files for Project 1</span></div><div><span style="font-family: inherit;">ScriptsRepo: Database Scripts</span></div><div><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: inherit;">Our desired end state was</span></div><div><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: inherit;">GoalRepo:</span></div><div><span style="font-family: inherit;"><span> Documentation</span><br /></span></div><div><span><span style="font-family: inherit;"><span> Source</span><br /></span></span></div><div><span><span><span style="font-family: inherit;"><span> Scripts</span><br /></span></span></span></div><div><span><span><span><span style="font-family: inherit;"><br /></span></span></span></span></div><div><span><span><span><span style="font-family: inherit;"><br /></span></span></span></span></div><div><span style="font-family: inherit;">Steps:</span></div><div><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: inherit;">Go to your new Repo</span></div><div><span style="font-family: inherit;"><br /></span></div><div><span color="rgba(0, 0, 0, 0.9)" style="background-color: white;"><span style="font-family: courier; font-size: x-small;">git remote add --fetch oldDocs https://MyOrg@dev.azure.com/MyOrg/Project/_git/DocsRepo</span></span></div><div><span color="rgba(0, 0, 0, 0.9)" style="background-color: white;"><span style="font-family: courier; font-size: x-small;">git merge oldDB/master --allow-unrelated-histories</span></span></div><div><span color="rgba(0, 0, 0, 0.9)" style="background-color: white;"><span style="font-family: inherit;"><br /></span></span></div><div><span color="rgba(0, 0, 0, 0.9)" style="background-color: white;"><span style="font-family: inherit;">This copies the files into the new repo but in their root folder.</span></span></div><div><span color="rgba(0, 0, 0, 0.9)" style="background-color: white;"><span style="font-family: inherit;"><br /></span></span></div><div><span style="font-family: inherit; font-size: x-small;">mkdir Docs</span></div><div><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: inherit;">Then manual copy (using VS Code or mv) all of the files into the new Docs folder.</span></div><div><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: courier; font-size: x-small;">git commit -m "Copied Docs folder"</span></div><div><span style="font-family: courier; font-size: x-small;">git push</span></div><div><span style="font-family: courier;"><br /></span></div><div><span style="font-family: courier;">git remote rm oldDocs</span></div><div><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: inherit;">Rinse and repeat.</span></div><div><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: inherit;">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.</span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixb6k2HVLszOr4ePp3k6M29fPd6ESbdn4CeIjNTBLX2CiJ6zYeFzAP2Cnjt3JivZPa6b_jmTlpJaKeSU1xHcBnaCvOwLB-7iid_ht0LF7dfFfQvU0jxFGRqtubljXSawBqbxdMTw/s1406/RepoShowRename.png" style="margin-left: 1em; margin-right: 1em;"><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" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><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;"><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" /></a></div><br /><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: inherit;">Problem solved! Thanks to <a href="https://medium.com/@ayushya">Ayushya</a></span></div><div><span style="font-family: inherit;"><br /></span></div><div><br /></div>Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-33765755793122184802020-09-20T05:31:00.001-04:002020-10-09T05:34:53.452-04:00The FoxShow - Virtual FoxFest 2020 InterviewPlease check out my <a href="https://traffic.libsyn.com/secure/akselsoft/FoxShow90VirtualFoxFest2020.mp3">FoxShow interview </a>with Rick Schummer, Tamar Granor and Doug Hennig about the upcoming Virtual FoxFest conference.<div><br /></div><div>The <a href="https://virtualfoxfest.com" target="_blank">conference</a> is spread out over three days in October with <a href="https://virtualfoxfest.com/speakers.aspx">speakers</a> from around the world. Since it's over three days, it's easy to attend and definitely affordable.</div><div><br /></div><div>It's also using Hopin, a virtual conferencing tool I've never heard of here. </div>Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com1tag:blogger.com,1999:blog-5492774.post-30955441285033997262020-08-02T09:11:00.001-04:002020-08-02T09:16:20.588-04:00Virtual FoxFest - A New Way to Conference<div name="messageBodySection"> <div dir="auto">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<a href="https://virtualfoxfest.com" target="_blank"> Virtual FoxFest</a>. At $49, it's a steal and a great way to learn some new ideas and get inspired.<br /> <br /> 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.<br /> <br /> 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.<br /> <br /> The FoxPro community has also really felt its international roots of late with <a href="http://www.baiyujia.com/vfpadvanced/f_vfpa_about.asp" target="_blank">VFP Advanced</a> (from China), <a href="https://www.xsharp.info/" target="_blank">X #</a> (a sponsor of the conference) and more. <br /> <br /> 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. 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.<br /> <br /> 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. <br /> <br /> I'm really looking forward to Virtual FoxFest and hope you are too.<br /> <br /> <br /> <br /></div> </div> Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-59216945395542921622019-12-21T07:53:00.003-05:002019-12-21T07:53:55.330-05:00Something Unexpected, Something NewI've started listening to Tim Crawford's <a href="http://timharford.com/articles/cautionarytales/">Cautionary Tales </a>podcast recently and aside from listening to enjoyable tales of design mess-ups and warfare losses, the most recent episode <a href="http://timharford.com/2019/12/cautionary-tales-ep-7-bowie-jazz-and-the-unplayable-piano/">Bowie, Jazz and the Unplayable Piano</a> has given me two of the things I love about great podcasts:<br />
<br />
-they make me think<br />
- they introduce me to something I've never heard/seen before<br />
<br />
<br />
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 <a href="https://www.grammy.com/grammys/news/pianist-keith-jarrett-story-k%C3%B6ln-concert">Grammy site</a>. Moreso, it made me go to Apple Music to listen to the <a href="https://music.apple.com/us/album/the-k%C3%B6ln-concert-live/1440840566">concert</a>. I've used <a href="http://mtcb.pwop.com/">Carl Franklins' Music To Code By</a> 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).<br />
<br />
<br />
Another part of the episode dealt with Brian Eno's <a href="https://en.wikipedia.org/wiki/Oblique_Strategies">oblique strategy cards</a>. 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 <a href="http://stoney.sb.org/eno/oblique.html">site</a> that pulls out a random card every visit. So my most recent visit said simply<br />
<br />
<h4 style="text-align: center;">
"Do the words need changing?"</h4>
<br />
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.<br />
<br />
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.Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-76504806620951384502019-09-04T05:03:00.001-04:002019-10-16T04:01:43.956-04:00Apple "Focus": What do you want your A/R glasses to do?Apple has new iPhones coming next <a href="https://www.macrumors.com/guide/upcoming-apple-products/">week</a> but I saw that they had plans for A/R glasses and some of their recent <a href="https://www.macrumors.com/2018/08/29/apple-akonia-holographics-ar-glasses/">acquisitions</a> confirm this. 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 <a href="https://www.idropnews.com/rumors/apples-futuristic-ar-glasses-might-warp-scenery-to-help-the-visually-impaired/111252/">IDropNews</a>:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<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;"><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" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Now THAT's what I'm talking about. If you've never seen the <a href="https://www.amazon.com/gp/product/B07PC7JKSB/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=akselsolution-20&creative=9325&linkCode=as2&creativeASIN=B07PC7JKSB&linkId=33166655bfc51a4af984c613926b4a30">Bose Frames</a>, 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. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Forget the gaming benefits. In recent years, I've used <a href="https://www.amazon.com/gp/product/B07Q4J16Y3/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=akselsolution-20&creative=9325&linkCode=as2&creativeASIN=B07Q4J16Y3&linkId=e088cab466d15ff35564ef28e46eaf44">video sunglasses</a> 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 <a href="https://scobleizer.blog/2019/06/01/but-i-dont-want-to-wear-glasses/">wear glasses</a> every day to make A/R a reality.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
(Update: I missed this <a href="https://www.theverge.com/2018/2/5/16966530/intel-vaunt-smart-glasses-announced-ar-video">older story</a> on the Verge but Intel definitely has the right idea with their Vaunt prototype. The technology described matches what I was referring to below - "<span style="background-color: white; caret-color: rgb(66, 66, 66); color: #424242; font-family: Helvetica, sans-serif; font-size: 18px;">The beauty of this system is that if you choose not to look at it, it disappears. It is truly gone.”</span>)</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
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.</div>
<br />
1. Auto magnification. A camera on the inside that would identify when someone was squinting (to read) and automatically magnify the content.<br />
<br />
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.<br />
<br />
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. <br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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<br />
<br />
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.<br />
<div>
<br /></div>
<div>
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.</div>
<div>
<br /></div>
<div>
What features would make you switch to smart glasses? </div>
<div>
<br /></div>
Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-73159526252910078092019-07-30T07:26:00.002-04:002019-08-09T05:00:20.548-04:00Why xSharp might be the tool FoxPro developers have been waiting forIn the latest <a href="http://thefoxproshow.com/">FoxShow </a>episode, I interview Robert van der Hulst, one of the main leads on the <a href="http://xsharp.info/">xSharp </a>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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<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;"><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" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br />
<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%"></iframe><br />
<br />
While he's been a direct team member of a variety of products in the xBase market (he hails from the Clipper and <a href="https://en.wikipedia.org/wiki/Visual_Objects">Visual Objects </a>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.<br />
<br />
<br />
<br />
XSharp uses the <a href="https://github.com/dotnet/roslyn">open source Microsoft Rosyln compiler</a> 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?<br />
<br />
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#?<br />
<br />
I won't spoil the entire interview but here are some key areas and jump points you may want to hear:<br />
<br />
2:00 -- Who is Robert?<br />
10:00 - the xSharp compiler and the concept of dialects<br />
20:00 - Target market <br />
25:00 - Form design & event handling<br />
30:00 - Status of xSharp as a released product <br />
39:00 - Multi-threading, syntax issues and feature support<br />
51:00 - Roadmap to the future<br />
56:00 - Southwest Fox 2019<br />
<br />
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.<br />
<br />
<a href="http://technorati.com/tag/FoxPro" rel="tag">FoxPro</a> <a href="http://technorati.com/tag/VFP" rel="tag">VFP</a>Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com1tag:blogger.com,1999:blog-5492774.post-74920593931971184172019-06-29T05:01:00.000-04:002019-08-09T05:02:30.468-04:00Fighting for Funding: What would you pay for?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 <a href="http://levarburtonpodcast.com/">Levar Burton reads</a>, you may want to consider it. It does offer some very interesting stories and Levar's readings are incredible.<br />
<br />
One recent listen was "<a href="https://art19.com/shows/b8dbdce1-2c32-42d2-ad58-6956a0c6b31c/embed?theme=light-blue&playlist_type=playlist&playlist_size=10#">The Best We Can</a>" (by <a href="https://www.carrievaughn.com/index.html">Carrie Vaughn</a>) about first contact with aliens - you. can READ the story <a href="https://www.tor.com/2013/07/17/the-best-we-can/">here</a> but Burton's read really does make it come to life. What was neat about the timing, however, was <a href="https://www.theverge.com/2019/6/27/18761441/nasa-new-frontiers-dragonfly-titan-saturn-moon-rotorcraft">this story</a> 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.<br />
<br />
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 <a href="https://www.nasa.gov/mission_pages/tdm/solarsail/index.html">solar sails </a>(which also had a Levar Burton Reads story) to this recent one, even physicists have different ideas of what technologies are even worth pursuing. This interview with <a href="https://jamesaltucher.com/podcast/michio-kaku/">Michio Kaku on the James Altucher</a> 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).<br />
<br />
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 <a href="https://patentlyo.com/patent/2011/01/tracing-the-quote-everything-that-can-be-invented-has-been-invented.html">everything worth inventing has already been invented</a>, 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?<br />
<br />
But it's funding (whether private or public) that decides the reality of these ideas - what would you pay for?Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-17072636269712938112019-06-28T07:12:00.000-04:002019-06-28T07:12:17.216-04:00Attending Southwest Fox 2019 could change your life - Find out how<a href="http://www.swfox.net/">Southwest Fox</a> is coming up in October and as I do every year, I spoke with the organizers <a href="http://akselsoft.libsyn.com/rick-schummer-and-sw-fox-2019">Rick</a>, <a href="http://akselsoft.libsyn.com/doug-hennig-southwest-fox">Doug</a> and <a href="http://akselsoft.libsyn.com/tamar-granor-share-your-knowledge">Tamar</a> on the FoxShow.<br />
<br />
Deadlines for Southwest Fox:<br />
<div style="box-sizing: border-box; caret-color: rgb(51, 51, 51); color: #333333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; margin-bottom: 10px;">
Super-saver price (before July 1): $695<br style="box-sizing: border-box;" />Early-bird price (before August 1): $770<br style="box-sizing: border-box;" />Regular price (August 1 and later): $820</div>
<br class="Apple-interchange-newline" />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-48274783557834917652019-06-08T08:34:00.000-04:002019-06-29T05:02:22.789-04:00Why who you are may define what you Hear<a href="https://www.20k.org/episodes/sonicillusions">Twenty-thousand Hertz </a>just had a spectacular episode - Sonic Illusions. I encourage everyone to listen to it and perhaps more importantly the underlying message.<br />
<br />
It starts off referring to the whole <a href="https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=2ahUKEwi3pOHX_s_iAhUNjq0KHTPdB1wQtwIwAHoECAkQAQ&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&usg=AOvVaw1ylYZ-00PMSOsJaSs7cKjy">Yanni Laurel </a>thing which has been explained in a number of places but one of the psychologists, <a href="http://deutsch.ucsd.edu/psychology/pages.php?i=101">Diana Deutsch</a>, 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.<br />
<br />
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.<br />
<br />
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).<br />
<br />
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.Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-92028015728533760392019-06-01T07:00:00.003-04:002020-06-03T16:15:00.159-04:00eero icons - What the heck? <h3>
How to change icons used by eero....</h3>
<span style="font-size: x-small;">Formerly titled: Eero router - Nicknames and icons</span><br />
<br />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!<div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFqXG1DClydApcKPzPsqcnXW4HFaKFCLvbsJZBysZ4tDTQjtBV5bRQsZ8ELypeDUw7PUfMIT6bzBtAcQi9sauCqTrlgFv1rztagNRL6v5TORpuXhHczJdxJQ9xO910KLY_bOd7_A/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><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" /></a></div><div><br /><div><br /></div><div><br /><div>
If you've extended your wireless network using <a href="https://www.amazon.com/gp/product/B0777K6F8R/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=akselsolution-20&creative=9325&linkCode=as2&creativeASIN=B0777K6F8R&linkId=9f2e21aee7773ce36a572254d28db71d">eero</a>, 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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<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;"><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" /></a></div>
<br />
<br />
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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<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;"><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" /></a></div>
<br />
<br />
<br />
Some of the more obvious icons are those for phones, laptops and TVs. Unfortunately, the majority of devices get a fairly generic "wifi" icon.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6WDgfiw2uJoNTSJ9R50WGKb3vwA1gtHktQLhqfXS3LwHcP2kDerWvNKhgEFR8GDCNCzs4KPkklhotGnNpw6M0sokIk_Nmvu7liLAdTaXhTA6GuGxJ2JPr9mdlwgSOXS0yqOBrbQ/s1600/IMG_1154.jpeg" style="margin-left: 1em; margin-right: 1em;"><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" /></a></div>
<br />
<br />
But you can change this. Give devices a nickname using certain key words and the icon will change.<br />
(Note: once you give a device a nickname, I haven't found a way of getting rid of it).<br />
<br />
Unfortunately, the list is fairly limited. Other eero users <a href="https://community.eero.com/t/80b7tv/more-accurate-device-icons">want to know</a> 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 <a href="https://www.amazon.com/gp/product/B0131RG6VK/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=akselsolution-20&creative=9325&linkCode=as2&creativeASIN=B0131RG6VK&linkId=b6ec68757ef318bf1e75eddcac0c1b66">thermostat</a>, <a href="https://www.amazon.com/gp/product/B00WBJGUA2/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=akselsolution-20&creative=9325&linkCode=as2&creativeASIN=B00WBJGUA2&linkId=6c455c7b9949b1df067f952368526111">security cameras</a> , <a href="https://www.amazon.com/gp/product/B071V85CPR/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=akselsolution-20&creative=9325&linkCode=as2&creativeASIN=B071V85CPR&linkId=35210b52b271b979269fdcaf00c6f5c0">door locks</a>, <a href="https://www.amazon.com/gp/product/B00N2ZDXW2/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=akselsolution-20&creative=9325&linkCode=as2&creativeASIN=B00N2ZDXW2&linkId=eef05129551dbdb7f8ca6abb1038d868">doorbells</a> (maybe even <a href="https://www.amazon.com/gp/product/B078T1X2HM/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=akselsolution-20&creative=9325&linkCode=as2&creativeASIN=B078T1X2HM&linkId=b59df7acd6ca1dc5dfc7230bd4ace947">blinds</a> would be nice).<br />
<br />
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.<br />
<br />
If you've noticed more, please tell me in the comment section.<br />
<br />
<br />
<br />
<h4>
Phone </h4>
<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;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj36Sy6WCTLgOkpf1XwoUAEWoRk9TLdrfg992cc3fQ2cHP8-Lqm4402gbt5A9Cl7D9aig7h3zenL3djrfzfV-eTtqQVv2QAjVdjNwj-0UDEfVPu-k1W6yl1PJlglvlLXom3NpCCbA/s1600/IMG_1153.jpeg"><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" /></a></div>
<h4>
Laptop </h4>
<div style="margin-bottom: 11px; margin-top: 11px; max-width: 100%; outline: none;">
<div style="color: #464749; font-size: 16px;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiySM8Ty2AVLemzeeAlZ7owuNQKU45Sx72pyqqpN4q7zgnrCrmjNMyAK_gCdC71G7sdQuZZ6r-JUTPVN3I9Ocu6Xc81FF3AvN3WGArLAGp0YT7tgcFfu05E3Ar3uShOXbADaZnZEA/s1600/IMG_1155.jpeg"><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" /></a></div>
<div style="color: #464749; font-size: 16px;">
Keywords: Macbook, Surface</div>
<div style="color: #464749; font-size: 16px;">
<br /></div>
<h4>
Desktop PC / Mac</h4>
<div class="separator" style="clear: both; color: #464749; font-size: 16px; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmsaJLrmOH6vFrhT8w2zERdI_ENc6b0EPxJPdJKLIyPw9Bg3W5Yg0ExNRMXeQCqgxypc3wnWiaZLblUfHGc3naEmW0Lyk9perX31iKoJ7SP1tj2tFmojrYMc_AaxQdj7U7H2C8CQ/s1600/IMG_1587.jpeg" style="margin-left: 1em; margin-right: 1em;"><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" /></a></div>
<div class="separator" style="clear: both; color: #464749; font-size: 16px; text-align: left;">
Keywords: PC, Desktop, Mac (iMac)</div>
<div class="separator" style="clear: both; color: #464749; font-size: 16px; text-align: left;">
<br /></div>
<h4>
Server</h4>
<div class="separator" style="clear: both; color: #464749; font-size: 16px; text-align: left;">
<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;"><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" /></a></div>
<div class="separator" style="clear: both; color: #464749; font-size: 16px; text-align: left;">
Keywords: Server, Hub</div>
<div style="color: #464749; font-size: 16px;">
<br /></div>
</div>
<h4>
Tablet </h4>
<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;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh__0x8pj_edhzwhnElO3jaBb1UIShRDdGIWMut2hyphenhyphentIDlymhI0btfeI_9GUozVI7GMNmy4IWCXgmjzID29b6NWtGn-DdgOk1ExxTMWXj2okoC92tv_CpLDop7HxpxrvstSOD-AwQ/s1600/IMG_1153.jpeg"><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" /></a></div>
<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;">
Keywords: iPad, tablet, </div>
<h4>
Watch</h4>
<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;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmp-qNaEu6gCWpgK9AlBMJUVvNRuvsnTxZfCSvds5IWI7EdM7u_HAiC7UMK0r4Q0-ULFhyphenhyphenK5VouCqfG0cgRO0AJ-AdvxVYokHlzxmAIWiWNmUqZlB6lHr_7y-V7QmOtvfjv0sbrQ/s1600/IMG_1156.jpeg"><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" /></a></div>
<h4>
Printer </h4>
<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;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpAeEzLEggHAJPpdb6l4jvSur2DhlpC8MMKy9648gqQx33tcxBOs_qfBXDv7JZDlAphjU9Js12M8sTJLsjKtdLMwQEbrVFqB10pV5JYxA8Je8_KbBKDoIvBUkUkfFkdDfYIG36mg/s1600/IMG_1158.jpeg"><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" /></a></div>
<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;">
Keywords: <a href="https://www.amazon.com/gp/product/B00JCA4GQS/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=akselsolution-20&creative=9325&linkCode=as2&creativeASIN=B00JCA4GQS&linkId=53568c3447c19ef4158b7ce905787fce">Printer</a></div>
<h4>
Speaker </h4>
<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;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLrclZAHyCp25uOQcDdNYxr-N2FR4Doy5ufh6TLiT6juMLjb0dkPlGTVrA7FMFPuSGiv-9d0FPBoMLhPTBaQcC_qQ4D44grWUCa7n6To49wuVwMkUmnX63Y9DJ5dVuEZTncGEHog/s1600/IMG_1157.jpeg"><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" /></a></div>
<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;">
Keywords: <a href="https://www.amazon.com/gp/product/B07NW3DGBQ/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=akselsolution-20&creative=9325&linkCode=as2&creativeASIN=B07NW3DGBQ&linkId=adcd8dd027fa5f92100013c0a0b72e45">Speaker</a>, <a href="https://www.amazon.com/gp/product/B0794W1SKP/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=akselsolution-20&creative=9325&linkCode=as2&creativeASIN=B0794W1SKP&linkId=53bc413ece0e8874dee2182d1ca9b7af">Echo</a>, <a href="https://www.amazon.com/gp/product/B07D4734HR/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=akselsolution-20&creative=9325&linkCode=as2&creativeASIN=B07D4734HR&linkId=054e5afca6d2593c381b97682d43c321">Sonos</a>, HomePod</div>
<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;">
<br /></div>
<h4>
TV </h4>
<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;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVL8PmAyjeNwtUJ9Jhq3vBMZwebWHJNDcyG5R4CQNbzsgmFnupzpr2mxc1xqV8TL9dSEuw4aS5X02lFoagmX_TK_L3ibV1aAEIx7XQ-nNXib1RJS6dVKoBISBi_CYR5yhcl7OOkA/s1600/IMG_1155.jpeg"><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" /></a></div>
<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;">
Keywords: Amazon Fire, Apple TV, TV, <a href="https://www.amazon.com/gp/product/B07HDHXZH4/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=akselsolution-20&creative=9325&linkCode=as2&creativeASIN=B07HDHXZH4&linkId=1cf43098139b53d9dfe80d1e37af791c">Roku</a></div>
<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;">
<br /></div>
<h4>
Light (or other home automation devices)</h4>
<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;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS6aMRl0P3cVFX1AyJabkC3UvL0Fuy58kHo4uO_lcyLzdcEQdZ7jmZVgKdTWX_80r47jNlLZdAeYL8F1cNpZMsxdtiWE59nuKFYmaqelz6OZycsUOJ8YQjKh8-urVhEhjNXL-d6g/s1600/IMG_1157.jpeg"><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" /></a></div>
<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;">
Keywords: Light</div>
<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;">
It would be nice if they also supported different icons for fans, <a href="https://www.amazon.com/gp/product/B00U31IO3Q/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=akselsolution-20&creative=9325&linkCode=as2&creativeASIN=B00U31IO3Q&linkId=1c5a6a5666d799122d85383f5282e4f2">plugs</a> , <a href="https://www.amazon.com/gp/product/B0743Q7VCL/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=akselsolution-20&creative=9325&linkCode=as2&creativeASIN=B0743Q7VCL&linkId=2f3059209e626f0cb43f3092a5ce9cd7">dimmers</a>, <a href="https://www.amazon.com/gp/product/B019IJNKCS/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=akselsolution-20&creative=9325&linkCode=as2&creativeASIN=B019IJNKCS&linkId=03d8b8dcb5b61da619a67480a782d419">outside plugs</a>, 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.</div>
<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;">
<br /></div>
<h4>
Router</h4>
<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;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrEHHG_Fq4SX5mef0rCsYNw5KJ03fQMnPzK5oAK9Hlz43n0wSqidaJ0QrPlRfRbwHMQL7wnwsCWPKyqWAiwGFYbFZx2w6y1LD-4Bp9ppLZUY7aS_D2VctVPjIAPU9QwZAFv5EbxQ/s1600/IMG_1157.jpeg"><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" /></a></div>
<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;">
Keywords: Router</div>
<h4>
Gaming Devices</h4>
<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;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirNue4sHXrOoVivDyhgfHYHcfIw8hXCWp9AqUrcNj43n6AxyqZAIXLJMh78VEv8G5evTapLk_At-zKmIxAWKdNV_-j8kW-2y2w4wbcVj-VU2fgNRWm53_pHEH9phFEpxuFvO-lfA/s1600/IMG_1157.jpeg"><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" /></a></div>
<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;">
Keywords include: Wii, xBox, PS4, PS3, </div>
<br />
<br />
<br />
<br /></div></div></div>Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com1tag:blogger.com,1999:blog-5492774.post-2105884074896634942019-05-21T05:03:00.000-04:002019-05-21T05:03:08.818-04:00Airtable - Last Modified Date/TimeI've spoken about <a href="http://blog.aksel.com/2017/08/for-small-db-applications-airtable.html">Airtable</a> 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.<br />
<br />
It recently introduced a new field type that many have had to <a href="https://community.airtable.com/t/knowing-when-there-is-a-change-to-the-record/1518/2">create</a> themselves - <a href="https://support.airtable.com/hc/en-us/articles/360022745493?utm_source=newsletter&utm_campaign=may2019&utm_content=lmt">Last Modified Time fields.</a><br />
<br />
Why is this a big deal?<br />
<br />
It shows that Airtable continues to evolve on an ongoing basis. No, it hasn't provided the <a href="https://community.airtable.com/t/fr-offline-mode/625/38">much requested</a> 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 <a href="https://airtable.com/universe">solutions</a> in their offices.<br />
<br />
Many of the key features end-clients and developers want are directly built into Airtable - auditing, custom field types and more. It also gives IFTT and Zapier integration, allowing for automation in ways you may not think possible.<br />
<br />
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.<br />
<br />
(Note: this isn't a paid link - I use Airtable for a variety of solutions including inventory management, and project tracking).<br />
Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-32365508415480615942019-04-27T06:07:00.002-04:002019-04-27T06:07:48.437-04:00On Moving OfficesOne 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.<br />
<br />
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.<br />
<br />
And then, I read this <a href="https://hbr.org/2018/03/why-you-should-rotate-office-seating-assignments">article</a>. At the risk of copying perhaps too much, I always worrying about dead links so the highlights from <a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3094639">research</a> by Sunkee Lee are:<br />
<br />
------<br />
<br />
<span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;">“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.”</span><br />
<span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;"><br /></span>
<span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;"> 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</span><br />
<span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;"><br /></span>
<span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;">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.</span><br />
<span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;"><br /></span>
<span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;">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.”</span><br />
<span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;">-----</span><br />
<span style="background-color: white; caret-color: rgb(34, 34, 34); color: #222222; font-family: Guardian; font-size: 16px;"><br /></span>
<br />
I'm not sure this makes every move around a single area justified, but at least it does offer some explanation.<br />
<br />Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-6156730120748398292019-04-02T03:46:00.002-04:002019-04-02T03:46:32.685-04:00VFP 10? Maybe not - but definitely more than just 9 and available for 64-bit Windows<a href="http://technorati.com/tag/FoxPro" rel="tag">FoxPro</a> <a href="http://technorati.com/tag/VFP" rel="tag">VFP</a><br />
<br />
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 <a href="http://www.fwmsoftware.com/">LienWriter</a>.<br />
<br />
Definitely curious, I took a look online. There were some <a href="https://support.west-wind.com/Thread5120SNVGY.wwt">posts</a> online about it but nothing really earth-shaking. The best place to see it is the actual <a href="http://www.baiyujia.com/vfpadvanced/default.asp">site</a>.<br />
<br />
When I took a closer look, there was some things to be aware of:<br />
<br />
1. It's NOT VFP 10 - It's VFP Advanced.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
<br />Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-20187138570836907262018-10-30T05:10:00.000-04:002018-10-30T05:10:11.384-04:00Seeking TruthJames Altucher's recent <a href="https://jamesaltucher.com/2018/10/noam-dworman/?utm_source=email&utm_source=email&utm_medium=website-link&utm_term=10262018&utm_content=&utm_campaign=noam-dworman-censorship&r=ATC">podcast episode</a> with Norm Dworman hits on a variety of topics but the essence of the episode is really in the last fifteen minutes where they discuss the tone of the world, censorship and what the next steps are.<br />
<br />
Just the other day, I was asked about choosing sides and it was a very difficult decision. Not because it's a right/left scenario but rather that there are no true right vs left sides anymore. It's all personal attacks and very little ideas. Politics is no longer a debate or discussion on ideas but more personal conflicts. Social media simply amplifies this and the more the amplification is reported on, the worse it gets. We live in a world where media businesses care about eyeballs and since most people want to watch a train wreck, so that's what they put on the air. They mix fact and fiction ("based on a true story, <i>mostly</i>) and people believe it as fact. I have a rough time thinking of past leaders (Churchill, Thatcher, even Reagan) and how they would fare in such a climate.<br />
<br />
Maybe that's why the podcast resonated with me. You can listen to it or you can just read the last few pieces of the link where James writes out:<br />
<br />
A + B + C = Punish those who should be punished. Follow the law and verify the truth.<br />
<br />
I was asked what I believe in. After some reflection, I thought of <a href="http://aynrandlexicon.com/lexicon/identity.html">Atlas Shrugged</a>, Ayn Rand and <a href="http://www.importanceofphilosophy.com/Metaphysics_Identity.html">Aristotle</a> and said "the truth". It's no longer a right v. left because neither side can claim they even follow the truth. Maybe that's why programming and engineering makes so much sense - there's no wiggle room, even if you try to define True=False.<br />
<br />
<i>(aside: What is law? Laws should be based on truths such as no one person can make more of a claim to the truth than another)</i><br />
<br />
I recently "tried" to invest in <a href="https://civil.co/">Civil</a> (which I found from <a href="https://zigzagpod.com/">ZigZag</a>) and still try to support it, unless its support for journalism starts to veer towards opinion rather than fact.<br />
<br />
<br />
<br />
The truth may need to be uncovered and it can take time. But in the end, if you don't believe in the truth, then what is the alternative?Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-39394451073641281762018-10-27T06:25:00.002-04:002018-10-27T06:25:16.618-04:00Not the way to improve Journalism (political)Maybe CNN should stop allowing their news reporters from starting their broadcast with an indictment of Trump BEFORE reporting the news.<br />
<br />
Watching Anderson Cooper start his Thursday night broadcast with five minutes of why Trump is un-presidential before reporting any news is simply instigating Trump's ire and strengthens his case about fake media. If someone's <a href="https://www.independent.co.uk/news/uk/home-news/attention-span-average-british-person-tuned-in-concentration-mobile-phone-a8131156.html">attention span</a> is 5 minutes long (15 minutes in Britain?), then he just lost his audience and has right-leaning supporters switching the channel. Maybe there is validation to the reports that CNN just wants to be a left-leaning network, rather than fair and impartial. At least there's PBS and NPR.<br />
<br />
I expect this from non-news broadcasts, more opinion shows, like Don Lemon, MSNBC Morning Joe and even Fox & Friends, but when you're talking about major newscasts, you're missing the point.<br />
<br />
Imagine if Walter Kronkite came on before reporting the Kennedy assassination and said "well, you know, Kennedy is a womanizer, a bully and has gone out after his opponents with rage. But now he's the news where he died"<br />
<br />
or<br />
<br />
"Going to space is folly --- you should be focused more on earthbound issues but Kennedy once again has discarded his own party's thoughts and gone on his own way. Kennedy was shot today"<br />
<br />
No one would continue watching it - it's NOT news if you add your own personal thoughts on it.<br />
<br />
I'm not suggesting that Cooper not have his own opinion - but his show is NOT about his opinions. It's about the news. If he brings people on that talk about their opinions, that's another story. Chris Cuomo ends his show with his own thoughts - that makes sense but to START your newscast with that, is just disrespectful to ALL journalists who have gone before.<br />
<br />
I get that Trump isn't presidential. You could go back throughout the years and find examples of any and every president being unpresidential. Is Trump more unpresidential than others? Without a doubt - but that doesn't excuse poor journalism.<br />
<br />
CNN was supposed to be a NEWS network first and foremost. By having its primetime hosts start rather than end their shows with opinion removes that distinction from their name.Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-47164361434992444692018-10-27T06:02:00.000-04:002018-10-27T06:04:14.020-04:00SW Fox 2018 - Lots of Twitter - where are the posts?I think I'm getting old....and it's a sign of the times that being old means you're looking for blog posts about conferences rather than looking for <a href="https://twitter.com/swfox">tweets</a> or <a href="https://www.facebook.com/fox.geekgatherings.5/videos/339863313431281/">Facebook videos.</a><br />
<br />
The main reason I mention it is that a full week after the conference and searching for "Southwest Fox VFP" turns up four links to swfox.org , two posts to Wikipedia and then a <a href="https://www.craigbailey.net/vfp-vfpx-and-southwest-fox/">post by Craig Bailey </a>on wishing he could be there. Even Doug's <a href="http://doughennig.blogspot.com/2018/10/southwest-fox-2018.html">recap post</a> wasn't easily found.<br />
<br />
I'm slightly offended that Google didn't even find my own <a href="http://blog.aksel.com/2018/06/southwest-fox-2018-vfp-in-21st-century.html">posts</a> about it (or the <a href="http://akselsoft.libsyn.com/foxshow-83-southwest-fox-2018">FoxShow</a>) but that is more of a sign that I need to either post-more or post somewhere else to increase visibility.<br />
(perhaps that speaks more that blogspot seems to be excluded by Google search results- funny considering it's a Google company - or maybe it's just lack of tweets)<br />
<br />
So, for those who attended, how WAS the conference?<br />
<br />
<a href="http://technorati.com/tag/FoxPro" rel="tag">FoxPro</a> <a href="http://technorati.com/tag/VFP" rel="tag">VFP</a>Andrew MacNeillhttps://www.blogger.com/profile/03888444225785506598noreply@blogger.com0