分类
代码

写给即将入职字节跳动的同学——如何自定义邮箱

一般大公司的邮箱用户名就是内网所有系统的统一账号,有的公司可以在入职前自定义邮箱账号,可以咨询 HR 了解。但也有的只能按统一规则,比如吉大校园网账号😂😂。字节跳动的内网邮箱账号可以部分自定义——看起来一般的规则是姓名全拼,如果有重名则加上后缀(貌似不重名不能自定义后缀,有待确认),即张三的内网账号是 [email protected], 若有重名则可自定义后缀(不清楚不重名是不是也可以),如 [email protected]. 但是如果你不想使用姓名全拼作为前缀呢,有办法更改吗?比如我一直使用的 ID 都是 youthlin.chen 就不是姓名全拼。

分类
Java

CompletableFuture

Java 8 的 CompletableFuture

创建

  • 创建一个已完成的
  • 类似 guava 的 SettableFuture, 先创建一个空的,再在合适的地方完成它
  • 异步计算或运行
分类
代码 安卓

Dora.js – Android 上的内容型编程平台,学习 JavaScript 开发!

最近刷酷安发现一个很酷的软件:Dora.js

官方介绍

Dora.js 是 Android 上的一个内容型编程平台,提供了强大且简单的一套扩展框架,让你可以轻松写出诸如提供视频、图片、漫画、音乐、图书、文章等的扩展,打造属于自己的内容中心。

简单来说,你可以把它当做一个可以安装许多扩展的 App。

如果你想学习 JavaScript,Dora.js 可以给你提供非常大的帮助。

Dora.js 使用 V8 作为脚本引擎,提供完善的 Node.js 运行时:

  • 支持 npm 依赖包
  • 虚拟文件路径让文件访问更轻松、更安全

Dora.js 包含一个强大的代码编辑器:

  • 支持代码高亮,多种字体、配色可选
  • 支持智能补全、签名提示
  • 提供 VSCode 插件
  • 提供多种快捷工具使手机上编程成为一件容易事
  • 取经自 “纯纯写作” 的优秀编辑器体验

注意:Dora.js 目前还处于不稳定阶段,很多能力还很简陋,你在使用过程中还有几大概率出现闪退现象。

下载地址:https://www.coolapk.com/apk/com.linroid.dora
分类
Java

[JavaFx] PDF 工具:目录、合并、密码

这是一个去年写的自用小工具。有些 PDF 文件没有目录,所以想自己加上,还有的分章节的小文件想合并为一个文件,就有了这个软件。
这几天又看了下几个 PDF, 发现在 Firefox 里目录不能正常跳转,于是修复了一下软件。

分类
代码

如何编写一个油猴脚本

公司的单点登录从 RSA Token 改成 OTP 了,为了避免每次登录需要输入 Token 的麻烦,想使用浏览器插件来实现。
原来的 RSA Token 不知道怎么生成当前 Token,但是新的 OTP token,有现成的算法可以算出每时刻的 Token,因此完全可以实现自动登录。

OTP(One Time Password) 就是那种动态密码,谷歌验证器那种。安卓可以使用 andOTP

要在浏览器中使用 OTP, 可以使用 yeojz/otplib 这个工具,具体用法看 GitHub 文档就可以。
生成任意时刻的方法可以看 issue 的写法 。

分类
电脑软件

Mac 常用软件 + PHP 环境

首先祝大家新年快乐!已经很久没更新了,新的一年新的开始哈哈~

由于电脑装的东西比较杂,希望把 Mac 整得干净些,所以元旦把电脑重置了一下,然后就是必装软件都补上了。列个清单:(主要参考 awesome-mac

分类
Java

自己实现 Java8 的 Stream 流(串行版)

先看使用方式

List<Integer> list = Lists.newArrayList(1, 2, 3, 4, 5, 6, 7, 8, 8, 8, 9, 9, 9, 1, 2, 3, 2, 3, 4);
String[] strings = Flow.of(list)
        .filter(x -> x % 2 == 0)
        .map(x -> x + "s")
        .limit(30)
        .skip(1)
        .distinct()
        .sorted(Comparator.reverseOrder())
        .toArray(String[]::new);
///[8s, 6s, 4s, 2s]
System.out.println(Arrays.toString(strings));
分类
Java

二叉树相关: 遍历、创建、打印

题目来自 leetcode-cn 的探索卡片:
https://leetcode-cn.com/explore/learn/card/data-structure-binary-tree/

遍历

com.youthlin.leetcode.tree.TreeVisitor

前序遍历

递归版本的太简单了,只贴前序遍历方式。
前序递归是先访问本结点,然后递归调用左子树,再递归调用右子树。
中序和后序都差不多,只是把访问结点那行移动一下就行。

    public <T, N extends BinTreeNode<T, N>> void preOrderTraversalRecursion(BinTreeNode<T, N> root,
            Consumer<BinTreeNode<T, N>> action) {
        if (root == null) {
            return;
        }
        action.accept(root);
        preOrderTraversalRecursion(root.getLeft(), action);
        preOrderTraversalRecursion(root.getRight(), action);
    }

这里我传入了一个 Consumer, 而不是在方法中直接打印结点值,或者加到链表、数组中。

分类
代码

Golang Web 框架 Beego 体验:一个天气网站

最近好像看到 Go 语言的文章更多了,趁着 5 月休假在家有空,也学习了一下。
基本语法很快就熟悉了,跟着这个网站 Go 语言之旅 有编程基础很容易就可以上手。
当然一些细节还是不太知道,比如怎么遍历数组、map,也是后来边做网站边学习,毕竟刚开始都是囫囵吞枣先看个大概,到用的使用自己写一遍才能加深印象。这也是为什么我要用 Golang 写一个小项目的原因。
熟悉了基本语法后,就开始看《Go Web 编程》,讲的是 Go 自带的 http server / template

分类
代码

滚动网页时固定表头

当网页的表格高度比较大时,比如超过一屏,我们希望表头能够一直显示,就像 Excel 的“首行冻结”一样。
搜索一下,看到一种思路是表头写两个,第一个只有表头,默认不显示,定位为 fixed 在顶部,第二个有表头和数据单元格。
然后滚动网页时,使用 js 计算表头是否应该显示,实时的设置可见性。

示例如下: