<?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>Integgroll</title>
	<atom:link href="http://www.integgroll.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.integgroll.com</link>
	<description>This guy&#039;s opinions do not reflect those of his employer. Obviously.</description>
	<lastBuildDate>Fri, 24 Feb 2012 22:35:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>WharfWhacker v0.0.1a &#8211; Port Knocking in Python</title>
		<link>http://www.integgroll.com/2012-01-25/wharfwhacker-v0-0-1a-port-knocking-in-python</link>
		<comments>http://www.integgroll.com/2012-01-25/wharfwhacker-v0-0-1a-port-knocking-in-python#comments</comments>
		<pubDate>Wed, 25 Jan 2012 23:31:15 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=350</guid>
		<description><![CDATA[*Update* Alright I removed the threading which was killing pretty much everything I replaced it with the select function, which is MUCH kinder on CPU and my happiness in general.
&#160;
I missed a weekly blog post last week because I started a new project. That project is of course WharfWhacker, which  [...]]]></description>
			<content:encoded><![CDATA[<p>*Update* Alright I removed the threading which was killing pretty much everything I replaced it with the select function, which is MUCH kinder on CPU and my happiness in general.</p>
<p>&nbsp;</p>
<p>I missed a weekly blog post last week because I started a new project. That project is of course WharfWhacker, which is a python port knocker module. What I decided to turn WharfWhacker into is in the following feature list.</p>
<ul>
<li><span style="line-height: 18px;">Protects a list of ports from access</span></li>
<li><span style="line-height: 18px;">Variable number of ports to knock on</span></li>
<li><span style="line-height: 18px;">Prevent replay attacks</span></li>
<li><span style="line-height: 18px;">Time based ports</span></li>
<li><span style="line-height: 18px;">Portable</span></li>
<li><span style="line-height: 18px;">Doesn&#8217;t piss me off</span></li>
</ul>
<p><span style="line-height: 18px;">Let&#8217;t go through my list of features here, starting with &#8220;Doesn&#8217;t piss me off&#8221; by that I don&#8217;t mean that other port knockers piss me off (Moxie&#8217;s KnockKnock for example is awesome!). I mean that my code isn&#8217;t so bad that it makes me want to cry, and editing it is so difficult that I want to scream. </span></p>
<p>For the longest time I have been fascinated by two-factor tokens, how cool are they, you know what I am talking about, don&#8217;t lie. Because of this I decided to incorporate something like that into WharfWhacker, it comes along in the ports rotating every 60 seconds, not just the initial port which everyone shares, but the ones that are generated for new connections.</p>
<p>That leads me into preventing replay attacks.  By using the ip-address of the connector in the port generation algorithms, WharfWhacker generates separate ports, and orders, for each of the knocks that need to happen for a connection to open up.</p>
<p>Portability is something that should be a prime goal in everything in my mind.  I hate nothing more than having to install 12 different packages, and 3 different libraries just to get some small nifty project working.  The reason behind this is that half the time it doesn&#8217;t work, or they installed it differently than you did, or just their OS does not work the same as yours.  Initially WharfWhacker was using Scapy, I pulled that out simply because I wanted to increase portability, and reduce the number of package installs needed to get it running.</p>
<p>By adding in a variable number of ports for the knock sequence, as well as a password it gives all sorts of security customization that helps mask the port sequence needed to open access.  Sure if you know the password, and the number of knocks anyone can access your server, but that isn&#8217;t what you should hand out unless you want someone to have access.</p>
<p style="text-align: center;">So with that I present WharfWhacker<br />
<a href="https://github.com/integgroll/Wharf-Whacker">http://github.com/integgroll/Wharf-Whacker</a></p>
<p style="text-align: center;">Or if you want to use git like you should use the following:<br />
git://github.com/integgroll/Wharf-Whacker.git</p>
<p>From there you need to change the wharf.py to have the correct server ip address in it, and then change the password, please change the password, after that just run it as root. (I know, I know, but please feel free to check the source in wharfwhacker.py if you don&#8217;t trust me) From there you are set and good to go.  To open ports for the server you need to change the target_ip_address to the target server, the local_ip_address to the ip you want allowed, and the secured ports, as well as the password, and then run whacker.py</p>
<p>Since WharfWhacker is still in it&#8217;s early stages please let me know of any issues you have with it, or any suggestions that you have as well, I like to know what I did &#8220;wrong&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2012-01-25/wharfwhacker-v0-0-1a-port-knocking-in-python/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why I support Max Password Length.</title>
		<link>http://www.integgroll.com/2012-01-10/why-i-support-max-password-length</link>
		<comments>http://www.integgroll.com/2012-01-10/why-i-support-max-password-length#comments</comments>
		<pubDate>Tue, 10 Jan 2012 17:00:31 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=281</guid>
		<description><![CDATA[Based on title alone most of you will never read this and think &#8220;wow that guy is a moron&#8221;. Which is perfectly alright, you are allowed to do that.  But don&#8217;t fear, after you are done reading it you will think the same thing.
Most websites out there are using some simple hashing algorithm that is  [...]]]></description>
			<content:encoded><![CDATA[<p>Based on title alone most of you will never read this and think &#8220;wow that guy is a moron&#8221;. Which is perfectly alright, you are allowed to do that.  But don&#8217;t fear, after you are done reading it you will think the same thing.</p>
<p>Most websites out there are using some simple hashing algorithm that is quick for their server to calculate, and is &#8220;small&#8221; and of non variable size in a database. In may cases this is some derivation of MD5.  Which that model has a completely different problem that I am not going to cover, Hash Cracking.</p>
<p>That&#8217;s right folk&#8217;s I am going to talk about the issues with Hash Collision!  And now you are closing your tabs, which I don&#8217;t blame you for, because lets face it the issue I am talking about is really rare.  Mostly you think I should shut up because MD5 has already been &#8216;proven&#8217; broken (<a href="http://en.wikipedia.org/wiki/MD5#Collision_vulnerabilities">http://en.wikipedia.org/wiki/MD5#Collision_vulnerabilities</a>). I am not denying that their research doesn&#8217;t work, or that they can&#8217;t create a colliding set of data, they do and they can. But that issue has nothing to do with passwords, particularly when it comes to MD5.</p>
<p>Keyspace, MD5 has a keyspace of 128 bits. The examples in the link above are 1024 bits long, hence why I say they don&#8217;t matter in the case of passwords.  The assumption that you make with a password hashing algorithm is that the algorithm is 1-1 and onto inside the size of the keyspace. Meaning that passwords that are 128 bits or smaller should never have a collision with another password that is 128 bits or smaller.  Which assuming ASCII allows for 18 characters in a password, UTF-8 allows for 16.  I am going to work with UTF-8 because lets face it, it&#8217;s gained some popularity in the past couple years online (<a href="http://googleblog.blogspot.com/2010/01/unicode-nearing-50-of-web.html">http://googleblog.blogspot.com/2010/01/unicode-nearing-50-of-web.html</a>).</p>
<p>Now if you are still reading you are thinking &#8220;Integgroll is an ignoramus passwords only have 95 possible characters that they can use!&#8221; And you would be right, there are only 95 of the possible 256 possible characters that appear in UTF-8 that are used for passwords. This means that an amazingly small portion of each character is used, about 37%, which leaves about 63% of the character to never change.  If you get where I am going with this, that means there is a HUGE area of the keyspace that is never used by passwords.</p>
<p>Alright now it is time for some imagery to help sooth some of the math that is coming up. Imagine that you are above the Milky Way, and you can somehow throw half football fields at that area. Each of those spots where a half field lands, that is one password.  If you were to do this for the 16 UTF-8 characters worth of keyspace that you can use in MD5 you would have 37% of the milky way covered in football fields.  Wrap a stadium around THAT Jerry Jones!</p>
<p>If you were to toss another half field at the Milky Way after it had all those fields on it already, there is a 37% chance that it will land in the same place as another field already on the Milky Way.  That is your chances of collision with a password that is 16 characters or less in the MD5 keyspace.  Most of that 37% is wrapped up in passwords that are of good length.  At 11 characters or less there is only about a 1% chance of a collision.  When you get down to the shorter lengths, like say 8 or under, you are looking at 0.144% chance.</p>
<p>Yes, the numbers here are tiny, and the chance that a password and an account will match up with a collision that is much shorter than its length is very very rare in the password space.  But this is a legitimate reason to limit password length, or at least it will be once you can brute force 11-16 character passwords relatively quickly.</p>
<p>My response to this is to not use a single hashing algorithm for authentication. For example, don&#8217;t use MD5 or MD5(SHA(BLOWFISH))) use MD5 and also use SHA store them in different fields in that user database, and only authenticate when the hashed password is matched for both algorithms.</p>
<p>&nbsp;</p>
<p>TLDR: Use more than one form of hash algorithm with the results stored in different fields for authentication. Also Integgroll is a scrub.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2012-01-10/why-i-support-max-password-length/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Top 5 Postdictions for 2011</title>
		<link>http://www.integgroll.com/2012-01-03/top-5-postdictions-for-2011</link>
		<comments>http://www.integgroll.com/2012-01-03/top-5-postdictions-for-2011#comments</comments>
		<pubDate>Tue, 03 Jan 2012 17:12:30 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=339</guid>
		<description><![CDATA[Every year you see thousands of blogs trying to wrap up what happened in the last year, or even worse predict what will happen over the next year, or worst of all, a top 10 list.  Instead of doing anything like that I like to instead make predictions for the previous year, and I like to make over 4  [...]]]></description>
			<content:encoded><![CDATA[<p>Every year you see thousands of blogs trying to wrap up what happened in the last year, or even worse predict what will happen over the next year, or worst of all, a top 10 list.  Instead of doing anything like that I like to instead make predictions for the previous year, and I like to make over 4 of them and rank them in some sort of order, here they are.</p>
<p>&nbsp;</p>
<p>3: Def Con 19 will amass over 15,000 attendees in the new venue, it will be the most chaotic that you have ever seen a Def Con.  It will not be chaotic because of all the &#8216;hackers&#8217; in one place, but instead of all of them that are crammed into a convention area like sardines.  Someone will have to ask &#8220;How does it feel to outgrow your new venue before the second year in it Def Con?&#8221;</p>
<p>5: Anti-Sec movement, there will be an anti security movement in the year 2011, it will be vast and it will be quite cruise like.  Most information security professionals will curse these cats in public, and while in earshot of their bosses.  However in reality most of these very same professionals will be very happy at the new job security provided.</p>
<p>2: Playstation network will go down, productivity will increase because of it, but only after it goes down as  everyone finds ways to complain about the PSN being down first.  The network will continue to bounce, and then eventually Sony will finally admit that everyone who has ever spent money on PSN had their credit cards jacked.</p>
<p>4: B-Sides drama will ensue, there will be an errata post about the monetary practices of the lead organizer of B-Sides. Chaos will ensue. Hopefully though most people will just realize that while this might tarnish the name as a whole, B-Sides is still a thing for good in the long run.  I love B-Sides events and with a singular exception I wouldn&#8217;t prefer to be at any other convention.</p>
<p>1: DerbyCon will arise from the murky depths that is 4th Street Live, and the people will rejoice.  The most homey of all security conventions will happen in Louisville, Kentucky.  There will be bourbon, there will be beer, and there will be cherry infused vodka.  The talks will be pure and entertaining, the training will be informative and in some cases take forever and refuse people sleep.  The CTF will even have textual images when flashed at the closing ceremony will make the audience flinch.  While they will undersell tickets this year, it will only count toward the feeling of family that will persist across the convention hall.  Hackers for Charity will raise more money at this convention than they did at Def Con 19, an impressive feat considering the attendance is a 15th of Def Con 19&#8242;s.  Most importantly of all, there will be hugs, Oh will there ever be hugs abound, there will even be tickets for the hugs, and those tickets will be forged, and even turned into a charity item for HFC.  The only downside to all of DerbyCon is that there will never be enough thanks for all of the effort put forth, and the happiness that is brought because of the event.</p>
<p>&nbsp;</p>
<p>Now that I have postdicted the 2011 year you can all await these events becoming true with great happiness and mystery.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2012-01-03/top-5-postdictions-for-2011/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Knowledge and Sales.</title>
		<link>http://www.integgroll.com/2011-12-13/knowledge-and-sales</link>
		<comments>http://www.integgroll.com/2011-12-13/knowledge-and-sales#comments</comments>
		<pubDate>Tue, 13 Dec 2011 17:00:33 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[Sales]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=268</guid>
		<description><![CDATA[I would like to start off by saying that I am not a Pen. Tester by trade, I am also not in sales. However the following has been compiled from podcasts, talks, and conversations with people who are.
That being said I have put together a few conclusions
1: The days of walking in, owning a network,  [...]]]></description>
			<content:encoded><![CDATA[<p>I would like to start off by saying that I am not a Pen. Tester by trade, I am also not in sales. However the following has been compiled from podcasts, talks, and conversations with people who are.</p>
<p>That being said I have put together a few conclusions<br />
1: The days of walking in, owning a network, saying &#8220;your shit sucks&#8221;, then collecting a check are over, this has been beaten to death by everyone.<br />
2: Companies are demanding value from an engagement they pay for.<br />
3: The demanded value is more often than we would like, a checkbox.<br />
4: Thank you for voting for Wim Remes for the ISC2 board.<br />
5: Sales people tend to not have conceptual Knowledge about the industry.</p>
<p>I would like to ignore the first four conclusions, and pay attention to number 5.<br />
I have heard from educators, that there are two types of Knowledge, Procedural and Conceptual.</p>
<p>Procedural Knowledge is basically knowing that 2*2 is 4 and 2*3 is 6 2*4 is 8 and so on.  I would compare this to the rote memorization of your multiplication tables that you did when you were in elementary school.  You could also compare this to how most people know the OSI model for the CISSP.  Although I do agree People Don&#8217;t Need To See Paula Abdul.</p>
<p>Conceptual Knowledge is different, it is understanding that the reason 2*2 is 4 is because there are 2 sets of 2 individual somethings, and when you add that all together you get 4 individual sometings.  It is understanding why each of the OSI layers are different, and that there is a reason for it.</p>
<p>I would like to argue that there is a third kind of Knowledge.</p>
<p><a href="http://www.integgroll.com/wp-content/uploads/2011/10/comic1.png"><img class="alignleft size-thumbnail wp-image-263" title="comic1" src="http://www.integgroll.com/wp-content/uploads/2011/10/comic1-150x150.png" alt="When Conceptual Knowledge Sales" width="150" height="150" /></a></p>
<p>Mythic Knowledge is different than the other two, it is when you don&#8217;t care what 2*2 is, so long as <strong>someone else</strong> can find it out somewhere. You don&#8217;t care about any of the OSI layers, you don&#8217;t even care that there are layers.</p>
<p>I would argue that the sales people have mythic Knowledge about information security.</p>
<p>The real issue here is that the people selling the product don&#8217;t know anything about it.  The only reason that they are able to get away with this is because the people they are selling the product to don&#8217;t know what the product that they are buying is either, they just know that they need it.</p>
<p>There is a wide field of concepts to get a grasp on in just one of the areas of study in said line of work. We have sales people who are responsible for selling all kinds of things from Vulnerability scans, to penetration tests, to PCI and HIPPA and Ad Nauseam compliance. So this is not entirely their fault, it is a lot to learn, from the complaints I hear it seems aren&#8217;t even trying, other than to meet their quotas.</p>
<p><a href="http://www.integgroll.com/wp-content/uploads/2011/10/comic2.png"><img class="alignright size-thumbnail wp-image-267" title="comic2" src="http://www.integgroll.com/wp-content/uploads/2011/10/comic2-150x150.png" alt="" width="150" height="150" /></a></p>
<p>But at the same time it seems that most of us are not trying to help. Which we shouldn&#8217;t have to, people selling your products should be willing to get to know the products. But when they are able to sell them without having to learn anything, why should they even bother?</p>
<p>A whole lack of conceptual Knowledge is the reason that the information security industry has such a snake oil salesman reputation.</p>
<p>In saying all of this I am not implying that every sales person should go out and go get a CISSP in order to be able to do business in this field. Because that doesn&#8217;t solve the issue, and only pads a budget that is not your companies.  Much like Compliance is not Security, Certification is not Knowledge.</p>
<p>At the same time though you should also not just bend over and take it, you need to pull your sales people who you think are lacking in the Knowledge aside, and offer to teach them a few things.  Perhaps print out the <a title="IPv4 CIDR Chart" href="http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#Prefix_aggregation">IPv4 CIDR chart from Wikipedia</a> and stick it on their wall. The next time that your sales guy trys to pass off something ridiculous you have to &#8220;nip it in the bud&#8221; or else you are going to continue to work those 130 hour or more weeks, which one isn&#8217;t healthy, and two is not what your client is paying for.</p>
<p>The moral of the story here I guess is if you can&#8217;t get someone to learn a topic conceptually, at the very least beat them out of the mythic Knowledge section as quickly as possible.  It really is better off for everyone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2011-12-13/knowledge-and-sales/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making Employees Happier Without Increasing Salaries</title>
		<link>http://www.integgroll.com/2011-11-29/making-employees-happier-without-increasing-salaries</link>
		<comments>http://www.integgroll.com/2011-11-29/making-employees-happier-without-increasing-salaries#comments</comments>
		<pubDate>Wed, 30 Nov 2011 01:06:57 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Something Else]]></category>
		<category><![CDATA[Business]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=300</guid>
		<description><![CDATA[Earlier today I read an article titled 9 Things That Motivate Employees More Than Money. When I see an article titled like that one is it tells me that the person who wrote it is not your average employee. I can assure you of one thing, your employees are just as motivated by these techniques in  [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier today I read an article titled <a href="http://www.inc.com/ilya-pozin/9-things-that-motivate-employees-more-than-money.html">9 Things That Motivate Employees More Than Money</a>. When I see an article titled like that one is it tells me that the person who wrote it is not your average employee. I can assure you of one thing, your employees are just as motivated by these techniques in the long run as much money that you spent on them. the following are my suggestions on what you can do as management to help make happier employees, and at the same time not increase a persons salary.</p>
<p>&nbsp;</p>
<p>1: Remove any sort of formal dress code. Being in the tech industry I am going to be biased on this one, and for good reason, the last time I saw a customer is when I ran into one of them at a Starbucks after hours. That customer did not know who I am, and had no idea who I worked for. Requiring someone like myself to wear a tie, or even slacks and a dress shirt every day does nothing for my professionalism or job doing ability.  If you are the sort of person who does have improvement in their productivity with no loss of morale, by all means dress up, but do not make it a requirement for everyone.</p>
<p>2: A good Work From Home Policy is a requirement for a company that is looking for happier employees.  I am not saying that you can send all of your employees for 100% work from home without any thought on the matter.  But at the same time you should have some sort of offering that shows your employees that you trust them to do their work without Big Brother looking over their shoulder all day long.</p>
<p>3: Removing Ghost Workers is one of the things that will help improve morale more than anything else.  Do you remember how two years ago Sally quit, or was fired, or was let go so that someone could &#8220;cut costs&#8221; and get their bonus? Do you remember handing out all of her tasks to people around the office in the interim? Did you ever end up hiring someone to take those tasks back? Did you ever increase the people&#8217;s pay who took over those tasks? In my experience, one of those things never happens, and it should. You cannot expect your employees to take over tasks that they were not hired for, with the same salary as when they were hired; even if the job market has them too scared to leave over it.</p>
<p>4: Fire Incompetent Employees. No one likes that guy in your office who has no idea what they are doing. They don&#8217;t like it when they fill out an email chain in order to find out who exactly should be doing what task. They very much don&#8217;t like constantly having to fix that person&#8217;s problems.  Yes it costs money to hire new employees, yes it costs less to &#8220;re-purpose&#8221; that person and get them on the right track. It also pisses off your employees, especially when you end up promoting this person just to get them out of the development team.</p>
<p>5: Give your employees a share of the company. No, I do not mean give them a twenty dollar gift with the company logo on it every 5 years. My general rule is, if you don&#8217;t want it, they don&#8217;t either.  I mean give them a share of the profits. Yeah that means that I think that your Board of Directors, and C-Levels do not deserve the bonuses that they are getting. Yes, those people make the decisions that make the company happen. No, they do not do the actual work that ends up making that profit.  Do I think a janitor deserves the same bonus as a programmer who writes your software? No, I am not completely ignorant, but when the company makes money as a result of your employees, so should your employees.</p>
<p>6: Stop trying to come up with ways to make your employees happy without spending more money.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2011-11-29/making-employees-happier-without-increasing-salaries/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Distilling Good Programmers From Chaff</title>
		<link>http://www.integgroll.com/2011-11-22/distilling-good-programmers-from-chaff</link>
		<comments>http://www.integgroll.com/2011-11-22/distilling-good-programmers-from-chaff#comments</comments>
		<pubDate>Tue, 22 Nov 2011 21:41:34 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=294</guid>
		<description><![CDATA[Lots of people &#8220;Know how to program&#8221;. Many of them passed their college level classes with high marks. My issue with this is that so many Computer Science programs in colleges work on teaching you a programming language rather than a programming process. So what you end up with are a bunch of copy  [...]]]></description>
			<content:encoded><![CDATA[<p>Lots of people &#8220;Know how to program&#8221;. Many of them passed their college level classes with high marks. My issue with this is that so many Computer Science programs in colleges work on teaching you a programming language rather than a programming process. So what you end up with are a bunch of copy and paste monkeys that know how to use Google to find some code snippits, and then paste them into your enterprise solution.  Many companies understand this and like to present potential new hires with some coding questions that the person applying for the job have to fill out.  Here are a few of the ones that I would ask, and what kinds of responses I would look for.<br />
<span id="more-294"></span><br />
&nbsp;</p>
<p>Given the following two code snippits and their outputs in this made up language, write a program in this language that takes an array of the first 10 Fibonacci numbers, and multiplys each of them by 1, then 2, then 3, all the way up to 10., then outputs that result. Name the array whatever you want.</p>
<p>&nbsp;</p>
<div class="codesnip-container" >7 $var grow until 11{<br />
^&#8221;|$var + 1 * 3| Artichoke&#8221;<br />
}</div>
<p>Outputs:<br />
10 Artichoke<br />
11 Artichoke<br />
12 Artichoke<br />
13 Artichoke<br />
14 Artichoke</p>
<div class="codesnip-container" >#array contains $var scan{<br />
^&#8221;|$var| says hello&#8221;<br />
}</div>
<p>Outputs:<br />
Sam says hello<br />
John says hello<br />
Daniel says hello</p>
<p>&nbsp;</p>
<p>This is what I like to call a copy paste test.  You want them to come up with a result that does not look exactly like the following.</p>
<div class="codesnip-container" >1 $var grow until 10{<br />
#array contains $var scan{<br />
^&#8221;|$var * $var|&#8221;<br />
}<br />
}</div>
<p>You want them to give you something that has variables renamed, and should be obvious, and not doing anything too difficultly.</p>
<p>&nbsp;</p>
<p>Database design is something else that I run into which is in desperate need of help.  Third Normal Form, it is your friend, and it is the goal that you should aim for in any relational database, and lets face it, if you are writing anything but COBOL now days, you are using a relational database.  I have seen everything from databases that are barely in first normal form, to things that are so extrapolated out that every field on a row was a foreign key.</p>
<p>&nbsp;</p>
<p>I run a pizza company, we have 12 different toppings, three different sizes, and four crust types.  Each of those pizzas will be delivered by one of our three drivers, or picked-up. Also my customers have addresses that the drivers have to deliver to.  Design the schema for this database.</p>
<p>&nbsp;</p>
<p>What I would look for here is something similar to the following, it&#8217;s long-winded but what I would do in this situation.</p>
<p>&nbsp;</p>
<p>Toppings:</p>
<p>id: Integer</p>
<p>name: string</p>
<p>&nbsp;</p>
<p>Crusts:</p>
<p>id: Integer</p>
<p>name: String</p>
<p>&nbsp;</p>
<p>Sizes:</p>
<p>id: Integer</p>
<p>name: String</p>
<p>&nbsp;</p>
<p>Drivers:</p>
<p>id: Integer</p>
<p>name: String</p>
<p>&nbsp;</p>
<p>Customers:</p>
<p>id: Integer</p>
<p>name: String</p>
<p>address: String</p>
<p>&nbsp;</p>
<p>Pizzas:</p>
<p>id: Integer</p>
<p>crust_id: Integer</p>
<p>side_id: Integer</p>
<p>order_id: Integer</p>
<p>driver_id: Integer</p>
<p>&nbsp;</p>
<p>Toppings_Pizzas:</p>
<p>id: Integer</p>
<p>pizza_id: Integer</p>
<p>topping_id: Integer</p>
<p>&nbsp;</p>
<p>Orders:</p>
<p>id: Integer</p>
<p>customer_id: Integer</p>
<p>&nbsp;</p>
<p>The other two that I would request would be their preferred languages implementation of a Fibonacci function, and possibly a comment this code exercise.  The goal of these two exercises is just to see what their code looks like on something simple, and also see how well they can decode someone else&#8217;s code.</p>
<p>&nbsp;</p>
<p>Really you cannot know how well someone will do in the long run just based on a couple interviews, and some questions.  However asking poignant questions that show they have some conceptual knowledge rather than the ability to parrot things will help in the long run.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2011-11-22/distilling-good-programmers-from-chaff/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python Multi-threading</title>
		<link>http://www.integgroll.com/2011-06-15/python-multi-threading</link>
		<comments>http://www.integgroll.com/2011-06-15/python-multi-threading#comments</comments>
		<pubDate>Wed, 15 Jun 2011 22:15:41 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=254</guid>
		<description><![CDATA[I have found that in my uses of python I have a need for multi-threaded applications.  Well not so much a need, but it certainly speeds things up in this new world of multi-core processors, and parallel processing, or CUDA processing.  When I am doing a bunch of tasks that can happen simultaneously I find that it is easiest to toss them out to threads, which python makes incredible easy.  Here is an example of what I like to do.]]></description>
			<content:encoded><![CDATA[<p>I have found that in my uses of python I have a need for multi-threaded applications.  Well not so much a need, but it certainly speeds things up in this new world of multi-core processors, and parallel processing, or CUDA processing.  When I am doing a bunch of tasks that can happen simultaneously I find that it is easiest to toss them out to threads, which python makes incredible easy.  Here is an example of what I like to do.<br />
<span id="more-254"></span></p>
<div class="codesnip-container" >
<div class="python codesnip" style="font-family:monospace;"><span class="kw1">import</span> <span class="kw3">threading</span>,<span class="kw3">time</span>,<span class="kw3">random</span><br />
<span class="co1"># This is my Threading class that I like to use all over the place</span><br />
<span class="co1"># I do this so I don&#8217;t have a dozen different threading classes in an application</span></p>
<p><span class="kw1">class</span> WorkerThread <span class="br0">&#40;</span> <span class="kw3">threading</span>.<span class="me1">Thread</span> <span class="br0">&#41;</span>:<br />
<span class="co1"># Override Thread&#8217;s __init__ method to accept the parameters needed:</span><br />
<span class="co1"># first parameter is the function that will do all the work</span><br />
<span class="co1"># second parameter is the static parameters for that function</span><br />
<span class="co1"># third paramater is the variable list of parameters for the function</span><br />
<span class="kw1">def</span> <span class="kw4">__init__</span> <span class="br0">&#40;</span><span class="kw2">self</span>,funct, static_parameters, variable_parameter_list<span class="br0">&#41;</span>:<br />
<span class="kw2">self</span>.<span class="me1">funct</span> = funct<br />
<span class="kw2">self</span>.<span class="me1">static_parameters</span> = static_parameters<br />
<span class="kw2">self</span>.<span class="me1">variable_parameter_list</span> = variable_parameter_list<br />
<span class="kw3">threading</span>.<span class="me1">Thread</span>.<span class="kw4">__init__</span> <span class="br0">&#40;</span> <span class="kw2">self</span> <span class="br0">&#41;</span><br />
<span class="kw1">def</span> run <span class="br0">&#40;</span> <span class="kw2">self</span> <span class="br0">&#41;</span>:<br />
<span class="kw1">for</span> item <span class="kw1">in</span> <span class="kw2">self</span>.<span class="me1">variable_parameter_list</span>:<br />
<span class="kw1">try</span>:<br />
<span class="kw2">self</span>.<span class="me1">funct</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">static_parameters</span>,item<span class="br0">&#41;</span><br />
<span class="kw1">except</span> <span class="kw2">Exception</span>,e:<br />
<span class="kw1">print</span> <span class="kw2">str</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span></p>
<p><span class="co1"># This is where I declare a function for my threads to use.</span><br />
<span class="co1"># It will need two parameters, which I like to name static and variable</span><br />
<span class="co1"># static is a set of variables that will always be the same across the threads</span><br />
<span class="kw1">def</span> threaded_function<span class="br0">&#40;</span>static,variable<span class="br0">&#41;</span>:<br />
<span class="kw3">time</span>.<span class="me1">sleep</span><span class="br0">&#40;</span><span class="kw3">random</span>.<span class="kw3">random</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="co1">#only here to help show threads can do things concurrently</span><br />
<span class="kw1">print</span> <span class="st0">&quot;%s %s, how are you today?&quot;</span><span class="sy0">%</span><span class="br0">&#40;</span>static<span class="br0">&#91;</span><span class="st0">&#8216;greeting&#8217;</span><span class="br0">&#93;</span>,variable<span class="br0">&#41;</span></p>
<p><span class="co1"># Here is the setup of the data</span><br />
greetings = <span class="br0">&#91;</span><span class="st0">&quot;Hello&quot;</span>,<span class="st0">&quot;Hi&quot;</span>,<span class="st0">&quot;Howdy&quot;</span><span class="br0">&#93;</span><br />
names = <span class="br0">&#91;</span><span class="st0">&quot;John&quot;</span>,<span class="st0">&quot;Sally&quot;</span>,<span class="st0">&quot;Alice&quot;</span>,<span class="st0">&quot;Bob&quot;</span>,<span class="st0">&quot;Mike&quot;</span>,<span class="st0">&quot;Stephen&quot;</span>,<span class="st0">&quot;Joseph&quot;</span>,<span class="st0">&quot;Bill&quot;</span>,<span class="st0">&quot;Arthur&quot;</span><span class="br0">&#93;</span></p>
<p><span class="co1"># Lets setup three threads to handle all of this each with a different greeting</span><br />
thread_mill = <span class="br0">&#91;</span><span class="br0">&#93;</span><br />
<span class="kw1">for</span> greeting <span class="kw1">in</span> greetings:<br />
thread_mill.<span class="me1">append</span><span class="br0">&#40;</span>WorkerThread<span class="br0">&#40;</span>threaded_function,<span class="br0">&#123;</span><span class="st0">&#8216;greeting&#8217;</span>:greeting<span class="br0">&#125;</span>,names<span class="br0">&#41;</span><span class="br0">&#41;</span></p>
<p><span class="co1"># Now we finally get to start our threads doing their work</span><br />
<span class="kw1">for</span> <span class="kw3">thread</span> <span class="kw1">in</span> thread_mill:<br />
<span class="kw3">thread</span>.<span class="me1">start</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</div>
<p>And now you should get a wonderful looking output with a bunch of Hellos and Howdys to different names, in different orders!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2011-06-15/python-multi-threading/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Importance of Good Ice</title>
		<link>http://www.integgroll.com/2010-12-21/the-importance-of-good-ice</link>
		<comments>http://www.integgroll.com/2010-12-21/the-importance-of-good-ice#comments</comments>
		<pubDate>Tue, 21 Dec 2010 19:08:22 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Curling]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=242</guid>
		<description><![CDATA[Our curling seasons are a few weeks in here in Dallas.  We have three leagues going right now, all playing once a week on 4 sheets of ice.  We have our fare share of people playing in multiple leagues, myself included, but we are pretty close to 85 members!
Today I want to talk about ice.  I would  [...]]]></description>
			<content:encoded><![CDATA[<p>Our curling seasons are a few weeks in here in Dallas.  We have three leagues going right now, all playing once a week on 4 sheets of ice.  We have our fare share of people playing in multiple leagues, myself included, but we are pretty close to 85 members!</p>
<p>Today I want to talk about ice.  I would like to preface things by saying that I have only curled in a handful of clubs around the country, all of them were of course arena ice.  So needless to say I cannot wait until I get a chance to curl on some real ice.  However I have curled on a bunch of various different surfaces, and have some thoughts on the matter.  The ice is the soul of your club, more so than your president, more than your club&#8217;s &#8220;Norm&#8221;, and more than if your club had a literal heart in a jar.  </p>
<p>What I mean by that is that when it comes down to it curling is about fun, it is just the soul of the game.  However when you hurl a stone down the sheet and it starts to fall off the boards right as you let it go, and then you can watch it &#8220;snake&#8221; down the ice, then the next thing you know your skip has his broom up in the air and is waving it at you as if it were on fire, your fun has gone down.  Three ends later you are trying to strike up a conversation with the teams on the other sheets and they have that scowl on their face that makes you cringe and turn back to your own game, your fun has gone down.  You close your eyes and just toss the rock down the ice and just letting go whenever, not caring if you hog the stone;  the stone ends up in a better place than when you &#8216;make&#8217; your shot, your fun has gone down.  Both teams want to win, but even if you do win it isn&#8217;t because you played better, it is because the ice was bad and they didn&#8217;t get the same &#8220;luck&#8221; that you did, you fun goes down.  </p>
<p>This all accumulates week after week, until you really start thinking about not showing up.  No matter how much you love the sport, you aren&#8217;t playing that sport any more, you are chunking rocks down some ice.  Wii Curling would be closer to the real thing.  So when it comes down to it, if you start to hear people complaining week after week about how poor the ice is, and how they can&#8217;t make a shot, or if you are making your shots, but only because you know how to work the ice think of the following.  You should start trying to change things and make things so that all players have a good time, as opposed to the few who have figured out how to win on bad ice.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2010-12-21/the-importance-of-good-ice/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Courteous Driving</title>
		<link>http://www.integgroll.com/2010-10-19/courteous-driving</link>
		<comments>http://www.integgroll.com/2010-10-19/courteous-driving#comments</comments>
		<pubDate>Tue, 19 Oct 2010 05:00:42 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Something Else]]></category>
		<category><![CDATA[Driving]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=227</guid>
		<description><![CDATA[As I drive around Dallas, on my way home from work for example, I see all sorts of crazy stunts that people pull in an attempt to get home more quickly.  But more importantly I see people who are trying to get to their location faster than the guy next to them.  So in an attempt to help this issue,  [...]]]></description>
			<content:encoded><![CDATA[<p>As I drive around Dallas, on my way home from work for example, I see all sorts of crazy stunts that people pull in an attempt to get home more quickly.  But more importantly I see people who are trying to get to their location faster than the guy next to them.  So in an attempt to help this issue, I have put together a few ideas that will help increase everyone&#8217;s driving experience.</p>
<p>Step 1: A Car Is Not a Time Machine.  I realize that your job is making you ghost work for half a department, and that you work up 20 minutes late because of it and because of that you are going to be late.  But the first thing you need to realize is that you cutting someone off, or running a stale yellow light, or even driving all the way up to the on-ramp and then stopping until someone lets you on does nothing but slow other people down.  When they get slowed down, then they do the same things which slow more people down, which then in turn causes everyone to be later, and traffic to last longer.  But when it comes down to it, even these things don&#8217;t save that much time, and I understand the opinion that &#8220;sure it only saves me 5 minutes, but when I am going to be 5 minutes late that is when it matters&#8221;, really though you need to base your schedule on your driving time, don&#8217;t base your driving on your schedule time.</p>
<p>Step 2: Stop Sign Procedure.  I see you doing it when I am driving, that is right you in the Mustang, or you in the Giganto-SUV, and heck even the guy in the sedan, no car type is perfect.  What is it you ask?  Driving all the way up to the curb and then &#8220;stopping at a stop sign&#8221;.  Nothing scares me more than when I am driving past a road that has a stop sign and I see some gigantic truck or SUV barreling up to the street that I am driving on, and then stopping mere inches before they hit my car.  There is a reason that stop signs are a good 5 feet before the street, that reason is that you are supposed to stop at the stop signs, meaning that when you approach a stop sign, if your front bumper passes that stop sign before you have come to a complete stop, you have run that stop sign, and I wish the police would write you a ticket for it.  Please, stop scaring the crap out of people, causing them to put on the brakes and then impede traffic behind them because you are in too much of a hurry to stop 5 feet earlier, when you are supposed to.</p>
<p>Step 3: Observe Roadsigns.  I know you think that because you were not paying attention and then it is all of a sudden time for your exit that you can zoom across four lanes of traffic and then squeeze into the tiniest of space between cars and somehow magically make your exit and not get in a wreck yourself.  What this does though is create a slowdown that will last for hours.  It literally will take until the next day for this sort of thing to go away, so please don&#8217; do it.  If you find yourself in a situation where you are about to or have missed your exit, turn, lane change, or whatever; please do the rest of us a favor, calmly make your way lane by lane to the next exit, take that one, and then turn around and try again, or take back streets or side roads.</p>
<p>Step 4: Getting Pulled Over.  It happens, even I get pulled over from time to time.  But what you should to to help prevent traffic issues when you are pulled over is not to pull onto the shoulder, or onto the side of the road, or into a turn lane.  Those do nothing but put the officer&#8217;s life in danger, and put them on edge, but it also causes traffic to rubberneck and slow down even more.  Instead do the following when you see the flashing lights in your rear-view mirror.</p>
<ol>
<li>Put on your hazard lights</li>
<li>Slow down and make your way off the highway if you are on one</li>
<li>Stop in a well lit public place that does not impede the flow of traffic</li>
</ol>
<p>There are federal laws on the books that allow you to travel to a location that you feel is safe before pulling over, you should use these laws to not only help keep yourself safe, but keep the officers off of the roads where they can be clipped by cars.  Once you explain what you did and why, I promise you most officers will be alright with it, and the few that are not, well they were going to beat you anyways.</p>
<p>Using these four handy tips we can all help to make sure that our commute every day is a little bit safer, speedier, and sweeter in the future.  I would like to thank my mom for imparting such good driving morals on me when I was younger, and I am proud to say that I not only drive the speed limit, except when driving exes home from the airport, but I keep both hands on the wheel at all times.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2010-10-19/courteous-driving/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Curling Red River Shootout</title>
		<link>http://www.integgroll.com/2010-09-28/curling-red-river-shootout</link>
		<comments>http://www.integgroll.com/2010-09-28/curling-red-river-shootout#comments</comments>
		<pubDate>Wed, 29 Sep 2010 00:30:44 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Curling]]></category>
		<category><![CDATA[Bonspiel]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=201</guid>
		<description><![CDATA[Dallas/Fort Worth, Texas (technically Farmers Branch).  A short 45 minute drive from my home.  I am very biased since this is my home club, but I love this building.  It has an upstairs viewing area that has a bar attached, they just so happen to carry Shiner Boch on tap too. The ice this weekend  [...]]]></description>
			<content:encoded><![CDATA[<p>Dallas/Fort Worth, Texas (technically Farmers Branch).  A short 45 minute drive from my home.  I am very biased since this is my home club, but I love this building.  It has an upstairs viewing area that has a bar attached, they just so happen to carry Shiner Boch on tap too. The ice this weekend wasn&#8217;t the best, however we were not on the rink that we are usually on, so any home rink advantage that the DFW players would have had was gone.</p>
<p>The Friday night before the Curling Red-River Shootout begins there is a party over on my side of town. Food, your choice of drinks (that you bring). It was at this party that we were supposed to learn who we were curling with over the weekend. And the news came, Oklahoma didn&#8217;t have enough players.  I, along with a couple others, had been moved to the other side.</p>
<p>Saturday morning, the first set of games to be played is the regular games, worth 16 points in total. OKC wins 12 of them (DFW 4/ OKC12) After the first round the guy who has the Oklahoma Curling Club t-shirts in his car gets off the ice and I quickly convince him to sell me one so that I can be in uniform with the rest of their players. Then in the next round where I am playing they do the same right back to us OKC 4 and DFW 12, (16/16) Next there is a skills competition consisting of the following</p>
<ol>
<li>Draw to the button</li>
<li>Hit and Roll</li>
<li>Draw through a port (gigantic one)</li>
<li>Raise</li>
<li>Double Takeout (one right behind the other)</li>
</ol>
<p>The first round of the skills goes alright for both teams, with it being DFW 9 to OKC 7 in the first round (25/23) and then in the next round things went in our favor a bit more with OKC scoring 10 and DFW only 6 (31/33) And now it was time for doubles, something many of us have no idea how to play, and certainly have no idea at all how the strategy is different than normal curling.  However I found the doubles very fun, even if I did have to wait a whole 6 hours to play my round of them.</p>
<p>The doubles rounds went like this:</p>
<ol>
<li>DFW 4 OKC 4 (35/37)</li>
<li>DFW 6 OKC 2 (41/39)</li>
<li>DFW 4 OKC 4 (45/43)</li>
<li>DFW 1 OKC 7 (46/50) &lt;-my draw</li>
</ol>
<p>So coming out of the first day of curling the OKC team was a whole 4 points ahead, however this didn&#8217;t mean too much because on Sunday there was the skins games, and that is where the *real* points are at.Sunday morning, luckily I had the later draw for skins, so I was able to sleep in a bit.  So I missed about the first hour of the game on Sunday.  However when I arrived it was not looking good for the Oklahoma folks. they were behind in almost every game, and not exactly happy looking.  The games ended with a very biased lead to the DFW side, 41 DFW 23 OKC (87/73) OKC went from a 4 point lead to a 14 point loss in one game.</p>
<p>Before stepping on the ice though we made sure to clear our heads and get ready to have some fun as usual.  My game goes really quickly, and we have a good game, winnind all of our skins but one.  After we are done I start looking around to see how everyone else is doing and to find out if we still have a chance, our game alone almost recovered our point detriment.</p>
<p>After crunching a few numbers in my head, I found that we were doing alright, and we were still in this despite our massive point debt going into the round.  finally one of the games ends in OKC&#8217;s favor and then the other is pretty much tied.</p>
<p>Finally it comes down to the last game on the ice.  Everyone is watching intently waiting for the game to end so that the totals can be tallied and the winner declared.  I am crunching numbers in my head once again, trying to figure out how the last two ends needed to go to determine the winner.  It was all on this team at this point.  The last game finally ends about 15 minutes after the other game and the total of the round is 19 DFW 46 OKC.</p>
<p>For those of you doing your math as you have been going on you know what the final score is already. But for those of you who have not, you will just have to finish this sentence, and the next one.  The total scores of the weekend ended up being 106 Dallas/Fort Worth, which is a very sizeable score and a tough one to beat, with the slight exception of the 119 points that Oklahoma earned, making them the winners of the first Curling Red river Bonspiel!</p>
<p>Congratulations Oklahoma!  and all of the people who were handed over to the Oklahoma team and fought for the win. I would like to say thank you to all of the people who were involved in making it happen, you guys were awesome the entire time and really made a wonderful bonspiel happen.  I would also like to thank the Dr. Pepper Stars Center and its employees who without you guys it wouldn&#8217;t have been possible to have this at all, much less our curling league. I also apologize for those of you who were not invited to play, I will make sure personally that it doesn&#8217;t happen again.</p>
<p>And here is a picture of about half of the winners of the bonspiel!  (If you aren&#8217;t in the picture, send me a picture of yourself and I will add you in)</p>
<p><img class="aligncenter size-full wp-image-223" title="CurlingRedRiverShootout2010" src="http://www.integgroll.com/wp-content/uploads/2010/09/CurlingRedRiverShootout2010.png" alt="Winners of the 2010 Curling Red River Shootout" width="512" height="320" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2010-09-28/curling-red-river-shootout/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crown after I said LUG</title>
		<link>http://www.integgroll.com/2010-09-21/great-luck-beats-painful-canals</link>
		<comments>http://www.integgroll.com/2010-09-21/great-luck-beats-painful-canals#comments</comments>
		<pubDate>Tue, 21 Sep 2010 18:10:42 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Something Else]]></category>
		<category><![CDATA[dental]]></category>
		<category><![CDATA[IRC]]></category>
		<category><![CDATA[LUG]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=195</guid>
		<description><![CDATA[Last week I attended a LUG meeting at UTD, utdlug.org, they covered some standard GNU/Linux (take that Richard Stallman) information.  Things like selecting a distro were disussed, the standard slack insults, and of course dissing rolling release were not left out.  From there it went on to a bunch  [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I attended a LUG meeting at UTD, <a href="http://utdlug.org">utdlug.org</a>, they covered some standard GNU/Linux (take that Richard Stallman) information.  Things like selecting a distro were disussed, the standard slack insults, and of course dissing rolling release were not left out.  From there it went on to a bunch of discussions on how to support and get information from the community, as well as IRC etiquette, which I will go into shortly.</p>
<p>IRC etiquette:</p>
<ol>
<li>Pick a unique, open handle/moniker/screen-name, you don&#8217;t want to be confused with that other 600 anonamoose&#8217;s out there.</li>
<li>Say hello when you join a channel, everyone likes nice people.</li>
<li>Join in the conversation, IRC is great for networking and meeting new people.</li>
<li>If you have a question wait for the chat to die down to ask it, wait a while too someone else may ask it, making you look smarter.</li>
<li>Stay on topic, some channels are stricter than others on this one.</li>
<li>Be patient, people idle on IRC, a <strong>lot</strong>.</li>
<li>Don&#8217;t insult people who aren&#8217;t willing to help you</li>
</ol>
<p>Contributing to Open Source:</p>
<ul>
<li>Pick a project you can get behind.</li>
<li>Write bug reports and descriptions.</li>
<li>Write documentation, most projects need this more than coders.</li>
<li>Get to know the people running the project, with certain exceptions they are pretty cool people.</li>
</ul>
<p>After the meeting we did the standard and went to Chili&#8217;s for some food and chatter.  However about halfway through the meal I noticed that one of my teeth had cracked open, and a rather large chunk of it was missing.  Somehow there was no pain, and for that I am very thankful, however I did need to get to a dentist pronto.</p>
<p>Sadly it took me a day to get to a dentist, and get the thing fixed.  Once I sat down in the chair and got a look at my x-rays, I knew exactly what was going to have to happen before my dentist even said it.  <em><strong>Root Canal</strong><span style="font-style: normal;">. That is right, there was almost nothing between the hole in my tooth and the root on the x-ray.  They prepared for a Root Canal, got me nice and numbed up, and started doing their thing, working toward the inevitable.  A few minutes later I heard the one phrase you never want to hear a doctor say, <strong>&#8220;</strong></span><strong>huh? that is strange.&#8221;</strong><span style="font-style: normal;"> She then did some more grinding and double checking, and then told me that I am a very lucky guy and I didn&#8217;t need a Root Canal after all.  They finished off the crown, and sent me on my way.  As someone who is like the other 50% of the population, I very much dislike the dentists office, but the people at the Monarch Dental in Rowlett, Texas really made this a good dentist visit, even if I had to have the Root Canal at this time (I will have to eventually just how it works) I would think the same thing.  Thank you gals!</span></em></p>
<p><em><span style="font-style: normal;">I go back in a couple weeks to get my permanent crown, I actually can&#8217;t wait to go to the dentist for the first time in my life. </span></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2010-09-21/great-luck-beats-painful-canals/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kansas City Barbecue Spiel</title>
		<link>http://www.integgroll.com/2010-08-30/kansas-city-barbecue-spiel</link>
		<comments>http://www.integgroll.com/2010-08-30/kansas-city-barbecue-spiel#comments</comments>
		<pubDate>Tue, 31 Aug 2010 04:11:20 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Curling]]></category>
		<category><![CDATA[Bonspiel]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=182</guid>
		<description><![CDATA[Kansas City, Kansas.  A Whole 8 hour drive from Dallas, Texas.  Not as far as Ft. Wayne.  This time our first Chris did all the driving, eventually as a team we might share that task, but I guess not for the past couple bonspiels.
We didn&#8217;t do so hot in this bonspiel either, we ended up going 1-2,  [...]]]></description>
			<content:encoded><![CDATA[<p>Kansas City, Kansas.  A Whole 8 hour drive from Dallas, Texas.  Not as far as Ft. Wayne.  This time our first Chris did all the driving, eventually as a team we might share that task, but I guess not for the past couple bonspiels.</p>
<p>We didn&#8217;t do so hot in this bonspiel either, we ended up going 1-2, which happens.  But that is alright, Kansas City has a pretty nice setup for the off the ice time, They had beer and food free of charge for all of the curlers, which is awesome.  The rink there has two arenas of ice, however only one of them has any houses painted on it.  So they are a 5 sheet club, although only 4 were used.  Kansas City had an issue earlier this year where there sand foundation failed on them and so the rink ended up replacing it with a concrete foundation.  However this was apparently only two months ago, so their ice is still iffy.  There was a single draw of 24 teams, with an assortment of people from all over the US and Canada.</p>
<p>Bonspiel Upsides:</p>
<ul>
<li>Centralized U.S. Location (Don&#8217;t have to drive forever)</li>
<li>Wonderful barbecue provided and available</li>
<li>Nice food the whole time</li>
<li>Beer, a nice wheat one on tap too.</li>
</ul>
<p>My Downsides:</p>
<ul>
<li>Wonky Ice ( mostly due to the brand new rink and awkward temperatures due to summer)</li>
<li>No sponsor hotel this year</li>
<li>Tiny scoreboards</li>
</ul>
<p>I think this is a great bonspiel with wonderful people in the club, and if you don&#8217;t mind the arena ice, which i am sure will be better come next year when they have had longer than a couple weeks to get it nice and even cold and thick.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2010-08-30/kansas-city-barbecue-spiel/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fort Wayne Summer Spiel</title>
		<link>http://www.integgroll.com/2010-08-24/fort-wayne-summer-spiel</link>
		<comments>http://www.integgroll.com/2010-08-24/fort-wayne-summer-spiel#comments</comments>
		<pubDate>Tue, 24 Aug 2010 23:00:05 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Curling]]></category>
		<category><![CDATA[Bonspiel]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=168</guid>
		<description><![CDATA[Fort Wayne, Indiana.  Around 17 hours from Dallas, Texas.  Which is pretty far to drive, especially if your rental car plans go arwy and someone has to drive their own car up there, Thank you once again Steve, you are a beast.  Steve did both drives there and back by him self in one shot, with at  [...]]]></description>
			<content:encoded><![CDATA[<p>Fort Wayne, Indiana.  Around 17 hours from Dallas, Texas.  Which is pretty far to drive, especially if your rental car plans go arwy and someone has to drive their own car up there, Thank you once again Steve, you are a beast.  Steve did both drives there and back by him self in one shot, with at most 5 stops each way.</p>
<p>Onward to the actual Bonspiel though, Fort Wayne&#8217;s curling club is really new, so new that they have only been open for 2 months Which is nothing against them at all, they have a lovely building, which inside they have three rinks, only two of which had ice on them while we were there.  The third rink was setup as a Pepsi sponsored bounce house, which was pretty cool when it was running I just wish I had had time to go bounce around in it.  On the two sheets of ice that they had running they had a total of eight sheets to play on.  The spiel was also split into novice, and advanced draws, which was set in a round-robin followed by a finals format.  They had a wonderful bar that crossed the entire width of the rinks so that you could watch the games from a good warm spot and get yourself some food and more importantly beer.</p>
<p>My team was in the advanced draw, and we had a good fun time, we picked up a whole 4 games which resulted in a 2-2 record.  Not bad for curlers since march, plus a canuck who has been curling forever.</p>
<p>Here are the upsides of this Bonspiel:</p>
<ul>
<li>Advanced/Novice Draws</li>
<li>Huge Draws (20 teams each, 40 total)</li>
<li>Round Robin (more guaranteed games)</li>
<li>Nice Bar (very attentive wait staff)</li>
<li>New Bonspiel (not the same old crew showing up)</li>
<li>Summer Bonspiel (Curl out of season!)</li>
<li>Free Food (And it was very good)</li>
</ul>
<p>And the Downsides:</p>
<ul>
<li>Flying into Fort Wayne direct is expensive</li>
<li><del datetime="2010-08-25T17:47:25+00:00">Current hotels are a mile+ away </del>(should be solved by the next year they have a hotel across the parking lot being built)</li>
<li>Round Robin (more games before the finals)</li>
<li>Two day bonspiel (more back to backs and multi-game days)</li>
<li><del datetime="2010-08-25T17:48:03+00:00">The bar ran out of beer on tap </del>(the bar underestimated the curling draw I think)</li>
<li>Arena Ice (Gigantic Ice Resurfacer)</li>
</ul>
<p>Sure the downsides do outnumber the upsides.  However I do for sure think that this is a place to be when it is going on.</p>
<p>The only suggestions that I would give to the people running this bonspiel are things that they picked up on; Have more beer, Don&#8217;t pick up the hacks in the middle of the day, and get a closer hotel as the official hotel.</p>
<p>If you do go to this bonspiel though, which you should, be sure to &#8220;Obey the bounce guard&#8221;</p>
<p>Updates:  Next year the closer hotel should be open! And more beer should be available!  Also it seems that I may have painted this spiel in a negative light, not my intention at all, these guys did an AMAZING job, especially for only having 2 months to plan and get it all together.  Next year is going to be even better!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2010-08-24/fort-wayne-summer-spiel/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Curling Shoes</title>
		<link>http://www.integgroll.com/2010-07-21/curling-shoes</link>
		<comments>http://www.integgroll.com/2010-07-21/curling-shoes#comments</comments>
		<pubDate>Wed, 21 Jul 2010 23:48:29 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Curling]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=128</guid>
		<description><![CDATA[After much debate and thought of making my own I decided to break down and purchase a pair of shoes.  I shopped for at least a month for which brand I was going to purchase.  I finally decided upon Asham, I love the rotator sole design, thought process, and physics behind the beast.  Plus the  [...]]]></description>
			<content:encoded><![CDATA[<p>After much debate and thought of making my own I decided to break down and purchase a pair of shoes.  I shopped for at least a month for which brand I was going to purchase.  I finally decided upon Asham, I love the rotator sole design, thought process, and physics behind the beast.  Plus the ability to change the heft of my sliders later on didn&#8217;t hurt either.</p>
<p>So I then spent hours deciding which style of shoe I wanted because well, curling shoes as a whole are ugly beyond belief, there are only one or two designs that I like, and they are all womens shoes, so out of luck there.  Finally I picked the Grand Slam Ultra Lites.  And three weeks later they arrived, boo US customs on items over 200 bucks.  They are gorgeous, and I loved the feel when I tried them on at home.</p>
<p>That cannot compare to when I finally put them on and wore them on the ice though.  Oh compared to what I was using before the gripping ability of the gripper discs was like grabbing a well taped hocky stick, as opposed to a grease covered eel.  Then the slider discs were even more amazing, I went with 5/32&#8243; teflon, and does it ever make a difference from the 1/32&#8243; slip on sliders.  I felt like I could go for miles.  Not to mention it was so nice that I didn&#8217;t even put the gripper back on my slider foot until it was time to get off the ice.<br />
Somehow I was able to stay on my feet the whole time too.  So, in closing, Asham rotator shoes, for sure the way to go for me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2010-07-21/curling-shoes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instructional League Week 5</title>
		<link>http://www.integgroll.com/2010-07-10/instructional-league-week-5</link>
		<comments>http://www.integgroll.com/2010-07-10/instructional-league-week-5#comments</comments>
		<pubDate>Sat, 10 Jul 2010 00:53:06 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Curling]]></category>
		<category><![CDATA[Instructional]]></category>
		<category><![CDATA[League]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=98</guid>
		<description><![CDATA[Here we go again, week 5 and things are once again going strong!  Even if we did lose, it was only by 3 this time.  8 &#8211; 5 Sweeps, good curling guys.
The good news at the bar is that we did make it into the bonspiel up in park city, so that will be a good time for sure.  Next weekend is the Texas  [...]]]></description>
			<content:encoded><![CDATA[<p>Here we go again, week 5 and things are once again going strong!  Even if we did lose, it was only by 3 this time.  8 &#8211; 5 Sweeps, good curling guys.</p>
<p>The good news at the bar is that we did make it into the bonspiel up in park city, so that will be a good time for sure.  Next weekend is the Texas Open Bonspiel and I think me Krystal and Steve are going to go and spectate and socialize since we didn&#8217;t get in.  Should be a fun time at the very least.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2010-07-10/instructional-league-week-5/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subdomain issues?</title>
		<link>http://www.integgroll.com/2010-07-06/subdomain-issues</link>
		<comments>http://www.integgroll.com/2010-07-06/subdomain-issues#comments</comments>
		<pubDate>Wed, 07 Jul 2010 00:19:29 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/blog/?p=48</guid>
		<description><![CDATA[Have a website where you are having issues with some subdomains because you have several different environments all sitting on seperate subdomains? (dev.integgroll.com,test.integgroll.com,www.integgroll.com) for example.
But wait while on each of those you have to link to other subdomains and they  [...]]]></description>
			<content:encoded><![CDATA[<p>Have a website where you are having issues with some subdomains because you have several different environments all sitting on seperate subdomains? (dev.integgroll.com,test.integgroll.com,www.integgroll.com) for example.</p>
<p>But wait while on each of those you have to link to other subdomains and they all need to be dependant too!  (railsdev.integgroll.com, itsacardigantest.integgroll.com)</p>
<p>Well I did.  And to solve the issue of having to constantly edit each domain individually I wrote the following script, Enjoy.</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;">$<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.<span class="me1">ready</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span>window.<span class="me1">location</span>.<span class="me1">hostname</span>.<span class="me1">match</span><span class="br0">&#40;</span><span class="co2">/^www\./</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; <span class="kw2">var</span> split_hostname <span class="sy0">=</span> window.<span class="me1">location</span>.<span class="me1">hostname</span>.<span class="me1">split</span><span class="br0">&#40;</span><span class="co2">/\./</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;a.domain_specific&quot;</span><span class="br0">&#41;</span>.<span class="me1">each</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>e<span class="sy0">,</span>i<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> split_link <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">attr</span><span class="br0">&#40;</span><span class="st0">&quot;href&quot;</span><span class="br0">&#41;</span>.<span class="me1">split</span><span class="br0">&#40;</span><span class="co2">/\./</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; split_link<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> <span class="sy0">=</span> split_link<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">replace</span><span class="br0">&#40;</span><span class="co2">/^www/</span><span class="sy0">,</span><span class="st0">&#8221;</span><span class="br0">&#41;</span><span class="sy0">+</span>split_hostname<span class="br0">&#91;</span>0<span class="br0">&#93;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">attr</span><span class="br0">&#40;</span><span class="st0">&quot;href&quot;</span><span class="sy0">,</span>split_link.<span class="me1">join</span><span class="br0">&#40;</span><span class="st0">&#8216;.&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><br />
&nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><span class="br0">&#41;</span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2010-07-06/subdomain-issues/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I comment because I am lazy</title>
		<link>http://www.integgroll.com/2010-07-02/i-comment-because-i-am-lazy</link>
		<comments>http://www.integgroll.com/2010-07-02/i-comment-because-i-am-lazy#comments</comments>
		<pubDate>Sat, 03 Jul 2010 03:00:07 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/blog/?p=61</guid>
		<description><![CDATA[I love comments, I think that everything needs them, everything from a commit in the form of a commit message, to a footnote in a novel telling you what a blunderbuss is if you didn&#8217;t already know, to  describing that next line of code telling you just what is going on.
Let&#8217;s take this for example,  [...]]]></description>
			<content:encoded><![CDATA[<p>I love comments, I think that everything needs them, everything from a commit in the form of a commit message, to a footnote in a novel telling you what a blunderbuss is if you didn&#8217;t already know, to  describing that next line of code telling you just what is going on.</p>
<p>Let&#8217;s take this for example, when I wrote this code I knew exactly what I was writing, exactly how it worked, and the logic behind it all.</p>
<div class="codesnip-container" >
<div class="perl codesnip" style="font-family:monospace;"><span class="co5">$_</span> <span class="sy0">=</span> <span class="re0">$slr</span><span class="sy0">;</span><br />
<a href="http://perldoc.perl.org/functions/chomp.html"><span class="kw3">chomp</span></a><span class="sy0">;</span><br />
<span class="kw1">my</span> <span class="re0">$fts</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span><br />
<span class="kw1">foreach</span> <span class="kw1">my</span> <span class="re0">$r</span> <span class="br0">&#40;</span><a href="http://perldoc.perl.org/functions/split.html"><span class="kw3">split</span></a><span class="br0">&#40;</span><span class="co2">/\n/</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<span class="co5">$_</span> <span class="sy0">=</span> <a href="http://perldoc.perl.org/functions/substr.html"><span class="kw3">substr</span></a><span class="br0">&#40;</span><span class="re0">$r</span><span class="sy0">,</span>4<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co2">s/\/trunk//</span><span class="sy0">;</span><br />
<span class="re0">$fts</span> <span class="sy0">.=</span> <span class="re0">$rd</span><span class="sy0">.</span><span class="co5">$_</span><span class="sy0">.</span><span class="st0">&quot; &quot;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<a href="http://perldoc.perl.org/functions/chop.html"><span class="kw3">chop</span></a> <span class="re0">$fts</span><span class="sy0">;</span></div>
</div>
<p>You are thinking, this is purposely obfuscated perl Integgroll, you can&#8217;t use this as an example.  Fooey!  perl can end up looking like this and we have all written it at some point, it happens.</p>
<p>In 3-4 months I will look at this code again thinking, what the hell is this section here, and why did I do this again!<br />
If I had commented I would know what this block does, and have a much faster idea as to what I am doing here.</p>
<p>First let me point out what I would NOT comment about here.  Nothing confuses me more than pointless comments that just take up extra bytes.</p>
<div class="codesnip-container" >
<div class="perl codesnip" style="font-family:monospace;"><span class="co5">$_</span> <span class="sy0">=</span> <span class="re0">$slr</span><span class="sy0">;</span><br />
<a href="http://perldoc.perl.org/functions/chomp.html"><span class="kw3">chomp</span></a><span class="sy0">;</span> &nbsp;<span class="co1">#&amp;lt;- we ALL know what chomp does with no parameter</span><br />
<span class="kw1">my</span> <span class="re0">$fts</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span><br />
<span class="kw1">foreach</span> <span class="kw1">my</span> <span class="re0">$r</span> <span class="br0">&#40;</span><a href="http://perldoc.perl.org/functions/split.html"><span class="kw3">split</span></a><span class="br0">&#40;</span><span class="co2">/\n/</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <span class="co1">#&amp;lt;- same thing with split as with chomp</span><br />
<span class="co5">$_</span> <span class="sy0">=</span> <a href="http://perldoc.perl.org/functions/substr.html"><span class="kw3">substr</span></a><span class="br0">&#40;</span><span class="re0">$r</span><span class="sy0">,</span>4<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co2">s/\/trunk//</span><span class="sy0">;</span> <span class="co1">#&amp;lt;- yup same here, everyone knows that $_ is being matched</span><br />
<span class="re0">$fts</span> <span class="sy0">.=</span> <span class="re0">$rd</span><span class="sy0">.</span><span class="co5">$_</span><span class="sy0">.</span><span class="st0">&quot; &quot;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<a href="http://perldoc.perl.org/functions/chop.html"><span class="kw3">chop</span></a> <span class="re0">$fts</span><span class="sy0">;</span></div>
</div>
<p>First step, take pride in your work, include a header that says , Hey I did this, this is what it does, and aren&#8217;t I awesome.  For SURE date this, it will let people know around when you wrote it, especially if it is going online somewhere.  Not everyone sees a post date, and sometimes people will post old snippits that they find interesting just because.</p>
<p>Second step here would be to make sure that our variable names make sense while reading them out loud.</p>
<p>Third step I would say is to say why we are doing some things that are goofy.</p>
<div class="codesnip-container" >
<div class="perl codesnip" style="font-family:monospace;"><span class="co1"># Post-Commit hook lines 42-50</span><br />
<span class="co1"># Integgroll (integgroll@integgroll.com)</span><br />
<span class="co1"># June 2 2010</span><br />
<span class="co1">#</span><br />
<span class="co1"># These lines are used to remove /trunk from any file names in the repo</span><br />
<span class="co1"># and to put them all into one space delimited string.</span></p>
<p><span class="co5">$_</span> <span class="sy0">=</span> <span class="re0">$svnlook_results</span><span class="sy0">;</span><br />
<a href="http://perldoc.perl.org/functions/chomp.html"><span class="kw3">chomp</span></a><span class="sy0">;</span><br />
<span class="kw1">my</span> <span class="re0">$files_to_search</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span><br />
<span class="kw1">foreach</span> <span class="kw1">my</span> <span class="re0">$result</span> <span class="br0">&#40;</span><a href="http://perldoc.perl.org/functions/split.html"><span class="kw3">split</span></a><span class="br0">&#40;</span><span class="co2">/\n/</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<span class="co5">$_</span> <span class="sy0">=</span> <a href="http://perldoc.perl.org/functions/substr.html"><span class="kw3">substr</span></a><span class="br0">&#40;</span><span class="re0">$result</span><span class="sy0">,</span>4<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co2">s/\/trunk//</span><span class="sy0">;</span> <span class="co1">#remove trunk from the filename</span><br />
<span class="re0">$files_to_search</span> <span class="sy0">.=</span> <span class="re0">$root_directory</span><span class="sy0">.</span><span class="co5">$_</span><span class="sy0">.</span><span class="st0">&quot; &quot;</span><span class="sy0">;</span> <span class="co1">#append the root directory of the physical location of the files to the filename</span><br />
<span class="br0">&#125;</span><br />
<a href="http://perldoc.perl.org/functions/chop.html"><span class="kw3">chop</span></a> <span class="re0">$files_to_search</span><span class="sy0">;</span> <span class="co1">#kill off that final space left from the loop</span></div>
</div>
<p>This isn&#8217;t the perfect example of commenting.  However I can guarantee that in 3 months or whenever I have to come back and edit this code I can know exactly what it does without having to deskcheck the entire program just to know what is happening.</p>
<p>Everyone is different, just make sure that you do something that will save you time in the future.  Every minute I spend commenting is 5 saved in the future when I go back to the code, especially that code that I <strong><em>know</em></strong> I will never go back to.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2010-07-02/i-comment-because-i-am-lazy/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instructional League Week 4</title>
		<link>http://www.integgroll.com/2010-03-31/instructional-league-week-4</link>
		<comments>http://www.integgroll.com/2010-03-31/instructional-league-week-4#comments</comments>
		<pubDate>Thu, 01 Apr 2010 04:00:49 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Curling]]></category>
		<category><![CDATA[Amazing]]></category>
		<category><![CDATA[Bonspiel]]></category>
		<category><![CDATA[Instructional]]></category>
		<category><![CDATA[League]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=94</guid>
		<description><![CDATA[Week 4, and this week we played the Curley Temples and we had a very close game!  The final score was 6-5 Twinkle Faeries.  Putting us at 3-1 for the season so far, putting us at the top of the league.  This is my second game skipping, and I have to say I much prefer to play third to skipping.  I  [...]]]></description>
			<content:encoded><![CDATA[<p>Week 4, and this week we played the Curley Temples and we had a very close game!  The final score was 6-5 Twinkle Faeries.  Putting us at 3-1 for the season so far, putting us at the top of the league.  This is my second game skipping, and I have to say I much prefer to play third to skipping.  I like to sweep, and when it comes down to it, my strategy just isn&#8217;t what it needs to be for this league.</p>
<p>Up in the bar tonight we found out that we didn&#8217;t make it into the Texas Open Bonspiel, it turns out that we got wait listed.  Oh well looks like they didn&#8217;t save the club spots like we thought they did.  But of course Krystal in her infinite wisdom decided that we should check out <a href="http://dansbonspielblog.blogspot.com/">Dan&#8217;s Curling Bonspiel Blog</a>, and find us a bonspiel to go compete in.  And we found the <a href="http://www.parkcitycurlingclub.com/">Park City Curling Club</a> who was hosting the Utah Rocky Mountain Bonspiel April 30th &#8211; May 2nd, and Krystal grabbed my phone, and called up the club right then and there to find out if they still had any slots open.  Turns out they did, and she got us a slot saved and said she would send in the money the next morning.  Now I can&#8217;t wait until the end of the month!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2010-03-31/instructional-league-week-4/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Texas Open Bonspiel 2010</title>
		<link>http://www.integgroll.com/2010-03-29/texas-open-bonspiel-2010</link>
		<comments>http://www.integgroll.com/2010-03-29/texas-open-bonspiel-2010#comments</comments>
		<pubDate>Mon, 29 Mar 2010 17:00:19 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Curling]]></category>
		<category><![CDATA[Bonspiel]]></category>
		<category><![CDATA[TOB]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/?p=105</guid>
		<description><![CDATA[Houston, Texas.  Some 4 hours to get there, 4 hours to get back.  And if it wasn&#8217;t for my brilliant detour through Pasedina it would have been even longer due to the traffic.  Houston has by far the worst traffic that I have ever seen. Sorry guys, but it is pretty bad, especially compared to  [...]]]></description>
			<content:encoded><![CDATA[<p>Houston, Texas.  Some 4 hours to get there, 4 hours to get back.  And if it wasn&#8217;t for my brilliant detour through Pasedina it would have been even longer due to the traffic.  Houston has by far the worst traffic that I have ever seen. Sorry guys, but it is pretty bad, especially compared to Dallas.  And that doesn&#8217;t even cover the humidity.  That is for a different day.</p>
<p>Queue the Texas Open Bonspiel!  They have a nice bar up there in Houston, lots of seating, a nice large bar area, and of course most importantly, Shiner on tap.</p>
<p>By the time we got there, were checked in, and back to the club DFW&#8217;s first team was already playing.  Which means it was time to get to know people, and cheer on the other DFWians.</p>
<p>Finally it was time for the team that I rode up with to play.  I do not remember how they did, but I do remember making signs to cheer them on, although that could have been the next morning, we were quite busy having a good time, and not watching all of the curling.</p>
<p>As we halted the early morning partying and the day broke enough for the bar to open, we actually started watching and cheering on the games at hand.  We watched a certain Houston team beat most of our teams game after game, it was starting to get demoralizing.  The teams that weren&#8217;t eliminated by the Houston team were eliminated by our own teams, in what we viewed as poor bracketing, which in reality was probably just as random as it should have been, we just felt we were getting the shaft as everyone does.  But on the upside it did come down to a D/FW Team versus the Houston team that was ravaging the bracket.  In the end the D/FW team pulled it out, although the game was a very close one, and both teams did their best.</p>
<p>Overall I have to say, WONDERFUL first bonspiel to go to, even if we did get wait listed, and didn&#8217;t get to play.  Thank you to Ice King for coming out and taking care of the ice!  I would recommend it to anyone, even if you have to deal with the Houston weather the year that you decide to go.  But next year it will be in Dallas.  Texas Open Bonspiel Dallas, Texas 2011 Here we come.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2010-03-29/texas-open-bonspiel-2010/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instructional League Week 3</title>
		<link>http://www.integgroll.com/2010-03-24/instructional-league-week-3</link>
		<comments>http://www.integgroll.com/2010-03-24/instructional-league-week-3#comments</comments>
		<pubDate>Thu, 25 Mar 2010 04:00:08 +0000</pubDate>
		<dc:creator>integgroll</dc:creator>
				<category><![CDATA[Curling]]></category>
		<category><![CDATA[Bonspiel]]></category>
		<category><![CDATA[Instructional]]></category>
		<category><![CDATA[League]]></category>
		<category><![CDATA[TOB]]></category>

		<guid isPermaLink="false">http://www.integgroll.com/blog/?p=45</guid>
		<description><![CDATA[Holy cow the &#8220;Smokin&#8217; Rocks&#8221; well&#8230; smoked us tonight.  7-2 we won one whole end, the first end.  Then all down hill from there.  But hey I was skipping tonight, and I think I learned a few things about the game that I didn&#8217;t know before.  For example a very vague description of how to play  [...]]]></description>
			<content:encoded><![CDATA[<p>Holy cow the &#8220;Smokin&#8217; Rocks&#8221; well&#8230; smoked us tonight.  7-2 we won one whole end, the first end.  Then all down hill from there.  But hey I was skipping tonight, and I think I learned a few things about the game that I didn&#8217;t know before.  For example a very vague description of how to play &#8220;negative ice&#8221;.</p>
<p>Somehow when there is a fall on the ice, stone drifts that way even with the opposite turn, if you change the turn of the stone and have it go with the fall, the stone goes straighter.  I don&#8217;t know exactly how it works, and for sure don&#8217;t understand the physics behind it.  But I know it works, and I know that you need it on our arena ice.</p>
<p>Tonight at the bar after curling interesting things went down as well.  I met a nice Canadian girl who happened to show up to the league that night, Krystal.  And of course there was talk of the Texas Open Bonspiel, that is an open curling tournament in Texas for those of you not in the know.  During the talk about the TOB, somehow a team was put together that consisted of Krystal, Steve, Chris, and myself.  That is right three brand spanking new curlers, and one very seasoned curler going to a bonspiel!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integgroll.com/2010-03-24/instructional-league-week-3/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

