<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-33176002</atom:id><lastBuildDate>Mon, 13 Apr 2026 19:02:14 +0000</lastBuildDate><category>software dev</category><category>Windows Phone</category><category>Windows Phone 7</category><category>business [common] sense</category><category>Mobile</category><category>nokia_dev</category><category>windows 10</category><category>misc</category><category>rant</category><category>Project52</category><category>usability</category><category>Quickie</category><category>VSIX</category><category>presentations</category><category>Windows Mobile</category><category>evdevshokno</category><category>XAML</category><category>writing</category><category>user groups</category><category>testing</category><category>Windows 8</category><category>ThisIsBroken</category><category>quotes</category><category>AdDuplex</category><category>Windows</category><category>MAUI</category><category>Book Notes</category><category>Customer service</category><category>open-source</category><category>UWPLunch</category><category>About this site</category><category>AI</category><category>IntuitiveUX</category><category>wpug</category><category>tools</category><category>DevDays</category><category>DevEvening</category><category>database</category><category>PhoneGap</category><category>uno</category><category>RXT</category><category>xamarin</category><category>Android</category><category>alphalabs</category><category>Template Studio</category><category>introspection</category><category>Azure</category><category>Nokia-X</category><category>ToiletTwinning</category><category>UWP</category><category>book</category><category>iOS</category><category>mvvm</category><category>ENAMEL</category><category>code reviews</category><category>communication</category><category>podcast</category><category>smsdejavu</category><category>windows 11</category><category>Avalonia</category><category>PowerApps</category><category>Surface</category><category>WPF</category><category>WinUI</category><category>bots</category><category>docs</category><category>githubsponsors</category><title>Matt Lacey - Software Developer</title><description>Creating maintainable software that adds &quot;real&quot; value</description><link>https://www.mrlacey.com/</link><managingEditor>noreply@blogger.com (Matt Lacey)</managingEditor><generator>Blogger</generator><openSearch:totalResults>1140</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>10</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33176002.post-5714719768232447052</guid><pubDate>Wed, 12 Nov 2025 11:24:00 +0000</pubDate><atom:updated>2026-01-07T12:39:42.876+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">VSIX</category><title>Resetting the experimental instance of Visual Studio has changed in 2026 (v18)</title><description>&lt;p&gt;&lt;b&gt;Updated Jan 7th 2026&lt;/b&gt; -- see below&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;If you build extensions for Visual Studio, you&#39;ll know that sometimes (frequently?--depending on what you&#39;re doing) it&#39;s necessary to completely reset the experimental instance to get it back to a known/good state.&lt;/p&gt;&lt;p&gt;With previous versions, it was possible to start typing in the main Windows menu and it would find the command to do this for you.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhvQU6Ek6lE3sIrj-nFC2gJuoaMlNSe48qDUEt7H6i4qyRZckkhmARI4emggoH_Z0sUm45EBRKxiopt9V3z_ROnpe5nZOzVjKpi1C88k3lhrZO7wX9Q-q_mZSAvxbIrp9sACqo4XyXY6RyxlhFguyzVmn8d0A3_6oLNTt6tqiXNwJaem_dNf9-N7g&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;979&quot; data-original-width=&quot;1186&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhvQU6Ek6lE3sIrj-nFC2gJuoaMlNSe48qDUEt7H6i4qyRZckkhmARI4emggoH_Z0sUm45EBRKxiopt9V3z_ROnpe5nZOzVjKpi1C88k3lhrZO7wX9Q-q_mZSAvxbIrp9sACqo4XyXY6RyxlhFguyzVmn8d0A3_6oLNTt6tqiXNwJaem_dNf9-N7g&quot; width=&quot;291&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This was possible because the menu included entries for just this command:&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjEZ-9ZRoJxR0ZM6RP3hSxZS6Tpu4Sm3Inp4mXnY1KosETRVwzbK7r5BMPfp5VhMZwU2jg7GxBVgBSRwqcCae-KG9eXCdp8VsBYZKIfNvP9SKS7mTS7bvByULEK8Quu2uoTjPp_McUT2XmdD9G8Q4GIYOBNp637tGn49OOlS3iVrZdrPGkIZ2uXFw&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;788&quot; data-original-width=&quot;484&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjEZ-9ZRoJxR0ZM6RP3hSxZS6Tpu4Sm3Inp4mXnY1KosETRVwzbK7r5BMPfp5VhMZwU2jg7GxBVgBSRwqcCae-KG9eXCdp8VsBYZKIfNvP9SKS7mTS7bvByULEK8Quu2uoTjPp_McUT2XmdD9G8Q4GIYOBNp637tGn49OOlS3iVrZdrPGkIZ2uXFw&quot; width=&quot;147&quot; /&gt;&lt;/a&gt;&lt;/div&gt;(Note that I have multiple entries because I have multiple long-term support versions installed for testing.)&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;However&lt;/b&gt;, VS2026 does not include these menu entries. (Who knows why they were removed...?)&lt;/p&gt;&lt;p&gt;&lt;b&gt;Instead,&lt;/b&gt; you can (must) trigger the resetting of the experimental instance from within Visual Studio from within the Feature Search. Simply start typing the command in the search box, and it&#39;ll find it for you.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgt6GuzM8zlbyr2LDlc-Ye--K4MWiYl19kItw7HpZoh_OvAJbC6CPKGWPA6TEhtCBfB59FaWRBkXKgS1X446Z57L0g0DwtEu0exqGdRO6hvMVnSjFSlR6LbcJ8EneD58XvrFoZVQVReWAZTmOe5Cd9DVxMayj0e9-BrnEgTrEe-QQ0nO8vFJm9ErQ&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;260&quot; data-original-width=&quot;1209&quot; height=&quot;69&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgt6GuzM8zlbyr2LDlc-Ye--K4MWiYl19kItw7HpZoh_OvAJbC6CPKGWPA6TEhtCBfB59FaWRBkXKgS1X446Z57L0g0DwtEu0exqGdRO6hvMVnSjFSlR6LbcJ8EneD58XvrFoZVQVReWAZTmOe5Cd9DVxMayj0e9-BrnEgTrEe-QQ0nO8vFJm9ErQ&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Note. I couldn&#39;t find another way to access this functionality in VS2026. If you know of one, please share it.&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;UPDATE - Jan 7th 2026&lt;/p&gt;&lt;p&gt;I can no longer get the above to work, as the feature search no longer finds the option.&lt;br /&gt;I asked Copilot and it said the only way to do it was via the command line.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgmY4S5UJQXkOQ3JqTRkGd5-BF9L8XSjkqmhhHQn_A3xd52d_G0_tV1jkdHKteO3UW6_uzrDJFl1m5n7XAOjPhyyjZ3V06hZH8SsYWZdkXMZsAgkDvqAZFDnvq4aURFO2wQ4o3Xu_CKDhrv0dmB7AGOXVC4MEfX-I3sb1rRtNFUPQusFZxIvFT3FA&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;1385&quot; data-original-width=&quot;1154&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgmY4S5UJQXkOQ3JqTRkGd5-BF9L8XSjkqmhhHQn_A3xd52d_G0_tV1jkdHKteO3UW6_uzrDJFl1m5n7XAOjPhyyjZ3V06hZH8SsYWZdkXMZsAgkDvqAZFDnvq4aURFO2wQ4o3Xu_CKDhrv0dmB7AGOXVC4MEfX-I3sb1rRtNFUPQusFZxIvFT3FA=w533-h640&quot; width=&quot;533&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Take this with a pinch of salt though, as the above includes incorrect information about the version number as VS2026 is version &lt;b&gt;18&lt;/b&gt;!&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><link>https://www.mrlacey.com/2025/11/resetting-experimental-instance-of.html</link><author>noreply@blogger.com (Matt Lacey)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhvQU6Ek6lE3sIrj-nFC2gJuoaMlNSe48qDUEt7H6i4qyRZckkhmARI4emggoH_Z0sUm45EBRKxiopt9V3z_ROnpe5nZOzVjKpi1C88k3lhrZO7wX9Q-q_mZSAvxbIrp9sACqo4XyXY6RyxlhFguyzVmn8d0A3_6oLNTt6tqiXNwJaem_dNf9-N7g=s72-c" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33176002.post-903792683477576100</guid><pubDate>Wed, 27 Aug 2025 19:21:00 +0000</pubDate><atom:updated>2025-08-27T20:21:59.737+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">testing</category><title>Is writing a test a good contribution to an open source project?</title><description>&lt;p&gt;The cliché always used to be that &quot;contributing to docs was a great way to get started in open source.&quot; Now I&#39;m also starting to hear people suggest that writing a test can also be a good entry to a project.&lt;/p&gt;&lt;p&gt;But is this a good idea? I&#39;m not sure...&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK-IxkQSYg16mz9AfE9483ZxYR7R1DqJmXVquf_kKAYAYsA3tqbasbbhBTYtRjRESj64fohVDrmp4LssbR90BZPKnh7v4Q7-OZrx_TQawNon6xFIe6LrY-obVWdvUgR97P-xi11x2gA3VVendV22d0-wPaic-LqaV6af72Va4NYXMhkUaqDWoiEg/s649/Screenshot%202025-08-27%20194734.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&amp;quot;writing hand&amp;quot; and a test tube&quot; border=&quot;0&quot; data-original-height=&quot;340&quot; data-original-width=&quot;649&quot; height=&quot;105&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK-IxkQSYg16mz9AfE9483ZxYR7R1DqJmXVquf_kKAYAYsA3tqbasbbhBTYtRjRESj64fohVDrmp4LssbR90BZPKnh7v4Q7-OZrx_TQawNon6xFIe6LrY-obVWdvUgR97P-xi11x2gA3VVendV22d0-wPaic-LqaV6af72Va4NYXMhkUaqDWoiEg/w200-h105/Screenshot%202025-08-27%20194734.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Say you have a piece of code that isn&#39;t covered by any tests. It&#39;s fair to say this isn&#39;t an ideal situation to be in. All things being equal, having tests for this code would be a good (better) thing.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But not all code and not all tests are created equal.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Is adding a test for a piece of code that is never expected to change in the lifetime of the project valuable?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Is it valuable to write tests for code that is so clearly understandable that if anyone changed it, then lots of things would obviously be wrong, and a manual review of the code would easily spot the problem?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Is it valuable to add tests for only some scenarios or paths through a piece of code? Sometimes. Sometimes not.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Is adding tests that ensure all possible input can be handled by the code a good addition? Maybe, but if the project has been around a while, then all such inputs have likely been encountered already. If there were inputs that might cause a problem, they&#39;ve most likely been encountered and dealt with.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You may be able to create a lot of tests very quickly. (Especially if using AI.)&amp;nbsp; But is it worth running them? If they don&#39;t run quickly, is it worth the delays and the money/energy it takes?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Coded tests must also be reviewed like any other code contribution, and reviewing PRs is a common bottleneck in many OS projects.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I&#39;m not against tests.&lt;/div&gt;&lt;div&gt;I think automated tests are great, and everyone should write more of them.&lt;/div&gt;&lt;div&gt;I just think that adding them after the fact is the wrong time to do it. It&#39;s harder to do it well, and they risk being low value.&lt;br /&gt;Writing (or at least documenting) all the required tests before you start coding is the best time to write them.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of course, if there&#39;s a project with documented manual test steps and you want to write code to automate them, then that sounds like a very valuable contribution. (Just as long as it doesn&#39;t require modifying the underlying code to make that possible.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Or, if you want to help with the testing of a project, look at some open issues and start documenting how to test those features when they are implemented.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;p&gt;As with any open source project, the best kind of contributions are the ones the owners and maintainers are asking for, and if they&#39;re of any size, they never start with a PR but with a discussion or issue.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</description><link>https://www.mrlacey.com/2025/08/is-writing-test-good-contribution-to.html</link><author>noreply@blogger.com (Matt Lacey)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK-IxkQSYg16mz9AfE9483ZxYR7R1DqJmXVquf_kKAYAYsA3tqbasbbhBTYtRjRESj64fohVDrmp4LssbR90BZPKnh7v4Q7-OZrx_TQawNon6xFIe6LrY-obVWdvUgR97P-xi11x2gA3VVendV22d0-wPaic-LqaV6af72Va4NYXMhkUaqDWoiEg/s72-w200-h105-c/Screenshot%202025-08-27%20194734.png" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33176002.post-9212139179572921218</guid><pubDate>Thu, 07 Aug 2025 07:52:00 +0000</pubDate><atom:updated>2025-08-07T08:52:33.413+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AI</category><category domain="http://www.blogger.com/atom/ns#">business [common] sense</category><category domain="http://www.blogger.com/atom/ns#">software dev</category><title>Miscellaneous AI-related questions</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-Jt3_ES3zeHhmEOuTbD-oTpCTQWhV4erZeAi2yAlqLKsFuj9tJ3eya4YEYlvW47G4aaPLfF1zoI_B-LDJNk1VIscLLmWjAkf878FG93vdTcrSNTw9z3yN6krFmscX3Xb8UDuyJjoYEoaUKJz3h_wFHhBxIZICylYYI2c14uvNWRCT3DN0zb4bcA/s751/Screenshot%202025-08-07%20085037.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Question mark with AI-sparkle&quot; border=&quot;0&quot; data-original-height=&quot;732&quot; data-original-width=&quot;751&quot; height=&quot;195&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-Jt3_ES3zeHhmEOuTbD-oTpCTQWhV4erZeAi2yAlqLKsFuj9tJ3eya4YEYlvW47G4aaPLfF1zoI_B-LDJNk1VIscLLmWjAkf878FG93vdTcrSNTw9z3yN6krFmscX3Xb8UDuyJjoYEoaUKJz3h_wFHhBxIZICylYYI2c14uvNWRCT3DN0zb4bcA/w200-h195/Screenshot%202025-08-07%20085037.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;No answers. &quot;Just&quot;, questions I&#39;m aware of and considering:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;If working with AI means communicating with machines more like we do with other humans, how do we avoid things also going back the other way and treating people more like machines?&lt;/li&gt;&lt;li&gt;Are &quot;agents the future of [all] work&quot;? And, if not &lt;b&gt;&lt;i&gt;all&lt;/i&gt;&lt;/b&gt;, how to identify the work that can change or be replaced?&lt;/li&gt;&lt;li&gt;If &quot;AI is only as good as your data&quot;, why isn&#39;t there as much effort being put into ensuring the quality and accuracy of the data as there is hype about AI?&lt;/li&gt;&lt;li&gt;At what point does AI not need human oversight? All the education highlights human oversight, but the futurists don&#39;t include it...&lt;/li&gt;&lt;li&gt;What is in the middle-ground between traditional GUIs and &quot;just&quot; a text box?&lt;/li&gt;&lt;li&gt;As feedback is highlighted as being essential when developing tools with AI, is there a way for feedback from a tool to be passed back to those creating the underlying models?&lt;/li&gt;&lt;li&gt;If there&#39;s a GUI for something, does it automatically need (and benefit?) from having an equivalent interface that&#39;s accessible via command line, API, and Agent/MCP?&lt;/li&gt;&lt;li&gt;As speed/rate of change is a common complaint among all types of people and people doing disparate tasks, how do you factor this in when introducing AI-powered tools?&lt;/li&gt;&lt;li&gt;If people are generally reluctant to read instructions, why will they happily read the text-based response from an AI tool telling them how to do something?&lt;/li&gt;&lt;li&gt;Asking good questions is hard. How people ask questions of AI-powered tools greatly impacts the quality of results. In training people to use AI, are they also being taught to ask good questions?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><link>https://www.mrlacey.com/2025/08/miscellaneous-ai-related-questions.html</link><author>noreply@blogger.com (Matt Lacey)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-Jt3_ES3zeHhmEOuTbD-oTpCTQWhV4erZeAi2yAlqLKsFuj9tJ3eya4YEYlvW47G4aaPLfF1zoI_B-LDJNk1VIscLLmWjAkf878FG93vdTcrSNTw9z3yN6krFmscX3Xb8UDuyJjoYEoaUKJz3h_wFHhBxIZICylYYI2c14uvNWRCT3DN0zb4bcA/s72-w200-h195-c/Screenshot%202025-08-07%20085037.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33176002.post-136562401834877499</guid><pubDate>Wed, 30 Jul 2025 15:06:00 +0000</pubDate><atom:updated>2025-07-30T16:06:49.731+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">misc</category><category domain="http://www.blogger.com/atom/ns#">user groups</category><category domain="http://www.blogger.com/atom/ns#">Windows</category><category domain="http://www.blogger.com/atom/ns#">Windows Phone</category><title>Windows Apps London (formerly Windows Phone User Group) - it was good while it lasted</title><description>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;TLDR: User groups were great. I miss organising and going to them. Maybe I should revisit my plans about this...&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxhLkcGdT2dT4BYapneXLfVsen0b0vEhy6rj5B4gBXbqJcIvCyVVEGFQEOBklKD4cUjatJrW4FWxeQ7q9QO3z1uaPSAr-AhKRX2jNOtPGwf7diZ2dAC6gYoR4_a0MVhkbkRMGtgqtD4gcMOyp22sr5YNfrTA-kmezZ-IIaRY7pszliTYeuYbRZfA/s1158/wpug-rating.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Average Rating 4.8 (from 275 reviews)&quot; border=&quot;0&quot; data-original-height=&quot;704&quot; data-original-width=&quot;1158&quot; height=&quot;244&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxhLkcGdT2dT4BYapneXLfVsen0b0vEhy6rj5B4gBXbqJcIvCyVVEGFQEOBklKD4cUjatJrW4FWxeQ7q9QO3z1uaPSAr-AhKRX2jNOtPGwf7diZ2dAC6gYoR4_a0MVhkbkRMGtgqtD4gcMOyp22sr5YNfrTA-kmezZ-IIaRY7pszliTYeuYbRZfA/w400-h244/wpug-rating.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I&#39;ve organized over 100 user group events / meetups. I&#39;ve also attended and spoken at many others.&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The one I had the most to do with was the &lt;b&gt;Windows Phone User Group&lt;/b&gt;, which later evolved/became &lt;b&gt;Windows Apps London&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;I &quot;ran&quot; this for as long as it existed. It all seems a very long time ago, but as I finish shutting up the virtual shop on the group (Stop paying for things--like domains--that I really don&#39;t need and no one looks at) I wanted to take a moment to reflect.&lt;/p&gt;&lt;p&gt;Here are a few of many pieces of similar feedback.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“Great to hear dev thoughts &amp;amp; experiences &amp;amp; see some interesting apps demo’ed”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“Met lots of cool people, and was well worth the trip.”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“Great bunch of people. Lots of enthusiasm and the usual witty banter”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: Georgia, Bitstream Charter, serif;&quot;&gt;&lt;i&gt;“Meeting was great – fantastic bunch of WP7&amp;nbsp;developers, designers and officianados!”&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“I really enjoyed everyone’s demos; even the games, which is not my domain, provided some interesting info about phone dev.”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“Thanks very much for putting on the event. I found it really useful as well as wonderfully motivating.”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“A great opportunity to meet and socialise with other developers.”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“We had a great time, really informative stuff, we learnt several things both from the talks and from general networking that we’re going to apply to our current and forthcoming projects.”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“Really appreciate the effort put into the event, great to meet everyone”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“It was great being able to network with intellectual individuals”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“It was really awesome. I now have the knowledge to create a better app.”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“It was very informative and enjoyable”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;Fantastic group. Always learn new things and pick up information&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;I like the format where someone knowledgeable us something we didn’t know already&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;One of the most interesting meetings I’ve been to&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;Wealth of knowledge to gain, recommended this to all developers&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;Good format, very useful.&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;Great event! Enjoyed the learning and the interaction with the other participants.&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;Thoroughly enjoyed the evening. Learnt a lot and looking forward to the next one.&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;Lots of fun, excellent talk and great people&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;I think this is a great event necessary for the platform. The atmosphere was good and enabling for sharing ideas.&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;Entertaining and inspiring talk&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;Really enjoyed the format! Great to hear everyone’s thoughts.&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;My mind is pretty blown away right now, very interesting evening with so much to takeaway and think about&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;Probably one of the best groups. Each meeting is useful for learning new things and getting a different point of view&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;Would love to see some more of these events&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;Fantastic presentation. Really helpful to pick up new tips.&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;Interesting conversation was flowing freely around the table. A really good night.&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;Great food, company, conversation and laughs!&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px;&quot;&gt;I couldn&#39;t let all the history of something that was a big part of my life for a very long time go away completely, so I&#39;ve created an archive of the website at&amp;nbsp;&lt;a href=&quot;https://mrlacey.github.io/winappsldn/&quot;&gt;https://mrlacey.github.io/winappsldn/&lt;/a&gt;&lt;br /&gt;Not that I really expect this to be of much interest or use to anyone any more, but it felt too important (to me) to let it go away completely.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &amp;quot;Bitstream Charter&amp;quot;, serif; font-size: 16px; font-style: italic;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description><link>https://www.mrlacey.com/2025/07/windows-apps-london-formerly-windows.html</link><author>noreply@blogger.com (Matt Lacey)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxhLkcGdT2dT4BYapneXLfVsen0b0vEhy6rj5B4gBXbqJcIvCyVVEGFQEOBklKD4cUjatJrW4FWxeQ7q9QO3z1uaPSAr-AhKRX2jNOtPGwf7diZ2dAC6gYoR4_a0MVhkbkRMGtgqtD4gcMOyp22sr5YNfrTA-kmezZ-IIaRY7pszliTYeuYbRZfA/s72-w400-h244-c/wpug-rating.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33176002.post-6760019542277555891</guid><pubDate>Mon, 28 Jul 2025 11:39:00 +0000</pubDate><atom:updated>2025-07-28T12:39:45.314+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">business [common] sense</category><category domain="http://www.blogger.com/atom/ns#">software dev</category><title>Why developers should be excited about implementing migrations</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdqgaKt4_a-J32V7YwfcvDUQ85Vq_bafbLft-EgqykOCjyoSXwkajUpTzsNc0cALmfTIHchmtSwC9x-9lurfoGMwe5CyvWfT4pzxLSImjktP9RznAwm0QtWi_MQgvtohXfxKHUtmV4KzzZw8o47jadHRta1qxDLDcdt-tAXiN8qbHaQiPxCX6Zzg/s220/Screenshot%202025-07-25%20095703.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;NEW (emoji)&quot; border=&quot;0&quot; data-original-height=&quot;220&quot; data-original-width=&quot;220&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdqgaKt4_a-J32V7YwfcvDUQ85Vq_bafbLft-EgqykOCjyoSXwkajUpTzsNc0cALmfTIHchmtSwC9x-9lurfoGMwe5CyvWfT4pzxLSImjktP9RznAwm0QtWi_MQgvtohXfxKHUtmV4KzzZw8o47jadHRta1qxDLDcdt-tAXiN8qbHaQiPxCX6Zzg/w200-h200/Screenshot%202025-07-25%20095703.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;I often hear that developers aren&#39;t keen on doing work to upgrade the frameworks/platforms/tools that they use (or the software they&#39;re building is using). It&#39;s not writing code, and so it&#39;s not considered &quot;real development&quot; work.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I think that doing the work to support upgrades or migrations is one of the most important and valuable things a developer can do:&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;It&#39;s often a simple way to &lt;b&gt;fix potential security vulnerabilities&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;It normally brings &lt;b&gt;performance improvements&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;Updates &lt;b&gt;bring new capabilities and options&lt;/b&gt; for things to add to the software.&lt;/li&gt;&lt;li&gt;Keeping up with the latest versions&amp;nbsp;&lt;b&gt;makes future updates/migrations easier&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;It can help you &lt;b&gt;learn and get hands-on experience with the latest technologies&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;It can allow you to see a large part of or various/obscure parts of the code base, helping you to &lt;b&gt;learn more about the code you&#39;re working on&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;It can &lt;b&gt;make it easier for other developers&lt;/b&gt; in the team.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;So, a high-impact task that helps you learn while supporting the team by doing things they don&#39;t want to do? Sounds like a great thing to prioritise if you get the chance.&lt;/div&gt;</description><link>https://www.mrlacey.com/2025/07/why-developers-should-be-excited-about.html</link><author>noreply@blogger.com (Matt Lacey)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdqgaKt4_a-J32V7YwfcvDUQ85Vq_bafbLft-EgqykOCjyoSXwkajUpTzsNc0cALmfTIHchmtSwC9x-9lurfoGMwe5CyvWfT4pzxLSImjktP9RznAwm0QtWi_MQgvtohXfxKHUtmV4KzzZw8o47jadHRta1qxDLDcdt-tAXiN8qbHaQiPxCX6Zzg/s72-w200-h200-c/Screenshot%202025-07-25%20095703.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33176002.post-7683909340010115367</guid><pubDate>Fri, 25 Jul 2025 14:34:00 +0000</pubDate><atom:updated>2025-07-25T17:10:08.998+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">software dev</category><category domain="http://www.blogger.com/atom/ns#">Windows</category><title>How quickly can a Windows application launch?</title><description>&lt;p&gt;Following on from my recent post asking&amp;nbsp;&lt;a href=&quot;https://www.mrlacey.com/2025/07/how-much-does-start-up-time-matter-when.html&quot;&gt;How much does start-up time matter when choosing a framework?&lt;/a&gt;&amp;nbsp;I&#39;ve now published some figures and the code I used.&lt;/p&gt;&lt;p&gt;With some minor tweaks, I now have an updated graph of the data:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaP8sPw4JDlLcl0__CAYFdLTQgjXE2I2Y2BzMoWZOdy53z4Pw9pT9-EXe5G5ZOe8bKd67MXIhjkxoKDG6t3GgR7dRE1wQCu0n7mc55vaZ2GOjorndCpynRiQaBfmCdADww8lV5-_PxmaTu8hPWNme247rCPa1_X6veOtRvtG8KJRSQSXnTvSdViA/s721/image-1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;434&quot; data-original-width=&quot;721&quot; height=&quot;193&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaP8sPw4JDlLcl0__CAYFdLTQgjXE2I2Y2BzMoWZOdy53z4Pw9pT9-EXe5G5ZOe8bKd67MXIhjkxoKDG6t3GgR7dRE1wQCu0n7mc55vaZ2GOjorndCpynRiQaBfmCdADww8lV5-_PxmaTu8hPWNme247rCPa1_X6veOtRvtG8KJRSQSXnTvSdViA/s320/image-1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;This graph is based on the release builds of the simplest, most minimal apps I could reasonably come up with that were as close to identical in all frameworks.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The code and more details can be found at&amp;nbsp;&lt;a href=&quot;https://github.com/mrlacey/WinAppLaunchCompare&quot;&gt;https://github.com/mrlacey/WinAppLaunchCompare&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From that repo:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p dir=&quot;auto&quot; style=&quot;background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;&quot;&gt;Miscellaneous observations:&lt;/p&gt;&lt;ul dir=&quot;auto&quot; style=&quot;background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;&quot;&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;As expected, WinForms was super fast.&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;WPF (both .NET and Framework versions) was surprisingly (disappointingly) slow.&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;The difference between MAUI and WinUI is surprising given MAUI uses WinUI to create the Windows version of apps. I expected these to be closer.&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Of the cross-platform options (and WinUI) the difference is basically irrelevant. Having clicked the button to launch the apps many, many times, I didn&#39;t perceive any real difference, never feeling that one was slow or faster than the others.&lt;/li&gt;&lt;/ul&gt;&lt;p dir=&quot;auto&quot; style=&quot;background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;&quot;&gt;My takeaways:&lt;/p&gt;&lt;ul dir=&quot;auto&quot; style=&quot;background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;&quot;&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;For choosing a cross-platform framework, there&#39;s hardly anything in it in terms of the time it takes to launch the apps.&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;I wouldn&#39;t base a decision to use a particular framework based on these (or similar) tests/results.&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;I also looked at the time until the&amp;nbsp;&lt;code style=&quot;background-color: rgba(129, 139, 152, 0.12); border-radius: 6px; box-sizing: border-box; font-family: &amp;quot;Monaspace Neon&amp;quot;, ui-monospace, SFMono-Regular, &amp;quot;SF Mono&amp;quot;, Menlo, Consolas, &amp;quot;Liberation Mono&amp;quot;, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0.4em; tab-size: 8; white-space-collapse: break-spaces;&quot;&gt;App&lt;/code&gt;&amp;nbsp;class was loaded. This varied but didn&#39;t seem to be related to the overall time taken.&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Performing tests like these can easily become an infinite rabbit hole. There are always potential tweaks and optimizations that could be done. If you have such an interest, please go ahead.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Feel free to experiment with &lt;a href=&quot;https://github.com/mrlacey/WinAppLaunchCompare&quot;&gt;this code&lt;/a&gt; as you wish and &lt;a href=&quot;https://github.com/mrlacey/WinAppLaunchCompare&quot;&gt;suggest any ways it could be improved&lt;/a&gt; or anything artificially slowing down a version of an app can be addressed.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description><link>https://www.mrlacey.com/2025/07/how-quickly-can-windows-application.html</link><author>noreply@blogger.com (Matt Lacey)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaP8sPw4JDlLcl0__CAYFdLTQgjXE2I2Y2BzMoWZOdy53z4Pw9pT9-EXe5G5ZOe8bKd67MXIhjkxoKDG6t3GgR7dRE1wQCu0n7mc55vaZ2GOjorndCpynRiQaBfmCdADww8lV5-_PxmaTu8hPWNme247rCPa1_X6veOtRvtG8KJRSQSXnTvSdViA/s72-c/image-1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33176002.post-5230946568304450078</guid><pubDate>Fri, 25 Jul 2025 08:30:00 +0000</pubDate><atom:updated>2025-07-25T09:30:00.126+01:00</atom:updated><title>What makes a good teacher of technology?</title><description>&lt;p&gt;I guess it comes down to different people wanting different things. Or, maybe, I&#39;m looking for different things than the majority of people are looking for.&lt;/p&gt;&lt;p&gt;Being aware that I&#39;m trying to learn a variety of new technologies at the moment, and also writing things to try and find a new way of teaching something I&#39;m very familiar with.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here&#39;s what I&#39;ve seen a lot lately:&lt;/p&gt;&lt;p&gt;Teachers (either qualified educational professionals or people whose job it is to teach and are recognised as experts at teaching new technology) will explain that there are different options or ways of doing things, and then say, &quot;I always use X, so you should too.&quot;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Is it that the people learning are just looking for a seemingly authoritative answer, and so are happy to use/do X because they&#39;ve been told that&#39;s ok?&lt;/p&gt;&lt;p&gt;Or, is it that explaining the nuanced differences between options and where/why/how you&#39;d use each and what each is intended/best for is much more difficult and so people don&#39;t (or can&#39;t) try?&lt;/p&gt;&lt;p&gt;Or a combination of the two?&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG0eHH1KK50GIivQA-rAEkHDxOkP2Rfjfnl_OJbSjniaIPKB8oEvZ6AkZKIQi6e9iOXaKKIz7E6vSBNLhAz-4_OUmadphfMHCDodlEISioPIF_z5WGNZvOlmg2IY5YjiF12Nyi3LdMcrbLjeFJPg94aboxKydEhky0-MD28xme2SrtXxJpo_Blug/s222/Screenshot%202025-07-25%20091134.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;hammer&quot; border=&quot;0&quot; data-original-height=&quot;211&quot; data-original-width=&quot;222&quot; height=&quot;190&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG0eHH1KK50GIivQA-rAEkHDxOkP2Rfjfnl_OJbSjniaIPKB8oEvZ6AkZKIQi6e9iOXaKKIz7E6vSBNLhAz-4_OUmadphfMHCDodlEISioPIF_z5WGNZvOlmg2IY5YjiF12Nyi3LdMcrbLjeFJPg94aboxKydEhky0-MD28xme2SrtXxJpo_Blug/w200-h190/Screenshot%202025-07-25%20091134.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I find it a bit like being told, &quot;There are lots of potential tools in the toolbox, but I always use a hammer, so you should just use a hammer.&quot;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Simple answers are attractive, but don&#39;t provide the knowledge to know how to use something other than a hammer or even tell when using a hammer is not appropriate.&lt;/p&gt;&lt;p&gt;I want that deeper knowledge.&lt;/p&gt;&lt;p&gt;Maybe others are happy with a simple solution. When their hammer stops working or can&#39;t be used, they&#39;ll come back with questions about alternatives.&amp;nbsp;&lt;/p&gt;&lt;p&gt;I prefer to know in advance if I&#39;m going to be using the wrong tool or what the potential negative consequences of what I&#39;m planning will be.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I want all the learning up front. If you&#39;re selling education (or views), then holding back some of the knowledge until later has a benefit for you. But, who is the lesson for?&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><link>https://www.mrlacey.com/2025/07/what-makes-good-teacher-of-technology.html</link><author>noreply@blogger.com (Matt Lacey)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG0eHH1KK50GIivQA-rAEkHDxOkP2Rfjfnl_OJbSjniaIPKB8oEvZ6AkZKIQi6e9iOXaKKIz7E6vSBNLhAz-4_OUmadphfMHCDodlEISioPIF_z5WGNZvOlmg2IY5YjiF12Nyi3LdMcrbLjeFJPg94aboxKydEhky0-MD28xme2SrtXxJpo_Blug/s72-w200-h190-c/Screenshot%202025-07-25%20091134.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33176002.post-8485871207536490339</guid><pubDate>Mon, 21 Jul 2025 13:00:00 +0000</pubDate><atom:updated>2025-07-21T14:00:00.118+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">business [common] sense</category><category domain="http://www.blogger.com/atom/ns#">Mobile</category><category domain="http://www.blogger.com/atom/ns#">software dev</category><title>what &quot;everyone&quot; gets wrong about &quot;write once run everywhere&quot;</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjduiR4-m-5UWNHK9RDesZpPt8DEPGa1ZhwDgCBHf7mFfWU2iJhgLnR2qHgByA9beQd71FcxEYC8Iorbf9ICl-Ptrb0c8fwp4qhEzFdlaC_287ZFbTN8NmHQv0t5YnVt42VgDGy6cy8AhOx72S8UX1MojCog0LpTsVBZdmgS1AZj32NL2jRAsy_Iw/s856/Screenshot%202025-07-21%20133351.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;✏️1️🏃🌐&quot; border=&quot;0&quot; data-original-height=&quot;235&quot; data-original-width=&quot;856&quot; height=&quot;110&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjduiR4-m-5UWNHK9RDesZpPt8DEPGa1ZhwDgCBHf7mFfWU2iJhgLnR2qHgByA9beQd71FcxEYC8Iorbf9ICl-Ptrb0c8fwp4qhEzFdlaC_287ZFbTN8NmHQv0t5YnVt42VgDGy6cy8AhOx72S8UX1MojCog0LpTsVBZdmgS1AZj32NL2jRAsy_Iw/w400-h110/Screenshot%202025-07-21%20133351.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;It was never meant to be about the ability to write a single app that runs on any/all devices.&lt;/p&gt;&lt;p&gt;It is about the ability to use the skills/tools/technologies to build software that &lt;b&gt;can &lt;/b&gt;run on multiple operating systems, devices, hardware, etc.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;There are a very small number of scenarios where you want the exact same code running on every imaginable device. Even when you do want this, there needs to be logic within the software to account for the differences:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Different input devices (not just touch, mouse, &amp;amp; keyboards)&lt;/li&gt;&lt;li&gt;Different output devices (not just size of screen, or none)&lt;/li&gt;&lt;li&gt;Different sensors or physical capabilities&lt;/li&gt;&lt;li&gt;Different usage scenarios&lt;/li&gt;&lt;li&gt;Different connectivity or storage capabilities&lt;/li&gt;&lt;li&gt;Different user permissions or account settings&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;There&#39;s the dream scenario where you build a piece of software for a specific OS and/or device type, but then decide it would be nice if it ran somewhere else too, and you &lt;i&gt;hope&lt;/i&gt; that tooling can magically make it happen for you.&lt;/p&gt;&lt;p&gt;Sometimes this works. To a point. But you&#39;ll almost always want some customisation or need to handle different scenarios or capabilities the new device(s) present.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;What&#39;s useful is: when you know you need to build software that needs to run in lots of different places/ways, you can benefit from not needing to learn/support/maintain different technologies to build all that software.&amp;nbsp;&lt;/p&gt;&lt;p&gt;It&#39;s not just about the reuse of code once written, it&#39;s also about the reuse of skills.&lt;/p&gt;</description><link>https://www.mrlacey.com/2025/07/what-everyone-gets-wrong-about-write.html</link><author>noreply@blogger.com (Matt Lacey)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjduiR4-m-5UWNHK9RDesZpPt8DEPGa1ZhwDgCBHf7mFfWU2iJhgLnR2qHgByA9beQd71FcxEYC8Iorbf9ICl-Ptrb0c8fwp4qhEzFdlaC_287ZFbTN8NmHQv0t5YnVt42VgDGy6cy8AhOx72S8UX1MojCog0LpTsVBZdmgS1AZj32NL2jRAsy_Iw/s72-w400-h110-c/Screenshot%202025-07-21%20133351.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33176002.post-1355141759803512376</guid><pubDate>Fri, 18 Jul 2025 17:04:00 +0000</pubDate><atom:updated>2025-07-18T18:04:15.910+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">business [common] sense</category><category domain="http://www.blogger.com/atom/ns#">software dev</category><title>How much does start-up time matter when choosing a framework?</title><description>&lt;p&gt;I got nerd-sniped.&lt;/p&gt;&lt;p&gt;I was asked about measuring and possibly benchmarking different .NET frameworks for making native apps in terms of performance.&lt;/p&gt;&lt;p&gt;Apparently, this is an important factor for some people when choosing a framework.&lt;/p&gt;&lt;p&gt;I think I know better. &lt;b&gt;I know you can write very bad (hence slow) code in any language or with any framework. I also know there are almost infinite things you can do to make code faster.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;A basic comparison didn&#39;t seem very useful. I knew that if I saw such a thing, I wouldn&#39;t care very much, as it all comes down to optimising appropriately in a real app, given the constraints and requirements of/for that particular app.&lt;/p&gt;&lt;p&gt;I tried to find a way to get excited about the prospect, but couldn&#39;t see what could be exciting.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;However, two questions persisted:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Do other people care?&lt;/li&gt;&lt;li&gt;How much difference is there?&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It&#39;s hard to know if other people care, but is there a significant difference?&lt;/div&gt;&lt;div&gt;Time for a quick experiment...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Doing the simplest and quickest thing I could, I did a quick test to see how long it takes to launch a trivially simple app and for it to report that it has finished loading.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are the initial results:&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4udjLeeazuflKC8d3HDfhXPvHWGPGVMVDrUEO6IyXa2bfKpqN_c7VPh0cRLFXfpvdkhTvjaMu5SHQU25xgNUwE4wTQ851jyfQVpIOUDIbFqzTXYzF8-T1WYh5Har50Pp3rKmLC76PLSJ05M46nj2wx29oKW1NyFgAZZVcdhWS7UMgNxTIKFniIA/s730/Screenshot%202025-07-18%20180018.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;WinForms is fastest. WPF is really slow. WinUI next fastest, then Avalonia, MAUI, and Uno but not a lot in it&quot; border=&quot;0&quot; data-original-height=&quot;445&quot; data-original-width=&quot;730&quot; height=&quot;390&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4udjLeeazuflKC8d3HDfhXPvHWGPGVMVDrUEO6IyXa2bfKpqN_c7VPh0cRLFXfpvdkhTvjaMu5SHQU25xgNUwE4wTQ851jyfQVpIOUDIbFqzTXYzF8-T1WYh5Har50Pp3rKmLC76PLSJ05M46nj2wx29oKW1NyFgAZZVcdhWS7UMgNxTIKFniIA/w640-h390/Screenshot%202025-07-18%20180018.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Windows Forms perf was to be expected and was included as a reference for the others.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why is there so much difference?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Is this interesting?&lt;/div&gt;&lt;div&gt;Do you care?&lt;/div&gt;&lt;div&gt;Should I go deeper in investigating more realistic scenarios and considering simple optimizations (like AOT)?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let me know if you want to know more.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description><link>https://www.mrlacey.com/2025/07/how-much-does-start-up-time-matter-when.html</link><author>noreply@blogger.com (Matt Lacey)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4udjLeeazuflKC8d3HDfhXPvHWGPGVMVDrUEO6IyXa2bfKpqN_c7VPh0cRLFXfpvdkhTvjaMu5SHQU25xgNUwE4wTQ851jyfQVpIOUDIbFqzTXYzF8-T1WYh5Har50Pp3rKmLC76PLSJ05M46nj2wx29oKW1NyFgAZZVcdhWS7UMgNxTIKFniIA/s72-w640-h390-c/Screenshot%202025-07-18%20180018.png" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33176002.post-2387283684021721353</guid><pubDate>Tue, 01 Jul 2025 11:00:00 +0000</pubDate><atom:updated>2025-07-01T12:00:00.138+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">misc</category><category domain="http://www.blogger.com/atom/ns#">user groups</category><title>Why feed pizza to developers at meetups?</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;TLDR: If you&#39;ve ever eaten free food at a meetup (even though you could have afforded a meal), why not &lt;a href=&quot;https://www.bankuet.co.uk/givenow&quot;&gt;help out those who are not as fortunate&lt;/a&gt;? &quot;Free&quot; food at developer events is about practicality not being a reason to attend.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzEWWdqoksdwlTVM2Pit930nkwmDX6sk24c6XDTlu1XVOnr3y_LADdgQheBcT8ZkAyQyQXYfDLKvRhfzRItewFwZhenakwBqpZCtMSdM7RMhOQ6zzTin4py2FyW_C02oMMkkbqgbnNIhkH5YoZOl8cp19o7pgyb-8Rxi0AVTifrqYjkQxbou0v_Q/s703/highres_284106522.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;pizza, wedges and salad!&quot; border=&quot;0&quot; data-original-height=&quot;651&quot; data-original-width=&quot;703&quot; height=&quot;370&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzEWWdqoksdwlTVM2Pit930nkwmDX6sk24c6XDTlu1XVOnr3y_LADdgQheBcT8ZkAyQyQXYfDLKvRhfzRItewFwZhenakwBqpZCtMSdM7RMhOQ6zzTin4py2FyW_C02oMMkkbqgbnNIhkH5YoZOl8cp19o7pgyb-8Rxi0AVTifrqYjkQxbou0v_Q/w400-h370/highres_284106522.jpg&quot; title=&quot;Yes, this is a disproportionately large amount of salad for a pizza eaten by a typical developer&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Mmmm, Pizza!&lt;div&gt;It&#39;s a cliché that developers like pizza.&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_x9dgTsIulKQItK2Af0JtcnVerkbyt20-hE9IkctzR4ECfNe8a64RthY6bPKMylYbCODOg4veQjoxpSn_JHwQIV9HQpRRg6mnF2DCIP_ij3sXa-ywBkshCzYcCnK-dVySXRPif5HS41dISQnQGeo3phYatmiCvmZakZCT0aol0ys0YD4vChggwQ/s1222/highres_284106552.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;435&quot; data-original-width=&quot;1222&quot; height=&quot;114&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_x9dgTsIulKQItK2Af0JtcnVerkbyt20-hE9IkctzR4ECfNe8a64RthY6bPKMylYbCODOg4veQjoxpSn_JHwQIV9HQpRRg6mnF2DCIP_ij3sXa-ywBkshCzYcCnK-dVySXRPif5HS41dISQnQGeo3phYatmiCvmZakZCT0aol0ys0YD4vChggwQ/s320/highres_284106552.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Look here are some developers enjoying pizza at a previous event I organised.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This:&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaLq1Nf1n42hbUKLLIw9GgechQNuKry6Gkrthj_1AvxqrF_J5l2SWPxqkPmVJYIdsaCQFABxoj8T7i-rdjxK7h-aG4gTmwnifGP6PK-zAHokOvGwok1dOj7JyQVEZVFMU7wKwydYARR7J0JTCRyVavKdqPXSVKb7yr1U3iwMYTrZ_93tQeYu_DDA/s2176/PXL_20221004_171657116.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;992&quot; data-original-width=&quot;2176&quot; height=&quot;146&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaLq1Nf1n42hbUKLLIw9GgechQNuKry6Gkrthj_1AvxqrF_J5l2SWPxqkPmVJYIdsaCQFABxoj8T7i-rdjxK7h-aG4gTmwnifGP6PK-zAHokOvGwok1dOj7JyQVEZVFMU7wKwydYARR7J0JTCRyVavKdqPXSVKb7yr1U3iwMYTrZ_93tQeYu_DDA/s320/PXL_20221004_171657116.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Quickly becomes this:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbSabsDS7P4RPc42LkH2AfHrCCmL4JX9LeGMxnINPKNYq45t6fYbSjdzjZ64PLKX8QKTm7ZvILx1wImnxId5bscSVhxVW9ovLDpIvsGJDq3AiR49W6EuuPQJzRbcW5sGuhl_7oewUicqUpEVrIel6eJO76ttKI3YJun8Gi_sykueOhazKVPNvsgg/s1143/highres_442299017.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1143&quot; data-original-width=&quot;857&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbSabsDS7P4RPc42LkH2AfHrCCmL4JX9LeGMxnINPKNYq45t6fYbSjdzjZ64PLKX8QKTm7ZvILx1wImnxId5bscSVhxVW9ovLDpIvsGJDq3AiR49W6EuuPQJzRbcW5sGuhl_7oewUicqUpEVrIel6eJO76ttKI3YJun8Gi_sykueOhazKVPNvsgg/s320/highres_442299017.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I&#39;ve even heard developers be described as people who turn pizza (&amp;amp; coffee) into code.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I was recently talking with someone who was organising a meetup but was complaining about the lack of signups.&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&quot;We&#39;re providing pizza, why haven&#39;t more people signed up?&lt;/p&gt;&lt;p&gt;They actually said that! As if people were coming for the food, and the technical talks, networking, socialising, and community building were all secondary.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Pizza isn&#39;t provided at evening meetups as a reason for people to come.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Pizza (or any other food) is provided at meetups, so people don&#39;t have to think (worry) about food or for it to be a reason for people &lt;i&gt;not &lt;/i&gt;to come.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Pizza (or any other food or drink) isn&#39;t provided because of a concern for a lack of money to buy food. Developers are typically very well paid and able to afford to eat.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style=&quot;text-align: left;&quot;&gt;[Side Note. I have had people come to events were there were concerns about some people only coming for the food, but I certainly wasn&#39;t going to turn people away based on this assumption. People attend for myriad reasons that are more varied and complex than anyone can imagine. You don&#39;t know what&#39;s going on in everyone&#39;s life and even if you asked they may not want or be able to tell. Based on where and when these meetings were happening, there were other ways to get food if that&#39;s what they really needed but couldn&#39;t afford. Sitting through several hours of technical talks as a way to get a drink and a couple of slices of pizza is unlikely to be a good trade off for anyone not interested in the technology.]&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;It&#39;s about convenience.&lt;/p&gt;&lt;p&gt;Pizza (or other food) is provided so that those attending don&#39;t have to think about when or where they will eat and how it fits around event attendance. As event organizers, it&#39;s necessary to consider situations like:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;If this person is coming straight from work, will they have a chance to eat beforehand?&lt;/li&gt;&lt;li&gt;If they have to wait until after to eat is hunger going to distract them during the event?&lt;/li&gt;&lt;li&gt;If they go somewhere to eat first, could they end up getting distracted and not come?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;If a full day event and people leave at lunchtime to find food, there&#39;s a high chance that some of them won&#39;t come back in the afternoon.&lt;/p&gt;&lt;p&gt;Then there are events deliberately intended to fit around when people are eating. A breakfast or lunch time event would have to be much shorter if it also needed to allow time for attendees to also find food. The potential for missing a meal may also put off some attendees.&lt;/p&gt;&lt;p&gt;There&#39;s also a social benefit to sharing a meal (or even just a drink) with other people. With so many meetups calling themselves communities, it&#39;s great to be able to develop relationships between people based on more than a shared interest and location. Eating together can be a social lubricant to help start building relationships.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;There are a lot of reasons and thought that go into providing food for developers at events and it&#39;s not about saving money or appealing to people through food.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Over the years, I&#39;ve personally spent thousands buying pizza, other food, and drinks to help enable events to run smoothly. Only on a couple of occasions at smaller events did we experiment with asking for contributions. Being well paid at the time, this wasn&#39;t an issue. I expect that the majority of people reading this are people working in the software development industry who are well paid and never need to worry about being able to afford to pay for a meal.&lt;/p&gt;&lt;p&gt;But &lt;b&gt;that&#39;s not the situation for everyone.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Food insecurity is a massive and growing problem and it&#39;s hard to imagine &lt;i&gt;you can make a difference&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;However, if you&#39;re in a position where you&#39;re well paid and you&#39;ve ever been to an event where food was provided, please consider making a donation to&amp;nbsp;&lt;a href=&quot;https://www.bankuet.co.uk/givenow&quot;&gt;Bankuet&lt;/a&gt;!&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #1cc48c; font-family: acumin-pro;&quot;&gt;&lt;span style=&quot;background-color: white; border-color: initial; border-image: initial; border-style: initial; box-sizing: border-box; height: auto; letter-spacing: 0.32px;&quot;&gt;&lt;a class=&quot;has-img&quot; href=&quot;https://www.bankuet.co.uk/&quot; id=&quot;logo&quot; style=&quot;background-color: white; box-sizing: border-box; color: #1cc48c; display: inline-block; font-family: acumin-pro; font-size: 16px; height: auto; letter-spacing: 0.32px; padding: 0px; text-decoration-line: none; width: 160px;&quot;&gt;&lt;img alt=&quot;Bankuet  ®&quot; src=&quot;https://images.squarespace-cdn.com/content/v1/5c879a2bfb18207eec330764/1589543276587-XFJ8223P1989TL0NG4MD/Bankuet+logo+2.png?format=300w&quot; style=&quot;border: 0px; display: block; height: auto; text-align: center; vertical-align: middle; width: 160px;&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-content-field=&quot;site-tagline&quot; id=&quot;siteTagline&quot; style=&quot;background-color: white; font-family: acumin-pro; font-size: 16px; letter-spacing: 0px; line-height: 1.5em; margin: 0.75em 0px 0px;&quot;&gt;Bankuet is a social impact company who &quot;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;make it easier to give to food banks.&quot;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;They maximize donations by letting food banks request the items they most need and then buy in bulk so that &lt;b&gt;your donation goes further and waste is minimized&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;You can either donate to a food bank in your area or make a general donation to where the need is currently greatest.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Please &lt;i&gt;join me&lt;/i&gt; in supporting the excellent work they&#39;re doing.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://www.bankuet.co.uk/givenow&quot;&gt;https://www.bankuet.co.uk/givenow&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description><link>https://www.mrlacey.com/2025/07/why-feed-pizza-to-developers-at-meetups.html</link><author>noreply@blogger.com (Matt Lacey)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzEWWdqoksdwlTVM2Pit930nkwmDX6sk24c6XDTlu1XVOnr3y_LADdgQheBcT8ZkAyQyQXYfDLKvRhfzRItewFwZhenakwBqpZCtMSdM7RMhOQ6zzTin4py2FyW_C02oMMkkbqgbnNIhkH5YoZOl8cp19o7pgyb-8Rxi0AVTifrqYjkQxbou0v_Q/s72-w400-h370-c/highres_284106522.jpg" height="72" width="72"/><thr:total>0</thr:total></item></channel></rss>