Viva
WeChat

有人可以加我到微信编程聊天吗?

Viva
UpWork 帐户

大家好。我有一个可以工作的 UpWork 帐户。如果您需要,我可以提供访问权限。我的沟通联系方式:

Telegram: @gvllvg

WeChat ID: wxid_3t6gjbw1qmc822

Skype: live:.cid.1549d28c4d91eeeb

Octocat?
Python100题——test8:从列表中删除元素;
# -*- 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()
把AWS变成个人网盘:使用Rust构建的亚马逊云盘客户端

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框架构建了这个产品。


注意事项

warning 中国大陆需要确保能够访问 AWS 服务 目前仅支持Windows系统

准备

有关安装说明,请展开适用于您的操作系统的部分。

下载AWS Cli

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框架感兴趣请随时与我们进行联系。

Expector
C/C++ 以及 Rust 中的 getch 实现

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 termiostcgetattrtcsetattrcfmakeraw 以及 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 }
}
渡劫
为什么相同的循环体次数,for循环明显更快执行完毕?

#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(); }

}

}

Bear Billys
您的道德和有效的社會工程夥伴

社會工程需要技巧和精確度。專業角支持您安全、合乎道德地開展業務。

我們的客製化服務:

深入調查:我們收集相關信息,讓您搶佔先機。 建立引人注目的個人資料:我們開發可信賴的數位身分來加強您的方法。 優化您的流程:我們自動執行重複性任務以提高效率。 專家建議:受益於我們的專業知識來完善您的策略。 為什麼選擇我們?

絕對保密:您的專案將得到最大程度的謹慎處理。 具體結果:我們為您提供詳細的報告,幫助您做出最佳決策。 個人化解決方案:我們的服務適應您的特定需求。 準備好探索新的視角了嗎?

聯絡我們

https://t.me/Matricule02

https://mitalk.lat/proteus/

Expector
根据视频生成可以头尾衔接的循环视频

最近手头有一个视频,基本上是一个部分重复循环的,我想把循环的一段提取出来造成动态壁纸,但怎奈何不会用 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

图像哈希越相似,图像就越相似。两个哈希值的相似度可以用汉明距离表示,汉明距离表两个二进制数差异的位数,可以通过异或和中 math 的个数计算。

def hamming_distance(hash1: int, hash2: int) -> int:
    return bin(hash1 ^ hash2).count('1')

接下来遍历每一帧的哈希找到距离最近的两帧即可。遍历过程如果有确定起始或结束帧可以直接遍历,复杂度 math;如果没有固定起始帧,根据汉明权重(也就是与 math 的汉明距离)排序后遍历即可,复杂度 math

最后完整代码在github gist

Expector
分享一下自己常用的矩阵快速幂优化dp模板

适合竞赛用,应该是相关模板最简洁的之一吧,不需要的部分(参数传递、命名空间、类型别名什么的)自己根据实际情况改一改就可以了。

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;
}
雏雁计划有人可以提供一个方向吗,实在想不出来qwq

如题,本人擅长 Java 后端 ,同学都是萌新,找到方向之后再找人heart

nexmoe
需要便宜的短期 GPU 租赁吗? 我们正在做这个事情!

⚡️ 灵动算力:为AI工作者提供短期、经济的算力

💰 比市场价低40%

⏱️ 按需租用,灵活便捷

👓 我们也在对长期租赁进行技术攻克中,做到无感迁移

了解更多:https://agile.nexmm.com

#GPU租赁 #AI计算 #省钱利器

nexmoe
[福利] 共绩算力共建者计划 - 免费获得价值 15,000+ 元的 4090 算力卡

大家好!我们最近推出了一个非常棒的共建者计划,想和朋友们分享一下。

计划亮点

  • 免费获得: 一张为期一年的 4090 算力卡(市场价值 15,000+ 元)

  • 适合人群: AI 产品开发者或科研计算领域从业者

  • 简单门槛: 提供反馈、协助测试和适度推广

如何参与

前往详情页了解

https://www.gongjiyun.com/seed.html

注意事项

  • 审核在 1-3 个工作日内完成

  • 资源以平台积分形式分批发放

  • 需在您的网站/应用底部添加我们的 LOGO 和链接

有任何问题,欢迎在评论区讨论。

从事 AI 开发的朋友们,不要错过这个机会哦!

摸鱼未遂
改版了哦,看起来更加高大上了

RT

HD Superman
用 Remix 重构了 HackerTalk

nextjs 的 beta 版本一直不满意没发布 frowning ,React Server Component 虽然能优化首次加载,但页面路由都会引入 _rsc 请求,导致卡顿(取决于网络质量),不能充分利用客户端缓存数据。

Remix 的 clientLoader 可以很好解决这个问题,兼顾 SEO 和路由体验,同时可以和 mswjs 配合,极大提高开发效率。

sakishum
【福利】业余时间练手写了个键鼠录播+点击器的 mac app

app store链接🔗 业余时间练手写了个键鼠录播+点击器的 mac app。 放几个促销码供 各位黑客说的水友,错过就错过了哦! grin WHLN4ANKHP3E FNX6TF347MH6 R7XTPHMXAX3Y

j2go
手撸经典版魔塔

梦回 2005,当年第一个电子词典,为了通关魔塔,专门用个小本本计算怪的数值,

去年突然想玩,微信上搜了一圈,没有一个能玩下去,要么移动太慢,要么挂羊头卖狗肉,于是就想自己撸一个,

没想到撸了三个多月才出来稍微算完整的第一版,11 月提交审核了,

没没没想到,一审审了 5 个月!!! 离谱,都快忘了这件事了,月初看审过了,但是还是上不了,kao kao kao, 还要备案,那也没办法,都这么久了,还是得上,

前天终于上线了,为了能搜索到还交了 30 块保护费,oh shit

有想玩玩的朋友可以微信搜 mota, 小程序那一栏里看到 motagame 就是了

中文名 魔塔 搜不到,因为这个名字我用不了, triumph

崔崔不会胖
学生作业求助

编写函数,返回一个数的逆序后组成的数。在main函数中输入一个数x,通过函数调用输出它逆序后组成的数。

请问怎么才能实现在main函数中成功调用devert函数呢?我现在写完之后不知道return后面应该跟什么了。请求各位帮忙看一下,谢谢。

storytellerF
分享在docker 里面开发Android 项目

同理,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:
John
有谁会写毕设
有谁会写毕设
aisbr
app无法登录,抓包数据。网页版可以登录,求分析求解

标识符

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