tag:blogger.com,1999:blog-54927742016-11-18T05:55:52.178-05:00Andrew MacNeill - AKSEL SolutionsSolutions for Today; Ready for Tomorrow.
Andrew MacNeill's blog about Visual FoxPro, databases, development, and technologies that sprout around the FoxPro and related communities.Andrew MacNeillnoreply@blogger.comBlogger1487125tag:blogger.com,1999:blog-5492774.post-39603644137013705852016-08-22T08:59:00.001-04:002016-08-22T08:59:22.240-04:00New FoxShow Episode - Southwest Fox 2016It's hard to believe but <a href="http://www.swfox.net/">Southwest Fox</a> has been going for 13 years. This year is the 10th time Doug, Tamar and Rick have put the show on and Doug and Tamar spoke with me on the latest episode of <a href="http://thefoxshow.com/">the FoxShow</a> to tell me about what they have planned (they even have a special discount for FoxShow listeners - go to the site for more details).<br /><br />Doug made a great point about how in this age of Google where you can find a quick answer moments away, the real value of conferences is the ability to deep dive into a subject and speak with experts and other developers. StackOverflow may rock for finding those answers but it certainly helps to listen to something longer than a 10 minute answer about issues that you may be having.<br /><br />The conference is coming up quickly - September 22nd-25th and there are both pre and post conferences and other vendor training sessions. Rick Strahl is bringing his <a href="http://west-wind.com/WebConnection/training/DI_SWFox2016/">West-wind Web Connection</a> training to the show and Tuva Vinistky is offering a <a href="http://www.verifiedbillpay.com/swsignup/index.afp">FoxInCloud</a> post-conference as well.<br /><br /><br /><a href="http://technorati.com/tag/FoxPro" rel="tag">F</a><a href="http://technorati.com/tag/FoxPro" rel="tag">oxPro</a> <a href="http://technorati.com/tag/VFP" rel="tag">VFP</a>Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com1tag:blogger.com,1999:blog-5492774.post-39588377805917502892016-01-29T07:04:00.003-05:002016-01-29T07:04:59.904-05:00Useful Tip: Exporting Test Cases in TFS 2013I've been using TFS for a few years now at a job. I know many will go with GitHub and other tools but when you're working in a Microsoft shop, you push them to use as many of the available tools as possible.<br /><br />In this job, we're working for the main Development group who provides services to internal clients. Recently we showed these internal clients how we were doing full sanity tests prior to each iteration being marked as Complete (we do a three week iteration - more on that in a future post). When we showed the client the Test Cases and the steps, the client immediately wanted them. They were hiring new testers for their own testing and were worried about the time it would take to get them up to speed.<br /><br /><blockquote class="tr_bq"><i>Note: while we've been using the automated tests, there are some aspects of the software that aren't supported under CUIT. In addition, test cases with steps help junior testers become more familiar with the actual application.</i></blockquote><br /><b>Short Answer: Use <a href="https://www.visualstudio.com/en-us/news/2014-feb-10-vso">the Export</a> approach</b><br /><br /><b>Long Answer</b><br />At first, I figured I would use SSRS to build a useful report. However, there is no easy way to get to the data. The post <a href="https://social.msdn.microsoft.com/Forums/vstudio/en-US/d6247a43-ed53-4338-889d-d33114823c28/test-case-steps-and-test-action-results?forum=vsmantest">here</a> suggested the following SQL:<br /><blockquote class="tr_bq"><span style="font-family: Courier New, Courier, monospace;">use tfs_defaultcollection<br />declare @fldIdSteps int = (Select top 1 fldid from Fields where ReferenceName = 'Microsoft.VSTS.TCM.Steps')<br />select *<br />from WorkItemLongTexts<br />where FldID = @fldIdSteps and id=6514</span></blockquote><br />This works except that you then see that the actual steps are stored as XML.<br /><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-fZDXrUvIR1k/VqtTYAfe4xI/AAAAAAAAB40/2NgK4Xz6nR4/s1600/StepsInXML.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="134" src="http://3.bp.blogspot.com/-fZDXrUvIR1k/VqtTYAfe4xI/AAAAAAAAB40/2NgK4Xz6nR4/s320/StepsInXML.png" width="320" /></a></div><br /><br />Then I come upon this <a href="https://www.visualstudio.com/en-us/news/2013-sep-30-vso">link</a>. While Microsoft is certainly pushing people to use VS Online to get the most current features, I was happy to see that this was also available in TFS 2013 Online.<br /><br />Simple steps:<br />1. Find your Test Suite.<br />2. Switch to Grid Layout.<br /><a href="http://3.bp.blogspot.com/-2N3gGqSOpDI/VqtUhlVvhPI/AAAAAAAAB5M/lDL6Q2rF3r8/s1600/TestList.png" imageanchor="1"><img border="0" height="50" src="http://3.bp.blogspot.com/-2N3gGqSOpDI/VqtUhlVvhPI/AAAAAAAAB5M/lDL6Q2rF3r8/s400/TestList.png" width="400" /></a><br /><a href="http://4.bp.blogspot.com/-1Bskoemc38I/VqtUeqFg2-I/AAAAAAAAB5A/mvy1GF3I80w/s1600/TestSteps.png" imageanchor="1"><img border="0" height="87" src="http://4.bp.blogspot.com/-1Bskoemc38I/VqtUeqFg2-I/AAAAAAAAB5A/mvy1GF3I80w/s400/TestSteps.png" width="400" /></a><br />3. Now you can cut and paste it into Excel for nicer formatting.<br /><br />But there is a better way - <a href="https://www.visualstudio.com/en-us/news/2014-feb-10-vso">THIS</a> one.<br /><br />Just right-click on the Test Suite and Export for Email.<br /><a href="http://1.bp.blogspot.com/-1lHfBiQC7Vg/VqtUuneBcZI/AAAAAAAAB5Y/AM0OjMEbAhM/s1600/TestExport.png" imageanchor="1"><img border="0" src="http://1.bp.blogspot.com/-1lHfBiQC7Vg/VqtUuneBcZI/AAAAAAAAB5Y/AM0OjMEbAhM/s400/TestExport.png" /></a><br />I then took the email and cleaned it up in Excel. Fast and easy and now the client is super happy!<br /><br /><br /><br /><br /><br />Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com2tag:blogger.com,1999:blog-5492774.post-74464108572882634742015-11-11T06:53:00.001-05:002015-11-11T06:53:36.216-05:00String.Format for Visual FoxPro [feedly]<div>Thanks Eric for showing me Woody's string.format function. It reminds me of Steve Black's MsgSvc implementation ( which could also be used with a Text type).&nbsp;</div><div><br></div><div>I remember when I first saw String.Format in code and I had to take a step back and look again at it. Once you're used to it, it makes wording so much easier. I've seen code using it for building complex web URLs among other purposes.</div><div><br></div><div>But look at the date on the post -2010. How many other great functions have been lost inside the MSDN library of VFP posts. It might be great to revisit all of these in separate posts.</div><div> <br> ---- <br> <b><a href="http://saltydogllc.com/string-format-for-visual-foxpro/">String.Format for Visual FoxPro</a></b><br> // <b><a href="http://saltydogllc.com/string-format-for-visual-foxpro/">SaltyBlog</a></b><br> <br> <p>[Originally Published in <a target="_blank" href="http://fox.wikis.com/wc.dll?Wiki~FoxRockXIssues">FoxRockX</a>, September 2010]</p> ---- <br><br> Shared via <b><a href="http://feedly.com">my feedly reader</a></b> </div><div><br></div>Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com2tag:blogger.com,1999:blog-5492774.post-25413153563236152232015-08-05T10:19:00.000-04:002015-08-05T10:20:25.963-04:00Security in Windows 10<div dir="ltr"><div><a href="http://www.slate.com/articles/technology/bitwise/2015/08/windows_10_privacy_problems_here_s_how_bad_they_are_and_how_to_plug_them.single.html">http://www.slate.com/articles/technology/bitwise/2015/08/windows_10_privacy_problems_here_s_how_bad_they_are_and_how_to_plug_them.single.html</a><br></div><div><br></div><div><a rel="author" href="http://www.slate.com/authors.david_auerbach.html" style="color:rgb(102,0,51);text-decoration:none;font-family:sl-Apres,helvetica,sans-serif;font-style:italic;font-size:15px;line-height:21px">David Auerbach</a> discusses some Windows 10 privacy settings and their implications.<br></div><div><br></div><div>&quot;<span style="color:rgb(40,27,33);font-family:sl-Apres,helvetica,sans-serif;font-size:14px;line-height:28px">Finally, we will access, disclose and preserve personal data, including your content (such as the content of your emails, other private communications or files in private folders), when we have a good faith belief that doing so is necessary.&quot;</span></div><div><span style="color:rgb(40,27,33);font-family:sl-Apres,helvetica,sans-serif;font-size:15px;line-height:27px">&quot;</span><span style="color:rgb(40,27,33);font-family:sl-Apres,helvetica,sans-serif;font-size:15px;line-height:27px">In other words, Microsoft won't treat your local data with any more privacy than it treats your data on its servers and may upload your local data to its servers arbitrarily&quot;</span></div><div><span style="color:rgb(40,27,33);font-family:sl-Apres,helvetica,sans-serif;font-size:15px;line-height:27px"><br></span></div><div>I did a quick install on a VM choosing the Express settings. When I fully deploy this on a real workstation, I will likely choose to wade through all of the individual pages, as David recommends.</div><div><br></div><div><br></div><div>Of course, losing one&#39;s privacy is nothing new - it&#39;s happening all over the place (despite Santa Ana&#39;s police force&#39;s lawsuit <a href="http://reason.com/blog/2015/08/04/suspended-cops-say-video-of-them-eating">http://reason.com/blog/2015/08/04/suspended-cops-say-video-of-them-eating</a> or Dads who don&#39;t like low-flying drones over their homes -<a href="http://kfor.com/2015/08/03/it-was-the-same-as-trespassing-father-shoots-down-drone-in-backyard-hovering-over-his-daughter/">http://kfor.com/2015/08/03/it-was-the-same-as-trespassing-father-shoots-down-drone-in-backyard-hovering-over-his-daughter/</a>)</div><div><br></div><div>When one is using a computer, however, one should expect it - whether it be your boss or ISP. But now knowing that your software is outright doing it, knowing that these companies are complicit in giving this data to whoever asks for it, it may be to rethink that approach.</div><div><br></div><div>Andrew<br></div><div><br></div><div><br></div><div><br></div> </div> Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-38316175440899952792015-07-19T05:48:00.001-04:002015-08-06T12:51:13.615-04:00Rick Strahl: Rise of Javascript FrameworksRick Strahl just posted a fantastic article going through the <a href="http://weblog.west-wind.com/posts/2015/Jul/18/The-Rise-of-JavaScript-Frameworks-Part-1-Today">rise of Javascript frameworks</a>. It's only part 1 so there will be more.<br /><br />For those still coding their javascript manually but starting a new project, Rick provides great pros and cons for choosing a framework.<br /><br />I was surprised that <a href="http://www.wakanda.org/">Wakanda</a> wasn't listed - but it seems to be far more than just a framework, more of a full blown application tool and stack.<br /><br /><br />And then I saw this great <a href="http://cube-drone.com/comics/c/relentless-persistence">graphic </a>which captures it to a T<br /><br /><br />Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-68974558446382616102015-06-17T08:48:00.000-04:002015-06-17T08:54:18.194-04:00Handy Visual Studio Tip: Creating Your Own Search Folder Sets<div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div>I wasn't aware of this useful feature until just recently. It's been in Visual Studio &nbsp;for a <a href="https://msdn.microsoft.com/en-us/library/ms178698(v=sql.90).aspx">while </a>but if you've never come across it, you wouldn't know it was there.</div><div><br /></div><div>A client application had a few distinct solutions: one for a web app, a separate desktop app, web services and finally a database solution. There were times when I was in one of the solutions and what I really needed to do was find any instance of a particular call - in short, searching the contents of every file.&nbsp;</div><div><br /></div><div><i>(for VFP users, I would typically use Code References for this and just do a broad search. In fact, that's what I have done on occasion, but no more!)</i></div><div><br /></div><div>Ctrl+F in VS brings up the Find dialog. By default, it's in Quick Find mode, so it will only search the current document. This can be expanded to "Find in Files", at which point in time, you can identify where you want Visual Studio to "Look in". The default list includes Current Document, All Documents, Current Project or Entire Solution. BUT, note the button with the ellipsis to the right of the drop-down.&nbsp;</div><div><br /></div><div>Click that and you can define your own Search Folders Sets. In doing so, you've expanded the list of "Look In" places so anywhere can be searched. The way our application was laid out, I created separate search folders for "Everything", "Database" and "Web Services".<br /><div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-rcaY2EgEuhg/VYFtYPIrYHI/AAAAAAAABvE/AWuHs3kHFeI/s1600/FolderSets.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="268" src="http://2.bp.blogspot.com/-rcaY2EgEuhg/VYFtYPIrYHI/AAAAAAAABvE/AWuHs3kHFeI/s320/FolderSets.png" width="320" /></a></div><br />Now, whenever I need to search for code within files, I can do it all in Visual Studio, even if the project isn't loaded.</div><div><br /></div><div><i>Note: This may be a known feature for many developers or it may have been one of those features that were heavily promoted when it was first introduced in seminars, but my experience has shown that many developers start doing things one way and never find out about handy features like this.</i></div><div></div></div></div><br /></div>Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-87861720124840855052014-09-26T07:21:00.001-04:002014-09-26T07:21:25.910-04:00Fwd: Great Article on Code Review<div dir="ltr"><div><br></div><div class="gmail_quote"><div dir="ltr"> <a href="http://blog.salsitasoft.com/practical-lessons-in-peer-code-review/" target="_blank">http://blog.salsitasoft.com/practical-lessons-in-peer-code-review/</a><br><div><br></div><div>Consequences of bad reviews</div><div><ul style="margin:1.1em 0px 1.6em;color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px"><li>Not having time to deal with your review backlog.</li><li>Delaying a release because your reviews aren&#39;t done yet.</li><li>Posting reviews that are no longer relevant since the code has changed so much in the meantime.</li><li>Doing poor reviews since you have to rush through them at the last minute.</li></ul><div><font color="#3a4145" face="Open Sans, sans-serif"><span style="font-size:20px;line-height:32px">Ideas</span></font></div></div><div><font color="#3a4145" face="Open Sans, sans-serif"><span style="font-size:20px;line-height:32px">&gt;&gt; </span></font><strong style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px">something around 25% of the original development time should be spent on code reviews</strong><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px">. </span></div><div><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px"><br></span></div><div><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px">&gt;&gt;</span><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px">understand how the code fits into the larger context of the application, component or library it is part of. If you don&#39;t grasp all the implications of every line of code, then your reviews are not going to be very valuable.</span></div><div><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px"><br></span></div><div><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px">&gt;&gt; </span><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px"> </span><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px">empty their review backlog every day.</span><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px"> </span></div><div><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px"><br></span></div><div><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px">Fix One Area At A Time</span></div><div><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px">&gt;&gt;</span><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px"> </span><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px">If my colleague spends a week adding code willy-nilly across a large project then the patch they post is going to be really hard to review.</span><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px"> </span></div><div><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px"><br></span></div><div><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px">&gt;&gt; </span><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px"> creating reviewable code is to </span><strong style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px">annotate your code reviews</strong><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px">.</span></div><div><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px"><br></span></div><div><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px">&gt;&gt; Commit third-party code separately</span></div><div><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px"><br></span></div><div><font color="#3a4145" face="Open Sans, sans-serif"><span style="font-size:20px;line-height:32px">When doing large refactorings, </span></font></div><div><font color="#3a4145" face="Open Sans, sans-serif"><span style="font-size:20px;line-height:32px">&gt;&gt; </span></font><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px">refactor code incrementally. Figure out a partial change of reasonable scope that results in a working code base and brings you in the direction you want to go.</span></div><div><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px"><br></span></div><div><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px"><br></span></div><div><span style="color:rgb(58,65,69);font-family:&#39;Open Sans&#39;,sans-serif;font-size:20px;line-height:32px"><br></span></div></div> </div><br></div> Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-15570658506140904852014-09-10T05:20:00.004-04:002014-09-10T05:20:52.932-04:00AppleSoftI'm not TRYING to be "fanboy-flame bait" but what I saw yesterday was a typical "Do it this way, now do it this way and then we'll go back to this way" all over again.... a move similar to what Microsoft does to developers on an ongoing basis.<br /><br />Remember the first iPhone? Smooth and curved, at least as far as it could be back then. I still pull out my 3G and can see the curves on it.<br /><br />Then the 4 came out and "boxy" was all the rage. Everything should be "tight with corners"<br /><br />Now iPhone 6.... smooth and curvy is back. Granted I don't have the actual device yet, but that's the message.<br /><br />Guess that means the iPhone 8 will be back to boxy.<br /><br />And honestly, Apple Watch is not worth "<a href="http://en.wikipedia.org/wiki/Stevenote#.22One_more_thing....22">one more thing</a>" --- especially when everyone knows it's going to be shown. "One more thing" would be something no one saw coming. &nbsp;The device itself ? Very interesting and yes, definitely lots of potential but "one more thing" worthy? No. Maybe I'm just jaded.<br /><br />One more "bad thing" is that the Apple Watch (which does look very cool) requires an iPhone. So now you can walk around with more Apple devices instead of just one. If you're going to change my life, make my load lighter, not heavier.<br /><br />So much for real <a href="https://www.apple.com/ios/whats-new/continuity/">Continuity</a>.<br /><br />Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-84052244599998964172014-08-21T06:21:00.001-04:002014-08-21T06:21:51.839-04:00WPF - Setting Up Themes<p><a href="http://arbel.net/2006/11/03/forcing-wpf-to-use-a-specific-windows-theme/#comments">Forcing WPF to use a specific Windows theme | I Got Rhythm</a></p><blockquote>At a client recently, we developed our WPF application under Windows 7, tested it under Windows XP and everything looked great. </blockquote><blockquote>Then it was deployed.</blockquote><blockquote>As it turns out, one of the deployments was over a Citrix server that forced applications to run under Classic mode. </blockquote><blockquote>Those of you who have worked with various operating systems over the years will know what I'm talking about. Classic mode isn't quite classic, unless you are one of the few who think playing bar pong on an 84" TV is superior to playing one of the more dimensional games. Or maybe one of the few who like to get up and change the TV channel rather than finding the remote. Or one of the .... (you get the idea)</blockquote><blockquote>While most things converted well, Tabs do not. In WPF, we have these beautiful tabs that look fresh but over in Classic mode, they have the look and feel of, well, Classic Windows 95 and VB 6 applications.</blockquote><blockquote>The application was demo'd to the client under Windows 7 but deployed under Windows Classic so all of a sudden, the user's experience went from "wow, that looks great" to "what kind of crap did you give me".</blockquote><blockquote>But all was not lost. I found this very old (2006) but super useful post about forcing WPF to use a theme. In the end, it was as simple as adding a forced reference to PresentationFramework.Aero in the solution and adding</blockquote><p><span style="font-family: 'courier new', courier;"> &lt;ResourceDictionary.MergedDictionaries&gt;</span></p><p><span style="font-family: 'courier new', courier;"> &lt;ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" /&gt;</span></p><p><span style="font-family: 'courier new', courier;"> &lt;/ResourceDictionary.MergedDictionaries</span></p><blockquote><p>to the Resource dictionary (or to the Application.xaml file).</p><p>Voila our tabs went from crap to zap!</p><p>To make the experience even more sweet, that post from 2006? The blog is still being updated today (a lot more posts than here recently as well). Well done, <a href="http://arbel.net/">Aelij Arbel</a>, well done and Thank you!</p></blockquote><p> </p>Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-49016028065890816402014-07-28T06:00:00.000-04:002014-07-28T10:03:45.944-04:00New FoxShow Episode featuring Southwest Fox 2014 OrganizersThe latest version of the FoxShow (<a href="http://akselsoft.libsyn.com/foxshow-79-southwest-fox-and-southwest-xbase-2014">FoxShow #79 - Southwest Fox and Southwest xBase++ 2014</a>) features an interview with Rick Schummer, Doug Hennig and Tamar Granor about what they have planned for this year's Southwest Fox conference, fast approaching in October.<br /><br />If you haven't registered yet, be sure to listen for a special offer from Rick in the show.<br /><br />Hope to see you there!<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://plus.google.com/107535442002362798012noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-36266996566824399922014-04-25T04:31:00.001-04:002014-04-25T04:31:14.522-04:00Timetracking and Cool Tool Alert: SonicAgile Project Management <br /><div style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;">&nbsp; &nbsp;</div>Sometimes a blog post talks about a tool and it sounds like an ad. Othertimes, it provides good information and then it mentions a tool. Such was the case when I read this <a href="http://stephenwalther.com/archive/2014/04/21/time-tracking-on-an-agile-team">post</a> from Stephen Walther.<br /><br />The explanation of time-tracking (second paragraph) really hits home when trying to promote why it should be used. I've been working with Microsoft's <a href="http://www.visualstudio.com/en-us/products/tfs-overview-vs.aspx">TFS</a> for the past few years and one of the challenges has always been getting people to track time. If they don't see a real benefit to it, it's often perceived as a negative performance measurement tool. They have to get over that mindset. <br /><br />As the post says "<span style="background-color: white; color: #666666; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 16px; line-height: 24px;">the Product Owner needs to know when the work on a story has gone over the original time estimated for the story. The Product Owner is concerned with Return On Investment... a legitimate reason to halt work on the story and reconsider the story’s business value."</span><br /><div style="background-color: white; border: 0px; color: #666666; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 16px; line-height: 24px; margin: 0px; outline: 0px; padding: 0px 0px 22px; vertical-align: baseline;">"if your team is spending 75% of their time doing testing then you might need to bring in more testers. Or, if 10% of your team’s time is expended performing a software build at the end of each iteration then it is time to consider better ways of automating the build process."</div>The post then mentions <a href="http://www.sonicagile.com/">SonicAgile</a>, which I had never heard of. SonicAgile is a new online Agile Project Management and it is really really great. I've run through the gamut of online project management tools- from Basecamp, Kanban Kit, Trello, TFS, among others. All of them are great tools and depending on the client, I still use them.&nbsp; KanBan and Trello use the card-style interface and it's such a great way of forcing users to stay focused, even Microsoft turned to using a similar approach in TFS 2013.<br /><br />SonicAgile uses a similar interface - but focuses on <a href="http://sonicagile.com/guide-agile-project-management-using-sonicagile/">making project management </a>super easy. After going through challenges with introducing agile processes, the fact that you can turn concepts (like iterations or epics) on or off can make this very useful for experienced or new teams!<br />&nbsp;If you're tracking multiple projects and/or different teams, you can turn on features just for specific projects.<br /><br />Just getting started? Keep only the basic idea of using Cards to track features, change requests and bugs from To Do, In Progress and Done, just like <a href="http://www.trello.com/">Trello</a>.<br /><br />Need Iterations? Turn on the feature and now you can group your cards into time-sensitive Iterations. <br /><br />Need Epics? Just turn them on.<br /><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2Fsonicagile2wp.wpengine.com%2Fwp-content%2Fuploads%2F2014%2F04%2FGuide_Iterations.png&amp;container=blogger&amp;gadget=a&amp;rewriteMime=image%2F*" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="" border="0" src="http://sonicagile2wp.wpengine.com/wp-content/uploads/2014/04/Guide_Iterations.png" height="256" width="320" /></a></div><br />Another cool feature - Roadmaps. You can create a public roadmap (much like <a href="http://www.lianja.com/resources/roadmap">Lianja</a> did during its beta cycles) and use it for planning your iterations.<br /><br />&nbsp;Oh yeah, on the road but without browser access? Just email your user stories to a special email address and it will create the cards for you.<br /><br />&nbsp;It's a new tool - so I'm excited to see where it goes (it needs a mobile client) - but right out of the gate, <a href="http://www.sonicagile.com/">SonicAgile</a> got a number of features (including scheduled reporting) that are right there when you need them. <br /><br /><div class="zemanta-articles">Related articles, courtesy of Zemanta: <br /><ul class="zemanta-articles"><li><a href="http://gpsistakis.wordpress.com/2014/03/16/how-to-kanban-with-trello/">How to Kanban with Trello</a></li><li><a href="http://infowarestudios.co.za/using-lists-in-trello-for-agile-software-development/">Using lists in Trello for Agile software development</a></li></ul><div class="zemanta-pixie"><img alt="" class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=0e6fc313-3eca-8fa8-b814-b205c5b996a0" /></div></div><br />Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com5tag:blogger.com,1999:blog-5492774.post-77147201056289020602013-09-05T04:14:00.002-04:002013-09-05T04:14:36.949-04:00VFPX Open Source TreasuresI mentioned this on the latest <a href="http://akselsoft.libsyn.com/fox-show-78-alpha-anywhere-s-richard-rabins">FoxShow</a> episode but also wanted to note it here.<br /><br />If you go to <a href="http://www.foxrockx.com/getvfpx.htm">Get VFPX</a> , the price of the new book says it's $59,99 but if you actually click on the "Buy Now" button, you should be able to get it for $49.99 before September 6th.<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://plus.google.com/107535442002362798012noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-53647394302599021762013-08-17T16:24:00.001-04:002013-09-05T04:12:47.368-04:00Here, There and AlphaAnywhereI had a great conversation last week with Richard Rabins from <a href="http://www.alphasoftware.com/">AlphaSoftware</a>. &nbsp;Long time Fox developers might remember Alpha 5 - that's the same company but they now have an offering called <a href="http://alphasoftware.com/products.asp">Alpha Anywhere </a>which is a fast way of generating HTML 5 based solutions for web-based and mobile based solutions. Before you think about "yet another HTML 5 App generator", while you can do client-side javascript, you can also do server side scripting with their language, which is very similar to VFP. &nbsp;They've also got a fairly well known CTO, Dan Bricklin (of Visicalc fame). He's done a lot of "native" development for iOs and various platforms so it's interesting for him to jump into the full HTML 5. <br /><br />They have a demo version you can look at to get started but are also filled with lots of&nbsp;AlphaAnywhere.<br /><br />I'm going to be publishing our talk in a <a href="http://www.thefoxshow.com/">FoxShow</a> next week but one of the great things for Fox developers is that he's hoping to be at the <a href="http://www.swfox.net/">SW Fox</a> conference in October. Sounds like there's going to be a lot of HTML 5 being spoken at SW Fox this year.<br /><br />Update: The show has been posted <a href="http://akselsoft.libsyn.com/fox-show-78-alpha-anywhere-s-richard-rabins">here</a><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://plus.google.com/107535442002362798012noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-36853251351494381232013-06-16T05:14:00.001-04:002013-06-16T05:14:24.618-04:00Why VFP Developers should look at SW Fox 2013For 10 years now, the <a href="http://www.swfox.net/">Southwest Fox</a> conference has served as a great gathering for FoxPro developers, looking for insight, ideas and inspiration on moving their development applications and skills forward. Over the years, there have been spotlights on moving VFP applications into the cloud, onto mobile, integrate better with .Net and lots of other technologies.<br /><br />While Visual FoxPro isn't receiving internal code updates from Microsoft, Visual FoxPro (or <a href="http://vfpx.codeplex.com/">VFPX</a>) continues to grow into a larger tool in the developer's arsenal. While <a href="http://vfpx.codeplex.com/wikipage?title=Thor%20Repository">Thor</a> continues to deliver more power in the actual FoxPro IDE, new interface features grow what FoxPro applications can actually do.<br /><br />But the core of FoxPro (fast and efficient database access) remains - and for all the tools or applications provided with Oracle or SQL Server or Postgres or whatever, VFP still provides the best data access environment that I've ever worked in. That means for developers who still need to deliver solutions, VFP will still be in demand. It may not be the "development language" for the next application nor will the DBF be the database - but the concepts behind accessing data and the extensibility keeps the product compelling. <br /><br />How is that possible? When you run software in a corporate environment, IT departments liked to lay claim and identify the software they wanted to support. Typically, that meant whichever software was a) sold into the department by vendors (Oracle/MS) and b) understood by the most recent IT hire. Today, the corporate world has evolved - it's run more efficiently. People don't care as much as what software is developed in or with, they care that it works. That's not to say, they didn't care before - but I've seen government departments spend four-five times as much on new development to replace an older working technology and STILL not get the same result. Now the focus is on efficiency. If someone had told a corporate department that they would be running with a free database server 15-20 years ago, they would have been escorted politely out of the room. Today, it's all about what works.<br /><br />Smaller businesses (as opposed to Fortune 500/Government) has always been about what works - that's why you found the smaller tools with greater reach. I remember one of the first times I saw <a href="http://west-wind.com/">West-Wind Web Connection </a>(or what was to become the web connection), it was the power behind one of the first online retailers, handling thousands of transactions with ease. I've heard rumours there are even some FoxPro DOS applications still in use today in Europe. Most development today isn't even about the latest tools -&gt; you can write an application today in Notepad &nbsp;- it's about HTML5, CSS and Javascript (check out the latest <a href="http://recombu.com/mobile/interactive/iphone-5s-ios7-concept/">IOS7 mockup </a>done in with just this , including icons).<br /><br />At the same time, new software is constantly sprouting up. New databases, new <a href="http://www.jquery.com/">extensions</a>, new technologies, new cloud ideas, open-source <a href="http://www.wakanda.org/">environments</a>, new <a href="http://www.lianja.com/">environments</a> ---- all of these make for exciting times for developers. SWFox also features a co-conference with <a href="http://www.alaska-software.com/products/xpp/Xpp.shtm">Alaska Software</a>, who have breathed new like into older Clipper applications with xBase++. In one of my sessions, we're going to highlight a lot of these new environments and how VFP developers can leverage their experience and expertise in these new tools. <br /><br />Registration for this year's conference is wide open but they have an early-bird deadline coming up that ends on July 1st ($670, which includes a Pre-Con session - a steal considering some conferences are still going at $2500). Check it out at <a href="http://swfox.net/">Southwest Fox 2013</a>. <br /><br /><a href="http://technorati.com/tag/FoxPro" rel="tag">FoxPro</a> <a href="http://technorati.com/tag/VFP" rel="tag">VFP</a><br /><br /><br /><br /><br />Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com2tag:blogger.com,1999:blog-5492774.post-66714521417575129852013-06-14T07:17:00.001-04:002013-06-14T07:17:57.070-04:00Looking forward to Southwest Fox 2013 <a href="http://doughennig.blogspot.ca/2013/05/southwest-fox-2013-speakers-and.html">Doug Hennig: Southwest Fox 2013 Speakers and Sessions Announced</a><br /><br />Doug's written up some of the sessions he's looking forward to and I have to say the sessions announced for Southwest Fox cover a wide gamut for the FoxPro (and xBase++) developer. (full disclosure: I'm speaking so I'm excited about that too)<br /><br />Like Doug, &nbsp;I'm very excited about&nbsp;<span style="background-color: #f6f6f6; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13px;">Eric Selje’s&nbsp;</span><a href="http://www.swfox.net/SessionsSWFOX.aspx#Continuous_Integration" style="background-color: #f6f6f6; color: #de7008; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13px;">Will the Circle Be Unbroken: Continuous Integration and VFP</a><br /><br />When <a href="http://vfpx.codeplex.com/">VFPX </a>first came about, <a href="https://twitter.com/alanstevens">Alan Stevens</a> had done some work on an MS Build target for VFP. This never really took off which was too bad. Continuous Integration is so wonderful that once you have it, you will wonder why you didn't do it earlier. It's a great way for ensuring you compile, teaching your team, identifying conflicts and just feeling good about your approach. &nbsp;We're using it extensively at one of my clients and it really has helped identify the culprits (gulp!) who break code.<br /><br />Hope to see you thereAndrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-36521513610649762872013-06-05T04:49:00.004-04:002013-06-05T04:49:50.526-04:00Programmers vs. Developers vs. ArchitectsI received an email this morning from <a href="http://www.brandonsavage.net/">Brandon Savage</a>'s newsletter. Brandon's a PHP guru (works at Mozilla) but his newsletter and books have some great overall perspectives for developers of all languages. However, <a href="http://us4.campaign-archive2.com/?u=164d0f943de4dc3f8e1ef5d98&amp;id=3c0e5eb22b&amp;e=09d4666515">this last one</a> (What's the difference between developers and architects?) kind of rubs me the wrong way.&nbsp;Either that, or I've just missed the natural inflation of job descriptions.&nbsp;(maybe, it's like the change in terminology between Garbage man and Waste Engineer or Secretary and Office Administrator)<br /><br />So maybe it's just me - but I think there's still a big difference between Programmer, Developer and then of course, architect. The key thing here is that every role has a different perspective and every one of those perspectives has value. The original MSF create roles like Product Manager, Program Manager, Developer, Tester, etc - so every concept may pigeon hole people into different roles. But the statements Brandon makes are often distinctions I would argue are the difference between programmers and developers.<br /><br />While many advanced developers make assumptions such as "every programmer unit tests their code" or "everyone uses TTD", most developers I've ever met know that's not the reality.<br /><div><br /></div><br /><h2 style="background-color: white; font-family: Georgia; line-height: 21px; text-align: left;">Software developers write code. Software architects solve problems.</h2><div>Actually, I thought it was Programmers write code and Developers solve problems. Architects build something even bigger.</div><div><br /></div><div>That said, all of the points are valid - but I can't help but think... if developers now write code, what do programmers do?&nbsp;</div><div><br /></div><div>I see a big difference between the term "programmer" and "developer" - I know <b><u><i>it's all semantics</i></u></b> but it's an important distinction when hiring. Lots of people know how to "code" - technically, if you've dabbled in VBA in an Excel macro, you've "coded". Does that make them a "coder" or a "programmer" or a "developer"?</div><div><br /></div><div>A good example might be programmers code, but developers debug. Developers should be able to see the bigger picture. Programmers can write a program - but, in my mind, developers should be able to describe the problem, identify the solution, and explain it. I've seen enough amazing programmers who can use the most arcane or bizarre ( but cool ) methods for coding a function or problem but are inept at defending or explaining it.&nbsp;</div><div><br /></div><div>But the other aspects of the newsletter have some interesting points on it.</div><div><h2 style="background-color: white; font-family: Georgia; line-height: 21px; text-align: left;">Software developers see bugs. Software architects see the big picture.</h2></div><div>Huh? If I hire a programmer, I expect them to fix bugs. If I hire a developer, I want them to do a bit more than that. Maybe a better way of looking at it is in scope:</div><div><br /></div><div>Code ----&gt; Library -----&gt; Software Application -----&gt; Broader Solution</div><div><br /></div><div>I can expect a programmer to write code and maybe even an entire library. I expect a developer to be able to write/support a library and an entire application - heck, maybe even the entire solution. I do expect an architect to be a bit more than just a developer but the broader solution? I expect anyone in a more senior position (developer, architect, product manager) to get the big picture.</div><div><br /></div><div>(now I have seen scenarios where S/As seem more focused on smaller issues instead of the big picture - but I don't want to get into a p*ssing match with Systems Analysts).</div><div><br /></div><div><h2 style="background-color: white; font-family: Georgia; line-height: 21px; text-align: left;">Software developers focus on the computer. Software architects focus on the customer.</h2></div><div>Once again - I suppose you could say Programmers focus on the computer, developers focus on the solution, architects focus on the customer - but I thought that was the purpose of the PRODUCT Manager (or Project Manager). Either way, the developer better understand and get what's required. Developers should perhaps focus on their peers and ensuring they can explain what is involved.</div><div><br /></div><div>Otherwise, don't call yourself a developer, especially if all you can focus on is the code.</div><div><br /></div><div><br /></div><div><h2 style="background-color: white; font-family: Georgia; line-height: 21px; text-align: left;">Software developers think about new technologies. Software architects think about trusted technologies.</h2></div><div>This is an interesting one. I tend to think about it in terms of "problems". Junior Programmers have a handful of ways of dealing with a problem and usually try to use them to fix a problem. Developers do (and should) learn about new technologies and see where they best apply. They should LEARN those new technologies but also be smart enough about when to use it. They should be able to evaluate those technologies and see if there's a reason to use it in the resolution of a problem.</div><div><br /></div><div>If all a software architect did was used "trusted" technologies, does that mean they only use "proven" technologies? (in other words, the old "no one got fired for using IBM, etc" approach)</div><div><br /></div><div>Punch cards were once "trusted" but they moved to "tapes" and then "disks" and then "optical". Which would you "trust"? It depends on your background.&nbsp;</div><div><br /></div><div>I would go so far as to say architects think about trusted SOLUTIONS, not technologies and PROVEN technologies. A solution is the approach you take to resolving a problem - the technology is what you use to implement it.&nbsp;</div><div><br /></div><div>When I got to the end of the newsletter, I started to think that it's me. Maybe it's the reason that you don't see job postings for "programmers" but for "developers" - but let's not simply evolve the definition of a programmer to a developer without making a huge differentiation between what those capabilities are.&nbsp;&nbsp;</div><div><br /></div><div>One other point: referring to software "architecture" can really bug traditional architectural engineers. While software may deliver a lasting solution and there are parallels between physical buildings and software, this easily overlooks a lot of issues (but that should be a different post).&nbsp;</div><div><br /></div><div>Programmers Program. Developers Develop. If you look at what an architect does in terms of requirements, it almost sounds most like systems analysis (because they often don't build it). Maybe what we really want is a "Builder" term. But then, maybe we need a "Wizard" because businesses often want software that will work "magic".&nbsp;</div><div><br /></div><div>If you've never read any of Brandon's stuff, do yourself a favor and <a href="http://www.brandonsavage.net/blog/">check</a> it out.&nbsp;</div><div><br /></div><div>What about you? Are you a Programmer, a Developer, an Architect? What's the difference to you?</div><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://plus.google.com/107535442002362798012noreply@blogger.com4tag:blogger.com,1999:blog-5492774.post-44012306759723258012013-03-04T04:37:00.002-05:002013-03-04T04:37:42.897-05:00Thanks for all the fish, Calvin!Calvin Hsia, Microsoft <a href="http://blogs.msdn.com/b/calvin_hsia/">developer</a> and one-time&nbsp;<a href="http://www.imdb.com/name/nm1076825/">movie star</a>, &nbsp;combines two posts into <a href="http://blogs.msdn.com/b/calvin_hsia/archive/2013/02/27/10398012.aspx#comments">one</a> to note one great tip and one tip of the hat....<br /><br />1. If you weren't involved with FoxPro in the early 90s, you may think that Microsoft's MVP program was the brainchild of a marketing expert, but in fact, it came from Calvin's listing of the "most verbose people" in Compuserve's FoxPro support forums. The <a href="http://www.microsoft.com/en-us/news/features/2013/feb13/02-21MVP.aspx">program</a> is now 20 years old, despite cutting VFP out of the program. Way to go, Calvin!<br /><br />2. Onto the cool tip, when .Net first came out years ago, I was asked to evaluate the conversion of a fairly dynamic VFP application into .Net. One of the biggest roadblocks was how to handle dynamic scripting. We asked around and even .Net experts couldn't come up with an ideal situation. In other applications, I've ended up using pre-compiled DLLs, loading dynamically, to achieve similar results but I've always wanted a better solution.<br /><br />Calvin's <a href="http://blogs.msdn.com/b/calvin_hsia/archive/2013/02/27/10398012.aspx#comments">solution</a>? Using CodeDomProvider and the CompileAssemblyFromSource method. There's a little bit of set up (creating methods that return "known values" (strings, booleans, etc) - but otherwise, compile and execute your code on the fly. Genius!<br /><br />Thanks Calvin - for everything!!<br /><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://plus.google.com/107535442002362798012noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-28830559682030510742013-02-09T06:44:00.001-05:002013-05-19T06:55:31.826-04:00Fwd: Great Post: Realizing Your Potential As a Developer<div dir="ltr"><div><a href="http://www.aaronstannard.com/post/2013/02/06/10-Reasons-Why-Youe28099re-Failing-to-Realize-Your-Potential-as-a-Developer.aspx" style="font-family: Helvetica; font-size: 12px;" target="_blank">http://www.aaronstannard.com/post/2013/02/06/10-Reasons-Why-Youe28099re-Failing-to-Realize-Your-Potential-as-a-Developer.aspx</a></div><div class="gmail_quote"><div dir="ltr"><div style="font-family: Helvetica; font-size: 12px; margin: 0px;"><br /></div><div style="font-family: Helvetica; font-size: 12px; margin: 0px;">After going through a week where I had to step in and review a developer's testing process before sending it to a tester because the tester kept on finding easy bugs, this post rejuvenated me.</div><div style="font-family: Helvetica; font-size: 12px; margin: 0px;"><br /></div><div style="font-family: Helvetica; font-size: 12px; margin: 0px;">You Know You're Failing to Realize Your Potential as a developer when you:</div><div style="font-family: Helvetica; font-size: 12px; margin: 0px;"><br /></div><div style="font-family: Helvetica; font-size: 12px; margin: 0px;"></div><ul><li>Don't Want To Learn</li><li>Don't Want To Commit</li><li>Don't Want To Understand</li><li>Don't Want To Code (Just analyze)</li><li>Don't Want To Ask&nbsp;</li><li>Don't Want To Show</li><li>Don't Want To Read</li></ul><br /><div style="font-family: Helvetica; font-size: 12px; margin: 0px;"><br /></div></div></div><br /></div>Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-41248194828106938082012-12-29T06:52:00.003-05:002012-12-29T06:52:22.958-05:00Judging CodeSam Stephenson of <a href="http://37signals.com/">37 Signals</a> wrote this <a href="http://sstephenson.us/posts/you-are-not-your-code">post</a> on December 13th, 2012 - <a href="http://sstephenson.us/posts/you-are-not-your-code">You Are Not Your Code</a>.<br /><br />I didn't realize he was one of the authors of the <a href="http://prototypejs.org/">Prototype</a> framework or even that he worked at 37 signals (until the bottom of the post). The other point I wanted to make is that I don't think this is specific to "open-source" work either.<br /><br />"<span style="background-color: white; color: #404040; font-family: 'Varela Round', sans-serif; font-size: 16px; line-height: 24px;">Developers working together to build shared infrastructure: it’s the fundamental tenet of open-source software. Any motivated programmer with an idea and the ability to implement it can solve a common problem, share the solution with the world, and reap the rewards of future improvements by peer review."</span><br /><span style="background-color: white; color: #404040; font-family: 'Varela Round', sans-serif; font-size: 16px; line-height: 24px;"><br /></span>It's not just open-source software - it's ANY software. Every product or project you work on typically involves working together, even if it's by simply pitting your own crazy ideas against each other. You solve a problem and then you get reviewed, whether it be by peers, superiors or, far worse, the purchasing public.<br /><br />When building software, you make trade-offs. On a recent project, we had to move the prototype quickly into production because it was clear that it would take too much time to recreate it from scratch. For another client, work that was supposed to last for four years (while waiting for a new product) has lasted over fifteen. When you look back at your old code, you likely cringe at some decisions were made - but that was then, this is now.<br /><br />I can feel his pain though &nbsp;-<br /><div style="background-color: white; color: #404040; font-family: 'Varela Round', sans-serif; font-size: 16px; line-height: 24px; margin-bottom: 2ex;">"The reality is that Prototype helped lots of people despite its flawed foundation. But its time had come and gone, and I eventually realized it was time to move on.</div><div style="background-color: white; color: #404040; font-family: 'Varela Round', sans-serif; font-size: 16px; line-height: 24px; margin-bottom: 2ex;">It was hard not to take Prototype’s failure personally. Critical blog posts felt like a full assault on my values. And seeing friends use other libraries made me feel like my work was a waste."</div><br />It's a great read - and as he notes :<br /><br />"<span style="background-color: white; color: #404040; font-family: 'Varela Round', sans-serif; font-size: 16px; line-height: 24px;">... you are not your code. A critique of your project is not tantamount to a personal attack.... It is simply the result of a regenerative process, driven by an unending desire to improve the status quo."</span><br /><span style="background-color: white; color: #404040; font-family: 'Varela Round', sans-serif; font-size: 16px; line-height: 24px;"><br /></span>As I noted above, I don't believe this is exclusive to the open-source world or software. Sure, companies are judged based on their products; but more importantly, they are based on their service to customers. But as individual developers, your code should always be open to criticism, by yourself or by others.<br /><br />What is an example of a perfect line of code? Is it:<br /><br />print "Hello World"<br /><br />(why are you using double quotes, why do I need to say Print, why is it in proper case?)<br /><br />Hey, Kevin Ragsdale has a <a href="http://kevinragsdale.net/its-so-gray-introduction/">series</a> of posts on how <a href="http://kevinragsdale.net/so-what-is-an-ugly-app-anyway/">ugly</a> FoxPro is --- I would expect that none of the Fox team takes offense to his posts. They created a canvas - what you do with it is your business.<br /><br />Ayn Rand once <a href="http://aynrandlexicon.com/lexicon/moral_judgment.html">said</a> "Judge and prepare to be judged"<br /><br />It's how you react to that judgement or criticism that shows your character.<br /><br />Thanks Sam - great post.<br /><br />Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com1tag:blogger.com,1999:blog-5492774.post-23915484744190767752012-12-27T07:06:00.000-05:002012-12-29T07:07:17.578-05:00A Quick Plug: Whitey BoardYes, it's a very politically incorrect name but <a href="http://www.whiteyboard.com/">Whitey Board</a> is AWESOME!!!<br /><br />I purchased two because the office where I'm currently working doesn't give consultants their own white board (and meeting rooms are hard to find). &nbsp;Who uses white boards anymore? After seeing supposed consultants and business analysts struggle using a SmartBoard or any of those other intelligent white boards AND getting tired of deciphering things on a smaller screen, I needed something anyone could use and didn't need to sit around a computer screen to look at it.<br /><br />Bonus #1: INEXPENSIVE (24$ - I bought two 2x3)<br /><br /><i>It came in rolled up tubes and stuck onto the nearby wall in minutes.</i><br /><br />Bonus #2: Super easy to put up anywhere<br /><br /><i>You can unstick and re-stick it anywhere.</i><br /><i><br /></i>Bonus #3: Roll it up and take it with you<br /><br />If you're looking for a solution for discussing ideas in a group, check it out.<br /><br />Of course, there are some downsides:<br /><br />1. The provided dry-erase pen is useless. Buy some better ones.<br /><br />2. Because it doesn't have edges, you may want to create your own border so that your "drawing" doesn't bleed over to the edge. Lucky for me, the wall I posted it on is easy to clean.<br /><br />If I had a larger office, I would look at some of their other cool offerings like the Ghost (clear) Whitey board and the large board (4ft x 6ft).<br /><br /><br />Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-83312711984858074222012-11-24T04:51:00.001-05:002012-11-24T04:51:26.456-05:00Always Be Releasing: one week iterationsIn reviewing older posts, I came across this little gem that had never been posted but is always particularly relevant to development today. I posted a more thorough outline on my <a href="http://process.aksel.com/2012/11/always-be-releasing-intridea.html">process</a> blog. http://intridea.com/posts/always-be-releasing It's a short post but hits on a key point for developers and anyone involved in a project that seems to be going on and on: <blockquote> I burn out when I'm not releasing.</blockquote> One of my clients recently started one week iterations. <blockquote>If you're feeling burnt out, take a step back and think about something you can release this week.</blockquote> I was asked "do I feel the one week is too short a time?" Surprisingly, I said No. The one week iteration ensures there are no "beware the man in a dark room" <a href="http://www.codinghorror.com/blog/2008/06/dont-go-dark.html">syndrome</a> but it also allows for very little time for re-design and refactoring. Programmers that like to tinker and sit back and re-design over and over again really don't work well in this one week iteration process. <blockquote>it's not "what am I working on this week" but "what am I going to release this week"</blockquote> A release has a lot of moving parts...but it enforces a well-oiled machine since everyone has to release their code every week. We are using a schedule that says: - Monday morning release , - Backlog Meeting Monday - Feature Go/No-Go Wednesday - Final check-in Friday (with time to fix stuff over the weekend or before Monday) On the minus side, if you have people on your team who aren't delivering or moving as fast, you really feel it on the Friday. But that's a plus too - because it forces you to move slower to get everyone up to the same speed. On the plus side, it makes Mondays much more exciting.Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-18932593496232235482012-08-31T09:01:00.003-04:002012-08-31T09:01:26.504-04:00New FoxShow extends Southwest Fox Early-bird DeadlineCheck out the latest FoxShow <a href="http://akselsoft.libsyn.com/webpage/fox-show-74-5-sw-fox-2012-interview-preview">teaser</a>.<br /><br />While waiting for the final version of an interview with Doug, Rick and Tamar regarding <a href="http://www.swfox.net/">Southwest Fox 2012</a>, the organizations threw in a little bonus.<br /><br />I'll sweeten the pot. The first five that register and mention the FoxShow will get $50 sent to them via Paypal from the FoxShow as well.<br /><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://plus.google.com/107535442002362798012noreply@blogger.com2tag:blogger.com,1999:blog-5492774.post-14898870369743244252012-08-06T06:52:00.001-04:002012-08-06T07:07:07.045-04:00Make 99% Invisible VisibleI mentioned 99% invisible on my last <a href="http://www.thefoxshow.com/">FoxShow</a>&nbsp;- it's a fascinating and amazing show, talking about design, typically in architecture. For those who build software, what IS interesting is how design impacts a variety of things. Subtle things, like how if you close your eyes, a <a href="http://tmblr.co/ZYocFyA3Jf4l">lane change</a> feels like a 90% degree turn or just a quick flick of the wrist. Or how <a href="http://tmblr.co/ZYocFyQ5S2jP">four uber-creative guys</a> decided to ensure certain words were ensconced in metal. Or even more fun, what really should happen when <a href="http://tmblr.co/ZYocFyFRhXsf">patent-violators</a> go bad.<br /><br />However, more to the point, 99% Invisible is on <a href="http://www.kickstarter.com/projects/1748303376/99-invisible-season-3/posts/278447?ref=activity">KickStarter</a>, a web site to help businesses or groups fund things through the crowd. The show started looking for some money to help broaden its scope so it can do more shows. But they hit that target almost instantly. Now they are trying to do something &nbsp;a little more fun ---- reach 5,000 "backers". They're almost there (4,600 at this writing) with 4 days to go.<br /><br />You don't have to give a lot of money --- in fact, if you listen to the show and don't like it, then don't bother. But if you do like it, why not pledge $5 or anything? (if you give more than $30, there are some "gifts")<br /><br />Why give? Well, if you like the show, the original goal was to try and make more episodes every year, by helping one of the interns be able to work regularly on the show. That goal was hit within 24 hours. Now with increased backers, there are other goals: more episodes, make video episodes, who knows.<br /><br />One of the best things of the show is that it is re-listenable. From the web site, "<span style="background-color: white; color: #666666; font-family: Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif; font-size: 18px; line-height: 27px;">They’re produced to stand up to multiple listens and reveal more each time they’re heard. The ultimate goal of 99% Invisible is to make radio that inspires mindfulness and wonder in all the things in the built world."</span><br /><br />If that doesn't <a href="http://tmblr.co/ZYocFyDT6Xk1">sound</a> like something (or <a href="http://tmblr.co/ZYocFyOJTZUf">anything</a>) that could improve your software design, maybe you're not <a href="http://tmblr.co/ZYocFyE_bUEI">listening</a> (or <a href="http://tmblr.co/ZYocFyNO1PzS">looking</a>) <a href="http://tmblr.co/ZYocFyIQBAsu">hard</a> enough.Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-48892016048192782802012-07-06T07:18:00.001-04:002012-07-08T04:13:55.641-04:00Talking Lianja with Barry and HankLast month, I had the opportunity to talk with Barry Mavin and Hank Fay about <a href="http://www.lianja.com/">Lianja</a>, Barry's new tool for building a single application for Desktop (Windows, Mac and Linux), &nbsp;Web and Mobile.<br /><br />It's based on <a href="http://qt.nokia.com/products/">QT</a> but what Barry has done is pretty damn incredible - a full development platform where &nbsp;you can code in Python, PHP, Javascript and yes, FoxPro. So you're not just cross-platform in terms of OS but you're also cross-language. You can even mix code so one part can be written in JavaScript while another can be written in VFP. And Yes, it is <a href="http://lianja.github.com/LianjaX/">eXtensible</a>.<br /><br />The FoxShow Episode is now <a href="http://akselsoft.libsyn.com/webpage/fox-show-74-lianja-and-cross-platform-development">available</a>.<br /><br />Andrew MacNeillhttps://plus.google.com/107535442002362798012noreply@blogger.com0tag:blogger.com,1999:blog-5492774.post-90333540400524997882012-06-27T04:15:00.001-04:002012-06-27T04:15:15.577-04:00Learning from Kent BeckHere's a great <a href="http://blog.iterate.no/2012/06/20/programming-like-kent-beck/">post</a>&nbsp;that I'm sure others have seen and posted. Three guys had the opportunity to do some prototyping with Kent Beck, the creator of TDD and thankfully, one of them,&nbsp;<span class="Apple-style-span" style="color: #666666; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 12px; line-height: 22px;"><a class="url fn n" href="http://blog.iterate.no/author/theholyjava/" rel="author" style="color: #666666; font-style: normal; text-decoration: none;" title="Vis alle innlegg av Jakub Holý">Jakub Holý</a>,&nbsp;</span>documented it. I haven't ready Kent's implementation patterns book<br /><br />The entire post is very long and detailed but I wanted to post some key takeaways as they apply to pretty much any project.<br /><br />Make your code readable. &nbsp;"<span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 13px; line-height: 22px;">Code is primarily means of communication."</span><br /><span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 13px; line-height: 22px;"><br /></span><br /><span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 13px; line-height: 22px;"></span><br /><div style="color: black; font-family: Times; font-size: medium; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">KISS. "<span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 13px; line-height: 22px;">Apply simplicity at all levels</span><span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 13px; line-height: 22px;">."</span></div><div><span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 13px; line-height: 22px;"><br /></span></div><br />Flexibility "<span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 13px; line-height: 22px;">Programs should be flexible in the ways they change, they should make common changes easy or at least easier.&nbsp;"</span><br /><br />Approaches to coding. When thinking about Agile, people start creating sprints of 2 weeks or less. When prototyping, an even quicker sprint came up - "<span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 13px; line-height: 22px;">what would be the demo we would like to show at the end of the day. And his next question was what test to write."</span><br /><br />Write tests that test needed functionality, at a high or unit level. "<span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 13px; line-height: 22px;">Speculating about failure points can be just as wasteful as speculating about design."</span><br /><br />Write Code in the Test, then Refactor. (I know, think about it. I actually started doing this when I was first learning TDD and thought - "is this really what I'm supposed to do?") "<span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 13px; line-height: 22px;">&nbsp;</span><span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 13px; line-height: 22px;">Instead of thinking about how it should be organized (what classes to create, where to put them, whether to use a factory class or a factory method), why not initially write the code directly in the test method? You can always factor out the code later."</span><br /><br />Focus on one thing at the given time. "<span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 13px; line-height: 22px;">&nbsp;</span><span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 13px; line-height: 22px;">If you notice along the way something else that needs to be done – giving a method a better name, removing a dead code, fixing an unrelated bug – don’t do it, put it on a task list and do it later.</span><span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 13px; line-height: 22px;">&nbsp;"</span><br /><br />Symmetry in Code. "<span class="Apple-style-span" style="color: #141310; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 14px; font-style: italic; line-height: 22px;">Symmetry in code is where the same idea is expressed the same way everywhere it appears in the code."</span><br /><span class="Apple-style-span" style="color: #141310; font-family: Georgia, 'Times New Roman', Times, serif;"><span class="Apple-style-span" style="font-size: 14px; line-height: 22px;"><i><br /></i></span></span><br />The entire post is a great read.<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://plus.google.com/107535442002362798012noreply@blogger.com0