Stop buying tools, start solving problems

I’ve been watching a pattern repeat itself for years, and it’s starting to grate. Someone at a conference hears about a new tool — some Kubernetes operator, or service mesh, or GitOps platform that’s supposedly going to fix everything — and they come back convinced their team needs it yesterday. Not because there’s a problem that needs solving. Because the tool exists. This isn’t about being anti-technology. I love good tools. But somewhere along the line, DevOps culture got it backwards. We’re picking solutions first and frantically searching for problems they might address, instead of looking at what’s actually broken and finding the simplest thing that fixes it. ...

26 September 2018 · 3 min · 605 words · Shafiq Alibhai

'scripts/extract-cert.c:21:10: fatal error: openssl/bio.h: No such file or directory'

sudo apt-get install -y libssl-dev

19 September 2018 · 1 min · 5 words · Shafiq Alibhai

'/bin/sh: 1: bison: not found'

sudo apt-get install bison

19 September 2018 · 1 min · 4 words · Shafiq Alibhai

'[solved] xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer") does not exist'

Error: xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer") does not exist Use sudo xcode-select --switch path/to/Xcode.app to specify the Xcode that you wish to use for command line developer tools, or use xcode-select --install to install the standalone command line developer tools. See man xcode-select for more details. xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer") does not exist Use sudo xcode-select --switch path/to/Xcode.app to specify the Xcode that you wish to use for command line developer tools, or use xcode-select --install to install the standalone command line developer tools. See man xcode-select for more details. ...

6 September 2018 · 1 min · 97 words · Shafiq Alibhai

Merging Unrelated Git Histories

You’ve got two repositories with completely separate histories, and you need to bring them together. Maybe it’s an old project you’re absorbing into a new one, or a submodule that started life as its own thing. You try a standard git merge and Git immediately shuts you down: fatal: refusing to merge unrelated histories This isn’t a bug – it’s Git being cautious. When two branches share no common ancestor, Git assumes you’ve made a mistake and refuses to play along. But sometimes you genuinely want this merge, and there’s a flag for that. ...

4 September 2018 · 2 min · 292 words · Shafiq Alibhai

Using Ansible with Packer

Packer builds machine images. Ansible configures servers. Together, they let you bake your configuration straight into the image – no manual setup required after deployment. The Ansible provisioner in Packer runs your playbooks during the image build process. You write a normal Ansible playbook, point Packer at it, and when the image is ready, your software is already installed and configured. Note: If you specify a remote_user in your Ansible tasks, Packer will ignore it. The provisioner connects using the username from Packer’s own configuration. ...

4 September 2018 · 1 min · 142 words · Shafiq Alibhai

Installing SSHPass on Ubuntu and macOS

SSHPass is a small command-line utility that lets you pass a password directly to an SSH connection, which means no interactive password prompt. Useful when you’re writing scripts that need to connect to remote machines without manual intervention. A word of warning before you go ahead: SSHPass is not secure. The password gets passed as a command-line argument, which means it can show up in process listings and shell history. It’s fine for personal automation on your own machines, but don’t use it in shared environments or anything that touches production systems. ...

2 September 2018 · 2 min · 229 words · Shafiq Alibhai

Installing Docker CE on Ubuntu

What You Need Before You Begin Docker CE runs on a handful of 64-bit Ubuntu releases, so check you’re on one of these before carrying on: Ubuntu 18.04 (Bionic) - LTS Ubuntu 17.10 (Artful) Ubuntu 16.04 (Xenial) - LTS Ubuntu 14.04 (Trusty) - LTS The supported architectures are x86_64, armhf, s390x (IBM Z), and ppc64le (IBM Power). If you’re on IBM Z or Power, you’ll need at least Ubuntu 16.04 (Xenial). ...

2 September 2018 · 2 min · 385 words · Shafiq Alibhai

The big data life cycle

I keep coming back to the same problem: everyone talks about big data as if it’s a thing you have, when really it’s a process you go through. There’s no single tool or platform that solves it. What you end up with is a series of messy stages, each with its own set of headaches, and most organisations I’ve spoken to are stuck somewhere in the middle without a clear picture of what comes next. ...

29 December 2013 · 3 min · 567 words · Shafiq Alibhai

Applicable values for AddItemRequest.Item.Country

Applicable values for AddItemRequest.Item.Country When listing an item via the eBay Trading API, the Item.Country field expects a two-letter ISO 3166-1 alpha-2 country code. The table below lists every value eBay accepts, along with the country name. All codes are valid for both incoming (selling) and outgoing (shipping) directions unless noted otherwise. Country codes Code Country Notes AA — APO/FPO. Not in ISO 3166; retained for backward compatibility. AD Andorra AE United Arab Emirates AF Afghanistan AG Antigua and Barbuda AI Anguilla AL Albania AM Armenia AN Netherlands Antilles AO Angola AQ Antarctica AR Argentina AS American Samoa AT Austria AU Australia AW Aruba AZ Azerbaijan BA Bosnia and Herzegovina BB Barbados BD Bangladesh BE Belgium BF Burkina Faso BG Bulgaria BH Bahrain BI Burundi BJ Benin BM Bermuda BN Brunei Darussalam BO Bolivia BR Brazil BS Bahamas BT Bhutan BV Bouvet Island BW Botswana BY Belarus BZ Belize CA Canada CC Cocos (Keeling) Islands CD Congo, The Democratic Republic of the CF Central African Republic CG Congo CH Switzerland CI Cote d’Ivoire CK Cook Islands CL Chile CM Cameroon CN China CO Colombia CR Costa Rica CU Cuba CustomCode — Reserved for internal or future use. CV Cape Verde CX Christmas Island CY Cyprus CZ Czech Republic DE Germany DJ Djibouti DK Denmark DM Dominica DO Dominican Republic DZ Algeria EC Ecuador EE Estonia EG Egypt EH Western Sahara ER Eritrea ES Spain ET Ethiopia FI Finland FJ Fiji FK Falkland Islands (Malvinas) FM Micronesia, Federated States of FO Faroe Islands FR France GA Gabon GB United Kingdom GD Grenada GE Georgia GF French Guiana GG Guernsey GH Ghana GI Gibraltar GL Greenland GM Gambia GN Guinea GP Guadeloupe GQ Equatorial Guinea GR Greece GS South Georgia and the South Sandwich Islands GT Guatemala GU Guam GW Guinea-Bissau GY Guyana HK Hong Kong HM Heard Island and McDonald Islands HN Honduras HR Croatia HT Haiti HU Hungary ID Indonesia IE Ireland IL Israel IN India IO British Indian Ocean Territory IQ Iraq IR Iran, Islamic Republic of IS Iceland IT Italy JE Jersey JM Jamaica JO Jordan JP Japan KE Kenya KG Kyrgyzstan KH Cambodia KI Kiribati KM Comoros KN Saint Kitts and Nevis KP Korea, Democratic People’s Republic of KR Korea, Republic of KW Kuwait KY Cayman Islands KZ Kazakhstan LA Lao People’s Democratic Republic LB Lebanon LC Saint Lucia LI Liechtenstein LK Sri Lanka LR Liberia LS Lesotho LT Lithuania LU Luxembourg LV Latvia LY Libyan Arab Jamahiriya MA Morocco MC Monaco MD Moldova, Republic of ME Montenegro MG Madagascar MH Marshall Islands MK Macedonia, the Former Yugoslav Republic of ML Mali MM Myanmar MN Mongolia MO Macao MP Northern Mariana Islands MQ Martinique MR Mauritania MS Montserrat MT Malta MU Mauritius MV Maldives MW Malawi MX Mexico MY Malaysia MZ Mozambique NA Namibia NC New Caledonia NE Niger NF Norfolk Island NG Nigeria NI Nicaragua NL Netherlands NO Norway NP Nepal NR Nauru NU Niue NZ New Zealand OM Oman PA Panama PE Peru PF French Polynesia Includes Tahiti. PG Papua New Guinea PH Philippines PK Pakistan PL Poland PM Saint Pierre and Miquelon PN Pitcairn PR Puerto Rico PS Palestinian territory, Occupied PT Portugal PW Palau PY Paraguay QA Qatar QM — Former eBay code for Guernsey (pre-ISO). Retained for backward compatibility. QN — Former eBay code for Jan Mayen (pre-ISO). Retained for backward compatibility. QO — Former eBay code for Jersey (pre-ISO). Retained for backward compatibility. RE Reunion RO Romania RS Serbia RU Russian Federation RW Rwanda SA Saudi Arabia SB Solomon Islands SC Seychelles SD Sudan SE Sweden SG Singapore SH Saint Helena SI Slovenia SJ Svalbard and Jan Mayen SK Slovakia SL Sierra Leone SM San Marino SN Senegal SO Somalia SR Suriname ST Sao Tome and Principe SV El Salvador SY Syrian Arab Republic SZ Swaziland TC Turks and Caicos Islands TD Chad TF French Southern Territories TG Togo TH Thailand TJ Tajikistan TK Tokelau TM Turkmenistan TN Tunisia TO Tonga TP — No longer in use. TR Turkey TT Trinidad and Tobago TV Tuvalu TW Taiwan, Province of China TZ Tanzania, United Republic of UA Ukraine UG Uganda UM — No longer viable. Use US instead. Retained for backward compatibility. US United States UY Uruguay UZ Uzbekistan VA Holy See (Vatican City state) VC Saint Vincent and the Grenadines VE Venezuela VG Virgin Islands, British VI Virgin Islands, U.S. VN Viet Nam VU Vanuatu WF Wallis and Futuna WS Samoa YE Yemen YT Mayotte YU — No longer in use. See RS for Serbia and ME for Montenegro. ZA South Africa ZM Zambia ZW Zimbabwe ZZ — Unknown country.

26 October 2013 · 4 min · 769 words · Shafiq Alibhai