Skip to main content

It's Almost 2025, I Won't Let You Not Know This AI Reading Tool

· 3 min read

Recently, a friend asked me: what software can translate PDF documents into Chinese?

That stumped me for a moment. I usually only use simple Q&A AIs like ChatGPT, Kimi, or Doubao. For actual PDF document translation scenarios, I hadn't encountered that.

In the end, my friend had to pay for it on Xiaohongshu, spending 50 yuan 💰

Because I didn't know how to use AI, I actually missed a money-making opportunity!

Fortunately, I recently discovered an intelligent AI reading assistant called "Baoyue AI".

Testing it with a PDF document, the translation results were quite impressive:

Not only that, clicking to generate a mind map, a clearly structured mind map appears beautifully:

Moreover, Baoyue AI also automatically generated a summary:

Besides PDF documents, it also supports word, ppt, epub, mobi, txt, markdown, jpg/png, webp, wps, caj, and even video and audio files.

To help me read documents easily, Baoyue AI really went the extra mile.

Baoyue has a deep understanding of current AI large language model capabilities.

Current large models are actually not good at generating information - asking them to write articles just results in repetitive content going in circles.

But when it comes to deconstructing and understanding information, they excel.

Baoyue leverages AI's strengths, maximizing the advantages in deconstructing and understanding information.

In terms of specific product implementation, Baoyue does several things:

First, through easy-to-understand "reading scenarios" categorization, letting users quickly match their needs.

Current scenarios include academic papers, contracts, office work, self-media, teaching assistant, books, official documents, technical R&D, etc., meeting most requirements.

For example, recently while learning Coco's "CSS Technology Decryption and Practical Mastery", I used "Technical R&D > Line-by-line Code Explanation".

Line-by-line explanation of all CSS code properties, learning efficiency Max 💪

Second is rich information processing methods - it's not just a chatbot.

For example, using the "Self-media > Tech News Deep Reading" scenario, I had Baoyue analyze this article "Can Zed Beat VS Code?"

Besides the mind map mentioned earlier, there's also an introduction to help users quickly understand the article's core points, as well as rewriting features for secondary creation and more.

Third is adding "AI Search" to let users connect to more related information - external enhancement.

Fourth is having "note-taking capabilities", allowing users to record their divergent thoughts - internal enhancement.

Through this four-in-one approach, closing the entire loop from need identification, information processing, information expansion, to information digestion, perfectly solving reading scenarios.

I sincerely hope that domestic companies developing AI applications can be like Baoyue AI, truly focusing on and perfecting a vertical scenario, improving efficiency and saving time for users, creating real value.

👉 Baoyue AI official website: baoyueai.com

Amazing Uses of Mac Notes App

· 3 min read

Previously when using Windows, the most painful thing was not having an app that could satisfy my need for quick note-taking.

Most apps required opening the note software first, then creating a new note, and finally typing - too many steps and too cumbersome.

After switching to macOS, what surprised me was the built-in Notes app. Just simply move your mouse to the bottom right corner of the screen to create a Quick Note.

Amazing!

This method is called Hot Corners, which can be set in "System Settings » Desktop & Dock » Hot Corners":

The four hot corners can be freely configured:

Besides hot corners, the keyboard shortcut fn(🌐) + Q can also create a Quick Note.

There's another issue - hot corners or shortcuts will open the last edited note by default. If you want to create a new Quick Note every time, you can change the setting here:

Uncheck "Always resume last Quick Note".

Notes supports most frequently used text styles. After selecting text, you can modify styles from the Aa button in the top navigation bar:

It also supports checklists:

The table function is quite basic - just a simple table without advanced features like merging or freezing.

There are also images and links, which I won't elaborate on here.

Notes supports folder categorization by default, and also supports tag categorization. Just use the hashtag (#) followed by text in your note, and Mac will generate the corresponding tag list:

Previously when browsing web pages, I really wanted to highlight certain content and make some extended notes. I installed the Weava Highlighter plugin, but it wasn't user-friendly - Weava would pop up whenever I selected text, which was very annoying.

Surprisingly, Mac Notes natively supports this feature!

In Safari, you can select content you want to save, right-click "Add to Quick Note":

After creating the Quick Note, the selected text will be highlighted in Safari:

In the latest macOS 15 update, Notes now supports audio recording:

It also supports real-time speech-to-text, but currently it only supports English (again).

Cook's native language is English, mine is speechless 😅

Additionally, there are new highlight colors - purple, pink, orange, mint, and blue. Have to say, these colors are quite nice looking.

The most useful feature has to be the math function.

Just type formulas like (27/3)^2= or 47*96=, and Notes will automatically calculate the result:

It also supports custom variables:

Overall, Mac Notes is a decent note-taking app. While it lacks advanced features like Notion's document structure and block editing, it has native support and can meet the needs for quick note-taking and basic editing.

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!