基础
文章平均质量分 67
dukelu0
https://dukeluo.me
展开
-
使用 git rebase 合并历史提交和修改记录 Commit Message
使用 Git 做版本控制,毋庸置疑非常方便,可随心所欲地修改代码。提交代码是开发人员每天都在做的事情,清爽的提交记录让人爽心悦目。在有的场景之下,开发会产生一些琐碎的提交记录,譬如调试 CI 工具的提交,零星修改 bug 的提交,这些提交记录理应属于一条记录,这种情况之下就可以通过 git rebase 合并历史提交。合并历史提交以前我常用 git commit --amend --no-edit 来合并提交记录,它会把最新的提交记录合并至上一条提交记录,适用的场景有限。在上图的场景中,提交历史包原创 2020-06-02 23:55:51 · 1517 阅读 · 0 评论 -
图片转化成字符画
效果先上效果图 实现不到50行代码,搞定一张图片转化成字符画! 这个功能的实现,主要依赖python的PIL库,进行图像处理,依靠argparse库,处理命令行参数,进行一些参数设定。 关键是将灰度映射至字符上。通过灰度公式,将RGB色转化成灰度,然后在映射至字符上,字符的顺序可自己调整。getpixel((x,y))拿到一个点的像素,通常返回(r,g,b),若是png格式图片,...原创 2018-05-13 22:52:27 · 5435 阅读 · 0 评论 -
剖析链表,链表常用操作集合
在读SICP的时候,我就接触了里面的基本数据结构序对(Pairs),那时还没有学习数据结构,没想到就是链表。链表是一种递归的数据结构,Scheme是一种函数式编程语言,Scheme程序随处可见递归,用它来做基本的数据结构再合适不过了。本文介绍的链表操作多数来源于LeetCode上链表专题上的算法题。原创 2018-05-08 09:59:06 · 211 阅读 · 0 评论 -
C语言实现贪吃蛇步骤实述
实述贪吃蛇实现过程,点明注意细节原创 2018-05-08 10:12:40 · 1661 阅读 · 0 评论 -
DOM中事件处理程序的第一个参数?
我们知道,在触发DOM上的某个事件时,会产生一个事件对象,其中包含与事件相关的所有信息。JS高程中有这样一句话,兼容DOM的浏览器会将一个事件对象传入到事件处理程序中,无论指定事件处理程序时使用什么方法,DOM0级或是DOM2级别,都会传入事件对象。 事件处理程序有参数时直觉上还好理解,但是事件处理程序要是一个参数都没有指定,事件对象真的会传入事件处理程序吗? 以一个按钮<in...原创 2018-06-21 11:40:36 · 494 阅读 · 0 评论 -
一道Leetcode题引起的思考:Segmentation fault是什么?
在Leetcode上刷题时,刷到题目Valid Anagram,给定两个字符串s和t,编写一个函数来确定t是否是s的一个anagram,谷歌翻译对anagram的解释是通过重新排列另一个单词的字母顺序而组成的一个新单词,比如cinema是iceman的anagram。本质就是判断s和t是否有一样的字母组成。什么是Segmentation fault我看到这个题目的第一印象就是对字符...原创 2018-06-15 22:25:54 · 612 阅读 · 0 评论 -
CSS学习(二):背景图片如何定位?
我们都知道background-position属性用来指定背景图片应该出现的位置,可以使用关键字、绝对值和相对值进行指定。在CSS Sprites中,这个属性使用比较频繁,使用过程中,我常混淆,经常切不到自己想要的效果,于是决定好好理解其工作机制,这篇文章就是介绍background-position属性是如何指定背景图片和背景区域的位置关系。 注意:CSDN对CodePen嵌入支持度...原创 2018-07-11 10:29:34 · 2197 阅读 · 0 评论 -
深入理解JavaScirpt的函数调用和"this"
过去很多年里,我看到过太多关于JavaScript函数调用的混淆。尤其是,很多人抱怨函数调用中this的语义令人困惑。 在我看来,通过理解核心函数调用原语,然后将其他所有调用函数的方法视为在原语之上的语法糖,如此便可澄清很多这类疑惑。事实上,这正是ECMAScript规范对此的看法。在某些方面,这篇文章是规范的简化,但基本思路是一样的。核心原语首先,我们先看一下函数调用的核心原语...翻译 2018-07-31 14:40:34 · 287 阅读 · 0 评论