BLCL的博客小馆

首页

关于

归档

java

Java try-with-resouce原理及Scala实现

背景众所周知,所有被打开的系统资源,比如流、文件或者Socket连接等,都需要被开发者手动关闭,否则随着程序的不断运行,资源泄露将会累积成重大的生产事故。在JDK7之前,只能通过 try-finally 手动判空并且手动关闭资源。JDK7之后,Java多了个新的语法:try-with-resources语句,对所有实现 java.lang.AutoCloseable 都可以自动关闭。极大的简化了代码。术词表简写全拼中文释义ARM/armAutomatic Resource Management自动资源管理JavaJava默认代表 Java 8ScalaScala默认代表 Scala 2.13使用Java基于 Java8多个声明使用分号隔开,代码块终止时,无论是正常还是异常,将按照此顺序自动调用对象的 cl..

更多
hackmacos

MacOS 运行来自身份不明开发者的应用

前言实现这个目标大概有两种方法, 分为禁用和不禁用 SIP. 从安全性讲不禁用 SIP 好点.System Integrity Protection (SIP)是Mac系统的一种安全功能,它限制了root用户账户的权限,防止恶意软件修改或覆盖系统文件或应用。SIP在OS X El Capitan或更高版本中默认开启。如果要关闭或开启SIP,需要进入恢复模式并使用终端命令**csrutil disable或csrutil enable**。但是关闭SIP可能会导致系统不稳定或受到攻击,所以一般不建议普通用户这样做。禁用系统完整性保护(SIP)禁用之后可以运行来着任意来源的应用, 包括 来自身份不明开发者的应用第一种: 直接在主系统执行sudo spctl --master-disable重启电脑, 即可在 ..

更多

为什么不太看好 Nostr/ActivityPub

肤浅地记录一下为啥不太看好 Mastodon/nostr 等 fediverse。 Scalability: 对于千万活跃用户来说,如何展示时间线是个很古老的问题,highscalability 和 微博 都有关于 push/pull 模式的讨论。简单的说: 读多写少 大V的巨型分发量压力 热点读的 materialization 太慢 一般的解决方案是 fanout-write。也就是如果大V发一条微博,那么他所有 follower 的专用timeline 队列都会被写入一条微博id 这个问题放在 fediverse 会更加复杂。目前我了解的情况是,没有专门解决这个问题。如果哪天真有个用户量巨大的网络形成了,同步全量数据都超过百兆带宽,那么其他普通 vps 上的节点也就几乎无法同步全量数据了。所以需..

更多
loading..
jvm

VisualGC 提示 “Not Supported for this JVM”

远程服务上面编辑 vim /tmp/tools.policy并添加123grant codebase "file:${java.home}/../lib/tools.jar" { permission java.security.AllPermission;};启动 jstatsd1jstatd -J-Djava.rmi.server.hostname="实际监听地址" -J-Djava.security.policy=/tmp/tools.policy打开 visualvm 添加 jstatsd 链接即可

更多
算法

一些mask的操作理解

mask和index在一起操作挺多的,故关于index操作也可以看: 活到老学到老之index操作。 1. 对矩阵获取句子长度123456from torch.nn.utils.rnn import pad_sequencea = [torch.tensor([1,2, 3]), torch.tensor([4,5])]b = pad_sequence(a, batch_first=True)mask = b.not_equal(0)b[mask].split(mask.sum(1).tolist()) 2. 计算loss的时候把mask加上略. 3. 比如三维矩阵操作mask123456789101112131415161718192021222324252627a = torch.arange(24)..

更多
loading..

Play Cities:Skylines on Windows/MacOS without Paradox Launcher

Haven't played Cities: Skylines for ages, so I re-installed it on Steam, after some updates there's this new Paradox Launcher which serves no purpose but wasting time. So I decided to remove it, googled some guide and unfortunately it contains too many steps and some error occured while following it. Here's the simpler & correct step of what I did ins..

更多
loading..
Game

2022游戏短评

Foreword 仔细看了一下今年玩的游戏比较少,新游戏更少了,大多数都是观望或者云一下,有点电子阳痿的感觉。 今年游玩 今年不再总结国游了,国游销量下滑,虽然暖雪拿到了第一,142万,同比其他年的300万,确实少了不少,而且今年的作品大都不行,我就玩了一个仙剑客栈,其他的都不是我喜欢的类型。 宝可梦朱紫 这作的开放世界,技术上像是从宝可梦阿尔宙斯继承过来的,但是细节打磨又不到位,掉帧非常严重。草草打了几个道馆就弃坑了,乱数玩法什么的,目前也基本没有,除了魔就是魔。相比以前说剑盾卡顿掉帧,现在看剑盾流畅的一批,30帧都稳不下来,实在难顶。这作玩的都说很不错,等以后优化了再试试看吧。 师傅 不错的动作游戏,算是白嫖了一个,只不过一直没空玩,先放着吧。 江湖十一 早有预感这个游戏..

更多
loading..

《阿凡达2:水之道》是一部辱日片啊

昨天刚看完,整体感觉画面还是美轮美奂的。我没看出来有什么故弄玄虚的情节,也没觉得网上说那些故事性不行到底不行在哪里。不过有很多场面感觉不是怎么适合带娃去看,好多暴力、流血、残忍包括几十秒展示捏碎一个真正的骷髅等镜头。 在其中一个 Tulkun Hunting 大场面,一开始还对为啥找个东亚面孔扮演反派感到奇怪 然后就出现了好几秒的「日捕」爆炸捕鲸叉的特写。这是把「日本捕鯨協会」写脑门上了啊。。。 截图来自tiktok不是很清晰。但是这妥妥辱日了吧。。。说阿凡达2不好看的,是不是拿了日本外务省的钱?233333 看完网上搜了下讨论,有人说这是 日浦 Hiura 的名字,但是这又不是一个常见的日本姓名 ,所以我觉得 James Cameron 这故意用个错别字避免刚正面。 现实中的日本捕鲸叉长这样 ..

更多
loading..

多版本共存——巨型项目组件库升级的必经之路

组件库升级是一个令开发者头痛的事情,即使像 Ant Design 这种经历了多年发展的组件库,升级也不是一件容易的事情——轻则 API 不兼容,重则影响自定义样式和用户体验。(为什么 API 不兼容反而影响小呢?因为 Ant Design 提供了 codemod 工具辅助解决 API 的迁移,并且如果使用了 TypeScript,类型不匹配是不会编译成功的。)我们部门的项目,为了符合部门设计规范,用的是自己开发的组件库,而我是组件库的主负责人。在去年 Q3、Q4 我们做了大量的走查问题修复和功能开发,其中有些修改无法向下兼容,这就导致了我们的组件库升级成了一个大问题。经过简单的测试,暴力升级伴随的最显著问题是行高变小和表单错位,这对于一个 to B 的项目来说是致命的。组件库升级的难点我们的项目从两年前开..

更多
TECHNOLOGY证书HTTPS

如何自签名带 SAN 字段的 SSL/TLS 证书

前言在本站之前一篇文章 如何成为 CA,并签发自己的证书 中,我们介绍了如何做一个“正规”的自签名证书。但是,这个方法对于现代的浏览器不太管用了,因为 Chrome、Firefox 等浏览器已经不再判定证书的 CN (Common Name) 字段与域名是否一致了,而是改用判定 SAN (Subject Alternative Name) 字段。具体为什么这么做以及 SAN 的含义,网上有很多解释,很重要但是这里不谈,只谈如何在自签名证书中正确配置 SAN 字段。网上的教程有很多,但很多没有说清楚,或者缺少一些关键步骤和参数,导致实际情况下出各种问题,这里我尽量整理了一个完善的版本。准备步骤首先,CA 的证书与文首提到的文章一致,如果之前配置过,那就不需要再生成了。然后,生成待签发证书的私钥,这一步也与上..

更多
1363738394077