推荐阅读: 《今天,该抄底了!》 《劝退了。。。》 1 被坑了 昨天有读者给我留言,说能不能让加入过星球的小伙伴,聊一下他们的感受。...刚好星球最近有一个作业,让大家都聊一聊加入知识星球后,给自己带来了什么样的变化和感受。 点赞第一的小伙伴,就是被我曾经坑过的一位队长。...在第四期的时候,我们一下子发车了好几个项目,也是不知道前景如何,大家在一起聚起来做尝试。 这个项目做了快半年,几乎没有挣到钱,后来做了转型,大家可以看看他的心路历程。...以下就是月亮同学的分享: 2 做网站 大家好,我是90后老程序员—月亮,今天给大家分享一下我在星球第四期的收获。 参加了cxy521网站的维护工作。...但是,我忽略了一件事:在这之前,我连技术文章都没写过,凭什么相信自己能在短期内就写出比较厉害的文章? 所以我被纠正过来的第一点就是:前期,运营的重要性大于文章内容。这是很重要的一点。
最快的方案 了解运营的需求之后,我简单的分析了一下。按需求的优先级,排了一个顺序: 导出厂商1的属性数据。 导出厂商2的属性数据。 给厂商1导一份特殊的属性数据。 导出区间范围能匹配上的数据。...而且我观察了一下,系统没有出现异样。 给运营把数据导完之后,我就忙其他事情去了,把删除数据这个事情给忘了。 4. 线上出现问题 第二天上午,领导把我叫过去说:canal服务挂了。...但马上被啪啪打脸。 用postman请求该接口很久都不返回,我知道肯定是出了什么幺蛾子。 查了一下pre环境应用服务器的日志,竟然没有查到请求该数据处理接口的记录。...后来,他重新部署了hotfix的代码,我顺利的把数据导给运营了。 至此,这4个需求顺利完成了。 总结 这次给运营导数据,是一次比较难得的经历,遇到了很多问题,值得总结一下。...当然这其中有一部分是自己给自己挖的坑,也有一部分是被其他人坑了。 不要怕踩坑,其实踩坑,也是成长的机会,我通过这次经历也收获了不少宝贵的经验。 生产环境的表名或字段名,一定不能用中文的。
有些大厂,有专业的 DBA 把关,但 DBA 也不是万能的,还是有可能会让一些错误的 SQL 脚本被生产环境执行了,比如:update 语句的顺序不对。...比如说有这样的场景:原本你的 SQL 脚本没问题的,但没有按照规范,给一张表的添加多个字段,你写了多条ALTER语句。...如果我们上线系统时,在SQL脚本中,忘了给该字段增加索引。如果该id字段被大批量访问,全部走的全表扫描,可能会导致数据库性能直线下降,出现大量的超时问题。...如果不确定数据量的话,可以先到生产环境查询一下真实的用户数据,不然后续可能会引起比较大的生产事故。 9 字段改名 对于生产环境的表字段,通常情况下,我们不允许修改名称。...当然系统上线时除了 SQL 脚本的这些坑之外,还有系统发版失败,代码合错分支,mq 消息被 pre 消费了,无法回滚等等,还有很多问题。
推荐阅读: 《定了,安排!最后倒计时 3 天!》 《我上班没有被卷死,没想到自由职业反而被卷死了。。。》...1 揭秘被喷 是这样子的,我这段时间不是都在B站更新视频么,昨天刚好发布了一个:揭秘培训机构 6 大坑人套路的视频。 然后呢。...昨晚已经23点了,在群里噼里啪啦对我批判了一番,然后自己就退群了,完全不给解释的机会。 其实我觉得视频内容还行吧,只是说了一下线下培训机构现状,并没有否定培训机构的价值。 并且呀。...冒着得罪我的甲方,这里也说一下。 其实揭秘的这些套路,大部分都比较集中在线下的培训机构,他们主要针对的是应届毕业生或者转行的程序员。...最后的最后: 还是要给大家提一句,社群2月活动仅剩2天了,过了2月之后大家可能需要多付出一点成本才可以加入。
admin:123456@localhost:8761/eureka/ 重启hello服务后,发现还是没有注册成功,原来增加basic验证后,不支持跨域访问了,我的天,你这个大坑,服务注册肯定是跨域的了,...http.csrf().ignoringAntMatchers("/eureka/**"); super.configure(http); } } 终于在界面看到可可爱爱的hello服务了,...response); } } 但是假设这样修改后,登录的web界面也会走到这个拦截器,同样会增加鉴权 也就是说这样直接增加鉴权,无法区分是其他客户端注册还是从界面访问 也没有什么太好的办法了,...).permitAll(); super.configure(http); } 这样设置后除了直接访问的界面需要鉴权外,其他eureka相关注册、查询等不需要鉴权 都这样分层鉴权操作了,再找下是不是有其他方式达到相同的目的...上面所有的操作都是为了信息安全考虑,还有一个经常忘记需要考虑的组件是Spring Boot Actuator,针对 Spring Boot Actuator 提供的 endpoint,采取以下几种措施,可以尽可能降低被安全攻击的风险
mybatis plus 是一个流行的 ORM 框架,它基于 mybatis,提供了很多便利的功能,比如代码生成器、通用 CRUD、分页插件、乐观锁插件等。...MySQL JDBC 驱动在默认情况下会无视 executeBatch()语句,把我们期望批量执行的一组 sql 语句拆散,一条一条地发给 MySQL 数据库,批量插入实际上是单条插入,直接造成较低的性能...OK,在我们给 jdbcurl 上添加了参数后,看看效果,如下图, 可以看到 jdbcurl 添加了 rewriteBatchedStatements=true 参数后,批量操作的执行耗时已经只有 200...毫秒,自此也就解决了 mybatis plus 提供的 saveBatch() 方法执行耗时较高得问题。...总结 mybatis plus 给开发人员带来了很多便利,但是其中也有一些坑点,比如上文所提到得批量操作耗时问题,如果不注意的话,就有可能调入坑里,各位开发同学可以检查自己或者公司项目中 jdbcurl
上一篇,我们讲到了Go中的字符串为什么不能被修改,这一篇来总结defer语句中的几个隐藏的细节。 关于Go中的defer,是做什么的?执行顺序是怎么样的?...函数的返回值初始化与defer间接影响 同样的方式,我们先看一段代码,猜测一下最终的执行结果是什么。...1、在定义函数demo3()时,为函数设置了一个int类型的变量a,此时int类型初始化值默认是0。...当然传递一个指针的话,结果就不一样了。在函数定义时,声明的变量可以理解为一个全局变量,因此defer或者return对变量a进行了修改,都会影响到该变量上。 defer遇见panic。...return的执行是一个两步操作,先对return返回的值进行赋值,然后执行defer语句,最后将结果进行返回给函数的调用者。
不得已,只能重写代码,既耗费了时间,又拖延了工作进度。 ? 老板骂,产品经理急,自己吃力不讨好。这才后悔自己什么不写注释,不分段。...到了团队,也是凭借自己天赋打代码,导致队友看不懂蛇皮程序员的代码,把更多的时间花在了沟通和修改中。 如果身边都是蛇皮程序员,工作进度可想而知…… ? 所以想要养成优秀的代码习惯,关键要做到: 1.
mybatis plus 是一个流行的 ORM 框架,它基于 mybatis,提供了很多便利的功能,比如代码生成器、通用 CRUD、分页插件、乐观锁插件等。...MySQL JDBC 驱动在默认情况下会无视 executeBatch()语句,把我们期望批量执行的一组 sql 语句拆散,一条一条地发给 MySQL 数据库,批量插入实际上是单条插入,直接造成较低的性能...OK,在我们给 jdbcurl 上添加了参数后,看看效果,如下图,可以看到 jdbcurl 添加了 rewriteBatchedStatements=true 参数后,批量操作的执行耗时已经只有 200...毫秒,自此也就解决了 mybatis plus 提供的 saveBatch() 方法执行耗时较高得问题。...总结mybatis plus 给开发人员带来了很多便利,但是其中也有一些坑点,比如上文所提到得批量操作耗时问题,如果不注意的话,就有可能调入坑里,各位开发同学可以检查自己或者公司项目中 jdbcurl
); -ms-filter:grayscale(100%); -o-filter:grayscale(100%); filter:grayscale(100%); } filter主要是给元素加上滤镜的效果...,并且很完美的上线了 领导看到了直呼高手,说不错不错,既然这么快,我们还有小程序,也给加上吧,一个小时够了吧 我心想,一个小时?...先去社区看一下有没有答案,结果一搜,发现还真有 处理方案 那既然批量有问题,单个总没有问题吧,我们给其中的一个元素加上这段css,确实是没问题,但是这么大量的工作不可能全加,所以我看了美团小程序,发现他们也只是置灰了一部分...在处理小程序长列表的时候,添加filter: grayscale(1)的时候,不要给列表的每一个item添加,这种做法是极其耗费性能的,这个时候在IOS16表现下页面会卡死不动,所以我们在设置这个属性的时候一定要注意,给到父元素...上对应的置灰属性 在小程序中,最好不要给全局加,要加的话也要看项目中有没有使用fixed,只给对应的元素加上 小程序中可以尝试使用root-portal视图容器
之后我就向Go提交了一个PR进行修复,本想等着代码被Merge进去,以后也可以吹牛说自己是个Go的Contributor,但事情并不顺利,今天就来分享一下这次失败的代码提交。...[p1.png] 描述了一下遇到的问题,但隔天被一位大佬认为是重复问题,并且关闭了这个issue [p2.png] 但我点进去仔细看了下,和我说的应该没有关系,他们讨论的是单测超时不生效的问题,于是我狡辩了一下...不过还好,大佬给了一点点指导 [p6.png] 同时也发来一段演示代码 [p7.png] 果然 「show me the code」 最好使,简单点来说就是正数溢出成了负数,再溢出就又是正数,只要溢出足够多...[p8.png] 虽然我给开源项目提交代码不多,但也知道这点,为什么这次没写呢?主要是我觉得单测不太好写,既然大佬提出来,硬着头皮也得写了。...测试了下,float64范围大的离谱,感兴趣可以试试,就不贴数据了,太长!
最近遇到个内存泄露, 查来查去竟然在FMOD模块里 要不是别的组件全部定制了内存分配函数, 还真不会怀疑到它头上 使用FMOD::EventSystem::getMemoryInfo()输出内存信息一看..., 直接崩溃了, 100MB~200MB 之前我是用XACT的, FMOD本以为是差不多的东西, 就没怎么在意, 结果摔一跟头 细细的去读了一下文档, 发现有3点: FMOD::Memory_Initialize..., 方便统计各模块的内在使用情况 这个函数需要链接fmodex的lib, 只有fmod event的lib不行的 这步可选, 但是我们自己的内存分析工具对于自己内存模块分配的比较好分析, 所以还是定制了一下...Memory), 背景音乐使用流式加载(Stream) 为了节省磁盘和内存占用, 一般会进行编码压缩, 音效我习惯使用ADPCM, 音乐使用MP3/xWMA, CPU解码(一般能硬件直接支持)消耗可以忽略 坑就在
如果下载一个用户再自己重新命名一下,又会影响效率。 根据文件名不知道里面的内容 这就很烦了, 不改下名,不好找导出的文件。 改吧,又太麻烦。...用户又能拿这个功能怎么样,只能吐槽了 这是一个非功能的体验问题。 直接原因: 浏览器使用了默认的命名策略,如果没有指定下载文件名那么浏览器会这样这样: 将url上的非法字符去掉,然后拼一下。...用户点击进行下载 下载时的交互 这种情况下,浏览器下载时展示在状态栏上的名字,浏览器就自由发挥了,目前浏览器的命名规则是将url上的非法字符去掉,然后拼一下。...确定优化方案 最终选定了方案2。 原因是方案2改动最小,并且可以避免下载时导致业务数据缺失的问题。 客户都是用chrome,也规避了方案2的浏览器兼容性问题。...返回给前端的一个url,不管导出多大的文件,出口带宽都不会受到影响。 缺点: 1.兼容性问题。 在 HTML5 中,download 属性是 标签的新属性。
不过客户端和控制端都在我自己电脑上运行,自己给自己发消息,没意思。于是我把客户端发给了室友,和他可以实现跨电脑通信了。...于是我开始疯狂充电,这才知道了什么叫公网地址,什么叫私有地址,知道了宿舍里的那个路由器,有一个叫NAT的功能,会将我们电脑上网的局域网私有地址偷偷改成公网地址,一出了宿舍,就是用公网地址在进行通信了。...又折腾了半天,才学到了一个叫UPnP的东西,得去路由器上配置端口转发,将公网IP下的端口号,映射到局域网下某个地址的某个端口,这样拥有公网IP地址的路由器收到连接后才会转发到我电脑上的服务端上。...终于,我给她发了第一条消息:Hello,World! 心情大好,中午加个荤菜~ 用IP地址来建立连接终究不是好办法,因为路由器上的公网IP经常变来变去,每次变了都得要重新编译一个客户端,可麻烦了。...工作以后,像操作系统、计算机网络、数据结构与算法这些基础课程知识,日常工作中其实真正打交道的机会并不多,更多时间都是写写API接口,做下CRUD,堆一堆框架代码积木,或者学习redis、mysql、rabbitmq
上一节,主要分析了 被标记为事务的方法互相调用,事务失效的原因,思考比较多,这一节主要说说解决方案,思考会少一些。...微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。...翻译下:不能找到当前的代理,需要设置exposeProxy属性为 true使其可以。 expose字面意思就是 暴露。也就是说 我们需要允许暴露代理。...此方法不适用于prototype 在这里,我用了一个@PostConstruct注解,在初始化的时候,会调用被@PostConstruct标记的方法(注意,仅仅是初始化的时候,才会被调用。...以后都不会被调用了,大家可以打个断点试一下),这里这么做的目的就是为了提升一下效率,不用每次都getBean。所以如果这个类是prototype的,就不适用这个方法了。
跳坑过程 ---- 告诉了同事大致的做这件事情的过程和思路,那台就开始去做了。...等我把A机房端口映射工作做完之后,通知到同事,他就开始设置iptabels规则了。 同事跳坑最终导致的结果就是A机房的服务器DB2不能远程连接上去,然后所有的服务端口也被屏蔽了。...MYSQL实例的端口监控也报价了,接收到告警之后,他想登陆服务器查看具体原因,但是悲剧的是他发现远程登陆也登陆不了,这是为什么,从他的不走上看没有多大问题啊,下面我给大家分析一下,默认的一条input规则的坑...并且发送一条host prohibited的消息给被拒绝的主机。...并且发送一条host prohibited的消息给被拒绝的主机。
比如设置统计值: stats.set_value('hostname', socket.gethostname()) 比如增加统计值: stats.inc_value('custom_count') 另外扒了一下源码...OK,说干就干,改写了下 Memory,把存储换成 Redis,其他的实现基本差不多,实现了一个 RedisStatsCollector 如下: from scrapy.statscollectors...可以看到所有的统计数据就被存到 Redis 了,而且每个 Spider 都会读取和写入,实现了多个 Spider 统计信息的同步。...发 PR 这个 Feature 我后来就给 Scrapy-Redis 的作者发了 PR,https://github.com/rmax/scrapy-redis/pull/186,幸运的是,今天发现已经被...这里不得不说一句,Scrapy-Redis 距离上次发新版本已经三年多了,新的改动都在 master,一直没有 release,我给作者提了 Issue 反馈了这个问题不过也一直没有发新版,后续应该我会帮忙发布一个新的
F12右边的键位,大多键盘都是PrtSc SysRq全屏截图键,但联想km4800键盘此处是睡眠sleep键,昨天误按了让电脑睡眠了已被坑了一把,结果到晚上时将我坑下了悬崖,我也不清楚为什么朋睡眠中唤醒后...,原本设置的电源管理高性能模式会变成平衡模式,结果就是不动电脑几十分钟后就转成睡眠模式,让我原本给电脑布置的全夜加班任务,让这货提前打卡下班了,今天早上起来看着电脑处理到一半的任务,吐血连连,三升的盆子都没接住...那么问题就来了,该怎么取消这可恶的sleep键,防止再次被坑? 首先进入控制面板,找到电源管理。 然后选择高性能模式,对我而言不在乎电脑多用一些电,因为它大多时间都有活干,你也可以选择平衡模式。...但是这里只设置了不让电脑自动进入睡眠模式,怎么取消键盘上的睡眠键和电源键呢? 在电源按钮和盖子这里,电源按键操作和睡眠按钮操作都设置为不采取任何操作。...把平衡模式下的如同样设置好,最好节省模式也同样设置。
崛起的跨平台技术 InfoQ:首先请您介绍一下跨平台技术的由来? 互联网很多公司发展需要不断的快速试错,安卓和 iOS 市场占有率高,已经坐稳了移动开发的两大阵营。...InfoQ:时至今日,已经有了很多跨平台框架,请您介绍一下目前比较流行的移动 APP 开发框架有哪些?它们又各有什么适用范围?...其次 QT mobile 社区生态推广力度小,受众也小,且 C++ 相对 Dart 开发效率低下,这也是造成 QT mobile 逐渐被遗忘的原因。...目前处于测试阶段,方案待同步给大家; 第二,线上指标和本地调试性能的差异。目前 Flutter 提供了本地测试相关性能的工具,不过和线上指标相比还是有差异的。...上个问题已经为大家解答了一下,这里我再做一些补充。
现在旅游成为了人们休闲度假的首选,酒店的选择是旅途中的首要大事,前几天朋友出去旅游,回来特别提出说:这次入住的酒店还真不错,服务很周到,感觉非常方便! 有多方便...