<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1662420418488148695</id><updated>2012-02-16T00:22:09.702-06:00</updated><category term='spelling'/><category term='programming'/><category term='politics'/><title type='text'>Dennis Palmer</title><subtitle type='html'>musings of a code writer</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.dennispalmer.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default'/><link rel='alternate' type='text/html' href='http://blog.dennispalmer.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dennis</name><uri>http://www.blogger.com/profile/03609255085621514906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1662420418488148695.post-3917721767204379998</id><published>2011-06-02T01:19:00.000-05:00</published><updated>2011-06-02T01:19:09.327-05:00</updated><title type='text'>Love your neighbor as yourself</title><content type='html'>In &lt;a href="http://dbible.com/Mark12:28-34"&gt;Mark 12:28-34&lt;/a&gt; Jesus is asked the question, "Of all the commandments, which is the most important?"&lt;br /&gt;&lt;br /&gt;His answer was that the most important commandment is to love God with everything you have. Then He added that the second most important commandment is to "love your neighbor as yourself."&lt;br /&gt;&lt;br /&gt;Most sermons I've heard on this passage talk about the implied need to love ourselves, but I think Jesus was talking about something deeper than whether or not we like ourselves or have a good self image. He took it as a given that we love ourselves. This wasn't something He was commanding us to do. He knew that it was part of our human nature.&lt;br /&gt;&lt;br /&gt;Here's my take on how we love ourselves and how that applies to the commandment to love other people.&lt;br /&gt;&lt;br /&gt;We always judge ourselves by our inner thoughts and intentions, but we judge others by their words, actions and results. Loving others as you love yourself means always trusting that their actions are done with the best of intentions even if what they're saying or doing &lt;span style="font-style: italic;"&gt;feels&lt;/span&gt; really hurtful.&lt;br /&gt;&lt;br /&gt;I look at code I wrote more than a year ago and think, "man, that guy really didn't know what he was doing!" I know that I was doing the best I knew how at the time and it did produce the desired result. I have to remember to give others the same grace that I give my past self.&lt;br /&gt;&lt;br /&gt;I know I have great potential and I'm learning new and better ways of doing things and relating to people all the time. I tend to look at myself through that hopeful filter. Loving others as I love myself means looking at them with unwavering hope for who they can become — believing in their potential and not getting hung up on their past mistakes.&lt;br /&gt;&lt;br /&gt;In general, we are quick to forgive (or justify) ourselves. Even the worst criminals don't think of themselves as bad people. In the opening chapter of his book, &lt;a href="http://www.amazon.com/How-Win-Friends-Influence-People/dp/1439167346"&gt;How To Win Friends and Influence People&lt;/a&gt;, Dale Carnegie tells a few stories to make this point. Here's one of them:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;When Crowley was captured, Police Commissioner E. P. Mulrooney declared that the two-gun desperado was one of the most dangerous criminals ever encountered in the history of New York. "He will kill," said the Commissioner, "at the drop of a feather."&lt;br /&gt;&lt;br /&gt;But how did "Two Gun" Crowley regard himself? We know because while the police were firing into his apartment, he wrote a letter addressed "To whom it may concern." And, as he wrote, the blood flowing from his wounds left a crimson trail on the paper. In his letter Crowley said: "Under my coat is a weary heart, but a kind one — one that would do nobody any harm."&lt;br /&gt;&lt;br /&gt;A short time before this, Crowley had been having a necking party with his girlfriend on a country road out on Long Island. Suddenly a policeman walked up to the car and said: "Let me see your license."&lt;br /&gt;&lt;br /&gt;Without saying a word, Crowley drew his gun and cut the policeman down with a shower of lead. As the dying officer fell, Crowley leaped out of the car, grabbed the officer's revolver, and fired another bullet into the prostrate body. And that was the killer who said: "Under my coat is a weary heart, but a kind one — one that would do nobody any harm."&lt;br /&gt;&lt;br /&gt;Crowley was sentenced to the electric chair. When he arrived at the death house in Sing Sing, did he say, "This is what I get for killing people"? No, he said: "This is what I get for defending myself."&lt;br /&gt;&lt;br /&gt;The point of the story is this: "Two Gun" Crowley didn't blame himself for anything.&lt;/blockquote&gt;&lt;br /&gt;Loving others as ourselves means looking at those same people and not thinking of them as bad people, but instead hoping and praying that they find grace and mercy. Remember to "first take the plank out of your own eye, and then you will see clearly to remove the speck from your brother's eye." &lt;a href="http://dbible.com/Matt7:3-5"&gt;Matthew 7:3-5&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dbible.com/Prov10:12"&gt;Proverbs 10:12&lt;/a&gt; says, "Hatred stirs up strife, but love covers all sins." If we ever make a mistake, we do everything we can to quickly cover it up and make sure nobody sees it. How often do we work that hard to cover up someone else's mistakes?&lt;br /&gt;&lt;br /&gt;Loving others this way is not easy — that's why it has to be a commandment. We naturally love ourselves, but we can only love others as we love ourselves with God's help — that's why it's the second commandment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662420418488148695-3917721767204379998?l=blog.dennispalmer.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dennispalmer.com/feeds/3917721767204379998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.dennispalmer.com/2011/06/love-your-neighbor-as-yourself.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/3917721767204379998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/3917721767204379998'/><link rel='alternate' type='text/html' href='http://blog.dennispalmer.com/2011/06/love-your-neighbor-as-yourself.html' title='Love your neighbor as yourself'/><author><name>Dennis</name><uri>http://www.blogger.com/profile/03609255085621514906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662420418488148695.post-960907258721924850</id><published>2011-03-22T00:21:00.000-05:00</published><updated>2011-03-22T00:22:37.533-05:00</updated><title type='text'>Free often leads to entitlement</title><content type='html'>I just read &lt;a href="http://brooksreview.net/2011/03/fragility-free/"&gt;Fragility of Free&lt;/a&gt; and wanted to share my own experience with offering a service for free. Back in the mid 90's, I created a system that gave people in the Greater Seattle area free local long distance calls. It was a great experience and taught me that once you start giving people something for free, they will start to think of it as something they'll always have a right to receive.&lt;br /&gt;&lt;br /&gt;We'll need to start with a bit of a history lesson.&lt;br /&gt;&lt;br /&gt;Long before we all had free nationwide long distance on our cell phones, land-line phone companies charged a lot for local long distance calls. In the Greater Seattle area it was more expensive to call from Renton to Redmond than it was to call New York! However, if you were inside the city limits of Seattle, then you could call to/from both of those locations as a free local call. This was true for most of the Seattle suburbs within King County.&lt;br /&gt;&lt;br /&gt;Also, before the time of &lt;a href="http://en.wikipedia.org/wiki/Private_branch_exchange#Private_branch_exchange"&gt;PBX&lt;/a&gt; business phone systems, there was a type of phone line known as &lt;a href="http://en.wikipedia.org/wiki/Centrex"&gt;Centrex&lt;/a&gt;, where all the switching was done at the central office. In order to transfer a call, you would do a &lt;a href="http://en.wikipedia.org/wiki/Hook_flash"&gt;hook flash&lt;/a&gt; and then dial the destination phone number.&lt;br /&gt;&lt;br /&gt;At the time, I was writing code in Delphi 1.0 on 386 hardware and Windows 3.11. We knew that we could combine a Seattle centrex phone line with hook flash transfer to offer people in the suburbs free local calls. At the time, several so-called experts told us that in order to do that, we would need to use Windows 95 and a voice card that cost about $1000.&lt;br /&gt;&lt;br /&gt;However, we were convinced that we could get it to run on a 386 and a $27 voice modem. It was late one Friday night (maybe even early Saturday morning) when I finally figured out that the bang (!) character would cause the modem to hook flash and I successfully transfered a call. That remains one of my favorite coding breakthrough moments of all time.&lt;br /&gt;&lt;br /&gt;My partner's grandmother lived in an area where she could get phone lines with a Seattle prefix, so we order some Centrex lines and put 3 computers in a closet in her spare bedroom and started promoting the service.&lt;br /&gt;&lt;br /&gt;When someone called the Seattle phone number, one of the 3 computers would answer the call and play a 30 second ad. Then it would prompt for an access code and the number they wanted to call and would transfer the call. As soon as a call was transfered, that phone line and computer were free to take the next call. At the peak usage, we were processing about 40,000 calls per month. We had a log of every number that was called through the system, but I don't think we ever did anything with those numbers.&lt;br /&gt;&lt;br /&gt;We knew the phone companies wouldn't be happy about this, but we did want to make sure what we were doing was legal. Being young and without the budget to hire a lawyer, the best we could determine was that it was legal as long as we never charged anyone any money to use it.&lt;br /&gt;&lt;br /&gt;We had advertisements built into the system from the beginning, but we also thought it would be illegal for us to sell ads to anyone else, so we just made our own ads for our other business.&lt;br /&gt;&lt;br /&gt;People could get an access code to the system by visiting our website and passing a 10 question quiz. Answers to all the quiz questions were within the text of our website, so this was a way to make sure people read our site before we gave them free phone calls.&lt;br /&gt;&lt;br /&gt;People really loved our service. We had our domain name painted on the side and back of our van and one time while stopped at a red light, the lady from the car behind us got out of her car and ran up to tell us how much she loved our free calling network! We also had jackets with our domain name on them. One time at a restaurant we met some guys that operated a &lt;a href="http://en.wikipedia.org/wiki/Bulletin_board_system"&gt;BBS&lt;/a&gt; who said we were saving their users a lot of money. We also got our picture in the local paper along with a great article talking about what we were doing.&lt;br /&gt;&lt;br /&gt;Needless to say, this whole thing was a very fun experience! However, we eventually decided that it wasn't worth the cost to keep it going, so we shut it down. I think if we could have charged a subscription fee or even could have sold advertising, it would have been a profitable venture. But the phone company had already shut off the phone lines once and we weren't sure how much longer we'd be able to keep it going anyway.&lt;br /&gt;&lt;br /&gt;Much to our surprise, a short while later, we received a notice from the Better Business Bureau that someone had filed a complaint against us for shutting down our free service! Once we explained to the BBB rep that it had been completely free and that we never made any statements about how long it would be available, they closed out the complaint, but it has always made me think twice before ever offering something for free that cost me money.&lt;br /&gt;&lt;br /&gt;As a Gmail, Blogger.com and Twitter user, I am thankful that these free services exist, but I also understand that if they change the deal or try to force advertising into the platform, they're just doing what they need to do in order to continue providing something for free that does actually cost them a lot of money to run.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662420418488148695-960907258721924850?l=blog.dennispalmer.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dennispalmer.com/feeds/960907258721924850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.dennispalmer.com/2011/03/free-often-leads-to-entitlement.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/960907258721924850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/960907258721924850'/><link rel='alternate' type='text/html' href='http://blog.dennispalmer.com/2011/03/free-often-leads-to-entitlement.html' title='Free often leads to entitlement'/><author><name>Dennis</name><uri>http://www.blogger.com/profile/03609255085621514906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662420418488148695.post-2062978102896460038</id><published>2011-03-15T12:43:00.000-05:00</published><updated>2011-03-15T12:45:41.796-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>"Save Game" for programmers</title><content type='html'>If you've ever played an adventure or saga type of video game, you're familiar with the option of saving your game. Just before a really difficult section or before facing a challenging level boss, you hit save so that if (when really) you died you could try again from that saved point.&lt;br /&gt;&lt;br /&gt;Have you ever wished you could do that in real life? Just before embarking on some tough challenge you could hit save and easily get back to that point to try again until you were successful.&lt;br /&gt;&lt;br /&gt;Well, if you're a computer programmer, that's exactly what you can do with version control! I've heard a few programmers ponder if it's worth it or not to use a version control system when working on a solo (or hobby) project, but I think it's always useful. Maybe even more so when working on a project that you only touch occasionally in your spare time.&lt;br /&gt;&lt;br /&gt;Also, if you haven't checked out a distributed version control system (DVCS) such as &lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt; or &lt;a href="http://mercurial.selenic.com/"&gt;Mercurial&lt;/a&gt;, then you're working on an older generation of the technology. The lack of file locks and the ease of branching and merging make these systems a joy to work with.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662420418488148695-2062978102896460038?l=blog.dennispalmer.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dennispalmer.com/feeds/2062978102896460038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.dennispalmer.com/2011/03/save-game-for-programmers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/2062978102896460038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/2062978102896460038'/><link rel='alternate' type='text/html' href='http://blog.dennispalmer.com/2011/03/save-game-for-programmers.html' title='&quot;Save Game&quot; for programmers'/><author><name>Dennis</name><uri>http://www.blogger.com/profile/03609255085621514906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662420418488148695.post-5746300229295543255</id><published>2010-09-29T12:29:00.004-05:00</published><updated>2011-03-15T13:22:11.890-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Term limits is not the answer</title><content type='html'>I originally wrote this as part of a facebook comment thread &lt;a href="http://www.facebook.com/#!/curt.stockwell?v=wall&amp;story_fbid=144008568951455&amp;ref=mf"&gt;here&lt;/a&gt;, but wanted to put it in a blog post since it's something I feel strongly about. I'm amazed at how great a job our founding fathers did at forming our government and how it works. However, I don't think they envisioned a time when the majority of people either didn't vote or didn't really pay attention to whom they were voting for and why.&lt;br /&gt;&lt;br /&gt;I've been hearing a lot of people pushing for term limits in recent years, but I don't think that's the best answer.&lt;br /&gt;&lt;br /&gt;An educated public that actually votes is the answer. Term limits just makes more people apathetic -- doesn't matter who gets elected, they'll be gone soon. &lt;br /&gt;&lt;br /&gt;Term limits does not prevent the phenomenon of career politicians. If people continue to vote for them, they'll find offices to run for. Let's say state legislatures allowed a total of 12 years, state Governorship was limited to 2 terms, Senate was 2 terms and Congress was 6 terms, then one person could be in office for 40 years, which I would considered a career. And then if they managed to get VP for another 8 years and President for 8 more years, that's a total of 56 years! And that's not counting any time as a Mayor or city council person. Term limits simply does not solve the problem. If they're not a good representative and the educated voting public keeps them accountable, then they might be in office for 2 or 4 years, if at all. That's the only logical solution. Pushing for term limits is easy, but if you stop and think about it, it just doesn't make sense.&lt;br /&gt;&lt;br /&gt;Why wait for term limits to get rid of a bad politician when they can be gone at the next election?!?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662420418488148695-5746300229295543255?l=blog.dennispalmer.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dennispalmer.com/feeds/5746300229295543255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.dennispalmer.com/2010/09/term-limits-is-not-answer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/5746300229295543255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/5746300229295543255'/><link rel='alternate' type='text/html' href='http://blog.dennispalmer.com/2010/09/term-limits-is-not-answer.html' title='Term limits is not the answer'/><author><name>Dennis</name><uri>http://www.blogger.com/profile/03609255085621514906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662420418488148695.post-2189083421957708319</id><published>2010-06-15T11:23:00.004-05:00</published><updated>2010-06-15T13:34:08.041-05:00</updated><title type='text'>Domain Specific Short URLs</title><content type='html'>This is an expansion of what I initially posted as a comment on &lt;a href="http://twitter.com/edbott"&gt;Ed Bott's&lt;/a&gt; blog post &lt;a href="http://www.edbott.com/weblog/?p=2891"&gt;Be careful what you click! The perils of URL shorteners&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I think we’ll start seeing moderately longer urls that actually give some info about what they are linking to.&lt;br /&gt;&lt;br /&gt;The next trend is towards sites using their own domain specific short urls.&lt;br /&gt;&lt;br /&gt;When my mother-in-law forwards me news stories from USA Today, the links are in the form &lt;a href="http://usat.me?38738442"&gt;http://usat.me?38738442&lt;/a&gt; (If I was USA Today, I would make that even shorter by using letters.)&lt;br /&gt;&lt;br /&gt;As Ed points out, ZDNet does have their own short doman name -- zd.net. YouTube has youtu.be, but I haven’t seen anyone actually use it. These new domain specific short urls are fighting an uphill battle because they depend on the person sharing the link to know about them and use them. General url shortening services like &lt;a href="http://bit.ly"&gt;bit.ly&lt;/a&gt; or &lt;a href="http://is.gd"&gt;is.gd&lt;/a&gt; are easier to use because they work for any link.&lt;br /&gt;&lt;br /&gt;I created a url shortening system that only works for Bible references at &lt;a href="http://dbible.com"&gt;dbible.com&lt;/a&gt;. Instead of a randomly generated url, you can see the scripture reference in the link (as in &lt;a href="http://dbible.com/Jn3:16"&gt;dbible.com/Jn3:16&lt;/a&gt;). So even if someone doesn't click the link, they'll know the verse (or verses or chapter) that you're referring to. The other benefit of this system is that you don't need to visit dbible.com or use an API to compose these short urls. Just append the reference to "dbible.com/" and post your link.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662420418488148695-2189083421957708319?l=blog.dennispalmer.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dennispalmer.com/feeds/2189083421957708319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.dennispalmer.com/2010/06/domain-specific-short-urls.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/2189083421957708319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/2189083421957708319'/><link rel='alternate' type='text/html' href='http://blog.dennispalmer.com/2010/06/domain-specific-short-urls.html' title='Domain Specific Short URLs'/><author><name>Dennis</name><uri>http://www.blogger.com/profile/03609255085621514906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662420418488148695.post-7167436153361937912</id><published>2010-05-23T13:58:00.002-05:00</published><updated>2010-05-23T14:18:29.827-05:00</updated><title type='text'>Why I do what I do</title><content type='html'>I've wanted to write about this for a while, but this &lt;a href="http://twitter.com/MarkLeonWatson/status/14195009984" target="_blank"&gt;tweet&lt;/a&gt; and the responses convinced me that I should do it now.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://twitter.com/MarkLeonWatson/status/14195009984" target="_blank"&gt;&lt;img src="http://3.bp.blogspot.com/_SV0iQ2-h48U/S_l72zGMyEI/AAAAAAAAAJI/vJ_NPKNYM-I/s400/mlwCareerTweet.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;I first taught myself how to write BASIC on a Texas Instruments &lt;a href="http://en.wikipedia.org/wiki/TI-99/4A" target="_blank"&gt;TI 99/4A&lt;/a&gt; when I was in 5th grade. All I wanted to do was make video games. (Gaming is the gateway drug to programming for many young people, but that’s a different story.) I had always liked making things and even had a box of junk that I called my "Invention Box."&lt;br /&gt;&lt;br /&gt;During junior high and high school I was sure I was supposed to be a missionary and travel to other countries to preach the Gospel. The only other computer programming experience I got in those years was a high school class on the &lt;a href="http://en.wikipedia.org/wiki/Apple_IIe" target="_blank"&gt;Apple IIe&lt;/a&gt;. Everyone who had ever taken that class got an A and we played video games 90% of the time.&lt;br /&gt;&lt;br /&gt;During my freshman year of college, as a missions major, some friends talked me into joining Amway. Now Amway (later renamed Quixtar, and now back to Amway) is a great company and I learned a lot in my 12 years as a Distributor (currently called an Independent Business Owner), but I never made any money. I truly believed that the business would work for anyone who followed the 7 (later 8, then 9) CORE steps. I spent a lot of money attending seminars and conferences and buying tapes and CDs hoping to get motivated to go "show the plan". The results that were promised sounded great: Ten to fifteen hours a week of work to make millions of dollars a year and retire on a beach within 5 years! Freedom! So, after 2 years of college, I dropped out. Who needs a degree when you’re going to be a millionaire in a few years, right?  However, the problem was that it was a distraction. It was me trying to be something that I'm not.&lt;br /&gt;&lt;br /&gt;A year later, I decided to go back to school because a friend of mine raved about how much fun he was having. I picked Computer Science as a major thinking back to my experience in fifth grade, but had no intention of making programming a career. It was during those classes that I realized that I had a special ability for writing code. I loved the mainframe assembly language class, but everyone else really struggled with it. This was something that I was really good at!&lt;br /&gt;&lt;br /&gt;Obviously, I didn't have to listen to any motivational talks to write code. I actually enjoyed it so much that I spent one holiday weekend learning &lt;a href="http://en.wikipedia.org/wiki/QuickBASIC" target="_blank"&gt;QuickBASIC&lt;/a&gt; just for the fun of it and came up with a program that moved various colored squares around the screen bouncing off each other. I stayed up late (or even all night) writing code! My childhood "Invention Box" had morphed into a PC. This is what I was born to do!&lt;br /&gt;&lt;br /&gt;Unfortunately I spent the next 10 years treating programming as something that I was just doing temporarily until my millions came in. I was a good programmer and people paid me well for my skills. As for being a Distributor, I wasn't good at it and I wasn't making any money. The choice finally became clear:  If I was ever going to make millions, I had a much better shot as a software developer than I did anywhere else!&lt;br /&gt;&lt;br /&gt;Part of the turning point for me was getting married. I had to get practical and focus on the thing that was making money and was getting results instead of continuing to strive for something that wasn't working.&lt;br /&gt;&lt;br /&gt;So now that I was finally ready to make a career of computer programming I decided to become the best programmer I could be. I joined a user group, started listening to podcasts and am now speaking at user groups and code camps.&lt;br /&gt;&lt;br /&gt;I like who I am now. I'm not constantly beating myself up for not prospecting random people I meet. I enjoy meeting people for who they are instead of analyzing why they'd want to join my business.&lt;br /&gt;&lt;br /&gt;I don't think it's a random coincidence that I was born at this time and have these skills. I can now clearly see that this is what God created me to do and I can't imagine doing anything else. I often wonder what I would have done if I had been born back in the 19th century, and to be honest, I really have no idea.&lt;br /&gt;&lt;br /&gt;We get our English word "talent" meaning "gift or skill" from &lt;a href="http://www.biblegateway.com/passage/?search=matthew%2025:14-25:30&amp;version=NKJV" target="_blank"&gt;the story Jesus told&lt;/a&gt; about a man that left some money with 3 of his servants. A &lt;a href="http://en.wikipedia.org/wiki/Talent_%28measurement%29" target="_blank"&gt;"talent"&lt;/a&gt; was a Roman unit of mass used as a monetary value similar to the way "pound" is used in the UK. The moral of the story is that if you take what you are given and invest it and make it grow you will be rewarded, but if you bury it in the back yard you will be punished. My focus now is to invest the programming talent I was given and make it grow and produce as much as I can.&lt;br /&gt;&lt;br /&gt;It's not hard to know what one is supposed to do in life. Just take a look at what you're good at and how that can be used to improve people's lives. Invest what you've been given and become the best at it you can be. My &lt;a href="http://rabbidaniellapin.com" target="_blank"&gt;rabbi, Daniel Lapin&lt;/a&gt;, says that profit is God's way of rewarding you for taking care of His other children.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662420418488148695-7167436153361937912?l=blog.dennispalmer.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dennispalmer.com/feeds/7167436153361937912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.dennispalmer.com/2010/05/why-i-do-what-i-do.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/7167436153361937912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/7167436153361937912'/><link rel='alternate' type='text/html' href='http://blog.dennispalmer.com/2010/05/why-i-do-what-i-do.html' title='Why I do what I do'/><author><name>Dennis</name><uri>http://www.blogger.com/profile/03609255085621514906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_SV0iQ2-h48U/S_l72zGMyEI/AAAAAAAAAJI/vJ_NPKNYM-I/s72-c/mlwCareerTweet.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662420418488148695.post-3786385388139065295</id><published>2010-05-16T11:46:00.003-05:00</published><updated>2010-05-18T11:26:57.078-05:00</updated><title type='text'>LINQ to XML and XML Literals in VB.NET</title><content type='html'>Last week I completed a road trip tour of user groups in Northwest Arkansas. I'll write more about that great experience in another post. Thanks to everyone who attended and gave positive feedback!&lt;br /&gt;&lt;br /&gt;Here are the links to things I referred to in my talks.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://msdn.microsoft.com/en-us/vbasic/bb466226.aspx#linq"&gt;"How Do I" video series on LINQ in VB.NET by Beth Massi&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://dev.twitter.com/doc/get/favorites"&gt;Twitter Favorites API&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://wix.sourceforge.net/"&gt;Windows Installer XML (WiX)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://vbmvc.codeplex.com/"&gt;ASP.NET MVC View Engine using VB.NET XML Literals&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please vote for these items on Microsoft Connect:&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a target="_blank" href="https://connect.microsoft.com/VisualStudio/feedback/details/490740/add-intellisense-for-xml-literals-based-on-imported-xmlns"&gt;https://connect.microsoft.com/VisualStudio/feedback/details/490740/add-intellisense-for-xml-literals-based-on-imported-xmlns&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a target="_blank" href="https://connect.microsoft.com/VisualStudio/feedback/details/489402/remove-compiler-error-xml-entity-references-are-not-supported-in-vb-xml-literals"&gt;https://connect.microsoft.com/VisualStudio/feedback/details/489402/remove-compiler-error-xml-entity-references-are-not-supported-in-vb-xml-literals&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662420418488148695-3786385388139065295?l=blog.dennispalmer.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dennispalmer.com/feeds/3786385388139065295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.dennispalmer.com/2010/05/linq-to-xml-and-xml-literals-in-vbnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/3786385388139065295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/3786385388139065295'/><link rel='alternate' type='text/html' href='http://blog.dennispalmer.com/2010/05/linq-to-xml-and-xml-literals-in-vbnet.html' title='LINQ to XML and XML Literals in VB.NET'/><author><name>Dennis</name><uri>http://www.blogger.com/profile/03609255085621514906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662420418488148695.post-6531990092550571077</id><published>2009-11-03T20:28:00.000-06:00</published><updated>2009-11-03T20:35:36.433-06:00</updated><title type='text'>Inland Empire .NET User Group</title><content type='html'>Three months ago I moved from Temecula, California to Wylie, Texas, which is in the Dallas area.  I took some time recently to write down my thoughts reflecting on my time as a member of the &lt;a href="http://iedotnetug.org"&gt;Inland Empire .NET User Group&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Joining the Inland Empire .NET User Group was probably the best career decision I've ever made. The exposure I got each month to new techniques and technologies pushed me ahead by leaps and bounds. I remember several times heading up to a meeting (it was about an hour drive) thinking that I probably wouldn't have much use for what was being discussed that evening. Then after being inspired at the meeting, I would drive home thinking of all the ways that I could benefit from what I just learned.&lt;br /&gt;&lt;br /&gt;Stephen Rose's talk about virtualization is probably the best example of that. I had just rebuilt my machine and that afternoon had carried another machine up to my desk with the intention of installing some software that I didn't want on my main development machine. Now I do 100% of my development on virtual machines. Using base images with Office and Visual Studio installed means I very rarely need to re-install those tools and I haven't installed (or reinstalled) XP or Vista on a new machine in months! I just grab the virtual machine that is closest to what I need next and copy and paste it to a new vm.&lt;br /&gt;&lt;br /&gt;The other talk that was very inspiring was Matt Penner's discussion of keeping the passion in what you do. After that talk I asked him what podcasts he listens to and then I subscribed to &lt;a href="http://hanselminutes.com"&gt;Hanselminutes&lt;/a&gt; and &lt;a href="http://dotnetrocks.com"&gt;.NET Rocks!&lt;/a&gt; Between those podcasts (and a few more that I've added since then) and the user group meetings I can almost feel my brain expanding!&lt;br /&gt;&lt;br /&gt;The first meeting I attended was the Most Valuable Member (MVM) award event for 2007-2008. I love the challenge of a competition, so I decided that night that I would go for it. Getting the MVM points was a huge motivator that prompted me to get on the calendar and give a talk myself. Presenting to the group was very fun and I got a ton of great feedback from members of the group. After that I gave basically the same talk at the &lt;a href="http://www.socalcodecamp.com"&gt;SoCal CodeCamp&lt;/a&gt; in San Diego, but refined it a bit. One of the user group members (I've forgotten his name) was at my CodeCamp talk and told me that I made good improvements on it. I think every user group should do a MVM award program!&lt;br /&gt;&lt;br /&gt;The last meeting I attended before moving to Texas was the MVM award event for 2008-2009 where I was recognized as the 2nd Runner Up winner! I was blown away by how much stuff was part of the prize package. I still haven’t installed all the software I won and haven’t even ordered all the free books of my choice from the 3 different publishers!&lt;br /&gt;&lt;br /&gt;I am very thankful for all the hard work &lt;a href="http://www.duringlunch.com"&gt;James Johnson&lt;/a&gt; does in putting together and coordinating the user group. It has had a huge impact on me as a developer and was a great way to gain exposure to the larger developer community.&lt;br /&gt;&lt;br /&gt;I have attended a few other user groups and none of them even come close to the quantity and quality of the sponsor provided giveaways each month -- let alone the MVM prizes! I know that is due to James' diligence in contacting those sponsors and telling them what a great group of developers there is in the Inland Empire.&lt;br /&gt;&lt;br /&gt;I miss the friends I made there and I hope that the next time I'm in Southern California it can be around the 2nd Tuesday of the month so I can go back and visit the group.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662420418488148695-6531990092550571077?l=blog.dennispalmer.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dennispalmer.com/feeds/6531990092550571077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.dennispalmer.com/2009/11/inland-empire-net-user-group.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/6531990092550571077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/6531990092550571077'/><link rel='alternate' type='text/html' href='http://blog.dennispalmer.com/2009/11/inland-empire-net-user-group.html' title='Inland Empire .NET User Group'/><author><name>Dennis</name><uri>http://www.blogger.com/profile/03609255085621514906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662420418488148695.post-6086988331601687889</id><published>2009-08-20T10:11:00.000-05:00</published><updated>2009-08-20T10:16:59.809-05:00</updated><title type='text'>Twitter URL shortening by convention</title><content type='html'>To date all the fuss over the various URL shortening services has been about how to get the shortest URL after "http://", but what about shortening that part? We could apply some convention over configuration and declare that a single / was sufficient to decorate a link in a tweet. This would work exactly the same way that # for hash tag links and @ for username links work currently. Instead of http://bit.ly/xxxx or http://tinyurl.com/xxxx, lets just all start using /bit.ly/xxxx and /tinyurl.com/xxxx!&lt;br /&gt;&lt;br /&gt;Once a few of the major Twitter apps start recognizing this convention, it will really work great!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662420418488148695-6086988331601687889?l=blog.dennispalmer.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dennispalmer.com/feeds/6086988331601687889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.dennispalmer.com/2009/08/twitter-url-shortening-by-convention.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/6086988331601687889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/6086988331601687889'/><link rel='alternate' type='text/html' href='http://blog.dennispalmer.com/2009/08/twitter-url-shortening-by-convention.html' title='Twitter URL shortening by convention'/><author><name>Dennis</name><uri>http://www.blogger.com/profile/03609255085621514906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662420418488148695.post-2410813024859415429</id><published>2009-03-11T15:24:00.000-05:00</published><updated>2009-06-19T11:20:31.540-05:00</updated><title type='text'>Bug in VB.NET LINQ to XML</title><content type='html'>Here is the simple code to reproduce the bug I found in VB.NET LINQ to XML using Visual Studio 2008.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: vbnet"&gt;&lt;br /&gt;Public Class Class1&lt;br /&gt;&lt;br /&gt;Private MyValue As String&lt;br /&gt;Public Property SomeXMLValue() As String&lt;br /&gt;    Get&lt;br /&gt;        Return &amp;lt;test&gt;&lt;br /&gt;                 &amp;lt;child&gt;&amp;lt;%= MyValue %&gt;&amp;lt;/child&gt;&lt;br /&gt;               &amp;lt;/test&gt;.ToString&lt;br /&gt;    End Get&lt;br /&gt;    Set(ByVal value As String)&lt;br /&gt;        Dim ValueXElem = XElement.Parse(value)&lt;br /&gt;        Dim XQuery = From child In ValueXElem...&amp;lt;child&gt; _&lt;br /&gt;                     Select child.Value&lt;br /&gt;&lt;br /&gt;        ' Code that uses XQuery here&lt;br /&gt;&lt;br /&gt;    End Set&lt;br /&gt;End Property&lt;br /&gt;&lt;br /&gt;End Class&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I'm expecting the type of XQuery to be inferred as IEnumerable(Of String)&lt;br /&gt;The Value property of child on line 13 has a blue squiggly and the compiler gives the following error:&lt;br /&gt;&lt;blockquote&gt;Range variable 'Value' hides a variable in an enclosing block or a range variable previously defined in the query expression.&lt;/blockquote&gt;In order to get this to compile I must rename the variable on line 10 to something other than 'value'.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update 3/17: The Visual Studio Team updated my bug report as Resolved (By Design). They suggested changing line 13 to "Select someOtherName = child.Value". Has to do with the "range variable" named Value, which is created by the query. Apparently there are a few bits of the internals of LINQ queries that I don't really get yet. I think this falls into the category of things I can still use even thought I don't fully understand how they work behind the scenes.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662420418488148695-2410813024859415429?l=blog.dennispalmer.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dennispalmer.com/feeds/2410813024859415429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.dennispalmer.com/2009/03/bug-in-vbnet-linq-to-xml.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/2410813024859415429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/2410813024859415429'/><link rel='alternate' type='text/html' href='http://blog.dennispalmer.com/2009/03/bug-in-vbnet-linq-to-xml.html' title='Bug in VB.NET LINQ to XML'/><author><name>Dennis</name><uri>http://www.blogger.com/profile/03609255085621514906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662420418488148695.post-7013007166343916044</id><published>2009-01-26T14:59:00.000-06:00</published><updated>2009-01-26T15:00:51.305-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spelling'/><title type='text'>I write code</title><content type='html'>&lt;p&gt; Several years ago I had a t-shirt with this text:  &lt;/p&gt; &lt;blockquote&gt;  &lt;p&gt;  &lt;strike&gt;I am a programor&lt;/strike&gt;&lt;br /&gt; &lt;strike&gt;I am a programmor&lt;/strike&gt;&lt;br /&gt; &lt;strike&gt;I'm a progamer&lt;/strike&gt;&lt;br /&gt; I write code   &lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt; To this day I have to look up the proper spelling of the word programmer. Now I see that &lt;a href="http://dictionary.reference.com/browse/programmer" target="_blank"&gt;dictionary.com&lt;/a&gt; says that programer is an acceptable spelling. I wonder if that's from all of us who couldn't remember to spell it with 2 m's.  &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662420418488148695-7013007166343916044?l=blog.dennispalmer.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dennispalmer.com/feeds/7013007166343916044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.dennispalmer.com/2009/01/i-write-code.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/7013007166343916044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662420418488148695/posts/default/7013007166343916044'/><link rel='alternate' type='text/html' href='http://blog.dennispalmer.com/2009/01/i-write-code.html' title='I write code'/><author><name>Dennis</name><uri>http://www.blogger.com/profile/03609255085621514906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
