最近总结了两条想当然造成的麻烦,虽然问题不太大,但是值得总结。 一个是执行linux命令的时候,开始用一个算是知道的命令,执行也没问题。然后测试需要执行多遍,脑子一抽,想起一个别的更短的命令,然后也没查,想当然的猜了一下参数。结局就是教训,虽然没有什么损失,但是当时就反思了。不知道是什么造成了我的想当然。 第二个是今天,之前搞的不是我负责的java的项目,前后捋了一下。那个组负责的人来找我问我每个页面都是干什么的,前端不是我写的,跟原型出入很大,他们也不看原型。总的来说就是好像总想嘲笑我,问的我很烦,我就说把我之前给前端的文档发给他。 后来又来问我状态转换按钮的事,我想当然的说了一个就是删除请求,我没物理删除。然后他回去跟别人说了一通,回来又找我,让我在测试环境测试一下,让我证明一下,多选删除,不会删除,那个页面还会有数据。然后我竟然谨慎了,没有操作。然后他又让我新加一个删除,我试了一下,确实物理删除了。然后马上看代码,确实是物理删除。状态更新是走的更新接口。 一个主要是代码写的时间比较久了,第二个就是我之前的python项目非特殊都是软删除,所以这里以为我也写了软删除

Continue

这几天忙着写文档,一直看的线上环境的系统。今天启动本地测试环境,发现登录不成功。排查问题发现登录成功后,之后的请求没有携带cookie。然后我就仔细看了一下登录请求的参数。 发现在chorme header头的cookie里有一个黄色的小叹号,发现问题了。 this set-cookie didn't specify a "SameSite" attribute,然后变成默认Lax。(不能复制,懒得打英文了) 然后我搜索了一下Samesite定义,有三个值,None, Lax,Strict.这个参数是防止跨站攻击用的,因为测试环境,所以最方便就是跨站调试了。 然后我搜了一下flask源码,发现有这个设置,配置了一下发现不管用。然后放弃了。 找了一下怎么关闭chrome的这个选项,虽然别的网站可能有一点风险。自己调试的时候会方便点。 chrome://flags/#same-site-by-default-cookies chrome://flags/#cookies-without-same-site-must-be-secure

Continue

搞了一个像素游戏,很小的游戏。里边的文字也不多,找个像素字体太费劲,还有版权什么的信息,就想之前看过字体数据转像素矩阵的代码。搜了一下,发现直接有点阵字体,找了代码试了一下,完全可用。 我将字体转成像素矩阵后,可以直接按像素大小把字给画出来,非常方便了,就是计算稍微多一点。 HZK16字库是符合GB2312国家标准的16×16点阵字库,HZK16的GB2312-80支持的汉字有6763个,符号682个。其中一级汉字有 3755个,按声序排列,二级汉字有3008个,按偏旁部首排列。 我们在一些应用场合根本用不到这么多汉字字模,所以在应用时就可以只提取部分字体作为己用。 HZK16字库里的16×16汉字一共需要256个点来显示,也就是说需要32个字节才能达到显示一个普通汉字的目的。 我们知道一个GB2312汉字是由两个字节编码的,范围为0xA1A1~0xFEFE。A1-A9为符号区,B0-F7为汉字区。每一个区有94个字符(注意:这只是编码的许可范围,不一定都有字型对应,比如符号区就有很多编码空白区域)。 下面以汉字「我」为例,介绍如何在HZK16文件

Continue

查询语句里有个子查询,有个括号,然后就报错 unexpected token:( 发现这个异常没法查问题,就找了找跟JpaRepository子查询相关的。 有两种解决方法: 一种是@Query(value="select * from user where name like %?1" ,nativeQuery=true) 添加一个nativeQuery的参数 第二种方法是支持的是JPQL,但是我写的那个sql是不支持的。害

Continue

最近在考虑自己职业长远发展的问题,有时候想起来就会思考一会儿,也是零碎的东西。标题是个瞎起的题目,只是想起之前有个领导送了一本书,讲程序员的软技能的,好像关于职场发展的,我也没看,倒是现在可用翻出来看看了。 我觉得我做事属于很果断的了,但是发现思想上还是很多纠结的事情,而回过头想想这些纠结的事,又不值得一提,不如一步一步做来的实际。自己跟自己的思想pk了无数次,最后就是说服了自己这条路不行,然后领选一条,又是自己不喜欢的,或者又是一轮pk又不行。这个喜不喜欢也是个问题,就是应不应该选喜欢的,还是变成一个眼光看待。 我先自己定义一个: 硬技能就是属于完全技术上的技能了。这块想了很多,想去研究源码,然后自己实现简单的,自己就会去想这种东西做了没啥用,折腾了以后也不会做这方面的工作。然后其实细想,永远不做就是永远不会涉及这方面的工作。大部分都是想研究然后浅浅的研究研究,也并没有深入。广度现在变的很广,基本做啥,用啥都可以,但是从头去实现一个,不是不能做,但是一直会缺乏经验。所以这个在以后的发展很是问题。 软技能就是非技术上的技能,包括生活上的。生活上的我在

Continue

远程办公啊,自己笔记本没有配置公司vpn,还要现搞。 系统偏好设置-网络-添加vpn,然后选择L2tp,填写配置后连接提示 共享密钥丢失的问题 网上找到解决方法。 sudo vim /etc/ppp/options 内容: plugin L2TP.ppp l2tpnoipsec 然后连接就可以了

Continue

Java真特么的坑,一边是对象Interger,一边是int等数据结构。之前感觉还挺有用的。现在我发现基本项目里都只用对象类型,然后我也就都用这个。 想实现的功能就是Date类型的数据的减两分钟,然后把秒置0的操作。 // 日历类型操作,Date的set方法现在都废弃不用了 Calendar calendar = Calendar.getInstance(); //设置秒为0 calendar.set(Calendar.SECOND, 0); // 减去一分钟 calendar.add(Calendar.MINUTE, -1); // 转成Date类型 Date timestamp = calendar.getTime();

Continue

我要做一个东西,在spring boot的@requestBody里传了一个json数据,其中有个timestamp的字段,需要转换称java Date类型。 搞个半天我还以为成功了,然后突然发现是特么的1970年的年份,就感觉可能截断了。 搜了一下发现是需要毫秒的单位,乘了1000还是不行,后来又找了很多方法,以为只能重新写json字段解析的反序列化函数单独搞。 然后发现一个是回答的必须long型的,然后试了一下就成功了。。。 java.util.Date time=new java.util.Date((long)timeStamp*1000); time=new java.util.Date(timeStamp*1000L); Date time = new Date(TimeUnit.MILLISECONDS.convert(unixTimestamp, TimeUnit.SECONDS)); 直接改了set属性的方法就可用了

Continue

刚加完班,想想这几天学的东西挺多的,虽然都是皮毛,但感觉还挺有成就感的。 公司刚走了俩领导,留下一个坑项目,我也是刚知道。三个人开发了一年啥没开发出来,然后现在到了交付时间了。忙的从四川分公司调了俩个人。说是想三个都裁掉,然后产品说那就没人干活了,然后还把我调过去帮忙写。 项目是spring boot的,我想想我用Python写,一个是以后还得我维护,二一个,权限什么的都不好做,开始我就想只做做边角功能就行了。然后发现分给我功能不属于边角,只能Java写了。 分工还有问题,本来应该写方法的,一个流程下边的,分给俩人做,这种技术上不行,工作效率上也不行。 我这几天看了几本Springboot实战的书,基本一掠而过。知道都是什么,然后看了文档里边的几个例子,就上手写代码了。 项目代码也没有太成熟,用了一个什么renren开源的库,我问过我单独写一个模块,就见了一个Springboot 服务,都用的官方默认的模块。注册服务那里用了公用的pom之后,折腾了我一上午没搞定,我就使用官方文档推荐的starters,分分钟搞定了。 Java静态语言,又是成员变量必须p

Continue

ipmitool -I lanplus -H 5.5.5.140 -U root -P mima2019 chassis status 报错:Error: Unable to establish IPMI v2 / RMCP+ session 加-v也看不出什么。网上搜到 iDRAC设置里---网络---ipmi设置--启用LAN上的IPMI就可用了。 本地命令也可以操作: ipmitool lan set 1 access on 但是没找到,本地显示这个状态的方法 lan print里也没找到

Continue