大象笔记

知者行之始,行者知之成

Magento 添加全局 CSS 样式

进入 Magento 后台 Content - Configuration 。 选择 Global 或者某个指定 Store。 HTML Head 中的 Scripts and Style Sheets 添加配置: <style> .action.primary { background: #e74c3c !important; } </style> 保存后刷新缓存 ...

阅读全文...

Magento 子店铺域名修改

需求 把所有 a.sunzhongwei.com 改为 b.sunzhongwei.com code 保存在哪里 nginx: c.sunzhongwei.com.conf 修改策略 原 a 的 config 文件备份一份,新建一个 b 的配置文件。 把所有 a.sunzhongwei.com 改为 b.sunzhongwei.com,然后 https 的配置去掉。 改成 80 端口监听 通过 certbot 申请新的证书 重启 nginx 服务 magento 后台修改域名 登录 Magento 后台 进入 Stores > Configuration > General ...

阅读全文...

午夜惊魂,在家发版本,线上 golang 找不到 GLIBC 版本导致服务挂掉

昨晚接到紧急需求,需要增加一个搜索功能。当时在家里,感觉很简单的需求, 随便改改,直接发布到线上服务器就行,毕竟我大 golang 只要能编译通过,基本不会有大问题 😏。 但是,不出意外,出了意外。自动发布脚本,在重启 systemd 服务后, 使用 systemctl status 查看状态,发现 golang 服务没有启动成功。 通过命令行单独启动 go 服务,发现报错: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found 还好,我发布前,将可执行程序备份了一份。。。挂了一分钟,我就悄悄恢复了,险些提桶跑路。 ...

阅读全文...

阿里云群发短信通知的失败问题排查

在开发的大赛报名系统,截至尾声,组织方希望群发一条短信通知所有参赛队的队长, 赶紧提交作品,不要挤在最后一天,防止人多导致系统卡顿。毕竟大量的文件及视频上传。 但是,众所周知的原因,现在发送验证码短信的成功率都达不到 98%,特别是贵州移动的手机号。 怎么都收不到短信验证码。 我担心群发短信,会不会也有类似的问题? 更难的地方是,组织方给出的短信模板是 180 多个字符,相当于要发送 3 条短信才能发送完整。 我担心的是: 成本太高。预留的额度不够 文字越多,触发敏感词被拦截的概率越高。 于是,用我仅有的两个报备成功的签名进行群发测试,结果如下: 签名一【XXX】,这个短信签名(目前用于 ...

阅读全文...

Magento .phtml 代码中获取当前域名,并条件输出菜单

不知道为啥,使用 Magento 的 Mage::app() 获取 store 信息会导致网站崩溃。。。 所以,直接使用纯 PHP 的方式获取当前域名。 纯 PHP 的实现 <?php //$storeName = Mage::app()->getStore()->getName(); // 这行会导致网站崩溃,所以换个 PHP 的方式获取域名 $domain = $_SERVER['HTTP_HOST']; ?> <span><?php echo $domain; ?></span> 条件输出菜单 <?php if ...

阅读全文...

golang gin 基于 Casbin 实现权限控制

最近在使用 golang gin 开发一套公司内部的人事管理系统,但是发现权限管理比之前搞的系统要复杂不少, 所以我想借机了解一下传说中的 Casbin 权限控制库,看看是否可以借鉴一下。 涉及权限控制的需求场景 人事部门负责人需要能看到所有的人事数据 人事部门的普通 HR,只能看到部分部门的人事数据。即只能看到自己负责的部门数据 IT 部门或者行政部门指定人员,能看到资产管理模块的数据。即每个员工有哪些名下资产,显示器,主机,桌子椅子之类的。方便离职时进行资产回收。 部门负责人能看到自己部门的所有员工数据,除了薪资相关的字段。且只有看的权限。不能修改和删除。 员工个人能通过企业微信的授权登 ...

阅读全文...

对话机器人 Rasa(四十一):两例 slot 未赋值问题

突然习惯了在 rasa custom action 中直接赋值 slot, 而不在 yml 流程中注明。 我发现在 rasa 中,如果不在 stories.yml 中写明 slot_was_set,则对应的 slot 就不会在 custom action 中赋值成功,这是为什么? 而有的流程,不在 stories.yml 中标注 slot_was_set,slot 也能赋值成功。 实际上,这是一个错觉。 因为,实际测试发现。只有特地类型的 slot 需要在 stories 中写明 slot_was_set,其他类型的 slot 都可以在 custom action 中直接赋值。 案例一:影响流 ...

阅读全文...

对话机器人 Rasa(四十):一则 FollowUpAction 引起的随机返回问题

问题现象 在 Rasa 某个 action 中,使用了 FollowUpAction 的方式, 但是在执行过程中,出现了多余返回的问题。 我起初以为是类似之前遇到的 对话机器人 Rasa(二十四):两例多返回额外消息的 bug 定位 ,是因为 slot set 导致的,或者 form loop 未标记结束导致的。 但是,经过一段一段代码逐一注释,并插入调试返回之后。发现问题的根源是 FollowUpAction 的使用。 return [ FollowUpAction("action_next_step"), SetSlot("slot_name", ...

阅读全文...

为了避免律师函警告,从 miniconda 切换到 miniforge

今天无意间在某书上刷到,某公司使用 anaconda 管理 Python 开发环境,收到了律师函。 说是在商用场景下,如果公司超过 200 人,就会收到律师函(虽然公司目前没有这么多人,但是万一哪天超过了呢?)。而 miniconda 也不安全,我没有看懂 miniconda 什么情况下会收函, 但是为了避免律师函警告,折腾了半天,从 miniconda 切换到 miniforge 了,Python 世界的妖孽真多 😅 怪不得安装 miniconda 时,需要同意某个协议,但是正常人谁会去看命令行里的用户协议啊。。。 真是大坑。 什么是 miniforge miniforge 是 minico ...

阅读全文...

公司要在办公电脑上安装加密软件,折腾啊

最近公司要求在所有电脑上安装加密软件。其功能是自动将本机的文件,做加密。 加密之后,要通过聊天软件传给其他人,就得先解密。这个解密流程类似企业微信,或者钉钉里的审批流程。 x,我这里一堆 Excel 批量导入的功能,以及 Word 自动化模板处理功能。不知道到时候怎么上传线上环境。只能每次都走审批流程了。 安装加密软件前的准备 微信聊天记录清空,卸载,只保留企业微信来传输文件。注意是防止个人隐私聊天记录被截屏。 退出 wps 账号,并清空本地文件。防止个人文档被加密后,同步到 wps 云盘。那就麻烦了。 安装 我看了一下安装的是北京亿赛通科技的加密软件,没有听说过。 测试 测试了一下,目前 ...

阅读全文...

企业微信同步内部员工通讯录 golang 实现

基于自建应用、自有系统。 腾讯官方文档 概述 - 文档 - 企业微信开发者中心 https://developer.work.weixin.qq.com/document/path/90193 通讯录同步相关接口,可以对部门、成员、标签等通讯录信息进行查询、添加、修改、删除等操作。 企业如果需要从自有的系统同步通讯录到企业微信,需要使用通讯录同步secret。 自建应用、代开发应用、第三方应用在提供功能时,往往需要获取通讯录,开发者可查阅成员、部门、标签相关的接口说明。注意,自建应用、代开发应用、第三方应用仅能读取通讯录,不能编辑,且仅能读取可见范围内的通讯录。 2022年8月15日起,通过 ...

阅读全文...

Golang time.Parse 时区问题引起的时间比对 bug

使用 golang 开发的大赛报名截止时间功能,发现一个奇怪的 bug,就是截止时间判断不准确。 现象是,截止时间设置的是今天上午十点,但是判断函数只有在下午 18 点时才生效。 我第一反应是大概就是时区问题。 未指定时区前 now := time.Now() registerStartTime, err := time.Parse("2006-01-02 15:04:05", registerStart) registerEndTime, err := time.Parse("2006-01-02 15:04:05", registerEnd) fm ...

阅读全文...