Category Archives: Others

Build an iOS App: from Beginning to Abandon

Background I created a static website that saves couple pictures, namely Infinite Love, on Valentine's day 2021. As it is static, adding content requires modifying the source code. To make it more convenient, I decide to create an iOS app. I am quite familiar with web development, however, it is the first time I learn to write an iOS app. In this tutorial, I will introduce how to create an iOS application from scratch. Note: The tutorial is based on macOS 12.4, XCode 13.4.1, and iOS 15.5. Set up Environment in XCode Open Xcode and either click “Create a new Xcode project” in Xcode’s startup window, or choose File > New > Project. In the template selector, select iOS as…

Continue Reading

Use Internet Explorer in Windows 11

Background With Windows 11, Microsoft has removed several outdated apps and features, including the long-hated Internet Explorer. However, some proprietary apps and legacy sites still require Internet Explorer functionality to run. Several posts suggest using the IE mode in Microsoft Edge. However, it is not working for some websites, such as the Talent Introduction System for Shenzhen. Solution Step 1. Create a VB script, named ie.vbs with the following content. Step2. Run the VB script, and the Internet Explorer will be launched as expected.

Continue Reading

Accelerate WordPress with CDN and Cache Servers

It has been a long time since I last wrote a blog post. In the past few days, I updated the architecture of Infinite Script to accelerate the speed for Chinese users. In this article, I share the new architecture of our website with you. Optimizing a CDN for Static Content Delivery Static content does not change over a period of time. If it does change, the changes are predictable. Static content includes images, CSS sheets, JavaScripts, and PDF files. Because of this, CDNs can cache a copy of the content at their edge servers. They can then serve it whenever a client requests it. CDNs are best at optimizing the delivery of static content from edge servers to users. Therefore, we use…

Continue Reading

Get Root Privileges Using CVE-2017-16995

NOTE: PLEASE DO NOT USE IT TO ATTACK OTHER COMPUTERS. CVE-2017-16995 has been fixed before. But it is broken again in many kernels of Debian and Ubuntu distributions, ranging from version 4.4 to 4.14. It causes an arbitrary memory read/write access issue was found in the Linux kernel compiled with the eBPF bpf(2) system call (CONFIG_BPF_SYSCALL). The issue could occur due to calculation errors in the eBPF verifier module, triggered by user-supplied malicious BPF program. An unprivileged user could use this flaw to escalate their privileges on a system. Setting parameter "kernel.unprivileged_bpf_disabled=1" prevents such privilege escalation by restricting access to bpf(2) call. Steps to Reproduce Create a file named upstream44.c and paste the following code to it. Then, compile it and make it executable: If…

Continue Reading

Lua in a Nutshell: A Quick Tutorial for Lua

I'm reading source code written with Torch these days. Torch is a well-known deep learning framework written by Lua. So I summarize the grammar of it and provide a quick tutorial here. Run As we know, Lua is a C-like language. Therefore, it is case-sensitive. The following code outputs "Hello World" with Lua. Note that the semicolon at the end of a line is optional, like JavaScript. You can use the interrupter of Lua in the command line: Also, you can run a Lua script with a file in the command line: Grammar Comment Variables The numbers in Lua are all doubles with 64 bits. And you can use the following expressions: You can use both double and single quotes for…

Continue Reading

Install QQ/TIM in Linux with Wine

This tutorial introduces how to install QQ/TIM in Linux with Wine, which had been tested on ArchLinux with Wine 2.4. Prerequisites Before starting, you need to get the latest Wine. I'm not sure whether QQ/TIM can run on a lower version of Wine. In ArchLinux, you can easily get the latest Wine using the following command: However, in Debian, you need to install Wine with some more steps. You can see this tutorial. Then, you need to install a helper of Wine, Winetricks. Winetricks is a script to download and install various redistributable runtime libraries needed to run some programs in Wine. To install Winetricks, you can use the following command: After that, we need to fix some problems manually caused…

Continue Reading
Contact Us
  • Tencent AI Lab, Shenzhen, China
  • cshzxie [at] gmail [dot] com