<?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>KramerC</title>
	<atom:link href="http://kramerc.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://kramerc.com</link>
	<description></description>
	<lastBuildDate>Sun, 21 Apr 2013 05:31:05 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>RMagick on Windows</title>
		<link>http://kramerc.com/2013/03/18/rmagick-on-windows/</link>
		<comments>http://kramerc.com/2013/03/18/rmagick-on-windows/#comments</comments>
		<pubDate>Mon, 18 Mar 2013 15:51:39 +0000</pubDate>
		<dc:creator>Kramer</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[RMagick]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://kramerc.com/?p=1025</guid>
		<description><![CDATA[RMagick on Windows is tricky. Recently, I wrote up an answer on Stack Overflow on ways to get it to work under Windows with Rails. Unfortunately, my answer hasn&#8217;t received much attention. I have managed to find two solutions to install RMagick and getting it to work with Rails back when I was on Windows. [...]]]></description>
				<content:encoded><![CDATA[<p>RMagick on Windows is tricky. Recently, I wrote up an <a href="http://stackoverflow.com/a/15354683/240609">answer on Stack Overflow</a> on ways to get it to work under Windows with Rails. Unfortunately, my answer hasn&#8217;t received much attention.</p>
<p>I have managed to find two solutions to install RMagick and getting it to work with Rails back when I was on Windows. These solutions aren&#8217;t specific to Rails.</p>
<h4>The Simple Solution</h4>
<p>The easiest solution is to install the ancient <a href="https://rubyforge.org/frs/?group_id=12&amp;release_id=39888">rmagick-2.12.0-x86-mswin32</a> gem. To get this specific gem version to work with Bundler, you will need to add the following to your <code>Gemfile</code>.</p>
<pre class="brush: ruby; title: ; notranslate">if RUBY_PLATFORM =~ /(win|w)32$/
  gem 'rmagick', '2.12.0', :path =&gt; 'vendor/gems/rmagick-2.12.0-x86-mswin32', :require =&gt; 'RMagick'
else
  gem 'rmagick', :require =&gt; 'RMagick'
end</pre>
<p>Note the path argument there. You will need to place the gem in a location where Bundler can find it. This example uses <code>vendor/gems/</code> for its location. You will need to unpack the <code>.gem</code> file to this location.</p>
<pre class="brush: plain; title: ; notranslate">gem unpack rmagick-2.12.0-x86-mswin32 vendor/gems/</pre>
<h4>A Better Solution</h4>
<p>The provided Windows gem is heavily outdated and it is intended for Ruby 1.8.6, meaning there&#8217;s no guarantee that it will work with future Ruby versions. It is possible to compile a newer version of the RMagick gem on Windows using <a href="http://rubyinstaller.org/add-ons/devkit/">DevKit</a>. You will need a 32-bit version of ImageMagick installed with development headers.</p>
<p>I have created <a href="https://gist.github.com/kramerc/1307776">a batch file</a> that maps the directory of ImageMagick to <code>X:\</code> and it gives the parameters to RubyGems on where to find the required files to build RMagick. This sort of mapping is necessary as the configuration options don&#8217;t know how to handle spaces in the paths. Alternatively, you can install ImageMagick to a location that has no spaces in its path and avoid binding it to a drive letter altogether.</p>
<p>The following commands map the directory of ImageMagick to <code>X:\</code> and have RubyGems compile and install RMagick.</p>
<pre class="brush: powershell; title: ; notranslate">subst X: &quot;C:\Program Files (x86)\ImageMagick-6.7.6-Q16&quot;
gem install rmagick --platform=ruby -- --with-opt-lib=&quot;X:\lib&quot; --with-opt-include=&quot;X:\include&quot;
subst X: /D</pre>
<p>The path in this example will need to be modified if you have a version other than 6.7.6-Q16 installed or if you are not on 64-bit Windows.</p>
<p>If you are using Bundler, a much nicer one liner in <code>Gemfile</code> is all that is needed with this solution.</p>
<pre class="brush: ruby; title: ; notranslate">gem 'rmagick', :require =&gt; 'RMagick'</pre>
]]></content:encoded>
			<wfw:commentRss>http://kramerc.com/2013/03/18/rmagick-on-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minequery is Now a Bukkit Plugin</title>
		<link>http://kramerc.com/2011/01/21/minequery-is-now-a-bukkit-plugin/</link>
		<comments>http://kramerc.com/2011/01/21/minequery-is-now-a-bukkit-plugin/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 07:07:53 +0000</pubDate>
		<dc:creator>Kramer</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Bukkit]]></category>
		<category><![CDATA[Minequery]]></category>

		<guid isPermaLink="false">http://kramerc.com/?p=837</guid>
		<description><![CDATA[Since Bukkit is going to replace hMod as the creator has decided to stop updating hMod, a Bukkit version has been created for Minequery. It basically has the same functionally as the hMod version. The hMod version of the plugin is no longer supported. Thanks to Blake Beaupain (blakeman8192) for creating the Bukkit version of [...]]]></description>
				<content:encoded><![CDATA[<p>Since <a href="http://bukkit.org/">Bukkit</a> is going to replace hMod as the creator has decided to stop updating hMod, a Bukkit version has been created for Minequery. It basically has the same functionally as the hMod version. The hMod version of the plugin is no longer supported.</p>
<p>Thanks to Blake Beaupain (blakeman8192) for creating the Bukkit version of Minequery and getting it started.</p>
<p>Version 1.1 of Minequery can be <strong>downloaded</strong> from <a rel="nofollow" href="https://github.com/downloads/kramerc/minequery/Minequery-1.1.zip" target="_blank" class="broken_link">here</a>.<br />
The source code of Minequery can be found on <a rel="nofollow" href="https://github.com/kramerc/minequery" target="_blank">GitHub</a>.</p>
<p>More information about Minequery can be found on <a href="http://minestatus.net/minequery" class="broken_link">Minestatus</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://kramerc.com/2011/01/21/minequery-is-now-a-bukkit-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing Minestatus and Minequery</title>
		<link>http://kramerc.com/2010/12/29/introducing-minestatus-and-minequery/</link>
		<comments>http://kramerc.com/2010/12/29/introducing-minestatus-and-minequery/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 00:17:46 +0000</pubDate>
		<dc:creator>Kramer</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[hey0]]></category>
		<category><![CDATA[hMod]]></category>
		<category><![CDATA[Minecraft]]></category>
		<category><![CDATA[Minequery]]></category>
		<category><![CDATA[Minestatus]]></category>

		<guid isPermaLink="false">http://kramerc.com/?p=795</guid>
		<description><![CDATA[I have created a new website called Minestatus and a hMod plugin called Minequery for Minecraft servers. Minestatus Minestatus is a server list that keeps track of the overall uptime percentage of all Minecraft servers that are added to the list. The uptime is determined by making periodic connections to the server to test if [...]]]></description>
				<content:encoded><![CDATA[<p>I have created a new website called <a href="http://minestatus.net/">Minestatus</a> and a <a href="http://www.minecraftforum.net/viewtopic.php?t=23340">hMod</a> plugin called <a href="http://forum.hey0.net/showthread.php?tid=2983" class="broken_link">Minequery</a> for <a href="http://minecraft.net/">Minecraft</a> servers.</p>
<h4><strong>Minestatus</strong></h4>
<p><a href="http://kramerc.com/wp-content/uploads/2010/12/SS-2010.12.29-15.59.51.png"><img class="alignright size-medium wp-image-807" title="Minestatus" src="http://kramerc.com/wp-content/uploads/2010/12/SS-2010.12.29-15.59.51-300x134.png" alt="Minestatus" width="300" height="134" /></a><a href="http://minestatus.net/">Minestatus</a> is a server list that keeps track of the overall uptime percentage of all Minecraft servers that are added to the list. The uptime is determined by making periodic connections to the server to test if it is online. Players can vote on each of the servers on the list for the ones they like to play on best. The score is then determined by the uptime percentage, how many votes a server has, and the age of the server being listed. The servers with the highest scores appear on the top of the list.</p>
<p>In addition to this, for servers that have <a href="http://www.minecraftforum.net/viewtopic.php?t=23340">hMod</a> and the <a href="http://forum.hey0.net/showthread.php?tid=2983" class="broken_link">Minequery</a> plugin, Minestatus can pull the players online and the max players the server can hold. It will even list the players name on the server&#8217;s page.</p>
<p>Each server also has it&#8217;s own dynamically updating image for placing on websites and forums.</p>
<h4>Minequery</h4>
<p><a href="http://forum.hey0.net/showthread.php?tid=2983" class="broken_link">Minequery</a> is a <a href="http://www.minecraftforum.net/viewtopic.php?t=23340">hMod</a> server plugin for Minecraft. It creates a small server that listens for requests and responds with the port of the Minecraft server, the current amount of players online, the max players cap, and the entire player list.</p>
<p><a href="http://kramerc.com/wp-content/uploads/2010/12/Minequery-2010.12.29-16.08.40.png"><img class="size-medium wp-image-813 alignright" title="Minequery" src="http://kramerc.com/wp-content/uploads/2010/12/Minequery-2010.12.29-16.08.40-300x148.png" alt="Minequery" width="300" height="148" /></a></p>
<p>It works by when sending:</p>
<pre>QUERY
</pre>
<p>It will respond with:</p>
<pre>SERVERPORT 25565
PLAYERCOUNT 1
MAXPLAYERS 20
PLAYERLIST [KramerC]
</pre>
<p>This can then be displayed on a website, as it is on Minestatus. There is a <a href="https://github.com/kramerc/minequery-php" class="broken_link">PHP class</a> and as well as a <a href="https://github.com/kramerc/minequery-rails" class="broken_link">Ruby on Rails plugin</a> that can help interpret the response from Minequery.</p>
]]></content:encoded>
			<wfw:commentRss>http://kramerc.com/2010/12/29/introducing-minestatus-and-minequery/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Converting DateTime.Ticks into a Unix timestamp in PHP</title>
		<link>http://kramerc.com/2010/11/30/converting-datetime-ticks-into-a-unix-timestamp-in-php/</link>
		<comments>http://kramerc.com/2010/11/30/converting-datetime-ticks-into-a-unix-timestamp-in-php/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 07:46:08 +0000</pubDate>
		<dc:creator>Kramer</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://kramerc.com/?p=746</guid>
		<description><![CDATA[I needed a way to convert the number of ticks from the DateTime.Ticks property in .NET into a Unix timestamp in PHP. So I wrote up this solution that makes this possible. The solution works by taking the number of ticks that I want to convert into a Unix timestamp and subtracting it with the [...]]]></description>
				<content:encoded><![CDATA[<p>I needed a way to convert the number of ticks from the DateTime.Ticks property in .NET into a Unix timestamp in PHP. So I wrote up this solution that makes this possible. The solution works by taking the number of ticks that I want to convert into a Unix timestamp and subtracting it with the number of ticks of the Unix epoch.</p>
<p>To figure out the number of ticks of the Unix epoch, I used C# (it is possible to do this in a different .NET language) using these two lines of code to find the number of ticks of the Unix epoch in a simple Console Application:</p>
<pre class="brush: csharp; title: ; notranslate">DateTime unix = new DateTime(1970, 1, 1, 0, 0, 0);
System.Console.WriteLine(unix.Ticks);</pre>
<p>This ends up printing out:<br />
<code>621355968000000000</code></p>
<p>I then took this number, which is in one hundred nanoseconds, and created a PHP function which subtracts the number of ticks to be converted by the number of ticks of the Unix epoch and then divides it by 10000000 to convert the now Unix timestamp from one hundred nanoseconds to seconds as Unix timestamps in PHP are handled in seconds.</p>
<pre class="brush: php; title: ; notranslate">function ticks_to_time($ticks) {
	return floor(($ticks - 621355968000000000) / 10000000);
}</pre>
<p>This is an example of this function in use:</p>
<pre class="brush: php; title: ; notranslate">// 11/24/2010 9:20:45 PM UTC in DateTime.Ticks
$time = ticks_to_time(634262304450000000);
echo &quot;$time\n&quot;;
echo date(&quot;F j Y g:i:s A T&quot;, $time) . &quot;\n&quot;;</pre>
<p>Which should output:<br />
<code>1290633645<br />
November 24 2010 1:20:45 PM PST</code></p>
<p>So there we have it, a function that makes it easy to convert the number of ticks from the DateTime.Ticks property in .NET into a Unix timestamp in PHP.</p>
]]></content:encoded>
			<wfw:commentRss>http://kramerc.com/2010/11/30/converting-datetime-ticks-into-a-unix-timestamp-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook is Removing Application Tabs from Profiles</title>
		<link>http://kramerc.com/2010/10/30/facebook-is-removing-application-tabs-from-profiles/</link>
		<comments>http://kramerc.com/2010/10/30/facebook-is-removing-application-tabs-from-profiles/#comments</comments>
		<pubDate>Sat, 30 Oct 2010 20:53:25 +0000</pubDate>
		<dc:creator>Kramer</dc:creator>
				<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[application tabs]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Facebook]]></category>

		<guid isPermaLink="false">http://kramerc.com/?p=707</guid>
		<description><![CDATA[So Facebook is removing application tabs from user profiles. This was announced months before but I only recently found out about it when I was presented with this message on an application tab: So after application tabs are gone, how else are developers suppose to share information on a user&#8217;s profile with their app besides [...]]]></description>
				<content:encoded><![CDATA[<p>So Facebook is removing application tabs from user profiles. This was <a href="http://developers.facebook.com/blog/post/402">announced months before</a> but I only recently found out about it when I was presented with this message on an application tab:</p>
<p><a href="http://kramerc.com/wp-content/uploads/2010/10/SS-2010.10.30-13.01.12.png"><img class="alignnone size-full wp-image-708" title="Application tabs going away" src="http://kramerc.com/wp-content/uploads/2010/10/SS-2010.10.30-13.01.12.png" alt="Application tabs going away" width="533" height="95" /></a></p>
<p>So after application tabs are gone, how else are developers suppose to share information on a user&#8217;s profile with their app besides spamming the user&#8217;s wall or the news feeds of user&#8217;s friends? Well from what I see it, you can&#8217;t. There are currently no other alternatives to application tabs on displaying or sharing information. Not all information was meant to be shared in wall posts. When profile boxes and info sections were removed, <a href="http://www.facebook.com/help/?faq=18281" class="broken_link">the reasoning on this</a> was claimed to &#8220;simplify navigation for users and reduce complexity for developers.&#8221; Application tabs <a href="http://developers.facebook.com/blog/post/402">are being removed</a> on other hand &#8220;due to low usage rates&#8221;. Application tabs <a href="http://developers.facebook.com/blog/post/415">will be gone completely</a> starting November 3. Adding application tabs to your profile is no longer possible and such applications that rely on application tabs like the one I have been using, called <a href="http://www.facebook.com/apps/application.php?id=56988796213">Last.fm Profile</a>, no longer functions the way it used to.</p>
<p>Many developers and users have complained about the application tabs being removed, yet there is no response from Facebook and it appears they are just ignoring us. Go figure. Removing application tabs is a bad decision I believe Facebook is making in addition to them removing profile boxes and info sections in the past.</p>
]]></content:encoded>
			<wfw:commentRss>http://kramerc.com/2010/10/30/facebook-is-removing-application-tabs-from-profiles/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google AdSense Account Disabled</title>
		<link>http://kramerc.com/2010/09/14/google-adsense-account-disabled/</link>
		<comments>http://kramerc.com/2010/09/14/google-adsense-account-disabled/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 07:57:26 +0000</pubDate>
		<dc:creator>Kramer</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[adsense]]></category>
		<category><![CDATA[disabled]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://kramerc.com/?p=661</guid>
		<description><![CDATA[My AdSense just got disabled because apparently it &#8220;poses a risk of generating invalid activity.&#8221; Now I am assuming this invalid activity is referring to invalid click activity. I have never clicked on my own ads, I have never encouraged clicks on websites that the ads were placed on, I have read and made sure [...]]]></description>
				<content:encoded><![CDATA[<p>My AdSense just got disabled because apparently it &#8220;poses a risk of generating invalid activity.&#8221; Now I am assuming this invalid activity is referring to invalid <strong>click</strong> activity. I have never clicked on my own ads, I have never encouraged clicks on websites that the ads were placed on, I have read and made sure to follow the policies set by Google, and I have never received any warnings or notifications about invalid activity happening with my AdSense account.</p>
<p>According to the <a href="http://www.google.com/adsense/support/bin/answer.py?answer=57153">Disabled Account FAQ</a>, Google refuses to tell you the invalid click activity they have detected since, &#8220;Because we have a need to protect our proprietary detection system,  we&#8217;re unable to provide our publishers with any information about their  account activity, including any web pages, users, or third-party  services that may have been involved.&#8221;</p>
<p>Furthermore, the only way to contact them is by their <a href="http://www.google.com/support/adsense/bin/request.py?contact=invalid_clicks_appeal">appeal form</a>. You only have one shot at the appeal and if they deny the appeal, they will not look at any further appeals and you are pretty much permanently banned from AdSense since they will not let you open another account.</p>
<p>I am now presented with this when I login to AdSense. I can no longer view any of my reports or any of my account information on file.</p>
<p><a href="http://kramerc.com/wp-content/uploads/2010/09/SS-2010.09.14-00.22.11.png"><img class="size-full wp-image-664 alignnone" title="Google AdSense Account Disabled" src="http://kramerc.com/wp-content/uploads/2010/09/SS-2010.09.14-00.22.11.png" alt="" width="705" height="278" /></a></p>
<p>This was the email I received about my account being disabled. It does not specifically explain what the invalid activity is or what invalid activity they have detected.</p>
<blockquote>
<pre>This message was sent from a notification-only email address that does not
accept incoming email. Please do not reply to this message.
---------------------------------------------------------------

Hello,

After reviewing our records, we've determined that your AdSense account
poses a risk of generating invalid activity. Because we have a
responsibility to protect our AdWords advertisers from inflated costs due
to invalid activity, we've found it necessary to disable your AdSense
account. Your outstanding balance and Google's share of the revenue will
both be fully refunded back to the affected advertisers.

Please understand that we need to take such steps to maintain the
effectiveness of Google's advertising system, particularly the
advertiser-publisher relationship. We understand the inconvenience that
this may cause you, and we thank you in advance for your understanding and
cooperation.

If you have any questions or concerns about the actions we've taken, how
you can appeal this decision, or invalid activity in general, you can find
more information by visiting
<a href="http://www.google.com/adsense/support/bin/answer.py?answer=57153">http://www.google.com/adsense/support/bin/answer.py?answer=57153</a>.

Sincerely,

The Google AdSense Team</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://kramerc.com/2010/09/14/google-adsense-account-disabled/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>lolz.ws and lulz.ws Are Shutting Down on August 9</title>
		<link>http://kramerc.com/2010/08/02/lolz-ws-and-lulz-ws-are-shutting-down-on-august-9/</link>
		<comments>http://kramerc.com/2010/08/02/lolz-ws-and-lulz-ws-are-shutting-down-on-august-9/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 00:42:53 +0000</pubDate>
		<dc:creator>Kramer</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[lolz.ws]]></category>
		<category><![CDATA[lulz.ws]]></category>
		<category><![CDATA[short URL]]></category>
		<category><![CDATA[shutdown]]></category>

		<guid isPermaLink="false">http://kramerc.com/?p=626</guid>
		<description><![CDATA[I have decided to shut down my URL shortening sites, lolz.ws and lulz.ws, on August 9. Here are some of the reasons why I have come to this decision: The lack of traffic on these sites. Most URLs were created by spammers. lolz.ws was in the jwSpamSpy spam list for which reasons I do not [...]]]></description>
				<content:encoded><![CDATA[<p>I have decided to shut down my URL shortening sites, lolz.ws and lulz.ws, on August 9.</p>
<p>Here are some of the reasons why I have come to this decision:</p>
<ul>
<li>The lack of traffic on these sites.</li>
<li>Most URLs were created by spammers.</li>
<li>lolz.ws was in the <a href="http://www.joewein.de/sw/spam-bl-l.htm">jwSpamSpy spam list</a> for which reasons I do not know, causing it to be blocked by some web filters.
<ul>
<li>No email has ever been sent from this domain since the day I registered it.</li>
<li>It has since been taken out of the spam list as I requested but some filters still block the domain.</li>
</ul>
</li>
<li>lolz.ws was once <a href="http://kramerc.com/2010/01/25/iprism-is-blocking-lolz-ws-for-pornography/">blocked for pornography</a>.</li>
<li>The fact that there are many other URL shortening sites out there.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://kramerc.com/2010/08/02/lolz-ws-and-lulz-ws-are-shutting-down-on-august-9/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to Revert Your SVN Repository on Assembla</title>
		<link>http://kramerc.com/2010/07/24/how-to-revert-your-svn-repository-on-assembla/</link>
		<comments>http://kramerc.com/2010/07/24/how-to-revert-your-svn-repository-on-assembla/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 06:36:16 +0000</pubDate>
		<dc:creator>Kramer</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Workarounds]]></category>
		<category><![CDATA[Assembla]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[revert]]></category>
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://kramerc.com/?p=588</guid>
		<description><![CDATA[There is no simple way to revert your repository to a previous revision on Assembla. However, a reversion is possible by following these steps. First, export the SVN repository in your space. This can be done under the Import/Export section of your repository. It&#8217;ll take a minute for the dump to be created. Once that [...]]]></description>
				<content:encoded><![CDATA[<p>There is no simple way to revert your repository to a previous revision on Assembla. However, a reversion is possible by following these steps.</p>
<p>First, export the SVN repository in your space. This can be done under the Import/Export section of your repository. It&#8217;ll take a minute for the dump to be created. Once that has completed, download the repository dump.</p>
<p>Then, extract the contents of the ZIP file to a temporary directory, then run the following commands in the temporary directory:</p>
<pre>svnadmin create REPO_NAME
svnadmin load REPO_NAME &lt; rXX.dump
svnadmin dump -r 1:YY REPO_NAME --incremental &gt; rYY.dump
gzip rYY.dump
</pre>
<p>Replace XX with the current revision of your repository, YY with the revision you wish to revert to, and REPO_NAME with any name, such as your repository&#8217;s name. This name will not be carried over later.</p>
<p>Afterwards, delete the repository tool on Assembla by going to Admin -&gt; Tools, then clicking Delete next to it which is located on the right. Now re-add the Source/SVN repository tool.</p>
<p>Finally, import the dump to the newly created repository by going to the Import/Export section and uploading the gzipped SVN dump. The process will take from a few to several minutes depending on how large your repository is.</p>
<p>Your repository should now be reverted back to the revision you specified.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 225px; width: 1px; height: 1px; overflow: hidden;">
<p>There is no simple way to revert your repository to a previous  revision on Assembla. However, a reversion can be done following these  steps.</p>
<p>First, export the SVN repository in your space. This  can be done under the Import/Export section of your repository. It&#8217;ll  take a minute for the dump to be created. Once that&#8217;s finished download  the dump.</p>
<p>Then, extract the contents of the ZIP file to a temporary directory, then run the following commands in the temporary directory:</p>
<pre>svnadmin create REPO_NAME
svnadmin load REPO_NAME &lt; rXX.dump
svnadmin dump -r 1:YY REPO_NAME --incremental &gt; rYY.dump
gzip rYY.dump
</pre>
<p>Replace  XX with the current revision of your repository, YY with the revision  you wish to revert to, and REPO_NAME with whatever you like. The  temporary repository name will not be carried over.</p>
<p>Afterward,  delete the repository on Assembla by going to Admin -&gt; Tools, then  Delete it on the right. Now re-add the Source/SVN repository.</p>
<p>Finally,  import the dump to the newly created repository by going to the  Import/Export section and uploading the gzipped SVN dump. The process  will take a few to several minutes depending on how big your repository  is.</p>
<p>You&#8217;re repository should now be reverted.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://kramerc.com/2010/07/24/how-to-revert-your-svn-repository-on-assembla/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Outputting A to ZZZ in PHP</title>
		<link>http://kramerc.com/2010/06/23/outputting-a-to-zzz-in-php/</link>
		<comments>http://kramerc.com/2010/06/23/outputting-a-to-zzz-in-php/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 03:21:39 +0000</pubDate>
		<dc:creator>Kramer</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://kramerc.com/?p=523</guid>
		<description><![CDATA[Here is a way to output from A to ZZZ in PHP. There are probably better ways to do this but it works. I wasn&#8217;t able to find an example written in PHP that would do this so I wrote my own. I&#8217;m not sure if there is any use that this code will provide [...]]]></description>
				<content:encoded><![CDATA[<p>Here is a way to output from <strong>A</strong> to <strong>ZZZ</strong> in PHP. There are probably better ways to do this but it works. I wasn&#8217;t able to find an example written in PHP that would do this so I wrote my own. I&#8217;m not sure if there is any use that this code will provide as it is mainly just a proof of concept.</p>
<pre class="brush: php; title: ; notranslate">&lt;?php
$letters = range('a', 'z');

for ($a = 0; $a &lt; 78; $a++)
{
	if ($a &gt;= 26)
	{
		if ($a &gt;= 52)
		{
			// AAA to ZZZ
			$orig_letter = $letters[$a - 52];
			for ($b = 0; $b &lt; 26; $b++)
			{
				$orig_letter2 = $orig_letter . $letters[$b];
				
				for ($c = 0; $c &lt; 26; $c++)
				{
					$letter = $orig_letter2 . $letters[$c];
					echo &quot;$letter\n&quot;;
				}
			}
		}
		else
		{
			// AA to ZZ
			$orig_letter = $letters[$a - 26];
			for ($b = 0; $b &lt; 26; $b++)
			{
				$letter = $orig_letter . $letters[$b];
				echo &quot;$letter\n&quot;;
			}
		}
	}
	else
	{
		// A to Z
		$letter = $letters[$a];
		echo &quot;$letter\n&quot;;
	}
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://kramerc.com/2010/06/23/outputting-a-to-zzz-in-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Serious Privacy Issues with Facebook</title>
		<link>http://kramerc.com/2010/05/07/the-serious-privacy-issues-with-facebook/</link>
		<comments>http://kramerc.com/2010/05/07/the-serious-privacy-issues-with-facebook/#comments</comments>
		<pubDate>Sat, 08 May 2010 04:53:20 +0000</pubDate>
		<dc:creator>Kramer</dc:creator>
				<category><![CDATA[Issues]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[social media]]></category>

		<guid isPermaLink="false">http://kramerc.com/?p=469</guid>
		<description><![CDATA[Facebook has been making a lot of changes recently and many of which I am not pleased with them. Most of the issues mainly come down to privacy, which is slowing eroding away. The default privacy settings on Facebook are defaulted to Everyone. Everytime a new privacy setting comes along, it&#8217;s setting is usually defaulted [...]]]></description>
				<content:encoded><![CDATA[<p>Facebook has been making a lot of changes recently and many of which I am not pleased with them. Most of the issues mainly come down to privacy, <a href="https://www.eff.org/deeplinks/2010/04/facebook-timeline">which is slowing eroding away</a>. The default privacy settings on Facebook are defaulted to Everyone. Everytime a new privacy setting comes along, it&#8217;s setting is usually defaulted to Everyone. It seems that Facebook is trying to push users to be more open and public whether if they know it or not and if they like it or not.</p>
<p><strong>One of the recent changes on Facebook is that the information that is listed on profiles <a href="http://www.eff.org/deeplinks/2010/05/things-you-need-know-about-facebook">have been turned into &#8220;Connections&#8221;</a>.</strong> This means that now just about every piece of information listed on your profile is now associated with a page you like (or are a fan of), and they&#8217;re public too. This includes your current city, hometown, education, work history, and all your interests and activities. The problem with this is your connections are now public to everyone. Sure, you can control the &#8220;Visibility&#8221; of them on your profile, but that doesn&#8217;t mean they won&#8217;t show elsewhere on the site publicly to others that aren&#8217;t your friend. For example, when you make a connection to a page by simply liking the page, it is possible that you will show up on the page under the list of the people that like that certain page. There is, however, pages you cannot control the &#8220;Visibility&#8221; of on your profile and these pages are ones that not categorized, which are the ones placed under the Other category, in your interests. Also, every page you like is also able to show posts on your news feed unless you explicitly choose to hide them from your news feed or decide unlike the page.</p>
<p>I have decided to unlike every page I &#8220;liked&#8221; since I have became annoyed with all the news feed spam I received from these pages and how the connections were made public to everyone. This means that I no longer have any interests listed on my profile, oh well. I have noticed that when you do list your current city, hometown, education, and work history, you do not automatically like the page associated with it. This means if you unlike these pages, Facebook does not remove these pieces of information from your profile.</p>
<p>Another issue is that if you mention a page&#8217;s name in any post on your wall, it may show on up the page itself without you having any say of this happening, regardless if you have a connection with the page or not. If the privacy on the post mentioning the page is set to public, it may be visible for everyone to see on that page.</p>
<p><strong>You are automatically opted in Instant Personalization which automatically shares your public information. </strong>Currently sites such as <a href="http://www.facebook.com/docs">Docs.com</a>, <a href="http://www.facebook.com/apps/application.php?id=139475280761">Pandora</a>, and <a href="http://www.facebook.com/apps/application.php?id=97534753161">Yelp</a> are able to see your public information. You can opt out from Instant Personalization, but this does not prevent your friends from sharing information about you to these sites, which Facebook says, &#8220;Please keep in mind that if you opt out, your friends may still share public Facebook information about you to personalize their experience on these partner sites unless you block the application.&#8221; So in order to fully opt out, you must block every application that is part of Instant Personalization to prevent any information from being shared, which is completely unacceptable.</p>
<p><strong>Data you have set to private is shared with apps you use on Facebook</strong>.<strong> </strong>Almost <em>all</em> your data is shared with applications you authorize. Even your friends can share information about you to applications they use without you knowing. This is a big issue since you are now trusting the application developers to keep your data private. Many of application developers are unknown and this creates a major risk of your private data spreading. Facebook does not check applications to see if they are indeed doing something malicious such as ones out there to steal user&#8217;s information.</p>
]]></content:encoded>
			<wfw:commentRss>http://kramerc.com/2010/05/07/the-serious-privacy-issues-with-facebook/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
