03 2017
16

用Canvas写的一个小动画
2017年03月16日

今日无大事,用canvas做了个动画,回顾一下以前的技能。

03 2017
2

如何在CentOS里安装Ubuntu
2017年03月02日

看到标题就会有人问为啥要干这种事,直接装Ubuntu系统不就好了。这件事是有背景的,一切要从公司的前端自动化测试项目想要从PhantomJS切换成Chrome说起。为何要用Chrome代替PhantomJS不是这里讨论的主题,但是要先澄清的是,我们所需要的Chrome不是普通的Chrome,而是能像PhantomJS一样运行在Linux服务器上的Chrome。

08 2016
23

PhantomJS在网页前端ui监控的应用
2016年08月23日

笔者前一段时间的一个工作重点是实现网页ui自动测试,目的是为QA提供又一个自动化工具,同时也是为了把监控线上产品的网页ui也纳入到监控当中。 为此,我们初步选择的方案是以PhantomJS为基础来完成这件事情。

08 2016
8

作为web前端面试官准备的一面题目
2016年08月08日

百度外卖web前端一面基础面试题目。

09 2015
17

在网页中实现区域全选
2015年09月17日

微信是现如今国内移动互联网最主要的一个传播平台,不管是做APP还是做网站都希望能通过微信传播。 而尤其是APP,最终目标还是要用户通过微信打开自己的APP,更希望用户在微信里打开的网页能够 与自己APP进行一定程度的关联。然而微信却并不喜欢用户离开,所以把各种跳转的路子都封锁了。 这时腾讯的死对头阿里巴巴却又找到了一个天才般的突破口,那就是利用剪贴版这个微信难以或者说 根本无法劫持的系统功能。如此淘口令、支付宝红包口令就诞生了。用户在微信里复制一个口令, 再打开支付宝、淘宝,就可以直接打开相应的页面使用相应的功能了。这种想法很天才也很有效, 但是在实际网页开发中会遇到一些问题。目前在手机浏览器里是无法做到直接操作剪贴版的, 所以只能让用户自己选择然后复制。但是选择又会遇到问题:怎么才能让用户直接选满整个口令, 而是只选择了一部分,导致用户还得调整选择区域?

09 2015
14

C语言malloc遭遇内存严重碎片化
2015年09月14日

前些时日要在安卓与iOS平台上实现一个类似GIF的动态图片格式的解析与生成。 为了不用写两份代码,而且感觉逻辑结构不复杂,果断选择使用C语言,连C++都不想用。 标准C语言依然是那么干净纯洁,虽然相比较于C++缺乏一些强大的特性,但是它结构简单, 只具备必要的特性,就像写Lua代码一样让人感觉一切都在掌握中,这种感觉很好。 然而美妙的世界很快就打破了,尽管我很谨慎又巧妙地对待指针,没有一丝的泄露, 但是最终我遭遇了malloc地狱,它由快变慢,直到最后在经过漫长的沉默后给我了NULL。

08 2015
10

Shell控制台输出颜色表
2015年08月10日

在Linux/Unix操作系统的控制台,通过特殊的输出格式可以改变输出文字的字体,彩色的输出非常有助于调试程序,区分日志输出的重要程度。 最基本的用法就是在控制台中用echo -e "\033[...m"的方式改变接下来的输出格式,...代表字体代码,可以改变文字颜色、背景色,已经突出程度。

07 2015
18

Linux系统奇怪的磁盘占用解决记录
2015年07月18日

近日我所维护的一台服务器运行出现了异常,翻开程序运行日志,初步发现问题是某个过程无法创建新临时文件。 再仔细阅读日志,看到了Java报出的Java.io.IOException; there is not enough space on the disk

05 2015
3

卡农吉他简单版谱
2015年05月03日

很喜欢这个曲子,收藏用来练习

04 2015
22

.gitignore更新后如何生效
2015年04月22日

GIT是个十分受欢迎的版本控制器,尤其适合项目当中有新手的情况,因为除了服务器以外, 每个人都有项目的完整历史,这就减少了因为项目管理员疏忽再加上新手的误操作导致灾难的发生。

01 2015
31

安卓应用嵌入浏览器
2015年01月31日

现如今的WEB技术,HTML+CSS+JS的功能性与灵活性极为迷人,而随着WEB的发展,很多手机应用也选择嵌入浏览器,用WEB技术实现UI。 为此,iOS提供了以Safari Mobile为核心的UIWebView,安卓也提供了WebKit核心WebView。 然而安卓的WebView在4.4系统版本以前都不是Chromium内核,功能少、性能差、还Bug重重。 然而做应用总不能只考虑最新的版本,总得考虑用户量最大的那部分。所以4.0~4.3的用户体验还是要顾及的。 然而WebView在老一点的系统版本上表现这么差,有什么办法呢?

12 2014
13

浅谈UI中的view复用
2014年12月13日

有比较丰富安卓开发经验的人都用过ListView、GridView等,iOS开发者也多用过类似的UI部件。 在使用这种东西的时候一定会接触到一个概念:复用。 这种模式有很显著的好处,但是好处到底在哪?如何真正的用对?

11 2014
20

FFmpeg实用命令
2014年11月20日

FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件。 别看这东西只有几十Mb,但却是个能格式转换、剪辑、播放几乎无所不能的命令行软件。 就如格式工厂,其核心也是FFmpeg。 在专业领域常被部署在服务端,用以做云端视频相关服务。 如七牛云存储就是利用FFmpeg来完成各种格式转换的。 其官方网址为:FFmpeg.org。 在那里可以下载到各种主流电脑平台的FFmpeg程序。

11 2014
15

你不知道的C++黑暗代码界
2014年11月15日

C++算是个老当益壮的编程语言,虽然老但是依然活跃于各种类型的项目,在很多场合下甚至是唯一的选择。 然而相比于新生代的编程语言,C++的语法之糟糕真的是臭名昭之, 有时候会发现奇特的语法居然能用,有时候花几个小时最后才发现看起来没啥问题的代码是错的。 下面来看看我都收集到了些啥,说不定就有你不知道的东西:

11 2014
15

LZ4超快压缩算法
2014年11月15日

现如今压缩算法多如牛毛,因为数据压缩在很多场合都扮演非常重要的角色。 不同的压缩算法都有不同的侧重点,于是也就会有最适合的场合。 前不久接触到一种让我使用起来不禁惊呼实在太快了的压缩算法:LZ4。

11 2014
10

TinyJS解释器使用感想
2014年11月10日

虽然我曾经是个C++党,坚定的Java排斥者,但是在之前的工作当中,Java是仅次于PHP我最常用的语言。 然而现在手头上的工作是需要做一个运行于手机上,支持iOS与Android的渲染器,能同时支持两个平台的语言,也就C/C++了。 说实的,用了这么久更新的语言,再回头用C++,也觉得这个语言也确实挺难用的。 为了能够降低开发复杂度,一部分性能不太重要的逻辑部件决定使用JavaScript开发。 这就需要集成一个JavaScript解释器。

11 2014
9

老同学说中国联通现在很不景气
2014年11月09日

今日赴约参加高中同学,也是高中最好的朋友的生日聚会,人不多,还是当初常在一起混的那几位。 我送了他一把尤克里里,很惊讶地发现他已经能熟练弹奏了。 他高中的时候就开始弹吉他,我也是在他的影响之下才接触吉他的,没想到他也早就开始接触尤克里里了。 我们已经3年多没见面,发现大家都变了很多,4个人里面有两个即将出国,一个澳大利亚,一个美国。

11 2014
8

关于这个博客
2014年11月08日

以前也开过博客,想要留下自己的学习足迹,但是都是一时兴起无疾而终。主要也是因为自己不够成熟。 现在毕业了,也出来工作了一段时间,总归也觉得自己勉强算得上是个技术牛人,就想这次真的开始经营一个个人门户。 这也是听从好友的建议,让更多人认识我,为自己日后留点后路。 这个博客也不再会像以前那样有各种花里胡哨的功能,就是个讲求以内容为主的博客。 为了坚定决心,我也终于买下了 davidaq.com 域名,以后这里就是我在互联网上的家,之前写的一些有用的东西也会陆续移过来。

04 2014
26

用整数运算替代浮点运算
2014年04月26日

我们做软件,尤其是编写计算密度低的程序,通常无需最优化运算效率,一般觉得差不多即可。 然而有的软件需求对运算速度非常重视,比如游戏、大量数据计算、批量媒体文件处理等,在一些处理能力较差的设备上也需要特别注意优化运算效率。 如果不考虑运算效率,游戏没什么惊艳特效也会卡,批量计算持续几天都算不完。 通常来说,改进算法的时间复杂度是对效率提升最为显著的办法,但如果遇到算法已经很难优化的时候,想要进一步提高效率就要在一些细节上下工夫了。 比如能用为运算的时候,绝不用乘法或除法,还有就是,尽可能用整数运算而不用浮点运算。

04 2014
26

Milton WebDAV框架
2014年04月26日

WebDAV是个不错的用于文件分享的协议,相比传统FTP有很多优势,详细介绍参考百度百科“WebDAV”

我在想……

没有搞不出来的技术,只有不用心的人