Categories
Site Info Software development Web

Moved the wordpress host again

Reading Time: < 1 minute

I moved the host of this WordPress website again. It’s on a smaller Droplet. There was some AI bot spike recently (since mid-Dec), and also the previous droplet has been there about 10 years ago. It’s time for a cleanup etc.

More details are forthcoming: as practical as possible, obviously.

Note this also marks my 20 years of blogging.

Categories
China gadgets iOS iPhone app Life Life Tips Technology Travel Web

VPN software I have used personally

Reading Time: 3 minutes

This article can also be read on Medium. But this blog post has all the up to date information, while the medium.com article doesn’t get regular update.

Sometimes called 科学上网 in CHN

Mac:

VPN Prime – Unlimited Proxy 4+

Update early June 2025, the free plan appears stopped working in my most recent CHH trip.

Update June 12, 2025: I purchased the paid plan, and it works (again I found a sever that worked). Considering switching from the below iOS app to this Mac app for my VPN needs.

Update 06-13-25: sometimes the connection will get reset and get lost. In that case, I tried to connect to another server and it usually works.

Update 06-14-2025: I felt more confident using this app. I think this is a viable option if I need to work from CHN (right now my employer doesn’t allow that).

iPhone, iPad

VPN – Super Unlimited Proxy 4+ (Update June 2025, it still works, I have the premium sub now, and I know not all servers work, and I have my fav server now. Email me if you like to know 🙂

Update 06-12-2025: I noticed this app doesn’t always work flawlessly. At least in the two hotels I stayed, it didn’t like the Hotel WiFi. I don’t know how the app works exactly, but during the connection process, it seems dropping the WiFi and used the cellular data, which would cause the connection issue.

Update 06-17-2025: again, this app works flawlessly when I am in the US. Now I tend to think due to its popularity, China blocks this app’s use 🙁

(Original) Note: both apps have free versions, and both have add-ons that are available for purchase. I verified them on my trip and they work for the most part, iPhone app sometimes takes a few tries to get going. The Mac app works out of the box most of the time.

Cell phone international roaming

I know T-mobile used to have it. Mint Mobile has international pass too: 1 day, 3 day and 10 day. The device can go to outside world just like the VPN would. One may have to check her/his current cell phone carrier and see there is such a program or a pass.

Cell phone roaming has its own advantage, for example, we can order food or ride-share cars as those apps are usually available on the smart phone and they usually require internet connection. But in the case of China, ideally one may want to get a local phone number, as it’s needed by the meituan and didi chuxing apps.

Other use cases:

Netflix (shows from other country etc.)

Organizations sometimes block certain social media websites: this can happen in the western countries too.

Other software

Nord VPN: paid. It takes some effort to get it working in CHN. It seems all the default servers are blocked. Had to open a ticket to get alternative server names (ip address etc.), try and error, to got it working in year 2023. Retrieved a list during most recent trip too (summer 2024), haven’t tried it out as I found the two solutions above are good enough.

Default setting for Nord VPN is working when in the USA. That’s true for the free versions for two apps above too.

(Update 01/03/2025) I found this bug a while back, the issue was when my phone is on the Mobile Data network (not Wi-Fi), and when the VPN was on via Wi-Fi before the cut over, it seems Nord VPN has difficulty connect to VPN. Took me a while to understand why I lost internet connection. I am ditching this app (and software) now – not solely because of this. It’s just another annoying thing or bug for me. I noticed it didn’t work out of box on the public K-12 school’s public Wi-Fi – had to use VPN – Super Unlimited Proxy 4+ (the free version: I may consider support them later once my Nord VPN subscription expires).

(Original post July 2024) Open VPN (I set it up on my own $DGCN server), but it stopped working for me in CHN in my 2023 trip. Bought Nord VPN in that trip too. Refer to this Chinese article if you want to learn more about OpenVPN or setup your own OpenVPN server (note it still works outside CHN’s GFW).

PS: you may want to take a look at eSIM app for travel.

我用VPN主要是因为我的personal email 是GMail,还有我有时会听YT/YT Music上面的歌。下面是谷歌中文翻译。

======

这篇文章也可以在 Medium 上阅读。但这篇博文包含所有最新信息,而 medium.com 上的文章则没有定期更新。

中文有时称为“科学上网”,或者叫梯子:可能是从“翻墙”那里衍生出来的。

Mac:

VPN Prime – 无限代理 4+

更新于 2025 年 6 月初,免费套餐似乎在我最近的一次 CHN 之旅中停止了工作。

更新于 2025 年 6 月 12 日:我购买了付费套餐,现在可以使用了(我又找到了一个可以正常工作的服务器)。我考虑从下面的 iOS 应用切换到这个 Mac 应用来满足我的 VPN 需求。

更新于 2025 年 6 月 13 日:有时连接会被重置并丢失。在这种情况下,我尝试连接到其他服务器,通常情况下可以正常工作。

iPhone、iPad

VPN – 超级无限代理 4+(更新至 2025 年 6 月,它仍然有效,我现在有付费订阅,我知道并非所有服务器都能正常工作,而且我现在有我最喜欢的服务器了。如果你想知道,请给我发邮件

更新于 2015 年 6 月 12 日:我注意到这个应用程序并不总是完美无缺。至少在我住过的两家酒店,它不如酒店的 WiFi 好用。我不知道这个应用程序的具体工作原理,但在连接过程中,它似乎会断开 WiFi 并使用蜂窝数据,这会导致连接问题。

(原文)注意:这两个应用程序都有免费版本,并且都有可购买的附加组件。我在旅途中验证了它们,它们大部分时间都可以正常工作,iPhone 应用程序有时需要尝试几次才能启动。Mac 应用程序大多数时候开箱即用。

手机国际漫游

我知道 T-mobile 以前有这个功能。Mint Mobile 也有国际漫游通行证:1 天、3 天和10天。该设备可以像VPN一样连接到外部网络。用户可能需要检查当前的手机运营商,看看是否有这样的程序或通行证。

手机漫游有其自身的优势,例如,我们可以订餐或叫车,因为这些应用程序通常在智能手机上可用,并且通常需要网络连接。但在中国,理想情况下,用户可能需要获取一个本地电话号码,因为美团和滴滴出行等应用程序需要这些号码。

其他用例:

Netflix(其他国家的节目等)

一些组织有时会屏蔽某些社交媒体网站:这种情况在西方国家也可能发生。

其他软件

Nord VPN:付费。在中国使用需要一些时间。似乎所有默认服务器都被屏蔽了。不得不提交工单获取备用服务器名称(IP地址等),反复尝试,最终在2023年成功恢复。在最近的一次旅行中(夏季)也获取了一份列表。 2024),我还没试过,因为我觉得上面两个方案已经够用了。

Nord VPN 在美国默认设置下可以正常工作。上面两个应用的免费版本也一样。

(更新于 2025 年 3 月 1 日)我之前发现了这个 bug,问题出在当我的手机连接移动数据网络(而非 Wi-Fi)时,如果在切换之前 VPN 是通过 Wi-Fi 开启的,Nord VPN 似乎很难连接到 VPN。我花了一段时间才明白为什么我断网了。我现在正在放弃这个应用(和软件),不仅仅是因为这个。这只是另一个让我恼火的问题或 bug。我注意到它在公立 K-12 学校的公共 Wi-Fi 上无法开箱即用——不得不使用 VPN——Super Unlimited Proxy 4+(免费版:等我的 Nord VPN 订阅到期后,我可能会考虑支持他们)。

(原帖)Open VPN(我在自己的 $DGCN 上设置了它)服务器),但在我2023年的中国之行中,它失效了。那次旅行我也买了Nord VPN。如果你想了解更多关于OpenVPN的信息,或者搭建你自己的OpenVPN服务器(注意,它在中国的GFW之外仍然可以使用),请参阅这篇中文文章。

Categories
Business Politics Technology Web

I am leaving Twitter

Reading Time: 2 minutes

(Update 11-20-2024) Here is my Bluesky social profile. || I think I may need to go back to Twitter to back up some data, from time to time. I did a backup in last year but I think it was a big json file. Two things I may miss: one is health/fitness tips; another one is stock related (which I think as a more serious investor, I should try to ignore it so called #finTwit.

(Original) After 15 years, I mean the social media, not a job or something. I never worked for them. Although looking back I should have joined them back in 2008, or at least trying to apply for a job there, and get some stocks.

Why I am leaving:

In two words: Elon Musk. Elon created a lot of controversies during his about one year long ownership saga, from his public proposal to buy the company, after secretly building up a stake, to fire lots of people (which he may have a valid point, note a few big tech companies followed too, such Meta), to not paying bills for the Twitter SF office.

But the latest one: labelling NPR as “Government-funded Media” is the last straw for me. I googled “how much government fund npr is receiving”, and here is the answer: “NPR gets roughly 1-2% of its funding from the federal government, while the majority of its funding comes from corporate sponsorships and fees charged to local radio stations, according to the New York Times.” (source: NYTimes via Forbes). This is a cheap shot from Elon in my opinion.

Note NPR is one of my favorite news source, and I remember the days (more than 20 years ago), I listened to “Morning edition” from KWMU (now STL Public radio) on my morning commute. In addition to getting news, I improved my English listening comprehension greatly from listening to them. Other programs I listened frequently over the years: The Diane Rehm Show; MarketPlace; All Things Considered etc. In recent years, Some nights when I could not fall into sleep, I also listened to the BBC World Service via STL Public radio: it has a variety of topics. In the US, NPR may be considered a bit liberal or progressive (as opposed to the Fox News), but it’s mostly politically neural (similar to PBS). A fun fact, while a lot of western media are blocked in China, NPR is not (at least not now as of April 2023).

On the social media front, I will continue to be on FB (Instagram), LinkedIn, and YouTube. On blogging side, I have this stlplace.com blog website as well as medium, and substack. Btw, I posted some of the blog post here to the medium and substack.

Just notied that I have a post on Twitter about 6 months ago.

PS: as of 04-22-2023, it appears Twitter removed the “government-funded” label for NPR on Twitter. But it seems a bit late, at least for now, to get NPR back on Twitter, per this thread. Meanwhile, I am thinking back to Twitter for my own benefit. Consume or tweet in moderation.

PS 2: 06-05-2023, I bought the Twitter Blue today.

Categories
Software development Technology Web

Roblox Outage

Reading Time: < 1 minute

(Update 4: 01-21-2022) Roblox published the root cause here.

(Update 3: 11-03-2021) I came across this website that shows nice stats for Roblox (I noticed downdetector only shows 24 hours history by default, not sure how to customize it). I vaguley recall I also see a github repo that can scan the roblox APIs, but I no longer see it when I tried to look through “roblox status” from twitter.

(Update 2: 10-31-2021) It appears the service is back as of 4:45 pm Pacific time, per Roblox status. Also the CEO blog post, and an article from Variety.

(Update 10-30-2021) Now I think that Roblox is likely hacked, unfortunately. The lack of transparency, as well as the length of outage are my main factors thinking they were hacked, btw. Now their official website says:

“We’re making things more awesome. Be back soon.”

Btw, I had a twitter thread going on this topic too.

(Original 10-29-2021) Roblox has a massive outage since yesterday, and it seems the impact is still going on as 11:35 pm US central 10-29-2021.

Downdetector :

What happens when Roblox is down?

Roblox status page

======

October 28, 2021 4:00PM PDT[Investigating] Many player experience are impacted.

stay tuned.

October 28, 2021 8:44PM PDT[Identified] We identify the root cause as internal system issue and work on the fix.

October 29, 2021 7:21AM PDT[Identified] We are actively working on recovery. Some users started to have limited access.

October 29, 2021 12:48PM PDT[Identified] The team continues active work on full site recovery.

======

Categories
Software development Technology Web

API Gateway

Reading Time: < 1 minute

Kong

Kong is a cloud-native, fast, scalable, and distributed Microservice Abstraction Layer (also known as an API Gateway or API Middleware). Made available as an open-source project in 2015, its core values are high performance and extensibility.

Actively maintained, Kong is widely used in production at companies ranging from startups to Global 5000 as well as government organizations.

CA Layer 7 / API Gateway: was owned by CA Technology, formerly Computer Associates. Sold it to Broadcom the chip company in recent years. It used slightly older technology as Kong, apigee and Okta.

documentation:

architecture:

Categories
Software development Technology Web

Production, production, production

Reading Time: 3 minutesI first learned the “production environment” in 2010, when I worked as contractor for a major railway company. Before that I was mostly in CAD software development and consulting environment the word “production” did not come often. To be precise at Siemens PLM/UGS as developers, we did have access to various production releases and did validation for bug and bug fixes from time to time. Our code goes to release per year or per quarter. But production is not as significant as the maintenance releases, so this is the world of shrink wrap (engineering) software world.

Came to the world of business applications, or web. The first thing I learned is it’s not a good idea for newbies to touch production data. Or for that matter, not good idea for devs to touch that either. Very few people has production access, besides admins (database, web), the few people have access are usually product owner, business analysts, or product support people. And fast forward 5, 6 years, I became one of the latter. This is a privilege. Something I learned over past year:

1) Start from baby steps: e. g., if we want to update 1000 records: start from one or two records, do the update, validate and if everything looks good, do the mass update. This goes th way of divide/conquer too: so for example, if I need to delete 3 or 4 million records in one script (one run), I know it will be a long operation, and I don’t want the operation hang or fail in the middle. So what do I do? I divide the deleting operation into a few, each operation deletes half a million, much more manageable, and I will get the it complete much faster or get feedback much faster.

Categories
Site Info Software development Web

Moving wordpress from shared host to aws ec2

Reading Time: 2 minutesI did an experiment recently trying to move my wordpress website from a shared hosting site to Amazon aws ec2 micro instance (t1). The migration was mostly successful, I did not make the move eventually due to some technical and non-technical reasons. Nonetheless, I would like to share some of the lesson I learned from this process. I followed this blog post form smashmagazine as a blueprint for “moving wordpress”. Note I already have ubuntu installed on ec2, and has setup keys for my laptop.

1) Setup wordpress on new host. This is the link I followed to setup wordpress on ubuntu on my aws ec2. Another useful article is here.

2) Upload files: I used FileZilla (SFTP) for uploading the files. Here is the link regarding setup keys. Note the file permission is also very important to make wordpress work, which is especially important when moving the sites. More on this later.

3) File permission, one thing I noticed quickly is I don’t have any writing privilege after moving, e.g., update plug-ins etc. Did google quite a bit, and tries to change the file permissions using FileZilla. No luck. Eventually I read this from wordpress official doc. Quote:…(a) file ownership: all of your WordPress files must be owned by the user under which your web server executes. In other words, the owner of your WordPress files must match the user under which your web server executes. The web server user (e.g., “apache”, “web”, “www”, “nobody”, etc.) is not necessarily the owner of your WordPress files…

I did “ps -ef|grep httpd” at my ubuntu server, and find the user for apache web server (not “root”). And changed the file owner to this user (via “chown” command).

4) MySQL server crash: I found this happens quite often (as often as once every 3 days). Turns out to be a memory problem for the t1 micro instance and apache web server and mysql fights for the memory, eventually mysql lost. The solution I found is add virtual memory to the system, and reduce the memory requirement for mysql in config file. Eventually I was able to have mysql run as long as 13 days without shutting down. Not ideal, but still meaningful improvement (13 days uptime vs 3). Another idea, people talked about is use a lightweight http server such as this one.

5) MySQL database migration. Found out for large database, php export will not complete, and will end up with some junk html in the database file (.sql), it will fail during import. The workaround is do the export and import in the mysql command line. But I still have one problem with database, it appears the Chinese character got lost during this process. This problem along with the mysql server problem mentioned above, and the relative higher cost of AWS compared to shared host, made me decide to not switch at this time.

Other links:
Setup php/mysql, and phpMyAdmin.

Craig Emerson has an up-to-date article on this topic WordPress CloudFront CDN Setup Using W3 Total Cache.

Categories
Technology Web

Set up Apple TV with AT&T u-verse

Reading Time: 2 minutesIt seems the wifi router comes with AT&T u-verse does not work with Apple TV. Apple TV could not find the wifi network from the build in u-verse wifi router. I found one workaround, that is to turn off the build in Wifi, use an old wifi router (D-Link DI-524) for Wifi instead. But there is still problem with the mirroring from iPad to Apple TV. Since I still have my previous LinkSys wrt54g router, I set it up as second router behind the DI-524, and connecting both the Apple TV and iPad to wrt54g. That worked. Another side benefits is wrt54g is a newer/more powerful router, and could broadcast wider range. So in a summary the architecture from internet to apple TV is something like below.

u-verse modem (wifi off) => D-Link DI-524 router => LinkSys wrt54g router => Apple TV/iPad

You may wonder why I add this extra D-Link DI-524 old router. The problem was I could not easily connect LinkSys wrt54g (the newer router) to u-verse modem. So I used the old router as a bridge. If someone has idea to make it work without this extra router, please let me know. (Email: minjie DOT xu AT gmail DOT com; or twitter @stlplace)

There is another problem with setup AT&T u-verse which is not related to Apple TV. The problem is when creating new account at their web site, they prompt for secret question/answer, it appears they don’t take any space in the answer. It was a programming error (web page text field validation) in my opinion, since I have done some web programming lately. The workaround is not to type any space. Simple enough.

This is also after using cable internet for about 8 or 9 years, I am switching to AT&T. I was using their DSL before switching to cable. The main reason is their service is cheaper, another factor is the cable had some connection issues lately.

(Update 05-07-2015) Came across this post regarding how to make direct connection from linksys wrt54gl to uverse router. I tried it but was not successful. It does not like the new local ip address 10.0.0.1 for linksys. But the theory there (conflicting local ip address between uverse and wrt54gl) seems holds, as I saw people discuss similar problem on linksys support forum.

Categories
Site Info Web

stlplace.com was hacked and restored, plus some thoughts

Reading Time: 2 minutesI found out this site was hacked yesterday evening, as I saw the loading of site on Safari was slower than usual. It also shows incorrect theme, more like a plain theme. With the admin link redirect to spammer site. I decided to tackle it right away. I recall about one year ago something similar happened to this site, and google webmaster tool told me about it. I was able to remove the offending files/directories, by following the recommendation set out by google and some other wordpress sites.

This time I made an almost fatal mistake, during deleting some of the files in wp-includes, I accidentally deleted all the useful php files there. Panicked, I used both the website restore tool, and the import feature of wordpress (mojo marketplace), to no avail. The symptom of the problem was I could not login, and it shows blank page when I login via the wp-admin or wp-login.php after taking my credential. And I can only see the pages at uudaddy.com (I could not log in there either).

I filed for help at the hosting company. But I still feel helpless as this site has about 9 years of my blogging and uudaddy.com has my last 4 years of blogs. Fortunately I was able to find this wordpress help page about updating wordpress, and fix internal server error by deactivating the plug-ins. The latter comes only after I gained some web dev experience lately, knowing more about error 500 🙂

So long story short, I was able to restore all the blogs (those two plus my wife’s happy mandarin.com) by the following:
1) Restore .htaccess file to avoid the redirect to spammer page;
2) Restoring the wp-includes and wp-admin page: upload zip file, extract; in the wp-content directory, I renamed plugin directory as plugin.SAV (this way it deactivates all the plugins);
3) Run the wordpress update as soon as I can log in.

I also backed up the MySQL databases for stlplace and uudaddy, and backed up those two blogs to wordpress.com (this one and this one). I understand blogging itself is a declining trend, and it’s probably not easy for small web hosting company to defend against hackers like Google/Amazon/Wordpress do. That’s why I am also evaluating whether to move to wordpress.com or Amazon EC2 (self hosting). It’s a bit emotional decision as I have hosted this site for 9 years, but I need to consider both my time, the cost of hosting, etc. I will make a decision on this shortly. Meanwhile check out the new blogging sites I mentioned above, in which I will blog both about software development and raising kids.

Categories
Software development Web

Spring MVC, Maven

Reading Time: 2 minutes

I’m back to Java world again, after about 2 years stint on Objective-C and iOS development. I’m not new to Java land, as I have done Java work between 2010 and 2011, for 2 years.

My personal learning experience:
JSF => Spring MVC (jspx is still very similar): I have done JSF, which is a component based Java web framework, we know Spring MVC is different: it’s based on REST, GET, POST, and mapping etc. Luckily I have done RESTful web services in my past work, and used those services from iOS side. Another new thing at client side is javascript, and jQuery, I recall I used Richfaces (extension of JSF) for the AJAX, they are not javascript though.

IBM web sphere/Rational application developer RAD, CVS => Spring STS, SVN, note both RAD/STS are based on Eclipse: for the application server, and development IDE, the transition is easier such they are very similar.

Ant (build.xml) => Maven (pom.xml): this is a big change, actually. Maven has some learning curve, also with the Nexus repository. My only past experience using Maven: use Netbeans to open the project (pom.xml file). I found the following two tutorials helpful.

Tutorial on Maven:
http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

http://maven.apache.org/guides/getting-started/

Spring MVC: using the Get Started Guide from the dashboard, or the link here.

Obviously, learn as much as possible from the work itself, from coworkers etc. The good thing is my current work place is one of the most collaborative places I’ve ever worked. This makes my life a bit easier 🙂

Repository, Nexus (Sonatype), JFrog Artifactory

JFrog intro: quick youtube video

Comparison between Nexus and JFrog

Sonatype Nexus

Josh Long A Bootiful Podcast : Hi, Spring fans! In this installment Josh Long (@starbuxman) talks about ten years on the Spring team, reactive support, and RSocket support in Spring Integration, his upcoming appearances at SpringOne and his upcoming YOW! workshop on Cloud Native Java, and then talks to JFrog’s Baruch Sadogursky (@jbaruch) about continuous delivery, DevOps, Java artifact management Artifactory, and more.

General questions about JFrog artifactory