爱情是什么?标题为啥至少10个字?

Nicekingwei12/14/2017, 9:00:48 PM

爱情是什么?你们体验过爱情吗?单方面的喜欢算爱情吗?爱情的本质,是反馈调节吗?

keyboard_arrow_down
意见反馈发在哪 /没有专门的地方 委屈巴巴

Amethyts12/15/2017, 8:16:23 AM

就是文章阅读时,单词标红之后鼠标移动上去不是会有单词释义吗。1.好像很多单词没有释义。2.由于单词释义的小方框出现在鼠标(单词)右下方,在最下面的单词释义就会被浏览器边框挡住看不到啦~

keyboard_arrow_down
听说站长想让我帮忙推广社区?

ice100012/14/2017, 5:14:45 AM

听说站长想让我帮忙推广社区? 把它写在我博客的about页面好了。

keyboard_arrow_down
测试 commutative diagram

Colliot12/16/2017, 4:24:01 AM

\require{AMScd} \begin{CD} (X) @>{ch}>> H(X;\mathbb Q);\ VVV @VVV \ (Y) @>{ch}>> H(Y;\mathbb Q); end{CD} \begin{CD} A @>>> B @>{\text{very long label}}>> C \ @. @AAA @| \ D @= E @<<< F end{CD}

keyboard_arrow_down
同构渲染遇到的一些问题和解决方案

Colliot12/16/2017, 1:48:16 AM

从最初部署开始就用了 Angular Universal 来做同构渲染,不过效果是渐进的。最初的时候,连服务器端语言切换都没有实现,就是说,无论你的 URL 是 /en 还是 /zh 打头的,渲染出来的 HTML 都是英文。目前我还不知道原因是啥,不过把语言从普通的 service 的成员,用 angular-redux 改造为 observable 之后,语言的问题暂时解决了。(其实还有部分页面有问题) 这种状态维持了很久,直到今天早上进行了第二阶段改造。这次把 API 调用也挪到服务器上了。其实本来就应该是在服务器上的,不过一直没有配 CORS,导致每次都调用失败。改造当中还有一个副产品,就是发现了跨域请求的 OPTIONS 会阻塞真正的请求,相当于延迟 * 2 了,延迟一大体验就十分糟糕,所以我把 API 代理到同一域名了。 第三阶段就是继续优化。首屏可以在服务器渲染全部内容之后,又有一个新的问题,就是闪烁问题。它的原因是,在服务器填充了内容,在本地页面初始化的时候,又重新去加载 API,这时候就进入了「加载中」的状态,加载完之后又会变回原来的样子,这就是「闪烁」。 理想中的思路很简单,要是能把服务器的状态延续到桌面端就好了。我的加载是订阅的路由变化,所以想像中如果路由状态能延续,就可以避免重新加载了。我在这里查到有个配置叫 RouterModule.forRoot(routes, {initialNavigation: 'enabled'}),可以把第一次加载的路径直接作为 app 的路径,而不是从 baseUrl 跳转过来的。可惜用了之后我的加载事件还是被触发了,原因正在研究中。 所以我又退而求其次,能不能转移一些别的状态,比如 apollo client 的缓存。Angular 专门有个叫 TransferState 的模块做这个,简单的可以参考这篇。利用 TransferState,我们可以把 apollo client 的缓存、redux 的 store 都序列化之后再在本地回复,理想情况下就不会闪烁了。但我做了之后还是闪。 这是为什么呢?因为我当时针对 apollo client 的 refetch 有时候不能正常工作的问题,自己造了一套缓存失效标记的系统——简而言之就是给每个请求加上一个叫 cacheKey 的参数,如果 cacheKey 不同,apollo client 自然就不缓存了。再用一个唯一的键去识别一个请求,如果它需要缓存失效,就把这个键标记为 true,每次请求的时候去找自己对应的键的值,看是不是失效了,失效了就重新生成一个随机的 cacheKey,没失效就用原来存起来的 cacheKey。而我这个缓存系统同样需要状态转移。等我转移好之后,确实就不闪烁了。 转移的时候还遇到一个问题。我的系统本来是 Map 而不是普通 object,结果遇到了Map 序列化的问题。折腾了半天 Map 的序列化搞不定(因为我是多层的,而且为了类型安全,用了 tagged union,导致有 Map 套 object 套 Map),最终还是暴力把 Map 迁移到 object 了(暴力在为了减少代码更改,在 Object.prototype 上定义一些类似 get, set 的方法……) 现在工作是正常了,但还有一个隐患——生成的 HTML 太大了。这些 store 都以 json 的形式保存在了 HTML 中,本来可能接近 100 KB 的页面,暴涨到 250 KB 左右。现在我正在寻求这个问题的解决方案。可能用 GraphQL 的时候要克制一点了,不要贪图方便,而加入无关的 field。

keyboard_arrow_down
如何把 ES6 Map 序列化、反序列化?

Colliot12/15/2017, 11:35:28 PM

没有想像的那么简单。感觉可以从理论的角度分析一番……

keyboard_arrow_down
我感觉苹果系都对单页应用不友好……

Colliot12/14/2017, 10:32:23 PM

用苹果的人(包括我)习惯滑动后退,但这样似乎无法触发 SPA 式的后退,页面还是被重新加载了一遍,真是太遗憾了…… 不知道有没有什么解决方法。

keyboard_arrow_down
我终于找到 API 很慢的原因了……

Colliot12/15/2017, 7:53:24 PM

我在这里说到「这个 API 很卡」,现在我终于知道本质原因了,猜猜是因为啥? 跨域 QAQ 我一开始以为是服务器质量的问题,后来查了发现确实质量下降了,本来有 CN2 的现在没了,延迟从 150ms 上升到 250ms。搬迁到另一个(目前还是)CN2 的机房之后,延迟又回到了 150ms,然而还是感觉很慢。 看着调试工具里一堆 http 请求的时候,我终于想明白了,因为跨域会先发一个 OPTIONS 请求,这个请求虽然不大,但会阻塞住第二次真正的请求……这么一来延迟其实是 300ms,难怪这么慢。 于是我把 api 代理到了同一个域名下,现在看来效果应该好多了。

keyboard_arrow_down
搬迁服务器的正确姿势是什么?

Colliot12/15/2017, 10:50:18 AM

在单服务器的情况下,我目前想到一种方案,就是不迁移 IP 而是直接购买一个新的,然后把数据迁移到新的,把旧的 IP 反代到新的 IP,这样避免了如果直接更改 IP 后,DNS 缓存有段时间会导致不能访问的问题(因为解析到旧的 IP 了,旧的 IP 已经没了。这种方案里旧的 IP 被反代到了新的,所以无论解析到新的还是旧的,都可以访问)。

keyboard_arrow_down
even loop 是啥?

zuozijian372012/14/2017, 10:21:53 PM

经常听说,有通俗的介绍吗

keyboard_arrow_down

Latest Replies

ice1000 replied to 一个重大的消息——本站的 Angular 版本不再继续开发,将会用 React 「重新」开发

我们需要看合订本,是吗? https://colliot.org/zh/2018/01/%e7%94%a8-angular-%e5%bc%84%e4%ba%86%e4%b8%80%e4%b8%aa%e8%83%8c%e5%8d%95%e8%af%8d%e7%9a%84%e7%bd%91%e7%ab%99-eliseos-org/ 虎哥名人名言: 整个弄下来的感想就是,Angular 是真的好用,Angular 生态是真的不错,universal 完全按官方走一遍就活了,现在线上运行的版本就是 universal 的,右键查看源码可以看到是渲染好的页面发过来的。angular cli 一路可以 generate 到底,基于 NgModule 的路由懒加载也是开箱即用,不需要任何配置,非常美妙。

fjcfff replied to 阿里巴巴数学竞赛选错赛道了

给定标准布朗运动 Bt 假设 s 是个停时,那么 B′t={Bt2Bs−Btif t≤sif t>s 是标准布朗运动。

Colliot replied to 阿里巴巴数学竞赛选错赛道了

弱反射原理 mathbb{P}{M_t ge a} = 2mathbb{P}{B_t ge a},其中 M_t = sup_{sin[0,t]}B_s 是布朗运动 B_t 在 [0,t] 内达到的最大值。 它可以写作mathbb{P}{B_t ge a}=dfrac{1}{2}mathbb{P}{M_t ge a},这个在直观上很容易理解,因为 B_t ge a 必然有 M_t ge a,而 M_t 第一次到达 a 之后,后续任何点大于或小于 a 的概率都是 1/2。 强反射原理 给定标准布朗运动 B_t,假设 s 是个停时,那么

begin{equation} B'_t= begin{cases} B_t & text{if } t le s 2B_s-B_t & text{if } t > s end{cases} end{equation}

仍是标准布朗运动。 这实际上就是「第一次到达 a 之后,后续任何点大于或小于 a 的概率都是 1/2」的严格表述。所以后者可以推出前者。

hugify replied to 阿里巴巴数学竞赛选错赛道了

感觉跟 Brownian motion 或者说 Wiener process 的 reflection principle 有关?

hugify replied to 用类型系统描述实数的精髓是什么?

找到了相关文章 Formalising Real Numbers in Homotopy Type Theory,让我来看一看。

hugify replied to 用类型系统描述实数的精髓是什么?

怎么用类型系统表述戴德金分割呢?

ice1000 replied to 用类型系统描述实数的精髓是什么?

我现在懂了,就是戴德金分割

ice1000 replied to 为什么不能对 C++ 的语法进行简化?

不成立。现在的语法也有这样的歧义