2023-9-17-第35周 周记
第一周周记,这是一次学习和坚持的尝试,差不多有三个核心点吧,整体思路和形式来自《认知觉醒》和 印记。
用每天记录的形式代替每天的打卡,比起打卡模式,记录没有打卡的任务压力,可以将注意力集中到活动本身,而不是完成任务上,
对每天设置的小任务来说不设置上线,设置下限,我希望的是完成目标毫无负担,愿意顺着惯性继续学下去,多学一点都是额外的收获,心态完全不同,身心容易沉浸,不会顾虑什么时候才能完成任务
发布社交媒体账号,可以自我push~
目前先采用这种形式吧,以后根据实际情况在修改细节部分
2023-09-14-周四
一天安排
[x] 看一集生活大爆炸 看了两集
[x] 两道题 边界处理细节问题
[x] 10个单词 30
[x] 自我拯救系列简单规划
[ ] 仿真交叉对比 (不成功~)
[x] 投递1~2个简历 北京 - 济南
memo
我觉得能够长期坚持一些事情有两个核心点:
一是要做适当的规划,一个比较合适的方式是将代办事项写在纸上或者记在软件上,有个著名的方法叫做GTD , 这个方法规划任务分为五个步骤:收集、厘清、整理、检查、执行,我大概尝试了一下,并不是很适合我, ...
Linux常见指令和权限理解
常见指令
目录
ls/cd/pwd
对文件操作
查看文件内容
查找
打包压缩
其他一些命令
whoami/clear/rmdir/date/cal/alias/bc/uname
基础知识
目录
linux用户相关
路径认识
热键
重定向
shell运行原理
权限
ACM时间
ACM时间:stat + 文件名 查看文件状态
Access:文件最后访问时间
Modify:文件最后修改时间
Change:对文件最后的Inode信息最后修改时间
个人AI笔记知识库-钉钉个人版(内测),确定不来试试么?
今天打开阿里云盘突然提示钉钉个人内测版本推送,打开一看,好家伙,钉钉什么时候搞的这么酷了!大体一看类似于notion的页面,结合AI功能,直接有点牛波一了,如果你是笔记+AI重度用户,绝对值的一试。
我个人是有记笔记的习惯的,也尝试过很多不同的笔记软件,从最开始的typora到语雀,再到现在的obsidian,也算一个重度的markdown笔记用户了。
为什么突然会说这个钉钉个人版本呢,钉钉个人版本除了基础的各种笔记功能之外,主要还集成了AI创作服务,关键是现在是免费的(包括文生文、文生图、角色对话、以及AI创作服务)
我个人是AI的重度用户(ChatGPT、Cloude)基本天天用,目前钉钉的AI是阿里的大模型:通义千问、通义万相,分别负责文本生成和图片生成。
下面是普通文档,按空格建就能调出AI写作。下边图片的文字部分就是由钉钉AI完成。
当然钉钉这种写程序也是OK的,最左侧这一栏,第二个就是AI创作的选项,贾维斯基于通义千问,可以写文档,写代码,并且钉钉个人版本提供了很多预设的指令。
缪斯基于通义万象,就类似于midjourney,通过文本描述,它能生成对应的图片。
...
ctemplate,安装以及出现报错处理方式
简介
Google CTemplate是一个开源的C++模板引擎,可以生成html文件,今天安装出现一些问题,在此将遇到的问题以及解决方式记录下来# 简介
安装
git clone https://github.com/OlafvdSpek/ctemplate.git
cd ctemplate
./autogen.sh
./configure
make
sudo make install(注意带sudo)
出现问题1
安装ctemplate出现问题 autoreconf: command not found
解决方式:
运行:sudo yum install -y autoconf automake libtool
出现问题2
编写测试程序运行遇到报错:
./mytest: error while loading shared libraries: libctemplate.so.3: cannot open shared object file: No such file or directory
解决方式:
运行:export LD\_LIBRARY\_PATH=$LD\_L ...
4、负载均衡式在线OJ-编译运行(网络)
httplib下载
cpp-httplib-v0.7.15下载
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364#include "compile_run.hpp"#include "../common/httplib.h"using namespace httplib;using namespace ns_compile_and_run;//编译服务随时可能被多个人请求,必须保证传递上来的code,形成源文件名称的时候,要具有////唯一性,要不然多个用户之间会互相影响//int main()//{// //提供的编译服务,打包形成一个网络服务// //cpp-httplib// // in_json: {"code": "#include...", "input&quo ...
4、负载均衡式在线OJ-编译运行
该模块为编译运行功能,该模块需要使用json库,首先安装json,作用是将结构化的数据转化为字符串,做序列化和反序列化工作
命令:sudo yum install jsoncpp-devel
整体逻辑
Start函数
1static void Start(const std::string &in_json, std::string *out_json){}
Start函数参数
start函数的两个参数
in_json: {“code”: “#include …”, “input”: “”, “cpu_limit”: 1, “mem_limit”:10240}
out_json: {“status”:0, “reason”:“”, “stdout”:“”, “stderr”:“”}
in_json字符串中的内容
code: 用户提交的代码
input: 用户给自己提交的代码对应的输入,暂不做处理
cpu_limit: 时间要求
mem_limit: 空间要求
out_json字符串中的内容
status: 状态码 (必填)
rea ...
3、负载均衡式在线OJ-运行模块
运行模块
运行模块作用是:执行编译模块编译好的可执行程序,我们希望,输出、输出、错误等信息能写入到文件中。Run模块只关心运行,不关注结果的正确与否,结果正确与否靠测试用例判断
运行逻辑
这里需要重定向工作
标准输入
标准输出
标准错误
运行服务大致过程类似编译:
创建子进程
子进程通过execl执行编译好的可执行程序
那么这里会有两个问题
编译的代码可能是死循环或者恶意代码
运行出错如何知道是哪种错误
问题1可以通过资源限制来解决,通过限制运行时间,和申请内存上限等方式可以解决
问题2解决方式:
首先设计运行类,类中提供静态方法Run,该函数通过文件名可以自动拼接路径,然后再执行对应逻辑,返回值可以代表程序运行时的各种错误,比如我们规定:
返回值 > 0: 程序异常了,退出时收到了信号,返回值就是对应的信号编号
返回值 == 0: 正常运行完毕的,结果保存到了对应的临时文件中
返回值 < 0: 内部错误
具体代码
1234567891011121314151617181920212223242526272829303132333435363738394 ...
2、负载均衡式在线OJ-编译服务设计
一、编译服务框架
二、具体实现
首先是编译模块,封装Compiler类,提供Compile函数接口,具体编译流程如下:
根据传入文件名,对其进行编译,这里需要实现一个工具类
工具类,对文件名进行拼接,待编译的文件放在compile_server/temp文件下,例如test.cpp
拼接目标有源文件拼接:test->./temp/test.cpp
可执行程序拼接:test->./temp/test.exe
错误信息文件拼接:test->./temp/test.stderr
正式逻辑开始,首先创建子进程,子进程进行编译服务
通过程序替换:execlp函数,执行g++编译源文件,生成text.exe
g++编译可能成功,可能失败,如果失败,会通过stderr打印,这里对stderr进行重定向到指定文件(dup2函数):./temp/test.stderr
父进程对子进程编译结果进行判断,这里只需要判断./temp/test.exe函数是否存在,存在就是编译成功
在工具类中FileUtil类提供接口IsFileExists判断文件是否存在,其中调用stat函数
1 ...
1、负载均衡式在线OJ-项目介绍
1、所用技术与开发环境
所用技术:
除了ctemplate可能会稍微写点之外,其余所有关于前端渲染相关内容不做说明~~~
C++ STL 标准库
Boost 准标准库(字符串切割)
cpp-httplib 第三方开源网络库
ctemplate 第三方开源前端网页渲染库
jsoncpp 第三方开源序列化、反序列化库
负载均衡设计
多进程、多线程
MySQL C connect
Ace前端在线编辑器(使用现成…)
html/css/js/jquery/ajax (使用现成…)
开发环境:
centos7
vim
mysql workbench
2、项目宏观结构
项目由3个核心模块组成
common: 公众模块
compile_server:编译运行模块
oj_server: 获取题目列表,查看编写题目界面,负载均衡,其他功能
leetcode结构
只实现类似leetcode的题目列表+在线编程功能
项目宏观结构
编写思路
先编写 compile_server
oj_server
version1 基于文件版的在线OJ
前端的页面设计
version2 基于 My ...
分享几个可以免费体验GPT4的网站,感受GPT4的强大!!!
GPT3.5的强大大家已经尝试过了吧,今天分享几个可以免费使用GPT4的网站,好东西得学会分享,也让大家体验一下高科技!
GPT-4(Generative Pre-trained Transformer 4)是OpenAI推出的一款具有革命性影响的大型语言模型。基于Transformer架构,GPT-4的设计使其在理解和生成自然语言文本方面表现出色,让机器与人类的沟通变得更为流畅。该模型通过在大量文本数据上进行预训练,学会了诸多领域的知识,包括科技、文学、历史等。此外,GPT-4具备强大的迁移学习能力,可以在微调阶段适应各种具体任务,如问答、摘要、翻译等。
1、Poe
Poe每天免费一次试用GPT4,并且可以访问 ChatGPT、Claude instant、Claude+、等,强烈推荐!
网址:https://poe.com/GPT-4
体验:✨✨✨✨✨
2、Ora
每天5条GPT4信息,并且可以创建并训练不同的机器人
网址:https://ora.sh/openai/gpt4
体验:✨✨✨✨
3、Forefront Chat
看下图,有好多角色可以自定义,比较推荐 ...