<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Strata Blog</title>
	<link>http://www.kirix.com/stratablog</link>
	<description>Application Spotlight</description>
	<pubDate>Thu, 14 Aug 2008 22:48:04 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>Exploring Calculated Fields: Part 2 - Extracting Data Values with STRPART()</title>
		<link>http://feeds.kirix.com/~r/stratablog/~3/365175327/exploring-calculated-fields-part-2-extracting-data-values-with-strpart</link>
		<comments>http://www.kirix.com/stratablog/exploring-calculated-fields-part-2-extracting-data-values-with-strpart#comments</comments>
		<pubDate>Thu, 14 Aug 2008 22:45:46 +0000</pubDate>
		<dc:creator>Ken Kaczmarek</dc:creator>
		
		<category><![CDATA[calculated fields]]></category>

		<category><![CDATA[formulas]]></category>

		<guid isPermaLink="false">http://www.kirix.com/stratablog/exploring-calculated-fields-part-2-extracting-data-values-with-strpart</guid>
		<description><![CDATA[In part 1 of this series, we looked at the basics of using calculated fields, including referencing fields and using functions.
In this installment, we&#8217;ll look at how you can use calculated fields to extract data values from a column with &#8220;dirty&#8221; data.  This happens more than one might think:  if you’ve ever “cleaned” a list [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.kirix.com/stratablog/exploring-calculated-fields-part-i-the-basics" title="calculated fields, part I">In part 1 of this series</a>, we looked at the basics of using calculated fields, including referencing fields and using functions.</p>
<p>In this installment, we&#8217;ll look at how you can use <a href="http://www.kirix.com/help/docs/creating_calculations.htm" title="Calculated Fields">calculated fields</a> to extract data values from a column with &#8220;dirty&#8221; data.  This happens more than one might think:  if you’ve ever “cleaned” a list of contact information or migrated databases, you know that you often have to take a column and break it up into multiple parts.  Calculated fields make this task very easy.</p>
<p>Let’s look at an example.  Suppose we have a table that contains raw contact information smashed together in a single field:</p>
<p><img src="http://www.kirix.com/stratablog/files/2008/08/calcfield_ii_1.png" alt="Calc Fields, Part II - img 1" /></p>
<p>Let&#8217;s extract each of these parts &#8212; first name, last name and email address &#8212; from the single column into multiple columns.  We&#8217;ll do this by using a calculated field with a function that parses the string, based on a delimiter (such as a space), and returns the relevant portion of the string. <a href="http://www.kirix.com/stratablog/exploring-calculated-fields-part-2-extracting-data-values-with-strpart#more-41" class="more-link">(more&#8230;)</a></p>
<img src="http://feeds.kirix.com/~r/stratablog/~4/365175327" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kirix.com/stratablog/exploring-calculated-fields-part-2-extracting-data-values-with-strpart/feed</wfw:commentRss>
		<feedburner:origLink>http://www.kirix.com/stratablog/exploring-calculated-fields-part-2-extracting-data-values-with-strpart</feedburner:origLink></item>
		<item>
		<title>Exploring Calculated Fields:  Part I - The Basics</title>
		<link>http://feeds.kirix.com/~r/stratablog/~3/357839305/exploring-calculated-fields-part-i-the-basics</link>
		<comments>http://www.kirix.com/stratablog/exploring-calculated-fields-part-i-the-basics#comments</comments>
		<pubDate>Wed, 06 Aug 2008 22:58:24 +0000</pubDate>
		<dc:creator>Ken Kaczmarek</dc:creator>
		
		<category><![CDATA[calculated fields]]></category>

		<category><![CDATA[formulas]]></category>

		<guid isPermaLink="false">http://www.kirix.com/stratablog/exploring-calculated-fields-part-i-the-basics</guid>
		<description><![CDATA[Calculated fields are one of the cornerstones of data analysis.  It&#8217;s just one of those tools that you end up using again and again.  And, if you can master the functions and formulas and make them do your bidding, you&#8217;ll be well on your way to becoming a data Jedi.  This article begins a multi-part [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.kirix.com/stratablog/files/2008/08/calculated-field-thumb.png" alt="Screenshot Thumbnail - Calculated Field" align="left" border="0" />Calculated fields are one of the cornerstones of data analysis.  It&#8217;s just one of those tools that you end up using again and again.  And, if you can master the functions and formulas and make them do your bidding, you&#8217;ll be well on your way to becoming a data <a href="http://en.wikipedia.org/wiki/Jedi" title="Wikipedia - Jedi">Jedi</a>.  This article begins a multi-part blog series on using calculated fields in your projects.</p>
<p>Calculated fields are nothing more than a way to apply a formula to existing columns or fields.  (As a quick aside, spreadsheets use the terms row/column, whereas databases use the terms record/field &#8212; there are some technical differences, but for our purposes here, they are very similar).  A poor man&#8217;s calculated field is found in a spreadsheet; you create a formula in a blank cell and then drag the cell down to apply it to the other rows.  The more traditional calculated field is found in the database world.  Here you create a new field that encapsulates a calculation and then you run it across the entire table.</p>
<p>With <a href="http://www.kirix.com/" title="Kirix Strata Home">Kirix Strata</a>, you get a calculated field like that found in the database world, but with the dynamic/instant properties you get in the spreadsheet world.  So, when you create a calculated field in Strata, you get a calculation that applies to the entire data set instantly &#8212; whether its 10 rows or 10 million.  In addition, these fields behave like regular ol&#8217; fields, so you can reference them in other calculated fields or use them in your sorts, filters, groups, relationships, queries and other operations.  Of course, the actual data can&#8217;t be edited like in a regular field, but the underlying formula can be tweaked &#8212; with the results showing up in your view in real-time.</p>
<p>Let&#8217;s create some simple examples to show how calculated fields work.  We&#8217;ll look at the <a href="http://finance.yahoo.com/q/hp?s=AAPL" title="APPL historic prices">historic stock prices of Apple Computer</a> (to try this yourself, just click the &#8220;<a href="http://ichart.finance.yahoo.com/table.csv?s=AAPL&amp;d=7&amp;e=6&amp;f=2008&amp;g=d&amp;a=8&amp;b=7&amp;c=1984&amp;ignore=.csv" title="Yahoo APPL Download to Spreadsheet">Download to Spreadsheet</a>&#8221; at the bottom of the web page and it will open up into a table in Strata):</p>
<p><img src="http://www.kirix.com/stratablog/files/2008/08/stocks_1.png" alt="APPL stock data" /></p>
<p> <a href="http://www.kirix.com/stratablog/exploring-calculated-fields-part-i-the-basics#more-32" class="more-link">(more&#8230;)</a></p>
<img src="http://feeds.kirix.com/~r/stratablog/~4/357839305" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kirix.com/stratablog/exploring-calculated-fields-part-i-the-basics/feed</wfw:commentRss>
		<feedburner:origLink>http://www.kirix.com/stratablog/exploring-calculated-fields-part-i-the-basics</feedburner:origLink></item>
		<item>
		<title>Using Relationships to Compare Lists of Emails</title>
		<link>http://feeds.kirix.com/~r/stratablog/~3/351904297/using-relationships-to-compare-lists-of-emails</link>
		<comments>http://www.kirix.com/stratablog/using-relationships-to-compare-lists-of-emails#comments</comments>
		<pubDate>Thu, 31 Jul 2008 20:41:29 +0000</pubDate>
		<dc:creator>Aaron Williams</dc:creator>
		
		<category><![CDATA[duplicates]]></category>

		<category><![CDATA[email]]></category>

		<category><![CDATA[relationships]]></category>

		<guid isPermaLink="false">http://www.kirix.com/stratablog/using-relationships-to-compare-lists-of-emails</guid>
		<description><![CDATA[In a previous article, we were concerned with identifying and removing duplicate emails within a single table.  But let&#8217;s say that email addresses are located in multiple tables &#8212; how do we find which email addresses are duplicated in both lists?
To answer this question, we have to break out one of Strata&#8217;s more powerful features [...]]]></description>
			<content:encoded><![CDATA[<p>In a previous article, we were concerned with <a href="http://www.kirix.com/stratablog/removing-or-consolidating-duplicate-email-addresses-from-website-form-data" title="Strata Blog - removing duplicated email addresses">identifying and removing duplicate emails within a single table</a>.  But let&#8217;s say that email addresses are located in multiple tables &#8212; how do we find which email addresses are duplicated in both lists?</p>
<p>To answer this question, we have to break out one of Strata&#8217;s more powerful features called <a href="http://www.kirix.com/help/docs/creating_relationships.htm" title="Kirix Strata Help - Relationships">relationships</a>.</p>
<p>In Strata, relationships allow you to match records in one table with records in another table based on a common value.  In this example, the common value is a specific email address found in both tables.  For instance, let&#8217;s suppose we have two lists of email addresses stored in two tables, email_list1 and email_list2.</p>
<p>In email_list1, we have the following values:</p>
<pre>
email_list1
--------------------
second@email.com
third@email.com
fourth@email.com
fifth@email.com
sixth@email.com
seventh@email.com</pre>
<p> <a href="http://www.kirix.com/stratablog/using-relationships-to-compare-lists-of-emails#more-26" class="more-link">(more&#8230;)</a></p>
<img src="http://feeds.kirix.com/~r/stratablog/~4/351904297" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kirix.com/stratablog/using-relationships-to-compare-lists-of-emails/feed</wfw:commentRss>
		<feedburner:origLink>http://www.kirix.com/stratablog/using-relationships-to-compare-lists-of-emails</feedburner:origLink></item>
		<item>
		<title>Updating and Replacing Values in Cells</title>
		<link>http://feeds.kirix.com/~r/stratablog/~3/339135885/updating-and-replacing-values-in-cells</link>
		<comments>http://www.kirix.com/stratablog/updating-and-replacing-values-in-cells#comments</comments>
		<pubDate>Fri, 18 Jul 2008 16:26:07 +0000</pubDate>
		<dc:creator>Ken Kaczmarek</dc:creator>
		
		<category><![CDATA[dirty data]]></category>

		<category><![CDATA[formulas]]></category>

		<category><![CDATA[replace values]]></category>

		<category><![CDATA[tips &amp; tricks]]></category>

		<guid isPermaLink="false">http://www.kirix.com/stratablog/updating-and-replacing-values-in-cells</guid>
		<description><![CDATA[We had a really good question come up in our forums regarding Strata&#8217;s ability to replace values within cells.
Bottom line, if you have a value in one field and want to auto-replace it with a different value, you can easily do this using the Update Records tool (Data &#62; Update Records&#8230;).  In a nutshell, it [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.kirix.com/stratablog/files/2008/07/tips-tricks-strata.png" alt="Strata Tips and Tricks" align="left" border=" " />We had <a href="http://www.kirix.com/forums/viewtopic.php?f=20&amp;t=633" title="Kirix Forums - Update and Replace Records">a really good question come up in our forums</a> regarding Strata&#8217;s ability to replace values within cells.</p>
<p>Bottom line, if you have a value in one field and want to auto-replace it with a different value, you can easily do this using the <a href="http://www.kirix.com/help/docs/replacing_and_updating_records.htm" title="Update and Replace documentation">Update Records tool</a> (Data &gt; Update Records&#8230;).  In a nutshell, it works like this:</p>
<ol>
<li>Choose the field you want to update.</li>
<li>Choose the new value you want to update with.</li>
<li>Create the logic to let Strata know when to update a cell and when not to update a cell.</li>
</ol>
<p>Both #2 and #3 enable you to get pretty complex, since you can use formulas in both of these areas.  The &#8220;update with&#8221; (#2) area can be particularly tricky, since it gives you the ability to transform values on the fly.</p>
<p>However, it had been a while since I&#8217;d personally gone through the various options one can use to replace records, but as I did, I quickly realized our documentation wasn&#8217;t comprehensive enough.</p>
<p><a href="http://www.kirix.com/forums/viewtopic.php?f=20&amp;t=633#p1779" title="Update and Replace Records Rules">So, I added the &#8220;replace&#8221; rules to the post here.</a></p>
<p>Hope this helps.  Now, if I only could figure out a way to replace Friday with Saturday&#8230; :)  Hope everyone has a good weekend!</p>
<p>P.S.  Got a question about Strata that you&#8217;ve been curious about?  Please post a note on the <a href="http://www.kirix.com/forums/index.php" title="Kirix Support Forums">support forums</a> and we&#8217;ll be happy to help!</p>
<img src="http://feeds.kirix.com/~r/stratablog/~4/339135885" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kirix.com/stratablog/updating-and-replacing-values-in-cells/feed</wfw:commentRss>
		<feedburner:origLink>http://www.kirix.com/stratablog/updating-and-replacing-values-in-cells</feedburner:origLink></item>
		<item>
		<title>Watching Reruns:  Strata Tutorial Videos from the Archives</title>
		<link>http://feeds.kirix.com/~r/stratablog/~3/330195332/watching-reruns-strata-tutorial-videos-from-the-archives</link>
		<comments>http://www.kirix.com/stratablog/watching-reruns-strata-tutorial-videos-from-the-archives#comments</comments>
		<pubDate>Tue, 08 Jul 2008 22:00:42 +0000</pubDate>
		<dc:creator>Ken Kaczmarek</dc:creator>
		
		<category><![CDATA[data analysis]]></category>

		<category><![CDATA[screencast]]></category>

		<category><![CDATA[tips &amp; tricks]]></category>

		<category><![CDATA[video]]></category>

		<category><![CDATA[web data]]></category>

		<category><![CDATA[web logs]]></category>

		<guid isPermaLink="false">http://www.kirix.com/stratablog/watching-reruns-strata-tutorial-videos-from-the-archives</guid>
		<description><![CDATA[It&#8217;s been almost one year since we released the beta version of Kirix Strata to the public.  During that beta cycle, we provided several videos and screencasts via our blog to emphasize different things the software could do.
Thankfully, even though the videos show the beta version in action, almost all of the content is extremely [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.kirix.com/stratablog/files/2008/07/movies.png" alt="Movie Icon" align="left" border="0" />It&#8217;s been <a href="http://www.kirix.com/blog/2007/07/17/the-birth-of-a-data-browser/" title="Kirix Strata Beta Release Blog Post">almost one year</a> since we released the beta version of Kirix Strata to the public.  During that beta cycle, we provided several videos and screencasts via our blog to emphasize different things the software could do.</p>
<p>Thankfully, even though the videos show the beta version in action, almost all of the content is extremely relevant for the final version of Strata as well.  The only variance really has to do with the user interface; we ended up moving around icons and toolbars and menu items quite a bit until we got something that seemed to work best.  Oh, and you may see the original Strata logo that we threw together for the beta.</p>
<p>So, maybe you can consider this blog post your Tivo or on-demand video page for &#8220;Season 1&#8243; of Kirix Strata.  Here are the five links, with details and highlights of each one below:</p>
<ul>
<li><a href="http://videos.kirix.com/data-and-the-web/2007-07-17-import-web-data/2007-07-17-import-web-data.htm" title="Access and Manipulate Data from the Web">Access and Manipulate Data from the Web</a></li>
<li><a href="http://videos.kirix.com/data-and-the-web/2007-08-24-apache-log-analysis/2007-08-24-apache-log-analysis.htm" title="Identify Embedded Search Terms in Apache Logs">Identify Embedded Search Terms within Apache Web Logs</a></li>
<li><a href="http://videos.kirix.com/data-and-the-web/2007-10-16-call-volume-on-map/2007-10-16-call-volume-on-map.htm" title="Manipulate Call Center Data">Manipulate Call Center Data and Create a Mapping Visualization</a></li>
<li><a href="http://videos.kirix.com/data-and-the-web/2008-01-07-beta7-report-writer/2008-01-07-beta7-report-writer.htm" title="Bookmarks, Quick Filter, Reporting">Features Overview:  Data Bookmarks, Quick Find &amp; Quick Filter and Report Writer</a></li>
<li><a href="http://videos.kirix.com/screencast/overview.html" title="Kirix Strata Overview">Combine Table from MySQL Database and HTML Table from the Web, then Create a Report</a></li>
</ul>
<p> <a href="http://www.kirix.com/stratablog/watching-reruns-strata-tutorial-videos-from-the-archives#more-18" class="more-link">(more&#8230;)</a></p>
<img src="http://feeds.kirix.com/~r/stratablog/~4/330195332" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kirix.com/stratablog/watching-reruns-strata-tutorial-videos-from-the-archives/feed</wfw:commentRss>
		<feedburner:origLink>http://www.kirix.com/stratablog/watching-reruns-strata-tutorial-videos-from-the-archives</feedburner:origLink></item>
		<item>
		<title>Checking Date Ranges Prior to Analyzing New Data Sets</title>
		<link>http://feeds.kirix.com/~r/stratablog/~3/320726842/checking-date-ranges-prior-to-analyzing-new-data-sets</link>
		<comments>http://www.kirix.com/stratablog/checking-date-ranges-prior-to-analyzing-new-data-sets#comments</comments>
		<pubDate>Thu, 26 Jun 2008 18:48:12 +0000</pubDate>
		<dc:creator>Ken Kaczmarek</dc:creator>
		
		<category><![CDATA[dates]]></category>

		<category><![CDATA[dirty data]]></category>

		<category><![CDATA[extensions]]></category>

		<guid isPermaLink="false">http://www.kirix.com/stratablog/checking-date-ranges-prior-to-analyzing-new-data-sets</guid>
		<description><![CDATA[Seasoned data analysts know that one of the first things you need to do with a new, unfamiliar data set, is to run some basic tests to determine what kind of animal you&#8217;re working with.  This is particularly important when working with larger data sets that may be amalgamated from multiple systems or appended together [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.kirix.com/stratablog/files/2008/07/date_range_image.png" alt="Date Range Extension Image" align="left" border="0" />Seasoned data analysts know that one of the first things you need to do with a new, unfamiliar data set, is to run some basic tests to determine what kind of animal you&#8217;re working with.  This is particularly important when working with larger data sets that may be amalgamated from multiple systems or appended together from archived files.</p>
<p>One of these tests is a date range check.  So, for example, if a client has shipped you all the data from the first 6 months of 2007, you want to make sure you actually have a full, complete 6 months of data to work with.  In fact, you&#8217;d like to see something like this:</p>
<p>12/2006 -  43 records<br />
01/2007 - 255 records<br />
02/2007 - 249 records<br />
03/2007 - 265 records<br />
04/2007 - 287 records<br />
05/2007 - 259 records<br />
06/2007 - 263 records<br />
07/2007 -  53 records</p>
<p>The outlying dates on the end (12/2006 and 7/2007) do provide some comfort that the data set is truly complete.  However, it is surprising how often you&#8217;ll actually see something like this:</p>
<p><font color="#ff0000">01/1999 - 196 records</font><br />
12/2006 -  43 records<br />
01/2007 - 255 records<br />
02/2007 - 249 records<br />
<font color="#ff0000">03/2007 -  96 records</font><br />
04/2007 - 287 records<br />
05/2007 - 259 records<br />
06/2007 - 263 records<br />
07/2007 -  53 records</p>
<p>This second example is a dirtier data set; there is a strange, high-count outlier from 1999 and we also see that there was a significant drop in the record count during March 2007.</p>
<p>Before you actually start performing your analysis, you&#8217;d want to investigate the items from 1999, which could just be empty records that can be ignored or, worse, could be something wrong with the formatting of these records.  The precipitous drop in March 2007 is a little more worrisome.  Was it because sales dipped drastically that month or was it because there was an error when the IT department appended this data set together?</p>
<p>Whatever the cause, it&#8217;s better to get your data in order and make sure you have a complete set before jumping into your analysis and providing that client with incorrect or skewed results.  In order to help you to do this, we&#8217;ve created a simple <a href="http://www.kirix.com/extensions/date-range-analysis/" title="Date Range Analysis">date range analysis extension</a>.  Running this utility on a new data set from the get-go can save you a lot of time and hassle later on.</p>
<p>You can <a href="http://www.kirix.com/extensions/date-range-analysis/" title="Date Range Utility">install the date range analysis extension and learn how to use it here</a>.  Got some other data utilities you&#8217;d like in your toolkit?  <a href="http://www.kirix.com/contact-us.html" title="Contact Kirix">Let us know.</a></p>
<img src="http://feeds.kirix.com/~r/stratablog/~4/320726842" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kirix.com/stratablog/checking-date-ranges-prior-to-analyzing-new-data-sets/feed</wfw:commentRss>
		<feedburner:origLink>http://www.kirix.com/stratablog/checking-date-ranges-prior-to-analyzing-new-data-sets</feedburner:origLink></item>
		<item>
		<title>Researching Problems in your Apache Web Log Activity</title>
		<link>http://feeds.kirix.com/~r/stratablog/~3/318508364/researching-problems-in-your-apache-web-log-activity</link>
		<comments>http://www.kirix.com/stratablog/researching-problems-in-your-apache-web-log-activity#comments</comments>
		<pubDate>Tue, 24 Jun 2008 01:11:51 +0000</pubDate>
		<dc:creator>Ken Kaczmarek</dc:creator>
		
		<category><![CDATA[extensions]]></category>

		<category><![CDATA[video]]></category>

		<category><![CDATA[web logs]]></category>

		<guid isPermaLink="false">http://www.kirix.com/stratablog/researching-problems-in-your-apache-web-log-activity</guid>
		<description><![CDATA[So I came into work the other day and the first thing one of our web admins says to me is, &#8220;Were we Slashdotted yesterday?&#8221;  I had just been reviewing our web activity and didn&#8217;t think that was the case.  However, I did a quick check on our Google Analytics account and, as expected, nothing [...]]]></description>
			<content:encoded><![CDATA[<p>So I came into work the other day and the first thing one of our web admins says to me is, &#8220;Were we <a href="http://en.wikipedia.org/wiki/Slashdotted" title="Wikipedia - Slashdotted">Slashdotted</a> yesterday?&#8221;  I had just been reviewing our web activity and didn&#8217;t think that was the case.  However, I did a quick check on our Google Analytics account and, as expected, nothing was out of the ordinary.</p>
<p>The reason he asked the question was that our Apache log file that day was over 10 times the size of the file from the previous day.  It sure looked like the server was getting hammered.</p>
<p>So, I decided to take a look and see what the problem was.  I pulled down the <a href="http://httpd.apache.org/" title="Apache Foundation">Apache</a> log and imported it into Strata.  See the video below for a step-by-step look:</p>
<p><a href="http://videos.kirix.com/stratablog/2008-06-23-apache-log/apache-log-2008-06-23.htm" title="Play Video" rel="mediabox 700 545"><img src="http://www.kirix.com/stratablog/files/2008/06/play_video.png" alt="Play Video" border="0" /></a></p>
<p align="center"><a href="http://www.youtube.com/watch?v=Z1lyCZecYoU" title="Strata Overview">(And here&#8217;s an embeddable YouTube version&#8230;)</a></p>
<p>Now, as an aside, if you&#8217;ve ever tried to look at a raw Apache log in Excel or notepad, you&#8217;ll see that it is space-delimited and the date/time format is <a href="http://httpd.apache.org/docs/1.3/logs.html" title="Apache Combined Log Format">not trivial to deal with</a>.  Not only that, but the sheer size of a log file makes them almost impossible to handle in a spreadsheet.  The one I was dealing with was over 100,000 records long &#8212; and that was just one day.</p>
<p>Strata can easily handle the data size, but the format is enough to give any software fits.  So, we wrote a quick <a href="http://www.kirix.com/extensions/apache-log-import/" title="Apache Log Import Extension">Apache log parser extension</a> that makes it really simple to just point the software to your Apache log and import it.  The resulting table is nicely formatted and everything is ready to go (including those pesky date fields).  <a href="http://www.kirix.com/extensions/apache-log-import/" title="Apache Log Import Extension">You can get the extension here.</a></p>
<p>So, back to the issue at hand&#8230; after I imported it, I played around with the data to identify what was causing the problem.  I grouped the IP addresses together to see if I could pinpoint a few culprits.  And, indeed, I found two:</p>
<ul>
<li>An unknown bot</li>
<li>Our own server</li>
</ul>
<p>After a little more research, I found out that the bot was searching for all kinds of non-existent URLs and was basically appending one path to another to get some really bizarre URLs:</p>
<pre>
/labs/wxaui/fileadmin/js/swfobject.js
/labs/wxaui/fileadmin/js/fileadmin/js/swfobject.js
/labs/wxaui/fileadmin/js/fileadmin/js/fileadmin/js/swfobject.js
/labs/wxaui/fileadmin/js/fileadmin/js/fileadmin/js/fileadmin/js/swfobject.js
/labs/wxaui/fileadmin/js/fileadmin/js/fileadmin/js/fileadmin/js/fileadmin/js/swfobject.js</pre>
<p>I then took a look at the records from our own server and saw that for each of these non-existent URLs, we were serving up a &#8220;Not Found&#8221; page, thus doubling the trouble this bot was causing.</p>
<p>In the end, I had our web admin look into the problem.  It turns out we were poorly formatting some of the URL paths on the site.  Most bots can handle both absolute and relative paths, but some can&#8217;t.  These bots that can&#8217;t handle the relative paths end up going a little nuts as they spider the website.  (I couldn&#8217;t find  a really nice, clean explanation of this issue via Google, but <a href="http://drupal.org/node/13148" title="Drupal - thread on relative path urls">this thread</a> is close enough for those who are interested.)</p>
<p>Anyway, it was nice to be able to just pull out Kirix Strata and, within a few minutes, figure out what the issue was.  For those of you who are interested in your web logs, give the <a href="http://www.kirix.com/extensions/apache-log-import/" title="Apache Web Log Extension">Apache Web Log import extension</a> a spin and let us know what you think.</p>
<img src="http://feeds.kirix.com/~r/stratablog/~4/318508364" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kirix.com/stratablog/researching-problems-in-your-apache-web-log-activity/feed</wfw:commentRss>
		<feedburner:origLink>http://www.kirix.com/stratablog/researching-problems-in-your-apache-web-log-activity</feedburner:origLink></item>
		<item>
		<title>Removing or Consolidating Duplicate Email Addresses from Website Form Data</title>
		<link>http://feeds.kirix.com/~r/stratablog/~3/315664786/removing-or-consolidating-duplicate-email-addresses-from-website-form-data</link>
		<comments>http://www.kirix.com/stratablog/removing-or-consolidating-duplicate-email-addresses-from-website-form-data#comments</comments>
		<pubDate>Thu, 19 Jun 2008 19:57:35 +0000</pubDate>
		<dc:creator>Aaron Williams</dc:creator>
		
		<category><![CDATA[duplicates]]></category>

		<category><![CDATA[email]]></category>

		<category><![CDATA[groups]]></category>

		<category><![CDATA[web data]]></category>

		<guid isPermaLink="false">http://www.kirix.com/stratablog/removing-or-consolidating-duplicate-email-addresses-from-website-form-data</guid>
		<description><![CDATA[If you have text entry forms on your website, you probably have data with duplicate email addresses.  These duplicates can either be from data entered twice into the same form or are duplicates from merging data from multiple applications/forms.
So, two questions arise:

How do you identify these duplicates?
How do you either remove them or group [...]]]></description>
			<content:encoded><![CDATA[<p>If you have text entry forms on your website, you probably have data with duplicate email addresses.  These duplicates can either be from data entered twice into the same form or are duplicates from merging data from multiple applications/forms.</p>
<p>So, two questions arise:</p>
<ol>
<li>How do you identify these duplicates?</li>
<li>How do you either remove them or group them together to track the related information?</li>
</ol>
<p>Using Kirix Strata&#8217;s grouping functionality, it&#8217;s actually pretty easy.  You can quickly identify duplicates from your website data and then either remove the duplicates or consolidate the different records into groups of related records.  Let’s look at the problem more closely.</p>
<p>Suppose you have a web page that asks your visitors for the following feedback information:</p>
<p><img src="http://www.kirix.com/stratablog/files/2008/06/dupformdata1.png" alt="Dupformdata1" border="0" /></p>
<p>Visitors will enter their information, including their email address, which allows you to respond to them.  However, if the visitor stops by again in the future, you&#8217;ll have multiple records from the same person and therefore duplicated email addresses:</p>
<p><img src="http://www.kirix.com/stratablog/files/2008/06/dupformdata2.png" alt="Screenshot - Dupform2" /></p>
<p> <a href="http://www.kirix.com/stratablog/removing-or-consolidating-duplicate-email-addresses-from-website-form-data#more-8" class="more-link">(more&#8230;)</a></p>
<img src="http://feeds.kirix.com/~r/stratablog/~4/315664786" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kirix.com/stratablog/removing-or-consolidating-duplicate-email-addresses-from-website-form-data/feed</wfw:commentRss>
		<feedburner:origLink>http://www.kirix.com/stratablog/removing-or-consolidating-duplicate-email-addresses-from-website-form-data</feedburner:origLink></item>
		<item>
		<title>Concatenate Columns Into a Single Field</title>
		<link>http://feeds.kirix.com/~r/stratablog/~3/314734676/concatenate-columns-into-a-single-field</link>
		<comments>http://www.kirix.com/stratablog/concatenate-columns-into-a-single-field#comments</comments>
		<pubDate>Wed, 18 Jun 2008 16:23:58 +0000</pubDate>
		<dc:creator>Ken Kaczmarek</dc:creator>
		
		<category><![CDATA[formulas]]></category>

		<category><![CDATA[tips &amp; tricks]]></category>

		<guid isPermaLink="false">http://www.kirix.com/stratablog/concatenate-columns-into-a-single-field</guid>
		<description><![CDATA[We&#8217;re just warming up the Strata blog right now, but we going to be adding various tips and tricks on how to use the software more effectively.  One aspect of this will be to discuss general support questions we receive that have relevance to many users.
So, along those lines, we received a question the other [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.kirix.com/stratablog/files/2008/07/tips-tricks-strata.png" alt="Strata Tips and Tricks" align="left" border="0" />We&#8217;re just warming up the Strata blog right now, but we going to be adding various tips and tricks on how to use the software more effectively.  One aspect of this will be to discuss general support questions we receive that have relevance to many users.</p>
<p>So, along those lines, we received a question the other day about <a href="http://dictionary.reference.com/browse/Concatenate" title="Dictionary - concatenate">concatenating</a> fields together into a single string.  Excel has a CONCATENATE function that will let you take two non-numeric columns and place them together.  Here&#8217;s an example from the Excel help manual:</p>
<pre>CONCATENATE("Total ", "Value") equals "Total Value"</pre>
<p>Strata makes this even easier, since no function is required to concatenate or join strings together.  You simply need to add them together:</p>
<pre>"Total " + "Value"  equals "Total Value"</pre>
<p>So, say you had a table with a first name field (&#8221;firstname&#8221;) and a last name field (&#8221;lastname&#8221;) and wanted to put these together.  You would <a href="http://www.kirix.com/help/docs/creating_and_managing_calculat.htm" title="Insert New Calculated Field">insert a new calculated field</a> and enter the following formula:</p>
<pre>firstname + lastname</pre>
<p>So, if a record had &#8220;John&#8221; in the firstname field and &#8220;Smith&#8221; in the lastname field, you would get a result of:</p>
<pre>JohnSmith</pre>
<p>The spacing is obviously problematic here, so we just need to add in a space for formatting purposes:</p>
<pre>firstname + " " + lastname</pre>
<p>which would result in:</p>
<pre>John Smith</pre>
<p><img src="http://www.kirix.com/stratablog/files/2008/06/concatenate_example.png" alt="Concatenate Fields" /></p>
<p>So, to sum up, no concatenate function is necessary when using Strata&#8230; just add your strings together.</p>
<img src="http://feeds.kirix.com/~r/stratablog/~4/314734676" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kirix.com/stratablog/concatenate-columns-into-a-single-field/feed</wfw:commentRss>
		<feedburner:origLink>http://www.kirix.com/stratablog/concatenate-columns-into-a-single-field</feedburner:origLink></item>
		<item>
		<title>Hello, World Wide Web</title>
		<link>http://feeds.kirix.com/~r/stratablog/~3/314001043/hello-world-wide-web</link>
		<comments>http://www.kirix.com/stratablog/hello-world-wide-web#comments</comments>
		<pubDate>Tue, 17 Jun 2008 18:47:06 +0000</pubDate>
		<dc:creator>Nate Williams</dc:creator>
		
		<category><![CDATA[extensions]]></category>

		<category><![CDATA[news/announcements]]></category>

		<guid isPermaLink="false">http://www.kirix.com/stratablog/hello-world-wide-web</guid>
		<description><![CDATA[Welcome to the first post on the new Strata blog.  This is the place where we&#8217;ll be sharing the latest news about Strata, as well as tips and tricks, case studies, highlights of interesting extensions and various examples.
To kick things off, we&#8217;re happy to let everyone know that we&#8217;ve just created a new Extensions [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to the first post on the new Strata blog.  This is the place where we&#8217;ll be sharing the latest news about Strata, as well as tips and tricks, case studies, highlights of interesting extensions and various examples.</p>
<p>To kick things off, we&#8217;re happy to let everyone know that we&#8217;ve just created a <a href="http://www.kirix.com/extensions/" title="Kirix Extensions">new Extensions section</a>.  The Strata Extensions section contains an <a href="http://www.kirix.com/extensions/" title="Strata Extensions Library">Extension Library</a>, where we&#8217;ll be adding our own creations as well as applications developed by the community.  It also contains some help for developers, including an <a href="http://www.kirix.com/extensions/extension-wizard.html" title="Strata Extension Wizard">Extension Wizard</a>, which creates extension packaging and sample scripts, and a <a href="http://www.kirix.com/extensions/developer-resources.html" title="Strata Developer Resources">Developer Resources</a> section, which provides useful information about developing scripts/extensions in Strata.</p>
<p>For our first extension, we thought it would be fitting to have Strata politely introduce itself with the classic phrase, &#8220;Hello, World&#8221;.   Rather than just display the text &#8220;Hello, World&#8221;, though, we&#8217;ve added bit of international flavor and web connectivity &#8212; you can search Google, Yahoo, and Wikipedia for this phrase in several languages.   It&#8217;s called &#8220;Hello, World Wide Web.&#8221;</p>
<p><a href="http://www.kirix.com/stratablog/files/2008/06/hello_world_screenshot.png" title="Hello, World Wide Web"><img src="http://www.kirix.com/stratablog/files/2008/06/hello_world_screenshot.png" alt="Hello, World Wide Web" border="0" /></a></p>
<p>As a sample application, &#8220;Hello, World Wide Web&#8221; provides a basic example of some of the hybrid web/desktop options available with Strata&#8217;s interface controls and highlights how you can embed a browser control in a form with just a few lines of code.</p>
<p>To see this, you&#8217;ll just need to take a peek at the code:</p>
<ol>
<li>Download the <a href="http://www.kirix.com/extensions/hello-world/" title="Hello World Wide Web">Hello World Wide Web extension</a> from the Extension Library.</li>
<li>Convert it to a <a href="http://en.wikipedia.org/wiki/ZIP_(file_format)" title="ZIP file">ZIP file</a> by changing the file name from &#8220;hello_world_wide_web.kxt&#8221; to &#8220;hello_world_wide_web.zip&#8221;.</li>
<li>Extract the contents of the ZIP file to a new folder.</li>
<li>In Strata, select Create Connection from the File menu and click the Browse button to find and select this folder and it will appear as a connected folder in the Project Panel.</li>
<li>Expand the folder in the Project Panel and double-click the &#8220;hello_world_wide_web_form.js&#8221; file.</li>
</ol>
<p>On line 54 is the command that creates the browser control, and on line 73 is the spot where this control gets added to the form.   Of course, if you&#8217;re not familiar with <a href="http://en.wikipedia.org/wiki/Javascript" title="JavaScript">JavaScript</a> already, this might look a bit cryptic (they call it &#8220;code&#8221; for a reason).  But overall, it&#8217;s kind of nice to be able to include a web browser in custom application with just two lines.</p>
<p>If you would like to explore the code for this extension a bit more, you can get variations of this extension as well as other individual script components from the <a href="http://www.kirix.com/extensions/extension-wizard.html" title="Strata Extension Wizard">Extension Wizard</a>.   This wizard gives you a quick way to grab smaller chunks of code to play around with or generate simple templates for different functions that you can modify or build upon.</p>
<p>We hope you have fun playing around with &#8220;Hello, World Wide Web&#8221;.   If you would like to improve on it and share the results with us, please do so.   We&#8217;d love to hear from you.   You can submit new extensions or any improvements via our <a href="http://www.kirix.com/extensions/submit-an-extension.html" title="Extension Submission Form">extension submission form</a>.</p>
<p>As for future versions of &#8220;Hello, World Wide Web&#8221;, we certainly would welcome having more language options.  Heck, we&#8217;d even take languages that don&#8217;t exist in Wikipedia today &#8212; how does one say &#8220;Hello, World&#8221; in Klingon?</p>
<img src="http://feeds.kirix.com/~r/stratablog/~4/314001043" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kirix.com/stratablog/hello-world-wide-web/feed</wfw:commentRss>
		<feedburner:origLink>http://www.kirix.com/stratablog/hello-world-wide-web</feedburner:origLink></item>
	</channel>
</rss>
