<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-NZ link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I do hope Kyley&#8217;s comments were intended with tongue in cheek.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Matthew&#8217;s comments about people feeling &#8220;flamed&#8221; surprised and saddened me... I was only replying to his messages, and when someone publicly accuses me of arrogance and regarding someone as retarded when I absolutely did not, I feel entitled to defend myself equally as publicly.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>If that has upset anyone then I apologise, but I certainly don&#8217;t understand why it should make anyone feel disinclined to post to the list as Matthew seems to have been told or indeed why anyone feeling that way didn&#8217;t think to address me directly with any concerns about any perceived &#8220;bad behaviour&#8221; on the list.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I can&#8217;t quite believe or understand how or why a well intentioned effort to help someone could have been interpreted so wrongly or why it turned into a character assassination in the way that it did.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> delphi-bounces@delphi.org.nz [mailto:delphi-bounces@delphi.org.nz] <b>On Behalf Of </b>Kyley Harris<br><b>Sent:</b> Tuesday, 18 January 2011 13:40<br><b>To:</b> NZ Borland Developers Group - Delphi List<br><b>Subject:</b> Re: [DUG] Validating CDS files<o:p></o:p></span></p></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'>I'm wondering if you analyzed your need for popcorn carefullly. You asked for popcorn.. you got your popcorn. but perhaps you've been taken for a ride. If we analyze your need carefully for an hour, what we could have determined is that you truley wanted a 30 minute comedy show, and some salt - and -vinegar chips to go with it. Not popcorn at all. Perhaps the desire for popcorn stemmed from your not correctly seeing your needs in the first place. I feel its my duty to help you access the situtation so that you get what you need and not what you want.<br><br>We could discuss this further privately, and I'm sure with all my experience in these situations that a 3 hour lunch break daily, with said included comedies and chips will satisfy your needs more appropriately.. The Popcorn is just a bandaid.<o:p></o:p></p><div><p class=MsoNormal>On Tue, Jan 18, 2011 at 12:44 PM, David Brennan &lt;<a href="mailto:dugdavid@dbsolutions.co.nz">dugdavid@dbsolutions.co.nz</a>&gt; wrote:<o:p></o:p></p><p class=MsoNormal>Mmmm, I'm enjoying my popcorn as I watch...<o:p></o:p></p><div><p class=MsoNormal><br>-----Original Message-----<br>From: <a href="mailto:delphi-bounces@delphi.org.nz">delphi-bounces@delphi.org.nz</a> [mailto:<a href="mailto:delphi-bounces@delphi.org.nz">delphi-bounces@delphi.org.nz</a>] On<br>Behalf Of Matthew Comb<o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'>Sent: Tuesday, 18 January 2011 11:12 a.m.<br>To: NZ Borland Developers Group - Delphi List<br>Subject: Re: [DUG] Validating CDS files<o:p></o:p></p></div><div><div><p class=MsoNormal>&gt; Those developers that came back with &quot;TO DO&quot; lists were perhaps themselves<br>&gt; not taking the time to understand the customers problems. &nbsp;The customer<br>&gt; told<br>&gt; them &quot;those 10,000 features are great, but we'd really like X, Y and Z&quot;,<br>&gt; so<br>&gt; the developers simply came back to you with that list of &quot;X, Y and Z&quot;.<br>&gt;<br>&gt; Far from analysing too much, they were most likely not analysing *enough*.<br><br>What your argument does not take into account yet again (which was my<br>point that was missed), is the time and money factor. If you have a 1 day<br>or 2 day install, you do not have time to spend all 2 days taking on<br>customer requests when the customer is not yet up to speed with the<br>capabilities of the system. A customer often doesn't know what they need<br>until they get to use the system, then their requirements frequently<br>change. If you have unlimited time and money then by all means, spend<br>every waking moment analysing each and every item raised, Cameron would<br>probably tear his hair out.<br><br>&gt;<br>&gt;<br>&gt; That specialist you hired is most likely looking at the X, Y and Z and<br>&gt; then<br>&gt; asking the customer... &quot;But what do you need X, Y and Z for?&quot; then showing<br>&gt; them that they already HAVE X, Y and Z among the 10,000 other features.<br>&gt;<br>&gt;<br>&gt; That quite neatly demonstrates my point I think. &nbsp;Understand the<br>&gt; problem...<br>&gt; not only might the solution you are asking for not be ideal, but you might<br>&gt; already be in possession of the solution !!!<br>&gt;<br><br>I don't think it does at all.<br><br>&gt;<br>&gt;<br>&gt; &nbsp; &quot;I have a legacy piece of software which very very rarely corrupts a<br>&gt; &nbsp; &nbsp;local data file - fact&quot;<br>&gt;<br>&gt; The real problem to be solved is how/why the corruption occurs...<br>&gt; everything<br>&gt; else is just sticking plaster, not a solution, and even the sticking<br>&gt; plaster<br>&gt; can only help if you apply the right sort of dressing correctly.<br><br>Thats right, that is the root problem, but as this piece of software has<br>been in the field for 8 years, and is being decommissioned, there isn't a<br>lot of point in that is there. So a bandaid is more than adequate.<br><br>&gt;<br>&gt;<br>&gt; &nbsp; &quot;Regardless of the better long term solutions, we will take<br>&gt; &nbsp; &nbsp;a defensive programming measure to protect against the loading<br>&gt; &nbsp; &nbsp;of corrupt files.&quot;<br>&gt;<br>&gt; And my point in this area was that unless you understand how/where the<br>&gt; corruption is occurring, the defensive measures you might take may very<br>&gt; well<br>&gt; end up not being defensive at all.<br><br>If you validate a CDS file, and don't load it if it is corrupt. That is a<br>defensive measure.<br><br>&gt;<br>&gt; e.g. the idea of checksuming the output from the server... &nbsp;if the data<br>&gt; coming from the server is corrupt from the get-go, then check-summing<br>&gt; helps<br>&gt; you not one little bit.<br>&gt;<br><br>Agreed which is why I didn't ask about it.<br><br>&gt;<br>&gt;<br>&gt; You initially blamed the corruption on a flaky wifi connection - highly<br>&gt; unlikely for the reasons that I and others have explained. &nbsp;You then<br>&gt; explained that you were streaming the data, so the corruption might occur<br>&gt; in<br>&gt; sporadic bytes in the stream.<br><br>I do not believe I did suggest the contents of the stream would be<br>changed. What I said was that a TCP steam can be disconnected. &nbsp;this was<br>yet another wild assumption on your part. If you send a 1GB file through a<br>stream, it is NOT as Kyley suggested an All or Nothing approach. You are<br>taking bytes into a stream. It is up to you whether or not you discard the<br>stream based on a disconnection or not. That decision point is out of my<br>control as it is Midas + DBX4MySQL which manages this.<br><br>&gt;<br>&gt; But then you seemed attracted to the idea of using XML as a potential way<br>&gt; forward, which would seem to contradict the streaming nature of the data<br>&gt; transmission.<br><br>The incorrect assumption you made at the beginnning was that the CDS file<br>was coming from the server as a file payload. Its not. The client is<br>connecting to MySQL DB server directly. All suggestions and<br>misunderstandings about hashing, file downloads, etc were based on that<br>incorrect assumption.<br><br>&gt;<br>&gt; And now you admit:<br>&gt;<br>&gt; &nbsp; &nbsp;&quot;I do not know yet where this corruption occurs. DB Server, Drivers,<br>&gt; &nbsp; &nbsp; In Memory, Saving of the file, Server DB.&quot;<br><br>I don't, and it doesn't matter. Why ? Because at a rate of 1/10000 it is a<br>manageable issue, and with the software being decommissioned it is good<br>business sense to investigate the server mechanics. its better to bandaid<br>and move on.<br><br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; &nbsp; &quot;Its not true to take the standpoint that if someone asks for the<br>&gt; solution<br>&gt; &nbsp; &nbsp;then they should be able to provide it e.g &nbsp;If I ask for Word 2010<br>&gt; should<br>&gt; &nbsp; &nbsp;I be capable of sitting down and writing the application suite?&quot;<br>&gt;<br>&gt; I didn't say that they *should* be able to provide it in the sense that<br>&gt; you<br>&gt; took it to mean - I said as to draw attention to the inherent<br>&gt; contradiction.<br>&gt; The only way you can confidently ask for a solution in the form of a<br>&gt; solution specification, without explaining the problem, is if you fully<br>&gt; understand the problem and *could* provide the solution yourself. &nbsp;In<br>&gt; which<br>&gt; case, you would never have needed to ask someone else to provide the<br>&gt; solution for you.<br><br>Thats just rubbish.<br><br>&gt;<br>&gt; In other words, when someone asks for a solution, rather than stating a<br>&gt; problem, the likelihood is that they are asking for the wrong solution<br>&gt; from<br>&gt; the very start!<br><br>Statistically probably correct more often than not, but still an arrogant<br>assumption that the person is clueless / uninformed of possible solutions.<br><br>Its also arrogant to assume you know everything abou the motivation and<br>drivers as to why the person asked the question in the first place.<br><br>For example in this case, the fact that the software is being<br>decommissioned and the fact that its rarity does not make a server<br>solution fiscally viable.<br><br>&gt;<br>&gt;<br>&gt; Your &quot;Word 2010&quot; example this is a quite different sort of request from<br>&gt; what<br>&gt; we are actually discussing (it's not a &quot;technical solution&quot; just a<br>&gt; shopping<br>&gt; list), never-the-less even this inappropriate parallel can be used to<br>&gt; illustrate the same point:<br>&gt;<br>&gt;<br>&gt; If you ask for Word 2010, should I just sell it to you simply because you<br>&gt; can't write it yourself ?<br><br>That logic much like the rest of your logic is flawed. I did not say that<br>you should sell it to me because I could not program it. You should sell<br>it to me because I asked to buy it.<br><br>I am asking to buy it, because I don't want to program it.<br><br>&gt;<br>&gt; Or should I first ask what you need it for.... ?<br>&gt;<br>&gt; If you tell me you want it for doing bulk emails, and you heard that Word<br>&gt; 2010 has some neat mail-merging capabilities, then I am pretty confident<br>&gt; that I can sell you a better solution for your needs than just handing<br>&gt; over<br>&gt; a copy of Word 2010.<br><br>Again you are incorrectly assuming that the person asking the question is<br>a retard.<br><br>&gt;<br>&gt; I could just give you what you want, but that may not be what you need.<br>&gt;<br><br>Its not your decision to make.<br><br>&gt;<br>&gt; Incidentally, nobody &quot;gave me&quot; a blog. &nbsp;I created my blog in order to<br>&gt; share<br>&gt; my skills and experience and - if my stats are to be believed - many, many<br>&gt; people appreciate it.<br><br>Actually I've found your blog to be very good and useful. I feel that if<br>you reigned in the arrogance a tad, you might get places faster.<br><br>&gt; I gain some sense of satisfaction from the fact that people (well, *some*<br>&gt; people at least) seem to appreciate my effort, but it certainly doesn't<br>&gt; &quot;go<br>&gt; to my head&quot;.<br>&gt;<br>&gt; _______________________________________________<br>&gt; NZ Borland Developers Group - Delphi mailing list<br>&gt; Post: <a href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</a><br>&gt; Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi" target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>&gt; Unsubscribe: send an email to <a href="mailto:delphi-request@delphi.org.nz">delphi-request@delphi.org.nz</a> with Subject:<br>&gt; unsubscribe<br>&gt;<br><br><br>_______________________________________________<br>NZ Borland Developers Group - Delphi mailing list<br>Post: <a href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</a><br>Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi" target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>Unsubscribe: send an email to <a href="mailto:delphi-request@delphi.org.nz">delphi-request@delphi.org.nz</a> with Subject:<br>unsubscribe<br><br>_______________________________________________<br>NZ Borland Developers Group - Delphi mailing list<br>Post: <a href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</a><br>Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi" target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>Unsubscribe: send an email to <a href="mailto:delphi-request@delphi.org.nz">delphi-request@delphi.org.nz</a> with Subject: unsubscribe<o:p></o:p></p></div></div></div><p class=MsoNormal><br><br clear=all><br>-- <br>Kyley Harris<br>Harris Software<br>+64-21-671-821<o:p></o:p></p></div></body></html>