Skip to main content

Practical Interview Preparation Guide for Frontend Developers

· 9 min read

Recently, there's a popular saying: "Good jobs are like HIV, only transmitted through mother-to-child, blood, and sexual contact"

Excluding HIV patients, for programmers from ordinary families, interviews are an inevitable path.

Generally speaking, interviews have four difficulties:

  1. Weak technical skills: Shaky foundation? Unfamiliar with algorithms?
  2. Insufficient projects: No impressive projects? All failed projects?
  3. Poor communication: Can't express yourself? No logic when speaking?
  4. Mindset issues: Anxious about resumes being ignored? Depressed after failing first round? Stressed about resigning without a new job?

These are actually just symptoms. The real root cause is:

Lack of systematic understanding and preparation for interviews

Next, I'll share my personal interview preparation approach from several aspects.

1. Have a Clear Understanding of Yourself

Many people have sky-high ambitions but often paper-thin fate.

Without clear self-awareness and planning, they enter the job market full of ambition, but quickly get slapped by reality.

At the start of interviews, you need to clarify your existing resources. For example, for me:

  • Education: Non-prestigious bachelor's degree
  • Technical skills: Average foundation, no algorithm knowledge
  • Work experience: Never worked at a major tech company
  • Projects: No medium or large-scale project experience

These are my disadvantages in interviews. So what are my advantages:

  • Young and affordable, three years of work experience with some project experience, good value for companies
  • Some writing achievements, maintaining a personal technical blog
  • Open mindset, willing to learn and try new things

After comprehensively analyzing my resources, my conclusion was:

  • I have some market competitiveness, but haven't reached the threshold for major tech companies yet. Can try for mid-tier companies
  • Second-best outcome would be small companies or startups
  • Worst case would be subsidiaries of major companies, outsourcing companies, or Huawei OD

2. Prepare Well for a Protracted Battle

Interviews are like warfare, and it's a protracted battle.

Money

First is the financial aspect, especially if you resign without a new job - do you have enough savings to support yourself?

Don't expect to find a satisfactory job in one or two months - that's unrealistic.

Especially in the current environment, plan for at least 6+ months of savings.

Downgrade consumption where necessary, save where you can.

Mindset

Second is mindset. Most people start job hunting full of confidence.

But as time passes, with no responses to resumes, failed interviews, and concerned inquiries from family and friends, pressure builds.

It's easy to become anxious or even depressed. I've experienced this too.

My approach is to document it - accept your emotions and give yourself positive psychological reinforcement.

As Professor Luo Xiang once said: For uncontrollable things, we should remain optimistic; for controllable things, we should remain cautious.

Physical Strength

Finally, physical strength. Since job hunting is a protracted battle, you need sufficient physical stamina.

Staying at home browsing job sites, mass applying without results, constant rejections - under this double drain of mental and physical energy, people easily break down.

Better to go out for walks, breathe fresh air, do some exercise.

Maintaining healthy body and mind actually helps maintain confidence and improve job search efficiency.

3. Tools for Efficiency

During this preparation, I mainly used these tools:

Flomo

Flomo is a "simple, efficient" fragment note-taking tool that helps you record, organize, and review your preparation process.

In Flomo, I mainly recorded my interview experiences, questions, feelings, reflections, etc.

Feishu

Feishu supports personal version, and I mainly used "Feishu Docs" and "Feishu Minutes" for preparation.

First, Feishu Docs is really great - rich document types, block documents like Notion, plus mind maps, Base tables, canvases, etc.

I created a ✨ Frontend Job Hunting Guide with Feishu Docs, which I'll mention in the next section.

For Feishu Minutes, you can upload audio MP3s and convert them to text - mainly used for post-interview self-review.

You can click on text to jump directly to the corresponding audio position - very convenient, with features like speed control and skip silence.

If you haven't used Feishu yet 👉 Try Feishu

TickTick

TickTick is a task management tool, mainly used for preparation planning.

TickTick also has a nice Pomodoro focus feature for tracking daily task progress and status.

If you haven't used TickTick yet 👉 Try TickTick

AI Tools

I have to admit, AI tools are really effective now.

I originally wanted to pay for guidance from seniors, but AI tools can achieve good results for free.

  • ChatGPT, Claude: Good answer quality, but requires VPN 🪜

  • Doubao: ByteDance's AI Q&A product. For non-technical questions, answer quality matches ChatGPT, supports PC client. My favorite feature is keyboard shortcuts like Spotlight - directly ask AI questions.

  • Tencent Yuanbao: Average answer quality, but can search WeChat articles before answering - after all, high-quality Chinese content is trapped in WeChat's closed platform.

4. Create Your Personal Job Hunting Guide

I believe every job-seeking programmer should create a personal job hunting guide.

Why Create a Job Hunting Guide

The reason is simple - systematize the preparation process, consolidating preparation strategies, job search records, interview questions, and processes into one knowledge base.

Beyond this interview, your job hunting guide can be used for the next one - current efforts are reinforcing your future self.

I chose Feishu Docs because it's quite powerful and mind maps are free to use.

Of course, use whatever note-taking app you're familiar with - Yuque, Notion, Obsidian, even Word or Excel work.

Software tools are just means - what matters is your thinking and documentation.

Job Hunting Guide Reference Content

My Feishu document ✨ Frontend Job Hunting Guide is now public - feel free to reference it.

First is the "Complete Guide" section, arranged by job search timeline, covering various aspects of job hunting.

If that's too much, just check the "Lite Quick Guide".

Next is "Assignment 1: PDCJ" - for periodic review I use PDCJ, a thinking model:

  • P is Plan
  • D is Do
  • C is Check
  • J is Just (adjust)

Through periodic planning and implementation, then continuous checking and adjusting, ensure your interviews proceed correctly and efficiently without derailing.

"Assignment 2: Interview Questions" is quite important. Beyond technical knowledge, deeply explore your own projects.

Not just successful projects - explore failed ones too, showing interviewers your deep, multi-angle thinking about projects.

Then "Assignment 3: Personalized Self-Introduction" - this is showing yourself.

In interviews, self-introduction is one of the most important parts, giving interviewers an initial impression of you.

Though it depends on the interviewer - some may not like opening "self-introductions", preferring direct questions like "Tell me about your most fulfilling project".

For "Assignment 4: Company Tracking Sheet", maintain all your application statuses including company name, position, application time, interview status, etc.

There are many job search channels for programmers now. This sheet helps maintain your job search status for coordination and timely follow-up.

As this data grows, you can analyze your application efficiency - for example, referral resume pass rates are much higher than Boss Zhipin applications, allowing you to adjust your job search strategy.

5. Some Final Tips

1. Don't Deny Yourself

Exams fail, relationships end, interviews bomb - these are all normal.

Failure is the norm in life, success is rare.

Don't rush to deny yourself because of interview failures.

If you fail, review, reflect, summarize, and try again (PDCJ).

Here's a quote I really like:

2. Be Humble

Schopenhauer said: Everyone takes the limits of their own vision as the limits of the world.

A frog at the bottom of a well thinks the world is limited to that well.

I've made this mistake before, thinking I was great, but the deeper I learn, the more I realize my insignificance and ignorance.

Now in interviews, I maintain a humble attitude.

When encountering my strong areas, explain eloquently, showing your abilities and thinking.

When encountering weak areas, honestly admit it and express willingness to learn and improve.

3. About Outsourcing Companies

For outsourcing companies - avoid if possible.

Compensation-wise, salaries and bonuses are reduced after the outsourcing company takes its cut.

Work content is often maintenance, secondary development, testing, and other miscellaneous tasks.

Technically, outsourcing companies often have poor technical culture, with colleagues likely lying flat.

Self-esteem wise, outsourced employees are often second-class citizens - internal network permissions, badges, meal cards all remind you of the gap with regular employees.

So unless it's transitional (1-2 years), outsourcing companies aren't recommended.

Also, don't use outsourcing positions for interview practice.

Outsourcing interview questions, difficulty, and interviewer mindset differ from regular positions - little reference value.

Plus it requires significant time and energy - coordinating with HR, scheduling tests, interviews, commuting to on-site interviews, etc.

No need for this useless work - save energy for regular position interviews.

On Boss Zhipin, go to Settings > Privacy > Block Companies to block outsourcing companies and avoid interference.

4. Use Everything You Can

I've heard that the entrepreneurial state is "courtesan mentality, widow treatment, women's federation pursuit".

This applies to job hunting too.

Your pursuit and goal is finding a satisfactory job, so lower your pride and use all available resources.

Contact your friend circles, classmate circles, former colleagues one by one - ask about referral opportunities.

Email experts to ask about suitable positions or interview advice.

Join tech groups, QQ groups, WeChat groups - communicate with experts and peers.

Expand your job search scope - don't limit yourself to Boss Zhipin, Lagou, Liepin, and other job sites.

About to Leave My Job, Recording the Mac Apps I Use

· 6 min read

General Purpose

Feishu

Believe it or not, the first recommendation is Feishu. It's the most comfortable project management application I've used.

Just Feishu Docs alone, its features and experience far exceed Tencent Docs, Shimo Docs, Yuque, and others on the market.

Now Feishu also supports personal version, no more thumbs up needed.

Besides documents, Feishu also supports email, video calls, and other features. Feishu = Enterprise WeChat + Tencent Docs + QQ Mail + Tencent Meeting, truly All in One.

Feishu also has some thoughtful small features, like OCR (image to text), video recording, GIF recording, and a very practical "scrolling screenshot" - no more worries about long screenshots.

Arc

My main browser has switched from Chrome to Arc. Arc's multiple spaces solve my long-standing pain point.

It also automatically collapses expired tabs, supports full screen, looks beautiful, and has comfortable interactions. Arc is worth having.

Youdao Translate

For programmers reading official technical documentation, translation is a must.

I'm a long-time user of Youdao Translate, accompanying it from Youdao Dictionary to its current name Youdao Translate.

Although Youdao's translation quality isn't the best, it wins with its rich dictionary content and convenient hover translation.

Now with AI added, translation quality has improved significantly. Got myself a two-year membership.

Grammarly Desktop

When submitting issues or writing in English, worried about grammar mistakes? Grammarly Desktop comes in handy.

Basic grammar checking is free, but polishing and AI features require payment.

iBar

My Mac has a notch screen. When there are too many apps, they get hidden by the notch, which is annoying.

iBar can collapse the menu bar.

iShot

To capture beautiful screenshots with rounded corners and shadows, use iShot.

The free version is sufficient. Advanced paid features like long screenshots, OCR, and screen recording can be done with Feishu's built-in tools.

Snipaste

When I switched from Windows to Mac, I continued using Snipaste. Its pin image feature is very useful.

App Cleaner & Uninstaller

App Cleaner & Uninstaller for thorough app uninstallation, clean and complete.

Runcat

Watching a cat constantly running in the menu bar is also a form of entertainment.

Runcat can display current CPU usage in the menu bar. The more CPU is used, the faster the cat runs.

Activate Mac

A boring little widget, similar to Windows' "Activate Windows", displays "Activate macOS" in the bottom right corner of the screen.

Productivity

Personal Task Management Trio

  1. TickTick: Task planning and scheduled tasks

  1. Flomo: Recording inspiration, reviewing task processes or results

  1. FlowUs: Review output, reading notes

Why choose this toolkit?

  1. All are domestic applications, no VPN needed, avoiding anxious moments during network fluctuations
  2. Cross-platform support: mobile, PC, web, mini-programs - full coverage
  3. Good to use, replacing Todoist, Notion, etc.

Revezone

I often need to draw flowcharts and use Excalidraw for doodle-style drawings, but unfortunately it doesn't support Chinese fonts.

Revezone is like a localized version of Excalidraw, but goes further, integrating Tldraw, Notion-like note features, and providing a Mac client.

Currently open source and free, in alpha testing phase, worth trying.

Screen Recording

  1. OBS: Professional recording. Choose this for heavy-duty needs like course recording. For lightweight recording, use Feishu's GIF recording.

  1. Screen Studio: Can create very smooth operation videos

  1. KeyCastr: Shows pressed keys, open source and free

uTools

Truly a new generation efficiency tool platform. Everything is a plugin - whatever small feature you need can be found here.

Sunflower Remote Desktop

For remote computer access, I recommend Sunflower. The free version basically meets needs, though it pops up small ads.

Development

Fork

A free Git visualization tool, aptly named "Fork".

Warp

A new terminal application supporting basic completion, memory features, plus AI assistance.

Zed

I won't recommend JetBrains, VSCode, etc. - these are already well-known code editors.

I'll recommend Zed, a new generation editor based on Rust with very fast startup and input speed.

Zed is just starting out, worth watching.

Database Visualization

The database visualization king Navicat is familiar to everyone. They finally released a free version called Navicat Premium Lite. As a lite version of Navicat Premium 17, it has all the basic features.

Officially stated: "It meets the basic database management needs of beginners and non-commercial users" (probably because there were too many pirated copies 🤣)

If you only need lightweight database visualization, I recommend SQL Pro Studio.

While not as powerful as Navicat, it's a Mac native app with good performance. Basic operations (filtering, sorting) are covered, advanced features require writing SQL.

For Postgres databases, use Postico 2, specifically for Postgres.

For Redis visualization, I recommend Another Redis Desktop Manager or Redis Insight. Each has pros and cons, can be used together.

Typora & uPic

When writing Markdown notes, Typora has always been my first love.

Typora doesn't support images natively, so I set up an image hosting service on my server, currently using uPic for image uploads.

He3

Developer toolbox, combining multiple development tools, plus some basic video editing, image cropping, audio conversion tools.

Found a Google XSS Vulnerability

· 3 min read

Programmer Matan found an XSS vulnerability and reported it to Google, receiving a reward of $3,133.7 (approximately ¥22,666 RMB).

Here are Google Bug Hunter's reward rules:

👉 Image from https://bughunters.google.com/about/rules/google-friends/6625378258649088/google-and-alphabet-vulnerability-reward-program-vrp-rules

Here's how it started. Matan read an article exposing a Google SSRF vulnerability that mentioned this Google website:

📍 https://toolbox.googleapps.com

So he began exploring, first by checking the robots.txt file:

#apps-toolbox
User-Agent: *
Allow: /apps/main
Allow: /apps/browserinfo
Allow: /apps/checkmx
Allow: /apps/dig
Allow: /apps/har_analyzer
Allow: /apps/loganalyzer
Allow: /apps/loggershark
Allow: /apps/messageheader
Allow: /apps/recovery
Allow: /apps/useragent
Allow: /apps/other_tools
Allow: /apps/encode_decode
Allow: /apps/screen_recorder
Disallow: *

robots.txt is a file at the website's root directory that tells web crawlers which pages can be crawled and which cannot, to avoid the website being overloaded with crawler requests.

In the robots.txt file, each link corresponds to a tool webpage.

But there's one exception: /apps/recovery cannot be accessed directly.

After a simple search, he discovered it has subpages:

recovery/domain_in_use
recovery/form
recovery/ownership

These subpages can all accept multiple URL parameters, for example:

recovery/domain_in_use?visit_id=xxx&user=xxx&domain=xxx&email=xxx

If you enter this continue redirect link:

https://toolbox.googleapps.com/apps/recovery/ownership?domain=example.com&email=email@example.com&case=45500368&continue=/apps/recovery/...

This link contains the parameter domain=example.com, and note there's also a continue=/apps/recovery/... parameter.

Entering this continue redirect link gives a prompt:

Here's where the problem was discovered - the CONTINUE button's link actually comes from the continue parameter!

Matan tested it by injecting JavaScript code: .../continue=javascript:alert(document.domain)

Successfully executed ✅

This website has no CSP security policy and no protective measures, so it can fetch resources from any external source.

He continued trying to load an external malicious script that retrieves the user's IP address:

.../continue=javascript:fetch(%27https://api.ipify.org?format=json%27).then(response=%3Eresponse.text()).then(data=%3E{alert(data);%20})

Also successfully executed ✅

At this point, the XSS vulnerability was confirmed.

Let's review XSS knowledge:

XSS (Cross-Site Scripting), cross-site scripting attack, occurs when validation is not properly done, trusting user input and accepting malicious input from attackers (usually JavaScript code), causing that malicious input to execute on other users' pages. XSS is generally divided into three types:

  1. Stored: Malicious input is permanently stored in the backend service. Whenever users open the website and retrieve that malicious input, the browser executes it.
  2. Reflected: Malicious input is embedded in URLs or other inputs and immediately forwarded by the backend. As long as users visit the crafted URL, the browser executes it.
  3. DOM-based: Attackers manipulate the user's DOM structure to execute malicious code.

Matan's example above is a typical reflected XSS.

But this XSS is so basic that even Matan himself found it hard to believe, especially since Google's technology is famously good in the industry.

However, Google habitually uses their own frameworks, and when these frameworks don't implement proper security policies, product failures are inevitable.

Can Zed Beat VS Code?

· 3 min read

Let me start with the conclusion: No.

Zed, yet another new text/code editor.

👉 https://zed.dev

It officially went open source on January 24th this year. In less than three months, it has already reached 30k stars on GitHub.

As Zed's slogan says: "Code at the speed of thought".

From actual experience, Zed is indeed smoother than VS Code.

⬇️ Zed

⬇️ VS Code

The official website also provides typing performance comparison:

To input the letter z and display it on screen, Zed only needs 58 milliseconds, while VS Code needs 97 milliseconds.

Zed is 1.4 times faster than VS Code.

In terms of input performance, Zed wins.

The second core feature Zed promotes is multi-user collaborative programming.

To be honest, I can't think of good practical use cases for this feature yet.


So far, Zed is merely a decent text editor.

You could even say Zed hasn't made any substantial breakthroughs - it's a self-indulgent product.

Zed's advertised high performance doesn't represent a quantum leap, making it hard to impress users.

The gap between "58 milliseconds" and "97 milliseconds" isn't that significant.

Any actual developer knows that the bottleneck in programming isn't typing speed.

As for multi-user collaboration, this scenario currently seems unfriendly.

For document collaboration, domestic products like Feishu Docs and Tencent Docs are leaders that would crush Zed.

For code collaboration, Git is obviously the mainstream solution.


Zed is too young. It hasn't even implemented basic markdown preview yet.

VS Code set the standard with its open-source, plugin-based ecosystem that attracted a massive following.

While Zed also has a plugin mechanism, how many contributors can we expect?

The book "Rework" mentions that people who fail in their first startup have the same probability of failing in their second.

Zed's team previously made the Atom editor, and now Atom exists in name only.

The team failed with Atom, and their comeback with Zed still isn't enough.

Zed will likely capture a portion of users, but won't become a domain success.


How can Zed break through? The most important thing is to go with the flow.

Think about VS Code's timing: the prosperity of the internet drove open-source development, Eclipse was outdated, JetBrains was expensive, frontend specialization was emerging and urgently needed lightweight editors - these were all momentum for VS Code.

Currently, Zed's best momentum is obviously the AI direction.

But Zed clearly lacks sufficient support, only having Copilot code completion and Chat capabilities.

VS Code not only has these features but implements them more comprehensively.

The Zed team should think about what kind of editor they want to make that adapts to the current AI trend and creates new opportunities.

If they continue to be satisfied with insignificant performance improvements and vertical collaboration, continuing to compete in vertical tracks, then I wish them luck.

Guide to 100% Maximizing GitHub Copilot

· 5 min read

Long before OpenAI launched ChatGPT, OpenAI had already partnered with GitHub to launch GitHub Copilot.

Hereinafter referred to as Copilot

Copilot caused a sensation in the programming community at that time.

The radical claim back then was: Copilot will replace programmers.

Three years later, calm down - Copilot hasn't replaced programmers as hoped.

Instead, it's a powerful assistant that improves efficiency. Mastering it can multiply your programming efficiency.

Copilot Pricing

Domestic developers are relatively price-sensitive.

Copilot officially offers two subscription types: Individual and Team.

Let's skip the team version - if you have company support, you don't need to worry about this.

Individual pricing comes in two options:

  1. Monthly subscription, $10 per month, ¥72.37 RMB
  2. Annual subscription, $100 per year, ¥723.7 RMB

The individual version includes a 30-day free trial period, so you can try it first.

GitHub is quite friendly - it supports domestic credit card payment, including China Merchants Bank, GuangFa Bank, China Construction Bank, etc.

For unofficial channels like Taobao or uTools plugins, they might be unstable but are cheaper.

Copilot Family Suite

Using Copilot is simple - install the corresponding plugin in VSCode/JetBrains, then log in with your GitHub account.

👉 VSCode: https://marketplace.visualstudio.com/items?itemName=GitHub.copilot 👉 JetBrains: https://plugins.jetbrains.com/plugin/17718-github-copilot

After installation, when typing code, Copilot will automatically suggest code. Press Tab to complete.

JetBrains' Copilot plugin integration provides sidebar Chat functionality:

For VSCode users, to enable sidebar Chat functionality, you need to install the additional Copilot Chat plugin:

After installation, the sidebar menu will have a new "Chat" option, with a chat interface like ChatGPT:

VSCode is indeed a bit more troublesome, but has an advantage.

New Copilot features will be launched on VSCode first, like Copilot Voice.

Install this plugin in VSCode 👇 to experience voice programming.

Although it currently only supports English, multilingual support will surely come soon.

Speech to text in Visual Studio Code Chat

Even with English-only support, I believe Chinese developers who've been learning English since childhood have excellent English skills.

Copilot Code Completion

Besides Copilot's automatic triggering, we can also use Option + \ to manually trigger code completion.

Windows: Alt + \

Although the manual shortcut is rarely used, it's useful for testing Copilot during network fluctuations.

After triggering code completion, pressing Tab accepts all the code, but sometimes we only need partial completion.

You can use Command + → to accept completion code step by step:

Windows: Ctrl + →

If you're not satisfied with the current completion, you can press Option + ] or Option + [ to switch to the next or previous completion:

Windows: Alt + ] or Alt + [

For VSCode, press Command + I to invoke Copilot Editor in code:

Windows: Ctrl + I

Using Copilot Chat

Copilot Chat is like having GPT-4 directly in your editor, allowing quick Q&A about project issues:

For JetBrains IDEs, you need to right-click on files to show references:

JetBrains IDEs are currently clumsy, requiring manual right-clicking to specify files and referencing entire files.

VSCode doesn't need explicit specification - it automatically determines whether to reference the entire file or just the selected portion:

Some Small Joys with Copilot

Let me mention some of Copilot's nice-to-have features, like directly generating Commit Messages:

Generating Git Commits is really convenient - it detects all file changes and generates appropriate messages.

Another feature is variable renaming, though it's currently unstable, so I'll skip it for now.

Copilot CLI

Copilot CLI is now fully available, allowing you to use Copilot in the command line.

For example, we can ask Copilot to explain what the sudo apt-get command means:

However, CLI is still quite dumb. It's better to use Warp's AI features, as mentioned in my previous article 👉

Beautiful, Functional + Free AI-Powered Terminal Tool: Recommending Warp!

Three Developers Supporting One Trillion Active Uses

· 2 min read

For many developers, SQLite is certainly familiar.

We know it's powerful, but didn't expect it to be THIS powerful.

SQLite currently has over one trillion (1e121e12) active uses.

It's mainly used in:

PlatformContains SQLite
Mobile DevicesEvery Android device, every iPhone and iOS device
ComputersEvery Mac, every Windows 10 machine
Web BrowsersEvery Firefox, Chrome, and Safari web browser
Communication AppsEvery Skype instance
Media AppsEvery iTunes instance, every Dropbox client
Financial SoftwareEvery TurboTax and QuickBooks
Programming LanguagesPHP and Python
Home EntertainmentMost televisions and set-top boxes
AutomobilesMost automotive multimedia systems
OthersCountless millions of other applications

👉 Table source: https://www.sqlite.org/mostdeployed.html

And SQLite's entire development team? Just three people:

👉 Image source: https://www.sqlite.org/crew.html

  • D. Richard Hipp: Started the SQLite project on May 29, 2000 and continues as the project architect. Richard was born in, lives in, and works in Charlotte, North Carolina. He holds a Master's degree in Electrical Engineering from Georgia Tech (1984) and a Ph.D. from Duke University (1992), and is the founder of the consulting firm Hwaci.
  • Dan Kennedy: An Australian currently living in Southeast Asia. He holds a degree in Computer Systems Engineering from the University of Queensland and has worked in various fields including industrial automation, computer graphics, and embedded software development. Dan has been a major contributor to SQLite since 2002.
  • Joe Mistachkin (pronounced "miss-tash-kin"): A software engineer and one of the maintainers of Tcl/Tk. He is also the author of the TclBridge component and the Eagle scripting language. He has been in the software industry since 1994.

Another interesting fact is that SQLite doesn't accept any external code contributions.

In other words, SQLite is open source but not open to code contributions.

This is mentioned in SQLite's copyright statement:

👉 Image source: https://www.sqlite.org/copyright.html

Many times, we can't help but marvel at the marginal cost of software.

One piece of code can be distributed to ten people, or to one billion people.

Three developers supporting one trillion active uses.

The value created by SQLite is unparalleled. Technology changes the world.

REFERENCES

Beautiful, Functional + Free AI-Powered Terminal Tool: Recommending Warp

· 2 min read

Recently, Warp has gained quite a reputation, with many people recommending this terminal tool, so I decided to download and try it out.

After several days of in-depth experience, the conclusion is that it can indeed replace my previous iTerm.

Warp has good aesthetics, looks comfortable, and satisfies the fancy requirements of frontend engineers.

There are multiple themes to choose from:

Warp directly provides command prompt functionality, without the hassle required with iTerm:

The best feature, of course, is the AI capability. You can open "Warp AI" in the upper right corner. If you forget a command, you can chat directly:

For Free users, you get 20 free queries per day, which is sufficient for personal use:

Warp also provides "Warp Drive", which allows you to save and share commands within your team:

Currently, Warp only supports Mac and Linux, but Windows support is coming soon:

If you think Warp looks good, give it a try: 👉 URL: https://app.warp.dev/referral/Q9ZVGQ

How to Run Windows on Mac Without Spending a Penny (M1/M2 Version)

· 2 min read

Here's the effect of experiencing the latest Windows 11 on MacOS M1:

VMware Fusion can run Windows and Linux systems, with a free license for personal use.

Installation guide here 👉 https://zhuanlan.zhihu.com/p/452412091

From applying for a Fusion license to downloading images, to installation pitfalls.

This article explains everything in great detail.


Fusion has excellent support for Windows 11, but doesn't support other versions.

Here I recommend UTM. This is UTM running Windows 7:

UTM is also a free virtual system software.

Official website 👉 https://mac.getutm.app

Note: UTM can be downloaded directly from the official website

But downloading from the App Store requires payment. If you want to support UTM, you can choose to pay for the download.


UTM installation is quite simple.

First download the desired image. Images can be downloaded from MSDN 👉 https://msdn.itellyou.cn

Then download the corresponding configuration file from UTM https://mac.getutm.app/gallery/

After downloading, you'll get a file with .utm extension, then open that file.

After opening, you need to change the system image path.

In the upper right corner, change it to the corresponding downloaded system image:

After changing, restart and you're done!

Save Your VSCode, Try This Beautiful Code Font

· 2 min read

Monaspace, an open-source code font by GitHub, is a monospace code font family containing 5 variable fonts with stunning aesthetics ++.

These 5 fonts are:

1️⃣ Radon Handwriting Style Font

2️⃣ Krypton Mechanical Style Font

3️⃣ Xenon Serif Style Font

4️⃣ Argon Humanist Style Font

5️⃣ Neon Modern Style Font

👉 Project Repository: https://github.com/githubnext/monaspace?tab=readme-ov-file#coding-ligatures

Download Instructions

MacOS

Install using brew:

brew tap homebrew/cask-fonts
brew install font-monaspace

Windows

Download the files from: https://github.com/githubnext/monaspace/tree/main/fonts/otf

Drag them to C:\Windows\Fonts and click install.

After downloading, if you're using VSCode, you can find font-family in settings and change it to: 'Monaspace Radon', monospace

Using AI as a Multiplier: Creating a Year of the Dragon Greeting Card Mini-Program

· 5 min read

The emergence of AIGC at the end of 2022 made 2023 the first year of Artificial General Intelligence.

This is the best of times. With AI, things that previously existed only in imagination can become reality.

With just a few words, you can create a colorful painting - a realistic and rich painting.

Currently, there aren't many large models for AI image generation. The famous Midjourney is closed-source and inconvenient for domestic users.

Stable Diffusion, a free, open-source, and powerful AI image generation model, is becoming the darling of AI art.

For example, this New Year celebration image was created by Stable Diffusion:

Stable Diffusion supports text-to-image (generating images from text prompts), image-to-image (generating images from base images + text prompts), text-to-video, and video-to-video.

Here's an example of image-to-image, generating a realistic apple image (right) from a hand-drawn base image (left):

And here's the AI transformation video that was popular on TikTok recently:

To explore the boundaries of Stable Diffusion's imagination, as the Year of the Dragon approached, we decided to develop a Dragon Year greeting card mini-program. Here's the effect:

We chose an open-source framework called Comfy UI, which uses workflow-based interactions to make Stable Diffusion arrangement and image generation more convenient and efficient:

Comfy UI officially describes itself as: "The most powerful graphical interface for Stable Diffusion"

👉 Official link: https://github.com/comfyanonymous/ComfyUI

Despite having Comfy UI's support, we hit a wall from the start - unable to generate text, as shown:

The left image "Happy Dragon Year" (龙年大吉) is the base image we input to Stable Diffusion, and the right is the generated image based on the base image and prompts.

As you can see, the text is completely chaotic.

Even the mighty Midjourney can't solve this pain point, due to the special nature of text.

Take Chinese characters for example - there are seal script, clerical script, regular script, running script, cursive script, etc., with arrangements from left to right, right to left, top to bottom, etc.

Another solution approach is to use text as one of the base images, like this "Happy Dragon Year" image:

Generation result:

This approach seemed workable, but we quickly ran into trouble. For slightly complex characters, the generation effect was poor, like "甲辰臻祥" (Auspicious Year of Jiachen):

To solve this problem, given time constraints, we had to make changes at the product level. The greeting card image consists of template + main image, with templates pre-made and main images generated by AI without text:

Another issue is with complex content involving people, like hands and faces. The generation effect is poor, as shown in this little girl's hands:

There are several solutions:

  1. Choose an appropriate Stable Diffusion model
  2. Use plugins for hand and face correction
  3. Add negative prompts

With the above exploration, we finally began our multiplication journey.

First, we selected New Year elements like dragons, the God of Wealth, lanterns, cranes, etc.

Second, styles - we explored over ten styles generated by Stable Diffusion:

Stable Diffusion is rock solid, mastering all styles.

Through Element×StyleElement \times Style, we generated corresponding style images for each element.

The power of multiplication is self-evident. In just a few weeks, we generated over ten thousand images for the greeting card mini-program.

Before AIGC, this was absolutely impossible. All we could do was addition, and we'd need professional designers.

Assuming a designer creates one image in 5 minutes, ten thousand images would take at least 34 days working non-stop:

10000×5÷60÷24=34.722222222210000 \times 5 \div 60 \div 24 = 34.7222222222

This kind of labor and time cost was instantly reduced by AI.

AI is still in its early stages. I believe as time goes on, AI capabilities will become stronger and application scenarios will expand. Let's wait and see.

The mini-program has officially launched with a festive name: "Hua Nian" (Draw Year)

Simple operation - choose a template you like and generate with one click:

If you're not satisfied, you can adjust the image or blessing message:

If you need New Year greeting cards, feel free to try this mini-program. It's currently free to use.