tag:blogger.com,1999:blog-76555482009-03-01T03:01:07.390-05:00arthur.wiebeIt is certain, this is my blog!Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.comBlogger219125tag:blogger.com,1999:blog-7655548.post-20940021934457596052007-01-25T11:52:00.000-05:002007-01-25T12:00:17.443-05:00I Have a New BlogI've started a new site, <a href="http://artooro.com">artooro.com</a>. It is now the location of my new blog. This blog is as of now no longer active.<br /><br />This blog will now automatically redirect to the new site.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-2094002193445759605?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-670512127779946812007-01-14T08:46:00.000-05:002007-01-14T08:46:41.206-05:00Mahmoud Abbas, a Moderate?<a href="http://web.israelinsider.com/Articles/Politics/10335.htm">Mahmoud Abbas, "Aim your rifles at Israel."</a><br /><br />For so long Abbas has been touted as a "moderate", someone who wants peace but is OK with the idea of Israel staying on the map.<br />Since Abbas replaced Arafat I've been highly critical of the man. It my opinion, it were better a moderate were an extremest in a way, either on one side or the other. If you're in between, you'll either get shot or not accomplish anything. Abbas has not accomplished anything since he started his current post. Yet some say "strengthening him" will help the peace process. <a href="http://www.israelbehindthenews.com/#ArafatProtege">I hope you see differently now</a>.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-67051212777994681?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-48274032761187471642007-01-02T19:59:00.000-05:002007-01-02T20:16:10.168-05:00CheckFields ObjectedAs what usually happens when you first right some code, and then put it into real world use, you make some changes to make it more efficient and easier to use. The same thing happened with my CheckFields function posted earlier.<br /><br />So here's the code:<br /><pre style="color: rgb(0, 102, 0);"><?php<br />/*<br />'name',<br /> 'int' => 'year',<br /> 'email' => 'email',<br /> 'date' => 'date',<br /> 'length=2, int, date' => 'month',<br /> 'passwordsmatch' => 'password, confirmpass'<br />);<br /><br />$input = array | example=($_POST || $_GET)<br />*/<br /><br />class CheckFields {<br /> public $lastError;<br /> <br /> public function __construct($reqs, $input) {<br /> foreach ($reqs as $type => $id) {<br /> $fields = explode(', ', $id);<br /> foreach ($fields as $field) {<br /> if (!isset($input[$field]) || $input[$field] == '') {<br /> $this->_ret(false, 00, $id, '"' . ucfirst($id) . '" Must be completed in order to continue.');<br /> break(2);<br /> //return array(false, $id . ' resulted in err00');<br /> }<br /> }<br /> <br /> $types = explode(', ', $type);<br /> foreach ($types as $t) {<br /> switch (preg_replace('|(^.+)(\=.*)|', '$1', $t)) {<br /> case 'passwordsmatch':<br /> $fields = explode(', ', $id);<br /> if ($input[$fields[0]] != $input[$fields[1]]) {<br /> $this->_ret(false, 06, $id, '"' . ucfirst($fields[0]) . '" must be the same as "' . ucfirst($fields[1]) . '"');<br /> break(3);<br /> //return array(false, $id . ' resulted in err06');<br /> }<br /> break;<br /> case 'date':<br /> if (strtotime($input[$id]) === false) {<br /> $this->_ret(false, 05, $id, '"' . ucfirst($id) . '" Is not a valid date.');<br /> break(3);<br /> //return array(false, $id . ' resulted in err05');<br /> }<br /> break;<br /> case 'email':<br /> if (!eregi("^(.+)(@)(.+)(\.)(.+)$", $input[$id])) {<br /> $this->_ret(false, 04, $id, '"' . ucfirst($id) . '" Is not a valid email address.');<br /> break(3);<br /> //return array(false, $id . ' resulted in err04');<br /> }<br /> break;<br /> case 'length':<br /> // Make sure the field is the correct length<br /> preg_match('|(^.+)(\=)(.*$)|', $t, $m);<br /> if (strlen($input[$id]) != $m[3]) {<br /> $this->_ret(false, 01, $id, '"' . ucfirst($id) . '" Is not the correct length.');<br /> break(3);<br /> //return array(false, $id . ' resulted in err01');<br /> }<br /> break;<br /> case 'int':<br /> if (!is_numeric($input[$id])) {<br /> $this->_ret(false, 02, $id, '"' . ucfirst($id) . '" Must be a number and it is not.');<br /> break(3);<br /> //return array(false, $id . ' resulted in err02');<br /> }<br /> break;<br /> case 'text':<br /> if (!is_string($input[$id])) {<br /> $this->_ret(false, 03, $id, '"' . ucfirst($id) . '" Must be text and it is not.');<br /> break(3);<br /> //return array(false, $id . ' resulted in err03');<br /> }<br /> break;<br /> default:<br /> trigger_error('Invalid type provided to checkFields()', E_USER_ERROR);<br /> }<br /> }<br /> }<br /> //return array(true, 'err7 - Success');<br /> if (!isset($this->lastError)) {<br /> $this->_ret(true, 07, NULL, 'It was a success!');<br /> }<br /> }<br /> <br /> private function _ret($value, $code, $field_name, $description) {<br /> $error = array(<br /> 'value' => $value,<br /> 'code' => $code,<br /> 'field' => $field_name,<br /> 'description' => $description<br /> );<br /> $this->lastError = $error;<br /> }<br /> <br /> public function __get($id) {<br /> return $this->lastError[$id];<br /> }<br />}</pre><br />The major revisions include:<br /><ol><li>Is now object oriented.</li><li>Does not return a value. To get information use $field_object->value/code/field/description or directly access the lastError array.<br /></li><li>Provides a description suitable to give straight to the client. The error information could be used to highlight fields which failed the requirements using ajax or another JavaScript technique.</li></ol>So now the example I have earlier, redone would look like this:<br /><pre><span style="color: rgb(0, 102, 0);font-family:courier new;" >$requirements = array(</span><br /><span style="color: rgb(0, 102, 0);font-family:courier new;" > 'date' => 'date',</span><br /><span style="color: rgb(0, 102, 0);font-family:courier new;" > 'text' => 'name',</span><br /><span style="color: rgb(0, 102, 0);font-family:courier new;" > 'email' => 'email',</span><br /><span style="color: rgb(0, 102, 0);font-family:courier new;" > 'date, int, length=4' => 'yearofbirth'</span><br /><span style="color: rgb(0, 102, 0);font-family:courier new;" >);</span><br /><span style="color: rgb(0, 51, 51);font-family:courier new;" ><span style="color: rgb(0, 102, 0);">$field_check = new CheckFields($requirements, $_POST);</span><br /><span style="color: rgb(0, 102, 0);">print_r($field_check->lastError);</span><br /></span></pre><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-4827403276118747164?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-39458700482769063812006-12-23T17:01:00.000-05:002006-12-23T17:13:03.468-05:00PHP checkField() FunctionI wrote a function in PHP that checks submitted form fields for certain requirements. It works by passing in an array of requirements and the array of submitted data such as $_POST or $_GET. The requirements array contains the fields types and names. For example to check for a date field, a name, an email address, and year of birth, you could do this:<br /><pre><span style="color: rgb(0, 51, 51);font-family:courier new;" >$requirements = array(</span><br /><span style="color: rgb(0, 51, 51);font-family:courier new;" > 'date' => 'date',</span><br /><span style="color: rgb(0, 51, 51);font-family:courier new;" > 'text' => 'name',</span><br /><span style="color: rgb(0, 51, 51);font-family:courier new;" > 'email' => 'email',</span><br /><span style="color: rgb(0, 51, 51);font-family:courier new;" > 'date, int, length=4' => 'yearofbirth'</span><br /><span style="color: rgb(0, 51, 51);font-family:courier new;" >);</span><br /><span style="color: rgb(0, 51, 51);font-family:courier new;" >$resultArray = checkFields($requirements, $_GET);</span></pre><br /><br />It allows you to mix certain types together (where it makes sense) and the function is easy to expand to include new types.<br />It returns an array. The first key is either true or false depending on how the input validated, and the second key contains an error code and description.<br /><br />Now with no further delay, here's the code:<br /><pre><br /><div style="text-align: justify; color: rgb(51, 51, 51);"><span style="color: rgb(0, 51, 51);font-family:georgia;" >/*</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > $reqs = array(</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > type => id</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > 'text' => 'name',</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > 'int' => 'year',</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > 'email' => 'email',</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > 'date' => 'date',</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > 'length=2, int, date' => 'month',</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > 'passwordsmatch' => 'password, confirmpass'</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > );</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > </span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > $input = array | example=($_POST || $_GET)</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" >*/</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" >function checkFields($reqs, $input) {</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > foreach ($reqs as $type => $id) {</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > $fields = explode(', ', $id);</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > foreach ($fields as $field) {</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > if (!isset($input[$field]) || $input[$field] == '') {</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > return array(false, $id . ' resulted in err00');</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > }</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > }</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > </span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > $types = explode(', ', $type);</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > foreach ($types as $t) {</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > switch (preg_replace('|(^.+)(\=.*)|', '$1', $t)) {</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > case 'passwordsmatch':</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > $fields = explode(', ', $id);</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > if ($input[$fields[0]] != $input[$fields[1]]) {</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > return array(false, $id . ' resulted in err06');</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > }</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > break;</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > case 'date':</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > if (strtotime($input[$id]) === false) {</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > return array(false, $id . ' resulted in err05');</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > }</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > break;</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > case 'email':</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > if (!eregi("^(.+)(@)(.+)(\.)(.+)$", $input[$id])) {</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > return array(false, $id . ' resulted in err04');</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > }</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > break;</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > case 'length':</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > // Make sure the field is the correct length</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > preg_match('|(^.+)(\=)(.*$)|', $t, $m);</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > if (strlen($input[$id]) != $m[3]) {</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > return array(false, $id . ' resulted in err01');</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > }</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > break;</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > case 'int':</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > if (!is_numeric($input[$id])) {</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > return array(false, $id . ' resulted in err02');</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > }</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > break;</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > case 'text':</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > if (!is_string($input[$id])) {</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > return array(false, $id . ' resulted in err03');</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > }</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > break;</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > default:</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > trigger_error('Invalid type provided to checkFields()', E_USER_ERROR);</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > }</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > }</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > }</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" > return array(true, 'err7 - Success');</span><br /><span style="color: rgb(0, 51, 51);font-family:georgia;" >}</span><br /></div></pre><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-3945870048276906381?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-47560465328677309512006-12-22T16:49:00.000-05:002006-12-22T16:53:27.107-05:00ZFS Coming to Mac OS XThe Zettabyte File System is coming to Mac OS X Leapord, so I hear from various sources.<br /><br />If you're listening Apple, allow us to install OS X on a ZFS filesystem. No more of this HFS +++ stuff.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-4756046532867730951?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1165013791906608142006-12-01T17:45:00.000-05:002006-12-01T17:56:32.143-05:00Hi, AgainSo I have not posted here for quite awhile. Been busy you see.<br /><br />Work has been quite busy for some time. It's busy now too but we're being kept back by some bad weather, which is why I have the time to write this.<br /><span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"></span><br /><a href="http://macflightgear.sf.net">MacFlightGear</a> now has a new hand. Tat ( <a href="http://sourceforge.net/users/tat_michy/">tat_michy</a>)<br /> He's been doing an awesome job. Make a working universal binary. Rewriting the launcher in RubyCocoa adding some neat new features at the same time. A big thumbs up to him. It's great to see others taking things under control when you can't.<br /><br />I've been building a web site using the Zend Framework. Components used are currently Zend_Controller, Zend_View, Zend_Search_Lucene, and Zend_DB. It works great. I plan on using GData once it's integrated and we'll see what else.<br />The ZF is really coming along. It'll be interesting to see what's next.<br /><br />But for now, tacos taste great....<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-116501379190660814?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1154565296177571352006-08-02T20:34:00.000-04:002006-08-02T20:34:56.456-04:00Let Israel Win the War<p><b><span style="font-family:Arial, Verdana, Helvetica;font-size:+1;color:#000000;">Let Israel Win the War</span></b><br />By Charles Krauthammer, <em>New York Daily News</em>, July 28, 2006</p> <p>What other country, when attacked in an unprovoked aggression across a recognized international frontier, is then put on a countdown clock by the world, given a limited time window in which to fight back, regardless of whether it has restored its own security?</p> <p> </p><p>What other country sustains 1,500 indiscriminate rocket attacks into its cities -- every one designed to kill, maim and terrorize civilians -- and is then vilified by the world when it tries to destroy the enemy's infrastructure and strongholds with precision-guided munitions that sometimes have the unintended but unavoidable consequence of collateral civilian death and suffering?</p> <p> </p><p><strong>Hearing the world pass judgment</strong> on the Israel-Hezbollah war as it unfolds is to live in an Orwellian moral universe. With a few significant exceptions (the leadership of the United States, Britain, Australia, Canada and a very few others), the world -- governments, the media, U.N. bureaucrats -- has completely lost its moral bearings. </p> <p> </p><p>The word that obviates all thinking and magically inverts victim into aggressor is "disproportionate," as in the universally decried "disproportionate Israeli response."</p> <p> </p><p>When the United States was attacked at Pearl Harbor, it did not respond with a parallel "proportionate" attack on a Japanese naval base. It launched a four-year campaign that killed millions of Japanese, reduced Tokyo, Hiroshima and Nagasaki to a cinder, and turned the Japanese home islands to rubble and ruin. Disproportionate? No. When one is wantonly attacked by an aggressor, one has every right -- legal and moral -- to carry the fight until the aggressor is disarmed and so disabled that it cannot threaten one's security again. That's what it took with Japan.</p> <p> </p><p><strong>Britain was never invaded by Germany</strong> in World War II. Did it respond to the blitz and V-1 and V-2 rockets with "proportionate" aerial bombardment of Germany? Of course not. Churchill orchestrated the greatest land invasion in history that flattened and utterly destroyed Germany, killing untold innocent German women and children in the process. </p> <p> </p><p>The perversity of today's international outcry lies in the fact that there is indeed a disproportion in this war, a radical moral asymmetry between Hezbollah and Israel: Hezbollah is deliberately trying to create civilian casualties on both sides while Israel is deliberately trying to minimize civilian casualties, also on both sides. </p> <p> </p><p>In perhaps the most blatant terror campaign from the air since the London blitz, Hezbollah is raining rockets on Israeli cities and villages. These rockets are packed with ball bearings that can penetrate automobiles and shred human flesh. They are meant to kill and maim. And they do.</p> <p> </p><p><strong>But it is a dual campaign.</strong> Israeli innocents must die in order for Israel to be terrorized. But Lebanese innocents must also die in order for Israel to be demonized, which is why Hezbollah hides its fighters, its rockets, its launchers, its entire infrastructure among civilians. Creating human shields is a war crime. It is also a Hezbollah specialty. </p> <p> </p><p>On Wednesday, CNN cameras showed destruction in Tyre. What does Israel have against Tyre and its inhabitants? Nothing. But the long-range Hezbollah rockets that have been raining terror on Haifa are based in Tyre. What is Israel to do? Leave untouched the launch sites that are deliberately placed in built-up areas? </p> <p> </p><p>Had Israel wanted to destroy Lebanese civilian infrastructure, it would have turned out the lights in Beirut in the first hour of the war, destroying the billion-dollar power grid and setting back Lebanon 20 years. It did not do that. Instead, it attacked dual-use infrastructure -- bridges, roads, airport runways -- and blockaded Lebanon's ports to prevent the reinforcement and resupply of Hezbollah. Ten-thousand Katyusha rockets are enough. Israel was not going to allow Hezbollah 10,000 more. </p> <p> </p><p><strong>Israel's response to Hezbollah</strong> has been to use the most precise weaponry and targeting it can. It has no interest, no desire to kill Lebanese civilians. Does anyone imagine that it could not have leveled south Lebanon, to say nothing of Beirut? Instead, in the bitter fight against Hezbollah in south Lebanon, it has repeatedly dropped leaflets, issued warnings, sent messages by radio and even phone text to Lebanese villagers to evacuate so that they would not be harmed.</p> <p> </p><p>Israel knows that these leaflets and warnings give the Hezbollah fighters time to escape and regroup. The advance notification as to where the next attack is coming has allowed Hezbollah to set up elaborate ambushes. The result? Unexpectedly high Israeli infantry casualties. Moral scrupulousness paid in blood. Israeli soldiers die so that Lebanese civilians will not, and who does the international community condemn for disregarding civilian life?</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-115456529617757135?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1154553487998608982006-08-02T17:09:00.000-04:002006-08-02T17:18:08.663-04:00Announcing Leeper - A Library Catalog ManagerI am pleased to announce a new product which has been developed behind closed doors for some time now during spare time. It is being developed for a local organization but may be useful for others.<br />What is it? The name is <a href="http://code.google.com/p/leeper/">Leeper, a library catalog manager</a>.<br /><br /><span style="font-weight: bold; font-style: italic;font-size:130%;" >Features:</span><br /><ul><li>Web based - All you need is a browser that can handle XHTML, CSS, and SVG. (Firefox 1.5 or Opera 9) Works on Mac OS X, Windows, Linux.</li><li>Categories.</li><li>Users.</li><li>Logging of activity.</li><li>View overdue items.</li><li>Check-out and check-in items.</li><li>Search.</li><li>Browse.</li></ul>It works really well. It's written in PHP and is my first released project using the <a href="http://framework.zend.com">Zend Framework</a>.<br />And it's also hosted by <a href="http://code.google.com">Google</a>.<br /><br />It's very easy to setup, uses SQLite for the database which means zero setup. All you need is a web server and PHP 5.1 or later.<br /><br />It's not designed for newbies as there is no documentation at all. I just wrote it for a local organization and it works great for us.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-115455348799860898?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1154456821451894962006-08-01T14:26:00.000-04:002006-08-01T14:27:02.923-04:00The UN: A Useless BodyQuote from Joseph Farah of World Net Daily:<br /><p></p><blockquote><p>Annan threatens to pull out his United Nations peacekeeping forces in southern Lebanon if Israel does not declare a unilateral and immediate cease-fire. </p> <p>Can I ask an obvious question? What good have the U.N. peacekeepers done? Have they kept the peace? Have they prevented Hezbollah terrorists from raining thousands of rockets down on the civilian population of northern Israel? Have they prevented the transport of arms to the Lebanese-Israeli border? </p> <p>If anything, the conflict between Hezbollah and Israel is proof-positive that the U.N. is completely ineffective, complete irrelevant – and so are the diplomatic "solutions" endlessly offered up by its busybody leaders. </p></blockquote><p> I agree completely. The UN has never been able to stop a war or help bring a solution, and never can because such an organization has no such capability. They are only good for talk but can't walk.<br /></p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-115445682145189496?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1152374053778132572006-07-08T11:51:00.000-04:002006-07-08T11:54:14.323-04:00Realignment Bad for Israel & Everyone ElseI'd like to simply quote James Woolsey from the WSJ.<br /><br /><blockquote><span style="font-size:130%;">West Bank terrorist state: The folly of Israeli disengagement</span><br /><br /><span style="font-style: italic;">By R. James Woolsey, Wall Street Journal, May 23, 2006</span><br /><br />What does one say to a good ally who seems determined to reinforce failure? That the U.S. will pay for the undertaking?<br /><br />Israel's Prime Minister Ehud Olmert was in Washington last week, where he asked for advice and assistance in financing the withdrawal of 50,000 to 100,000 Israeli settlers from 90% to 95% of the West Bank and major portions of Jerusalem, and for the Israel Defense Forces to be repositioned largely near the security barrier Israel is constructing. Most Americans are inclined to believe that such disengagement may be a reasonable step toward a two-state solution, even if some territorial disputes remain to be negotiated. It is also widely assumed that Palestinian hostility to Israel is fueled by despair that can only be reduced by Israeli concessions. Both assumptions, however, may be fundamentally flawed.<br /><br />The approach Israel is preparing to take in the West Bank was tried in Gaza and has failed utterly. The Israeli withdrawal of last year has produced the worst set of results imaginable: a heavy presence by al Qaeda, Hezbollah and even some Iranian Revolutionary Guard units; street fighting between Hamas and Fatah, and now Hamas assassination attempts against Fatah's intelligence chief and Jordan's ambassador; rocket and mortar attacks against nearby towns inside Israel; and a perceived vindication for Hamas, which took credit for the withdrawal. This latter almost certainly contributed substantially to Hamas's victory in the Palestinian elections.<br /><br />The world now needs to figure out how to keep Palestinians from starving without giving funds to a Hamas government in Gaza resolutely focused on destroying Israel. Before his massive stroke last year, Ariel Sharon repeatedly said he would not replay the Gaza retreat in the West Bank. With good reason: Creating a West Bank that looks like today's Gaza would be many times the nightmare. How would one deal with continuing launches of rockets and mortars from the West Bank into virtually all of Israel? (Israel's Arrow missile defense will probably work against Iranian medium-range ballistic missiles but not against the much shorter-range Katyushas.) A security barrier does no good against such bombardment. The experience in Gaza, further, has shown the difficulty of defending against such attacks after the IDF boots on the ground have departed. Effective, prompt retaliation from the air is hard to imagine if the mortar rounds and Katyushas are being launched, as they will be, from schools, hospitals and mosques.<br /><br />Israel is not the only pro-Western country that would be threatened. How does moderate Jordan, with its Palestinian majority, survive if bordered by a West Bank terrorist state? Israeli concessions will also make the U.S. look weak, because it will be inferred that we have urged them, and will suggest that we are reverting to earlier behavior patterns — fleeing Lebanon in 1983, acquiescing in Saddam's destruction of the Kurdish and Shiite rebels in 1991, fleeing Somalia in 1993, etc.<br /><br />Three major Israeli efforts at accommodation in the last 13 years have not worked. Oslo and the 1993 handshake in the Rose Garden between Yitzhak Rabin and Yasser Arafat produced only Arafat's rejection in 2000 of Ehud Barak's extremely generous settlement offer and the beginning of the second intifada. The Israeli withdrawal from southern Lebanon in 2000 has enhanced Hezbollah's prestige and control there; and the withdrawal from Gaza has unleashed madness. These three accommodations have been based on the premise that only Israeli concessions can displace Palestinian despair. But it seems increasingly clear that the Palestinian cause is fueled by hatred and contempt.<br /><br />Israeli concessions indeed enhance Palestinian hope, but not of a reasonable two-state solution — rather a hope that they will actually be able to destroy Israel. The Iranian-Syrian-Hezbollah-Hamas axis is quite explicit about a genocidal objective. When they speak of "ending Israeli occupation" they mean of Tel Aviv. Under these circumstances it is time to recognize that, sadly, the Israeli-Palestinian issue will likely not be the first matter settled in the decades-long war that radical Islam has declared on the U.S., Israel, the West and moderate Muslims. It will more likely be one of the last.<br /><br />Someday a two-state solution may become possible, but it is naive in the extreme to believe that this can occur while the centerpiece of the radical Islamic and Palestinian agendas is maximizing Jewish deaths. A durable compromise will be achievable only when we no longer, to borrow from Daniel Patrick Moynihan, "define deviancy down" for the Palestinians.<br /><br />Today we cannot envision the 250,000 Jewish settlers who live outside Israel's pre-1967 borders being permitted to live at all, much less live free and unmolested, in a West-Bank-Gaza Palestinian state. But some 1.2 million Arabs, almost all Muslim, today live in Israel in peace among some five million Jews — about double the percentage of Jews now in the West Bank as a share of the Muslim population there. Israel's Arab citizens worship freely — one hears muezzins calling the faithful to prayer as one walks around Tel Aviv. They vote in free elections for their own representatives in a real legislature, the Knesset. They give every evidence that they prefer being Arab Israelis to living in the chaos and uncertainty of a West Bank after Israeli withdrawal.<br /><br />A two-state solution can become a reality when the Palestinians are held to the same standards as Israelis — to the requirement that Jewish settlers in a West Bank-Gaza Palestinian state would be treated with the same decency that Israel treats its Arab citizens. Until then, three failures in 13 years should permit us to evaluate the wisdom of further concessions. </blockquote><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-115237405377813257?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1151406700419271302006-06-27T07:06:00.000-04:002006-06-27T07:14:00.296-04:00Songbird Not Yet 0.2 for Mac OS XSongbird not-yet-0.2 was released today for Mac OS X, Linux, and Windows.<br /><a href="http://photos1.blogger.com/blogger/7816/481/1600/songbird_osx.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7816/481/320/songbird_osx.png" border="0" alt="" /></a><br /><br />One cool thing about Songbird is that you can go to any web site that has links to audio files and play them from within Songbird. You have a browser and media player integrated. You can then subscribe to a web page or add the files to your local library.<br /><br />There are many little bugs here and there, but I think this project will be interesting to watch. It can already play Ogg, MP4/M4A, and MP3. It cannot yet play native FLAC files.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-115140670041927130?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1149628997965941062006-06-06T17:12:00.000-04:002006-06-06T17:23:18.503-04:00Launch of BBNBIA few days ago, the <a href="http://www.bbnradio.org">Bible Broadcasting Network</a> announced BBNBI, the <a href="http://www.bbnbi.org">BBN Bible Institute</a>.<br /><br />I'm currently going through "<span id="dnn_ctr3149_ViewLoad__ctl0_LabelCourseTitle" class="Head">The Names Of God" by </span><span id="dnn_ctr3149_ViewLoad__ctl0_LabelSpeaker" class="Normal">John Mitchell.<br />The way it works is you first listen to a lesson (of which there are a few per class) which is in the MP3 format at 128 kbps. What I do is download it and save it into iTunes. Once you've listened to the lesson you take a test. There are 15 questions on each test. Once it's been completed, you go on to the next lesson.<br /><br />This is a great application for those who want to learn more about the Bible and El-Shaddai, but cannot afford to go to a school or simply cannot for some reason. It works around your personal schedule and best of all, it's free. But of course donations to cover operating costs are much appreciated.<br /><br />I definitely recommend it!<br /></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-114962899796594106?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1147975095579179992006-05-18T13:40:00.000-04:002006-05-18T13:58:16.086-04:00Apple Notebooks Actually CheaperI did a little comparison to see how Apple's new MacBook compares with equivalent PC laptops. So I went to TigerDirect.ca and looked for laptops with the Centrino Core™ Duo Processor. Then I took the cheapest one and configured it to the specs of my MacBook configuration.<br /><ul><li>2.0 GHZ Centrino Core™ Duo Processor.</li><li>1 GB DDR2 SDRAM.</li><li>100 GB SATA Hard Drive.</li><li>DVD/RW Drive.</li></ul>The Systemac PC: $2,061.<br />The Apple MacBook: $1,749.00.<br /><br />They both use the same Intel GMA 950 graphics, the exact same processor, the display is the same size, while Apple's is wider, has a built-in iSight video camera, and more software bundled with it.<br />But the Systemac is slightly lighter being 0.45 pounds lighter than the MacBook, but I'd hardly notice that.<br />The MacBook is thinner but overall larger.<br /><br />At least for myself, this debunks the claim that Mac's are more expensive. There's just no trace of that in this case.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-114797509557917999?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1147792443461824762006-05-16T11:04:00.000-04:002006-05-16T11:14:03.950-04:00Canadian Gun Registry, Safety or Control?<p></p><blockquote><p>Liberal MP John Godfrey says the registry cost more money than at first thought, and knows his party will be blamed. But he says the issue isn't money, it's public safety.</p> <p>"The most important point is why we established it in the first place, which was to make Canada safer, so we would know where guns were and who owned them," he said.</p></blockquote><p></p>I just have one question. Is it really public safety these guys are after or is it control they long after?<br /><br />The gun registry does not help a bit when it comes to public safety. Who really thinks someone who wants to use a gun for an illegal purpose will actually register it. Anybody knows how easy it is to get a gun without having to license it, should know that the gun registry only oppresses those who already obey the law, and at the same time makes it easier for those who break the law, to get away with it as not so many good people have guns in order to stop them.<br /><br />Those liberal people love to make half-baked, dimwitted, and ludicrous things sound good to the public in order to gain personal support.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-114779244346182476?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1147571539963202702006-05-13T21:32:00.000-04:002006-05-13T21:52:20.350-04:00Why is Music Important?Why is music important? It's something that is seen my most people I've talked to as something a lot like food. Some people have a taste for that while others have a taste for that. And I agree. Music is a lot like food. There is bad food and there's good food. For example I'd say rhubarb soup with the leaves and all would be considered bad. In fact you'd get sick from it.<br />Now rhubarb stems chopped up and made into a salad would be considered good food. Good for your body.<br /><br />Some people might not have a taste for either of the dishes mentioned, but somebody else might. Does that mean it's good?<br /><br />Take smoking cigarettes for example. Everybody knows it's unhealthy (read bad) but some people do it because they have developed a taste for it. Does that mean it's good? No.<br /><br />But for some reason a lot of these people believe everybody has a taste for different music and it's all good. These people are also, usually addicted to poison.<br /><br />Music has power. It controls the emotions and effects your Spirit. Play a certain kind of music and you can be inviting an evil spirit. Play another kind and you could be inviting a peaceful spirit. Play another kind and you could be inviting a spirit that will cause you to jump cliffs and commit suicide.<br />You may observe this at will.<br /><br />Just a food can make you sick or keep you healthy, music is exactly the same way. You choice of music effects your mental and emotional health.<br />And just as it is possible to become addicted to that which is unhealthy, it is possible, and common for people to become addicted to unhealthy, if not wicked music. Just as one must go on a fast to regenerate oneself. You must go through a mental cleansing over time, in order to get your body used to that which is good once again.<br /><br />The effects are amazing.<br /><br />What is good music? First, follow your heart. In the most literal sense. Does the beat follow the rhythm of your heart beat?<br />Second, make sure the melody is foremost, then harmony, and lastly rhythm.<br />Third, does the music bring honour to your Creator? Does it lift your spirit?<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-114757153996320270?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1147096938863046502006-05-08T09:52:00.000-04:002006-05-08T10:02:27.593-04:00Because of This!Why do I like Firefox? Because unlike Safari, you type in a keyword and it automatically finds the web site you are looking for using Google's "I'm feeling lucky" feature.<br />Why? Because with the tap of a key I can find whatever I want on the page in a split second as I type, unlike Safari where I have to tap twice the amount of keys and then use a dialog to slowly find what I want.<br /><br />Why do I like Mac OS X Terminal? Because before the application even launched it already catches what I'm typing and inserts into standard output. This way by the time the Terminal application window is open, "cd Music; ls -g" is already inserted into the command line interface.<br /><br />Why do I love God? Because when I went astray, he still liked {loved} me and wanted me back!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-114709693886304650?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1146737838703819732006-05-04T06:12:00.000-04:002006-05-04T06:17:18.936-04:00My Mac is FixedI have finally fixed my iMac--by purchasing a MicroNet external Firewire hard drive, and using it as my main hard drive instead of the internal disk. Why? Because my iMac's internal hard drive has some very wierd problems where it will make a beeping sound and nothing will work at all. When it's the boot volume the whole OS will simply lock up.<br /><br />At least I've finally been able to point it down to the hard drive or IDE interface system.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-114673783870381973?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1145756156347553122006-04-22T21:32:00.000-04:002006-04-22T21:35:56.410-04:00Would have FlightGear OSX Released By Now But...I would have FlightGear 0.9.10 for Mac OS X released by now. I was in the process of building universal frameworks for PLIB and SimGear and had fixed the blocking bugs in RenderTexture, but then I changed a system library and now the entire system is hosed. My Mac is now unusable and it will probably be mid-May before I get it fixed because that's when the device is coming that I need to fix it.<br /><br />Well such is life. Sometimes more than one Mac would be nice.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-114575615634755312?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1144278576869628862006-04-05T19:09:00.000-04:002006-04-05T19:09:38.590-04:00Apple's Boot CampLaunched today, <a href="http://www.apple.com/macosx/bootcamp/">Apple Boot Camp</a>. What's next, Apple ditching Mac OS X and preinstalling Windows on Apple computers? I think I'm going to switch completely to Linux soon.<br /><br />Boot Camp allows you to dual-boot Windows XP and Mac OS X on the same machine without losing data. It even provides all the Windows drivers for stuff like graphics and sound.<br /><br />I assume it works be resized the hard disk partitions and creating some. Related, Apple released a firmware update that adds legacy BIOS support to Intel macs.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-114427857686962886?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1143840590720697412006-03-31T16:23:00.000-05:002006-03-31T16:29:51.156-05:00MacFlightGear is No MoreAs I've posted is the forums, I will no longer be working on the <a href="http://www.flightgear.org">FlightGear</a> flight simulator--of which I have been doing a <a href="http://macflightgear.sourceforge.net">Mac OS X distribution</a>.<br /><br />My reasons include the following:<br /><ol><li>It takes up too much time.</li><li>I'm sick of being the only one working on the Mac release.</li><li>FlightGear is so badly designed in some vital areas it makes me want to quit.</li><li>FlightGear is an unorganized project.</li><li>There should be no need for what I was doing.</li></ol>So I quit. Let me know if you would like you continue the project, I can give you some pointers and help you get going but that's about it.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-114384059072069741?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1143683087649042052006-03-29T20:42:00.000-05:002006-03-29T20:44:48.063-05:00First Sun Burn for 2006Today my skin was burnt for the first time this year. And it sure felt good being up there on the roof with the all the warmth.<br />Finally the cold weather is gone and I only have to wear one layer instead of five.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-114368308764904205?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1142560849761074552006-03-16T20:58:00.000-05:002006-03-16T21:00:49.983-05:00New Time StatisticYou can update my time statistic for work to 67%.<br />It seems these days I work from sunrise to sundown. And I pretty much do. How things change in a year.<br />Maybe it's time to start a night shift.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-114256084976107455?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1141929957122988412006-03-09T13:45:00.000-05:002006-03-09T13:50:32.980-05:00My goals for the first beta release which will be the first public release are listed below.<br />I'm not going to do an alpha series this time around because this way I can pick up where v3 left off.<br /><ol><li>Real time iCalendar syncronization.</li> <li>Ability to manage events over the web.</li> <li>Users and Groups.</li> <li>Recurring events.</li></ol>This will make the web calendar useful to most people, including myself. Also included of course is localization support which is better than anything I've ever built, and customizing via templates is easier and more flexible than ever.<br /><br />The current source is available from the subversion repository.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-114192995712298841?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1141778953795369702006-03-07T19:37:00.000-05:002006-03-07T19:49:14.223-05:00The Zend Framework<a href="http://www.zend.com">Zend</a> recently released their first preview release of the <a href="http://framework.zend.com/">Zend Framework</a>. At first I looked at it, and thought maybe when it matures I'll start using it in ACal 4. I've already written a database layer for ACal which is in my opinion easier to use than the one in the Zend Framework. But after trying to figure out how to build the template system I decided to try the Zend_View component. Zend says they use that component on their web site already so it must be good enough to use.<br />So I checked it out, and after having incorporated into the ACal source code, I can tell you it's staying. The concept is very similar to what I did in MachCMS. It's very simple and yet works really well.<br /><br />There are many things that are possible in ACal using the framework, some which I never even thought of before.<br /><ul><li>Zend_Feed - RSS feed of latest events.</li><li>Zend_Mail &amp; Zend_Mime - Event notifications and related</li><li>Create PDF of events.</li><li>Zend_Search_Lucene - Search calendar. I doubt it'll be used though because the technique may not work in our situation.</li><li>Zend_Service - Allow images in events through Flickr.</li></ul>Overall the framework is interesting and will become even more useful as development continues. And it may even make my life easier.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-114177895379536970?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0tag:blogger.com,1999:blog-7655548.post-1141655038958027822006-03-06T09:18:00.000-05:002006-03-06T09:24:04.196-05:00ACal 2.2.6 ReleasedThis week I decided to fix the two security vulnerabilities reported by one named Alex in ACal 2.2.5.<br />So first I changed the code so instead of including the header and footer files they would be read as a file instead of as a PHP script. Second, I got rid of the cookie based authentication system and switched it over to session based authentication. I have to remove the "remember me" feature for now but at least the security hole is gone.<br /><br />But even after looking at the 2.2.x source code, I can hardly believe so many people use ACal, but I guess at least it works, and now that I've released 2.2.6 they can rest in peace.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7655548-114165503895802782?l=artooro.blogspot.com'/></div>Arthur Wiebehttp://www.blogger.com/profile/14553449350840966088artooro@gmail.com0