Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
From: Ihe Onwuka <ihe.onwuka@gm...> - 2014-01-31 04:13:03
|
So I want to match on <a> elements. What I want to do in the template rule however is dependent on an attribute in the parent of the <a> element that conveys the data source. I could do <xsl:template match="a[contains(../@attr,'datasource1')]"> blah blah </xsl:template> <xsl:template match="a[contains(../@attr,'datasource2'])"> blah blah </xsl:template> and it should work, but that means I am testing the contains condition on every iteration of <a> element but it will return the same value for every iteration and hence is unsatisfactory. Any advances on this. |
From: Lizzi, Vincent <Vincent.Lizzi@ta...> - 2014-01-31 04:36:18
|
Would this be more efficient? <xsl:template match="a[parent::*/@attr]"> <xsl:choose> <xsl:when test="contains(parent::*/@attr,'datasource1')"> blah blah </xsl:when> <xsl:when test="contains(parent::*/@attr,'datasource2')"> blah blah </xsl:when> <xsl:otherwise> blah blah </xsl:otherwise> </xsl:choose> </xsl:template> -----Original Message----- From: Ihe Onwuka [mailto:ihe.onwuka@...] Sent: Thursday, January 30, 2014 11:13 PM To: Mailing list for the SAXON XSLT and XQuery processor Subject: [saxon] template match dependent on parent So I want to match on <a> elements. What I want to do in the template rule however is dependent on an attribute in the parent of the <a> element that conveys the data source. I could do <xsl:template match="a[contains(../@attr,'datasource1')]"> blah blah </xsl:template> <xsl:template match="a[contains(../@attr,'datasource2'])"> blah blah </xsl:template> and it should work, but that means I am testing the contains condition on every iteration of <a> element but it will return the same value for every iteration and hence is unsatisfactory. Any advances on this. ------------------------------------------------------------------------------ WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk _______________________________________________ saxon-help mailing list archived at http://saxon.markmail.org/ saxon-help@... https://lists.sourceforge.net/lists/listinfo/saxon-help |
From: Ihe Onwuka <ihe.onwuka@gm...> - 2014-01-31 04:42:04
|
Sorry wrong mailing list. The action has been switched to the xsl mailing list. On Fri, Jan 31, 2014 at 4:12 AM, Ihe Onwuka <ihe.onwuka@...> wrote: > So I want to match on <a> elements. > > What I want to do in the template rule however is dependent on an > attribute in the parent of the <a> element that conveys the data > source. > > I could do > > <xsl:template match="a[contains(../@attr,'datasource1')]"> > blah > blah > </xsl:template> > > <xsl:template match="a[contains(../@attr,'datasource2'])"> > blah > blah > </xsl:template> > > and it should work, but that means I am testing the contains condition > on every iteration of <a> element but it will return the same value > for every iteration and hence is unsatisfactory. > > Any advances on this. |
From: Dimitre Novatchev <dnovatchev@gm...> - 2014-01-31 05:36:10
|
Dear Ihe, Once again it is very difficult to understand what is your problem -- the provided information is not sufficient. It would be a good step forward if in future questions you provide: 1. A complete, but as small as possible source XML document. 2. A complete, but as small as possible XSLT transformation. 3. The currently produced result. 4. The wanted result. 5. What are the requirements that the transformation should implement and why the currently-produced result isn't correct. Providing this information will save you a lot of time (not having to read answers that aren't reflecting what you had in mind (but didn't express)) and will also save the time of the readers of the question. Also, you will get more answers that are correct, and quicker. On Thu, Jan 30, 2014 at 8:12 PM, Ihe Onwuka <ihe.onwuka@...> wrote: > So I want to match on <a> elements. > > What I want to do in the template rule however is dependent on an > attribute in the parent of the <a> element that conveys the data > source. > > I could do > > <xsl:template match="a[contains(../@attr,'datasource1')]"> > blah > blah > </xsl:template> > > <xsl:template match="a[contains(../@attr,'datasource2'])"> > blah > blah > </xsl:template> > > and it should work, but that means I am testing the contains condition > on every iteration of <a> element but it will return the same value > for every iteration and hence is unsatisfactory. > > Any advances on this. > > ------------------------------------------------------------------------------ > WatchGuard Dimension instantly turns raw network data into actionable > security intelligence. It gives you real-time visual feedback on key > security issues and trends. Skip the complicated setup - simply import > a virtual appliance and go from zero to informed in seconds. > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > _______________________________________________ > saxon-help mailing list archived at http://saxon.markmail.org/ > saxon-help@... > https://lists.sourceforge.net/lists/listinfo/saxon-help -- Cheers, Dimitre Novatchev --------------------------------------- Truly great madness cannot be achieved without significant intelligence. --------------------------------------- To invent, you need a good imagination and a pile of junk ------------------------------------- Never fight an inanimate object ------------------------------------- To avoid situations in which you might make mistakes may be the biggest mistake of all ------------------------------------ Quality means doing it right when no one is looking. ------------------------------------- You've achieved success in your field when you don't know whether what you're doing is work or play ------------------------------------- To achieve the impossible dream, try going to sleep. ------------------------------------- Facts do not cease to exist because they are ignored. ------------------------------------- Typing monkeys will write all Shakespeare's works in 200yrs.Will they write all patents, too? :) ------------------------------------- I finally figured out the only reason to be alive is to enjoy it. |
From: Ihe Onwuka <ihe.onwuka@gm...> - 2014-01-31 05:50:32
|
This has been switched to the XSL mailing list as it was posted here in error and I have posited a solution (using an if to test once in the parent template and then for-eaching over each child <a>). On Fri, Jan 31, 2014 at 5:35 AM, Dimitre Novatchev <dnovatchev@...> wrote: > Dear Ihe, > > Once again it is very difficult to understand what is your problem -- > the provided information is not sufficient. > > It would be a good step forward if in future questions you provide: > > 1. A complete, but as small as possible source XML document. > > 2. A complete, but as small as possible XSLT transformation. > > 3. The currently produced result. > > 4. The wanted result. > > 5. What are the requirements that the transformation should implement > and why the currently-produced result isn't correct. > > Providing this information will save you a lot of time (not having to > read answers that aren't reflecting what you had in mind (but didn't > express)) and will also save the time of the readers of the question. > > Also, you will get more answers that are correct, and quicker. > > > > On Thu, Jan 30, 2014 at 8:12 PM, Ihe Onwuka <ihe.onwuka@...> wrote: >> So I want to match on <a> elements. >> >> What I want to do in the template rule however is dependent on an >> attribute in the parent of the <a> element that conveys the data >> source. >> >> I could do >> >> <xsl:template match="a[contains(../@attr,'datasource1')]"> >> blah >> blah >> </xsl:template> >> >> <xsl:template match="a[contains(../@attr,'datasource2'])"> >> blah >> blah >> </xsl:template> >> >> and it should work, but that means I am testing the contains condition >> on every iteration of <a> element but it will return the same value >> for every iteration and hence is unsatisfactory. >> >> Any advances on this. >> >> ------------------------------------------------------------------------------ >> WatchGuard Dimension instantly turns raw network data into actionable >> security intelligence. It gives you real-time visual feedback on key >> security issues and trends. Skip the complicated setup - simply import >> a virtual appliance and go from zero to informed in seconds. >> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >> _______________________________________________ >> saxon-help mailing list archived at http://saxon.markmail.org/ >> saxon-help@... >> https://lists.sourceforge.net/lists/listinfo/saxon-help > > > > -- > Cheers, > Dimitre Novatchev > --------------------------------------- > Truly great madness cannot be achieved without significant intelligence. > --------------------------------------- > To invent, you need a good imagination and a pile of junk > ------------------------------------- > Never fight an inanimate object > ------------------------------------- > To avoid situations in which you might make mistakes may be the > biggest mistake of all > ------------------------------------ > Quality means doing it right when no one is looking. > ------------------------------------- > You've achieved success in your field when you don't know whether what > you're doing is work or play > ------------------------------------- > To achieve the impossible dream, try going to sleep. > ------------------------------------- > Facts do not cease to exist because they are ignored. > ------------------------------------- > Typing monkeys will write all Shakespeare's works in 200yrs.Will they > write all patents, too? :) > ------------------------------------- > I finally figured out the only reason to be alive is to enjoy it. |
From: Michael Kay <mike@sa...> - 2014-01-31 09:02:08
|
On 31 Jan 2014, at 05:50, Ihe Onwuka <ihe.onwuka@...> wrote: > This has been switched to the XSL mailing list as it was posted here > in error and I have posited a solution (using an if to test once in > the parent template and then for-eaching over each child <a>). > Let me ask a Saxon-specific question then: did this deliver any measurable performance benefit? Michael Kay Saxonica |
From: Ihe Onwuka <ihe.onwuka@gm...> - 2014-01-31 09:12:32
|
Didn't measure and I don't think the data set is ever going to big enough to make a difference (10,000 nodes). The question wasn't posed as a fix my problem but more from aesthetic curiousity. If you are going to tell me it would never make a difference because of built in optimisation it would get a thumbs up from me. On Fri, Jan 31, 2014 at 9:02 AM, Michael Kay <mike@...> wrote: > > On 31 Jan 2014, at 05:50, Ihe Onwuka <ihe.onwuka@...> wrote: > >> This has been switched to the XSL mailing list as it was posted here >> in error and I have posited a solution (using an if to test once in >> the parent template and then for-eaching over each child <a>). >> > > Let me ask a Saxon-specific question then: did this deliver any measurable performance benefit? > > Michael Kay > Saxonica |
From: Andrew Welch <andrew.j.welch@gm...> - 2014-01-31 09:24:35
Attachments:
Message as HTML
|
Wise words, xslt is our shared language - it's far easier to work with than paragraphs of text. Asking questions on a mailing list to extract answers from people is a skill On 31 Jan 2014 05:37, "Dimitre Novatchev" <dnovatchev@...> wrote: > > Dear Ihe, > > Once again it is very difficult to understand what is your problem -- > the provided information is not sufficient. > > It would be a good step forward if in future questions you provide: > > 1. A complete, but as small as possible source XML document. > > 2. A complete, but as small as possible XSLT transformation. > > 3. The currently produced result. > > 4. The wanted result. > > 5. What are the requirements that the transformation should implement > and why the currently-produced result isn't correct. > > Providing this information will save you a lot of time (not having to > read answers that aren't reflecting what you had in mind (but didn't > express)) and will also save the time of the readers of the question. > > Also, you will get more answers that are correct, and quicker. > > > > On Thu, Jan 30, 2014 at 8:12 PM, Ihe Onwuka <ihe.onwuka@...> wrote: > > So I want to match on <a> elements. > > > > What I want to do in the template rule however is dependent on an > > attribute in the parent of the <a> element that conveys the data > > source. > > > > I could do > > > > <xsl:template match="a[contains(../@attr,'datasource1')]"> > > blah > > blah > > </xsl:template> > > > > <xsl:template match="a[contains(../@attr,'datasource2'])"> > > blah > > blah > > </xsl:template> > > > > and it should work, but that means I am testing the contains condition > > on every iteration of <a> element but it will return the same value > > for every iteration and hence is unsatisfactory. > > > > Any advances on this. > > > > ------------------------------------------------------------------------------ > > WatchGuard Dimension instantly turns raw network data into actionable > > security intelligence. It gives you real-time visual feedback on key > > security issues and trends. Skip the complicated setup - simply import > > a virtual appliance and go from zero to informed in seconds. > > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > > _______________________________________________ > > saxon-help mailing list archived at http://saxon.markmail.org/ > > saxon-help@... > > https://lists.sourceforge.net/lists/listinfo/saxon-help > > > > -- > Cheers, > Dimitre Novatchev > --------------------------------------- > Truly great madness cannot be achieved without significant intelligence. > --------------------------------------- > To invent, you need a good imagination and a pile of junk > ------------------------------------- > Never fight an inanimate object > ------------------------------------- > To avoid situations in which you might make mistakes may be the > biggest mistake of all > ------------------------------------ > Quality means doing it right when no one is looking. > ------------------------------------- > You've achieved success in your field when you don't know whether what > you're doing is work or play > ------------------------------------- > To achieve the impossible dream, try going to sleep. > ------------------------------------- > Facts do not cease to exist because they are ignored. > ------------------------------------- > Typing monkeys will write all Shakespeare's works in 200yrs.Will they > write all patents, too? :) > ------------------------------------- > I finally figured out the only reason to be alive is to enjoy it. > > ------------------------------------------------------------------------------ > WatchGuard Dimension instantly turns raw network data into actionable > security intelligence. It gives you real-time visual feedback on key > security issues and trends. Skip the complicated setup - simply import > a virtual appliance and go from zero to informed in seconds. > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > _______________________________________________ > saxon-help mailing list archived at http://saxon.markmail.org/ > saxon-help@... > https://lists.sourceforge.net/lists/listinfo/saxon-help |
From: Ihe Onwuka <ihe.onwuka@gm...> - 2014-01-31 09:43:46
|
If your object of posting is for someone to give you code then yes. If your objective in answering is to give someone code and the question doesn't give you opportunity to do that then it's always an option not to answer. There won't be any complaints from me. As for the assertion that we should all speak XSLT here - I'll let Djikstra answer http://lfhck.com/question/86262/what-does-dijkstra-mean-when-he-recommends-an-exceptionally-good-mastery-of-ones-native-tongue Vincent's answer earlier illustrates there was sufficient clarity to understand exactly the issue, so I won't take that further I plead guilty to syntactical abuse. I'll end with a snippet of a skype conversation with a client (not this one) that happened literally about 3 hours ago this morning on the subject of communication. Focus on what he says rather than what I say. 07:06:15] cory roberts: it always amazes me that someone like amazon can't tell you how to use their own stuff [07:06:32] Ihe Onwuka: It's a common disease in IT [07:06:47] cory roberts: yeah, but it always boggles my mind [07:07:06] cory roberts: spend 100 million in development and one dollar in communication [07:07:08] Ihe Onwuka: Not so much that they can't tell you but that they expected you to go through a process of building your own in the first place [07:07:44] cory roberts: yeah, well it seems they want you to make your own as i found this thing buried at the bottom of one page [07:08:21] Ihe Onwuka: Very few companies hire professional UX people or technial writers but will pride themselves on hiring ubergeeks On Fri, Jan 31, 2014 at 9:24 AM, Andrew Welch <andrew.j.welch@...> wrote: > > Wise words, xslt is our shared language - it's far easier to work with than > paragraphs of text. > > Asking questions on a mailing list to extract answers from people is a skill > > On 31 Jan 2014 05:37, "Dimitre Novatchev" <dnovatchev@...> wrote: >> >> Dear Ihe, >> >> Once again it is very difficult to understand what is your problem -- >> the provided information is not sufficient. >> >> It would be a good step forward if in future questions you provide: >> >> 1. A complete, but as small as possible source XML document. >> >> 2. A complete, but as small as possible XSLT transformation. >> >> 3. The currently produced result. >> >> 4. The wanted result. >> >> 5. What are the requirements that the transformation should implement >> and why the currently-produced result isn't correct. >> >> Providing this information will save you a lot of time (not having to >> read answers that aren't reflecting what you had in mind (but didn't >> express)) and will also save the time of the readers of the question. >> >> Also, you will get more answers that are correct, and quicker. >> >> >> >> On Thu, Jan 30, 2014 at 8:12 PM, Ihe Onwuka <ihe.onwuka@...> wrote: >> > So I want to match on <a> elements. >> > >> > What I want to do in the template rule however is dependent on an >> > attribute in the parent of the <a> element that conveys the data >> > source. >> > >> > I could do >> > >> > <xsl:template match="a[contains(../@attr,'datasource1')]"> >> > blah >> > blah >> > </xsl:template> >> > >> > <xsl:template match="a[contains(../@attr,'datasource2'])"> >> > blah >> > blah >> > </xsl:template> >> > >> > and it should work, but that means I am testing the contains condition >> > on every iteration of <a> element but it will return the same value >> > for every iteration and hence is unsatisfactory. >> > >> > Any advances on this. >> > >> > >> > ------------------------------------------------------------------------------ >> > WatchGuard Dimension instantly turns raw network data into actionable >> > security intelligence. It gives you real-time visual feedback on key >> > security issues and trends. Skip the complicated setup - simply import >> > a virtual appliance and go from zero to informed in seconds. >> > >> > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >> > _______________________________________________ >> > saxon-help mailing list archived at http://saxon.markmail.org/ >> > saxon-help@... >> > https://lists.sourceforge.net/lists/listinfo/saxon-help >> >> >> >> -- >> Cheers, >> Dimitre Novatchev >> --------------------------------------- >> Truly great madness cannot be achieved without significant intelligence. >> --------------------------------------- >> To invent, you need a good imagination and a pile of junk >> ------------------------------------- >> Never fight an inanimate object >> ------------------------------------- >> To avoid situations in which you might make mistakes may be the >> biggest mistake of all >> ------------------------------------ >> Quality means doing it right when no one is looking. >> ------------------------------------- >> You've achieved success in your field when you don't know whether what >> you're doing is work or play >> ------------------------------------- >> To achieve the impossible dream, try going to sleep. >> ------------------------------------- >> Facts do not cease to exist because they are ignored. >> ------------------------------------- >> Typing monkeys will write all Shakespeare's works in 200yrs.Will they >> write all patents, too? :) >> ------------------------------------- >> I finally figured out the only reason to be alive is to enjoy it. >> >> >> ------------------------------------------------------------------------------ >> WatchGuard Dimension instantly turns raw network data into actionable >> security intelligence. It gives you real-time visual feedback on key >> security issues and trends. Skip the complicated setup - simply import >> a virtual appliance and go from zero to informed in seconds. >> >> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >> _______________________________________________ >> saxon-help mailing list archived at http://saxon.markmail.org/ >> saxon-help@... >> https://lists.sourceforge.net/lists/listinfo/saxon-help |
From: Michael Kay <mike@sa...> - 2014-01-31 10:05:55
|
On 31 Jan 2014, at 09:12, Ihe Onwuka <ihe.onwuka@...> wrote: > Didn't measure and I don't think the data set is ever going to big > enough to make a difference (10,000 nodes). > It's advice that I don't always follow myself, but I'll still give it: never make a change that is justified only on performance grounds unless you intend to measure the effect. But actually I wasn't asking because I wanted to preach, but rather because for years I've felt that we could do more to optimize pattern matching in Saxon, but yet I've very rarely seen use cases where pattern matching was critical to bottom-line performance, so I was wondering if this might be such a case. Michael Kay Saxonica |
From: Ihe Onwuka <ihe.onwuka@gm...> - 2014-01-31 10:20:05
|
On Fri, Jan 31, 2014 at 10:05 AM, Michael Kay <mike@...> wrote: > > On 31 Jan 2014, at 09:12, Ihe Onwuka <ihe.onwuka@...> wrote: > >> Didn't measure and I don't think the data set is ever going to big >> enough to make a difference (10,000 nodes). >> > > It's advice that I don't always follow myself, but I'll still give it: never make a change that is justified only on performance grounds unless you intend to measure the effect. > It's something you would do in almost any other programming language. Not continue to check a condition 10,000 times if checking it once suffices - but XSLT's processing model makes it awkward. I'd say it's aesthetic, now of course it's also performance related because the aspect that is objectionable is linked to performance. However I can honestly say before embarking on this change (actually since it's not yet implemented it's not a change but a departure from the idiomatic XSLT push style that I would normally code)..... that I did not expect any performance improvement to come of it. I thought it's either going to be because of optimisation or because there wasn't enough volume for it to matter. > But actually I wasn't asking because I wanted to preach, but rather because for years I've felt that we could do more to optimize pattern matching in Saxon, but yet I've very rarely seen use cases where pattern matching was critical to bottom-line performance, so I was wondering if this might be such a case. > I will try and make time to run the experiment and report back. |
From: Andrew Welch <andrew.j.welch@gm...> - 2014-01-31 10:21:40
|
As I say, posting questions to mailing lists is a skill. Nice of you to imply the audience lacks understanding of English, by the way. On 31 January 2014 09:43, Ihe Onwuka <ihe.onwuka@...> wrote: > If your object of posting is for someone to give you code then yes. > > If your objective in answering is to give someone code and the > question doesn't give you opportunity to do that then it's always an > option not to answer. There won't be any complaints from me. > > As for the assertion that we should all speak XSLT here - I'll let > Djikstra answer > http://lfhck.com/question/86262/what-does-dijkstra-mean-when-he-recommends-an-exceptionally-good-mastery-of-ones-native-tongue > > Vincent's answer earlier illustrates there was sufficient clarity to > understand exactly the issue, so I won't take that further I plead > guilty to syntactical abuse. > > I'll end with a snippet of a skype conversation with a client (not > this one) that happened literally about 3 hours ago this morning on > the subject of communication. Focus on what he says rather than what I > say. > > 07:06:15] cory roberts: it always amazes me that someone like amazon > can't tell you how to use their own stuff > [07:06:32] Ihe Onwuka: It's a common disease in IT > [07:06:47] cory roberts: yeah, but it always boggles my mind > [07:07:06] cory roberts: spend 100 million in development and one > dollar in communication > [07:07:08] Ihe Onwuka: Not so much that they can't tell you but that > they expected you to go through a process of building your own in the > first place > [07:07:44] cory roberts: yeah, well it seems they want you to make > your own as i found this thing buried at the bottom of one page > [07:08:21] Ihe Onwuka: Very few companies hire professional UX people > or technial writers but will pride themselves on hiring ubergeeks > > > On Fri, Jan 31, 2014 at 9:24 AM, Andrew Welch <andrew.j.welch@...> wrote: >> >> Wise words, xslt is our shared language - it's far easier to work with than >> paragraphs of text. >> >> Asking questions on a mailing list to extract answers from people is a skill >> >> On 31 Jan 2014 05:37, "Dimitre Novatchev" <dnovatchev@...> wrote: >>> >>> Dear Ihe, >>> >>> Once again it is very difficult to understand what is your problem -- >>> the provided information is not sufficient. >>> >>> It would be a good step forward if in future questions you provide: >>> >>> 1. A complete, but as small as possible source XML document. >>> >>> 2. A complete, but as small as possible XSLT transformation. >>> >>> 3. The currently produced result. >>> >>> 4. The wanted result. >>> >>> 5. What are the requirements that the transformation should implement >>> and why the currently-produced result isn't correct. >>> >>> Providing this information will save you a lot of time (not having to >>> read answers that aren't reflecting what you had in mind (but didn't >>> express)) and will also save the time of the readers of the question. >>> >>> Also, you will get more answers that are correct, and quicker. >>> >>> >>> >>> On Thu, Jan 30, 2014 at 8:12 PM, Ihe Onwuka <ihe.onwuka@...> wrote: >>> > So I want to match on <a> elements. >>> > >>> > What I want to do in the template rule however is dependent on an >>> > attribute in the parent of the <a> element that conveys the data >>> > source. >>> > >>> > I could do >>> > >>> > <xsl:template match="a[contains(../@attr,'datasource1')]"> >>> > blah >>> > blah >>> > </xsl:template> >>> > >>> > <xsl:template match="a[contains(../@attr,'datasource2'])"> >>> > blah >>> > blah >>> > </xsl:template> >>> > >>> > and it should work, but that means I am testing the contains condition >>> > on every iteration of <a> element but it will return the same value >>> > for every iteration and hence is unsatisfactory. >>> > >>> > Any advances on this. >>> > >>> > >>> > ------------------------------------------------------------------------------ >>> > WatchGuard Dimension instantly turns raw network data into actionable >>> > security intelligence. It gives you real-time visual feedback on key >>> > security issues and trends. Skip the complicated setup - simply import >>> > a virtual appliance and go from zero to informed in seconds. >>> > >>> > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >>> > _______________________________________________ >>> > saxon-help mailing list archived at http://saxon.markmail.org/ >>> > saxon-help@... >>> > https://lists.sourceforge.net/lists/listinfo/saxon-help >>> >>> >>> >>> -- >>> Cheers, >>> Dimitre Novatchev >>> --------------------------------------- >>> Truly great madness cannot be achieved without significant intelligence. >>> --------------------------------------- >>> To invent, you need a good imagination and a pile of junk >>> ------------------------------------- >>> Never fight an inanimate object >>> ------------------------------------- >>> To avoid situations in which you might make mistakes may be the >>> biggest mistake of all >>> ------------------------------------ >>> Quality means doing it right when no one is looking. >>> ------------------------------------- >>> You've achieved success in your field when you don't know whether what >>> you're doing is work or play >>> ------------------------------------- >>> To achieve the impossible dream, try going to sleep. >>> ------------------------------------- >>> Facts do not cease to exist because they are ignored. >>> ------------------------------------- >>> Typing monkeys will write all Shakespeare's works in 200yrs.Will they >>> write all patents, too? :) >>> ------------------------------------- >>> I finally figured out the only reason to be alive is to enjoy it. >>> >>> >>> ------------------------------------------------------------------------------ >>> WatchGuard Dimension instantly turns raw network data into actionable >>> security intelligence. It gives you real-time visual feedback on key >>> security issues and trends. Skip the complicated setup - simply import >>> a virtual appliance and go from zero to informed in seconds. >>> >>> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> saxon-help mailing list archived at http://saxon.markmail.org/ >>> saxon-help@... >>> https://lists.sourceforge.net/lists/listinfo/saxon-help -- Andrew Welch http://andrewjwelch.com |
From: Ihe Onwuka <ihe.onwuka@gm...> - 2014-01-31 10:26:57
|
As is answering them. I'm sure most of the audience here are perfectly happy and comfortable communicating in English and moreover can parse for themselves what was in my post and don't need to rely on your interpretation. On Fri, Jan 31, 2014 at 10:21 AM, Andrew Welch <andrew.j.welch@...> wrote: > As I say, posting questions to mailing lists is a skill. > > Nice of you to imply the audience lacks understanding of English, by the way. > > > On 31 January 2014 09:43, Ihe Onwuka <ihe.onwuka@...> wrote: >> If your object of posting is for someone to give you code then yes. >> >> If your objective in answering is to give someone code and the >> question doesn't give you opportunity to do that then it's always an >> option not to answer. There won't be any complaints from me. >> >> As for the assertion that we should all speak XSLT here - I'll let >> Djikstra answer >> http://lfhck.com/question/86262/what-does-dijkstra-mean-when-he-recommends-an-exceptionally-good-mastery-of-ones-native-tongue >> >> Vincent's answer earlier illustrates there was sufficient clarity to >> understand exactly the issue, so I won't take that further I plead >> guilty to syntactical abuse. >> >> I'll end with a snippet of a skype conversation with a client (not >> this one) that happened literally about 3 hours ago this morning on >> the subject of communication. Focus on what he says rather than what I >> say. >> >> 07:06:15] cory roberts: it always amazes me that someone like amazon >> can't tell you how to use their own stuff >> [07:06:32] Ihe Onwuka: It's a common disease in IT >> [07:06:47] cory roberts: yeah, but it always boggles my mind >> [07:07:06] cory roberts: spend 100 million in development and one >> dollar in communication >> [07:07:08] Ihe Onwuka: Not so much that they can't tell you but that >> they expected you to go through a process of building your own in the >> first place >> [07:07:44] cory roberts: yeah, well it seems they want you to make >> your own as i found this thing buried at the bottom of one page >> [07:08:21] Ihe Onwuka: Very few companies hire professional UX people >> or technial writers but will pride themselves on hiring ubergeeks >> >> >> On Fri, Jan 31, 2014 at 9:24 AM, Andrew Welch <andrew.j.welch@...> wrote: >>> >>> Wise words, xslt is our shared language - it's far easier to work with than >>> paragraphs of text. >>> >>> Asking questions on a mailing list to extract answers from people is a skill >>> >>> On 31 Jan 2014 05:37, "Dimitre Novatchev" <dnovatchev@...> wrote: >>>> >>>> Dear Ihe, >>>> >>>> Once again it is very difficult to understand what is your problem -- >>>> the provided information is not sufficient. >>>> >>>> It would be a good step forward if in future questions you provide: >>>> >>>> 1. A complete, but as small as possible source XML document. >>>> >>>> 2. A complete, but as small as possible XSLT transformation. >>>> >>>> 3. The currently produced result. >>>> >>>> 4. The wanted result. >>>> >>>> 5. What are the requirements that the transformation should implement >>>> and why the currently-produced result isn't correct. >>>> >>>> Providing this information will save you a lot of time (not having to >>>> read answers that aren't reflecting what you had in mind (but didn't >>>> express)) and will also save the time of the readers of the question. >>>> >>>> Also, you will get more answers that are correct, and quicker. >>>> >>>> >>>> >>>> On Thu, Jan 30, 2014 at 8:12 PM, Ihe Onwuka <ihe.onwuka@...> wrote: >>>> > So I want to match on <a> elements. >>>> > >>>> > What I want to do in the template rule however is dependent on an >>>> > attribute in the parent of the <a> element that conveys the data >>>> > source. >>>> > >>>> > I could do >>>> > >>>> > <xsl:template match="a[contains(../@attr,'datasource1')]"> >>>> > blah >>>> > blah >>>> > </xsl:template> >>>> > >>>> > <xsl:template match="a[contains(../@attr,'datasource2'])"> >>>> > blah >>>> > blah >>>> > </xsl:template> >>>> > >>>> > and it should work, but that means I am testing the contains condition >>>> > on every iteration of <a> element but it will return the same value >>>> > for every iteration and hence is unsatisfactory. >>>> > >>>> > Any advances on this. >>>> > >>>> > >>>> > ------------------------------------------------------------------------------ >>>> > WatchGuard Dimension instantly turns raw network data into actionable >>>> > security intelligence. It gives you real-time visual feedback on key >>>> > security issues and trends. Skip the complicated setup - simply import >>>> > a virtual appliance and go from zero to informed in seconds. >>>> > >>>> > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >>>> > _______________________________________________ >>>> > saxon-help mailing list archived at http://saxon.markmail.org/ >>>> > saxon-help@... >>>> > https://lists.sourceforge.net/lists/listinfo/saxon-help >>>> >>>> >>>> >>>> -- >>>> Cheers, >>>> Dimitre Novatchev >>>> --------------------------------------- >>>> Truly great madness cannot be achieved without significant intelligence. >>>> --------------------------------------- >>>> To invent, you need a good imagination and a pile of junk >>>> ------------------------------------- >>>> Never fight an inanimate object >>>> ------------------------------------- >>>> To avoid situations in which you might make mistakes may be the >>>> biggest mistake of all >>>> ------------------------------------ >>>> Quality means doing it right when no one is looking. >>>> ------------------------------------- >>>> You've achieved success in your field when you don't know whether what >>>> you're doing is work or play >>>> ------------------------------------- >>>> To achieve the impossible dream, try going to sleep. >>>> ------------------------------------- >>>> Facts do not cease to exist because they are ignored. >>>> ------------------------------------- >>>> Typing monkeys will write all Shakespeare's works in 200yrs.Will they >>>> write all patents, too? :) >>>> ------------------------------------- >>>> I finally figured out the only reason to be alive is to enjoy it. >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> WatchGuard Dimension instantly turns raw network data into actionable >>>> security intelligence. It gives you real-time visual feedback on key >>>> security issues and trends. Skip the complicated setup - simply import >>>> a virtual appliance and go from zero to informed in seconds. >>>> >>>> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >>>> _______________________________________________ >>>> saxon-help mailing list archived at http://saxon.markmail.org/ >>>> saxon-help@... >>>> https://lists.sourceforge.net/lists/listinfo/saxon-help > > > > -- > Andrew Welch > http://andrewjwelch.com |
From: Ihe Onwuka <ihe.onwuka@gm...> - 2014-01-31 11:18:13
|
Actually this <xsl:template match="a[contains(../@attr,'datasource1')]"> blah blah </xsl:template> <xsl:template match="a[contains(../@attr,'datasource2'])"> blah blah </xsl:template> entails 20,000 predicate comparisons for 10k nodes. To bring it down to 10k (ignoring any possible optimisations) I'd have to write <xsl:template match="a[contains(../@attr,'datasource1')]"> blah blah </xsl:template> <xsl:template match="a"> blah blah </xsl:template> and only if there are only 2 cases. So I should try that experiment as well. On Fri, Jan 31, 2014 at 9:12 AM, Ihe Onwuka <ihe.onwuka@...> wrote: > Didn't measure and I don't think the data set is ever going to big > enough to make a difference (10,000 nodes). > > The question wasn't posed as a fix my problem but more from aesthetic > curiousity. > > If you are going to tell me it would never make a difference because > of built in optimisation it would get a thumbs up from me. > > On Fri, Jan 31, 2014 at 9:02 AM, Michael Kay <mike@...> wrote: >> >> On 31 Jan 2014, at 05:50, Ihe Onwuka <ihe.onwuka@...> wrote: >> >>> This has been switched to the XSL mailing list as it was posted here >>> in error and I have posited a solution (using an if to test once in >>> the parent template and then for-eaching over each child <a>). >>> >> >> Let me ask a Saxon-specific question then: did this deliver any measurable performance benefit? >> >> Michael Kay >> Saxonica |
From: Andrew Welch <andrew.j.welch@gm...> - 2014-01-31 11:42:13
|
On 31 January 2014 11:18, Ihe Onwuka <ihe.onwuka@...> wrote: > Actually this > > <xsl:template match="a[contains(../@attr,'datasource1')]"> > blah > blah > </xsl:template> > > <xsl:template match="a[contains(../@attr,'datasource2'])"> > blah > blah > </xsl:template> > > entails 20,000 predicate comparisons for 10k nodes. > > To bring it down to 10k (ignoring any possible optimisations) I'd have to write > > <xsl:template match="a[contains(../@attr,'datasource1')]"> > blah > blah > </xsl:template> > > <xsl:template match="a"> > blah > blah > </xsl:template> > > and only if there are only 2 cases. > > So I should try that experiment as well. Some code! I like it. Another thing to consider: Saxon's TinyTree stores the parent pointer on the last sibling which means a parent axis traversal means walking all the siblings first, which for very large flat trees can be 'expensive' (MK please correct me if this 10 year old information is wrong) With that in mind, to avoid the parent axis you could do the contains(@attr, 'nnnnnn') check in the parent, and pass the result as a param - obviously you need an enum type result rather than just a boolean. -- Andrew Welch http://andrewjwelch.com |
From: Michael Kay <mike@sa...> - 2014-01-31 12:59:28
|
> > Another thing to consider: Saxon's TinyTree stores the parent pointer > on the last sibling which means a parent axis traversal means walking > all the siblings first, which for very large flat trees can be > 'expensive' (MK please correct me if this 10 year old information is > wrong) > Yes, it's wrong. Or at least, oversimplified. Firstly, if a node is reached by downward selection, then Saxon remembers the parent of the node and uses that information to get back up. Secondly, for many years the TinyTree has included sparse parent pointers in the list of siblings. These are inserted after every 10 child nodes. So the longest search necessary to find the parent is ten steps (which are themselves very fast). What is true, however, is that when you have multiple match patterns that include common expressions in their predicates, those expressions will be evaluated more than once. Michael Kay Saxonica |
From: Ihe Onwuka <ihe.onwuka@gm...> - 2014-01-31 11:57:38
|
On Fri, Jan 31, 2014 at 11:42 AM, Andrew Welch <andrew.j.welch@...> wrote: > On 31 January 2014 11:18, Ihe Onwuka <ihe.onwuka@...> wrote: >> Actually this >> >> <xsl:template match="a[contains(../@attr,'datasource1')]"> >> blah >> blah >> </xsl:template> >> >> <xsl:template match="a[contains(../@attr,'datasource2'])"> >> blah >> blah >> </xsl:template> >> >> entails 20,000 predicate comparisons for 10k nodes. >> >> To bring it down to 10k (ignoring any possible optimisations) I'd have to write >> >> <xsl:template match="a[contains(../@attr,'datasource1')]"> >> blah >> blah >> </xsl:template> >> >> <xsl:template match="a"> >> blah >> blah >> </xsl:template> >> >> and only if there are only 2 cases. >> >> So I should try that experiment as well. > > Some code! I like it. > Same code that was in the original post. > Another thing to consider: Saxon's TinyTree stores the parent pointer > on the last sibling which means a parent axis traversal means walking > all the siblings first, which for very large flat trees can be > 'expensive' (MK please correct me if this 10 year old information is > wrong) > > With that in mind, to avoid the parent axis you could do the > contains(@attr, 'nnnnnn') check in the parent, Same solution that was in my 2nd post and that came with code too. I'll repeat it. Giving it further thought I think this is a case for a pull processing. <xsl:template match="onTheParentOFA"> <xsl:if test="@attr eq 'datasource1'"> <xsl:for-each select="a"> etc </xsl:for-each> </xsl:if> <xsl:if test="@attr eq 'datasource2'"> <xsl:for-each select="a"> etc </xsl:for-each> </xsl:if> </xsl:template> > and pass the result as > a param - obviously you need an enum type result rather than just a > boolean. > Never used enum types so I don't know why you think that's obvious but anything you pass still has to be checked once for each child node so I don't see how it improves on the for-each solution. I don't feel a need to argue about it further though. |
From: Andrew Welch <andrew.j.welch@gm...> - 2014-01-31 12:09:57
|
>> With that in mind, to avoid the parent axis you could do the >> contains(@attr, 'nnnnnn') check in the parent, > > Same solution that was in my 2nd post and that came with code too. > I'll repeat it. Sorry I must have missed that. > Giving it further thought I think this is a case for a pull processing. > > <xsl:template match="onTheParentOFA"> > <xsl:if test="@attr eq 'datasource1'"> > <xsl:for-each select="a"> > etc > </xsl:for-each> > </xsl:if> > <xsl:if test="@attr eq 'datasource2'"> > <xsl:for-each select="a"> > etc > </xsl:for-each> > </xsl:if> > </xsl:template> In general always aim for a template based solution, as it's keeps your xslt open for extension. Also, the above will change document order, and you'd want a choose/when rather than an xsl:if >> and pass the result as >> a param - obviously you need an enum type result rather than just a >> boolean. >> > > Never used enum types so I don't know why you think that's obvious but > anything you pass still has to be checked once for each child node so > I don't see how it improves on the for-each solution. The benefit is avoiding the parent axis traversal, and doing the contains() fewer times. The 'enum type solution' is because the param would need to cover 3 possibilities. > I don't feel a need to argue about it further though. Yes I don't know why I'm bothering to write this. -- Andrew Welch http://andrewjwelch.com |
From: Michael Kay <mike@sa...> - 2014-01-31 13:05:30
|
>>> Actually this >>> >>> <xsl:template match="a[contains(../@attr,'datasource1')]"> >>> blah >>> blah >>> </xsl:template> >>> >>> <xsl:template match="a[contains(../@attr,'datasource2'])"> >>> blah >>> blah >>> </xsl:template> >>> > > <xsl:template match="onTheParentOFA"> > <xsl:if test="@attr eq 'datasource1'"> > <xsl:for-each select="a"> > etc > </xsl:for-each> > </xsl:if> > <xsl:if test="@attr eq 'datasource2'"> > <xsl:for-each select="a"> > etc > </xsl:for-each> > </xsl:if> > </xsl:template> Are you using contains() to mean "eq"? You seem to be using them interchangeably. They don't give the same answer, and contains() is much more expensive. If you're going to move to pull-style, you want to use an xsl:choose, because the conditions are mutually exclusive. When you do that, Saxon-EE will optimize <xsl:choose> <xsl:when test="A eq 'aaa''"> .. <xsl:when test="A eq 'bbb'"> .. into a hash lookup. Michael Kay Saxonica |
From: Ihe Onwuka <ihe.onwuka@gm...> - 2014-01-31 13:14:21
|
The actual code would have used contains but at the expense of robustness (not convinced it's a trade I'd want to make) can be changed to use eq and the full string (rather than contains and part of it). I was focusing on the number of comparisons rather than the nature of them. I do not have Saxon-EE but didn't know about the optimisation you mentioned. I never want to use pull but this way does prevent the wasted repeated comparisons. On Fri, Jan 31, 2014 at 1:05 PM, Michael Kay <mike@...> wrote: > >>>> Actually this >>>> >>>> <xsl:template match="a[contains(../@attr,'datasource1')]"> >>>> blah >>>> blah >>>> </xsl:template> >>>> >>>> <xsl:template match="a[contains(../@attr,'datasource2'])"> >>>> blah >>>> blah >>>> </xsl:template> >>>> >> >> <xsl:template match="onTheParentOFA"> >> <xsl:if test="@attr eq 'datasource1'"> >> <xsl:for-each select="a"> >> etc >> </xsl:for-each> >> </xsl:if> >> <xsl:if test="@attr eq 'datasource2'"> >> <xsl:for-each select="a"> >> etc >> </xsl:for-each> >> </xsl:if> >> </xsl:template> > > Are you using contains() to mean "eq"? You seem to be using them interchangeably. They don't give the same answer, and contains() is much more expensive. > > If you're going to move to pull-style, you want to use an xsl:choose, because the conditions are mutually exclusive. When you do that, Saxon-EE will optimize > > <xsl:choose> > <xsl:when test="A eq 'aaa''"> > .. > <xsl:when test="A eq 'bbb'"> > .. > > into a hash lookup. > > Michael Kay > Saxonica > > |
From: Ihe Onwuka <ihe.onwuka@gm...> - 2014-01-31 13:57:00
|
In fact with the pull stylesheet since all comparisons are only done once, would definitely leave it as contains , the if/choose penalty is also insignificant but that was a useful thing thing to learn. On Fri, Jan 31, 2014 at 1:05 PM, Michael Kay <mike@...> wrote: > >>>> Actually this >>>> >>>> <xsl:template match="a[contains(../@attr,'datasource1')]"> >>>> blah >>>> blah >>>> </xsl:template> >>>> >>>> <xsl:template match="a[contains(../@attr,'datasource2'])"> >>>> blah >>>> blah >>>> </xsl:template> >>>> >> >> <xsl:template match="onTheParentOFA"> >> <xsl:if test="@attr eq 'datasource1'"> >> <xsl:for-each select="a"> >> etc >> </xsl:for-each> >> </xsl:if> >> <xsl:if test="@attr eq 'datasource2'"> >> <xsl:for-each select="a"> >> etc >> </xsl:for-each> >> </xsl:if> >> </xsl:template> > > Are you using contains() to mean "eq"? You seem to be using them interchangeably. They don't give the same answer, and contains() is much more expensive. > > If you're going to move to pull-style, you want to use an xsl:choose, because the conditions are mutually exclusive. When you do that, Saxon-EE will optimize > > <xsl:choose> > <xsl:when test="A eq 'aaa''"> > .. > <xsl:when test="A eq 'bbb'"> > .. > > into a hash lookup. > > Michael Kay > Saxonica > > |
From: Dimitre Novatchev <dnovatchev@gm...> - 2014-01-31 15:18:24
|
On Fri, Jan 31, 2014 at 1:43 AM, Ihe Onwuka <ihe.onwuka@...> wrote: > If your objective in answering is to give someone code and the > question doesn't give you opportunity to do that then it's always an > option not to answer. I was pointing not that this specific question didn't give opportunity to answer -- but that it would force people to *guess* what actually is being asked. Please, think about saving lots of your time (and lots of time of lots of other people) by asking more precise, unambiguous questions. An interesting, beneficial side effect of trying to make a question precise is that often doing so helps the asker find the answer. Since last night (PSD) I haven't seen any more precise formulation of the question (and the length of the thread is a proof of this). -- Cheers, Dimitre Novatchev --------------------------------------- Truly great madness cannot be achieved without significant intelligence. --------------------------------------- To invent, you need a good imagination and a pile of junk ------------------------------------- Never fight an inanimate object ------------------------------------- To avoid situations in which you might make mistakes may be the biggest mistake of all ------------------------------------ Quality means doing it right when no one is looking. ------------------------------------- You've achieved success in your field when you don't know whether what you're doing is work or play ------------------------------------- To achieve the impossible dream, try going to sleep. ------------------------------------- Facts do not cease to exist because they are ignored. ------------------------------------- Typing monkeys will write all Shakespeare's works in 200yrs.Will they write all patents, too? :) ------------------------------------- I finally figured out the only reason to be alive is to enjoy it. |
From: Ihe Onwuka <ihe.onwuka@gm...> - 2014-01-31 15:32:34
|
I always appreciate your input Dimitre but I am satisfied with the clarity of the question asked and pleased with the answers and the direction the thread took. If someone responds without reading the original post then threads are liable to get longer than necessary. On Fri, Jan 31, 2014 at 3:17 PM, Dimitre Novatchev <dnovatchev@...> wrote: > On Fri, Jan 31, 2014 at 1:43 AM, Ihe Onwuka <ihe.onwuka@...> wrote: >> If your objective in answering is to give someone code and the >> question doesn't give you opportunity to do that then it's always an >> option not to answer. > > I was pointing not that this specific question didn't give opportunity > to answer -- but that it would force people to *guess* what actually > is being asked. > > Please, think about saving lots of your time (and lots of time of lots > of other people) by asking more precise, unambiguous questions. > > An interesting, beneficial side effect of trying to make a question > precise is that often doing so helps the asker find the answer. > > Since last night (PSD) I haven't seen any more precise formulation of > the question (and the length of the thread is a proof of this). > > -- > Cheers, > Dimitre Novatchev > --------------------------------------- > Truly great madness cannot be achieved without significant intelligence. > --------------------------------------- > To invent, you need a good imagination and a pile of junk > ------------------------------------- > Never fight an inanimate object > ------------------------------------- > To avoid situations in which you might make mistakes may be the > biggest mistake of all > ------------------------------------ > Quality means doing it right when no one is looking. > ------------------------------------- > You've achieved success in your field when you don't know whether what > you're doing is work or play > ------------------------------------- > To achieve the impossible dream, try going to sleep. > ------------------------------------- > Facts do not cease to exist because they are ignored. > ------------------------------------- > Typing monkeys will write all Shakespeare's works in 200yrs.Will they > write all patents, too? :) > ------------------------------------- > I finally figured out the only reason to be alive is to enjoy it. |
From: Tony Lavinio <alavinio@gm...> - 2014-02-01 03:22:20
Attachments:
Message as HTML
|
Another part of the reason that we care so much for the quality of the questions is that this forum, and others like it, become a record for others in the future looking for answers. So a well-written question and a healthy discussion of potential solutions can serve as a gift to future developers. Many original posters in the end post what the final solution was, as a way of saying "thank you" to the community. Some might construe it selfish if the questioner asks the bare minimum to get an answer, and then abruptly ends the conversation with "Thanks, but I got it. See ya later." By your own admission, posts from Dmitri in the past have helped you, but you declined his request just that way. Perhaps you could have used this opportunity to return the favor to him. On Fri, Jan 31, 2014 at 10:32 AM, Ihe Onwuka <ihe.onwuka@...> wrote: > I always appreciate your input Dimitre but I am satisfied with the > clarity of the question asked and pleased with the answers and the > direction the thread took. > > If someone responds without reading the original post then threads are > liable to get longer than necessary. > > > > On Fri, Jan 31, 2014 at 3:17 PM, Dimitre Novatchev <dnovatchev@...> > wrote: > > On Fri, Jan 31, 2014 at 1:43 AM, Ihe Onwuka <ihe.onwuka@...> > wrote: > >> If your objective in answering is to give someone code and the > >> question doesn't give you opportunity to do that then it's always an > >> option not to answer. > > > > I was pointing not that this specific question didn't give opportunity > > to answer -- but that it would force people to *guess* what actually > > is being asked. > > > > Please, think about saving lots of your time (and lots of time of lots > > of other people) by asking more precise, unambiguous questions. > > > > An interesting, beneficial side effect of trying to make a question > > precise is that often doing so helps the asker find the answer. > > > > Since last night (PSD) I haven't seen any more precise formulation of > > the question (and the length of the thread is a proof of this). > > > > -- > > Cheers, > > Dimitre Novatchev > > --------------------------------------- > > Truly great madness cannot be achieved without significant intelligence. > > --------------------------------------- > > To invent, you need a good imagination and a pile of junk > > ------------------------------------- > > Never fight an inanimate object > > ------------------------------------- > > To avoid situations in which you might make mistakes may be the > > biggest mistake of all > > ------------------------------------ > > Quality means doing it right when no one is looking. > > ------------------------------------- > > You've achieved success in your field when you don't know whether what > > you're doing is work or play > > ------------------------------------- > > To achieve the impossible dream, try going to sleep. > > ------------------------------------- > > Facts do not cease to exist because they are ignored. > > ------------------------------------- > > Typing monkeys will write all Shakespeare's works in 200yrs.Will they > > write all patents, too? :) > > ------------------------------------- > > I finally figured out the only reason to be alive is to enjoy it. > > > ------------------------------------------------------------------------------ > WatchGuard Dimension instantly turns raw network data into actionable > security intelligence. It gives you real-time visual feedback on key > security issues and trends. Skip the complicated setup - simply import > a virtual appliance and go from zero to informed in seconds. > > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > _______________________________________________ > saxon-help mailing list archived at http://saxon.markmail.org/ > saxon-help@... > https://lists.sourceforge.net/lists/listinfo/saxon-help > -- Tony Lavinio DataDirect Technologies alavinio@... High-performance XML Processor: DataDirect XQuery http://www.xquery.com/ EDI/Flat File<->XML Converters (Java|.Net) http://www.xmlconverters.com/ |
From: Ihe Onwuka <ihe.onwuka@gm...> - 2014-02-01 05:07:30
|
There was nothing wrong with the question. A useful discussion has ensued on this thread without contribution from Dimitre. I will contribute further by running the experiment that I promised Mike Kay. On Sat, Feb 1, 2014 at 3:21 AM, Tony Lavinio <alavinio@...> wrote: > Another part of the reason that we care so much for the quality of the > questions is that this forum, and others like it, become a record for others > in the future looking for answers. So a well-written question and a healthy > discussion of potential solutions can serve as a gift to future developers. > > Many original posters in the end post what the final solution was, as a way > of saying "thank you" to the community. > > Some might construe it selfish if the questioner asks the bare minimum to > get an answer, and then abruptly ends the conversation with "Thanks, but I > got it. See ya later." By your own admission, posts from Dmitri in the past > have helped you, but you declined his request just that way. Perhaps you > could have used this opportunity to return the favor to him. > > > On Fri, Jan 31, 2014 at 10:32 AM, Ihe Onwuka <ihe.onwuka@...> wrote: >> >> I always appreciate your input Dimitre but I am satisfied with the >> clarity of the question asked and pleased with the answers and the >> direction the thread took. >> >> If someone responds without reading the original post then threads are >> liable to get longer than necessary. >> >> >> >> On Fri, Jan 31, 2014 at 3:17 PM, Dimitre Novatchev <dnovatchev@...> >> wrote: >> > On Fri, Jan 31, 2014 at 1:43 AM, Ihe Onwuka <ihe.onwuka@...> >> > wrote: >> >> If your objective in answering is to give someone code and the >> >> question doesn't give you opportunity to do that then it's always an >> >> option not to answer. >> > >> > I was pointing not that this specific question didn't give opportunity >> > to answer -- but that it would force people to *guess* what actually >> > is being asked. >> > >> > Please, think about saving lots of your time (and lots of time of lots >> > of other people) by asking more precise, unambiguous questions. >> > >> > An interesting, beneficial side effect of trying to make a question >> > precise is that often doing so helps the asker find the answer. >> > >> > Since last night (PSD) I haven't seen any more precise formulation of >> > the question (and the length of the thread is a proof of this). >> > >> > -- >> > Cheers, >> > Dimitre Novatchev >> > --------------------------------------- >> > Truly great madness cannot be achieved without significant intelligence. >> > --------------------------------------- >> > To invent, you need a good imagination and a pile of junk >> > ------------------------------------- >> > Never fight an inanimate object >> > ------------------------------------- >> > To avoid situations in which you might make mistakes may be the >> > biggest mistake of all >> > ------------------------------------ >> > Quality means doing it right when no one is looking. >> > ------------------------------------- >> > You've achieved success in your field when you don't know whether what >> > you're doing is work or play >> > ------------------------------------- >> > To achieve the impossible dream, try going to sleep. >> > ------------------------------------- >> > Facts do not cease to exist because they are ignored. >> > ------------------------------------- >> > Typing monkeys will write all Shakespeare's works in 200yrs.Will they >> > write all patents, too? :) >> > ------------------------------------- >> > I finally figured out the only reason to be alive is to enjoy it. >> >> >> ------------------------------------------------------------------------------ >> WatchGuard Dimension instantly turns raw network data into actionable >> security intelligence. It gives you real-time visual feedback on key >> security issues and trends. Skip the complicated setup - simply import >> a virtual appliance and go from zero to informed in seconds. >> >> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >> _______________________________________________ >> saxon-help mailing list archived at http://saxon.markmail.org/ >> saxon-help@... >> https://lists.sourceforge.net/lists/listinfo/saxon-help > > > > > -- > Tony Lavinio DataDirect Technologies alavinio@... > High-performance XML Processor: DataDirect XQuery http://www.xquery.com/ > EDI/Flat File<->XML Converters (Java|.Net) http://www.xmlconverters.com/ > ------------------------------------------------------------------------------ > WatchGuard Dimension instantly turns raw network data into actionable > security intelligence. It gives you real-time visual feedback on key > security issues and trends. Skip the complicated setup - simply import > a virtual appliance and go from zero to informed in seconds. > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > _______________________________________________ > saxon-help mailing list archived at http://saxon.markmail.org/ > saxon-help@... > https://lists.sourceforge.net/lists/listinfo/saxon-help |