Who Would Jesus Vote For?

November 7th, 2012 No comments

The repeated and incessant demonization of Barack Obama is absolutely tired and unjustifiable to any rational person. I dare say that God would be proud of this country for the way they’ve voted this week.

Jesus healed the sick. He never turned anyone away because they didn’t have a job. He never charged a dime for it. The Affordable Care Act championed by President Obama is a step towards this. The plan for this is nowhere near complete. This was simply the best compromise that we could get passed. What it does for us is try to make sure that not just the wealthy, not just the employed, simply everyone gets affordable access to healthcare. Much the same as a lawyer at a criminal trial — if you cannot afford health insurance, we will provide it to you. Maybe someday, we can get everyone to see that the right thing to do is simply to provide healthcare to everyone, and not worry about money changing hands. God would be proud of this.

The kind of country that the modern Republican platform is pushing for is one of pure, unadulterated, unrestrained capitalism. No social welfare of any kind. Certainly no public healthcare options. Jesus cared for the sick, for the needy, for the homeless. He didn’t scorn them, say they’re simply not working hard enough. He taught us to love thy neighbor, unconditionally. When you start valuing things like your marginal tax rate over the teachings of Jesus Christ, you’re worshiping a false idol — the dollar. I don’t think I need to tell you what God would think of that.

Referring to Barack as any sort of a godless heathen is simply not true. It’s a falsehood spun by the media trying to smear his good name. Barack Obama is, has publicly stated himself to be, and indeed has been confirmed to be a Christian. He was baptized by the United Church of Christ in 1988. This would make him a Protestant, like nearly every President this country has ever had. Additionally, since Barack was already an adult at the time (27 years old), he willfully CHOSE to be a Christian. So tell me, who is more devout? The man who chose to be Christian despite a non-religious upbringing, or the man who was born into religion, had it thrust upon him all his life, and worships a religion which is not even recognized as Christian by most of the world (including most Christian churches in the United States)?

Thankfully, we live in the United States of America. Where we are free to believe what we want to believe. Where no man may force his beliefs upon another. You may, of course, believe whatever you wish. However, if you choose to believe in the teachings of Jesus Christ, you really need to ask yourself — Who would Jesus vote for?

Categories: Politics, Rants Tags:

Five Lessons About the Way We Treat People

May 21st, 2012 No comments

I sat down and read this tonight and I’d heard many of these stories before… but it makes them no less touching to hear again.


Clear Nonsense – Five Lessons About the Way We Treat People.

Categories: Uncategorized Tags:

Trickle-down doesn’t work

December 22nd, 2011 No comments

Warning:  Rant ahead.

So, today I was reading an article on bloomberg.com and read a quote that… I just cannot leave alone:

“Tearing down the rich does not help those less well- off,” said the chairman of New York-based WL Ross & Co. LLC. “If you favor employment, you need employers whose businesses are flourishing.”

So, Mr. Ross, what causes a business to flourish?  Is it cutting the personal income taxes of the business’ owners?  Or is it having lots of customers patronizing that business?

Scenario: You’re a billionaire. You own a large retail chain with hundreds of stores. What do you want? More money of course. That’s generally the point of owning a business… filling a need in a way that lets you make money. How do your stores make money? People shopping there. Specifically when those people buy high-margin impulse items.  How do you get more people shopping there and buying more impulse items? Well, you want them to have more money of course… so lets look at how to do that…  So, do you cut the taxes to the wealthy people who… don’t really shop at your stores, and probably own their own businesses? Cutting taxes for the wealthy wouldn’t do anything… they mostly already have more than enough money to buy everything they want, and really, they don’t shop at your stores. Even if they cut your taxes, it doesn’t mean your stores can suddenly afford to pay people more or hire more workers… your shareholders would be upset by the lower profits, meaning lower dividends for them. Cutting the taxes of the people shopping at your stores, the ones who shop at your store hoping to save money on inexpensive goods, that’ll help drive more people into your stores with more money in their wallets that they can spend on those profitable impulse purchase items. We can also cut the expenses for your customers, to give them more money to spend.  What’re some ways to accomplish that? Providing better, cheaper mass transit, providing free healthcare, subsidizing food costs, etc… but that has to be paid for somehow? We could raise taxes on the wealthy… you don’t like it, it’s less money for you, but it doesn’t really hurt your bottom line because you already make far more than you spend with your needs and wants combined… and it means you can help cut expenses for the people shopping at your store, so they can spend more money. Really, if you cut their expenses enough, they might shop so much more often and buy so many more impulse items that you ultimately make even more money despite your taxes being significantly higher.  Now THAT makes business sense.

Really, how do you create a business?  Do you come up with a product/service, build a whole business around supplying that product/service, and hope people come buy it?  Or do you find a demand for a product/service, develop a profitable means to provide that product/service, and then build the business around supplying it?  Hint:  One of these ways is far more successful than the other.

Smart business owners find the demand for a product or service first, then profit from filling that demand.  Supplying a product or service without any customers demanding it is a great way to go nowhere.  Economies are always driven primarily by demand, not by supply.

We’ve seen governments give us the kind of economics that fiscal conservatives say they want… small, efficient government with low taxes.  It was known as feudalism.  All of the wealth was at the top… but it didn’t trickle down.  It stayed at the top, and kept the nobles wealthy and in power for centuries while there was no middle class and 99% of the population was lower class. C’mon, is that REALLY what you want?  Because the odds are not in your favor to be in that upper class…


Categories: Politics Tags:

PacketTerrier Twitter Bot

September 13th, 2011 No comments

Like any good nerd, I felt my dog needed a twitter. This is written in Python using the python-twitter library.


#!/usr/bin/env python
import time
import twitter
import math
import random
import threading
import logging

interface = twitter.Api(consumer_key='', consumer_secret='', access_token_key='', access_token_secret='')

def main():
	tt = TweeterThread(interface)
	ft = FrienderThread(interface)
	tt.daemon = True
	ft.daemon = True
	while True:
class TweeterThread(threading.Thread):
	def __init__(self,interface):
		self.interface = interface
	def run(self):
		logging.info("Tweeter Start")
		message = None
		lastMessage = None
		status = None
		while True:
			nextSleep =  math.ceil(random.uniform(1800,7200))
			while message == lastMessage:
				message = chooseTweet(nextSleep)
				logging.info("Posting status update")
				status = self.interface.PostUpdate(message)
			except twitter.TwitterError, error:
				logging.error("Twitter API Error: '%s'  Trying again in 60 seconds." % error.message)
				nextSleep = 60
			lastMessage = message
class FrienderThread(threading.Thread):
	def __init__(self,interface):
		self.interface = interface
	def run(self):
		logging.info("Friender Start")
		friends = self.interface.GetFriends()
		while True:
			logging.info("Checking for new friends")
			replies = self.interface.GetReplies()
			for r in replies:
				isFriend = False
				for f in friends:
					if f._screen_name == r._user._screen_name:
						isFriend = True
				if not isFriend:
					logging.info("Making friends with %s" % r._user._screen_name)
					self.interface.PostUpdate("Hai @%s! I like making new friends!  Did you bring me treats?!?!" % r._user._screen_name)
					friends = self.interface.GetFriends()
def chooseTweet(nextSleep):
    hour = time.strftime("%H")
    minute = time.strftime("%M")
    if hour >= 23 and (hour < = 6 and minute <= 59):
        messageFile = "sleepMessage.txt"
    elif hour >= 16 and hour < = 17 and (time.strftime("%w") >= 1 and time.strftime("%w") <= 5):
        messageFile = "homeSoonMessage.txt"
        messageFile = "dayMessage.txt"
    messages = list()
    mf = open(messageFile, "r")
    for line in mf:
    return random.choice(messages).strip()
if __name__ == '__main__':

Categories: Uncategorized Tags:

The Battle of Veridian III

May 3rd, 2011 1 comment

I may be crucified for saying this, but after thinking about it, I believe Riker made a grievous tactical error at the Battle of Veridian III, which, had he played it differently, could have saved the Enterprise-D.

Riker’s strategy was to perform evasive maneuvers and essentially take pot-shots at the bird-of-prey.  This proved largely ineffective, as we saw by the massive damage to the Enterprise ultimately resulting in her destruction.

What he forgot was that the bird-of-prey is not a particularly tough ship.  They’re designed to be nimble and stealthy for quick hit-and-run attacks.  A Galaxy class starship will never out-run or out-maneuver a bird-of-prey at sublight speeds.  The Galaxy class, however, is a fairly durable design, often used as a staple in large fleet actions.

All things considered, when the first volley hit, MY orders would have been: forget the shields, divert all shield power and anything else we can spare to weapons and close to point-blank range, maintaining continuous fire.  The shields were worthless at this point, so why did Riker waste the energy to maintain them?  Diverting the shield power to weapons would’ve given the Enterprise a massive punch and would’ve collapsed the relatively weak bird-of-prey’s shielding quickly, and once that’s done, we’ve seen repeatedly how quickly a bird-of-prey can be torn to shreds by even a single photon torpedo.  Even if the bird-of-prey had opted  to out-maneuver the Enterprise with this strategy, they would have been giving the Enterprise a lot more room to breathe and (as the bird-of-prey’s weaponry only has forward firing arcs) wouldn’t have been able to maintain the near continuous fire on the Enterprise that they had during the battle.

Why did Riker, a trained, decorated and seasoned Starfleet officer not think of this, and I, while grocery shopping, did?  🙁

Categories: Geekery, Randomness Tags:

Exponent registration bug patcher

May 3rd, 2011 No comments

In response to a recent ExponentCMS security vulnerability which allows a cross-site script injection to allow anybody to create a new admin user, I’ve written the following script that will automatically apply the necessary patch.  
Suggested usage:

find /home/*/public_html/framework/datatypes -name user.php -exec python fixRegBug.py {} \;


#!/usr/bin/env python
# encoding: utf-8

Created by Ron Miller on 2011-05-03.
Copyright (c) 2011 Youcentric Solutions. All rights reserved.

import sys
import os

def main():
	if sys.argv[1] is None:
	    print "Please specify path to user.php"
	oldfile = open(sys.argv[1], "r")
	newfile = open(os.path.join(os.path.dirname(sys.argv[1]), "user.new.php"), "w")
	for line in oldfile:
	    if "if(isset($params['is_admin']) || isset($params['is_acting_admin'])) $this->checkAdminFlags();" in line:
	        line = "\t$this->checkAdminFlags();"
	        print "Found and fixed vulnerability in %s" % sys.argv[1]
	os.rename(sys.argv[1], os.path.join(os.path.dirname(sys.argv[1]), "user.old.php"))
	os.rename(os.path.join(os.path.dirname(sys.argv[1]), "user.new.php"), sys.argv[1])

if __name__ == '__main__':

Categories: Linux, Servers Tags:

My iPhone

February 7th, 2011 No comments

Before anyone thinks I need your permission or approval to buy a new phone, I just want to clarify: I don’t. I’m only taking the time to type this up because I’m already getting endless crap from tech evangelists and I want to make my point once and only once.

The arguments against the iPhone:

  1. Non user replaceable battery – This does not affect me. I have no interest at all in carrying multiple batteries for my phone. When the built in battery dies, I will be out of warranty anyway so I will replace the battery myself.
  2. Non expandable memory – My Droid had 16Gb of flash, just like my new iPhone does. I at most used 9Gb of it. I do not forsee needing significantly more on an iPhone.
  3. No physical keyboard – This one at least has some merit. I imagine there may be a rare instance where I miss having the keyboard. That being said, the longer I had the Droid, the less I used it’s physical keyboard. I got very used to using the virtual keyboard to the point that my accuracy and speed were lower on the physical keyboard. And Apple’s virtual keyboard is noticeably more usable.
  4. Closed platform under Apple’s control – Sorry folks, I just don’t need 100 different applications for every possible use. The apps that Apple DOES have are of distinctly greater quality and performance as well. When I get right down to it, there are maybe a half dozen apps I use on a daily basis, and they’re all of equal or greater quality on the iPhone vs Android.
  5. Apple will be releasing a new iPhone soon – Don’t you worry about me. I’ve got that covered too.
  6. No multitasking – This is one that I’ve really nagged people on in the past.  And honestly, what iPhone has now is good enough for a mobile device.  You can’t really, truly use more than one application at a time anyway on your mobile device, why pretend otherwise?  Android’s way of allowing multiple fully-running applications simultaneously is horribly detrimental to battery life.
  7. Fewer free apps – True.  But the ones I really want/need are free anyway.

My issues with Android:

  1. Application quality – I cannot think of a single case where an iPhone application is noticeably lower quality than its android counterpart. I cannot say the opposite is true. While having an open market such as the android app store may foster a competitive development atmosphere, what it’s done so far is to foster an environment of sloppy developers pushing out poor quality applications.  Or perhaps the Android SDK is really just that bad, in which case I apologize to the developers and point my finger squarely at Google to step up to the plate.  I cannot say which for certain, as I have not tried my hand at Android app development (nor do I especially want to, which brings me to #2.
  2. Java – Java by any other name is still Java.  I am yet to see a Java application that runs as lean, stable and performant as its non-Java counterpart.  Until I have this experience, I cannot forgive, forget or endorse the use of Java in any form on Android, which means that I cannot fathom wanting to develop android applications, nor do I feel right continuing to use the platform while it is based on this technology.
  3. Always behind the curve – Android has, from day one, been playing catch-up to Apple’s iPhone.  Just recently are we starting to see significant features hit Android devices first.  Additionally, application developers have a much more difficult target to hit with Android, being the more open and unrestricted platform that it is, so the iPhone version of nearly any application always comes out first, followed at some undetermined date by the Android version.  I’m sick of being the apologist or feeling like I need to play catch-up.  I want what THEY (and now I) have already.
  4. Too unrestricted – This one’s kind of like the deregulation of the banking industry… go too far, and you’ll have a disaster.  As I was mentioning in #3, there is too little standardization on the hardware.  It’s made for a fractured community, running a multitude of software versions, on dozens of different hardware configurations.  It’s difficult to write anything more than the simplest applications and have them work consistently across all of these devices since there’s no standards for any of the configurations.  Think there’s no merit to this?  Go search for the reason why there’s no Android version of Plants vs. Zombies.
  5. Email Support – So long as you’re using Gmail and only Gmail on your Android phone, email works fine.  But what if you want to use Gmail as well as some IMAP or Exchange accounts?  As soon as you add those other accounts, they take over your phone, and you’ll no longer be able to use your Gmail accounts from the “Share” menu.  This is a horrible design, and I suspect it could be easily corrected.
  6. Unpredictable upgrades – Some might argue that this is a flaw with iPhone as well, but really, it’s not.  Apple has established a pattern and once they do that, they tend to follow it (your iPhone will get the next two major software upgrades after it’s released, then you’re cut off). Android, however, is a crap shoot.  You have to speculate regarding if and when you’ll get that software upgrade.  If ever.  Some vendors just stop supporting their old hardware and push people towards the new.  Great support policy there… the pattern that the Android community has established is that the only version of Android you can count on having is the one that’s on your phone when you buy it.
  7. Rough around the edges – This one is a matter of personal taste, but I’ve always felt like most every Linux-based GUI has been rough around the edges and lacks the polish of its closed-source counterparts.  Android is no exception to this.  This isn’t just prettiness, it’s also a matter of usability, and in some cases (I’ll try to think of specific examples later and edit this as appropriate),  it just feels clunky. (As compared to sluggish,  which would be more attributed to my older Droid’s hardware).
  8. Battery life – This one is one that I had to draw attention to my iPhone desires to test, by purchasing a used iPhone 3G.  That iPhone 3G, with questionable battery health, soundly outlasted my droid’s brand new battery.   Bear in mind as well that the iPhone 3G was notorious for having the worst battery life of all of the iPhone series.  And in case anyone’s wondering, I can now re-sell that iPhone 3G for as much, if not more than I paid for it.

Some people are probably still not convinced that this was a well thought out purchase on my part, or just flat out disagree with any/all of my points.  That’s fine, you’re free to have your opinions.  But ultimately, this was my choice to spend my money and it in no way affects you.

Love it or hate it, I don’t care.  Just leave it alone.

Categories: Gadgets Tags:

Juniper/Aventail VPN Fix for Ubuntu 10.04

June 8th, 2010 No comments

With the release of Ubuntu 10.04, the tun driver, commonly used for VPN connectivity, has been moved into the kernel, instead of being loaded as a module as it was previously.  Unfortunately, the Juniper and Aventail VPN clients check for VPN support in the kernel by running a “modprobe tun”, instead of checking for the presence of the device nodes.  This causes the VPN connections to immediately fail, even though they would otherwise succeed.  Searching the Ubuntu forums, I happened upon this thread:


After trying a couple of the other fixes, I finally found a script, posted by cdenley (http://www.chrisdenley.com/) which successfully works around the issue by creating a null driver named tun, which the VPN clients can then modprobe with no harmful results to satisfy their requirements.

#! /usr/bin/env bash
sudo apt-get install build-essential linux-headers-`uname -r`
mkdir faketun
cd faketun
echo -e "#include <linux /module.h>\nstatic int start__module(void) {return 0;}\nstatic void end__module(void){return;}\nmodule_init(start__module);\nmodule_exit(end__module);">tun.c
echo -e "obj-m += tun.o\nall:\n\tmake -C /lib/modules/\$(shell uname -r)/build/ M=\$(PWD) modules\nclean:\n\tmake -C /lib/modules/\$(shell uname -r)/build/ M=\$(PWD) clean\nclean-files := Module.symvers">Makefile
sudo install tun.ko /lib/modules/`uname -r`/kernel/net/tun.ko
sudo depmod -a
sudo modprobe tun

Categories: Linux Tags:

Al Franken Embarrasses Comtastrophe (Comcast)

February 15th, 2010 No comments

I have to say, I’m a huge fan of Al Franken.  He’s the kind of no-BS senator we’ve needed for a while.  Personally I’m hoping there are more like him that will step up to take on the corruption in D.C.  While catching up on my RSS feeds today, I stumbled upon this gem, where Al Franken grills Brian Roberts (CEO, Comcast).

Really, Mr. Roberts?  You actually believe that Comcast is #1 in their industry?  Perhaps in size, but certainly not in customer satisfaction, where Comcast’s reputation for poor customer service (Wikipedia) speaks for itself.  Even the comments on the above YouTube video reflect the utter disgust people have with Comcast, with an employee chiming in:

As a Comcast employee, I totally agree with Senator Franken on this issue. He is one hundred percent right about the double dealings of Brian (anti union) Roberts and his cronies.

Sorry Mr. Roberts, but you’ll need to do more than just re-branding your services to convince us that you’ll act in consumers’ best interests if the NBC acquisition/merger is approved.  In fact, let’s pose these two survey questions to your customers:

  1. If a competing provider were to offer equivalent service to your Comcast services, would you be interested in switching?
  2. Would you still be interested in switching your services if the competing service provider had higher prices for the services you use?

Personally, I would say yes to both, and I think Comcast’s executives might be surprised at just how many people feel the same way.  Comcast feels like they don’t have to fear the FCC because the FCC has no real teeth.  They are forgetting one very important factor though:  It was the FCC that granted the market-monopolies that Comcast has exploited to build its network to gigantic proportions, and the FCC can take those away just as easily.  If you prod the old bear, you’ll see just what he can do to you.  And the FCC knows this too.  They’re already considering forcing the telecoms to share their lines outright (Ars Technica), so it’s just a matter of time before they aim this sort of thing directly at Comcast.  Count your days, Mr. Roberts.  They are numbered.

Proof That Fox News Sucks

December 4th, 2009 No comments

Doing my usual morning ritual of catching up on Google Reader I noticed something amusing…absolute proof that Fox News is inept and does not check their facts before finding some way to attack Obama. Oh no! If Fox News is wrong…where are closed minded people to get their information?!?!
Fox: Where are the jobs?
AP: Unemployment rate fell in November.
Fox News FAIL!

Categories: Uncategorized Tags: