<?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>Musings of a technophile</title>
	<atom:link href="http://www.omegaprojex.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.omegaprojex.com</link>
	<description>Just another blog from a computer nerd</description>
	<lastBuildDate>Thu, 25 Feb 2010 15:57:54 +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>Deploying External and Unsafe SQL CLR Functions</title>
		<link>http://www.omegaprojex.com/index.php/2010/01/06/deploying-external-and-unsafe-sql-clr-functions/</link>
		<comments>http://www.omegaprojex.com/index.php/2010/01/06/deploying-external-and-unsafe-sql-clr-functions/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 14:20:00 +0000</pubDate>
		<dc:creator>ElementZero</dc:creator>
				<category><![CDATA[Computer Troubleshooting]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.omegaprojex.com/index.php/2010/01/06/deploying-external-and-unsafe-sql-clr-functions/</guid>
		<description><![CDATA[If you ever have to deploy a SQL CLR Function that is not using Safe Permissions, then you may run into a roadblock where you get the error 

CREATE ASSEMBLY for assembly 'MyProject' failed because assembly 'MyProject' is not authorized for PERMISSION_SET = EXTERNAL_ACCESS.
The assembly is authorized when either of the following is true:
the database [...]]]></description>
			<content:encoded><![CDATA[<p>If you ever have to deploy a SQL CLR Function that is not using Safe Permissions, then you may run into a roadblock where you get the error </p>
<pre class="wikitext">
CREATE ASSEMBLY for assembly 'MyProject' failed because assembly 'MyProject' is not authorized for PERMISSION_SET = EXTERNAL_ACCESS.
The assembly is authorized when either of the following is true:
the database owner (DBO) has EXTERNAL ACCESS ASSEMBLY permission and the database has the TRUSTWORTHY database property on;
or the assembly is signed with a certificate or an asymmetric key that has a corresponding login with EXTERNAL ACCESS ASSEMBLY permission.
If you have restored or attached this database, make sure the database owner is mapped to the correct login on this server. If not, use sp_changedbowner to fix the problem.
</pre>
<p>Before I go futher, let me redefine the different permissions sets for SQL CLR</p>
<ul>
<li>
<strong>SAFE:</strong> This permissions set is applied by default if not specified otherwise, and SAFE is the most restrictive permission set. Code executed by an assembly with SAFE permissions cannot access external system resources such as files, the network, environment variables, or the registry.
</li>
<li>
<strong>EXTERNAL_ACCESS:</strong> This permissions set enables assemblies to access certain external system resources such as files, networks, environmental variables, and the registry.
</li>
<li>
<strong>UNSAFE:</strong> enables assemblies unrestricted access to resources, both within and outside an instance of SQL Server. Code running from within an UNSAFE assembly can call unmanaged code as well.
</li>
</ul>
<p>SAFE is highly recommended by Microsoft.</p>
<p>So basically you are getting the error because using EXTERNAL or UNSAFE allows code to do something outside the scope of what SQL can normally do, and therefore for security measures SQL blocks you from just going ahead and loading this onto the server.</p>
<p>There are two fixes to this.  The first is to go to the database you will be deploying the CLR function to and running the command</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #597EBB; font-weight: bold;">ALTER</span> <span style="color: #597EBB; font-weight: bold;">DATABASE</span> Databasename <span style="color: #597EBB; font-weight: bold;">SET</span> TRUSTWORTHY <span style="color: #597EBB; font-weight: bold;">ON</span>;</pre></div></div>

<p>While this works, it also is not the right solution as this will enable your database to run any CLR that is deployed to it, making it easier for bad or unreviewed code to get onto the SQL Server (again &#8211; this is bad).</p>
<p>The correct solution is to make an Asymmetric Key for your CLR Function, create a user to use the key, and then Grant the permission set access for that user.  To do this you do the following:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #597EBB; font-weight: bold;">USE</span> master
GO 
<span style="color: #808080; font-style: italic;">-- First Create the Asymmetric Key from the Assembly</span>
<span style="color: #597EBB; font-weight: bold;">CREATE</span> ASYMMETRIC <span style="color: #597EBB; font-weight: bold;">KEY</span> SQLCLRUserKey
<span style="color: #597EBB; font-weight: bold;">FROM</span> EXECUTABLE FILE <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'C:\SQL CLR Functions\SQLCLR\bin\Release\SQLCLR.dll'</span>
GO</pre></div></div>

<p>You can change &#8220;SQLCLRUserKey&#8221; to whatever you would like the key name to be, and the path to the dll must be the path to your CLR functions output dll.</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">-- Create the Login from the Asymmetric Key</span>
<span style="color: #597EBB; font-weight: bold;">CREATE</span> LOGIN SQLCLRUser <span style="color: #597EBB; font-weight: bold;">FROM</span> ASYMMETRIC <span style="color: #597EBB; font-weight: bold;">KEY</span> SQLCLRUserKey
GO</pre></div></div>

<p>This creates the user based off the key we made in step 1.  Again, &#8220;SQLCLRUser&#8221; can be whatever user name you want to use, and you just need to make sure &#8220;SQLCLRUserKey&#8221; matches whatever name you used for Step 1.</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">-- Grant the External Access Priviledge to the Login</span>
<span style="color: #597EBB; font-weight: bold;">GRANT</span> EXTERNAL ACCESS ASSEMBLY <span style="color: #597EBB; font-weight: bold;">TO</span> SQLCLRUser
GO</pre></div></div>

<p>This grants the permissions for this user to deploy SQL CLR Projects with EXTERNAL permission sets.  In order to do UNSAFE just change the words &#8220;EXTERNAL ACCESS&#8221; to &#8220;UNSAFE&#8221;.</p>
<p>Last is</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #597EBB; font-weight: bold;">USE</span> <span style="color: #66cc66;">&#91;</span>MyDatabase<span style="color: #66cc66;">&#93;</span>
GO
<span style="color: #808080; font-style: italic;">-- Add a database user in the SQLCLR_Net Database for the Login</span>
<span style="color: #597EBB; font-weight: bold;">CREATE</span> USER SQLCLRUser <span style="color: #597EBB; font-weight: bold;">FOR</span> LOGIN SQLCLRUser
GO</pre></div></div>

<p>Where &#8220;MyDatabase&#8221; is the name of the database where your CLR Project will be deployed.  This creates the user mapping in that database.</p>
<p>After this, you should be able to deploy your project as normal, and by doing these steps you will just be granting permissions for the specified CLR Project instead of ANY CLR Project (much better don&#8217;t you think?)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.omegaprojex.com/index.php/2010/01/06/deploying-external-and-unsafe-sql-clr-functions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hacking SQL replication to avoid the snapshot</title>
		<link>http://www.omegaprojex.com/index.php/2009/11/23/hacking-sql-replication-to-avoid-the-snapshot/</link>
		<comments>http://www.omegaprojex.com/index.php/2009/11/23/hacking-sql-replication-to-avoid-the-snapshot/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 15:22:41 +0000</pubDate>
		<dc:creator>ElementZero</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.omegaprojex.com/?p=566</guid>
		<description><![CDATA[I have a table at my company that is replicated from a live database server to a server that is used for reporting.  The live server is in one location while the reporting server is located in the building where I work, and they are connected via a point-to-point T1 line.  The problem [...]]]></description>
			<content:encoded><![CDATA[<p>I have a table at my company that is replicated from a live database server to a server that is used for reporting.  The live server is in one location while the reporting server is located in the building where I work, and they are connected via a point-to-point T1 line.  The problem is that the table that is replicated is now over 60GB, so if replication breaks and I have to reinitialize replication, it can take days or maybe even weeks to transfer the snapshot data over.</p>
<p>What I found really annoying is that I have backups of the primary database and I perform log shipping from the publishing server to the secondary server for backup purposes.  That means I already had most of the data of that table that was going to be duplicated and sent over in a snapshot.  I figured there had to be some way to be able to import the data I already had into the replicated table on the subscriber, and then catch up the records to the replicated data, and then have replication continue to add records after that.  I talked to a friend of mine and he had some idea&#8217;s on how to &#8220;hack&#8221; this, however it was more related to a process he was doing and didn&#8217;t really fit my goals.  After attempting to find a work around for the better part of a day, I wound up finally finding the solution, and figured I would write it down here.</p>
<p>So to begin &#8211; you first need to already have a backup or bulk insert file, or log shipped database at the subscribers location.</p>
<p>1] <strong>Stop the distribution from occurring</strong>.  You need to open up the distribution agent and stop the process.  This is done by going to Replication&#8212;> Local Publications&#8212;>Publication&#8211;>Subscription<br />
and right clicking and clicking properties in SQL Server Manager.  Then click Stop.</p>
<p>2] <strong>Re-initialize the subscription</strong>.  Right click the subscription and click &#8220;Reinitialize&#8221;.  On the screen that pops up, select &#8220;Use a new snapshot&#8221; and &#8220;Generate a new snapshot now&#8221;.</p>
<p>3] <strong>Monitor the snapshot process</strong>.  Right click the publication and click &#8220;View snapshot agent status&#8221;.  You are basically going to wait until it says &#8220;[100%] A snapshot of x article(s) was generated.&#8221;, where x is the number of articles you are replicating.  Steps 4 and 5 can be done while waiting for this step to complete.</p>
<p>4] <strong>Script out and remove indexes from the subscriber table</strong>.  I would recommend scripting out all the drop statements and then the create statements for all indexes except the primary key on the subscriber table first, then dropping the indexes.  By removing the indexes, you will stop the bulk insert from having to update indexes, which can speed up bulk insert TREMENDOUSLY (a.k.a &#8211; hours instead of days).</p>
<p>5] <strong>Import your data into the subscriber table</strong>.  While the snapshot is being done, go ahead and import your data into the subscriber.  If you need to make the table first then go ahead and do so but make sure it matches the schema of the table on the publisher.  Bulk insert works the best to import the data.  If you need to copy data from a log shipped database, use bcp to dump the table first, then all you have to do is change the destination table and change &#8220;out&#8221; to &#8220;in&#8221; for the bcp command, easy stuff.</p>
<p>6] <strong>&#8220;Hack&#8221; the snapshot files</strong>.  Once the snapshot is done, You need to go into the snapshot folder (this is defined in your publication) and find the files that were created by the snapshot.  Inside the folder there will be a folder called unc, open that and there will be a list of all the publications you have.  Open the folder for the publication you are working on, and there will be a folder name which basically is the time at which the snapshot started.  You may have multiple folders here if you have multiple snapshots, but it&#8217;s ok &#8211; just find the folder that has the highest date time and go into it (you may want to look at the date modified if you are having a hard time figuring the folder out).  Inside the folder will be all the snapshot files.  They are follow the following file types:</p>
<ul>
<li><strong>*.bcp</strong> &#8211; contains the snapshot data of the table to be replicated</li>
<li><strong>*.pre</strong> &#8211; contains a script to execute on the subscriber in order to set up replication</li>
<li><strong>*.idx</strong> &#8211; The primary key index creation script</li>
<li><strong>*.sch</strong> &#8211; The schema for all the stored procedures, the tables, and any other things that will be needed to continue replication on the subscriber once the snapshot is delivered</strong>
</ul>
<p>what we&#8217;re going to do is basically make it so that the snapshot never does anything.  To make that happen, we will be backing up all the files, and then replacing the .bcp, .pre, and .idx files with empty files, and then modifying the .sch file.  You either do this manually (just make a folder called backup in that directory and do what I have started above), or you can make a batch file the does the following:</p>
<pre>
mkdir backup

for /f "tokens=*" %%a in ('dir /b *.bcp') do move %%a backup

for /f "tokens=*" %%a in ('dir /b *.pre') do move %%a backup

for /f "tokens=*" %%a in ('dir /b *.idx') do move %%a backup

for /f "tokens=*" %%a in ('dir /b backup') do echo. 2> %%a

for /f "tokens=*" %%a in ('dir /b *.sch') do copy %%a backup
</pre>
<p>which will basically do all of that for you; just put put it in the subscription directory and run it.  Now go into the *.sch file(s) and remove the drop table and create table sections at the very tops of those files.  Delete until you get to the &#8220;GO&#8221; statement right after the create table statement.  Save the file.</p>
<p>7] <strong>Start replication distribution</strong>.  Go back into SQL Server Manager and bring up the properties of your subscription again.  The process should still be stopped from step 1.  Assuming step 5 is done, you can go ahead and start the process now.  It should quickly state that the snapshot has been sent, and then proceed on to saying that x amount of commands were transferred.</p>
<p>8] <strong>Catch up the difference between the snapshot and the data you imported</strong>.  The problem now is going to be that you have a gap between whatever data you imported, and the last record of the snapshot.  The distribution will only send rows that occurred AFTER the snapshot, so if your backup does not go up to the same point as the snapshot, you&#8217;re going to have to catch up these rows manually.  This is the reason that this process only works for tables that will not have their rows updated or deleted &#8211; because the log reader agent doesn&#8217;t know the difference between your backup and where it is at currently.  If however your backup was form something like log shipping, and therefore you could have made the backup AFTER the snapshot was done, this should prove not to be an issue.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.omegaprojex.com/index.php/2009/11/23/hacking-sql-replication-to-avoid-the-snapshot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Hajime no Ippo is one of my favorite animes</title>
		<link>http://www.omegaprojex.com/index.php/2009/07/20/why-hajime-no-ippo-is-one-of-my-favorite-animes/</link>
		<comments>http://www.omegaprojex.com/index.php/2009/07/20/why-hajime-no-ippo-is-one-of-my-favorite-animes/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 13:23:41 +0000</pubDate>
		<dc:creator>ElementZero</dc:creator>
				<category><![CDATA[Anime]]></category>

		<guid isPermaLink="false">http://www.omegaprojex.com/index.php/2009/07/20/why-hajime-no-ippo-is-one-of-my-favorite-animes/</guid>
		<description><![CDATA[I recently found out that Hajime no Ippo had started a Season 2 in January (The New Challenge).  I had been thinking about reading the manga to get my Ippo fix, but this should hold me out a bit longer, if not catch me up to the massive 900+ chapter manga.  
After hearing [...]]]></description>
			<content:encoded><![CDATA[<p>I recently found out that Hajime no Ippo had started a Season 2 in January (The New Challenge).  I had been thinking about reading the manga to get my Ippo fix, but this should hold me out a bit longer, if not catch me up to the massive 900+ chapter manga.  </p>
<p>After hearing about season 2, I actually watched the entire first season (75 episodes) and the 2 specials again just to got up.  That makes it the first anime that I have ever watched over again (excluding anime movies).  I can&#8217;t wait to start watching the second season <img src="http://www.omegaprojex.com/wp-content/plugins/wp-smiley-switcher/noktahhitam/icon_biggrin.gif" alt="" />.</p>
<p>I watched Hajime no Ippo years ago back in 2001-2003 when it came on originally.  Normally it&#8217;s not the type of Anime I go for (being a sports Anime and being about boxing, which at the time I could have cared less about), but a friend got me to see the first ep and I was hooked after that.  HnI is not just about boxing as there is a HUGE amount of character development, with most of the matches even having character development inside of them.  Also the matches come fairly quickly, as thee is never really more than 5 episodes that go by before Ippo is at least weighing in for his next match.  In other words, this is not one of those &#8216;filler&#8217; animes &#8211; as it shouldn&#8217;t be, since the manga has been in circulation since 1991.</p>
<p>Anyways, I think what really draws me to this anime is A) The great character development and attention to detail B) The choreography of the fight scenes and C) the &#8216;comeback&#8217; nature of each of Ippo&#8217;s matches and how he learns to fight back.</p>
<p>The anime is definitely a shonen type of series, and I doubt any but a few girls would enjoy it; even thought the plot and character development is great, there still is a lot of fighting.  The series even sort of makes fun of this with at least two girls characters who don&#8217;t see a reason for boxing (Kumi &#8211; Ippo&#8217;s gf and Ippo&#8217;s mom).  Still I would recommend it to anyone as a great series, it seems like this series gets looked over by too many people do to it being a more sports related anime.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.omegaprojex.com/index.php/2009/07/20/why-hajime-no-ippo-is-one-of-my-favorite-animes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zelda: Twilight Princess</title>
		<link>http://www.omegaprojex.com/index.php/2009/05/05/zelda-twilight-princess/</link>
		<comments>http://www.omegaprojex.com/index.php/2009/05/05/zelda-twilight-princess/#comments</comments>
		<pubDate>Tue, 05 May 2009 12:57:50 +0000</pubDate>
		<dc:creator>ElementZero</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.omegaprojex.com/index.php/2009/05/05/zelda-twilight-princess/</guid>
		<description><![CDATA[I finally beat Zelda last night.  Even though the game came out three years ago, I didn&#8217;t get a Wii until recently, so this was my first chance to hack away at the game, and what a beautiful game it is.  I&#8217;m a big fan of the Super Nintendo Zelda and the Nintendo [...]]]></description>
			<content:encoded><![CDATA[<p>I finally beat Zelda last night.  Even though the game came out three years ago, I didn&#8217;t get a Wii until recently, so this was my first chance to hack away at the game, and what a beautiful game it is.  I&#8217;m a big fan of the Super Nintendo Zelda and the Nintendo 64 Zelda, so obviously I was expecting this game to be just as good &#8211; and I wasn&#8217;t disappointed.  </p>
<p>This time around, Link has to fight off the Twilight, basically kind of like another dimension, and eventually save Hyrule from the Evil wizard Zant.  In order to accomplish this, Link morphs into a wolf form while in the Twilight, and has different tools at his disposal while in that form (seeing invisible things, digging a hole through a secret underground passage).  He also comes across Midna, a girl from the Twilight who helps him in various ways such as portals, advice and teleporting objects to other places on the maps.  </p>
<p>This game definitely follows the same style as the Nintendo 64 Zelda.  It even has the Z-targeting the same as in Ocarina of Time (OoT), and you even visit certain places that you visited in OoT such as the Temple of Time.  I did bother to look it up and according to the lore, Twilight Princess takes place hundreds of years after OoT &#8211; so there is a method to the madness.</p>
<p>The only thing I found disappointing about this game was that the bosses were all way too easy.  Heck, the first boss of the game can&#8217;t even hit you if you stand far enough back, and yet you are able to hit it just fine from there.  I don&#8217;t think there was one time in the entire game that I came even remotely close to dying on a boss &#8211; even on the final one.</p>
<p>In any case, the puzzles remain just as difficult and fun to figure out as they were in previous installments of the series &#8211; not too hard, not too easy.  You also get weapons that are new to the Zelda series, such as a Ball and Chain &#8211; whihc let&#8217;s you smash huge boulders and ice, and the Spinner &#8211; which is a spinning top you ride that can ride along special pathways found on walls.  I really liked the Spinner, although I felt it wasn&#8217;t used enough &#8211; you do fight a boss with it and that boss fight just seemed kinda epic.</p>
<p>Anyways, if you have not played this game yet, you should try it.  It&#8217;s available for the GameCube as well as the Wii &#8211; although the Wii version should be much more fun since you get to swing the Wiimote in order to swing Link&#8217;s sword and the like.  I wouldn&#8217;t say this is the best Zelda game ever, but it&#8217;s definitely in the top three.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.omegaprojex.com/index.php/2009/05/05/zelda-twilight-princess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A wonderful weekend</title>
		<link>http://www.omegaprojex.com/index.php/2009/04/29/a-wonderful-weekend/</link>
		<comments>http://www.omegaprojex.com/index.php/2009/04/29/a-wonderful-weekend/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 01:41:35 +0000</pubDate>
		<dc:creator>ElementZero</dc:creator>
				<category><![CDATA[Family and Everyday Life]]></category>
		<category><![CDATA[Ethan]]></category>
		<category><![CDATA[Logan]]></category>
		<category><![CDATA[Madelyn]]></category>

		<guid isPermaLink="false">http://www.omegaprojex.com/?p=608</guid>
		<description><![CDATA[So this weekend was pretty nice.  We kicked it off with some swimming at the pool on Friday night.  It was the third time we had attempted to go swimming this year so far, and this time the water was acceptable, although still cold.  Luckily Ethan this time seemed to finally remember [...]]]></description>
			<content:encoded><![CDATA[<p>So this weekend was pretty nice.  We kicked it off with some swimming at the pool on Friday night.  It was the third time we had attempted to go swimming this year so far, and this time the water was acceptable, although still cold.  Luckily Ethan this time seemed to finally remember his &#8220;swimming days&#8221; from last year, and was able to jump off the wall and swim to me again.  I&#8217;m pretty happy about that since I we hadn&#8217;t seem him swim yet, and we were worried he had forgotten it all.</p>
<p>On Saturday we decided to go talk to the furniture people about our couch.  It has a stain and, since the furniture people cannot get it out and we had bought the warranty on it, they owe us a new couch.  They had sent out a Stanley Steamer truck that morning and even those guys couldn&#8217;t get it out.  We had got the fabric protector stuff applied, so supposedly any stain should have come out of the couch &#8211; however we didn&#8217;t think it &#8220;really&#8221; got applied.  Since I get a brand new couch after two years though &#8211; not like I care.  Anyways, we talked to them for a bit (have to go back in a few weeks to buy a new one) and then headed over to Bubbalou&#8217;s Bodacious BBQ &#8211; undoubtedly the best BBQ joint in town (and from what Dad says &#8211; one of the best places he&#8217;s ever been to &#8211; and he&#8217;s been to a lot of BBQ joints).  The boys like it there &#8211; it has a little train that goes around a track on the ceiling, so they like to look at that.</p>
<p>Next we went to Best Buy and looked at the TV&#8217;s and netbook computers.  My wife is thinking about getting a netbook just because 1) they are cheap 2) The are extremely portable 3) she wants to get rid of her computer so she can move my PC into our bedroom in it&#8217;s place.  We looked at the new OLED TV&#8217;s.  At 3mm thick, it was like looking at a pane of glass &#8211; quite impressive (and equally expensive).  They also had some surround sound speakers &#8211; two speakers @ $1,299 a piece &#8211; insane!</p>
<p>For our last stop we went to a plant nursery and butterfly garden.  It was REALLY nice and all the plants looked very healthy.   We wound up staying there for a couple hours while we browsed the selection.  We got some flowers to make a little garden (where no sun shines in our yard in a certain corner) and some sod.  Let me tell you &#8211; the Home Depot sod is like garbage compared to this stuff.  Home Depot charges $5.00 for a 2 x 1 foot piece, whereas this place charge $1.39 for the same size.  The Home depot grass is normally half dead as well &#8211; this stuff looked like they had just plucked it from the greenest field you ever saw like 5 minutes ago.  We took all the items home and planted them all &#8211; Ethan had a fun time digging with the rake and shovel as it was something he had been looking forward to for a while.  We rounded off the day with another trip to the pool where Ethan did even better than the day before.</p>
<p>On Sunday we went to Toys-R-Us and purchased a 6 foot around hard plastic swimming pool.  I had to tie it to the roof rack (lucky thing I keep rope in my car!) and, after having to stop once to &#8220;enhance my rope placement&#8221;, we managed to get it home.  We had a picnic in the back with some Publix subs and fried chicken we had bought on the way home.  Logan went down for a nap, but Ethan was excited to go play in his pool.  We filled it up and he had fun going down the slide that was built into the pool.  After about an hour we got Logan up and tried to get him into the pool.  He wasn&#8217;t into it much though as the water was too cold for him.  Eventually we dumped about 15 gallons of nearly boiling water into the pool and, although that made it about normal temperature, we still could not get him in.  We went ahead and put Madelyn into the pool to see how she would like it and she splashed a little before we had to get her out (Ethan was treating the pool more like a &#8220;wave pool&#8221<img src="http://www.omegaprojex.com/wp-content/plugins/wp-smiley-switcher/noktahhitam/icon_wink.gif" alt="" />.  Logan must have decided not to be shown up by his baby sister after that though cause he jumped right in.</p>
<p>All in all we probably stayed out there for like 3-4 hours; the was just a beautiful day and it felt so nice to just sit there and soak up the sun &#8211; I even dozed off a couple times heh.</p>
<p>It was just a perfect weekend really, and the weather just couldn&#8217;t have been any nicer.  I did feel a little sad at the end of the weekend though because I just kept thinking about how the boys were growing up and how in a few years they just wouldn&#8217;t be content to just play with a pool for so many hours &#8211; no matter how big or how many &#8220;cool features&#8221; the pool had.  Ah, life goes by so fast; babies grow up so quick.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.omegaprojex.com/index.php/2009/04/29/a-wonderful-weekend/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>We are moving to Japan!</title>
		<link>http://www.omegaprojex.com/index.php/2009/04/01/we-are-moving-to-japan/</link>
		<comments>http://www.omegaprojex.com/index.php/2009/04/01/we-are-moving-to-japan/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 15:51:28 +0000</pubDate>
		<dc:creator>ElementZero</dc:creator>
				<category><![CDATA[Family and Everyday Life]]></category>

		<guid isPermaLink="false">http://www.omegaprojex.com/?p=602</guid>
		<description><![CDATA[So I&#8217;ve been thinking about this for a while, but since I&#8217;m so into Anime and the Japanese culture, I&#8217;ve talked with my wife for many nights about it and we decided that we are going to move to Japan on April 20th (right after my birthday).  I&#8217;ve already given my two week notice, [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve been thinking about this for a while, but since I&#8217;m so into Anime and the Japanese culture, I&#8217;ve talked with my wife for many nights about it and we decided that we are going to move to Japan on April 20th (right after my birthday).  I&#8217;ve already given my two week notice, and I can&#8217;t wait to get packed and fly over.</p>
<p>I haven&#8217;t told my parents yet, not sure how I&#8217;m going to phrase it yet.  I mean, they like to see the kids and all &#8211; so it will be hard for them, but I know that this is the right move for us, so I&#8217;m sure somehow I can get them to understand.</p>
<p>I guess what I&#8217;m really the most excited about with moving there is how much cheaper stuff will be.  I mean &#8211; jeans?  $10.  Shoes?  $4  I love deals and all so just thinking about all the stuff I can get so cheap makes me kind of happy.  Also games and anime are so much more readily available there.</p>
<p>The boys are pretty excited about it already.  I told Ethan that he is going to get to see lots if trains that go really fast, so he is pretty excited about it.</p>
<p>Anyways, the decision has been made &#8211; I&#8217;ll post more details about it later, but for now I just thought this would be a good place to announce it since I know many of my friends read this blog.</p>
<p>Talk to you later!  Or should I say&#8230; Jaa Ne!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.omegaprojex.com/index.php/2009/04/01/we-are-moving-to-japan/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Job at the FBI</title>
		<link>http://www.omegaprojex.com/index.php/2009/04/01/job-at-the-fbi/</link>
		<comments>http://www.omegaprojex.com/index.php/2009/04/01/job-at-the-fbi/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 13:01:20 +0000</pubDate>
		<dc:creator>ElementZero</dc:creator>
				<category><![CDATA[Misc Thoughts]]></category>
		<category><![CDATA[jokes]]></category>

		<guid isPermaLink="false">http://www.omegaprojex.com/?p=599</guid>
		<description><![CDATA[The FBI had an opening for an assassin. 
After all the background checks, interviews and testing were done, there were 3 finalists; Two men and a woman.
For the final test, the FBI agents took one of the men to a large metal door and handed him a gun.
&#8216;We must know that you will follow your [...]]]></description>
			<content:encoded><![CDATA[<p>The FBI had an opening for an assassin. </p>
<p>After all the background checks, interviews and testing were done, there were 3 finalists; Two men and a woman.</p>
<p>For the final test, the FBI agents took one of the men to a large metal door and handed him a gun.</p>
<p>&#8216;We must know that you will follow your instructions no matter what the circumstances.<br />
Inside the room you will find your wife sitting in a chair .. . . Kill her!!&#8217;</p>
<p>The man said, &#8216;You can&#8217;t be serious. I could never shoot my wife.&#8217;</p>
<p>The agent said, &#8216;Then you&#8217;re not the right man for this job. Take your wife and go home.&#8217;</p>
<p>The second man was given the same instructions. He took the gun and went into the room. All was quiet for about 5 minutes.</p>
<p>The man came out with tears in his eyes, &#8216;I tried, but I can&#8217;t kill my wife.&#8217; The agent said, &#8216;You don&#8217;t have what it takes. Take your wife and go home.&#8217;</p>
<p>Finally, it was the woman&#8217;s turn. She was given the same instructions, to kill her husband. She took the<br />
Gun and went into the room. Shots were heard, one after another.  They heard screaming, crashing, banging on the walls. After a few minutes, all was quiet. The door opened slowly and there stood the woman, wiping the sweat from her brow. </p>
<p>&#8216;This gun is loaded with blanks&#8217; she said.  &#8216;I had to beat him to death with the chair.&#8217;</p>
<p><strong>MORAL: Women are crazy. Don&#8217;t mess with them</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.omegaprojex.com/index.php/2009/04/01/job-at-the-fbi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding One-to-One NAT on dd-wrt for a specific IP address to forward traffic like RDP</title>
		<link>http://www.omegaprojex.com/index.php/2009/03/27/adding-one-to-one-nat-on-dd-wrt-for-a-specific-ip-address-to-forward-traffic-like-rdp/</link>
		<comments>http://www.omegaprojex.com/index.php/2009/03/27/adding-one-to-one-nat-on-dd-wrt-for-a-specific-ip-address-to-forward-traffic-like-rdp/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 13:32:34 +0000</pubDate>
		<dc:creator>ElementZero</dc:creator>
				<category><![CDATA[Computer Troubleshooting]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[networking]]></category>

		<guid isPermaLink="false">http://www.omegaprojex.com/?p=588</guid>
		<description><![CDATA[For quite some time I have been wanting the ability to connect to my home computer through RDP from work as occasionally there is some information I can use from my home computer.  The problem is that I use dd-wrt on my home router, which doesn&#8217;t allow for one-to-one (1:1) nat&#8217;s at this time. [...]]]></description>
			<content:encoded><![CDATA[<p>For quite some time I have been wanting the ability to connect to my home computer through RDP from work as occasionally there is some information I can use from my home computer.  The problem is that I use <a href="http://www.dd-wrt.com">dd-wrt</a> on my home router, which doesn&#8217;t allow for one-to-one (1:1) nat&#8217;s at this time.  I basically wanted the following rules</p>
<ol>
<li>Open only the RDP port open and forward connections coming to the WAN IP address on the dd-wrt to that port to my computer</li>
<li>Only allow connections from a specific IP address (my work).</li>
</ol>
<p>In order to do this, you will need the following information</p>
<ul>
<li>Know the external IP address that you want to allow.  A quick trip to <a href="http://www.whatismyip.org">whatismyip.org</a> from your work computer will give you this if you don&#8217;t know it.  I&#8217;ll also show below if you just want to allow ALL IP addresses.</li>
<li>Know the internal IP address of your computer you want to RDP to.  You can get this just by doing &#8220;ipconfig&#8221;  on your home machine.  Note that you pretty much have to set you computer to a static address on your dd-wrt.  To do this if you haven&#8217;t already, do &#8220;ipconfig /all&#8221; and get the value for &#8220;Physical Address&#8221;.  Now go to the dd-wrt Administration web site and go to the Administration tab, and then to the Services sub-tab.  Under &#8220;Static Leases&#8221;, add a row and add the Physical Address you got from ipconfig.  <strong>You will need to replace the dashes with colons ( : )</strong>.  Add whatever you call your computer to the host name (this doesn&#8217;t really matter &#8211; you could put &#8216;computer&#8217; in the box if you wanted).  Now add the IP Address value you got from ipconfig in the IP Address box, then hit Save Settings at the bottom of the screen.</li>
<p>I knew that RDP is port 3389 by default on Windows (just an FYI &#8211; you can change this in the registry if you like).  If you would like a different port, you can pretty much just google the program you are looking forward followed by the word &#8220;port&#8221; and you&#8217;ll surely find the ports you need.</p>
<p>First, you will need to get to the command window for the box.  The easiest way to do this is by going to the dd-wrt administration web site, then going to the &#8220;Administration&#8221; tab, and click the &#8220;Commands&#8221; sub tab. DD-wrt uses linux, and therefore uses iptables for it&#8217;s firewall network packet filtering abilities. That being said, we just need to add some rules to the iptables to run on top of all the other filtering rules the box already has.</p>
<p><strong>PLEASE</strong> note that there is a &#8220;backup&#8221; sub tab under the &#8220;Administration&#8221; tab as well.  You may wish to backup your settings BEFORE applying this change &#8211; just in case you make a mistake or something <img src="http://www.omegaprojex.com/wp-content/plugins/wp-smiley-switcher/noktahhitam/icon_smile.gif" alt="" /></p>
<p><code>iptables -I PREROUTING -t nat -d $(nvram get wan_ipaddr) -p tcp --source WAN_IP --dport 3389 -j DNAT --to-destination LAN_IP<br />
iptables -I FORWARD -d LAN_IP -p tcp --dport 3389 -j ACCEPT<br />
</code></p>
<p>where WAN_IP is the external IP of where you want to connect from (in my case, my work IP), and LAN_IP is the internal IP address of the computer you want to connect to (in my case, my home computer).  I think most of this is self explanatory, but I&#8217;ll break it down a bit just so you can know what some of these parameters are doing.</p>
<ul>
<li><strong>-I PREROUTING</strong> &#8211; this tells the the firewall network address translation (nat) routing to alter packets as soon as they come in.  The -I says to insert the command to the rules for the firewall, adding it as the top rule (meaning it supersedes all other rules).</li>
<li><strong>-d $(nvram get wan_ipaddr)</strong> &#8211; this is a special command for the dd-wrt router, which tells the device to get the current WAN IP for the WAN port</li>
<li><strong>-j</strong> &#8211; this is a parameter for the commands, which tells the rule what to do if the rule matches the packet being examined.</li>
</ul>
<p>Optionally, you can do multiple ports by removing the &#8220;&#8211;dport 3389&#8243; and replacing it with a different command for multiple ports followed by a comma separated list.  In example:</p>
<p><code>-m multiport --dports 3389,80</code></p>
<p>Also you can just remove the &#8220;&#8211;source WAN_IP&#8221; if you want to allow connections from any public IP (much less secure obviously).</p>
<p>Once your changes are in the box, hit the &#8220;Save Firewall&#8221; button, and this will save the commands into a custom script that will run every time the firewall is started on the dd-wrt router.  Note that these commands should not be under the &#8220;Save Startup&#8221; custom script (it won&#8217;t hurt anything &#8211; but it doesn&#8217;t do anything either).  If you ever want to change the commands, just hit the Edit button on the custom script for the firewall and modify it accordingly.  You can even set the box to empty and hit save firewall again in order to delete your script.</p>
<p>That&#8217;s it!  Hopefully in the future the dd-wrt firmware will include the ability to do 1:1 nat&#8217;s, but for now at least there is a work around.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.omegaprojex.com/index.php/2009/03/27/adding-one-to-one-nat-on-dd-wrt-for-a-specific-ip-address-to-forward-traffic-like-rdp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The things kids say&#8230;</title>
		<link>http://www.omegaprojex.com/index.php/2009/03/20/the-things-kids-say/</link>
		<comments>http://www.omegaprojex.com/index.php/2009/03/20/the-things-kids-say/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 14:32:34 +0000</pubDate>
		<dc:creator>ElementZero</dc:creator>
				<category><![CDATA[Family and Everyday Life]]></category>
		<category><![CDATA[Ethan]]></category>

		<guid isPermaLink="false">http://www.omegaprojex.com/?p=581</guid>
		<description><![CDATA[So Ethan had a question for Mariel this morning, apparently about growing up and what was going to happen to him in life in regards to a family and living with us.  The conversation went something like this:




Ethan: Why is Maddie a girl like you?




Mariel: Cause she just is buddy.




Ethan: Is she a mommy [...]]]></description>
			<content:encoded><![CDATA[<p>So Ethan had a question for Mariel this morning, apparently about growing up and what was going to happen to him in life in regards to a family and living with us.  The conversation went something like this:</p>
<table style="border-left:1px;border-right:1px;border-top:1px;border-bottom:1px;">
<tr>
<tr>
<td style="background-color:#DDDDDD">
<strong>Ethan:</strong> Why is Maddie a girl like you?
</td>
</tr>
<tr>
<td>
<strong>Mariel:</strong> Cause she just is buddy.
</td>
</tr>
<tr>
<td style="background-color:#DDDDDD">
<strong>Ethan:</strong> Is she a mommy like you?
</td>
</tr>
<tr>
<td>
<strong>Mariel:</strong> No, not yet, but she probably will be someday.
</td>
</tr>
<tr>
<td style="background-color:#DDDDDD">
<strong>Ethan:</strong> Do  I have to do what she says then?
</td>
</tr>
<tr>
<td>
<strong>Mariel:</strong> HUH?
</td>
</tr>
<tr>
<td style="background-color:#DDDDDD">
<strong>Ethan:</strong> Yeah, when she starts being my mommy do i have to listen to her?
</td>
</tr>
<tr>
<td>
<strong>Mariel:</strong> No buddy, she won&#8217;t be  your mommy&#8230;she&#8217;ll have her own family&#8230;just like you will
</td>
</tr>
<tr>
<td style="background-color:#DDDDDD">
<strong>Ethan:</strong> Where will we live?
</td>
</tr>
<tr>
<td>
<strong>Mariel:</strong> I don&#8217;t know buddy&#8230;wherever you decide to live I guess.
</td>
</tr>
<tr>
<td style="background-color:#DDDDDD">
<strong>Ethan:</strong> And you and daddy and logan and maddie and her babies will live with me?
</td>
</tr>
<tr>
<td>
<strong>Mariel:</strong> No bud, we&#8217;ll live somewhere else.
</td>
</tr>
<tr>
<td style="background-color:#DDDDDD">
<span style="color:red;">*Ethan puts a very sad and confused look on his face*</span>
</td>
</tr>
<tr>
<td>
<strong>Mariel:</strong> Whats wrong E?
</td>
</tr>
<tr>
<td style="background-color:#DDDDDD">
<strong>Ethan:</strong> I don&#8217;t ever wanna move away from you and daddy cause you&#8217;re the best mommy and daddy in the whooooollllleee world and if I move away from Logan I won&#8217;t have anyone to play with me and I&#8221;ll be soooooooooo sad
</td>
</tr>
</table>
<p><img src="http://www.omegaprojex.com/wp-content/plugins/wp-smiley-switcher/noktahhitam/icon_lol.gif" alt="" /></p>
<p>Anyways, figured I would put it here for posterity sake &#8211; since I figure in about 10 years he&#8217;ll be 13 and won&#8217;t want a thing to do with us anymore heh</p>
]]></content:encoded>
			<wfw:commentRss>http://www.omegaprojex.com/index.php/2009/03/20/the-things-kids-say/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Uninstalling Symantec Endpoint Protection without the uninstall password</title>
		<link>http://www.omegaprojex.com/index.php/2009/03/19/uninstalling-symantec-endpoint-protection-without-the-uninstall-password/</link>
		<comments>http://www.omegaprojex.com/index.php/2009/03/19/uninstalling-symantec-endpoint-protection-without-the-uninstall-password/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 18:12:56 +0000</pubDate>
		<dc:creator>ElementZero</dc:creator>
				<category><![CDATA[Computer Troubleshooting]]></category>
		<category><![CDATA[hacking]]></category>

		<guid isPermaLink="false">http://www.omegaprojex.com/?p=575</guid>
		<description><![CDATA[In a previous post, I talked about removing Symantec Endpoint Protection from your corporate network via a vbscript that ran through Group Policy.  I had a problem though where I had uninstalled the program from all my computers, but I had it running on one server also.  
As I went to uninstall it [...]]]></description>
			<content:encoded><![CDATA[<p>In a previous post, I talked about removing Symantec Endpoint Protection from your corporate network via a vbscript that ran through Group Policy.  I had a problem though where I had uninstalled the program from all my computers, but I had it running on one server also.  </p>
<p>As I went to uninstall it from the server, it asked me for the uninstall password.  At this point, I had already removed the Symantec Endpoint Protection server as well, so setting the uninstall password was not possible.  Although I knew what the uninstall password was, it occured to me that what would I do if I had not known it?  After searching around a bit &#8211; I found the solution.</p>
<p>First, go ahead and uninstall Symantec Endpoint Protection via the Add/Remove Programs.  When the Uninstall password box comes up, right click on your task bar and open &#8220;Task Manager&#8221;.  Go to the processes tab and look for msiexec.exe.  There is probably more than one of them &#8211; one of them is for the password box.  Just go ahead and pick one, and hopefully it will be for the password box (if not just reatrt the uninstall process).  Once you kill the password box, the uninstall will continue as normal.</p>
<p>Of course, one wonders how &#8220;secure&#8221; the uninstall password really is since it can be &#8220;hacked&#8221; so easily.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.omegaprojex.com/index.php/2009/03/19/uninstalling-symantec-endpoint-protection-without-the-uninstall-password/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
