<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-17298170</id><updated>2011-12-06T21:31:44.795-05:00</updated><category term='C#'/><category term='Social Engineering'/><category term='Tech Toys'/><category term='VB.NET'/><category term='.NET Framework'/><category term='MySQL'/><category term='T-SQL'/><category term='Security'/><category term='Apple'/><category term='Database Engineering'/><category term='Testing'/><category term='SQL Server'/><title type='text'>Software Solutions To Database, Programming and Logical Problems</title><subtitle type='html'>Tips and Tidbits of information related to the field of software engineering.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://softwaresolutions.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-17298170.post-4843471130254793529</id><published>2011-04-05T06:25:00.000-04:00</published><updated>2011-04-05T06:25:00.094-04:00</updated><title type='text'>T-SQL Table Valued Functions and Linq-to-SQL</title><content type='html'>I noticed that calling a T-SQL table value function that does not explicitly define the return table type causes the Linq-To-SQL code generation engine to create an incorrectly formed SQL request.&lt;br /&gt;&lt;br /&gt;When querying the SQL functions listed at the bottom of the post with these statements, the first will &lt;strong&gt;not&lt;/strong&gt; work and the second will work correctly.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;foo(1).Dump();&lt;br /&gt;foo2(2).Dump();&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The first function (from the two listed below) will have SQL generated that looks like&lt;br /&gt;&lt;code&gt;&lt;br /&gt;-- Region Parameters&lt;br /&gt;DECLARE @p0 Int = 1&lt;br /&gt;-- EndRegion&lt;br /&gt;SELECT [t0].@Max AS [Max]&lt;br /&gt;FROM [dbo].[foo](@p0) AS [t0]&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;which is incorrect. If you inspect the SELECT statement closely you will see &lt;code&gt;[t0].@Max&lt;/code&gt; and the @ symbol should &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; be there.&lt;br /&gt;&lt;br /&gt;The following SQL function definitions are referenced above:&lt;br /&gt;&lt;script src="http://gist.github.com/152997.js"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-9005825928950933";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17298170-4843471130254793529?l=softwaresolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/4843471130254793529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/4843471130254793529'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/2011/04/t-sql-table-valued-functions-and-linq.html' title='T-SQL Table Valued Functions and Linq-to-SQL'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-17298170.post-8677019696694662137</id><published>2007-11-14T19:44:00.001-05:00</published><updated>2007-11-14T19:44:31.675-05:00</updated><title type='text'>Fwd: ID thieves' new hangout: file-sharing software - MSNBC.com</title><content type='html'>&lt;div class="gmail_quote"&gt;&lt;div&gt;&lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;span&gt;If you are using  file-sharing software or even thinking about using&amp;nbsp;it, you need to read  this msnbc article.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial" size="2"&gt;Latest post from: ID thieves&amp;#39; new hangout:  file-sharing software ( &lt;a href="http://redtape.msnbc.com/2007/11/id-thieves-new-.html" target="_blank"&gt;http://redtape.msnbc.com/2007/11/id-thieves-new-.html&lt;/a&gt;)&lt;/font&gt;&lt;/p&gt;&lt;/div&gt; &lt;/div&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-9005825928950933";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17298170-8677019696694662137?l=softwaresolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/8677019696694662137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/8677019696694662137'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/2007/11/fwd-id-thieves-new-hangout-file-sharing.html' title='Fwd: ID thieves&apos; new hangout: file-sharing software - MSNBC.com'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-17298170.post-1679535965702672468</id><published>2007-09-12T08:39:00.000-04:00</published><updated>2007-09-12T08:53:09.208-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Database Engineering'/><title type='text'>Strange SQL Server Behavior</title><content type='html'>A co-worker discovered the following odd behavior in Microsoft SQL Server 2000.&lt;br /&gt;&lt;br /&gt;declare @foo table (&lt;br /&gt;    A int, B varchar(50))&lt;br /&gt;&lt;br /&gt;insert @foo values(null,'abc')&lt;br /&gt;&lt;br /&gt;select IsNull(A,'-'), B from @foo&lt;br /&gt;select IsNull(convert(varchar(5),A),'-'), B from @foo&lt;br /&gt;&lt;br /&gt;The result of the first select statement is the value &lt;span style="font-weight: bold;"&gt;0&lt;/span&gt; for the first column.  This statement in reality should have caused an error message and indeed does cause an error when the type of the A column is changed to a float.  For some reason an integer has an implicit null conversion to the value 0.  This may have something to do with the setting of ANSI NULL, I have not investigated it that much.&lt;br /&gt;&lt;br /&gt;As a final note, this functionality is the same in SQL Server 2000 and SQL Server 2005.&lt;br /&gt;&lt;br /&gt;The following select statement in MySQL returns the value '-' for the column A when in reality column A should be of type Integer!&lt;br /&gt;&lt;br /&gt;&lt;span class="syntax"&gt;&lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;SELECT&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_functionName"&gt;IFNULL&lt;/span&gt;&lt;span class="syntax_punct syntax_punct_bracket_open_round"&gt;(&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_identifier"&gt;A&lt;/span&gt;&lt;span class="syntax_punct syntax_punct_listsep"&gt;,&lt;/span&gt;  &lt;span class="syntax_quote syntax_quote_single"&gt;'-'&lt;/span&gt;  &lt;span class="syntax_punct syntax_punct_bracket_close_round"&gt;)&lt;/span&gt; &lt;span class="syntax_punct syntax_punct_listsep"&gt;,&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_identifier"&gt;B&lt;br /&gt;&lt;br /&gt;and the following query works without error as well:&lt;br /&gt;&lt;br /&gt;SELECT 1,''&lt;br /&gt;UNION&lt;br /&gt;SELECT IFNULL(A,'-'),B&lt;br /&gt;FROM FOO&lt;br /&gt;&lt;br /&gt;when the previous query should return an error because an integer type is not compatible with a char/varchar type!&lt;br /&gt;&lt;br /&gt;So in conclusion it pays to be aware of this issue as my co-worker discovered.  Apparently a significant amount of work was done based upon incorrect data resulting from this odd behavior.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-9005825928950933";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17298170-1679535965702672468?l=softwaresolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/1679535965702672468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/1679535965702672468'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/2007/09/strange-sql-server-behavior.html' title='Strange SQL Server Behavior'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-17298170.post-5541357454166030967</id><published>2007-09-06T07:31:00.000-04:00</published><updated>2007-09-06T07:44:10.100-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Toys'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>New Apple Products</title><content type='html'>Yesterday Apple released a new &lt;a href="http://www.apple.com/ipodtouch"&gt;&lt;span style="font-weight: bold;"&gt;iPod&lt;/span&gt; touch&lt;/a&gt;.  Essentially this is a wi-fi enabled tablet computer along the lines of the &lt;a href="http://www.nokiausa.com/770"&gt;Nokia 770&lt;/a&gt;. It seemes priced right at $299 for the 8GB model and $399 for the 16GB model. I think it will fit a niche market of people who want some of the features of the iPhone but not the AT&amp;T service contract.  When a few more carriers agree to work with Apple to make the iPhone work on their networks (read Verizon) I think the iPhone may really take off more.  For now there is a halfway product that has a lot of the glamour of the iPhone, just without the big iPhone price tag and service commitment.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-9005825928950933";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17298170-5541357454166030967?l=softwaresolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/5541357454166030967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/5541357454166030967'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/2007/09/new-apple-products.html' title='New Apple Products'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-17298170.post-6060269228027410870</id><published>2007-09-05T07:12:00.000-04:00</published><updated>2007-09-05T07:46:31.804-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Advantages of Interfaces in Unit Testing</title><content type='html'>As a software developer I strive to integrate &lt;a href="http://c2.com/cgi/wiki?UnitTest"&gt;Unit Testing&lt;/a&gt; into my development process. At my organization there is a hard and fast rule, no testing code can reside in the production assembly. This was a problem with a class I was attempting to test because the class contains many &lt;a href="http://msdn2.microsoft.com/en-us/library/76453kax%28VS.71%29.aspx"&gt;protected&lt;/a&gt; methods that I wanted to be able to test in addition to the &lt;a href="http://msdn2.microsoft.com/en-us/library/76453kax%28VS.71%29.aspx"&gt;public&lt;/a&gt; interface to the class. Fortunately in .NET, if  &lt;a href="http://msdn2.microsoft.com/en-us/library/76453kax%28VS.71%29.aspx"&gt;protected&lt;/a&gt; methods implement an interface on a class, you can access those methods if you create an object instance which is typed to the interface instead of the concrete class.&lt;br /&gt;&lt;br /&gt;In C# you might do the following:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;// This would be the class you are attempting to test in another assembly&lt;br /&gt;public class Testing:ITestable {&lt;br /&gt; protected Boolean TestThis() {return false;}&lt;br /&gt;&lt;br /&gt; // You must make this interface public in order to execute the tests.&lt;br /&gt; // However, if you only want to make this available in certain build&lt;br /&gt; // configurations then you can easily add pre-compiler directives to&lt;br /&gt; // exclude this interface from the release build configuration.&lt;br /&gt;&lt;br /&gt;#if DEBUG&lt;br /&gt; public Interface ITestable {&lt;br /&gt;#else&lt;br /&gt; private Interface ITestable {&lt;br /&gt;#endif&lt;br /&gt;     Boolean TestThis();&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//This class would reside in another class library assembly and get executing using an NUnit test runner.&lt;br /&gt;[TestFixture()]&lt;br /&gt;public class TestingTests {&lt;br /&gt;&lt;br /&gt;   [Test()]&lt;br /&gt;   public void TestThisTest() {&lt;br /&gt;       Testing.ITestable testObject = new Testing();&lt;br /&gt;      &lt;br /&gt;       Assert.IsFalse(testObject.TestThis());&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Essentially what is happening is that you conditionally include an interface which the unit testing class uses to reach inside of the object under test to enable testing of internal functions.  One caveat, it is generally a much better design principle to just test the public interface, allowing for redesign and application of test cases to children who may inherit from the base class. However, for situations where you can not change the entire architecture, this method allows you to improve the code coverage of unit tests for classes with protected or private members that need testing.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-9005825928950933";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17298170-6060269228027410870?l=softwaresolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/6060269228027410870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/6060269228027410870'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/2007/09/advantages-of-interfaces-in-unit.html' title='Advantages of Interfaces in Unit Testing'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-17298170.post-6523150745828337998</id><published>2007-08-23T16:50:00.001-04:00</published><updated>2007-09-05T07:10:45.790-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Looking For MD5 or SHA1 Implementation In T-SQL?</title><content type='html'>For those of you that might be looking for an implementation of the MD5 or the SHA1 implementation for SQL Server 2000 or SQL Server 2005 &lt;a href="http://www.codeproject.com/useritems/MD5_SHA-1_TSQL_impl.asp"&gt;this&lt;/a&gt; might fit the bill! &lt;a href="http://www.codeproject.com/useritems/MD5_SHA-1_TSQL_impl.asp"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-9005825928950933";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17298170-6523150745828337998?l=softwaresolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/6523150745828337998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/6523150745828337998'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/2007/08/looking-for-md5-or-sha1-implementation.html' title='Looking For MD5 or SHA1 Implementation In T-SQL?'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-17298170.post-117347691337598974</id><published>2007-03-09T16:48:00.000-05:00</published><updated>2007-03-09T16:48:33.460-05:00</updated><title type='text'>Hardware Hacking</title><content type='html'>CPU memory protections can&amp;#39;t help this hack.&lt;br&gt;&lt;br&gt;Check out this article about why hacking your system is now easier.&lt;br&gt;&lt;br&gt;&lt;a href="http://www.eweek.com/article2/0,1895,2099603,00.asp"&gt;http://www.eweek.com/article2/0,1895,2099603,00.asp &lt;/a&gt;&lt;br&gt;&lt;br&gt;Norman&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-9005825928950933";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17298170-117347691337598974?l=softwaresolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/117347691337598974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/117347691337598974'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/2007/03/hardware-hacking.html' title='Hardware Hacking'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-17298170.post-116373349988728973</id><published>2006-11-16T22:01:00.000-05:00</published><updated>2006-11-16T22:18:19.900-05:00</updated><title type='text'>Darwin Streaming Server - Ubuntu 6.06 (Dapper Drake)</title><content type='html'>Recently I have decided that Microsoft may not be the be-all-end all to technology and have begun exploring the "darker" side of the world.  (That would be the Linux side.)  Ok, so darker may not be the right idea to convey but anyway, its the side that the average PC user does not get to work with often.&lt;br /&gt;&lt;br /&gt;I am building up my second install of Ubuntu 6.06 (Hard drive crash on the old one kind of blew things away for me. Arrg) and I realized it would be really cool to have a streaming server running on my computer, so I decided to do some looking to find out if anyone had gotten Darwin to run with Ubuntu.  I found one &lt;a href="http://lists.apple.com/archives/streaming-server-users/2006/Jun/msg00233.html"&gt;post&lt;/a&gt; that described some problems that one user had.&lt;br /&gt;&lt;br /&gt;The trick to getting it to install and run correctly is to understand that the commands in the Install shell script do not actually create the qtss user and associated group account properly.  The parameter "-M" that is in that file is invalid for Ubuntu's version of "adduser" and so that fails.  What you can do is before you run the Install script, you can create the user yourself using either the commandline tools or the visual tools from the &lt;span style="font-weight:bold;"&gt;System&lt;/span&gt; -&gt; &lt;span style="font-weight:bold;"&gt;Administration&lt;/span&gt; -&gt; &lt;span style="font-weight:bold;"&gt;Users and Groups&lt;/span&gt; menu in Ubuntu.&lt;br /&gt;&lt;br /&gt;Also, make sure that your user (qtss) has appropriate security configured so that it can read the files that you are going to stream.&lt;br /&gt;&lt;br /&gt;And finally, what I did to get the streamingadminserver.pl running correctly is to use "sudo su - qtss" to get a shell running as the "qtss" user and then run the script, which ensured that it was started under that users privilege.&lt;br /&gt;&lt;br /&gt;Unfortunately no one has stepped up to the plate to create an Ubuntu installer package for this application and hence there is no /etc/init.d/darwin script to control the server.  Mabye I will make that if I get to feeling adventurous with bash.&lt;br /&gt;&lt;br /&gt;Ok, so this was a little long but hopefully it will help you get Darwin Streaming Server installed on your Ubuntu Server today.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-9005825928950933";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17298170-116373349988728973?l=softwaresolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/116373349988728973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/116373349988728973'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/2006/11/darwin-streaming-server-ubuntu-606.html' title='Darwin Streaming Server - Ubuntu 6.06 (Dapper Drake)'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-17298170.post-114986016541239665</id><published>2006-06-09T09:36:00.000-04:00</published><updated>2006-06-09T09:36:06.003-04:00</updated><title type='text'>Social Engineering - Extremely Low Risk Infiltration Scheme</title><content type='html'>&lt;a href="http://www.darkreading.com/document.asp?doc_id=95556&amp;amp;WT.svl=column1_1"&gt;This&lt;/a&gt; is a &lt;span style="font-weight: bold; font-style: italic;"&gt;great &lt;/span&gt;article describing how &lt;span style="font-style: italic;"&gt;easy &lt;/span&gt; it is to utilize human nature to overcome security policy to gain covert access to remote systems with a VERY low detection probability.&lt;br&gt;&lt;br&gt;The gist of this story is that USB thumb drives were loaded with trojans and left in the parking lot and break area around the target and curious employees then loaded them into their computers which then sent compromise details to an unauthorized hacker. &lt;br&gt;&lt;br&gt;Be safe out there and beware the gift of the Trojans in USB drive form.&lt;br&gt;&lt;br&gt;Norman&lt;br&gt;&lt;br&gt;Full Article URL: &lt;a href="http://www.darkreading.com/document.asp?doc_id=95556&amp;amp;WT.svl=column1_1"&gt;http://www.darkreading.com/document.asp?doc_id=95556&amp;amp;WT.svl=column1_1 &lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-9005825928950933";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17298170-114986016541239665?l=softwaresolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/114986016541239665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/114986016541239665'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/2006/06/social-engineering-extremely-low-risk.html' title='Social Engineering - Extremely Low Risk Infiltration Scheme'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-17298170.post-114528140740916555</id><published>2006-04-17T09:43:00.000-04:00</published><updated>2006-04-17T09:43:27.690-04:00</updated><title type='text'>Security News: Reduce Brute-Force Attack Success</title><content type='html'>The following is an article with good information on how to reduce the effectiveness of brute-force attacks against web applications.&amp;nbsp; The technology relies on mathematical algorithms on the client that require more time to compute than to verify to incur a transaction cost for authentication against a web application to make it computationally infeasible to implement a large-scale attack. &lt;br&gt;&lt;br&gt;&lt;a href="http://www.infosecwriters.com/text_resources/pdf/AntiBruteForceResourceMetering.pdf"&gt;http://www.infosecwriters.com/text_resources/pdf/AntiBruteForceResourceMetering.pdf&lt;/a&gt; &lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-9005825928950933";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17298170-114528140740916555?l=softwaresolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/114528140740916555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/114528140740916555'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/2006/04/security-news-reduce-brute-force.html' title='Security News: Reduce Brute-Force Attack Success'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-17298170.post-114322126171995011</id><published>2006-03-24T12:27:00.000-05:00</published><updated>2006-03-24T12:27:42.586-05:00</updated><title type='text'>Web-based AJAX messaging client</title><content type='html'>A friend of mine just showed me this URL for a web-based messaging client.&amp;nbsp; I have not tried it out yet, but it looks interesting! It probably spells trouble for network administrators who can't firewall web traffic.&amp;nbsp; I do suppose they could block the website, but that does not mean other people will not take up the technology and implement it elsewhere. &lt;br&gt;&lt;br&gt;&lt;a href="http://www13.meebo.com/"&gt;http://www13.meebo.com/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Norman&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-9005825928950933";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17298170-114322126171995011?l=softwaresolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/114322126171995011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/114322126171995011'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/2006/03/web-based-ajax-messaging-client.html' title='Web-based AJAX messaging client'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-17298170.post-114304129549807978</id><published>2006-03-22T10:28:00.000-05:00</published><updated>2007-09-05T08:11:02.290-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Social Engineering'/><title type='text'>Social Engineering</title><content type='html'>&lt;span class="gmail_quote"&gt;&lt;/span&gt;This is a great introduction to the art of social engineering that is one of the biggest security threats that many organizations do not consider when reviewing security policies and procedures.&amp;nbsp; This article is good information if you have friends that have not heard of the topic that work in IT. &lt;br&gt;&lt;div style="direction: ltr;"&gt;&lt;br&gt;&lt;a href="http://www.securityfocus.com/infocus/1860/1" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://www.securityfocus.com/infocus/1860/1&lt;/a&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="direction: ltr;"&gt; &lt;span class="sg"&gt;&lt;br&gt;Norman&lt;br&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-9005825928950933";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17298170-114304129549807978?l=softwaresolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/114304129549807978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/114304129549807978'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/2006/03/social-engineering.html' title='Social Engineering'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-17298170.post-114290226189191526</id><published>2006-03-20T19:49:00.000-05:00</published><updated>2006-03-20T19:51:01.903-05:00</updated><title type='text'>Finally, industry heads are getting things right!</title><content type='html'>Hello,&lt;br /&gt;&lt;br /&gt;I saw this article in the November 15 2005 issue of CIO magazine (an extremely valuable issue I might add!) and realized that I needed to share the information in this issue.  The article linked below is on requirements analysis.  There are other articles in that issue on testing and quality assurance as well which are very good articles which address those areas from the CIO point of view (which in my opinion is good for anyone to at least be aware of).&lt;br /&gt;&lt;br /&gt;For anyone who has ever been involved in a software project, this is the kind of information that CIO's need to help software development move out of the quagmire of failure that the industry has seen.&lt;br /&gt;&lt;br /&gt;------- Article Text -------&lt;br /&gt;CIO Magazine&lt;br /&gt;NOV 15, 2005&lt;br /&gt;How to Fix the Requirements Mess&lt;br /&gt;http://www.blogger.com/img/gl.link.gif&lt;br /&gt;Some CIOs are rewriting the rules for deciding what should be included in software.Some CIOs are rewriting the rules for deciding what should be included in software.&lt;br /&gt;&lt;br /&gt;Complete article online:&lt;br /&gt;&lt;a href="http://www.cio.com/archive/111505/require.html?CID=14295"&gt;http://www.cio.com/archive/111505/require.html?CID=14295&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-9005825928950933";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17298170-114290226189191526?l=softwaresolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/114290226189191526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/114290226189191526'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/2006/03/finally-industry-heads-are-getting.html' title='Finally, industry heads are getting things right!'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-17298170.post-113407467466725435</id><published>2005-12-08T15:41:00.000-05:00</published><updated>2005-12-08T15:44:34.676-05:00</updated><title type='text'>Hospitality Industry Information Technology</title><content type='html'>I have been thinking of some ways in which the hospitality industry information systems could be better accessed and utilized by the general public to reduce the number of times that itinerary information is entered and re-keyed and to improve the way in which a person of the general public would be able to locate housing in a foreign city with a minimum amount of time.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-9005825928950933";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17298170-113407467466725435?l=softwaresolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/113407467466725435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/113407467466725435'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/2005/12/hospitality-industry-information.html' title='Hospitality Industry Information Technology'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-17298170.post-112970029100630068</id><published>2005-10-19T01:28:00.000-04:00</published><updated>2005-10-19T01:39:20.190-04:00</updated><title type='text'>Web Service Tips and Tricks</title><content type='html'>One of my professors from my graduate program asked me about some information on developing web services in an environment that does not include Visual Studio .NET .&lt;br /&gt;&lt;br /&gt;One of the great benefits of using Visual Studio .NET 2003 is that you can get automatically generated proxies to the remote web service without really lifting a finger.&lt;br /&gt;&lt;br /&gt;Unfortunately, this is not a built-in feature of #develop.  However, not to worry, it &lt;span style="font-weight:bold;"&gt;is&lt;/span&gt; a built-in feature of &lt;a href="http://nantcontrib.sourceforge.net"&gt;NAnt Contrib&lt;/a&gt; a sibling project with the &lt;a href="http://nant.sourceforge.net"&gt;NAnt&lt;/a&gt; project that creates additional functionality for use with the &lt;a href="http://nant.sourceforge.net"&gt;NAnt&lt;/a&gt; tool.&lt;br /&gt;&lt;br /&gt;You say, but wait, I don't want to use an &lt;a href="http://nant.sourceforge.net"&gt;NAnt&lt;/a&gt; controlled build process!  Don't fret, its not as hard as it used to be.  #develop has integration with &lt;a href="http://nant.sourceforge.net"&gt;NAnt&lt;/a&gt; (and &lt;a href="http://nunit.org"&gt;NUnit&lt;/a&gt;) that really works well.  You can either use the #develop VS.NET 2003-style build manager or you can use your own custom &lt;a href="http://nant.sourceforge.net"&gt;NAnt&lt;/a&gt; script.&lt;br /&gt;&lt;br /&gt;One last thing, if you have ever wanted to upload large files via a web service, you might want to check out this bit of code: &lt;a href="http://www.codeproject.com/cs/webservices/DimeBufferedUpload.asp"&gt;http://www.codeproject.com/cs/webservices/DimeBufferedUpload.asp&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;That's about it for now!  Happy Coding!&lt;br /&gt;&lt;br /&gt;Norman&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-9005825928950933";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17298170-112970029100630068?l=softwaresolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/112970029100630068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/112970029100630068'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/2005/10/web-service-tips-and-tricks.html' title='Web Service Tips and Tricks'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-17298170.post-112807637860944845</id><published>2005-09-30T15:30:00.000-04:00</published><updated>2005-09-30T06:32:58.613-04:00</updated><title type='text'>#develop and NAnt integration</title><content type='html'>Wow!  Check &lt;a href="http://www.icsharpcode.net/laputa/DemoNAntIntegration.aspx"&gt;this&lt;/a&gt; out.&lt;br /&gt;&lt;br /&gt;#develop has now been updated to include &lt;em&gt;full &lt;/em&gt;NAnt build support.  What this means is that for those of you using concurrent build systems or trying to build complex solutions, you can use NAnt's flexibility and STILL be able to use build information RIGHT IN THE IDE just as if you were using the built-in #develop build tool.&lt;br /&gt;&lt;br /&gt;Try to keep up with &lt;em&gt;that&lt;/em&gt; Microsoft...&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-9005825928950933";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17298170-112807637860944845?l=softwaresolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/112807637860944845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17298170/posts/default/112807637860944845'/><link rel='alternate' type='text/html' href='http://softwaresolutions.blogspot.com/2005/09/develop-and-nant-integration.html' title='#develop and NAnt integration'/><author><name>N. Harebottle III</name><uri>http://www.blogger.com/profile/07270724745675343313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
