有人可以加我到微信编程聊天吗?
大家好。我有一个可以工作的 UpWork 帐户。如果您需要,我可以提供访问权限。我的沟通联系方式:
Telegram: @gvllvg
WeChat ID: wxid_3t6gjbw1qmc822
Skype: live:.cid.1549d28c4d91eeeb
# -*- coding: utf-8 -*-
# Author: wanlin_zhang
# Date: 2024-10-29 21:49:30
# File: t8_remove_elements_from_list.py
# Software: Visual Studio Code 1.85.1
# 从列表1~10中删除odd元素
def remove_odd_elements(list_data):
for i in list_data:
if i % 2 != 0:
list_data.remove(i)
return list_data # 返回删除odd元素后的列表, 但是这种方法会导致删除元素后,列表的长度会发生变化,导致后续元素的索引发生变化。
def remove_odd_elements_2(list_data):
return [i for i in list_data if i % 2 == 0] # 通过表达式返回删除odd元素后的列表,但是不会改变原列表的长度。
def main():
list_data = list(range(1, 11))
print(f"删除odd元素后的列表为:{remove_odd_elements_2(list_data)}")
print(f"原列表为:{list_data}")
print(f"删除odd元素后的列表为:{remove_odd_elements(list_data)}")
if __name__ == "__main__":
main()
GenUI S3 Cloud Drive
使用Rust Makepad框架以及GenUI内置组件库编写的简单 AWS S3 云盘客户端
Releases: genui_s3_cloud_drive_0.0.1_pre
关于作者
我是Will,Privoce的工程师,Privoce目前是一个以Rust为主的, 面向下一代互联网产品的创新型初创企业。 GenUI是类Vue的声明式前端框架,当前使用Makepad作为底层渲染引擎,将来它也能够使用AI生成UI
产品背景
之前当我在使用云盘时,多数接触到类似百度云盘的产品,这类产品的通病在于唯VIP服务,如果你不是VIP你将"享受"到高达128KB/S的极致享受,无论上传还是下载都会收到极大的限速。有天当我为同事传输一些训练集数据时偶然接触到亚马逊的S3云盘时,让我感受到S3的便利,但由于使用Cli作为传输工具也带来了命令行的通病,我们需要记忆很多的命令并且需要频繁查询地址(云盘Cli无法使用Tab),因此我使用我正在研发的GenUI框架构建了这个产品。
注意事项
中国大陆需要确保能够访问 AWS 服务 目前仅支持Windows系统
准备
有关安装说明,请展开适用于您的操作系统的部分。
下载AWS Cli
Windows
安装和更新要求
- 我们支持微软支持 AWS CLI 的 64 位 Windows 版本
- 安装软件的管理员权限
下载并运行适用于 Windows (64 位) 的 AWS CLI MSI 安装程序:https://awscli.amazonaws.com/AWSCLIV2.msi
或者,您可以运行 msiexec 命令来运行 MSI 安装程序。
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
# For various parameters that can be used with msiexec, see msiexec on the Microsoft Docs website.
# For example, you can use the /qn flag for a silent installation.
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi /qn
Config
下载完成后需要登录AWS并获取分配的账号进行配置 查阅 Config the AWS Cli
aws configure
AWS Access Key ID [None]: YOUR ACCESS KEY ID
AWS Secret Access Key [None]: YOUR SECRET ACCESS KEY
Default region name [None]: REGION NAME
Default output format [None]: json
Features
- [x] 检查S3配置
- [x] 连接S3 Cli
- [x] 获取云盘文件,文件夹
- [x] 上传文件到云盘
- [x] 删除文件,文件夹
- [x] 分享文件,文件夹
- [x] 使用亚马逊S3 Cli
- [ ] 上传文件夹到云盘
- [ ] 创建文件
- [ ] 使用亚马逊S3 SDK
欢迎👏大家使用本产品并提出宝贵的建议帮助我进行优化,如果您对我正在构建的GenUI框架感兴趣请随时与我们进行联系。
getch
是一个在 C 语言编程中常用的函数,用于从键盘读取一个字符,但不回显到屏幕上。
在 Windows 环境下,getch
实现通常包含在 <conio.h>
头文件中。需要注意的是,getch
这个符号并非标准,标准的符号是 _getch
,虽然 getch
一般会被指向 _getch
,但你应当使用 _getch
而非 getch
。
在 Unix/Linux 环境下,没有系统提供的 getch
实现,我们可以通过以下方法实现:
#include <termio.h>
int getch(void) {
struct termios tm, tm_old;
int fd = 0, ch;
if (tcgetattr(fd, &tm) < 0) { // 保存现在的终端设置
return -1;
}
tm_old = tm;
cfmakeraw(&tm); // 更改终端为原始模式,该模式下所有的输入数据以字节处理
if (tcsetattr(fd, TCSANOW, &tm) < 0) { // 设置上更改之后的设置
return -1;
}
ch = getchar();
if (tcsetattr(fd, TCSANOW, &tm_old) < 0) { // 更改设置为最初的样子
return -1;
}
return ch;
}
其中 struct termios
,tcgetattr
,tcsetattr
,cfmakeraw
以及 getchar
的定义为:
typedef unsigned char cc_t;
typedef unsigned int speed_t;
typedef unsigned int tcflag_t;
#define NCCS 32
struct termios{
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
int tcgetattr(int __fd, struct termios *__termios_p);
void cfmakeraw(struct termios *__termios_p);
int tcsetattr(int __fd, int __optional_actions, const struct termios *__termios_p);
int getchar(void);
据此,我们可以通过 Rust 的 FFI 为 rust
实现一个 getch
:
#[cfg(target_os = "windows")]
mod conio {
use std::os::raw::c_int;
extern "C" {
pub fn _getch() -> c_int;
}
}
#[cfg(target_os = "linux")]
#[allow(non_camel_case_types)]
mod conio {
use std::os::raw::c_int;
type tcflag_t = ::std::os::raw::c_uint;
type speed_t = ::std::os::raw::c_uint;
type cc_t = ::std::os::raw::c_uchar;
const NCCS: usize = 32;
const TCSANOW: i32 = 0;
#[repr(C)]
#[derive(Default, Copy, Clone)]
struct termios {
c_iflag: tcflag_t,
c_oflag: tcflag_t,
c_cflag: tcflag_t,
c_lflag: tcflag_t,
c_line: cc_t,
c_cc: [cc_t; NCCS],
c_ispeed: speed_t,
c_ospeed: speed_t,
}
extern "C" {
fn tcgetattr(__fd: c_int, __termios_p: *mut termios) -> c_int;
fn tcsetattr(__fd: c_int, __optional_actions: c_int, __termios_p: *const termios) -> c_int;
fn cfmakeraw(__termios_p: *mut termios);
fn getchar() -> c_int;
}
#[allow(unused_mut, unused_assignments)]
pub fn _getch() -> c_int {
unsafe {
let mut tm: termios = Default::default();
let mut tm_old: termios = Default::default();
let fd = 0;
let mut ch: c_int;
if tcgetattr(fd, &mut tm) < 0 {
return -1;
}
tm_old = tm;
cfmakeraw(&mut tm);
if tcsetattr(fd, TCSANOW, &mut tm) < 0 {
return -1;
}
ch = getchar();
if tcsetattr(fd, TCSANOW, &mut tm_old) < 0 {
return -1;
}
ch
}
}
}
#[allow(unused_unsafe)]
fn getch() -> char {
unsafe { conio::_getch() as u8 as char }
}
#include <reg51.h>
void delay(void) { //while循环方式 unsigned char i=200; unsigned char j=200; while (i--) while(j--); /* //for循环方式 unsigned char i = 200; unsigned char j = 200; for (i=200 ;i>0;i--) for(j=200; j>0 ;j--); */ }
void main(void) { while(1) { unsigned char p = 0x01; unsigned char q; for ( q = 0 ; q < 8 ; q++) { P0 = ~(p << q); delay(); }
}
}
社會工程需要技巧和精確度。專業角支持您安全、合乎道德地開展業務。
我們的客製化服務:
深入調查:我們收集相關信息,讓您搶佔先機。 建立引人注目的個人資料:我們開發可信賴的數位身分來加強您的方法。 優化您的流程:我們自動執行重複性任務以提高效率。 專家建議:受益於我們的專業知識來完善您的策略。 為什麼選擇我們?
絕對保密:您的專案 將得到最大程度的謹慎處理。 具體結果:我們為您提供詳細的報告,幫助您做出最佳決策。 個人化解決方案:我們的服務適應您的特定需求。 準備好探索新的視角了嗎?
聯絡我們
https://t.me/Matricule02
https://mitalk.lat/proteus/
最近手头有一个视频,基本上是一个部分重复循环的,我想把循环的一段提取出来造成动态壁纸,但怎奈何不会用 pr,只能用 ffmpeg 配合 pillow 搞了……
实现的关键在于找到可以首位相接的两帧画面,这就要求两个画面有极高的相似度。判断画面相似度首先需要对图像进行量化,一般有两种方案,一种是提取特征向量,一种是计算哈希。考虑到我手头视频的特征,我选择了比较简单的哈希。
开始之前,需要安装必要的包以及 ffmpeg
,执行
pip install ffmpeg-python Pillow numpy imagehash
!Notice 简略起见,以下代码不重要部分折叠,具体实现参照文末链接
首先需要把视频分离成帧,存入数组:
def extract_frames(input_video) -> Generator[np.ndarray, None, None]:
# 一个生成器,生成每一帧的数据存入 numpy 数组
...
图像的哈希算法有多种,比如均值哈希(aHash)、感知哈希(pHash)以及差异哈希(dHash),各有优劣,但选择哪一种对接下来的算法影响不大,我这里以 pHash 为例。以上图像哈希算法在 imagehash
中均有提供,由于本篇主要讨论循环视频生成,哈希算法的具体原理就不研究了(肯定不是因为我不会)。
def generate_hashes(input_video: str) -> Generator[int, None, None]:
for frame in extract_frames(input_video):
# 将 numpy 数组转换为 PIL 图像
pil_image: ImageHash = Image.fromarray(frame)
# 生成 pHash 值
phash_value = int(str(phash(pil_image)), 16)
yield phash_value
图像哈希越相似,图像就越相似。两个哈希值的相似度可以用汉明距离表示,汉明距离表两个二进制数差异的位数,可以通过异或和中 的个数计算。
def hamming_distance(hash1: int, hash2: int) -> int:
return bin(hash1 ^ hash2).count('1')
接下来遍历每一帧的哈希找到距离最近的两帧即可。遍历过程如果有确定起始或结束帧可以直接遍历,复杂度 ;如果没有固定起始帧,根据汉明权重(也就是与 的汉明距离)排序后遍历即可,复杂度 。
最后完整代码在github gist。
适合竞赛用,应该是相关模板最简洁的之一吧,不需要的部分(参数传递、命名空间、类型别名什么的)自己根据实际情况改一改就可以了。
namespace MTX {
using i64 = int64_t;
constexpr i64 MTX_SIZE = 3;
using vec = std::array<i64, MTX_SIZE>;
using mtx = std::array<vec, MTX_SIZE>;
mtx &mul(mtx &a, const mtx &b, const i64 m = INT64_MAX) {
mtx r{};
for (int i = 0; i < MTX_SIZE; ++i)
for (int j = 0; j < MTX_SIZE; ++j)
for (int k = 0; k < MTX_SIZE; ++k)
r[i][j] = (r[i][j] + a[i][k] * b[k][j] % m) % m;
a = std::move(r);
return a;
}
mtx &dp(mtx &s, mtx& f, i64 n, const i64 m = INT64_MAX) {
while (n) {
if (n & 1) mul(s, f, m);
n >>= 1, mul(f, f, m);
}
return s;
}
} // namespace MTX
使用样例(斐波那契数列):
#include <bits/stdc++.h>
namespace MTX {
using i64 = int64_t;
constexpr i64 MTX_SIZE = 3;
using vec = std::array<i64, MTX_SIZE>;
using mtx = std::array<vec, MTX_SIZE>;
mtx &mul(mtx &a, const mtx &b, const i64 m = INT64_MAX) {
mtx r{};
for (int i = 0; i < MTX_SIZE; ++i)
for (int j = 0; j < MTX_SIZE; ++j)
for (int k = 0; k < MTX_SIZE; ++k)
r[i][j] = (r[i][j] + a[i][k] * b[k][j] % m) % m;
a = std::move(r);
return a;
}
mtx &dp(mtx &s, mtx& f, i64 n, const i64 m = INT64_MAX) {
while (n) {
if (n & 1) mul(s, f, m);
n >>= 1, mul(f, f, m);
}
return s;
}
} // namespace MTX
int main() {
std::ios::sync_with_stdio(0);
std::cin.tie(nullptr);
MTX::mtx s{(MTX::vec)
{1, 1},
{0, 0}
}, f{(MTX::vec)
{0, 1},
{1, 1}
};
MTX::i64 n;
std::cin >> n;
std::cout << MTX::dp(s, f, n - 1, 1e9 + 7)[0][0] << std::endl;
return 0;
}
⚡️ 灵动算力:为AI工作者提供短期、经济的算力
💰 比市场价低40%
⏱️ 按需租用,灵活便捷
👓 我们也在对长期租赁进行技术攻克中,做到无感迁移
了解更多:https://agile.nexmm.com
#GPU租赁 #AI计算 #省钱利器
大家好!我们最近推出了一个非常棒的共建者计划,想和朋友们分享一下。
计划亮点
-
免费获得: 一张为期一年的 4090 算力卡(市场价值 15,000+ 元)
-
适合人群: AI 产品开发者或科研计算领域从业者
-
简单门槛: 提供反馈、协助测试和适度推广
如何参与
前往详情页了解
https://www.gongjiyun.com/seed.html
注意事项
-
审核在 1-3 个工作日内完成
-
资源以平台积分形式分批发放
-
需在您的网站/应用底部添加我们的 LOGO 和链接
有任何问题,欢迎在评论区讨论。
从事 AI 开发的朋友们,不要错过这个机会哦!
nextjs 的 beta 版本一直不满意没发布 ,React Server Component 虽然能优化首次加载,但页面路由都会引入 _rsc 请求,导致卡顿(取决于网络质量),不能充分利用客户端缓存数据。
Remix 的 clientLoader 可以很好解决这个问题,兼顾 SEO 和路由体验,同时可以和 mswjs 配合,极大提高开发效率。
app store链接🔗 业余时间练手写了个键鼠录播+点击器的 mac app。 放几个促销码供 各位黑客说的水友,错过就错过了哦! WHLN4ANKHP3E FNX6TF347MH6 R7XTPHMXAX3Y
梦回 2005,当年第一个电子词典,为了通关魔塔,专门用个小本本计算怪的数值,
去年突然想玩,微信上搜了一圈,没有一个能玩下去,要么移动太慢,要么挂羊头卖狗肉,于是就想自己撸一个,
没想到撸了三个多月才出来稍微算完整的第一版,11 月提交审核了,
没没没想到,一审审了 5 个月!!! 离谱,都快忘了这件事了,月初看审过了,但是还是上不了,kao kao kao, 还要备案,那也没办法,都这么久了,还是得上,
前天终于上线了,为了能搜索到还交了 30 块保护费,oh shit
有想玩玩的朋友可以微信搜 mota
, 小程序那一栏里看到 motagame
就是了
中文名 魔塔 搜不到,因为这个名字我用不了,
编写函数,返回一个数的逆序后组成的数。在main函数中输入一个数x,通过函数调用输出它逆序后组成的数。
请问怎么才能实现在main函数中成功调用devert函数呢?我现在写完之后不知道return后面应该跟什么了。请求各位帮忙看一下,谢谢。
同理,flutter reactNative 也是一样的
devcontainer.json
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu
{
"name": "Fei-Dev",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"dockerComposeFile": "../docker-dev-build/docker-compose.yml",
"service": "devcontainer",
"workspaceFolder": "/workspace",
"features": {
"ghcr.io/devcontainers/features/java:1": {},
"ghcr.io/nordcominc/devcontainer-features/android-sdk:1": {}
},
"customizations": {
"vscode": {
"extensions": [
"DavidAnson.vscode-markdownlint",
"isudox.vscode-jetbrains-keybindings",
"vscjava.vscode-gradle",
"totalcross.android-xml-editor",
"ms-azuretools.vscode-docker",
"adelphes.android-dev-ext",
"fwcd.kotlin"
]
}
},
"shutdownAction": "stopCompose",
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "adb start-server && sh gradlew build",
// "postAttachCommand": "adb connect emulator:5555"
// Configure tool-specific properties.
// "customizations": {},
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
//fixme 尝试使用vscode 用户可以访问volume
"remoteUser": "root"
}
docker-compose.yml
services:
devcontainer:
image: mcr.microsoft.com/devcontainers/base:ubuntu
command: /bin/sh -c "while sleep 1000; do :; done"
ports:
- "8080-8090"
volumes:
- ..:/workspace:cached
- gradle-cache:/root/.gradle
- top-cache:/root/.cache
emulator:
image: budtmo/docker-android:emulator_11.0
ports:
- "6080"
environment:
- EMULATOR_DEVICE=Samsung Galaxy S10
- WEB_VNC=true
devices:
- /dev/kvm
volumes:
gradle-cache:
top-cache:
标识符
483DAB9E-B587-4DAE-936C-201F5BC4BCBA
备注
Error Domain=kCFStreamErrorDomainSSL Code=-9806"(null)" UserInfo=/NSLocalizedRecoverySuggestion=Errorcode definition can be found in Apple's SecureTransport.h}
请求信息
CONNECT m.m******(手动打码).pt:443 HTTP/1.1
请求头部
Host: m.m*******.ptConnection: keep-alive
发送请求头部
未发送
服务端开始响应
未响应
请求完成2024/04/26 10:11:40.529