Travel Setup

Posted on 22. Juni 2018 Comments

For a while now I’ve been bouncing around from country to country and while occasionally, e.g. in Iceland, I don’t have everything I need, it’s usually possible (and in case of Iceland – expensive) to just buy things wherever you are. So I only travel with a Osprey 40L backpack. I’ve been wanting to write a packing list for a while. In it is:

 

Electronics

  • MacBookPro 13“ in Crumpler case
  • Macbook USB-C charger + European plug + American plug
  • 15.6“ External monitor + USB-C cable (power+data)
  • SD/µSD Card Reader
  • USB charger with American plug
  • Powerbank
  • Small Bose speaker
  • External harddrive + USB cable
  • Adapter for UK/Ireland
  • Feature phone for my German SIM card (double SIM phone would be better)
  • 2 USB-C to USB adapter
  • USB to USB-C chord (charging phone with powerbank)
  • CCTV disguised as power adapter
  • Nexus 5X
  • Koss Porta Pro
  • Cheap ear phones since they break anyway
  • iPad + charger cable

 

Clothes

  • 3-4 Merino T-Shirts
  • 1 Merino Long Sleeve
  • 1 Merino Sweatshirt
  • 1 Primaloft jacket
  • 1 Rain jacket
  • 1 Belt
  • A whole bunch of underwear + socks

 

Scuba Diving Equipment

  • Cressi Mask
  • Mares Computer
  • Cheap Actioncam on a bungee cord
  • Logbook + Pen
  • PADI C-Card
  • Small waterproof bag

 

Documents

  • Drivers license + International
  • 1 Credit card from each company (Visa, MasterCard, Amex, Diners Club)
  • Passport
  • Vaccination Documents (to prove e.g. yellow fever vaccination)
  • Medical information document

 

Bathroom stuff

  • Toothbrush + toothpaste
  • Small bottle with shower gel
  • Nail cutter
  • Ibuprofen + Tylenol + something against diarrhoea
  • Thermometer to check for fever

 

Misc

  • 100 USD in cash for emergencies
  • Cheap antibacterial gel
  • Keychain

Apart from a few guitars, some outdoor equipment (tent, sleeping bag, stove etc), 2 bicycles, a bunch of books and few warm clothes I store on my parents attic and my scuba diving equipment on Gran Canaria that’s also all I own.

A Digital Nomads Guide for Caye Caulker, Belize

Posted on 27. März 2018 Comments

Caye Caulker is a small limestone coral island off the coast of Belize in the Caribbean Sea measuring about 5 miles (8.0 km) (north to south) by less than 1 mile (1.6 km) (east to west).

— https://en.wikipedia.org/wiki/Caye_Caulker

NomadList doesn’t really give it a good rating but in my opinion that’s not quite fair. What attracted me was that it’s smaller than San Pedro with a laid back hippie vibe and good scuba diving spots.

How to get there

  1. Fly, mostly from Belize City
  2. WaterTaxi from Chetumal, MX (with immigration in San Pedro for ~1h), daily at either 3 or 3.30pm + the usual Mexican delay, ~50 USD
  3. WaterTaxi from Belize City/Airport

How to get around

When you arrive (on the eastern side) you can quite literally see the water on the western side of the island. My point is: Caye Caulker is super small! You can easily walk everywhere, rent a bike or, if need be, a golf cart. Not even the police has cars but drive golf carts and motorbikes. I saw about 3 real cars in total and a few construction trucks, but not in the center.

Where to stay

For 30-50€/night you will get a decent apartment/hotel room on AirBnB/booking.com with WiFi and AC.

For 17€ (35 BZD) you will get a bunk bed in a 2 bed „room“ (called „sleep box“) in La Cubana that resembles one of the box hotels found in Japan or Abu Dhabi Airport. But if you spent the majority of the time outside anyway, what more do you need. Otherwise, for the same money, you mostly get big rooms with 8-10+ people and possibly no AC. Here, at least the AC runs from 8pm to 8am. If that (and warm showers) doesn’t interest you, Yuma Hostel directly at the pier seems relaxed (not a party hostel) and has 2 lovely dogs. Further north is the famous Drifted Coconut Hostel.

CoWorking Spaces

Nope! There are no CoWorking spaces or not even DN Hotspot Cafés (that I saw) on Caye Caulker. You have to work wherever you find a nice spot. I can recommend Ice and Beans on the ocean side for your cliché working-on-the-beach-instagram-photo but more importantly: really good coffee! Other than that try the restaurant underneath La Cubana as they have WiFi and power plugs.

Ice and Beans Cafe Caye Caulker

Tropical Paradise Hotel at the (literal) end of the road (how fitting, the cemetery is next door) also has power plugs and decent WiFi, not to mention a good barkeeper/selection of alcohol and drinks on the menu for after-hours.

Across the road from La Cubana is the internet café Caye Board which offers WiFi at 30BZD/4h. I know it seems old school but the place has air conditioning, is relatively calm compared to cafés/restaurants:

http://www.speedtest.net/result/7176882409

You might have problems with your laptop and the high humidity (80%+). My MacBook Pro Keyboard stopped working for a whole morning. Try to blow it out with a Scuba tank (since I couldn’t find anybody with a pressurised air can) to make sure theres no sand/dust in it. And then try working from an air conditioned room because AC does not only make it colder but also dry. If the computer still turns on, try to install software that turns on the internal fan to sort of dry it out. Also read 5 Ways to Protect Your Laptop in the Tropics by Too Many Adapters.

Cost/Money

The Belizian Dollar (BZD) is directly tied to the US Dollar with 2:1, meaning 2 BZD = 1 USD. You can use USD as a method of payment and will sometimes even get change back in USD. While certainly not as cheap as the neighboring countries it’s not an expensive country per se. Caye Caulker is small though and everything comes by plane or ship so expect a surcharge. It’s quite touristy so that adds another few dollars to everything you buy.

Diving

There are 6(?) dive shops on the island and a few tour operators that re-sell those dives:

Only 3 (or 4?) of those go to the famous Blue Hole which is a few hours on a bumpy speed boat away. Only BDS offers tech/cave diving. They all have some sort of bad reputation and reviews on the web, reaching from reckless boat driving where people got injured to cowboy attitudes by Divemasters, faulty equipment, no oxygen on board despite the obvious risk of DCS with the Blue Hole being ~120m/400ft deep, to even harassment of women and an instructor dying in the Blue Hole. Surely the safest option is to bring your own equipment, some experience and a good buddy. There have been dive centers that had to close down only to reopen a little later with the same staff (Belize  ¯\_(ツ)_/¯ ) That said, there are plenty of people happily diving with those companies and nothing bad happens. Safest bet is not to pay for multiple days in advance as most of them don’t seem to give you your money back (German) if you don’t end up going (weather, illness etc). Alternatively, snorkeling can be just as pretty 🙂

Please refuse to dive with faulty equipment, no matter what the owner/instructor/divemaster says! On return to the island (all dives are boat dives), report them to PADI or SDI/TDI and if necessary to the police. If you have a medical emergency or signs of decompression sickness go immediately go the doctor and call DAN/your insurance. The next hyperbaric chamber is on San Pedro. You can do very little against unfair business policies or unfriendly staff but don’t let them endanger your life or the lives of others on the boat!

Laundry

For ~10BZD in Calle de Sol (the one going west from the pier) on the left/south side 2 very friendly ladies will wash your clothes. I guess it depends on the amount but I don’t own many things and washed pretty much everything I had minus shorts + T-Shirt I was wearing.

WiFi

Most restaurants and cafés have WiFi of various speeds and reliability. Get mobile internet as backup since sometimes the internet is just gone for a few minutes and the latency for VoIP calls is better on mobile.

Mobile Internet

BTL is virtually the only provider for GSM based phones (CDMA as used in US/NZ/AUS supported by Smart!). The BTL shop is a little difficult to find since the official address on the website is „backstreet“. Which isn’t exactly wrong but even Google Maps can’t find it. Also the GPS coordinates found on infomarket.bz are wrong, however you will find a said laundry on the opposite site of that road. Your safest bet is to walk towards the big cell towers and ask around. Or take a screenshot of Google Maps:

These are the correct GPS coordinates: 

17°44’35.7″N 88°01’32.0″W

Google Maps shows this at the the corner of Avenida Mangle and Calle de Sol (again, the street straight from the pier all the way down). It’s a white and purple building. OpenStreetMap (e.g. with maps.me) shows this as Belize Telecom Limited:

BTL office for SIM Cards on Caye Caulker (c) OpenStreetMap

To register you need ~15minutes, an ID and ~20 BZD for the SIM card + whatever you want to charge. For 1GB, expect ~30BZD although they seem to have more or less permanent monthly specials which double the amount of data. For 30 BZD I got 4.8GB (March 2018). Although they advertise 4G/LTE I could never get more then HSDPA/3G. Fun fact: on the wall in the BTL building there is a poster with the goal of reaching 25MBit/s Download in 2020. South Korean homing pidgeons might have been faster in the 90s but that’s ok for an island who’s motto is „Go Slow“.

Nice to know

  • The first thing I heard, even before „Taxi?“, was „Marijuana?“. You can indeed smell it on every other street corner although it is not legal at all, no matter what the locals say. A big sign on the police station also confirms that. Many seemingly relaxed and hippie vibe hostels do not tolerate drugs at all and the laws are pretty strict.
  • Belize is an ex-colony of the UK and – as the only country in Central America – the main language is English. The accent is similar to those in the British (ex-) territories in the Caribbean and easy to understand. Most people understand Spanish too and the locals speak Creole, a mixture of languages.
  • If you’re easily sunburned use plenty of sunscreen as with the white sand, you can apparently get a sunburn just from the reflection while standing in the shade. Even if that’d be a myth, the sun can be pretty strong and due to the wind you might not notice the burn fast enough.

 

Any additions? Contact me! 🙂

Laravel: Serialization of ‚Closure‘ is not allowed with Jobs and Queues

Posted on 26. Februar 2018 Comments

When dispatching Jobs onto a queue it’s possible to get the following error:

Serialization of ‚Closure‘ is not allowed

This basically means that you are either passing a class that contains anonymous functions („closures“ in PHP) or that in the Job itself there is an anonymous function. This could also be a library you are using. PHP is unable to serialize closures per se. When Jobs get dispatched onto the queue, everything has to be serialized before. If you absolutely must use them this way, look into the Super Closure package by jeremeamia. However, just rewriting the code a little might be easier:

 

Solution

Instead of passing a whole object to the Job like so:

$objOfClassWithClosures = ...;
$job = new Job($objOfClassWithClosures);
dispatch($job);

Pass the Fully Qualified Class Name (that’s what ClassName::class returns) to the job and instantiate the object on the other side, possibly even using Laravels Container:

$job = new Job(ClassWithClosures::class);
dispatch($job);

Inside the job you can then use the constructor to make a new instance of that class:

public function __construct(string $fqcn) {
$objOfClassWithClosures = app()->make($fqcn);
}

 

PHP + Laravel development Packages for atom.io

Posted on 30. Januar 2018 Comments

PHP CS Fixer

brew install php-cs-fixer

apm install php-cs-fixer

Settings:

php path: /usr/local/bin/php

php-cs-fixer path: /usr/local/bin/php-cs-fixer

PHP CS Fixer Rules: @PSR2,blank_line_after_opening_tag,whitespace_after_comma_in_array,blank_line_after_namespace

PHP CS Fixer Arguments: --using-cache=no, --no-interaction, --stop-on-violation

[x] Show Notifications

Ctrl+Cmd+S

Can also be used on commandline for folders, e.g.
$ php-cs-fixer fix app/ --rules=@PSR2,blank_line_after_opening_tag,whitespace_after_comma_in_array,blank_line_after_namespace

 

php-integrator-refactoring (php-integrator-base)

apm install php-integrator-base

apm install php-integrator-refactoring

Linting (also see linter(-php))

Sort use statements

 

linter and linter-php

apm install linter

apm install linter-php

In case linting with php-integrator-base does not work.

 

language-blade and language-vue

apm install language-blade

apm install language-vue

 

minimap

apm install minimap

Short overview over the code on the right side

 

highlight-selected

apm install highlight-selected

 

platform-ide-terminal

apm install platform-ide-terminal

Instead of switching windows, terminal right in atom

Cmd+Shift+T

 

symbols-tree-view

apm install symbols-tree-view

Structured overview on the right side over classes, constants, attributes, methods etc

 

hyperclick and hyperclick-php

apm install hyperclick

apm install hyperclick-php

Cmd+Click on classes, functions etc to go to origin.

Not needed if you installed atom-ide-ui

 

teletype

apm install teletype

Work on the same file with coworkers, encrypted via WebRTC

 

More dependencies might be installed with installing some of these packages

PHP Commandline Notification

Posted on 3. Januar 2018 Comments

When you run long (PHP) jobs it’s easy to forget about the terminal. That’s why I’ve created a small PHP package that will make a little sound. Because PHP itself doesn’t have this functionality anymore it’s possible to just echo the ASCII sign for BEL. Simply put this at the end of your PHP job:

use repat\CommandlineBell;
// flashes screen if possible, otherwise just bell()
CommandlineBell::flash();
// makes a beep sound
CommandlineBell::bell();

Under the hood it’s really just:
echo "0x07";

A good (non-PHP) alternative I found is brb by Viktor Fröberg, just run commands like this

php artisan migrate --seed ; brb

Of course it’s always possible to just run a TTS app on the commandline via exec() like this:

exec("say terminal task done");

Or you could do it similar to brb:

php artisan migrate --seed ; say seeding done

Source on GitHub