Digital Nomads Part 1

You’ve noticed that as a programmer you can work from anywhere. So how do you begin checking in to your daily standup from Starbucks in Paris?


If you don’t have a passport, get one today. Even if you’re not going anywhere soon. US passports are good for about 10 years. They can take three to six months to get, though. So start today before you need one. It just takes a few documents copied and get your photos taken.

Passport photos have special requirements. But there’s no need to pay $15 – $20 at the drug store. Turns out they just use your phone to take a photo now, which you can do yourself. Walmart will print a 4″x6″ matte photo for $0.12 and you can pick it up almost immediately. I recommend IDPhoto4You to adjust the image. You may need a few of these photos. Keep some around for various government services. You may even use them for city transit cards.


Easiest way to get into a country is visa free as a tourist. If you have a return flight already booked and know where you’ll be staying then you can usually stay 90 days without any trouble or extra paperwork at all. The different ways to do this can have a huge depth. Passport Index is a great way to start seeing where you can go without a visa, where you can apply when you arrive, and where you’ll need to apply ahead of time.

Always check on any additional requirements, though the airlines are pretty good at pointing you in the right directions, the responsibility lies on you to know what’s going on. There were additional forms for COVID in 2022, but those were generally gone by 2023.1

Digital Nomad Visas

A lot of countries are making it easier for remote workers to stay even longer. Long stay visas, digital nomad visas, and temporary worker visas all run a spectrum of different ways belong in a country.2 Many give you access to other EU countries and some can start the clock on time for attaining a new citizenship. Some allow benefits for immediate family and some allow access to the school system for children.

For short stay visas you may be able to get away with only paying income taxes in your home country. Some digital nomad visas won’t require full income tax where you’re staying, but do require something back for what they’re offering. The longer and more permanent your stay, the more you will be expected to pay taxes. And the US always taxes its citizens, even abroad.


Many countries will allow you to use your normal driver’s license. Some require and some recommend the use of a translated license.3 In the US, this is a document you can get from a AAA office by showing your driver’s license and giving them two of those extra passport photos. It is good for one year, but you need to get it before traveling.

Public Transport

Many public transport systems have their own cards. If this is available before you leave, go ahead and get one. Usually they are available only in person and will require a photograph or another one of those passport photos you are carrying. Local transport cards can save you a lot when you purchase by the month rather than the tourist rates.

For example, Madrid’s 30 day pass was €21.80 in 2023.4 Far less than paying by the trip. But they only mail the card within the city, so make an appointment to pick one up after you arrive. But don’t worry in London, where you can just use any credit card to tap into train stations or onto busses.


In 2023 most highly developed or touristy places will just prefer you use your Visa or Mastercard. You may not need much paper currency or coins at all. Having a Revolut debit/ATM card can help you avoid bank fees.

Try to always pay in the local currency.5 Most payment terminals and ATMs may ask if you want to exchange into your home currency. Especially the ATMs you may even have to reject their conversion before moving on. This conversion is generally way worse than what your bank would offer.

  1. U.S. Ends Last Covid Travel Barrier, Vaccine Mandate for Foreign Arrivals, NYTimes,, 2023 ↩︎
  2. 66 Digital Nomad Visa Countries in 2023, CitizenRemote,, 2023 ↩︎
  3. Geneva Convention on Road Traffic 1949 and Vienna Convention on Road Traffic 1968 ↩︎
  4. Madrid Temporary Discounts,, 2023 ↩︎
  5. How to manage your money as a digital nomad, Lonely Planet,, 2021 ↩︎

C for Programmers

There are programmers who have never used C before! This is a shocking fact to me, as C is where I started programming. And there are many programmers who want to learn to use C, but already know how to program. C for Beginners is easy to find with a Google search. They need an introduction to pointers and a bit of malloc. Hopefully without mentioning things like functions, types, and how to write a conditional which would surely put a ruby, python, or java programmer to sleep.

So here it is. A few code examples with pointers. I mention tools like gcc and some flags and gdb. And there is some assembly code, as really writing C requires some computer architecture understanding.


Or here’s a document with the same goals from Stanford: Stanford CS Education Library: 102

Ad test

I’m working on a advertising deliverable for a client. I need to show the differences between something like Google’s AdSense and statically delivering image content. Because of this, here is an Ad.

It’s a 250x250px ad, with backup of Jake the dog,

This took me 3 days to get approval to get working. First day is submitting the site and Google crawls it to verify you have enough content. My first domain didn’t pass (but it’s basically just a business card). This one did. Then I placed the ad code using wordpress plugin “Easy Plugin for AdSense”. It was blank (with no way to get anything other than blank) for about 48 hours.

I’ll get rid of this later. I have no aspirations about making some glorious $0.05 or whatever small personal blogs can make.

update: Removed! It shows that I made $0.00. I thought it would make a couple more cents. It was easy to do though, and if you have a specialized enough userbase I’m sure Google is a good partner today for ads.

My System 76 laptop, cheap, rattling, smoking, all around pretty good

One year ago I bought a System 76 Gazelle laptop. It’s a pretty good machine. I’d say only for people that can tinker with their laptop though.

Here’s the order specs:

Gazelle Professional ( gazp9 ) Quantity: 1
Ubuntu 14.04 LTS 64 bit
15.6″ 1080p Full High Definition Display with Matte Surface ( 1920 x 1080 )
Intel® High Definition Graphics 4600
4th Generation Intel® Core™ i7-4810MQ Processor ( 2.8 GHz 6MB L3 Cache – 4 Cores plus Hyperthreading )
16 GB Dual Channel DDR3 SDRAM at 1600MHz – 2 X 8 GB
United States Keyboard Layout
500 GB Samsung 840 EVO Solid State Drive
No Secondary Hard Drive
Caddy Case without Hard Drive (Use your own drive in the optical bay)
Intel® Dual Band Wireless-AC 3160 AC Wireless LAN up to 433 Mbps + Bluetooth
1 Yr. Ltd. Warranty and 1 Yr. Technical Support
Rush Assembly Service – Guaranteed shipping within 2 business days of your order ( not including day of order )

All this came to a bit more that $1500, just about the same price as it would be today. That’s a hell of a deal! Go price out a Macbook with a 4810MQ, 16GB RAM, and 500 GB SSD. Or don’t because I know that price. It’s the $2500 one. The Macbook does have a better screen, incredible touchpad, and you can add in a 2GB AMD video module for practically nothing at that level. The Apple has no Ethernet or VGA port.

So for a work laptop that won’t run better with the improved video and will be plugged in to an external keyboard, mouse, and monitor this is a no brainer. I actually prefer Ubuntu because the package management is just so much easier on Linux than anywhere else. Java development is cross platform so I’m not missing out on anything there.

Anyway, so what’s the bad side? Some screws inside were loose from the factory. The keyboard felt weak and weird. Then there was some rattling around when I would move the laptop. Opened it up and a bunch of screws fell out. Tightening them down fixed both problems! Just sad they missed that step when building the machine.

Next happened just outside the 1 year warrenty. Smoke started coming out the rear left near the power port. I took it apart! The power port has 2 tabs on the back, one connected to the port’s housing and the other directly to the plug. The solder joint from there to wire to the motherboard was bad and had broken off the tab it was supposed to connect to. But it was still good on the other tab. Oh no! The ground for all the power routed around the port’s casing, finding resistance and heating up enough to melt the plastic case some. It was pretty easy to remove screws and solder that back together. Points for maintainability. If something is going to be produced poorly enough to do this it had better be fixable.

So all in all, a pretty good laptop. Parts are easy to access and change or upgrade. Ubuntu is great. Etherenet, VGA, HDMI, USB is all there. A good laptop for a developer. It does require at least knowing someone who can operate a soldering iron.

10 Good Books

This week’s viral facebook post asks people to share 10 favorite or influential books with their friends. It’s a bit biased to the small sample of books I’ve actually read. And really, rather than targeted at the original goal, when I finished the list it’s just a list of books that are good and worth reading.

1. People’s History of the United States by Howard Zinn
The history books (and textbooks) I’ve seen before I ran into this one were all about the rulers. The nobility, the clergy, the philosophers, the scientists, the artists were all there. Zinn writes about the struggles of the common man that fought and worked.

2. The Hobbit by JRR Tolkien
Because adventure is FUN.

3. The Sun Also Rises by Ernest Hemingway
It’s an enjoyable read. The characters are interesting and their interactions are great. Though as far as plot is concerned almost nothing happens. That’s great.

4. Confederacy of Dunces
A fun and generally dislikable main character has escapades and interacts with many other interesting characters. Then you can visit the statue of the character in New Orleans.

5. Dune by Frank Herbert
Sci-fi thriller about politics and trade and sand worms. A bit of the coming-of-age challenge story thrown in too. “I must not fear. Fear is the mind-killer” is great to repeat as a narrative choice and in your normal life.

6. Fear and Loathing in Las Vegas by Hunter S Thompson
I saw the movie before reading the book. But hearing the lines delivered I remembered it was a book and knew it was one I wanted to read. It’s like the best parts of the movie, but goes on for page after page.

7. Zen and the Art of Motorcycle Maintenance
What’s a way to make Buddhism palatable to Americans? A metaphor to tuning and gasoline burning and steel of course. An academic with a shadowy antagonist and internal struggle.

8. Grapes of Wrath
A bit fiction a bit history. It’s a story about getting by in America. And not the American Dream, but the uncaring one that’ll crush you if you have no money.

9. Cat’s Cradle by Kurt Vonnegut
I always heard this was a story about Ice-9 that could destroy the planet. It’s not. It’s about Bokononism, which is the coolest religion I’ve heard of. Its holy book begins, “All of the true things that I am about to tell you are shameless lies.” And it only gets better and makes more sense from there.

10. Refactoring by Martin Fowler
I wanted to put one professional oriented book here. Object oriented programming isn’t in fashion as much as a few years ago, but this is the best book on the topic. He doesn’t explain much. The book is pages of actual example after example. Each technique uses object oriented methods to alter one idea into another form. And then another technique alters it back! The idea is that figuring out which is better in your situation is up to you and your analysis of the details.

Raspberry Pi Apple Airplay

At home I have an audio receiver that has trouble with some of the local FM stations. This is important as I frequently prefer NPR to whatever reality show is on the TV airwaves. I’ve looked at buying digital FM device to get the signal, but that technology never really took off and I couldn’t find anything that wasn’t made for a vehicle. And then it hit me that rather than broadcast, all the audio I want (including podcasts and other non-live audio) is available on a unicast network as well. I just need my audio receiver to connect to the internet.

I followed this tutorial. It is an impressive tutorial in that your grandmother could follow the steps and not get lost. If you’ve used linux before you’ll scroll through a lot of introduction to reach the package names to apt-get.

So now I get my audio: NPR -> Internet -> iPhone (app) -> Raspberry Pi -> HDMI -> Receiver -> speakers. The digital signal is much clearer than the FM I was using.

Note that I’m using HDMI. The analog audio out on the Raspberry Pi isn’t recommended. I’ve tried using it before, and it just isn’t that good. They saved on the design by not including a real analog output but simulating one, which is good for alert noises or some other applications, but for music or even news leaves a lot to be desired. Options include either using HDMI so the digital to analog happens on your TV or receiver that has better electronics or a USB audio output can achieve similar results.

Engine Installation


So the recommended way to put this engine in, based on knowledgeable people and GM’s instructions, is to take the car body off. The method is a lot of work, but does makes for a cool photo.

Engine Build Progress 2


It’s really starting to look like an engine


Engine Build Progress

I took some pictures while putting pistons in my engine block today.

engine_standengine_with_crankengine_empty_cylinder    engine_ring engine_rings engine_endcap engine_upper_bearingengine_compressorengine_inserted

W500 and the ATI FireGL V5700 on XP64

There is a way to get the ATI FireGL V5700 drivers onto Windows XP 64 bit on the Lenovo W500. It wasn’t easy…

Lenovo doesn’t package drivers for this chip, as far I could tell. But HP does make XP64 drivers. The problem is that they won’t install, unless you alter some files.

Find the ATI video drivers for HP’s EliteBook 8530w. Try to install them. This won’t work, complaining about system requirements.

Go to c:\SwSetup\SP44851\Driver and edit all the INI files you can find here. Change any occurrence of the string 3604103C to 212717AA (I think including in the XP64A_INF directory). Then run Setup.exe and the driver install takes.

I found that after a restart Windows reset the driver to Microsoft’s default VGA. Go to the device manager and do a rollback to the ATI driver and it sticks.