﻿<?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>Programming By A Tool &#187; Pontification</title>
	<atom:link href="http://byatool.com/category/pontification/feed/" rel="self" type="application/rss+xml" />
	<link>http://byatool.com</link>
	<description>This is my recorded stumbling through ASP.Net, Framework 3.5, C# 3.0, Ajax, Javascript, and Love.  Stay, learn, destroy.  It's your life.</description>
	<lastBuildDate>Thu, 03 May 2012 17:28:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Why are things made so complicated in web design?</title>
		<link>http://byatool.com/pontification/why-are-things-made-so-complicated-in-web-design/</link>
		<comments>http://byatool.com/pontification/why-are-things-made-so-complicated-in-web-design/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 02:12:06 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Pontification]]></category>

		<guid isPermaLink="false">http://byatool.com/?p=2465</guid>
		<description><![CDATA[Ever since Linq came out over 3? years ago (Earliest post about it that i have was from June 25 2008) I&#8217;ve been madly using it as much as I possibly could. I didn&#8217;t find it to be just some kind of syntactical sugar, or at least I learned it wasn&#8217;t eventually. Which? I don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since Linq came out over 3? years ago (Earliest post about it that i have was from June 25 2008) I&#8217;ve been madly using it as much as I possibly could. I didn&#8217;t find it to be just some kind of syntactical sugar, or at least I learned it wasn&#8217;t eventually. Which? I don&#8217;t remember and really it doesn&#8217;t matter. Point is I&#8217;ve been a huge proponent of it and the various fun that came with. (Func, Action, anonymous types, ect) Now I had heard that it was based on functional programming but I had no real idea what that meant. It was just some kind of programming cultists and people with tin foil hats use. Let&#8217;s be honest, in the &#8220;Beer league&#8221; of programming, there was no respect for it.</p>
<p>Now flash forward a couple months ago when I went on a painful trek as I tried to find a language that could do more then what C# could handle. Far as I was concerned, I had out grown it. Like <a href="http://en.wikipedia.org/wiki/Star_Trek:_The_Motion_Picture"> VGER (And Spock for that matter)</a> I had outgrown the world of C# and needed something more even though I wasn&#8217;t sure what that something was. &#8220;It knows only that it needs, Commander. But, like so many of us&#8230; it does not know what.&#8221;</p>
<p>I thought I could find satisfaction in a new language even though <a href="http://byatool.com/pontification/i-have-found-python-and-well-im-bored/">I had failed before at that.</a> I looked into Ruby, <a href="http://www.scala-lang.org/">Scala</a>, Python (Again), <a href="http://boo.codehaus.org/">Boo</a>, but something just didn&#8217;t take. It wasn&#8217;t long before I realized that they are ultimately like C#. Sure some are dynamic, some are intelligently typed, but in the end they were the same. It was just a question of how I liked the language to look, but not how things were done. Meet the new boss, same as the old boss.</p>
<p>It was at that point I decided to just put my shoulder down and start running toward the unknown. Toward a functional language. My first stop was F# and it was surprisingly amazing. I finally found a language that would make me keep up and not the other way around. I put a ton of time into it for 3 months, but stopped. It wasn&#8217;t the language itself, the functional design, or performance. It really came down to the half &#8212;ed implementation that The good professor Microsoft decided to eh&#8230; implement. File structure (Or literally lack thereof) was painful. It&#8217;s inability to use the built in MSTest UI was even worse. To add to that, the only way I could get a nice debug enabled testing framework was through <a href="http://www.jetbrains.com/resharper/">Resharper</a> and even then I&#8217;d have to run every test in an assembly before it would add it to the suite. Add in it&#8217;s failure to work with Entity Framework without a third party library, <a href="http://fsharppowerpack.codeplex.com/">Power Pack</a> and well FFFFFFFFFUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU&#8230;</p>
<p>Ok&#8230; So I think you might get that I am a little bit mad about the situation. The reason isn&#8217;t that I&#8217;m trying to be an -ss but I REALLY LIKED F# AND THINK IT DESERVES BETTER THAN JUST TO BE SOME LAME -SS SIDE PROJECT.</p>
<p>I&#8217;ve learned this lesson before though and I just stopped bothering&#8230; at least three times until last Tuesday when I really, for really, not joking this time, quit F# for good. Yeah I&#8217;m not good at giving up on things.</p>
<p>Annoyed and looking for something to fill my need for functional languages, I decided to go all out. If I&#8217;m going to be functional (Programming functional not as in functional alcoholic) I&#8217;m doing it the full way. That&#8217;s right, I have turned to Lisp&#8230; just kidding. I am going full Haskell. Yes that language that is never talked about in name lest it release some demon or some weird looking dude when said three times in front of a mirror. That Haskell. Even before I knew what a functional language was, I had heard of it and was told to never look it in the eye and to keep on walking. I&#8217;m not sure why there is so much fear and secrecy around Haskell. I realize that, as the old cliche goes, people fear what they don&#8217;t understand, but the fear/hate people had for it seemed irrational. Like it was some kind of invading army hell bent on instilling some sort of dictatorship. I know I&#8217;m being a bit hyperbolic but the point is that people treated like it was a personal attack on programming. Like it&#8217;s existence was purely for insult and nothing else. Good thing I&#8217;m too dumb for my own good and ignored the warnings&#8230; it just took me four years to do so. (But in my defense, I hate quitting to a fault so I thought I should ride out the .Net stack.)</p>
<p>Now with this move it caused two problems: I had to take off the .Net training wheels and figure out how to even get Haskell to compile. The other was&#8230; How the &#8211;ck do I handle database oriented persistence? I mean for C# you have <a href="http://nhforge.org/Default.aspx">NHibernate</a>, <a href="http://www.llblgen.com/defaultgeneric.aspx">LLBLGEN</a>, <a href="http://subsonicproject.com/">Subsonic</a>, that entity thing&#8230; you get the point. There&#8217;s no shortage of ORMs for the .Net world. Tried to see if there was one for Haskell, but I started really thinking about this. One of the issues I had pondered with functional languages is how do you relate a database to objects if you aren&#8217;t really using an object oriented model. It&#8217;s quite a conundrum. (I spelled that right the first time.) I mean I&#8217;m sure you can force out some kind of object like model if given enough time, but was it really needed? To this I say no! (I think)</p>
<p>One of the concepts I&#8217;ve had to learn early on with functional programming is <a href="http://en.wikipedia.org/wiki/Tuple">Tuples</a>. Essentially a tuple is stuff bound together.</p>
<p>Could be a key value pair:</p>
<p><b>(&#8220;firstName&#8221;,&#8221;Sean&#8221;)</b></p>
<p>Could be a list of various strings grouped together:</p>
<p><b>[("Sean","111 Cool Lane",34),("Andre","111 Stupid Street",33)]</b></p>
<p>Point is, it&#8217;s stuff grouped in a like way. In fact, it has to be grouped in the same way. Take the one above for instance. It is a &#8220;list&#8221; of (string, string, integer). As long as anything added to it has the same signature, everything is great. If they don&#8217;t:</p>
<p><b>[("Sean", "111 Cool Lane", 34), (<strong>1</strong>, "111 Stupid Street", 33)]</b></p>
<p>Well&#8230; Kaboom. Now here&#8217;s the interesting part (One of many I hope): If you have a list of tuples and you squint real hard, you might mistake them for classes. After all, isn&#8217;t that what a class is? A bunch of stuff forced to be represented in a set way? If you think about it, this is basically how dynamic languages like Python or Javascript work. The &#8220;class&#8221; is just a bunch of key value pairs. You can call a property on an object like this:</p>
<p><b>something.DoStuff</b></p>
<p>Or you can do it like this:</p>
<p><b>something["DoStuff"]</b></p>
<p>Yes it&#8217;s psuedo code and probably not 100% correctly represented, but that&#8217;s not the point. The point is that an object can be made of from key value pairs&#8230; Basically like the tuples above&#8230; and that&#8217;s where it gets really interesting.</p>
<p>I started to think about what would it take to represent a user. Say you have a plain user with Id, FirstName, and LastName. Well you could have a class:</p>
<p><code><br />
public class User<br />
{<br />
  public int Id {get; set;}<br />
  public string FirstName {get;set;}<br />
  public string LastName {get;set;}<br />
}</code></p>
<p>Or you can have a tuple:</p>
<p><code>[(("FirstName","Sean"),("LastName","Isawesome"), ("Id", 1))]</code></p>
<p>Now here&#8217;s the funny part: I originally didn&#8217;t think the tuple representation was possible due to a possible type conflict. But sometimes in our most idiotic times there can emerge a real idea. The idea is simple:</p>
<blockquote><p>WHY THE &#8211;CK DO WE SPEND SO MUCH TIME FORCING TYPES IF MOST OF THE TIME WE JUST NEED STRINGS!?!!</p></blockquote>
<p>I know, it sounds odd at first but if you really think about it, does it matter if an Id is an integer? Sure in the database, but outside of it? Here&#8217;s a typical MVC round trip:</p>
<pre><a href="http://byatool.com/wp-content/uploads/TypicalMVCPath.png"><img class="alignnone size-full wp-image-2472" title="TypicalMVCPath" src="http://byatool.com/wp-content/uploads/TypicalMVCPath.png" alt="" width="1031" height="330" /></a></pre>
<p>You take in a json string and turn part of it into an integer. You push that integer to a class (Model or other wise) and then use the class to transport that Id to be used as a string in a sql query or it gets converted to some other database happy type. It then is pulled back out of that database friendly type and pushed into an integer so it can hydrate a user class. Then the id is passed into a model so it can be turned into a string for html or json.</p>
<p>This begs the question:</p>
<blockquote><p>WHY THE &#8211;CK DO WE SPEND SO MUCH TIME FORCING TYPES IF MOST OF THE TIME WE JUST NEED STRINGS!?!!</p></blockquote>
<p>Think about and I mean really think about it. How often do things typed as integers (Or decimal or date or whatever the &#8211;ck you want) get used for anything but to be aimlessly typed and retyped? How often do any numbers get used for anything number related? In the world o&#8217; web development there is very little use for numbers. Sure you might have to sum them up, but doesn&#8217;t it seem more logically to start as a string and only type when it&#8217;s needed as opposed to type something to anything but a string when all it ever will be used as is a string? It makes no &#8211;cking sense. None.</p>
<p><i>But maybe somewhere you might have to validate that the number falls within a certain range&#8230;</i> GREAT! Convert to an integer and check!.</p>
<p><i>But maybe it has to be a proper date.</i> &#8211;CKING GREAT CONVERT AND CHECK!</p>
<p><i>But, but what about when persisting to a database&#8230;</i> THIS IS A GOOD REASON&#8230; eh to convert.</p>
<p>If there&#8217;s anything I&#8217;ve learned from the newfangled ideas of lean and such; it&#8217;s that you build only what you need. Don&#8217;t over complicate. Don&#8217;t over think. Don&#8217;t pass go and collect 200$. If there is no reason to type something as an integer, then why would you? Join the revolution. We can win this one or look like complete &#8211;sses while trying.  I can&#8217;t promise which, but I can promise one will happen.</p>
<p>This is just the begining&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://byatool.com/pontification/why-are-things-made-so-complicated-in-web-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Have Found Python and&#8230; Well I&#8217;m Bored.</title>
		<link>http://byatool.com/pontification/i-have-found-python-and-well-im-bored/</link>
		<comments>http://byatool.com/pontification/i-have-found-python-and-well-im-bored/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 14:49:27 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Pontification]]></category>
		<category><![CDATA[Editorial]]></category>

		<guid isPermaLink="false">http://byatool.com/?p=2148</guid>
		<description><![CDATA[A while back I wrote a little ditty on python (Not sure if that&#8217;s the correct usage of ditty but when have I ever showed a need to use words correctly?) and at the time I was wowed by how easy it was to develop with Python and (&#8220;Wish I were getting money for this [...]]]></description>
			<content:encoded><![CDATA[<p>A while back I <a href="http://byatool.com/pointless/i-have-found-python-and-i-am-a-changed-man/">wrote a little ditty on python</a> (Not sure if that&#8217;s the correct usage of ditty but when have I ever showed a need to use words correctly?) and at the time I was wowed by how easy it was to develop with Python and (&#8220;Wish I were getting money for this plug&#8221; plug) <a href="http://www.jetbrains.com/pycharm/">Pycharm</a>.  Sites were so much easier to create using the Pyramids engine.  Everything was wonderful.  </p>
<p>Enter Andre and the good ship .Net.  Andre has an idea of creating a <a href="http://www.phuckcancer.com/">site for cancer survivors</a> (Completely non shameful plug) and at first I was a little reluctant to go back to .Net.  And honestly, if it weren&#8217;t for how complicated it is to set up python on a server, I probably wouldn&#8217;t have.  But being as it is, I decided to take another run at .Net 4.0 and MVC 3.0.</p>
<p>Until that time, there had been something nagging me about Python.  It wasn&#8217;t the performance since it seemed to work very well.  It wasn&#8217;t the language syntax.  I really like the forced syntax since it helps to keep standards.  And I like dynamic languages like a person who likes dynamic languages.  The f&#8211;k was it?!&#8230; Sorry that sentence was uncalled for.  I&#8217;ll try again  <b>What</b> the f&#8211;k was it?!  I mean the language was built to be easy to use and easy to build with. And honestly, it is.  What wasn&#8217;t I happy with it?  WHY CAN&#8217;T I JUST BE HAPPY!?!?!?1117</p>
<p>Well right before I went back to C# for the site, I was sort of dreading the idea of having to work in a semi non dynamic and ridgid language.  But it was for a good cause and like a man trapped in a jell-o wall, I would just have to push my way through. (Ok so I&#8217;m not exactly Leslie Nielsen here)</p>
<p>Then something magical happened.  Maybe not David Bowie Labyrinth like magical, but still some degree of magicness.  What was this crazy thing?  I actually remembered why I liked programming in the first place.  Yes C# isn&#8217;t as easy to use as Python.  Yes it&#8217;s more rigid and demanding.  Yes you end up with a ton more classes and flies for that matter.  BUT I think that because Python is so easy to use, it stifles imagination and creativity.  Everything is so lax and unpunishing in Python that it&#8217;s so easy to forget the more intellectually (And I use that word loosely in reference to me) challenging aspects of programming.  You don&#8217;t need interfaces.  Mocking object for unit tests is stupid easy.  Hell you can even get away with out really creating many classes.  Everything is so d&#8212;ned easy.</p>
<p>Yeah I know, I&#8217;m nuts.  I don&#8217;t think there&#8217;s <a href="http://byatool.com/pointless/off-topic-my-love-for-star-trek-the-motion-picture/">any question about that</a>.  With that said, I think there is some truth in what I&#8217;m saying.  If you are just a paycheck programmer, you probably could happily roll with Python as it&#8217;s structure is by far easier to work with.  If you really enjoy the challenge of creating systems that can be refactored and decouple constantly, it&#8217;s kind of boring.  Don&#8217;t get me wrong, you can still do these to some extent with Python but in reality there&#8217;s only so many ways you can improve what you have.  Far as I know, that&#8217;s by design since Python was created more for fast prototyping and development.</p>
<p>I guess I would compare it to cars.  Some people would rather spent more money to get the complete package.  You could go and buy the new 2012 Mustang Boss and get it loaded for about 45k OR you can buy a GT and spend less than the 15k price gap on aftermarket parts.  They both would end up with great performance and both could have good arguments on which is the better way to go.  It just depends on the kind of person you are.  Some people like the easy path because it&#8217;s most likely the faster path.  The others, well the others like the journey to get where they want to get.  The old &#8220;Life&#8217;s a journey, not a destination.&#8221; cliche.</p>
<p>Which is better?  Well that&#8217;s up to you.  On one hand have Python that is built for fast production.  The other is C# that can provide more self challenge and to some more self enjoyment from the challenge.  Not sure which side is right, but I just seem to lean to the latter.</p>
<p>Does that make me a horrible person?  No it’s just what I like.  However, the drink I thought up that’s made from freshly squeezed celebrities might. (Now with less pulp)  </p>
]]></content:encoded>
			<wfw:commentRss>http://byatool.com/pontification/i-have-found-python-and-well-im-bored/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Has the Programmer Dream Died?</title>
		<link>http://byatool.com/pontification/has-the-programmer-dream-died/</link>
		<comments>http://byatool.com/pontification/has-the-programmer-dream-died/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 19:20:26 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Pontification]]></category>
		<category><![CDATA[Editorial]]></category>

		<guid isPermaLink="false">http://byatool.com/?p=2104</guid>
		<description><![CDATA[I realize that developers don&#8217;t have a Hippocratic Oath but I figure if it did exist would follow in the same footsteps. I swear to complete my task to the best of my ability. I will not settle for good enough to complete a task. I will admit when I don't know and seek help [...]]]></description>
			<content:encoded><![CDATA[<p>I realize that developers don&#8217;t have a <a href="http://en.wikipedia.org/wiki/Hippocratic_Oath">Hippocratic Oath</a> but I figure if it did exist would follow in the same footsteps.  </p>
<pre>
I swear to complete my task to the best of my ability.
I will not settle for good enough to complete a task.
I will admit when I don't know and seek help from those who are more knowledgeable.
I will never obfuscate to ensure my continued employment.
I will prevent future issues by taking care of current ones.
</pre>
<p>And so on.  Now this may not fit with all developers, but I have to think there&#8217;s a decent amount of developers that would like to hold this oath as a guideline for development.</p>
<p>&#8220;Aye, and if my grandmother had wheels, she&#8217;d be a wagon.&#8221;</p>
<p>I would have to think that such an oath would work if lives were at stake like they are in medicine.  After all, there&#8217;s a pretty good indication of failure when a person lives or dies.  Programs for the most part are a bit more gray.  How many times have you walked into a new job to work on a system that is less than optimal?  Then how many times have you asked how the client can stand it and the answer is, &#8220;They&#8217;re used to it.&#8221;</p>
<p>As horrific of a statement that seems to a developer, to the business it&#8217;s really not that big of a deal as long as the customer keeps paying.  Rewrites and major updates just aren&#8217;t going to happen due to the old adage, &#8220;If it ain&#8217;t broke, don&#8217;t try to fix it.&#8221;  After all, taking time to fix may delay any new features and then could open up a window of opportunity for the competitor.  Beyond that, it&#8217;s probably a tough sell to the customer.  &#8220;Sorry we need you to pay more for what you have now because the people we had before working on it weren&#8217;t very good.  But we seriously have good people this time around!  Looooooove youuu.&#8221;</p>
<p>So most programs are set in this sort of &#8220;Fix it however you can now and we&#8217;ll address later&#8221; which is the development equivalent of &#8220;Don&#8217;t call me, I&#8217;ll call you.&#8221;  Of course fixing however it can be fixed only leads to more issues down the road.  Around and around the wheels go on the bus.</p>
<p>Because of this unfortunate paradox, I think a little of us dies each time we work on a system.  We start to break our oath a bit more every day until the point where we either jump one sinking ship for another or just phone in the code and learn to say, &#8220;It&#8217;s just work.&#8221;</p>
<p>Kind of the overdone cliche about a state representative that sets out to change the world only to end up being accused of snorting cocaine with hookers in Vegas.</p>
<p>I think a good amount of people, and maybe I&#8217;m insane (Which I am), want to do it the right way.  They want to constantly improve that they&#8217;re working with.  Problem is, this just doesn&#8217;t fit the business mind in the US. (Or other countries, but I can&#8217;t speak to that) The US Business culture just isn&#8217;t about doing it right, just doing it fast.  So systems get built fast, are poorly tested, and covered with layer and layer of &#8220;fixes&#8221; to the point where it&#8217;s so massive that no company will pay to rewrite it.  And even if they do, chances are the same attitude that build the mess in the first place will just show up again.  Two months after pulling the company off a ledge, you&#8217;re ready to get up on that edge.</p>
<p>So how can we solve this?  Can it be solved at all?  Do any companies get this right and if it does, are they few and far between?  Do you have to be in the 90 percentile to get that job?</p>
<p>I have to admit that from time to time I&#8217;ve wondered about this.  I mean sure you hear of the mystical  land of Google or Microsoft, or places built on magical things like TDD and Agile development.  But hell, there are only so many jobs and only the top people get them.  Does this mean the dream is dead for the unchosen many?  Is it possible to bake your oath and eat it too?</p>
]]></content:encoded>
			<wfw:commentRss>http://byatool.com/pontification/has-the-programmer-dream-died/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Talent Versus Persistence</title>
		<link>http://byatool.com/pontification/talent-versus-persistence/</link>
		<comments>http://byatool.com/pontification/talent-versus-persistence/#comments</comments>
		<pubDate>Fri, 04 Feb 2011 18:59:39 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Pontification]]></category>
		<category><![CDATA[Editorial]]></category>

		<guid isPermaLink="false">http://byatool.com/?p=1921</guid>
		<description><![CDATA[Let me tell you about my one time mentor Dan, and no Dan isn&#8217;t a fictional character to make a point. Dan (Cousineau) is a multi time NASKA national champion, quite a few gold medals in world competition, not to mention an accomplished BJJ practitioner. I had the pleasure of being one of his students [...]]]></description>
			<content:encoded><![CDATA[<p>Let me tell you about my one time mentor Dan, and no Dan <a href="http://byatool.com/pointless/awesome-language-now-what/">isn&#8217;t a fictional character to make a point</a>.  Dan (Cousineau) is a <a href="http://www.dragonkarate.org/blackbelts.htm">multi time NASKA national champion, quite a few gold medals in world competition, not to mention an accomplished BJJ practitioner</a>.  I had the pleasure of being one of his students for many years and being able to compete for the Dragon Karate Team.</p>
<p>Now with that out of the way, I&#8217;ll attempt to get to a point.</p>
<p>For the most part, when I was competing (post 1996) the prototypical national champion for weapons (Or forms for that matter) was somewhere between 5-6 to 5-10 and 150 to a buck seventy.  As forms became more &#8220;flashy&#8221;, it was very helpful to be light and compact.  (Examples like <a href="http://www.youtube.com/watch?v=Ku-4UAYq5Go&#038;feature=related">Jon Valera</a> or <a href="http://www.youtube.com/watch?v=BKrogjumtKE">Mike Chatr.. Chatura&#8230; Chat</a> and later on <a href="http://www.youtube.com/watch?v=-Y1lqwvGcwk">Steve Terada</a> and the legendary <a href="http://www.youtube.com/watch?v=uJXgNVQaTq0">Kim Do</a>)  Then there was Dan.  Dan was 6&#8217;1&#8243; and (sorry Dan ) 240ish.  He was about as far from prototypical that one could get&#8230; and he still won constantly.</p>
<p>I think the word &#8220;talent&#8221; gets thrown around a lot without people really knowing what it means.  In my ten or so years of competition, I saw a lot of &#8220;talent&#8221;.  There were people that were just plain gifted.  It came so easy to them that it was just like breathing, but they weren&#8217;t the best.  They weren&#8217;t the ones taking home National Championships.  Why?  Because they weren&#8217;t persistent.</p>
<p>Dan wasn&#8217;t a champion because he was gifted.  I&#8217;m not sure anyone ever said he was &#8220;talented&#8221;.  Excellent?  Yes.  Elite?  For sure. But &#8220;talented&#8221;? That&#8217;s just an insult.  Wait&#8230; what?  Insult?</p>
<p>You see, I think when people say &#8220;talented&#8221; what they actually mean is &#8220;lucky&#8221; or &#8220;just born with it&#8221;.  I think it&#8217;s used almost as an excuse by people that don&#8217;t want to work for anything.  There was nothing &#8220;talented&#8221; about Dan.  He was a hard worker.  He was the guy that ran a school, worked another job, and still managed to practice with any free time he had. (Even outside before work)  He was the guy that would be training on Saturday and Sunday mornings. (In fact one thing he used to say when we trained on Sunday mornings was &#8220;Everyone else you&#8217;re competing against is sleeping right now.&#8221;) It wasn&#8217;t something he was given by some god or genetics.  It was pure time, work, and persistence.  He never stopped, he never gave up, and he never took it easy.  He lived by the mantra of &#8220;Second place is first loser.&#8221;  To call him &#8220;talented&#8221; is to ignore the countless hours he gave to his training.  The weekends of traveling to anywhere from California to Germany. The overwhelming drive it took to keep competing.  That is what made Dan elite.  That is what made people like John Valera and Steve Terada champions.  They were the ones that pushed on where most would fold.  In the world of the elite, there are only the persistent.  The gifted ones were left far behind.</p>
<p>Now the question you might have right now is: Is this going somewhere?  And yes I say.  Yes it is.</p>
<p>I think the &#8220;talented&#8221; frame of mind is too prevalent in world of programming. I think most programmers are too comfortable to just slap &#8220;talented&#8221; on anyone who excels at programming.  Now it&#8217;s true, some people are just smarter than others.  For every Dan Cousineau in the world, there are five others that fit the prototypical programming mold.  However, I&#8217;m willing to bet most truly great programmers, &#8220;gifted&#8221; or not, live to program.  They spend a lot of time outside of work programming.  When other people are out getting drunk, they are perfecting their craft.  They are the ones that push past the fear that most have when moving into new territory and just do it.  They persist.  They don&#8217;t give up. They don&#8217;t make excuses.  They do.</p>
<p>If you want to be a truly great programmer, or hell even slightly better than average like me, you have to do.  You can&#8217;t sit around in a pity party going on about how someone else has it better.  You can&#8217;t make excuses for why other people are excelling.  You can&#8217;t just blindly slap the &#8220;talented&#8221; word on someone and console yourself when you see that person getting out of your reach.  </p>
<p>Or you can.  But just remember that out there, somewhere, there&#8217;s a Dan Cousineau busting his a&#8211; while you sit around wading in your tears.</p>
<p>The choice is yours.</p>
]]></content:encoded>
			<wfw:commentRss>http://byatool.com/pontification/talent-versus-persistence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MVC 3, Razor, and My 1 Cent</title>
		<link>http://byatool.com/pontification/mvc-3-razor-and-my-1-cent/</link>
		<comments>http://byatool.com/pontification/mvc-3-razor-and-my-1-cent/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 14:11:12 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Pontification]]></category>
		<category><![CDATA[MVC 3]]></category>
		<category><![CDATA[Razor]]></category>

		<guid isPermaLink="false">http://byatool.com/?p=1841</guid>
		<description><![CDATA[So a while back I decided I would jump right into MVC 3 to see what&#8217;s new. Now the first plan I had was to still use my bestest friend ever, Spark. After some thought (Very little as thinking is too resource intensive) I decided I would take on Razor with it. Why not? It&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>So a while back I decided I would jump right into MVC 3 to see what&#8217;s new.  Now the first plan I had was to still use my bestest friend ever, Spark.  After some thought (Very little as thinking is too resource intensive) I decided I would take on Razor with it.  Why not?  It&#8217;s probably going to be the new default standard engine so I better get a feel for it.</p>
<p>There&#8217;s an old saying in Tennessee â€” I know it&#8217;s in Texas, probably in Tennessee â€” that says, meet the old boss same as the&#8230; meet the boss&#8230;  New boss is the same.  I can&#8217;t help but feel like Razor isn&#8217;t really a step revolution as it is just an evolution.  Sure there are newer features like replacing the &lt;% with a @ and&#8230;  well hey you can replace the &lt;% with an @.</p>
<p>Ok so maybe I&#8217;m being a bit hyperbolic but in all honesty, why not be?  Now I know I&#8217;ve been <a href="http://byatool.com/pontification/entity-framework-am-i-just-being-stubborn/">hard o&#8230; mean to  Microsoft in the past</a> but it&#8217;s out of respect really.  I&#8217;ve come to expect Microsoft to really have its ducks in a row.  After all, Entity Framework 2 was a huge improvement over 1 and I think it&#8217;s safe to say that C# has come a long way.  Razor just feels like a half hearted attempt to bridge the gap between the old MVC engine and something like Spark&#8230; lovely, lovely Spark oh how you make me so happy.</p>
<p>After using it for a couple months, just not really impressed and the only thing that I would say it has over Spark is intellisense on the front end, and to be honest, that&#8217;s not something a good programmer (IE Not me) should rely on and therefore isn&#8217;t really a +1 in the win column.</p>
<p>This is at best baby steps.  I expect more from a company like Microsoft where smart people are grown in smart people farms.  (You know, free range organic smart people.  No steroids.) Â Average Joe&#8217;s like me look to Microsoft to really just shake the ground beneath me and make my life better at work because let&#8217;s be honest, it&#8217;s painful convincing Microsoft hardened programmers to adopt something like Spark because it&#8217;s not Microsoft. (Holy run on sentence.)Â Â I&#8217;m tired of seeing cut up HTML.  I&#8217;m tired of seeing <span style="color: #ffcc00;">yellow highlights</span>.  Is it too much to ask to take the Spark pseudo HTML look and run with it?</p>
<p>This may seem like a petty thing to hit on, and maybe it is.  After there were improvements to the MVC viewing engine with the introduction of Razor, I can&#8217;t deny this.  <a href="http://byatool.com/pontification/just-use-html-why-mvc-can-be-a-good-thing/">Maybe I just have too much love for HTML in the first place.</a> But even something in line with Razor (Uses a similar look and feel) such as Pylons for Python is better (In my opinion, which with $3 still can&#8217;t buy you coffee) and that&#8217;s completely free to use.  IE doesn&#8217;t require a business to buy a 10k IDE. (Yeah I know there are alternatives that are a lot less but really, how often do you see businesses going the non Visual Studios route?)  I want Razor to sell itself to me. (Take that sentence however you want to.)  I want it to make me think, &#8220;You know what, it&#8217;s not perfect but it&#8217;s a damned good replacement for X.&#8221;  (Sort of like Entity Framework 2 did or MSTest even.)  I want it to just hit me over the head with a club and drag me home by the hair.  Right now I just feel like it&#8217;s doing the &#8220;yawn to arm around the shoulder&#8221; move.  You know, skip that thought since I&#8217;m not sure I&#8217;m really comfortable with the direction I&#8217;m taking these analogies.</p>
<p>Point is, I expect more from the mothership.  The best thing I found with Razor is <a href="http://byatool.com/pontification/asp-net-mvc-2c-4-dynamic-model-and-should-you-use-it/">the ability to use dynamic models</a> and that&#8217;s really more on .Net 4.0 than Razor.  (Which is a feature I really, really like despite the confused tone of the dynamic model post.)</p>
<p>I suppose my view is a bit tainted though since I pretty much take a lot things for granted since I have used Spark for over a year and can barely remember the original MVC view engine.  I suppose it&#8217;s possible if I had gone from the old view engine to Razor I would have a different view.  I suppose that I use the word suppose too much.</p>
]]></content:encoded>
			<wfw:commentRss>http://byatool.com/pontification/mvc-3-razor-and-my-1-cent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.Net MVC 2/C# 4â€¦ Dynamic Model and Should You Use It?</title>
		<link>http://byatool.com/pontification/asp-net-mvc-2c-4-dynamic-model-and-should-you-use-it/</link>
		<comments>http://byatool.com/pontification/asp-net-mvc-2c-4-dynamic-model-and-should-you-use-it/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 00:11:53 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Pontification]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[ExpandoObject]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://byatool.com/?p=1826</guid>
		<description><![CDATA[So there&#8217;s a new sheriff in town and its name is dynamic. Actually, its not really that new and that&#8217;s a horribly misused cliche. My lack of literary genius aside, I&#8217;ve been looking for a reason to use dynamic. Then it came to me: Models. Now the only reason why I started down that path [...]]]></description>
			<content:encoded><![CDATA[<p>So there&#8217;s a new sheriff in town and its name is dynamic.  Actually, its not really that new and that&#8217;s a horribly misused cliche.  My lack of literary genius aside, I&#8217;ve been looking for a reason to use dynamic.  Then it came to me:  Models.  Now the only reason why I started down that path was the use of Python where pretty much anything is dynamic.  In using python, I got used to not embracing the rigidity of classes for models and adopted a more &#8220;Oh what the f&#8211;k&#8221; attitude.  Back in the .net world though, I was using typed views.  Then I readopted the &#8220;Oh what the f&#8211;k&#8221; attitude and applied it to .net mvc.</p>
<p>Here&#8217;s an example:</p>
<pre>    [<span style="color: #008080;">RequiresAuthentication</span>]
    <span style="color: #0000ff;">public</span> <span style="color: #008080;">ActionResult</span> ShowBasicInfo()
    {
      <span style="color: #008080;">IState</span> currentState = ObjectFactory.Create();
      <span style="color: #0000ff;">dynamic</span> returnModel = <span style="color: #0000ff;">new</span> <span style="color: #008080;">ExpandoObject</span>();

      returnModel.UserName = currentState.CurrentUser.UserName;

      <span style="color: #0000ff;">return</span> View(AccountActions.ShowBasicInfo, returnModel);
    }
</pre>
<p>As you can see, I created a dynamic class and just added a property to it.  Now on the view side:</p>
<pre>...
<span style="color: #ff6600;">@model</span> dynamic
...
          &lt;<span style="color: #800000;">label</span> <span style="color: #0000ff;">id=</span><span style="color: #ff0000;">"showBasicInfoEmail"</span> <span style="color: #0000ff;">name=</span><span style="color: #ff0000;">"showBasicInfoEmail"</span>&gt;<span style="color: #ff6600;">@Model.UserName</span>&lt;/<span style="color: #800000;">label</span>&gt;
...
</pre>
<p>So if that&#8217;s all you&#8217;re here for, well there you go.   Now get out.</p>
<p>Ok so the real point to this post was actually the &#8220;should I?&#8221; Now with .Net, you really have to adopt a &#8220;should I?&#8221; attitude on anything that is new otherwise it might come back to bite you in the a&#8211;.  (Update panels anyone?)  Just using something because it looks easier is NOT a reason to do so.</p>
<p>The reason why I originally gravitated toward typed views was I didn&#8217;t like all the magic sting junk that came with the View dictionary, or whatever the hell it was called.  (I&#8217;m too lazy to look it up) Typed views gave a sort of concrete nature much like an interface does to a class.  You knew exactly WHAT the view could show based on the model.  This is good I still think in an environment where you don&#8217;t trust people to code correctly or when a person needs an easy place to look up what the incoming model contains.  After all, on the second point I mean, its a lot easier to look at a class to find EXACTLY what the model has than looking at a controller action code.  Simple for reference.</p>
<p>With that being said, getting stuck in model hell can happen. After all for every action there is an equal and&#8230; wait&#8230; there is a model.  Yeah you can reuse models to cut that down, but its not too hard to imagine it becoming a model infested nightmare.  Sometimes you just have to take the good and the bad, but sometimes you&#8217;re able to trust people and just go with what is easier.</p>
<p>Why trust? With Python and it overall dynamic nature, it was easy to see that such a tool put in the wrong hands could be a disaster.  Anyone who has worked with JavaScript will know this pain.  Python is just a fancy way to annihilate your foot, so the concept of allowing dynamic models only made me shiver like a prostitute on Christmas.  Sorry, that wasn&#8217;t appropriate.  I meant a prostitute on a non religious holiday like Thanksgiving or the Chinese New Year. (Sorry non Christian readers)</p>
<p>On the other hand, when in a small group where you have less time and more to do, it could be used as a compromise as it doesn&#8217;t use the hated magic string dictionary thing approach, but still had a class like feel.  And on top of that, if you wish to create models later, it would be extremely easy to swap the @model dynamic with whatever class type you need.  So in that way, I can almost stop my non stop convulsing that is a natural reaction to doing something I deem bad.</p>
<p>Answer is:  I don&#8217;t f&#8211;king know right now, but I&#8217;m going to fly with it and see how I like it.</p>
<p>Side note: One drawback of the dynamic route is the lack of intellisense.  That could be a deal killer for some.</p>
]]></content:encoded>
			<wfw:commentRss>http://byatool.com/pontification/asp-net-mvc-2c-4-dynamic-model-and-should-you-use-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python&#8230; DOUBLE TEE EFF Exclamation mark one one</title>
		<link>http://byatool.com/pontification/python-double-tee-eff-exclamation-mark-one-one/</link>
		<comments>http://byatool.com/pontification/python-double-tee-eff-exclamation-mark-one-one/#comments</comments>
		<pubDate>Fri, 10 Sep 2010 16:18:14 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Pontification]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://byatool.com/?p=1663</guid>
		<description><![CDATA[Fair Warning: This is all conjecture and idiocy&#8230; possible more the latter than the former. With that in mind, this is more of a flow of thought than any kind of organized scientific paper&#8230; thing. NOTE: When I use the word &#8220;attribute&#8221; I really mean things like properties, fields, methods, ect on a class. Since [...]]]></description>
			<content:encoded><![CDATA[<p>Fair Warning: This is all conjecture and idiocy&#8230; possible more the latter than the former. With that in mind, this is more of a flow of thought than any kind of organized scientific paper&#8230; thing. </p>
<p>NOTE:  When I use the word &#8220;attribute&#8221; I really mean things like properties, fields, methods, ect on a class.  Since I am guessing most people reading this come from a C# or Java background, the word &#8220;attribute&#8221; might be confused with something else.  So remember attribute = property/method/field/anything that defines an object.</p>
<p>So as I delve farther and farther into the insanity that is Python, I can feel my mind screaming.  Not like &#8220;Oh f&#8212; I&#8217;m being eaten alive&#8221; kind of screaming, more like &#8220;Don&#8217;t open that door!  You know the guy with the axe is behind it!&#8221;  Of course, like any good horror movie character I&#8217;m too dumb to know better. So delve I do.</p>
<p>Now I&#8217;m what you could consider a classically trained programmer and by that I mean I never programmed before college so I didn&#8217;t do much exploration.  You know, a Microsoft programmer.  With that, I&#8217;ve had the ideas of interfaces and class hierarchies complete hammered into my head, so it shouldn&#8217;t be any surprise that I&#8217;ve tried my best to make Python into c#.  After all, that&#8217;s what I should be doing.  I don&#8217;t know any better.  DONT JUDGE ME!<br />
It wasn&#8217;t until the other day when it just hit me.  And I don&#8217;t mean slight hit, I mean like I just told Miguel Cabrera I&#8217;ve seen better players in Little League.  It occurred to me that it&#8217;s possible, just possible I might have to change my way of thinking because of one major design difference: dynamic attributes&#8230; actually f&#8212; it, dynamic everything, but let&#8217;s just stick with something simple.   In Python something like this:</p>
<pre>
  someObject = dynamicObject()
  someObject.propertyImJustAddingForTheHellOfIt = 1
</pre>
<p>Where dynamicObject is nothing but a cheesy class that inherits Object but has nothing on it. (Turns out that if I did someObject = Object() I couldn&#8217;t do this since Object by default doesn&#8217;t contain the ability to add things dynamically&#8230; and this was by design.)  So what does this mean?  Well it means that anything at anytime could have any attribute.  You might be asking why this is such a big deal.  Annnnnnd that&#8217;s why I&#8217;m typing this out so stop asking questions until the end, k?</p>
<p>If any object can have anything on it at anytime, it could be said that types and classes kind of go out the window. Why?  Because when it all gets washed away, what really does the work in a program?  Methods. Now with C# there is a much stronger enforcement of typing so a method KNOWS that whatever coming in has to be a certain type.  This is where object inheritance and interface implementation come in.  Because there is such a prerequisite for typing in C#, you have to develop around the object itself and have the methods conform to them.  In Python, I question whether this approach is really warranted since with dynamic attributes what really matters is what the method needs.  It could be argued in the world of dynamic, the methods actually dictate everything.  Since types are basically thrown out the window, what&#8217;s the point?  Why not just shift all development around methods and their results?  Itâ€™s kind of an inverse way of looking at things when used to the C# way of doing them.</p>
<p><b>Method Oriented Programming?</b></p>
<p>This is something I&#8217;m kicking around a bit, but why not base the architecture around methods rather than classes?  It would give a much truer sense to the word &#8220;Factory&#8221;.  Instead of worrying about having a class hierarchy, have methods responsible for creating objects on the fly, piecing them together with other methods and such.  I would think this could give a program a massive ability to adapt quickly to any given situation if you can add and subtract from objects on the fly since you are not longer concerned with types, just attributes. Does the thing coming in have X attribute?  Yes?  Great do something.  No?  Fine don&#8217;t do something. (Python has a built in way to check if an object has a certain property) Does it need it to continue?  Well call a method to add it to the object.  Has the use for it expired?  Well just remove it.  Taken to an extreme, I could see this being used to construct more self sustainable programs, ones that can makes choices on their own to produce novel outcomes.  (Sadly, used like viruses and hacking security systems come to mind, but there has to be more noble uses for this)  Sounds like a lot of freedom.</p>
<p>Now I&#8217;m not saying you can completely get away from class structure&#8230; at least I haven&#8217;t gone far enough into this concept to see if itâ€™s possible.  However, it should be obvious that it at least allows for a completely different way of thinking that may help solve problems that were seemingly impossible to solve using more rigid languages like C#.  Of course, it also lends itself to shooting yourself in the foot.  Most likely, this approach would need more overall care since you don&#8217;t have things like type safety to cover your a&#8211;.<br />
Anyways, this is just preliminary rambling of a child (programmatically speaking&#8230; and maturity wise) who is just kicking around ideas that weren&#8217;t really there before.</p>
<p>An odd side note, python gives a new&#8230; or maybe the correct&#8230; meaning to the word &#8220;constructor&#8221; since because of that highly dynamic nature it&#8217;s not unlikely to see something like this:</p>
<pre>
  __int__(self):
    self.someNewField = "This property now exists"
    self.someNewMethod = someFile.someMethod
</pre>
<p>Which is actually more like a factory then how say c# uses constructors, which more the most part is like a initialization.  The other interesting thing to note is how python treats files and methods.  If you declare a method on a file, you can actually import that method as if it were an object itself.  This makes the above code even easier to accomplish since you can have a file of just methods that you can &#8220;import&#8221; and add to an object.</p>
]]></content:encoded>
			<wfw:commentRss>http://byatool.com/pontification/python-double-tee-eff-exclamation-mark-one-one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Development and Concern for the Present</title>
		<link>http://byatool.com/pontification/development-and-concern-for-the-present/</link>
		<comments>http://byatool.com/pontification/development-and-concern-for-the-present/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 15:20:48 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Pontification]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://byatool.com/?p=1262</guid>
		<description><![CDATA[Jettison everything else, then, and lay hold of these things only, few as they are: and remember withal that it is only this present, a moment of time, that a man lives: all the rest either has been or may never be. These words came from Marcus Aurelius, a roman emperor and among other things [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Jettison everything else, then, and lay hold of these things only, few as they are: and remember withal that it is only this present, a moment of time, that a man lives: all the rest either has been or may never be.</p></blockquote>
<p>These words came from Marcus Aurelius, a roman emperor and among other things a philosopher.  This thought was actually a part of a larger idea found throughout his writings in that a person&#8217;s life can only be measured in the present as in his mind it is the only thing that can truly be taken away from someone.  The past is done and the future isn&#8217;t guaranteed.</p>
<p>Great, so what the hell does that have to do with programming?  Truth is, it has a lot to do with it.</p>
<p>When it comes to programming, certain people&#8230; not going to name any one (Me)&#8230; tend to get overwhelmed playing the prediction game.  It&#8217;s not good enough to see what I&#8217;m doing now, but I&#8217;m always planning about 8 steps ahead.  Problem is, it sounds like a good idea but in reality can create over engineering and paralysis.</p>
<p>What if in the future it needs to be web service based?</p>
<p>What if in the future a user will need multiple addresses?</p>
<p>The question I should be asking is:  Will all this What Ifing help anything get done now or will it just make the system overly complex for no good reason?  Am I really smart enough to predict where the system will go in the future?</p>
<p>The customer, like the future, is a fickle thing.  You can&#8217;t predict where a customer might be two months from now.  What you do know is where the customer is right now.  Just like Marcus wrote &#8220;all the rest either has been or may never be.&#8221;  You can put in 20 extra hours a week creating a massively robust and fluid front end web design only to have the customer decide a year down the road that it needs to be a standalone app.  This is something that cannot be predicted.  It is the way of the unknown.  You can only do best by what you know now.</p>
<p>Are there ways to protect yourself? Sure.  Things like abstraction and decoupling can help at least make the change be less painful and overall are good practices anyhow.  Things like ORMs can help against database changes (You know when sql server is just &#8220;SURPRISE&#8221; replaced with oracle), service oriented architecture to hide the underlying data processing, repository pattern, ect ect ect.  There are many tools out there to help make it easier when a large chuck of a project is called to change heavily or to be completely redone.</p>
<p>Fact is, things will change and you can&#8217;t predict them.  The best you can do is create architecture that allows for change rather than creating one that assumes what those changes will be.  Live in the now, let the future come as it does.  For every step in the future you try to predict, another assumption is laid upon a foundation of assumptions.  If any one of those turns out to be false, the whole thing will come crashing down.  Donâ€™t spend a lot of time on creating things you canâ€™t prove will ever be needed since in the end you have to get something out at some point.  In the real world a working program now is better that a crazy advanced magic one that still isnâ€™t out.</p>
]]></content:encoded>
			<wfw:commentRss>http://byatool.com/pontification/development-and-concern-for-the-present/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Abin Sur Principle</title>
		<link>http://byatool.com/pontification/the-abin-sur-principle/</link>
		<comments>http://byatool.com/pontification/the-abin-sur-principle/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 17:09:39 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Pontification]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://byatool.com/?p=1259</guid>
		<description><![CDATA[The end of one great story can spark the beginning of another. In the DC Comic Green Lantern, Hal Jordan acquires the source of his powers, the power ring, upon the death of Abin Sur. I find this to be one of the more fascinating stories in comic books as it conveys a lesson in [...]]]></description>
			<content:encoded><![CDATA[<p><b>The end of one great story can spark the beginning of another.</b></p>
<p>In the DC Comic Green Lantern, Hal Jordan acquires the source of his powers, the power ring, upon the death of Abin Sur.  I find this to be one of the more fascinating stories in comic books as it conveys a lesson in life.</p>
<p>Too often in life, and even more so in the IT industry, we are forced to see the end of something:  A respected colleague leaving, moving to another position, or sometimes being fired unjustly.  Any one of these could seem like a bad thing and I think we as human automatically assume the worse.  It&#8217;s almost instinctual to assume the worst and work against whomever fills that spot (Whether consciously or not).  After all, the loss is great and there&#8217;s no way said person could be replaced.  Problem is:  It&#8217;s hard to predict what will happen when the new person arrives.  </p>
<p>Sure we have all had that shock of the new person coming in and shaking things up.  Abrupt change can cause extreme friction,  an unknown, and the unknown is something we as IT people hate.  Our job entails building things.  It&#8217;s difficult to build things without a plan and a set vision.  It upsets us to be in a situation of flux.  We want stability.  For someone to leave is to remove our livelihood.  Then the panic comes.</p>
<p>It won&#8217;t work.  This person doesn&#8217;t know what&#8217;s going on.  This company will never let this happen.  These are all things we&#8217;ve said in this situation.  Maybe it&#8217;s because we believe we know the company better than anyone (sometimes that&#8217;s true) or maybe it&#8217;s because the new idea are contrary to what we think is the way of doing things.  Problem is by doing this we&#8217;ve proven ourselves to be fools.  Why?  The one thing about uncertainty is&#8230; well it&#8217;s uncertain.  You can&#8217;t know if the change will be good or bad.  By taking a stance either way, you&#8217;ve falling into the world of assumption&#8230; arrogant assumption.   No one can predict what will happen, not even you.</p>
<p>Cure?  Just keep doing and see where it goes.  It&#8217;s a hell of a lot less stressful than worrying about it the whole way and you&#8217;re still getting paid the same.  Try to see the vision of the new person.  Try to figure out what he/she is thinking in the long run.  You might like what you see once you give it a chance.</p>
<p>Just a final note:</p>
<p>Evolution is full of this principle.  The end of the Dinosaurs allowed small mammals to finally come out from the holes in the ground and take their place in history.  End of one amazing story and the beginning of another.</p>
]]></content:encoded>
			<wfw:commentRss>http://byatool.com/pontification/the-abin-sur-principle/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Just Use Html: Why MVC Can Be A Good Thing</title>
		<link>http://byatool.com/pontification/just-use-html-why-mvc-can-be-a-good-thing/</link>
		<comments>http://byatool.com/pontification/just-use-html-why-mvc-can-be-a-good-thing/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 20:28:34 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Pontification]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://byatool.com/?p=1248</guid>
		<description><![CDATA[Just a fair warning, this isn&#8217;t intended on being taken as truth, but if you&#8217;ve been here before you should already know that.Â  If you haven&#8217;t and you can&#8217;t figure that out from the url alone, you&#8217;re probably are confused by addition so oh well. So something has come up in days of yore, and [...]]]></description>
			<content:encoded><![CDATA[<p>Just a fair warning, this isn&#8217;t intended on being taken as truth, but if you&#8217;ve been here before you should already know that.Â  If you haven&#8217;t and you can&#8217;t figure that out from the url alone, you&#8217;re probably are confused by addition so oh well.</p>
<p>So something has come up in days of yore, and it involves HTML.Â  Now I understand that those four simple letters are enough to give most programmers a rash unseen since being a kid of wearing Wranglers without washing them first.Â  Seems to me that there is an utter fear of HTML in the programming field and I can understand.Â  Sure there were times a log time ago when it was simple and people didn&#8217;t have to put up with this CSS thing.Â  Then design got complicated with that now defunct term DHTML.Â  All of a sudden, HTML design became a tool of the lesser and programmers wanted nothing to do with it.Â  To complicate matters, things like ASP.Net Webforms made it even more painful to worry about design. and really has so many ways to ignore it because of the 8 million automatic controls. Â  End result:Â  The ability to work with and create worthwhile pages became a lost art.</p>
<p>Flash forward to MVC.Â  To me one of the greatest things about the MVC framework was that it forced me to once again become one with HTML, and to the same extent CSS.Â  I&#8217;ll admit it was painful at first.Â  I had been able to get away without really having a good understanding of either for so long thanks to WebForms, but no way would this last.Â  Eventually I started to get pretty comfortable with it and have to admit I&#8217;m a far better programmer overall because of it.Â  How did I pull this off?Â  97% of the time I don&#8217;t use HTML.Helpers and other HTML churning methods.</p>
<p>Now I get that it sounds alien to most people.Â  After all, things like HTML.EditorFOr coupled with annotations can help with quickly creating pages.Â  I won&#8217;t argue that.Â  In fact, from a programmer&#8217;s stand point it&#8217;s probably better and I&#8217;m just a minority.Â  But I&#8217;m ok with that.Â  Why?Â  Because I like HTML.Â  I like CSS.Â  I like seeing both when I open a page in Visual Studios.Â  What I don&#8217;t like is the abomination that HTML helpers and the like create.Â  I didn&#8217;t go to MVC just so I could have even less HTML than I did in WebForms.Â  In fact, if I didn&#8217;t like HTML so much I would have just stayed with WebForms.Â  When it comes to quick development, WebForms wins hands down.Â  The switch to MVC wasn&#8217;t about speed, it was about doing it right for a change.Â  It was about getting my hands dirty and really learning web design and javascript.Â  It was about learning, not about taking the easy route once again.  What have I gained from it?  I can mock the s&#8211;t out of a page with notepad in the time it takes a kid to go through bubble wrap.  Yeah, that fast.</p>
<p>I might get blasted for this, but personally a lot &#8220;MVC Magic&#8221; is just a way for people who are afraid of HTML to feel more comfortable.Â  That something like:</p>
<pre>
&lt;% HTML.BeginForm(...) %&gt;
</pre>
<p>Feels more safe than:</p>
<pre>
&lt;form id="....  &gt;
</pre>
<p>And why wouldn&#8217;t it?  WebForms allowed a much more programmer friendly approach to creating pages, so it makes sense that something like the first example would be championed by programmers.  Problem is, it just keeps feeding the issue:  programmers don&#8217;t know jack about designing web sites.  </p>
<p>There is nothing wrong with HTML and CSS.  It&#8217;s not a difficult concept.  Instead of using tools to get around dealing with them, embrace them.  Don&#8217;t take the easy way out.  Don&#8217;t get scared and run.  Just use them.  In fact, here&#8217;s an exercise:</p>
<p>Come up with a simple site idea like say a forum and build it completely in HTML, CSS, and Javascript (jQuery, Mootools, ect are still javascript).  100% mock up.  If you find that hard or annoying, stuff it and keep going.  I swear that the benefits will be astounding.</p>
<p>I&#8217;ll give plus points if the page has a possibility to make a lot of money&#8230; no reason for that at all&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://byatool.com/pontification/just-use-html-why-mvc-can-be-a-good-thing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ASP.Net MVC:  Quick Overview of Controller Structure</title>
		<link>http://byatool.com/pontification/asp-net-mvc-quick-overview-of-controller-structure/</link>
		<comments>http://byatool.com/pontification/asp-net-mvc-quick-overview-of-controller-structure/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 16:37:47 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Pontification]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://byatool.com/?p=1012</guid>
		<description><![CDATA[Wow, that&#8217;s a mouthful far as titles go, but couldn&#8217;t think of a better way to say it. Now what I&#8217;m about to go through is the &#8220;system&#8221; I have found that works pretty well when it comes to structuring controllers knowing that there will be asynchronous operations. Why is that a big deal? Well [...]]]></description>
			<content:encoded><![CDATA[<p>Wow, that&#8217;s a mouthful far as titles go, but couldn&#8217;t think of a better way to say it.  Now what I&#8217;m about to go through is the &#8220;system&#8221; I have found that works pretty well when it comes to structuring controllers knowing that there will be asynchronous operations.  Why is that a big deal?  Well where you put certain methods can depend on which controller actually owns the action.</p>
<p>When I started using MVC, I had some issues on figuring out how to build controllers so that they made sense from a structural point of view.  <a href="http://byatool.com/index.php/pontification/what-i-hate-about-programming/">I slightly touched on it</a> but I wanted to show where I progressed to in the vain hope that I can help prevent stumbling on your part.</p>
<p>One thing to be noted is the asynchronous part.  I&#8217;ve become a firm believer that MVC is pointless without asynchronous operations.  Why?  Simply put, you can use them or you can come up with some annoying post and redirect for any create, update, or delete operations.  If you&#8217;re going to do that, you might as well just be institutionalized because you are one masochistic mother f&#8212;er.  For everyone else in the happy world, go with something like jQuery that makes it real easy to perform said operations.</p>
<p>With the last paragraph in mind, the part I had trouble with the most was figuring out where the actions go.  You see, when I started using MVC, I grouped stuff in an ultra simple manor.  Say I have a site for handling pictures.  Well there would be a view controller that would have anything to do with viewing images and an admin controller that took care of the uploading, changing, deleting, ecting.  As you can imagine, this was not what you might call ideal.</p>
<p>Once I got a feeling for MVC and how it worked, I started having things a little more separated but still didn&#8217;t feel right.  I had actions for viewing a list of images on the image controller no matter if public or admin side which wasn&#8217;t really ideal to me since it kind of blurred what was public and what was restricted from a conceptual point of view.  </p>
<p>It wasn&#8217;t until I started thinking in terms of unit testing that it started to make more sense.  If I were creating controllers as if they were classes instead of pages like with WebForms, maybe it would work out better.  Seems real profound right?  Well it was at the time since I still had WebForms state of mind.  All of a sudden, it made way more sense on how the controllers should be set up.  In an odd way, the controllers almost became almost business layer like.  If I wanted to update an Image, there would be an Update method on the image controller responsible for taking in the changes, validating, and dealing with the entity objects.  Everything that had to do strictly with displaying information would be handled by a display controller like the before mentioned Admin controller.  So something like:</p>
<pre>
<img src="http://www.iamwebproject.com/PhotoView/Photo/ShowPhoto/14" alt="Controller Outline" />
</pre>
<p>As you can see, the Admin controller has something to show all users.  The User controller has the methods for things like updating, creating, and validation.  Basically anything that would change an image is on one controller.  Anything for showing it on the main section controller.  That is, a controller that embodies an overall concept like say an Admin section of a site or possibly a controller for viewing galleries.  </p>
<p>The sequence of events (bad word choice&#8230;) would be something like:</p>
<p>Open Admin/UserList/<br />
Admin controller uses User Entity to retrieve list<br />
Admin View shows User List<br />
User clicks delete button/link on Admin View<br />
Javascript/jQuery method invoked to send id to User/Delete<br />
User controller receives id<br />
User controller validates id to make sure it is valid<br />
User controller validates current user to see if allowed to delete<br />
User entity Delete method invoked by User Controller<br />
Result of Delete Method is returned by User Controller (JSon preferably)<br />
Admin View displays the result</p>
<p>Treating controllers like classes (and the use of anonymous actions) allows a very clean separation of actions resulting in a nice logical layout.  Beyond this, it also allows for a greater separation between controllers which means its possible to do multiple parts of the entire project in parallel.</p>
<p>Maybe this is just stating the obvious, something I&#8217;m pretty good at, but my hope was to give a quick over view of laying out controllers for those who are just starting out.</p>
]]></content:encoded>
			<wfw:commentRss>http://byatool.com/pontification/asp-net-mvc-quick-overview-of-controller-structure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Do It Yourself</title>
		<link>http://byatool.com/pontification/do-it-yourself/</link>
		<comments>http://byatool.com/pontification/do-it-yourself/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 13:12:48 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Pontification]]></category>

		<guid isPermaLink="false">http://byatool.com/?p=983</guid>
		<description><![CDATA[A question came up about an earlier post on how I construct my grids shown in a few examples. Now as you can see, it looks like a table, acts like a table, so it must be a table right? Well it isn&#8217;t. It&#8217;s actually done with divs and styles, something I&#8217;ve worked hard on [...]]]></description>
			<content:encoded><![CDATA[<p>A question came up about an earlier post on how I construct my grids shown in a few examples.</p>
<pre>
<img src="http://www.iamwebproject.com/PhotoView/Photo/ShowPhoto/13"></img>
</pre>
<p>Now as you can see, it looks like a table, acts like a table, so it must be a table right?  Well it isn&#8217;t.  It&#8217;s actually done with divs and styles, something I&#8217;ve worked hard on getting right since moving to MVC.  </p>
<p>I&#8217;m not bagging on the question asked because I&#8217;m probably a mutant and the only person that thinks the way I do (and have written below).  I just have a philosophy that if you can do it yourself, do it yourself.</p>
<p>For starters, I&#8217;m not against new stuff, I think that&#8217;s pretty obvious.  I&#8217;m also not completely against third party stuff seeing as a lot of my newer posts deal with jQuery.  I do, however, avoid third party tools I don&#8217;t need, namely grid builders or things of that nature.  I figure that if I can do it myself, I&#8217;ll do it myself.  This kind of hits on the debate of using Visual Studios&#8217;s drag and drop feature for designing pages or not.  Sure it&#8217;s easy and for the most part works, but you are really doing yourself a disservice.  Why?  Because most of the time you can get away with it, it&#8217;s those few times that it just won&#8217;t do what you want it to do that kill you.</p>
<p><strong>When you use helper tools, you could be cheating yourself out of knowledge</strong></p>
<p>Now I&#8217;m not saying that you should develop your own tools for rendering 3d graphs.  Some things you just don&#8217;t have the time or the ability to create, but when it comes to simple things like markup, do the work.  The knowledge you gain from this is substantial.  Hell, I used to hate style sheets.  I used to hate javascript.  Quite frankly, they were a pain in the a&#8211; at first.  However, taking the road less travelled has given me a new perspective on both.  I no longer fear them and in fact would rather just type the markup out myself than trust some third part thing that I can&#8217;t fix when something goes wrong.  I know that if I have to create a quick mock up that looks like the real deal, I can do that with notepad and a browser.  I know that if I have to teach someone how to use style sheets or javascript, I can do that without just telling them to go to some page or to use some random tool.  I have confidence in my knowledge.</p>
<p><strong>More time now, less time later.</strong></p>
<p>Now I know in Perfectworld, there is always enough time allotted to doing what needs to be done.  In Realworld (Not the stupid MTV show) everyone is running around, heads a blaze.  So the biggest excuse to not learn proper markup is that there isn&#8217;t time.  A company isn&#8217;t going to pay you to learn when things need to be done.  Well sure, but flash forward a couple months when someone tells you that you have to adjust the grid you didn&#8217;t build yourself to add something you have no idea how to add or else the world is going to end.  Last thing that person will want to hear is &#8220;It can&#8217;t be done.&#8221;  In fact, most business people have some crazy allergic reaction to that phrase that causes them to turn really, really red.  It&#8217;s weird but happens a lot.  At this point you can either:</p>
<p>Laugh and lose your job.</p>
<p>Go on the forums and hope there is a solution.</p>
<p>Die a quick and painful death.</p>
<p>Always expect people to want 20% more than what was originally written.  Unless you have one of the best project managers that says the phrase &#8220;Work request form&#8221; on instinct, you will run into this situation.  That&#8217;s where doing it yourself comes in real handy.  It may have taken you a while to figure it all out, but you will for certain be able to fix the issue quickly.</p>
<p><strong>You never know when you&#8217;ll actually have to know how to build things from scratch</strong></p>
<p>Tech Interviews.  When looking for a job, you&#8217;ll probably run into these.  Best way to be prepared for these?  Have the real world knowledge.  How do you get that?  By doing a lot of the work yourself.  I have been through interviews where I was given a simulated work item and told to produce code for it on the spot.  Some of it had to do with the actual markup needed to display the data.  (This was before MVC days, WebForm stuff)  The people were far more impressed that I was typing out the mark up than if I had just done drag and drop stuff.  Why?  Because there is a stigma, fair or not, that drag and drop people are displaced VB Weenies, and the real programmers don&#8217;t bother with it.  Knowing how to hand code mark up on the spot is far more impressive than using visual tools or completely blanking out because you&#8217;ve had to rely on third party software.</p>
<p>At this point I realize I&#8217;ve mostly talked about markup, but this whole idea extends to a lot of the programming world.  Digging in and forcing yourself to do the work will substantially improve you abilities over time.  If you can&#8217;t do this at work then find some time on your own to work on a side project to learn.  Build your own error handling system.  Build your own pager creating method.  Build your own Url creating method for MVC.  I promise that you will be in a much better position.</p>
<p><strong>Final Note</strong></p>
<p>You could argue that coming to a site like this and using copy/paste is against my spiel.  Fact is, I&#8217;ve copy and pasted plenty of code to get to where I want to go.  Difference between this and third party tools is you can learn from what you copy and paste.  Actually I would argue that you have the responsibility to learn about what you are copying before you do anything with it.  If you copy AND you take time to understand what you are copying, that can be just as helpful.  If nothing else, it&#8217;s better than just using some third party method.</p>
]]></content:encoded>
			<wfw:commentRss>http://byatool.com/pontification/do-it-yourself/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery, Hidden Elements, and Why At Times I Hate It</title>
		<link>http://byatool.com/pontification/jquery-hidden-elements-and-why-at-times-i-hate-it/</link>
		<comments>http://byatool.com/pontification/jquery-hidden-elements-and-why-at-times-i-hate-it/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 14:23:29 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Pontification]]></category>

		<guid isPermaLink="false">http://byatool.com/?p=914</guid>
		<description><![CDATA[So this is your situation, or at least it might be someday if you use jQuery: You have a comment area that allows a user to view comments. Now this comment area is created using javascript (Read jQuery) only. When a user clicks on some kind of pager, a method is called to get a [...]]]></description>
			<content:encoded><![CDATA[<p>So this is your situation, or at least it might be someday if you use jQuery:</p>
<p>You have a comment area that allows a user to view comments. Now this comment area is created using javascript (Read jQuery) only. When a user clicks on some kind of pager, a method is called to get a list of comments and recreate the comment table. Now you would think it would be a good idea to hide the table, recreate it, and then show it. Sounds like a decent way to go. So you try something like this:</p>
<pre>  ...

  jQuery(commentTable).hide(<span style="color: #800000;">"slide"</span>, { direction: <span style="color: #800000;">"up"</span> }, 200 );

  ...

  <span style="color: #008000;">//Get the comments and call a method to build the table.
</span>
  ...

  <span style="color: #0000ff;">function</span> buildTable(commentList, commentTable)
  {
    ...

    <span style="color: #008000;">//Take the list and iterate.  Create a row</span>

   ...

     jQuery(commentTable).appendChild(someCreatedDivRowWithAComment)  <span style="color: #008000;">//BOOM</span>

   ...
  }</pre>
<p>Then you run it and bam you get an error saying that basically commentTable doesn&#8217;t exist. Now if this were WebForms and you did some kind of visible=&#8221;false&#8221; you would know that the markup for that table wouldn&#8217;t exist. However, in javascript style=&#8221;display:none;&#8221; doesn&#8217;t remove the element from the markup, it just hides it from the viewer. If you look at the source (Provided it&#8217;s not dynamically created) you will still see it in the mark up. So what&#8217;s the deal?</p>
<p>Well for some reason the creators of jQuery decided that there is a difference between a hidden element and a non hidden element to the point where you have to change your search (the jQuery() method is basically a search that looks for the element within the parenthesis) by adding on a &#8220;parameter&#8221;.</p>
<pre>  jQuery(<span style="color: #800000;">".someElement:hidden"</span>)</pre>
<p>So if you do use the hide() method (Or fadeOut for that matter) you have to use the :hidden addon to find the stupid element. This can cause a big problem when things aren&#8217;t timed correctly. What does that mean? Well that 200 value I have in the hide method, that&#8217;s the time I want it to take to hide the element. Far as I can tell, and I&#8217;ve done some testing on this, the element is not :hidden until the animation completes. Which means there are 200 time units where it is not :hidden. Now if the time that it takes to get your comment list and start building the table is less than the time it takes to hide the element you&#8217;ve got an issue. Or conversely, if the 200 time units are up and it is now hidden, you&#8217;re really screwed because the normal search won&#8217;t work. You can try something like this:</p>
<pre>   <span style="color: #0000ff;">if</span>(jQuery(<span style="color: #0000ff;">this</span>).children(<span style="color: #800000;">".categoryBlockContainer"</span>).is(<span style="color: #800000;">":hidden"</span>))
  {
    categoryBlockContainer = jQuery(<span style="color: #0000ff;">this</span>).children(<span style="color: #800000;">".categoryBlockContainer:hidden"</span>);
  }
  <span style="color: #0000ff;">else
</span>  {
    categoryBlockContainer = jQuery(<span style="color: #0000ff;">this</span>).children(<span style="color: #800000;">".categoryBlockContainer"</span>);
  }</pre>
<p>And this works ok most of the time, but you still might run into a situation where it&#8217;s still trying to finish the hide animation. Beyond that, it seems kind of asinine to have something like that in the code. It should find the element at all times, hidden or not.</p>
<p>This really kills the whole idea of animation.</p>
<p>Between this and javascript&#8217;s bizarre variable scope, I&#8217;ve had some thoughts of changing my profession.</p>
]]></content:encoded>
			<wfw:commentRss>http://byatool.com/pontification/jquery-hidden-elements-and-why-at-times-i-hate-it/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>To Async or Not To Async&#8230; That is the ReWritten Cliche Quote.</title>
		<link>http://byatool.com/pontification/to-async-or-not-to-async-that-is-the-rewritten-cliche-quote/</link>
		<comments>http://byatool.com/pontification/to-async-or-not-to-async-that-is-the-rewritten-cliche-quote/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 18:48:35 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Pontification]]></category>
		<category><![CDATA[Asynchronous Operations]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://byatool.com/?p=870</guid>
		<description><![CDATA[One of the things I&#8217;ve been wondering as a of late, besides why Micheal Bay still is allowed to make movies&#8230; and no money is NOT and excuse, is whether it&#8217;s better to just load and entire page and hide/show stuff on some click OR only load what&#8217;s shown and have said click handle loading [...]]]></description>
			<content:encoded><![CDATA[<p>One of the things I&#8217;ve been wondering as a of late, besides why Micheal Bay still is allowed to make movies&#8230; and no money is NOT and excuse, is whether it&#8217;s better to just load and entire page and hide/show stuff on some click OR only load what&#8217;s shown and have said click handle loading the stuff through Asynchronous Calls and Json.</p>
<p>I bet that made sense!</p>
<p>Here&#8217;s the situation, I have a blog thing I&#8217;m working on and it allows for multiple blogs per site. The &#8220;splash&#8221; page, if you will, looks like this:</p>
<pre><img class="alignnone size-full wp-image-872" title="BAT_BlogSplash1" src="http://byatool.com/wp-content/uploads/2009/08/BAT_BlogSplash1.PNG" alt="BAT_BlogSplash1" width="611" height="658" /></pre>
<p>And when you click &#8220;Newest&#8221; it looks like this:</p>
<pre><img class="alignnone size-full wp-image-873" title="BAT_BlogSplash2" src="http://byatool.com/wp-content/uploads/2009/08/BAT_BlogSplash2.PNG" alt="BAT_BlogSplash2" width="845" height="658" /></pre>
<p>As you can see, Newest brings up a pop out div thing that shows the latest post.</p>
<blockquote><p>Side note, I was going to have it just show the first X characters of the post as a teaser, but turns out that if there is any broken HTML because of that, IT&#8217;S A HUGE PAIN TO FIX. Something like &lt;div&gt; this is something that &lt;di&#8230; OH SNAP THE DIV IS BROKEN! ALERT! ALERT! So this was a &#8220;solution&#8221;.</p></blockquote>
<p>Originally I had it loading the needed post in it&#8217;s respective pop out div and just hiding all of them. Then it would show the post when the Newest &#8220;button&#8221; was clicked. Then it dawned on me that this might be silly since only one is going to be open at a time. Why send the client a ton of unneeded html? So, I moved on to using jQuery/Json to grab the needed post data when the Newest &#8220;button&#8221; is clicked. Then I just populate the pop out div with the returned information as it opens&#8230; or whenever it gets back to the client. Can&#8217;t always assume it will be there immediately. Interweb can be slow at times.</p>
<p>Anyways, this brings up an issue: Am I better off with the first or second solution? Given that all things are equal, it seems like a better idea to have the jQuery solution due to the fact you aren&#8217;t sending useless html to the client. This will most definitely help with initial load time for the client. Only problem is, that jQuery method is run every time one of the Newest &#8220;buttons&#8221; is pressed meaning you could have an infinite amount of requests per person. I suppose this is a matter of gambling really.</p>
<p><strong>Do I go with full html and because I assume the user will look at all the latest posts anyhow and therefore cut down the needed requests?</strong></p>
<p><strong>Do I go with the jQuery method because more often than not, users will not look at all the latest posts OR at least will take some time in between the Newest &#8220;button&#8221; pressing so that it&#8217;s ok there might be a ton of requests over time?</strong></p>
<p>At this point I think the second is the way to go, but it&#8217;s most likely situational. Time will tell.</p>
]]></content:encoded>
			<wfw:commentRss>http://byatool.com/pontification/to-async-or-not-to-async-that-is-the-rewritten-cliche-quote/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What I Hate About Programming</title>
		<link>http://byatool.com/pontification/what-i-hate-about-programming/</link>
		<comments>http://byatool.com/pontification/what-i-hate-about-programming/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 16:01:35 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Pontification]]></category>
		<category><![CDATA[Stupid]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://byatool.com/?p=866</guid>
		<description><![CDATA[Lately I have been screwing around with creating a blog framework using MVC and jQuery, the former being more troublesome from a design stand point. For example, The use of controllers and actions can cause a great deal of second guessing. Do I put all the admin view attached actions, like one for viewing a [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I have been screwing around with creating a blog framework using MVC and jQuery, the former being more troublesome from a design stand point.  For example, The use of controllers and actions can cause a great deal of second guessing.  Do I put all the admin view attached actions, like one for viewing a list of posts to select and edit, on an Admin controller?  Do I have a Post Admin Controller and a Comment Admin Controller?  Should anything having to do with Posts be on one Post controller and just seperate the actions based on attributes? (As in MustBeAdminAttribute as opposed to MustBeLoggedIn)  After all controllers are about grouping things, but how the h&#8212; should they be grouped?  Of course, that&#8217;s a sort of gray area an subject to debate.  The problem is I can&#8217;t help but think not matter what, I&#8217;m making the wrong choice.  Why?  Mostly because I know I&#8217;m not a super programmer. </p>
<p>Now this isn&#8217;t going to be an Atwood, back patting, <a href="http://www.codinghorror.com/blog/archives/001298.html">I&#8217;m so good I know I&#8217;m bad kind of post</a> but something has really occurred to me more and more lately.  As I&#8217;ve gone deeper and deeper into things like Entity Framework, MVC, and jQuery I&#8217;ve only been left with the feeling that someone else, somewhere is doing this a lot better.  Maybe it&#8217;s because my lack of experience with them, maybe it&#8217;s just a self depreciating nature thing, but it&#8217;s also having access to too many good programmers due to the plethora of them on the internets.  Yeah right, that&#8217;s a bad thing?  Well it kind of is.  It&#8217;s tough doing anything anymore when you know there are people far better than you doing a far better job.  And with the advancement of information sharing, you can&#8217;t help but find proof of that.  With that comes a certain guilt that you aren&#8217;t the top of the food chain and in fact you just might be a programmer the other better people complain about.  That&#8217;s right, you.  Someone at this very moment is straight up banging his/her head against a desk because of something you wrote.</p>
<p>Some would suggest this is the sign of a good programmer.  Someone who is never completely happy with his/her performance.  F&#8212; that, it just plain sucks and makes what can be enjoyable an epic pain in the a&#8211;.  No one wants to be that guy, you know the one that names every variable with numbers  (v1 + v2 = v3) or has one gigantic method that does everything.  Problem is, this is all relative.  One person&#8217;s perfection is another guy&#8217;s multi purpose stored procedure that runs 10 different query using a switch and a passed in string.  Code perfection is in the eye of the beholder.  And by now we all know there are plenty of high end beholders. </p>
<p>What does that mean? You can never win at the game of programming.  Read it again.  You can never win at the game of programming.  That is unless you are beyond a doubt the sharpest bulb in the bunch.  For the rest of us chumps, it&#8217;s grin and bear it time.</p>
<p>That&#8217;s it.  That&#8217;s the answer.  Suck it up.  Don&#8217;t like that answer?  Refer back to the answer.  Fact is, you&#8217;ll never be perfect and if you were, chances are you wouldn&#8217;t be reading this nonsense.  You&#8217;d be out in the middle of the Gulf of Mexico kicking it back on some island you own.  For the rest of us mortals (Or dumb immortals), it&#8217;s time to join the Tool Fiesta.  Start dancing, drinking, and accepting.  I&#8217;m not saying that you can&#8217;t better yourself.  Hell maybe you&#8217;ll be one of the top people out there&#8230; and optimistically thinking, considering this site, maybe you are (What the hell are you doing here though?).  But you aren&#8217;t going to be perfect and neither is your code. However, sitting around and worrying about producing perfect code is just sitting around.  Have to figure some code is better than no code at all right?  Just lie to me.</p>
]]></content:encoded>
			<wfw:commentRss>http://byatool.com/pontification/what-i-hate-about-programming/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

