文章目录

GPIO

仰望星空,脚踏实地~

知识的组织

Blog 又很久没有更新了,几乎又要慢慢荒废了.其实这段时间还是学到了很多东西的,但是又不想写到博客,因为大多不是整体的想法.

怎样自学

自学是一项系统工程,必须把它当成一项工程去管理,才会得到期望的结果。任由兴趣激发的临时热情来掌控一切,是不能完成复杂的学习任务的。

HEXO 使用多说评论插件 有更新!

多说是一个社会化评论插件,以非常简单的方式实现登录、评论、评论转发等功能。

HEXO添加多说插件,需要在主题中修改两个地方:

取消HEXO博客根目录中的 _config.yml 中 disqus_shortname: ,暂时不用这个功能,直接永久开启多说评论。

怎样阅读网文

大量阅读

为了掌握全局的把控力,泛读是必须的。 阅读范围必须包含所有感兴趣的领域,以及影响深远的大事件。互联网时代,一切运转都是广泛联系的,目前看来毫无关系的两个东西将来或许就是新兴的交叉学科,所以阅读一切感兴趣的东西。

接触 Golang

Golang 也有多年了,docker都火起来了,当初决定选择第二语言的时候,由于考虑到:

  • Golang 并不排在编程语言的排行榜前十
  • 国内各大云平台并没有 golang 的支持
  • 编程库特别是高级应用库太小

并没有把 Golang 列入选择的列表,而是走了 Python 的路线. Python 入门确实挺容易,但是实际上看到高阶的部分也是挺麻烦的,目前也是陷入了一个瓶颈期.此时,又拿起了 Golang 的书.

WebQQ与网络操作系统

腾讯发布WebQQ新版本,创意无限、界面清新、布局合理,是又一款非常好的网络应用。本次升级较之前的WebQQ2.0有了很大的改变。现在看起来完全不像是WebQQ,更像WebOS。既基于腾 讯原来的软件优势,又打破常规思路,体现发展的大方针,布局云操作系统,虽然入局不是最早,但是很有潜力

一个简单的 servlet 容器

每一个 Servlet 程序都实现了

servlet 容器要做的工作: - 当要请求的 servlet 没有加载时加载它,然后调用一次 init 方法。 - 针对每个 request 请求,生成 Redquset 和 Response 对象。 - 调用该 servlet 的service 方法。 - 关闭时调用 destroy 方法,然后卸载类。

一个简单的 HTTP 服务器

按照 HTTP 协议

客户端发送: 方法 - URI - 协议/版本 请求头 请求内容

服务端返回: 协议/版本 - 状态码 - 状态描述 响应头 响应内容

可以通过

用 Java 编写一个死锁问题然后解开它

在这篇文章中,我将会写一段创建一个死锁情景的代码,然后再讨论解决这种情况下的解决方案。编写多线程程序的时候避免编写不正确的代码导致死锁总是一个挑战。

死锁就是这么一种情景,多于两个线程都各自占有着不同的资源锁,同时又都等在别的线程释放资源才能完成自己的工作,于是就产生了死锁。

GoAgent扶墙

实践表明,利用GoAgent翻墙是目前最稳定的一种免费翻墙方法。使用方法已经在网上转载泛滥了。

新的VPS 新的开始

逃离

逃离虚拟主机、逃离apache、逃离php、逃离WordPress,逃离熟悉的一切...

近来出现了许多以Github、DropBox、GoogleDriver、Evernote等为存储空间,以Markdown为书写格式的云博客。存储空间我不在乎,文章采用MarkDown的书写方式真是让人觉得回归本质啊~ WordPress也有Markdown插件,但是靠插件能解决问题么?完全不是一个味道啊。

用MarkDown书写博客的模式是定了,实现的方式可以有很多,但是都不甚满意。基于 Node.js 的Hexo 成为博客系统的最佳选择。

WordPress日志转Markdown还是有点麻烦的,试了GitHub上的wp2md,中途会中断,格式还是很乱。还有Farbox上的在线工具,格式还可以,只能分段转换。地址是:http://wp2md.farbox.com

别了Apache

Shell apt-get remove apache*

简单的本地服务器

WordPress虽说是一种简单的建博方案,但是由于插件众多,开发者良莠不齐等等原因,偶尔还是出现各种冲突错误。基于这种原因我们可以做一个本地的服务器。自己的电脑完全可以作为本地测试之用,但是难免影响平时的使用和娱乐,于是我们需要在虚拟机里安装一个系统作为服务器。

巨人的肩膀

之前一直用相对简单的单片机,写的是裸机程序,同时也是由于是学习阶段,所以固化了一种思想——所有东西都要自己做,所有东西都必须搞搞清除。现在更换到ARM9的平台上工作,工作模式变成了多人协作,维护一个不知道多少人维护了多少年的程序,瞬间就感觉不适应了,大的代码量一下子在都不知到从哪里看起。之前也有学习MFC的编程,层层API的结构和C++面向对象的思想,对编程风格影响深刻。其实不需要每个地方都看的,高度结构化的代码,只需要知道下层提供了什么,上层又需要什么,就可以了。适应新的思想之后,觉得以前需要不断查看寄存器手册来写的代码,简直就是浪费青春。或许我自己写的更高效更简洁,但是大多数时候是没有必要的。我要停止重新发明轮子的过程,更多的思考功能实现

基本排序算法-java 有更新!

排序算法是最基本的算法之一,是许多人开始学习算法的启蒙,对理解计算机软件编写有很好的帮助。大致可分为:插入排序、交换排序、选择排序和其他排序。

为了方便测试,先做了几个工具函数。

CGI-C++

用 C/C++ 通过 CGI 接口是可以用来做网页的,在Apache下已经实现过。现在换成 Nginx 只能用FastCGI接口,稍有区别。CGI接口下,每次访问会重新开一个进程,而FastCGI会把程序编程服务,永不退出,每次访问执行一遍,效率会好一些,怎么处理并发似乎比较麻烦,我还不懂。先尝试一下。

武装到链路层的加密通信方式

我把直接建立在物理层之上的一层协议叫做链路层。理论上不管你用的是什么通信协议和加密协议,在链路层看来都是0和1。根据物理层情况的不同,某些情形下链路层很容易直接暴露出来,比如说485通信方式。我只需要在485线路上搭上示波器就能情容易的观察到所有的数据。这种特性可能导致某些精心设计的加密协议毫无用武之地

BeagleBone Black 尝试

公司给买了Beaglebone Black的开发板,打算以后转移到Cortex-A8平台上来,让我先做一些准备工作。近来单板计算机是很火喽,但是拿到手还是很惊讶这么小的东西已经达到一般PC的能力了。

强转类型对象的方法依然使用自己的

面向对象的语言中,即使类型被转换,对象还是按照自己的真实类型调用方法。

C++ 类型定义: ```cc class Base{

public: virtual void say(void)=0; };

LINUX设备驱动程序入门

内核代码库

要想为linux 2.6.x 内核构造驱动模块,必须首先在自己的系统中配置并构造好内核树。跟之前的linux内核版本不同,先前的模块编写只需要有一套内核的头文件就够了,但是因为2.6内核的模块要和内核源代码树中的目标文件连接,通过这种方式可以得到一个更加健壮的模块装载器,但也需要这些目标文件存在于内核目录树中。

仿制 Jlink

根据小马哥提供的电路,仿制了一款Jlink,可以实现SWD协议方式的调试和下载程序。目前检测非常稳定,可以直接在线升级程序,可以在KEIL 4.60 以后的版本中正常使用。(部分老式盗版Jlink在KEIL 4.60 以后的版本中被识别为克隆版本,程序会自动关闭,需要手动修改SN码可以解决)