Tue, 24 Aug 2010
Unions vs. Globalization
Unions are against globalization.
To listen to them, unions are a force for good for all workers (rather than
just the workers who pay the union its dues). But to watch them, you can see
that they're in favor of cartelization. They don't mind other people
competing against them, as long as those people are hobbled by the same
pay rate, protections, and benefits as the union members have. In other
words, they're not allowed to use a lower cost of living, or a lower regard
for their own safety, or a longer work week as a competitive advantage.
Sigh. Unions! Still selfish, after all these years.
Posted [23:52] [Filed in:
economics]
[
permalink]
[
Google for the title] [
digg this]
Sun, 08 Aug 2010
US WMS
JOSM doesn't support WMS Capabilities, so I created a crutch for it. These two programs (the first calls into the second) create three files for each state. One is the capabilities file downloaded from Seamless. Another one contains just the WMS URLs. Another one is an OSM file containing bounding boxes for each of the WMS layers. Load it into JOSM to see what layers cover what.
I find that it's helpful to initially turn on a WMS layer while
zoomed out enough to see the entire bounding box. You get a very low
resolution layer, but you can see if it overlaps your area of
interest. Then you can zoom in enough, right-click on the layer name
in the Layers box, and selecte "Change Resolution" to get a nicely
rendered layer.
#!/usr/bin/python
# pulled by hand from http://seamless.usgs.gov/wms_services.php?layerid=15
all = """USGS_EDC_Ortho_Coastal http://ims.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Coastal?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_StateLocal http://ims.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_StateLocal?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Urban http://ims.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Urban?REQUEST=capabilities&SERVICE=WMS
BLM_Ortho http://ims.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/BLM_Ortho?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_NYSDOP_Grid http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_NYSDOP_Grid?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Alabama http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Alabama?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Alaska http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Alaska?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Arizona http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Arizona?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Arkansas http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Arkansas?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_California http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_California?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Colorado http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Colorado?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Connecticut http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Connecticut?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Delaware http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Delaware?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_DistrictOfColumbia http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_DistrictOfColumbia?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Florida http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Florida?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Georgia http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Georgia?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Hawaii http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Hawaii?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Idaho http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Idaho?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Illinois http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Illinois?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Indiana http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Indiana?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Iowa http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Iowa?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Kansas http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Kansas?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Kentucky http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Kentucky?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Louisiana http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Louisiana?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Maine http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Maine?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Maryland http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Maryland?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Massachusetts http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Massachusetts?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Mexico http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Mexico?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Michigan http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Michigan?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Minnesota http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Minnesota?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Mississippi http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Mississippi?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Missouri http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Missouri?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Montana http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Montana?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Nebraska http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Nebraska?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Nevada http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Nevada?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_NewHampshire http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_NewHampshire?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_NewJersey http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_NewJersey?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_NewMexico http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_NewMexico?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_NewYork http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_NewYork?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_NorthCarolina http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_NorthCarolina?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_NorthDakota http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_NorthDakota?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Ohio http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Ohio?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Oklahoma http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Oklahoma?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Oregon http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Oregon?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Pennsylvania http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Pennsylvania?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_PuertoRico http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_PuertoRico?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_RhodeIsland http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_RhodeIsland?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_SouthCarolina http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_SouthCarolina?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_SouthDakota http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_SouthDakota?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Tennessee http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Tennessee?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Texas http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Texas?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Utah http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Utah?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Vermont http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Vermont?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Virginia http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Virginia?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Washington http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Washington?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_WestVirginia http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_WestVirginia?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Wisconsin http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Wisconsin?REQUEST=capabilities&SERVICE=WMS
USGS_EDC_Ortho_Wyoming http://imsortho.cr.usgs.gov/wmsconnector/com.esri.wms.Esrimap/USGS_EDC_Ortho_Wyoming?REQUEST=capabilities&SERVICE=WMS"""
for one in all.split("\n"):
state, url = one.split("\t")
state = state.replace("USGS_EDC_Ortho_", "")
# if for any reason, you need to run this program twice, comment out the following line
print "wget -O %s.xml %s" % (state, url)
print "./capabilities-to-osm.py %s.xml >%s.wms" % (state, state)
capabilities-to-osm.py follows:
#!/usr/bin/python
from xml.sax import saxutils
import sys
import time
class OSM():
nodenum = -1
waynum = -1
def __init__(self, outf=sys.stdout):
self.outf = outf
self.outf.write("""<?xml version='1.0' encoding='UTF-8'?>
<osm version='0.6' generator='osmgen'>
""")
self.startnum = None
def point(self, x,y):
self.outf.write("<node id='%d' lat='%s' lon='%s' />\n" % ( self.nodenum, y, x))
self.nodenum -= 1
def start(self):
self.startnum = self.nodenum
def stop(self, name=None):
self.outf.write("<way id='%d' visible='true'>\n" % self.waynum)
self.waynum -= 1
for n in range(self.startnum, self.nodenum, -1):
self.outf.write("<nd ref='%d'/>\n" % n)
self.outf.write("<nd ref='%d'/>\n" % self.startnum)
self.outf.write("<tag k='area' v='yes'/>\n")
if name is not None:
self.outf.write("<tag k='name' v='%s'/>\n" % name)
self.outf.write("</way>")
def close(self):
self.outf.write("</osm>\n")
class print_track(saxutils.XMLFilterBase):
chars = None
baseurl = None
def startElement(self, name, attrs):
if name == 'LatLonBoundingBox':
# <LatLonBoundingBox minx="-79.810565637" miny="0" maxx="-71.8388440985" maxy="45.1013683371"/>
osm.start()
osm.point(attrs['minx'], attrs['miny'])
osm.point(attrs['minx'], attrs['maxy'])
osm.point(attrs['maxx'], attrs['maxy'])
osm.point(attrs['maxx'], attrs['miny'])
osm.stop(self.name)
elif name == 'Name':
self.chars= ''
elif name == 'OnlineResource':
self.baseurl = attrs['xlink:href']
def characters(self, ch):
if self.chars is not None:
self.chars += ch
def endElement(self, name):
if name == 'Name':
self.name = self.chars
self.chars = ''
if self.baseurl:
print "%sservice=WMS&version=1.1.1&request=getmap&width=500&height=500&format=image/png&SRS=EPSG:4326&layers=%s&" % (self.baseurl, self.name)
from xml.sax import make_parser
from xml.sax.handler import feature_namespaces
if __name__ == '__main__':
import sys
# Create a parser
parser = make_parser()
# Tell the parser we are not interested in XML namespaces
parser.setFeature(feature_namespaces, 0)
osm = OSM(open(sys.argv[1].replace('.xml', '.osm'), "w"))
# Create the handler
dh = print_track()
# Tell the parser to use our handler
parser.setContentHandler(dh)
# Parse the input
parser.parse(open(sys.argv[1]))
osm.close()
Posted [15:40] [Filed in:
osm]
[
permalink]
[
Google for the title] [Tags
openstreetmap,
josm ] [
digg this]
Wed, 28 Jul 2010
Stupid Conservatives
Yo! Stupid conservatives! Y'all keep whinging about how wonderful
it is that Arizona is FINALLY doing something about immigration.
It sounds like you wish that the Federal Government would do its job
and keep those dratted foreigners out.
Well, I have exactly zero words for you:
[nelson@desk ~]$ grep -i immigration ~/Constitution
[nelson@desk ~]$
Yes, that's right, immigration is not one of the enumerated powers.
Maybe you'd like it to be? Maybe you wish that it was? Maybe you're
willing to give this one power, just this one, to the Feds?
Well, I have exactly one word for you: emigration.
If the Feds can control immigration even though the Constitution
doesn't give them that power, then they can also control emigration.
So when the USA turns into the communist USSA and Der Presidente for
life decides that you can't leave, where are you going to be THEN??
The Feds don't have the ability to stop people from entering or
leaving the United States, and that's a good thing.
Posted [20:51] [Filed in:
economics]
[
permalink]
[
Google for the title] [Tags
stupid,
conservatives ] [
digg this]
Sun, 18 Jul 2010
Williams Done Wrong
Hey you, over there. If you were offended by Mark Williams blog posting
about a letter from Colored People to Abraham Lincoln, THEN YOU ARE STUPID.
And you lack any sense of historical perspective. Many many people thought
at the time that colored people could not take care of themselves. That
freedom was too much for them. That they would have to think for themselves,
and suffer the consequences of their choices. That colored people couldn't
do that, and so for example, if you wanted to free your slaves, you first
had to put up a bond against them becoming wards of the state.
So to pretend that "Colored People" were writing to Lincoln to agree
with the racist opinion of the time, is just too delicious for words.
It's absurd theater at its best.
Posted [18:12] [Filed in:
economics]
[
permalink]
[
Google for the title] [Tags
prejudism ] [
digg this]
Sat, 26 Jun 2010
Violently Protesting for Peace
I just have to shake my head. Again, at global government meetings,
you have so-called "anarchists" who are demonstrating for their
concept of peace and justice, which seems to include violence. But
violence doesn't cause people to say "Hey, my government is engaging
in violence. I must want less government". No, they say "Hey, my
government isn't going enough to stop the violence. I should give
them more power (money and privilege) so that they can keep these
protesters in line."
It's like shooting yourself in the foot to promote foot health, to mix
a metaphor.
Posted [16:18] [Filed in:
economics]
[
permalink]
[
Google for the title] [Tags
anarchidiots,
peace,
protesting,
g20 ] [
digg this]
Mon, 07 Jun 2010
Less Government?
I'm not sure Leonard Pitts is correct about Bobby Jindal rethinking
his belief in less government. What if your next-door-neighbor
contracted with a wind energy company to erect a wind generator, and
it fell on your property? You'd be angry at the company, but you'd
hold your neighbor responsible.
Now, the US Government claims ownership of the waters off the coast.
It licensed BP to drill off the coast. That went sour, and Louisiana
has been hurt. They're holding the US Government responsible.
This has nothing to do with the correct size of your next-door
neighbor. Nor does it have anything to do with the correct size of
the US Government (which does things not even remotely present in the
US Constitution).
Government is the enemy in the case of this oil spill, since it didn't
require remotely operated valves on the blowout preventer.
Posted [00:08] [Filed in:
economics]
[
permalink]
[
Google for the title] [Tags
oilspill,
bp,
licensing ] [
digg this]
Sat, 29 May 2010
Ride starting Sat May 29 15:47:05 2010
22.32 km 73219.91 feet 13.87 mi
5798.00 seconds 96.63 minutes 1.61 hours 8.61 mi/hr
Went out for a late afternoon ride with the wife on the tandem because
the yankees blew a 7 run lead. Felt much better about it after the ride.

Posted [18:35] [Filed in:
bicycling]
[
permalink]
[
Google for the title] [Tags
bicycling ] [
digg this]
Mon, 24 May 2010
Not the free market's job
A bunch of people are tweeting and retreeting the question
"I didn't look today, did the free market clean up the oil yet?".
I have a couple of responses to that. First that there is no such thing
as a free market. You're not free to sell something unless someone else
is willing to buy it. That points to the conclusion that there are only
customer-regulated markets and government-regulated markets. And that
poses the question: who's the customer here, and if they're not regulating
why not?
If customers can't regulate the behavior of sellers, then it's not even
close to being that-thing-which-is-called-a-free-market. So that points
to this: when governments regulate, they don't regulate in a vacuum.
Their regulation displaces customer regulation. If you look at the oil
industry, you'll find that it's regulated up the wazoo and back down again.
Customers can't regulate because they're being prevented from doing so by
government regulation.
Thus, to my friends who are asking this question, I suggest that since
a free market isn't present in the oil industry, it's silly to expect that
something which doesn't exist is capable of taking action.
And my second response is to ask what would have happened had this oil
spill happened on private property. It's certainly the case that the
property owner would have a contract with BP, and the contract would
specify remedies. One way or the other, the property owner is going to
be compensated for the risk of oil spills.
Who is the property owner here? Why, it's the federal government, which
claims to own the seas off our coast. What does their contract with BP say?
If it doesn't hold BP's feet to the fire for enough money to clean up the
oil, then why did the government allow the drilling?
So the question is not why the free market hasn't cleaned it up yet,
but instead why the government screwed up. Private companies fire
incompetent executives, and if they don't do that, they go out of business.
Who's going to lose their job over the irresponsible handling of the
BP drilling? And if they don't, will the government go out of business?
The answer is obviously "no" to the second, and probably "nobody" to the
first. And that, my friends, is exactly why you want to limit
the things you let your government do.
Posted [00:18] [Filed in:
economics]
[
permalink]
[
Google for the title] [Tags
oiltastrophy,
bp,
oil,
freemarket ] [
digg this]
Sun, 23 May 2010
Racism by Rand Paul?
Rand Paul points out that customer regulation of markets doesn't tolerate
racism. Racism in a market is a commons. Anybody can be a racist, up to
a point, but if too many people are racists, the market for racism gets
destroyed. In order for all the racists to succeed in business, you need
to manage this commons. Typically, this is done by government, and
specifically, in the case of black racism, by Jim Crow laws.
Just another example of government regulation of markets making everyone
worse off. It's a dangerous tool that we're better-off without.
Yes, it can sometimes succeed, but most often it fails, and because the future
is unknown to us, we can't pick the successes and avoid the failures.
Better to have separation of state and markets. Let customers regulate
markets, not politicians.
Posted [03:09] [Filed in:
economics]
[
permalink]
[
Google for the title] [Tags
racism,
randpaul ] [
digg this]
Sun, 02 May 2010
Immigration, the victimless crime
I am disappointed by conservative's reactions (Fred Thompson, and Anne Coulter, to name two) to the Arizona legislation. They point to a higher crime rate by illegal immigrants, to which I say "When immigration is outlawed, only outlaws will immigrate." If you make it risky to immigrate, only those with nothing to risk will immigrate. Perhaps this will surprise some conservatives, but there are Mexican professionals like doctors, lawyers, engineers, and programmers, who have better things to do than come to the US and standing around waiting to be hired.
Also, I want to see the victim of the crime of illegal immigration. Name the victim, or else I'll claim it's a victimless crime.
Or maybe they want to claim that Mexicans come here just to go on welfare? Sorry, but the facts go against that; instead they work on fake social security cards for which they will never be able to claim the benefits.
Or maybe they want to claim that Mexicans are here to take American's jobs? Well, the day that a spanish-only Mexican can take an english-speaking American's job, is the day that Mexican deserves the job. If an American can't or won't work harder than a Mexican, I have no pity for them. If they're a victim, it's of their own laziness.
Posted [23:56] [Filed in:
economics]
[
permalink]
[
Google for the title] [Tags
arizona,
immigration,
crime,
illegals ] [
digg this]