<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>RobSymonds.com</title>
	<atom:link href="http://www.robsymonds.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.robsymonds.com</link>
	<description>Information Technology, Corporate Culture and Online Business</description>
	<lastBuildDate>Wed, 05 Oct 2011 14:18:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>The Accidental Millionaire &#8211; by Gary Fong</title>
		<link>http://www.robsymonds.com/the-accidental-millionaire-by-gary-fong/</link>
		<comments>http://www.robsymonds.com/the-accidental-millionaire-by-gary-fong/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 02:13:36 +0000</pubDate>
		<dc:creator>Rob Symonds</dc:creator>
				<category><![CDATA[Book Notes]]></category>

		<guid isPermaLink="false">http://www.robsymonds.com/?p=697</guid>
		<description><![CDATA[Maybe you haven&#8217;t heard of Gary Fong. Even though I&#8217;m interested in photography, I hadn&#8217;t heard of him until a photographer buddy clued me in. He is known as an innovative wedding photographer, entrepreneur and writer. In The Accidental Millionaire, Fong tells us his life story so far, giving the details of the personal philosophy [...]]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:5px;"><a href="http://www.amazon.com/gp/product/1933771917/ref=as_li_ss_il?ie=UTF8&#038;tag=yourpotenti07-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399369&#038;creativeASIN=1933771917"><img border="0" src="http://ws.assoc-amazon.com/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=1933771917&#038;MarketPlace=US&#038;ID=AsinImage&#038;WS=1&#038;tag=yourpotenti07-20&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.com/e/ir?t=yourpotenti07-20&#038;l=as2&#038;o=1&#038;a=1933771917&#038;camp=217145&#038;creative=399369" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></div>
<p>Maybe you haven&#8217;t heard of Gary Fong. Even though I&#8217;m interested in photography, I hadn&#8217;t heard of him until a photographer buddy clued me in. He is known as an innovative wedding photographer, entrepreneur and writer.</p>
<p>In The Accidental Millionaire, Fong tells us his life story so far, giving the details of the personal philosophy that has worked so well for him. This is not the same recycled self-help crap everybody else writes. In contrast to vision, goals, tasks and actions, Fong&#8217;s more Zen-flavored philosophy comes down to exploring things that interest him, creating space for insights to happen and then working his ass off. He admits he acts on hunches, sometimes decides by flipping a coin and understands the role luck has in success.</p>
<p>This book will be appealing even if you aren&#8217;t a photographer.</p>
<p><span id="more-697"></span></p>
<h2>Notes and Quotes</h2>
<p>The bumper sticker said: SINCE I GAVE UP HOPE, I FEEL MUCH BETTER. I read it, laughed myself sick, and immediately felt the proverbial weight of the world lift from my shoulders.</p>
<p>In that one instant, I gave up all my focus on things going the way I wanted them to. Ever. I surrendered all my goals, my visions, my fantasies, my expectations. My Plans. I was suddenly knocked from my inner railroad tracks and felt my perspective opening up like a morning glory in the sun. </p>
<p>That bumper sticker gave me my freedom.</p>
<p>~</p>
<p>Zen is not really about patience, though. Because  when you&#8217;re patient, you&#8217;re still secretly waiting for the outcome. Zen is about the process, not the outcome.</p>
<p>~</p>
<p>I recently read an interview with an emergency room physician who was asked, &#8220;How do you handle stress?&#8221; He replied, &#8220;Rather than focus on the outcome, I focus on the process.&#8221;</p>
<p>~</p>
<p>As a teenager, I began to see life as a game filled with creative strategies. Once I uncoupled my mind from the box of self-imposed limitations (otherwise known as &#8220;rules&#8221;), I started to realize that there were unlimited possibilities for achieving anything I desired. </p>
<p>And one I started to be open to anything, the game of life began to be ridiculously fun. </p>
<p>~</p>
<p>What I do is clearly define the problem at hand, then sit on it for a few days. Rather than miserably pound out a forced solution, I just keep the question percolating in my mind and let the world fill in the holes to the puzzle. My brain&#8217;s filtering process does all the work; it unconsciously scans for answers that fit the &#8220;mold&#8221; of the question. Great ideas that I never would have conjured up on purpose come to me this way. This approach has been successful countless times in my life, and it continues to be so.</p>
<p>When I lock into thinking about a problem, rather than pushing for a solution, the answer lands in my lap. The reason is that I&#8217;m open to seeing it. I&#8217;ve set my filters to receive it. </p>
<p>~</p>
<p>I had caught a small break, but I also knew there was no option to fail. It was do or die, sink or swim.</p>
<p>Rocky had once told me, &#8220;Never refuse help, Gary. Always run as far as you can with it. That&#8217;s the best way you can show gratitude.&#8221;</p>
<p>I took his words to heart.</p>
<p>~</p>
<p>&#8230;something [else] I&#8217;d learned from Rocky. He said, &#8220;Gary, the thing to remember is that you need to make friends with people. These people will refer you to their friends. Nobody needs another annoying salesman knocking on their door, but everyone could use a new friend.&#8221; I like that. Rocky had lots of friends. So would I.</p>
<p>So when I started out, I frequented the various hotels and catering facilities and florists, just trying to meet fellow travelers in the wedding industry. Instead of playing the salesman, I was honest and personal. I figured, make friends first, and the rest will follow.</p>
<p>~</p>
<p>Marketing Without Advertising teaches that people are usually passionate about at least one product or service that they have told multiple friends about. &#8220;Oh my gosh, I have the best accountant,&#8221; or, &#8220;You&#8217;ve got to got to this place for bagels.&#8221; If you can create client/allies who become the trumpeters of your product, the book says, you will never have to worry about business again.</p>
<p>~</p>
<p>Their friends would then say, &#8220;I want the name of your photographer.&#8221; That&#8217;s when my business really took off. All on word-of-mouth referrals, just like it said in Marketing Without Advertising. And all I had to do was make people happy.</p>
<p>~</p>
<p>I&#8217;ve always bristled against conformity. This girl&#8217;s incomprehensible wedding behavior helped me to see that in the absence of rigid rules, common sense becomes one&#8217;s guide. The rules lock you into an immovable position, whereas the absence of rules permits you to respond fluidly and come up with creative solutions&#8212;the best solution for the here and now.</p>
<p>~</p>
<p>She started screaming at him. &#8220;You fucking idiot! Why are you always so stupid? Do you take pills for it?&#8221;</p>
<p>[Too funny not to include.]</p>
<p>~</p>
<p>I had tried setting goals, and I&#8217;d realized that all it had done was make me miserable. Heading straight for a destination with blinders on prevented me from looking at the scenery along the way. And it was within the scenery that I usually spotted the detours that led to the next glorious destination. These new opportunities were then affirmed by mysterious &#8220;clues&#8221; that told me I was on the right track.</p>
<p>~</p>
<p>&#8230;had she been more open to the infinite possibilities that the world offers on a daily basis, maybe she would have made a fortune inventing something amazing out of the blue&#8230;</p>
<p>~</p>
<p>&#8230;I allowed others to have the deciding vote in my personal life. Only later in life did I learn to heed that inner voice telling me to follow both my heart and my mind.</p>
<p>~</p>
<p>I thought, I want to feel better, so I&#8217;m going to give up hope. It may seem strange, but it felt like nothing less than a spiritual awakening.</p>
<p>Right there in that moment, I decided I was not going to worry about anything anymore. I had worked my ass off in business and had absolutely nothing to show for it. In fact, I had more debt than case and a future that appeared bleak. But I just said, &#8220;You know what? I don&#8217;t care. I completely and utterly don&#8217;t care.&#8221;</p>
<p>I&#8217;d never felt better in my entire life.</p>
<p>~</p>
<p>Just as a passing curiosity, I asked him what his secret to success as an inventor was. He said that most of his success didn&#8217;t come from pulling new ideas out of a magic hat. Inventing wasn&#8217;t at all the way it was portrayed in the cartoons&#8212;light bulbs over the head and fevered cries of Eureka! You don&#8217;t wait for inspiration to strike you like heaven&#8217;s ball-peen hammer. You don&#8217;t even need to be particularly creative or technologically savvy.<br />
The secret, Enzo said, is that if you look at anything, you will see that it cam be improved. Any object or service, especially the ones you use often, has features that just aren&#8217;t working for you. You simply have to learn to identify those things and propose solutions. Most of your ideas won&#8217;t stick, but some of them will.</p>
<p>~</p>
<p>&#8230;when one focuses on the goal rather than the process, one can be easily led astray.</p>
<p>~</p>
<p>The point I&#8217;m trying to make is that hammering away at The Plan is as likely to cause you to miss greater opportunities, or to bring about the exact opposite of your goal, as it is to bring about success. So I don&#8217;t put much stock in it as a success strategy.</p>
<p>Being prepared though, that&#8217;s different. As Louis Pasteur said, &#8220;Chance favors the prepared mind.&#8221;</p>
<p>So that&#8217;s my great success advice, after all these pages? The corny old Boy Scout motto, &#8220;Be Prepared?&#8221; Well, yeah. Except with a little twist, My motto is actually, &#8220;Be preparing.&#8221;</p>
<p>Preparing for what, though?</p>
<p>It almost doesn&#8217;t matter. For whatever cheetah you&#8217;re hot to photograph.</p>
<p>As long as you&#8217;re fully engaged in the process of preparing for something, that mean&#8217;s you&#8217;re learning and growing, you&#8217;re stretching and adjusting, you&#8217;re adapting to a changing world, you&#8217;re learning to read the landscape, you&#8217;re throwing out old maps. And that alone is preparing you for some next stage, even if the cheetah you were hoping for doesn&#8217;t show up.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robsymonds.com/the-accidental-millionaire-by-gary-fong/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jack White on Restiction and Creativity</title>
		<link>http://www.robsymonds.com/jack-white-on-restiction-and-creativity/</link>
		<comments>http://www.robsymonds.com/jack-white-on-restiction-and-creativity/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 00:28:38 +0000</pubDate>
		<dc:creator>Rob Symonds</dc:creator>
				<category><![CDATA[Creativity]]></category>

		<guid isPermaLink="false">http://www.robsymonds.com/?p=687</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><iframe width="420" height="345" src="http://www.youtube.com/embed/eH4NhlxSrOw" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.robsymonds.com/jack-white-on-restiction-and-creativity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get Rich Quick Hucksters? Just Giving People What They Want</title>
		<link>http://www.robsymonds.com/get-rich-quick-hucksters-just-giving-people-what-they-want/</link>
		<comments>http://www.robsymonds.com/get-rich-quick-hucksters-just-giving-people-what-they-want/#comments</comments>
		<pubDate>Sun, 04 Sep 2011 16:32:42 +0000</pubDate>
		<dc:creator>Rob Symonds</dc:creator>
				<category><![CDATA[Business]]></category>

		<guid isPermaLink="false">http://www.robsymonds.com/?p=681</guid>
		<description><![CDATA[When you&#8217;re young, you look at television and think, There&#8217;s a conspiracy. The networks have conspired to dumb us down. But when you get a little older, you realize that&#8217;s not true. The networks are in business to give people exactly what they want. That&#8217;s a far more depressing thought. Conspiracy is optimistic! You can [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>When you&#8217;re young, you look at television and think, There&#8217;s a conspiracy. The networks have conspired to dumb us down. But when you get a little older, you realize that&#8217;s not true. The networks are in business to give people exactly what they want. That&#8217;s a far more depressing thought. Conspiracy is optimistic! You can shoot the bastards! We can have a revolution! But the networks are really in business to give people what they want. It&#8217;s the truth. &#8212; Steve Jobs</p></blockquote>
<p>I often get frustrated when I see how much information about running an online business is of the over-hyped get-rich-quick variety. Then I remember the quote above.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robsymonds.com/get-rich-quick-hucksters-just-giving-people-what-they-want/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tips, Tricks and Hints for Using SSIS from A-Z</title>
		<link>http://www.robsymonds.com/tips-tricks-and-hints-for-using-ssis-from-a-z/</link>
		<comments>http://www.robsymonds.com/tips-tricks-and-hints-for-using-ssis-from-a-z/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 15:11:44 +0000</pubDate>
		<dc:creator>Rob Symonds</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SSIS]]></category>

		<guid isPermaLink="false">http://www.robsymonds.com/?p=601</guid>
		<description><![CDATA[A while back I started keeping a list of all the things I learned to make working with SSIS less painful and I thought I&#8217;d share. These are small things: tips, tricks and hints. Just stuff I wish I had known when I first started working with SSIS. There isn&#8217;t much here in terms of [...]]]></description>
			<content:encoded><![CDATA[<p>A while back I started keeping a list of all the things I learned to make working with SSIS less painful and I thought I&#8217;d share. These are small things: tips, tricks and hints. Just stuff I wish I had known when I first started working with SSIS.<br />
<span id="more-601"></span></p>
<p>There isn&#8217;t much here in terms of an overarching philosophy. I&#8217;m still working on that. In general though, I would say SSIS development and management is better when:</p>
<ol>
<li>Packages are focused on a tight set of functions rather than doing a lot of different things.</li>
<li>Packages are easy to test. </li>
<li>Configuration is done using variables or better yet external configuration.</li>
<li>Packages can move through environments without connection managers or other components being modified (which means your configuration is done through variables or external configuration).</li>
</ol>
<p>I&#8217;ve only worked in small and medium environments. Some of these ideas may not be applicable in larger environments.</p>
<h2>Configuration</h2>
<ul>
<li>Behavior and configuration should be separate where possible. Ideally you should be able to move a package through different environments (DEV -> TEST -> PROD) simply by altering configuration, never by opening up and altering connections, components and tasks. This approach makes packages easier to test (which means packages get tested more, improving quality) and simplifies deployment.</li>
<li><em>EncryptSensitiveWithUserKey</em> should not be used for <strong>ProtectionLevel</strong>.</li>
<li>Handle configuration with variables or configuration files.</li>
<li>If you are going to store sensitive information inside connection managers, at the very least choose <em>EncryptSensitiveWithPassword</em> for the <strong>ProtectionLevel</strong>. This way other team members can access the package (you&#8217;ll need to give them the password) without losing connection information and the team can deploy packages without having to reconfigure them on the target deployment machine. Don&#8217;t rely on the package password for security as much as for convenience.</li>
</ul>
<h2>Connections</h2>
<ul>
<li>Don&#8217;t use explicit server names in connection managers. This becomes confusing when you are moving a package between environments. Using a more granular name (the name of a database, the name of a file) that is not tied to a physical location is better. Example: Using <em>SQLETLPRD01.Datamart</em> is bad. Using just <em>Datamart</em> is better.</li>
<li>When you create flat file connections, don&#8217;t try to define the schema by hand in BIDS using the connection manager. Instead, go outside of BIDS, create a sample file using Notepad or Excel that is in the final flat file format and put some sample data it it. Then go back inside BIDS and point the connection manager to that file. BIDS  will build all the metadata it needs to define that flat file&#8217;s schema. You&#8217;ll need to review it but you&#8217;ll save a ton of work.</li>
</ul>
<h2>Containers</h2>
<ul>
<li>Break control flow tasks up into units of work using Sequence Containers.</li>
<li>Containers can help readability of a package. The can also be used to group units of work that can easily be tested or rerun together.</li>
</ul>
<h2>Deployment</h2>
<ul>
<li>(Painful. File system deployment seems like a clear winner in terms of deployment and maintenance but may not be as secure?)</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>Don&#8217;t forget that you can include documentation inside a package with annotations.</li>
<li>Documentation should include notes on deployment.</li>
<li>Documentation should note whether a package can be rerun after failure or whether it needs intervention by an operator, a package developer or a process owner.</li>
</ul>
<h2>Expressions</h2>
<ul>
<li>To use a backslash in an expression, you must escape it. For example, <em>C:\temp\</em> won&#8217;t work in an expression. You have to write it as <em>C:\\temp\\</em>.</li>
<li>Building a date tag is a pain. This snippet can help. It produces the current date in the form of DDMMYYYY:
<pre>RIGHT("0" + (DT_WSTR,2)MONTH(GETDATE()), 2)
+ RIGHT("0" + (DT_WSTR,2)DAY( GETDATE()), 2)
+ (DT_WSTR,4)YEAR(GETDATE())
</pre>
</li>
</ul>
<h2>Error Handling</h2>
<ul>
<li>A package should never fail a SQL Agent job for non-exceptional reasons. Example. Every Wednesday a job runs an SSIS package that downloads a remote file, transforms a few fields and writes the data to a database table. The SSIS package should not fail the job just because this Wednesday the file can&#8217;t be found on the remote server. This is a non-exceptional state for the process, meaning it&#8217;s not something that should be considered outside normal operation. It happens all the time in the real world. The SSIS package should be able to handle it gracefully and notify the process owner via email or some other method.</li>
</ul>
<h2>File Operations</h2>
<ul>
<li>Using wildcards (ex: <em>/*.dat</em>) does not work in the file system task.</li>
<li>Using a script task is often a better way of handling bulk file operations (like deletes) than using the foreach loop task. You&#8217;ll need to reference the <strong>.NET System.IO</strong> namespace. (Remember that you can access package variables inside script tasks.)</li>
<li>But use a foreach loop container if you need to execute other SSIS tasks each time through the loop.</li>
<li>It is easier to delete a directory full of files than to try to delete a large number of files using scripts or file system tasks (especially if you need a foreach loop container). So if you need to create a large number of files and then delete them later, put them all in a folder. Then just create/delete the folder using file system tasks.</li>
</ul>
<h2>FTP</h2>
<ul>
<li>Using wildcards (ex:<em> /*.dat</em>) does work in remote FTP paths.</li>
</ul>
<h2>Packages</h2>
<ul>
<li>Give packages a unique name instead of Package.dtsx.</li>
<li>A good package name might take the form of <em>Project-Module-Function.dtsx</em>.</li>
<li>Packages should not have too many functions. Smaller packages are easier to test and deploy. They minimize risk of breaking functionality when making changes and redeploying. If you need to use SSIS to provide multiple related functions in the same module of a project and run them on the same schedule, it may be better to create separate packages and put them in separate steps of a single SQL Agent job. That is often preferable to developing and managing a single monolithic package.</li>
<li>If functionality in a package is deprecated, take it out. If it needs to stay there for reference, clearly mark it as deprecated.</li>
</ul>
<h2>Logging</h2>
<ul>
<li>Log to a text file instead of a SQL table. A SQL table is convenient but the file system is a more robust subsystem than SQL in the event of database problems.</li>
<li>Be careful about the amount of information you include in logging. Production packages should generally only log errors (SQL Agent logs steps and run times). In other environments, more verbose output is ok.</li>
</ul>
<h2>Variables</h2>
<ul>
<li>Create as few variables as possible.</li>
<li>Using the package variable scope is usually just fine (vs. getting more granular).</li>
<li>Using variable expressions is an easy way to set variable values before the control flow starts. An alternative is to set variables at the start of the control flow using a script task. The drawback to that though is that if you want to only test part of a package you can&#8217;t just execute a single container to test it&#8212;you must disable all containers/components you don&#8217;t want to execute and then run the entire package to make sure those variables are set.</li>
<li>It&#8217;s a good practice to distinguish between directories and paths. A path is a directory + a filename. For example, <em>\\fileserver01\inbound\</em> is a directory while <em>\\fileserver01\inbound\2011-09-01.zip</em> is a path.</li>
<li>If you need to reference a path or a directory more than once in a package, put it in a variable.</li>
<li>If you only reference a path or directory once but it is dependant on some other variable (such as the home directory for a process, which changes from environment to environment), set it in that connection&#8217;s or component&#8217;s Expressions collection.</li>
</ul>
<p>Please leave a comment with any improvements and additions to this list. I&#8217;ll keep the list updated. Also, take a look at Jamie Thompson&#8217;s list of <a href="http://consultingblogs.emc.com/jamiethomson/archive/2006/01/05/SSIS_3A00_-Suggested-Best-Practices-and-naming-conventions.aspx">SSIS: Suggested Best Practices and naming conventions</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robsymonds.com/tips-tricks-and-hints-for-using-ssis-from-a-z/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Build an Online Business with no Business Model?</title>
		<link>http://www.robsymonds.com/why-build-an-online-business-with-no-business-model/</link>
		<comments>http://www.robsymonds.com/why-build-an-online-business-with-no-business-model/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 16:17:35 +0000</pubDate>
		<dc:creator>Rob Symonds</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Online Business]]></category>

		<guid isPermaLink="false">http://www.robsymonds.com/?p=528</guid>
		<description><![CDATA[Recently a friend asked me for some advice about building an online business. Essentially, he has invested some time building contacts in a particular field and has developed some unique content. He is looking to find a way to build a business based on what he currently has. There is already one website out there [...]]]></description>
			<content:encoded><![CDATA[<p>Recently a friend asked me for some advice about building an online business. Essentially, he has invested some time building contacts in a particular field and has developed some unique content. He is looking to find a way to build a business based on what he currently has. There is already one website out there that is similar to what he is thinking of building although he would not be using the same business model. One thing he wanted to know was how much it might cost to build something similar. </p>
<p>To give him a ballpark figure is not hard. But at this point I think it&#8217;s the wrong question to ask.</p>
<p>He is struggling to identify how he will make money. He has a family and little free time. He wants to make sure he is investing in something that has a good chance of making money. </p>
<p>Reading books on business doesn&#8217;t make me any more of a businessman than reading books on surgery would make me a surgeon. Still, I have a little experience when it comes to online business so I felt comfortable sharing my thoughts. We had a few discussions and then I wrote him this email:<span id="more-528"></span></p>
<blockquote><p>
I would suggest that looking at the site&#8217;s functionality is putting the cart before the horse. You asked for my thoughts and I would never want to give you some watered-down feel-good bs.</p>
<p>If you were really involved in [the field he is interested in pursuing] you might build a site like this simply to connect with like-minded people. In that case, you might not care if it makes money as long as you&#8217;re having fun. Sure, you might get lucky and end up developing something lucrative but that would be icing on the cake. Because first and foremost you are simply an enthusiast and building something like this would be fun regardless of its financial success.</p>
<p>From our discussion it sounds like you are looking to approach it more like a businessman and make money vs approaching it like an enthusiast. That being the case, the first thing you need to do is identify your customer and your product and then you need to find a way to test it against the market to see if it is worth investing in. I wouldn&#8217;t invest money in anything until I had identified, at a minimum:</p>
<p>1. A product<br />
2. A customer </p>
<p>At that point, the next thing to do is to build the simplest thing possible to test the market and see if it makes sense to move forward. Testing may or may not cost money. I can&#8217;t be more specific because how you test would depend on the product and the customer. But that is how I would approach it. </p>
</blockquote>
<p>Consider this definition of a business model (taken from <a href="http://steveblank.com/2010/11/15/creating-startup-success-customer-development-business-model-design/">here</a>):</p>
<blockquote><p>A business model describes the rationale of how an organization <strong>creates</strong>, <strong>delivers</strong>, and <strong>captures value</strong>.</p></blockquote>
<p>In order to build a business, my friend has to find or develop a model for:</p>
<ol>
<li>Creating Value</li>
<li>Delivering Value</li>
<li>Capturing Value</li>
</ol>
<p>That all depends on:</p>
<ol>
<li>Having an offer/product. </li>
<li>Having a market that needs or wants that offer and is willing and able to pay for it.</li>
</ol>
<p>What about Facebook, YouTube, Twitter and other sites that started with no business model or created markets that didn&#8217;t exist before they came along?</p>
<p>They are exceptions. </p>
<p>If you want to pin your future on exceptions and essentially buy lottery tickets&#8212;that&#8217;s fine. You are betting on that one in a million chance which means the odds are against you. That makes you a speculator and speculation is a topic for another day. </p>
<p>If you want to invest your time in a business where the odds are more in your favor, identify your customer and your offer, make sure you can reach your customer and make sure they are willing and able to pay for what you offer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robsymonds.com/why-build-an-online-business-with-no-business-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSIS Output to Multiple Files</title>
		<link>http://www.robsymonds.com/ssis-output-to-multiple-files/</link>
		<comments>http://www.robsymonds.com/ssis-output-to-multiple-files/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 23:59:42 +0000</pubDate>
		<dc:creator>Rob Symonds</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SSIS]]></category>

		<guid isPermaLink="false">http://www.robsymonds.com/?p=556</guid>
		<description><![CDATA[Export a large set of query results into multiple flat files using SSIS.]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s say a user asks you to create a flat file output from a database query. Piece of cake. Open SSMS, write the query, run it and copy the results (with headers using SSMS 2008) into a text file. Send the user the file and and you&#8217;re done with time left over for a siesta.</p>
<p> But oh wait&#8212;they want to be able to open it in an older version of Excel, which will only display ~ 65k rows per sheet. This file has 190k rows. So they ask you to write the output to multiple files, limiting the total rows per file to 60k. </p>
<p>Now what?</p>
<p>You could simply open the raw flat file, go to line 60,001 and cut-paste lines 60,001&#8211;120,000 into another file and repeat as necessary. That&#8217;s ok for a one-off task but not a good strategy if you are going to be doing this several times. It can be cumbersome and error prone to manually create several files this way.</p>
<p>No&#8212;the better approach is to make SSIS do the heavy lifting. I had to do this recently and thought I&#8217;d share my solution.<span id="more-556"></span></p>
<p>Here is how the process roughly breaks down:</p>
<ol>
<li>Pull the data from the source.</li>
<li>Stage the data.</li>
<li>Use the number of records returned and the max number of rows I want in each file to determine how many files I&#8217;ll need.</li>
<li>For each file I need, run through a loop, figure out which rows go into the current file, give the file a name and write the rows to the file.</li>
</ol>
<p>There are a few other details to cover too, like how to name output files and read from write to variables. We&#8217;ll look at all of that.</p>
<h4>Package Variables</h4>
<p>For this package I set up the following variables:</p>
<p><a href="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-package-variables-1.jpg"><img src="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-package-variables-1.jpg" alt="" title="SSIS Package Variables" width="273" height="183" class="alignnone size-full wp-image-571" /></a></p>
<p>I&#8217;ve hidden the scope in this screen cap. They are all in the package scope.</p>
<h4>Package Overview</h4>
<p>And here is what the package looks like. It&#8217;s bare bones simple.</p>
<p><a href="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-package-overview.jpg"><img src="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-package-overview-300x185.jpg" alt="" title="SSIS Package Overview" width="300" height="185" class="alignnone size-medium wp-image-570" /></a></p>
<h4>Create Staging Table</h4>
<p>I drop and create the staging table from scratch each time. It contains an identity field and I want to make sure I&#8217;m always starting with a seed value of 1. I could handle this differently but this method is simple and works reliably.</p>
<h4>Stage the Data</h4>
<p>Next, I stage the data. That Data Flow task looks like this:</p>
<p><a href="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-stage-the-data.jpg"><img src="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-stage-the-data.jpg" alt="" title="SSIS Stage the Data" width="174" height="203" class="alignnone size-full wp-image-578" /></a></p>
<p>I query the source database, get the number of rows returned so I can update the TotalRowCount variable, then update the staging table.</p>
<h4>Determine Number of Files to Write</h4>
<p>For this particular request, the user wanted a maximum of 60,000 rows per file. I don&#8217;t show it above but the MaxRowsPerFile package variable value is set to 60000. The logic to determine number of files needed is simple:</p>
<pre>
NumFiles = Ceiling(TotalRowCount / MaxRowsPerFile)
</pre>
<p>So if the process returned 190k rows and we only wanted 60k per file:</p>
<pre>
190,000 / 60,000 = 3.16
Ceiling(3.16) = 4
NumFiles = 4
</pre>
<p>Pretty basic.</p>
<p>Here is the C# code to do that and set the NumFiles package variable:</p>
<p><a href="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-script-get-numfiles.jpg"><img src="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-script-get-numfiles-300x57.jpg" alt="" title="SSIS Script Get NumFiles" width="300" height="57" class="alignnone size-medium wp-image-572" /></a></p>
<p>Remember to set your ReadOnlyVariables and ReadWriteVariables variables appropriately in the Script Task Editor:</p>
<p><a href="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-get-numfiles-script-editor.jpg"><img src="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-get-numfiles-script-editor-300x69.jpg" alt="" title="SSIS Script Task Accessors" width="300" height="69" class="alignnone size-medium wp-image-567" /></a></p>
<p>At this point we have pulled our source data and put it into a staging table. We know how many total rows we have. And we know how many files we will be writing. Now we need to select from the staging table and write the results to output files.</p>
<h4>The For Loop Container</h4>
<p>In a For Loop Container, you create some kind of condition. The loop will execute until that condition is met. I use the NumFiles variable to control how many times I run through the loop. To do this, I used the LoopCounter variable and the NumFiles variable. I start with LoopCounter = 1 and I increment the LoopCounter each time the loop executes. The loop runs while LoopCounter &lt;= NumFiles. If I&#8217;m creating 4 files, the loop executes 4 times. Here is how the loop is configured:</p>
<p><a href="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-for-loop-properties.jpg"><img src="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-for-loop-properties-300x74.jpg" alt="" title="SSIS For Loop Properties" width="300" height="74" class="alignnone size-medium wp-image-566" /></a></p>
<p>The @LoopCounter and @NumFiles variables reference package variables.</p>
<p>Inside the loop we have to do a few things:</p>
<ol>
<li>Determine which rows are going to be selected for output.</li>
<li>Name the output flat file.</li>
<li>Select the right data.</li>
<li>Write the data to the flat file.</li>
</ol>
<h4>Calculate Which Rows to Select</h4>
<p>How can I control which rows to select? Remember above I wrote that the staging table has an identity column and it is guaranteed to start at 1 each time I run this process. I called this field RecordNum. This means I can qualify my query using the RecordNum.</p>
<p>To do that, I&#8217;ll need to figure out which row to start on and which to end on each time I go through the loop. I&#8217;m going to refer to that as the window and it&#8217;s defined by two package variables: LoopWindowStart and LoopWindowEnd. The logic behind calculating the window is:</p>
<pre>
LoopWindowStart = (LoopCounter * MaxRecordsPerFile) - MaxRecordsPerFile
LoopWindowEnd = LoopWindowStart + MaxRecordsPerFile
</pre>
<p>Let&#8217;s use the same numbers again and say I only want 60k rows in each file.</p>
<p>The first time through the loop my window looks like this:</p>
<pre>
LoopCounter = 1
MaxRecordsPerFile = 60,000
LoopWindowStart = (1 * 60,000) - 60,000
LoopWindowStart = 0
LoopWindowEnd = 0 + 60,000
LoopWindowEnd = 60,000
</pre>
<p>The 2nd time through:</p>
<pre>
LoopCounter = 2
MaxRecordsPerFile = 60,000
LoopWindowStart = (2 * 60,000) - 60,000
LoopWindowStart = 60,000
LoopWindowEnd = 60,000 + 60,000
LoopWindowEnd = 120,000
</pre>
<p>The 3rd time through:</p>
<pre>
LoopCounter = 3
MaxRecordsPerFile = 60,000
LoopWindowStart = (3 * 60,000) - 60,000
LoopWindowStart = 120,000
LoopWindowEnd = 120,000 + 60,000
LoopWindowEnd = 180,000
</pre>
<p>And you can guess what the 4th time looks like.</p>
<p><em>But won&#8217;t there be overlapping values? </em></p>
<p>No. And you&#8217;ll see why below. But first, here is the C# script that shows how we set the LoopWindowStart and LoopWindowEnd variables:</p>
<p><a href="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-script-task-calculate-window.jpg"><img src="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-script-task-calculate-window-300x295.jpg" alt="" title="SSIS Script Task to Calculate Window" width="300" height="295" class="alignnone size-medium wp-image-573" /></a></p>
<p>Again, don&#8217;t forget to set the ReadOnlyVariables and ReadWriteVariables. </p>
<h4>Name the Output File</h4>
<p>I created a Flat File Connection in the Connection Manager. (Hint: always create a sample file first with 1 row and create your flat file connection by pointing it to the sample. That way you don&#8217;t have to create the entire definition in the connection editor, which is about as appealing as getting jabbed in the eye with a rusty can opener.) In the flat-file connection properties, I used the Property Expression Editor to set the ConnectionString.</p>
<p><a href="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-flat-file-connectionstring.jpg"><img src="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-flat-file-connectionstring-300x72.jpg" alt="" title="SSIS Flat File ConnectionString" width="300" height="72" class="alignnone size-medium wp-image-565" /></a></p>
<p>When I created the package initially, I set the HomeDir variable to point to my final output directory (including a trailing slash). The HomeDir might look like <em>C:\output\</em>. (Like the MaxRowsPerFile variable, I set this at design-time. It&#8217;s not something I set through scripting.)</p>
<p>OutFileName is a variable but we haven&#8217;t set it through any scripting. So how does it get set?</p>
<p>Go to the property editor for the variable and set EvaluateAsExpression to True.</p>
<p><a href="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-outfilename-variable-properties.jpg"><img src="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-outfilename-variable-properties.jpg" alt="" title="SSIS OutFileName Variable Properties" width="157" height="142" class="alignnone size-full wp-image-569" /></a></p>
<p>Then go into the Expression Editor and use a combination of literal strings and the LoopCounter to create the filename:</p>
<p><a href="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-outfilename-variable-expression.jpg"><img src="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-outfilename-variable-expression.jpg" alt="" title="SSIS OutFileName Variable Expression" width="215" height="106" class="alignnone size-full wp-image-568" /></a></p>
<p>Your outputfiles will evaluate to:</p>
<pre>
output-1.txt
output-2.txt
output-3.txt
etc...
</pre>
<p>Each time through the loop then you will be writing the following files:</p>
<pre>
C:\output\output-1.txt
C:\output\output-2.txt
C:\output\output-3.txt
etc...
</pre>
<h4>Select Output Data and Write to Output File</h4>
<p>Here we need to select specific rows to bring into the Data Flow. That Data Flow task looks like this:</p>
<p><a href="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-select-output-write-output.jpg"><img src="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-select-output-write-output.jpg" alt="" title="SSIS Select Output Data and Write to Output File" width="210" height="154" class="alignnone size-full wp-image-577" /></a></p>
<p>The staging table query uses the LoopWindowStart and LoopWindowEnd variables. There are two parts to this. The first is to write the query with the parameter placeholders:</p>
<p><a href="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-select-output-sql.jpg"><img src="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-select-output-sql.jpg" alt="" title="SSIS SELECT Command Text with Params" width="154" height="226" class="alignnone size-full wp-image-576" /></a></p>
<p>Notice how I&#8217;m using <em>WHERE RecordNum <span style="color:red;">&gt;</span> ?</em> with <em>AND RecordNum <span style="color:red;">&lt;=</span> ?</em>. This is why the records won&#8217;t overlap. Say I have 190k records and will be writing to 4 files. This means 4 times through the loop and it means 4 windows. Here is how things will look.</p>
<p><strong>1st Pass</strong> through loop:</p>
<pre>
LoopWindowStart = 0
LoopWindowEnd = 60,000
WHERE RecordNum > 0
AND RecordNum <= 60,000
</pre>
<p><em>Records 1 - 60,000 output to c:\output\output-1.txt</em></p>
<p><strong>2nd Pass</strong></p>
<pre>
LoopWindowStart = 60,000
LoopWindowEnd = 120,000
WHERE RecordNum > 60,000
AND RecordNum <= 120,000
</pre>
<p><em>Records 60,001 - 120,000 output to c:\output\output-2.txt</em></p>
<p><strong>3rd Pass</strong></p>
<pre>
LoopWindowStart = 120,000
LoopWindowEnd = 180,000
WHERE RecordNum > 120,000
AND RecordNum <= 180,000
</pre>
<p><em>Records 120,001 - 180,000 output to c:\output\output-3.txt</em></p>
<p><strong>4th Pass</strong></p>
<pre>
LoopWindowStart = 180,000
LoopWindowEnd = 240,000
WHERE RecordNum > 180,000
AND RecordNum <= 240,000
</pre>
<p><em>Records 180,001 - 190,000 output to c:\output\output-4.txt</em></p>
<p>Pass the variables to the query using the Parameters editor:</p>
<p><a href="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-select-output-params-button.jpg"><img src="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-select-output-params-button-300x35.jpg" alt="" title="SSIS Set Query Params Button" width="300" height="35" class="alignnone size-medium wp-image-574" /></a></p>
<p><a href="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-select-output-set-query-params.jpg"><img src="http://www.robsymonds.com/wp-content/uploads/2011/06/ssis-select-output-set-query-params-300x138.jpg" alt="" title="SSIS SELECT Set Query Parameters" width="300" height="138" class="alignnone size-medium wp-image-575" /></a></p>
<p>This pulls the rows I want into the Data Flow.</p>
<p>The last task simply points the Data Flow to the Output File. That's it.</p>
<p>I'm interested to see if anybody has come up with something better.</p>
<p>(This was a quick SSIS package I threw together to handle a simple request. It lacks error handling and logging and I wouldn't use it like this in a mission-critical scenario.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robsymonds.com/ssis-output-to-multiple-files/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Notes on Marketing and Promotion</title>
		<link>http://www.robsymonds.com/notes-on-marketing-and-promotion/</link>
		<comments>http://www.robsymonds.com/notes-on-marketing-and-promotion/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 15:44:44 +0000</pubDate>
		<dc:creator>Rob Symonds</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Online Business]]></category>
		<category><![CDATA[Social Medial]]></category>

		<guid isPermaLink="false">http://www.robsymonds.com/?p=542</guid>
		<description><![CDATA[I made these notes during last night&#8217;s HYPE event: Entrepreneur Roundtable &#8211; Marketing &#038; Promotion. The speakers were Caitlin Thayer of Barefoot Media and Andrew Wood of Mintz &#38; Hoke Communications Group. Caitlin and Andrew discussed brand, marketing, social media and small business success. These notes aren&#8217;t their words verbatim so if anything sounds wrong, [...]]]></description>
			<content:encoded><![CDATA[<p>I made these notes during last night&#8217;s <a href="http://metrohartford.com/hype/Default.aspx">HYPE</a> event: Entrepreneur Roundtable &#8211; Marketing &#038; Promotion. The speakers were <a href="http://twitter.com/#!/CTinCT">Caitlin Thayer</a> of Barefoot Media<br />
and <a href="http://twitter.com/#!/andrewood">Andrew Wood</a> of Mintz &amp; Hoke Communications Group. Caitlin and Andrew discussed brand, marketing, social media and small business success. These notes aren&#8217;t their words verbatim so if anything sounds wrong, the blame is mine. <span id="more-542"></span></p>
<p><strong>Caitlin on Facebook Business Pages and Twitter</strong></p>
<ul>
<li>Facebook is good for connecting with people you already know.</li>
<li>Twitter is great for getting to new people.</li>
<li>Post on both personal and business topics.</li>
<li>Personal posts help build trust.</li>
<li>Engage. Don&#8217;t just promote.</li>
<li>Ask questions, start conversations.</li>
<li>Use Twitter lists to help identify people you want to connect with.</li>
<li>Follow others that do the same thing that you do. Retweet them. Don&#8217;t be afraid to share.</li>
</ul>
<p><strong>Caitlin on Blogs</strong></p>
<ul>
<li>A blog is good because it&#8217;s interactive.</li>
<li>Think about blogs and social media in terms of sharing.</li>
<li>Even if you give people information, don&#8217;t think that means they won&#8217;t still need you to help them out. Don&#8217;t be afraid to share.</li>
<li>Don&#8217;t take easy things for granted. Share them. What may seem simple of obvious to you may be something that somebody else needs help with.</li>
</ul>
<p><strong>Caitlin on LinkedIn</strong></p>
<ul>
<li>Fill out your profile to 100% completion.</li>
<li>Link to Twitter, your blog and Facebook.</li>
<li><strong>LinkedIn is great for getting introduced to 2nd and 3rd degree connections.</strong> Connect with everybody you know. This will build your 2nd and 3rd degree connections.</li>
<li>Don&#8217;t send the default generic invite to people. Personalize it. Let the person know where you met them or how you know them.</li>
<li>Never SPAM people.</li>
<li>Ask for recommendations from the people you&#8217;ve done business with.</li>
<li>Use groups and discussion pages to connect with people.</li>
</ul>
<p><strong>Andrew on Brand and Clarity</strong></p>
<ul>
<li>When businesses stray from their core business values, they tend to falter or outright fail.</li>
<li>Brand Position = Expectation</li>
<li>Strategic Positioning = Sustainable Competitive Advantage (advantages to clients, advantages to self).</li>
<li>A sustainable competitive advantage is: doing different activities than competitors OR doing similar activities in a way that is different than competitors.</li>
<li>Have a clear position (what you say you stand for) and communicate it clearly.</li>
<li>Distinct or Extinct. It&#8217;s better to be rejected than ignored.</li>
</ul>
<p><strong>Andrew on Relationships and Social Media</strong></p>
<ul>
<li>Basic human relationship principles apply to business relationships. </li>
<li>As a business, ask yourself if you are right for the customer. Ask if they are right for you. Learn to say no when the fit is not there.</li>
<li>Customers are more active now in how they engage you.</li>
<li>Even if you don&#8217;t engage in social media you must at least listen and address social media feedback. What is the sentiment? How do people feel about you?</li>
<li>When clients ask for something, find out why they want it or think they need it. Just because they want it doesn&#8217;t mean it&#8217;s a good fit for their strategy. Some tactics can do more harm than good. It&#8217;s your job to help guide the client.</li>
<li>You can use social media to listen in on a conversation to understand how you may want to position a brand.</li>
<li>A business owner must answer the question: &#8220;What does a real lead look like to me?&#8221; Know what you want. Use BANT to qualify a lead. <strong>B</strong>udget, <strong>A</strong>uthority, <strong>N</strong>eed, <strong>T</strong>imetable. Does the client have a budget? Does the person you are working with have the authority to make a decision? Is there a clear and legitimate need <em>[My notes missed Need so I'm guessing a little on this one. - Rob]</em>? Does the client have a deadline?</li>
<li>It&#8217;s ok to say no and refer a lead to somebody that is a better fit.</li>
</ul>
<p><strong>Andrew on Websites</strong></p>
<ul>
<li>A website must deliver an experience that is consistent with the rest of your interactions.</li>
<li>A website doesn&#8217;t have to be amazing <em>[thank you for saying this - Rob]</em>. It merely has to be adequate. BUT! It must address and answer prospects questions.</li>
<li>Websites must support mobile even if it supports it in a very simple manner.</li>
</ul>
<p><strong>Andrew on Other Things</strong></p>
<ul>
<li>(A speaker gets points if they talk to audience members before the event then weave details of those conversations into the thread of their talk.)</li>
<li>Before you invest in something always consider: &#8220;What do I want to get out of this?&#8221;</li>
</ul>
<p>Andrew also talked about <strong>Some Keys to a Business that Will Survive</strong></p>
<p><strong>1. Establish your brand:</strong></p>
<ul>
<li>You need a Sustainable Competitive Advantage.</li>
<li>Be clear on who you are and who you are not.</li>
<li>Be clear on who you serve and who you do not serve.</li>
<li>Be clear on what you do and what you don&#8217;t do.</li>
<li>Pick your market and pick your battles.</li>
<li>Clarity is incredibly important in this.</li>
</ul>
<p><strong>2. Have an adequate website.</strong></p>
<p><strong>3. Talk to customers using their language (not your jargon).</strong></p>
<p><strong>4. Be authentic.</strong> This is a clear massive advantage small businesses have over bigger competitors. It is hard for big businesses / corporations to be authentic.</p>
<p>It was a great event. Caitlin and Andrew shared a lot of solid information. Also, <a href="http://twitter.com/#!/CitySteam">City Steam</a>&#8216;s ravioli was excellent.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robsymonds.com/notes-on-marketing-and-promotion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Jack Welch on Business Complexity</title>
		<link>http://www.robsymonds.com/jack-welch-on-business-complexity/</link>
		<comments>http://www.robsymonds.com/jack-welch-on-business-complexity/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 18:01:25 +0000</pubDate>
		<dc:creator>Rob Symonds</dc:creator>
				<category><![CDATA[Business]]></category>

		<guid isPermaLink="false">http://www.robsymonds.com/?p=533</guid>
		<description><![CDATA[People always overestimate how complex business is. This isn&#8217;t rocket science&#8212;we&#8217;ve chosen one of the world&#8217;s most simple professions. &#8212;Jack Welch]]></description>
			<content:encoded><![CDATA[<p>People always overestimate <a href="http://personalmba.com/what-it-takes-entrepreneur/">how complex business is</a>. This isn&#8217;t rocket science&#8212;we&#8217;ve chosen one of the world&#8217;s most simple professions.</p>
<p>&#8212;Jack Welch</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robsymonds.com/jack-welch-on-business-complexity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Paradoxes of Freedom</title>
		<link>http://www.robsymonds.com/the-paradoxes-of-freedom/</link>
		<comments>http://www.robsymonds.com/the-paradoxes-of-freedom/#comments</comments>
		<pubDate>Sun, 17 Apr 2011 14:26:32 +0000</pubDate>
		<dc:creator>Rob Symonds</dc:creator>
				<category><![CDATA[Book Notes]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Philosophy]]></category>

		<guid isPermaLink="false">http://www.robsymonds.com/?p=465</guid>
		<description><![CDATA[I&#8217;ve been reading Guy Murchie&#8217;s The Seven Mysteries of Life, An Exploration of Science and Philosophy and it is amazing. The scope of the book is immense but somehow it is packed with details. You can read it online but the material is so dense I recommend buying the book. I feel like I could [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been reading Guy Murchie&#8217;s <a href="http://arthursbookshelf.com/other-stuff/murchie12.html">The Seven Mysteries of Life, An Exploration of Science and Philosophy</a> and it is amazing. The scope of the book is immense but somehow it is packed with details. You can read it online but the material is so dense I recommend buying the book. I feel like I could read this book 100 times and still have barely scratched the surface. </p>
<p>One topic in particular stuck in my mind: The Paradoxes of Freedom. I&#8217;ve excerpted the text of that part of the book and added some comments and questions below. <span id="more-465"></span></p>
<blockquote><p>As to the polarity of freedom, it seems to be an ancient and double paradox that can be analyzed from two notable aspects: first, freedom as the complement of enslavement; second, freedom of will as the antithesis of predestination.
</p></blockquote>
<p>I understand that Murchie wrote slowly, carefully and deliberately. Still, the writing style sometimes feels indulgent and I wonder if he could&#8217;ve put some things more simply. After reading the entire section on the topic, I understand him to break his discussion of freedom down into two parts:</p>
<ol>
<li>What use is freedom without constraints?</li>
<li>How can free will and predestination coexist?</li>
</ol>
<blockquote><p>
Of the first, what do you think freedom of liberty really is anyway? Does it mean letting go of all restraints like a train that jumps its track? Does it require abandonment of every normal rule of behavior in the way of a mad dog or a runaway horse? I would venture to say not, for the train that leaps the rails is obviously about to turn into a wreck, and the mad dog can expect nothing so surely as a bullet in the head. Neither does an ideal such as is symbolized by the famous Statue of Liberty in New York harbor justify letting go of control, responsibility, consideration of others or any disregard of law. Most significantly, it does not imply even the slightest violation of the laws of nature.</p>
<p>If a violin string is lying on a table loose and detached from any violin, some might suppose it &#8220;free&#8221; because it is unconstrained. But what, one should ask oneself, is it &#8220;free&#8221; to do or be? Certainly it cannot vibrate with beautiful music in such a condition of limpness. Yet if you just fasten one end of it to the tailpiece of the violin and the other to a peg in the scroll, then tighten it to its allotted pitch, you have rendered it free to play. And you might say that spiritually the string has been liberated by being tied tightly at both ends. For this is one of the great paradoxes of the world to be seen and tested on every side: the principle of emancipation by discipline.
</p></blockquote>
<p>His answer to the first question is that <strong>freedom without constraints isn&#8217;t going to be very useful. What is more useful is having certain constraints that lead to correct use.</strong></p>
<p>This is all pretty abstract though. Correct use of <em>what</em> exactly? What does correct use <em>mean</em>? Is it relative or absolute? Subjective or objective? I&#8217;m skipping around the book a little so maybe Murchie tackles such things elsewhere. I think it would also be interesting here to consider Moshe Feldenkrais&#8217; ideas on correct use but we can hardly get into that and do it justice right now.</p>
<blockquote><p>
The second and related paradox of freedom is the age-old controversy of free will and destiny. How often have you wondered how some mystic source of foreknowledge, whether it be a Gypsy palmist or God Himself, can know with certainty that your planned trip to Bombay will actually take you there next month if it is true that you really are perfectly free to change your mind and remain in Chicago? For it isn&#8217;t reasonable to suppose that a flexible free choice can possibly produce a foreseeable fixed outcome.</p>
<p>Yet the simple resolution of this paradox turns out to be nothing but the dimensional difference between the impinging perspectives of free will and fate. Imagine a hungry puppy coming to a corner where he has to choose between turning left toward a plate of dry fish bones abandoned by the cat, and turning right toward a dish of his favorite juicy hamburger. Naturally he feels (and is) quite free to make up his mind which way to go, though it takes only one sniff to decide him. But his master, looking down from a lordly height upon the episode and being familiar with the puppy&#8217;s keen appetite, can prophesy the animal&#8217;s choice with Olympian infallibility &#8211; for the master&#8217;s extra dimension above the floor, particularly his superior altitude in intelligence and experience, gives him a lofty and relatively divine overview. Thus the puppy&#8217;s simple two-dimensional decision is revealed to be in no way at odds with his master&#8217;s more sophisticated three-dimensional precognition in favor of hamburger. For the puppy is free to <em>do</em> what he wants although not free to <em>want</em> what he wants, and his free will and fate interrelate like a flat 2-D picture and a solid 3-D model of the same thing.</p></blockquote>
<p>Murchie resolves the paradox of free will and fate by saying that both are valid. <strong>You are free to <em>do</em> what you want but not free to <em>want</em> what you want.</strong> The appearance of the paradox is simply the result of perspective. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.robsymonds.com/the-paradoxes-of-freedom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Journey vs. Destination</title>
		<link>http://www.robsymonds.com/journey-vs-destination/</link>
		<comments>http://www.robsymonds.com/journey-vs-destination/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 18:55:17 +0000</pubDate>
		<dc:creator>Rob Symonds</dc:creator>
				<category><![CDATA[Everything Else]]></category>
		<category><![CDATA[Philosophy]]></category>

		<guid isPermaLink="false">http://www.robsymonds.com/?p=471</guid>
		<description><![CDATA[Things won are done; joy’s soul lies in the doing. &#8211; Shakespeare The other day I was watching a premium cable television series on DVD. At the beginning of each episode, a voice announces &#8220;Previously on&#8230;&#8221; and then we see a string of clips that recap all the important plot points in the past few [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Things won are done; joy’s soul lies in the doing. &#8211; Shakespeare</p></blockquote>
<p>The other day I was watching a premium cable television series on DVD. At the beginning of each episode, a voice announces &#8220;Previously on&#8230;&#8221; and then we see a string of clips that recap all the important plot points in the past few episodes. </p>
<p>If I just watched those clips at the start of each episode and skipped the episodes, I could still get the whole story arc and save a heap of time. <span id="more-471"></span> I could essentially &#8220;finish&#8221; the entire series in less than an hour and have the satisfaction of knowing what happened in the end. </p>
<p>Obviously nobody would do this because the joy is in watching the show, getting caught up in the cycle of building and releasing tension, seeing just how everything transpired and why the characters did what they did. The pleasure comes from the watching of the story, not simply the finishing of the story.</p>
<p>Jonathan Haidt puts it like this in The Happiness Hypothesis (check out Derek Siver&#8217;s <a href="http://sivers.org/book/HappinessHypothesis">book notes</a>):</p>
<blockquote><p>When it comes to goal pursuit, it really is the journey that counts, not the destination. Set for yourself any goal you want. Most of the pleasure will be had along the way, with every step that takes you closer. The final moment of success is often no more thrilling than the relief of taking off a heavy backpack at the end of a long hike. If you went on the hike only to feel that pleasure, you are a fool.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.robsymonds.com/journey-vs-destination/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

