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静态语言,又是成员变量必须private定义,写的真麻烦,发现写Java果然需要ide,能生成代码,静态语言检查语法错误也方便,复制代码,需要导入也可以自动,感觉写起来还不错。 还有一个比较麻烦的就是,解析json和返回json数据的定义。我网上查找,看了几个例子,基本就懂了。 项目里我不需要关心权限相关的,所以感觉还比较简单。 通过这几天学习,感觉Java经过发展,他相关的工具链其实已经相当的成熟了。感觉给我一年的时间熟练开发项目,我这开发效率不会比Python低,现在开发更多的是找Java或者Spring解决方法,完全不需要知道这个是怎么来的。像我用Python判断IP是否是内网IP,我有很高效的方法,可以直接找到或者复制代码,我Java写的时候,我需要看很多,找到差不多的方案,然后写成公用类。如果之前写过,就直接复制就可以了。 还有就是http返回json的封装,我看了一下他们的项目,都没有统一,比如状态码,错误信息,我就定义了自己的。因为没有看过太多代码,也没有之前写过的公司项目借鉴,我竟然从我反编译的非开源的云平台项目里复制了一个文件,搞成我自己的了,还挺好用的,,, 总得来说写增删改查,搭建一个不需要太大定制化的大型公司项目来说,Springboot的一系列产品可以很轻松的搞定。这个是Python目前的环境做不到的。但是如果Python去封装,会比Java好看好写的很多。也许是因为Python做企业开发用的少,没有人去做这个吧,大公司项目迭代的原因也独立不出来了。 我觉得这几天做的东西很了不起了,后边还得帮他们做。感觉也是因为我之前积累导致了学这些东西还是很快的。现在最欠缺的就是相关源代码原理基本不知道,如果你说微服务架构我会知道,但你说Springboot是怎么封装起来的,这个我还是一头雾水,虽然注解我查了一下大体知道了,但是能把很多库统一标准起来,想想就头大。

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

豆瓣竟然有网友用我的脚本了,还希望我加个次数限制,所以升级了一下,刚看到,复制到博客里了。 // 检查间隔 var interval = 30000; // 是否开启提醒计数,0关闭,>0为几次停止 var open_count = 4; // ==UserScript== // @name 豆瓣豆油提醒脚本 // @namespace http://0x55aa.com/ // @version 0.2 // @description 豆瓣豆油提醒脚本,来豆油后进行弹窗提醒! // @author 0x55aa // @match https://*.douban.com/* // @grant none // ==/UserScript== (function() { 'use strict'; // 检查间隔 var interval = 30000; // 是否开启提醒计数,0关闭,>0为几次停止 var open_count = 4; var count = Number(window.localStorage.getItem("count")) || 0; // 提醒 if (Notification && Notification.permission !== "granted") { Notification.requestPermission(function (status) { if (Notification.permission !== status) { Notification.permission = status; } }); } function notify() { var titleText = "豆油来啦"; var options = { dir: "ltr", lang: "utf-8", icon: "https://img3.doubanio.com/favicon.ico", body: "请赶快处理!!!!!" }; if (Notification && Notification.permission === "granted") { var n = new Notification(titleText, options); } window.localStorage.setItem("count", count+1); window.location.reload(); } function check() { console.log($('#top-nav-doumail-link').children().text()); console.log(count); if ($('#top-nav-doumail-link').children().text()){ if (!open_count){ notify(); }else{ if (count < open_count){ notify(); }else{ window.location.reload(); } } }else{ window.localStorage.setItem("count", 0); count = 0; } } var timer = setInterval(check, interval); })();

Continue

写这个完全是临时起意,也没好好总结。周六早晨醒了就没睡意(果然影响能不能起来床不在困不困,上班适合就很难起来了),刷朋友圈看了之前大牛同事发的炒股相关的文章。有点想炒股,想跟着他脚步炒股,但是让我把想法压下去了,他这也是一种造势,等越有名气了,造势也就越成功了。 然后看群里之前被他坑了我的某币圈大佬的手下独立出来搞交易所(下边说),发新币。有人发了一篇文章说看了蓝皮书,币多好(这种的是以白名单的诱惑,免费让圈里的资讯大佬造势)。然后我看了一下规则,去关注官方公众号,下载蓝皮书报错(因为公众号写的版本低了,下不下来)。群里跟他们喷了一会儿,都被我说的哑口无言,还是不承认官方规则有问题,, 首先我不排除官方想真正做好,而不是搞的跟之前的交易所一样。 他们本来跟之前交易所是一家的,现在感觉还是一家,之前的名声没办法挽回了,或者说挽回成本太大,不如新搞一个。原来的用户群免费发广告,不收服务费,这么成熟的交易所技术就白给了。可见不是一般的”独立“ 开始各种优惠政策,五折btc,虽然量不多,也是实打实的钱,争先恐后的宣传去得名额。让所有人都急红了眼。看着别人拿着钱稳赚,自己心痒痒。(这种活动催生了一个撸羊毛的职业,别说赚的还很多,其实前期投入也不少,后期时间投入也不少,我干不了的,不然我也搞了) 然后慢慢开始宣传自己的平台币(就是完全自己发的,零本万利),搞个超级复杂的规则,让人一看摸不着头脑,但关键标红,加个升高进行销毁。让人一看我去 币会越来越少,要赶紧抢。 但你仔细一想,就是坑人的策略。官方是无敌大庄,首先无论涨不涨我都赚,其次我可以长高了就砸盘,卖的还都是高价格,还不用销毁,,,,。说的好听是为了限制什么价格高了,广告费多了,很多公司做手脚。你正直的话,你不做手脚就好了,广告费多了多打广告就好了啊,,,,现在所有法币的都是把超级大头自己拿着,意图很明显不过了。。 群里的人,我说的这么明白了还跟我说我抬杠,我感觉他们做梦醒了都装睡,或者完全是个托。。其实这整个策略在无论其他公司还是什么地方都有,搞的就是人的心理,造的就是个势,而大部分人就跟随着就进去了。 谁都摆脱不了的,就像他们借着第一波比特币火了的人,现在都是币圈大佬的人,也是会被玩弄。国の家大佬一句话,搞得全国风向一动。下边纯属猜测,可能很多国外的币圈大佬要回国搞公司了,无论你的概念能否成功,(我感觉成功不了),你回国就是花钱,就是人工岗位,就是税收,之前币圈你圈走的钱带出国外了,我现在先管控严了,然后你带进来,再出不去了。 不得不说说我第一次怎么进的交易所。我之前接触比特币挺早的,应该是13年之前还上学,具体时间不记得,我暑假回家,电脑是老爷机,总共20g硬盘还是40g,然后空余空间10g还是20g,下载btc客户端同步数据就要10g还是20g,然后也没装,感觉那时候虽然老爷机,但是群里好多人那时候还说能挖到,,然后我错过了,后来13年底或者14年,那时候比特币第一次火吧,好多人买卖。我也没钱,有当时也不会赚,赚也不会多的。就像之前挖到也没啥用。 也是我一直觉得这种东西不适合我,涨跌自己控制不了。再后来就是前年了,新公司同事”炒币“,给我讲了一大堆他和他周围的人怎么赚钱的,我就跟他说 你那是没看见赔钱的。然后他也说他之前怎么赔钱的。然后我慢慢接触多了,他说又是一轮牛市,我就心想反正注册也简单,少量的玩一点,赚了就接着玩,亏了就算。当时我也说过,现在发币的人越来越多,市场钱多但是稀释了。 那时候唯一没意识到的是,这完全就是人为的跟热度炒作收割金币。进去之后涨了几天吧,然后就是去年中旬的一波大跌,然后就那么放着了。再往后,我从来不关注币圈新闻,我只是下了一个行情软件,想起来就看看曲线,然后到现在。钱不多,所以我也不想套现,那样套出来的钱也没几个,慢慢放着吧。唯一看出来的真理就是买跌不买涨,交易有手续费,这个需要计算是否赚。我是真的想写一个程序,自动交易。总感觉慢慢操作就是没有牛市也会慢慢赚小钱,虽然短期的风险更高。币圈唯一的长期我感觉就是btc了吧,而且还必须是btc没有安全问题等大事件的情况下。 就像今天群里人说我,你投资都是投资的概率。然后我一愣,我好像没投资啊,这个问题怎么答啊。我回了他一句,我不投资我赌博 没系统去整理,想到哪说到哪,只能当笑话看了

Continue

emmm,其实从一开始自己学编程就各种研究做游戏,但都是坚持不下来等各种原因,啥没搞出来。 但是游戏框架倒是没少接触,自己脑子里想了好几个游戏,也分不同时间做过,然后每次都经历的过程差不多,选框架,选图片素材。开始的这种工作消耗了我基本好多时间,然后慢慢学框架发现这里不好做,那里不好实现,慢慢就放弃了。 有时候游戏还没开始,就想着跨平台,要搞个跨平台的框架。要做个手机游戏,首先想到的是苹果,安卓都要可以,找跨平台引擎写。时间都浪费在这里了。 期间写过一个微信小游戏,用了cocos creator,然后用了一个预置模板,然后加载特别慢,对这个引擎失望透顶。发现还不如我自己画的快。后来又写了一个小游戏,直接用的js库,ui什么的都自己画了,又快又爽。 用引擎就是会很多照顾新手,页面操作多,繁琐,虽然编程也可以。js的low,唯一好处就是web和微信支持,别的语言懒得学。像unreal,unity之类的搞3d太难了,虽然想搞。用框架就是依赖性太强,想改个东西还得看源代码,太低级的觉得太低级不想用,没啥必要用,太高级的又觉得都是费功能,太慢了。 用python之前考虑不跨平台,不想用。后来觉得去他妈的跨平台,老子先搞一个pc平台把我的想法实现了再说。然后想搞个无限地图的功能,找了一些现成的地图方案,发现缺陷太大,放弃。自己想了想,然后网上查了一下,发现跟我想法一样,自己用python撸了一个无限地图的功能,框架也是python的,发现巨慢无比,三十帧左右。也许是代码有问题可以优化,但是我想想即时把帧数优化上去了,后边加游戏逻辑还得慢,然后一直优化吧,直接放弃。然后找了一个c++写的小众游戏的引擎,功能很合我的意,官方有python绑定,看着例子写了个demo,感觉挺好。然后等我开始写深入功能的时候,发现ui是个问题,官方封装的代码太复杂,我c++不太懂,绑定第三方图像库也不了解。其实python的绑定封装的接口也乱,但是demo里边的东西,我大部分都了解了实现游戏逻辑没啥问题。又找了一圈别的库,又又又一次的放弃了。 折腾的比上边描述的要多的多,想起来写下来的就这些了。 前段时间我突然出来一个想法,想用commonlisp写个游戏,只是一个玩法好玩,想借助cl看看有没有好的发挥cl的特性。突然想明白一个事,我为什么想写游戏却局限于现在的技术栈里边呢。现在写web多,然后多考虑的是python,js之类的,用惯了不想换,但是又不是做这个擅长的事。以前上学学c,c++也都是只写逻辑,没有第三方依赖,最多写写vc,也是集成环境。突然想到,老子要用c写游戏了。 随便一搜就决定了用的技术,因为之前也了解了比较多的了。所以直接选点SDL,一个跨平台,一个c,百分比满意。然后官网找的一个书,一天看完了,发现使用很简单。图片音频这些加载,我又犯了强迫症,不行依赖额外的库。宁可使用第三方的开源代码放到项目里。后来又想通了,纠结这些事不对的。 我下定决心都用官方的,SDL_image mixer ttf,然后自己接触了这么多引擎框架,觉得cocos2d确实作者牛逼,一些游戏概念划分的很好。我参照cocos2d的理念,自己假期抽时间撸了一个c的小游戏框架,已经基本完善。 后边要做的主要就三块,一块是ui,这个也自己写,想了一下,总共用不了几个元素,自己撸还是来的快和爽,想怎么改怎么改,前期就是会丑一些。第二块就是物理,这里目前打算是用第三方的,其实也用不了太多的东西,但是自己撸数学懒得看,数学调试也麻烦,不然还得依赖别人写的库,不如直接用第三方的物理引擎。第三块就是游戏逻辑相关了,这里就是慢慢添加了,难道应该不大,就是消耗时间。 特别写完我的小框架后,就特别觉得之前为什么不用c写呢,陷入了python易用,写得快速的死胡同里了。最近因为写框架,写的c也不少,上班后写python的时候,每写完一行就想加个分号。我发现语言这东西不能一直换,思维什么的定势了不容易转换。 写c也没感觉说效率低多少,最主要的是要考虑内存申请和释放的问题。还有就是不能面向对象设计,每次都要传参数,就想怎么写的容易一点。但是c想写的容易一点就可以容易一点,但是像python,虽然本身设计带了很多设计模式,你想写容易一点,就得更深入挖掘python的知识,其实学起来反而不容易,除非写多了才会容易了。 c还有个问题,就是源码文件目录的设计,第三方库依赖的问题,虽然有ldd,otool之类的工具,但是我不清楚游戏业界都是怎么做的,我以后还得考虑,全源码编译。目前先软件包安装写代码。gcc 等一系列编译工具链也没看,大体功能知道,后边要用再看也来得及,现在主要还是pk代码要紧。 想起个问题就是为什么不用c++,这个写游戏是用的最多的,环境肯定好很多。但是一个就是c比较底层,写熟练了不局限于游戏这一块地方,系统编程用的也很多。c++面向对象确实比c好,但是太复杂了,想起了上学时那些关系什么的,产生了畏惧。其实我自己写自己用的代码,无所谓封装的好不好,但是综合权衡还是用了c,现在还是很满意的。

Continue

先写解决方案:制定dasconfig的failoverLevel = 1,就解决了。 这是一个必传的参数。但是官网特别说明,所有参数都是可选的。All fields are optional. 然后报错“指定的参数不正确:”也没写哪个参数不正确。 我是google搜索找到了解决方案,而且还是六七年前的帖子,也就是说这个问题持续六七年了吗??? vmware文档啥分类没有,我找都是从manager到数据方法,或者dir看到了,直接搜索。太麻烦了。而且返回的数据是关联返回的,虽然可以制定返回的字段。

Continue

折腾了我一个周五下午加一个周末的问题。 写的代码上线两个周了,之前只测试了同步跟列表的功能,展示没问题,上周测试了一下更新问题,开始删除没刷新,我还以为是前端老版本的编译有问题,发现接口确实调用了就没管了。 直到测试一个更新功能,发现接口调用成功了,但是数据没更新。还返回了http 200。我就看了一下代码,返回200不可能没执行到更新保存的代码。 发现只有在提交commit之前有查询操作,就会导致表更新失败。所以应该是个session问题。 试了我本机环境没问题,然后我就想到装的python包的版本问题,踩什么bug了吧。然后我对比了一下版本,我管理都是只写主要包的版本,依赖包的版本没有写,所以依赖包有的版本会高一点。 我选了几个可能的包,更换版本,发现不是这个原因。周末想想,如果是这个包的问题,应该早就发现了,会打补丁。 然后我就想到数据库的问题,我用的mariadb,测试系统是centos,然后我看了一下有新版本的mariadb,更新了一下,这里现在想想数据库的问题的概率也十分小了,而且是这么明显的bug。 mariadb的源巨慢无比,我又在尝试更新mysqlclient包,因为我记得安装的时候mariadb-devel不能用,网上说的用mysql-devel。我又从新试了一次,各种方法,发现不成功。 到下午快下班,安装完mariadb,又试了一遍mariadb-devel也不行。觉得还是用mysql,又安装称mysql。 但是发现数据库数据文件不兼容,升级的命令好像也不太行,我备份的导出数据库数据,导入又有外键关联的限制,懒得搞数据了。下班了。 周末有时间的时候就想了想,我之前虽然抓包测试环境mysql,发现没问题,但是没对比本机的。如果周一mysql不行,试试本机环境连线上数据库,排除一下是包的问题还是数据库问题。感觉周五的时候应该先排除问题再更新数据库才对。 周一来,同步了一下数据,更新了一下发现mysql还是不行。然后重新编译mysqlclient,测试发现通过了。 最后还是mysqlclient编译依赖有问题,使用mysql-devel编译,连接mariadb有问题。好像还不是所有的版本有这个问题。

Continue

网页豆瓣豆油提醒本来就慢,然后干别的时候还不知道来豆油了。写个油猴子脚本搞定了。 tampermonkey脚本还比较好些,查了一下提醒功能,需要chrome用户进行授权。 本来想写个短时间没处理的话,延长检查时间,后来想想本来时间就不短,没必要加了。 // ==UserScript== // @name 豆瓣豆油提醒脚本 // @namespace http://0x55aa.com/ // @version 0.1 // @description 豆瓣豆油提醒脚本,来豆油后进行弹窗提醒! // @author 0x55aa // @match https://*.douban.com/* // @grant none // ==/UserScript== (function() { 'use strict'; // 检查间隔 var interval_ = 30000; var interval = 30000; var notify_time = 0; // 提醒 if (Notification && Notification.permission !== "granted") { Notification.requestPermission(function (status) { if (Notification.permission !== status) { Notification.permission = status; } }); } function notify() { notify_time = new Date().getTime(); var titleText = "豆油来啦"; var options = { dir: "ltr", lang: "utf-8", icon: "https://img3.doubanio.com/favicon.ico", body: "请赶快处理!!!!!" }; if (Notification && Notification.permission === "granted") { var n = new Notification(titleText, options); } } function check() { // console.log(notify_time); // console.log(interval); console.log($('#top-nav-doumail-link').children().text()); if ($('#top-nav-doumail-link').children().text()){ notify(); } } var timer = setInterval(check, interval); })();

Continue