看得透又看得远者prevail. ppt.cc/flUmLx ppt.cc/fqtgqx ppt.cc/fZsXUx ppt.cc/fhWnZx ppt.cc/fnrkVx ppt.cc/f2CBVx
ppt.cc/fKlBax ppt.cc/fwlgFx ppt.cc/fVjECx ppt.cc/fEnHsx ppt.cc/fRZTnx ppt.cc/fSZ3cx ppt.cc/fLOuCx ppt.cc/fE9Nux ppt.cc/fL5Kyx ppt.cc/f71Yqx tecmint.com linuxcool.com linux.die.net linux.it.net.cn ostechnix.com unix.com ubuntugeek.com runoob.com man.linuxde.net ppt.cc/fwpCex ppt.cc/fxcLIx ppt.cc/foX6Ux linuxprobe.com linuxtechi.com howtoforge.com linuxstory.org systutorials.com ghacks.net linuxopsys.com ppt.cc/ffAGfx ppt.cc/fJbezx ppt.cc/fNIQDx ppt.cc/fCSllx ppt.cc/fybDVx ppt.cc/fIMQxx
Total Pageviews
Saturday, 28 February 2026
FaceFusion
Industry leading face manipulation platform
Installation
Be aware, the installation needs technical skills and is not recommended for beginners. In case you are not comfortable using a terminal, our Windows Installer and macOS Installer get you started.
Run the command:
python facefusion.py [commands] [options]
options:
-h, --help show this help message and exit
-v, --version show program's version number and exit
commands:
run run the program
headless-run run the program in headless mode
batch-run run the program in batch mode
force-download force automate downloads and exit
benchmark benchmark the program
job-list list jobs by status
job-create create a drafted job
job-submit submit a drafted job to become a queued job
job-submit-all submit all drafted jobs to become a queued jobs
job-delete delete a drafted, queued, failed or completed job
job-delete-all delete all drafted, queued, failed and completed jobs
job-add-step add a step to a drafted job
job-remix-step remix a previous step from a drafted job
job-insert-step insert a step to a drafted job
job-remove-step remove a step from a drafted job
job-run run a queued job
job-run-all run all queued jobs
job-retry retry a failed job
job-retry-all retry all failed jobs
Documentation
Read the documentation for a deep dive.
from https://github.com/facefusion/facefusion
netflix-clone
A Modern Streaming Platform Clone This repository showcases a full-stack streaming platform project built with cutting-edge technologies. It serves as an educational demonstration of how to create a complex, interactive web application similar to popular video streaming services.
Sign in with email@netflix.com to view the live website.
In order to view the live website, you will need to sign in with your email. You can use any email address, no password is required. Once you sign in, you will be able to view the videos, like/dislike videos, and view your favourites list.
Users should ba able to:
- login to their account with email, no password needed
- see a list of videos
- play a video
- be responsive on mobile
- like/dislike a video
- view favourited videos (liked videos)
- view videos they have already watched
- discover new videos by topic/category
The real Netflix app has a pretty complex UI, but to break it down into simple components it looks something like this:
- Header/Navbar
- Logo
- Favourites List
- Profile
- Banner
- Large image
- Title, Description
- Play button
- Categories List
- Title
- List of videos (Card)
- On hover...
- Title, Description, Play button, Like/Dislike button
- On hover...
- Feature Section
- Tall images list
I used these as the basis for my component architecture.
The user can sign in with their email. I used Magic to send a link to the user's email and once they click the link, they are signed in.
Instead of storing passwords, I used Magic to generate a public and private key on the client side. Instead of creating and storing passwords in a database I control, Magic generates a DID (Decentralized Identifier) for the user, which is a unique identifier for the user. I used the DID to identify the user and store their watch data in a Supabase database.
Videos are displayed using the YouTube Player API to embed videos within an iframe. This allows us to control the video using JavaScript, however it created some challenges.
One struggle was displaying a gradient over the iframe
YouTube element. Because the gradient sits on top of the video, the
native play and pause buttons could not be clicked. To get around this, I
updated the player attribute to auto-play when the user clicks the
video. This also causes the gradient to be hidden, so the user can click
the native play and pause buttons. I don't love this solution, but it
works for now.
As we know, Next.js provides multiple methods for fetching data. We can use getStaticProps to fetch data at build time (SSG), or getServerSideProps to fetch data at request time. We can also use getInitialProps to fetch data on the client side.
For the specific video page ('/video/:id'), I decided to use incremental site regeneration using getStaticProps with the revalidate option. This means that the page will be regenerated at a specific time interval.
Some of the pages I could create statically at build time, and some of the pages I could create at request time. For example, the banner video will always be the same, so I could create that page statically at build time. However, the video page will change depending on the video, so I could create that page at request time.
I used Hasura to create a GraphQL API. Hasura is a GraphQL engine that connects to a Postgres database.
For my database, I used a Postgres database hosted by Supabase. Supabase is an open source Firebase alternative. It provides a Postgres database, and a GUI to create tables, and to query the database.
| Users | ||||
|---|---|---|---|---|
| column | issuer (PK) | publicAddress | id | |
| type | text | text | text | int |
| did:ethr:0x92bc... | 0x92bc... | info@cwarcup.com | 1 |
I used the Decentralized ID from Magic to identify the user and is the primary key for the users table. The getMetadata method returns an object with the user's public address, email, and DID.
| Stats | |||||
|---|---|---|---|---|---|
| column | id (PK) | userId (FK) | videoId | favourited | watched |
| type | int | text | text | boolean or Null | boolean |
| 1 | did:ethr:0x92bc... | Lcd0df7jwpM | true | true |
The stats table stores information about the user's interactions with a video. The userId is the user's DID, and the videoId is the YouTube video ID. The favourited column is a boolean that indicates whether the user has liked/disliked the video. The watched column is a boolean that indicates whether the user has watched the video.
I created a user role to ensure that only that user has access to their data. I used a JSON Web Token (JWT) token to authenticate the user.
Created an API route (/api/auth) to handle authentication. The API route uses the Magic Admin SDK NodeJS implementation to authenticate the user. The API route returns a JWT token to the client. The client then stores the JWT token in a cookie.
Next.js provides a middleware feature. Middleware is a function that is executed before a request is sent to the API route. I used the middleware to verify the JWT token from the browsers cookie.
I initially used JSON Web Token
to handle the signing and verification of the JWT token. However,
because the middleware was being run on Next.js' Edge Runtime, I didn't
have access to the Native NodeJS modules, and therefore some of the
methods in the jsonwebtoken package were not available. I decided to use jose instead.
The JWT token contains information about the user, such as their email, public address, and DID. When a user logs in, a new JWT token is generated, GraphQL queries Hasura to see if the user exists in the database by using the newly created JWT token (remember, this has 3 parts). If the user exists, user is logged in and the JWT token is stored in a cookie. If the user doesn't exist, GraphQL mutation occurs to create a new user in the database. The user is then logged in and the JWT token is stored in a cookie.
The database is setup to only allow a user to access their own data unless they have
X-Hasura-Roleset toadminand have thex-hasura-admin-secret. This ensures that a user can only access their own data.
The stats API is used to read the token from the cookie created during the authentication process. The JWT token if verified using the Magic SDK
and then queried against the database. If the stats for that user do
not exist, they are created. If the stats do exist, they are returned to
the client.
The API's purpose is to allow a user to like/dislike a video, as well as view previously watched videos.
from https://github.com/Cwarcup/netflix-clone
Friday, 27 February 2026
如何把基于deno的github仓库导入到deno deploy平台?
1. 准备工作
在导入之前,请确保你的 github仓库符合以下条件:
入口文件:仓库中有一个入口文件(例如main.ts , server.ts ,mod.ts 或index.ts)
代码已推送:确保你的最新代码已经git push到你的仓库或者你也可以在github.com/yourusername/yourrepo中,在线修改你的代码(当然你需先登录你的github账号)
2. 导入步骤
访问 https://console.deno.com/login,建议用你的github账号进行登录。登录后,就跳转到了
https://console.deno.com/你的github账号名。然后点击'new app'按钮,在跳转到的页面里,
在复选框select user or organization里,选择用户名,我的用户名是briteming(它就是我的github账号名)。在briteming的下一行的select repository复选框里,输入你的仓库名进行搜索,(我的仓库名是tsb, tsb 是fork自https://github.com/lumeland/theme-simple-blog),点击搜索出来的仓库名,然后点击页面下方的create app按钮,deno.com平台就开始部署你的程序了,等待部署完成,部署完成后,我得到了网址https://tsb.briteming.deno.net/,它就是我的静态博客的网址。
项目地址:
https://github.com/lumeland/theme-simple-blog
https://github.com/briteming/tsb
博客地址: https://tsb.briteming.deno.net/
上面说的‘ 你也可以在github.com/yourusername/yourrepo中,在线修改你的代码’就是指新建源帖。
访问https://github.com/briteming/tsb/tree/main/src/posts,新建源帖fh.md, 内容为:
---
title: 战马
date: '2026-02-22T20:30:00'
author: ym
tags:
- misc1
- misc2
- misc3
comments:
src: 'https://mastodon.gal/@misteroom/110810445656343599'
draft: false
---
此处写html代码或正文
(详见 https://github.com/briteming/tsb/blob/main/src/posts/fh.md?plain=1)
略等1分钟,博客网站就会更新 。
相关帖子: 安装基于deno的静态博客程序lume
Thursday, 26 February 2026
初级的建站服务-低代码平台
低代码平台我见到比较不错的是 Webflow,它的新手引导设计的很不错。
另外由于最近 AI 的发力,Vercel 前段时间推出的基于 AI 的低代码平台 v0 可以关注一下,和 AI 对话告诉它你想修改哪个部分,想返稿就返稿,相当于一个 1v1 专职程序员为你服务了,它也许才是以后低代码平台的最终形态。





