AMD Threadripper 3960X 装机
眼看2019年就要结束了,发现自己的手竟然还在。于是决定连着胳膊一起剁掉。
眼看2019年就要结束了,发现自己的手竟然还在。于是决定连着胳膊一起剁掉。
用任何你喜欢的方法安装 Glasgow Haskell Compiler (a.k.a. GHC)。Cabal 之类的
依赖管理系统就用不着了。 因为我也不会用。 保证能够执行ghc和ghci命令就行。
首先,把以下文件保存成helloworld.hs。
1 | foo = "hello, world" |
然后执行ghci helloworld.hs,然后在>提示符后输入foo并回车
1 | GHCi, version 8.6.3: http://www.haskell.org/ghc/ :? for help |
你可以使用:r来重新载入文件,也可以使用:l <文件名>来载入代码。
在一年前,我写过一篇文章,介绍利用GRE隧道将一台服务器的IPv6地址“分配”给另一台电脑,令其能访问IPv6网络的方法。
不过那种方法存在一些问题:
于是热爱折腾作死的我研究了一下使用IPsec配合IKEv2对流量进行加密的方法。
服务器与本地均为ArchLinux(Arch大法好),strongSwan软件包可从AUR安装。
服务器需要至少有一个公网IPv4和一段Routed IPv6 Subnet。
流水帐式地记录了 Linux 下 TCP Socket 通信的方法和基本的 Epoll 使用方法。
没有错误处理。
1 | struct addrinfo *listen_addr; //存放解析结果。参见`man getaddrinfo` |
这种方式只能同时处理一个连接
1 | int fd = socket(AF_INET, SOCK_STREAM, 0); // int socket(int domain, int type, int protocol); 参见`man 3 socket` 创建文件描述符, 出错返回-1 |
虽然HE有提供免费的Tunnelbroker,不过那速度实在不怎么样。于是考虑在有IPv6地址托管主机上建立一个GRE Tunnel。
GRE Tunnel需要有内核模块ip_gre支持。远程主机有一段/64的IPv6,我将其中的一段/80分配给自己的机器。
使用iproute2工具。当然,你自己的机器需要有一个公网IPv4地址。
$server_ipv4$client_ipv4。a:b:c:d::/64a:b:c:d:e::/80脚本如下,需要root,建议用sudo -i:
1 | ip tunnel add gre-tunnel mode gre remote $client_ipv4 ttl 64 |
gre-tunnel是隧道名称,可以按自己喜欢的来,记得其他的也要一起改本文作于2014年末,其中记载的方法可能已经过期,请读者谨慎参考
见过不少教程都是基于Eclipse的,而基于IDEA的文章少得可怜,遂决定写此文。
本文通篇基于Linux/IntellijIDEA进行讲解,Windows/MAC/Eclipse用户请自行依葫芦画瓢。
当然,你得首先去MinecraftForge下载一份源代码。我这里用的是最新的forge-1.7.10-10.13.2.1258-src.zip
接着,找个地方建立一个文件夹,这将是你的工程目录,我的叫做Forge1.7.10-1258。然后再在里面建立一个目录,比方说就叫forge-1.7.10-10.13.2.1258-src,把你的Forge源码解压进去。
现在,你的文件夹层次应该看起来是这样的:
Forge1.7.10-1258
└── forge-1.7.10-10.13.2.1258-src
├── build.gradle
├── CREDITS-fml.txt
├── eclipse
├── forge-1.7.10-10.13.2.1258-changelog.txt
├── gradle
├── gradlew
├── gradlew.bat
├── LICENSE-fml.txt
├── MinecraftForge-Credits.txt
├── MinecraftForge-License.txt
├── README.txt
└── src你可以先按自己喜好改动一下build.gradle。比如,我喜欢手动指定一下mappings的版本:
1 | minecraft { |
接着,cd到forge-1.7.10-10.13.2.1258-src目录下,执行如下两条命令:
gradle -i setupDecompWorkspace
gradle -i ideaModule然后请耐心等待指令完成,可以去喝杯牛奶睡个觉什么的。