Sunday, January 30, 2022

V2EX - 技术

V2EX - 技术


58/赶集这类网站设计一个页面多少费用?

Posted: 30 Jan 2022 06:24 AM PST

想做分类信息类的网站,找了个程序,但页面做的有点粗糙,想着重新设计一下。 技术小白,不太懂这些,发帖请问下。 谢谢大家。

咨询一个继承、重载、父类、多态的方法调用问题

Posted: 30 Jan 2022 06:23 AM PST

遇到一个问题,需要外部调用父类的方法,怎么搞?

class Father { 	public void name() { 		System.out.println("father"); 	} }  class Son extends Father { 	public void name() { 		System.out.println("son"); 	} } 

如果 new Son()的话,

Son a = new Son(); Father b = new Son(); 

甭管 a 还是 b ,调用 name()都会显示 son 。

有没有什么办法,使得 b 调用 name()得到 father ?

BTW ,Son 可能还有其他方法需要 b 来调用。 再 BTW ,不限于使用反射来搞定。

onedrive 作为主力同步存储网盘有没有啥硬伤?

Posted: 30 Jan 2022 06:10 AM PST

最近订阅了了 365 ,有 1T 的容量。

目前看来,两个缺点:

1 在一些非私人环境,没有梯子,网页打不开。

2 不能对任意文件夹进行同步,只能移动到 onedrive 文件夹中?

此外,还有哪些问题么?

又看了一天的 Windows UI 相关的文档...

Posted: 30 Jan 2022 06:03 AM PST

结果还是乱乱乱!!!!!

WPF 和 UWP 傻傻分不清楚,有时候说 UWP 可以用,有时候又说 UWP 不能用, 新的.Net Core 居然不是系统自带。 WinUI3 目前还属于不稳定的状态,windowing 的功能虽然画勾了但是模式依然很固定,api 依然很少。 xaml 技术也不是主流,只能在 Windows 平台用一用。

微软总是什么都想要...绝了绝了绝了,我就想开发个桌面的 app ,太烦了。

电脑时钟每天误差 1-2 秒钟,是质量问题还是普遍现象?

Posted: 30 Jan 2022 05:34 AM PST

最近因为一些机缘巧合,发现电脑时钟每天似乎总有误差。

于是进行测试,系统为 Linux ,关闭操作系统的时间同步( Systemd 的时间同步),写了一个几行的脚本追踪系统时间误差(ntpdate -q)。

测试两台电脑,24 小时不关机,一个是技嘉 x570 ,每天变慢 2 秒钟,一个是微星 z170 ,每天变快 0.5 秒钟。这两个主板也不是非常低端的主板了,测了下电池电压也正常。结果每天误差这么多?

这个是质量问题还是普遍现象?

想了解下,这种时钟误差,应该是纯粹的主板的锅吧?跟 cpu 、芯片组、操作系统应该无关吧?

ciel_admin 有小伙伴一起使用研究的吗?我们只追求简洁。GoFrame,React,NextJS 的后台权限管理系统。

Posted: 30 Jan 2022 05:12 AM PST

ciel_admin 是一个简洁的后台管理系统,提供了简单的权限管理功能,和本地文件上传。

前端页面风格参考 https://www.random.org/

使用到的技术如下

  • 前端 react,next.js,axios,bootstrap,swr,react-toastify,node-sass
  • 后端 goframe v2

真的追求简洁,一个表的 CURD 前端+后端代码不到 100 行。如果你能让她更简洁请让我们一起改造吧。

她在这里: https://github.com/1211ciel/ciel-admin

登录页面 img

导航 img

详情页面&底部便捷导航 img

修改页面 img

项目中这样去隐藏类的真正实现 是种好的做法吗?

Posted: 30 Jan 2022 02:24 AM PST

//ModuleBase.h class ModuleBase { public:     ModuleBase();     ModuleBase(ModuleBase* _impl);     virtual ~ModuleBase() {}     //省略了很多方法声明。比如开启定时器的函数声明、通过传一个 lambda 表达式来起一个异步的任务 private:     android::sp<ModuleBase> impl; }; 

项目里写了一个框架,每个子模块都可以直接继承 ModuleBase 来使用定时器等功能,比如class ModuleA : public ModuleBase

//ModuleBaseImpl.h class ModuleBaseImpl : public ModuleBase { public:     ModuleBaseImpl(ModuleBase& owner);     virtual ~ModuleBaseImpl();     //省略了很多方法声明。比如开启定时器的函数声明、通过传一个 lambda 表达式来起一个异步的任务 private:     ModuleBase& mOwner; }; 

ModuleBaseImpl 则是模块通用功能的真正实现。

// ModuleBase 的实现 ModuleBase::ModuleBase()     : impl(new ModuleBaseImpl(*this)) { }  ModuleBase::ModuleBase(ModuleBase* _impl)     : impl(_impl) { } // ModuleBaseImpl 的实现 ModuleBaseImpl::ModuleBaseImpl(ModuleBase& owner)     : ModuleBase(this),     mOwner(owner) {  } 

上面我省略了很多函数的实现,实际上,ModuleBase 的很多函数都是通过它的android::sp<ModuleBase> impl成员来间接调用的,因为真正的实现都在 ModuleBaseImpl ,比如:

void ModuleBase::startTimer(int32_t timerId, uint64_t msec) {     if (NULL != impl.get()) {         static_cast<ModuleBaseImpl*>(impl.get())->startTimer(timerId, msec);     } } 

目前看来,这么写是为了隐藏 ModuleBaseImpl 的实现,使用者原则上只需要 include ModuleBase.h 即可,但这么写是一种比较好的写法吗?(而且理解起来比较费心智)

class  ModuleA : public ModuleBase{}; ModuleA a; 

比如上面这个,执行了ModuleA a;实际上生成了两个对象,第一个是我们能看到的 a 对象。第二个是ModuleBase::ModuleBase(): impl(new ModuleBaseImpl(*this)) {}里生成的 ModuleBaseImpl 对象(因为子模块 ModuleA 总是隐式地去调用父类 ModuleBase 的默认构造函数),但是使用者感觉不到这个 ModuleBaseImpl 对象的存在。

而且是:a 对象通过 sp 指针来指向这个隐藏 ModuleBaseImpl 对象,这个隐藏 ModuleBaseImpl 对象通过 owner 引用来指向 a 对象。(理解起来好费脑细胞啊)

(很尽力描述清楚了 QAQ )

包含表格的网页怎么完美保存为 Markdown?

Posted: 30 Jan 2022 02:04 AM PST

用 Obsdian ,拷贝粘贴,网页内容基本完好转换为 Markdown ,但是表格乱了,编辑起来很麻烦。 太复杂的插件不太想用,现在 ctrl-C+ctrl-V 就能解决大部分问题。

vue3 中如何获取子组件的属性值?

Posted: 30 Jan 2022 01:55 AM PST

如题

起因

本人非前端开发,起因是用 Java 做了一个 api ,然后想学习前端使用 vue3 element-plus 然后再集成一个 markdown 编辑器发布文章

过程

看到一个不错的编辑器 https://github.com/imzbf/md-editor-v3 ,然后看它的文档有一个 modelValue 的属性值是正文的内容,开发时创建了一个 MdEditor.vue 的子组件,又创建了一个 PostAdd.vue 的父组件,父组件里面是个表单,有标题、作者之类的,下面就是编辑器,需求是点创建时把编辑器正文的 markdown 字符作为表单的 content 值通过 post 提交给 api 完成创建

然后就卡到 把编辑器正文的 markdown 字符作为表单的 content 值 这一步了,查了 vue3 的文档看到 $refs 可以从父组件获取到子组件的属性值,前端知识学的不是太好,代码写成下面这样会报错,卡到这里不知道咋实现了

求教各位 v 友该如何实现这个需求

代码

样式图

父组件的代码

<script lang="ts" setup> import {reactive} from 'vue' import axios from "axios";  import MdEditor from "./MdEditor.vue"; // do not use same name with ref const form = reactive({   title: '',   createTime: '',   updateTime: '',   author: '',   tag: '',   postImage: '',   content: '', });   const onSubmit = () => {   console.log('submit!');   // axios.post('/posts', form)    console.log(form);   console.log(this.$refs.md_text.modelValue);  }; </script> 

Windows 电脑重装怎么保留各种聊天记录

Posted: 30 Jan 2022 01:27 AM PST

游戏本,迫于电脑打游戏有点小卡(性能肯定没问题),装了各种软件

  1. 各种聊天软件
  2. jetbrain 系
  3. vs 系列
  4. 各种浏览器
  5. 各种文档
  6. 各种数据库
  7. 各种 vpn

请问下现在想格式化重装,升级到 Windows11 ,其他倒还好处理一点,怎么保留各类聊天记录?万一以后要检索呢(钉钉、微信、qq )

(这台 windows 现在基本上很少用了,大半年前切换到 macbook m1 了,现在就打打游戏,远程做一些实在 m1 做不了的事情,但一直因为担心数据丢失没有格盘重装)

给大家看下我的软件,各种服务,自启动,估计让电脑变慢变卡了,或者有什么建议能快速备份所有东西

还是说不折腾了,卡也不是不能玩。。

image.png

新年愿望:修身养性

Posted: 30 Jan 2022 01:24 AM PST

2021 年下半年承受了不少工作压力,有些是团队困难时应当站出来承受的,有些是替别人的情绪和无能买单。晚上 11 点多到家的频率越来越高,周末元旦也在加班,在这个漫长的过程中,有不满、委屈、愤怒、逞能的情绪和行为,打工人是无奈的,尤其是步入职场不久还没有把事情看透的年轻人。敢怒不敢言或者敢怒又敢言都无力改变现状,职场是一个谁牛逼谁说了算的地方。在这个过程中,更多的是为别人的情绪和无能买单,在协作共赢的背景下好的成果得靠大家,某个人或者少数人努力很难有好的结果。 2022 年的新年愿望是修身养性,慢节奏、安静、思考是必要的,生活需要一些时间来感受生命和时间的流逝,需要平静的心去感受一秒钟的漫长。至于工作,它是一种谋生的手段,拿一份薪水,承担一份责任,该挺身而出的时候应该承担,但不要为别人的情绪和无能买单。谋生的本质是挣钱让自己活下来,焦虑和愤怒都在无形中杀死害我们。

老哥们,手机米 11,想买一个蓝牙耳机,推荐 enco x 还是小米真无线降噪耳机 3Pro

Posted: 30 Jan 2022 01:23 AM PST

老哥们,手机米 11 ,想买一个蓝牙耳机,推荐 enco x 还是小米真无线降噪耳机 3Pro ,第三方价格差不多,在两款中犹豫

有小伙伴用 drone runner 么? 求指教 runner-ssh 和 runner-exec 报错!

Posted: 29 Jan 2022 11:00 PM PST

根据官方文档,发现最常用的 drone runner 就是 runner-docker,用了几天,也基本上都能满足需求.

在看了下还有 runner-ssh 和 runner-exec 适用于非隔离环境,直接在宿主机执行一些 shell 命令的需求.不过官方也提示风险.于是尝试试了下,发现遇到坑了,Google 上查了很久也没有解决方案.

runner-exec 无法 clone private 仓库

按照官方教程安装到 Linux 上,查看日志正常, .drone.yml 里配置 type: exec 也能正常激活工作流,但是第一步 clone 就提示失败,这个问题只有私有仓库才会出现,但是共有仓库就没问题. 240d8e44baaf36b2f796bfcad5ae8663

runner-ssh

同样按照官方教程起的容器,也配置成功,.drone.yml 里配置 type: ssh 也正常激活工作流,但是直接报错.官方提示需要 openssh 7.9 及以上版本,我在 debian ubuntu 都是 8.4 版本,也不行. 这个错误感觉是整个工作流都无法执行,我尝试在 yml 里 disable clone,这个错误就变成下一步 greet skipped

dca52d6f83eed7b15c21b9fbb8546f62

如何彻底禁止 Windows 文件管理器导航窗格自动展开?

Posted: 29 Jan 2022 10:00 PM PST


Windows 11 21H2 (22000.434),文件管理器设置已取消勾选"展开到打开的文件夹",但是当从外部程序(如 Everything, qBittorrent )访问电脑中的可移动设备(如移动硬盘、U 盘)时,Windows 文件管理器左侧导航窗格依然会自动展开到当前打开的文件夹。



请问怎样才能彻底禁止该自动展开导航窗格的行为?或者有什么办法能移除左侧"此电脑"该导航项目。

分享最近阅读的书籍清单(三)

Posted: 29 Jan 2022 09:42 PM PST

elasticsearch 聚合结果的问题

Posted: 29 Jan 2022 06:41 PM PST

最近看 es 聚合分页的时候看到了 es 聚合结果不准的问题。

首先创建一个 index (分片数量大于 1 才会出现聚合不准的问题)
PUT /my_aggs_3
{ "settings": { "number_of_shards": 3}}


POST /my_aggs_/_bulk
{ "index": {}}
{ "money": 50, "bid":"11" }
{ "index": {}}
{ "money": 40, "bid":"11" }
{ "index": {}}
{ "money": 20, "bid":"11" }
{ "index": {}}
{ "money": 10, "bid":"10" }
{ "index": {}}
{ "money": 10, "bid":"10" }
{ "index": {}}
{ "money": 10, "bid":"10" }
{ "index": {}}
{ "money": 10, "bid":"10" }
{ "index": {}}
{ "money": 10, "bid":"10" }
{ "index": {}}
{ "money": 10, "bid":"10" }
{ "index": {}}
{ "money": 10, "bid":"10" }
{ "index": {}}
{ "money": 10, "bid":"10" }
{ "index": {}}
{ "money": 10, "bid":"10" }
{ "index": {}}
{ "money": 10, "bid":"10" }
{ "index": {}}
{ "money": 10, "bid":"9" }
{ "index": {}}
{ "money": 20, "bid":"9" }
{ "index": {}}
{ "money": 20, "bid":"9" }
{ "index": {}}
{ "money": 20, "bid":"9" }
{ "index": {}}
{ "money": 20, "bid":"9" }
{ "index": {}}
{ "money": 60, "bid":"8" }
{ "index": {}}
{ "money": 10, "bid":"8" }
{ "index": {}}
{ "money": 10, "bid":"8" }
{ "index": {}}
{ "money": 60, "bid":"7" }
{ "index": {}}
{ "money": 10, "bid":"7" }
{ "index": {}}
{ "money": 20, "bid":"6" }
{ "index": {}}
{ "money": 40, "bid":"6" }
{ "index": {}}
{ "money": 10, "bid":"5" }
{ "index": {}}
{ "money": 20, "bid":"5" }
{ "index": {}}
{ "money": 20, "bid":"5" }
{ "index": {}}
{ "money": 40, "bid":"4" }
{ "index": {}}
{ "money": 30, "bid":"3" }
{ "index": {}}
{ "money": 10, "bid":"2" }
{ "index": {}}
{ "money": 10, "bid":"2" }
{ "index": {}}
{ "money": 10, "bid":"1" }

一开始怎么测试都测不出不正确的结果,后来调小了 shard_size (官网说默认是 1.5 * size + 10 )

size 是你想要取前几名数据的几
shard_size 则是 es 会去每个分片上找多少个记录

GET my_aggs/_search
{
"from": 0,
"size": 0,
"aggs": {
"aggs_bid": {
"terms": {
"field": "bid.keyword",
"size":3,
"shard_size": 3,
"order": {
"aggs_money": "desc"
}
},
"aggs": {
"aggs_money": {
"sum": {
"field": "money"
}
}
}
}
}
}

----------结果-------------------

{
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 3,
"successful" : 3,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 33,
"relation" : "eq"
},
"max_score" : null,
"hits" : [ ]
},
"aggregations" : {
"aggs_bid" : {
"doc_count_error_upper_bound" : -1,
"sum_other_doc_count" : 20,
"buckets" : [
{
"key" : "11",
"doc_count" : 3,
"aggs_money" : {
"value" : 110.0
}
},
{
"key" : "10",
"doc_count" : 8,
"aggs_money" : {
"value" : 80.0
}
},
{
"key" : "8",
"doc_count" : 2,
"aggs_money" : {
"value" : 70.0
}
}
]
}
}
}

怎么给 Ubuntu Server 分配公网 IP

Posted: 28 Jan 2022 09:56 PM PST

公司有剩余的公网 IP, 我想用旧电脑装 UbuntuServer 做一个服务器.

服务器通过网线和光猫相连, 这个光猫好像是桥接的.

照着 这个 教程弄了一天也没弄好. 公司也没有运维, 没地方问.....

Debian 安装完成后 root 密码错误

Posted: 28 Jan 2022 09:55 PM PST

环境:VMware 虚拟机 版本:debian-11.2.0-amd64-netinst 问题描述:Debian 安装时设置的 Root 密码,在系统安装完成后用 root 用户登录会提示密码错误,而安装时新建的普通用户可以正常登录,涉及到 root 权限的所有场景都会提示密码错误,一开始以为是我自己记错了,重新创建新的虚拟机确认 root 密码( 5 位数)输入正确的情况下,还是会遇到上面的问题。

请教一下各位大佬,这是哪里没设置对吗?

No comments:

Post a Comment