自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

靠谱-ing

微信公众号:闷骚的程序员

原创 林丹从国家队退役,带起一波回忆

昨天朋友圈和微博上有不少人在转发林丹从国家队退役的消息,有一点感慨的同时,我在想,以后新入坑的羽毛球迷们,可能渐渐就都不知道「超级丹」、「林李大战」,还有「四大天王」这些名词了吧。不过没...

2020-07-05 13:54:14 76

原创 更聪明地学习,而不是苦读——《如何高效学习》

我们可能都听过一句话:吾生也有涯,而知也无涯。以有涯随无涯,殆已!——《庄子. 内篇. 养生主第三》所以,需要持续大量学习的童鞋,比方说我等程序员们,除了要从知识的海洋中精挑细选出我们想要的内容,挑完了还得高效学习,不然成长的速度可能远远赶不上脱发的速度,沦落到「他变秃了,也没变强」的尴尬境地。更聪明地学习,而不是苦读——这是我打开 Kindle for Mac 后看到的第一句话,最近读的这本 《如何高效学习》 正是一本关于此话题的书。关于本书作者 Scott H. Young,这哥们是个神人

2020-05-17 15:27:20 411

原创 用 Vim 编辑 Markdown 时直接粘贴图片

我习惯使用 Vim 编辑 Markdown 文件,一直存在一个痛点就是粘贴图片很不方便。前后对比我以前常用的操作流程:复制图片/截图;在保存图片对话框里一层层点选保存路径,输入文件名保存;回到 Vim 里,手动输入引用图片的表达式。第 2 步和第 3 步是比较痛苦的,尤其是文件路径比较深的时候,可能要点选好几次。最近偶然发现的一个外国小伙写的插件 md-img-paste.vim...

2020-05-04 12:27:27 161

原创 用 jsDelivr 免费加速 GitHub Pages 的静态资源
原力计划

挺久以前就有网友给我的 GitHub Pages 博客模板提 Issue,说希望能增加 CDN 用于加速静态资源的加载,由于懒,一直没有动。最近偶尔要打开自己博客看下 Wiki 的时候,要等挺久,比较痛苦,碰巧昨天晚上看到这样一篇帖子:GitHub 图床的正确用法,通过 jsDelivr CDN 全球加速,感觉很适合我的需求场景,于是决定趁这几天休假将这个改造一下。先看效果以下改造前后的加载...

2020-05-02 16:15:55 536

原创 一份简明的 Base64 原理解析

书接上回,在记一个 Base64 有关的 Bug一文里,我们说到了 Base64 的编解码器有不同实现,交叉使用它们可能引发的问题等等。这一回,我们来对 Base64 这一常用编解码...

2020-03-08 12:40:51 61

原创 记一个 Base64 有关的 Bug

本文原计划写两部分内容,第一是记录最近遇到的与 Base64 有关的 Bug,第二是 Base64 编码的原理详解。结果写了一半发现,诶?不复杂的一个事儿怎么也要讲这么长?不利于阅读和理解啊(其实是今天有点懒想去休闲娱乐会儿),所以 Base64 编码的原理详解的部分将在下一篇带来,敬请关注。0x01 遇到的现象A 向 B 提供了一个接口,约定接口参数 Base64 编码后传递。但 A 对 ...

2020-03-01 18:08:56 517

原创 GitHub 用户专属福利,实际到账 3K+,Namebase Airdrop

我经常提醒自己的防骗第一准则:天上不会掉馅饼。冒着被人当骗子的风险,写这样一篇文章,是因为这次是真的领到了馅饼。不过这个馅饼不是随机掉落,是限定了条件定向投放的,满足条件的可以一试,不满足的就不用浪费时间了,可以推荐给身边的 GitHub 用户来碰碰运气。我的馅饼到账图:从开始操作到入账历时约一天,花了一两个小时在了解和操作上面。条件在 2019-02-04 那一周,你的 GitH...

2020-02-22 20:10:13 2132 4

原创 让 Tapd 的源码关联功能支持 Gitee 平台

目录背景求索方案方案示意图操作步骤小插曲参考Tapd 是腾讯提供的越来越完善的项目管理工具,Gitee 是国内相对比较稳的代码托管平台。本文记录了让 Tapd 的源码关联功能支持 Gitee 平台的方法,及摸索过程中遇到的问题的解决步骤。背景想要使用 Tapd + Gitee 的组合来管理业余项目,但 Tapd 目前官方支持的代码托管平台只有 Gitlab、GitHub 和腾讯工蜂,并不能直...

2019-09-20 09:26:36 377

原创 Java 常用对象转换之 Stream 流

平时的开发中会经常遇到一些对象需要转换,创建了一个项目记录一些常见对象转换的方法,例如:文件转换、日期时间转换、stream 流转换、集合对象转换等,具体的示例代码见 GitHub 项目...

2019-07-28 13:13:44 64

原创 记一个折磨了我一天半的 Bug

最近开始学习后台开发,虽然与我以前从事的 Android 开发一样都是使用 Java 语言,但是技术栈完全不同,有太多的必备的「新」概念要去学习,而在对它们,以及别人写的代码有充分的了解之前,就可能会遇上这种一杯茶,一根烟,一个 Bug 一天根本改不完的情况。最近遇见的这个 Bug 是在修改项目遗留的问题时偶然发现的,简而言之就是这样:服务 A 在从外界接收到推送的一条数据后,将数据插入到库里...

2019-05-25 22:46:20 198

原创 一份简明的 Markdown 笔记与教程

原始链接:https://github.com/mzlogin/markdown-intro 个人使用 Markdown 的经验持续更新中,欢迎关注。自从 2014 年左右接触到 Markdown 以来,对它的使用就一发而不可收拾。从最开始使用它在 GitHub Pages 里写博客,到用它编辑项目的 README 文件,再到撰写开发文档,编辑微信公众号文章和邮件内容等等,这...

2018-09-08 15:58:08 8290 1

原创 Android 源码分析 —— Handler、Looper 和 MessageQueue

本系列文章在 https://github.com/mzlogin/rtfsc-android 持(jing)续(chang)更(duan)新(geng)中,欢迎有兴趣的童鞋们关注。 本篇原始链接:https://github.com/mzlogin/rtfsc-android/blob/master/0x004-handler-looper-messagequeue.md书接上...

2018-06-11 22:02:52 153 1

原创 光谷社区第三方 Android 客户端 v2.0 发布

我最完整的业余作品 光谷社区第三方 Android 客户端 (虽然也还不是很完善)今天发布了重大更新,版本号由 v1.3 更新到 v2.0,欢迎所有身在...

2018-04-30 22:08:06 58

原创 解决两个 Android 模拟器之间无法网络通信的问题

本文解决的是一个小众场景的问题:出差在外,需要调试局域网内的两台 Android 设备之间通过 TCP 通信的情况,可手边又不是随时有多台可用的设备,于是想在笔记本上同时跑两台 Android 模拟器来构造调试环境,但是发现它俩的 IP 地址竟然都是 10.0.2.15,场面一度十分尴尬……谷狗之后,众多相关的博客和问答贴将我引向了官方文档页面:Interconnecting emulator in

2017-12-03 17:10:10 2517

原创 Android 源码分析 —— 从 Toast 出发

本系列文章在 https://github.com/mzlogin/rtfsc-android 持续更新中,欢迎有兴趣的童鞋们关注。 本篇原始链接:https://github.com/mzlogin/rtfsc-android/blob/master/0x003-start-from-toast.md(图 from Android Developers)Toast 是 Android 开发

2017-11-20 11:32:45 1013

原创 阅读源码的意义与方法

此系列文章在 https://github.com/mzlogin/rtfsc-android 集中更新发布,欢迎感兴趣的童鞋们关注。 本篇原始链接 https://github.com/mzlogin/rtfsc-android/blob/master/0x002-methods-and-meaning.md思索了这两个问题良久,也去知乎找了一些相关话题的问答,但并没有标准答案。所以,

2017-11-17 08:13:12 667

原创 Android 源码分析——阅读源码工具选用

此系列文章在 https://github.com/mzlogin/rtfsc-android 集中更新发布,欢迎感兴趣的童鞋们关注。本篇原始链接:https://github.com/mzlogin/rtfsc-android/blob/master/0x001-tools.md之前我写过一篇 搭建大型源码阅读环境——使用 OpenGrok,给大家介绍了一款开源的源码阅读工具的安装方法,实际到目前

2017-11-16 13:53:13 9132 3

原创 Android 源码分析开篇

Android 源码分析系列文章开篇

2017-11-13 08:28:03 353

原创 程序员节的过节姿势大全

今天是 10 月 24 日,不知道你的朋友圈有没有被程序员节刷屏,反正我的是被刷了。看到 1024 这个数字,相信很多人都怀着特别的感情,比如我,游泳不...

2017-10-24 22:50:20 60

原创 为 Markdown 生成 TOC 的 Vim 插件

因为饱受 GFM 和 Redcarpet 两种 Markdown 引擎生成 TOC 链接的差异的折磨,而我又不得不同时使用它们——博客基于 Jekyll 使用 Redcarpet(Update 2016/09/16: GitHub Pages 现在已经改为只支持 kramdown),而其它放在 GitHub 仓库里的文档使用 GFM,我决定为我常用的 Markdown 编辑器 Vim 做一款同时支持

2016-09-16 09:45:10 1853

原创 Awesome Adb——一份超全超详细的 ADB 用法大全

ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。持续更新中,欢迎补充指正,觉得有用的可以将 此 GitHub 仓库 Star 收藏备用。注:有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。

2016-08-26 19:01:58 3427

原创 C++中的#,##,和"

想要灵活应用宏,离不开#和##。"在学习#和##之前,先来看一个关于"的例子:#include #include int main(){ const char* p1 = "Hello," "World!"; // 一个空格 const char* p2 = "Hello," "World!"; // 多个空格 const c

2014-11-09 22:47:59 10017 1

原创 Windows API中的坑

ExpandEnvironmentStrings风险:进程会继承其父进程的环境变量,在展开如%APPDATA%等目录时,有可能父进程对此环境变量进行过修改,那么可能你获取的就不是你想要的当前SESSION的%APPDATA%了。建议:使用SHGetFolderPath系列函数来做这件事。GetModuleFileName风险:在DLL中调用时,若传入的ins

2014-05-31 02:02:53 2832

原创 EXCEL常用操作(常用操作自维护)

自己经常使用的EXCEL操作,保持维护更新,用于备忘速查。

2014-04-19 22:30:35 1196

原创 VIM常用操作(常用操作自维护)

自己经常使用的VIM操作,保持维护更新,用于备忘速查。

2014-04-17 12:16:29 1298

原创 《Head First设计模式》学习笔记3

如下内容是学习HFDP第三部分《装饰者模式》所得,主要就是一些原文摘抄和少量自己的总结。装饰者模式定义:装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。OO原则:1.对扩展开放,对修改关闭。书中示例的C++实现版源码:这个Solution的DecoratorPattern工程里。书中示例的类图:

2014-02-13 20:14:28 723

原创 《Head First设计模式》学习笔记2

如下内容是学习HFDP第二部分《观察者模式》所得,主要就是一些原文的摘抄和少量自己的总结。观察者模式定义:观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。OO原则:为交互对象之间的松耦合设计而努力。吐槽:作者直接使用Java标准库里的Observer和Observable等东东来讲,虽然

2013-12-08 23:26:29 1016

原创 《Head First设计模式》学习笔记1

如下内容是学习HFDP第一部分《设计模式入门》所得,主要就是一些原文的摘抄和少量自己的总结。OO原则是我们的目标,设计模式是我们的做法。OO原则:封装变化。多用组合,少用继承。针对接口编程,不针对实现编程。在这一部分,书中通过讲解对一个简单SimUDuck根据新需求的重新设计,不断优化过程中,顺理成章地将策略模式讲解清楚了,策略模式“严肃”定义:策略模式

2013-11-23 16:52:04 1467

原创 Win7不按Shift,直接右键显示“在此处打开命令窗口(W)”

图上的这条右键命令一般在Win7下是需要Shift + 右键在弹出菜单里才能看到的,怎么省掉这个Shift,直接就能出来呢?一、普通文件夹右键:将注册表HKEY_CLASSES_ROOT\Directory\Background\shell\cmd下的键Extended改名或者删除二、磁盘分区右键:将注册表HKEY_CLASSES_ROOT\Drive\shell\cmd下的键Ex

2013-10-28 14:32:26 6837 1

原创 有static变量的namespace被多个cpp包含

有如下三个文件header.hheader.h12345678#pragma oncenamespace NS1{ static int var = 10;}void print_var();src.cppsrc.cpp1234567#in

2013-10-26 02:23:40 1459

原创 文件被多个中间文件输出目录相同的工程包含

case:  两个工程Proj1和Proj2,同时包含demo.cpp,其中Proj1在工程配置里预定义宏MACRO_PROJ1,Proj2在工程配置里预定义宏MACRO_PROJ2,两个工程的中间文件输出目录为同一个,文件demo.cpp内容如下:#include int main(){#ifdef MACRO_PROJ1 printf("output by pr

2013-06-22 14:00:37 1230

原创 可执行文件名中包含install或setup

问题描述: 在Windows Vista+系统下,若EXE文件名中包含有’install’、’setup’等字样,可能出现如下问题:1. 每次软件运行完退出后会弹出”程序兼容性助手”(Program Compatibility Assistant, 简称PCA),提示软件未正确安装。2. 在Vista+的操作系统下任务栏右键该程序缺少”将此程序锁定到任务栏”和软件名同名项。分析

2013-05-19 01:19:40 2507

原创 Windows界面相关小知识点

Q:禁止Win7下窗口被拖到顶部时自动飘到左上角A:去掉窗口的WS_THICKFRAME风格Q:将最小化或者不是在最前面的窗口激活到前面A:SwitchToThisWindowQ:禁止双击标题栏最大化窗口A:屏蔽WM_NCLBUTTONDBLCLK消息Q:禁止XP下右键任务栏的“最大化”菜单项A:去掉窗口的WS_MAXIMIZEBOX风格

2013-04-18 10:40:55 887

原创 为基于xulrunner的内嵌Gecko程序启用Profile

Mozilla自带的Profile支持实际上是非常给力的,看看%appdata%/Mozilla/Firefox下的文件就能知道,这里存放着许多的信息,它们提供了很多东西,例如:1.可以通过Profiles/…default/chrome下的userchrome.css文件来定制自己的firefox外观,比如用#appmenu-button { display:none !important;

2012-06-19 22:45:52 3021 1

原创 win7 搜索文件内容

控制面板-->索引选项-->高级-->文件类型-->找到你想要搜索内容的文件后缀名,点中它,然后选中下面的”为属性和文件内容添加索引“。over。win7相对于xp,这个功能确实难用之极。

2012-06-17 10:28:04 1798

原创 《Python核心编程》中文第二版课后练习3.8答案

3-1 变量在第一次被赋值时自动声明。在赋值时解释器会根据语法和右侧的操作数来决定新对象的类型。3-2 函数总是返回一个值,显式return的值或者None。返回的值的类型也是动态确定。3-3 因为变量名__xxx__对Python来说有特殊含义,对于普通的变量应当避免这种命名风格。3-4 可以,使用";"3-5 可以,使用"\"或者括号3-6 (a)x

2012-04-08 11:01:04 2654

原创 《Python核心编程》中文第二版课后练习2.21答案

2-2(a)计算1 + 2 * 4(b)无输出(c)一样。无输出语句。(d)单独执行无输出,在交互解释器里执行输出结果。(e)print 1 + 2 * 42-4(a)str = raw_input('input a str:')print str(b)str = raw_input('input a int:')print int(str)

2012-04-05 23:00:54 4407

原创 VBA小知识点

创建一个EXCEL工作簿对象:Set wd = CreateObject("excel.application")Set MyWorkBook = wd.Workbooks.Open(".XXXX.xls")用完后wd.Quit设置边框与自动筛选:Set Rng = MyWorkSheet.UsedRangeWith Rng .Borders.LineStyle = xlCo

2012-03-22 23:20:09 1030

原创 对firefox和内嵌Gecko程序的插件(plugins)的注册搜索方式的一点认识

昨日在JumuFENG同学建的firefox交流群(81424441)里与群友们说起插件相关的一些东西,自己在本地测试了一下,然后推论出一些粗浅认识总结如下: (欢迎有兴趣和正在进行mozilla相关的一些开发的朋友加群交流)一般来讲,对于firefox和其它内嵌Gecko内核的应用程序来讲,其插件的注册和搜索的机制应该与如下内容有关(windows下):  (1)程序会优先考虑可执行

2012-03-15 00:06:32 2987 3

原创 2012

按月做计划,月底自审之。年度总述:1.技术类书籍最少吃掉6本2.思维导图系列图书3.学习一门脚本语言,拟Javascript或Python4.苦练COM/ATL/WTL/STL5.深入理解Windows系统6.掌握分析大型源码的方法  三月1.精研《COM技术内幕》2.读完《你的灯还亮着吗》3.学习设计模式前五种--2012.3.6列

2012-03-06 23:12:42 796

提示
确定要删除当前文章?
取消 删除