一款好用的开源项目管理软件|Redmine
介绍 Redmine 是一款 基于 Web 的开源项目管理与缺陷跟踪系统,由 Ruby on Rails 框架开发而成,具备高度的灵活性与可扩展性,广泛适用于各类软件开发、项目协作以及任务管理场景。 免费开源、功能丰富、界面简洁且支持多语言。支持多种数据库和多操作系统。需要自托管或者部署在云服务器上。性能据说对大规模团队(百人以上)支持有限。 功能 界面虽然没那么好看,但是免费开源太香了。目前我们在用的主要是它的问题跟踪功能,我更感兴趣的是它以下几个功能(之后有空研究下,先立个flag> <): 1. 项目管理 多项目支持:可同时管理多个独立项目,每个项目具备独立的权限体系、问题跟踪与文档管理。 项目配置:自定义项目周期、跟踪问题类型、工作流程及字段,适配不同业务需求。 2. 任务与进度管理 甘特图:可视化展示任务时间线、依赖关系,支持拖拽调整工期,实时跟踪进度。 任务分解:将项目拆解为子任务,分配负责人与截止时间,支持任务层级嵌套(如史诗 - 任务 - 子任务)。 时间追踪:记录成员在任务上的耗时,生成工时报表,辅助成本核算与效率分析。 3....
如何导出微信聊天记录|PyWxDump
最近老妈在上营养课,课程马上结束了,老妈想把微信课程群中营养老师发的聊天消息导出来,方便复制粘贴做成自己的笔记。于是俺这两天研究了下微信聊天记录的导出。 查了有两个开源项目可以实现。一个是WeChatMsg,这篇教程写的很详细;另外一个是PyWxDump,参考它的使用文档跟着一步一步操作就好。在使用项目之前,记得先把需要导出的聊天记录从手机端迁移到电脑端。 我选择的PyWxDump。两个项目最后好像都是导出csv到本地,接着用jupyter lab调整了下csv,加了一些筛选条件,只保留了需要的列,最后导出到excel。老妈表示很满意🤭 csv调整的过程基本是借助ChatGPT来实现的,代码基础太差,不如直接AI…事实证明只要给AI清晰的指令,结果还是很ok的! 虽然在代码中对微信消息中的非法字符进行了清洗,在打开生成的Excel时,还是有没有清洗干净的Excel无法识别的字符,不过不要紧Excel的自动修复功能还是很强大的!修复后就可以打开了~最后是这样的效果👇 实际上,横向扩展的话,处理其他大型csv或excel文件也可以采用导入到jupyter...
jupyter notebook的安装
常规安装 我用的pip包管理工具,现在安装新版python已经自带安装pip了。打开命令提示符(windows10左下角搜索中直接搜索或者Win+R输入cmd回车)然后输入pip install jupyterlab,jupyterlab如果没有pip需要先安装pip(在python官网安装最新版的时候勾选pip可以一起安装),或者通过Anaconda安装。 下载好后,在命令提示符中输入jupyter lab。jupyter lab是jupyter notebook的升级版,界面更现代化。上一次用jupyter还是4年前用的notebook…既然出了升级版当然要用新版!如果不出意外就可以自动打开网页,进入jupyter。ちなみに如果不出意外就要出意外了。 不出意外的意外 命令行中输入jupyter notebook之后提示C:\Users\XXX>jupyter notebook ‘jupyter’...
ASP.NET页面开发
Page_Load事件 1protected void Page_Load(object sender, EventArgs e) 在ASP.NET Web Forms 中,Page_Load事件是自动触发的,无需额外编写代码来调用它。这个过程由ASP.NET页面生命周期自动管理,具体触发时机如下: 触发时机 首次加载页面(非回发) 当用户第一次请求页面(例如通过 URL 导航)时,Page_Load会在页面初始化完成后触发,此时IsPostBack为false。 回发请求 当页面上的控件(如按钮)触发回发(PostBack)时,服务器会重新加载同一个页面,Page_Load会再次触发,此时IsPostBack为true。 自动触发机制 Page_Load是System.Web.UI.Page类的事件处理方法,其触发完全由ASP.NET框架控制。具体流程: 客户端请求页面 服务器创建Page实例 执行页面生命周期的各个阶段(初始化、加载视图状态、处理回发数据等) 自动触发Page_Load事件 继续执行后续生命周期阶段(如PreRender、Render等)
跟小狗钱钱学投资
理由 关注自己想变有钱的理由,它会不断提醒自己想得到什么。 把理由视觉化,做成愿望图册,经常想象达成的样子。为每一个愿望准备一个储蓄罐。 信心 每天列成功日记。 你是否能挣到钱,最关键的因素并不在于你是不是有一个好点子。你有多聪明也不是主要原因,决定因素是你的自信程度。 分配 把精力集中在自己所能做的,知道的和拥有的东西上,不擅长不懂得交给别人去做 先想清楚喜欢做什么,然后再考虑怎么用它来挣钱。 每天不间断地去做对未来意义重大的事情,为此花费的时间不会超过10分钟,但就是这10分钟会让一切变得不同。 一个人要想过更幸福、更满意的生活,就得对自身进行改变。这和钱无关,金钱本身既不会使人幸福也不会带来不幸。 50%用来让鹅长大,40%用来帮助实现我的目标,10%用于零花 复利的力量 —...
域名与网站加速
域名 利用cdn进行网站加速需要一个域名。在又拍云上试了下https://chenhuizhu-0930.github.io/Blog/这种是不可以的,为了网站的访问体验感,买了个便宜的域名。我用的namesilo,一年的.top结尾的域名首次1刀,续费4刀左右,白菜价还可以。不过没想到的是换了域名之后,卜算子对于网站流量的计算都清零了哇┭┮﹏┭┮ 域名配置 参考Github域名配置文档 注意:Hexo部署github需要把CNAME文件放入source文件夹,直接放在github上部署时又没有了。 域名解析 在域名管理器中,CNAME 记录和 A 记录是两种常见的 DNS 记录类型,它们的主要区别如下: 定义与作用 A 记录:A 记录是将域名直接映射到一个 IPv4 地址。例如,当你访问www.example.com时,通过 A 记录,域名系统会将其解析为服务器的具体 IP 地址,如192.168.1.100,这样浏览器就能找到目标服务器并获取网页内容。 CNAME 记录:CNAME 记录是将一个域名指向另一个域名,而不是直接指向 IP...
插件开发基本
插件注册 事件管道执行阶段 在插件注册到 CRM 系统时,会设置它在哪个执行阶段(如预验证、预操作、后操作)触发,一旦设置完成,CRM 系统就会在相应阶段自动调用插件,代码里可以无需再次判断。 Pre - validation:预验证阶段,在此阶段可对即将进行的操作进行合法性检查等 Pre - operation:预操作阶段,在实际操作(如创建、更新实体)执行前触发 Post - operation:后操作阶段,在操作完成后触发 插件的step 定义与作用 Step是插件中定义的一个执行单元,它规定了插件在特定事件(如创建、更新、删除实体等)发生时的具体执行逻辑和顺序。每个Step可以与不同的事件、实体以及消息相绑定,从而实现对不同业务场景的精确控制。通过配置不同的Step,开发人员可以灵活地定制插件在不同阶段和条件下的行为,以满足复杂的业务需求。 关键属性 事件:指定Step所响应的 Dynamics 365...
Https与证书
当访问一个HTTPS网站时,过程大致如下: 浏览器发送请求:你输入网站地址,浏览器向服务器请求建立安全连接。 服务器返回证书:服务器发送其SSL/TLS证书给浏览器。 浏览器验证证书:浏览器检查证书是否有效(是否过期、是否由可信CA签发、域名是否匹配等)。如果验证失败,会显示“不安全”警告。 TLS握手:如果证书有效,浏览器和服务器使用证书中的公钥进行TLS握手,协商出一个对称加密的会话密钥。 加密通信:之后的所有数据(包括你的登录信息、浏览内容等)都会通过这个会话密钥进行加密传输,只有双方能解密。 客户端依赖内置的根CA和中间CA证书来验证端实体证书的信任链,无需手动安装端实体证书本身。 如果是HTTPS 协议,端口填写 443;如果是 HTTP 协议,端口填写 80
系统设计
设计书分类 画面Layout定义书:视图、表单、JS逻辑(画面处理一览) Table定义书:定义实体字段 更新处理记述书:定义workflow,插件等逻辑
Azure租户与订阅
租户(tenant) 租户是什么 租户是 Azure Active Directory (Azure AD) 的一个实例,代表一个组织或用户的身份管理边界。简单来说,它是一个逻辑容器,用于管理用户、组、应用程序等身份相关的内容。 租户&订阅&环境 一个租户下可以有多个订阅,用于不同的项目、部门或环境,但每个订阅只能关联到一个租户。 同一租户内的单一订阅也可以通过资源组或其他方式划分出多个环境。 租户与域账号 一个租户可以包含多个域名(例如默认的 company.onmicrosoft.com 和自定义的 company.com),而域账号则是访问域名的用户身份(例如 user@company.com)。
