Category Archives: Miscellanea

Where you can find me online

Last week, Elon Musk bought twitter.  As soon as the deal was complete, he fired the chief executive, chief financial officer, and head of legal policy, trust, and safety.  That last one was what worries me the most.  I have been mirroring my tweets over on mastodon for a while now.  I’m planning on staying on twitter for the moment but mastodon is a good escape hatch if things get really bad. Continue reading Where you can find me online

Hide My Ass VPN sucks for app testing

This past July, I found myself looking for a way to test a web application from behind “the great firewall of China” (aka Golden Shield).  The problem is that I can’t test that something works in China if I’m not in China.  My first thought was to use Nord VPN to connect to a VPN server in China but the closest that Nord offers is Hong Kong.  I did a little light investigating and found that Hide My Ass VPN claims to have 4 servers in Beijing.  After paying $59.88 for an account, I was ready to start testing.

Unfortunatly, it looks like HMA VPN is doing some shinanigans to make it look like your traffic is originating from the country without it actually originating from that country.

When you use their client, it shows that you are connected using an IP that is in China.  You can use IP Chicken to prove that it is your new public IP address and you can use a service like MaxMind GeoIP or IP Location Finder to prove that IP address is in Beijing.  The problem was that despite that, the Golden Shield limitations were not happening.  I could still visit things like Google and Twitter and see things like photos of the Tiananmen Square massacre.

The first thing that came to mind was to use nmap to trace the path between the remote server and my computer.  It does that by sending packets to the server with decrementing TTL, in an attempt to elicit ICMP time-exceeded messages.  That didn’t work great because the result didn’t show my public IP.  My next idea was to use traceroute since instead of decrementing the TTL, it increments it.

Since the traceroute goes from where your computer is to the target server, the first hop should be your public IP address but in this case, it isn’t.  So, where is 5.62.34.110?

 

It looks like for some reason, when you select China, you get a Chinese IP address but the traffic actually emerges onto the internet in Singapore?!?

I have no idea why this is happening but when I asked them, they said:

The most I can do to show you we are indeed telling you the correct information is to point you to the database of the official registry RIPE NCC:
https://apps.db.ripe.net/search/query.html

RIPE NCC is one of five RIRs worldwide coordinating and maintaining the information databases about the registered IPs and operating under IANA (Internet Assigned Numbers Authority). You can also confirm these IPs are allocated to RIPE by looking them up here: https://www.iana.org/whois.

I understand that the inner working of the internet is not your prime concern, but rather the websites recognizing your location correctly. Still, I just wanted to demonstrate that we have taken all the necessary actions on our end. At the moment, incorrect IP details appear, but they appear less and less frequently as other websites conduct updates of their databases.

So, they aren’t denying that they are faking the traffic.  They are just saying the IPs are registered in China (which doesn’t help).

I still need to figure out if there is a legitimate way to test if I site works in China.  Have a suggestion?  Feel free to drop a comment, below.

Heroku eliminated free plans. Now, what?

Last week, Heroku announced that they were killing off their free teir.  I have been using it off and on ever since a creating an OWASP Juice Shop instance on it at That Conference, a few years ago.  Recently, I used it for my How to deploy a Laravel app example and an example on Laravel Socialite that I don’t seem to be able to get into a presentable shape.

So, what’s next?  You could keep using Heroku and just pay for it.  Render still has a free tier and there are a lot ways it is better than Heroku.  I have used Cloudflare Workers for some stuff.  That is free and works well.  If JAMstack is your jam, there is Cloudflare PagesDigitalOcean Functions has a free alotment (but I don’t understand the pricing terms at all).  Google Cloud has a free offering and I hosted this very blog using it for years.  I don’t think that I ever paid more than $3/mo for the VM while I was using the service.  My employer bought me a Visual Studio Professional subscription that includes a generous monthly Azure credit but even if you don’t have that, Azure has it’s own free offerings.

The big benefit of Heroku was the fact that you could easily run server-side code and attach it to a PostgresSQL database.  I liked the ease of installing things like Laravel on Heroku.  If you are looking to do that elsewhere there isn’t a great answer (maybe Forge?).  If your jam is Node or vanilla PHP, I would say that you should check out Render or Cloudflare Workers.

Like a service that I didn’t meantion?  Have an opinion one way or the other?  Please drop a comment, below.

Free AI-Driven Profile Pictures

I recently found out about something called #newprofilepic (that appears to be the name of the site).  When you click on their privacy policy, you are taken to pho.to, which advertises their use of “smart algorithms” for “simple photo editing”.  I figured that I would give it a swing and it turned out pretty well.

I’m not too sure how they pay for doing what they do but I like the result.

I have made 83 kiva loans in 72 countries and I’m not sure what to do next

A decade ago, I watched a ted talk about Kiva and made my first kiva loan.  The first few loans were kind of random but I eventually settled on the goal of giving a loan in every country.  Kiva officially works with lenders in 76 countries and I typically gave one loan per month, so it took a while but I eventually reached the point where I had made loans in 72 countries.  A few years ago, they added something where you can list what countries you had and hadn’t lent to, yet.  This is my list:

There aren’t any potential borrowers in those countries, though.  Do I set a new goal?  Do I go back to random?  If you have a suggestion, feel free to drop a comment, below.

This blog is 10 years old!

It has been exactly 10 years since I posted Changes on this website.  This blog has never had a singular focus.  It has always just covered what I am interested in at the time.  So far, I have published 988 posts (including this one and a few that are scheduled out into the future).  I might need to commemorate a 1000th post in the near future. 🙂

Here’s hoping for another 10 years of randomness?

The summer 2021 blogging forecast

Over the past few weeks, I have mainly been posting content related to the State Parks App and work on that project is not stopping at all but there is some additional content that I really want to work into the weekly schedule.  Last week, I posted an update about my preferred coding tools and next week, I am posting something about the Vue CLI and Webpack.  In addition to that, I also want to revisit MongoDB after ignoring it for a few years (and not just because I have a future need).  After that, I also want to try to work some non-vue-related content in (maybe Alpine.js or Angular).  You can expect some more content related to the State Parks App after that.

It is safe to say that my two posts per month plan is shot to hell, at the moment.  I am still limiting myself to a code-related post on Thursdays and non-coding posts on Tuesdays, though.

 

[ Cover photo by Mark König on Unsplash  ]

Five years at UWM

On June 6 of 2016, I started working for the University of Wisconsin, Milwaukee again.  It genuinely feels like I just started yesterday.  When I started at UWM, I had been writing ColdFusion code for a decade and I was looking for a little bit of a reset.  I was explicitly looking for something that had nothing to do with CFML.  These days, I am primarily using Laravel / PHP on the backend and Vue.js / javascript on the frontend.  Before I came back to UWM, I was honestly getting a little bored.  This job definitely has not been boring.

In the past five years, have also been to China, Morocco, England, Germany, Switzerland, and I returned to France.  I’ve been to Laracon, That Conference, and CypherCon.  I have upped my front-end development game and I think that I have become a lot more confident.

I can’t wait to see where I am in another five years.