
经验总结
小么额菇
Life is about waiting for the right moment to act.
展开
-
python获得jinja template中所有parameter name
【代码】python获得jinja template中所有parameter name。原创 2023-03-17 16:51:33 · 202 阅读 · 0 评论 -
make prerequisite: 根据文件状态自动确定是否重新执行
一个简单的配置,让make根据文件状态自动确定是否重新执行,无需手动make clean。原创 2023-01-29 18:58:36 · 337 阅读 · 0 评论 -
留下一个年度小结
这一年给sdk做了不少新feature,修了很多bug,也给1p的customer做了很多support,做client已经快两年了,和service相比还是有一定差距的。除了1.5满足了1p各种奇奇怪怪的要求,v1也零零散散做一些support工作(老板称为the go to person of SDK v1了哈哈),从工作量上来说还是比较满意的,ship出去的feature也有一些给大老板们留下的印象不错。其他角度也有一些收获,其实简单来说是认识到了定义问题的重要性,在遇到问题时我常常急于解决问题,原创 2022-05-13 18:23:57 · 140 阅读 · 0 评论 -
python自定义dataclass实现
实现自定义规则与检查的dataclass原创 2021-12-29 14:26:23 · 1272 阅读 · 1 评论 -
基于任意位置分段的python argpaser实现
基于任意位置分段的argparser:自定义parse index,后续参数按照原始序列返回。原创 2021-12-29 13:58:20 · 513 阅读 · 0 评论 -
跳槽一年小结
去年三月左右换了新公司,是家比较成熟的外企,工作模式和之前相比出入比较大,至今也快一年了,感觉还是有些收获,特此总结。1.技术不是全部我之前一直追求技术,认为技术==能力,其实不然,在这里我发现,硬实力其实有很多方面,尤其是解决问题的能力,领导、组织能力,都很重要,以往我以为技术也许在职业生涯中占到80%的重要性,如今看来大约只有40%~60%,其实,其他方面的能力往往同样重要。现在的我和刚来那会比起来,耐心已经有了很大进步,解决问题的能力也有提升,我能明显感觉到,和过去的自己比起来,在遇到问题(泛原创 2021-03-01 13:51:27 · 633 阅读 · 5 评论 -
python -ruamel.yaml.dump流程详解及自定义yaml格式
--------------------------------------------------首先是dump的整体流程--------------------------------------------------------ruamel.yaml首先需要setup一下component:使用dump时的过程首先serializer.open后会发送一个StreamStartEvent,表示流开始然后会有representer class首先解析给定的字典,入口源码如下:o原创 2020-08-11 11:03:17 · 2583 阅读 · 0 评论 -
python - unittest中的setUp与setUpClass
其实我也没想到,有一天我会记录python的问题。。事情是这样的,最近在支持python SDK,遇到了一件非常神奇的事test class中使用到了一个简单的Callable,定义在setUpClass中,如下class TestClass(unittest.TestCase): @classmethod def setUpClass(cls) -> None: cls.func = get_a_func() def test(self原创 2020-06-28 18:01:52 · 1088 阅读 · 0 评论 -
SSD目标检测损失函数multibox loss pytorch源码详解 - 样本不均衡问题解决
补充一些更详细的说明:数据集是大样本5000,小样本500,但实际上每个样本会包含多个groud truth,因此首先对数据做拆分和清洗统计出准确的大小样本比例约为5:1,然后从损失函数公式入手:对于数量级较小的样本,考虑增大其在计算损失时负样本的损失,即,可作如下理解:假设大小样本比例为5:1,在训练时,如果发生小样本被误判为大样本的情况,计算损失时将这些负样本的损失扩大5倍...原创 2019-12-22 09:12:31 · 1529 阅读 · 1 评论 -
社区 - 复杂资源权限管理设计
BASE:基于开源框架SHIRO扩展基本元素:user、role、authorization对应关系:查询过程:以上图user-role对应为例,查询user是否拥有某个资源的某权限,只需遍历(深广均可)所有角色的资源描述符,权限只分为全部和部分两种,部分需要精确指定。补充内容 - 资源描述符说明采用SHIRO默认资源描述符: Resource:Action:Id/...原创 2019-07-01 16:29:38 · 308 阅读 · 0 评论 -
MapReduce踩坑笔记 - 讨厌的NullPointerException
最近在把同事的MR作业输出文件转成Parquet,因为占空间太大,结果踩了不少坑。。。各种 null,现在看到null我就生气,(╯^╰) 输出时使用的是import org.apache.parquet.example.data.Group;1.第一个null - Unable to initialize any output collector原因:mapper输出类型不...原创 2019-02-14 16:25:31 · 1004 阅读 · 0 评论 -
延迟发奖 - 基于循环链表的伪延时消息队列
最近做了一个下单返金币的小功能,又造了个小轮子。由于下单后存在退货的可能,因此要求用户下单后先发放一个冻结奖励,在一定天数之后如果没有退款,自动发放真实奖励。 理论此处使用了循环队列与线程池做了一个伪延时消息队列,理论来自@58沈剑,基本实现如下:MQ的consumer在拿到消息后,获得需要做实际操作的时间,计算与当前时间的时间差。由于本例实际应用中对时间要求不是特别精确,因此...原创 2018-11-12 11:45:55 · 390 阅读 · 0 评论 -
SparkStreaming学习笔记:获取kafka数据 - Receiver与Direct
在Spark Streaming中消费 Kafka 数据的时候,有两种方式分别是 :1.基于 Receiver-based 的 createStream 方法。receiver从Kafka中获取的数据都是存储在Spark Executor的内存中的,然后Spark Streaming启动的job会去处理那些数据。然而,在默认的配置下,这种方式可能会因为底层的失败而丢失数据。如果要启用高可靠机制...原创 2018-09-26 17:10:05 · 271 阅读 · 0 评论 -
帮小朋友参加写小程序比赛的总结
最近还是挺忙的,由于要帮小朋友参加比赛,导致我需要尽量早回家,╮(╯▽╰)╭,就算这样时间也不多,本来就比较紧张,又要工作,所以总共花了这些时间写了一个非常简单的小程序,内容么,没有具体要求,本来我也不认识小朋友,只是别人拜托的,所以看了看大致的要求,一开始打算写个俄罗斯方块啦,2048之类的了事了,后来想了想,写都写了,虽然不是自己用,就好好写吧。于是认真想了一个学习英语的小东西,类似闯关,答题...原创 2018-03-22 23:53:26 · 466 阅读 · 0 评论 -
数据挖掘实验:决策树算法实现C++
决策树算法看起来很好玩(我没开玩笑我真的这么觉得),就是简单的树上走然后得到不同的结果,一开始我很纳闷,书上那些东西都是啥,什么信息增益,ID3,C4.5,都是什么玩意(不好好听课的后果),后来仔仔细细的把书看了三遍,终于明白是干嘛的了。其实是根据给出的数据,判断不同属性对于决策的贡献,然后获得这棵树的分支。理解之后实现起来就容易一些了,实现的时候也借鉴了别人的代码,研究透了之后自己写的,同时也做原创 2017-07-03 15:42:45 · 2766 阅读 · 0 评论 -
软件工程课程设计问题总结——医院门诊系统(七):总结
本次课程设计的功能很简单,实现起来也全部是用的老招数,写的并不漂亮,主要的功能部分大概写了5天左右,除了吃饭睡觉时间都在写代码,一开始写就很难放下,有时候甚至觉得吃饭是一件麻烦事。主要运用的就是session,存储各种信息,没有什么很高端的东西,开源框架之类的还没有学过,因为这周就要检查了,也没有太多的时间重新去做,主要功能实现后就交给其他组员进行优化了,会在下周(21)和下下周(22)去东软原创 2017-07-03 15:16:06 · 1612 阅读 · 0 评论 -
数据挖掘实验:Apriori算法实现C++
说起来数据挖掘这门课我还是蛮喜欢的,所以实验内容也都是自己实现的,第一个Apriori算法,思想很简单,什么都没有就是暴力,我加了一个Hash,总共也才写了100来行,具体内容代码注释中很清楚我就不多说了。以下附上主要函数的代码(省去部分)。主要的东西呢就是把所有的事务映射成一个数字然后直接用string存储。好吧我承认我在偷懒,这个方法是有问题的,事务多了之后会出现歧义。会有错误。但原创 2017-07-03 15:30:38 · 1379 阅读 · 1 评论 -
刘汝佳大数模板(只含加法)
#include using namespace std;struct BigInteger{ static const int BASE = 100000000; static const int WIDTH = 8; vector s; BigInteger(long long num=0) {*this = num;} BigInteger ope原创 2015-03-01 10:16:01 · 932 阅读 · 0 评论 -
逆序对问题的两种解决策略
自己学习有个很不好的习惯,不怎么看书,只知道看题,看题又不会,各种查题解,今天把刘汝佳第八章前面讲的几个算法看了一下,加上各种百度,刚开始并不懂他们讲的,看了很久大致弄懂了逆序对问题的解决策略,下面是我自己对于这两种方法的理解。方法1:归并排序。关于归并排序的原理,按照分治法的三个步骤,可以拆解为划分、递归、合并三个步骤,假设给出一个序列,如果要利用归并排序使其有序,那么就是先将该序列递归至最原创 2015-07-29 18:12:13 · 717 阅读 · 0 评论 -
软件工程课程设计问题总结——医院门诊系统(一):serverlet中alert不弹窗&弹窗乱码
问题描述:在serverlet中单独使用alert时弹出窗口,附加页面跳转response.sendRedirect(url)时弹窗失败。解决方案:使用window.location.href(url)跳转页面,并通过PrintWriter输出。问题描述:使用alert弹窗中文出现乱码,页面、response、request均已设置为utf-8编码。解决方案:使原创 2017-07-03 14:32:03 · 818 阅读 · 0 评论 -
软件工程课程设计问题总结——医院门诊系统(二):jsp中验证码的实现&设置验证失败不提交表单
问题描述:在jsp中实现验证码并将表单的submit按钮设置为验证失败时不提交表单。解决方案:使用javascript实现验证码功能,并在submit中设置 onclick事件为“return validate()”,注意:一定要有return。示例代码:原创 2017-07-03 14:37:10 · 855 阅读 · 0 评论 -
软件工程课程设计问题总结——医院门诊系统(三):注册失败保留表单内容
问题描述:用户注册失败,如用户名、密码等不合规范需要修改时,保留已经填写过的表单内容。解决方案:后台获取用户输入后,将内容保存在对象里,并将此对象保存至session中,成功注册后删除此对象,将jsp中input的默认显示内容设置为对象内容(对象存在时)。示例代码:(severlet中)p.setP_username(request.getParameter("p_原创 2017-07-03 14:48:11 · 694 阅读 · 0 评论 -
软件工程课程设计问题总结——医院门诊系统(四):后台获取下拉列表的值并在页面中显示
问题描述:在数据库中获取下拉列表的可选值并显示。解决方案:使用ArrayList。不详细解释了,展现在代码中。 <% ArrayList DepartList = new DBUtil().getDepartList();//获取下拉列表内容 Iterator iter = DepartList.iterator();//遍历原创 2017-07-03 14:52:31 · 587 阅读 · 0 评论 -
软件工程课程设计问题总结——医院门诊系统(五):判断用户实现的特定页面跳转
问题描述:当用户登录后,若再次访问登录页面,通过判断用户的身份跳转至对应的首页(医生、患者或管理员)。解决方案:这个问题很好解决,只要用.getClass().getName()获取类名后处理就可以了,但是出现了一点小插曲,跳转总是失败,原因是我一开始的写法为: alert("用户已经登录"); window.location.href(type); type中的内原创 2017-07-03 14:59:43 · 873 阅读 · 0 评论 -
软件工程课程设计问题总结——医院门诊系统(六):datetime timestamp 和String
问题描述:数据库中存储类型为datetime时,在类中可用timestamp类型,这三种类型之间可以相互转换,此处不再赘述,网上搜索有很多,在timestamp输出时,不显示毫秒,应当用SimpleDateFormat进行格式规范。 还有一个小问题,一开始总是在提示我The constructor Timestamp(long) is undefined。解决方案:引进的是import原创 2017-07-03 15:04:36 · 787 阅读 · 0 评论 -
sprintf和sscanf的详解
名称编辑函数原型:int sscanf( const char *, const char *, ...);int sscanf(const char *buffer,const char *format,[argument ]...);buffer存储的数据format格式控制字符串argument 选择性设定字符串sscanf会从bu转载 2015-02-03 16:20:36 · 879 阅读 · 0 评论