svg 学习

最近在学习 svg,写了一些 demo,记在这里,还挺有意思的。

以一张 svg 开头:

zengxiaoluan.com

标签 text 、tspan

示例中的图形是一个正弦函数,公式如下:

$y = asin(bx + c)$

公式中的 a、b、c 如何影响图形,我就不解释了,我先回去翻一下高中课本。

See the Pen svg-text/tspan by zeng (@zengxiaoluan) on CodePen.

继续阅读“svg 学习”

generator 和异步回调

在我们日常的前端开发中,异步回调是不可避免的操作,会严重影响我们的编程体验和代码的维护性、阅读性,而 promise 和 generator 可以在一定程度上解决这个问题。它们没有那么神奇,只是代码上的一些小花招,现在我们具体来看看 generator 是如何解决异步回调的问题。

继续阅读“generator 和异步回调”

一些排序算法

记得有一个明星程序员说,做一个 web developer 是不用学习数学的。那么自然也不用学习算法了。作为一个前端,在实际工作中确实很少实现什么排序算法,因为在 JavaScript 的语言层面,就已经实现 sort 函数了。但是学习这些排序算法,依然有助于我们理解这些语言相关内置函数的原理。 继续阅读“一些排序算法”

贪心算法 – JavaScript 描述

理解贪心算法的本质并不难,我们都很贪心。比如说,桌子上有 5 张人民币,面额分别是 100、50、20、10、5,但是按照要求我们只能选 3 张,那这 3 张怎么选呢?傻子都知道,我们肯定选面额大的。这就是贪心算法,每一步都是当下选择的最优解。

下面我们来看一些具体的问题。

继续阅读“贪心算法 – JavaScript 描述”

动态规划(Dynamic programming)— JavaScript 描述

《数据结构与算法 JavaScript 描述》这本书错误好多,为什么译者不把这些错误纠正呢?

在工作中,我们都用过递归,用俗话说就是函数自己调用自己;而动态规划一般被认为是和递归相反的一种解决问题的思路:递归是从解决一个大问题开始,通过逐步解决一些小问题,来使最终的问题得到解决;动态规划的思路则恰恰相反。 继续阅读“动态规划(Dynamic programming)— JavaScript 描述”

阿笠博士的兔子

这是公司 ctf 活动分值最高的一个题目,是这样说的:

柯南立刻想起阿笠博士培养出一对繁殖能力超强的兔子(雌雄),这种兔子嗅觉特别好,能快速找到丢失的镇馆之宝,这种兔子出生后一个月就会成年,成年的兔子再过一个月会生一对(雌雄)兔子,并且之后的每个月都会生一对兔子,兔子不会死亡,由于这种兔子一生只有一个伴侣,当兔子数量(对)越多对找回的镇馆之宝帮助最大,阿笠博士想知道当兔子数量(对)第11次出现素数之后过再128个月有多少对兔子,机智你能帮阿笠博士算出来吗?

当时应该没有人做出来,仔细分析一下,就是一个斐波那契数列加素数的判断,本身并不难。即便如此,我今晚也花了近三个小时在调试下面几行 js 代码。惭愧、惭愧,实在为自己的数学能力堪忧,还说要去考研······ 继续阅读“阿笠博士的兔子”

博物馆镇馆之宝丢失之谜

今年公司 ctf 活动的题目,有兴趣的可以来做一做,看你能拿到多少分。我们 helloworld 队,两个小时只拿到了 160 分,😭。

哈哈,标题看起来是个小说,实际上是公司这次的 ctf 活动的主题,公司的小伙伴把题目公布到了外网,大家有兴趣可以来做做。 继续阅读“博物馆镇馆之宝丢失之谜”

crontab 相关

因为网站的 HTTPS 证书需要使用定时任务去更新,否则三个月后会过期,所以耐心的学习了一下 crontab 。有学到新的内容再在这里更新。

 

查看当前目录下文件的大小

 

参考链接

https://www.imooc.com/video/17413(这个视频非常值得一看)

怎么快速的给月份、日期前面补“0”

今天同事在群里分享了一种在月份、日期前面补0的方式,迅速有人在后面又介绍了其它方法,我就偷偷地记录下来,剽窃了他们的知识,深为得意。 继续阅读“怎么快速的给月份、日期前面补“0””

刷票入门

这篇文章真的有很多人看吗?帮忙留言一下。

在微信有很多的投票活动,一般这种投票活动都是可以靠“刷”增量的,而且你可以看到那些票数高到离谱但是并不好玩的投票活动,里面肯定是掺杂着刷票行为的,对于技术大神可能轻易就能搞定(12306他们都能搞定),对我这种小菜鸟还是花了不少时间问了不少人才有一点眉目的。 继续阅读“刷票入门”

Marquee Jquery Plugin

最近要做一个跑马灯效果,踩了不少的坑,想写出来,但是没有代码又无从说起。所以程序员跟人聊天的基础是代码,而诗人、音乐家、作家的产物都是大众化的,受众更多,更容易被大众欣赏接纳。

而程序员踩的坑过多往往会暴露自己的实力不足,实在不是好事。 继续阅读“Marquee Jquery Plugin”

第七章—分支

如果你想给你的项目创建多个版本怎么办呢,虽然创建多个版本的原因可能是因为你的项目突然产生了一个非常严重的bug、你参加的开源项目不能满足你的意愿、甚至你就想留一些早期的代码作为后期的怀念。

使用git里面的branch概念就可以做到这一点。 最重要的一点是,你在开发一个非常牛逼的项目。

但是一个牛逼的程序员是不能满足现有的牛逼的,所以开一个2.0分支去远征,让稳定的1.0版本继续使用。所以怎么能不去使用分支!

我们经常使用git pull origin master命令,作为新手可能没有去想这个master是什么意思,其实master就是主分支的意思,这就导致了你不能再创建一个叫master的分支除非你删除主分支。同时,这个命令也可以使用git pull 命令来替代,因为会默认获取master分支的代码。 程序员一定要懒,只有懒才能写出更好的代码。

如果你对一个程序员说,你真是太勤奋了,我想这不是最好的赞词。 推荐的命名法则是使用层级式的,比如bug/pr-1023,这样的好处是,git像shell脚本一样支持通配符查找。你可以使用git show-branch ‘bug/*’找到和bug相关的分支。 创建分支 git branch branch_name命令可以创建一个分支,处在最新的commit。

这个命令的完整形式是git branch branch_name [starting-commit],这意味着你可以从过往的位置开创新的分支。