0%

1. Topic

每天/每周/每月周期的热门 Repositories 和 Developers 最新和最流行的讨论主题

2. 搜索

2.1. 搜开发者

搜索条件 说明
location: location:china 匹配用户填写的地址
language: language:kotlin 匹配开发语言为kotlin的开发者
followers: followers:>=1000 匹配拥有超过 1000 名关注者的开发者
in:fullname jack in:fullname 匹配用户实名为jack的开发者

2.2. 搜项目

搜索条件 说明
awesome + xxx 找到优秀的工具列表
language: language:kotlin 匹配开发语言为kotlin的项目
star: star:>=500 匹配收藏数超过 500 的项目
forks: forks:>=500 匹配分指数超过 500 的项目

3. 下载单个文件

3.1. 下载单个文件

如要下载这个文件 https://github.com/ravenfu/jvm-option-script/blob/master/ejava.sh

  1. 把 url 中 github.com 替换为 raw.githubusercontent.com
  2. 删除 /blob

然后就可以通过命令下载了

1
curl -sSL -o ejava.sh https://raw.githubusercontent.com/ravenfu/jvm-option-script/master/ejava.sh

https://github.com /maqian/toolbox/blob/master/bin/ejava
https://raw.githubusercontent.com /maqian/toolbox/master/bin/ejava

4. 常见问题

4.1. 访问 github 慢

4.1.1. 通过域名解析

我们可以利用以下网址获得以下 GitHub 域名的 IP 地址:

之后组装成 hosts 配置添加到 hosts 文件中

1
2
3
140.82.112.3 github.com
151.101.77.194 github.global.ssl.fastly.net
151.101.76.133 raw.githubusercontent.com

4.1.2. 通过 gitee 导入已有项目

gitee 新建项目, 并添加导入已有项目 – github 上的项目的地址, 之后从 gitee 上下载

1. 常用技巧

  • 声明 class 时, 把非空参数都放在默认构造器中, 可空字段放在属性中
    但如果是 web 应用中的 接收参数对象, 则不能这样做, 必须是先把参数置为可空, 然后再加上验证注解 @NotNull. 因为 json 解析在 注解验证之前

  • 组装参数类型的代码可以使用 DSL, 看起来更直观

  • 对于 jackson 处理 json, 需要引入 jackson-module-kotlin 来支持 kotlin 的 class 与 data class 的序列化与反序列化.

  • 如果 lambda 函数有嵌套, 外层函数应该指定函数签名

  • 对于尾递归函数, 使用 tailrec 修饰, 会对递归函数做优化, 避免栈溢出

2. 官方文档比较重要的章节

3. 实用方法

  • measureTimeMillis(block: () -> Unit): Long
    返回代码块执行所需时间

  • check | checkNotNull
    throw IllegalStateException

  • require | requireNotNull
    throw IllegalArgumentException

  • error
    IllegalStateException

4. 其他

4.1. 协程调试

-Dkotlinx.coroutines.debug=on

5. Resources

1. 项目结构

  • config
  • dto
    • builder
    • factory
  • dao
  • service
  • util

2. controller

类上需要注解 @Validated, @RestController, @RequestMapping
参数上需要注解 @Valid
参数效验放在 controller 层

3. kotlin

  • 注意类属性 is 开头, 在 json 处理时不一致的问题
  • 尽量不要使用作用域函数嵌套, 对象引用是 it 的还能用别名处理, 但对象引用是 this 的就分不清了

中国上市公司的股票有A股, B股, H股, N股和S股等

股票投资入门与实战技巧: 从零开始学炒股
股票大作手操盘术——融合时间和价格的利弗莫尔准则
股票作手回忆录
股票短线交易的24堂精品课(第二版)
股票魔法师——纵横天下股市的奥秘
《股票 T 0 操作策略——每天都是小牛市》 (第2版)
股票魔法师 Ⅱ——像冠军一样思考和交易
从零开始学炒股: 股票入门与实战(全彩图解版)
股票投资精解: 基本面分析的30个黄金财务指标
股票投机原理
投资中最简单的事
投资理财从入门到精通
投资银行, 对冲基金和私募股权投资
经济学原理(第7版)曼昆 彩印精装典藏版
用经济思维看懂世界格局
微观经济理论: 基本原理与扩展
全球通史:从史前史到21世纪(第7版修订版上下册, 当当独家赠送全球通史主题笔记本)

1. 相关术语

Metasploit Framework: 这是一个免费的, 开源的渗透测试框架, 由H.D.Moore在 2003 年发布, 后来被Rapid7收购. 当前稳定版本是使用Ruby 语言编写的. 它拥有世界上最大的渗透测试攻击数据库, 每年超过100万次的下载. 它也是迄今为止使用Ruby构建的最复杂的项目之一.

Vulnerability: 允许攻击者入侵或危害系统安全性的弱点称为漏洞, 漏洞可能存在于操作系统, 应用软件甚至网络协议中.

Exploit: 攻击代码或程序, 它允许攻击者利用易受攻击的系统并危害其安全性. 每个漏洞都有对应的漏洞利用程序. Metasploit有超过 1700 个漏洞利用程序.

Payload: 攻击载荷. 它主要用于建立攻击者和受害者机器直接的连接, Metasploit有超过 500个有效攻击载荷.

Module: 模块是一个完整的构件, 每个模块执行特定的任务, 并通过几个模块组成一个单元运行. 这种架构的好处是可以很容易的将自己写的利用程序和工具集成到框架中.

2. 版本

Metasploit的四个版本:

Pro: 适用于渗透测试人员和IT安全团队

Express: 适用于一般IT人员

Community: 适用于小公司和学生

Framework: 适用于开发人员和安全研究人员

3. msfconsole

https://localhost:5443/api/v1/login

1. 收费但好用的工具

edraw 画图工具
screentflow 录屏工具
mousepose 鼠标/键盘点击提示工具

2. 更新 bash

  1. brew install bash
  2. 重启, 按 Cmd + R, csrutil disable
  3. 重启
  4. sudo sh -c "echo '/usr/local/bin/bash' >> /etc/shells"
  5. sudo mv /bin/bash /bin/bash.origin
  6. sudo ln -s /usr/local/bin/bash /bin/bash
  7. 重启, 按 Cmd + R csrutil enable

3. 实用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 使用caffeinate阻止Mac运行屏幕保护和睡眠
caffeinate -t 3600

# 不通过App Store更新OS X
sudo softwareupdate -i -a

# 将所有下载过的文件列出来
sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV* 'select LSQuarantineDataURLString from LSQuarantineEvent' |more

# 使用chflags命令隐藏文件或文件夹
# 如果你想让某个文件或文件夹影藏, 那么chflags命令可以实现.
你只需将文件路径填对即可, 比如我们向隐藏桌面上的macx文件夹.
如果你想再次看到文件夹, 只需将hidden改为nohidden即可.

chflags hidden ~/Desktop/macx

# 命令行剪切板
echo haha | pbcopy
pbpaste > ha.txt

4. 快捷键

opt + esc 阅读已选中内容
ctrl + cmd + d 翻译

5. FAQ

6. OSX 10.15 上 crontab 定时任务无法生效

1
2
3
4
5
# https://www.d3tt.com/view/109
which cron
# /usr/sbin/cron

# 将 cron 拖到 /系统偏好设置/安全性与隐私/完全磁盘经济访问权限中

7. Resource

1. 安装

1
2
3
4
5
6
7
8
9
curl -sLf https://spacevim.org/install.sh | bash

# 安装字体
git clone https://github.com/powerline/fonts.git ~/Package/fonts
~/Package/fonts/install.sh
# 之后将 iterm2 的字体改为 DejaVu Sans Mono for Powerline

# 卸载
curl -sLf https://spacevim.org/install.sh | bash -s -- --uninstall

2. 快捷键

SPC f v d 打开配置文件
F2 语法树
F3 文件树

1. 智能 ABC 双拼方案

Key Vowel Consonant
Q q ei
W w ian
E ch e
R r er,iu
T t iang,uang
Y y ing
U - u
I - i
O - o,uo
P p uan
A zh a
S s iong,ong
D d ia,ua
F f en
G g eng
H h ang
J j an
K k ao
L l ai
Z z iao
X x ie
C c in,uai
V sh v,ve
B b ou
N n un
M m ue,ui