并查集与渗漏问题

前两周的时候看到有人推荐https://www.coursera.org/learn/algorithms-part1/的算法课,正好基础也忘得差不多了,觉得也是应该复(yu)习(xi)一下了,普林斯顿的这个公开课确实不错。

好了,废话不多说,来总结一下第一周,说说并查集和渗漏问题吧。

数据结构介绍

并查集是一个处理连接问题的数据结构,可以用这个结构快速的找到两个元素是否属于同一集合(或者说连通),和图的连通算法不同的是它忽略了路径的概念,只需要结果。

- 阅读剩余部分 -

CSS 解决 Chrome 限制最小12px字号问题

在 PC 上,有的时候我们并不需要 Chrome 给我们限定 12px 的最小字号,可是我们也不可能强行要求用户人工设置一波(当年 CodeCademy 的 Bug 就是因为最小字号的问题),所以必须想办法。

旧版 Chrome 可以通过:-webkit-text-size-adjust:none来设置,但其实是利用了一个微小的 Bug,在新版已经修复了,此外,这种方法会导致全局的缩放失效,不够友好。

在新版中,可以用 scale 解决缩放的问题,但如果是:-webkit-transform: scale(0.75);,Safari 也在缩放范围内,有两个方法解决:

第一是所有的浏览器统一的使用缩放,在 12px 的基础上操作。

- 阅读剩余部分 -

CentOS + Nginx Typecho 迁移指南

最近干了一件特别勤劳的事情——把博客迁移到阿里云服务器,不过期间也出了一点有趣的小插曲。

关于 CentOS 里安装 PHP,这篇已经写过很多次了:http://codesky.me/archives/centos-lnmp-yum.wind

然后只需要绑定好域名,可以看这篇:http://codesky.me/archives/centos-ghost-install-introduce.wind,如果要有多个子域,直接复制黏贴一份进行对应修改就行了。

- 阅读剩余部分 -

HTML5 Drag & Drop 入门

以前在面试的时候正好做过一道拖动方块的题,那个时候没有用 HTML5 的 Drag & Drop 来做,其实用 Drag 来做的话会简单很多,不过当时写的文件现在估计早就找不到了,这次业务正好有这个需求,而且又不用考虑兼容性,理所当然的用起了这个。

Drag 的使用门槛还是相当低的,基本上只要知道什么时候触发什么事件就行了,因此这篇主要也像是过一遍 API。

用原生 JS 实现了以下效果:

- 阅读剩余部分 -

Hide Locked Problem In LeetCode Chrome插件 开发总结

在公司的黑客松放弃治疗之后,好久没有看我的 GitHub 了,于是更新了一下自己的其中一个万年大坑。

项目地址:https://github.com/csvwolf/hide-locked-problem-in-leetcode

这里推荐一下一个汉化版的开发手册:https://crxdoc-zh.appspot.com/extensions/

在上一版中简单的做了一个click触发的插件,不是我理想中的效果,于是研究了一下如何对页面加载做监听,甚至是监听指定的 DOM 载入。

- 阅读剩余部分 -

Try Laravel 5.3 + Vue2 with Element

I reposted an article to avoid high maintenance cost of the repo and as well, everyone can have a try, no more need to repy on cloing the repo.

First of all, the steps of how to install laravel is omitted, use laravel new blog directly.

If you are a Chinese mainland user, you can use the composer image: http://pkg.phpcomposer.com

If there is a Warning after new like( Hmmm, anyway, I met the problem everytime. OTZ )

- 阅读剩余部分 -

Laravel 5.3 + Vue2 + Element试水

重新开一篇文章来写,这样可以免于仓库个人维护成本比较高,以及大家可以自己尝试配一下,不必依赖克隆仓库等。

首先这里省略安装Laravel的步骤,直接laravel new blog

如果你是中国大陆用户,可以尝试这个composer镜像:http://pkg.phpcomposer.com

如果在new之后发生了Warning(嗯,反正我每次都遇到了OTZ)

- 阅读剩余部分 -

写一个爬虫:SuperAgent VS Selenium

以前研究模拟登录的时候用superagent搞过一点,权当教务处的API,这次准备用Selenium做全套,主要还是实验室一直在吹Selenium怎么怎么好用,解决了多少多少难题,实际上!并没有!

这篇文章默默的来分析一下一些遇到的问题以及为什么我得出了以上的结论。

- 阅读剩余部分 -

Selenium Cookie跨域详解

实际上也不能说是严格意义的跨域,因为我们的跨域只针对同源策略中的部分情况,也就是在host为不同子域的情况,这类问题其实是比较常见的,在大型网站中使用到的单点登录等技术的情况下,我们才会遇到诸如登录页面为login.codesy.me,而我的目标页面是admin.codesky.me。

那么此时如果我简单的设置Cookie,实际上设置的是login.codesky.me的Cookie,对于admin.codesky.me是不起作用的,而又不能直接通过Selenium去设置(因为本质上就是一个浏览器嘛)。

但是尽管不能设置在admin.codesky.me,我们可以把Cookie设置在.codesky.me中,这样会匹配到全部的子域。

- 阅读剩余部分 -