To be clear: I would not recommend GoGrid – not in a million years, here’s why…

A company that chooses GoGrid instead of Amazon has not done it’s homework.

I continue to get sent surveys from an entry level “cloud” called GoGrid asking me if I would recommend them. It’s beginning to get infuriating.
It seemed to me that GoGrid (part of Servpath) is cutting it’s teeth in the cloud market at my expense by having shoddy practices and fairly inadequate support staff.

If it’s not clear by now, I’m no longer a customer of GoGrid and will would advise anyone thinking about taking up cloud hosting to dismiss this company.
For a company which claims a nonsensical 10000% uptime, they certainly set a low standard which doesn’t really seem to be achieved.

GoGrid provided me with a fairly sub-standard level of service and support. There was a rapid response time to tickets but often the quality or resolution was below par. It remains (to this day) a fact that there are open areas in closed tickets. Attention to detail is something GoGrid lacks.

What in fact they have offered is actually 10000% worse level of service than Amazon, which, since switching, has offered me nothing but 100% uptime.

It is my opinion that GoGrid have developed a pretty good “blame culture” e.g. They were DDOS’d which caused interruptions over a period of days – a number of hours clocked up when the server was unavailable.

From their perspective, it was not their fault they were DDOS’ed and their systems became unaccessible. From my perspective it’s not my fault they were inadequately prepared.

Gogrid, on two occasions, notified me at 8.30PM (UTC) on a Friday evening that my server was going to be rebooted – for reasons to do with mandatory patching. The first time they left my web server hanging for 10 hours – at least I found it at 11am inaccessible because a key had to be typed in to enable a certificate – a key which had been provided to them.

Then , a few weeks later, my server mysteriously went offline for a number of hours. It was  allegedly my fault – though no logs were on the system and GoGrid did not fulfill their promise to send me the logs as per the ticket request (did you Steve?). It is currently a fact that it has never been possible to determine why the server went off line. As a result an unknown quantity remains and it’s foolhardy to think you can build production quality systems in an environment that has inherent and unexplainable behavior of this nature.

In both cases it was “my fault” for not being technically apt enough to realise I should have at least 2 servers for high availability. My system never left a ‘test’ state – there is little point in building a production quality system on a bed of sand. The bottom line is, if a hosting company has to keep patching and rebooting a server they should provide a second server free in a different datacenter.

The biggest offence was the starting of an instance which I had shut down- I was migrating away from them and did not appreciate that instance being started mid-migration.
The emailed excuses and reasoning the instance was restarted were something I would be ashamed to have sent out. I don’t know if they think I was born yesterday but the response made me think that they think I am an idiot.

What I found most comical about GoGrid is the attacks on Amazon that can be found on their web site.

For your informatiom Amazon offers a very reliable console which makes managing instances very easy. They offer Elastic DB and S3 storage as well as Map Reduce for intensive tasks. There are a massive no. of builds available and I’ve not once had to contact their support. And I’ve never had any downtime.
I would, in fact, highly recommend Amazon and advise anyone to steer away from GoGrid. Do not be drawn in by their fake promises and free load balancer.
I would finally add that I see no use for or even a reason for GoGrid to exist. At worse we host our systems on clouds for reasons of economy and stability – unless GoGrid get a grip I can’t see how they can survive “as-is”. Also, it’s not really scaleable – it doesn’t offer the storage, db and other capabilities that Amazon does.

Frankly it’s pointless.

Leave a Comment

(state 14) gmail,googlemail,godaddy transfer domains, mail not working

Scenario to consider:

If google handled your mails and all was fine until you transferred the www domain from “register” to
godaddy AND you were having your mails routed via some non-google entity BUT google was/is andling your mails then you may need to go to the godaddy console to avoid errors of the sort:

Technical details of permanent failure:
Google tried to deliver your message, but it was rejected by the recipient domain.
We recommend contacting the other email provider for further information about the cause of this error.
The error that the other server returned was: 550 550 sorry, mail to that recipient is not accepted (#5.7.1) (state 14).

MX records should point to googles own devices – not any other 3rd party. e.g. if they happen to include secureserver.net
then this should be edited out. As of writing the mx records should include.

MailServer Hostname:     Priority
ASPMX.L.GOOGLE.COM.     10
ALT1.ASPMX.L.GOOGLE.COM.     20
ALT2.ASPMX.L.GOOGLE.COM.     30
ASPMX2.GOOGLEMAIL.COM.     40
ASPMX3.GOOGLEMAIL.COM.     50
ASPMX4.GOOGLEMAIL.COM.     60
ASPMX5.GOOGLEMAIL.COM.     70

The CNAMES section needs

www @

mail gns.google.com

as a minimum and where ‘@’ by default points to the IP in your A Host section.

This is likely caused if, say, moving off gogrid where the records would have been changed to make the email work.
Once the relationship between the previous provider has been terminated, so may your routing!

Leave a Comment

googlemail or gmail – a gotcha to wotcha

Heres one that threw me for a min or 60 today.

Persons writing code handling email addresses, at least from google, should bear in mind that in some cases a user may register an account using their gmail email account (only about 99% of online registration forms require an email address as part of the registration process).
However, could be that the registrant has a field settings in googlemail account (under the settings->accounts tab) to “Send email as” you@googlemail.com – which is not you@gmail.com.
The clue is in the top right corner of the brower window when logged into your gmail (googlemail or whatever its called) inbox.

Arguably, $e= str_replace(“gmail”,”googlemail”,$e);

But then there are some oddballs that might do it the other way round so it’s anyones guess.

Embedded codes in emails are better to identify the sender than their email address – odd as this may sound.

Hmmm

Leave a Comment

mx:Datechooser Flex 3 multipleselection multiple select dates
Never found a straight-forward example of how to set multiple date ranges on a
datechooser component.
The critical part is getting your head round the basics which means cutting away
all the chaff and fancy stuff.
This is the bare-bones nitty gritty. It doesn’t get simpler than this.
It’ll do for me! (unless someone sees some bug or other!)

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
	xmlns="*" layout="vertical" width="590" height="408"
	creationComplete="generateDates()">
<mx:DateChooser id="dch" allowDisjointSelection="true"
    allowMultipleSelection="true" change="calendarClickHandler(event)"/>

	<mx:Script>
		<![CDATA[
		import mx.events.CalendarLayoutChangeEvent;
		private function calendarClickHandler
                      (event:CalendarLayoutChangeEvent):void
		{
			generateDates();
		}

		private function createRange(Start:Object,End:Object):Object
                {
			var O:Object = new Object;
			O.rangeStart = new Date(Start);
			O.rangeEnd = new Date(End);
			return O;
		}	

		private function generateDates():void
		{
			var selectedRanges:Array = new Array();
			var selectRange:Object = new Object();
			var selectRange1:Object = new Object();
	                selectedRanges.push(createRange(new Date("2009/04/01"),
                                                new Date("2009/04/04") ) );
	                selectedRanges.push(createRange(new Date("2009/04/19"),
                                                new Date("2009/04/30") ) );
	                dch.selectedRanges = selectedRanges; 

	         }
	]]>
	</mx:Script>
</mx:Application>

Leave a Comment

Google and Experts Exchange responsible for melting icecaps

Of course the environment is someone elses problem that they will fix. And when it comes to money the “needs of me are greater than the needs of the many”. Though both the wealthy and the poor enjoy the same air.

According to research, a single Google ’search’ requires enough electricity to boil a kettle – doubtful (or is it?) but probably would raise the temperature of the water noticeably.

How much energy would Google save if they listened to their customers who politely ask them continuously to give them an easy way to block results from Experts Exchange?  I’ve asked Google this to be ignored. I have, however, found a solution but first, I see postings from thousands of people requesting experts-exchange be “optionally de-listed” or at least moved further down the search results.

Look here:

A Google query:  fsck log centos5

Returned 3510 results.

Here’s a corresponding query that removes the results from EE

fsck log centos5 -experts-exchange

returned 880 results.

In other words, about a quarter. You probably couldn’t reliably equate that as a 75% saving in electricity but if you consider the time wasted by individuals clicking on results, waiting for the page to load then  to find they have to pay for the answer, before pressing the back button, juggling the words about and doing another search.
When you add it all up it probably equates to the same amount of greenhouse  gas  from a small herd of grass munching and flatulent cows.

I don’t know how many query’s on Google I do per day but when doing Adobe, Linux, SQL and stuff I must do 20 to 30/hour so getting on for 300 a day some days.

Anyway, Experts-Exchange – you are a menace and a time waste – I get it free of the web and can’t see any point in paying for something collected and shared by the goodwill of others.

Heres a clue to solve the problem – http://www.google.com/coop/manage/cse/

CSE is Custom Search Engine.

Look at how to use the Google Marker – http://www.google.com/coop/cse/marker

Turn off experts-exchange using the marker.

Seems to work. Make sure to use the custom search engine and add it to your default search.

Leave a Comment

International STD codes cell/mobile/gsm xml sql

Hard to find xml formatted country std codes, had a good look on Google.

Maybe someone else had better luck. If not, Country codes and carriers

below in xml and sql. Something I extracted from someones html, pasted into a

spreadsheet, exported as csv then used excellent tool from sourceforge

called csv2xml to convert to an xml file.

I needed a webservice for Adobe ActionScript to identify a visitor’s

local from their mobile (rather than IP) so this xml is the backend.

Anyway, second thoughts, decided to pull it into a db. The clue for

that is below the xml with the full sql so you can pull it straight in

if you wish.




<?xml version="1.0" ?>
<numbers>
<row>
  <Country>Afghanistan</Country>
  <ccode>93</ccode>
  <carrier>70</carrier>
</row>
<row>
  <Country>Afghanistan</Country>
  <ccode>93</ccode>
  <carrier>75</carrier>
</row>
<row>
  <Country>Afghanistan</Country>
  <ccode>93</ccode>
  <carrier>77</carrier>
</row>
<row>
  <Country>Afghanistan</Country>
  <ccode>93</ccode>
  <carrier>78</carrier>
</row>
<row>
  <Country>Afghanistan</Country>
  <ccode>93</ccode>
  <carrier>79</carrier>
</row>
<row>
  <Country>Albania</Country>
  <ccode>355</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Antigua and Barbuda</Country>
  <ccode>1268</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Argentina</Country>
  <ccode>54</ccode>
  <carrier>15</carrier>
</row>
<row>
  <Country>Armenia</Country>
  <ccode>374</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Australia</Country>
  <ccode>61</ccode>
  <carrier>4</carrier>
</row>
<row>
  <Country>Austria</Country>
  <ccode>43</ccode>
  <carrier>650</carrier>
</row>
<row>
  <Country>Austria</Country>
  <ccode>43</ccode>
  <carrier>660</carrier>
</row>
<row>
  <Country>Austria</Country>
  <ccode>43</ccode>
  <carrier>664</carrier>
</row>
<row>
  <Country>Austria</Country>
  <ccode>43</ccode>
  <carrier>676</carrier>
</row>
<row>
  <Country>Austria</Country>
  <ccode>43</ccode>
  <carrier>680</carrier>
</row>
<row>
  <Country>Austria</Country>
  <ccode>43</ccode>
  <carrier>681</carrier>
</row>
<row>
  <Country>Austria</Country>
  <ccode>43</ccode>
  <carrier>688</carrier>
</row>
<row>
  <Country>Austria</Country>
  <ccode>43</ccode>
  <carrier>699</carrier>
</row>
<row>
  <Country>Azerbaijan</Country>
  <ccode>994</ccode>
  <carrier>50</carrier>
</row>
<row>
  <Country>Azerbaijan</Country>
  <ccode>994</ccode>
  <carrier>55</carrier>
</row>
<row>
  <Country>Azerbaijan</Country>
  <ccode>994</ccode>
  <carrier>70</carrier>
</row>
<row>
  <Country>Bahamas</Country>
  <ccode>1242</ccode>
  <carrier>35</carrier>
</row>
<row>
  <Country>Bahamas</Country>
  <ccode>1242</ccode>
  <carrier>45</carrier>
</row>
<row>
  <Country>Bahamas</Country>
  <ccode>1242</ccode>
  <carrier>55</carrier>
</row>
<row>
  <Country>Bahrain</Country>
  <ccode>973</ccode>
  <carrier>3</carrier>
</row>
<row>
  <Country>Bangladesh</Country>
  <ccode>880</ccode>
  <carrier>181</carrier>
</row>
<row>
  <Country>Bangladesh</Country>
  <ccode>880</ccode>
  <carrier>19</carrier>
</row>
<row>
  <Country>Bangladesh</Country>
  <ccode>880</ccode>
  <carrier>17</carrier>
</row>
<row>
  <Country>Bangladesh</Country>
  <ccode>880</ccode>
  <carrier>16</carrier>
</row>
<row>
  <Country>Belarus</Country>
  <ccode>375</ccode>
  <carrier>25</carrier>
</row>
<row>
  <Country>Belarus</Country>
  <ccode>375</ccode>
  <carrier>29</carrier>
</row>
<row>
  <Country>Belarus</Country>
  <ccode>375</ccode>
  <carrier>33</carrier>
</row>
<row>
  <Country>Belarus</Country>
  <ccode>375</ccode>
  <carrier>44</carrier>
</row>
<row>
  <Country>Belgium</Country>
  <ccode>32</ccode>
  <carrier>47</carrier>
</row>
<row>
  <Country>Belgium</Country>
  <ccode>32</ccode>
  <carrier>48</carrier>
</row>
<row>
  <Country>Belgium</Country>
  <ccode>32</ccode>
  <carrier>49</carrier>
</row>
<row>
  <Country>Belize</Country>
  <ccode>501</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Benin</Country>
  <ccode>229</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Bhutan</Country>
  <ccode>975</ccode>
  <carrier>17</carrier>
</row>
<row>
  <Country>Bolivia</Country>
  <ccode>591</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Bosnia and Herzegovina</Country>
  <ccode>387</ccode>
  <carrier>61</carrier>
</row>
<row>
  <Country>Bosnia and Herzegovina</Country>
  <ccode>387</ccode>
  <carrier>62</carrier>
</row>
<row>
  <Country>Bosnia and Herzegovina</Country>
  <ccode>387</ccode>
  <carrier>63</carrier>
</row>
<row>
  <Country>Bosnia and Herzegovina</Country>
  <ccode>387</ccode>
  <carrier>65</carrier>
</row>
<row>
  <Country>Botswana</Country>
  <ccode>267</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Brazil</Country>
  <ccode>55</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Brazil</Country>
  <ccode>55</ccode>
  <carrier>8</carrier>
</row>
<row>
  <Country>Brazil</Country>
  <ccode>55</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Brunei</Country>
  <ccode>673</ccode>
  <carrier>8</carrier>
</row>
<row>
  <Country>Bulgaria</Country>
  <ccode>359</ccode>
  <carrier>87</carrier>
</row>
<row>
  <Country>Bulgaria</Country>
  <ccode>359</ccode>
  <carrier>88</carrier>
</row>
<row>
  <Country>Bulgaria</Country>
  <ccode>359</ccode>
  <carrier>89</carrier>
</row>
<row>
  <Country>Bulgaria</Country>
  <ccode>359</ccode>
  <carrier>48</carrier>
</row>
<row>
  <Country>Burkina Faso</Country>
  <ccode>226</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Burundi</Country>
  <ccode>257</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Cambodia</Country>
  <ccode>855</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Cape Verde</Country>
  <ccode>238</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Chile</Country>
  <ccode>56</ccode>
  <carrier>97</carrier>
</row>
<row>
  <Country>Chile</Country>
  <ccode>56</ccode>
  <carrier>98</carrier>
</row>
<row>
  <Country>Chile</Country>
  <ccode>56</ccode>
  <carrier>99</carrier>
</row>
<row>
  <Country>People&apos;s Republic of China</Country>
  <ccode>86</ccode>
  <carrier>13</carrier>
</row>
<row>
  <Country>People&apos;s Republic of China</Country>
  <ccode>86</ccode>
  <carrier>15</carrier>
</row>
<row>
  <Country>Colombia</Country>
  <ccode>57</ccode>
  <carrier>31</carrier>
</row>
<row>
  <Country>Comoros</Country>
  <ccode>269</ccode>
  <carrier>3</carrier>
</row>
<row>
  <Country>Republic of Congo</Country>
  <ccode>242</ccode>
  <carrier>4</carrier>
</row>
<row>
  <Country>Republic of Congo</Country>
  <ccode>242</ccode>
  <carrier>5</carrier>
</row>
<row>
  <Country>Republic of Congo</Country>
  <ccode>242</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Democratic Republic of Congo</Country>
  <ccode>243</ccode>
  <carrier>22</carrier>
</row>
<row>
  <Country>Democratic Republic of Congo</Country>
  <ccode>243</ccode>
  <carrier>78</carrier>
</row>
<row>
  <Country>Democratic Republic of Congo</Country>
  <ccode>243</ccode>
  <carrier>81</carrier>
</row>
<row>
  <Country>Democratic Republic of Congo</Country>
  <ccode>243</ccode>
  <carrier>84</carrier>
</row>
<row>
  <Country>Democratic Republic of Congo</Country>
  <ccode>243</ccode>
  <carrier>85</carrier>
</row>
<row>
  <Country>Democratic Republic of Congo</Country>
  <ccode>243</ccode>
  <carrier>86</carrier>
</row>
<row>
  <Country>Democratic Republic of Congo</Country>
  <ccode>243</ccode>
  <carrier>88</carrier>
</row>
<row>
  <Country>Democratic Republic of Congo</Country>
  <ccode>243</ccode>
  <carrier>89</carrier>
</row>
<row>
  <Country>Democratic Republic of Congo</Country>
  <ccode>243</ccode>
  <carrier>90</carrier>
</row>
<row>
  <Country>Democratic Republic of Congo</Country>
  <ccode>243</ccode>
  <carrier>94</carrier>
</row>
<row>
  <Country>Democratic Republic of Congo</Country>
  <ccode>243</ccode>
  <carrier>95</carrier>
</row>
<row>
  <Country>Democratic Republic of Congo</Country>
  <ccode>243</ccode>
  <carrier>96</carrier>
</row>
<row>
  <Country>Democratic Republic of Congo</Country>
  <ccode>243</ccode>
  <carrier>97</carrier>
</row>
<row>
  <Country>Democratic Republic of Congo</Country>
  <ccode>243</ccode>
  <carrier>98</carrier>
</row>
<row>
  <Country>Democratic Republic of Congo</Country>
  <ccode>243</ccode>
  <carrier>99</carrier>
</row>
<row>
  <Country>Dominican Republic</Country>
  <ccode>+1-809 or +1-829</ccode>
  <carrier>None</carrier>
</row>
<row>
  <Country>Costa Rica</Country>
  <ccode>506</ccode>
  <carrier>3</carrier>
</row>
<row>
  <Country>Croatia</Country>
  <ccode>385</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Cuba</Country>
  <ccode>53</ccode>
  <carrier>5</carrier>
</row>
<row>
  <Country>Cyprus</Country>
  <ccode>357</ccode>
  <carrier>99</carrier>
</row>
<row>
  <Country>Cyprus</Country>
  <ccode>357</ccode>
  <carrier>96</carrier>
</row>
<row>
  <Country>Cyprus</Country>
  <ccode>357</ccode>
  <carrier>97</carrier>
</row>
<row>
  <Country>Czech Republic</Country>
  <ccode>420</ccode>
  <carrier>60</carrier>
</row>
<row>
  <Country>Czech Republic</Country>
  <ccode>420</ccode>
  <carrier>72</carrier>
</row>
<row>
  <Country>Czech Republic</Country>
  <ccode>420</ccode>
  <carrier>73</carrier>
</row>
<row>
  <Country>Czech Republic</Country>
  <ccode>420</ccode>
  <carrier>77</carrier>
</row>
<row>
  <Country>Denmark</Country>
  <ccode>45</ccode>
  <carrier>30</carrier>
</row>
<row>
  <Country>Denmark</Country>
  <ccode>45</ccode>
  <carrier>40</carrier>
</row>
<row>
  <Country>Djibouti</Country>
  <ccode>253</ccode>
  <carrier>8</carrier>
</row>
<row>
  <Country>Dominica</Country>
  <ccode>+1-767</ccode>
  <carrier>2</carrier>
</row>
<row>
  <Country>East Timor</Country>
  <ccode>670</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Ecuador</Country>
  <ccode>593</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Ecuador</Country>
  <ccode>593</ccode>
  <carrier>8</carrier>
</row>
<row>
  <Country>Egypt</Country>
  <ccode>20</ccode>
  <carrier>1</carrier>
</row>
<row>
  <Country>El Salvador</Country>
  <ccode>503</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Equatorial Guinea</Country>
  <ccode>240</ccode>
  <carrier>2</carrier>
</row>
<row>
  <Country>Eritrea</Country>
  <ccode>291</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Estonia</Country>
  <ccode>372</ccode>
  <carrier>5</carrier>
</row>
<row>
  <Country>Ethiopia</Country>
  <ccode>251</ccode>
  <carrier>91</carrier>
</row>
<row>
  <Country>Fiji</Country>
  <ccode>679</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Finland</Country>
  <ccode>358</ccode>
  <carrier>4</carrier>
</row>
<row>
  <Country>Finland</Country>
  <ccode>358</ccode>
  <carrier>50</carrier>
</row>
<row>
  <Country>France</Country>
  <ccode>33</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Gambia</Country>
  <ccode>220</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Gambia</Country>
  <ccode>220</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Georgia</Country>
  <ccode>995</ccode>
  <carrier>5</carrier>
</row>
<row>
  <Country>Georgia</Country>
  <ccode>995</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Georgia</Country>
  <ccode>995</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Germany</Country>
  <ccode>49</ccode>
  <carrier>15</carrier>
</row>
<row>
  <Country>Germany</Country>
  <ccode>49</ccode>
  <carrier>16</carrier>
</row>
<row>
  <Country>Germany</Country>
  <ccode>49</ccode>
  <carrier>17</carrier>
</row>
<row>
  <Country>Germany</Country>
  <ccode>49</ccode>
  <carrier>700</carrier>
</row>
<row>
  <Country>Ghana</Country>
  <ccode>233</ccode>
  <carrier>28</carrier>
</row>
<row>
  <Country>Gibraltar</Country>
  <ccode>350</ccode>
  <carrier>58</carrier>
</row>
<row>
  <Country>Greece</Country>
  <ccode>30</ccode>
  <carrier>693</carrier>
</row>
<row>
  <Country>Greece</Country>
  <ccode>30</ccode>
  <carrier>694</carrier>
</row>
<row>
  <Country>Greece</Country>
  <ccode>30</ccode>
  <carrier>697</carrier>
</row>
<row>
  <Country>Greece</Country>
  <ccode>30</ccode>
  <carrier>699</carrier>
</row>
<row>
  <Country>Grenada</Country>
  <ccode>1473</ccode>
  <carrier>41</carrier>
</row>
<row>
  <Country>Guatemala</Country>
  <ccode>502</ccode>
  <carrier>5</carrier>
</row>
<row>
  <Country>Guatemala</Country>
  <ccode>502</ccode>
  <carrier>4</carrier>
</row>
<row>
  <Country>Guinea</Country>
  <ccode>224</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Guinea-Bissau</Country>
  <ccode>245</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Guinea-Bissau</Country>
  <ccode>245</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Guyana</Country>
  <ccode>592</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Honduras</Country>
  <ccode>504</ccode>
  <carrier>3</carrier>
</row>
<row>
  <Country>Honduras</Country>
  <ccode>504</ccode>
  <carrier>8</carrier>
</row>
<row>
  <Country>Honduras</Country>
  <ccode>504</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Hong Kong</Country>
  <ccode>852</ccode>
  <carrier>5</carrier>
</row>
<row>
  <Country>Hong Kong</Country>
  <ccode>852</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Hong Kong</Country>
  <ccode>852</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Hungary</Country>
  <ccode>36</ccode>
  <carrier>20</carrier>
</row>
<row>
  <Country>Hungary</Country>
  <ccode>36</ccode>
  <carrier>30</carrier>
</row>
<row>
  <Country>Hungary</Country>
  <ccode>36</ccode>
  <carrier>70</carrier>
</row>
<row>
  <Country>Iceland</Country>
  <ccode>354</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Iceland</Country>
  <ccode>354</ccode>
  <carrier>8</carrier>
</row>
<row>
  <Country>India</Country>
  <ccode>91</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Indonesia</Country>
  <ccode>62</ccode>
  <carrier>8</carrier>
</row>
<row>
  <Country>Iran</Country>
  <ccode>98</ccode>
  <carrier>91</carrier>
</row>
<row>
  <Country>Iran</Country>
  <ccode>98</ccode>
  <carrier>931</carrier>
</row>
<row>
  <Country>Iran</Country>
  <ccode>98</ccode>
  <carrier>932</carrier>
</row>
<row>
  <Country>Iran</Country>
  <ccode>98</ccode>
  <carrier>934</carrier>
</row>
<row>
  <Country>Iran</Country>
  <ccode>98</ccode>
  <carrier>935</carrier>
</row>
<row>
  <Country>Iran</Country>
  <ccode>98</ccode>
  <carrier>936</carrier>
</row>
<row>
  <Country>Iran</Country>
  <ccode>98</ccode>
  <carrier>937</carrier>
</row>
<row>
  <Country>Ireland</Country>
  <ccode>353</ccode>
  <carrier>8</carrier>
</row>
<row>
  <Country>Israel</Country>
  <ccode>972</ccode>
  <carrier>5</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>310</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>31100</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>31101</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>31102</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>31103</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>31104</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>31105</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>313</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>319</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>320</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>322</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>323</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>327</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>328</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>329</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>330</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>331</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>333</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>334</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>335</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>336</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>337</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>338</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>339</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>340</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>341</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>343</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>345</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>346</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>347</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>348</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>349</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>350</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>360</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>361</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>362</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>363</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>366</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>368</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>370</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>373</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>377</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>380</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>388</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>389</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>390</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>391</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>392</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>393</carrier>
</row>
<row>
  <Country>Italy</Country>
  <ccode>39</ccode>
  <carrier>397</carrier>
</row>
<row>
  <Country>Ivory Coast</Country>
  <ccode>225</ccode>
  <carrier>0</carrier>
</row>
<row>
  <Country>Ivory Coast</Country>
  <ccode>225</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Japan</Country>
  <ccode>81</ccode>
  <carrier>70</carrier>
</row>
<row>
  <Country>Japan</Country>
  <ccode>81</ccode>
  <carrier>80</carrier>
</row>
<row>
  <Country>Japan</Country>
  <ccode>81</ccode>
  <carrier>90</carrier>
</row>
<row>
  <Country>Jordan</Country>
  <ccode>962</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Kazakhstan</Country>
  <ccode>7</ccode>
  <carrier>70</carrier>
</row>
<row>
  <Country>Kazakhstan</Country>
  <ccode>7</ccode>
  <carrier>777</carrier>
</row>
<row>
  <Country>Kenya</Country>
  <ccode>254</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Kosovo</Country>
  <ccode>377</ccode>
  <carrier>44</carrier>
</row>
<row>
  <Country>Kuwait</Country>
  <ccode>965</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Kuwait</Country>
  <ccode>965</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Kuwait</Country>
  <ccode>965</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Kyrgyzstan</Country>
  <ccode>996</ccode>
  <carrier>5</carrier>
</row>
<row>
  <Country>Laos</Country>
  <ccode>856</ccode>
  <carrier>20</carrier>
</row>
<row>
  <Country>Latvia</Country>
  <ccode>371</ccode>
  <carrier>2xx</carrier>
</row>
<row>
  <Country>Lebanon</Country>
  <ccode>961</ccode>
  <carrier>3</carrier>
</row>
<row>
  <Country>Lebanon</Country>
  <ccode>961</ccode>
  <carrier>70</carrier>
</row>
<row>
  <Country>Lebanon</Country>
  <ccode>961</ccode>
  <carrier>71</carrier>
</row>
<row>
  <Country>Lesotho</Country>
  <ccode>266</ccode>
  <carrier>58</carrier>
</row>
<row>
  <Country>Lesotho</Country>
  <ccode>266</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Libya</Country>
  <ccode>218</ccode>
  <carrier>91</carrier>
</row>
<row>
  <Country>Liechtenstein</Country>
  <ccode>423</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Lithuania</Country>
  <ccode>370</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Luxembourg</Country>
  <ccode>352</ccode>
  <carrier>621</carrier>
</row>
<row>
  <Country>Luxembourg</Country>
  <ccode>352</ccode>
  <carrier>628</carrier>
</row>
<row>
  <Country>Luxembourg</Country>
  <ccode>352</ccode>
  <carrier>661</carrier>
</row>
<row>
  <Country>Luxembourg</Country>
  <ccode>352</ccode>
  <carrier>668</carrier>
</row>
<row>
  <Country>Luxembourg</Country>
  <ccode>352</ccode>
  <carrier>691</carrier>
</row>
<row>
  <Country>Luxembourg</Country>
  <ccode>352</ccode>
  <carrier>698</carrier>
</row>
<row>
  <Country>Macau</Country>
  <ccode>853</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Republic of Macedonia</Country>
  <ccode>389</ccode>
  <carrier>70</carrier>
</row>
<row>
  <Country>Republic of Macedonia</Country>
  <ccode>389</ccode>
  <carrier>71</carrier>
</row>
<row>
  <Country>Republic of Macedonia</Country>
  <ccode>389</ccode>
  <carrier>75</carrier>
</row>
<row>
  <Country>Republic of Macedonia</Country>
  <ccode>389</ccode>
  <carrier>76</carrier>
</row>
<row>
  <Country>Republic of Macedonia</Country>
  <ccode>389</ccode>
  <carrier>77</carrier>
</row>
<row>
  <Country>Republic of Macedonia</Country>
  <ccode>389</ccode>
  <carrier>78</carrier>
</row>
<row>
  <Country>Madagascar</Country>
  <ccode>261</ccode>
  <carrier>3</carrier>
</row>
<row>
  <Country>Malawi</Country>
  <ccode>265</ccode>
  <carrier>8</carrier>
</row>
<row>
  <Country>Malawi</Country>
  <ccode>265</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Malaysia</Country>
  <ccode>60</ccode>
  <carrier>1</carrier>
</row>
<row>
  <Country>Maldives</Country>
  <ccode>960</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Maldives</Country>
  <ccode>960</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Mali</Country>
  <ccode>223</ccode>
  <carrier>3</carrier>
</row>
<row>
  <Country>Mali</Country>
  <ccode>223</ccode>
  <carrier>4</carrier>
</row>
<row>
  <Country>Mali</Country>
  <ccode>223</ccode>
  <carrier>5</carrier>
</row>
<row>
  <Country>Mali</Country>
  <ccode>223</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Mali</Country>
  <ccode>223</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Malta</Country>
  <ccode>356</ccode>
  <carrier>79</carrier>
</row>
<row>
  <Country>Malta</Country>
  <ccode>356</ccode>
  <carrier>99</carrier>
</row>
<row>
  <Country>Mauritania</Country>
  <ccode>222</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Mauritius</Country>
  <ccode>230</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Mauritius</Country>
  <ccode>230</ccode>
  <carrier>8</carrier>
</row>
<row>
  <Country>Mauritius</Country>
  <ccode>230</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Mexico</Country>
  <ccode>52</ccode>
  <carrier>1</carrier>
</row>
<row>
  <Country>Moldova</Country>
  <ccode>373</ccode>
  <carrier>65</carrier>
</row>
<row>
  <Country>Moldova</Country>
  <ccode>373</ccode>
  <carrier>68</carrier>
</row>
<row>
  <Country>Moldova</Country>
  <ccode>373</ccode>
  <carrier>69</carrier>
</row>
<row>
  <Country>Moldova</Country>
  <ccode>373</ccode>
  <carrier>76</carrier>
</row>
<row>
  <Country>Moldova</Country>
  <ccode>373</ccode>
  <carrier>78</carrier>
</row>
<row>
  <Country>Moldova</Country>
  <ccode>373</ccode>
  <carrier>79</carrier>
</row>
<row>
  <Country>Monaco</Country>
  <ccode>377</ccode>
  <carrier>4</carrier>
</row>
<row>
  <Country>Monaco</Country>
  <ccode>377</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Montenegro</Country>
  <ccode>382</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Mongolia</Country>
  <ccode>976</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Morocco</Country>
  <ccode>212</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Mozambique</Country>
  <ccode>258</ccode>
  <carrier>8</carrier>
</row>
<row>
  <Country>Myanmar</Country>
  <ccode>95</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Nauru</Country>
  <ccode>674</ccode>
  <carrier>555</carrier>
</row>
<row>
  <Country>Nepal</Country>
  <ccode>977</ccode>
  <carrier>98</carrier>
</row>
<row>
  <Country>Netherlands</Country>
  <ccode>31</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>New Zealand</Country>
  <ccode>64</ccode>
  <carrier>20</carrier>
</row>
<row>
  <Country>New Zealand</Country>
  <ccode>64</ccode>
  <carrier>21</carrier>
</row>
<row>
  <Country>New Zealand</Country>
  <ccode>64</ccode>
  <carrier>24</carrier>
</row>
<row>
  <Country>New Zealand</Country>
  <ccode>64</ccode>
  <carrier>25</carrier>
</row>
<row>
  <Country>New Zealand</Country>
  <ccode>64</ccode>
  <carrier>27</carrier>
</row>
<row>
  <Country>New Zealand</Country>
  <ccode>64</ccode>
  <carrier>28</carrier>
</row>
<row>
  <Country>New Zealand</Country>
  <ccode>64</ccode>
  <carrier>29</carrier>
</row>
<row>
  <Country>Nicaragua</Country>
  <ccode>505</ccode>
  <carrier>8</carrier>
</row>
<row>
  <Country>Nigeria</Country>
  <ccode>234</ccode>
  <carrier>80</carrier>
</row>
<row>
  <Country>Nigeria</Country>
  <ccode>234</ccode>
  <carrier>90</carrier>
</row>
<row>
  <Country>Norway</Country>
  <ccode>47</ccode>
  <carrier>4</carrier>
</row>
<row>
  <Country>Norway</Country>
  <ccode>47</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Oman</Country>
  <ccode>968</ccode>
  <carrier>968</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>300</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>301</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>302</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>306</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>307</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>308</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>309</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>345</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>346</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>344</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>343</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>342</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>333</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>334</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>332</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>331</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>321</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>322</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>323</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>303</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>304</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>320</carrier>
</row>
<row>
  <Country>Pakistan</Country>
  <ccode>92</ccode>
  <carrier>335</carrier>
</row>
<row>
  <Country>Palestinian Authority</Country>
  <ccode>970</ccode>
  <carrier>59</carrier>
</row>
<row>
  <Country>Panama</Country>
  <ccode>507</ccode>
  <carrier>5</carrier>
</row>
<row>
  <Country>Panama</Country>
  <ccode>507</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Panama</Country>
  <ccode>507</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Panama</Country>
  <ccode>507</ccode>
  <carrier>4</carrier>
</row>
<row>
  <Country>Papua New Guinea</Country>
  <ccode>675</ccode>
  <carrier>68</carrier>
</row>
<row>
  <Country>Papua New Guinea</Country>
  <ccode>675</ccode>
  <carrier>69</carrier>
</row>
<row>
  <Country>Paraguay</Country>
  <ccode>595</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Peru</Country>
  <ccode>51</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Philippines</Country>
  <ccode>63</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Poland</Country>
  <ccode>48</ccode>
  <carrier>50</carrier>
</row>
<row>
  <Country>Poland</Country>
  <ccode>48</ccode>
  <carrier>51</carrier>
</row>
<row>
  <Country>Poland</Country>
  <ccode>48</ccode>
  <carrier>60</carrier>
</row>
<row>
  <Country>Poland</Country>
  <ccode>48</ccode>
  <carrier>66</carrier>
</row>
<row>
  <Country>Poland</Country>
  <ccode>48</ccode>
  <carrier>69</carrier>
</row>
<row>
  <Country>Poland</Country>
  <ccode>48</ccode>
  <carrier>72</carrier>
</row>
<row>
  <Country>Poland</Country>
  <ccode>48</ccode>
  <carrier>78</carrier>
</row>
<row>
  <Country>Poland</Country>
  <ccode>48</ccode>
  <carrier>79</carrier>
</row>
<row>
  <Country>Poland</Country>
  <ccode>48</ccode>
  <carrier>88</carrier>
</row>
<row>
  <Country>Portugal</Country>
  <ccode>351</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Qatar</Country>
  <ccode>974</ccode>
  <carrier>5</carrier>
</row>
<row>
  <Country>Qatar</Country>
  <ccode>974</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Romania</Country>
  <ccode>40</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Russia</Country>
  <ccode>7</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Rwanda</Country>
  <ccode>250</ccode>
  <carrier>8</carrier>
</row>
<row>
  <Country>Samoa</Country>
  <ccode>685</ccode>
  <carrier>77</carrier>
</row>
<row>
  <Country>San Marino</Country>
  <ccode>378</ccode>
  <carrier>66</carrier>
</row>
<row>
  <Country>Sao Tome and Principe</Country>
  <ccode>239</ccode>
  <carrier>90</carrier>
</row>
<row>
  <Country>Saudi Arabia</Country>
  <ccode>966</ccode>
  <carrier>50</carrier>
</row>
<row>
  <Country>Saudi Arabia</Country>
  <ccode>966</ccode>
  <carrier>54</carrier>
</row>
<row>
  <Country>Saudi Arabia</Country>
  <ccode>966</ccode>
  <carrier>55</carrier>
</row>
<row>
  <Country>Saudi Arabia</Country>
  <ccode>966</ccode>
  <carrier>56</carrier>
</row>
<row>
  <Country>Senegal</Country>
  <ccode>221</ccode>
  <carrier>5</carrier>
</row>
<row>
  <Country>Senegal</Country>
  <ccode>221</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Serbia</Country>
  <ccode>381</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Seychelles</Country>
  <ccode>248</ccode>
  <carrier>5</carrier>
</row>
<row>
  <Country>Seychelles</Country>
  <ccode>248</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Sierra Leone</Country>
  <ccode>232</ccode>
  <carrier>23</carrier>
</row>
<row>
  <Country>Sierra Leone</Country>
  <ccode>232</ccode>
  <carrier>30</carrier>
</row>
<row>
  <Country>Sierra Leone</Country>
  <ccode>232</ccode>
  <carrier>33</carrier>
</row>
<row>
  <Country>Sierra Leone</Country>
  <ccode>232</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Singapore</Country>
  <ccode>65</ccode>
  <carrier>8</carrier>
</row>
<row>
  <Country>Singapore</Country>
  <ccode>65</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Slovakia</Country>
  <ccode>421</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>South Africa</Country>
  <ccode>27</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>South Africa</Country>
  <ccode>27</ccode>
  <carrier>8</carrier>
</row>
<row>
  <Country>South Korea</Country>
  <ccode>82</ccode>
  <carrier>10</carrier>
</row>
<row>
  <Country>South Korea</Country>
  <ccode>82</ccode>
  <carrier>11</carrier>
</row>
<row>
  <Country>South Korea</Country>
  <ccode>82</ccode>
  <carrier>16</carrier>
</row>
<row>
  <Country>South Korea</Country>
  <ccode>82</ccode>
  <carrier>17</carrier>
</row>
<row>
  <Country>South Korea</Country>
  <ccode>82</ccode>
  <carrier>18</carrier>
</row>
<row>
  <Country>South Korea</Country>
  <ccode>82</ccode>
  <carrier>19</carrier>
</row>
<row>
  <Country>Spain</Country>
  <ccode>34</ccode>
  <carrier>6</carrier>
</row>
<row>
  <Country>Sri Lanka</Country>
  <ccode>94</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Sudan</Country>
  <ccode>249</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Suriname</Country>
  <ccode>597</ccode>
  <carrier>8</carrier>
</row>
<row>
  <Country>Swaziland</Country>
  <ccode>268</ccode>
  <carrier>60</carrier>
</row>
<row>
  <Country>Sweden</Country>
  <ccode>46</ccode>
  <carrier>70</carrier>
</row>
<row>
  <Country>Sweden</Country>
  <ccode>46</ccode>
  <carrier>73</carrier>
</row>
<row>
  <Country>Sweden</Country>
  <ccode>46</ccode>
  <carrier>76</carrier>
</row>
<row>
  <Country>Switzerland</Country>
  <ccode>41</ccode>
  <carrier>74</carrier>
</row>
<row>
  <Country>Switzerland</Country>
  <ccode>41</ccode>
  <carrier>76</carrier>
</row>
<row>
  <Country>Switzerland</Country>
  <ccode>41</ccode>
  <carrier>77</carrier>
</row>
<row>
  <Country>Switzerland</Country>
  <ccode>41</ccode>
  <carrier>78</carrier>
</row>
<row>
  <Country>Switzerland</Country>
  <ccode>41</ccode>
  <carrier>79</carrier>
</row>
<row>
  <Country>Syria</Country>
  <ccode>963</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Taiwan</Country>
  <ccode>886</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Tajikistan</Country>
  <ccode>992</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Tanzania</Country>
  <ccode>255</ccode>
  <carrier>74</carrier>
</row>
<row>
  <Country>Thailand</Country>
  <ccode>66</ccode>
  <carrier>1</carrier>
</row>
<row>
  <Country>Thailand</Country>
  <ccode>66</ccode>
  <carrier>89</carrier>
</row>
<row>
  <Country>Togo</Country>
  <ccode>228</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Tunisia</Country>
  <ccode>216</ccode>
  <carrier>2</carrier>
</row>
<row>
  <Country>Tunisia</Country>
  <ccode>216</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Turkey</Country>
  <ccode>90</ccode>
  <carrier>5</carrier>
</row>
<row>
  <Country>Uganda</Country>
  <ccode>256</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Ukraine</Country>
  <ccode>380</ccode>
  <carrier>39</carrier>
</row>
<row>
  <Country>Ukraine</Country>
  <ccode>380</ccode>
  <carrier>50</carrier>
</row>
<row>
  <Country>Ukraine</Country>
  <ccode>380</ccode>
  <carrier>63</carrier>
</row>
<row>
  <Country>Ukraine</Country>
  <ccode>380</ccode>
  <carrier>66</carrier>
</row>
<row>
  <Country>Ukraine</Country>
  <ccode>380</ccode>
  <carrier>67</carrier>
</row>
<row>
  <Country>Ukraine</Country>
  <ccode>380</ccode>
  <carrier>68</carrier>
</row>
<row>
  <Country>Ukraine</Country>
  <ccode>380</ccode>
  <carrier>97</carrier>
</row>
<row>
  <Country>United Arab Emirates</Country>
  <ccode>971</ccode>
  <carrier>50</carrier>
</row>
<row>
  <Country>United Arab Emirates</Country>
  <ccode>971</ccode>
  <carrier>55</carrier>
</row>
<row>
  <Country>United Kingdom</Country>
  <ccode>44</ccode>
  <carrier>75</carrier>
</row>
<row>
  <Country>United Kingdom</Country>
  <ccode>44</ccode>
  <carrier>77</carrier>
</row>
<row>
  <Country>United Kingdom</Country>
  <ccode>44</ccode>
  <carrier>78</carrier>
</row>
<row>
  <Country>United Kingdom</Country>
  <ccode>44</ccode>
  <carrier>79</carrier>
</row>
<row>
  <Country>Uruguay</Country>
  <ccode>598</ccode>
  <carrier>94</carrier>
</row>
<row>
  <Country>Uruguay</Country>
  <ccode>598</ccode>
  <carrier>95</carrier>
</row>
<row>
  <Country>Uruguay</Country>
  <ccode>598</ccode>
  <carrier>96</carrier>
</row>
<row>
  <Country>Uruguay</Country>
  <ccode>598</ccode>
  <carrier>97</carrier>
</row>
<row>
  <Country>Uruguay</Country>
  <ccode>598</ccode>
  <carrier>98</carrier>
</row>
<row>
  <Country>Uruguay</Country>
  <ccode>598</ccode>
  <carrier>99</carrier>
</row>
<row>
  <Country>Uzbekistan</Country>
  <ccode>998</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Vanuatu</Country>
  <ccode>678</ccode>
  <carrier>4</carrier>
</row>
<row>
  <Country>Vanuatu</Country>
  <ccode>678</ccode>
  <carrier>5</carrier>
</row>
<row>
  <Country>Venezuela</Country>
  <ccode>58</ccode>
  <carrier>4</carrier>
</row>
<row>
  <Country>Vietnam</Country>
  <ccode>84</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Yemen</Country>
  <ccode>967</ccode>
  <carrier>7</carrier>
</row>
<row>
  <Country>Zambia</Country>
  <ccode>260</ccode>
  <carrier>9</carrier>
</row>
<row>
  <Country>Zimbabwe</Country>
  <ccode>263</ccode>
  <carrier>11</carrier>
</row>
<row>
  <Country>Zimbabwe</Country>
  <ccode>263</ccode>
  <carrier>23</carrier>
</row>
<row>
  <Country>Zimbabwe</Country>
  <ccode>263</ccode>
  <carrier>91</carrier>
</row>
</numbers>

Created a table as follows:
create table std (`country` varchar(40),`ccode` varchar(8),
 `carrier` varchar(8), id int(5) unsigned auto_increment primary key);
[you wont need to do this bit]
 LOAD DATA LOCAL INFILE 'list.txt'
 INTO TABLE std FIELDS TERMINATED BY ','
 LINES TERMINATED BY '\n' (country, ccode, carrier);

SQL which you can load:
INSERT INTO `std` VALUES ('Country','ccode','carrier',1),
('\"Afghanistan\"','93','70',2),
('\"Afghanistan\"','93','75',3),
('\"Afghanistan\"','93','77',4),
('\"Afghanistan\"','93','78',5),
('\"Afghanistan\"','93','79',6),
('\"Albania\"','355','6',7),
('\"Antigua and Barbuda\"','1268','7',8),
('\"Argentina\"','54','15',9),
('\"Armenia\"','374','9',10),
('\"Australia\"','61','4',11),
('\"Austria\"','43','650',12),
('\"Austria\"','43','660',13),
('\"Austria\"','43','664',14),
('\"Austria\"','43','676',15),
('\"Austria\"','43','680',16),
('\"Austria\"','43','681',17),
('\"Austria\"','43','688',18),
('\"Austria\"','43','699',19),
('\"Azerbaijan\"','994','50',20),
('\"Azerbaijan\"','994','55',21),
('\"Azerbaijan\"','994','70',22),
('\"Bahamas\"','1242','35',23),
('\"Bahamas\"','1242','45',24),
('\"Bahamas\"','1242','55',25),
('\"Bahrain\"','973','3',26),
('\"Bangladesh\"','880','181',27),
('\"Bangladesh\"','880','19',28),
('\"Bangladesh\"','880','17',29),
('\"Bangladesh\"','880','16',30),
('\"Belarus\"','375','25',31),
('\"Belarus\"','375','29',32),
('\"Belarus\"','375','33',33),
('\"Belarus\"','375','44',34),
('\"Belgium\"','32','47',35),
('\"Belgium\"','32','48',36),
('\"Belgium\"','32','49',37),
('\"Belize\"','501','6',38),
('\"Benin\"','229','9',39),
('\"Bhutan\"','975','17',40),
('\"Bolivia\"','591','7',41),
('\"Bosnia and Herzegovina\"','387','61',42),
('\"Bosnia and Herzegovina\"','387','62',43),
('\"Bosnia and Herzegovina\"','387','63',44),
('\"Bosnia and Herzegovina\"','387','65',45),
('\"Botswana\"','267','7',46),

('\"Brazil\"','55','7',47),
('\"Brazil\"','55','8',48),
('\"Brazil\"','55','9',49),
('\"Brunei\"','673','8',50),
('\"Bulgaria\"','359','87',51),
('\"Bulgaria\"','359','88',52),
('\"Bulgaria\"','359','89',53),
('\"Bulgaria\"','359','48',54),
('\"Burkina Faso\"','226','7',55),
('\"Burundi\"','257','7',56),
('\"Cambodia\"','855','9',57),
('\"Cape Verde\"','238','9',58),
('\"Chile\"','56','97',59),
('\"Chile\"','56','98',60),
('\"Chile\"','56','99',61),
('\"People\'s Republic of China\"','86','13',62),
('\"People\'s Republic of China\"','86','15',63),
('\"Colombia\"','57','31',64),
('\"Comoros\"','269','3',65),
('\"Republic of Congo\"','242','4',66),
('\"Republic of Congo\"','242','5',67),
('\"Republic of Congo\"','242','6',68),
('\"Democratic Republic of Congo\"','243','22',69),
('\"Democratic Republic of Congo\"','243','78',70),
('\"Democratic Republic of Congo\"','243','81',71),
('\"Democratic Republic of Congo\"','243','84',72),
('\"Democratic Republic of Congo\"','243','85',73),
('\"Democratic Republic of Congo\"','243','86',74),
('\"Democratic Republic of Congo\"','243','88',75),
('\"Democratic Republic of Congo\"','243','89',76),
('\"Democratic Republic of Congo\"','243','90',77),
('\"Democratic Republic of Congo\"','243','94',78),
('\"Democratic Republic of Congo\"','243','95',79),
('\"Democratic Republic of Congo\"','243','96',80),
('\"Democratic Republic of Congo\"','243','97',81),
('\"Democratic Republic of Congo\"','243','98',82),
('\"Democratic Republic of Congo\"','243','99',83),
('\"Dominican Republic\"','\"+1-809 ','\"None\"',84),
('\"Costa Rica\"','506','3',85),
('\"Croatia\"','385','9',86),
('\"Cuba\"','53','5',87),
('\"Cyprus\"','357','99',88),
('\"Cyprus\"','357','96',89),
('\"Cyprus\"','357','97',90),
('\"Czech Republic\"','420','60',91),
('\"Czech Republic\"','420','72',92),
('\"Czech Republic\"','420','73',93),
('\"Czech Republic\"','420','77',94),
('\"Denmark\"','45','30',95),
('\"Denmark\"','45','40',96),
('\"Djibouti\"','253','8',97),
('\"Dominica\"','\"+1-767\"','2',98),
('\"East Timor\"','670','7',99),
('\"Ecuador\"','593','9',100),
('\"Ecuador\"','593','8',101),
('\"Egypt\"','20','1',102),
('\"El Salvador\"','503','7',103),
('\"Equatorial Guinea\"','240','2',104),
('\"Eritrea\"','291','7',105),
('\"Estonia\"','372','5',106),
('\"Ethiopia\"','251','91',107),
('\"Fiji\"','679','9',108),
('\"Finland\"','358','4',109),
('\"Finland\"','358','50',110),
('\"France\"','33','6',111),
('\"Gambia\"','220','7',112),
('\"Gambia\"','220','9',113),
('\"Georgia\"','995','5',114),
('\"Georgia\"','995','7',115),
('\"Georgia\"','995','9',116),
('\"Germany\"','49','15',117),
('\"Germany\"','49','16',118),
('\"Germany\"','49','17',119),
('\"Germany\"','49','700',120),
('\"Ghana\"','233','28',121),
('\"Gibraltar\"','350','58',122),
('\"Greece\"','30','693',123),
('\"Greece\"','30','694',124),
('\"Greece\"','30','697',125),
('\"Greece\"','30','699',126),
('\"Grenada\"','1473','41',127),
('\"Guatemala\"','502','5',128),
('\"Guatemala\"','502','4',129),
('\"Guinea\"','224','6',130),
('\"Guinea-Bissau\"','245','6',131),
('\"Guinea-Bissau\"','245','7',132),
('\"Guyana\"','592','6',133),
('\"Honduras\"','504','3',134),
('\"Honduras\"','504','8',135),
('\"Honduras\"','504','9',136),
('\"Hong Kong\"','852','5',137),
('\"Hong Kong\"','852','6',138),
('\"Hong Kong\"','852','9',139),
('\"Hungary\"','36','20',140),
('\"Hungary\"','36','30',141),
('\"Hungary\"','36','70',142),
('\"Iceland\"','354','6',143),
('\"Iceland\"','354','8',144),
('\"India\"','91','9',145),
('\"Indonesia\"','62','8',146),
('\"Iran\"','98','91',147),
('\"Iran\"','98','931',148),
('\"Iran\"','98','932',149),
('\"Iran\"','98','934',150),
('\"Iran\"','98','935',151),
('\"Iran\"','98','936',152),
('\"Iran\"','98','937',153),
('\"Ireland\"','353','8',154),
('\"Israel\"','972','5',155),
('\"Italy\"','39','310',156),
('\"Italy\"','39','31100',157),
('\"Italy\"','39','31101',158),
('\"Italy\"','39','31102',159),
('\"Italy\"','39','31103',160),
('\"Italy\"','39','31104',161),
('\"Italy\"','39','31105',162),
('\"Italy\"','39','313',163),
('\"Italy\"','39','319',164),
('\"Italy\"','39','320',165),
('\"Italy\"','39','322',166),
('\"Italy\"','39','323',167),
('\"Italy\"','39','327',168),
('\"Italy\"','39','328',169),
('\"Italy\"','39','329',170),
('\"Italy\"','39','330',171),
('\"Italy\"','39','331',172),
('\"Italy\"','39','333',173),
('\"Italy\"','39','334',174),
('\"Italy\"','39','335',175),
('\"Italy\"','39','336',176),
('\"Italy\"','39','337',177),
('\"Italy\"','39','338',178),
('\"Italy\"','39','339',179),
('\"Italy\"','39','340',180),
('\"Italy\"','39','341',181),
('\"Italy\"','39','343',182),
('\"Italy\"','39','345',183),
('\"Italy\"','39','346',184),
('\"Italy\"','39','347',185),
('\"Italy\"','39','348',186),
('\"Italy\"','39','349',187),
('\"Italy\"','39','350',188),
('\"Italy\"','39','360',189),
('\"Italy\"','39','361',190),
('\"Italy\"','39','362',191),
('\"Italy\"','39','363',192),
('\"Italy\"','39','366',193),
('\"Italy\"','39','368',194),
('\"Italy\"','39','370',195),
('\"Italy\"','39','373',196),
('\"Italy\"','39','377',197),
('\"Italy\"','39','380',198),
('\"Italy\"','39','388',199),
('\"Italy\"','39','389',200),
('\"Italy\"','39','390',201),
('\"Italy\"','39','391',202),
('\"Italy\"','39','392',203),
('\"Italy\"','39','393',204),
('\"Italy\"','39','397',205),
('\"Ivory Coast\"','225','0',206),
('\"Ivory Coast\"','225','6',207),
('\"Japan\"','81','70',208),
('\"Japan\"','81','80',209),
('\"Japan\"','81','90',210),
('\"Jordan\"','962','7',211),
('\"Kazakhstan\"','7','70',212),
('\"Kazakhstan\"','7','777',213),
('\"Kenya\"','254','7',214),
('\"Kosovo\"','377','44',215),
('\"Kuwait\"','965','6',216),
('\"Kuwait\"','965','7',217),
('\"Kuwait\"','965','9',218),
('\"Kyrgyzstan\"','996','5',219),
('\"Laos\"','856','20',220),
('\"Latvia\"','371','\"2xx\"',221),
('\"Lebanon\"','961','3',222),
('\"Lebanon\"','961','70',223),
('\"Lebanon\"','961','71',224),
('\"Lesotho\"','266','58',225),
('\"Lesotho\"','266','6',226),
('\"Libya\"','218','91',227),
('\"Liechtenstein\"','423','7',228),
('\"Lithuania\"','370','6',229),
('\"Luxembourg\"','352','621',230),
('\"Luxembourg\"','352','628',231),
('\"Luxembourg\"','352','661',232),
('\"Luxembourg\"','352','668',233),
('\"Luxembourg\"','352','691',234),
('\"Luxembourg\"','352','698',235),
('\"Macau\"','853','6',236),
('\"Republic of Macedonia\"','389','70',237),
('\"Republic of Macedonia\"','389','71',238),
('\"Republic of Macedonia\"','389','75',239),
('\"Republic of Macedonia\"','389','76',240),
('\"Republic of Macedonia\"','389','77',241),
('\"Republic of Macedonia\"','389','78',242),
('\"Madagascar\"','261','3',243),
('\"Malawi\"','265','8',244),
('\"Malawi\"','265','9',245),
('\"Malaysia\"','60','1',246),
('\"Maldives\"','960','7',247),
('\"Maldives\"','960','9',248),
('\"Mali\"','223','3',249),
('\"Mali\"','223','4',250),
('\"Mali\"','223','5',251),
('\"Mali\"','223','6',252),
('\"Mali\"','223','9',253),
('\"Malta\"','356','79',254),
('\"Malta\"','356','99',255),
('\"Mauritania\"','222','6',256),
('\"Mauritius\"','230','7',257),
('\"Mauritius\"','230','8',258),
('\"Mauritius\"','230','9',259),
('\"Mexico\"','52','1',260),
('\"Moldova\"','373','65',261),
('\"Moldova\"','373','68',262),
('\"Moldova\"','373','69',263),
('\"Moldova\"','373','76',264),
('\"Moldova\"','373','78',265),
('\"Moldova\"','373','79',266),
('\"Monaco\"','377','4',267),
('\"Monaco\"','377','6',268),
('\"Montenegro\"','382','6',269),
('\"Mongolia\"','976','9',270),
('\"Morocco\"','212','6',271),
('\"Mozambique\"','258','8',272),
('\"Myanmar\"','95','9',273),
('\"Nauru\"','674','555',274),
('\"Nepal\"','977','98',275),
('\"Netherlands\"','31','6',276),
('\"New Zealand\"','64','20',277),
('\"New Zealand\"','64','21',278),

('\"New Zealand\"','64','24',279),
('\"New Zealand\"','64','25',280),
('\"New Zealand\"','64','27',281),
('\"New Zealand\"','64','28',282),
('\"New Zealand\"','64','29',283),
('\"Nicaragua\"','505','8',284),
('\"Nigeria\"','234','80',285),
('\"Nigeria\"','234','90',286),
('\"Norway\"','47','4',287),
('\"Norway\"','47','9',288),
('\"Oman\"','968','968',289),
('\"Pakistan\"','92','300',290),
('\"Pakistan\"','92','301',291),
('\"Pakistan\"','92','302',292),
('\"Pakistan\"','92','306',293),
('\"Pakistan\"','92','307',294),
('\"Pakistan\"','92','308',295),
('\"Pakistan\"','92','309',296),
('\"Pakistan\"','92','345',297),
('\"Pakistan\"','92','346',298),
('\"Pakistan\"','92','344',299),
('\"Pakistan\"','92','343',300),
('\"Pakistan\"','92','342',301),
('\"Pakistan\"','92','333',302),
('\"Pakistan\"','92','334',303),
('\"Pakistan\"','92','332',304),
('\"Pakistan\"','92','331',305),
('\"Pakistan\"','92','321',306),
('\"Pakistan\"','92','322',307),
('\"Pakistan\"','92','323',308),
('\"Pakistan\"','92','303',309),
('\"Pakistan\"','92','304',310),
('\"Pakistan\"','92','320',311),
('\"Pakistan\"','92','335',312),
('\"Palestinian Authority\"','970','59',313),
('\"Panama\"','507','5',314),
('\"Panama\"','507','6',315),
('\"Panama\"','507','7',316),
('\"Panama\"','507','4',317),
('\"Papua New Guinea\"','675','68',318),
('\"Papua New Guinea\"','675','69',319),
('\"Paraguay\"','595','9',320),
('\"Peru\"','51','9',321),
('\"Philippines\"','63','9',322),
('\"Poland\"','48','50',323),
('\"Poland\"','48','51',324),
('\"Poland\"','48','60',325),
('\"Poland\"','48','66',326),
('\"Poland\"','48','69',327),
('\"Poland\"','48','72',328),
('\"Poland\"','48','78',329),
('\"Poland\"','48','79',330),
('\"Poland\"','48','88',331),
('\"Portugal\"','351','9',332),
('\"Qatar\"','974','5',333),
('\"Qatar\"','974','6',334),
('\"Romania\"','40','7',335),
('\"Russia\"','7','9',336),
('\"Rwanda\"','250','8',337),
('\"Samoa\"','685','77',338),
('\"San Marino\"','378','66',339),
('\"Sao Tome and Principe\"','239','90',340),
('\"Saudi Arabia\"','966','50',341),
('\"Saudi Arabia\"','966','54',342),
('\"Saudi Arabia\"','966','55',343),
('\"Saudi Arabia\"','966','56',344),
('\"Senegal\"','221','5',345),
('\"Senegal\"','221','6',346),
('\"Serbia\"','381','6',347),
('\"Seychelles\"','248','5',348),
('\"Seychelles\"','248','7',349),
('\"Sierra Leone\"','232','23',350),
('\"Sierra Leone\"','232','30',351),
('\"Sierra Leone\"','232','33',352),
('\"Sierra Leone\"','232','7',353),
('\"Singapore\"','65','8',354),
('\"Singapore\"','65','9',355),
('\"Slovakia\"','421','9',356),
('\"South Africa\"','27','7',357),
('\"South Africa\"','27','8',358),
('\"South Korea\"','82','10',359),
('\"South Korea\"','82','11',360),
('\"South Korea\"','82','16',361),
('\"South Korea\"','82','17',362),
('\"South Korea\"','82','18',363),
('\"South Korea\"','82','19',364),
('\"Spain\"','34','6',365),
('\"Sri Lanka\"','94','7',366),
('\"Sudan\"','249','9',367),
('\"Suriname\"','597','8',368),
('\"Swaziland\"','268','60',369),
('\"Sweden\"','46','70',370),
('\"Sweden\"','46','73',371),
('\"Sweden\"','46','76',372),
('\"Switzerland\"','41','74',373),
('\"Switzerland\"','41','76',374),
('\"Switzerland\"','41','77',375),
('\"Switzerland\"','41','78',376),
('\"Switzerland\"','41','79',377),
('\"Syria\"','963','9',378),
('\"Taiwan\"','886','9',379),
('\"Tajikistan\"','992','9',380),
('\"Tanzania\"','255','74',381),
('\"Thailand\"','66','1',382),
('\"Thailand\"','66','89',383),
('\"Togo\"','228','9',384),
('\"Tunisia\"','216','2',385),
('\"Tunisia\"','216','9',386),
('\"Turkey\"','90','5',387),
('\"Uganda\"','256','7',388),
('\"Ukraine\"','380','39',389),
('\"Ukraine\"','380','50',390),
('\"Ukraine\"','380','63',391),
('\"Ukraine\"','380','66',392),
('\"Ukraine\"','380','67',393),
('\"Ukraine\"','380','68',394),
('\"Ukraine\"','380','97',395),
('\"United Arab Emirates\"','971','50',396),
('\"United Arab Emirates\"','971','55',397),
('\"United Kingdom\"','44','75',398),
('\"United Kingdom\"','44','77',399),
('\"United Kingdom\"','44','78',400),
('\"United Kingdom\"','44','79',401),
('\"Uruguay\"','598','94',402),
('\"Uruguay\"','598','95',403),
('\"Uruguay\"','598','96',404),
('\"Uruguay\"','598','97',405),
('\"Uruguay\"','598','98',406),
('\"Uruguay\"','598','99',407),
('\"Uzbekistan\"','998','9',408),
('\"Vanuatu\"','678','4',409),
('\"Vanuatu\"','678','5',410),
('\"Venezuela\"','58','4',411),
('\"Vietnam\"','84','9',412),
('\"Yemen\"','967','7',413),
('\"Zambia\"','260','9',414),
('\"Zimbabwe\"','263','11',415),
('\"Zimbabwe\"','263','23',416),
('\"Zimbabwe\"','263','91',417);

Leave a Comment

Gogrid – service going down hill – 10000% uptime guaranteed – false advertising

There was a time I recommended gogrid to many people – having moved away from uk2.net which was just about as dreadful as it gets as far as maintaining a service goes.

Twice this week now go-grid (www.gogrid.com) have had network problems. They have a 10000% guaranteed uptime yet in about 7 months I’ve had in access of 7 hours outage and yet to receive any form of reimbursement.

Basically, if you have mission critical appliances then you can’t rely on go-grid either.

The RFO’s from the last outage tells us the blame is due to DOS against another of their servers and they said it would be fixed. The truth is, they fixed nothing and AGAIN my server can’t be accessed.

I supposed the next step is to move business to Amazon EC2.. More to do…
13   183 ms   178 ms   179 ms  ae-92-92.ebr2.SanJose1.Level3.net [4.69.134.221]

14   180 ms   180 ms   179 ms  ae-1-6.bar2.SanFrancisco1.Level3.net [4.69.140.1
3]
15   180 ms   180 ms   219 ms  ae-4-4.car2.SanFrancisco1.Level3.net [4.69.133.1
7]
16   180 ms   179 ms   180 ms  SERVEPATH.car2.SanFrancisco1.Level3.net [4.53.13
.18]
17     *        *        *     Request timed out.
18     *        *        *     Request timed out.
19     *        *        *     Request timed out.
20     *        *        *     Request timed out.
21     *        *        *     Request timed out.
22     *        *        *     Request timed out.
23     *        *        *     Request timed out.
24     *        *        *     Request timed out.
25     *        *        *     Request timed out.
26     *        *        *     Request timed out.
27     *        *        *     Request timed out.
28     *        *        *     Request timed out.
29     *        *        *     Request timed out.
30     *        *        *     Request timed out.

race complete.

:\wamp\bin\apache\apache2.2.8\bin>

Comments (3)

Date/Time/PHP/mysql/ date format not working – workaround below.

Where

| created           | timestamp       | NO   |     | CURRENT_TIMESTAMP   |                |

and

<td><? echo date(“d/m/y”,$row['created']); ?></td>

would not work so use

<td><? echo date(“d m y (D)”, strtotime($row['created'])) ?></td>

Leave a Comment

bit of bash script to remove files from a dir when they are 30 minutes old

Problem

(paraphrased/untested) : – find . -type f -mtime xx -exec rm {}\;
doesn’t always have a high enough resolution when you want to remove a file
that is seconds or minutes old.

In my application, I have “guest writers” who preview their web content
before submitting for review. I don’t want web robots to index this content
(so will have a meta in the html to that effect anyway) and I don’t want
nosy readers of my sites to be familiar with tmp files which are under the
wwwroot so they can read stuff that has yet to be approved AND also I want to
do good housekeeping and remove tmp content fairly quickly.
I could use a “staging” web server, after they author presses the
preview button, a temp web page is rendered. I can delete this page within
seconds of it being viewed – this is fine.

Solution

The following code will be run in cron, maybe every half an hour

Where

time resolution is in seconds thus the division by 60 to get minutes
bash does not do natively division hence the pipe to bc
the file is the modify time

#!/bin/bash
#  echo  " (`date +%s` -  `stat -c %Z 12345`) / 60"   | bc -l

for i in `ls -b $FILEPATH`;
do

   U=$(( (`date +%s` - `stat -c %Z $i`) / 60 | bc -l ))

   if [ $U -gt 30 ]; then
     echo "$i is too old - will delete $U"
#    insert the DANGEROUS bit here
   else
     echo "too young - will not delete $U";
#    no dangerous bit here
   fi

done

Leave a Comment

InnoDB MyISAM mysqlhotcopy import bug table not found

If table not found errors occur on target db after transferring database 
then do the following:
1. check permissions on the folders and files under
/var/lib/mysql (esp if you copied as root).

Files should be mysql:mysql, as a rule.

2. On the source db, 

mysql> select table_name,table_type,engine from
information_schema.tables
where engine='InnoDB';

+--------------+------------+--------+

| table_name   | table_type | engine |

+--------------+------------+--------+

| crypto       | BASE TABLE | InnoDB |

+--------------+------------+--------+

x rows in set (5.80 sec)

The convert the db to ISAM

mysql> alter table crypto engine=MyISAM;

Query OK, 0 rows affected (0.12 sec)

Records: 0  Duplicates: 0  Warnings: 0

Leave a Comment

Older Posts »