/2022

Track my last year activities on issues, I posted trashing here instead of social media. Actually GA will output issues labelled & comments into readme, with style of TOC & Anchors, which make could search and find it fast. NOTICE: You Need Setting G_T(token) In Repo Environment If You Want It Works Well.

Primary LanguagePythonMIT LicenseMIT

log(bug) Updated at 2022-11-17

Stage

  • #10

image

⚓ Anchor of above parts

整理房间

⚓ Anchor of above parts

English QuickRef

  • 图画: Paint / win+r -> mspaint

Meme 和 Memo 是两个单词

前者是表情包, 后者是备忘. 之前一直混着用😭

YMMV.

(also ymmv) written abbreviation for your mileage may vary: used, for example on social media and in text messages and emails, to mean that you understand people may have a different opinion or experience to yours: Their first album is better, but of course YMMV.

⚓ Anchor of above parts

传播已出版书籍内容的视频算侵权吗? 多少算?

⚓ Anchor of above parts

吃人条款

  • Tencent WeChat
  • Netease Music

⚓ Anchor of above parts

Windows

  • 看不懂的迷幻操作

    • cmdpython 默认指向微软商店 python-mStore
  • Fuck Windows Defend => fuck Antimalware Service Executable

    # administrator mode
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /d 1 /t REG_DWORD /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /d 0 /t REG_DWORD /f
    # via: https://answers.microsoft.com/zh-hans/windows/forum/all/%E5%A6%82%E4%BD%95%E5%BD%BB%E5%BA%95%E5%85%B3/f71fbc7f-9604-4493-a6b1-6c907664dc83
    REG DELETE "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender" /v DisableAntiSpyware
    # via: https://www.thewindowsclub.com/virus-threat-protection-is-managed-by-your-organization
  • 之前我移除过到期的 Onedrive 账号, 因为图方便就直接把东西挪到回收站了, 但是今天发现里面部分的缓存是删不掉的. 位置在C:\$Recycle.Bin\S-1-5-21-3804606499-716401209-922194820-1001\$R0Y1A2M\xxxx, 附带报错代码0x8007016A. 这就导致了一个死循环

    • 最后的做法是用 PE 进系统, 因为还是找不到这个文件夹, 就直接把C:\$Recycle.Bin这个文件夹也删掉了. 系统好像会自动生成?
  • onenote怎么关闭开机启动啊? - 知乎

  • 开机自启动居然只需要添加快捷方式到 Shell:common startup/Shell:startup 就可以. via: https://answers.microsoft.com/en-us/windows/forum/all/autostart-a-program-in-windows-10/940682ae-8872-47ce-964d-8b1e820d9a5a


  • Bluetooth 只有 stereo 没有 hand-free 模式
  • 怎么 安装 gem??

⚓ Anchor of above parts

RSS


昨天类似的翻译的项目找了很久也没有找到, 不限于已经停更或关站的

当然这也看得出还是活跃在Github比较好, 起码项目不做了, 记录都还留着, 服务器一清理了什么都没了; 而且貌似技术社区中掘金还算好的? 淦噢😂

痛点

  • 专业知识储量
  • 组员放话, 但不干活

⚓ Anchor of above parts

电脑

  • 为什么DELL电脑不统一充电C口, 没有锐龙系列?

[前者] 我觉得这是基本的道德良心吧,毕竟DC口插三孔插座有接地,typeC往往是插二孔插座就没接地了. via: https://www.zhihu.com/question/381287746/answer/1637537271


这里今天翻到一个电脑牌子推荐的帖子, 回复如下:

DELL - 入门商务 Vostro ,进阶 Inspiron ,高级 Latitude ,顶级 XPS/Precision

联想 - 入门 Yoga/ThinkBook/Thinkpad L14 ,进阶 Thinkpad T14/T14s ,高级 T15p ,顶级 Thinkpad X1 Carbon / X1 Extreme / P1 / P15 / P17

HP - 入门 Pavilion ,进阶 Probook/Zhan66 ,高级 EliteBook ,顶级 ZBook / ZBook Studio / ZBook via: https://www.v2ex.com/t/830186#87

电源口救援

笔电要在合盖实现开机可以说是有点难了, Thinkpad 拓展坞自带电源键, 或是其他品牌自带解决方案

小白用户(自己)能做的已经算是很少了...

  • [插电唤醒] Restore after AC Power Loss, 笔电精简了 BIOS, 没有这个选项...

  • [网络唤醒] WOL, wake on lan, 只限于有线网线.

  • [芯片飞线] 难度拉满, 从引脚飞线出来一个按键(EC芯片). via: https://www.zhihu.com/question/53771647/answer/1566583028

  • 所以暂时无解...

⚓ Anchor of above parts

取消所有 star => unstar all repo

也不是小气, 只是发现自己的 star 已经失去控制了, 太广泛了, 有的可能已经不再需要了, 但是再筛自己需要的又太多太难了, 简直是大海捞针, 索性全取消从头来过. 专注自己真正用到的几个仓库才是王道, 把精力放在刀刃上...

当然一开始想自己写的, 抓包发现发送的居然是 post, 而不是 delete 有点意外, 当然被 REST **弄得有点魔怔了. posthttps 下似乎更加安全..

image

然后发现自己开启了 Authy 二部验证真的 py 不知道怎么实现, 放弃了, 发现 GithubAPI 取关居然是 delete请求, 真的是不怎么理解啊😂

最后发现了 npm 得 user-unstar, 问题解决...

via:

  1. https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars
  2. https://stackoverflow.com/questions/50183402/github-api-how-to-get-list-of-users-who-have-starred-a-repo-and-cloned-it
  3. https://stackoverflow.com/questions/42503179/how-to-remove-github-repository-stars-older-than-two-years

⚓ Anchor of above parts

scoop 拉不到最新的版本

安装哈希校验失败, 但是搜 issue 发现版本已经落后作者更新的 json 了, 执行安装该版本发现还是可以安装的...

因为 scoop 依赖 git, 所以我之前翻过对应的 repo, 可能不小心修改过文件, 都会让 git pull 不下来仓库信息, 所以放弃更改就行了. 具体为以下报错信息

# error: Your local changes to the following files would be overwritten by merge:
#          /xxxx/xxxx.json
git reset --hard
git pull

遗留问题

  • scoop 无法卸载未成功安装的软件, 非常神奇

image

拉不下来.

scoop config proxy 127.0.0.1:7890
scoop config aria2-enabled false

⚓ Anchor of above parts

[PP] 远程控制

一度认为 TeamViewer 是最优解, 但是今天发现国区也需要绑定 +86 的手机号... 之后发现手机号绑到另一个号上了, 得嘞, 上另外一个号, excuse me??? You have no switches left??? 合着我这辈子就只能在这个账户下用两台设备是吗??? 官方也没个回复, 嫖不到服务, delete account, 走了...

笑死, 挂了 SG 的节点, todesk 不让注册了(表现为那个滑块纹丝不动), tmd, 也是必须绑定 +86 手机号, 然后发现 V2-安全漏洞 的帖子, 啼笑皆非.

最终确定了 VNC Viewer(从 这里 拿到了专业版试用) & Windows Remote Desktop 两个软件, 但是前者无法传输 Audio 后者无法跨平台使用都挺操蛋的. 唯一都不识别的键位就是 win 了, 需要单独调出虚拟键盘拿到, 有点繁琐.

Diff

两个软件的差别现在列举如下

  • 系统自带的更像是在本机上运行似的,而 VNC 更像投屏;
    • 在使用输入法的时候可以明显感觉出来,VNC可以调用本机的输入法,而 RD 只能调用平板的输入法,因为我的同问输入法配置文件似乎不适配平板的一系列操作, 三星自带输入法又不支持双拼, 所以最后还是用了 Gboard, 唯一的缺点就是无法全局半角了,多少在写 markdown 的时候略感难受。
    • 屏幕的显示比例也可以看出,RD 是全屏显示,VNC还是传统 16:9 的输出。

优化 RD 显示及帧率

走完一遍下来基本感觉稳在 50-60 之间了,反正比之前30帧舒服得多。

  1. 显卡支持: gpedit.msc -> 计算机配置->管理模板->Windows组件->远程桌面服务->远程桌面会话主机->远程会话环境 -> enable 硬件图形适配器应用于所有远程桌面服务会话
  2. 添加注册表 -> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations -> DWORD (32位) -> DWMFRAMEINTERVAL -> 15 (十进制)
  3. reboot.

via https://blog.csdn.net/csdn_life18/article/details/108250846 & https://v2ex.com/t/746154

注意不要用 UDP 代替 TCP, 连接有时会断得很离谱. via: https://www.v2ex.com/t/507173 & https://www.nextofwindows.com/troubleshoot-and-improve-rdp-connections-with-udp

⚓ Anchor of above parts

链路改装,刷固件

改装链路

  • 两个二级路由下的设备互访? 打通两个路由器网络?
  1. 如下我叙述的那样,将远程路由变成中继

  2. 静态路由, 设置遇到另一个网段的地址, 直接转发到目的网段的路由器处理,此处类似转发的操作无需端口转发,直接用静态路由去做。

  3. Lan To Lan, 实现网络的拓展,本质还是中继(PS:Wan To Lan 的路由器连接方法需要关闭 Lan 入口路由器的 DHCP功能,并设置网关为 Wan 出口路由 IP)

via: wikihow & https://zhuanlan.zhihu.com/p/85129768https://www.zhihu.com/question/26598324

更多链接:

今天发现没办法用远程桌面了, 才意识到去年搬家网络链路也变了(之前我电脑做服务器是直接连接交换机的, 现在电脑已经成了三级设备), 虽然知道网络层已经把两个网络独立开了, 还是**般折腾了好一会儿, 换局域网的 IP, 用小米路由的转口转发什么的, 都不成. 中途关了 DHCP 直接连后台都进不去了, 最后还是走的重置路由. 真🐶.

所以现在要么是复现当时的链路连接方法, 要么另寻他法, 因为自己没有找到合适的解决方案. 而且官方路由无法单独设置子网掩码, 永远是255.255.255.0, 所以产生了要刷路由固件的想法.

刷固件

个人买路由器是在 2006 的时候, 所以固件版本为 1.0.14-stable 也不用折腾去降级了, 直接跟着 B站视频 做, 一个小时连拆带刷, 再带探索, 一气呵成, 最后实现了也就是 对指定 IP(设备) 科学上网 和 去广告这两个馋了我好久的功能了...

大概流程也就是像它那个 脑图 那样.

  • 卸载火绒, 关闭 firewall, via: 火绒怎么完全退出? - 知乎
  • 网卡设置静态 IP
  • windows 开启 telnet
  • 安装 winpcap
    • 中途报了 C:\WINDOWS\system32\npf.sys 的错, 问题不大, 因该是权限问题, 复写完了大小也一样..
  • 执行脚本 && telnet 192.168.31.1 && cd /tmp&&wget http://192.168.31.177:8081/busybox&&chmod a+x ./busybox&&./busybox telnetd -l /bin/sh && telnet 192.168.31.1 && cd /tmp && wget http://192.168.31.177:8081/breed-mt7621-xiaomi-r3g.bin&&nvram set uart_en=1&&nvram set bootdelay=5&&nvram set flag_try_sys1_failed=1&&nvram commit && mtd -r write breed-mt7621-xiaomi-r3g.bin Bootloader
  • 长按 reset 后开机直到闪烁进入 不死 breed, 最后在里面刷上老毛子的固件, 版本当然还是2019年, 但是暂时够用了, nice.

另外 安山的旧蓝奏的链接一般都是 lanzous.com, 用的时候全换成 lanzoux.com 就能用了

家里还有台之后买的 ac2100, 回头有机会也一并刷上去吧

突然发现小米路由器有中继功能, 什么都不用设置, 直接在网络连接里开启中继, 本来想着用 lan to lan + DHCP, 没想到小米直接可以, 太棒了. 最后后台变成了 192.168.2.164. 在考虑 IP 冲突的问题 这样不会冲突吧

一点概念

  • 固件差别 (via: https://www.right.com.cn/forum/thread-4009551-1-1.html)

    • OpenWRT
      • OpenWRT是参考了Linksys代码的开源系统,于2005年正式推出了1.0
      • 嵌入式的 Linux 发行版, 但对博通的CPU支持的不好,主要是因为博通不开源(博通的路由常见于华硕的中高端型号)
      • 硬件表格: https://openwrt.org/zh/toh/start
    • LEDE
      • OpenWRT在LEDE 17.01.0到LEDE 17.01.6的版本
      • OpenWRT的一个成熟时期
    • 潘多拉(PandoraBox)
      • 国内lintel开发的一个基于OpenWRT的分支
    • 华硕(Asuswrt)
      • 固件功能和稳定性很强,缺点可定制性不高。
      • 大多机型为博通CPU
    • 梅林
      • 基于华硕的改版
    • 老毛子(Padavan)
      • 俄罗斯人基于华硕的改版
  • 中继、无线桥接、级联、HyFi、AP/AC (via: https://service.tp-link.com.cn/detail_article_458.html)

    • AP(ACCESS POINT): 把有线网络转换为无线网络. 无线AP也就是一个无线交换机, 接入在有线交换机或是路由器上, 接入的无线终端和原来的网络是属于同一个子网
  • SSID (Service Set Identifier): 无线名称

  • RSSI (Received Signal Strength Indicator): 接收信号的强度指示,在反向通道基带接收滤波器之后进行的

电脑开始裸奔

因为刷固件的时候把火绒卸载了, 现在就出现了另一个问题,我不想装回去了。

  • 开机自启动管理 -> task manager/startup.
  • Host -> C:\Windows\System32\Drivers\etc\hosts
  • Net Monitor -> Traffic Monitor
  • 右键管理

⚓ Anchor of above parts

Git

  • submodule

  • 移除历史提交

    git filter-branch --force --index-filter \
    'git rm -r --cached --ignore-unmatch public/photos' \
    --prune-empty --tag-name-filter cat -- --all
    echo public/photos >> .gitignore
    git add .gitignore && git commit -m "ignore rule for photos"
    git push origin branch -f
    // via: https://stackoverflow.com/questions/25458306/git-rm-fatal-pathspec-did-not-match-any-files
  • git 如何不提交目录删除文件

    git rm readme
  • Git log Corrupt

    # via: https://stackoverflow.com/questions/11706215/
    error: object file .git/objects/c1/1f7a16a52bc71a318650710c1fa1e82e72a2ce is empty
    fatal: loose object 1f7a16a52bc71a318650710c1fa1e82e72a2ce (stored in .git/objects/c1/1f7a16a52bc71a318650710c1fa1e82e72a2ce) is corrupt
    

    Well, above methods maybe helpful, yet I need the simplest way... While my repo has serveal submodules so when I move dir .git to origin, it throws error fatal: Not a git repository.

    # backup your old repo, seriously!!!
    # via: https://stackoverflow.com/questions/41718822/
    $ git clone git@github.com:user/repo.git
    $ git submodule update --init --recursive

    So my fool method is to git clone origin repo and submodule and move the old repo to my new repo. Also it will throws error mv: Directory not empty. Then, just

    # via: https://stackoverflow.com/questions/29135986/
    $ cp -R source/* destination/ 
    $ rm -R source/
  • git rebase


⚓ Anchor of above parts

Jekyll 整修记

可能会用到的 CSS 代码

类 github 表格 CSS.

/* via: typora github theme */ 
table {
  padding: 0;
  word-break: initial;
  border-collapse: collapse;
}

table tr {
  border: 1px solid #dfe2e5;
  margin: 0;
  padding: 0;
}

table tr:nth-child(2n), 
thead {
  background-color: #f8f8f8;
}

table th {
  background:#bec1c4;
  font-weight: bold;
  border: 1px solid #dfe2e5;
  border-bottom: 0;
  margin: 0;
  padding: 6px 13px;
}

table td {
  border: 1px solid #dfe2e5;
  margin: 0;
  padding: 6px 13px;
}

table th:first-child,
table td:first-child {
  margin-top: 0;
}

table th:last-child,
table td:last-child {
  margin-bottom: 0;
}

tr:nth-child(n):hover td {
  background:#D7C4BB;
}

目录 Css

/* via: sspai.com */
.contents{
  font-size: 16px;
  overflow: auto;
  max-height: 400px;
  max-width: 300px;
  border: 1px solid #a2a9b1;
  background-color: #f8f9fa;
  padding: 10px;
}

.contents>ul{
  list-style: none;
  margin-left: -20px;
}

Math Latex Supported.

#8

Comment Jmp to Github Issues

via: Variables | Jekyll • Simple, blog-aware, static sites

⚓ Anchor of above parts

Samsung

Galaxy App Booster

via: https://www.youtube.com/watch?v=riWyEKS4d-M

using android feature via https://android-developers.googleblog.com/2019/04/improving-app-performance-with-art.html

⚓ Anchor of above parts

Virtualbox

腾讯会议 在 win7虚拟机 下绘制图形失败, 必须重启电脑

就算是开启3d加速, 显卡拉到 256M 还是收效甚微. 所以打算换个系统 win11.

配置的时候记得开启如下选项

  1. 分配硬盘一定要 100G(动态), 要不容易卡在安装蓝屏.
  2. 系统 -> 主板 -> 内存4G & 启用EFI
  3. 系统 -> 处理器 -> 处理器数4 & 启用PAE/NX
  4. 显示 -> 屏幕 -> 硬件加速 & 256M

进去系统在安装前 shief+F10 打开 cmdregedit

HKEY_LOCAL_MACHINE\SYSTEM\Setup 下新建一个 LabConfigkey, 其下新建 BypassTPMCheck, BypassRAMCheck, BypassSecureBootCheck 三个 DWORD (32位) 值,赋值均为 1. 骗过校验之后就能直接安装了.

之后发现还是很卡, 在 系统 -> 硬件加速 -> Hype-V(win) / KVM(linux) 会有所好转. Mac 则有 PD备胎 可选

而且硬件居然显示的不是 SSD, 而是HDD. 暂时不知道要怎么做....

Refs

  1. https://www.zhihu.com/question/58179981
  2. https://www.zhihu.com/question/309295881
  3. https://www.zhihu.com/question/63156851
  4. https://www.v2ex.com/t/805490
  5. https://www.v2ex.com/t/623493
  6. https://www.v2ex.com/t/284666

⚓ Anchor of above parts

TTRSS Shortcuts, ttrss 快捷键

I'm sorry that I couldn't found any related from offical wiki and other site. The only I found helpful site is unavailable now(via https://www.isitdownrightnow.com/ttrss.info.html).

And I found some shortcuts by myself except arrow keys and j/k/n(j = previous category. · k = next category. · n = next unread article). 😂

Shortcuts Mean
Shift + q Mark All Readed.
o Open Origin Url in new tab
space Scroll

⚓ Anchor of above parts

Get Windows WLAN IP

netsh interface ip show address "WLAN" | findstr "IP Address" | Select-String -Pattern '([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*)' | %{ $_.matches.Value }

via: networking - How to get network ip address via windows command prompt? - Super User

After I learn some usage of windows command line, It's weird that man xxx/Get-Help xxx useless than xxx ?, like following:

PS C:\Users\15517> man netsh

NAME
    Netsh-Lan

SYNTAX
    Netsh-Lan


PARAMETERS
    None


INPUTS
    None


OUTPUTS
    System.Object

ALIASES
    None


REMARKS
    None



PS C:\Users\15517> netsh ?

Usage: C:\windows\system32\netsh.exe [-a AliasFile] [-c Context] [-r RemoteMachine] [-u [DomainName\]UserName] [-p Password | *]
             [Command | -f ScriptFile]

The following commands are available:

Commands in this context:
?              - Displays a list of commands.
add            - Adds a configuration entry to a list of entries.
advfirewall    - Changes to the `netsh advfirewall' context.
branchcache    - Changes to the `netsh branchcache' context.
bridge         - Changes to the `netsh bridge' context.
delete         - Deletes a configuration entry from a list of entries.
dhcpclient     - Changes to the `netsh dhcpclient' context.
dnsclient      - Changes to the `netsh dnsclient' context.
dump           - Displays a configuration script.
exec           - Runs a script file.
firewall       - Changes to the `netsh firewall' context.
help           - Displays a list of commands.
http           - Changes to the `netsh http' context.
interface      - Changes to the `netsh interface' context.
ipsec          - Changes to the `netsh ipsec' context.
lan            - Changes to the `netsh lan' context.
mbn            - Changes to the `netsh mbn' context.
namespace      - Changes to the `netsh namespace' context.
netio          - Changes to the `netsh netio' context.
p2p            - Changes to the `netsh p2p' context.
ras            - Changes to the `netsh ras' context.
rpc            - Changes to the `netsh rpc' context.
set            - Updates configuration settings.
show           - Displays information.
trace          - Changes to the `netsh trace' context.
wcn            - Changes to the `netsh wcn' context.
wfp            - Changes to the `netsh wfp' context.
winhttp        - Changes to the `netsh winhttp' context.
winsock        - Changes to the `netsh winsock' context.
wlan           - Changes to the `netsh wlan' context.

The following sub-contexts are available:
 advfirewall branchcache bridge dhcpclient dnsclient firewall http interface ipsec lan mbn namespace netio p2p ras rpc trace wcn wfp winhttp winsock wlan

To view help for a command, type the command, followed by a space, and then
 type ?.

⚓ Anchor of above parts

手机📱

  • 耳机连接声音有点大 情景模式
  • 几点之后设置静音🔇晚上通知容易吵着别人

⚓ Anchor of above parts

为什么对她这么不好

她有没有曾为我做些什么 为什么总是要我去做她做不来的事情 自己去做不就好了 不要什么事情都找我 很烦

我不想听别人的废话 太费我的精力了

一点点的东西就把我的精力打散了 好无奈

怎么破除这样脆弱的状态

果然应该为明天做更加具体的计划吗

当然计划应该有剩余

⚓ Anchor of above parts

Wget Here

via: https://www.youtube.com/watch?v=Oe40pxcjPpM

wget --mirror --page-requisites --convert-link --no-clobber --no-parent --domains (root-domain) (url you want)

⚓ Anchor of above parts

Python

Uninstall Package I do not need

Using pip-date · PyPI make sure what you want to uninstall.

pip freeze > requirements.txt
pip uninstall -r requirements.txt [-y]

Look where you install it

python -m site

Install Env Here

pip install -r requirements.txt -t .

Pipenv

#pip.ini
trusted-host = pypi.python.org
               pypi.org
               files.pythonhosted.org
proxy = <proxy:port>
http_proxy = xxx
https_proxy = xxx

# pipfile
[[source]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"

⚓ Anchor of above parts

Java

Basic

  • ArrayList
    • Init via: How to initialize an ArrayList
      • 常规
        // 1
        ArrayList<T> obj = new ArrayList<T>();
        obj.add("o1");
        obj.add("o2");
        
        // 2
        ArrayList<T> obj = new ArrayList<T>();
        List list = Arrays.asList("o1","o2",...);
        obj.addAll(list);
      • 匿名内部内进行初始化
        ArrayList<T> obj = new ArrayList<T>() {{
            add(Object o1);
            add(Object o2);
            ...
            ...
        }};
      • Arrays.asList
        ArrayList<Type> obj = new ArrayList<Type>(Arrays.asList(Object o1, Object o2, Object o3, ....so on));
      • Collections.ncopies
        ArrayList<T> obj = new ArrayList<T>(Collections.nCopies(count,element));//把element复制count次填入ArrayList中
    • sort via: Java List排序的几种方式整理 - 掘金
      // 1. basic
      Collections.sort(list);
      // 2. user based
      class classname implements Comparable<classname>{}
      // 3. 匿名内部类
      Collections.sort(list, new Comparator<User>() {
                  @Override
                  public int compare(User u1, User u2) {
                      int diff = u1.getAge() - u2.getAge();
                      if (diff > 0) {
                          return 1;
                      }else if (diff < 0) {
                          return -1;
                      }
                      return 0; //相等为0
                  }
              }); // 按年龄排序
      // 4.
      list.sort(Comparator.comparing(User::getAge));
    • to Array (seem like set)
      String[] myArray = new String[list.size()];
      list.toArray(myArray);
  • Array
    • init
      int[] x;// 1
      int x[];// 2
      int []x;// 3
      
      int[] array=new int[]{10,20,30,40,50};
      
      int[] array=new int[50];
    • to list
      List<String> list = new ArrayList<String>(Arrays.asList(myArray));
    • to Set
      Set<String>set = new HashSet<>(Arrays.asList(arr));
      • NOTICE: int to Integer hasn't a init constructor. so just manually do it. / Stream
      // via: https://stackoverflow.com/questions/1073919
      // Stream on Java 8+
      int[] ints = {1,2,3};
      List<Integer> list = Arrays.stream(ints).boxed().collect(Collectors.toList());
      // Stream on Java 16+
      List<Integer> list = Arrays.stream(ints).boxed().toList();
      // Manual
      List<Integer> intList = new ArrayList<Integer>(ints.length);
      for (int i : ints)
          intList.add(i);
      
  • HashMap 五种遍历方式
    • class Solution {
          public List<Integer> findDuplicates(int[] nums) {
              HashMap<Integer, Integer> lg = new HashMap<>();
      
              for (int i: nums){
                  lg.put(i, lg.getOrDefault(i, 0)+1);
              }
      
              List<Integer> ans = new LinkedList<>();
      
      //// 1. forEach
              lg.forEach((k, v) -> {
                  if(v > 1)
                      ans.add(k);
              });
      //2. Iterator
              Iterator it = lg.entrySet().iterator();
              while(it.hasNext()){
                  Map.Entry <Integer, Integer> ele = (Map.Entry) it.next();
                  if(ele.getValue()>1)
                      ans.add(ele.getKey());
              }
      //3.Map.Entry
              for(Map.Entry <Integer, Integer> ele : lg.entrySet()){ // Map.Entry ele : lg.entrySet()
                  if(ele.getValue()>1)
                      ans.add(ele.getKey());
              }
      //4.map.keySet()
              for (Integer key : lg.keySet()) {
                  if(lg.get(key)>1)
                      ans.add(key);
              }
      //5.keySet() + Array
              Object key[] = lg.keySet().toArray(); // incompatible types: Object[] cannot be converted to Integer[]
              int len = key.length;
              for(int i = 0; i<len ; i++){
                  if( lg.get(key[i]) > 1 )
                      ans.add((int)key[i]);          // ...
              }
              
              return ans;
          }

convert an integer to binary

  • Integer.toBinaryString(int i) via: How to convert an integer to binary in Java
    • To add the padding, first format the string to fixed-width string using the String.format() method. Then, replace spaces with 0s using the String.replaceAll(String str, String replacement)
      • String.format("%32s", binaryString).replaceAll(" ", "0");
    • Adding 4-bit blocks
      • StringBuffer sb = new StringBuffer();
        for (int i = 0; i< binaryString.length(); i++ ) {
          sb.append(binaryString.charAt(i));
          if (i%4 == 3 && i != binaryString.length() - 1)
            sb.append(separator);
        }

JDBC & Mysql

Run Tomcat on WSL2

Tomcat >=10, servlet from javax to jakarta

Little Error

More See

Maven

via: 廖雪峰

  • 项目需要
    • 确定引入哪些依赖包
    • 确定项目的目录结构
      • src 目录存放Java源码,
      • resources 目录存放配置文件,
      • bin 目录存放编译生成的.class文件
    • 配置环境
      • JDK的版本,编译打包的流程,当前代码的版本号
    • 这些工作难度不大,但是非常琐碎且耗时。
      • 需要的是一个标准化的Java项目管理和构建工具
        • Maven 就是是专门为Java项目打造的管理和构建工具,它的主要提供了一套:
          • 标准化的项目结构;
            a-maven-project					# 根目录, 项目名
            ├── pom.xml						# 项目描述文件
            ├── src
            │   ├── main
            │   │   ├── java				# Java源码
            │   │   └── resources			# 资源文件
            │   └── test
            │       ├── java				# 测试源码
            │       └── resources
            └── target						# 所有编译、打包生成的文件
            
            • pom.xml 的内容
              <project ...>
              	<modelVersion>4.0.0</modelVersion>
              	<groupId>com.itranswarp.learnjava</groupId>
              	<artifactId>hello</artifactId>
              	<version>1.0</version>
              	<packaging>jar</packaging>
              	<properties>
                      ...
              	</properties>
              	<dependencies>
                      <dependency>
                          <groupId>commons-logging</groupId> <!-- Java的包名, 公司或组织名称 -->
                          <artifactId>commons-logging</artifactId> <!-- Java的类名,通常是项目名称 --> 
                          <version>1.2</version>
                      </dependency>
              	</dependencies>
              </project>
              • 通过上述 3 个变量,即可唯一确定某个jar包
              • 通过 PGP 签名确保任何一个 jar 包一经发布就无法修改
          • 标准化的构建流程(编译,测试,打包,发布……);
            • $$Lifecycle(生命周期) = \sum_{i=1}^{n} phase_{i} = \sum_{i=1}^{n} (\sum_{i=1}^{n} Goal_{i})_{i}$$
              mvn + phase
              
              default: 	validate, initialize, generate-sources, 
              			process-sources, generate-resources, process-resources, 
              			compile, process-classes, generate-test-sources, 
              			process-test-sources, generate-test-resources, 
              			process-test-resources, test-compile, process-test-classes, 
              			test, prepare-package, package, pre-integration-test, 
              			integration-test, post-integration-test, verify, 
              			install, deploy
              package		...package
              compile		...compile
              clean 		pre-clean, clean, post-clean
              
              frequestly  clean compile, clean test, clean package
              
            • 插件
              • maven-shade-plugin:打包所有依赖包并生成可执行jar;
              • cobertura-maven-plugin:生成单元测试覆盖率报告;
              • findbugs-maven-plugin:对Java源码进行静态分析以找出潜在问题。
            • 模块管理
              single-project
              ├── pom.xml
              └── src
              
              mutiple-project
              ├── module-a
              │   ├── pom.xml
              │   └── src
              ├── module-b
              │   ├── pom.xml
              │   └── src
              └── module-c
                  ├── pom.xml
                  └── src
              
              • 模块可以提取出共同部分作为parent
                multiple-project
                ├── pom.xml
                ├── parent
                │   └── pom.xml
                ├── module-a
                │   ├── pom.xml
                │   └── src
                ├── module-b
                │   ├── pom.xml
                │   └── src
                └── module-c
                    ├── pom.xml
                    └── src
                
          • 依赖管理机制
            • 无需研究依赖之间的依赖关系; Maven **仓库 .
              scope 说明 示例
              compile 编译时需要用到该jar包(默认) commons-logging
              test 编译Test时需要用到该jar包 junit
              runtime 编译时不需要,但运行时需要用到 mysql
              provided 编译时需要用到,但运行时由JDK或某个服务器提供 servlet-api
  • Proxy
    • 进入.m2目录, 创建 settings.xml 配置文件
      <settings>
          <mirrors>
              <mirror>
                  <id>aliyun</id>
                  <name>aliyun</name>
                  <mirrorOf>central</mirrorOf>
                  <!-- 国内推荐阿里云的Maven镜像 -->
                  <url>https://maven.aliyun.com/repository/central</url>
              </mirror>
          </mirrors>
      </settings>
  • mvnw (Maven Wrapper) : 给一个项目提供一个独立的,指定版本的Maven给它使用
  • 发布

⚓ Anchor of above parts

WSL

  • resolv.conf and real IPv4 is different image
  • Docker 部署 TTRSS, 端口转发和防火墙
    $ sudo docker-compose --env .env up -d
    • --env is environment each we deploy. mainly to replace ${HTTP_PROXY} in docker-compose.yml

      environment:
      ...
      - HTTP_PROXY=${HTTP_PROXY}
      • we see .env file like this, each I open the terminal proxy I will refreah this file using zsh. (cause wsl2's Ip is not fixed.
      $ cat .env
      HTTP_PROXY=172.27.176.1:7890
      
      $ docker-compose down
      $ docker-compose rm # 删除已停止的 Docker 容器 ???
      $ docker-compose up -d
      • When everything work well, start your ttrss career.😆 Buuuut, emmm, Where you deploy? WSL! What the feature is?
      Feature(via: mircosoft) WSL 1 WSL 2
      Integration between Windows and Linux
      Fast boot times
      Small resource foot print compared to traditional Virtual Machines
      Runs with current versions of VMware and VirtualBox
      Managed VM
      Full Linux Kernel
      Full system call compatibility
      Performance across OS file systems
    • Fucking VM Network!!! So you cannot visit using LAN IP, which you just only use it on your PC(using 127.0.0.1)!!! So next you should set port forwarding on win10. The startup see more deatails on here-csdn. Shortly like following:

      BTW, SELF_URL_PATH is really hard. when I not realize the problem is wsl network, I search it on google as much as I can. (Hundreds of tabs). Route DNS Hijacking/domain DNS in cloudflare. At most is adding define('_SKIP_SELF_URL_PATH_CHECK',true) to config.php, via: offical. But appearly they are not the same problem, of course I failed. Haha, hard really... till i found LAN could work well from v2ex.

      # on wsl
      $ ip addr show eth0
      # get v4ip likely: 192.168.97.228/20 ->  192.168.97.228, then switch windows ps
      $ sudo netsh interface portproxy add v4tov4 listenport=4040 listenaddress=0.0.0.0 connectport=4040 connectaddress=192.168.97.228 protocol=tcp
      # or -> sudo netsh interface portproxy add v4tov4 listenport=4040 listenaddress=* connectport=4040 connectaddress=192.168.97.228 protocol=tcp
      # check what you set
      $ netsh interface portproxy show all
      • Then if everything work well, you'll be able to visit your PC LAN IP to visit TTRSS. But on my machine it still not work. That's really wired... Open firewall & network protection -> advanced settings -> inbound rules -> new rules: port -> TCP&&4040 -> defalut...
    • Then everything work well for me. Nice🍻

  • vim clipboard sharing
    :w !clip.exe
  • win10 GUI
    • GWSL in Microsoft Store(recommand).
    • VcXsrv. with following WSL2 Config:
      sudo apt install -y tasksel
      sudo tasksel install xubuntu-desktop
      sudo apt install gtk2-engines
      
      # .vimrc
      export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0.0
      #export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0
      # export LIBGL_ALWAYS_INDIRECT=1 ?
      # sudo /etc/init.d/dbus start &> /dev/null ?
  • WSL Node Can not Fetch Update
    • This script requires Node v12.14.0 or higher, but you are using v10.19.0
      
    • After I sudo apt update -y, I do not find the choose to upgrade my low version nodejs. So I try Microsoft Doc to do. That works well. 😁
      • curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
        nvm ls # check
        nvm install --lts
  • Compress JPEG
    • jpegoptim --stdout a.jpg > b.jpg
      cat a.jpg | jpegoptim --stdin > b.jpg
      //via: https://github.com/tjko/jpegoptim/issues/14

⚓ Anchor of above parts

android browser download file cannot open(cannot find

⚓ Anchor of above parts

Http-sever Video Sound Strange

  • Samsung Internet Browser Work well, Via, Kiwi Browser Not Work

⚓ Anchor of above parts

Win10

Open Hibernate

# open administer power
powercfg.exe /hibernate on

Power Option (Battery Plan) -> Choose what the power button do -> Change settings that are currently unavailable -> Hibernate.

via: https://adersaytech.com/kb-article/enable-hibernate-mode.html

⚓ Anchor of above parts

USB 接线图

via: http://www.usbzh.com/article/detail-206.html

⚓ Anchor of above parts

Gtihub Page -> Index Directory

⚓ Anchor of above parts

Github Action

⚓ Anchor of above parts

人体工程学, 表面解决腰酸背痛问题

via: 机の高さと椅子の座面の高さの関連性 | Bauhütte®

⚓ Anchor of above parts

Productivity Pron

  • workspacer/workspacer: a tiling window manager for Windows
    • ShortCut
      • alt-shift-{1..9}: move focused window to workspace {1..9} | 移动窗口到工作台
      • alt-{1..9}: switch to workspace {1..9} | 换当前工作区
        • alt-{wer}: focus monitor {123}
      • alt-t: toggle tiling for focused window | 释放控制窗口
      • alt-h/alt-l: shrink/expand primary area | 左右调整窗口
      • alt-shift-j: swap focus and next window | 专注下一窗口
      • ? alt-shief-e
  • KDE Connect | KDE Connect: A project that enables all your devices to communicate with each other.
    • clash with CFW.
    • Under phone, it needs to set storage path.
  • ninja33/ODH: A chrome extension to show online dictionary content.
  • WebCull - Ad-Free and Privacy-Focused Bookmark Manager
  • Raindrop.io — All-in-one bookmark manager
    • RainDrop cannot select by mouse, Raindrop part cannot select.
      • Bookmarklet Replace Tag CSS
        javascript: (() => {document.getElementById('rdhs').innerHTML = '.rdhnav:before,mark[data-rdhid]{background:var(--rdhc,#fe0)!important}mark[data-rdhid]{background-image:linear-gradient(180deg,hsla(0,0%,100%,.7) 0,hsla(0,0%,100%,.7))!important;color:#000!important;-webkit-text-fill-color:#000!important;cursor:pointer!important}.rdhni{display:inline!important;padding:0!important;border:0!important;color:inherit!important;opacity:.5!important;fill:currentColor!important;background:transparent!important;border-radius:0!important;margin:0 .3em!important;width:.85em!important;height:.85em!important}.rdhnav{position:fixed!important;right:0!important;padding:10px 6px 10px 10px!important;cursor:pointer!important}.rdhnav:before{content:""!important;display:block!important;width:10px!important;height:10px!important;border-radius:10px!important;box-shadow:0 0 0 .5px ButtonShadow,0 5px 30px rgb(0 0 0/30%)!important;background-image:linear-gradient(180deg,hsla(0,0%,100%,.2) 0,hsla(0,0%,100%,.2))!important}.rdhnav:hover:before{background-image:linear-gradient(180deg,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,.5))!important}.rdhnav:active{filter:brightness(50%)!important}';})();
      • Script: Raindrop 用的 mark[data-rdhid], js 选中了 mark 也没用, 不知道为什么里面的 style>user-select 为什么是空, 没有定义.
        mark = document.getElementsByTagName('mark');
        for(var i=0;i<mark[i].length;i++){
            mark[i].style.removeProperty('-webkit-user-select');
            mark[i].style.removeProperty('user-select');
        }
        
        for(var i=0;i<mark[i].length;i++){
            mark[i].style.setProperty('-webkit-user-select', 'text !important');
            mark[i].style.setProperty(('user-select', 'text !important');
        }
        全部都无效, 然后又尝试了 parentNode.removeChild 也还是不行, Chrome Extension 又会再次把 CSS 注入进来. 也尝试用 Stylish, 但是应该是 css 加载顺序的问题, 总是不生效...
  • Add a Back2Top Button
    • Due to CSP, some userscript wasn't allowed injected into pages, so them will not work, even can't repair without paied...
    • //... also with tampermonkey beta
      (function() {
          'use strict';
          var newHTML=document.createElement ('div');
          newHTML.innerHTML='<style>#kotori{position:fixed;bottom:-10px;left:-10px;height:70px;width:70px;cursor:pointer;transition:.2s all;display:block;z-index:100}#kotori:hover{transform:translate(10px,-10px)}</style><img id="kotori" src="https://s1.ax1x.com/2022/05/11/OUqj3D.png" onclick="smoothscroll()">';
          document.body.appendChild (newHTML);
      
          var scriptElem = document.createElement('script');
          scriptElem.innerHTML = 'window.addEventListener("scroll",handleScroll);function handleScroll(){var scollTop=document.documentElement.scrollTop||document.body.scrollTop;var clientHeight=document.documentElement.clientHeight;if(scollTop>=clientHeight){document.querySelector("#kotori").style.display="block"}else{document.querySelector("#kotori").style.display="none"}}function smoothscroll(){var currentScrollTop=document.documentElement.scrollTop||document.body.scrollTop;if(currentScrollTop>0){window.requestAnimationFrame(smoothscroll);window.scrollTo(0,currentScrollTop-currentScrollTop/10)}};';
          document.body.appendChild(scriptElem);
      
          var code = 'window.addEventListener("scroll",handleScroll);function handleScroll(){var scollTop=document.documentElement.scrollTop||document.body.scrollTop;var clientHeight=document.documentElement.clientHeight;if(scollTop>=clientHeight){document.querySelector("#kotori").style.display="block"}else{document.querySelector("#kotori").style.display="none"}}function smoothscroll(){var currentScrollTop=document.documentElement.scrollTop||document.body.scrollTop;if(currentScrollTop>0){window.requestAnimationFrame(smoothscroll);window.scrollTo(0,currentScrollTop-currentScrollTop/10)}};';
          eval(code);
      
          let script_tag = GM_addScript('alert("works!");');
      })();
      // more details via: https://github.com/Tampermonkey/tampermonkey/issues/296
  • Scroll to bottom via: javascript - Scroll Automatically to the Bottom of the Page - Stack Overflow & javascript - Why cant I scroll browser window in a loop in console? - Stack Overflow
    javascript: (() => { let i = 0; var times = prompt("Input how many times to scroll?"); if (times == ""){ times = 1000; } function scrollDownTillEnd(countryDropdownList) { let scrollingInterval = setInterval(function () { window.scrollTo(0, document.body.scrollHeight || document.documentElement.scrollHeight); if(i >= times) clearInterval(scrollingInterval); console.log(i++ + "Times."); }, 200); } scrollDownTillEnd(); })();

⚓ Anchor of above parts

抓包

  • 极客时间超链接跳转
    • 猜测是把跳转网址记录到缓存里面 (请求回来的数据里有 <a> 标签, 但是 HTML 文档里面没有出现). image image image

⚓ Anchor of above parts

Fuck Inner Mongolia DNS

PS C:\Users\xxx\Desktop\review> nslookup.exe github.com 222.74.1.200
Server:  200.1.74.222.broad.hh.nm.dynamic.163data.com.cn
Address:  222.74.1.200

Non-authoritative answer:
Name:    github.com
Addresses:  ::
          0.0.0.0

PS C:\Users\xxx\Desktop\review> nslookup.exe github.com 222.74.126.230
Server:  230.126.74.222.broad.tl.nm.dynamic.163data.com.cn
Address:  222.74.126.230

Non-authoritative answer:
Name:    github.com
Addresses:  ::
          0.0.0.0

PS C:\Users\xxx\Desktop\review> nslookup.exe github.com 222.74.59.65
DNS request timed out.
    timeout was 2 seconds.
Server:  UnKnown
Address:  222.74.59.65

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
PS C:\Users\xxx\Desktop\review> nslookup.exe github.com 219.148.162.31
DNS request timed out.
    timeout was 2 seconds.
Server:  UnKnown
Address:  219.148.162.31
PS C:\Users\xxx\Desktop\review> nslookup.exe github.com 219.148.162.31
DNS request timed out.
    timeout was 2 seconds.
Server:  UnKnown
Address:  219.148.162.31

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
*** Request to UnKnown timed-out
PS C:\Users\xxx\Desktop\review> nslookup.exe github.com 222.74.39.50
DNS request timed out.
    timeout was 2 seconds.
Server:  UnKnown
Address:  222.74.39.50

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
*** Request to UnKnown timed-out

Change Public DNS

via: 如何选择适合的公共 DNS

DNSPod Anycast Export Address TCP DoT DoH ECS Mark
腾讯 上海 / 天津 / 广州 / 香港 同左 119.29.29.29 / 119.28.28.28 国内
阿里云 成都 / 深圳 / 杭州 同左 223.6.6.6 / 223.5.5.5
南京信风 南京 / 济南 / 芝加哥 N/A 114.114.114.114 / 114.114.115.115
CNNIC 北京 / 杭州 / 香港 CNNIC / 阿里云 1.2.4.8 / 210.2.4.8
百度 北京 / 南京 / 深圳 同左 180.76.76.76
Google 36+ 数据中心 边缘网络 8.8.8.8 / 8.8.4.4 国外
OpenDNS 32+ 数据中心 N/A 208.67.222.222 / 208.67.220.220
Cloudflare DNS 160+ 数据中心 同左 1.0.0.1 / 1.1.1.1
Freenom World Transit 80.80.80.80 / 80.80.81.81
DNS.sb SB Network 185.222.222.222 / 185.184.222.222
  • 为什么手机执行 nslookup 的结果和电脑不一样, 是和 安卓/iOS 代理机制有关吗?

⚓ Anchor of above parts

Powershell

Background Task

(xxx) > task.log 2>&1 &
# 最后一个 & 需要注意
  • What is the difference between dot (.) and ampersand (&) in PowerShell? - Stack Overflow
    • &, the call operator, executes scripts and functions in a child scope, which is the typical** use case**: functions and scripts are typically expected to **execute **without side effects:
      • The variables, (nested) functions, aliases defined in the script / function invoked are local to the invocation and go out of scope when the script exits / function returns.
      • Note, however, that even a script run in a child scope can affect the caller's environment, such as by using Set-Location to change the current location, explicitly modifying the parent scope (Set-Variable -Scope 1 ...) or the global scope ($global:...) or defining process-level environment variables.

access %TEMP directory

cd $env:temp
  • How to access the %temp% directory using PowerShell
    • PowerShell keeps environemnt variables in a special PSDrive called: env
    • To get all environment variables, type:
    • dir env
    • To get a specific variable, type:
    • $env:<variableName>, as in:
    • get-childitem $env:temp

⚓ Anchor of above parts

C

  • c - Two Equal Signs in One Line? - Stack Overflow
    • The value of the expression (a = b) is the value of b, so you can chain them this way. They are also right-associative, so it all works out.
    • Essentially ArcChar = ArcBit = 0; is (approximately1) the same as
      ArcBit = 0;
      ArcChar = 0;
    • since the value of the first assigment is the assigned value, thus 0.
    • Regarding the types, even though ArcBit is an unsigned char the result of the assignment will get widened to int.

⚓ Anchor of above parts

Spotify

⚓ Anchor of above parts

Cloudflare Forward Request

  1. DNS whatever: set type A, Name @, Content 8.8.8.8 and proxy
  2. Rules: jingrong.wang/*, Forwarding URL (Status Code: 301 - Permanent Redirect, Url: http://blog.bgzo.cc)
  3. Done!

via: 使用CloudFlare进行域名重定向-月光博客 & Understanding and configuring Cloudflare Page Rules (Page Rules Tutorial) – Cloudflare Help Center

⚓ Anchor of above parts

make(mark) Updated at 2022-07-14

比快排更高效的排序

https://github.com/scandum/quadsort

   if (val[0] > val[1])
    {
        swap[0] = val[1];
        swap[1] = val[0];
    }
    else
    {
        swap[0] = val[0];
        swap[1] = val[1];
    }

    if (val[2] > val[3])
    {
        swap[2] = val[3];
        swap[3] = val[2];
    }
    else
    {
        swap[2] = val[2];
        swap[3] = val[3];
    }

    if (swap[1] <= swap[2])
    {
        val[0] = swap[0];
        val[1] = swap[1];
        val[2] = swap[2];
        val[3] = swap[3];
    }
    else if (swap[0] > swap[3])
    {
        val[0] = swap[2];
        val[1] = swap[3];
        val[2] = swap[0];
        val[3] = swap[1];
    }
    else
    {
       if (swap[0] <= swap[2])
       {
           val[0] = swap[0];
           val[1] = swap[2];
       }
       else
       {
           val[0] = swap[2];
           val[1] = swap[0];
       }

       if (swap[1] <= swap[3])
       {
           val[2] = swap[1];
           val[3] = swap[3];
       }
       else
       {
           val[2] = swap[3];
           val[3] = swap[1];
       }
    }

⚓ Anchor of above parts

Five timeless lessons

https://www.productlessons.xyz//article/timeless-lessons-amazon-unbound-book

做一个新产品是什么感觉_n6u1zk

  • 大创意需要多次波动;没有强大的赞助商,他们就会死在葡萄藤上
  • Alexa 通过发布前的秘密巡演将其语音数据增长了 10,000 倍
  • 淘金的企业更倾向于保持低调,这意味着许多宝藏仍被埋藏
  • 只有在不便的情况下坚持下去,价值观才是价值观
  • 像对待银行一样对待客户信任——投入多于投入

为什么不选择一些对新手更加友好的入门方式呢?

via https://www.v2ex.com/t/829253

V 友最擅长的就是找学习曲线最陡峭的方法,然后让别人死磕。 # 26 haiironezumi

是一个容易放弃的人, 容易在陡峭的地方放弃, 然后就没下文了, 很多东西遇到恼人的回环就放弃了

  • 我觉得我需要在这个时候克服一下, 毕竟以前总是如此

Untitled-1

⚓ Anchor of above parts

Git Messages

via: https://www.v2ex.com/t/828792

feat: 添加新特性、新功能( feature )
fix: 修复 bug
docs: 仅仅修改了文档
style: 仅仅修改了空格、格式缩进、逗号等等,不改变代码逻辑
refactor: 代码重构,没有加新功能或者修复 bug
perf: 增加代码进行性能测试
test: 增加测试用例
chore: 改变构建流程、或者增加依赖库、工具等

⚓ Anchor of above parts

Tutorials

Name Urls Mark
Requests https://docs.python-requests.org/zh_CN/latest/user/quickstart.html 至少有一点代码片段可以参考, 官方有点多...

⚓ Anchor of above parts

内容消费, 拿捏事实和观点, 转变为目的导向

via: https://github.com/bluebird2046/iPad-Pro-Productivity/blob/master/02%20%E5%86%85%E5%AE%B9%E6%B6%88%E8%B4%B9/05.md

稍后读应用会让用户陷入到一个产品暗示里:「保存即阅读」。这很难说是不是产品的过错,但却是迎合人性的做法,对于绝大多数普通用户而言,「一键全部已读」显然是最好的按钮。

上述两个困境也促使我逐步减少对于稍后读应用的依赖,并进一步思考:所谓内容消费的目的到底是什么?

利用这个倒推机制,我梳理了一个自己内容消费的机制,简单来说就是六个字:「从阅读到行动」。

必须声明一点,我并非完全放弃了稍后读应用,而且改造稍后读的处理机制。

首先,区分内容,划分精力安排。每天我所接受的内容虽然内容繁杂,但本质上只有三种类型:

  • 事实:现在发生了什么;
  • 观点:现在发生的事情的原因和意义;
  • 故事:将现在、过去与未来的事实与观点整合,得出另一个观点。

上述三个类型可以套用在中英文科技媒体媒体发布的内容里,这三类内容所含的信息量不同,因此需要的时间和精力也有所区别。

比如事实类的内容,某公司发布了一个新产品,你扫过一眼,了解即可;而观点类的内容,重点关注其立场和论据;故事类的内容最难处理,我的建议是只花精力看自己感兴趣的,其他领域的故事还是略过吧

其次,为阅读找到下一站。这一步解决的是内容阅读后的归宿,以我自己的实践来说,主要考虑以下几个问题:

  • 是否可以作为 Dailyio 会员通讯的选题?
  • 是否可以添加到 DailyMe 每日阅读列表?
  • 是否作为团队头脑风暴的内容?
  • 是否可以成为长期关注的话题?
  • 是否马上就可以完成?

通过这几个自问自答的问题,可以快速定位某个内容的用途,不同的用途有着不同的处理方式。

对于不满足上述要求的内容,一定要大胆、果断地删掉或关闭网页,你必须相信,互联网是一个巨大的内容仓库,当你有明确的需求,从而知道需要什么内容时,你一定会找得到,而在需求明确之前,不要收藏

⚓ Anchor of above parts

Lang Mark

Content Meaning
译巴仙 percent, 在广州话中可以夹带英语, 一齐来讲的. 百份之五就读:五个 percen

⚓ Anchor of above parts

奶水的牌子

via: http://dostoe.blogspot.com/2017/08/blog-post.html?m=1

過去、現在、未來在時間上是一線,但兩點決定一線,所以調整「過去」就能和「現代」連成指向不一樣的「未來」。或者「過去」和「未來」連成一線,而把「現在」抛出線外而滅之。

未來的落點在何方,隨時在微調。

⚓ Anchor of above parts

一种对自由的定义

要不要打击,包含轮子之类的**或是什么. via:

  1. https://github.com/privacy-protection-tools/anti-AD
  2. https://github.com/Mosney/anti-anti-AD

⚓ Anchor of above parts

笔记本小抄

via: https://chnhi.github.io/lxzdy/

  • 玩任何游戏,最好配有一块鸡肋独立显卡。核显受限于内存带宽(目前主因),功耗墙,温度墙等原因,不能完全发挥,还间歇性有顿卡,不在意顿卡也可以考虑集显
  • 善用厂商的客服电话,多花的钱就是买的服务
  • 买的永远没有卖的精,个别机型把能用数字量化的参数都做得很好,但是一些隐性参数如做工,质感,噪音控制,表面温度等要实际体验才能感受到的部分草草了事。
  • 不要有幸存者偏差,坏是概率事件,推荐的机器性价比高不代表不容易坏,性价比低的机器不代表容易坏。
  • 实体店向来花样百出,有的是办法坑人,厂商有特供机,实体店能换配件。
  • AMD CPU 短板
    • 黑苹果拉跨,可以kvm虚拟机跑起来但是gpu加速不行。
    • linux下大部分包,库都是用iu编译的,amd正常用起来是ok的,但不排除小概率事件。
    • 计算机专业,深度学习,科研专业软件等很容易碰到英特尔写的专用库,尽量选英特尔。
    • Zen3(5000系)游戏性能出现严重倒退,台式机开启FMAX,定频定压,调整EDC电流至300~400A以上可以解决问题,笔记本还要等厂商更新BIOS。
    • 尽量买带mux显卡切换独显直出的机型。
  • 黑名单:华硕笔记本官方售后公然使用消费者返修笔记本进行挖矿,https://www.bilibili.com/video/av803092636

⚓ Anchor of above parts

404

  • 年轻人不能躺平的相关问题, via: https://www.v2ex.com/t/798772

    蜘蛛侠的叔叔曾经说过:能力越大,责任越大。 以我国是按劳分配为大前提, 则推导出:赚钱越多,劳动越多。 而大家都是每天只有 24 小时的人,能劳动越多,说明能力越大。 即推导出:赚的越多,责任越大。 比如年轻人月收入一万,已经算不错的了吧,按 21.75 工作日算,日薪 460 元。 某明星一天 208 万,相当于 4521 个年轻人的能力和责任。 也就是说,只要某明星不躺平,即使有 4521 名年轻人躺平,也不影响国家发展。 新东方有三四万名员工,只需要雇佣七八个不躺平版本某明星,就足够了。 如果按资产算,俞敏洪身家 280 亿左右,一个普通的九五后资产就按 10 万算好了,俞敏洪的责任相当于 28 万人,相当于一个小县城,我们称为县级责任人。 马云责任相当于四百多万人的责任,一个二线城市了,我们称为市级二品责任人。 当然,相当于一线城市的市级一品责任人国内还没出现,但是贝佐斯、马斯克、比尔盖茨这些国外高手,已经达到了市级准一品境界。 **九五后大概 1.5 亿,也就是说,哪怕全都躺平,你们只要找到三四十个马云,或者五六百个俞敏洪,国家也有未来。 当然,那肯定是不好找的,但是各个级别的高手凑一凑,大概率够的。 薇娅之前进入了财富榜五百强,90 亿,差不多区域范围百强镇级别了吧,堪堪守门员。也就是说,这个级别的,上面还有将近五百个,那这个之下呢,像某明星这样村级高手,应该不少的。毕竟像王健林这样的市级三品高手,随手一个小目标就能击败中下等村级了。 所以各位村级乡级镇级县级市级五品四品三品二品的人呀,只要你们不躺平,国家就有希望。争取早日出现比肩国外准一品境界的高手,甚至真正的市级一品,省级,国级,行星级,恒星级,宇宙级,不朽级,永恒级。 你们的目标是星辰大海,不要往下看那些躺平的年轻人,你们对待年轻人躺平的态度应该像真正的高手那样:“哼,蝼蚁”。 学学当年的斗帝萧炎,力争上游,勇攀高峰,不畏艰险,排除万难,从街道级别的斗者起步,三十年河东,三十年河西,莫欺中老年不够富。 学学 RPG 里的勇者,一个级别一个级别的升级,连续突破了七八十级,最终的目标也是大魔王和大魔王背后的大大魔王,而不是整天盯着村里的史莱姆(隔壁那个变成魔王的史莱姆不算)。 学学左晖,尽管已经突破成为了县级高手,依然还想突破,虽然最终陨落,但他勇敢的心值得你们向往。 资本无限的持续增长本就是逆天而行,凶险无比,但是你们不怕。 要向上看,向远看,不要看这些躺平的蝼蚁,他们不及你们的十万百万分之一。 加油吧,资本人。

  • 《金银》 via: 《金银》- YouTube

    • 从前有座山上 住着金角银角大王 山中最为张狂 这一点也不夸张 他有钱也有房 洞府大门富丽堂皇 又馋那唐三藏 胃口永远在上涨 相传 这金银心狠手辣图财害命 托他们的福 这山顶也不太平 肆无忌惮 去为祸平民百姓 少了金银 能做的就只有求佛拜经 远方的小妖传来了最新的消息 那唐僧正要越过这片悬崖峭壁 有利可图 那还管何良心道义 金银本就雁过拔毛 怎会让他逃离 首先摇摇羊脂玉净瓶里的水 把你们收进瓶中 封住你的嘴 然后 紫金葫芦 隔绝外界的讨论 再用芭蕉扇煽风点火 转移矛盾 金角手持幌金绳 把道路封锁 绝密 再掏出七星剑 逼你签下协议 府内宝物众多 但都仍旧不够硬 论硬还得看墙上贴的 急急如律令
    • 从前有座山上 住着金角银角大王 山中最为张狂 这一点也不夸张 他有钱也有房 洞府大门富丽堂皇 又馋那唐三藏 为何他如此猖狂
    • 近日金角银角 仿佛踢到了铁板 有位孙行者 仿佛要将他们掀翻 明明算计用尽 百般封锁轰赶 又有者行孙 行者孙 冒出来接过重担 他们鬓角开始冒出细细的汗珠 古井无波的面容也渐渐含怒 “我吃唐僧与你何干 为何多管闲事 白花花的金银 怎能被一腔热血限制” 金箍棒正劈开黑暗 向他们逼近 火眼金睛仔细观察 谁曾互相莅临 无数小妖拉来顶罪 都无济于事 那东方的长空 正升起一轮旭日
    • “都是误会” 太上老君堆着笑出场 这又是一场考验 在取经的道路上 别忘了 你陷入法宝时 他可没来叫停 他眼中 金银是他童子 泼猴才是妖精
    • 从前有座山上 住着金角银角大王 向唐僧赔了不是 调回天庭闻丹香 玉瓶亦如往日 葫芦仍放紫金光芒 只盼瓶内脓水 不是你我日后模样
  • 《范进中举》 via: 范进中举-BV1TV411W7vR

    • 身上的粗布麻衣盖着勒紧的裤腰 伏案不知不觉太阳已攀到了树梢 空旷的家里漏进的风携着邻居的嘲笑 唯一的那只老母鸡 也别上了草标 母亲看着我没说什么 但难掩她眼神的失望 我别过脸 继续背着书本 我也想让家人吃上一顿饱饭 仍未往丈人来时的不屑 烛灭 我才发觉不知不觉又已经入夜 整个世界如一座金字塔 将我们笼罩 有人高高在上 而我只是运转的供料 渐入花甲的秀才 不断的攀爬 用尽半载 逐渐体力不支 倒在路边 五花马背 有人感慨 若这是庶民的命 我大明空有无垠的境 却飘摇着寻不到一立足点得以安家的幸 厚厚的文章堆叠 离我的梦又近了一分一毫 当大厦坍塌 坠落的我仿佛听到了祈祷
    • 我是那中了举人的范进 你看我应有几分的欢欣 我是那疯了几分的范进 我的人生有几分的转机 我是那中了举人的范进 你看我应有几分的欢欣 我是那疯了几分的范进 我的人生有几分的转机
    • 当我醒来 众人将我围住 充斥嘘寒问暖 各路地主乡绅都来 亲切调查我的困难 胡屠户颤抖着 他的右手感到疼痛至极 原来我已经成了文曲星下凡 今非昔比 推杯换盏 纸醉金迷 笙歌燕舞 不必心急 腰缠万贯 身边充斥 他人故作无意的亲昵 泡上一杯香茗 想想又往里撒上一把枸杞 我已是举人 那些穷酸的秀才不过一群蝼蚁 裤腰带已被我解下 换上了绫罗绸缎 绑在脖子上扎紧 提防无意间落得口患 我自初心向明月 却不知明月何意 明月照我心 草芥布衣亦或江山社稷 我也并非是数典忘祖 我也并非是逆来顺受 每个人不过是被囚禁 放弃挣扎的困兽 我的文章如同跳梁小丑 引得阵阵的喝彩 那金榜状元也不过 就好似青楼的头牌
    • 我是那中了举人的范进 你看我应有几分的欢欣 我是那疯了几分的范进 我的人生有几分的转机 我是那中了举人的范进 你看我应有几分的欢欣 我是那疯了几分的范进 我的人生有几分的转机
  • 《自罚两杯》 via: 《自罚两杯》-BV1Bh411x77n

    • 【嗬 你看你这 来来来,人都到齐啦 哎,你这么客气干什么 今天把大家伙叫到这 就是吃饭,不谈公事 哎,说起吃饭 咱桌上好像有个同事这两天 不小心把饭碗丢啦 啊?你捅这么大篓子 不得自罚两杯啊】
    • 我自罚两杯 这件事就让他翻篇 酒馆的掌柜 快为我续上那官衔 我自罚两杯 别听那平民的谗言 咱俩正相配 即刻回任莫要耽延
    • 他猛吸一口手中的烟斗 等候着人们的回答 “哎,你凭什么敢在这站着” “还不快给我跪下” 与他想法不同的言论 不知为何都无法出现 只剩清一色的喝彩声 伴着他的家臣们入宴 快饮酒 今朝有酒今朝醉 锦绣 伴着婢女们的谄谀谀妖媚 琴头乐章绕梁三日不得消退 阴沟 里的下人们怎配 与他相提并论 来参加这场晚宴 他越发兴奋 口无遮拦 漫天 胡扯 亦或是酒后吐了真言 究竟还有谁和他是一个阵线
    • 【你看你这 你那天说的话合适吗,我问你 大人,那天咱确实是一时忘我 一不小心就说出来了 唉,当下证据确凿 我确实也没什么办法 大人 真的就一点办法都没有吗】
    • 我自罚两杯 这件事就让他翻篇 酒馆的掌柜 快为我续上那官衔 我自罚两杯 别听那平民的谗言 咱俩正相配 即刻回任莫要耽延
    • 【来!敬咱大人的第一杯! 你这罪状确实是无心之举 敬咱大人的第二杯! 什么过错?纯属子虚乌有! 我一定帮你找回一个公道!!】
    • 我自罚两杯 这件事就让他翻篇 酒馆的掌柜 快为我续上那官衔 我自罚两杯 别听那平民的谗言 劳驾您受累 一会儿还得来一妹妹呢 干

⚓ Anchor of above parts

我们倒闭了

via: wxUrl

为什么要阅读?一个人为何要阅读?

我们为此讨论了很久。我们有不同的看法,但最后我们发现,这个问题的答案并不重要,至少对动手做事情来说。因为我们并不需要、或者并不可能去说服一个不想阅读的人「你应该阅读」。我们要做的,是当一个人产生阅读的想法时,恰好出现在他的面

⚓ Anchor of above parts

2047 Links

via: https://2047.one/links

虽然那个答题还死活过不去23333.😂

资源

工具

友站

资讯

个人

翻译

杂志/期刊

密码学/区块链/加密货币

农业

翻墙

组织

美国公民自

教育

卫生

工业

政府

去中心化

⚓ Anchor of above parts

Proz, 一个翻译论坛

via: https://www.proz.com/forum/chinese-34.html

⚓ Anchor of above parts

英文杂志 关于**

via: https://magazinelib.com/category/china/ & https://www.v2ex.com/t/828383

⚓ Anchor of above parts

关于内卷

via: https://www.youtube.com/watch?v=9kaTRKWpuvQ

看一个技术值不值得投入

  1. 5 年存活历史
  2. 大公司撑腰
  3. 足够活跃的社区

⚓ Anchor of above parts

Moved logseq.

Mainly with the help of telegram bot through chrome extension and Telegram saved messages. Thx!

⚓ Anchor of above parts

⚓ Anchor of above parts

“Programs must be written for people to read and only incidentally for machines to execute.” -- MIT professor Hal Abelson

Once I wrote my blog to comments (knowledge, archive progress and feeling). That's almost a disaster. All code is in a mess without identity. Continuously changing the same code over and over again. Even though it looks pretty funny and full-details. But it seems just stop to the surface you first look. I found a article from StackoverFlow saying comments. I take it contents and examples, like following:

  • Comments should not duplicate the code.

    // create a for loop // <-- comment
    for // start for loop
    (   // round bracket
        // newline
    int // type for declaration
    i    // name for declaration
    =   // assignment operator for declaration
    0   // start value for i
  • Good comments do not excuse unclear code.

    private static Node getBestChildNode(Node node) {
        Node bestNode; //bestNode raw: n 
        for (Node currentNode: node.getChildren()) {//currentNode raw: node
            if (bestNode == null || utility(currentNode) > utility(bestNode)) {
                bestNode = currentNode;
            }
        }
        return bestNode;
    } 
  • If you can’t write a clear comment, there may be a problem with the code.

    Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. -- Kernighan’s Law

  • Comments should dispel confusion, not cause it.

  • Explain unidiomatic code in comments. Otherwise someone might “simplify” the code or view it as a mysterious but essential incantation. And don't bring other language omit to another, which somtime make no sence.

  • Provide links to the original source of copied code. Of course, you should never paste in code that you don’t understand.

    /** Converts a Drawable to Bitmap. via https://stackoverflow.com/a/46018816/2219998. */
    // Many thanks to Chris Veness at http://www.movable-type.co.uk/scripts/latlong.html
    // for a great reference and examples.
  • Include links to external references where they will be most helpful.

    // http://tools.ietf.org/html/rfc4180 suggests that CSV lines
    // should be terminated by CRLF, hence the \r\n.
    csvStringBuilder.append("\r\n");
  • Add comments when fixing bugs.

      // NOTE: At least in Firefox 2, if the user drags outside of the browser window,
      // mouse-move (and even mouse-down) events will not be received until
      // the user drags back inside the window. A workaround for this issue
      // exists in the implementation for onMouseLeave().
      @Override
      public void onMouseMove(Widget sender, int x, int y) { .. }
    
    // Use the name as the title if the properties did not include one (issue #1425)
  • Use comments to mark incomplete implementations.

    // TODO(hal): We are making the decimal separator be a period, 
    // regardless of the locale of the phone. We need to think about 
    // how to allow comma as decimal separator, which will require 
    // updating number parsing and other places that transform numbers 
    // to strings, such as FormatAsDecimal
    • NOTE: Description of how the code works (when it isn't self evident).
    • XXX: Warning about possible pitfalls, can be used as NOTE:XXX:.
    • HACK: Not very well written or malformed code to circumvent a problem/bug. Should be used as HACK:FIXME:.
    • FIXME: This works, sort of, but it could be done better. (usually code written in a hurry that needs rewriting).
    • BUG: There is a problem here.
    • TODO: No problem, but additional code needs to be written, usually when you are skipping something.

(Correct time: 210831)

⚓ Anchor of above parts

书签

via: Links

个人收藏

书签菜单

阅读列表

⚓ Anchor of above parts

iPhone

via: https://blog.csdn.net/xiaohui_brook/article/details/109581453

型号 年份 处理器 运存 容量↑ 屏幕 电池 摄像头 特性
iPhone 初代 2007.06 ARM11 0.128G 4G 3.5 寸 163PPI 1400mAh 无前摄 后 200W 无实体键盘 超前设计
iPhone 3G 2008.06 ARM11 0.128G 8G 3.5 寸 163PPI 1150mAh 无前摄 后 200W app store 3G 网络
iPhone 3Gs 2009.06 S5PC100 0.256G 8G 3.5 寸 163PPI 1280mAh 无前摄 后 300W 视频拍摄
iPhone 4 2010.06 A4 0.5G 8G 3.5 寸 326PPI 1420mAh 前 30W 后 500W 视网膜屏
iPhone 4s 2011.10 A5 0.5G 8G 3.5 寸 326PPI 1430mAh 前 30W 后 800W 双核 CPU
iPhone 5 2012.09 A6 1G 16G 4 寸 326PPI 1440mAh 前 120W 后 800W 屏幕变大 厚度变薄
iPhone 5c 2013.09 A6 1G 16G 4 寸 326PPI 1510mAh 前 120W 后 800W 多彩机身
iPhone 5s A7 1G 16G 4 寸 326PPI 1560mAh 前 120W 后 800W 指纹解锁 64 位 CPU
64 位 指纹识别
iPhone 6 2014.09 A8 1G 16G 4.7 寸 326PPI 1810mAh 前 120W 后 800W 圆润机身
iPhone 6 Plus A8 1G 16G 5.5 寸 326PPI 2915mAh 前 120W 后 800W 大屏 光学防抖
iPhone 6s 2015.09 A9 2G 16G 4.7 寸 326PPI 1715mAh 前 500W 后 1200W 3D Touch 二代指纹
iPhone 6s Plus A9 2G 16G 5.5 寸 326PPI 2750mAh 前 500W 后 1200W 3D Touch 二代指纹
iPhone se 1 代 2016.03 A9 2G 16G 4 寸 326PPI 1642mAh 前 120W 后 1200W 小屏旗舰
iPhone 7 2016.09 A10 2G 32G 4.7 寸 326PPI 1960mAh 前 700W 后 1200W IP67 防水 压感 Home
iPhone 7 Plus A10 3G 32G 5.5 寸 326PPI 2900mAh 前 700W 后 1200W*2 长焦双摄
iPhone 8 2017.09 A11 2G 32G 4.7 寸 326PPI 1821mAh 12W 前 700W 后 1200W 无线充电
iPhone 8 Plus A11 3G 32G 5.5 寸 326PPI 2691mAh 18W 前 700W 后 1200W*2 无线充电 游戏手机
iPhone X A11 3G 32G 5.5 寸 326PPI 2716mAh 18W 前 700W 后 1200W*2 Face ID 全面屏设计
OLED 18W PD 人脸识别
iPhone XR 2018.09 A12 3G 64G 6.1 寸 326PPI 2946mAh 18W 前 700W 后 1200W 双卡 无 3D Touch
iPhone Xs A12 4G 64G 5.8 寸 458PPI 2658mAh 18W 前 700W 后 1200W*2 OLED 屏幕 IP68 防水
iPhone Xs Max A12 4G 64G 6.5 寸 458PPI 3174mAh 18W 前 700W 后 1200W*2 OLED 屏幕
iPhone 11 2019.09 A13 4G 64G 6.1 寸 326PPI 3110mAh 18W 前 1200W 后 1200W WiFi 6 广角双摄
iPhone 11 Pro A13 4G 64G 5.8 寸 458PPI 3046mAh 18W 前 1200W 后 1200W 三摄系统
iPhone 11 Pro Max A13 4G 64G 6.5 寸 458PPI 3969mAh 22W 前 1200W 后 1200W 三摄系统
iPhone se 2 代 2020.04 A13 3G 64G 4.7 寸 326PPI 1821mAh 12W 前 700W 后 1200W A13 和老大同芯
iPhone 12 mini 2020.10 A14 4G 64G 5.4 寸 476PPI 2227mAh 20W 前 1200W 后 1200W 5G 广角双摄
iPhone 12 A14 4G 64G 6.1 寸 460PPI 2815mAh 20W 前 1200W 后 1200W 5G 广角双摄
iPhone 12 Pro A14 6G 128G 6.1 寸 460PPI 2815mAh 20W 前 1200W 后 1200W 5G 三摄 不锈钢边框
iPhone 12 Pro Max A14 6G 128G 6.7 寸 460PPI 3687mAh 20W 前 1200W 后 1200W 5G 三摄 不锈钢边框
5G
iPhone 13 mini 2021.09 A15 4G 128G 5.4 寸 476PPI 2406mAh 20W 前 1200W 后 1200W 小刘海 升级双摄
iPhone 13 A15 4G 128G 6.1 寸 460PPI 3095mAh 20W 前 1200W 后 1200W 小刘海 升级双摄
iPhone 13 Pro A15 6G 128G 6.1 寸 460PPI 3095mAh 20W 前 1200W 后 1200W 三摄 120Hz 刷新
iPhone 13 Pro Max A15 6G 128G 6.7 寸 458PPI 4352mAh 20W 前 1200W 后 1200W 三摄 120Hz 刷新
iPhone se 3 代 2022.03 A15 4G 64G 4.7 寸 326PPI 1800mAh 20W 前 700W 后 1200W A15 5G

⚓ Anchor of above parts

Broadway Chinglish

Seem like turn to private video in Youtube... via: STAGE TUBE: Learn Chinese with the Cast of CHINGLISH! Video

⚓ Anchor of above parts

Repo

⚓ Anchor of above parts

Sentences

via: Story of My Life | Aemon's Blog

⚓ Anchor of above parts

Blog Digests

  • 累死的人 | 李辉

    九百块,意味着一个人拔了近两亩地的蒜。在三十度的烈日下,坐着或跪着,在地上一点一点挪动,把上万根蒜从地里一一拔出来、甩掉泥土。最后只剩下九百块。

victoryang00 人家说话三句话两句听不懂, Orz

  • 5分钟看完上科大4年计算机 - victoryang00’ blog (这课程安排完全没法比好的嘛艸😭看完被秀了一脸, 完全没的说)
  • Me as a Trans 那些可控的不可控的变化 - victoryang00’ blog (说实话, 看多了Trans, 我有种错觉, 世界上最聪明的人, 知道的知识越多, 了解的世界越广, 越有可能是跨性别者, 像我这种, 只能是中庸的直男😭)
    • 人性无常,无法决绝的认为世界的大部分人是有共情能力的,而由于经济学的规律,最优秀的**也会因为缺钱而停止,而天时地利人和没到的情况,是无法激起下一个状态的变化。
    • 某个公司的老板面试官问过我一个直击灵魂的问题:“你为什么想赢?”我的回答就是所谓的“超过清华,证明自己。”他追问了一句:“想一想从人生层面的,剥离学习的对赢的渴望?因为清华,或者很多人口中的钱会在他过了一段时间或者达成目标后成为废话。”那就是“成为心中我想成为的自己吧,一个更平易近人,能提供更高的价值,贡献自己所想所做,推动科技发展的人。”大概是一个对我的注脚吧
  • 如何以一个计算机学生进入HFT行业、 - victoryang00’ blog
    • 首先,在高频交易行业中你可以赚更多的钱,但也有利弊之分,所以这就是我第一个要讨论的内容。
    • 这是一个名为levels.fyi的网站
    • 它有几乎所有科技公司的工资信息,让我告诉你们我在说什么。
    • 实习生的工资,Facebook和谷歌都是每小时44美元左右,说实话真的很好,但如果我们一路走到顶端,看到工资最高的实习生,我们看到所有这些随机的公司,没有人知道这些公司几乎所有这些公司都是Trading Firm,他们支付的实习工资每小时72美元
    • 全职的,最顶尖的公司第一年的报酬是35万,tons of money,当然base上海就要除以二。当我第一次听到这个的时候,我觉得这很离谱。然后我就在上海报了其中一家,当然不是每家都有**分布,optiver,jump,tower,bridge这些有分布,分别期货、期权比较强,感觉国外trading firm 用linear method 找alpha的比较多,还有些幻方、九坤、明宏中资企业,据说他们中低高频都做,朝圣深度学习策略。
    • 好了,接下来我们要谈的是这些公司干些啥
    • 在90年代,基本上都是现场交易员喊着要买进卖出的东西这些公司制造计算机和算法来做同样的事情,但但速度更快,他们每一毫秒做了几百万次的交易,交易所里人们可以买卖东西,像股票或期权,他们的价格。买入或卖出的价格取决于产品的供求关系。如果产品就不容易交易,它就被认为是没有流动性的
    • 这些做市商所做的是提供流动性
    • 在高频的order book 上,有历史sell/buy price/volume四个参数,大家可以玩玩click trading或者已经开源出来的数据集做分析,比较有名的two sigma 的 kaggle,这样对这个有系统的了解。
    • 所以如果它通过跨交易所历史数据以及新闻API等时序数据预测到了未来价格,以100美元买入一volume股票,然后order book往上扫,再以101美元的价格卖出,就净赚1美元。
    • 通过优势策略知道产品的价值是什么来做市是一家公司的alpha,所谓CPAM里的超额回报,普通回报是beta。
    • 当然他们还必须通过买卖其他产品来减少风险,有risk交易逻辑止损或者买卖其他产品做对冲。
    • 这就是为什么会有所有这些公司通常雇用几个类型,有软件工程师、硬件工程师和Quant以及Trader盯盘
    • 对于现在的竞争激烈的市场,除了策略,还有高性能文件读写,低延迟单发送。对C++要求比较高,会写template、高级lambda函数,PMR,高精度计时器这种,都是为了编译期包处理。当然也有传统高性能计算相关的比如包管理、权限管理,服务器监控。kernel bypass的各种奇淫巧技,PCIe设备读写优化。我被招进去大概是因为超算打的比较好,刚修完OS、编译原理和并行计算,然后对infiniband,GPU停留在microbenchmark过知道怎么调优的阶段,仅此而已。
    • 也有一些pandas数据工程的分析和执行层面的工作,相比来说就是高可用数据库,对特定的时序数据的优化。
    • 说实话,我真的很喜欢这个工作。它真的很像一些你会在一个chill的环境中做的工作,比如调代码代码性能就像做过山车。但它没有面向消费者的工作,如前端应用程序。那样面向消费者的开发。重要的是他们并不关心你是否有任何交易或金融知识,而面的coding、智商、文化。因为我面试的时候没有任何知识。最重要的是同事都很聪明很自由,工程师文化,管理扁平
    • 接下来是量化交易员,他们提供交易的算法。基本上他们每天看大量的市场数据做一些数学分析,找到可以用于策略的信号。平均而言,实习生是姚班竺院新国立选手,数竞物竞信竞银牌以上。我想说的是QR肯定比我更聪明,但是他们也是人吧。表达精确,快速反应我教的计算机基础知识。然后还是得我来调试。然后bar很高,确实很高,概率论题都要秒做出来,还有些算法题和智商题。总之努力刷题还是有点点用,因为他们面试可能题库都不换。我曾经做过,大概OI小学水平?不不不,深揪起来就群论了,我后来还刻意去挂了grad level近视代数,和满了Option 定价问题。但我只能给他们打杂
    • 硬件工程师呢,由于有些包处理靠SMartNIC可以更快,或者有些逻辑在上面也可以更快,所以硬件公司在FPGA上写点包处理、跑点综合,再和软件工程师交流一下,耶,我包弄好了,你CPU怎么还没跑完,再不跑完我夺权直接润了。好,我没和硬件工程师合作过,但是Intel芯片有4GB BAR限制和PCIe设备通讯,虽然英伟达有特异功能,但如果公司想自己做异构计算的话,肯定要自己猜这些坑啦哈哈哈哈。除此之外呢,还有专门写packets filter的工程师。
    • 在打了2年超算比赛后,个人感觉,其实工课都差不多,现在不也很多应用像Alphafold2,deepmd用dl找feature了吗,甚至和CERN的接受高能数据分析和FAST的射电数据也差不多。
    • 在盈利高的公司的福报是团建和吃饭,反正上海好吃的米其林我在实习的时候才吃到,上海好玩的地方比如sleeps no more、射箭、迪士尼也是这个时候才知道,我为了学会写代码可以007的作息,能被如此当人看待,我真是谢谢资本家能让我学以致用的机会。
    • 但是呢,高频公司并不产出生产力,没有实际回报,工资只有现金,当然有些人觉得现金和期权差不多。而且这种用技能马上换钱的感觉和打OI的那种AC的快感也差不太多,可是我还是相对延迟享受的人,想先Ph.D。再去搞钱。
    • 那么如果你想去这些公司实习,可以看看他们举办的比赛,和内推岗位,在**的各位,如果没有资本出国,但是有一身技术,除了风雨飘摇的互联网外,还有高频公司可以卷哦!
  • 上科大2022留学加油站第二期 暑期科研_哔哩哔哩_bilibili
    • [16:30] 计算机学习的过程是一个非常先验的东西, 如果你一开始就很懂编程, 那后面的道路会比较轻松

TECH

  • [AddyOsmani.com - Software Engineering - The Soft Parts](https://addyosmani.com/blog/software-engineering-soft-parts/ )
    • Becoming a good engineer is about collecting experience. Each project, even small ones, is a chance to add new techniques and tools to your toolbox. Where this delivers even more value is when you can solve problems by pairing techniques learned on one project with tools learned working on another. It all adds up.
    • Learning new things
    • Mastery
      • Technical mastery implies a high ratio of value shipped to hours worked.
      • I often get asked, "How do I know if I'm making the best use of my time?". There will almost always be tasks you can fill your time with to "feel" busy. The real trick here is making sure you are working on the right things. If you want to move mountains, focus on tasks that move the needle, even if that movement is small.
      • Some questions you can ask yourself:
        • What are my goals? Are the tasks I'm focused on lining up with those goals?
        • Could there be something I could do differently or better?
      • Even asking yourself such questions can be extraordinarily powerful.
    • Think critically and formulate well-reasoned arguments
      • Critical thinking is the ability to use cognitive skills to think independently in order to make thoughtful decisions. Invest in this skill to improve your clarity of thought.
      • Put another way, critical thinking is thinking on purpose and forming your own conclusions. This goal-directed thinking can help you focus on root-cause issues that avoid future problems that arise from not keeping in mind causes and consequences.
      • In broad strokes, some of the questions I like to ask based on critical thinking are:
        • How do we know we're solving the right problem?
        • How do we know we're solving the problem in the right way? (i.e. balancing rigor and efficiency, given our understanding of the problem and constraints)
        • If we don't know the sources of our problem, how can we determine the root cause?
        • How can we break the key question down into smaller questions that we can analyze further?
        • Once we have one or more hypotheses, how do we structure work to evaluate them?
        • What shortcuts might we take if we're under constraints (time pressure) without unduly compromising our analytics rigor around the question?
        • Does the evidence sufficiently support the conclusions?
        • How do we know when we are done? When is the solution "good enough"?
        • How do I communicate the solution clearly and logically to all stakeholders?
      • For example, a common mistake I've seen engineers make is assuming correlation implies causation (i.e. just because two things correlate does not necessarily mean that one causes the other). A critical thinker might push back on assumptions such as this, asking why we believe them to be true.
      • Critical thinkers:
        • Raise mindful questions, formulating them clearly and precisely
        • Collect and assess relevant information, validating how they might answer the question
        • Arrive at well-reasoned conclusions and solutions, testing them against relevant criteria and standards
        • Think open mindedly within alternative systems of thought, recognizing and assessing, as need be, their assumptions, implications, and practical consequences
        • Communicate effectively with others in figuring out solutions to complex problems
      • Note: Critical thinking has [both aspects](https://www.learningscientists.org/blog/2021/3/25-1) of being a "soft skill" and a "hard skill", so is included in this write-up.
    • Building a strong base
      • Master the fundamentals and apply them repeatedly to acquire new skills.
      • The long-term value of learning the fundamentals is that they are transferable. The short-term is that they help you make better decisions and can make code more efficient.
    • Transferable skills
      • Transferable skills are those you can take with you from project to project. Let's talk about them in relation to the fundamentals.
      • The fundamentals are the foundation of any software engineering career. There are two layers to them - macro and micro. The macro layer is the core of software engineering and the micro layer is the implementation (e.g. the tech stack, libraries, frameworks, etc.).
      • At a macro level, you learn programming concepts that are largely transferable regardless of language. The syntax may differ, but the core ideas are still the same. This can include things like: data-structures (arrays, objects, modules, hashes), algorithms (searching, sorting), architecture (design patterns, state management) and even performance optimizations (e.g. eager vs lazy evaluation, memoization, caching, lazy-loading etc). These are concepts you'll use so frequently that knowing them backwards can have a lot of value.
      • At a micro level, you learn the implementation of those concepts. This can include things like: the language you use (JavaScript, Python, Ruby, etc), the frameworks you use (e.g. React, Angular, Vue etc), the backend you use (e.g. Django, Rails, etc), and the tech stack you use (e.g. Google App Engine, Google Cloud Platform, etc). There involve details that can be valuable to gain expertise in to be effective, but are not always transferable.
      • By learning the fundamentals, you gain the skillset and tools to then ignore the fundamentals and grow.
      • That said, pragmatically, no one has time to learn everything at the beginning of their careers. There comes a point when you shouldn't over-index on the fundamentals and learn what is needed to actually build applications for the real world. This is where the "learn by doing" approach comes in.
    • Efficiency
      • Understanding the fundamentals well can help you write more efficient code. This includes concepts such as time complexity (the time it takes to run your code), memory usage, and the trade-offs between performance and maintainability. These ideas allow you to make trade-offs that are helpful when building any reasonably large application. Speed is often critical for modern applications and can often impact end-user experience in a noticeable wa
    • Better decision-making
    • Focus on the User and the rest will follow
      • Start with the user experience and work backwards to the technology you need.
      • The best software is built by engineers who have empathy for their users.
      • Make sure your solutions do not hamper their ability to do their jobs efficiently. If you are in a position that allows you to interact with end-users directly, attempt to understand their needs and pain points better.
    • Upgrading your skills
      • Choose what's right for your use case and not the flavor of the month.

⚓ Anchor of above parts

Code Review Mark

Telegram API

// via: https://github.com/phguo/Send-to-Telegram-Chrome-extension/blob/HEAD/background.js#L71-L80=
var req = new XMLHttpRequest();
var url = 'https://api.telegram.org/bot' + 
                localStorage.token + 
                '/sendMessage';
url += '?chat_id=' + encodeURIComponent(localStorage.userkey);
url += '&text=' + text;
url += encodeURIComponent('\n\nFrom: \n' + tab.title + '\n' + tab.url)
req.open('GET', url, true);
req.setRequestHeader("Content-Type", "application/json");
req.send();

Web Latex Supported

  <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
      tex2jax: {
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
        inlineMath: [['$','$']]
      }
    });
  </script>
  <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script>

Others usage about it: https://github.com/platinhom/DailyTools/blob/gh-pages/_layouts/slide.html#L9-L33 . I don't understand following from others' blog.

⚓ Anchor of above parts

Pieces Collections

Tweets

章工: "百年来,苏俄坚决否认、最后被迫承认的著名案件: 沙皇灭门案 古拉格劳改营**案 乌克兰大饥荒数百万饿死惨案 苏联大清洗案 卡廷惨案 韩航客机被击落 体育运动员大规模禁药案 切尔诺贝利核泄漏案…… 劣迹斑斑"

章工: "墙内封城,收到点破菜就发朋友圈感恩; 正常国家收到政府补助都不会说感谢政府。 道理很简单,因为这些钱就是你之前交的税,现在先给你应急,之后报税的时候可能还是要吐一部分出来的。 墙内很多人没有纳税人的意识,还和奴隶制国家的农奴一样。"

Joy Han: "我们对一个人的热爱越来越多地依附于精神世界,但肉体的毁灭又如此的冲击强大。一个“人”逝去,如果他的精神一直活在记忆里,又算得上什么逝去呢。可是如果亲手处理,掩埋、焚烧一具身体,带来的强烈的逝去感又在提醒什么呢。这就是战争,提醒我们永恒对现存的,具体的物质,保持珍重。常联系、常相聚。"

Mina: "@MeMoreKoo 你这一说我想起09年**七五事件后20天我去了乌鲁木齐,那里真的断网,短信功能被屏蔽,打不了国际电话,到处搜身搜包,大街上有武警持枪执勤,亲身经历"

Fenng: "在社交网络的自我介绍里写上自己的 MBTI 类型,就跟自己脑门上刻着「我是**」似的。"

象牙山刘能: "同学们,找工作的时候不要太相信HR跟你说的百万package,只有劳动合同上签的基本工资才是受法律保护的,年终奖、加班费、期权、股票都应该看成意外收入,你要是拿这部分钱来规划自己的财务,就是在给自己加杠杆。"

钱泽森: "一个可靠的人生伴侣就意味着一个稳定的精神状态。这应该是人生中最重要的投资了。"

CrazyUniverse: "**人以后要移民, 如果出发点是为了自由 那建议你们仔细研读一下目标国家关于自由的法律,别张嘴就来西方有言论自由。以加拿大来说Freedom of expression 与Freedom Of Speech是有很大区别的,并且你的表达如果冒犯到了别人,别人也可以起诉,政府也可以起诉,这就是法律.认知啊,诶."

Fenng: "想起一个段子。 Elon Musk 和一个**工程师登上了火星,火星人问:你们是哪里来的人? Elon:我是地球人。 **工程师:我是人大附中的。 有一次在 Clubhouse 里说起这个段子,还当场有人不忿,不忿的人当然是人大附中的。哈哈哈哈。"

王小山🇺🇦: "“书要多读,话要少说。不明白的事情,不应该说;真正明白了,就没有必要说了。所以,能说的话大都是无聊的重复。你明白不明白?”"

Jian Alan Huang: "今天得知令人震惊的事实,原来你的作业连全班倒数第一名都不愿意抄……"

章工: "给大家提个醒,三线以下城市不要买高层住宅。物业水平一般的话,时间长了维护跟不上。"

章工: "国家来养老→国家帮养老→养老不能靠国家→自己养老 …… 再下去是不是你来帮国家养老?"

立党 lidang hlab.app: "你要明白:两代**人能够享受到***、胡锦涛维持的长达20年不折腾的经济社会上的全面繁荣发展,这不是一种right,而只是一种privilege。 就是说,没有制度或者法律能够保证在这条破路上能一直平稳前进,其实这条路一直都是充满颠簸——只不过刚好从你有记忆开始,这条路史无前例地平坦了一小段而已。"

一剑飘尘 007: "为了逼老百姓去方舱隔离,北京小区竟然断水!上海清零的时候,有人说“上海是**文明的底线”,我特愤怒:这个底线也太low了吧。现在看到北京这个状况,我才明白,原来**文明的底线真的就这么low啊"

简叔: "恋爱中有个100%定律:但凡你看到一个对象,从长相、身材、收入、学历、阶层等,让你100%满意的时候,对方100%看不上你。这就是100%定律。"

三日月やよい: "很多封城期间赌咒发誓要润的中产,等解封-恢复到每天扫十几个码、几天测一次核酸的“日常生活”,就又觉得这地方不完美但可以忍受,生活痛并快乐着了。 这也没啥好笑,背井离乡,离开人脉圈和舒适区,放弃稳定的收入前途与地位,投向未知的艰难未来,本来就是极其困难的,你每老一岁,勇气又会衰退几分。"

S1xShrimp: "可以看出,很多人考公考编的唯一目的就是掌握“在人民头上拉屎权”,这些**一旦考上了,心就变得像茅坑里的石头,又臭又硬"

刘晓原: "《礼记·曲礼上》:邻有丧,舂不相,里有殡,不巷歌。 这四句的意思是说,邻家有丧事,舂米的时候不唱送杵的号子;乡里人家有殡葬的事情,不在巷中歌唱,以示同哀之心! 可是,有些“今人”见到邻人的丧事,不仅没有同哀之心,反而幸灾乐祸呢!"

立党 lidang hlab.app: "你要明白:两代**人能够享受到***、胡锦涛维持的长达20年不折腾的经济社会上的全面繁荣发展,这不是一种right,而只是一种privilege。 就是说,没有制度或者法律能够保证在这条破路上能一直平稳前进,其实这条路一直都是充满颠簸——只不过刚好从你有记忆开始,这条路史无前例地平坦了一小段而已。"

小吴: "**大陆宜居的城市主要是这几个:温州、福州、广州、深圳。"

王小山🇺🇦: "巴布利亚诺说,“所有的自传都半真半假,写自传的人得先承认自己是骗子,他的自传才有一点参考价值。”"

Yolanda: "支男真**啊我操,叫我fuck off,我邮件问他什么时候能预约看房子他说今天工作时间全天都行,我来了没人他叫我等一个小时,我还有课要上作业要写啊。我说等不了那么久,他说那你滚吧。 值得一提的是我一开始说英语他毕恭毕敬的,听出他英语很差结结巴巴,我说还是讲华语吧,这b一听就觉得可以欺负了😊"

章工: "人常用华丽的词汇、晦涩的概念、复杂的表达方式,来掩盖逻辑上的硬伤。"

Carlos Leon: "刚刚习惯性打开YouTube视频,打开设置调整视频质量为360p,然后突然意识到我在日本,没有墙,不需要翻墙软件,也不需要节约机场流量了,心中五味杂陈,鼻子酸。真的鼻子酸,一直以来也是委屈自己了。" Carl Chen: "国内开发的必备技能:熟练配置各种环境的镜像源。"

特暖暖的: "以前看华尔街之狼,看那哥几个压力大时要去厕所打飞机比较不理解。现在我认了,这是个看透人性的桥段……"

🌈浅醉Half Awake🏈: "赤裸裸的现实 女人接近男人,不过就图两样东西一个是精神支柱,一个是金钱补助,若是你一样都给不了她,那么,她也不缺一个祖宗。 同样的,男人接近女人,不过是图两样东西,要么图你年轻漂亮,要么图你的温柔贤惠,若是你一样都不占,人家也不缺个累赘。 谈什么情,说什么爱,放眼望去全都是合作愉快"

viggo: "https://t.co/jGMUEALD1F Music For Programming - 这是一个专门给开发者工作的时候听歌的电台,歌单是作者经过多年的反复试验挑选出来的,都是一些能够让人专注的音乐。界面非常干净,操作也很硬核。确实听音乐会让你快乐。当你快乐时,你会更有效地工作。 https://t.co/2MAWPCV8Jm"

Lennon: "疲惫不堪,结婚需谨慎。一直以为结婚是两人携手共进,现在总感觉是拖着负担…小红书抖音们做点人吧,能不能教人沟通而不是神经病一样的考验默契?默契怎么来的?默契是他妈平时沟通出来形成习惯来的!"

章工: "当代网民,口头摆烂摸鱼,行动上卷得最狠。语言上告诫他人躺平,实际上自己敬业劳模。 当代人的虚伪和龌龊。 在网上你经常能看到,很多名校毕业生害怕卷,决定回小地方生活的。忽悠其他人躺平了,自己就不用那么卷了。"

章工: "一个循序渐进的改良路线: 1废弃手机实名制 2影视分级 3停止网络防火墙 4停止外汇管制 5废弃户籍制度 6大学自主办学 7允许出版自由 8允许县级以下直选 9军队国家化 10国企私有化 11允许组党结社 12开放全民普选"

章工: "你所遇到的人生困境,在你出生之前就已经有无数的人遇到并为此给出了各种各样的解决方案。你的迷茫与痛苦,多半源于无知。"

章工: "这个时代已经完全不存在因高考和学历就能改变命运彻底飞黄腾达从此以后躺赢的人。但因为高考和学历彻底输掉人生、从此一蹶不振loser到死的人比比皆是,占据了人群的主要部分。 高考结束后,彻底消除曾经的教育对自己**的毒害、消除高考对你未来的负面影响,是对普通考生最重要的一件事。"

衛斯理: "天朝有很多困境,假设你和你女朋友在路上走或在外吃烧烤,然后一群人调戏你女朋友然后揍你,你还手嘛?最理性的解决办法就是不还手,拉着女盆友跑,但结局是女方觉得男方不够男人,分手。上去打架,打输了,受轻伤还好,腿打断或者脚筋都割掉了 分手。打死了,也就没有然后了...."

路客大酥: "重提一下旧事吧,在大连,我妹夫被四个人堵在家里砍,报警后,警察问人死了吗?没死明天再录口供,连现场都没去,这还是在号称治安最好的东北城市。案子至今没破,不给立案,因为影响破案率,实质上是根本不想破案,因为先和邻居纠纷后当晚发生的,作案动机太明显了都破不了案。真的是警匪一家。"

Jimmy Run 🇨🇦: "所有电报86+手机号的兄弟,建议去买一张 美国KnowRoaming 卡,0月租,能接短信。 拿到美国手机卡以后,再去申请一个Google voice号码。 不要再用86手机号了,某宝买张电话卡,没几个钱。"

Upsidedown: "我几乎从不看直播带货,但新东方董老师的带货视频我看了不少,平时总是充满欢乐充满智慧,可提起他的小伙伴们,董老师却忍不住落泪了……一个行业说没就没了,老师们却还在努力生存着、生活着、彼此牵挂着。也许我们都将面临一个有太多不确定因素的时代,坚守住内心,不断寻找新的机会才能笑到最后💪✌️ https://t.co/WHJbDxXzyh"

Royal v 追求真理🇬🇧🇺🇸: "国家网信办:根据跟帖评论行为开展信用评估,严重失信用户列入黑名单,以后都禁止再重新注册账号评论 什么叫失信呢?比如你质疑唐山打人事件的官方处理,再比如你的评论与官方口径不一样,你就是失信用户,看来墙内舆论要进一步收紧了 https://t.co/2rvFrQoWl1"

Mindao: "我发现这市场,这么多年活下来的,什么认知、技术、经验、哲学、宗教、信仰都是其次,关键是两个字:命硬。"

HuXiaomi: "@DIYgod 他会让你们以为发出去了,本地看到但是别人看不到,过审后才显示。然后自己搬运点片汤话弹幕保持面子上的效果"

🇺🇦 DIYgod: "弹幕也要先审后发了,那B站不是要原地倒闭了"

𝕆𝕝𝕝𝕚𝕖奥莉🎙 ʟᴇᴛ’ꜱ ɢᴏ ʙʀᴀɴᴅᴏɴ: "没出过国的人总以为留学生都是出国见世面 其实太多人都只是呆在校园里 交友圈也只是**同学 说出来可能你们都不信 有超多留学生 上了四年学连一次理发店都没去过 要说也不是去不起 因为回国做头发也便宜不到哪里去 女的大都留长发 刘海自己剪剪 男的不是留长发 就是和兄弟互相拿推子把对方推成寸头"

章工: "我们这块土地、这些人,终其一生,大多所行,不过苟且二字。所谓风光,不过苟且有术,行路坎坷,不过苟且无门,基本不过如此而已。 ——陈寅恪"

海滨政经述China Finance Watch: "对主播发了31条禁令,还不如直接取缔。啥都不用干了,吃开口饭的,码字为生的,全跪"

William Long: "公安部规定七类为重点人员为: 1、涉恐人员。 2、涉稳人员。 3、涉毒人员。 4、在逃人员。 5、重大刑事犯罪前科人员。 6、肇事精神病人。 7、重点上访人员。"

William Long: "【未来三年的建议】至少将一半左右的人民币资产兑换为美元。不要买房。不要创业。有工作的不要辞职,没工作的保守投资,股票投资的最大仓位保持不要超过30%,其余购买债券。办好护照。办几个国家的签证,以旅游名义出几次国。至少熟练掌握一门外语。不要生病。不要生小孩。"

William Long: "一个连街上小偷都不敢大声斥责阻止的人,却天天高喊着去灭了小日本;一个连人民疾苦都视而不见的人,却有脸说不能忘记历史。 ——王朔"

V2ex

  • 就业形势有感 - V2EX

    • 总有些坏 b 把卷往人口多上挂。别的国家的人不说了 就拿普通**人举例 一个自然人劳动产出绝对超过他所需要消耗的资源, 而且不止一倍。坏 b 贱种就是不想跟你谈分配, 洼地一个三流省厅官都能随便搞 2700 套房, 分配才是最大问题。
    • 国外可以创造新岗位,因为你可以尝试各种新的行业。 国内只会搞中考分流,试图减少大学生比例。根本就是开倒车。 但凡国内环境能开放一点,也不至于搞到这种地步。
    • 看见他们还在讨论经济、讨论疫情、讨论形势、讨论人口、讨论本科率、讨论职高分流、讨论就业,我就放心了 —————————————————— 只要还没关注到分配 :)
    • 大学就业跟产业结构关系大,跟人口多没多大关系,进仓拧螺丝需要读大学么
    • **人口相当于美帝(3.5 亿)加欧洲(7.5 亿)加加拿大(0.4 亿),加土澳(0.4 亿)加韩国(0.4 亿),加日本(1.2 亿)的总和。 这么说比较直观。像韩国,理工科高等教育总数,只相当于**一年毕业的理工科学科人数。 如果**的大学毕业生,能够按专业充分就业,世界经济体量不变,得把那些发达国家的科技产业全转移到**。
    • 你觉得大学生送外卖很苦,那没读过大学送外卖不也一样苦?这种偏见来自于「读书不是为了知识和人格,只是一个在竞争中挤掉其他人的工具」这种科举制以来扭曲的**。工业化社会应该彻底摈除这种农业时代的思维。 没人愿意进厂,不是因为这帮人学历太高了,而是因为工人在社会里没地位,靠打工无法维持一个体面的生活。这是分配问题,整天在所谓的学历内卷话题上做文章算是因噎废食,助纣为虐。
    • 有人说分配,怎么,一个个坐办公室的分配的很少吗? 贫富差距,分配问题不是每个国家都有? 你不殖民想翻身,很难的。
    • 这个问题,真的是得工作个十年以上才能有多个视角的理解。2000 年,**的城市化率不到 40%,2021 年的城市化率 61.5%,过去 20 年,有三亿人口涌入城市谋生。未来还有 1.5 亿人口会步入城市谋求生路。如果没有抢其他国家的食,就只有内卷。 原本这三亿农村劳动力过的就是牛马生活。种地一个月几百块钱的收入。没有任何社会保障。在市场没涌入过量劳动力之前,不会有强烈的压迫感。但是显然,目前是劳动力超额了,对比产出,涌入的就业人口超过市场需求了。当然,占满某个市场之前,就业人数的扩张可以连带推动经济的繁荣。过去三十年就是代工经济。代工经济的利润就这么点。想某得超额利润,就意味着产业升级。如果产业不升级,还涌入人口,就是内卷。 再举一个例子。很多非计算机专业的学生,跑来卷计算机。无论怎么竞争激烈,对他们而言,哪怕干着五年经验不足一万的开发工作,对他们而言都是赢家。而对原本在行业内的人来说,这就是灾难。充分竞争的结果,就是这个行业对比别的行业不再有任何超额利润和超额收入。 高中生物学给了我们很大的提示。生物种群数量和生态圈资源的关系。 我们的社会分配是有问题。但是,社会分配不解决蛋糕太小的问题。一个八寸的蛋糕,无论怎么讲究分配公平,也分不出 100 寸的效果。 世界的格局很清楚的说明了问题。有人提了毛子和美帝的例子。毛子除了能源矿产,没有什么支柱产业。如果他们能在汽车或者机械产业也占据世界领头位置,足够他们的人均 GDP 步入发达国家。可以比肩**日本韩国。 如果毛子的人口缩减一半,就他们的矿产资源也能够比肩日韩。 美帝是天选之子。矿产资源丰富,还是农业大国,科技领域独步世界。 国内搞一路一带,本质上就是开拓市场倾销产品。然而一路一带的那些地方和我国是同状况国家,处于竞争状态。这个想法并不可靠。 我国的服装业,已经把传统服装大国意大利卷死了。现在搞半导体,本质上也是抢韩国日本的蛋糕。市场就这么多,要么在这个人手里,要么在另一个人手里。 在市场劳动生产力发生质变之前,产业升级大概率是抢夺别人嘴里的食物。大到国家之间,小到每个独立的个体人。 产业升级必然面临极强烈的反抗。那是从别人嘴里抢食。按**的人口体量,想有**那种状态的福利,我认为得在家电行业,生物医学,半导体产业,汽车机械产业都占据世界领先地位。意味着日韩德国英国法国的产业都被**拿走。
  • 从主用美区 Apple ID 被封帖子想到 - V2EX

    • 更希望「你的账号不是你的」这个观念能更深入人心,更多的人在使用互联网账号服务时要心存戒备,不要付出过多的信任
  • [讨论帖]为什么会出现“一边公司招人难,一边求职者找工作难”的问题 - V2EX

    • 一方面要独立思考敢于质疑勇于创新才能成为顶级人才,另一方面又需要他从小听话服从无条件坚持被领导。很难的
    • 因为这些招不到人的公司都是抱着用半份工资招一个人,要求干 2 个人甚至三个人的活。但凡公司福利待遇正常一点,也不至于到现在都招不到人
    • 五个字终结这个问题,结构性失业
    • 互联网野蛮生长的时候,所有人无限乐观的时候,互联网相关人员的收入被推到了不合理的高度 毕竟看看其他行业的收入,就可以知道**的经济发展水平没有到那个程度 现在冷静下来之后,市场的付款意愿在降低,但是从业人员的期望值已经被拉得太高了
  • 有老哥分享下最近的就业市场吗? - V2EX

    • 2011 年毕业的。到现在整整 11 年,工作快 12 年了。行业的竞争度上涨真的夸张。2011 年,只要会个 hello world(显示在 activity 上),科班毕业,找安卓开发一天可以拿三个 offer 。2015 年的 ios 开发者会 storyboard 也可以一天拿一个 offer 。2018 年的 ios 岗位直接卷成红海,大量的人跳槽跳进坑了。2018 年的 java ,大专学历还有机会找工作。2021 年,大专学历很难混了,应届生面试者的基础普遍相当于 2011 年我毕业时候一年多工作经验平均水平。 行业完全处于存量市场,只有工厂还有新的东西可以做。从前年这么多大厂卷各种 app 的极速版。就已经说明了问题。他们找不到增量市场了。行业劳动力供应过剩了。我自己的评价,未来三年行业内的从业者会有特别剧烈的阵痛。我印象中,2018 年那波,有相当多的 ios 开发者被迫离开这个行业。此后再也没有培训机构愿意培训 ios 开发者了。目前留存下来的都是经验比较丰富的,这批人挺多过得挺好的。 反正我是不怕的,存了养老的资产,子女也有了。无非就是卷不动了离场换行业。 另一个方面,行业也很混乱。十年前的这个行业是自然生长。现在,培训机构一年少说产出十万个三年经验的零基础转行的开发者,这些人的简历全是假的,我还见过年龄都造假的简历。00 后冒充 97 年的。极度乱象。 三线城市的 it 行业目前还是蓝海,很多工厂缺开发者。但是机会也相对的比较少。
    • 润国外。不只是薪资的问题,更多是劳动者能感受到尊重,你能感受到工作带来的意义,在国内尽管天天加班 996 却任然没有一个栖身之所,每天为生存而战,然后到了年纪等着被裁员。有时候我们好像忘记的工作的目的,我们为什么而工作?我天天加班,如此奋斗,最后得到了什么?
    • 简而言之经济是套社皮的垄断资本主义谁接近权力谁发财,**是延续 2000 年的争做人上人的封建遗毒,对 xx 的理解是上面政策都是好的下面念歪了经,对法治的理解是所有自己不认可的东西“早该管管了”,整个社会对弱者的态度是弱者活该去死“谁让你不努力” 可能确实和非洲拉美差距不大?
    • 现在的招聘要求比起 5 年前,至少高了 10 倍,你就知道现在的就业形势有多严峻了。其实进来了也是 CRUD ,这活儿谁都能干,企业不愁招不到人,这就是现实。
  • 对于程序员来说,对代码有没有兴趣,到底有多重要? - V2EX

    • 有能力的领导两个都能领导得很好 领导的任务就是这个 领导的任务不是喜欢这个不喜欢那个 这个小孩子都会
    • 第一个同事,人不会对没兴趣的事积极,人也不会因为兴趣就让兴趣的事去入侵其他事,这个同事很有可能是对代码很感兴趣的。——你不能因为下班不干就认为人家没兴趣,要知道,下课后绝对不碰书本的人才有希望成为学霸。
  • 学历,对人生,对婚姻的重要性真的特别差距大吗? - V2EX

    • 读下来感觉楼主对低学历的怨念有点儿魔怔了,下意识把所有的难以克服的困难都归结到学历上。 相亲谈恋爱,还是要看缘分碰到合适的人,不要因为个别人生过客否定自己的价值和追求。
    • 学历自卑我也一直有,但最近我也想开了,在对方不知道我学历的情况下,没有任何人会发现我和他们有什么区别,当开始有学历后,他们开始强调这个不同,这类人我会一直保持距离的。 包括上面 27 楼所说的,客观原因是学历低会让人下意识感觉:这个人的学历能力不行,这就是我和她聊不来的原因。 你看,这就是懒人的思考,本质是学历低吗?人是社会环境的集合,是因为 2 个人本就不在一个环境下相处,怎么能达到沟通无阻呢? 学历不代表什么,有偏见的人,永远会带着偏见去理解世界。学历只是其中的一个理由之一罢了。 说了这么多,33 岁后,可以想想自己要什么的人共度余生了,相亲只是提供了一个更高效的路径罢了,不用为一些不合适的人或者言论困扰,这并不值得。
  • 发现在微信发的每一个链接都会被腾讯访问一下 - V2EX

    • 不夸张。印象非常深刻,让我搞了一下午。早就踩过这个坑了。。。 测试微信支付的时候有遇到过。 有个每次调起支付的唯一流水号,pc 微信发到手机微信去测试。 莫名其妙就是流水号已使用。 后来发现,只要通过微信发送 url ,微信就会访问一次,让我的流水号失效。
    • 别什么都甩给监管,他就是想控制你访问,顺便统计网站访问,进而知道网站流量,好提前投资 /控制有潜力 /威胁的公司
  • 一直有个疑问,软件开源出去,就不怕竞争对手抄走吗? - V2EX

    • 所以说国外的开源真的是信仰,又好使还不要钱还靠谱的东西,除了梦里就只有开源软件了
    • 软件实现本身的价值很有限。核心的生产资料还是业务的垄断、营销推广的有效性,以及低成本的运营。 谷歌搜索即便开源给你,你也只能当玩具,甚至是跑不起来。
    • 我觉得这些大公司开源目的是建立技术标准,如果只是着眼软件本身就格局太低了。 以前 google 开源 tensorflow 的时候我也特别不理解。 一开始都用着真香,然后就看到 google 云上很多 tensorflow 相关套件,还有 TPU 等技术慢慢就想明白了。 大公司将自己的明星项目开源本身就是自带流量,等于一次大规模广告。等事实标准,周边的项目都丰富起来了后面的用户根本没有动力切换到一个相似的项目上,除非后来的项目有什么不可比拟的优势。
    • 你现在回头看知道哪个开源项目火了,但项目起步阶段没有人能预测未来,不开源就意味着要加大投资,没有人能投资一切,总会漏掉一些项目的。 而且,不开源也意味着起步慢,别人做同类项目开源一下子就打开知名度了,你闭门造车花了钱到头来还可能错失了市场先机。
    • 要是抄来的东西很容易能超过原作者,那国内软件行业早就是全宇宙老大了。软件行业重要的从来都是编码的人,不是代码。
    • 社区非常非常重要 目前刚刚从大厂离职,之前也基本全职投入在开源项目上,业余也维护着一些小项目。现在在跟朋友在 MLOps 领域创业,也是开源的项目: https://github.com/tensorchord/envd
    • 分享一下我的看法。从大厂的角度,国内外大厂在对开源的诉求上我认为是一致的。一方面可以提高自己的影响力,在招聘,云服务的认可度等不同方面都有很大的帮助。另外一方面对于一些面向开发领域的产品,开源的方式也能很大程度上帮助产品获得更多的用户和反馈,进而更快更好地迭代。VSCode 就属于第二个方面的诉求。 对于开源 Infra startup 来说,也类似于刚刚提到的第二点。大部分都是希望通过开源,获得尽可能多的反馈。因为很多 startup 是没有太多背景背书的,如果想要在一个技术方向上获得用户,收获认可,开源是最好的方式。对于个人来说,可能动机是多种多样的。像我之前业余维护一些项目更多还是处于热情,得到使用者的认可是一种可以快速分泌多巴胺的事情。 另外再说抄走的事情,楼主提到的 A 开源软件 x ,最后被 B 拿去再分发成软件 y ,最后 y 超过 x 的情况也有,在国内也有非常出名的例子( 但是这个我觉得其实是非常困难的。一个成熟的,好的开源项目,最大的瓶颈不在架构和设计,而在于背后的社区。社区可以为你提供真实的海量的需求和测试场景,社区中的贡献者和维护者可以借此把项目设计地更合理。进而更加促进了社区的繁荣,这在我看来是飞轮效应。时间越长,项目的壁垒越高。 可能短时间内其他厂商的 fork 会在某一方面或多个方面超过原本的项目,但是没有社区的助力,这很难长久。这也是为什么大家谈开源项目谈的最多的还是社区运营。 回到 VSCode 的问题,它现在最大的壁垒在于社区和生态。VSCode Marketplace 上有成千上万的 extension ,并且有数以千计的贡献者为它贡献,它自己对于开发者已经有了自发的非常大的“引力”。 但是另外一方面 VSCode 不是完全开放的,它的 remote extension (远程开发特性),marketplace 都不是开源的。而且 marketplace 有比较严苛的使用条款。这也是为什么会有 https://open-vsx.org/ 这样的项目出现的原因。 所以 vscode core 充分地享受到了开源带来的巨大影响力加成,但是其他部分则未必。当然这也是 MS 自己的商业考量。
    • 你有没有注意到,开源的都是一些框架、库、等等东西,这些东西是很难直接创造商业价值的,必须做成产品。比如一个 k8s ,公司可以直接卖他吗?都是用来部署服务,然后架设网站 /app ,公司最终销售的是网站 /app 里面的服务。这些东西是没有开源的 而对于框架和库,既然不能直接创造商业价值,那不如开源出来让别人帮忙提交代码来维护,这也是为了社区发展,扩大使用人群,减少 bug ,这是有好处的 而为什么不怕别人抄?很简单,马太效应,框架和库这种东西大家都是信任大厂。大厂有稳定的维护和更新,有 issue 解答,而用的人多了又会对社区内容有更大的贡献,雪球就这么滚起来了。小厂就算抄过去了,他能做到大厂那样的稳定更新吗?能像素级抄袭吗?能解决 bug 吗?能有专人解答问题吗?
    • https://zh.wikipedia.org/zh-cn/Chromium “Google 选择了"Chromium"这个名字,比喻将铬(英语:Chromium)金属锻造成镀铬[1]。” vscodium 应该是采用了 chromium 的风格。
  • 很多人的朋友圈都是自我提纯后的朋友圈,接收的信息也是自我提纯后的信息和观点 - V2EX

    • 讨论多了你就会发现,很多人喜欢一上来先给你定性。你是“好人”还是“坏人”,“同道”还是“异教徒”。 然后就把你身上贴满他对于那个阵营的刻板印象。完全忽略人是独立的个体,以及观点的独立性。 这点你从商业电视剧、电影就能略见一斑。必须给观众立一个“好人”和一个“坏人”。这个剧才会受欢迎。 那些角色真正有灵魂的剧,往往是不赚钱的。 之前用老号在水深火热和 v 站一堆人论战的时候我就说了。 这帮人没什么本事,只会三板斧:乱扣帽子,虚空打靶,人身攻击。
    • 也就是说,多数人根本没有学过讨论问题,反而一直在学习用“输赢”来看待问题,成绩排名、高考、面试…… 输赢都比“对错”更重要。 因此,多数人只想分输赢,一旦分了输赢,他们也就可以放下这件事,不会再做进一步思考,也完全不管是非对错。 这就是很多人喜欢拉黑别人的原因,因为拉黑就是他对别人的裁决,在拉黑的一瞬间,他就感到自己赢了。 同时也是很多人讨论问题是容易生气或激动的原因,因为他们想的不是问题本身的对错,他们想的是自己不能输。是非对错不重要,输赢才重要。
    • 我其实很喜欢那种在朋友圈上勇于发表自己真正观点或者喜好的朋友,因为他活着就不是“为别人而活”。本身他发表观点时候的想法也只是基于他发表的那个特定时间,可能受情绪,也可能受知识背景,也包括社会娱乐风向。想说就说呗,若干年后自己看起来是可笑,又如何呢,不必看作 timeline ,可以看作当时环境自己的想法的一种抒发。 很多人未必是厌恶不一致的观点,而是厌恶陈述观点的方式。可能你但凡犀利一些,他便认为是极端主义。所以才会有不少人虽然前面慷慨激昂,最后还要来一句“求轻喷”,或者加上一句“当然了,如果考虑到……”把相反观点综合一下来减弱一些锋芒。好比做菜,有些时候不该放太多盐,结果总有人认为放多了盐,再加些糖,就保持了“没有太咸”的正确性。 现代社会,对这个度其实特别难掌握,因为人都太敏感了,可能是社会压力的关系。如果压力很小,可能就会更擅于倾听,思考,甚至部分或全部接受别人的观点。他们可以让你有不同声音,但一旦“态度”,“度”,“方式”,任何一方面不符合心意,就炸了,就拉黑了。很多人看朋友圈都是在“审犯人”,并不是真正在找同类。 也许太多人不发朋友圈了,就是对掌握这些细节过于厌倦,那么难,逃离总行吧
  • 吐槽一下国内运营的游戏环境 - V2EX

    • 看来未来全世界所有的创新,都是**的孩子做出来的。 未来所有的诺贝尔奖,都被**的孩子包揽。 因为其他国家的孩子,都玩游戏废掉了。
  • JDK17 都出来了,感觉现在很多资深程序员 Stream 不会, Lambda 不会, Java .time 包不会 - V2EX

    • 这圈子,特别是 Java 圈,垃圾太多,垃圾声音更多,这就是很多大神转去搞新语言的原因,这种乌烟瘴气导致语言和社区氛围极差,特别是年轻人,被这种坏风气带动的毫无编程乐趣。 单纯说 Java 这么多年,一直在语言层面进步,而且进步神速,反观一些所谓的“老开发”“老 Java”,教别人做人,以自己那点项目经验就以年轻人导师自居,嘚瑟什么呢?我见过很多程序员把编程作为职业也作为爱好,结合的很好,反观你们这些。 知道别的语言看 Java 为什么总是在歧视链最底层吗?知道为什么国内 Java 氛围就是造垃圾轮子吗?就是因为风气不好,写个 lambda 这么简单的事儿,都能阴阳怪气半天,学一下咋了?花很多时间吗?真经验丰富的人不是看几眼就会了吗? 还有阿里或者蚂蚁吹,别吹了好吗,阿里和蚂蚁都尴尬了,阿里 Java 再强,能强过 Java 委员会?能强过真 Java 开发?阿里先把创新做出来再说,再创新这么多年,大家谁不知道国内的 IT 科技呢?何必尬吹? 多看看国外的趋势,多看看第一手材料,少看阿里系,有好东西,但是别被带跑偏了,阿里也是趋势的跟风者而已,springcloud 、云原生、大数据、AI ,没有一股阿里吹起来的风,所以不用太在意你心中的“神”
  • 现在的生产力是否已经能够支持全人类过上物质充足的生活? - V2EX

    • ◇路德维希·冯·米塞斯:《社会主义国家的经济计算》 他在 1920 年发表了论文《社会主义国家的经济计算》( Economic Calculation in the Socialist Commonwealth ),首次提出了 [经济计算问题] ,以此来质疑共产党政权的**计划经济。那一年,俄国的十月革命才结束不久,苏联都还没成立,米塞斯就已经开始质疑**计划经济了——再次感叹他超前的眼光。 米塞斯这篇论文指出:**计划经济必然导致市场的 [价格机制] 受损(彻底的**计划经济会完全摧毁价格机制,部分的**计划经济会部分地破坏价格机制)。在价格机制受损的情况下,负责制定经济计划的官僚 [无法] 计算出各种资源的有效分配情况。这就是大名鼎鼎的“经济计算问题”。。

      [所有的] **计划经济最后都面临严重的经济短缺、商品匮乏、资源浪费, [无一例外] 。

      由于混沌性,这个计算不可能成功

⚓ Anchor of above parts

TIL

  • 苏联政治笑话 - 维基百科,自由的百科全书
    • 此类笑话以讽刺苏联-东欧诸国的领导人、政治、经济和生活状态为主,数量极大,讽刺辛辣,广为流传
    • 体裁上,一般是段子式或者问答式,问答式也会非常简单,很适合独角喜剧

    • 问:“为什么斯大林总是要守着列宁的尸体呢?” 答:“列宁要是看不下去了,走出来的话,那斯大林怎么办?”
    • 问:“为什么列宁喜欢穿皮鞋,斯大林却总是穿靴子?” 答:“列宁时代,俄罗斯的血水只淹到脚踝。”
    • 一位美国历史学家和一位俄罗斯历史学家,讨论谁是1900年到1950年的最伟大人物。 “我支持胡佛先生,”美国人说,“他尝试着教导我们美国人停止酗酒!” “这又没什么!”俄国人接着说,“我选择斯大林,他让我们俄国人省了吃饭。”
    • 赫鲁晓夫到一个养猪场视察,跟几只猪一起拍了照片。记者报导时写下:“赫鲁晓夫同志和猪合影”,但又感不妥,故改成:“猪和赫鲁晓夫同志合影”,可还是怪怪的。最后把照片上的字改成:“左起第三位是赫鲁晓夫同志”
    • 问:“苏联最长的笑话?” 答:“赫鲁晓夫在全国代表大会上的讲话。”
    • 一只鳄鱼吃掉勃列日涅夫,结果它拉了一个星期的勋章。
    • “你听说了吗?勃列日涅夫做手术了。” “哪种手术?” “扩胸手术。因为勋章摆不下了。”
    • 斯大林出现在普京的梦中,并对普京说:“我给你两条建议:把你的所有政敌给杀光,然后把克里姆林宫的外墙涂成蓝色的。” 普京问道:“为什么是蓝色?” 斯大林笑着说:“我就知道你不会反对第一个。”

⚓ Anchor of above parts