<?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>Another blog bites the dust &#187; Code</title> <atom:link href="http://eran.sandler.co.il/category/code/feed/" rel="self" type="application/rss+xml" /><link>http://eran.sandler.co.il</link> <description>Not biting dust since 2005</description> <lastBuildDate>Sat, 19 Nov 2011 22:32:44 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>UIImage in iOS 5, Orientation and Resize</title><link>http://eran.sandler.co.il/2011/11/07/uiimage-in-ios-5-orientation-and-resize/</link> <comments>http://eran.sandler.co.il/2011/11/07/uiimage-in-ios-5-orientation-and-resize/#comments</comments> <pubDate>Mon, 07 Nov 2011 07:15:51 +0000</pubDate> <dc:creator>Eran Sandler</dc:creator> <category><![CDATA[Code]]></category> <category><![CDATA[Tips n' Tricks]]></category> <category><![CDATA[iOS]]></category> <category><![CDATA[iOS 5]]></category> <category><![CDATA[Objective-C]]></category> <category><![CDATA[UIImage]]></category> <category><![CDATA[UIImage+Resize]]></category><guid
isPermaLink="false">http://eran.sandler.co.il/?p=367</guid> <description><![CDATA[One of the things I found very strange is the fact that most operations that came with iOS prior iOS 5 which revolved around UIImage didn&#8217;t take into account the orientation of the image. This meant that if you want to read a picture from the camera roll and resize it, you&#8217;d have to roll [...]]]></description> <content:encoded><![CDATA[<p>One of the things I found very strange is the fact that most operations that came with iOS prior iOS 5 which revolved around UIImage didn&#8217;t take into account the orientation of the image. This meant that if you want to read a picture from the camera roll and resize it, you&#8217;d have to roll your own code to correctly flip and/or rotate the image according to its orientation value.</p><p>Being my lazy self I used the <a
href="http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/">fine code</a> of Trevor Harmon in UIImage+Resize. Trevor added some categories to make handling UIImage a bit nicer. The code takes create of everything including orientation.</p><p>My app worked great on iOS 4 and early betas of iOS 5, however in the late beta of iOS 5 and in the release it wrongfully rotated the images.</p><p>After further investigation it seems iOS 5 already rotates the image correctly. UIImage+Resize rotated it again, causing the images to get skewed.<br
/> A quick fix would simply avoid the transposition code in UIImage+Resize.</p><p>Since the code ran perfectly fine in iOS 4, for backwards compatibility I added a check for OS version and for anything below 5.0 the old code would work.<br
/> Check out <b><a
href="https://gist.github.com/1344380">this gist</a></b>:<br
/><script src="https://gist.github.com/1344380.js"></script></p><p>For better performance I would store a boolean flag somewhere in the app saying you are running in iOS 5 and check that instead of keep on checking the OS version every run, but this is just to get you started.</p> ]]></content:encoded> <wfw:commentRss>http://eran.sandler.co.il/2011/11/07/uiimage-in-ios-5-orientation-and-resize/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Clone S3 Bucket Script</title><link>http://eran.sandler.co.il/2011/10/10/clone-s3-bucket-script/</link> <comments>http://eran.sandler.co.il/2011/10/10/clone-s3-bucket-script/#comments</comments> <pubDate>Mon, 10 Oct 2011 13:35:30 +0000</pubDate> <dc:creator>Eran Sandler</dc:creator> <category><![CDATA[Amazon]]></category> <category><![CDATA[Code]]></category> <category><![CDATA[Tips n' Tricks]]></category> <category><![CDATA[Amazon S3]]></category> <category><![CDATA[Amazon Simple Storage Service]]></category> <category><![CDATA[Bucket]]></category> <category><![CDATA[Clone]]></category> <category><![CDATA[gist]]></category> <category><![CDATA[S3]]></category><guid
isPermaLink="false">http://eran.sandler.co.il/?p=361</guid> <description><![CDATA[I had to backup an S3 bucket so I whiped out a small script to clone a bucket. It&#8217;s written in Python and depends on the excellent Boto library. If you are running Python &#60; 2.7 you&#8217;ll also need the argparse library (both available also via pip). View the gist here: https://gist.github.com/1275085 Or here below:]]></description> <content:encoded><![CDATA[<p>I had to backup an S3 bucket so I whiped out a small script to clone a bucket.</p><p>It&#8217;s written in Python and depends on the excellent <a
href="http://code.google.com/p/boto/">Boto library</a>. If you are running Python &lt; 2.7 you&#8217;ll also need the <a
href="http://code.google.com/p/argparse/">argparse library</a> (both available also via pip).</p><p>View the gist here: <a
href="https://gist.github.com/1275085">https://gist.github.com/1275085</a></p><p>Or here below:<br
/><script type="text/javascript" src="https://gist.github.com/1275085.js">/*<![CDATA[*/<p>/*]]>*/</script></p> ]]></content:encoded> <wfw:commentRss>http://eran.sandler.co.il/2011/10/10/clone-s3-bucket-script/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Python Implementation of Twitter&#8217;s Snowflake Service</title><link>http://eran.sandler.co.il/2011/08/05/python-implementation-of-twitters-snowflake-service/</link> <comments>http://eran.sandler.co.il/2011/08/05/python-implementation-of-twitters-snowflake-service/#comments</comments> <pubDate>Fri, 05 Aug 2011 17:56:19 +0000</pubDate> <dc:creator>Eran Sandler</dc:creator> <category><![CDATA[Code]]></category> <category><![CDATA[64bit]]></category> <category><![CDATA[PySnowflake]]></category> <category><![CDATA[PySnowflakeClient]]></category> <category><![CDATA[Python]]></category> <category><![CDATA[Snowflake]]></category> <category><![CDATA[twitter]]></category> <category><![CDATA[Unique ID]]></category><guid
isPermaLink="false">http://eran.sandler.co.il/?p=348</guid> <description><![CDATA[A while back Twitter announced the Snowflake service. Snowflake is a unique ID generator that is fast and generate 64bit integer unique ids that are &#8220;roughly sortable&#8221;. That is, newer ids are bigger than older ones, up to a certain point. The service was originally written in Scala (which runs on the JVM) and has [...]]]></description> <content:encoded><![CDATA[<p>A while back Twitter <a
href="http://engineering.twitter.com/2010/06/announcing-snowflake.html">announced</a> the Snowflake service. Snowflake is a unique ID generator that is fast and generate 64bit integer unique ids that are &#8220;roughly sortable&#8221;. That is, newer ids are bigger than older ones, up to a certain point.<br
/> The service was originally written in Scala (which runs on the JVM) and has a Thrift interface, which means you can talk to it from almost any thinkable programming language.</p><p>The project was shared on <a
href="https://github.com/twitter/snowflake">GitHub</a>.</p><p>Personally, I don&#8217;t really like the JVM. It&#8217;s rather bloated in memory terms and can make quite a mess when you need to fine tune it to low memory environments. Also, the Snowflake service code is rather simple and rarely allocate a lot of new objects, which means allocation wise, its rather fixed.</p><p>I&#8217;ve re-implemented the service in Python using the same Thrift interfaces for both testing as well as being able to run it on low memory environments without the need to fine tune the JVM.</p><p>This implementation is rather naive and doesn&#8217;t work too much around CPython&#8217;s Global Interpeter Lock (GIL) so it yields much less IDs per second than the Scala implementation, however you can compensate for it by running multiple processes.</p><p>You can grab the service code from here: <a
href="https://github.com/erans/pysnowflake">https://github.com/erans/pysnowflake</a></p><p>I&#8217;ve also written a very simple Python client (it should support connecting to multiple Snowflake services, but the current version disregards this) which I only tested with PySnowflake (the Python server I created). I didn&#8217;t test it against the original Scala service.</p><p>You can grab the Python client code here: <a
href="https://github.com/erans/pysnowflakeclient">https://github.com/erans/pysnowflakeclient</a></p><p>While I do use some of this code in production, it is far from being fully tested and checked and I would use it as a reference or study it well and load test it before deploying it.</p><p>&nbsp;</p> ]]></content:encoded> <wfw:commentRss>http://eran.sandler.co.il/2011/08/05/python-implementation-of-twitters-snowflake-service/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Determine if an Email address is Gmail or Hosted Gmail (Google Apps for Your Domain)</title><link>http://eran.sandler.co.il/2011/07/17/determine-if-an-email-address-is-gmail-or-hosted-gmail-google-apps-for-your-domain/</link> <comments>http://eran.sandler.co.il/2011/07/17/determine-if-an-email-address-is-gmail-or-hosted-gmail-google-apps-for-your-domain/#comments</comments> <pubDate>Sun, 17 Jul 2011 08:30:56 +0000</pubDate> <dc:creator>Eran Sandler</dc:creator> <category><![CDATA[Code]]></category> <category><![CDATA[dnspython]]></category> <category><![CDATA[Gmail]]></category> <category><![CDATA[google-apps-for-your-domain]]></category> <category><![CDATA[Python]]></category><guid
isPermaLink="false">http://eran.sandler.co.il/?p=340</guid> <description><![CDATA[For my latest venture, MyFamilio, I needed to know if a user&#8217;s Email address is a Gmail one so that I could show the user his/her contacts from Gmail. Figuring out if the user is on Gmail is usually easy &#8211; the Email ends with @gmail.com. But what happens for all of those Google Apps [...]]]></description> <content:encoded><![CDATA[<p>For my latest venture, <a
href="http://www.myfamilio.com">MyFamilio</a>, I needed to know if a user&#8217;s Email address is a Gmail one so that I could show the user his/her contacts from Gmail.</p><p>Figuring out if the user is on Gmail is usually easy &#8211; the Email ends with @gmail.com. But what happens for all of those Google Apps for Your domain (like my own, which uses the @sandler.co.il domain) ?</p><p>Well, you can easily detect that by running a DNS query on the MX record.</p><p>I wrote a small function in Python which uses dnspyhon to do just that, determine if an Email address is hosted on Gmail or not.</p><p><a
href="https://gist.github.com/1087324">Check the gist here</a>.</p><p><script src="https://gist.github.com/1087324.js?file=gmail_email.py"></script></p><p><a
href="https://gist.github.com/1087324">Check the gist here</a>.</p> ]]></content:encoded> <wfw:commentRss>http://eran.sandler.co.il/2011/07/17/determine-if-an-email-address-is-gmail-or-hosted-gmail-google-apps-for-your-domain/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Extract GPS Latitude and Longitude Data from EXIF using Python Imaging Library (PIL)</title><link>http://eran.sandler.co.il/2011/05/20/extract-gps-latitude-and-longitude-data-from-exif-using-python-imaging-library-pil/</link> <comments>http://eran.sandler.co.il/2011/05/20/extract-gps-latitude-and-longitude-data-from-exif-using-python-imaging-library-pil/#comments</comments> <pubDate>Fri, 20 May 2011 21:27:25 +0000</pubDate> <dc:creator>Eran Sandler</dc:creator> <category><![CDATA[Code]]></category> <category><![CDATA[extraction]]></category> <category><![CDATA[gps]]></category> <category><![CDATA[latitude]]></category> <category><![CDATA[longitude]]></category> <category><![CDATA[pil]]></category> <category><![CDATA[Python]]></category><guid
isPermaLink="false">http://eran.sandler.co.il/?p=327</guid> <description><![CDATA[I was searching an example of using Python Imaging Library (PIL) to extract the GPS data from EXIF data in images. There were various half baked examples that didn&#8217;t handle things well, so I baked something of my own combining multiple examples. You can get it here: https://gist.github.com/983821 Or see it embedded below:]]></description> <content:encoded><![CDATA[<p>I was searching an example of using Python Imaging Library (PIL) to extract the GPS data from EXIF data in images.</p><p>There were various half baked examples that didn&#8217;t handle things well, so I baked something of my own combining multiple examples.</p><p>You can get it here: <a
href="https://gist.github.com/983821">https://gist.github.com/983821</a></p><p>Or see it embedded below:<br
/><script src="https://gist.github.com/983821.js?file=get_lat_lon_exif_pil.py"></script></p> ]]></content:encoded> <wfw:commentRss>http://eran.sandler.co.il/2011/05/20/extract-gps-latitude-and-longitude-data-from-exif-using-python-imaging-library-pil/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>OAuth C# (very) Basic Library</title><link>http://eran.sandler.co.il/2007/10/17/oauth-c-very-basic-library/</link> <comments>http://eran.sandler.co.il/2007/10/17/oauth-c-very-basic-library/#comments</comments> <pubDate>Wed, 17 Oct 2007 01:20:51 +0000</pubDate> <dc:creator>Eran Sandler</dc:creator> <category><![CDATA[Code]]></category> <category><![CDATA[OAuth]]></category> <category><![CDATA[.NET]]></category> <category><![CDATA[ASP.NET]]></category> <category><![CDATA[Authentication]]></category> <category><![CDATA[C#]]></category> <category><![CDATA[csharp]]></category> <category><![CDATA[delegation]]></category><guid
isPermaLink="false">http://eran.sandler.co.il/2007/10/17/oauth-c-very-basic-library/</guid> <description><![CDATA[I know it took me a while (sorry) but I had a couple things on my plate. At first I wanted to release a more complete integration of OAuth within ASP.NET, but that will have to wait to the next time frame I can allocate to work on this. In the meantime, there is some [...]]]></description> <content:encoded><![CDATA[<p>I know it took me a while (sorry) but I had a couple things on my plate.</p><p>At first I wanted to release a more complete integration of <a
href="http://oauth.net">OAuth</a> within ASP.NET, but that will have to wait to the next time frame I can allocate to work on this.</p><p>In the meantime, there is some <a
href="http://oauth.googlecode.com/svn/code/csharp/">basic C# code</a> in the <a
href="http://oauth.net/code/">OAuth code repository</a> which generates the OAuth signature, which is the most complicated thing to implement in the spec (not that it&#8217;s that difficult to implement :-) It&#8217;s actually quite easy).</p><p>To use the C# code, simply do this (based on the samples in the spec):</p><blockquote><p>using OAuth;</p><p>OAuthBase oauth = new OAuthBase();</p><p>Uri url = new Uri(&#8220;http://photos.example.net/photos?file=vacation.jpg&amp;size=original&#8221;);</p><p>string signature = oauth.GenerateSignature(url, &#8220;dpf43f3p2l4k3l03&#8243;, &#8220;kd94hf93k423kf44&#8243;, &#8220;nnch734d00sl2jdk&#8221;, &#8220;pfkkdhi9sl3r4s00&#8243;, &#8220;GET&#8221;, oauth.GenerateTimeStamp(), oauth.GenerateNonce(), OAuthBase.SignatureTypes.HMACSHA1);</p></blockquote><p>After that you can concatenate the relevant query parameters as well as the signature value to the URL and use it.</p><p>If you have a different timestamp and/or nonce generation method, you can inherit and override these methods.</p><p>If you require a different hashing algorithm other than the default HMAC-SHA1 or the PLAINTEXT (which MUST be used with a secure communication channel such as HTTPS) you can use the &#8220;GenerateSignatureBase&#8221; method to generate the signature base string and then call &#8220;GenerateSignatureUsingHash&#8221; passing the signature base and the hash algorithm you are using.</p><p>That&#8217;s about it. I&#8217;ll update when I&#8217;ll have some more integrative code.</p> ]]></content:encoded> <wfw:commentRss>http://eran.sandler.co.il/2007/10/17/oauth-c-very-basic-library/feed/</wfw:commentRss> <slash:comments>23</slash:comments> </item> <item><title>Yedda Twitter .NET / C# Library</title><link>http://eran.sandler.co.il/2007/05/16/yedda-twitter-c-library/</link> <comments>http://eran.sandler.co.il/2007/05/16/yedda-twitter-c-library/#comments</comments> <pubDate>Wed, 16 May 2007 17:29:17 +0000</pubDate> <dc:creator>Eran Sandler</dc:creator> <category><![CDATA[Code]]></category> <category><![CDATA[Yedda]]></category> <category><![CDATA[.NET]]></category> <category><![CDATA[C#]]></category> <category><![CDATA[dotnet]]></category> <category><![CDATA[library]]></category> <category><![CDATA[twitter]]></category> <category><![CDATA[yedda-twitter-library]]></category><guid
isPermaLink="false">http://eran.sandler.co.il/2007/05/16/yedda-twitter-c-library/</guid> <description><![CDATA[This is a bit of shameless promotion but I think it&#8217;s worthwhile never the less :-) One of the things I did lately on my day job (Yedda) was to integrate it with Twitter (check the integration here and add Yedda as your friend!). Yedda is all about sharing and us sharing things like code [...]]]></description> <content:encoded><![CDATA[<p>This is a bit of shameless promotion but I think it&#8217;s worthwhile never the less :-)</p><p>One of the things I did lately on my <a
href="http://yedda.com">day job (Yedda)</a> was to integrate it with Twitter (check the integration <a
href="http://twitter.com/yedda/">here</a> and add Yedda as your <a
href="http://twitter.com/friendships/create/4368901">friend!</a>).</p><p>Yedda is all about sharing and us sharing things like code with the rest of the world is no exception.</p><p>So, without further due, I&#8217;m proud to present the <a
href="http://devblog.yedda.com/index.php/2007/05/16/twitter-c-library/">Yedda Twitter .NET / C# Library</a> (you will see that it&#8217;s more of wrapper than a library&#8230; really ;-) ). The post about it in our Dev Blog is <a
href="http://devblog.yedda.com/index.php/2007/05/16/twitter-c-library/">here</a> and the details, source and binary are <a
href="http://devblog.yedda.com/index.php/twitter-c-library/">here</a>.</p><p>The code is free as in beer and is provided on a &#8220;AS IS&#8221; basis.</p><p>If you have questions about the library, Twitter, C#, .NET, the API, the meaning of life etc, feel free to <a
href="http://yedda.com/questions/new/?pstags=Twitter,Yedda,Code,Development">ask on Yedda</a>.</p> ]]></content:encoded> <wfw:commentRss>http://eran.sandler.co.il/2007/05/16/yedda-twitter-c-library/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Mono hosted inside SecondLife</title><link>http://eran.sandler.co.il/2007/01/21/mono-hosted-inside-secondlife/</link> <comments>http://eran.sandler.co.il/2007/01/21/mono-hosted-inside-secondlife/#comments</comments> <pubDate>Sun, 21 Jan 2007 15:28:18 +0000</pubDate> <dc:creator>Eran Sandler</dc:creator> <category><![CDATA[Code]]></category> <category><![CDATA[.NET]]></category> <category><![CDATA[.NET-Runtime]]></category> <category><![CDATA[CLR]]></category> <category><![CDATA[Liden-Scripting-Language]]></category> <category><![CDATA[Linden-Labs]]></category> <category><![CDATA[LSL]]></category> <category><![CDATA[Mono]]></category> <category><![CDATA[SecondLife]]></category><guid
isPermaLink="false">http://eran.sandler.co.il/2007/01/21/mono-hosted-inside-secondlife/</guid> <description><![CDATA[I just read on the official Linden Blog that they have completed an initial version of hosting Mono within SecondLife. What they have done is to compile the Linden Scripting Language (LSL) into Intermediate Language (IL) code and they automagically gain all the advantages of the .NET Runtime &#8211; Just In Time (JIT) compilation, advanced [...]]]></description> <content:encoded><![CDATA[<p>I just read on the <a
href="http://blog.secondlife.com/">official Linden Blog</a> that they have completed an initial version of <a
href="http://blog.secondlife.com/2005/04/26/tla-bingo/">hosting Mono within SecondLife</a>.</p><p>What they have done is to compile the Linden Scripting Language (LSL) into Intermediate Language (IL) code and they automagically gain all the advantages of the .NET Runtime &#8211; Just In Time (JIT) compilation, advanced Garbage Collection and, hopefully, the ability to extend SecondLife with other .NET supported langauges (though that&#8217;s a personal wish ;-) having .NET so close to me &#8211; my <a
href="http://dotnetdebug.net">Advanced .NET Debugging</a> blog)</p><p>It seems the results are promising:</p><blockquote><p>&#8220;The initial figures look good, with Mono executing LSL scripts between 300 and 500 times faster than the current LSL interpreter.&#8221;</p></blockquote><p><a
href="http://www.mono-project.com">Mono</a> is an open source implementation of the .NET runtime as well as a C# compiler and some of the .NET Framework stack (including stack of its own free of patents and copyrights). It&#8217;s supported on Mac OSX, Linux and Windows, which makes it ideal for SecondLife since these are the 3 major platforms it is used by.<br
/> I wonder if they&#8217;ll use Mono throughout the SecondLife Viewer, or chose to use/host Microsoft&#8217;s .NET Runtime on Windows (which in some senses is far more advanced than Mono but only limited to Windows).</p><p>Having SecondLife tied to .NET on Windows will require everyone to get the .NET framework, while Mono can be compiled into (or linked) and be distributed with the normal SecondLife client (though I don&#8217;t think that should be a major problem).</p><p>Not having to learn yet another scripting language will greatly enhance the ability for everyone to enhance and create a better, more interesting and innovative SecondLife. That&#8217;s why it should be very important to be able to extend SecondLife without using LSL and using the full blown power of .NET and all of the .NET supported languages.<br
/> I&#8217;d be more than willing to help out, if needed (or at least checked into their source repository) :-).</p> ]]></content:encoded> <wfw:commentRss>http://eran.sandler.co.il/2007/01/21/mono-hosted-inside-secondlife/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Another MicroID plugin for WordPress</title><link>http://eran.sandler.co.il/2007/01/09/another-microid-plugin-for-wordpress/</link> <comments>http://eran.sandler.co.il/2007/01/09/another-microid-plugin-for-wordpress/#comments</comments> <pubDate>Tue, 09 Jan 2007 09:04:47 +0000</pubDate> <dc:creator>Eran Sandler</dc:creator> <category><![CDATA[Code]]></category> <category><![CDATA[MicroID]]></category> <category><![CDATA[plugins]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[WordPress-Plugin]]></category><guid
isPermaLink="false">http://eran.sandler.co.il/2007/01/09/another-microid-plugin-for-wordpress/</guid> <description><![CDATA[A reader of this blog, Nate Olson, just informed me that there is another WordPress plugin for MicroID and is written by Richard K. Miller (Thanks Nate!). Richard&#8217;s plugin adds microid on the homepage (it uses the admin&#8217;s Email for that), on each of the posts (according to the Email of the post&#8217;s creator) and [...]]]></description> <content:encoded><![CDATA[<p>A reader of this blog, Nate Olson, just informed me that there is <a
href="http://www.richardkmiller.com/blog/archives/2006/03/microid-plugin-for-wordpress">another WordPress plugin for MicroID</a> and is written by <a
href="http://www.richardkmiller.com/">Richard K. Miller</a> (Thanks Nate!).</p><p>Richard&#8217;s plugin adds microid on the homepage (it uses the admin&#8217;s Email for that), on each of the posts (according to the Email of the post&#8217;s creator) and on each of the comments (according to the supplied URL and Email of each of the commentators).</p><p>Well&#8230; It&#8217;s a lot more than <a
href="http://eran.sandler.co.il/2007/01/07/microid-plugin-for-wordpress/">I have done</a> :-), but I specifically didn&#8217;t want to use the Admin&#8217;s Email as the MicroID of choice for the homepage, mainly because I, for example, administer n WordPress blog for my friend. My Email is listed on the Admin, but he is the actual owner of the blog.</p><p>I&#8217;m considering adding the following features:</p><ul><li>Add the ability to choose from the list of users, the user from which the MicroID of the homepage will be generated</li><li>Add a MicroID to each post page by using the posting user&#8217;s Email</li><li>Add a MicroID to each comment by using the commentator&#8217;s Email and the current page&#8217;s URL (including the anchor to the comment). Note that the commentator must provide the Email.</li><li>Enabling and disabling each one of these features from the configuration.</li></ul><p>The benefits of adding a MicroID to each post page is that if you have a blog with multiple contributors, each will be able to claim their own post by using a service like <a
href="http://claimid.com">claimID</a>.</p><p>Having a MicroID on a comment will allow a user to claim the comment, which I know some people might want to do.</p><p>Do you think when creating a MicroID on comments, should the user have differnet MicroIDs on each comment, allowing the user to claim a specific post, or should the user have only one MicroID for all of the user&#8217;s comment?</p><p>What do you think? Do you have any other suggestion as to what to add?</p> ]]></content:encoded> <wfw:commentRss>http://eran.sandler.co.il/2007/01/09/another-microid-plugin-for-wordpress/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>OpenID Delegate Plugin for WordPress</title><link>http://eran.sandler.co.il/2007/01/09/openid-delegate-plugin-for-wordpress/</link> <comments>http://eran.sandler.co.il/2007/01/09/openid-delegate-plugin-for-wordpress/#comments</comments> <pubDate>Mon, 08 Jan 2007 22:03:05 +0000</pubDate> <dc:creator>Eran Sandler</dc:creator> <category><![CDATA[Announcements]]></category> <category><![CDATA[Code]]></category> <category><![CDATA[OpenID]]></category> <category><![CDATA[Blog]]></category> <category><![CDATA[Blogging]]></category> <category><![CDATA[delegation]]></category> <category><![CDATA[Identity]]></category> <category><![CDATA[openid-delegation]]></category> <category><![CDATA[plugin]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[WordPress-Plugin]]></category><guid
isPermaLink="false">http://eran.sandler.co.il/2007/01/09/openid-delegate-plugin-for-wordpress/</guid> <description><![CDATA[Continuing my WordPress plugin frenzy and after release the MicroID WordPress plugin, I&#8217;m releasing another plugin, this time for OpenID delegation. The plugin is named &#8220;OpenID Delegate&#8221; and you can read all the details and download it from here. Q: So what&#8217;s this OpenID I&#8217;ve been hearing about? A: According to OpenID.net: OpenID is an [...]]]></description> <content:encoded><![CDATA[<p>Continuing my WordPress plugin frenzy and after release the <a
href="http://eran.sandler.co.il/2007/01/07/microid-plugin-for-wordpress/">MicroID WordPress plugin</a>, I&#8217;m releasing another plugin, this time for OpenID delegation.</p><p>The plugin is named &#8220;OpenID Delegate&#8221; and you can read all the details and download it from <a
href="http://eran.sandler.co.il/openid-delegate-wordpress-plugin/">here</a>.</p><p><strong>Q</strong>: So what&#8217;s this OpenID I&#8217;ve been hearing about?<br
/> <strong>A</strong>: According to <a
href="http://www.openid.net">OpenID.net</a>:</p><blockquote><p>OpenID is an open, decentralized, free framework for user-centric digital identity.</p><p>OpenID starts with the concept that anyone can identify themselves on the Internet the same way websites do-with a <a
href="http://en.wikipedia.org/wiki/Uniform_Resource_Identifier">URI</a> (also called a URL or web address). Since URIs are at the very core of Web architecture, they provide a solid foundation for user-centric identity.</p></blockquote><p>What does it mean? Well, basically it means that if you have an OpenID account on an OpenID server and you are accessing an OpenID supported site (see the list of them <a
href="http://www.lifewiki.net/openid/OpenIDServers">here</a>) you can use a special URI that your OpenID provider provides you and the password you have chosen to sign-up (and afterwards sign-in) to these sites.<br
/> That&#8217;s right. You&#8217;ll use the same URI and password to sign-in and up for all OpenID supported sites. This is also referred to in the enterprise (and the rest of the world) as Single Sign On or SSO for short.</p><p><strong>Q</strong>: &#8220;So, what&#8217;s your OpenID Delegate plugin got to do with it?&#8221;<br
/> <strong>A</strong>: It&#8217;s quite simple. Assuming you run your own WordPress blog, wouldn&#8217;t it be cool to use your blog&#8217;s URL and the password provided by your OpenID provider as your URI of choice for signing in and up to OpenID supported sites? Yes it will!</p><p><strong>Q</strong>: &#8220;But you could have just modified your theme and added the necessary meta tags&#8230;&#8221;</p><p><strong>A</strong>: Yeap, I know could, but it&#8217;s much easier having it as a plugin, allowing me to replace themes without remembering that I&#8217;ve added these values to the head tag.</p><p><strong>Q</strong>: &#8220;Where do I get an OpenID account?&#8221;</p><p><strong>A</strong>: Well&#8230; you have a couple of ways. First, you might already have an OpenID account if you have an account at either <a
href="http://www.wikitravel.org">WikiTravel</a>, <a
href="http://www.livejournal.com">LiveJournal</a>, <a
href="http://www.deadjournal.com">DeadJournal</a>, <a
href="http://www.zooomr.com">Zooomr</a>, <a
href="http://www.technorati.com">Technorati</a>, etc (see the rest of the list here. Not all of these sites are OpenID providers though).<br
/> If you don&#8217;t have an account you can open a free one at <a
href="http://www.myopenid.com">myOpenID</a> &#8211; a free OpenID provider.</p><p>The 3rd option you&#8217;ve got is to run your own server (not for the faint hearted).</p><p>It&#8217;s time to own your identity, but if you can&#8217;t really own it (i.e. run your own server) at least delegate it and make others think you do!</p> ]]></content:encoded> <wfw:commentRss>http://eran.sandler.co.il/2007/01/09/openid-delegate-plugin-for-wordpress/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached
Page Caching using memcached (User agent is rejected)
Database Caching 1/26 queries in 0.019 seconds using disk: basic
Object Caching 805/883 objects using disk: basic

Served from: eran.sandler.co.il @ 2012-02-07 15:09:08 -->
