V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Sponsored by
LinkedIn
不坐班的神仙工作 · 去任何你想去的地方远程,赚一线城市的工资
2000 个不用出门 Social 的全球远程工作,帮助 V2EX 的小伙伴开启全新的工作方式。
Promoted by LinkedIn
V2EX  ›  Stendan  ›  全部回复第 1 页 / 共 2 页
回复总数  39
1  2  
18 天前
回复了 jack778 创建的主题 程序员 你为什么喜欢做全栈程序员
18 天前
回复了 jack778 创建的主题 程序员 你为什么喜欢做全栈程序员
首先我在工作中不是全栈,在阮一峰老师的周刊里看到了这句话,分享给你:

你开始步入这个行业时,应该意识到,程序员是一个长期职业,你可能会从事 20 年甚至更长。你应该从长期角度看待编程。在长期中,技术来来去去,语言也来来去去,精通一种技术或语言,并不能保证你的长期职业发展。你的目标不必局限在学习什么语言或框架,只要吃透基础知识,你可以学会任何你想要的东西。
29 天前
回复了 justin2018 创建的主题 问与答 老哥们 都用啥大流量卡~~~
@lxr760 沃派畅想卡,联通的,好像绝版了
57 天前
回复了 greatghoul 创建的主题 分享创造 Chrome 划词翻译扩展 TransIt V1.1 发布
@greatghoul 用习惯了,感谢回复
57 天前
回复了 greatghoul 创建的主题 分享创造 Chrome 划词翻译扩展 TransIt V1.1 发布
挖一下-,- 我一直在用这款软件,可是最近在插件中显示:已关闭此扩展,因为 Chrome Web Store 已标记其为不安全。请问还有办法用嘛?
@zhullyb 除了官方默认的 LeanCloud 之外,Waline 还支持多种数据库,包括 MySQL, PostgreSQL, SQLite 以及 MongoDB 。受教了。
@zhullyb #2 请问下为什么不受影响啊?
74 天前
回复了 Stendan 创建的主题 哔哩哔哩 如何看待 2021.07.13 B 站崩溃事件
@Xhack 生活如意,没空对线
我现在也用 forr 啊?有时候 forr 速度不比所谓的 stream 差,遇到有的爱用 stream().parallel()跟我说为啥变得更慢了,我寻思你真的了解了 parallel 还是纯粹瞎用-,-
89 天前
回复了 Awes0me 创建的主题 WireGuard 如何让 wireguard 自动重新连接
89 天前
回复了 Awes0me 创建的主题 WireGuard 如何让 wireguard 自动重新连接
@billytom noob 一枚~~ 你描述的可能是这个问题?
运行在 NAT 路由器后面的内网服务器,默认是不能被外部网络直接访问的。例如,假设我们有一个 HTTP 服务运行在内网机器 192.168.1.2 ,NAT 路由器的地址是 192.168.1.1 ,并通过另一张有公网 IP 123.123.123.123 的网卡连接到了外部网络。要使得外网机器可以访问 192.168.1.2 的服务,需要执行:
```
# redirect http traffic to 192.168.1.2:
$> iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 80 -j DNAT --to 192.168.1.2
```
然后,就可以通过公网 IP 123.123.123.123 的 80 端口访问 192.168.1.2 的 HTTP 服务了。
89 天前
回复了 Awes0me 创建的主题 WireGuard 如何让 wireguard 自动重新连接
@Stendan 这个是 Linux 的
89 天前
回复了 Awes0me 创建的主题 WireGuard 如何让 wireguard 自动重新连接
```
git clone https://git.zx2c4.com/wireguard-tools /usr/share/wireguard-tools
```

```
# nano /etc/systemd/system/wireguard_reresolve-dns.service
[Unit]
Description=Reresolve DNS of all WireGuard endpoints
Wants=network-online.target
After=network-online.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'for i in /etc/wireguard/*.conf; do /usr/share/wireguard-tools/contrib/reresolve-dns/reresolve-dns.sh "$i"; done'
```

```
# nano /etc/systemd/system/wireguard_reresolve-dns.timer
[Unit]
Description=Periodically reresolve DNS of all WireGuard endpoints

[Timer]
OnCalendar=*:*:0/30

[Install]
WantedBy=timers.target
```

```
systemctl enable wireguard_reresolve-dns.service wireguard_reresolve-dns.timer --now
```
同三本,庆幸自己上学的时候好好学了计算机基础,暑假参加学校的小项目学习(半个月到 1 个月,模拟项目),那时候还是 h5 、SSM 、Python (基本都是学校和机构合作开的),但是都免费学,随便报名,比如我当时已经熟练的 crud 了,感兴趣就参加了一个 python 基础班。虽然学校教的都非常浅,但还是让我长点见识,大部分时间还是自学,后来见识的多了,走路就越来越快了。工作中恰好用到 Python ,就尝试用 Python 解决,上学的时候看过了多门语言,后续自己学习又相对的有了些方法,可能我这个三本就这样,但一切的一切,都在学生自身,老师只要讲正确,点到为止即可。要么就只开一门课程,学精学细。
跳槽到一家 965 沿海城市工作,有更多的时间去思考,现在也发掘了很多兴趣。当然,我的家人和朋友都在身边,每天中午和晚上有家人做的饭,隔几天会在家里做各种各样的吃的(烤肉烤鸭什么的),周末约朋友玩,或者就一个人在海边溜达。晚上打游戏,剪辑游戏视频,发视频。空闲的时间多了,有时候听一首歌有了灵感,会记录下来,脑子里会检索感兴趣的影视作品,有想法了晚上就会去剪辑。我原先的工作就是加班到 2 点,第二天只能晚来半个小时的公司,换了公司才发现,我不是讨厌代码,我只是讨厌加班。
@zjj19950716 /kjuːt/
偏各题 ajax 阿贾克斯 -,-~
110 天前
回复了 fiypig 创建的主题 职场话题 为啥都上两个月就不想呆了
@meetcw 本人亲式,酮康唑会复发(而且复发会比上一次更严重),用二硫化硒每周一次,一个月根治真菌头皮屑,现在每 2/3 天洗头,也没有什么头皮屑,猫毛倒是不少...
117 天前
回复了 airbotgo 创建的主题 问与答 这个计算公式可以推导出来吗?
js 里面的,不知道帮到你没-,-!

function getAPR(instalment_amt, instalment_day, instalment_rate, instalment_type) {

// 现金流
var cashFlows = new Array();
// 实际年化利率
var APR = 0;

// 每期还款本金
var principal_base = Math.round(instalment_amt / instalment_day);
// 最后一期还款本金
var principal_end = instalment_amt - (principal_base * (instalment_day - 1));

// 手续费收取方式总手续费就是本金*费率*期数保留两位小数,然后前面 N-1 期都是本金*每期费率保留 2 位小数,然后第 N 期用总手续费减去前面 N-1 期手续费
var fee_total = Math.round(instalment_day * instalment_amt * instalment_rate) / 100;
var fee_base = Math.round(instalment_amt * instalment_rate) / 100;
var fee_end = fee_total - (fee_base * (instalment_day - 1));

cashFlows.push(-instalment_amt);

if(instalment_type == '1') {

for(var i = instalment_day - 1; i >= 0; i--) {

if(i > 0) {
cashFlows.push(principal_base + fee_base);
} else {
cashFlows.push(principal_end + fee_end);
}

}

} else if(instalment_type == '2') {

for(var i = instalment_day - 1; i >= 0; i--) {

if(i == instalment_day - 1) {
var fee = fee_total;
} else {
var fee = 0;
}

if(i > 0) {
cashFlows.push(principal_base + fee);
} else {
cashFlows.push(principal_end + fee);
}

}

} else {

alert('请正确选择 [分期手续费收取方式] !');
return '';

}

// cashFlows=[-2000,679,679,666,0,0,0,0];
APR = (12 * IRR(cashFlows) * 100).toFixed(2);

return APR;

}

function IRR(cashFlows, estimatedResult) {
var result = "isNAN";
if(cashFlows != null && cashFlows.length > 0) {
// check if business startup costs is not zero:
if(cashFlows[0] != 0) {
var noOfCashFlows = cashFlows.length;
var sumCashFlows = 0;
// check if at least 1 positive and 1 negative cash flow exists:
var noOfNegativeCashFlows = 0;
var noOfPositiveCashFlows = 0;
for(var i = 0; i < noOfCashFlows; i++) {
sumCashFlows += cashFlows[i];
if(cashFlows[i] > 0) {
noOfPositiveCashFlows++;
} else {
if(cashFlows[i] < 0) {
noOfNegativeCashFlows++;
}
}
}

// at least 1 negative and 1 positive cash flow available?
if(noOfNegativeCashFlows > 0 && noOfPositiveCashFlows > 0) {
// set estimated result:
var irrGuess = 0.1; // default: 10%
if(!isNaN(estimatedResult)) {
irrGuess = estimatedResult;
if(irrGuess <= 0) {
irrGuess = 0.5;
}
}

// initialize first IRR with estimated result:
var irr = 0;
if(sumCashFlows < 0) { // sum of cash flows negative?
irr = -irrGuess;
} else { // sum of cash flows not negative
irr = irrGuess;
}

// iteration:
// the smaller the distance, the smaller the interpolation
// error
var minDistance = 1e-15;

// business startup costs
var cashFlowStart = cashFlows[0];
var maxIteration = 100;
var wasHi = false;
var cashValue = 0;
for(var i = 0; i <= maxIteration; i++) {
// calculate cash value with current irr:
cashValue = cashFlowStart; // init with startup costs

// for each cash flow
for(var j = 1; j < noOfCashFlows; j++) {
cashValue += cashFlows[j] / Math.pow(1 + irr, j);
}

// cash value is nearly zero
if(Math.abs(cashValue) < 0.01) {
result = irr;
break;
}

// adjust irr for next iteration:
// cash value > 0 => next irr > current irr
if(cashValue > 0) {
if(wasHi) {
irrGuess /= 2;
}
irr += irrGuess;
if(wasHi) {
irrGuess -= minDistance;
wasHi = false;
}
} else { // cash value < 0 => next irr < current irr
irrGuess /= 2;
irr -= irrGuess;
wasHi = true;
}

// estimated result too small to continue => end
// calculation
if(irrGuess <= minDistance) {
result = irr;
break;
}
}
}
}
}
return result;
}
1  2  
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2941 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 60ms · UTC 13:54 · PVG 21:54 · LAX 06:54 · JFK 09:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.