McAfee会误认为GoLang多线程程序是病毒

这几天在学习GoLang, 今天遇到一个有趣的现象,写了下面这段关于多线程routine的代码,一执行就会被McAfee认为是病毒。
程序被kill掉,甚至连VS code都被关掉,并且桌面上的VS code图标都被删掉了,有意思。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package main

import (
"fmt"
"time"
)

func main() {
go c()
fmt.Println("I am main")
time.Sleep(time.Second * 2)
}
func c() {
time.Sleep(time.Second * 2)
fmt.Println("I am concurrent")
}

//=> I am main
//=> I am concurrent

McAfee-log

预览FontAwesome

现在在用的HEXO主题里,有一个标题旁边的图片写错了,导致显示是个方块,挺丑,想从现在的字体里选一个,却不知道怎么弄出来全部的。
发现有个网站,https://icomoon.io/app/#/select
选择导入图标,然后选择SVG文件。
选择一个图标,点下面的产生字体,就能在下一页看到这个图标的16进制编码了。

新一轮学习开始了

新的产品release,经过两个多月的努力已经正式的发布了,突然感觉又要闲下来了。
过去的一段时间还是挺充实的,干的不少的活,下一步计划还没有完全确定下来,不过,现在可以准备学习一个Go Lang了。

活在当下

思考过去,过去全是悔恨;
思考未来,未来全是焦虑。
只有当下的时刻,才是生命的展开。
过去的快乐被回忆,害怕将来不再拥有,徒增焦虑;
过去的不快乐被回忆,悔恨又增加几分。
担心未来的快乐会变成泡影,快乐变焦虑;
惦记未来的不快乐是徒劳无功,更加焦虑。

人生不会有永恒的快乐,只有快乐和不快乐,
活在当下,活在现在的这一刻,
忘掉所有的不快乐,平淡才是真的快乐。

github push失败,删除git历史中的大文件

转移repo的时候,直接push会报错文件大小受到限制,但是这个文件只存在于commit history, 并不在实际文件中。解决步骤如下。

  1. 使用如下的命令找出history的大文件.

https://stackoverflow.com/questions/10622179/how-to-find-identify-large-commits-in-git-history

1
2
3
4
5
6
git rev-list --objects --all |
git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' |
sed -n 's/^blob //p' |
sort --numeric-sort --key=2 |
cut -c 1-12,41- |
$(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest
  1. 使用bfg -D <文件名>, 直接删除。

https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository

  1. 清理缓存。
1
git reflog expire --expire-now --all && git gc --prune-now --aggressive
  1. 强制推上Github。
1
git push -f

罗翔老师讲的一点感悟

昨天是段历史, 明天是个谜团,
而今天是天赐的礼物, 像珍惜礼物那样珍惜今天.

对于不可控的事情,我们要保持乐观和自信;
对于可控的事情,我们要保持谨慎和节制。
对于不可控的事情,你的焦虑和恐惧于事无补,
你焦虑改变不了明天,反而会影响今天的心情;
你的恐惧也改变不了明天,因为人生,唯一恐惧的就是恐惧本身。
但是对于可控的事情,能不能好好的利用时间就是可控的,你要谨慎,要节制。
因为如果不谨慎不节制就会乐极生悲。

今天是个礼物,大家好好的把握今天。

Python的三元运算符几种替代方案

在Python语言中,是不支持三元计算符的,比如Java中用这种形式,来判断身份证的男女

1
String gender = Integer.parseInt(idcard.substring(16, 17)) % 2 != 0"男""女";

而在Python中没有这个运算符,有一个if else可以替代

1
gender = "男" if int(idcard[16:17]) % 2 != 0 else "女"

或者这样:

1
gender =  int(idcard[16:17]) % 2 != 0 and "男" or "女"

更或者这样:

1
2
# 利用int(True)=1和int(False)=0, 可以实现下面的选择
gender = ("女" , "男")[int(idcard[16:17]) % 2 != 0]

还可以这样

1
2
# 利用True和False当作字典的key, 可以实现下面的选择
gender = {True:"男",False:"女"}[int(idcard[16:17]) % 2 != 0]

如果判断的东西是否定和非否定关系,甚至还可以这样.

1
2
3
# 同样是利用利用int(True)=1和int(False)=0, 然后切片数组
age=18
adult_flag = "未成年"[age>18:]

windows 10 切换WIFI和网线的优先级

在办公室里需要同时连接网线和WIFI,网线连通公司内网,WIFI链接外网,手动切换比较麻烦,手动配置路由也比较麻烦。
查询了一下,发现可以通过设置网络的优先级来实现切换默认网络,找了找命令,可以用powershell来执行。

管理员模式运行powershell,获取网络列表.

1
Get-NetIPInterface

然后调整WIFI的优先级:

1
Set-NetIPInterface -InterfaceIndex 16 -InterfaceMetric 10

这个命令中-InterfaceIndex 指的是第一个命令结果网卡的索引号,-InterfaceMetric 用于指定接口跃点数。

通过恢复来切换会原来的网络顺序。

1
Set-NetIPInterface -InterfaceIndex 16 -AutomaticMetric enabled

执行结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
PS C:\Users\skeetw> Get-NetIPInterface

ifIndex InterfaceAlias AddressFamily NlMtu(Bytes) InterfaceMetric Dhcp ConnectionState PolicyStore
------- -------------- ------------- ------------ --------------- ---- --------------- -
8 Ethernet 3 IPv6 1500 5 Disabled Disconnected A
20 Bluetooth Network Connection IPv6 1500 65 Disabled Disconnected A
7 Ethernet IPv6 1500 25 Enabled Connected A
13 Local Area Connection* 10 IPv6 1500 25 Disabled Disconnected A
12 Local Area Connection* 9 IPv6 1500 25 Disabled Disconnected A
16 Wi-Fi IPv6 1500 35 Enabled Connected A
1 Loopback Pseudo-Interface 1 IPv6 4294967295 75 Disabled Connected A
8 Ethernet 3 IPv4 1500 5 Enabled Disconnected A
20 Bluetooth Network Connection IPv4 1500 65 Enabled Disconnected A
7 Ethernet IPv4 1500 25 Enabled Connected A
13 Local Area Connection* 10 IPv4 1500 25 Enabled Disconnected A
12 Local Area Connection* 9 IPv4 1500 25 Enabled Disconnected A
16 Wi-Fi IPv4 1500 35 Enabled Connected A
1 Loopback Pseudo-Interface 1 IPv4 4294967295 75 Disabled Connected A
PS C:\Users\skeetw>
PS C:\Users\skeetw> Set-NetIPInterface -InterfaceIndex 16 -InterfaceMetric 10
PS C:\Users\skeetw> Set-NetIPInterface -InterfaceIndex 16 -AutomaticMetric enabled

这两条命令的交替执行就能达到wifi网络和有线网络交替成为默认网络。