V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  CRVV  ›  全部回复第 18 页 / 共 27 页
回复总数  537
1 ... 10  11  12  13  14  15  16  17  18  19 ... 27  
2018-08-18 19:03:26 +08:00
回复了 ITOutsider 创建的主题 云计算 现在的国内云服务都是那么不要脸的吗?
@Smilecc
他骂了人,发了帖子,问题确实就解决了
而且这个解决方式显然比“向监管部门投诉”的成本低得多
2018-07-26 20:15:25 +08:00
回复了 abcbuzhiming 创建的主题 MySQL 要是不准 Join,如何解决某些需要 Join 后查询的问题?
这根本不是 JOIN 的问题

按照关系型数据库的范式来设计表,不加缓存,JOIN 必然是最快的方法
如果有其它的方法比 JOIN 快,那是数据库太蠢了

如果用这种方式还不够快,那解决的方法当然多得很
比如你可以不用关系型数据库

另外,这类问题的重点是不要把代价大的事情放到关系型数据库里去做。
不用 JOIN 的 SQL 可以代价很大,JOIN 100 个表也可以代价很小。
阿里巴巴规定 3 个表不能 JOIN,这说明他家工程师水平比较烂,没有能力判断一个 SQL 的代价是不是太大,适不适合放到数据库去查询,仅此而已。
> 如果 TCP 原本就保留“块”信息, 则使用起来就会简单很多

如果程序说要发送一个 1200 字节的块,要求保证送达,当前链路的 MTU 只有 800,该怎么处理?

1. 返回错误,这太难用了
2. 把 1200 的块拆开发出去
2.1 用 2 个包只发 1200 字节,这样浪费了 400 字节( 2 个包本来可以发 1600 )
2.2 用第 1 个包发 800,第 2 个包发 400 再加上下一个块的 400

1 大约是带重传的 IPv6
2.1 大约是带重传的 IPv4
2.2 是 TCP 加上分块,所以新的问题是应该用哪个方法来分块? 固定长度, 加包头指定长度还是用特殊的间隔标记?

结论是 TCP 不能保留“块”信息,这样做只是把分块的问题推到了 TCP 上,而传输层比应用层更不知道需要什么分块方式
@polythene
楼主发的代码包含 data race,-race 打开了 data race detector,用来检查这个错误,为了检查错误关了相关的编译器优化

@lostsquirrelX
变量和锁不用放在一个结构体里,随便怎么放都行

曾经有一个和这事相关的 bug
https://github.com/golang/go/issues/19182
2018-05-29 14:33:48 +08:00
回复了 chaleaochexist 创建的主题 程序员 后端工程师不会手写 sql,可以接受不?
@msg7086
1. 用数据库的场景有很多,不要以为你遇到的场景能代表所有的场景

比如,对数据正确性有很高要求,用户量又不大的情况下,用 SQL 写业务逻辑是常见且成本低廉的解决方案, 就是之前有人提过的 ERP

2. PostgreSQL/Oracle 有那么多功能,不是做着玩的,是真的有用。你看不懂只是你自己孤陋寡闻而已

3. 请不要这么频繁地使用反问句
2018-05-18 10:32:51 +08:00
回复了 corningsun 创建的主题 PostgreSQL 多列唯一索引可以添加限制条件吗
CREATE UNIQUE INDEX unique_user_idx ON table_user (user_telephone) WHERE user_status <> -1;
>>> a = [1, 2, 3, 4]
>>> b = [5, 6, 7, 8]
>>> [(x, y) for x in a for y in b]
[(1, 5), (1, 6), (1, 7), (1, 8), (2, 5), (2, 6), (2, 7), (2, 8), (3, 5), (3, 6), (3, 7), (3, 8), (4, 5), (4, 6), (4, 7), (4, 8)]

Python 和 Haskell 的正常写法,算不上奇技淫巧吧
Java 的正常写法当然就是嵌套循环,我觉得足够优雅了
2018-05-13 14:18:46 +08:00
回复了 realpg 创建的主题 程序员 感觉,我可能发现了阿里云的一个秘密
如果能控制 ECS 的路由器,用假 IP 地址来访问是很容易的事情

如果能确认只攻击了流量计费机器这一点不是巧合,那么攻击者准确地知道哪些机器是流量计费的

所以犯人 必须满足两个条件
1. 能控制那些 IP 地址或者能控制路由器( 360 和 VPS 供应商)
2. 知道机器的计费方式

360 没有动机做这件事且没有渠道知道这些机器的计费方式
所以,要么是巧合,要么是 VPS 供应商干的

要验证估计也不难,如果犯人做得不够好,traceroute 或者 ping 就能确认了
如果做得足够好,把 TCP 的包都抓下来,从时间上也许能找到一些痕迹
@aijam
JavaScript 的 Array 是 Object 而不是 https://zh.wikipedia.org/wiki/%E6%95%B0%E7%BB%84
1. 用了 splice 说明他不怎么会写代码,不算错但是太奇怪了
2. 每次递归新建两个新的数组是正常的写法,其实就是 Python/Haskell 的著名的特别短的快速排序。这个版本很适合用来学习快速排序和递归,不是真拿来排序的。如果你觉得需要用背才能会写快速排序,那应该去看看这个
3. 快速排序之所以号称快速,重点是要在原来的数组里面做交换,这样的好处是很多操作都在相邻的内存上。JavaScript 没有数组,于是没有这个性质,所以 JavaScript 的快速排序应该不比堆排序快(我瞎猜的)
4. 因为 3,在原来的 Array 里交换,也不是正经的快速排序
5. 快速排序是一个很简单的算法(我认为比冒泡排序简单),根本不需要背,写那个短的 Python/Haskell 版本很容易,要把那种在一个数组里交换的版本写全对又不太容易。我觉得快速排序是一个合适的算法题
2018-05-10 12:29:58 +08:00
回复了 Cbdy 创建的主题 Java 今天出了一个 Java 笔试题(语法题),有兴趣的同学来做做😄
真看不出来是求平方和

满足 0 0 1->1, 0 1 2 -> 5, 1 2 3 -> 14 的还可以是
5 * x1 + 3 * x2 + x3
3 * x1 + x2 + x3 ** 2
-7 * x1 - 3 * x2 + x3 ** 3

看到这种题目,我的第一反应都是
public_class_F_{
____private_int_v;
____public_F_apply(int_x)_{
________if_(x_==_1)_{
____________v_=_1;
________}
________if_(x_==_2)_{
____________v_=_5;
________}
________if_(x_==_3)_{
____________v_=_14;
________}
________return_this;
____}
____public_int_get()_{
________return_v;
____}
}
2018-05-04 14:32:04 +08:00
回复了 wangxiyi077 创建的主题 程序员 据说阿里云的 I/O 吞吐不受 Meltdown 补丁影响?
@simpx
还是没有懂

如果是普通的 C 程序,大概是这么写的
ssize_t r = write(fd, buf, size);
if (r < 0) { ... }
这里 write 是系统调用

那这个地方在阿里云上要怎么搞
要把代码用 dpdk 重写么?还是说阿里云有神奇的机制不用改代码就直接用 dpdk 了?
2018-03-31 11:22:21 +08:00
回复了 LeCent 创建的主题 Python 已知物体与图像上的大小,如何求摄像头的高度?
这是光学问题而不是算法问题

1/透镜焦距 = 1/物距 + 1/像距
像距 /物距 = 图像尺寸 /物体尺寸

焦距已知,解方程组得到物距和像距,这两个数之和是摄像头和物体之间的距离。
2018-02-28 18:37:18 +08:00
回复了 admirez 创建的主题 Go 编程语言 ioutil.Discard 这个 io.writer 是线程安全的吗
@sagaxu

https://docs.oracle.com/javase/specs/jls/se9/html/jls-17.html#jls-17.4.5
When a program contains two conflicting accesses (§17.4.1) that are not ordered by a happens-before relationship, it is said to contain a data race.

https://docs.oracle.com/javase/specs/jls/se9/html/jls-17.html#jls-17.4.1
Two accesses to (reads of or writes to) the same variable are said to be conflicting if at least one of the accesses is a write.

Java Language Specification 也把 data race 定义为 memory access
2018-02-28 13:11:12 +08:00
回复了 admirez 创建的主题 Go 编程语言 ioutil.Discard 这个 io.writer 是线程安全的吗
@sagaxu
1. 我不知道你说的“典型的 data race ”是什么。
https://blog.regehr.org/archives/490 明确地给出了 data race 和 race condition 的定义和它们之前的关系
2. 我上面说 “ data race 是 race condition 的子集”,这是错的,这两个东西互相不是对方的子集
3. 按照我发的链接里的定义,不同线程上的 2 个 open 和 close 之间构不成 data race,因为只有 open 一个地方用到了内存地址
2018-02-28 11:59:50 +08:00
回复了 admirez 创建的主题 Go 编程语言 ioutil.Discard 这个 io.writer 是线程安全的吗
@sagaxu
不是先 close 再 read 的问题
是 close 和 open 的问题
我指的是 https://github.com/golang/go/issues/7970
2018-02-28 11:39:27 +08:00
回复了 admirez 创建的主题 Go 编程语言 ioutil.Discard 这个 io.writer 是线程安全的吗
@sagaxu
文件的 close 和 open 之间可以有 race,这个和常见的 data race 是两回事

Node.js 里,如果写
console.log('exit')
process.exit()
前面的写操作是异步的,所以这两行之间有 race
2018-02-28 10:16:51 +08:00
回复了 admirez 创建的主题 Go 编程语言 ioutil.Discard 这个 io.writer 是线程安全的吗
@sagaxu
1. 没有 data 也可以有 race,data race 是 race condition 的子集
2. 这个事要从 144 行来看,ioutil.Discard 被专门做成了线程安全的
3. ioutil.Discard 曾经不是线程安全的,还被当案例写下来了。https://blog.golang.org/race-detector
2018-02-19 15:31:43 +08:00
回复了 zhcntiangang 创建的主题 Android 安卓五笔 希望有能力朋友接力
之前我也用百度输入法,写这个输入法有两个原因
1. 百度的键盘上 Z 和 S 是对齐的
2. 在手机上长期装着一个百度的东西不太爽

至于其它的输入法,给我的感觉都是不用五笔的人加了一个五笔模式进去,没找到好用的

对于五笔的熟练用户,这个输入法差不多够用了,连 "図書館" 都能打出来,但 "微信" 不是词组
我觉得只有输入英文和中文标点有点麻烦,所以一直在用也没有继续改进
2018-02-05 21:05:42 +08:00
回复了 shaonian 创建的主题 生活 为什么春运火车票年年都要抢,还这么难抢?
@PinLock

火车票的总数是固定的,不论价格是多少,春运期间肯定能把票卖完(铁路部门不可能把价格提高到卖不完票的程度),所以最后能买到票的人数是固定的
改变价格会影响的,是哪些人能买到票

现在的状态下,能买到票的人是
1. 愿意出高价找黄牛买的;多花了钱,给了黄牛
2. 有能力通过技术手段抢票的;多花了时间(还是钱),平白浪费了
3. 运气好的;没多花东西

如果火车票价涨到均衡的水平,能买到票的人是
1. 愿意出高价买票的;多花了钱,给了铁路部门

我的观点是,用后一种方式来分配资源,严格地好于前一种


另外还有个价格差别的问题
比如,把腊月 26-30 的票价提高,腊月 21-25 的票价降低,总和不变,其它日期的票价也不变
这样做对资本家没有好处,但是(我猜测)会降低所有人买到票的难度
1 ... 10  11  12  13  14  15  16  17  18  19 ... 27  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4838 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 419ms · UTC 09:41 · PVG 17:41 · LAX 02:41 · JFK 05:41
Developed with CodeLauncher
♥ Do have faith in what you're doing.