[{"content":"This post records changes made during the development of this blog.\n2021/8/1 Migrated posts from the old Typecho site. 2021/7/18 Disabled the comment system. 2021/5/3 Added an RSS feed. 2021/5/2 Fixed Cloudflare site analytics. Adjusted the CDNs used to serve assets. Temporarily disabled remotely hosted custom fonts until I find a way to load them without significantly delaying the page. Custom fonts still appear automatically if they are installed locally. 2021/5/1 Updated the styling. Fixed the search button not responding to clicks. 2020/4/29 Added site search. 2021/4/28 Added a comment system. Switched from Disqus to DisqusJS to make comments accessible in more regions. Added Cloudflare site analytics. 2021/4/27 Refined and optimized the theme. Enabled custom fonts. Adjusted the CDNs used to serve assets. 2021/4/26 Changed the theme. Hosted the site on GitHub, Vercel and Cloudflare simultaneously. 2021/4/25 Completed a fresh migration to a Hexo-powered blog. ","permalink":"/en/article/c4442e98.html","summary":"This post records changes made during the development of this blog.\n","title":"Blog Changelog"},{"content":"While deploying the blog recently, I reviewed the Git commands I use. Here are my notes.\nGit branches 1. Clone a repository git clone git@github.com:userName/CategoryName.git 2. Manage branches List branches Local branches Use git branch:\n$ git branch * master The asterisk marks the branch you are currently on.\nRemote branches git branch -r All branches git branch -a Create a local branch git branch [branch name] Switch to a branch git checkout [branch name] Create and switch to a branch git checkout -b [branch name] Push a new branch to GitHub git push -u origin [branch name] Delete a local branch git branch -d [branch name] Delete a remote branch git push origin :[branch name] # The colon requests deletion 3. Commit local changes to a new branch Switch to the branch git checkout [branch name] Stage the local changes git add . Commit the changes git commit -m \u0026#34;Site Updated By Team RubyCore.\u0026#34; Push to the Git repository git push -u origin [branch name] Reference:\nhttps://blog.csdn.net/chen134225/article/details/95475960 ","permalink":"/en/article/638fbc0c.html","summary":"While deploying the blog recently, I reviewed the Git commands I use. Here are my notes.\n","title":"Learning Git"},{"content":"Along with the domain change, the blog has a new name.\nChanging the domain directly in Typecho previously left the site displaying garbled text. I therefore backed up all of the website files and the database and rebuilt the site. All data was migrated successfully without loss.\nThe main reason for the new name is to give the blog a more distinctive identity. There do not seem to be many sites quite like this, and I hope we can learn to code and share what we discover together.\nThere were no major problems during the migration, and most of the smaller issues have been resolved.\nThis time, I will start publishing useful material consistently. Stay tuned!\n","permalink":"/en/article/c0f79b2b.html","summary":"Along with the domain change, the blog has a new name.\nChanging the domain directly in Typecho previously left the site displaying garbled text. I therefore backed up all of the website files and the database and rebuilt the site. All data was migrated successfully without loss.\nThe main reason for the new name is to give the blog a more distinctive identity. There do not seem to be many sites quite like this, and I hope we can learn to code and share what we discover together.\nThere were no major problems during the migration, and most of the smaller issues have been resolved.\n","title":"HydraBlog Becomes WeCode"},{"content":"52pojie is open for registration today, with two registration windows:\n12:00–14:00 and 16:00–18:00\nDo not miss the opportunity. Registration page\nWhen you open the registration page, you must wait ten minutes before a security verification code is generated. Use that time to learn about the forum and read the registration instructions below. Please read them carefully so you can join successfully.\n1. Problems before registration As the saying goes, a website that never gets attacked is hardly a website at all. Almost every registration event attracts attacks that disrupt registration. If attacks reduce the time available, the registration window will be extended as appropriate.\nIf your verification code is rejected, marked invalid, or nothing happens when you submit the form, see this thread for detailed solutions and tools: https://www.52pojie.cn/thread-98585-1-1.html. If those instructions do not resolve the issue, try another computer as soon as possible rather than losing too much time.\n2. Problems during registration Around 5% of users enter an incorrect email address, never receive the activation email and eventually have their accounts removed because they cannot activate them. Many are sure that their address is correct, only to discover a missing letter caused by a faulty keyboard. Use these ten minutes to check the address carefully, more than once. The forum does not allow registration email addresses to be changed, to prevent someone who steals an account from changing its email and keeping the owner from recovering it.\nAround 10% of users have their accounts removed because they never receive the activation email. The forum recommends email services from large providers such as NetEase and discourages overseas email providers. If no activation email arrives, follow the administrators\u0026rsquo; troubleshooting guide at https://www.52pojie.cn/thread-98585-1-1.html. The guide resolves the problem for 99% of users and draws on experience helping tens of thousands of people activate their accounts. On registration days, the mail system may send more than ten thousand activation messages, so many messages wait in a queue. You can also try the resend-activation-email option again at a quieter time.\n3. Problems after registration Around 60% of affected users never log in again after registering, or log in without posting or replying. The forum periodically removes inactive accounts. Logging in to check in or collect rewards does not count as active participation. You need to log in regularly and join discussions by posting or replying. That does not mean one or two replies are enough forever; there is no fixed number of posts that automatically makes an account active. Participate in discussions, reward people who help you with appreciation points and forum currency, and be a helpful member of the community. If you only want an ID to ask others for things without posting, sharing or participating, please do not register. The forum prefers fewer members over inactive accounts.\nAround 15% of affected users lose their accounts because their posts break the rules. New members should carefully read the general forum rules: https://www.52pojie.cn/thread-143136-1-1.html. Posts requesting software cracks, leaving QQ or other contact details, or advertising are dealt with strictly. If you do not respect the rules, the forum may delete your account. The forum also has no official off-site QQ groups or other user groups, so beware of scams.\nAround 10% of affected users lose their accounts for creating alternate accounts. Registering multiple accounts, selling forum accounts and selling resources are prohibited. Accounts discovered doing so will be deleted. Every registration event brings people who insist on creating several accounts anyway. Do not test the forum\u0026rsquo;s ability to identify alternate accounts: its automated detection uses multiple algorithms together with manual investigation.\n","permalink":"/en/article/f4882ee2.html","summary":"52pojie is open for registration today, with two registration windows:\n12:00–14:00 and 16:00–18:00\n","title":"52pojie Opens Registration Today"},{"content":"Updated the playback controls and added a seek bar.\nChanged the background color of syntax-highlighted code to improve readability.\nAdded article word counts so readers can estimate how long a post will take to read.\nOn mobile, tapping the avatar now collapses the sidebar automatically.\nFixed a minor styling issue with the left sidebar in Safari.\nAdded a gallery.\n","permalink":"/en/article/3ffa55c6.html","summary":"Updated the playback controls and added a seek bar.\nChanged the background color of syntax-highlighted code to improve readability.\nAdded article word counts so readers can estimate how long a post will take to read.\nOn mobile, tapping the avatar now collapses the sidebar automatically.\nFixed a minor styling issue with the left sidebar in Safari.\nAdded a gallery.\n","title":"Blog Updates"},{"content":" Last updated: 2018/08/14 17:04 — added GoDNS.\nDomain name The most important part of DDNS is a domain name. It can be paid or free.\nThis example uses a free domain:\nhttp://www.dot.tk/zh/index.html — Free domains for all.\nUsing hydrablog as an example, there are five free domain extensions available. I chose .cf. We will use DNSPod later.\nYou will be redirected to Freenom. Select a twelve-month registration period and enter an IP address in the DNS settings as a placeholder.\nContinue to the next page and register an account or sign in.\nOpen the domain management page and change the domain\u0026rsquo;s name servers to DNSPod\u0026rsquo;s.\nDNSPod configuration Add the domain.\nAdd a DNS record, using the IP address provided in your hosting control panel.\nClients and usage ArDNSPod GitHub project\nArDNSPod is a pure-shell dynamic DNS client based on DNSPod\u0026rsquo;s user API. It can use the address associated with a network interface.\nUsage\nCopy dns.conf.example to dns.conf in the same directory, then edit it for your configuration.\nRun ddnspod.sh directly. It can also be run from cron.\nConfiguration format:\n# Password authentication is not recommended for security reasons # arMail=\u0026#34;test@gmail.com\u0026#34; # arPass=\u0026#34;123\u0026#34; # Token authentication is recommended # Use the format TokenID,Token arToken=\u0026#34;12345,7676f344eaeaea9074c123451234512d\u0026#34; # One domain per line arDdnsCheck \u0026#34;test.org\u0026#34; \u0026#34;subdomain\u0026#34; Author: anrip.\nGoDNS GitHub project: https://github.com/timothyye/godns\ngit clone https://github.com/timothyye/godns.git cd cmd/godns go get -v go build $ ./godns -h Usage of ./godns: -c string Specify a config file (default \u0026#34;./config.json\u0026#34;) -d Run it as docker mode -h Show help Download https://github.com/timothyye/godns/blob/master/config_sample.json and rename it to config.json.\n{ \u0026#34;provider\u0026#34;: \u0026#34;DNSPod\u0026#34;, \u0026#34;email\u0026#34;: \u0026#34;example@gmail.com\u0026#34;, \u0026#34;password\u0026#34;: \u0026#34;YourPassword\u0026#34;, \u0026#34;login_token\u0026#34;: \u0026#34;\u0026#34;, \u0026#34;domains\u0026#34;: [{ \u0026#34;domain_name\u0026#34;: \u0026#34;example.com\u0026#34;, \u0026#34;sub_domains\u0026#34;: [\u0026#34;www\u0026#34;,\u0026#34;test\u0026#34;] },{ \u0026#34;domain_name\u0026#34;: \u0026#34;example2.com\u0026#34;, \u0026#34;sub_domains\u0026#34;: [\u0026#34;www\u0026#34;,\u0026#34;test\u0026#34;] } ], \u0026#34;ip_url\u0026#34;: \u0026#34;http://members.3322.org/dyndns/getip\u0026#34;, \u0026#34;log_path\u0026#34;: \u0026#34;./godns.log\u0026#34;, \u0026#34;socks5_proxy\u0026#34;: \u0026#34;\u0026#34; } Finally, run nohup ./godns \u0026amp;.\nThere are several other ways to start the program; see the GitHub project for details.\nScheduled updates with cron Usage\n*/15 * * * * curl -k -X POST https://dnsapi.cn/Record.Ddns -d \u0026#39;login_email=LOGIN_EMAIL\u0026amp;login_password=LOGIN_PASSWORD\u0026amp;format=json\u0026amp;domain_id=DOMAIN_ID\u0026amp;record_id=RECORD_ID\u0026amp;record_line=默认\u0026amp;sub_domain=SUBDOMAIN\u0026#39; Further configuration\nTo obtain login_token, open DNSPod → User Center → Security Settings → API Token.\nJoin the ID and token with a standard comma (,). The resulting string is the common request parameter login_token.\nTo obtain domain_id:\ncurl \u0026#39;https://dnsapi.cn/Domain.List\u0026#39; -d \u0026#39;login_token=\u0026lt;your_login_token\u0026gt;\u0026amp;format=json\u0026#39; Find the domain\u0026rsquo;s domain_id in the domains field of the response.\nTo obtain record_id:\ncurl \u0026#39;https://dnsapi.cn/Record.List\u0026#39; -d \u0026#39;login_token=\u0026lt;your_login_token\u0026gt;\u0026amp;format=json\u0026amp;domain_id=\u0026lt;your_domain_id\u0026gt;\u0026#39; Find the subdomain\u0026rsquo;s record_id in the records field of the response.\nKeep record_line=默认 unchanged.\nRuby implementation — not recommended for beginners Before running it, make sure Ruby is installed and configured. Search for instructions if you need help installing Ruby; the original post recommends finding a reliable guide.\nFirst, sign in to the domain management page on DNSPod\u0026rsquo;s website and add an A record for DDNS. For example, if your domain is abc.com and you want to use bt.abc.com, add an A record for the desired subdomain. The original instructions refer to a record named abc in this step, while the configuration example below uses bt.\nNext, get the code from GitHub. You can download it through the website, or clone it if Git is installed:\ngit clone git://github.com/TimothyYe/DynDNS.git Enter the DynDNS directory and edit the configuration files Config.rb and Config.yaml:\n# Definition of static strings login_email : \u0026#34;abc@gmail.com\u0026#34; login_password : \u0026#34;1234\u0026#34; your_Domain : \u0026#34;abc.com\u0026#34; your_SubDomain : \u0026#34;bt\u0026#34; login_email is your DNSPod account email, and login_password is its login password.\nyour_Domain is your domain, such as abc.com above. your_SubDomain is the name of the new A record, such as bt.\nSave the changes and start it with:\nruby DynDNS.rb start The script runs in the background and checks your public IP address every five minutes. If it differs from the IP address in the A record, the script updates that record.\nAfter starting it, ping the subdomain to check whether its IP address has been updated to your current public IP.\nYou can also inspect logger.txt, generated in the current directory, for runtime logs.\nThat completes the setup. Wait ten minutes, then use your new domain name to reach your IP address.\nNathosts has been authorized to use this tutorial.\n","permalink":"/en/article/36cb3b.html","summary":" Last updated: 2018/08/14 17:04 — added GoDNS.\nDomain name The most important part of DDNS is a domain name. It can be paid or free.\nThis example uses a free domain:\nhttp://www.dot.tk/zh/index.html — Free domains for all.\nUsing hydrablog as an example, there are five free domain extensions available. I chose .cf. We will use DNSPod later.\nYou will be redirected to Freenom. Select a twelve-month registration period and enter an IP address in the DNS settings as a placeholder.\nContinue to the next page and register an account or sign in.\n","title":"Setting Up DDNS with DNSPod"},{"content":"Why I moved The blog was previously hosted with CoffeeHost. Quite a few friends reported that it was inaccessible or extremely slow, so I decided to move it. After a difficult choice, I settled on HostShare\u0026rsquo;s Hong Kong 103 SSD VPS.\nI had spent more than twenty days on CoffeeHost\u0026rsquo;s Hong Kong CN2 VPS, and the experience was disappointing. Apart from support tickets, I found the owner\u0026rsquo;s attitude unfriendly. I requested TUN/TAP access so I could configure BBR; the purchase page explicitly said it could be enabled. In the end, the response was along the lines of: “What do you need that for? Getting around restrictions? BBR? CN2 is fast enough. Don\u0026rsquo;t enable it…”\nThe routing used Alibaba Cloud in the way many readers will recognize. A server in Hong Kong felt little different from one in the United States. It used OpenVZ, and the hard drive managed roughly 30 MB/s. Even with 3C, the dated specifications elsewhere kept it from delivering its full potential. I would not buy it again, nor recommend it to beginners.\nChoosing an operating system The migration finished today without any major problems. This is my first production deployment on Ubuntu; previously I always used CentOS. I had an unexplained bias against Ubuntu, but after trying it, I fell in love with it. It is excellent, especially its software repositories.\nI do not have a dedicated operations team, and CentOS\u0026rsquo;s community never felt particularly welcoming to me. Ubuntu\u0026rsquo;s community was the biggest reason I chose it.\nFrom my experience running servers on both CentOS and Ubuntu, I slightly prefer Ubuntu, mainly because of that community.\nLeaving kernel versions aside, Linux distributions use the same underlying kernel. The main differences lie in the software they install and how that software is configured.\nCentOS comes from the Red Hat community and is compatible with Red Hat RPM packages. It is commonly used on servers, with server-oriented software installed by default. Apart from the paid Red Hat support, it is broadly similar to Red Hat itself. Packages are generally managed with rpm or yum.\nUbuntu is based on Debian and commonly uses GNOME, with KDE versions available as well. It is a popular distribution with a strong graphical desktop. There are desktop editions aimed at everyday users and server editions. Its attractive desktop, multimedia support and software center make it a popular choice for daily use. On the server side, the differences are less dramatic. Package management generally uses apt-get.\nA final note I hope to settle down and keep the site running steadily. After two years of intermittent work, things finally feel stable.\nMany posts were lost during the migration from WordPress to Typecho, and I do not have the energy to recover them. I will treat this as a fresh start.\nWelcome to the new HydraBlog!\n","permalink":"/en/article/8ac70619.html","summary":"Why I moved The blog was previously hosted with CoffeeHost. Quite a few friends reported that it was inaccessible or extremely slow, so I decided to move it. After a difficult choice, I settled on HostShare\u0026rsquo;s Hong Kong 103 SSD VPS.\nI had spent more than twenty days on CoffeeHost\u0026rsquo;s Hong Kong CN2 VPS, and the experience was disappointing. Apart from support tickets, I found the owner\u0026rsquo;s attitude unfriendly. I requested TUN/TAP access so I could configure BBR; the purchase page explicitly said it could be enabled. In the end, the response was along the lines of: “What do you need that for? Getting around restrictions? BBR? CN2 is fast enough. Don\u0026rsquo;t enable it…”\n","title":"Moving the Blog to HostShare Hosting"},{"content":"Whenever I make a substantial change to the blog, I tend to rebuild it from scratch. What you are looking at now is its ninth rebuild.\nI first got into this two years ago. After seeing plenty of recommendations for GoDaddy hosting, I bought a year and followed a tutorial to set up WordPress. That became my first website. Building a site seemed straightforward, but GoDaddy\u0026rsquo;s Singapore server routed traffic through the United States and was painfully slow. The routing has since become direct. SMTP mail also had problems, so I stopped working on it.\nIn the second year, I bought a BandwagonHost VPS. I learned to install a control panel and gained more control over my site. Overall, BWH was damn good: despite heavy overselling, it remained very responsive. I mainly bought it for getting around internet restrictions, though, and stopped using it after the IP address was blocked.\nThis is the third year. I have also tried Vultr and am currently hosting on CFHOST, which I will not comment on further. I have learned a great deal this year and started solving more problems myself.\nWordPress taught me a lot, but it gradually became clear that its bulk no longer suited my blog. Many features went unused, and, for familiar reasons, access from mainland China was slow. So I switched to Typecho, a blogging system developed in China.\nJust writing.\n","permalink":"/en/article/845cb4e1.html","summary":"Whenever I make a substantial change to the blog, I tend to rebuild it from scratch. What you are looking at now is its ninth rebuild.\nI first got into this two years ago. After seeing plenty of recommendations for GoDaddy hosting, I bought a year and followed a tutorial to set up WordPress. That became my first website. Building a site seemed straightforward, but GoDaddy\u0026rsquo;s Singapore server routed traffic through the United States and was painfully slow. The routing has since become direct. SMTP mail also had problems, so I stopped working on it.\nIn the second year, I bought a BandwagonHost VPS. I learned to install a control panel and gained more control over my site. Overall, BWH was damn good: despite heavy overselling, it remained very responsive. I mainly bought it for getting around internet restrictions, though, and stopped using it after the IP address was blocked.\n","title":"Successfully Migrated from WordPress to Typecho"},{"content":"This is Blake\u0026rsquo;s new website: RubyCore.\nThe blog has also been renamed from WeCode to RubyCore.\nSo far, it has moved from WordPress to Typecho and then to Hexo.\nA fresh start!\n* Now powered by Hexo \u0026 NexT * * Source hosted on GitHub | Pages hosted on Cloudflare, GitHub and Vercel *","permalink":"/en/article/4a17b156.html","summary":"This is Blake\u0026rsquo;s new website: RubyCore.\nThe blog has also been renamed from WeCode to RubyCore.\nSo far, it has moved from WordPress to Typecho and then to Hexo.\nA fresh start!\n","title":"Hello World"},{"content":"I bought a GoDaddy hosting plan today. After comparing a few providers, I picked the cheapest one—ha!\nI also did something incredibly stupid at the time: I deleted a hosting instance before requesting a refund, which effectively meant paying for two.\nMany website owners will already be familiar with GoDaddy. As the world\u0026rsquo;s largest domain registrar, it is often chosen for its speed, service, stability and, above all, low prices. But what is its shared hosting actually like? Here is a look at the reasons so many people choose it.\n1. Fast access Loading speed is one of the most important considerations for a website owner. If a site is too slow to reach, visitors leave, potentially taking revenue with them. GoDaddy\u0026rsquo;s US shared hosting is generally described as performing well for visitors in mainland China, with smooth access rather than pages failing to open or loading very slowly.\n2. Strong stability GoDaddy operates its own data centers. Along with speed, its hardware and software are positioned at a high level. Tests and user feedback have consistently placed it near the top for stability, and it promises uptime above 99.9%.\n3. Affordable pricing US shared hosting is generally cheaper than comparable domestic hosting, and GoDaddy is among the lower-priced providers. Prices vary by plan. Its Economy, Deluxe and Unlimited plans are already inexpensive, and promo codes can reduce them further. With a promo code, Economy hosting can cost as little as US$1 per month (bbs.idcspy.com/forum-45-1.html), a discount of more than 80%. Deluxe and Unlimited plans may also receive discounts of 50%.\n4. Good service In addition to its 99.9% uptime promise, GoDaddy offers an unconditional 30-day money-back guarantee and round-the-clock customer service to help with problems.\nWhether you are an individual, a small or medium-sized business, or an export-oriented business, those strengths in speed, stability, pricing and support make GoDaddy an appealing option.\nOver the past few days, I have learned a great deal and built my own website with WordPress. As a Google fan, I immediately gave it a Material-style theme, which made me very happy.\nAfter using it for a few days, though, I found GoDaddy\u0026rsquo;s Singapore server painfully slow. A traceroute showed that traffic to Singapore was going through the United States; that routing has since changed. I switched to a US data center, but it was still about as slow as a turtle.\nAs a learning environment, however, it served its purpose. It helped me understand some of the basics of configuring a website.\n","permalink":"/en/article/b2b393cf.html","summary":"I bought a GoDaddy hosting plan today. After comparing a few providers, I picked the cheapest one—ha!\nI also did something incredibly stupid at the time: I deleted a hosting instance before requesting a refund, which effectively meant paying for two.\nMany website owners will already be familiar with GoDaddy. As the world\u0026rsquo;s largest domain registrar, it is often chosen for its speed, service, stability and, above all, low prices. But what is its shared hosting actually like? Here is a look at the reasons so many people choose it.\n","title":"My Experience with GoDaddy Shared Hosting"}]