Archive for category Computers

converting vmware windows virtual machines to citrix xenserver virtual machines

after hunting around for quite some time, along with a lot of trial an error, this process ended up working good for me.

1. download (MergeIDE unzip it and run it on the vmware instance you want to move.

2. uninstall the vmware tools.

3. save all your network settings. run:

ipconfig /all > network.txt
netstat -rn >> netstat.txt

4. on the XenServer, create a new windows VM with the same CPU/Memory/Disk Size specs as your vmware VM

5. get rid of any snapshots you had made for the vmware instance.

6. depending on what form of vmware you are running (workstation/server/esxi/esx) you might have to convert the disk image using something like vmware-vdiskmanager (which comes with all the vmware products):

vmware-vdiskmanager -r vmware_image.vmdk -t 0 temporary_image.vmdk

if you arnt sure if you need to convert the disk, it doesnt hurt to convert it anyway. You just might waste time and disk space. If you are using esxi, you don’t need to convert the disk.

7. assuming you have access to the vmware .vdk disk image, run this from a linux box:

qemu-img convert ./name_of_source_vmdk_file.vmdk VM_Instance_Name.img

8. you need to access the new converted disk image from the XenServer, so put it on an NFS mount or something.

9. First figure out the UUID of the disk image you created when you created the new xen instance. Its much easier if you go into the XenCenter GUI and go to the instance you created, and rename the disk something useful.

Then you can ssh into the XenServer and type:

xe vdi-list  name-label=whatever_you_named_the_disk

copy down the UUID of the disk image.

Then run:

xe vdi-import uuid=uuid_of_disk filename=name_OF_SOURCE_DISK_IMAGE.img

after a while, you get dropped back to the prompt, and you can fire up the XenServer instance.

It has finally become clear. Oh so very clear.

While perusing through my RSS feed list for the day, I came across yet another the “i<insert dumb word here>” is doing something! article. Trying to put aside my normal rantings about how stupid the iPod is, and what a crappy useless interface iTunes has, or the crappy pricing structure iTunes has, or their horrible DRM format. Or any of the other “fun stuff” that the mac fan boy crowd constantly rambles about.

But anyway….

I saw this post on BoingBoing blah blah, iTunes will now rip you off more…blah blah blah.

Then I saw the image they attached to the article:


http://craphound.com/images/jobsemi.jpg

What a great URL by the way….craphound.com…haha

I said to myself, that snooty pompous man in the dumb turtleneck looks familiar….but who….. I know its Steve Jobs…but no. Someone else….

Then it hit it. Its none other than Dr. Cocteau from Demolition Man! (Nigel Hawthorne)

See the resemblance?

Then I started to think about it, and the crap that Apple peddles, and the “Utopian Ideals” that Dr. Cocteau brainwashed everyone in San Angeles with arn’t all that different.

Behold the future!

Powered by ScribeFire.

SNMP on a cisco 6509 and intermapper

at my work we use InterMapper to monitor all our equipment. I was trying to get the SNMP probe it has for cisco equipment to work with our Cisco 6509 switch, but apparantly cisco decided that it would be fun to use completely differant OIDs for that line of switches. so I spent hours yesterday trying to get it to work.

Sure, cisco has a nice repository of all the MIBs for all their equipment, but they are all uncompiled and missing the actual OIDs.

Granted I am not nearly as familiar with SNMP stuff as I would like to be, but come on.

Look at the number of mibs available just for the 6500 series:
ftp://ftp-sj.cisco.com/pub/mibs/supportlists/wsc6000/wsc6000-supportlist-ios.html

All I am looking for is the CPU load and the amount of memory available. For the 5 second CPU Load according to the MIB file this is what I need:

cpmCPUTotal5sec OBJECT-TYPE
SYNTAX Gauge32 (1..100)
MAX-ACCESS read-only
STATUS deprecated
DESCRIPTION
"The overall CPU busy percentage in the last 5 second
period. This object obsoletes the busyPer object from
the OLD-CISCO-SYSTEM-MIB. This object is deprecated
by cpmCPUTotal5secRev which has the changed range of
value (0..100)."
::= { cpmCPUTotalEntry 3 }

Part of the fine is the deprecation chain. As you can see in the mib excerpt, cpmCPUTotal5sec was deprecated by cpmCPUTotal5secRev. If you go to the cpmCPUTotal5secRev section, it says it was deprecated by cpmCPUTotalMonInterval, which when you go to that section. But of course the only one of those that is actually in our version of the 6509 is cpmCPUTotal5sec.

Anyway, It sure would be nice if the OID was listed in that mib file. Then I find this file:
ftp://ftp.cisco.com/pub/mibs/oid/CISCO-PROCESS-MIB.oid

One of the lines says:
"cpmCPUTotal5sec" "1.3.6.1.4.1.9.9.109.1.1.1.1.3"

So I should be all set now right? no.

This might be an issue with our version of intermapper, because if I use snmpwalk like this:

snmpwalk -O -v 2c -c CommunityName IPAddress 1.3.6.1.4.1.9.9.109.1.1.1.1.3

I get this result:
SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.3.9 = Gauge32: 21

It sure looks like that should work. I get a value and everything! So I write the custom SNMP probe for InterMapper with the 3 OIDs I want to watch. But none of them work, InterMapper claims none of those OIDs are available in the switch. Of course snmpwalk disagrees. So I figure I just completely messed up writing the probe.

So this morning I come into work figuring I would give it a fresh go. I happened to be looking through the options for snmpwalk, and notice the “-O n” option, which prints out the OID numerically. Which returns:
.1.3.6.1.4.1.9.9.109.1.1.1.1.3.9 = Gauge32: 21

So apparantly, my problem the whole time was that InterMapper wants the OID to look like this:
.1.3.6.1.4.1.9.9.109.1.1.1.1.3.9
Instead of this:
1.3.6.1.4.1.9.9.109.1.1.1.1.3

Not sure what the .9 at the end does, but go figure… It sure would be nice to just make the OID available in the first place. without jumping through so many hoops.

For anyone that cares, These are the OIDs that seem to make the most sense:

cpmCPUTotal5sec .1.3.6.1.4.1.9.9.109.1.1.1.1.3.9
cpmCPUTotal1min .1.3.6.1.4.1.9.9.109.1.1.1.1.4.9
cpmCPUTotal5min .1.3.6.1.4.1.9.9.109.1.1.1.1.5.9
ciscoMemoryPoolFree 1.3.6.1.4.1.9.9.48.1.1.1.6
DRAM .1.3.6.1.4.1.9.9.48.1.1.1.6.1
FLASH .1.3.6.1.4.1.9.9.48.1.1.1.6.6
NVRAM .1.3.6.1.4.1.9.9.48.1.1.1.6.7
MBUF .1.3.6.1.4.1.9.9.48.1.1.1.6.8
CLUSTER .1.3.6.1.4.1.9.9.48.1.1.1.6.9
MALLOC .1.3.6.1.4.1.9.9.48.1.1.1.6.10

Memory stuff
ftp://ftp.cisco.com/pub/mibs/v2/CISCO-MEMORY-POOL-MIB.my
ftp://ftp.cisco.com/pub/mibs/oid/CISCO-MEMORY-POOL-MIB.oid

CPU/Process stuff
ftp://ftp.cisco.com/pub/mibs/v2/CISCO-PROCESS-MIB.my
ftp://ftp.cisco.com/pub/mibs/oid/CISCO-PROCESS-MIB.oid

InterMapper Cisco 6500 Probe:
http://aisle10.net/intermapper-snmp.cisco6500.txt

Technorati Tags: , , , , ,

stupid dell

Why does dell put all its important information under the laptop? could it possibly be any more inconveinant to type in the pointless Windows XP key while having to keep looking under the laptop while you type? and I am sure they could have found some place near the keyboard to put the like 6 charactor service tag number. Maybe in place of the “Designed for Windows XP” sticker.

I hate you dell. you and your unreliable hard drives. Eh, at least it isn’t a mac

Technorati Tags: , , ,

expensive equipment, a hammer, backups, and disaster recovery; A good mix

I found out yesterday that apparently using a hammer and a phillips head screw driver to drive a SCSI cable through a maybe 1/8 inch opening between my desk and the cube wall it is screwed into is a bad idea.

I spent a couple hours between yesterday afternoon, later on that night, and some time this morning trying to figure out why my linux box refused to acknowledge the existence of the Sun StorEdge L8 LTO tape autoloader I hooked up to it. I didn't think the screwdriver actually went into the cable at all. It just looked like it busted into the magnet that surrounds the cable near the end. That thing really needed to be driven through the desk. On the good side, it gave Bill and I a good excuse to use a hammer and a bunch of prying tools to "install" a tape autoloader.
I have been trying to implement a fairly reliable backup system for a few small file servers we have at the office. The previous group of people that managed the backups for these systems had a disaster recovery plan that involved having a rotation of backups that traveled through 3 separate physical locations. It seemed like a bit overkill, but then again, it is better to be safe. The funny thing is that the backups were all on a bunch of 4mm 20 gig (uncompressed) tapes. The 3 servers that were being backed up totaled somewhere around 500 gigs…maybe a bit less. The best part was that between the 3 servers there where only 2 tape drives. 2 very slow tape drives. Plus, the majority of the data that was being backed up was uncompressable. movies, audio, and pictures mostly. So this involved a lot of tapes. It took a good 3 hours for 1 tape to get filled. They would get no notification it was ready for the next tape, so every couple hours they would go and log into the machine, or just check if the tape drive ejected a tape, then switch it, and rinse and repeat for the 2 day (or more) long backup. Luckily incremental backups weren't as bad, but most of the time I don't think they could even happen given how long a full backup would take. If you forget to change the tape for a while, you just might have wasted a whole days worth of time that the backup could have been chugging along. The tapes would get put into a plastic tape case that looked like it was supposed to be rushed to the hospital for a life saving organ transplant. Then that would get carted off to the first off site location in the big 3 location backup plan.

Then the group that had been handling these backups..plus a bunch of other tasks got moved to another location because of "streamlining" how their group worked. Which is when My co-worker and I got stuck with all the fun. Neither one of us had the time to keep checking to see when the next tape needed to be changed, so a full backup would take maybe 2 weeks to finish.

Anyway, that is a bunch of back story that doesn't really matter. I really wanted to just complain about Backup Exec, and some oddness associated with the Arkeia trial installation I have been working on. The whole old backup system for these 3 machines used Backup Exec. I really really really don't like Backup Exec. The UI was poorly designed, the server has to run on a windows machine, and Veritas/Symantec decided to screw over their customer base and not offer any encryption option unless you upgraded to their $20,000 Enterprise "we screwed you" 2.0 package (i made that price up). I didn't realize that until I was going to upgrade the 3 client installs, and the 1 Backup Exec server to their most recent version. But, I did get a chance to try out the Sun StorEdge L8 autoloader we have had laying around for who knows how long. The L8 uses 200gig LTO tapes (400 compressed), and when I tried the first backup on the trial of the new Backup Exec, The entire backup of the 3 systems took around 4 hours to finish, and everything fit on a tape and a half. On the bad side, the L8 only holds 8 tapes, one of which is a cleaning tape, so really 7. That isn't a safe number for a full mostly automated backup strategy, but it is still much better than the previous setup.

After I found out about the lack of encryption support, that got weighed in with the crappy UI, and the need for a windows 2003 server, we decided to try something else, and since my co-worker loved Arkeia so much, I figured I would give that a try.

For a test install, I hooked the Storedge autoloader up to a Sun V120 running Solaris 10, and got a bunch of trial licenses for Arkeia. The installation was completely painless, everything was pretty straight forward. The only part that took any time was getting the v120 to recognize the autoloader, but that can't be blamed on the software. It was more my lack of knowledge.

Arkeia has a really well thought out X interface that everything can be setup from, and you can install the server on a variety of platforms. Solaris, Linux, FreeBSD..etc. Most installs involve just typing rpm -i, or dpkg -i or ./install, depending on the packaging system on the server. I was pretty surprised on how well thought out everything was.

After I got everything going, i tried the first backup. I left encryption off, and figured I would try the best (compression wise) compression method, which was LZ3. The backup gets started, and I looked at the fun little speedometer the X interface displays during an interactive backup. You can see a bunch of differant metrics, like MB/h, MB/min, MB/s, KB/s for both the network and the backup speed. This is when things started to go downhill. The max backup speed I was getting was 5 gigs an hour. Then I thought maybe the compression was too much for a v120. The load on the machine was a little over 1, but still, something didn't seem right. I tried the backup again with no compression this time, and left work for the weekend (this was on Friday). Some time Saturday I log in to see how things are going. and in 33 hours it has backed up a whopping 144 gigs. This was never going to finish. I tried a bunch of differant things, then on Monday, we tried doing an scp of a large file from the v120 to various other machines. I was getting the same crappy throughput. The port on the switch was set to auto negotiated, so I tried forcing it to 100/full duplex, but no difference. It must be a misconfiguration of some kind either on the switch or with the interface on the server, but it was happening on a couple of the other servers on that same bank of switches, so I figured I would just try a more localized test install on my Sun Ultra 20, which is running OpenSuse 10.0/64bit. Arkeia had an rpm for Suse enterprise 64 bit, and that installed without a problem.

I really didn't want to shove the autoloader under my desk, and I found a SCSI cable that was long enough to let me put the autoloader on the corner of my cube against a wall. The only problem was that the hole in the desk for cables to pass through can't fit the whole SCSI cable end. Which left me with 2 options. Leave it under the desk, or figure out a way to get the cable up behind the desk. Which is where the hammer and a bunch of large screw drivers came in. My co-worker pried from the top, and I was prying with another screwdriver from the bottom while trying to push the cable through the little opening. I was thinking how funny it would be if we ripped the desk out of the cube wall by accident and the whole thing crashed on top of me (including my co-worker) but the cable got through. Except for that damn metal cylinder at the end of the cable. This was going to take some finesse. After trying everything. I decided to use a philips head as a wedge, and just smacked it as hard as I could until the stupid metal/plastic/rubber thing went up through the crack….with the screwdriver inside. The cable looked fine, but apparently it wasn't.

This morning, after trying everything I could think of to get my system to recognize the new scsi device, I figured I would try another cable, which all I could find was a little 3 foot long cable. So under the desk the autoloader went. It is actually just balancing on top of a little terastation NAS device. If I touch it with my foot by accident, I am sure it will flip on its side, but that is part of the fun.

So, I plug in the autoloader, reload the scsi card module, and low and behold, there it is in all its glory. So I set Arkeia up real quick and get a backup going. No compression or encryption which is the same as the last backup I did on the Solaris install. The backup speed now is averaging 30-40 gigs an hour.

I have no idea what was up with the v120, but if you saw our network closet, our network…actually, any of our stuff, you would run in horror. So now I can add that to my never decreasing list of tasks.

"figure out why throughput on half the equipment sucks"

The funny part I guess is that my Ultra 20 is my main workstation. I wrote this post on it, in KDE, with a bunch of other stuff running all during the backup.

Newsgator is getting a face lift

I use newsgator to read all my RSS feeds. I think it is becoming a big OCD problem. Anyway, I noticed today this purdy picture when I logged into my account:

Newsgator upgrade
The interface definitely looks a lot better, and I still think that newsgator beats any of the web based, hosted RSS readers. I recently actually paid for a year subscription to their paid service, which offers a spiffy mobile version of their site. Bloglines is okay, but it just doesn’t even compete with the newsgator. The “clippings” feature alone saves me hours of time. I can quickly scan through a bunch of the feeds I subscribe to, and click on the little disk icon to save the article for later reading. Then, after I am done going through the rest of those feeds, I mark them as read and when I actually have time to sit down and read an article or try a program/website, I go to my clippings folder and have a feed that contains only stuff that I care about….or at least did when I originally saw the post.

Also, I like how in newsgator I can make use of both tags and nested folders. With bloglines you only have 1 level deep of folders, and everything is mainly based on tags. organizing all my feeds into groups is a cinch in newsgator. I can put all the computer security feeds in a sub folder in a folder I called computers, and maybe put put a new folder in that. one for vulnerabilities (like securityfocus) and another for viruses (like the F-Secure blog).

I just think the interface in bloglines is clunky and hard to navigate through, but, it is still better than all the other web based feed readers out there. rojo dropped the ball big time, and all the other ones are more community focused, sort of like how digg works where you rate articles, and that is what you mostly see.

What would be a dream come true would be if one of these sites would come out with a feature that would try to group similar articles into a tree. So, instead of having to scroll through 10 posts from different feeds all titled exactly the same, all originally from the same place…then reposted, instead they could all be grouped together, and if that particular article looked interesting, I could open up that article tree and see everyone else’s post of that article….on the off chance one of them actually said something other than cut and pasting the entire post from somewhere else.

This is what I call a completely disorganized post. my brain told me to write and I did.

dodging a microsoft bullet


Lately I have been building and maintaining more and more Windows 2000 and 2003 servers than I would ever like to. I think it ended up being basically a necessary evil that needed to be used to tie the many different system architectures, systems, and company divisions together.

having something even remotely close to a single sign on type of authentication system would be great. Every time an new employee starts at my work, there is at least 3 to 5 separate accounts that need to be created.

1. The phone system

2. a windows login

3. a unix login

4. a login to our CMS

5. a login to the horrible “email system”

Most of the unix (Solaris/Linux mostly) systems that we have use at least NIS, but everything else is completely separate. Getting a working phone number and a working windows logins both come from completely different departments…actually different buildings.

I can see how annoying this must be for a new employee. You sit at your desk trying to adjust to your new job and you can’t receive email, maybe have no phone, possibly no computer. I think at this point they should just get a 3 subject notebook, a couple folders, 2 post-it pads, and a pen the day they start, because that will get them a lot further.

So, when a couple weeks ago my office had a massive phone outage due to some “issues” with a telecommunications company that begins with a V. We ended up having literally 43 non-working phones. That is easily more than half the company that could no longer use the phone. The phone system isn’t controlled, maintained, or basically touched by me or anyone else in my department. It is handled by a separate division of the company that for the most part doesn’t want to be bothered with our stupid phone problems.

Nothing was getting fixed, technicians are poking at everything attached to the phone system, and my time (along with others) gets wasted more and more. So we decided it was time to start cutting the few life lines we have with the other division in the company. They have an archaic poorly maintained phone system that we can’t diagnose anything on, and sales people don’t like you very much when they can’t use their phone. Or even better, when they will be in the middle of a call with a possible client, and the phone will just drop the connection. There are many reasons, the list goes on and on.
So it seemed like this would be a great chance to just ditch the old phone system and install a new shiny VoIP phone system. We figured out that we could maintain all our offices phones internally on the VoIP system, and then any incoming/outgoing calls from outside the office would go directly to the old phone systems switch.

So then after thinking things out, this would be a great opportunity to finally start using LDAP for all our user accounts. This quickly changed over to making an Active Directory. Enter Microsoft.

If we installed an Active Directory, now we can get off of the other divisions old slow windows NT domain. We could be able to now create all the windows accounts ourself, meaning employees could actually login to their computer when they come in for work. Sounds great doesn’t it? but now that means that the Active Directory is in charge of everything. Is that a bad thing? I don’t really know, but I (and most people I work with) have never been big fans of using windows…even more so as a server. Which is why we have 3. 1 primary and 2 backups. I suppose the odds of all 3 blue screening at the same is slim.

So where does the bullet dodging come in? Active directory likes to be able to dynamically change DNS entries. I wasn’t familiar with how to do that in BIND, and while clicking all the next buttons involved in installing Win 2003 and the Active Directory, it has a pretty little radio button that says “hey there…if you want, I could install microsoft dns! you’ll be all set!” It was a pretty radio button and it almost lured me in, but thankfully I looked on google and found out that it’s actually one stupid line that needs to be added to the BIND config.

So I just made a new zone file for windows to play around in without taking over everything like it was SkyNet.

Knowing that I at least am not now using Microsoft DNS means that is one less cold shower I need to take this weekend. The stench of windows is everywhere, and if the testing of this other product goes well, we’ll have a pretty little PAM module installed on all our Linux and Solaris boxes that will make everything authenticate off of the active directory. Group and system policies included.

On the bad side, I just sold my soul to the devil. On the good side, having there be 1 account for virtually all the internally maintained systems the company uses would be nice.

At least nothing on or around my desk, or even have to log into begins with a lowercase i.

thats when I just have to throw in the towel.

is there really a point to software keys?

Since I have recently had the luxury of building a growing amount of windows 2003/xp computers, I got to thinking. What is the point of software keys? there is not much that I hate more than typing in those stupid 25 charactor strings so that I can finish clicking on next buttons to complete the install.

Anyone with half a brain knows you can go and find a millions sites through google that have keys you can use for any program. Or, better yet, you can just use your friends or works copy.

If your a company, you can get audited, and that is the motivation to have legally purchased copies of everything. If your some home user, you have little motivation aside from morality issues with doing something illegal. So really, the way I see it, the main reason why people legally buy software is for 2 reason:

  1. Because it is illegal to use a pirated copy
  2. It takes too much effort to find a serial number that works

I bet more often than not (aside from companies installs) the reason is because it takes too much effort.

There really is no point to software keys. They are easy enough to obtain illegally, and they are just a pain in the ass for people who legally purchased the product.

If the only reason why someone actually buys the product is because they feel they should. If someone didn’t want to pay for a program, then they wouldn’t pay. They would get it from a friend or find a serial number online. So why make all your paying customers have to deal with all that licensing crap?

Technorati Tags: , , ,

Sun is out to get me, and God told them to do it

After mucking around with it for 3 days off and on, I come into work 2 hours early today to get a head start on getting the Sun Java Enterprise Server (with LDAP/Messaging support) running and populated so that my work can finally move off of NIS/40 other authentication systems.

I have it to the point where all that is left is to run the various post-deployment configuration scripts and steps, which I find odd in the first place. Why are their configuration steps that you have to do after you finish the configuration? what is the point of having a configuration wizard with a product if after you complete using it, the wizard then says “yeah, uh, you still have things to do….I dont know what, but there is stuff, and it is in document 819-2328.”

The fun part is that document 819-2328 is on suns docs.sun.com website. Which gives the good ‘ol

Server Error

This server has encountered an internal error which prevents it from fulfilling your request. The most likely cause is a misconfiguration. Please ask the administrator to look for messages in the server’s error log.

message. That doesn’t look like post deployment instructions to me. You know, I always thought that generic 500 error was stupid. So I am supposed to just go and contact “the administrator” at Sun? I am sure Sun only has one administrator..just one. Not only that, but I am sure he is just sitting at his desk…twiddling his fingers just waiting for the phone to ring for me to say “hey, uhh…your website is down…your probably didn’t get 500 calls, pages and emails about it, but yeah…I just wanted you to know. Could you get it back up soon?”
Someone out there really does not like me. It must be because I didn’t pay much attention to ash wednesday. Now god is smiting me.

I think that this is what happened to the server:

melted computer

On a related note, aside from the massiveness of the entire Java Enterprise Server system, it actually is fairly cool. The web mail client that comes with the messaging server is not the best thing in the world, but it is fairly decent, and adding info to the LDAP directory with their java interface is beyond easy. I don’t know why it took around 4 years for us to finally set one up. I guess it is probably because of the 300 other projects that are always going on.

google and china

Okay, I might be way off base here, but why is there all this fuss about google.com cooperating with the chinese government to meet their censorship laws? granted I don’t know the whole story, nor am I familiar with chinese law…mostly because I have no desire to go there, or especially live there.

Not to pick on one person, especially since this is probably the 40th post from various places that I have seen on the topic, but this just happens to be the one I just came across from kuro5hin.org

In hopes of increasing its China market share, Google has announced its eagerness to be a better Thought Policeman by enforcing the PRC’s hardline censorship rules. To that end, the company has recently established a separate China domain, google.cn, which will streamline the tricky business of violating civil rights in the totalitarian Middle Kingdom. Ironically, the announcement comes as Google does battle with the Bush Administration, which is also trying to violate civil liberties by obtaining access to Americans’ Google search-results. If Google cooperates (as Yahoo recently has) with the Chinese government to spy on its citizens, then why can’t they cooperate with the US government’s efforts to snoop on its citizens? The price of doing business with China may be that our information civil liberties will be compromised throughout the rest of the world.

I happily enjoy and believe in the foundation of the U.S government, but China is far being like the U.S. They have censorship, they have a tyrannical government. Why would a business purposefully disregard a countries laws. Sure it is a worthy cause, and sure yes, the chinese should not be oppressed, but unfortunately that is not the way their government works. If google decided to “hold its ground” and not censor anything, China would simply ban google from being seen from anyone in China. How does that help anyone? now, instead of getting a good search engine that is unfortunately censored, you would get nothing…or in googles case, you would get their biggest competitor instead. Part of my points is that why does everyone keep saying phrases like “violating civil rights” do the chinese even have civil rights? I know we do, but again, the United States is not China. Our government is quite differant, so the rules that apply here don’t apply there. So yes, Google refusing to fork over its data to the U.S government is completly differant than complying with the Chinese government. Unfortunately they don’t have the luxury of all the freedoms that the United States has.

It is simply bad business, and a bad idea in general for google to refuse to comply in China. They will just get kicked out. What incentive does the Chinese government have to not just block the whole country from ever seeing google again?