Total Pageviews

Wednesday, 16 September 2026

喜欢你

 

基于rust构建的浏览器ladybird

 ladybird.org

Ladybird browser build instructions

Build Prerequisites

Qt6.9+ development packages, nasm, additional build tools, and a C++23 capable compiler are required.

Note

Some distributions still package a Qt6 older than 6.9; for example, Debian 13 (trixie) ships Qt 6.8 — so configuring against it fails. If your Qt6 is older than 6.9, install a newer one from a newer distribution release, or directly from the Qt online installer, and then point the build to it using CMAKE_PREFIX_PATH.

A Rust toolchain is also required. You can install it via rustup.

We currently use gcc-14 and clang-21 in our CI pipeline. If these versions are not available on your system, see find_compiler.py for the minimum compatible version.

CMake 3.30 or newer must be available in $PATH.


Debian/Ubuntu:

sudo apt install autoconf autoconf-archive automake build-essential ccache cmake curl fonts-liberation2 git glslang-tools libdrm-dev libgl1-mesa-dev libncurses-dev libpulse-dev libtool nasm ninja-build pkg-config python3-venv qt6-base-private-dev qt6-positioning-dev qt6-tools-dev-tools qt6-wayland tar unzip zip

CMake 3.30 or newer:

Note

Kitware’s apt repository is Ubuntu-only.

# Add Kitware GPG signing key
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null

# Optional: Verify the GPG key manually

# Use the key to authorize an entry for apt.kitware.com in apt sources list
echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/kitware.list

# Update apt package list and install cmake
sudo apt update -y && sudo apt install cmake -y

C++23-capable compiler:

# Add LLVM GPG signing key
sudo wget -O /usr/share/keyrings/llvm-snapshot.gpg.key https://apt.llvm.org/llvm-snapshot.gpg.key

# Optional: Verify the GPG key manually

# Use the key to authorize an entry for apt.llvm.org in apt sources list
echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot.gpg.key] https://apt.llvm.org/$(lsb_release -sc)/ llvm-toolchain-$(lsb_release -sc)-21 main" | sudo tee -a /etc/apt/sources.list.d/llvm.list

# Update apt package list and install clang and associated packages
sudo apt update -y && sudo apt install clang-21 clangd-21 clang-tools-21 clang-format-21 clang-tidy-21 lld-21 -y
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update && sudo apt install g++-14 libstdc++-14-dev

Arch Linux/Manjaro:

sudo pacman -S --needed autoconf-archive base-devel ccache cmake curl git less libgl libpulse nasm ninja python qt6-base qt6-positioning qt6-tools ttf-liberation tar unzip zip

Fedora or derivatives:

sudo dnf install autoconf-archive automake ccache cmake curl git libdrm-devel liberation-sans-fonts libglvnd-devel libtool nasm ncurses-devel ninja-build patchelf perl-FindBin perl-IPC-Cmd perl-lib perl-Time-Piece pulseaudio-libs-devel qt6-qtbase-private-devel qt6-qtpositioning-devel qt6-qttools-devel qt6-qtwayland-devel tar unzip zip zlib-ng-compat-static

openSUSE:

sudo zypper install autoconf-archive automake ccache cmake curl gcc14 gcc14-c++ git liberation-fonts libglvnd-devel libpulse-devel libtool nasm ncurses-devel ninja qt6-base-private-devel qt6-positioning-devel qt6-tools-devel qt6-wayland-devel tar unzip zip

If one or more of the base repository packages are flagged as having an out-of-date version during the build process, you may need add the devel:tools:building repository. For example, on Leap 15.6, the autoconf package might be version 2.69, whereas the gperf package requires 2.70 to build.

For Leap 15.6, run the following command to add this repo (you will need to adjust the URL for other openSUSE versions):

sudo zypper addrepo https://download.opensuse.org/repositories/devel:tools:building/15.6/devel:tools:building.repo
sudo zypper refresh

Below is an example printout that might be received depending which versions of autoconf are available for installation:

> sudo zypper install autoconf
Loading repository data...
Reading installed packages...
'autoconf' is already installed.
There is an update candidate for 'autoconf' from vendor 'obs://build.opensuse.org/devel:tools', while the current vendor is 'SUSE LLC <https://www.suse.com/>'. Use 'zypper install autoconf-2.72-80.d_t_b.1.noarch' to install this candidate.
Resolving package dependencies...
Nothing to do.
> sudo zypper install autoconf-2.72-80.d_t_b.1.noarch

The build process requires at least python3.7; openSUSE Leap only features Python 3.6 as default, so it is recommendable to install the package python312 and create a virtual environment (venv) in this case.

A virtual environment can be created in your home directory and once the source command is issued python3 --version will show that the current version is python 3.12 within the virtual environment shell session.

python3.12 -m venv ~/python312_venv
source ~/python312_venv/bin/activate
python3 --version

This virtual environment can be created once and reused in future shell sessions by sourcing the generated file ~/python312_venv/bin/activate again.

Void Linux:

sudo xbps-install -Su # (optional) ensure packages are up to date to avoid "Transaction aborted due to unresolved dependencies."
sudo xbps-install -S git bash gcc python3 curl cmake libtool zip unzip linux-headers make pkg-config autoconf automake autoconf-archive nasm ncurses-devel MesaLib-devel ninja pulseaudio-devel qt6-base-private-devel qt6-position-devel qt6-tools-devel qt6-wayland-devel

NixOS or with Nix:

A Nix development shell is maintained here, in the nix-environments repository. If you encounter any problems building with Nix, please create an issue there.

macOS:

Xcode 15 or clang from homebrew is required to successfully build ladybird.

xcode-select --install
brew install autoconf autoconf-archive automake ccache cmake libtool nasm ninja pkg-config

If you wish to use clang from homebrew instead:

brew install llvm@21

If you also plan to use the Qt UI on macOS:

brew install qt

Note

It is recommended to add your terminal application (i.e. Terminal.app or iTerm.app) to the system list of developer tools. Doing so will reduce slow startup time of freshly compiled binaries, due to macOS validating the binary on its first run. This can be done in the "Developer Tools" section of the "Privacy & Security" system settings.

from https://github.com/LadybirdBrowser/ladybird/blob/master/Documentation/BuildInstructionsLadybird.md

hono-vercel-ai-sdk

 Hono + Vercel AI SDK + OpenAI

Deploy with Vercel

Hono with the Vercel AI SDK

This example shows how to use the Vercel AI SDK with Hono to stream a response back from OpenAI.

Forked from the Vercel + Hono starter template.

Getting Started

$ git clone https://github.com/leerob/hono-vercel-ai-sdk.git
$ cd hono-vercel-ai-sdk
$ bun i -g vercel
$ bun i
$ vercel dev
from https://github.com/leerob/hono-vercel-ai-sdk

next-email-client

 An email client built with the Next.js App Router and Postgres.

Next.js Email Client

This is an email client template built with Next.js and Postgres. It's built to show off some of the features of the App Router, which enable you to build products that:

  • Navigate between routes in a column layout while maintaining scroll position (layouts support)
  • Submit forms without JavaScript enabled (progressive enhancement)
  • Navigate between routes extremely fast (prefetching and caching)
  • Retain your UI position on reload (URL state)

Demo: https://next-email-client.vercel.app

Tech Stack

Getting Started

git clone https://github.com/leerob/next-email-client
cd next-email-client
pnpm install

Running Locally

Use the included setup script to create your .env file:

pnpm db:setup

Then, run the database migrations and seed the database with emails and folders:

pnpm db:migrate
pnpm db:seed

Finally, run the Next.js development server:

pnpm dev

Open http://localhost:3000 in your browser to see the app in action.

Implemented

  • ✅ Search for emails
  • ✅ Profile sidebar with user information
  • ✅ View all threads
  • ✅ View all emails in a thread
  • ✅ Compose view
  • ✅ Seed and setup script
  • ✅ Highlight searched text
  • ✅ Hook up compose view
  • ✅ Delete emails (move to trash)
from https://github.com/leerob/next-email-client

space-invaders


Language Module Release

About

Space Invaders is a two-dimensional fixed shooter game in which the player controls a ship with lasers by moving it horizontally across the bottom of the screen and firing at descending aliens. The aim is to defeat five rows of ten aliens that move horizontally back and forth across the screen as they advance towards the bottom of the screen. The player defeats an alien, and earns points, by shooting it with the laser cannon. As more aliens are defeated, the aliens' movement and the game's music both speed up.

The aliens attempt to destroy the ship by firing at it while they approach the bottom of the screen. If they reach the bottom, the alien invasion is successful and the game ends. A special "mystery ship" will occasionally move across the top of the screen and award bonus points if destroyed. The ship is partially protected by several stationary defense bunkers that are gradually destroyed by projectiles from the aliens and player.

How To Play

  • If you don't have Python or Pygame installed, you can simply double click the .exe file to play the game. Note: The .exe file needs to stay in the same directory as the sounds, images, and font folders.

  • If you have the correct version of Python and Pygame installed, you can run the program in the command prompt / terminal.

cd SpaceInvaders
python spaceinvaders.py

Note: If you're using Python 3, replace the command "python" with "python3"

MacOS Mojave: You need to use Python 3.7.2 or greater: Source

Demo

Space Invaders

Notable Forks

from https://github.com/leerob/space-invaders

SaaS-Starter

 Get started quickly with Next.js, Postgres, Stripe, and shadcn/ui.

 https://next-saas-start.vercel.app/

This is a starter template for building a SaaS application using Next.js with support for authentication, Stripe integration for payments, and a dashboard for logged-in users.

Demo: https://next-saas-start.vercel.app/

Features

  • Marketing landing page (/) with animated Terminal element
  • Pricing page (/pricing) which connects to Stripe Checkout
  • Dashboard pages with CRUD operations on users/teams
  • Basic RBAC with Owner and Member roles
  • Subscription management with Stripe Customer Portal
  • Email/password authentication with JWTs stored to cookies
  • Global middleware to protect logged-in routes
  • Local middleware to protect Server Actions or validate Zod schemas
  • Activity logging system for any user events

Tech Stack

Getting Started

git clone https://github.com/nextjs/saas-starter
cd saas-starter
pnpm install

Running Locally

Install and log in to your Stripe account:

stripe login

Use the included setup script to create your .env file:

pnpm db:setup

Run the database migrations and seed the database with a default user and team:

pnpm db:migrate
pnpm db:seed

This will create the following user and team:

  • User: test@test.com
  • Password: admin123

You can also create new users through the /sign-up route.

Finally, run the Next.js development server:

pnpm dev

Open http://localhost:3000 in your browser to see the app in action.

You can listen for Stripe webhooks locally through their CLI to handle subscription change events:

stripe listen --forward-to localhost:3000/api/stripe/webhook

Testing Payments

To test Stripe payments, use the following test card details:

  • Card Number: 4242 4242 4242 4242
  • Expiration: Any future date
  • CVC: Any 3-digit number

Going to Production

When you're ready to deploy your SaaS application to production, follow these steps:

Set up a production Stripe webhook

  1. Go to the Stripe Dashboard and create a new webhook for your production environment.
  2. Set the endpoint URL to your production API route (e.g., https://yourdomain.com/api/stripe/webhook).
  3. Select the events you want to listen for (e.g., checkout.session.completed, customer.subscription.updated).

Deploy to Vercel

  1. Push your code to a GitHub repository.
  2. Connect your repository to Vercel and deploy it.
  3. Follow the Vercel deployment process, which will guide you through setting up your project.

Add environment variables

In your Vercel project settings (or during deployment), add all the necessary environment variables. Make sure to update the values for the production environment, including:

  1. BASE_URL: Set this to your production domain.
  2. STRIPE_SECRET_KEY: Use your Stripe secret key for the production environment.
  3. STRIPE_WEBHOOK_SECRET: Use the webhook secret from the production webhook you created in step 1.
  4. POSTGRES_URL: Set this to your production database URL.
  5. AUTH_SECRET: Set this to a random string. openssl rand -base64 32 will generate one.

Other Templates

While this template is intentionally minimal and to be used as a learning resource, there are other paid versions in the community which are more full-featured:

from  https://github.com/nextjs/saas-starter

------

 

The repository backing React 2025 has been updated to match what React actually will look like in 2025.

This means it uses all of the latest React 19 features, as well as improvements in Next.js in the past 4 years. You can still use this repo as an archived reference, but I would recommend checking out the new repo to see the latest patterns.

from  https://github.com/leerob/react2025

Tuesday, 15 September 2026

7款2026最新免費AI工具

涵蓋 AI 影片生成、AI 圖片生成、AI 文生影片、圖生影片、AI 配音、AI 創作等熱門功能。

其中包含 Seedance、Google Flow、Google Vids、Dreamina、Digen AI、Perchance 等高品質平台工具,部分工具支援無限免費使用,還有隱藏技巧協助你體驗更多進階模型。

本期推薦的免費工具:

1、免費無審圖像工具:https://perchance.org/ai-character-generator

2、Google Opal:https://opal.google/

3、Google Vids:https://workspace.google.com/products/vids/

4、Google Flow:https://labs.google/fx/tools/flow

5、DIGEN:https://digen.ai

6、Dreamina:https://dreamina.capcut.com/ai-tool/home

7、去水印工具:https://ezremove.ai/video-watermark-remover/


https://www.youtube.com/@aifreelabs