校招的本质是什么呢?

Colliot12/16/2017, 11:33:10 PM

比如我看这个热乎乎的阿里校招前端面经,感觉挺难的。 这俩问题我倒是都遇到过。貌似也是类似的方法处理的……其实第二个,express 可以设置一个 server.enable('trust proxy');,就可以直接通过 req.ip 获取了。滚动条那个我确实是用 redux 做的,当时是 Catch*Airbnb 这个项目。 这个对我来说有点难,一直没有深入去思考这些问题。不过在做了很多 Codewars 之后(比如这题) Object.defineProperty 用的倒是很熟…… 不懂啊,我一直不太在意这个。不过我会用一些分析工具去看是不是依赖了不必要的东西。以前用的是 webpack-bundle-analyzer,这个项目用的 angular-cli,不太好(其实可以)侵入式改 webpack 配置,经过这个 issue 引荐我知道了 source-map-explorer。这个网站本身就是用这个优化的,优化掉了许多误加入的依赖,以及 moment.js 不必要的 locale。 这没啥可说的 React 虽然写过,性能优化倒不是很熟……可能多用 dumb component?Immutable.js 倒是不难,持久化就是改变引用嘛,Codewars 上很多类似的题,比如 Functional Binary Trees(这题测试挺严的,没记错的话) 一直在用 redux,无论是和 react 还是 angular。其实无论是 redux-promise 还是 redux-thunk,我觉得都是被最开始 flux 架构的 action creator 模式误导了的,根本就不应该有 action creator 这种东西,而是应该把 action creation 也当作一种 action。据 @zuozijian 说,他受到 Elm 的影响,一开始就是这么做的,在 reducer 里面处理异步逻辑。现在 redux-observable 也是这种思想。 ES8 就是 ES2017 么……其实我不知道它具体有啥新功能,因为一直用的是 TypeScript。哦,想起来有个 polyfill 貌似是 ES2017 的,async generator 好象是。getOwnPropertyDescriptor 这也是 ES2017 的吗?不可能吧。后面的不想说了。 没啥可说的。不过我突然感觉我是不是对 Observable 的 race 有一定误解了,怎么感觉跟 zip 差不多了…… 可能是基于 :active 这样的选择器? 不知道,不用 Apache 没啥可说的。跟 Linux 有一定关系。 不懂。没深入研究过。看来还是要深入理解 node.js,不过没有契机啊……研究了有什么用呢? 不懂,感觉没啥意义。express 真的不能深层捕捉错误吗?这是为什么呢?有什么理论基础吗? 常识 不太懂细节 完全不懂 BFC,我只用 flex 不太熟习……仅仅是知道而已,不知道浏览器的具体策略是什么。 所以说,校招到底考察的是什么内容呢?它要寻求什么样的人才呢?是具有丰富工程经验、并且理论基础扎实的吗?(怎么感觉是谁都要的人才……)

keyboard_arrow_down
你们对王垠的 40 行代码有啥看法?

Colliot12/17/2017, 2:18:09 AM

你们懂它在做啥吗?我目前不是很懂 ;; A simple CPS transformer which does proper tail-call and does not ; duplicate contexts for if-expressions.

; author: Yin Wang ([email protected])

load "pmatch.scm")

define cps (lambda (exp) (letrec ([trivial? (lambda (x) (memq x '(zero? add1 sub1)))] [id (lambda (v) v)] [ctx0 (lambda (v) (k ,v))] ; tail context [fv (let ([n -1]) (lambda () (set! n (+ 1 n)) (string->symbol (string-append "v" (number->string n)))))] [cps1 (lambda (exp ctx) (pmatch exp [,x (guard (not (pair? x))) (ctx x)] [(if ,test ,conseq ,alt) (cps1 test (lambda (t) (cond [(memq ctx (list ctx0 id))(if ,t ,(cps1 conseq ctx) ,(cps1 alt ctx))] [else (let ([u (fv)]) (let ([k (lambda (,u) ,(ctx u))]) (if ,t ,(cps1 conseq ctx0) ,(cps1 alt ctx0))))])))] [(lambda (,x) ,body) (ctx(lambda (,x k) ,(cps1 body ctx0)))] [(,op ,a ,b) (cps1 a (lambda (v1) (cps1 b (lambda (v2) (ctx (,op ,v1 ,v2))))))] [(,rator ,rand) (cps1 rator (lambda (r) (cps1 rand (lambda (d) (cond [(trivial? r) (ctx(,r ,d))] [(eq? ctx ctx0) (,r ,d k)] ; tail call [else (let ([u (fv)])(,r ,d (lambda (,u) ,(ctx u))))])))))]))]) (cps1 exp id))))

;; tests

; var cps 'x) cps '(lambda (x) x)) cps '(lambda (x) (x 1)))

; no lambda (will generate identity functions to return to the toplevel) cps '(if (f x) a b)) cps '(if x (f a) b))

; if stand-alone (tail) cps '(lambda (x) (if (f x) a b)))

; if inside if-test (non-tail) cps '(lambda (x) (if (if x (f a) b) c d)))

; both branches are trivial, should do some more optimizations cps '(lambda (x) (if (if x (zero? a) b) c d)))

; if inside if-branch (tail) cps '(lambda (x) (if t (if x (f a) b) c)))

; if inside if-branch, but again inside another if-test (non-tail) cps '(lambda (x) (if (if t (if x (f a) b) c) e w)))

; if as operand (non-tail) cps '(lambda (x) (h (if x (f a) b))))

; if as operator (non-tail) cps '(lambda (x) ((if x (f g) h) c)))

; why we need more than two names cps '(((f a) (g b)) ((f c) (g d))))

; factorial define fact-cps (cps '(lambda (n) ((lambda (fact) ((fact fact) n)) (lambda (fact) (lambda (n) (if (zero? n) 1 (* n ((fact fact) (sub1 n))))))))))

; print out CPSed function pretty-print fact-cps) ; => ; '(lambda (n k) ; ((lambda (fact k) (fact fact (lambda (v0) (v0 n k)))) ; (lambda (fact k) ; (k ; (lambda (n k) ; (if (zero? n) ; (k 1) ; (fact ; fact ; (lambda (v1) (v1 (sub1 n) (lambda (v2) (k (* n v2)))))))))) ; k))

(eval fact-cps) 5 (lambda (v) v)) ; => 120

keyboard_arrow_down
MathJax 预览去掉闪烁有方法吗?

Colliot12/17/2017, 12:11:02 AM

在这里 Remove MathJax Flicker in JSXGraph - processed using Mathjax 看过一个声称可以的,不过我还没试……

keyboard_arrow_down
这个无穷乘积的结果是多少?

Colliot12/16/2017, 9:04:23 PM

\prod_{n=1}^{\infty}\left(1+\dfrac{1}{n^2}\right)

keyboard_arrow_down
LaTeX 有哪些可以改进的地方?

Colliot12/16/2017, 10:14:40 PM

我感觉我可能先要写一个 PS 渲染器才能理解这个问题。

keyboard_arrow_down
为什么 HSTS 能解决 DNS 投毒的问题?

Colliot12/16/2017, 10:23:36 PM

关于如何临时解决Steam客户端无法访问社区的问题这里面提到了对 steam 开启 HSTS……难道它能把 DNS 请求也强制成加密的?

keyboard_arrow_down
如何从零开始学习算法竞赛?

Colliot12/16/2017, 9:55:37 PM

@zjuwyd

keyboard_arrow_down
机器学习的本质是什么?

Colliot12/16/2017, 9:53:00 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++ 的语法进行简化?

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