Android 13 introduces Per-app language preferences , which allows you to set different languages for different apps. It is a useful feature in Android, but it’s not available for all apps. Fortunately, we can enable this feature for every app. Enable developer options . Enable USB debugging in developer options. Connect your phone to your PC and run the following command: 1 adb shell…
My OnePlus Ace 3 runs on PixelOS, which doesn’t include the firmware, so I need to upgrade the firmware by myself. Firmware is installed via fastboot and fastbootd, so we need to test them: Connect the phone to the computer Press the volume-down button and power button to enter fastboot Run fastboot devices , and make sure the phone is in fastboot Run fastboot reboot fastboot to enter…
Required files # PJE110domestic_11_14.0.0.317CN01_2024012904340000.zip (Click All Packages: DOWNLOAD. Log in a Google account if you can’t download.) ColorOS PJE110_15.0.0.500(CN01) C.32 全量包 (Copy the link of 官方链接 and use aria2 or Aria2App to download the file.) 1.3.zip and prog_firehose_ddr.zip (Download files from How To Guide - [12R/Ace 3] EDL DownloadTool to restore your device to…
Enable Google Services: Open Settings, search “google”, open “Google setting”, and enable “Google Mobile Services”. Install Google Play: Open App Market, search “google play”, update “谷歌应用市场”, and Play Store will appear on the home screen after updating. Tested device: OnePlus Ace 3 (ColorOS 14) and OPPO Reno12 (ColorOS 14).
Introduction # HTTP ( H yper t ext T ransfer P rotocol) is a protocol for transferring information, such as HTML files. It’s the foundation of data communication for the World Wide Web. In a typical HTTP session, the client (such as a browser) sends a request to the server, which sends back a response. HTTP Request # A typical HTTP request consists of: request line (request method, path,…
Ajax ( A synchronous Ja vaScript and X ML) is a method for sending and receiving data from a web server. It allows parts of a web page to be updated without reloading the whole page. Ajax isn’t a specific technology, but rather a concept that can be implemented using various methods: XMLHttpRequest , fetch() or libraries like Axios . Although Ajax originally used XML, it uses JSON more…
Prototype # In JavaScript, every object has a hidden built-in property called prototype ( [[Prototype]] in ECMAScript Specification and Chrome, <prototype> in Firefox), which is an object. With prototypes, we can create shared properties. To get or set [[Prototype]] , use Object.getPrototypeOf() and Object.setPrototypeOf() . __proto__ is a non-standard getter/setter of [[Prototype]] , but…
JavaScript has 8 data types: Undefined ( undefined ) Null ( null ) Boolean ( true / false ) Number BigInt String Symbol (unique value) Object Object is the only mutable type. Other types are immutable and are called primitive types. Undefined # The Undefined type has only one value: undefined , which means a variable is declared but no value is assigned to it. 1 2 let name ; console . log ( name…
In CSS, a block element is a box (rectangle) made up of four parts: content, padding, border, and margin. box-sizing determines how total width and height of an element is calculated. Box model By default ( box-sizing: content-box; ), the width property only sets the width of content, which is very unintuitive. When you set width: 100% and border to a element, it becomes wider than the parent…
The cascade is the algorithm that determines the correct rule when multiple CSS rules apply to an HTML element. The cascade is determined by several factors (from least important to most important): source order (least important) specificity type class id inline styles !important (most important) Source order # Later declared rules override previous rules. 1 <p>Hello, world!</p> 1 2 3 4 5 6 7 p {…
Elements inherit some CSS properties from their ancestors. You can check whether a property is inherited in the formal definition section on MDN, e.g. width and color . 1 2 3 4 5 < div class = 'grandparent' > < div class = 'parent' > < div class = 'child' > I inherit the green color from my parent, and the italic style from my grandparent. I don't inherit the border. </ div > </ div > </ div > 1 2…
Block Formatting Context (BFC) is a mini layout in the page. When an element establishes a BFC, it: includes internal floated elements exclude external floated elements suppresses margin collapsing A BFC is created in many situations, see Block formatting context - CSS: Cascading Style Sheets | MDN . The simplest way to create a BFC is display: flow-root . Here is an example of excluding external…
Float can be used to lay out elements. Clearfix is a method used to fix the zero-height container issue caused by floated elements. Here is an example of arranging items vertically using float ( live preview ): 1 2 3 4 5 6 < div class = 'container clearfix' > < div class = 'item item1' > item1 </ div > < div class = 'item item2' > item2 </ div > < div class = 'item item3' > item3 </ div > </ div >…
Margin collapsing is a feature in the flow layout . When an block element comes after another block elements, the bottom margin of the upper element and the top margin of the lower element collapse (merge into a single margin). The larger margin remains, and the smaller margin disappears. If the two margins are equal, one of them remains. Margins don’t collapse in a flex container or a grid…
Tables with many columns can overflow the page width, which distorts the page layout. Adding a horizontal scrollbar avoids this problem. To add a horizontal scrollbar to a table, wrap the table in a <div> container and apply overflow-x: auto; to the container. 1 2 3 4 5 < div style = 'overflow-x: auto;' > <!-- Wrapper --> < table > <!-- Table content --> </ table > </ div > Demo ( live preview ):…
AmE means American English, and BrE means British English. Punctuation mark Name ~ tilde ! exclamation point (AmE) / exclamation mark (BrE) @ at sign / at symbol # hash / pound sign / number sign $ dollar sign % percent sign ^ caret & ampersand / and sign * asterisk ( ) parenthesis (AmE) / bracket (BrE) / round bracket (BrE) - hyphen / minus sign + plus sign ` backtick/backquote/grave _ underscore…
BEM (Block, Element, Modifier) is a naming convention for class names in HTML and CSS. It makes HTML and CSS code more orgranized. Concepts and Usage # Don’t worry if you don’t understand it at first. There are examples later on. Block: independent HTML element (such as <nav> ), and it may not contain any HTML elements. Element: any HTML element inside a block, it can’t be…
npx lets you run different versions of Hugo without installation. To use it, install Node.js and npm at first. Run different versions # The syntax of npx is npx <package-name>@<version> . If @<version> is not specified, the locally installed version or latest version will be used. Here are some examples: 1 2 3 4 5 6 7 8 9 10 # local installed version or latest version npx hugo-extended # Hugo…
When a Proxmox server connects to a new network (e.g. a new router), its network configuration needs to be changed. Edit /etc/network/interfaces and /etc/hosts to change IP address and gateway, /etc/resolv.conf to change DNS. Then reboot the system. 1 2 3 4 # Use nano to edit nano /etc/ { network/interfaces,hosts,resolv.conf } # Use Vim to edit vim -p /etc/ { network/interfaces,hosts,resolv.conf }…
This tutorial is only tested on the China versions of MIUI and HyperOS. Tested devices: Redmi K40s (MIUI 14.0.7.0.TLMCNXM), Redmi Note 12 Turbo, and Redmi Turbo 3 (HyperOS 1.0.16.0.UNPCNXM). HyperOS Guide # Call recording in phone: Open settings Search “call recording” Tap “call recording (App/Other settings/Sytem app settings/Phone/Call recording)” Enable “Record…
If you build a multilangual Hugo site, you may want to enable defaultContentLanguageInSubdir to make URLs look consistent. For example: /en/post/an-english-post /cn/post/a-chinese-post As of Hugo v0.120.4, defaultContentLanguageInSubdir = "true" still has the side effect that no 404 page (404.html) is generated at the root of public directory , which causes Cloudflare Pages to redirect non-exstent…
Summary # Flash ih8sn provided by althafvly or your maintainer(s) via Lineage Recovery, and banking apps will work correctly. Explanation # When you use banking apps on LineageOS without root, they may show the misleading error message that your device is rooted. Banking apps actually check SafetyNet or Play Integrity, both of which are used to verify device integrity. After flashing ih8sn,…
Guide # China Xiaomi / Redmi phones in Google Play supported devices 1 have built-in Google Services. We just need to install Google Play. Turn on Google Services HyperOS : Settings -> Additional settings -> Account & sync -> Basic Google Services MIUI : Settings -> Account & sync -> Basic Google Services Install Google Play: search “google play” on GetApps, and install or update…
In this tutorial, I will help you install the latest microcode in a upgradable way so that you can upgrade it via apt command. Please don’t install packages except microcode packages from the unstable repository to avoid a broken system . This tutorial was tested on Proxmox VE 7.4 / 8.0.2 . Microcode is the firmware used to fix bugs in the CPU. It should be installed only on the host instead…
As an Arch Linux user, I am used to using the lastest packages. Thus, I upgrade my NixOS to unstable channel. 1 2 3 4 5 # switch channel sudo nix-channel --add https://nixos.org/channels/nixos-unstable nixos sudo nixos-rebuild switch --upgrade # show version nixos-version References: Upgrading NixOS - NixOS manual https://channels.nixos.org/
This tutorial should work for other Linux distributions, but I only tested it on Arch Linux. In order to add a directory to a Jellyfin library, Jellyfin needs to access the directory and all its parent directories. If you add ~/Videos to a library, Jellyfin fails to access it. Jellyfin runs as user jellyfin . Jellyfin can access ~/Videos ( other::r-x ) but can’t access its parent ~ (…
Python 2 was dropped from Arch Linux . It was lucky that there were only two python2 packages on my Arch. 1 2 3 4 5 ❯ pacman - Qs python2 local / python2 2.7 . 18 - 5 A high - level scripting language local / python2 - setuptools 2 : 44.1 . 1 - 2 Easily download , build , install , upgrade , and uninstall Python packages I removed them without hesitation. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17…
Summary: paste with P in visual mode. It’s painful to paste over selected text in Vim, because the unnamed register is overwritten by the selected text. Thus, we can not paste the original yanked text twice. If you have a file: 1 2 hello kitty You want to copy hello , paste it over kitty , and paste it again. You type these commands in Vim. 1 2 3 4 5 gg ' move to the top yy ' copy current…
Warning: Ignoring kernel upgrades makes the system more vulnerable due to the lack of the latest security fixes. Ignore Temporarily # Pacman’s --ignore option is used to ignore package upgrades. You can ignore multiple packages, separated by commas. This command upgrades the system but ignores three kernels. 1 sudo pacman -Syu --ignore…
Me # I am Cyrus Yip (叶寻). I like anime, games, books, and programming. Subscription # Use an RSS reader to subscribe this site via https://cyrusyip.org/en/index.xml . Donation # If you find my posts helpful, you can buy me a tea via Patreon or 爱发电 . Online accounts # My Blog Arch Linux Forum ArchWiki Disqus GitHub Hugo forum Mastodon Matrix (no direct messages) NixOS Discourse Proxmox Support…