<?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>Williams Orellana&#039;s Blog &#187; Blog</title>
	<atom:link href="http://williamsorellana.org/category/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://williamsorellana.org</link>
	<description>Beta Version</description>
	<lastBuildDate>Tue, 10 Apr 2012 22:08:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Debian needs your art</title>
		<link>http://williamsorellana.org/2012/02/debian-needs-your-art/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=debian-needs-your-art</link>
		<comments>http://williamsorellana.org/2012/02/debian-needs-your-art/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 22:02:59 +0000</pubDate>
		<dc:creator>Williams Orellana</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[Wheezy]]></category>

		<guid isPermaLink="false">http://williamsorellana.org/?p=92</guid>
		<description><![CDATA[The next major Debian release code name &#8216;Wheezy&#8216;  is coming, before this happens the Debian Project is calling for graphics and other artwork to be submitted as proposals for the look and feel of the operating system. As with everything else in Debian, &#8230; <a href="http://williamsorellana.org/2012/02/debian-needs-your-art/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://wiki.debian.org/DebianArt/Themes/Roj" target="_blank"><img class="aligncenter" title="Debian Roj Theme by Eshat Cakar" src="http://www.williamsorellana.org/wp-content/uploads/2012/02/roj_wallpaper.png" alt="Debian Roj Theme Proposal" width="340" height="300" /></a></p>
<p>The next major <a title="The Universal Operating System" href="http://www.debian.org/" target="_blank">Debian</a> release code name &#8216;<a title="Wheezy is a character from the film &quot;Toy Story&quot; " href="http://images.google.com/images?q=Wheezy+Toy+Story" target="_blank">Wheezy</a>&#8216;  is coming, before this happens the Debian Project is calling for graphics and other artwork to be submitted as proposals for the look and feel of the operating system. As with everything else in Debian, collecting artwork is a collaborative effort which Debian shares with its community. That means that <strong>you</strong> can be the one preparing the Wheezy Artwork!</p>
<p>So if you are an artist (or you have basic knowledge of <a title="GNU Image Manipulation Program" href="http://www.gimp.org/" target="_blank">GIMP</a> and creativity <img src='http://williamsorellana.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) and you are passionate about free software and have always wanted to help and did not know how, this is your chance.</p>
<p><a title="Artwork for Wheezy" href="http://wiki.debian.org/DebianDesktop/Artwork/Wheezy" target="_blank">Here</a> you will find all the information you need, so get to work <img src='http://williamsorellana.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Best Regards!!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsorellana.org/2012/02/debian-needs-your-art/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian Timeline</title>
		<link>http://williamsorellana.org/2012/02/debian-timeline/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=debian-timeline</link>
		<comments>http://williamsorellana.org/2012/02/debian-timeline/#comments</comments>
		<pubDate>Fri, 24 Feb 2012 16:57:08 +0000</pubDate>
		<dc:creator>Williams Orellana</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Timeline]]></category>

		<guid isPermaLink="false">http://williamsorellana.org/?p=87</guid>
		<description><![CDATA[The Debian Timeline is an amazing project, now has been updated to include large updates to the Debian Policy, the recent time-based release announcements and a handful of miscellaneous events. It&#8217;s available on the web or in the debian-timeline package. &#8230; <a href="http://williamsorellana.org/2012/02/debian-timeline/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The <a title="Debian Timeline" href="http://timeline.debian.net/" target="_blank">Debian Timeline</a> is an amazing project, now has been updated to include large updates to the <a title="Debian Policy" href="http://www.debian.org/doc/debian-policy/" target="_blank">Debian Policy</a>, the recent time-based release announcements and a handful of miscellaneous events.</p>
<p>It&#8217;s available on the web or in the <code>debian-timeline</code> package. The author welcomes patches and updates (file a bug in the BTS against the package).</p>
<p>Kudos to <a title="lamby" href="https://chris-lamb.co.uk/" target="_blank">lamby</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsorellana.org/2012/02/debian-timeline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Decrypt SQL Stored Procedures</title>
		<link>http://williamsorellana.org/2012/02/decrypt-sql-stored-procedures/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=decrypt-sql-stored-procedures</link>
		<comments>http://williamsorellana.org/2012/02/decrypt-sql-stored-procedures/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 17:07:27 +0000</pubDate>
		<dc:creator>Williams Orellana</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Encrypted]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Stored Procedure]]></category>

		<guid isPermaLink="false">http://williamsorellana.org/?p=36</guid>
		<description><![CDATA[In work I have to use proprietary software, some days ago my boss asked me if I could decrypt some stored procedures in MS SQL 2005, a person whose doesn&#8217;t works for the company anymore decided encrypt some essentials stored procedures, &#8230; <a href="http://williamsorellana.org/2012/02/decrypt-sql-stored-procedures/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In work I have to use proprietary software, some days ago my boss asked me if I could decrypt some stored procedures in MS SQL 2005, a person whose doesn&#8217;t works for the company anymore decided encrypt some essentials stored procedures, so I decided take the challenge <img src='http://williamsorellana.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Here&#8217;s a little resume how the problem was solved:</p>
<p>First of all is ensure that the DAC option is enabled</p>
<p>Since DAC cannot be accessed via network, you must access locally, you can do this putting ADMIN: before the database address and instance (e.g. admin:myserverdefaultinstance), then you must logon in the regular way (DAC don&#8217;t allow the object browser, so you&#8217;re alone) after this, simply go to the database where the stored procedures are located and execute the following script:</p>
<pre name="code" class="sql">
DECLARE @ObjectOwnerOrSchema NVARCHAR(128)
DECLARE @ObjectName NVARCHAR(128)

SET @ObjectOwnerOrSchema = 'dbo'
SET @ObjectName = 'NameOfTheStoredProcedureHERE'

DECLARE @i INT
DECLARE @ObjectDataLength INT
DECLARE @ContentOfEncryptedObject NVARCHAR(MAX)
DECLARE @ContentOfDecryptedObject VARCHAR(MAX)
DECLARE @ContentOfFakeObject NVARCHAR(MAX)
DECLARE @ContentOfFakeEncryptedObject NVARCHAR(MAX)
DECLARE @ObjectType NVARCHAR(128)
DECLARE @ObjectID INT

SET NOCOUNT ON

SET @ObjectID = OBJECT_ID('[' + @ObjectOwnerOrSchema + '].[' + @ObjectName + ']')

-- Check that the provided object exists in the database.
IF @ObjectID IS NULL
BEGIN
RAISERROR('El nombre del objeto provisto no existe en la base de datos.', 16, 1)
RETURN
END

-- Check that the provided object is encrypted.
IF NOT EXISTS(SELECT TOP 1 * FROM syscomments WHERE id = @ObjectID AND encrypted = 1)
BEGIN
RAISERROR('El objeto provisto existe, sin embargo no esta encriptado. Abortando.', 16, 1)
RETURN
END

-- Determine the type of the object
IF OBJECT_ID('[' + @ObjectOwnerOrSchema + '].[' + @ObjectName + ']', 'PROCEDURE') IS NOT NULL
SET @ObjectType = 'PROCEDURE'
ELSE
IF OBJECT_ID('[' + @ObjectOwnerOrSchema + '].[' + @ObjectName + ']', 'TRIGGER') IS NOT NULL
SET @ObjectType = 'TRIGGER'
ELSE
IF OBJECT_ID('[' + @ObjectOwnerOrSchema + '].[' + @ObjectName + ']', 'VIEW') IS NOT NULL
SET @ObjectType = 'VIEW'
ELSE
SET @ObjectType = 'FUNCTION'

-- Get the binary representation of the object- syscomments no longer holds
-- the content of encrypted object.
SELECT TOP 1 @ContentOfEncryptedObject = imageval
FROM sys.sysobjvalues
WHERE objid = OBJECT_ID('[' + @ObjectOwnerOrSchema + '].[' + @ObjectName + ']')
AND valclass = 1 and subobjid = 1

SET @ObjectDataLength = DATALENGTH(@ContentOfEncryptedObject)/2

-- We need to alter the existing object and make it into a dummy object
-- in order to decrypt its content. This is done in a transaction
-- (which is later rolled back) to ensure that all changes have a minimal
-- impact on the database.
SET @ContentOfFakeObject = N'ALTER ' + @ObjectType + N' [' + @ObjectOwnerOrSchema + N'].[' + @ObjectName + N'] WITH ENCRYPTION AS'

WHILE DATALENGTH(@ContentOfFakeObject)/2 &lt; @ObjectDataLength
BEGIN
IF DATALENGTH(@ContentOfFakeObject)/2 + 8000 &lt; @ObjectDataLength
SET @ContentOfFakeObject = @ContentOfFakeObject + REPLICATE(N'-', 8000)
ELSE
SET @ContentOfFakeObject = @ContentOfFakeObject + REPLICATE(N'-', @ObjectDataLength - (DATALENGTH(@ContentOfFakeObject)/2))
END

-- Since we need to alter the object in order to decrypt it, this is done
-- in a transaction
SET XACT_ABORT OFF
BEGIN TRAN

EXEC(@ContentOfFakeObject)

IF @@ERROR &lt;&gt; 0
ROLLBACK TRAN

-- Get the encrypted content of the new "fake" object.
SELECT TOP 1 @ContentOfFakeEncryptedObject = imageval
FROM sys.sysobjvalues
WHERE objid = OBJECT_ID('[' + @ObjectOwnerOrSchema + '].[' + @ObjectName + ']')
AND valclass = 1 and subobjid = 1

IF @@TRANCOUNT &gt; 0
ROLLBACK TRAN

-- Generate a CREATE script for the dummy object text.
SET @ContentOfFakeObject = N'CREATE ' + @ObjectType + N' [' + @ObjectOwnerOrSchema + N'].[' + @ObjectName + N'] WITH ENCRYPTION AS'

WHILE DATALENGTH(@ContentOfFakeObject)/2 &lt; @ObjectDataLength
BEGIN
IF DATALENGTH(@ContentOfFakeObject)/2 + 8000 &lt; @ObjectDataLength
SET @ContentOfFakeObject = @ContentOfFakeObject + REPLICATE(N'-', 8000)
ELSE
SET @ContentOfFakeObject = @ContentOfFakeObject + REPLICATE(N'-', @ObjectDataLength - (DATALENGTH(@ContentOfFakeObject)/2))
END

SET @i = 1

--Fill the variable that holds the decrypted data with a filler character
SET @ContentOfDecryptedObject = N''

WHILE DATALENGTH(@ContentOfDecryptedObject)/2 &lt; @ObjectDataLength
BEGIN
IF DATALENGTH(@ContentOfDecryptedObject)/2 + 8000 &lt; @ObjectDataLength
SET @ContentOfDecryptedObject = @ContentOfDecryptedObject + REPLICATE(N'A', 8000)
ELSE
SET @ContentOfDecryptedObject = @ContentOfDecryptedObject + REPLICATE(N'A', @ObjectDataLength - (DATALENGTH(@ContentOfDecryptedObject)/2))
END

WHILE @i BEGIN
--xor real &amp; fake &amp; fake encrypted
SET @ContentOfDecryptedObject = STUFF(@ContentOfDecryptedObject, @i, 1,
NCHAR(
UNICODE(SUBSTRING(@ContentOfEncryptedObject, @i, 1)) ^
(
UNICODE(SUBSTRING(@ContentOfFakeObject, @i, 1)) ^
UNICODE(SUBSTRING(@ContentOfFakeEncryptedObject, @i, 1))
)))

SET @i = @i + 1
END

-- PRINT the content of the decrypted object
select substring(@ContentOfDecryptedObject, len(@ContentOfDecryptedObject) - 1000, 1000)

-- PRINT the content of the decrypted object
PRINT(@ContentOfDecryptedObject)
</pre>
<p>and that it&#8217;s <img src='http://williamsorellana.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  I hope this can be useful to someone.</p>
<p>Best Regards!!</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsorellana.org/2012/02/decrypt-sql-stored-procedures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install PEAR on Debian Squeeze being normal user</title>
		<link>http://williamsorellana.org/2012/02/install-pear-on-debian-squeeze-being-normal-user/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=install-pear-on-debian-squeeze-being-normal-user</link>
		<comments>http://williamsorellana.org/2012/02/install-pear-on-debian-squeeze-being-normal-user/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 16:42:07 +0000</pubDate>
		<dc:creator>Williams Orellana</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PEAR]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://williamsorellana.org/?p=70</guid>
		<description><![CDATA[Sometimes when you need to install PEAR, you do not want to do it globally, an easy way to do this is what I show below. How do I do? &#160; To carry out the task we need the file phar that contains the PEAR package manager. You can download with wget, just have to open a terminal and run the following &#8230; <a href="http://williamsorellana.org/2012/02/install-pear-on-debian-squeeze-being-normal-user/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Sometimes when you need to install PEAR, you do not want to do it globally, an easy way to do this is what I show below.</p>
<h4>How do I do?</h4>
<p>&nbsp;</p>
<p>To carry out the task we need the file <a title="Phar file" href="http://pear.php.net/go-pear.phar" target="_blank">phar</a> that contains the PEAR package manager. You can download with wget, just have to open a terminal and run the following command.</p>
<pre>wget http://pear.php.net/go-pear.phar</pre>
<p>&nbsp;<br />
If you execute the command</p>
<pre>$ php go-pear.phar</pre>
<p>&nbsp;<br />
Really nothing happens, only when you look in /var/log/syslog you can see what really happens, Suhosin indicating the error occurred.</p>
<p><strong>Why?</strong></p>
<p>By default the version of PHP that has Debian provides built the <a title="Suhosin" href="http://www.hardened-php.net/suhosin/" target="_blank">Suhosin</a> patch which adds security to the interpreter, but results in slight discomfort for developers.</p>
<p><strong>How I can fix?</strong></p>
<p>Really is very easy, we just have to tell the PHP interpreter to ignore the directive only for this run and run the phar indicated:</p>
<pre>$ php -d suhosin.executor.include.whitelist="phar" go-pear.phar</pre>
<p>&nbsp;</p>
<p>And that&#8217;s it, easy right?</p>
<p>I hope it&#8217;s useful for you <img src='http://williamsorellana.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Best Regards!!</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsorellana.org/2012/02/install-pear-on-debian-squeeze-being-normal-user/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming in Python</title>
		<link>http://williamsorellana.org/2012/02/programming-in-python/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=programming-in-python</link>
		<comments>http://williamsorellana.org/2012/02/programming-in-python/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 22:34:39 +0000</pubDate>
		<dc:creator>Williams Orellana</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[EBooks]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://williamsorellana.org/?p=56</guid>
		<description><![CDATA[As the title says, I decided to start the journey of learning a new programming language, I have finally decided by Python, So here I leave a few links where you can find e-books to get started in learning this &#8230; <a href="http://williamsorellana.org/2012/02/programming-in-python/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As the title says, I decided to start the journey of learning a new programming language, I have finally decided by Python, So here I leave a few links where you can find e-books to get started in learning this great programming language.</p>
<h3><a title="A byte of Python" href="http://www.swaroopch.com/notes/Python" target="_blank">A byte of Python</a></h3>
<p>Is a great benninger&#8217;s book on Python by Swaroop C H.</p>
<h3><a title="Python Programming" href="http://en.wikibooks.org/wiki/Python_Programming" target="_blank">Python Programming</a></h3>
<p>Is a wikibook guide to Python</p>
<h3><a title="Think Python" href="http://www.greenteapress.com/thinkpython/thinkpython.html" target="_blank">Think Python</a></h3>
<p>is a beginner&#8217;s programming book written by Zed Shaw. It was written for Python 2.6.</p>
<p>&nbsp;</p>
<p>And last but not least, an online interactive programming resource <a title="code.he.net" href="http://code.he.net/exerciselist.php?view=python" target="_blank">code.he.net</a>, I hope that these resources are of great use to you, and remember never give up.</p>
<p>Best Regards!!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsorellana.org/2012/02/programming-in-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Starting again</title>
		<link>http://williamsorellana.org/2012/01/starting-again/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=starting-again</link>
		<comments>http://williamsorellana.org/2012/01/starting-again/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 22:44:30 +0000</pubDate>
		<dc:creator>Williams Orellana</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://williamsorellana.org/?p=14</guid>
		<description><![CDATA[Well, new year and new blog, but not because I want in that way, it&#8217;s because my old hosting provider decided suspend my account, why? I don&#8217;t know, I just know that they want me to upgrade my account to &#8230; <a href="http://williamsorellana.org/2012/01/starting-again/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well, new year and new blog, but not because I want in that way, it&#8217;s because my old hosting provider decided suspend my account, why? I don&#8217;t know, I just know that they want me to upgrade my account to reactivate it again. So I decided change my hosting provider <img src='http://williamsorellana.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Unfortunately, I couldn&#8217;t make a backup of the older posts <img src='http://williamsorellana.org/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  anyway  I don&#8217;t  think much was lost, is just as well, so I can start again and in a best way <img src='http://williamsorellana.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>I hope do it better this  time and I will try to update this space more often, until then&#8230;</p>
<p>Best regards!!</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsorellana.org/2012/01/starting-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

