<?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-3739877714301780025</id><updated>2012-01-19T18:15:16.668-08:00</updated><category term='PHP'/><category term='Drupal'/><category term='daily events'/><category term='idea'/><category term='minecraft'/><category term='tech'/><category term='Ruby'/><category term='security'/><category term='christian walk'/><category term='rants'/><category term='code'/><category term='work'/><category term='gaming'/><category term='Hack of the Day'/><category term='life'/><title type='text'>Nick Shobe</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-7342713420536906261</id><published>2012-01-06T11:08:00.000-08:00</published><updated>2012-01-06T11:08:11.226-08:00</updated><title type='text'>New Favorite Android App</title><content type='html'>I just installed &lt;a href="https://market.android.com/details?id=com.zegoggles.smssync"&gt;SMS Backup +&amp;nbsp;&lt;/a&gt;&amp;nbsp;on my Nexus S, it is really great. The app exported all my sms messages into gmail as full conversations and tagged them as SMS. It also added all my phone logs to google calendar in my new "Phone Calls" calendar. So now I have a great record of pretty much everything on my phone in my google account. As an added bonus, the app is licensed under the Apache license and is hosted on &lt;a href="https://github.com/jberkel/sms-backup-plus"&gt;Github&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-7342713420536906261?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/7342713420536906261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2012/01/new-favorite-android-app.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/7342713420536906261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/7342713420536906261'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2012/01/new-favorite-android-app.html' title='New Favorite Android App'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-2675313647225246856</id><published>2011-12-02T11:18:00.001-08:00</published><updated>2011-12-02T11:28:11.322-08:00</updated><title type='text'>Satirical Office Humor</title><content type='html'>&lt;br /&gt;&lt;div class="p1"&gt;I share an office with several of our new media confederates one who has a great deadpan sense humor.&amp;nbsp;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Co-worker from accross the hall comes in&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Co-worker: "I sent you a funny lol cats"&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Office Mate: Oh really?&amp;nbsp;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Co-worker: Well you should like that cat stuff, you having cats and all... Right?&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Office Mate: Well no… Actually I don't have cats anymore.&amp;nbsp;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Co-worker: Oh (puzzled look)?&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Office Mate: They all died... Thank you for reminding me of that fact though!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-2675313647225246856?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/2675313647225246856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2011/12/satirical-office-humor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/2675313647225246856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/2675313647225246856'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2011/12/satirical-office-humor.html' title='Satirical Office Humor'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-261835007268343721</id><published>2011-10-19T17:55:00.000-07:00</published><updated>2011-10-19T19:24:43.120-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><title type='text'>Ruby compact only compacts one level deep</title><content type='html'>My simple solution... recursively remove nil. Kinda lame but oh well.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;nbsp; #&lt;br /&gt;&amp;nbsp; # Recursively clean nils out of our array structures...&lt;br /&gt;&amp;nbsp; #&lt;br /&gt;&amp;nbsp; def arrayDeepCompact(array)&lt;br /&gt;&amp;nbsp; &amp;nbsp; array.each do |element|&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; if element.kind_of?(Array)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; element.compact!&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; arrayDeepCompact(element)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; end&lt;br /&gt;&amp;nbsp; &amp;nbsp; end&lt;br /&gt;&amp;nbsp; end&lt;/blockquote&gt;Or if you prefer an extension&lt;br /&gt;&lt;blockquote&gt;#&lt;br /&gt;# Recursively clean nils out of our array structures...&lt;br /&gt;#&lt;br /&gt;class Array&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; def deep_compact()&lt;br /&gt;&amp;nbsp; &amp;nbsp; dc(self)&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; private&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; def dc(array)&lt;br /&gt;&amp;nbsp; &amp;nbsp; array.each do |element|&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; if element.kind_of?(Array)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; element.compact! #compact first so won't need to itter over nil&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dc(element)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; end&lt;br /&gt;&amp;nbsp; &amp;nbsp; end&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&lt;br /&gt;end&amp;nbsp;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-261835007268343721?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/261835007268343721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2011/10/ruby-compact-only-compacts-one-level.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/261835007268343721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/261835007268343721'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2011/10/ruby-compact-only-compacts-one-level.html' title='Ruby compact only compacts one level deep'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-2644853362295011399</id><published>2011-08-03T01:42:00.000-07:00</published><updated>2011-08-03T01:42:04.644-07:00</updated><title type='text'>Serving a broken world in a critical hour!</title><content type='html'>Recently I have been involved with some technical mission work from the relative comfort of my home. I helped setup a Concrete5 site for Malamulo hospital&amp;nbsp;&lt;a href="http://www.malamulohospital.org/"&gt;http://www.malamulohospital.org/&lt;/a&gt;. The main need was to have a nice face for the international public and grant writing. What I am seeing though is, although we met the requested need for a nicer website/cms, there doesn't seem to be anyone with the time or skill to pick up the actual content entry. What is frustrating is I have time, but no content, so I am really just stuck waiting for something to happen.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I also discovered that they have several other software/IT related needs, but I don't have enough on the ground&amp;nbsp;incite&amp;nbsp;into their real world practices to&amp;nbsp;properly&amp;nbsp;address them. At OSCON this year I did meet a gent named Isaac Holeman&amp;nbsp;&lt;a href="http://www.isaacholeman.org/"&gt;http://www.isaacholeman.org/&lt;/a&gt;&amp;nbsp;that does have such experience and incite, and he seems quite willing to share some with our team.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All this leads to why I titled my post specifically in a critical hour. I am firmly convinced that far to many of my fellow technology professionals(including me) have been far to complacent with the endless success of open source and technology as a whole and are ignoring the basic needs of billions&amp;nbsp;across&amp;nbsp;the globe. Doesn't it seem horrific that we would stand in line for hours to get an iPhone, but not think twice about those who waste away their lives building them for a wealthy western world. I don't want to run a major guilt trip here, but it as populations grow, those in need grow ever faster.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As a Christian, I feel ever more responsible for the wellbeing of my neighbors, both spiritually and physically. After all, how can one address the emotional, spiritual and beliefs of an individual without attending to the basic needs of&amp;nbsp;hunger, shelter and safety. It is now ever more important that I stand for what is right, good and true and not waste time chasing after fake success and fun times. God asks us to serve others where he has placed us and with the talents and skills he has given us. I don't want to squander them on "my&amp;nbsp;pursuits".&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-2644853362295011399?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/2644853362295011399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2011/08/serving-broken-world-in-critical-hour.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/2644853362295011399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/2644853362295011399'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2011/08/serving-broken-world-in-critical-hour.html' title='Serving a broken world in a critical hour!'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-8642053231939673955</id><published>2011-06-05T12:56:00.000-07:00</published><updated>2011-06-05T12:59:52.707-07:00</updated><title type='text'>Graduation</title><content type='html'>The last few months have been quite busy, but I finally have my BSIT degree. What a relief it is to come home and NOT log in to school and do homework! I haven't become used to the whole idea yet, but I am sure that in a month or two I will accept the idea. I have been having the typical late assignment dreams and it's only been 5 days since my last class ended ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-8642053231939673955?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/8642053231939673955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2011/06/graduation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/8642053231939673955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/8642053231939673955'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2011/06/graduation.html' title='Graduation'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-3041932511144303618</id><published>2010-11-18T13:11:00.000-08:00</published><updated>2010-11-18T13:47:36.356-08:00</updated><title type='text'>CRM Definition Language</title><content type='html'>After working with SalesForce and now SugarCRM for several months I have experienced the growing pains that come from reaching the bleeding edge of functionality needs yet again.&lt;br /&gt;&lt;br /&gt;One thing that hit me recently is the idea of separating the CRM application from the application's presentation space. I began thinking that CRM designers shouldn't need to specify the data layer, nor the presentation layer during the application design phase. Sugar does a pretty good job with abstracting away the database maintenance, however it comes at a significant cost. Most of the default objects in Sugar cannot be replicated in the included module builder nor studio. This specifically includes advanced object relationships and the transfer of ownership between parent data types.&lt;br /&gt;&lt;br /&gt;This level of functionality requires a good deal of custom coding, which would be fine except the coding must be done to the database queries, vardefs and viewdefs and application front end code. So I ask myself, why include functionalities in the first place that aren't available when building a new custom module?&lt;br /&gt;&lt;br /&gt;I looked at several other CRM options like vTiger and openCRX, but it still seems they all suffer from a similar issue. The underlying issue is application portability and the separation of CRM data and application.&lt;br /&gt;&lt;br /&gt;I think there needs to be a shift in the design methodologies for CRM and other relationship management applications. The design shift should be towards application independence and an open CRM specification.&lt;br /&gt;&lt;br /&gt;The specification would be an open standard for the definition of an applications data and functionality relationships. The application would then exist in the specification only, and would allow the rendering application to handle the construction of data structures, GUI design, interaction between users, application and data.&lt;br /&gt;&lt;br /&gt;Ideally an application's specification would be represented in a simple XML document. The design could be done by hand or by an application and then published to the service provider or front end application. The front end application would consume the specification and generate the appropriate database schema and structure and corresponding GUI elements.&lt;br /&gt;&lt;br /&gt;I have begun to outline the functionality of my .01 version of the specification in and eventually I hope to publish it and see if anyone has some valuable feedback or if it could possibly scratch a few itches.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-3041932511144303618?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/3041932511144303618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2010/11/crm-definition-language.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/3041932511144303618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/3041932511144303618'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2010/11/crm-definition-language.html' title='CRM Definition Language'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-595120013912318342</id><published>2010-11-12T01:39:00.000-08:00</published><updated>2010-11-12T01:51:28.252-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='minecraft'/><category scheme='http://www.blogger.com/atom/ns#' term='gaming'/><title type='text'>My first XOR gate in Minecraft Woot!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DxmOmQ4RLvM/TN0MrgC0jUI/AAAAAAAAB1g/GVAY7Xzzmb8/s1600/MyFirstXORGate.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 182px;" src="http://2.bp.blogspot.com/_DxmOmQ4RLvM/TN0MrgC0jUI/AAAAAAAAB1g/GVAY7Xzzmb8/s320/MyFirstXORGate.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5538597058211253570" /&gt;&lt;/a&gt;I decided to implement this XOR gate to allow my doors to open and shut from either side... Only issue is I need to implement some slightly more complex logic to really get the functionality I want... Maybe tomorrow night eh.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Who ever said gaming wasn't educational, obviously hadn't played with Minecraft red stone circuits.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-595120013912318342?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/595120013912318342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2010/11/my-first-xor-gate-in-minecraft-woot.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/595120013912318342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/595120013912318342'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2010/11/my-first-xor-gate-in-minecraft-woot.html' title='My first XOR gate in Minecraft Woot!'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_DxmOmQ4RLvM/TN0MrgC0jUI/AAAAAAAAB1g/GVAY7Xzzmb8/s72-c/MyFirstXORGate.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-3919107362268473441</id><published>2010-07-30T01:42:00.000-07:00</published><updated>2010-07-30T01:47:23.490-07:00</updated><title type='text'>Fix for an odd Kubuntu 10.04 resolution bug</title><content type='html'>&lt;span style="font-size:130%;"&gt;This fix is for the Dell Optiplex 620 running Kubuntu 10.04&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ok so here goes&lt;br /&gt;&lt;br /&gt;The 915 resolution package has been superseeded  by the normal intel driver. So all you need to do is set the correct  modeline. I thought it was odd that my work optiplex 690 didn't have  any problem and an XBMC box sucked hard core with the resolution.  Since they are both Ubuntu 10.04 and both the exact same models. That is...  until I dropped Kubuntu on one at home. It only allowed a few  resolutions and not 1280x1024. I think it has to do with the DVI to VGA  converter I am using. Some how the EDID info gets messed up or  something.&lt;br /&gt;&lt;br /&gt;First run:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex; color: rgb(204, 0, 0);" class="gmail_quote"&gt;Xorg -configure&lt;br /&gt;sudo cp xorg.conf.new /etc/X11/xorg.conf&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Now go to &lt;a href="http://www.arachnoid.com/modelines/" target="_blank"&gt;http://www.arachnoid.com/&lt;wbr&gt;modelines/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I used a modeline:&lt;br /&gt;&lt;blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote"&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;edit your xorg.conf and place the modline in&lt;br /&gt;&lt;blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Section "Monitor"&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;add your resolution to the&lt;br /&gt;&lt;blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Section "Screen"&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div&gt;For each depth&lt;br /&gt;&lt;/div&gt;&lt;blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex; color: rgb(204, 0, 0);" class="gmail_quote"&gt;Modes "1280x1024"&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Now that I could change the resolution, I needed  it to stay through flippen reboots! Kde kept reverting back to a default  resolution&lt;br /&gt;SO!&lt;br /&gt;Run:&lt;br /&gt;&lt;blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote"&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;xrandr&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;it will print out your current configuration and available resolutions you can choose...&lt;br /&gt;&lt;br /&gt;For KDE I had to change the file&lt;span style="color: rgb(204, 0, 0);"&gt; /etc/kde4/kdm/Xsetup&lt;/span&gt;. I added this line and used data from running xrandr without arguments:&lt;br /&gt;&lt;blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;xrandr --output VGA1 --mode 1280x1024_60.00&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;I am not sure where this would go for gdm or other window/login  managers but it should probably go some place in the initial xorg  startup sequence.&lt;br /&gt;&lt;br /&gt;Hope this helps! Sheesh what a fix eh ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-3919107362268473441?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/3919107362268473441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2010/07/fix-for-odd-kubuntu-1004-resolution-bug.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/3919107362268473441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/3919107362268473441'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2010/07/fix-for-odd-kubuntu-1004-resolution-bug.html' title='Fix for an odd Kubuntu 10.04 resolution bug'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-7903501472543258567</id><published>2010-07-23T21:01:00.000-07:00</published><updated>2010-07-23T21:38:28.562-07:00</updated><title type='text'>OSCON</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;This week I attended my second OSCON event, and as usual it was quite inspiring! Of the presentations there where two in the development/sys admin area that I particularly enjoyed. The first was on developing web apps for mobile devices with JQuery, JQtouch, and Phone Gap. &lt;div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Over the past few years I have been toying with a project that involves a clipboard sync web service. Now I have some cool tools to roll out web and native apps quickly for the iPhone and Android devices quickly. (I do mean quickly) I just need to land on the best framework for my client apps... I am leaning toward Python still. I already have some code that I have been tinkering with for the client side but I ran into several snags on the OSX platform when dealing with the putScrap method (pout).&lt;/span&gt;&lt;/blockquote&gt;Anyhow, the second event I attended was the a session on using puppet to manage our IT infrastructure. The nice thing is, I convinced my boss to go to it also... I guess since I kept on ranting about this mystical "puppet" thingy he thought it might be interesting or something ;) I don't think I'll be the butt of any more Pinocchio or puppeteer jokes p;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the ideological realm, the presentation by Rolf Skyberg(eBay) "Doctor There's a Problem With My Innovation" on the innovation cycle hit really close to home! It seems at work we now have an innovation portal. Oh no! That was one of the most obvious signs of an innovation crisis, one that will likely end in disaster unless action is taken to correct it. Good thing I'm just an intern for now.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When it comes time to release my clip sync app, I will probably find todays talk about promoting my project on a shoe string budget quite helpful. I thought the tips where quite helpful... &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As a funny side note; during the closing keynote today, I was telling a co-worker how helpful I thought the sessions information was and that the presenter did a really good job... and was startled when he(the presenter) suddenly turned around and was like "thanks man I'm glad you liked it." Boy am I'm glad I was praising it! That could have been really embarrassing for both of us.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-7903501472543258567?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/7903501472543258567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2010/07/oscon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/7903501472543258567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/7903501472543258567'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2010/07/oscon.html' title='OSCON'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-8304629443004310261</id><published>2010-06-25T15:58:00.000-07:00</published><updated>2010-06-25T16:15:01.223-07:00</updated><title type='text'>First jQuery Experience</title><content type='html'>I've been following the jQuery project for a while now and have been impressed by it's simplicity. I hadn't actually used jQuery until this last week. So far it's been incredibly powerful, except for several small issues.&lt;br /&gt;&lt;br /&gt;The first issue came up when I was trying to implement drag and drop functionality. The first example from the jQuery website kept failing miserably. After a while I found solace in the sortable option once I discovered that it could be linked to other elements to implement the d&amp;amp;d functionality I needed.&lt;br /&gt;&lt;br /&gt;After a while though I discovered some unwanted side effects do the sortable object. It seems that the sortable applies to any of it's child elements, this included the desired sortable divs, and the not so desired span, and anchor tags I was using for titles and other formatting.&lt;br /&gt;&lt;br /&gt;I looked all over, google, irc, jQuery docs... No one seemed to be experiencing my exact problem. I was just about to create some special containers just for sorting when I found a semi-related post mentioning the .hover method.&lt;br /&gt;&lt;br /&gt;What I had been trying was to disable the sort on specific elements by applying the sortable('disable') method to them... however, this didn't work because the child elements don't have the sortable attributes themselves ): Instead what I needed to do was disable all sortables when the mouse hovered over the targeted elements.&lt;br /&gt;&lt;br /&gt;The code:&lt;br /&gt;&lt;blockquote&gt;$(".sortables").sortable({&lt;br /&gt;            connectWith: '.sortables',&lt;br /&gt;            placeholder: 'ui-state-highlight',&lt;br /&gt;            distance: 5,&lt;br /&gt;            opacity: .5,&lt;br /&gt;           });&lt;br /&gt;&lt;br /&gt;//disable and re-enable sortable on hover(in, out)       &lt;br /&gt;$('.noSortable').hover( function(event,ui){&lt;br /&gt;                 $('.sortables').sortable('disable');&lt;br /&gt;            },&lt;br /&gt;            function(event,ui){&lt;br /&gt;                 $('.sortables').sortable('enable');&lt;br /&gt;            });&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-8304629443004310261?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/8304629443004310261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2010/06/first-jquery-experience.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/8304629443004310261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/8304629443004310261'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2010/06/first-jquery-experience.html' title='First jQuery Experience'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-953142550527141901</id><published>2010-05-09T21:14:00.000-07:00</published><updated>2010-05-09T21:23:21.093-07:00</updated><title type='text'>Access Linux partitions from windows</title><content type='html'>So I decided I wanted to access my Linux partitions safely from windows. After brief research I decided to take a unique approach and here is my solution.&lt;br /&gt;&lt;br /&gt;Use VirtualBox, and mount my Linux hard disk from a Linux guest OS(ubuntu server). I then install CIFS(samba) and create a share to my Windows 7 install. The only drawback is I have to run a virtual machine, but in theory, it's safer then allowing Windows raw read/write access to my Linux partitions. Another issue is I must run VirtualBox as an administrator in order to read raw disks.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;A few pointers&lt;/span&gt;&lt;br /&gt;Run Cmd as admin (win7 type to run)&lt;br /&gt;cmd&lt;br /&gt;Ctrl+Shift+Enter (runs as admin)&lt;br /&gt;&lt;br /&gt;VBoxManage.exe internalcommands createrawvmdk -filename C:\Users\myuser\.VirtualBox\HardDisks\sdc1.vmdk -rawdisk \\.\PhysicalDrive1 -register&lt;br /&gt;&lt;br /&gt;Then add that vmdk to your Linux VM. Also remember to run VirtualBox as an admin...&lt;br /&gt;&lt;br /&gt;link properties-&gt;run as administrator.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-953142550527141901?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/953142550527141901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2010/05/access-linux-partitions-from-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/953142550527141901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/953142550527141901'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2010/05/access-linux-partitions-from-windows.html' title='Access Linux partitions from windows'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-7817585317943396535</id><published>2010-04-24T00:26:00.000-07:00</published><updated>2010-04-24T00:48:17.778-07:00</updated><title type='text'>New Project</title><content type='html'>I haven't posted for a while, because I've been super busy with work and school.&lt;br /&gt;&lt;br /&gt;Any how this week I bought a DLink DIR-825 and installed openwrt on it. At first I followed the steps on the site and installed a nightly build... Which worked, but the nightly build's web gui(LuCi) wasn't compiled/packaged correctly and wasn't included in the router image. After a few hours of digging I finally installed the latest release "backfire" it's working much better, although I do need to install the wireless drivers for my two radios. This router is an amazing platform. It has 8 megs flash and 64 ram, 680 mhz cpu, 2 radios 802.11g/n, and 5 gig lan ports. I have a 4gb usb stick that I am planning on using to hold software. This should allow me to do some pretty cool things with this router.&lt;br /&gt;&lt;br /&gt;I am may look into dd-wrt... not sure yet though, I really like openwrt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-7817585317943396535?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/7817585317943396535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2010/04/new-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/7817585317943396535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/7817585317943396535'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2010/04/new-project.html' title='New Project'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-4475020078268510640</id><published>2009-11-14T01:58:00.000-08:00</published><updated>2009-11-14T02:26:46.511-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>fail2ban vuurmuur plugin</title><content type='html'>I made a decent &lt;a href="http://www.vuurmuur.org"&gt;vuurmuur firewall&lt;/a&gt; plugin(action) for &lt;a href="http://www.fail2ban.org"&gt;fail2ban&lt;/a&gt;.  I am debugging it, because it takes a good minute to stop the service... I will update this post when I figure out what the heck is taking so long. I am also going to submit this to fail2ban for possible inclusion.&lt;br /&gt;&lt;br /&gt;I opted to go with the default behavior of fail2ban, which is to remove all bans on a restart. It is trivial to hardcode the network, and groups, if you don't want fail2ban messing with your vuurmuur structure or removing bans when it restarts.&lt;br /&gt;&lt;br /&gt;place this in /etc/fail2ban/action.d/vuurmuur.conf&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;# Author: Nick Shobe&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;[Definition]&lt;br /&gt;&lt;br /&gt;# Option:  actionstart&lt;br /&gt;# Notes.:  command executed once at the start of Fail2Ban.&lt;br /&gt;# Values:  CMD&lt;br /&gt;#&lt;br /&gt;# Create a zone in vuurmuur called fail2ban... this script will add the "&lt;name&gt;" network and all the hosts... you can use a custom rule in vuurmuur to block ports by network&lt;br /&gt;# You can make multiple rules that block specific ports if you don't want to globally block an ip... Do this like any customized rules.&lt;br /&gt;actionstart =     vuurmuur_script --create --network &lt;name&gt;.fail2ban&lt;br /&gt;       vuurmuur_script --modify --network &lt;name&gt;.fail2ban --variable ACTIVE --set Yes&lt;br /&gt;       vuurmuur_script --modify --network &lt;name&gt;.fail2ban --variable NETWORK --set 0.0.0.0&lt;br /&gt;       vuurmuur_script --modify --network &lt;name&gt;.fail2ban --variable NETMASK --set 0.0.0.0&lt;br /&gt;       append=''&lt;br /&gt;       for int in `vuurmuur_script --list --interface all`; do vuurmuur_script --modify --network &lt;name&gt;.fail2ban $append --variable INTERFACE --set $int ; append='--append' ; done&lt;br /&gt;       vuurmuur_script --create --group &lt;group&gt;.&lt;name&gt;.fail2ban&lt;br /&gt;       vuurmuur_script --modify --group &lt;group&gt;.&lt;name&gt;.fail2ban --variable ACTIVE --set Yes&lt;br /&gt;&lt;br /&gt;# Option:  actionstop&lt;br /&gt;# Notes.:  command executed once at the end of Fail2Ban&lt;br /&gt;# Values:  CMD&lt;br /&gt;#&lt;br /&gt;actionstop =      for group in `vuurmuur_script --list --group &lt;name&gt;.fail2ban`; do vuurmuur_script --delete --group $group; done&lt;br /&gt;       for host in `vuurmuur_script --list --host &lt;name&gt;.fail2ban`; do vuurmuur_script --delete --host $host; done&lt;br /&gt;       vuurmuur_script --delete --network &lt;name&gt;.fail2ban&lt;br /&gt;       vuurmuur_script --create --network &lt;name&gt;.fail2ban&lt;br /&gt;               vuurmuur_script --modify --network &lt;name&gt;.fail2ban --variable ACTIVE --set Yes&lt;br /&gt;               vuurmuur_script --modify --network &lt;name&gt;.fail2ban --variable NETWORK --set 0.0.0.0&lt;br /&gt;               vuurmuur_script --modify --network &lt;name&gt;.fail2ban --variable NETMASK --set 0.0.0.0&lt;br /&gt;               append=''&lt;br /&gt;               for int in `vuurmuur_script --list --interface all`; do vuurmuur_script --modify --network &lt;name&gt;.fail2ban $append --variable INTERFACE --set $int ; append='--append' ; done&lt;br /&gt;       vuurmuur_script --create --group &lt;group&gt;.&lt;name&gt;.fail2ban&lt;br /&gt;               vuurmuur_script --modify --group &lt;group&gt;.&lt;name&gt;.fail2ban --variable ACTIVE --set Yes&lt;br /&gt;       vuurmuur_script --reload&lt;br /&gt;     &lt;br /&gt;# Option:  actioncheck&lt;br /&gt;# Notes.:  command executed once before each actionban command&lt;br /&gt;# Values:  CMD&lt;br /&gt;#&lt;br /&gt;actioncheck = vuurmuur_script --list --host &lt;name&gt;.fail2ban | tr '-' '.'&lt;br /&gt;&lt;br /&gt;# Option:  actionban&lt;br /&gt;# Notes.:  command executed when banning an IP. Take care that the&lt;br /&gt;#          command is executed with Fail2Ban user rights.&lt;br /&gt;# Tags:    &lt;ip&gt;  IP address&lt;br /&gt;#          &lt;failures&gt;  number of failures&lt;br /&gt;#          &lt;time&gt;  unix timestamp of the ban time&lt;br /&gt;# Values:  CMD&lt;br /&gt;#&lt;br /&gt;actionban =     vuurmuur_script --create --host `echo &lt;ip&gt; | tr '.' "-"`.&lt;name&gt;.fail2ban&lt;br /&gt;       vuurmuur_script --modify --host `echo &lt;ip&gt; | tr '.' "-"`.&lt;name&gt;.fail2ban --variable IPADDRESS --set &lt;ip&gt;&lt;br /&gt;       vuurmuur_script --modify --host `echo &lt;ip&gt; | tr '.' "-"`.&lt;name&gt;.fail2ban --variable ACTIVE --set Yes&lt;br /&gt;       append=''&lt;br /&gt;       for x in `vuurmuur_script --print --group &lt;name&gt;.fail2ban --variable MEMBER`; do append='--append'; done&lt;br /&gt;       vuurmuur_script --modify --apply --group &lt;group&gt;.&lt;name&gt;.fail2ban $append --variable MEMBER --set `echo &lt;ip&gt; | tr '.' '-'`&lt;br /&gt;       vuurmuur_script --reload&lt;br /&gt;&lt;br /&gt;# Option:  actionunban&lt;br /&gt;# Notes.:  command executed when unbanning an IP. Take care that the&lt;br /&gt;#          command is executed with Fail2Ban user rights.&lt;br /&gt;# Tags:    &lt;ip&gt;  IP address&lt;br /&gt;#          &lt;failures&gt;  number of failures&lt;br /&gt;#          &lt;time&gt;  unix timestamp of the ban time&lt;br /&gt;# Values:  CMD&lt;br /&gt;#&lt;br /&gt;# If you want to keep known bad ip's around for review and moving to a perm ban list... use "--modify --variable ACTIVE --set No" instead of --delete You may need to change the way hosts are added to account for repeats.&lt;br /&gt;# this script prints all of the current group members, deletes and recreates the group... without the member to be removed.&lt;br /&gt;actionunban =     vuurmuur_script --delete --host `echo &lt;ip&gt; | tr '.' "-"`.&lt;name&gt;.fail2ban&lt;br /&gt;               append='d'&lt;br /&gt;               for member in `vuurmuur_script --print --group &lt;group&gt;.&lt;name&gt;.fail2ban --variable MEMBER`;&lt;br /&gt;               do if [ $append != '--append' ];then&lt;br /&gt;                       vuurmuur_script --delete --group &lt;group&gt;.&lt;name&gt;.fail2ban;&lt;br /&gt;                       vuurmuur_script --create --group &lt;group&gt;.&lt;name&gt;.fail2ban;&lt;br /&gt;                       vuurmuur_script --modify --group &lt;group&gt;.&lt;name&gt;.fail2ban --variable ACTIVE --set Yes;&lt;br /&gt;               fi;&lt;br /&gt;               tmp=`echo $member|grep -E -o "[0-9]{1,3}-[0-9]{1,3}-[0-9]{1,3}-[0-9]{1,3}"`;&lt;br /&gt;               if [ -z "$tmp" ]&lt;br /&gt;               then&lt;br /&gt;                       tmp='d';&lt;br /&gt;               fi&lt;br /&gt;               if [ $tmp != `echo &lt;ip&gt; | tr '.' "-"` ];&lt;br /&gt;                       then vuurmuur_script --modify --group &lt;group&gt;.&lt;name&gt;.fail2ban $append --variable MEMBER --set $member;&lt;br /&gt;               fi;&lt;br /&gt;               if [ $append != '--append' ];&lt;br /&gt;               then append='--append';&lt;br /&gt;               fi;&lt;br /&gt;               done&lt;br /&gt;               vuurmuur_script --reload&lt;br /&gt; &lt;br /&gt;[Init]&lt;br /&gt;&lt;br /&gt;# Defaut name of the chain&lt;br /&gt;#&lt;br /&gt;name = block&lt;br /&gt;&lt;br /&gt;group = blockedhosts&lt;br /&gt;&lt;/name&gt;&lt;/group&gt;&lt;/ip&gt;&lt;/name&gt;&lt;/group&gt;&lt;/name&gt;&lt;/group&gt;&lt;/name&gt;&lt;/group&gt;&lt;/name&gt;&lt;/group&gt;&lt;/name&gt;&lt;/ip&gt;&lt;/time&gt;&lt;/failures&gt;&lt;/ip&gt;&lt;/ip&gt;&lt;/name&gt;&lt;/group&gt;&lt;/name&gt;&lt;/name&gt;&lt;/ip&gt;&lt;/ip&gt;&lt;/name&gt;&lt;/ip&gt;&lt;/name&gt;&lt;/ip&gt;&lt;/time&gt;&lt;/failures&gt;&lt;/ip&gt;&lt;/name&gt;&lt;/name&gt;&lt;/group&gt;&lt;/name&gt;&lt;/group&gt;&lt;/name&gt;&lt;/name&gt;&lt;/name&gt;&lt;/name&gt;&lt;/name&gt;&lt;/name&gt;&lt;/name&gt;&lt;/name&gt;&lt;/name&gt;&lt;/group&gt;&lt;/name&gt;&lt;/group&gt;&lt;/name&gt;&lt;/name&gt;&lt;/name&gt;&lt;/name&gt;&lt;/name&gt;&lt;/name&gt;&lt;/span&gt;&lt;/blockquote&gt;Use this just like a normal iptables action file, only consider it is using vuurmuur. In vuurmuur, create a rule that uses the "blockedhosts" group under the appropriate network to block the appropriate traffic. Feel free to contact me if you have any questions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-4475020078268510640?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/4475020078268510640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2009/11/fail2ban-vuurmuur-plugin.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/4475020078268510640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/4475020078268510640'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2009/11/fail2ban-vuurmuur-plugin.html' title='fail2ban vuurmuur plugin'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-8298265363864033862</id><published>2009-10-21T14:24:00.000-07:00</published><updated>2009-10-21T14:43:22.679-07:00</updated><title type='text'>Update-- Multi threaded debian package download script</title><content type='html'>&lt;span style="font-family: courier new;"&gt;I recently discovered aria2c. Aria supports many download formats including metalink and torrent files. I want to use this to allow:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: courier new;"&gt;multi mirrored downloads of large files.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: courier new;"&gt;saving and downloading of large update sets using metalink files.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: courier new;"&gt;resuming partial downloads.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: courier new;"&gt;downloading from non repo mirriors... (can do this now actually)&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-8298265363864033862?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/8298265363864033862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2009/10/update-multi-threaded-debian-package.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/8298265363864033862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/8298265363864033862'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2009/10/update-multi-threaded-debian-package.html' title='Update-- Multi threaded debian package download script'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-7465608407621166433</id><published>2009-09-03T23:42:00.000-07:00</published><updated>2009-09-04T00:23:03.782-07:00</updated><title type='text'>Multi thread debian package download script</title><content type='html'>This script uses the wget download script that can be generated in synaptic. It requires sed, wget, synaptic(for generation), split, and bc.&lt;br /&gt;&lt;br /&gt;The basic idea behind it is to utilize the internet connection by multithreading the apt package download. You can add as many mirriors as you like to get it up to the threshhold. This script should also lessen the load on your primary mirrior.&lt;br /&gt;&lt;br /&gt;Things I'd like to add:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;progress indicator (would be a big +).&lt;/li&gt;&lt;li&gt;download speed indicator (a little difficult due to the process backgrounding).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;download control.&lt;/li&gt;&lt;li&gt;ability to adjust download ques based on rate of completion.&lt;/li&gt;&lt;li&gt;kill and resume.&lt;/li&gt;&lt;li&gt;installation on download completion.&lt;/li&gt;&lt;li&gt;threaded installation.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Just a funny note, I decided I didn't like wget's verbosity in the log files so I wanted to pass the -nv flag. Well alias's only work on interactive shells so I made a script that calls wget... called wget and added the dir to the system path... well lets just say I wasn't paying close enough attention the first time I tested it, and I fork bombed my Linux box. I fixed it by referencing the real wget by direct path as you can see in my script.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Script:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;#!/bin/bash&lt;br /&gt;##requires wget,bc,grep,&lt;br /&gt;FILE='download.sh'&lt;br /&gt;FILEPRE='download'&lt;br /&gt;SOURCE0='debian.osuosl.org'            #sourc0 needs to be your primary mirrior&lt;br /&gt;SOURCE1='linux.csua.berkeley.edu'&lt;br /&gt;SOURCE2='mirror.rit.edu'&lt;br /&gt;&lt;br /&gt;NUM=3&lt;br /&gt;##set the wget command params for the wget scripts&lt;br /&gt;&lt;br /&gt;SPLIT=`wc -l $FILE | grep -o -E "[0-9]{1,5}"`&lt;br /&gt;SPLIT=`echo "$SPLIT / $NUM" |bc`&lt;br /&gt;&lt;br /&gt;split -d --lines=$SPLIT $FILE $FILEPRE&lt;br /&gt;&lt;br /&gt;## start the building download env.&lt;br /&gt;if [ ! -d "cache" ]; then&lt;br /&gt;  mkdir 'cache'&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;cd './cache'&lt;br /&gt;&lt;br /&gt;x=0&lt;br /&gt;while [ $x -lt $NUM ]; do&lt;br /&gt;  CURRF="$FILEPRE"0$x&lt;br /&gt;  mv "../$CURRF" "./"&lt;br /&gt; &lt;br /&gt;  ## prepend an alias to the file&lt;br /&gt;  cp $CURRF 1$CURRF&lt;br /&gt;  WGET=`which wget`&lt;br /&gt;  echo "PATH='../:$PATH'&lt;br /&gt;  export WGET=$WGET" &gt; $CURRF&lt;br /&gt;  cat 1$CURRF &gt;&gt; $CURRF&lt;br /&gt;  rm 1$CURRF&lt;br /&gt; &lt;br /&gt;  if [ $x -ge 1 ]; then&lt;br /&gt;    ACTIVE=`eval 'echo $SOURCE'$x`&lt;br /&gt;    sed -i "s/$SOURCE0/$ACTIVE/g" "$CURRF"&lt;br /&gt;   &lt;br /&gt;  fi&lt;br /&gt; &lt;br /&gt;  bash $CURRF &amp;amp;&gt;out$x &amp;amp;&lt;br /&gt; &lt;br /&gt;  let x=x+1&lt;br /&gt;  done&lt;br /&gt; &lt;br /&gt;  exit&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The wget replacement file:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Save this as wget in the same directory as the above script. Make it executable.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;$WGET -nv $@&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-7465608407621166433?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/7465608407621166433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2009/09/multi-thread-debian-package-download.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/7465608407621166433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/7465608407621166433'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2009/09/multi-thread-debian-package-download.html' title='Multi thread debian package download script'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-184235347825798468</id><published>2009-08-18T19:02:00.000-07:00</published><updated>2009-08-18T20:01:05.672-07:00</updated><title type='text'>For crying out loud</title><content type='html'>At work today I tried to explain to my boss how two subnets can do and will work on the same hardware network layer... In this case 1000fx,1000tx aka(gig dual mode fiber and gig lan).&lt;br /&gt;&lt;br /&gt;I attempted to explain that you can have multiple subnets running across the same cable, just like you can have multiple ip's on the same cable. Either he didn't get it(drawings included) or he just didn't whant to hear my ideas... The odd thing, he was the one wanting the firewall in the server room not me. SO why the resistance? IDK Frustrating at best. He responded in a negative tone, and said we(meaning me) would have to build a test network with a using a router(we don't have) to "prove it".&lt;br /&gt;&lt;br /&gt;I think I was pretty patient, except for a comment about this being a basic network principal.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RANT--&lt;/span&gt;(ignore)&lt;br /&gt;I am getting tired of being treated like an intern as if I just don't have the experience or something. I mean you guys hired me because I have 5+ years of combined networking, programming and unix/linux experience. Not to mention DB classes and a year of on the job training/exp plus three or so years of informal personal DB maintainance. (we had nice-ish words about good DB practices which ended about the same). I can code in plenty of languages, and have made some pretty cool apps over the years. SO when I say I am pretty sure you can do this with a network I MEAN IT!!!!&lt;br /&gt;&lt;br /&gt;I did it in about 4 mins with iptables(just to make sure) this after noon. I bound the same card to a virtual interface eth0(192.168.2.x) and eth0:1(192.168.4.100). Then I changed my desktops ip to the 192.168.4.x subnet. And finally I added some iptables NAT rules to the Linux box and bam I was browsing the internet through my new Linux router... all through the same switch and accross the same ethernet cables. Worked greate, just like the many times I have done this type of networking before.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;END RANT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As a side note, I hate File Maker Pro! It can bairly be called a DB, and has tons of closed source proprietary issues.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OK Really END RANT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Situatation/Problem&lt;/span&gt;&lt;br /&gt;The issue was we have a six pair multimode fiber pulled between our two buildings, only one pair is in use and terminated(1gig). We also have an older single mode fiber that we grew out of which is plenty fast enough for a nine meg internet unprotected connection.(100meg) We want to move our current firewall from it's present location into our(IT) server room. The catch is, we share the internet with our two other plants, both of which are on seperate subnets seperated by a router located in the same room as the firewall.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;So each building has a subnet like:&lt;br /&gt;&lt;br /&gt;buidling subnets&lt;br /&gt;192.168.1.x (other buildings)&lt;br /&gt;192.168.2.x (the server room and our buildings subnet)&lt;br /&gt;192.168.3.x (seperate firewall subnet)&lt;br /&gt;&lt;br /&gt;All are seperated by the router which handles the static routes between subnets. The router is the gateway for both building subnets, and the firwall is in turn the gateway for the router.&lt;br /&gt;&lt;br /&gt;Simple works and secure.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution&lt;/span&gt;&lt;br /&gt;My suggested cheap and imediately doable solution:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;wait to pull the additional gig fiber.&lt;/li&gt;&lt;li&gt;move the firwall to the server room.&lt;/li&gt;&lt;li&gt;use the existing 100fx fiber for the new unsecured 9 meg fiber internet.&lt;/li&gt;&lt;li&gt;run both the secured 192.168.3.x and secured 192.168.2.x on the same main pipe.&lt;/li&gt;&lt;li&gt;either us a router to split the subs between the fiber, or just pipe them both into the switch(current). Keep in mind both are secure networks and the firewall controlls internet access so that's not an issue.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;connect the backup dsl modem to the phone conn in the server room.&lt;/li&gt;&lt;li&gt;done.&lt;/li&gt;&lt;/ul&gt;This shoule work just fine and is relatively secure, and doesn't cost us any additional money for two new switches and the additional termination.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-184235347825798468?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/184235347825798468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2009/08/for-crying-out-loud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/184235347825798468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/184235347825798468'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2009/08/for-crying-out-loud.html' title='For crying out loud'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-735184512100756766</id><published>2009-07-15T07:37:00.000-07:00</published><updated>2009-07-15T07:58:57.104-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><title type='text'>Lowdown SCSI Blues</title><content type='html'>Until recently I had no idea SCSI had so many variants. My companies MRP server has two SCSI interfaces. The old one a single ended(SE) fast SCSI(50pin) and a newer one a High Voltage Differential(HVD) fast wide SCSI(68pin). The only issue is, most HVD drives run $120+ since HVD has since been replaced by the newer low voltage diff standard(LVD). I did some research and discovered most LVD devices will fall back to an SE bus. This is great except the target bus is the newer HVD no SE one. The older SE bus has difficulty with more then three devices ATM.  After some digging, I discovered the SCSI extender/converter. These devices claim transparent support for piggybacking LVD/SE devices onto HVD and visa versa. So I should be able to purchase the cheaper SCSI wide SE drives, an extender and be good to go... in theory. It will be slower then an HVD system, but how much speed do you need when the system has a 33mhz cpu? My only concern with the whole arrangement is if the OS will accept SE devices on an HVD bus, driver wise.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-735184512100756766?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/735184512100756766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2009/07/lowdown-scsi-blues.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/735184512100756766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/735184512100756766'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2009/07/lowdown-scsi-blues.html' title='Lowdown SCSI Blues'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-4886611218162004729</id><published>2009-06-23T21:11:00.001-07:00</published><updated>2009-06-23T21:25:07.934-07:00</updated><title type='text'>Black Rock</title><content type='html'>Sunday Kc, Kyler and I made our first visit to Black Rock (BRMBA). I say our first visit because it was absolutely the best riding ever!&lt;br /&gt;&lt;br /&gt;I have ridden Bend, Corvallis, Willamette Pass, North Umpqua and Mckenzie but Black Rock takes the cake in my book. The riding scenery and terrain are nearly identicle to the Mac forrest in Corvallis, except Black Rock has way more to offer. There are runs from green to double black, and most extreme sets have bail outs for those with lesser insanity ;)&lt;br /&gt;&lt;br /&gt;I rode the longest ever on a construction/log combo(without bailing). Had a blast on the green Bonzia run, and practiced my jumping and drop techniques. Every one we talked to was friendly and enthusiastic and helpful... It was a great day!&lt;br /&gt;&lt;br /&gt;I still enjoy riding Bend and Corvallis, but if you havent checked out Black Rock get too it!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://brmba.org/"&gt;http://brmba.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-4886611218162004729?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/4886611218162004729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2009/06/black-rock.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/4886611218162004729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/4886611218162004729'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2009/06/black-rock.html' title='Black Rock'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-8596555037394399733</id><published>2009-06-23T20:24:00.001-07:00</published><updated>2009-06-23T21:10:25.943-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>New Impreza WRX</title><content type='html'>Well, I have a Subaru again. It's about time too.&lt;br /&gt;&lt;br /&gt;Sarah and I have been looking for a new car for several months now and we finally found one at a price we liked. The gent we bought it from is throwing in a new turbo and left rear window... By new I mean parted from a salvage job. He is covering the labor so all I need to do is show up next Sunday and wait a bit.&lt;br /&gt;&lt;br /&gt;The reason for all this? The turbo seems to have an air leak, it doesn't appear to effect the performance much, but it is fairly annoying to hear a whistle every time the turbo spools... (turbo ahhhh I'm giddy)&lt;br /&gt;&lt;br /&gt;This baby has a 3" cat back exhaust that sounds amazing. Everything else is bone stock, aside from an ECU flash. Once everything is paid off I plan to do cold air intake and a new down pipe. Although this will increase the noise some what, I think it should be worth it, especially at 300hp!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-8596555037394399733?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/8596555037394399733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2009/06/new-impreza-wrx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/8596555037394399733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/8596555037394399733'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2009/06/new-impreza-wrx.html' title='New Impreza WRX'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-4889438614534755057</id><published>2009-05-27T22:13:00.000-07:00</published><updated>2009-05-27T22:35:49.454-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='idea'/><title type='text'>A random idea I had today</title><content type='html'>A Davinci type, I often come up with seemingly random ideas. This is one of those ideas.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Todays idea&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Orbit Gum brand tooth paste. All your favorite chew flavors in a paste. "Fabulous"&lt;br /&gt;&lt;h3 style="font-weight: normal;"&gt;&lt;span style="font-size:100%;"&gt;"For A Good Clean Feeling, No Matter What"&lt;/span&gt;&lt;/h3&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reasonings&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The main reason, I love Orbit's Mint Majito flavor. They also have/had citrus mint(yum) and raspberry mint. Orbits offers a wide variety of fruity flavors that don't taste like kidy sweets. I am also bored of tasting the plain minty tastes. Most other toothe-paste flavors taste like blue raspberry slushies :(&lt;br /&gt;&lt;br /&gt;I want the minty freshness of Mint Majito!&lt;br /&gt;&lt;br /&gt;End Idea&lt;br /&gt;$_&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-4889438614534755057?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/4889438614534755057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2009/05/random-idea-i-had-today.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/4889438614534755057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/4889438614534755057'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2009/05/random-idea-i-had-today.html' title='A random idea I had today'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-6175695049416163891</id><published>2009-05-20T10:19:00.000-07:00</published><updated>2009-05-20T10:34:52.427-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='Hack of the Day'/><title type='text'>Drupal module install scripts</title><content type='html'>&lt;span style="font-family: arial;font-size:78%;" &gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;The curl downloader -- for clients that lack wget&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#!/bin/bash&lt;br /&gt;## This script uses curl to save a web url from the net... It sets the file to the target filename.&lt;br /&gt;&lt;br /&gt;function usage {&lt;br /&gt;   echo "usage: cget [opts] url&lt;br /&gt;opts&lt;br /&gt;-h:        this help message&lt;br /&gt;"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;while getopts ":h" OPTION&lt;br /&gt;do&lt;br /&gt;    case $OPTION in&lt;br /&gt;        h)&lt;br /&gt;            usage $OPTARG&lt;br /&gt;            exit 1&lt;br /&gt;            ;;&lt;br /&gt;   &lt;br /&gt;        ?)&lt;br /&gt;            usage $OPTARG&lt;br /&gt;            exit&lt;br /&gt;            ;;&lt;br /&gt;    esac&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;if [ -z $1 ]&lt;br /&gt;   then&lt;br /&gt;       usage&lt;br /&gt;       exit 1&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;NAME=`echo $1 | tr "/" "\012"`&lt;br /&gt;&lt;br /&gt;for X in $NAME&lt;br /&gt;do&lt;br /&gt;   FNAME=$X&lt;br /&gt;  &lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;curl -o $FNAME $1&lt;br /&gt;&lt;br /&gt;exit 0&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;div style="text-align: left; font-family: arial;"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;The "installer"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;#!/bin/bash&lt;br /&gt;## This script uses downloads a zip file and moves it to the specified directory... from a package directory... This was intended to be used for drupal modules.&lt;br /&gt;&lt;br /&gt;function usage {&lt;br /&gt;  echo "usage: modinst [opts] url&lt;br /&gt;opts&lt;br /&gt;-h:        this help message&lt;br /&gt;"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;while getopts ":h" OPTION&lt;br /&gt;do&lt;br /&gt;   case $OPTION in&lt;br /&gt;       h)&lt;br /&gt;           usage $OPTARG&lt;br /&gt;           exit 1&lt;br /&gt;           ;;&lt;br /&gt;&lt;br /&gt;       ?)&lt;br /&gt;           usage $OPTARG&lt;br /&gt;           exit&lt;br /&gt;           ;;&lt;br /&gt;   esac&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;if [ -z $1 ]&lt;br /&gt;  then&lt;br /&gt;      usage&lt;br /&gt;      exit 1&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;NAME=`echo $1 | tr "/" "\012"`&lt;br /&gt;&lt;br /&gt;for X in $NAME&lt;br /&gt;do&lt;br /&gt;  FNAME=$X&lt;br /&gt;&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;./cget $1&lt;br /&gt;&lt;br /&gt;cd ../modules/&lt;br /&gt;tar -xzf ../gzips/$FNAME&lt;br /&gt;&lt;br /&gt;exit 0&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-6175695049416163891?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/6175695049416163891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2009/05/drupal-module-install-scripts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/6175695049416163891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/6175695049416163891'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2009/05/drupal-module-install-scripts.html' title='Drupal module install scripts'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-3478287359274560096</id><published>2009-05-14T07:39:00.000-07:00</published><updated>2009-05-14T07:50:42.760-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack of the Day'/><title type='text'>Customizing Colors in Leopard Terminal</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Reason:&lt;/span&gt; Default colors are hideous in Terminal.app and Leopard doesn't have a way to change them.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt; Install &lt;a href="http://www.culater.net/software/SIMBL/SIMBL.php"&gt;SIMBL&lt;/a&gt;, and a SIMBL plugin(&lt;a href="http://ciaranwal.sh/files/TerminalColours.bundle.zip"&gt;Mike Solomon’s TerminalColors&lt;/a&gt;).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sources:&lt;/span&gt; &lt;a href="http://ciaranwal.sh/2007/11/01/customising-colours-in-leopard-terminal"&gt;Customizing Colors in Leopard Terminal&lt;/a&gt; -- Full article&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-3478287359274560096?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/3478287359274560096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2009/05/customizing-colors-in-leopard-terminal.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/3478287359274560096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/3478287359274560096'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2009/05/customizing-colors-in-leopard-terminal.html' title='Customizing Colors in Leopard Terminal'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-6898009806454352846</id><published>2009-04-03T21:13:00.000-07:00</published><updated>2009-04-03T23:21:02.617-07:00</updated><title type='text'>Goodbyes and New Adventures</title><content type='html'>Today I said my goodbyes to my fellow co-workers and boss. I am having mixed emotions, while I will miss working with them, I am excited to be starting a new job, with new challenges and people discover.&lt;br /&gt;&lt;br /&gt;I had some difficulty letting go of some of my projects! It's harder than I thought to just walk away from something I made and put my best effort into.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-6898009806454352846?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/6898009806454352846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2009/04/goodbys-and-new-adventures.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/6898009806454352846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/6898009806454352846'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2009/04/goodbys-and-new-adventures.html' title='Goodbyes and New Adventures'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-4843178598014684336</id><published>2009-04-01T15:42:00.000-07:00</published><updated>2009-04-01T16:05:59.330-07:00</updated><title type='text'>Pwned by Google!</title><content type='html'>LOL's Google got me haha... I didn't realize it was Apr 1!!!&lt;br /&gt;&lt;br /&gt;My boss just showed me the latest CADIE service, brain indexing. Their first service was semi believable, but seriously brain indexing ;) To funny.&lt;br /&gt;&lt;br /&gt;I remember quite a few years back, Google announced their mental plex technology. It had a nice gyroscope twirly image that you looked into and thought about your desired search.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-4843178598014684336?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/4843178598014684336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2009/04/lols-google-got-me-haha.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/4843178598014684336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/4843178598014684336'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2009/04/lols-google-got-me-haha.html' title='Pwned by Google!'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-5391995550583469944</id><published>2009-04-01T12:02:00.001-07:00</published><updated>2009-04-01T12:09:25.907-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><category scheme='http://www.blogger.com/atom/ns#' term='daily events'/><category scheme='http://www.blogger.com/atom/ns#' term='rants'/><title type='text'>Gmail AutoPilot</title><content type='html'>I just noticed Gmail's new "autopilot" feature that has been released. It seems like more of a tool for spammers then it does for the average user. I don't see much good that could come from automating email and chat responses! Besides if my mom writes me a message I wouldn't want some computer telling her that I hate her guts and that she should go smoke pot! As a christian I think anything that is coming from me, should be carefully worded. The whole thing is just weird! I can see it now, new blogger autopilot... Blog about your life without ever blogging!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-5391995550583469944?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/5391995550583469944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2009/04/gmail-autopilot.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/5391995550583469944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/5391995550583469944'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2009/04/gmail-autopilot.html' title='Gmail AutoPilot'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-6496923224848493920</id><published>2009-03-29T23:12:00.000-07:00</published><updated>2009-03-30T00:11:25.558-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='christian walk'/><title type='text'>Being patient in prayer</title><content type='html'>Over this past week, I learned that I tend to get impatient with God. I often want to see immediate results to my prayers and spiritual growth. The amazing thing is, God doesn't get impatient with me! He sets up a lesson and then gently guides me as I discover something new and awesome. This week I discovered long suffering in my prayer life.&lt;br /&gt;&lt;br /&gt;It started on Tuesday, I was having a discussion with my friend Jared about various things, and I expressed my frustration with how few people had responded to a the technical missions project flier that was sent to all the churches in the Oregon conference. I knew that God has a plan for this project, but it just seemed like it was moving so slowly!&lt;br /&gt;&lt;br /&gt;The next day I received numerous requests for information about the project. I was amazed, and encouraged, but God still had something more for me to learn! That evening, Sarah and I where discussing some of our concerns about how long it is taking to get our apartment above the garage finished, when we decided to look up various verses on patience. We read James 1 where it talks about having patience during trials, and I was thinking about that in the context of the addition and Sarah's concerns. I missed the lesson He was trying to teach me.&lt;br /&gt;&lt;br /&gt;Friday night during our visit with Jarad and Constance, we where talking about the power of prayer, and it's affect on opening spiritual doors of opportunity. We discussed how prayer, is vital to inviting the holy spirit to work in the lives of people, and about the time that Daniel was praying and the angle was delayed by a spiritual prince! It was because of Daniel's persistent prayer and patience that enabled Michael(Jesus) to help the angel fight off the prince. I started thinking about that over the next couple of days, and this morning in my worship it became crystal clear that God had a message for me, and that He was trying to tell me this all week! I was reading in Luke, and when I came to chapter 11 I was like OOOH I get it! Chapter 11 is lukes rendition of the lords prayer, but Luke adds a parable about the persistant friend that comes in the middle of the night to ask for bread. The man in the house didn't give the friend bread because he was his freind, but because he was persistant and bold in his request.&lt;br /&gt;&lt;br /&gt;I need to be more persistant in my prayer life, but I also must be patient and have faith that God hears my paryers, and will give me what I need!&lt;br /&gt;&lt;br /&gt;Readings:&lt;br /&gt;Luke 11&lt;br /&gt;James 1&lt;br /&gt;Daniel 10:12-14&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-6496923224848493920?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/6496923224848493920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2009/03/being-patient-in-prayer.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/6496923224848493920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/6496923224848493920'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2009/03/being-patient-in-prayer.html' title='Being patient in prayer'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-9025067050349299175</id><published>2009-03-20T12:01:00.000-07:00</published><updated>2009-03-23T13:07:49.501-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>PHP fork() 'fake' with apache</title><content type='html'>The other day at work I started working on a php script to dynamically return some results to a command line client(wget/curl)... The problem was, the php script takes quite a while to get the db results, find a set of images, and then compress them into a zip file, before streaming them to the client. I knew that my jobs where perfect for parallel processing as one set of data is selected by the file timestamps and the other comes out of the database.&lt;br /&gt;&lt;br /&gt;Being familiar with C and linux cl programming, I naturally turned to the PHP fork() function. However, I soon found out that fork() in php one works if PHP is running in CGI or CLI mode. This code needed to run through Apache!&lt;br /&gt;&lt;br /&gt;Since each PHP script gets it's own process from Apache, I figured that if I where to use some clever manimuplating of output bufferes and file pipes, I should be able to make this work!&lt;br /&gt;&lt;br /&gt;So here is the prototype fork with apache: &lt;a href="http://www.uvog.org/%7Edingus9/phpApachFork.txt"&gt;phpApachFork.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fixed -- missing function sendToHost()&lt;br /&gt;Fixed -- sendToHost not properly handling socket closing after content length reached.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-9025067050349299175?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/9025067050349299175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2009/03/php-fork-fake-with-apache.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/9025067050349299175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/9025067050349299175'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2009/03/php-fork-fake-with-apache.html' title='PHP fork() &apos;fake&apos; with apache'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3739877714301780025.post-6035145553542867028</id><published>2009-03-11T11:51:00.000-07:00</published><updated>2009-03-11T12:00:22.571-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='daily events'/><title type='text'>First post</title><content type='html'>This, being my first post I would like to set the tone for what I hope is to become of my blog! I plan to blog about my basic daily activities, current events, my relationship with friends and family, school, work, and my relationship with God.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3739877714301780025-6035145553542867028?l=dingus9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dingus9.blogspot.com/feeds/6035145553542867028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dingus9.blogspot.com/2009/03/first-post.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/6035145553542867028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3739877714301780025/posts/default/6035145553542867028'/><link rel='alternate' type='text/html' href='http://dingus9.blogspot.com/2009/03/first-post.html' title='First post'/><author><name>Nick Shobe</name><uri>https://profiles.google.com/107549421270277906372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Tz7j3AMGfvM/AAAAAAAAAAI/AAAAAAAACEA/1AWR8cccb64/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry></feed>
