tag:blogger.com,1999:blog-22347453866723023332008-06-19T13:38:47.393-05:00Deep Conversations with Flea#Discussions on religion, politics, science and software.Flea#http://www.blogger.com/profile/13968357438991645685noreply@blogger.comBlogger13125tag:blogger.com,1999:blog-2234745386672302333.post-21694361283929703172008-06-19T13:37:00.001-05:002008-06-19T13:38:47.423-05:00New Blog because Blogger SucksBlogger sucks, I am now blogging at: <a href="http://fleasharp.wordpress.com">http://fleasharp.wordpress.com</a>Flea#http://www.blogger.com/profile/13968357438991645685noreply@blogger.com0tag:blogger.com,1999:blog-2234745386672302333.post-43649750945194898442008-06-19T11:42:00.007-05:002008-06-19T12:45:21.806-05:00Windows Firewall and C#<pre name="code" class="c-sharp"><br />private string GetPortType(INetFwOpenPort port)<br /> {<br /> string protocolType = string.Empty;<br /> <br /> switch (port.Protocol)<br /> {<br /> case NetFwTypeLib.NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP:<br /> protocolType = "TCP";<br /> break;<br /><br /> case NetFwTypeLib.NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_UDP:<br /> protocolType = "UDP";<br /> break;<br /> }<br /><br /> return protocolType;<br /> }<br /></pre>Flea#http://www.blogger.com/profile/13968357438991645685noreply@blogger.com0tag:blogger.com,1999:blog-2234745386672302333.post-57886709460332909482008-05-01T10:52:00.000-05:002008-05-01T10:55:56.556-05:00IntelliSense stops working in Visual Studio 2008I had an annoying problem in Visual Studio 2008 that cost me about 3 hours of time. I was working in C# and noticed that my IntelliSense had ceased to work. I went into the options under C# and sure enough IntelliSense was still checked; so I removed the checks, hit OK, restarted Visual Studio, came back in and turned IntelliSense back on. However. It still did not work.<br /><br />3 hours later, I found the source of my problem. The “Auto list members” check box was no longer checked, thus disabling IntelliSense. This was obscure because one would have thought something with this much control over IntelliSense would have actually been on the IntelliSense settings form but, either way, it fixed the problem as soon as I added the check back.<br /><br />So if your IntelliSense stops working, make sure you have the “Auto list members” box selected.<br /><br />1.Goto Tools | Options<br />2.Text Editor<br />3.C#<br />4.General<br />5.Check 'Auto list members'<br /><br /><br /><a href="http://bp3.blogger.com/_xWoBypoYv-s/SBnn5GIwttI/AAAAAAAAABs/KI4ixNkBs5E/s1600-h/autolistmembers.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_xWoBypoYv-s/SBnn5GIwttI/AAAAAAAAABs/KI4ixNkBs5E/s400/autolistmembers.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5195438613234497234" /></a>Flea#http://www.blogger.com/profile/13968357438991645685noreply@blogger.com0tag:blogger.com,1999:blog-2234745386672302333.post-92054884781212542122008-04-18T17:20:00.000-05:002008-04-18T23:22:15.277-05:00The Pain of Christian HumilityAs Pope Benedict visits America, like any good Catholic I am lingering on every article, glued to every video clip, as I gush with excitement of the Holy Father as he makes his way from venue to venue. Even though our media is slanted far to the left with Christianity usually in their cross-hairs, I think even the media has been, well, almost excited too!<br /><br />However, an incident really infuriated me this week; Nancy Pelosi kissing the hand of the Holy Father after he arrived at the White House. Pelosi, a Catholic herself has a critical flaw; she supports abortion.<br /><br /><span style="color:#ff6600;">Fast Fact:</span> <span style="color:#999999;">Besides the kiss of the hand, Pelosi and John Kerry, who also supports abortion, participated in the Eucharist during the open air Mass at the National's stadium.<br /></span><br />As I saw this I was sickened. How could the Pope allow Pelosi to kiss his hand? I know I am not perfect, I don't follow all of the practices of the Church (such as praying the rosary, going to weekly confession) but to me I am much better than her; for I support life, I don't want to extinguish it! I don't get this, here I am, a much better Christian than she will ever be, yet she is granted the privilege of meeting the Pope and kissing his hand yet I am not?<a href="http://bp2.blogger.com/_xWoBypoYv-s/SAkfhsy5ioI/AAAAAAAAABc/DgHw-0BZa_w/s1600-h/pelosi%252BPope%252BBenedict.jpg"><img id="BLOGGER_PHOTO_ID_5190714709341997698" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://bp2.blogger.com/_xWoBypoYv-s/SAkfhsy5ioI/AAAAAAAAABc/DgHw-0BZa_w/s200/pelosi%252BPope%252BBenedict.jpg" border="0" /></a><br /><br /><br />I imagined, if I were standing there next to the Pope I would have said, "Father, this woman supports abortion; amid the other things she goes against, she has no right to kiss your hand, especially when there are millions of others, more faithful then her who deserve this blessed opportunity!" I realized then, as my day dream bubble burst, how wrong I actually was. What I thought was my faithful discipleship, actually was going against what Jesus had commanded and I wasn't alone in this error.<br /><br />I remembered the story of Jesus and two of his disciples, James and John:<br /><br />Luke 9:51-56:<br /><br /><blockquote>When the days were approaching for His ascension, He was determined to go to Jerusalem; and He sent messengers on ahead of Him, and they went and entered a<br />village of the Samaritans to make arrangements for Him. But they did not receive Him, because He was traveling toward Jerusalem. When His disciples James and<br />John saw this, they said, "Lord, do You want us to command fire to come down<br />from heaven and consume them?" But He turned and rebuked them, [and said, "You<br />do not know what kind of spirit you are of; for the Son of Man did not come to<br />destroy men's lives, but to save them."] And they went on to another village.<br /></blockquote><br /><span style="color:#ff6600;">Fast Fact:</span> <span style="color:#999999;">Jesus was not welcomed because his disciples and him were Jewish; which during this time, the Samarians and the Jews were bitter enemies.</span><br /><br />I sat there and realized, I was like James and John; so dedicated to Jesus, that, those who rejected him or in my case, a Catholic who supported abortion, left me wanting to command my own fire from heaven, to bar Pelosi from meeting the Pope; to prevent her disgraced lips from touching his hand. The words of Jesus rebuking his disciples were now shamelessly tearing into me; I was the one who was wrong; I was the one who was not serving the Lord. My selfishness could have prevented someone who was lost from coming to the light; all because I felt she was not worthy to share the peace of the Lord. I realize now that having Pelsoi enjoy an experience that I wish I had, but do not need, would be for the best. Maybe this experience would change her heart; maybe she would find God.<br /><br />For a simple kiss on the hand can change perspectives, feelings and hearts; I know; because it changed mine.<br /><br />-Flea#Flea#http://www.blogger.com/profile/13968357438991645685noreply@blogger.com1tag:blogger.com,1999:blog-2234745386672302333.post-128503331688455412008-03-22T22:44:00.000-05:002008-03-22T23:07:04.477-05:00US Zip Code Table for SQL 2005<p style="margin-bottom: 0in;">I am working on a web application that requires that the user to enter in a zip code and then the city and state would be returned. This type of functionality is quite common, but for some of us developers, we don't want to pay for the data needed to make this happen. Granted, it didn't take me too long to find a free table of zip codes, but I did have to do some minor work to hook it all up. So, just to add to the bounty of the Internet, I've uploaded the CSV file to one of my servers for you to download along with instructions below for inserting it into your SQL 2005 database. Since this is in a CSV file, you can also use it for MySQL or any other database.</p> <ol><li><a href="http://nicoahsystems.com/zipcodes.zip">Click here for the ZIPCODE CSV file</a>. Download it to the root of C, just something simple.<br /><br /></li><li>Run the following SQL to create the ZipCode table in your database: </li></ol> <p style="margin-bottom: 0in; color: rgb(0, 0, 102);">SET ANSI_NULLS ON<br />GO</p><p style="margin-bottom: 0in; color: rgb(0, 0, 102);">SET QUOTED_IDENTIFIER ON<br />GO</p><p style="margin-bottom: 0in; color: rgb(0, 0, 102);">SET ANSI_PADDING ON<br />GO</p> <p style="margin-bottom: 0in; color: rgb(0, 0, 102);">CREATE TABLE [dbo].[ZipCode]<br />(<br />[ZipCode] [varchar](10) NOT NULL,<br />[Latitude] [varchar](50) NOT NULL,<br />[Longitude] [varchar](50) NOT NULL,<br />[City] [varchar](200) NOT NULL,<br />[State] [varchar](50) NOT NULL,<br />[County] [varchar](70) NOT NULL,<br />[ZipClass] [varchar](50) NOT NULL<br />) ON [PRIMARY]<br />GO</p> <p style="margin-bottom: 0in;"><br /></p> <ol start="3"><li><p style="margin-bottom: 0in;">Run the Bulk Insert command to load the CSV file into the table:</p> </li></ol> <p style="margin-bottom: 0in; color: rgb(0, 0, 102);">BULK INSERT ZipCode<br />FROM 'C:\zipcodes.txt'<br />WITH<br />(<br />FIELDTERMINATOR = ',',<br />ROWTERMINATOR = '\n'<br />)<br />GO</p> <p style="margin-bottom: 0in;"><br /></p> <p style="margin-bottom: 0in;">There ya go, you now have a free zip code table of all 42,000+ United States zip codes! Note that you might need to change the commas and ' ' marks; sometimes these characters are formatted differently when posted on the web and it can cause havoc in SQL because SQL does not recognize the characters. Just be prepared to change them!</p><p style="margin-bottom: 0in;">-Flea#<br /></p>Flea#http://www.blogger.com/profile/13968357438991645685noreply@blogger.com0tag:blogger.com,1999:blog-2234745386672302333.post-37569902632598259992008-02-21T14:57:00.000-06:002008-03-07T15:16:37.999-06:00How to create a scheduled task using PowerShellI found this insanely easy, thanks to some well written Microsoft documentation (shocking I know). If you need to create a scheduled task of an application in your PowerShell script you can call the Schtasks.exe application. Below is an example I used to create a scheduled task to run my exe every day at 1:00a.m. using the System account:<br /><br /><span style="color:#000099;">Write-Host "Creating Account Collector Scheduled Task"</span><br /><br /><span style="color:#000099;">Schtasks /create /sc DAILY /tn AccountCollector /tr "`"`"`"`"C:\Program Files\AMF\AMFCollector.exe`"`"`"`"" /s devsbvm01 /ru System /st 01:00:00</span><br /><br /><span style="color:#000099;">Write-Host "Scheduled Task Created"</span><br /><br />That's it, works painlessly on a local or remote server, which in my example, devsbvm01 is my remote server. Now, you might be wondering "whats with all the quotes?". Well, I struggled for a long time trying to figure out why the scheduled task would be created but would never run. Turns out that the qoutes were being stripped out, thus causing the path to break. I know its sleazy, but turns out you need four sets of quotes in order to keep them from being stripped out! If anyone ever finds a better way, let me know but this seems to be it for now! So make sure you put those quotes in there!<br /><br /><a href="http://technet2.microsoft.com/windowsserver/en/library/1d284efa-9d11-46c2-a8ef-87b297c68d171033.mspx?mfr=true">Here is the link to the Microsoft tech net article that explains in great detail the Schtasks.exe application.</a><br /><br />-Flea#Flea#http://www.blogger.com/profile/13968357438991645685noreply@blogger.com0tag:blogger.com,1999:blog-2234745386672302333.post-16348769808597156262008-02-13T10:14:00.000-06:002008-02-13T13:09:38.506-06:00How to check if an object exists in a SQL 2005 DatabaseWhen executing some SQL code on an object in database such as a table, stored procedure, or view, it is important to check to see if these objects currently exist in the database. It is important because it makes your code more reusable, especially if multiple developers will be running it on their local databases. Here is a simple line of SQL you can run to find various objects in a SQL 2005 database.<br /><br /><span style="color:#ff6600;">How to check if an object exists in a SQL 2005 Database<br /></span><br /><span style="color:#000099;">if exists (select * from sys.objects where [object_id] = object_id('the_name_of_your_object'))<br />begin<br />print 'Hello World'<br />end</span><br /><span style="color:#000099;"></span><br /><span style="color:#ff6600;">How to check if a stored procedure exists in a SQL 2005 Database<br /></span><br />Say your Database contained several hundred stored procedures and you wanted to know if the stored procedure usp_GetNames existed. Simply run the following example from above:<br /><br /><span style="color:#000099;">if exists (select * from sys.objects where [object_id] = object_id('dbo.usp_GetNames') )<br />begin<br />print 'Hello World'<br />end</span><br /><br /><span style="color:#ff6600;">How to check if a view exists in a SQL 2005 Database<br /></span><span style="font-size:130%;"></span><br />What if you wanted to create a new view called dbo.vw_OldCustomers, but wanted to see if that view existed before you created it? Again, run the same SQL code above.<br /><br /><span style="color:#000099;">if exists (select * from sys.objects where [object_id] = object_id('dbo.vw_OldCustomers') )<br />begin<br /><span style="color:#009900;">-- Logic to create the view and populate it<br /></span>end</span><br /><span style="color:#000099;"></span><br /><span style="color:#000000;">-Flea#</span>Flea#http://www.blogger.com/profile/13968357438991645685noreply@blogger.com0tag:blogger.com,1999:blog-2234745386672302333.post-29029527340385546002008-02-03T01:00:00.000-06:002008-02-08T12:29:21.293-06:00Apostolic Succession<span style="color: rgb(0, 0, 0);font-family:arial,sans-serif;font-size:100%;" >The apostolic succession is very often misunderstood by Christians. At one time I disagreed with it myself, but I honestly did not know why I did. Once I began researching the history of apostolic succession, I began to understand its truths. When examining apostolic succession, we will find very clear scriptural evidence supporting the need for it; however, before we delve into the history of this sacred tradition, let's take a common sense approach to why it is important.</span> <p style="margin-bottom: 0in;font-family:arial;" align="left"><span style="font-size:100%;">From small businesses to large corporations and governments, organization is critical for success. Every organization is made up of leaders, and from those leaders a single person is designated to lead the group. You would have a president, vice-president and then various other leadership positions all working together to run an efficient organization. The Church is no different; we have the Pope, the supreme leader of the Church, followed by the cardinals, bishops, priests and deacons.</span></p> <p style="margin-bottom: 0in;font-family:arial;" align="left"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_xWoBypoYv-s/R6ydV6xKCJI/AAAAAAAAAAs/TjCvzWJiRRM/s1600-h/lightbulb.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_xWoBypoYv-s/R6ydV6xKCJI/AAAAAAAAAAs/TjCvzWJiRRM/s200/lightbulb.jpg" alt="" id="BLOGGER_PHOTO_ID_5164675872565364882" border="0" /></a><span style="color: rgb(153, 153, 153);font-size:100%;" ><span style="color: rgb(255, 102, 0);">Fun Fact:</span> A cardinal is actually not apart of the Holy Orders. In Ordination, a man is ordained a deacon, priest or bishop. A cardinal is usually a bishop that has been deemed an </span><span style="color: rgb(153, 153, 153);font-size:100%;" ><i>honorary one</i></span><span style="color: rgb(153, 153, 153);font-size:100%;" > by the pope. Cardinals don't have problems figuring out what to wear each day, considering they have worn red since the year 1245 as a symbol that they are ready to lay down their life for Christ and his Gospel.</span><span style="font-size:100%;"><br /></span></p> <p style="margin-bottom: 0in;font-family:arial;" align="left"><span style="font-size:100%;">Let's take a closer look at the President of the United States. When a President completes his term in office, a new President is elected. The current president then transfers the power and responsibilities to the newly elected president. The Church needs leadership as much as any organization or country and the Apostles knew this from the beginning; Jesus knew this from the beginning. A clear example comes from Acts 1:12-26; here Peter and the other 10 apostles went into a room to select the replacement of Judas. As a group they prayed and voted upon a new apostle, Matthias who was chosen as the 12<sup>th</sup> apostle.</span> </p> <p style="margin-bottom: 0in; color: rgb(153, 153, 153);font-family:arial;" align="left"><span style="font-size:100%;"><span style="color: rgb(255, 102, 0);">Note:</span> It is important to remember that the Apostles were the foundation of the Church as St. Paul writes in his letter to the Ephesians, “built on the foundation of the apostles and prophets, with Christ Jesus himself.” Ephesians 2:19-21. </span> </p> <p style="margin-bottom: 0in;font-family:arial;" align="left"><span style="font-size:100%;">Can you imagine what would have happened to the Church if the apostles didn't pass on their leadership? After the twelve had died, how would the Church have continued to grow? As the Church continued to spread, the apostles selected bishops to oversee the Churches in the various communities; not only because it had to be done, but it must be done because if Jesus only intended them to be the leaders, who would continue to build the Church and spread the Word of God? Jesus intended the leadership of his apostles to continue through the ages in order to build his Church.</span></p> <p style="margin-bottom: 0in;font-family:arial;" align="left"><span style="font-size:100%;">At this point you might be thinking, OK, fine, we need the leadership, but this doesn't mean the pope per say is in a direct line from Peter, let alone possess the power that Peter has. Well, let us take a look at this position. Peter, as everyone would agree was no doubt special to Jesus; for it is undeniable that Jesus called him to build his Church. “<span style="font-style: italic;">Blessed are you, Simon son of Jonah, for</span></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_xWoBypoYv-s/R6qElKxKCFI/AAAAAAAAAAM/0n2Prkg6YWs/s1600-h/patronsaint.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_xWoBypoYv-s/R6qElKxKCFI/AAAAAAAAAAM/0n2Prkg6YWs/s320/patronsaint.jpg" alt="" id="BLOGGER_PHOTO_ID_5164085696814254162" border="0" /></a><span style="font-size:100%;"><span style="font-style: italic;"> this was not revealed to you by man, but by my Father in heaven. And I tell you that you are Peter and on this rock I will build my church, and the gates of the netherworld shall not</span></span><span style="font-size:100%;"><span style="font-style: italic;"> prevail against it. I will give you the keys to the kingdom of heaven. Whatever you bind on earth shall be bound in heaven. Whatever you loose on earth shall be loosed in heaven.</span>” Matthew 16:16-20</span></p> <p style="margin-bottom: 0in;font-family:arial;" align="left"><span style="font-size:100%;">This above passage is a powerful statement from Jesus and there is no reason why we should assume any other meaning than what was said. Some Christians will disagree whether or not Peter was the foundation of the Church or the leader of the apostles. This disagreement comes down to some tricky translations of the word Peter, which in Greek is the word <i>Petra</i>, meaning “rock”, however, in the Greek translations of the New Testament, it is written <i>Petros</i>, meaning “a small rock” or “pebble”. Those who argue say that since the word <i>Petros</i> is used, Peter couldn't have been the foundation of the Church as he wasn't the “rock” Jesus was referring to. It is critical to keep in mind that Jesus likely did not speak Greek when speaking to Peter, he most likely spoke Aramaic, which was the dominate language of that time. In Aramaic there is only one word for “rock” and that is the word <i>kephas</i>. When Jesus told Peter this, there would have been no confusion of what he meant.</span></p> <p style="margin-bottom: 0in;font-family:arial;" align="left"><span style="font-size:100%;">So why did Matthew choose the word </span><span style="font-size:100%;"><i>Petros</i></span><span style="font-size:100%;"> instead of </span><span style="font-size:100%;"><i>Petras</i></span><span style="font-size:100%;">? </span><span style="font-size:100%;"><i>Petras</i></span><span style="font-size:100%;"> is a female noun, so while it distinctively describes “rock”, it would not have made sense to call Peter by a female name, so Matthew likely decided to use the word </span><span style="font-size:100%;"><i>Petros</i></span><span style="font-size:100%;">, since it is the masculine noun, which makes more sense to render the word Peter. </span> </p> <p style="margin-bottom: 0in;font-family:arial;" align="left"><span style="font-size:100%;">Scripture also shows us Peter demonstrating his leadership many times. Not only did he direct the proceedings of replacing Judas, in front of 125 people including the other apostles and Jesus' mother Mary, but as well during the Pentecost, Peter “<span style="font-style: italic;">stood up with the Eleven, raised his voice and proclaimed to them</span>” Acts 2:14-41 and helped add three thousand more for Christ.</span></p> <p style="margin-bottom: 0in;font-family:arial;" align="left"><span style="font-size:100%;">Even more evidence is provided that shows the power of the Apostles and Peter. “<span style="font-style: italic;">Thus they even carried the sick out into the streets and laid them on cots and mats so that when Peter came by, at least his shadow might fall on one or another of them.</span>” Acts 5:15-16. Finally the story of Ananias, Acts 5:1-11. In this story we can see that Peter is acting as Christ's vicar, for when Peter questions Ananias, he lies to Peter and to lie to Peter is to lie to God, which cost Ananias his life as he dies instantly at the feet of Peter.</span></p> <p style="margin-bottom: 0in; color: rgb(153, 153, 153);font-family:arial;" align="left"><span style="font-size:100%;"><i><span style="color: rgb(255, 102, 0);"><b>Vicar</b></span> - (from the Latin vicarius) is anyone acting "in the person of" or for a superior </i></span> </p> <p style="margin-bottom: 0in;font-family:arial;" align="left"><span style="font-size:100%;">The earliest Church fathers- Clement, Jerome, Ignatius, Irenaues, Cyprian all describe in their writings that Peter was given primacy and their writings indicate this primacy was followed after Peter. After Christ's own words in the gospel and Peter's own actions in Acts, if Peter were to grant authority to another, it is clear that that person would too carry on as Vicar of Christ on Earth.<br /></span></p><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_xWoBypoYv-s/R6ydV6xKCJI/AAAAAAAAAAs/TjCvzWJiRRM/s1600-h/lightbulb.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_xWoBypoYv-s/R6ydV6xKCJI/AAAAAAAAAAs/TjCvzWJiRRM/s200/lightbulb.jpg" alt="" id="BLOGGER_PHOTO_ID_5164675872565364882" border="0" /></a><span style="color: rgb(153, 153, 153);font-size:100%;" ><span style="color: rgb(255, 102, 0);">Fun Fact:</span> Elected Pope in 1198 at the age of 37, Innocent III was the first Pope to take the title "Vicar of Christ".<br /></span><p style="margin-bottom: 0in;font-family:arial;" align="left"><span style="font-size:100%;">As Christians we must hold true to what Peter and our Apostles shared with us and trust them and our early Church Fathers. This trust is commanded to us by Jesus himself, who said to his disciples,</span><span><span style="font-size:100%;"><span><span style="font-size:100%;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_xWoBypoYv-s/R6qEsqxKCGI/AAAAAAAAAAU/ggyj282fvSA/s1600-h/pope_benedict.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 249px; height: 212px;" src="http://bp0.blogger.com/_xWoBypoYv-s/R6qEsqxKCGI/AAAAAAAAAAU/ggyj282fvSA/s320/pope_benedict.jpg" alt="" id="BLOGGER_PHOTO_ID_5164085825663273058" border="0" /></a></span></span></span></span><span style="font-size:100%;"> <blockquote><span style="font-style: italic;">“Whoever listens to you listens to me. Whoever rejects you rejects me. And whoever rejects me rejects the one who sent me.”</span> Luke 10:16-17<br /><br /><br /><br /></blockquote></span></p> <p style="margin-bottom: 0in;font-family:arial;" align="left"><span style="font-size:100%;"><br /></span></p><p style="margin-bottom: 0in;font-family:arial;" align="left"><span style="font-size:100%;"><br /></span></p><p style="margin-bottom: 0in;font-family:arial;" align="left"><span style="font-size:100%;"><br /></span></p><p style="margin-bottom: 0in;font-family:arial;" align="left"><span style="font-size:100%;">There have been 264 popes who have followed since Peter. Pope Benedict XVI is the 265<sup>th</sup>.</span></p> <p style="margin-bottom: 0in; font-family: arial;" align="left"><span style="font-size:100%;">-Flea#</span></p> <p face="arial" style="margin-bottom: 0in;" align="left"><span style="font-size:100%;"><br /></span></p>Flea#http://www.blogger.com/profile/13968357438991645685noreply@blogger.com4tag:blogger.com,1999:blog-2234745386672302333.post-83823536931148369512008-01-26T12:55:00.001-06:002008-01-26T13:00:55.872-06:00How to create log files when using the Win32_Product install() method in PowerShell<p style="margin-bottom: 0in;">After fighting with this problem for two weeks I have finally found a working solution that allows you to generate log files of an install or un-install an MSI package on a remote machine. In recap, this stems off my first post of <a href="http://fleasharp.blogspot.com/2008/01/how-to-install-application-on-remote.html">how to install an application on a remote machine using powershell.</a> The problem with the <a href="http://msdn2.microsoft.com/en-us/library/aa390890%28VS.85%29.aspx">Install() method</a> is you cannot pass your standard parameters to the MSI, you can only pass MSI properties. Windows Installer 4.0 includes an MSI Property called “<a href="http://msdn2.microsoft.com/en-us/library/aa370322%28VS.85%29.aspx">MsiLogging</a>” which is used for this exact purpose; however Windows Installer 4.0 is only available in Windows Vista and Windows Server 2008 so unless you are targeting those exact operating systems, you are out of luck; well until now.</p> <p style="margin-bottom: 0in; color: rgb(255, 102, 0);" align="right"><span style="font-size:180%;">“</span><span style="font-size:180%;">One Sleazy Hack Deserves <strike>Another</strike></span><span style="font-size:180%;"> 5 Others!”</span></p> <p style="margin-bottom: 0in;">There is no question what we are about to do is pretty sleazy. It is sleazy for several reasons: </p> <ul><li><p style="margin-bottom: 0in;">You cannot control where the file is written to.</p> </li><li><p style="margin-bottom: 0in;">You cannot give the file a specific name.</p> </li><li><p style="margin-bottom: 0in;">As long as the hack is in place it will log every MSI that is installed or un-installed so you should remove it when you are finished.</p> </li></ul> <p style="margin-bottom: 0in;">To compensate for these side effects, it will require us to additional sleazy things in PowerShell for clean up! All in all though, it does what we want it to do—generate log files! </p> <p style="margin-bottom: 0in; color: rgb(255, 102, 0);"><span style="font-size:130%;">Step 1: Hack the Registry</span></p> <p style="margin-bottom: 0in;">The first step requires hacking the registry to add a value to tell the MSI Installer to log. As long as this registry key is here, all MSI installs and un-installs are logged, so later on we will delete the key when we are finished.</p> <p style="margin-bottom: 0in;">Here is the list of variables that are going to be used throughout these examples so add them to your project and modify them as necessary.</p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 128);">$server = "assaria"<br />$computer = "deviisvm02", "assaria" #an array of computers<br />$valueName= "Logging"<br />$valueData = "voicewarmupx"<br />$keyPath = "Software\Policies\Microsoft\Windows\Installer"<br />$hive = [Microsoft.Win32.RegistryHive]::LocalMachine<br />$box = "assaria"</span></p> <p style="margin-bottom: 0in;">We have to create a string value in the following registry key on the remote machine: key:HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer<br />string: Logging<br />value: “voicewarmupx”</p> <p style="margin-bottom: 0in;">Here is a function that will create a registry value on a remote machine:</p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 128);">function CreateRegistryValue([string]$computer, [string]$valName, [string]$valData)<br />{<br /><span style="color: rgb(0, 153, 0);"> #Get the remote key</span><br />$localMachineRegKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($hive,<br /> $computer)</span></p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 128);"> $installerRegKey = $localMachineRegKey.OpenSubKey($keyPath, $TRUE)</span></p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 128);"> # Set registry value<br /> $installerRegKey.SetValue($valName, $valData)</span></p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 128);"> Write-Host "The registry value $valName has been created"<br />}</span></p> <p style="margin-bottom: 0in; color: rgb(255, 102, 0);"><span style="font-size:130%;">Step 2: Run your install</span></p> <p style="margin-bottom: 0in;"><span style="font-family:Calibri,sans-serif;">Here are 4 lines of code that will install your MSI package on a remote machine. Now, keep in mind the path I have below is the C drive on the remote machine, not the local machine.</span></p> <p style="margin-bottom: 0in;"><span style="font-family:Calibri,sans-serif;"><span style="color: rgb(0, 0, 102);">$box=”deviis01” <span style="color: rgb(0, 153, 0);">#this is the name of your server</span></span><span style="color: rgb(51, 51, 51);"><br /><br /></span><span style="color: rgb(0, 0, 102);">$product= [WMICLASS]"\\$box\ROOT\CIMV2:win32_Product"</span><span style="color: rgb(51, 51, 51);"><br /></span><span style="color: rgb(0, 0, 102);"><br />Write-Host "Installing software on $box"</span><span style="color: rgb(51, 51, 51);"><br /></span><span style="color: rgb(0, 0, 102);"><br />$product.Install("c:\Setup\somesoftwarepackage.msi")</span></span></p> <p style="margin-bottom: 0in; color: rgb(255, 102, 0);"><br /><span style="font-family:Calibri,sans-serif;"><span style="font-size:130%;">Step 3: Rename the Log File</span></span></p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 0);"><span style="font-family:Calibri,sans-serif;">When the install is finished, the log file is created in the Windows\Temp directory. (Note, if you are trying to create a log file on a local machine, it is located in the %temp% directory, not the Windows\Temp directory.) The log file has a name of MSI###.log with some random numbers. You can either just leave this as is, or if your like me and want to try and salvage some dignity in this project, I prefer to rename the file to something more readable. Here is the function you can call that will rename the file:</span></span></p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 128);"><span style="font-family:Calibri,sans-serif;">function RenameLogFile([string]$computer, [string]$fileName)<br />{<br /><span style="color: rgb(0, 153, 0);"> #Set the working location</span><br />Set-Location \\$computer\C$\Windows\Temp<br /><br /><span style="color: rgb(0, 153, 0);"> # Rename the file</span><br />Get-ChildItem .\*.log | Rename-Item -NewName "$fileName.log"<br />Write-Host "Log file renamed to $fileName.log on $computer"<br />}</span></span></p> <p style="margin-bottom: 0in; color: rgb(255, 102, 0);"><span style="font-family:Calibri,sans-serif;"><span style="font-size:130%;">Step 4. Copy the File to a Different Location</span></span></p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 0);"><span style="font-family:Calibri,sans-serif;">It wouldn't be wise to just leave these log files in the Temp directory for obvious reasons, so as soon as our script finishes renaming the log file, we should move it to a different directory for archiving purposes . Below is the function you can use to copy your file to a different specified location on the remote computer:</span></span></p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 128);"><span style="font-family:Calibri,sans-serif;">function CopyLogFile([string]$computer, [string]$version, [string]$folder)<br />{<br /><span style="color: rgb(0, 153, 0);"> #Set the working location</span><br />Set-Location \\$computer\C$\Windows\Temp<br /><br />Move-Item -path .\*.log -destination \\$computer\C$\Setup\$version\$folder\<br />Write-Host "Log file moved to $folder"<br />}</span></span></p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 0);"><span style="font-family:Calibri,sans-serif;">You don't have to worry about deleting the file out of Temp as the Move-Item literally moves the file and does not just copy it.</span></span></p> <p style="margin-bottom: 0in; color: rgb(255, 102, 0);"><span style="font-family:Calibri,sans-serif;"><span style="font-size:130%;">Step 5. Delete the Registry Value</span></span></p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 0);"><span style="font-family:Calibri,sans-serif;">Now that our file has been renamed and moved we need to delete the registry string value so that MSI logging isn't left on. I have seen first hand that this will clog your Temp directory full of logs, especially anytime you do something in Add/Remove programs. So to keep things in order, we will remove the value once we are finished. Here is the function to delete a registry value on a remote machine:</span></span></p> <p style="margin-bottom: 0in;"></p><p style="margin-bottom: 0in;"></p><p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 128);"><span style="font-family:Calibri,sans-serif;">function DeleteRegistryValue([string]$valName, $server)<br />{<br /><span style="color: rgb(0, 153, 0);"> #Get the remote key</span> </span></span></p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 128);"><span style="font-family:Calibri,sans-serif;"> $localMachineRegKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($hive, $server)</span></span></p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 128);"><span style="font-family:Calibri,sans-serif;"> $installerRegKey = $localMachineRegKey.OpenSubKey($keyPath, $TRUE)</span></span></p> <p style="margin-bottom: 0in; color: rgb(0, 153, 0);"><span style="color: rgb(0, 0, 128);"><span style="font-family:Calibri,sans-serif;"> # Delete registry value</span></span></p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 128);"><span style="font-family:Calibri,sans-serif;"> $installerRegKey.DeleteValue($valName)</span></span></p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 128);"><span style="font-family:Calibri,sans-serif;"> Write-Host "Registry Value $valName has been deleted on $box."<br />}</span></span></p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 0);"><span style="font-family:Calibri,sans-serif;">With these 5 steps you can do a powerful automated install or un-install with logging on a remote machine using PowerShell!</span></span></p> <p style="margin-bottom: 0in;"><span style="color: rgb(0, 0, 0);"><span style="font-family:Calibri,sans-serif;">-Flea#</span></span></p>Flea#http://www.blogger.com/profile/13968357438991645685noreply@blogger.com0tag:blogger.com,1999:blog-2234745386672302333.post-68734691874473754402008-01-24T14:06:00.000-06:002008-01-24T14:10:30.014-06:00How to create a function with multiple parameters in PowerShellWhen I first started learning PowerShell ,I found it annoying when needing to create a function with multiple parameters. It seemed like every book or example I read simply showed how to declare a function with one parameter. For those of you just starting out on PowerShell, here is a simple example of creating and calling a function with multiple parameters.<br /><br /><span style="color:#006600;"># Declare some variables</span><br /><span style="color:#000066;"><br />$regPath ="HKLM:\Software\Policies\Microsoft\Windows\Installer"<br />$regKey = "Logging"<br />$regValue = "/log c:\install.log"</span><br /><br /><span style="color:#006600;"># Declare your function. Remember you must declare your function before you can call it.</span><br /><span style="color:#000066;"><br />function CreateRegistryKey([string]$path, [string]$key, [string]$value)<br />{<br /> Write-Host $path<br /> Write-Host $key<br /> Write-Host $value<br />}<br /></span><br /><span style="color:#009900;"># Call the function. Notice, we do not use ( ) or commas, it is separated by spaces only.<br /></span><br /><span style="color:#000066;">CreateRegistryKey $regPath $regKey $regValue</span>Flea#http://www.blogger.com/profile/13968357438991645685noreply@blogger.com0tag:blogger.com,1999:blog-2234745386672302333.post-24392103391706538542008-01-19T10:47:00.000-06:002008-02-02T23:54:24.420-06:00Common Sense<p style="margin-bottom: 0in;" align="center"><span style="color: rgb(255, 102, 0);">“<span style="font-size:130%;">...a bunch of one-eyed, one-armed Christians running around” - Fr. Jim</span></span></p> <p style="margin-bottom: 0.2in;"><br /><span style="font-size:100%;">A common question of anyone reading the Bible is whether or not to take what you read literally. In the simplest of replies to that question, use common sense! Now, I'm not saying that you shouldn't take the Bible literally, for there are countless places where it is necessary to do so, I am simply saying we must imply common sense and a historical prospective when reading our sacred scriptures. When using common sense, it is much easier to pick out what passages you should take literally to what passages are using strong symbolism to convey a deeper meaning. There is no doubt the Bible can be challenging and mysterious; and I believe that is how God intended it. If it was cut and dry, we would have nothing to talk about! Don't believe me? Take a book over calculus; it's cut and dry; exact; to the point; no wiggle room found here. When was the last time you talked calculus over the dinner table or at Thanksgiving with all the folks? Exactly. :)</span></p> <p style="margin-bottom: 0in;" align="right"><span style="color: rgb(255, 102, 0);">“<span style="font-size:130%;">Tradition....TRAAADDIITTTIOOON!” -Tevye</span></span></p> <p style="margin-bottom: 0in;"><br />When taking the scriptures literally all the time, some Christians will begin to discount history, science, common sense and yes tradition! Lets look at some examples:<br /><br />History: Did dinosaurs really exist? You're probably asking why is this important or have anything to do with the Bible, well believe it or not some Christians believe that dinosaurs did not exist. The argument is based on the fact that the Bible did not specifically mention dinosaurs, therefore they couldn't have possibly existed. By taking the Bible literally you would have to discredit every animal that was not mentioned in the Bible, including the hundreds of new species that are discovered every year. Of course my first thought, along with your first thought was, “of course they did, have you not seen the fossils and re-constructed bones?” Take for example the passage in Matthew 23:9, “and do not call anyone on earth 'father', for you have but one Father and he is in heaven”. I've known Christians who follow this exactly, that they do not even call their biological fathers, father. Jesus was warning the crowds and apostles from seeking titles of honor to foster pride. He clearly did not mean not to call anyone father, for clearly in the ten commandments it says to honor thy father and mother. The passage continues on saying not to call anyone teacher, which again is taken out of context.<br /><br />It is crucial to keep in mind that the Bible is not a scientific, historically exact book and I personally remember struggling with this concept. Here my love for science was contradicting my faith! How could the Earth be 4.6 billion years old? Our Bible is only thousands of years old!<br /><br />The scriptures were far from being individual creations by someone in solitude, they are based off of hundreds of years of oral tradition, pieces of poetry, letters, and physical tradition. People from Abraham to Paul, Linus to Jerome, to poor old Formosus wanted to preserve and share the message of God the best they knew how and with what means they could.</p> <p style="margin-bottom: 0in;"></p><blockquote style="color: rgb(153, 153, 153);">“If your hand or foot causes you to sin, cut it off and throw it away. It is better for you to enter into life maimed or crippled than with two hands or two feet to be thrown into eternal fire. And if your eye causes you to sin, tear it out and throw it away. It is better for you to enter into life with one eye than with two eyes to be thrown into fiery Gehenna.” - Jesus (Matthew 18:8-10)</blockquote><br />By taking the scriptures literally every time you might be to caught up on contradictions rather than the true point God is trying to convey. For example, who did Jesus first appear after the resurrection? According to Matthew and John, he appeared to Mary Magdalene while according to Paul, he first appeared to Peter. You think tracing your family roots is difficult, so did Matthew and Luke, who both differ on Jesus' family tree. We have to look past this minor glitch to realize something deeper; we have to realize that the gospel writers were showing that Jesus was completing the blood line to King David, thus fulfilling the prophecies of the Old Testament.<br /><br /><span style="color: rgb(255, 102, 0);"><span style="font-size:130%;">Hindsight is 20/2000</span></span><br /><br />We have had thousands of years to reflect, discuss and pray about the scriptures found in our Bible today. It is easy for someone today to go pickup a nice, cleanly formatted Bible written in modern English (or go to bible.com and read it in 43 different translations and languages, now that's cool!) and then proclaim that they have seen the Word of God for what its worth, thus proclaiming everythin prior is blasphemy! Taking this approach is all to common; why do you think there are hundreds, if not thousands of different denominational Christian churches all over the world? As soon as someone sees a new meaning, boom we have the “New Reformed Previous Baptist Once Assembled Now a Disciple Past Jewish Was a Catholic For Sure Now Independent Non-Denominational Church of Christ” oh and yes, of course, everything prior to January 19th, 2008 is probably incorrect.<br /><br />Now, with this silly exaggeration I want to bring a simple point. Times change, interpretation changes, but it doesn't mean we throw everything a away and start all over. If you insist on taking the scriptures literally, then I challenge you to stop reading your English translated Bible, instead read the scriptures in Hebrew (ugh, they read from right to left!) and Greek for those are the originals.<p></p> <p style="margin-bottom: 0in; color: rgb(153, 153, 153);"><span style="color: rgb(255, 102, 0);">Quick Translation:</span> Jesus did not have brothers as some Christians might think. In Greek and Hebrew, their were no words for uncle, cousin, nephew, therefore they used a single word to describe these relationships. <i>Ach</i> in Hebrew or <i>Adelphos</i> in Greek are used throughout the bible to describe these relationships, but in English it is translated into brother. Throughout the blog we will go over many other translated words but this shows you that literal translations of English are not always accurate.</p> <p style="margin-bottom: 0in;"><br />The point I am trying to drive home here is not, not to take the Bible literally, rather, don't take it to literal. The scriptures are the sacred, inspired Word of God that we as Christians are called to use to direct our lives. Many Protestants who are <span style="font-size:100%;"><i>sola scriptura</i></span><span style="font-size:100%;"> (Scripture Alone) will be shocked to discover how enriched the Catholic Church is in scripture! Which will be revealed more in this blog!</span><br /><br />Using common sense and keeping scriptures in context should not cause you to think you are betraying God, because I used to think that too. You will began to realize when you look at the history of the Bible, the history of the Church, you will see it for what is for; a wonderful story of our past, with a powerful, God inspired teaching that was written so masterfully it can be applied to our lives thousands of years later.<br /><br />-Flea# </p>Flea#http://www.blogger.com/profile/13968357438991645685noreply@blogger.com0tag:blogger.com,1999:blog-2234745386672302333.post-76257843961414123772008-01-17T21:52:00.000-06:002008-01-26T23:49:47.888-06:00The Church - A View from a Protestant and Catholic Tradition<p style="margin-bottom: 0in;"></p><p style="margin-bottom: 0in;" align="center"></p> <p style="margin-bottom: 0in;" align="center"></p><p style="margin-bottom: 0in;" align="left"> A portion of this <span lang="en-US">blog</span> will be dedicated to my fascination with religion and the long road I have personally taken to end up at my final destination, the Catholic Church. My sole purpose for this blog is to provide an easy to understand prospective of the Church that both Protestants and Catholics alike can relate to. I wanted to create a resource of commonly asked questions about the Church and the traditions and beliefs it practices. Two of the biggest problems I see when I look at the Church today are Protestants who misunderstand the Catholic faith and Catholics who do not understand their faith enough to explain it. I believe if Protestants and Catholics can take time to listen to each other with an open mind; the Church once again can become united as Christ intended when he first established it over 2,000 years ago.</p><p style="margin-bottom: 0in; text-align: right;"><span style="color: rgb(153, 153, 153); font-style: italic;"><blockquote>"I urge you, brothers, in the name of our Lord Jesus Christ, that all of you agree in what you say, and that there be no division among you, but that you be united in the same mind and in the same purpose" 1 Cor 1:10-11</blockquote></span></p> <p style="margin-bottom: 0in;" align="left"> Myself, at the time of this writing am 25 years old. I was born into a wonderful Protestant tradition and was raised that way until I was 23 years old. As I was engaged to be married to my Catholic wife, it was clear that I needed to make a choice on my faith, especially as future children would be involved. Like most Protestants I despised the Catholic Church and all the evil that came with it. How could these fools be so blinded by the truth? The bible clearly spoke out against everything they did, or at least I thought. Knowing my fate with my marriage, I began to research what Catholicism was so I could prove to my wife how wrong she had been. Little by little, to my surprise I soon began to realize what the Catholic Church stood for; how they were the original Church established by Jesus himself and how their traditions made perfect sense. One by one, the negative views the Protestant faith proclaimed against the Catholic Church were beginning to show their holes. Slowly, I became fascinated by the Church's traditions, history and faith; a faith that when I opened my eyes to witness, I realized was stronger then anything I had ever experienced before. Right now I won't get into the details of my journey, but I leave you with you these thoughts:</p> <p style="margin-bottom: 0in;" align="left"><span style="font-weight: bold;"><b><u>To the Protestant</u></b>:</span> Do not take at face value what you are told about Catholicism. With some research, you will see that their beliefs are grounded with solid scripture and tradition.</p> <p style="margin-bottom: 0in;" align="left"><b><u>To the Catholic</u></b>: Learn your faith and help educate others. Misconceptions amongst Catholics and Protestants is a two way street; take time to learn why they disagree with you. You cannot defend a faith you do not understand.</p> <p style="margin-bottom: 0in;" align="left">If you have read this far, I leave you with one final note. This blog is not an anti-Protestant blog; it is a blog that I hope to use to dispel the misconceptions Protestants hold of the Catholic Church. I hope my prospective is helpful, given my 23 years of being Protestant. It is hard to keep an open mind, but I hope you do. At the least, I hope you have a better understanding of the Catholic faith.</p> <p style="margin-bottom: 0in;" align="left">-Flea#</p> <p style="margin-bottom: 0in; color: rgb(153, 153, 153);" align="left">“You have to know the past to understand the present.” - Dr. Carl Sagan</p>Flea#http://www.blogger.com/profile/13968357438991645685noreply@blogger.com0tag:blogger.com,1999:blog-2234745386672302333.post-85125986235672359812008-01-16T09:50:00.000-06:002008-01-25T16:44:20.020-06:00How to Install an Application on a Remote Machine Using PowerShellAlthough this seems as it would be a common tasks for administrators and developers alike, I found very little documentation on the Internet on how to install an msi or exe on a remote machine using PowerShell. I even found comments saying it couldn’t be done at all! Bull Hugly, it can be done! I have provided two pieces of code that you can use to install either an msi package or exe on a remote server using PowerShell.<br /><br /><span style="font-size:130%;">Installing an MSI<br /><br /></span>Using a short hand of WMI in PowerShell , you can execute the following code to install your msi package:<br /><br /><span style="COLOR: rgb(0,0,102)">$box=”deviis01” #this is the name of your server</span><br /><br /><span style="COLOR: rgb(0,0,102)">$product= [WMICLASS]"\\$box\ROOT\CIMV2:win32_Product"</span><br /><span style="COLOR: rgb(0,0,102)"><br />Write-Host "Installing software on $box"</span><br /><span style="COLOR: rgb(0,0,102)"><br />$product.Install("c:\Setup \somesoftwarepackage.msi")</span><br /><br />The best part is it will install it silently so you don’t have to worry about command arguments to do that.<br /><br /><span style="font-size:130%;">Installing an EXE<br /><br /></span>The exe was more of a pain and I wasn’t able to get it to work with the Install method. If someone else is able to get it to work, please post a comment to share with the rest of us because I would like to know if it is possible, however, here is what you can do to install your exe.<br /><br /><span style="COLOR: rgb(0,0,102)">$box=”deviis01” #this is the name of your server</span><br /><br /><span style="COLOR: rgb(0,0,102)">Write-Host "Installing software on $box" </span><br /><br /><span style="COLOR: rgb(0,0,102)">([WMICLASS]"\\$box\ROOT\CIMV2:win32_process").Create("cmd.exe /c c:\Setup\somesoftware.exe /s /v`" /qn") </span><br /><br />This actually works by creating a new process on the remote server, calling the cmd.exe and passing it the arguments for installing your program. One thing to make note of is all the command switches I have at the end. You will want to check your exe to see what switches it takes; for example mine above is using an exe created with InstallShield so the command line options might be different, so just keep that in mind.<br /><br />-Flea#Flea#http://www.blogger.com/profile/13968357438991645685noreply@blogger.com0