Code Implementation of Levenshtein Distance

In the previous article, I mentioned that when doing fuzzy matching, Levenshtein distance was selected as the reference value. At the time, I directly used the Python library to implement it, which did not run fast in actual use.

In recent days, I have stayed at home and took the time to write several implementations of Levenshtein Distance in Kotlin.

Read More

Use Python for Fuzzy Matching between Excel Files

Yesterday in the gap between Debug time, the product manager proposed an idea, hoping to perform fuzzy matching of text between two Excel files to convert a many-to-many relationship into a one-to-many result.

Read More

Writing an Alfred Workflow About VPN Connection

Part of the team’s services is deployed on the internal network. Usually, when we are remotely processing some work, we need to connect to the VPN.
Although Cisco’s AnyConnect client tool can be used, it cannot save passwords for automatic login, so the OpenConnect becomes a good choice, which is an open-source command-line tool.
This article is based on the macOS platform, using Alfred’s Workflow feature to improve the portability of OpenConnect connections.

Read More

A Practice of Screen Adaptation

Android’s screen fragmentation problem has a long history. Generally, we use the same physical size on different devices. Such a solution does not completely restore the design draft, and the situation of individual adaptation will appear more frequently as the size of the project increases.

Read More

The First Experience of App Bundle

The “Wake Up Screen” written in spare time has been iterated over a dozen versions. As a lightweight application, the size is maintained at around 13MB because of the different architectures of the library. I tried the App Bundle this weekend and successfully reduced the app size by about 50%.

Read More

Record a GIF Problem Investigation and Exploration

One day, we received feedback from the operator that a GIF banner could not be played on the website, and it was normal on the APP side. The operator indicated that the last configuration of GIF banner was normal, and gave the picture links of the two configurations.

Read More

A Record of Problems with a Cross-platform Architecture Migration

Recently, we have made some cross-platform migration attempts, from pure RN architecture applications to general cross-platform applications. The migration process involves cross-platform technologies such as React Native and Flutter, and also encountered many problems. This article briefly records some of them and hoping to bring a little help to the reader.

Read More

Video Player's AutoPlay Framework Design in RecyclerView

When I reviewed the notes, I found that this article was not uploaded to the blog. Although the code implementation is outdated, the idea has been used all the time, so today I simply sorted the content and sent it to the blog.

Auto-playing of the video is a common application scenario, which involves sliding distance monitoring of lists, lifecycle perception of pages, and changes in video state. This article describes an automatic playback architecture design for RecyclerView component.

Read More

Configuring V2ray on a Mac

Since simple-obfs is no longer maintained, I have been planning to upgrade the services I use, and recently I started to disconnect from the process of searching for information, so I decided to find time to study it. Here is the quick process of service upgrade and the trampling records.

Read More

Analysis and solution of online Finalize() timeout problem

For a long time in the past, the online availability rate of the Android app has remained at around XX.X%. In recent months, a large number of TimeoutExceptions have been found in the statistics. In order to affect the number of users, XX of TopXX’s crashes are caused by similar problems.

From the statistics of the problem, more than XX% appear in the OPPO R9 series system, XX% occur in the background, the vast majority occurred before and after the application started X minutes, Android system version X.X and X.X accounted for And more than XX%, the proportion of non-Root users exceeds XX%. Based on the various data, this is a problem that occurs in a specific model/system, which is less sensible to users and has a higher incidence rate.

The user experience is a vital part of the application, so taking the time to analyze and solve the problem.

Read More