<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">

  <title><![CDATA[jdonley83.com]]></title>
  
  <link href="http://jdonley83.com/" />
  <updated>2013-04-27T21:54:24-07:00</updated>
  <id>http://jdonley83.com/</id>
  <author>
    <name><![CDATA[Joe Donley]]></name>
    <email><![CDATA[joe@jdonley83.com]]></email>
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Jdonley83" /><feedburner:info uri="jdonley83" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <title type="html"><![CDATA[An Update 2013]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/x4M9ijJ5BkM/" />
    <updated>2013-02-17T21:41:00-08:00</updated>
    <id>http://jdonley83.com/blog/an-update-2013</id>
    <content type="html">&lt;p&gt;Life is good. My son Alex is now 4 years old and healthy. I&amp;#8217;ve now been married for over eight and a half years and I&amp;#8217;m coming up on 4 years as a programmer for &lt;a href="http://elementfusion.com"&gt;Element Fusion&lt;/a&gt;. I&amp;#8217;ve been working on various projects at work. It&amp;#8217;s nice being able to work on something different all of the time; it is difficult to get bored in my job.&lt;/p&gt;

&lt;p&gt;On evenings and weekends I occasionally work for a startup called &lt;a href="http://shoppinpal.com/"&gt;ShoppinPal&lt;/a&gt;. It is definitely interesting work.&lt;/p&gt;

&lt;p&gt;In less than two weeks my family and I will be moving to Seattle. This isn&amp;#8217;t for work reasons; we just like it out there. The weather and all of the activity is very attractive. I will be continuing to work for Element Fusion remotely; which will be a fun experiment.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;I&amp;#8217;ve been getting the itch to work on some smaller side projects outside of work and ShoppinPal. Recently I&amp;#8217;ve been working on a tool for a coworker of mine who works in the support department. &lt;a href="https://github.com/jdonley83/snippet-quick-copy"&gt;snippet-quick-copy&lt;/a&gt; This is a fairly simple tool that allows him to have a large number of snippets ready to be copied to the clipboard with a quick click and a couple key presses. I&amp;#8217;ve been adding features to it as he requests them. Soon, I plan to add a snippet search feature to it as well.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve also been getting interested in learning about game programming in JavaScript. Specifically I&amp;#8217;m interested in music based games in the browser. This area still seems to be a bit cutting edge so a lot of what I want to do may not be possible yet.&lt;/p&gt;

&lt;p&gt;As always, feel free to &lt;a href="http://jdonley83.com/contact/"&gt;contact me&lt;/a&gt; and introduce yourself. I&amp;#8217;m always up for making new connections.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/x4M9ijJ5BkM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/an-update-2013/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Being Geek - Book Review]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/R94o4DBHq1s/" />
    <updated>2012-06-28T12:00:00-07:00</updated>
    <id>http://jdonley83.com/blog/being-geek-book-review</id>
    <content type="html">&lt;p&gt;So, I just got done reading &lt;u&gt;Being Geek&lt;/u&gt; by Michael Lopp. It was a great read full of information that anyone working in the programming industry should know. It has gems such as how to deal with different personality types you find in the work place to tips on how to interview well and even tricks on making better presentations.&lt;/p&gt;


&lt;p&gt;Definitely check out this book. &lt;/p&gt;


&lt;p&gt;&lt;a href="http://www.indiebound.org/book/9780596155407?aff=jdonley83"&gt;&lt;img  style="border: 1px solid #000" src="http://images.booksense.com/images/books/407/155/FC9780596155407.JPG" onerror="this.src = 'http://www.indiebound.org/files/book_not_found.jpg';" /&gt;&lt;br /&gt;Shop Indie Bookstores&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href='http://www.powells.com/partner/36949/biblio/9780596155407?p_bt' title='Buy from Powell's Books' rel='powells-9780596155407'&gt;&lt;img src='http://www.powells.com/images/partners/buy_from_powells.jpg' border='0' width='126' height='41'&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href="http://www.amazon.com/gp/product/0596155409/ref=as_li_ss_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0596155409&amp;linkCode=as2&amp;tag=jdonley83com-20"&gt;Buy from Amazon&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=jdonley83com-20&amp;l=as2&amp;o=1&amp;a=0596155409" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;
&lt;/p&gt;

&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/R94o4DBHq1s" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/being-geek-book-review/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Hyperion - Book Review]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/tPVKaJxWbqA/" />
    <updated>2012-06-13T12:00:00-07:00</updated>
    <id>http://jdonley83.com/blog/hyperion-book-review</id>
    <content type="html">&lt;p&gt;Well, I finished it. Great read here. Really interesting imagery that is different from anything else I&amp;#8217;ve read. I will have to read the follow up at some point as this one leaves you hanging. I do like the format of the story, as it reads more like a collection of short novellas that add to the overarching story that is developing. It seems that this book has become a modern classic and anyone truly into modern science fiction should give this a look. &lt;/p&gt;


&lt;p&gt;&lt;a href="http://www.indiebound.org/book/9780553283686?aff=jdonley83"&gt;&lt;img  style="border: 1px solid #000" src="http://images.booksense.com/images/books/686/283/FC9780553283686.JPG" onerror="this.src = 'http://www.indiebound.org/files/book_not_found.jpg';" /&gt;&lt;br /&gt;Shop Indie Bookstores&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href='http://www.powells.com/partner/36949/biblio/9780553283686?p_bt' title='Buy from Powell's Books' rel='powells-9780553283686'&gt;&lt;img src='http://www.powells.com/images/partners/buy_from_powells.jpg' border='0' width='126' height='41'&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href="http://www.amazon.com/gp/product/0553283685/ref=as_li_ss_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0553283685&amp;linkCode=as2&amp;tag=jdonley83com-20"&gt;Buy from Amazon&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=jdonley83com-20&amp;l=as2&amp;o=1&amp;a=0553283685" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;
&lt;/p&gt;

&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/tPVKaJxWbqA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/hyperion-book-review/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Vengeance - Part 3]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/6BkPVSH3dWw/" />
    <updated>2012-06-02T12:00:00-07:00</updated>
    <id>http://jdonley83.com/blog/vengeance-part-3</id>
    <content type="html">&lt;p&gt;It wasn&amp;#8217;t the open door or the mess of his room or even the fact that his most precious book was missing that startled Ken after he ventured into his basement. What startled him was the threatening voice of Cory from the top of the stairs. “What were you doing with my girl at the party? Word got around and they say she was down here with you and then she left with you.”&lt;/p&gt;

&lt;p&gt;Ken stopped picking up the papers in the room and turned to answer. All he could see was the silhouette of an angry man standing in the only true exit of the room. But this was not true. A slight breeze tickled the hairs on his arm and just out of direct vision Ken noticed that one of the blackened basement windows was ajar. Ken did not dare look away to inspect more closely with Cory staring down from the threshold.&lt;/p&gt;

&lt;p&gt;“Well, are you going to answer me? Or do I have to come down there and talk some sense into you?”&lt;/p&gt;

&lt;p&gt;Ken knew that by &amp;#8216;talk&amp;#8217; he really meant &amp;#8216;beat.&amp;#8217; Any puny kid or ignorant party goer who looked at his girl has experienced the meaning of this in the past. “Word is she isn&amp;#8217;t your girl anymore.”&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;“Bullshit!” Cory began to storm down the stairs.&lt;/p&gt;

&lt;p&gt;“Word is she walked in on you and your other girl. Apparently she hasn&amp;#8217;t been your girl for months; Sarah just didn&amp;#8217;t know it yet. Isn&amp;#8217;t that right?” Ken was backing around his couch as Cory came to the bottom of the stairs. “I said, isn&amp;#8217;t that right!” The handgun Ken pulled from under the couch stopped Cory in his tracks; Cory&amp;#8217;s head only inches from the barrel from the gun. “Isn&amp;#8217;t that right you piece of shit!”&lt;/p&gt;

&lt;p&gt;Never had anyone pulled a gun on him before. Tears began to run down his cheeks as he whimpered “Yes” over and over again. How else would a man of this kind handle this situation? His life was no longer in his control. It was now solely in the hand of Ken, a man he neither knew nor understood. He didn&amp;#8217;t know if Ken could really kill another man. So he just complied completely and fully hoped he would live past that moment. It is at moments of complete loss of self determination that a man is defined; and Cory had shown that he was useless.&lt;/p&gt;

&lt;p&gt;“How dare you come to my house threatening me for shit I&amp;#8217;ve never done? What gives you the god damned right to threaten me? Isn&amp;#8217;t that why you came here? You had to come down here and defend your manliness by beating the crap out of me because someone else may have thought that your girl had a drunken go at me. What kind of man does that make you? You have to defend every little insecurity of yours by breaking noses and teeth.” Ken turned to face the window, looked to the table, and then back to the window all while keeping the gun on Cory. It was her who took the book and got out that window before he got here. Somehow she made the mess and got out with something more dangerous than the gun he was pointing at her ex. “You better go.” The words flowed with a serious growl. “Go!”&lt;/p&gt;

&lt;p&gt;There is nothing more unnerving than hearing a grown man cry. Ken felt a little gratification as Cory ran up the stairs crying like a baby; yet he was still uncomfortable sitting on the couch with the gun across his lap. Something big was at work and he felt sorry for anyone who got in its way. Ken looked to the ceiling “Cory, you should run and enjoy this last day. It&amp;#8217;s coming for you, and you will not survive.”&lt;/p&gt;

&lt;p&gt;*  *  *&lt;/p&gt;

&lt;p&gt;Cory stopped to catch his breath outside of Sarah&amp;#8217;s dorm room before knocking. He just wanted to see her and explain everything, to apologize for what he&amp;#8217;s done. He&amp;#8217;d stopped crying but his cheeks were still wet and both eyes were bloodshot. He knocked “Sarah, are you in there? It&amp;#8217;s me, Cory, please talk to me.” No answer. According to his watch she should&amp;#8217;ve been out of class for the day by now. He tried knocking again but there was still no answer. She wasn&amp;#8217;t there. Maybe she was hiding out over in Judith&amp;#8217;s room. He crossed the street and come to her friend&amp;#8217;s door. There was no answer here either. He was about to give up when Judith came around the corner.&lt;/p&gt;

&lt;p&gt;“Judith! Where&amp;#8217;s Sarah? Have you seen Sarah? I have to see her.”&lt;/p&gt;

&lt;p&gt;“Sarah, I don&amp;#8217;t know where she went. She flipped out on me before class. Plus what do you care anyways? You&amp;#8217;re the creep who cheated on her. She&amp;#8217;s not going to want to have anything to do with you.” She passed by him and unlocked the door.&lt;/p&gt;

&lt;p&gt;“Please, I have to see her.”&lt;/p&gt;

&lt;p&gt;Entering her room, “Even if I did know, I wouldn&amp;#8217;t tell you. Goodbye.” The door closed.&lt;/p&gt;

&lt;p&gt;He started to cry again and collapsed with his back to the wall and slid down to the floor. Nothing mattered anymore. No one cared for him. His parents had just sent him to college to get him out of their hair. Ya, he was the star linebacker on the high school football team, but he&amp;#8217;d been brought home by the cops in the middle of the night more times then he could count. Now that he was over eighteen he was probably just going to go to jail on the next trip; so he&amp;#8217;d been staying out of trouble except when he knew he wouldn&amp;#8217;t get caught. But he&amp;#8217;d been caught this time. But oh, how it would have been better if it were the cops who had caught him. He wouldn&amp;#8217;t ever have to face these people if he was in jail. In jail you don&amp;#8217;t have to answer to your peers, from what he&amp;#8217;s heard you just have to survive. That would be much better than having to deal with the shame he has not only caused, but that he now has to bear. “It&amp;#8217;s all my fault.”&lt;/p&gt;

&lt;p&gt;Cory then got up and walked outside. It had started to rain. The sky had been clear not ten minutes ago. Now black clouds covered the sun and lightning lit up the terrain. He was getting drenched but did not care. Nothing mattered anymore. Not even the expensive school jacket he was wearing. The water would definitely do some damage to the leather.&lt;/p&gt;

&lt;p&gt;He was almost back to his dorm when an especially bright flash of lightning streaked across the sky above him. He looked up and saw something ahead of him standing in the sidewalk. It was in the shape of a man; but it couldn&amp;#8217;t have been a man. There was something unsettling about it. For instance, there was a breeze but its coat did not stir. Its face could not be seen for the brim of a hat sat low in the front and the collar of a coat rose high. Cory didn&amp;#8217;t really notice he was staring at it so hard until it looked up at him. The eyes, those points of red light transfixed him where he stood, not glowing but streaming strait into his own eyes, holding him in place.&lt;/p&gt;

&lt;p&gt;Cory was in a panic but unable to react. Yet again he had no control over his own life, but this time he did not understand who was holding the gun. A crack of lightning went off somewhere in the distance and the thing on the sidewalk was gone. Cory had gained control of himself again. Immediately he ran to his room.&lt;/p&gt;

&lt;p&gt;He paid no attention to what anyone said to him in the halls as he dripped on every floor and flung water on every wall. It didn&amp;#8217;t matter. All that mattered was that he got to his room and hid under his covers. Everyone was coming out into the hallways, just staring at him as he ran past trying to get to his room.&lt;/p&gt;

&lt;p&gt;Finally he made it to his own room. He ran inside only to pace across the floor in worry. In passing the mirror he noticed something strange about his reflection. He returned to the mirror to find his coat covered in blood. A panic took over his body; shaking, he realized why everyone was staring at him. He looked over at the clock on the night stand. “It can&amp;#8217;t be that late.” Hours had passed since he last checked his watch back at Sarah&amp;#8217;s dorm. “This is impossible! How did this happen?”&lt;/p&gt;

&lt;p&gt;A knock at the door “Cory, this is the police; we know you&amp;#8217;re in there. Open up.” Cory went into shock; skin gone pale and whole body shaking. When they busted down the door he was on his knees. “You are under arrest for the murders of two girls, names Sarah Smith and &amp;#8230;”&lt;/p&gt;

&lt;p&gt;Cory passed out.&lt;/p&gt;

&lt;p&gt;*  *  *&lt;/p&gt;

&lt;p&gt;Sometime later Cory was dressed all in orange and strapped into a metal chair in a small glass room. Outside of the room were benches filled with family members of the two dead girls and a few prison guards to keep watch to make sure no one would try to kill him themselves before he died from the poison gas. Cory was convicted to die for the murders of his girlfriend and the girl he was caught with by his girlfriend. Cory didn&amp;#8217;t do it, but his prints were present on the bodies, which were found hanging from some old tree just off campus. They were apparently a bloody mess, and all the blood on his coat was that of the girls. Cory didn&amp;#8217;t know how it happened; and he will never know. The lever was pulled and the room filled with a green cloud completely obscuring his view of the hate filled faces staring, stabbing at the end of his life. Just before passing out the smoke cleared in one spot of glass. This gave him a clear view of the face of one of the guards, whose eyes were glowing red. It was over; his life was now no longer in anyone&amp;#8217;s control.&lt;/p&gt;

&lt;p&gt;*  *  *&lt;/p&gt;

&lt;p&gt;Ken had found his book under the tree before the police arrived. He needed it; he had an important job to do. He was working in his basement with a dried piece of clay and a knife. Continually he checked a page in that infernal book as he carved something onto the clay tablet. The carving took quite some time so his mind wandered a bit. He knew why and how Sarah was killed but never could tell the police. They would never believe him. Sarah was killed because she didn&amp;#8217;t do the preliminary rituals before summoning a demon to kill her ex boyfriend. That probably wouldn&amp;#8217;t go over to well. “This book&amp;#8217;s going behind a lock when I&amp;#8217;m done.” No one was there to hear him, but it needed to be said aloud for anything that might be in the room.&lt;/p&gt;

&lt;p&gt;He was about finished with the carving and he started to chant “demon, I bind you” a nick of clay fell to the floor “demon, I break you” another small nick “demon, I send you back from whence you came.” Ken lifted the tablet, ready to break it over his knee when Paul opened the stairway door and yelled down.&lt;/p&gt;

&lt;p&gt;“They just offed Cory. What you doin&amp;#8217; down here anyways?”&lt;/p&gt;

&lt;p&gt;Annoyed, Ken answered “Art project.”&lt;/p&gt;

&lt;p&gt;“Well, you&amp;#8217;ve been down here a while. You want a beer?” It must&amp;#8217;ve been something Paul said, because when Paul saw that Ken&amp;#8217;s eyes were red, Ken shot three bullets into Paul&amp;#8217;s head.&lt;/p&gt;

&lt;p&gt;“I&amp;#8217;ve got my own.”&lt;/p&gt;

&lt;p&gt;The end.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/6BkPVSH3dWw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/vengeance-part-3/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Vengeance - Part 2]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/TORm9odlh6A/" />
    <updated>2012-05-28T12:00:00-07:00</updated>
    <id>http://jdonley83.com/blog/vengeance-part-2</id>
    <content type="html">&lt;p&gt;She now stood in front of the house. Should she even bother? These things aren&amp;#8217;t real. But oh, how sweet it would be to get back at him. He has to feel what I feel and more.&lt;/p&gt;

&lt;p&gt;The house looked empty. No music could be heard from the windows, not even the drone of a daytime TV was playing. Sarah knocked on the front door which rattled at the hinges on each strike. How many times have drunken kids slammed this door over the years? Before Paul lived in this house another student lived here. In the living room there was a post with carved names and dates of past tenants. Paul carved his name beneath someone named Donald, who was there for five years, about the normal length of time for a degree nowadays.&lt;/p&gt;

&lt;p&gt;No one came to the door, but Sarah had to know the truth. Whether anyone was here or not she had to get into that basement and see proof that what that paper said was real. The door wasn&amp;#8217;t locked. Snack bags and beer bottles still littered the front room floor, remnants from the last party; at least there was proof of drunken stupid college students. This was part of what led her to this situation. She used to attend these loose gatherings filled with hormone raged students. How did things with Cory last as long as they did? But even then, was Sarah not good enough for him? Of course I am. I look good and I&amp;#8217;m good company. “How could he!” Sarah caught her balance on the arm of a stained couch. “That&amp;#8217;s it.”&lt;/p&gt;

&lt;p&gt;The stairs into the basement were much easier to manage without a night&amp;#8217;s worth of liquor. But it was darker than the previous visit. Carefully she reached along the wall for a light switch at the bottom of the stairs. The light from upstairs did not shine more than halfway down, and her eyes were not adjusting to the dark. She tried to look around the room hoping some splinter of light was breaking through a window. She saw nothing, but there was a sound. It sounded like small taps moving across the floor. Like the ticking of a clock, but moving.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;She backed towards the staircase trying not to be afraid. It was probably a mouse or even a rat. The patter continued and seemed to be getting closer, each pat a little to the left or to the right, but still closer. The pats came in short bursts; it had to be some rat, curious who was down in the basement. But something was not right. The pats were starting to come from the air around her and still getting closer.&lt;/p&gt;

&lt;p&gt;Sarah stopped to try to pinpoint the sound, but the sound stopped with her. She took one step back, the patter started again, then stopped. She took another, the pats came closer still. Sweat began to roll down her face as her heart raced harder and harder. These pats were too loud to be a rat. Another step and something hit her in the back of the head. Sarah screamed and reached above her grabbing and yelling. The room flashed red and above the couch the head of a large dog floated with it mouth open. Sarah screamed every curse word she knew within ten seconds, even repeated a few of them as the screech of glass on glass rattled the blacked out windows of the basement, piercing Sarah&amp;#8217;s ears. In her panic she pulled down on what hit her head and a light came on; forty watts of safe light.&lt;/p&gt;

&lt;p&gt;Immediately the sound stopped and the head was nowhere to be seen. Her ears still rang as she stumbled over to the couch. “Well&amp;#8230; at least now I know that weird crap like this is real. The hanging bulb and pull string swayed after her panicked tug, throwing dancing shadows on the basement walls. The shadows came to rest much faster than Sarah&amp;#8217;s breathing. After some time trying to calm herself she saw that the book still sat open on the table as it did last Friday; must be a common read for Kenneth. Sarah wondered what page of this book would summon what she saw just moments ago. What set of unutterable language from this book would bring the screaming head of a dog? It didn&amp;#8217;t matter though, for that was not what Sarah was looking for. She wanted the pages that would bring her vengeance. Cory needed to feel what he has done to her. He must hurt for touching that tramp. Sarah laid the paper next to the book and set to try and match it to symbols in the book.&lt;/p&gt;

&lt;p&gt;Page after page of meaningless symbols flipped by; each one being some other infernal enchantment. Some pages contained notes in the margins. Handwritten script read “the dog head.” More meaningless pages went by when the book easily fell open to a section towards the back. Both of these open pages had been scrawled upon heavily with a number two pencil. Next to what looked to be the heading in the ancient script, Ken had written “vengeance demon.” Different parts of the text were underlined. Handwriting at the bottom of the page gave instruction: “for this to work it must be read in the presence of life older than the last great one.”&lt;/p&gt;

&lt;p&gt;“Something older than the last great one? What does that mean?” Then one of the basement windows burst open letting in a strong wind, Sarah jerked with surprise. Papers began to flutter about the room and her hair was flying about her head. She closed the window, the papers settled, and the she returned to the couch to continue her study. The room was now a mess of loose paper, but that didn&amp;#8217;t matter to her. What did she care if Ken found his room a mess, all that mattered was revenge. The driving force of her life at that moment was to exact vengeance on the boy who shamed her, the boy who went to another girl looking for something she could not satiate. She had to get back at the insignificant boy who demonstrated that she could not be enough for him when she clearly was more than enough for anyone. He must be punished and shown to be lacking. He must&amp;#8230;&lt;/p&gt;

&lt;p&gt;The sight of a Polaroid picture now on the table caught her in mid thought. It was a picture of the old hanging tree just off campus. According to the locals that tree was here long before Columbus ever landed; and some claim longer. In the 1860s there were many hangings performed from that tree by lynch mobs, and many more performed before then. This was a tree surrounded by death, and according to the note written on the bottom edge, it first sprouted around 1500 years ago.&lt;/p&gt;

&lt;p&gt;“I don&amp;#8217;t know who the last great one is, but that is the oldest thing I know.” As a reply to the correctness of her answer, the applause of gravel crunching under tires caught Sarah&amp;#8217;s attention. Someone had gotten home, and she needed to be out of there. Not only would Ken be upset with her being down there, he would see the mess; and after seeing what he has summoned she did not want to know what he would do to her. She grabbed the book, found her original paper among the mess, and climbed out of the window.&lt;/p&gt;

&lt;p&gt;Getting back to her room was no real problem. No one noticed her at all; she was just another student carrying a heavy book across campus. With the book and paper tucked beneath her mattress, Sarah decided to go to class. If she didn&amp;#8217;t, people would start to wonder about her. She did not want to look weak in the eyes of her friends. She must stand and face the world which condemns her for her insufficiency. Judith stopped her at the door to their comparative religion course.&lt;/p&gt;

&lt;p&gt;“Where were you? I went by the gym after bio lab looking for you, and the attendant said you were never there.” Judith tried to lock onto Sarah&amp;#8217;s eyes but was unable. “Look, if you need to talk about something, I&amp;#8217;m always here for you. You know that right?”
Sarah let a moment pass before she tried to just push around her into class without answering. Judith stepped in front of her “You do know I can help you through this?”
“Help me through what? The fact that you and everyone else here think I&amp;#8217;m worthless? The fact that without my daddy&amp;#8217;s money I would have no place at this college? The fact that I don&amp;#8217;t need this degree anyways because daddy will just give me an unimportant job on his payroll? Well, too damned late! I&amp;#8217;m over it. And I don&amp;#8217;t need your petty help. I am not a helpless child in need of charity. Find someone else to be inferior to you; I will never be beneath you.”&lt;/p&gt;

&lt;p&gt;Sarah ran off leaving the hall in confused silence. Everyone watched her leave then turned their attention to Judith, still standing there unable to react to the verbal attack. The professor stepped out of the classroom, “Class will begin now. Please take your seats.” Quietly everyone sat down, still focused on Judith. She could feel he pressure of all the eyes on her. She had never felt superior to anyone in her life. In fact she looked up to Sarah. Sarah used to be the popular and outgoing girl everyone knew and loved on campus; but this was changing. “Well, it looks like Sarah won&amp;#8217;t be joining us today; so let&amp;#8217;s pick up where we left off last week. I believe we were speaking of avatars.&lt;/p&gt;

&lt;p&gt;“Hindus believe that their god, Vishnu, returns to the earth every so often in different human forms. In the Mahabharata, which we spoke of last week, Krishna helped Arunja to regain his throne and save his society. Krishna was an avatar of Vishnu. It is also believed that he came back as other important figures. Some even believe Jesus was one of these avatars&amp;#8230;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/TORm9odlh6A" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/vengeance-part-2/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Vengeance - Part 1]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/tmaaN-N2jeE/" />
    <updated>2012-05-23T12:00:00-07:00</updated>
    <id>http://jdonley83.com/blog/vengeance-part-1</id>
    <content type="html">&lt;p&gt;“You know they invented a word for guys like him.”&lt;/p&gt;

&lt;p&gt;“Sure, and what would that be?”&lt;/p&gt;

&lt;p&gt;“Creep.” Judith took the glare from beneath Sarah&amp;#8217;s brow. “You know he&amp;#8217;s a creep, he cheated on you with a freshman. Any guy who sleeps with something that young must have issues. I wouldn&amp;#8217;t be surprised if he ended up in prison.”&lt;/p&gt;

&lt;p&gt;The biology books were starting to dig into Sarah&amp;#8217;s arms. Switching arms no longer cured the tightness in her shoulders. The stone bench seemed a welcome relief.&lt;/p&gt;

&lt;p&gt;“Sarah, you&amp;#8217;re going to be late for lab.”&lt;/p&gt;

&lt;p&gt;“Who cares, I&amp;#8217;m failing anyway. And he wasn&amp;#8217;t a creep; I don&amp;#8217;t date creeps and I never plan to. That girls was just a tramp. All boys are weak, but he&amp;#8217;s too weak to have me.” Her spirits were rising and the bags no longer dug as deep into her shoulders. “Screw bio, I&amp;#8217;m going to the gym. You coming?”&lt;/p&gt;

&lt;p&gt;“Unlike you, I have to keep my grades up to stay in school. You should be at least a little worried about your grades, how do you expect to ever get out of here?”&lt;/p&gt;

&lt;p&gt;“I don&amp;#8217;t expect anything. Have fun in lab.” They parted.&lt;/p&gt;

&lt;p&gt;Sarah came to the gym entrance but moved on. She passed the gym, passed the campus gates, and kept going even further. No one paid attention to her as she passed by. She knew exactly where she was going and no one else cared. The sidewalk carried her on past the bookshops and cafes. Each grass filled crack measured a distance further from what she ever thought she was capable of.&lt;/p&gt;

&lt;p&gt;After a left on Tunsdale and a right on Spokes Street she found her destination. The rundown home needed siding and the roof had a few leaks, but this was the place. Would her father approve of her even looking at a house like this? It didn&amp;#8217;t matter; he would never know of the party she attended there last week.&lt;/p&gt;

&lt;p&gt;The first half of that evening was a little dull but full of beer and spirits. The second half was a bit of a blur. The night ended with her being driven back to her dorm by Kenneth, the recluse who lived under party central.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;* * *&lt;/p&gt;

&lt;p&gt;The spirits were the better part of the evening. Beer took a lot more to have any effect. But the clear stuff sure made an impact quickly. Cory&amp;#8217;s arm stayed around Sarah&amp;#8217;s waist most of the night while his other carried a beer. Conversations were meaningless, joking about who was better at spitting further or who had the best trick for cheating in American History. About thirty minutes into the party Cory decided it was getting late for him. Something about a test the next morning. “I&amp;#8217;ll see ya tomorrow afternoon Sarah. Do lunch?”&lt;/p&gt;

&lt;p&gt;“Ya sure. I&amp;#8217;m stayin&amp;#8217; though. I&amp;#8217;ll walk back later.” They kissed and he left. One or two others left soon after him.&lt;/p&gt;

&lt;p&gt;“Hey Sarah, get over here! Got a shot waiting on ya!” Paul&amp;#8217;s voice carried well over the loud music. Sarah had to force her way through the crowd of sweating party goers. The kitchen was a place to be if you wanted to get drunk quick. This is where they lined out the shots, one after another.&lt;/p&gt;

&lt;p&gt;“Ya, which one&amp;#8217;s mine?”&lt;/p&gt;

&lt;p&gt;“Take your pick.” Sarah grabbed the one that wasn&amp;#8217;t clear. “Like a little scotch, do ya? Have another.”&lt;/p&gt;

&lt;p&gt;She downs the second, “You have a roommate right? Which one is he? I wanna see him.”&lt;/p&gt;

&lt;p&gt;“Ya, his name&amp;#8217;s Kenneth. But he doesn&amp;#8217;t party. He stays downstairs.” He poured some more shots, overflowing onto the stovetop. The counters were loaded with an assortment of liquor store treasures leaving no room there to dish out the booze. “Why worry about him though? He&amp;#8217;s a freak. Some weird crap he does down there.”&lt;/p&gt;

&lt;p&gt;“Well, sounds like he needs a beer.” She grabbed one from the counter and proceeded back across the room. After pounding through the door in a drunken stupor, Sarah yelled down the stairs, “Ken, get your boring ass up here and drink some beer!” There was no answer, but a candle was burning on a table casting shifting shadows on the walls. The throbbing rhythm of the speakers above seemed to have no importance in this room beneath everything. She carefully made her way down the stairs; the alcohol in her system was not helping her balance. She almost tripped on the last step, but she caught herself on the table.&lt;/p&gt;

&lt;p&gt;When she lifted her head she noticed a book resting on the table. Of course anything can seem interesting when you&amp;#8217;re drunk, but this was different. There were strange symbols and writing on the page it was open to. On the couch she could actually hear the hum of the mini fridge nearby over the crowd upstairs. The fury of sound upstairs was a complete opposite to this room. “I can see why he never complains.” She now understood how Kenneth could live beneath such an outgoing roommate like Paul. This room was very cut off.&lt;/p&gt;

&lt;p&gt;Lifting the book from the table was a task in her state, but she accomplished it. Flipping through the pages there were more strange symbols and writing. A piece of folded notebook paper fell into her lap from the back cover. The book went back to the table as she unfolded the new find.&lt;/p&gt;

&lt;p&gt;This was written in English and the first two words were “vengeance demon.” She would have read more, but a toilet flushed in the bathroom behind her and a florescent light flooded the room then switched off.&lt;/p&gt;

&lt;p&gt;“Who are you and what the hell are you doing in my room?” She turned and saw Ken step out in shorts with headphones dangling around his neck. The paper fell folded back into her lap. Tattoos covered his arms and torso and piercings were abundant where visible. She had never seen tattoos or piercings like this before. Some of the tattoos looked like the images from the book.&lt;/p&gt;

&lt;p&gt;“None of your business, unless you come upstairs and party with me.” She stood and slipped the paper into her back pocket. “Have some beer, you know you want to party.”&lt;/p&gt;

&lt;p&gt;“Get out, and tell the rest of your drunk friends not to come down here either. Did you hear me?” The bottle fell to the floor. She didn&amp;#8217;t hear him for she had begun to throw up.&lt;/p&gt;

&lt;p&gt;“Jesus, get in the bathroom.” He led her to the bathroom and held her hair as she lost what little food there was in her system with the fountain of alcohol. When she was done he reached over and flushed the toilet and offered her a rag. “You know this will take years off your life. Fell you got another coming?” She shook her head, the acid made her throat itch. She wiped the tears from her eyes and slowly stood with aid. “Good, let&amp;#8217;s sit you back on the couch.”&lt;/p&gt;

&lt;p&gt;The cool wetness of the towel on her forehead was the most welcome thing she could ever imagine. Ken now sat in the chair across the table looking at her.&lt;/p&gt;

&lt;p&gt;“Thanks.” She didn&amp;#8217;t look down in fear of losing the towel or stirring anything left in her stomach.&lt;/p&gt;

&lt;p&gt;“Don&amp;#8217;t thank me. I just didn&amp;#8217;t want to clean up the mess.” The lack of feeling almost disturbed Sarah.&lt;/p&gt;

&lt;p&gt;“Well, thanks anyways.”&lt;/p&gt;

&lt;p&gt;“The amount of alcohol I saw come out of you could have killed you if it had stayed in. Next time lose it upstairs on Paul&amp;#8217;s floor.” He put one side of his headphones back into his ear. “Why are you down here anyways?”&lt;/p&gt;

&lt;p&gt;“I don&amp;#8217;t know. I figured you needed a beer.”&lt;/p&gt;

&lt;p&gt;“Thanks for the thought. As soon as you&amp;#8217;re up to it I&amp;#8217;ll get you back to campus for the night. Party&amp;#8217;s over for you.” He leaned across the table and opened the mini fridge. “I&amp;#8217;ve got my own beer.” He smiled and cracked it open.&lt;/p&gt;

&lt;p&gt;When she could regain her balance Ken helped her up the stairs back up into the now lulling party. The basement door opened and the living room lights were an instant headache. No one paid much attention to them until Paul noticed her being carried to the door. “Whoa, Sarah! What ya doin&amp;#8217; in the basement with Ken? He&amp;#8217;s not much of a ladies man.”&lt;/p&gt;

&lt;p&gt;The glare from Ken quieted the room. “Shut the hell up Paul. I&amp;#8217;ll be back after I get her to campus. Everyone else,” he scanned the floor “stay out of my damn room!” Ken pulled the door shut behind him.&lt;/p&gt;

&lt;p&gt;When Sarah woke the next morning most of the night before was a blur. The hangover made rolling out of bed a real task and the smell from her clothes was not a help either The reek of beer, cigarettes, and vomit sprang from her shirt and almost brought another trip to the toilet on hands and knees. When she regained her equilibrium again and began to stand, a rumple of paper reminded her of what she took from Ken&amp;#8217;s basement. She took it out and again read the first two words. “Vengeance demon&amp;#8230; Ken is a freak.” She threw the paper into the trash.&lt;/p&gt;

&lt;p&gt;The following weekend was the normal weekend for her and Cory. They hung out in her room and went to see a couple of friends around campus. On Sunday night they were at another party, but Sarah wasn&amp;#8217;t drinking at this one. She had a rest early the next morning and had to pass this one in order to not fail the course. She cut out early and left Cory to party.&lt;/p&gt;

&lt;p&gt;The test went well on Monday morning. But that wasn&amp;#8217;t the real shock. The shock came when Sarah went to Cory&amp;#8217;s room afterwards. She was going to surprise him by jumping in his bed while he still slept in celebration of the good test. But when she opened the door everything changed. Sarah could not get the image of Cory with that girl out of her head.&lt;/p&gt;

&lt;p&gt;She ran back to her room across the street crying tears of anger. Once she closed her door behind her she screamed with every ounce of energy in her body again and again. “Why! How could he!” She fell and knocked over her trashcan. Sitting up against her wall, calming down a bit she notices that piece of paper. It catches her eye, beckoning to her. It seemed to be moving. She grabbed it and could feel it pulse in her hands. Again she read the first words after straitening it out. “Vengeance demon.” The pulses synchronized with her heartbeat. Thoughts raced across her head. No one thinks of stuff like this, unless they&amp;#8217;re crazy. Why would anyone think it possible to raise the devil to punish your boyfriend? This only flashed through her mind, she had to know more and there was only one place she knew of with the information she wanted.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/tmaaN-N2jeE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/vengeance-part-1/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Amazing IDE Concept Demonstration]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/ExhkW-cnC2Q/" />
    <updated>2012-04-13T12:00:00-07:00</updated>
    <id>http://jdonley83.com/blog/amazing-ide-concept-demonstration</id>
    <content type="html">&lt;p&gt;I mentioned a blog post &lt;a target="_blank" href="http://joshondesign.com/2012/03/09/open-letter-language-designers"&gt;http://joshondesign.com/2012/03/09/open-letter-language-designers&lt;/a&gt; I had read a couple days ago to a coworker/friend of mine which goes over ideas such as this. It is really amazing to be seeing a concept like this demonstrated for others to take up and attempt to implement.&lt;/p&gt;


&lt;p&gt;&lt;iframe width="600" height="350" frameborder="0" src="http://player.vimeo.com/video/40281991"&gt;&lt;/iframe&gt;&lt;/p&gt;

&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/ExhkW-cnC2Q" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/amazing-ide-concept-demonstration/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Using &apos;New&apos; Correctly - a response]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/v9b86dvF5CI/" />
    <updated>2012-04-11T12:00:00-07:00</updated>
    <id>http://jdonley83.com/blog/using-new-correctly-a-response</id>
    <content type="html">&lt;p&gt;I just read &lt;a target="_blank" href="http://ardalis.com/new-is-glue"&gt;this&lt;/a&gt; (http://ardalis.com/new-is-glue) article. I mostly agree with the author.&lt;/p&gt;


&lt;p&gt;The gist of his post is that you should only use &amp;#8216;new&amp;#8217; to instantiate an object if you know that you will not need other behavior in the future. I&amp;#8217;m very big on loose coupling through interfaces, but I personally do not think you should jump the gun and implement an interface until you need it.&lt;/p&gt;


&lt;p&gt;It is perfectly fine to just &amp;#8216;new up&amp;#8217; an object that satisfies what you need at that moment. Than later down the line when it is found that you need varying behavior, go ahead and spend the time than to implement the interface solution.&lt;/p&gt;


&lt;p&gt;There is no sense in spending the extra time abstracting away things, when there is no guarantee that the abstraction will ever be needed. By waiting you will be saving yourself extra work.&lt;/p&gt;


&lt;p&gt;To be fair, the author of the referenced article did say this was a design decision. Although the permanence of using new that he expresses isn&amp;#8217;t really as permanent as made out to be by his post.&lt;/p&gt;

&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/v9b86dvF5CI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/using-new-correctly-a-response/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Finding Time to Program]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/O9jGEvaPDTk/" />
    <updated>2012-02-16T12:00:00-08:00</updated>
    <id>http://jdonley83.com/blog/finding-time-to-program</id>
    <content type="html">&lt;p&gt;For quite awhile it was getting harder and harder to find time to work on any programming outside of work. Having a 3 year old really takes a lot of energy out of me, so even when the little one is actual in bed by a decent hour I am usually ready to pass out.&lt;/p&gt;


&lt;p&gt;But lately things have improved a bit. My son has been going to bed at a more decent time much more often, and I have had the energy to stay up and work on things.&lt;/p&gt;




&lt;!-- more --&gt;




&lt;p&gt;Here is the problem though. Now that I have the time to play with some fun technologies I can&amp;#8217;t decide which one to settle on and really dig in to. Right now I&amp;#8217;m a bit torn between Ruby and Python. I&amp;#8217;ve worked almost exclusively in C# for server side code over the past 3 years and now I want to learn a good loosely typed server side language that is not PHP. I&amp;#8217;m leaning more towards Ruby, but only for the reason that Python seems to be trending down in the market while Ruby is trending up.&lt;/p&gt;


&lt;p&gt;As a side note, I don&amp;#8217;t hate PHP. PHP is a great language and it is fun to work in, but I find C#, Ruby, and Python more interesting. The PHP community as a whole is a fragmented. There are too many different frameworks dividing the community into too many different niches. This is unlike Ruby, which has Rails in the spotlight, and Python, with Django front and center. I like options, but PHP has so many options that advancement is spread so thin as to prevent any overall advancements for PHP as a whole.&lt;/p&gt;


&lt;p&gt;I also really want to sink my teeth into Node.js. It&amp;#8217;s just so different developing in Node than any other language that I am familiar with. I&amp;#8217;ve gone through a couple tutorials building small Node applications(i.e. &lt;a href="http://www.nodebeginner.org/" target="_blank"&gt;node beginner book&lt;/a&gt;, and &lt;a href="http://howtonode.org/express-mongodb" target="_blank"&gt;a blog&lt;/a&gt;) and it was a lot of fun. I would just jump into Node, but it seems to me that it would be considerably more work to build a larger application in Node than it would be in a more traditional server side web development language; thus Ruby or Python. This definitely won&amp;#8217;t stop me from picking it up after Ruby or Python though.&lt;/p&gt;


&lt;p&gt;What are your thoughts on Ruby vs Python and Node.js? I would also love to read your comments on the state of the PHP development community.&lt;/p&gt;

&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/O9jGEvaPDTk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/finding-time-to-program/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Yeah, I&apos;m a programmer, and I did my own blog design]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/5ma1eovcHe4/" />
    <updated>2011-10-11T12:00:00-07:00</updated>
    <id>http://jdonley83.com/blog/yeah</id>
    <content type="html">&lt;p&gt;Just in case you hadn&amp;#8217;t noticed already I wanted to let you officially know that I have a new design up on my blog. This is a big deal to me because I did the design myself from start to finish. I am no designer by any means, but I&amp;#8217;ve been told by a few people that the site looks nice, of course a few followed it up with &amp;#8216;but it looks like a programmer designed it&amp;#8217;.&lt;/p&gt;




&lt;!-- more --&gt;




&lt;p&gt;I&amp;#8217;m still proud of the new look though. I learned how to use &lt;a href="http://www.gimp.org/" target="_blank"&gt;GIMP&lt;/a&gt; during the design and cutup process. I also got my hands extra dirty trying to force CSS to do my bidding. And with the help of a few designer friends of mine, along with aridiculousnumber Google searches, I actually got the site to nearly resemble my design in GIMP.&lt;/p&gt;


&lt;p&gt;There is even usage of sprites, CSS 3 gradients and dropshadow, along with some HTML5 markup. Much of the magic is handled by &lt;a href="http://html5boilerplate.com/" target="_blank"&gt;HTML5 Boilerplate&lt;/a&gt;; a wonderful project that is a great starting point with a ton of comments in the code explaining everydecision.&lt;/p&gt;


&lt;p&gt;Another big change that was made was the move from Wordpress to LightCMS. I was getting tired of dealing with the constant updates breaking my plugins. So I moved my blog to the CMS that I work on for a living. This way, when something messes up, which is rare for Light, I can most likely do something about it.&lt;/p&gt;


&lt;p&gt;That&amp;#8217;s it for now. Feel free to comment on the sub-par programmer-esque markup in my design. I&amp;#8217;m always up for learning how to better all of my web development skills.&lt;/p&gt;

&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/5ma1eovcHe4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/yeah/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Developer Update]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/uvmtTXe5KpE/" />
    <updated>2011-06-19T12:00:00-07:00</updated>
    <id>http://jdonley83.com/blog/developer-update</id>
    <content type="html">&lt;p&gt;Hello,&lt;/p&gt;


&lt;p&gt;Programming life is still going great for me. Two factors have played into this: 1. I just got a promotion from Jr. Developer to Software Engineer, and 2. we are really starting to kick into full steam on the Tonal Metropolis project. Not to mention we just released a huge e commerce solution at Element Fusion.&lt;/p&gt;


&lt;p&gt;The Tonal Metropolis team and I have really started to crank out some progress now. It&amp;#8217;s a little ambitious, but we are shooting for a September 5th beta release. I&amp;#8217;m currently working on account creation from email invites and am getting ready to dig into &lt;a href="http://www.dotliquidmarkup.org" target="_blank"&gt;Liquid&lt;/a&gt; templating for use in the profile designs. We&amp;#8217;re planning on giving free accounts access to a few different set designs. Paid accounts will be able to create and modify their own Liquid templates for the system.&lt;/p&gt;


&lt;p&gt;Many other features are still up in the air at this point. We&amp;#8217;ll try to keep everyone up to date through the regular blog at the Tonal Metropolis Blog.&lt;/p&gt;

&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/uvmtTXe5KpE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/developer-update/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[JavaScript var Hoisting]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/Ivlh152JFiM/" />
    <updated>2011-03-07T12:00:00-08:00</updated>
    <id>http://jdonley83.com/blog/javascript-var-hoisting</id>
    <content type="html">&lt;p&gt;At a quick glance what do you think the value of &amp;#8216;y&amp;#8217; will be at each alert?&lt;/p&gt;


&lt;div&gt;&lt;script src='https://gist.github.com/1176158.js?file=varhoistingblogpostexample1.js'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;y = 1;
alert(y); //alert 1
var x = function() {
    alert(y); //alert 2
    var y = 2;
    alert(y); //alert 3
}
x();&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;




&lt;p&gt;When I was first beginning to work in javascript my guess would&amp;#8217;ve been: &amp;#8216;alert 1: 1&amp;#8217;, &amp;#8216;alert 2: 1&amp;#8217;, and &amp;#8216;alert 3: 2&amp;#8217;; thinking that the global value from before the function would carry into the function until it is reassigned.&lt;/p&gt;




&lt;!-- more --&gt;




&lt;p&gt;The answer is instead &amp;#8216;1, undefined, and 2&amp;#8217;. This result comes about because of an interesting behavior of javascript that I had not come accross until yesterday while reading &amp;#8216;Javascript Patterns&amp;#8217;. The behavior is that the javascript engine takes two passes over each function scope while running the script.&lt;/p&gt;


&lt;p&gt;In the first pass the function is parsed and all local variables are moved to the top of the function. And the second pass runs it. So in reality the script looks like this by the time it is run:&lt;/p&gt;


&lt;div&gt;&lt;script src='https://gist.github.com/1176159.js'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;y = 1;
alert(y); //alert 1
var x = function() {
    var y;  // &amp;lt; ----- var moved to top of function!
    alert(y); //alert 2
    y = 2;
    alert(y); //alert 3
}
x();&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;




&lt;p&gt;Notice that &amp;#8216;var y&amp;#8217;, and not &amp;#8216;var y = 2&amp;#8217; was moved to the top of the function. By declaring an unset local variable at the top of the function the global &amp;#8216;y&amp;#8217; variable is overwritten, causing &amp;#8216;alert 2&amp;#8217; to be undefined.&lt;/p&gt;


&lt;p&gt;In theory as a javascript developer you shouldn&amp;#8217;t be polluting the global object with variables such as &amp;#8216;y&amp;#8217; anyways, so this issue should not crop up for you. But it is good to know how the javascript engine actually parses your scripts. This is a good case for going ahead and just putting all of your local variables at the top of your function, since the javascript engine is going to do it anyways. This will reduce unexpected behaviors and is considered a best practice.&lt;/p&gt;


&lt;p&gt;If you are interested looking further into this type of behavior in javascript checkout this blog post, which goes more in depth over javascript scope behavior: &lt;a href="http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting" target="_blank"&gt;JavaScript-Scoping-and-Hoisting&lt;/a&gt;. Also pick up the book &amp;#8216;Javascript Patterns&amp;#8217; by Stoyan Stefanov. Chapter 2 alone is worth twice the book&amp;#8217;s listed price.&lt;/p&gt;


&lt;p&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=7459927" rel="tag" style="display: none;"&gt;CodeProject&lt;/a&gt;&lt;/p&gt;

&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/Ivlh152JFiM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/javascript-var-hoisting/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Musicthwack Momentum Gathers]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/_PZBVjWJ8Ik/" />
    <updated>2011-03-02T12:00:00-08:00</updated>
    <id>http://jdonley83.com/blog/musicthwack-momentum-gathers</id>
    <content type="html">&lt;p&gt;Well, momentum is gathering on the fabled &amp;#8216;Musicthwack&amp;#8217; project. A buddy of mine has joined in on the project and added some great insight and ideas into the pot, and as such I have decided to move the project out of the open source arena.&lt;/p&gt;


&lt;p&gt;I&amp;#8217;ve done this because I really do think we have an original idea cooking up that can really take off. Everything I&amp;#8217;ve released so far about the project is still true: it will be a social network for musicians, bands, and fans. But that is about all that I feel comfortable releasing about it, especially since it isn&amp;#8217;t just my intellectual property, it is shared intellectual property.&lt;/p&gt;


&lt;p&gt;I will keep you posted here on any developments of the project, and if you would like an invite for beta testing, feel free to contact me, and I&amp;#8217;ll put you on the list. We plan on having something live for beta testing in May or June, and the invites will go out as soon as the site is live. We will see what happens.&lt;/p&gt;


&lt;p&gt;Until next time&amp;#8230; Rock On!&lt;/p&gt;

&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/_PZBVjWJ8Ik" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/musicthwack-momentum-gathers/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Setting Up Git in Windows with Diffmerge, Powershell, Posh-Git, and Console2]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/oUWTvLI_t_o/" />
    <updated>2010-12-05T12:00:00-08:00</updated>
    <id>http://jdonley83.com/blog/setting-up-git-in-windows-with-diffmerge</id>
    <content type="html">&lt;p&gt;Isn&amp;#8217;t that just an admirably long title? I mean, wow. Lots of stuff in there. Today I figured I would post the steps needed to setup your Git environment like mine. It was a challenge for me to do this initially, since no one single source found through the magic of Google was the final solution for the issues I had in achieving this ultimate setup of geektasticness.&lt;/p&gt;

&lt;p&gt;The first question most I imagine would have for me is: &amp;#8216;Why?&amp;#8217; It&amp;#8217;s simple; of course you can just install MSysGit and go on your happy way enjoying the semigeekness of doing everything git and such through the pseudo bash command console that comes with the installation. But (at least if you are a windows user) why would you want to use a non Windows native console when there is a perfectly good one built into Windows Vista and Windows 7 called Windows PowerShell? I mean, if you are a windows/.Net developer you may as well go all out and use the Microsoft tools.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;We&amp;#8217;ll start with the most basic and move up to the most awesome:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Installing MSysGit&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Go here: &lt;a href="http://code.google.com/p/msysgit/downloads/list" target="_blank"&gt;http://code.google.com/p/msysgit/downloads/list&lt;/a&gt; and download the &amp;#8216;full installer&amp;#8217; version; be sure that you are not downloading the self contained version. Once downloaded go ahead and run the install. Once you get to this screen:&lt;/p&gt;

&lt;p&gt;&lt;img alt="" src="gitPic1.jpg" /&gt;&lt;/p&gt;


&lt;p&gt;Be sure to select the second or third option. It warns you on the third option that it will override a few of the built in windows command line tools, but they&amp;#8217;re not ones I use anyways, so it&amp;#8217;s a non-issue for me. Once you have this installed you can stop if you want, since you now have a fully functional git environment. But you are stuck with using the default tools, such as KDiff (which in my opinion is ugly, and is missing a couple features that Diffmerge offers), and Vi as the editor. I&amp;#8217;m not sure about you, but every time I&amp;#8217;ve forgotten to include a &amp;#8216;-m&amp;#8217; (message attribute) in my commit commands, I pretty much panic, because I can never remember how to exit Vi. One of these days I&amp;#8217;ll sit down and spend some time learning Vi, but there are too many other things I&amp;#8217;m working on at the moment. (Tip: During the msysgit install I also suggest choosing the windows line ending option)&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Step 2: Setting up an Alternative editor&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;The first thing I suggest doing, unless you actually are familiar with Vi is changing your default editor in Git. I choose to use plain ol&amp;#8217; vanilla Notepad that comes with Windows. I was using Notepad++ but in the end I decided that I really don&amp;#8217;t need something so feature rich just for editing comments on my Git commits. (Do you really need syntax highlighting or line numbers for this?) Instead I&amp;#8217;ve opted just for notepad. To set this up you&amp;#8217;ll need to edit your .gitconfig file. This is located in c:/users//.gitconfig Pop that open in the text editor of your choice and add these lines to the bottom:&lt;/p&gt;


&lt;script src="https://gist.github.com/1176170.js?file=corestarter"&gt;&lt;/script&gt;


&lt;p&gt;If the .gitconfig already has a &amp;#8216;core&amp;#8217; section just replace/add the &amp;#8216;autocrlf&amp;#8217; and &amp;#8216;editor&amp;#8217; values. Once you have done this anytime you commit without the &amp;#8216;-m&amp;#8217; attribute notepad will open. It works out very nicely.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Step 3: Setting up Sourcegear Diffmerge&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;This was the step that was the toughest for me. This really is the most technically difficult step to accomplish, unless you are an adept bash scripter I guess. But having been raised on Windows systems and GUI interfaces, the concept of Bash scripting is foreign to me. After a couple days of looking at a few different examples/tutorials online I still couldn&amp;#8217;t get this to work for me. There isn&amp;#8217;t a tutorial out there that quite matched what I was needing. Finally I sucked up my pride and asked my boss (who already has diffmerge working on his system) if I could take a look at his setup, and that was the final step. So I am going to save you the trouble I went through and provide examples of the .sh files (bash scripts) and .gitconfig configurations you will need for this to work. Of course you may need to change a couple paths though.&lt;/p&gt;


&lt;p&gt;First, you will need to go here and download the latest Windows installer of SourceGear DiffMerge.&lt;/p&gt;


&lt;p&gt;Second, you will need these 2 .sh files. I put them in a folder called &amp;#8216;GitConfigFiles&amp;#8217; in my user directory.&lt;/p&gt;


&lt;script src="https://gist.github.com/1176170.js?file=diffmerge-diff.sh"&gt;&lt;/script&gt;


&lt;script src="https://gist.github.com/1176170.js?file=diffmerge-merge.sh"&gt;&lt;/script&gt;


&lt;p&gt;You may need to modify the paths in these two files, depending on where you installed DiffMerge on your system.&lt;/p&gt;


&lt;p&gt;And third, open your .gitconfig file back up and delete the &amp;#8216;merge&amp;#8217;, &amp;#8216;mergetool&amp;#8217;, &amp;#8216;diff&amp;#8217;, and &amp;#8216;difftool&amp;#8217; sections and paste in this:&lt;/p&gt;


&lt;script src="https://gist.github.com/1176170.js?file=gitconfigEdit"&gt;&lt;/script&gt;


&lt;p&gt;Now anytime you fire up your difftool or mergetool from the git command line, DiffMerge will pop up, instead of KDiff. Yay!&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Step 4: Experiencing Git through Windows Powershell&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Since we are working on a Windows system and not a Unix based system, lets close the bash console and open up Windows Powershell. It is already installed if you are running Windows Vista or newer. By no means am an expert on Powershell, but if you would like to learn more you should start here.&lt;/p&gt;


&lt;p&gt;Since you installed git to be included on the system path, you can go ahead and start using git from Powershell as is. But you will quickly realize that something is wrong. You no longer have any &amp;#8216;git&amp;#8217; related info on your console telling you what branch you&amp;#8217;re in, and you no longer have branch name tab completion. This is a huge issue. But have no fear! Someone out there has written a series of Powershell scripts that, once setup, give you not only your branch name in the console and branch name tab completion, but also some basic information about the current state of your branch and git command tab completion. Here&amp;#8217;s a screenshot of some git commands in action:&lt;/p&gt;


&lt;p&gt;Note:Posh-Git will only work with Powershell 2.0 or newer.&lt;/p&gt;


&lt;p&gt;&lt;img alt="" src="gitPic2.jpg" /&gt;&lt;/p&gt;


&lt;p&gt;You&amp;#8217;ll notice the &amp;#8216;[master +2 ~0 -0 !]&amp;#8217; in the screen shot. This is telling me that I am in the &amp;#8216;master&amp;#8217; branch, 2 files have been added within the repository, no files have been modified, no files have been deleted, and the &amp;#8216;!&amp;#8217; tells me that the files added have not yet been added to the repository. After I call &amp;#8216;git add .&amp;#8217; the text turns blue and the &amp;#8216;!&amp;#8217; goes away, telling me new files have been added, but have not yet been commited. It&amp;#8217;s very handy to have this info there for me.&lt;/p&gt;


&lt;p&gt;To get this working you&amp;#8217;ll need to navigate to the directory on your system where you would like to store the posh-git files with Powershell and type this command:&lt;/p&gt;


&lt;p&gt;&amp;#8216;git clone https://github.com/dahlbyk/posh-git.git&amp;#8217;&lt;/p&gt;


&lt;p&gt;This will pull a full copy of all the most recent posh-git files directly from GitHub.&lt;/p&gt;


&lt;p&gt;Before going on to the next step you will need to set Powershell to allow custom scripts to run. To do this, open Windows Powershell and run this command:&lt;/p&gt;


&lt;p&gt;&amp;#8216;Set-ExecutionPolicy unrestricted&amp;#8217;&lt;/p&gt;


&lt;p&gt;Now you can navigate to the Post-Git files and run:&lt;/p&gt;


&lt;p&gt;&amp;#8216;.install.ps1&amp;#8217;&lt;/p&gt;


&lt;p&gt;This installs the scripts into Powershell for you. Now you can restart your Powershell console you and will have all the Git goodness I told you about.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Step 5: Console2 FTW!&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;This last step is totally optional, but is a lot of fun. I use an open source program called Console2 to run my other consoles. This gives you a couple extra options you otherwise would not have; i.e.:&lt;br /&gt;
-easy copy and paste from the console window&lt;br /&gt;
-configurable background settings&lt;br /&gt;
-multiple consoles open through different tabs&lt;/p&gt;


&lt;p&gt;To get this setup you&amp;#8217;ll first need to download Console2. Then copy the Console2 files to a directory on your system; I put them in a folder called &amp;#8216;Console2&amp;#8217; under my program files. This application does not require installation, you can now just run it. Once you have it open, go to it&amp;#8217;s settings and click on the &amp;#8216;tabs&amp;#8217; section. In here you will add a new tab and point it to the powershell executable; which is under:&lt;/p&gt;


&lt;p&gt;&amp;#8216;C:WindowsSystem32WindowsPowerShellv1.0&amp;#8217;&lt;/p&gt;


&lt;p&gt;Than move up this new tab in the tab order so it is the default tab when you open Console2. You can now also play with the different settings to your hearts content to change the background and fonts of your console.&lt;/p&gt;


&lt;p&gt;Closing&lt;/p&gt;


&lt;p&gt;If you have made it this far, you now successfully have Git running with Notepad and SourceGear DiffMerge, through Windows Powershell, which is running through Console2. Isn&amp;#8217;t that just geektastic? Well I hope this post was helpful. Feel free to ask questions, post comments/corrections, or just generally make fun of me below. This post was made possible by:&lt;br /&gt;
Git Environment on Windows(http://markembling.info/view/git-environment-windows) by Mark Embling&lt;br /&gt;
and&lt;br /&gt;
Setting up SourceGear DiffMerge with Git(http://therightstuff.de/2009/01/28/Setting-Up-SourceGear-DiffMerge-With-Git.aspx) by Alexander Groß&lt;br /&gt;
and&lt;br /&gt;
Ryan Whitaker, my gracious boss&lt;br /&gt;
and&lt;br /&gt;
The Number &amp;#8216;5&amp;#8217;&lt;/p&gt;

&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/oUWTvLI_t_o" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/setting-up-git-in-windows-with-diffmerge/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Setup Netbeans for Zend Framework Development]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/nuF7TfFJnSo/" />
    <updated>2010-11-24T12:00:00-08:00</updated>
    <id>http://jdonley83.com/blog/setup-netbeans-for-zend-framework-development</id>
    <content type="html">&lt;p&gt;If you want to work with Zend Framework, there really isn&amp;#8217;t too much more setup needed than a regular php site, especially if you use the built in zf.bat tool. Doing this a developer can have a functioning application skeleton up within a couple minutes, not including the time used to download Zend Framework. Than the developer is ready to start working on their new app using their favorite code editors.&lt;/p&gt;

&lt;p&gt;Me though, I prefer working in an IDE. I know that this greatly damages any &amp;#8216;Elite&amp;#8217; status I may have, but I do think, if used well, an IDE can increase the productivity of a developer. I am extremely biased though, in school, after some fun in text editors, we quickly moved to Netbeans for Java development, and I work in .Net full time for a living; and I have yet to meet an Asp.Net developer who could work as well with or without Visual Studio.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;Outside of .Net I prefer to program using Netbeans. It has language support out there for the big open source Languages: Java, PHP, Ruby, and more. The most recent version of Netbeans has really ramped up it&amp;#8217;s PHP support. It now has tooling for Zend Framework built in that rivals the tooling of Zend Studio, but Zend Studio has a bit of a price tag. I encourage PHP developers in the wild to give Netbeans a try and here I present the the steps needed in doing so.&lt;/p&gt;

&lt;p&gt;Step 1: Get Zend Framework (if you don&amp;#8217;t have it already)&lt;/p&gt;

&lt;p&gt;The first thing you need to do is get the Zend Framework files. Luckily Zend Framework installs with PHP now so this step can be skipped. If you don&amp;#8217;t have the files, or would like to get a more up to date version go here and download your package of choice. I suggest just downloading the zip of &amp;#8216;Zend Framework 1.11.0 Full&amp;#8217; as I&amp;#8217;m not interested in using Zend Server since already use Apache and I&amp;#8217;m just wanting the framework and not things like the Dojo Toolkit.&lt;/p&gt;

&lt;p&gt;Step 2: Put ZF on Your Include Path&lt;/p&gt;

&lt;p&gt;The next thing you need to make sure to do is put the Zend Framework Library on your include path. To do this pop open your &amp;#8216;php.ini&amp;#8217; file and find the line that reads:&lt;/p&gt;

&lt;p&gt;&amp;#8216;include_path = &amp;#8220;.;C:phpincludes&amp;#8221;&amp;#8217;&lt;/p&gt;

&lt;p&gt;I run a windows system, thus the &amp;#8216;C:&amp;#8217;. On a unix system it would look like:&lt;/p&gt;

&lt;p&gt;&amp;#8216;include_path = &amp;#8220;.:/php/includes&amp;#8221;&amp;#8217;&lt;/p&gt;

&lt;p&gt;Now tag a &amp;#8216;;&amp;#8217; after includes and type in the path to the &amp;#8216;library&amp;#8217; folder of your zend framework location. In my case my &amp;#8216;include path now reads:&lt;/p&gt;

&lt;p&gt;&amp;#8216;include_path = &amp;#8220;.;C:phpincludes;C:phpZendZendFrameworklibrary&amp;#8221;&amp;#8217;&lt;/p&gt;

&lt;p&gt;Now restart Apache (or whatever server you are using) to apply these changes.&lt;/p&gt;

&lt;p&gt;Step 3: Point Netbeans to the zf.bat&lt;/p&gt;

&lt;p&gt;If you haven&amp;#8217;t already go ahead and download/install Netbeans, be sure to download a version the has the PHP feature set. After you have netbeans up and running you&amp;#8217;ll need to let Netbeans know where your ZF stuff is. To do this you&amp;#8217;ll need to go to the tools menu, and click on options. Once the options screen pops up click on the PHP icon to bring up all the PHP related settigns. You should now be able to see a tab for &amp;#8216;Zend&amp;#8217;; click it. You should now see something like this:&lt;/p&gt;

&lt;p&gt;&lt;img src="zendPic1.png" title="zend pic 1" alt="zend pic 1" /&gt;&lt;/p&gt;

&lt;p&gt;You&amp;#8217;ll want to browse and find your zf.bat file and than click the &amp;#8216;Register Provider&amp;#8217; button. Once you&amp;#8217;ve done this Netbeans can execute ZF commands for you.&lt;/p&gt;

&lt;p&gt;Step 4: Setting a Hot Key for the ZF Commands?&lt;/p&gt;

&lt;p&gt;If you want to take full advantage of the new Netbeans ZF features you will want to set a shortcut to open the ZF commands window. To do this go back to Tools-&amp;gt;Options and go to the Keymap settings. Type &amp;#8216;Zend&amp;#8217; in the search box and the &amp;#8216;Zend: Run Command..&amp;#8217; option should be there. Set the shortcut to &amp;#8216;Alt+Z&amp;#8217; or something similar. Now you can press &amp;#8216;Alt+Z&amp;#8217; when working on your ZF projects and see something like this:&lt;/p&gt;

&lt;p&gt;&lt;img src="zendPic2.png" title="zend pic 2" alt="zend pic 2" /&gt;&lt;/p&gt;

&lt;p&gt;Step 5: Creating Your Zend Project&lt;/p&gt;

&lt;p&gt;Now go ahead and create your new ZF Project. You just create a new php project, but be sure to enable the Zend Framework setting during the project creation process.&lt;/p&gt;

&lt;p&gt;Step 6: Setup Your Host Files&lt;/p&gt;

&lt;p&gt;The very last thing you need to do to really get started on your ZF app is to set up your host files. To do this you need to modify 2 files. Your &amp;#8216;host&amp;#8217; files and Apache&amp;#8217;s vhost settings, be they in the main apache config or in a separate vhost file. In the host file add the customary &amp;#8216;127.0.0.1   zf-test.com&amp;#8217; where zf-test.com is the name for your new app on your local server.&lt;/p&gt;

&lt;p&gt;Next go into your servers vhost settings and insert these lines:&lt;/p&gt;

&lt;script src="https://gist.github.com/1176213.js?file=vhost.xml"&gt;&lt;/script&gt;


&lt;p&gt;In my case my app lives at &amp;#8216;C:webrootzf-test&amp;#8217;&lt;/p&gt;

&lt;p&gt;Step Last: Really this is the last step!&lt;/p&gt;

&lt;p&gt;Now restart your server and point your browser to the &amp;#8216;hostname&amp;#8217; you set up (in this example &amp;#8216;zf-test.com&amp;#8217;, and you should see this screen:&lt;/p&gt;

&lt;p&gt;&lt;img src="zendPic3.png" title="zend pic 3" alt="zend pic 3" /&gt;&lt;/p&gt;

&lt;p&gt;If you see this screen you have successfully setup your app and can now move on to actually developing your app.&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;

&lt;p&gt;If you have any questions feel free to either leave a comment our use my contact form on the contact page.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/nuF7TfFJnSo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/setup-netbeans-for-zend-framework-development/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[And It Begins!]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/IUk2BH53mC0/" />
    <updated>2010-11-22T12:00:00-08:00</updated>
    <id>http://jdonley83.com/blog/and-it-begins</id>
    <content type="html">&lt;p&gt;And it begins! I actually started work on the app I mentioned in my last post. So far the chosen name for it is &amp;#8216;Musicthwack&amp;#8217;, I&amp;#8217;ve owned the domain for musicthwack.com for over a year now. All I really accomplished this weekend was building the skeleton for the app to be built upon.&lt;/p&gt;

&lt;p&gt;I split the app between four separate projects: Musicthwack.Web, Musictwack.Admin, Musictwack.Domain, and Musicthwack.Test. .Web is the public facing UI portion which will be using ASP.NET MVC 3.0. .Admin will be the administration side of the site used by administrators like me to manage existing users and generate reports and such, this will also be done in ASP.NET MVC. .Domain will be the class library which contains all of the actual business logic of the application, and .Test will contain any unit tests verifying functionality.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;I don&amp;#8217;t plan to practice strict TDD on this project, but I do want to make sure the functionality is covered with a suite of unit tests. This makes me feel more safe and cozy during future changes, giving me a indicator if something I have done has broken some functionality. To accomplish this I&amp;#8217;m going to use a combination of Ninject, Moq, and NUnit. Ninject is a DI (Dependency Injection) library that is fairly easy to use. Moq is a library used to &amp;#8216;mock&amp;#8217; objects, such as data stores, so your unit tests do not need to run off of your database; which speeds test runs up greatly. NUnit is one of the most popular unit testing frameworks out there for C# development. I would use the built in Visual Studio Unit testing framework, but this does not come with the free Visual Web Developer. Using NUnit allows others that do not have Visual Studio Pro to work on this project with me.&lt;/p&gt;

&lt;p&gt;As I mentioned, I want to keep this project setup in a way that others can help me work on this without having to purchase any software. All anyone will need in order to help is a copy of Visual Web Developer, SQL Server Express, the .Net 4.0 framework, and ASP.NET MVC 3.0. These are all available and easy to install using the MS Web Platform Installer. Since Visual Web Developer only lets a user have a project open at a time, and not a whole solution, I&amp;#8217;ve included a build.bat file in the repository that will build the whole solution for you, that way you don&amp;#8217;t have to open each separate project to get everything functional. I&amp;#8217;ve also included a .mdf database file which will need to be copied to &amp;#8216;c:db&amp;#8217;. Once this is done, a developer or designer can work on the project and use the web-server built into Visual Web Developer to run the application.&lt;/p&gt;

&lt;p&gt;Also, I must mention that the project is hosted at Github here: musicthwack. You will need to have and know at least the basics of using Git in order to work on this project. On this project I&amp;#8217;m going to try to stick to a branching scheme as described here. The idea is that there are always two branches that will never end: master and development. Master is meant to be always kept in perfect working order. And work you do should be in a branch merged off from the development branch. When the development branch reaches a state ready for release it is merged down to master and a release branch is made from master. The article also takes into account things like hotfixes and bugfixes.&lt;/p&gt;

&lt;p&gt;I did go ahead and throw in some third party code to help with user management. It is called aspmvc membership starter kit. It gives your application user and role management right off the bat using the Asp.net 2.0 authentication system. It has an admin UI for adding and deleting users, adding and deleting roles, and assigning roles, along with built-in password reset functionality. I put this in the Musicthwack.Admin app since it will never be available to the public.&lt;/p&gt;

&lt;p&gt;This did seem like a bit of work just for the setup, but I think it is going to be a strong foundation to what has the possibility of becoming great software. I plan on tackling account functionality first off, but I&amp;#8217;m not sure how much time I&amp;#8217;ll have this week, it being a holiday week and all. We&amp;#8217;re taking Alex, our son, to see his Great Grand Parents for Turkey Day.&lt;/p&gt;

&lt;p&gt;If you have any questions or are interested in jumping on board and helping out feel free to comment below or contact me. I&amp;#8217;ve got a slew of good reference links for those new to Git if anyone&amp;#8217;s interested.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/IUk2BH53mC0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/and-it-begins/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Too big to Tackle]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/j1LfLKN4UJI/" />
    <updated>2010-11-19T12:00:00-08:00</updated>
    <id>http://jdonley83.com/blog/too-big-to-tackle</id>
    <content type="html">&lt;p&gt;For over a year now I have been keeping this major project in the back of my mind. It seems like a great idea, at least to me. Here&amp;#8217;s the gist of it:&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s a social media site for the local music scene. Now I know most of you saw the words &amp;#8216;social media&amp;#8217; and have either hit the back button (in which case your no longer reading this anyways) or you just rolled your eyes in annoyance. I know what you&amp;#8217;re thinking, there are enough social media site out there already. But let me prove my point.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;I want to create a central point for all news and events for a certain musical community. Myspace music is great, but in order to find your local bands, you have to dig through pages of ads and ignore flashy paid spots for mainstream bands. This site would make it ridiculously simple for a band to set up a profile with music tracks, videos, and pictures to promote themselves. Even let them customize the design of their band profile if they want to. These profiles would be searchable by potential fans that can also have profiles of their own. And just like any other social site profiles can link up with other profiles, and create networks of channels for bands and fans that would otherwise have never crossed paths to discover each other.&lt;/p&gt;

&lt;p&gt;Bands would also be able to set custom statuses; such as &amp;#8216;looking for a drummer&amp;#8217;, or &amp;#8216;in need of a gig&amp;#8217;. These statuses would be used in the local musician&amp;#8217;s classifieds that would be part of the site. Say you are a guitar player that likes to play shred metal. You would have your own musician&amp;#8217;s profile with a couple audio tracks demonstrating your mastery of the six string, along with a little info about yourself, and you could go to the classifieds section of the site, select looking for band, in need of a [guitar], in the genre of [metal]. And magically all local metal bands that are looking or guitarists would show in the search results.&lt;/p&gt;

&lt;p&gt;The same thing could also be done in reverse. The musician can set their status to looking for a band. Than metal bands looking for a guitar player would go to the classifieds: select looking for a metal guitarist and the search would pull up all available guitarists that happen to have [metal] listed as one of the genres of choice.&lt;/p&gt;

&lt;p&gt;These are just some rough ideas. If you have any ideas that you would want to see implemented in this feel free to comment below. Also if you would like to help, feel free to contact me. I&amp;#8217;m planning to develop this using Asp.Net Mvc 3.0, which is very awesome, no matter what others have told you.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/j1LfLKN4UJI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/too-big-to-tackle/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Web Development in OKC After 1.5 Years]]></title>
    <link href="http://feedproxy.google.com/~r/Jdonley83/~3/lI4uypd4ymY/" />
    <updated>2010-10-17T12:00:00-07:00</updated>
    <id>http://jdonley83.com/blog/web-development-in-okc-after-1-dot-5-years</id>
    <content type="html">&lt;p&gt;My name is Joseph Donley and this is my very first blog post. I figured that an overview of web development as I see it after a year and half in the field would be the perfect first topic. I have met many local developers working in different platforms, and have gone to user group meetings of multiple local groups. Having done this I have met many very talented individuals who truely are masters of their craft. Web development is alive and well in OKC.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;As I&amp;#8217;ve already mentioned I&amp;#8217;ve only been in the field for about a year and a half, and it has been a whirlwind of a year. Before starting at Element Fusion as a development intern in June of &amp;#8216;09 I&amp;#8217;d only started school for Programming and Software Development at Francis Tuttle Technology Center in September of &amp;#8216;08. Busting my butt I got through the school material and by the end of the next spring I had gotten the break of my life and was accepted into the EF summer internship. During all of this my son Alex was born. He has brought a whole new level of importance to my life. I&amp;#8217;d planned to go back and finish the program at Francis Tuttle but I had gotten hired on at EF at the end of the internship. I value greatly the education I recieved from Francis Tuttle and will forever be thankful for the teachings and wisdom of Marc Hill, who is now retired.&lt;/p&gt;

&lt;p&gt;While in school I learned Java and MySql amoung a few other things. But on the job I was flying by the seat of my pants. Not only was the work .Net/C# and it was also in one of the newest web technologies available from Microsoft, Asp.Net MVC. Along with that I got to work in a very wide array of different languages. The first few months were definately an adventure.&lt;/p&gt;

&lt;p&gt;Even though my day job is in .Net is still love to learn and work in other technologies in my free time. This means going to different user groups and writing code after hours for fun. I actively try to attend the PHPOKC, OKCJUG, OKCDev Group (.net), OKCRefresh, and special developer events such as Open Beta. In doing this I&amp;#8217;ve gotten a bit of a feel for the web development community of OKC.&lt;/p&gt;

&lt;p&gt;It seems that the biggest portion of web development here is done in PHP. But as you move up to enterprise level most web development is in .Net with a little in Java technologies. There is a very strong Ruby on Rails community here as well, but I don&amp;#8217;t think most businesses have even considered this technology. The development community has strong dividing lines. It almost seems like a developer is either working in .net or Linux hosted solutions. I guess I&amp;#8217;m a strange exception.  Sometimes I can sense disdain between the different groups. I find this sad.&lt;/p&gt;

&lt;p&gt;Marc Hill taught us that programming languages are tools, and each tool has it&amp;#8217;s place and use. Also bad code can be written in any language, it can be more of a challenge to write good code in some languages though. The .Net platform seems to provide tools that make production of good code easier, and I can definately see an arguement against .Net for this reason. If production quality code can be written by less skilled individuals the need for higher skilled programmers is lessened. Drag and drop application development is a good example of this. I see this arguement, but I know that individuals in the field who are only at this level do not last long at a job. .Net technologies in the hands of a skilled progammer is an amazing thing.&lt;/p&gt;

&lt;p&gt;With all that said, I enjoy working in .Net technologies; which is a good thing, since I do this as a full time job. I also enjoy working in PHP in my free time. The PHP community is very strange here though. There are many PHP developers in town, but it&amp;#8217;s really hard to get them to come out for social events. I understand not wanting to program in your free time. Some people like to program for work, and the idea of doing this for fun is just not how they want to spend their time off. But me, I love playing with code.&lt;/p&gt;

&lt;p&gt;I blame the antisocial aspect of the local PHP community on the divided nature on PHP itself. Languages like C# and Ruby only have one framework; .Net and Rails respectively(and I know about Sinatra, but it does not have the following that Rails carries). Whereas PHP has no central framework. There are 4 major frameworks in the PHP world: Zend Framework, CakePHP, Code Igniter, and Symphony. There are many other frameworks out there with smaller followings like Lithium and Kohana. This has caused the PHP community to be split much like the general spit among the whole development community over server technologies. Most PHP developers specialize in a framework or two, and that is about the extent of the work they will take on. It is very rare for a PHP developer to be experienced/skilled in multiple framworks and be knowledgeable in all of the different major PHP CMS solutions(Wordperss, Drupal, Joomla).&lt;/p&gt;

&lt;p&gt;Even with all the division, the web development field is booming here in OKC. Every day I see developers helping each other over twitter and mail lists. Local entusiasts are supporting advancement of the community by hosting events such as Open Beta and MashupCamp. Startups are popping up and I&amp;#8217;ve seen multiple small ideas boom into striving businesses. It is an exciting time to be a web developer, especially here in OKC!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Jdonley83/~4/lI4uypd4ymY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://jdonley83.com/blog/web-development-in-okc-after-1-dot-5-years/</feedburner:origLink></entry>
  
</feed>
