<?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>Tommy Lacroix &#187; Social networks</title>
	<atom:link href="http://www.tommylacroix.com/category/business/social-networks/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tommylacroix.com</link>
	<description>Personal Blog</description>
	<lastBuildDate>Tue, 08 Dec 2009 18:23:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>I present you with MicroBlogBuzz</title>
		<link>http://www.tommylacroix.com/2008/09/19/i-present-you-with-microblogbuzz/</link>
		<comments>http://www.tommylacroix.com/2008/09/19/i-present-you-with-microblogbuzz/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 21:35:32 +0000</pubDate>
		<dc:creator>tlacroix</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Social networks]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[micro-blogging]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[PHP]]></category>
<category>micro-blogging</category><category>optimization</category><category>personal</category><category>php</category><category>web development</category>
		<guid isPermaLink="false">http://www.tommylacroix.com/?p=114</guid>
		<description><![CDATA[At the beginning of the week, I officially launched a little project named MicroBlogBuzz. The concept is simple: find URLs on micro-blogging platforms, and present the top blogged ones.
For those not familiar with micro-blogging, it&#8217;s pretty much like blogging, but smaller &#8212; hence the micro prefix. Micro-blogging posts are very short, 140-160 characters that is. [...]]]></description>
			<content:encoded><![CDATA[<p>At the beginning of the week, I officially launched a little project named <a title="MicroBlogBuzz, micro-blogging linking statistics" href="http://microblogbuzz.com" target="_blank">MicroBlogBuzz</a>. The concept is simple: find URLs on micro-blogging platforms, and present the top blogged ones.</p>
<p>For those not familiar with micro-blogging, it&#8217;s pretty much like blogging, but smaller &#8212; hence the micro prefix. Micro-blogging posts are very short, 140-160 characters that is. The most popular platform is <a title="Twitter" href="http://www.twitter.com" target="_blank">Twitter</a>, but new platforms are appearing, such as <a title="Pownce" href="http://pownce.com" target="_blank">Pownce</a>, <a title="Jaiku" href="http://www.jaiku.com" target="_blank">Jaiku</a> and <a title="Identica" href="http://identi.ca" target="_blank">Identica</a>. Also, this year&#8217;s <a title="TechCrunch 50" href="http://www.techcrunch50.com/">TechCrunch50</a> winner is the <a title="Yammer, the project oriented micro-blogging platform" href="http://www.yammer.com/" target="_blank">project oriented micro-blogging platform Yammer</a> (which I didn&#8217;t get to try yet).</p>
<p>Back to MicroBlogBuzz, I started this little project part time while testing various APIs, and when stumbled on <a title="TwitterBuzz" href="http://www.twitterbuzz.com">TwitterBuzz</a>, which presents the most popular links on Twitter. However, TwitterBuzz only present the domain name, which isn&#8217;t really meaningful since most micro-bloggers use <a title="URL shortener TinyURL" href="http://tinyurl.com" target="_blank">TinyURL</a> or similar services to shorten their URL. TinyURL was presented as the Top Twitter link. And I thought it was kind of stupid. So I decided to do the same thing, but to follow the HTTP redirections to get to the final URL.</p>
<p><span id="more-114"></span></p>
<p>I got surprised by the <a title="MicroBlogBuzz statistics" href="http://microblogbuzz.com/stats/" target="_blank">quantity of data that I would collect</a>. Around 1200 links every 15 minutes, and over 330,000 links and 400,000 comments in five days. I quickly ran into problems, as I built my database on InnoDB and foreign keys to keep things clean, and with this amount of data and the small server it runs on, well it can&#8217;t be clean and fast at the same time.</p>
<p>So I switched to MyISAM. But still, it wasn&#8217;t enough. And I added caching and smart HTTP headers. But still, it wasn&#8217;t enough. And I added preprocessing. And it was ok. At least for now, with my small 500 visitors per day.</p>
<p>Feel free to send me your comments and suggestions, by email, or even better, on Twitter <img src='http://www.tommylacroix.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommylacroix.com/2008/09/19/i-present-you-with-microblogbuzz/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CodeIgniter 1.6.x OpenID module</title>
		<link>http://www.tommylacroix.com/2008/06/25/codeigniter-16x-openid-module/</link>
		<comments>http://www.tommylacroix.com/2008/06/25/codeigniter-16x-openid-module/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 12:42:22 +0000</pubDate>
		<dc:creator>tlacroix</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Social networks]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[ciopenid]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[openid]]></category>
<category>authentication</category><category>ciopenid</category><category>codeigniter</category><category>openid</category><category>php</category>
		<guid isPermaLink="false">http://www.tommylacroix.com/?p=61</guid>
		<description><![CDATA[I got no IPod. I got no IPhone. But I&#8217;ve got an OpenID. I&#8217;m like a low class geek. But whatever. I&#8217;ve read a bit lately about OpenID and wanted to give it a try on one of my personal projects (CodeIgniter based, you bet).
I&#8217;ve stumbled upon Rémi Prévost &#8212; who&#8217;s blog a follow more [...]]]></description>
			<content:encoded><![CDATA[<p>I got no IPod. I got no IPhone. But I&#8217;ve got an OpenID. I&#8217;m like a low class geek. But whatever. I&#8217;ve read a bit lately about OpenID and wanted to give it a try on one of my personal projects (CodeIgniter based, you bet).</p>
<p>I&#8217;ve stumbled upon <a title="Rémi Prévost CIOpenID module" href="http://remiprevost.com/2007/10/codeigniter-openid-1a" target="_blank">Rémi Prévost &#8212; who&#8217;s blog a follow more or less consistently due to the lack of time &#8212; CIOpenID module</a>. It&#8217;s basically a CI embed of <a title="Janrain's PHP_OpenID" href="http://openidenabled.com/php-openid/" target="_blank">Janrain&#8217;s PHP_OpenID</a>.</p>
<p>His code is great and works well. But one thing I don&#8217;t like about it is that it requires a different bootstrap file (a modified version of <code>index.php</code>) and a somewhat hacked version of your typical <code>.htaccess</code> file. The reason is, CodeIgniter annihilates the <code>$_GET</code> variable during initialization, because GET queries aren&#8217;t secure (ok, this is overly simplified, but you get the idea).</p>
<p>Being who I am, and somewhat liking to reinvent the wheel during my free time, I used a different approach. Rather than using a different bootstrap file, I rather chose to use the <code>pre_system</code> hook.</p>
<p><span id="more-61"></span></p>
<p>The installation process is quite simple:</p>
<ol>
<li>Put my <code>ciopenid.php</code> library in your <code>/system/application/libraries</code> directory.</li>
<li>Create <code>/system/application/libraries/openid</code>, and unzip PHP_OpenID 2.x.x&#8217;s <code>Auth</code> directory in it.</li>
<li>Open your <code>/system/application/config/config.php</code> file, and make sure that hooks are enabled:
<pre class="code">$config['enable_hooks'] = TRUE;</pre>
</li>
<li>Open your <code>/system/application/config/hooks.php</code> file, and add the following lines:
<pre class="code">$hook['pre_system'][] = array(
   'class'    =&gt; 'ciopenid',
   'function' =&gt; 'pre_system_hook',
   'filename' =&gt; 'ciopenid.php',
   'filepath' =&gt; 'libraries',
   'params'   =&gt; null
   );</pre>
</li>
</ol>
<p>To make an authentication query to an OpenID URL in <code>$openid</code>:</p>
<pre class="code">$this-&gt;load-&gt;library('ciopenid');
try {
   $redirect_url = $this-&gt;ciopenid-&gt;authenticate($openid, site_url($this-&gt;uri-&gt;uri_string()));
   header("Location: ".$redirect_url);
} catch (Exception $e) {
   die('Error: '.$e-&gt;getMessage());
}</pre>
<p>And to get the OpenID query response:</p>
<pre class="code">$this-&gt;load-&gt;library('ciopenid');
if (isset($this-&gt;ciopenid-&gt;response)) {
   switch ($this-&gt;ciopenid-&gt;response-&gt;status) {
      case Auth_OpenID_SUCCESS:
         $openid = $this-&gt;ciopenid-&gt;response-&gt;endpoint-&gt;claimed_id;
         print 'Success: '.$openid;
         break;
      case Auth_OpenID_CANCEL:
         print 'User cancelled';
         break;
      default:
         print 'Internal error';
         break;
   }
}</pre>
<p>That&#8217;s it! Ooops, here&#8217;s the file&#8230;</p>
<p><a href="http://www.tommylacroix.com/wp-content/uploads/2008/06/ciopenid.zip"><img style="border: 0pt none;" src="http://www.tommylacroix.com/img/icons/script_code.gif" alt="PHP Source (zipped)" width="16" height="16" /></a> <a title="CIOpenID library, 1.0" href="http://www.tommylacroix.com/wp-content/uploads/2008/06/ciopenid.zip">ciopenid.zip (3k)<br />
</a></p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommylacroix.com/2008/06/25/codeigniter-16x-openid-module/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Yet another Facebook conspiracy theory</title>
		<link>http://www.tommylacroix.com/2008/03/30/yet-another-facebook-conspiracy-theory/</link>
		<comments>http://www.tommylacroix.com/2008/03/30/yet-another-facebook-conspiracy-theory/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 15:56:13 +0000</pubDate>
		<dc:creator>tlacroix</dc:creator>
				<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Social networks]]></category>
		<category><![CDATA[conspiracy]]></category>
		<category><![CDATA[ethics]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[web 2.0]]></category>
<category>conspiracy</category><category>ethics</category><category>facebook</category><category>marketing</category><category>privacy</category><category>social networks</category><category>web 2.0</category>
		<guid isPermaLink="false">http://www.tommylacroix.com/2008/03/30/yet-another-facebook-conspiracy-theory/</guid>
		<description><![CDATA[Long time no write, I have been really busy in the last two weeks. Big news coming professionally. I&#8217;ll keep you posted on this.
Schedule aside, there&#8217;s an idea that has been on my mind for quite some time. Actually, since I saw the What happens in the Facebook stays in the Facebook Flash presentation, and [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.tommylacroix.com/wp-content/uploads/2008/03/facebook.gif" alt="Facebook Logo" style="float: right; margin-left: 10px; margin-bottom: 10px" />Long time no write, I have been really busy in the last two weeks. Big news coming professionally. I&#8217;ll keep you posted on this.</p>
<p>Schedule aside, there&#8217;s an idea that has been on my mind for quite some time. Actually, since I saw the <a href="http://albumoftheday.com/facebook/" title="What happens in the Facebook stays in the Facebook" target="_blank">What happens in the Facebook stays in the Facebook</a> Flash presentation, and after my advertising teacher told us something like : &#8220;Advertising on the web is great, because you can track the viewers behavior, including pre and post viewing&#8221;.</p>
<p><span id="more-58"></span></p>
<h3>AdServer conspiracy</h3>
<p>Well, Facebook knows a lot about you, and in advertising, the more you know about your viewer, the more relevant the ads you present him can be. Now, Facebook has an internal advertising platform, <a href="http://www.facebook.com/ads/" title="Facebook Social Ads" target="_blank">Facebook Social Ads</a>, based on this. Nothing external, such as AdSense, yet.</p>
<p>But lets imagine that Facebook launches an external AdServer and builds a big network of small advertisers, like Google AdSense, or a small network of large advertisers.</p>
<p>First, as Facebook knows a lot about you, it simply has to set a cookie in your browser when you go on your profile, and reuse the cookie when displaying a banner on newyorktimes.com. The AdServer would then know that I&#8217;m a 27 years old male in a relationship with a university degree.</p>
<h3>The force</h3>
<p>This could lead to very interesting possibilities:</p>
<ul>
<li><strong>Segmented Ad Performance Calculation </strong>: Does you ad under-performs except with single gay females with a college degree? You can&#8217;t know now, but a Facebook AdServer could tell you.</li>
<li><strong>Segmented Ad Presentation</strong>: Only present the ad to your target segments. So you could have a Monster ad presented only to unemployed viewers and viewers who didn&#8217;t update their work profile for the past 2 years.</li>
<li><strong>Segmented Ad Selection</strong> : Present an ad more specific to the viewer&#8217;s segment. Creating various versions of the same banner is cheap, so if you can present a version more specific to a segment. So you could have an Obama ad targeted for:
<ul>
<li>Afro-Americans</li>
<li>Hispanic-Americans</li>
<li>The bunch</li>
</ul>
</li>
</ul>
<h3>The ethics</h3>
<p>Sure, this raises many ethical questions, as it could be misused by the wrong people (you know, the bad guys in 24 and in Michael Moore&#8217;s films).</p>
<p>I remember (or I think I do remember &#8212; please let me know if I&#8217;m misquoting) that, while I was working at ZeroKnowledge Systems way back, Adam Shostack&#8217;s moto was: &#8220;Someday, soon enough, all databases will be interconnected&#8221;.</p>
<p>That&#8217;s why ZeroKnowledge developed their Freedom platform, allowing you to browse anonymously. But nobody cared at the time: querying a 500MB database took a few seconds on cluster, so no one could realistically store so much information in a usable way. <a href="http://slashdot.org/yro/01/10/04/1526256.shtml" title=" ZeroKnowledge to Discontinue Anonymity Service, on Slashdot" target="_blank">That&#8217;s why ZK&#8217;s great idea and platform never really worked, business-wise</a>. Too much, too soon.</p>
<p>But in the 2008 world were Google and Yahoo crawl &#8212; and even cache &#8212; a huge portion of the web, where 25% of adults in Quebec have a Facebook profile, and where interconnecting platforms is easier than ever with all the APIs around, this could be up and running tomorrow morning. Too little, too late?</p>
<p>Big brother is watching us.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommylacroix.com/2008/03/30/yet-another-facebook-conspiracy-theory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LinkedIn goes Facebook style in its new beta</title>
		<link>http://www.tommylacroix.com/2008/02/27/linkedin-beta-feb08/</link>
		<comments>http://www.tommylacroix.com/2008/02/27/linkedin-beta-feb08/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 19:33:05 +0000</pubDate>
		<dc:creator>tlacroix</dc:creator>
				<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Social networks]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://www.tommylacroix.com/2008/02/27/linkedin-beta-feb08/</guid>
		<description><![CDATA[Am I crazy (my mom says I&#8217;m special) or this resembles a business-like Facebook? Pretty neat, nevertheless! Check out Linkedin Beta here.
]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.tommylacroix.com/wp-content/uploads/2008/02/linkedin.gif" alt="LinkedIn Beta small screenshot" style="border: 1px solid black; margin-left: 10px; margin-bottom: 10px; float: right" />Am I crazy (my mom says I&#8217;m special) or this resembles a business-like Facebook? Pretty neat, nevertheless! Check out <a href="http://www.linkedin.com/static?key=home_beta_introduction" target="_blank" title="Linkedin Beta">Linkedin Beta here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommylacroix.com/2008/02/27/linkedin-beta-feb08/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
