自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 资源 (7)
  • 收藏
  • 关注

原创 Haskell编程思想之五:世界的本质可能是函数

有个人为了维护Haskell,说宇宙何来状态?像C语言等过程式编程才是错的!没有状态,也没有所谓的“过程”,奇点爆炸之后,然后最后归于奇点,整个过程就是一个函数。以通常的过程来讲,那就是说,以时间为基准的“过程”本身是不存在的。那时间也就只是这个函数的一维输入,g = f(t)。也就是相对论说的四维。然后我想了想,其实也是,人类对世界的认识,其实是一个从“过程”到“函数”的提升过程,人的直觉以...

2019-06-07 22:39:58 852

原创 状态机(FSM)和语言解释器(DSL)

一、状态机实现下载了几个状态机的实现的代码,基本分下面几个逻辑:直接逻辑判断,使用IF ELSE,或者 SWITCH。 使用查表法,写上状态机的各状态,对应条件下,ACTION,同时转移的下一个状态,而查表法,也可以分两种:一是一个完整表,每次都遍历,直到找到对应的条项,然后进行切换。二是使用二维数组,把上面的一维表转换一下,table[当前状态][能够接收的条件],这样查表会...

2019-03-13 20:19:56 1007

原创 千万不要学设计模式

一、设计模式有用吗?我觉得除了方便与他人交流,包括写的代码别人方便阅读或者阅读别人的代码外,其它基本没什么特别用处了。因为如果你比较菜,而且理解能力一般,经验也浅,你强制学习和使用设计模式,容易误入歧途,生搬硬套,只适合研究和学习一下,能够明白最好,不明白就算了,还不如老实从面向对象分析设计以及UML等基础的东西学起。但如果你从面向对象以及UML研究起,能够老实研究完一本这样的书,最好...

2019-02-13 22:36:24 3728 1

原创 INI文件读写的支持的C++封装

之前工作中遇到需要用到配置文件,所以想到使用简单的INI,但网上只能找到读INI配置的代码,基本没有找到写操作的,就自己写了一个C++封装,由于写入是每次同步写入,所以不适合较大配置文件,但对于不大的配置文件还是较有用的。同时大家可以考虑写入优化,比如写入操作由使用者决定等。PS:转载或者使用请保留声明,谢谢!​#ifndef INI_FILE_H_#define INI_FILE_...

2018-12-28 00:49:43 554

原创 Epoll的C++封装

之前因工作需要,封装的一个,贴出来供参考和使用。使用上,主要也是wait它,再利用重载的[]操作符进行操作,让人感觉更清晰明了一点。#ifndef EPOLL_H#define EPOLL_H#include <sys/epoll.h>#include <unistd.h>/** * @brief The Epoll class 对epoll的封...

2018-12-28 00:38:30 1841

原创 C++11之一 语法特性的改变

本文章以<深入理解C++11>书为目录和例子,进行简要的测试如说明或者总结,后续再对特殊的,信息含量较大的特性进入深入研究。#include <iostream>#include <memory>#include "tesh.h"using namespace std;//__func__宏,可以用在类中struct TestStruct{ ...

2018-12-20 20:03:28 174

原创 随机产生N个不重复数

一、完美想法b = f(a);a是线性的,而b是唯一,而且看起来是伪随机的。其中函数f,有个是RSA算法的函数。二、排除重复      先生成随机数,并用个数组等进行置位或者用HashSet判断为重复与非重复。      if(Arr[rand] == 1)   说明已经生产了这个数,然后继续生产下个随机数。用部分空间保存之前状态,判断次数减少为一次。      但这个...

2018-11-28 16:03:04 1154

原创 逆向思维

逆向思维很重要,MARK一下,以后想写的时候来写。

2018-11-26 11:41:08 167

原创 Haskell函数式编程思想之四 函数式思想

网上有本书,好像是日本人写的,《函数在你身边:直觉探索函数世界》,本书最后一章节,基本解答了函数式思维来看待世界的思维方式,描述的比较通俗。然后联想到《范畴论》这一纯数学的研究方法,表达的思路和思维基本是一致的,所以本书最后一节可以作为函数式思维的一个科普读物。具体内容可以网上查找阅读,里面也确认了我之前关于类型与函数之间关系的思考与猜测。类型和函数是相互依存的,函数是作为在类型之上的函数,类...

2018-09-23 00:54:22 171

原创 Haskell编程思想之三 函数的基本语法

Haskell函数基本语法逻辑分为以下三类:一、模式匹配模式匹配主要依赖数据的定义结构,属于一个解结构的过程,一般来看,跟随数据定义格式进行,也就是data的值构造子。二、函数的组合函数的组合,也就是分解为其它基本的小函数进行拼接,还有各个小函数之间高阶性,F1.F2.F3 x,类似数学F1(F2(F3(x))).    或者拼接  F1(x)  + F2(F3(x)),反正就是函...

2018-09-18 23:02:25 290

原创 Haskell编程思想之二 函数式编程

haskell作为纯函数式编程语言,那什么是函数式编程?函数式编程后面的理论基础是什么图灵完备的lamada演算,我的理解就是,能够以这样方式描述世界,不管是动的还是静的。普通的程序语言大部分是过程式,也就是一些状态和过程,跟计算机结构吻合,也就是图灵机。那函数式编程呢?我的理解是描述事物和事物之间的关系为主,而此关系就是函数f,然后再大再复杂的事物,都是可以由小的关系组合出来。如果一...

2018-09-17 17:50:23 357

原创 Haskell编程思想之一 初识类型系统

函数classType 函数 和普通函数有区别吗?变量---一个代表 固定基本类型复合类型?类型变量:----------如果函数的类型签名里包含类型变量,那么就表示这个函数的某些参数可以是任意类型,我们称这些函数是多态的。对于函数这样的参数来说,叫parameterized type,参数化类型。-----------------data Abc = Aaa   xx xx x...

2018-09-13 16:56:04 661

原创 Python核心编程-读书笔记-函数装饰器

python函数装饰器,只是高阶函数的一个语法包装而已,它的作用是可以不改变函数本身,但能够有机会改变函数的行为,给函数f(args)前后添加行为,或者改变它的参数传递等,而使用此函数的对象,依然是正常的调用,不同的装饰器,此函数调用的过程可能会有所变化。@f2@f1def f(args)两个装饰函数,f2和f1,那样等价于: f2(f1(f(args))),从f2->f1-&...

2018-08-29 15:17:37 149

原创 Python语言特性

基本语法python基本语法主要来自C、JAVA、HASKELL等其它语言,但只取最简单有用的部分,基本保持够用就好, 舍弃对性能和语言特性的追求。面向对象和C语言扩展接口等,能够让它保持简单好用的基础上,又不失扩展和灵活性。变量和表达式 python逻辑块不像c等语言这样使用一对花括号来区分,而是采用缩进方式来区分,凡是对齐的语句都是平行的逻辑块,这是最大的区别之一。...

2018-08-27 08:10:09 237

转载 UML序列图与协作图关系

1、序列图       序列图和协作图都是交互图,彼此等价,可以相互转化。序列图是对对象之间传送消息的时间顺序的可视化表示。序列图用于表现交互,侧重于强调时间顺序。       序列图将交互关系表示为一个二维图,如下图:                          注:虚线表示,此时对象不处于激活状态,双道线,表示对象处于激活状态;消息使用从一个对象的生命线到

2016-09-04 23:15:50 3538

转载 UML活动图与流程图对比

活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流。活动图在本质上是一种流程图。活动图与流程图的区别(1)、流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系。而活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。(2)、活动图能

2016-09-04 16:44:49 1936

原创 repo服务器搭建

repo是一个python脚本集合,通过python脚本来管理git项目。一、安装git服务器,git协议支持等,最终git服务配置项如下:sudo chpst -ugit /usr/lib/git-core/git-daemon --verbose --reuseaddr --base-path=/home/git --export-all --enable=receive-pack

2016-08-11 14:05:12 210

原创 为什么是红黑树

红黑树设计的背景和灵感是什么?搜索了半天没有找到答案,但找到一些策略性的思考。AVL,平衡二叉树,是需要完全平衡的,对于查找操作来说每一步查找都是左右两边平衡的二分了,最坏的情况,lgN次比较,效率最高,但如果是插入或者删除当中一个元素,平衡打破后,需要采取所谓的“旋转”局部操作,进行再平衡,但要再建立完全的平衡,需要“旋转”的次数可能会较多,效率差。基于上面AVL的考虑,

2016-07-31 23:31:15 158

转载 关于二叉树本质的回答

转自知乎里面一个人的回答:作者:匿名用户链接:http://www.zhihu.com/question/37381035/answer/84584381来源:知乎著作权归作者所有,转载请联系作者获得授权。很明显,题主没有学的比较好。或者没参加过acm的相关训练。只是一个平时跟着学做些课后题然后混毕业的。二叉树,本质上,是对链表和数组的一个折中。。

2016-07-31 18:37:26 790

原创 排序算法笔记

注:部分代码来自网上冒泡排序:相临数据不停交换,这样每一趟后,后面一个数据就是最大或者最小的了。可以采取保存最后一次交换的位置来减少交换次数,因为这代表此位置后面数据没有发生交换,已经有序列了。此算法缺点是交换的次数过多//冒泡排序3void BubbleSort3(int a[], int n){    int j, k;    int flag;

2016-06-19 13:14:32 171

转载 android升级脚本Edify语法简介(Updater-Script) 翻译:Kawvin

这是Android系统来运行updater-scripts的Edify语言的基本介绍。大部分的Edify命名都是函数,当调用这些函数结束的时候,会返回数据给脚本。当然,你也可以使用这些函数的返回值来确认成功与否,例如:ifelse(mount("yaffs2", "MTD", "system", "/system") == "system", ui_print("Successfully

2012-08-28 22:03:14 464

转载 ext4磁盘镜像结构分布(转)

大体上看,ext4文件系统的磁盘布局与前面介绍的xfs有些类似,它同样是先把磁盘分成一个个相同大小的block块(每个block块的大小默认是4K),然后把这些block块逻辑上合成多个group组,每个group组内的布局基本一致,除了第一个group组(即group 0)前面有1024字节的保留空间外。功用占用块数Group 0

2012-08-13 18:40:00 358

原创 git常用操作命令记录

#git 配置 用来配置个人相关信息 设置,有全局配置与局部配置之分git config --global user.name "John Doe"git config --global user.email johndoe@example.comgit config --global core.editor emacsgit config --global merge.tool

2011-12-01 15:27:49 1017

原创 android 汇编指令错误

android默认arm指令集是thumb,如果使用32位arm指令时,需要加LOCAL_ARM_MODE := arm.

2011-11-28 19:54:37 229

原创 java local ref

FindClass /NewString/ NewStringUTF/NewObject/ GetObjectField等产生的都是LocalRef.

2011-10-31 12:54:02 114

原创 sshfs用expect自动挂载失败记录

记录一下,用sshfs自动挂载服务目录一直失败,最后谷歌了下,找了个方法,记录如下 :#!/usr/bin/expectset timeout 30spawn -ignore HUP sshfs -o transform_symlinks -o fol

2011-09-23 18:32:44 292

转载 自旋锁对信号量

自旋锁对信号量需求                     建议的加锁方法低开销加锁               优先使用自旋锁短期锁定                 优先使用自旋锁长期加锁                 优先使用信号量中断上下文中加锁

2011-08-28 16:40:32 158

原创 C++ 错误: undefined reference to VTT vtable

今天很郁闷,因为这个错误折腾了半天,原来也经历过,没记下来,结果又浪费这么多时间。如果提示有这样的错误,而你又确定你已经完整的实现了构造 析构函数,又找不出其它原因,那就找找类里面有没有定义但又没有实现的virtual函数,相当郁闷啊,一遇到这样的情况,报的错误就莫名其妙!

2011-07-18 17:22:30 501

原创 repo

#!/bin/sh## repo default configuration##REPO_URL='git://android.git.kernel.org/tools/repo.git'REPO_REV='stable'# Copyright (C) 2008 Google I

2011-07-15 17:22:52 653

转载 Android 的属性系统

<br />每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性。 <br />在系统初始化时,Android将分配一个共享内存区来存储的属性。这些是由“init”守护进程完成的,其源代码位于:device/system/init。“init”守护进程将启动一个属性服务。属性服务在“init”守护进程中运行。每一个客户端想要设置属性时,必须连接属性服务,再向其发送信息。属性服务将

2011-04-12 16:40:00 148

原创 早期磁盘挂载日志

<br /><br />一、tegra2 SD卡挂载为只读解决<br />  可能是由于底层或者硬件方面的原因使SD卡的是否为只读判断结果一直为只读,这样上层进行读写打开或者读写挂载时始终为只读。临时解决办法是把判断函数返回值改为始终可读写的。具体修改如下:<br />  把文件/kernel/drivers/mmc/host/sdhci-tegra.c里面函数tegra_sdhci_get_ro改成直接返回0<br />    static int tegra_sdhci_get_ro(struct sd

2011-04-12 14:13:00 1364 1

转载 cpio命令周详用法

<br />示例:<br /> <br /><br />cpio -i -t -F ./ramdisk.img > list<br />cpio -o -H newc -O myramdisk.img < list<br />cpio - 存取归档包中的文件 <br /><br />语法 Syntax <br /><br />cpio -o [ -aBLuvV ] [ -C bufsize ] [ -c | -H format ][ -K volumesize ] [ [ -O file [, file .

2011-04-12 09:27:00 268

转载 块设备读写流程

<br /><br />在学习块设备原理的时候,我最关系块设备的数据流程,从应用程序调用Read或者Write开始,数据在内核中到底是如何流通、处理的呢?然后又如何抵达具体的物理设备的呢?下面对一个带Cache功能的块设备数据流程进行分析。<br /> <br />1、 用户态程序通过open()打开指定的块设备,通过systemcall机制陷入内核,执行blkdev_open()函数,该函数注册到文件系统方法(file_operations)中的open上。在blkdev_open函数中调用bd_acqu

2011-04-05 16:02:00 158

转载 Linux驱动中,probe函数何时被调用

<br />声明:以下主要内容参考自:关于struct device_driver结构中的probe探测函数的调用<br />http://blog.chinaunix.net/u2/71164/showart.php?id=1361188<br /><br />用SourceInsight跟踪:<br />从driver_register看起,此处我的这里是:<br />int driver_register(struct device_driver * drv)<br />{<br />if ((d

2011-03-28 11:26:00 299

原创 Android线程模型

<br />

2011-02-15 10:14:00 149

转载 android任务.进程.组件管理

<br /><br />任务、进程和线程<br /> <br />关于Android中的组件和应用,之前涉及,大都是静态的概念。而当一个应用运行起来,就难免会需要关心进程、线程这样的概念。在Android中,组件的动态运行,有一个最与众不同的概念,就是Task,翻译成任务,应该还是比较顺理成章的。<br /> <br />Task的介入,最主要的作用,是将组件之间的连接,从进程概念的细节中剥离出来,可以以一种不同模型的东西进行配置,在很多时候,能够简化上层开发人员的理解难度,帮助大家更好的进行开发和配置。<

2011-01-17 16:59:00 390

转载 PackageManagerService(PackageParser)解析apk的过程

<br />1.apk的资源文件有AssetManager来管理的<br />2.解析AndroidManifest的service的代码流程<br />PackageManagerService.java->installPackage()->handleMessage(INIT_COPY)->handleMessage(MCS_BOUND)-><br />HandlerParams.java->startCopy()->handleReturnCode()<br />PackageManagerServ

2011-01-11 15:19:00 2754 2

原创 ubuntu SVN命令大全

<br />1、将文件checkout到本地目录svn checkout path(path 是服务器上的目录)<br />例如:svn checkout svn://192.168.1.1/pro/domain<br />简写:svn co<br />2、往版本库中添加新的文件svn add file<br />例如:svn add test.php(添加test.php)<br />svn add *.php(添加当前目录下所有的php文件)<br />3、将改动的文件提交到版本库<br />svn

2011-01-10 09:10:00 174

原创 Android程序完全退出的三种方法

<br /><br />Android程序有很多Activity,比如说主窗口A,调用了子窗口B,在B中如何关闭整个Android应用程序呢? 这里Android123给大家三种比较简单的方法实现。<br />  首先要说明在B中直接使用finish(),接下来手机显示的还是主窗口A,所以一起来看看Android开发网是如何实现的吧.<br />  1. Dalvik VM的本地方法<br />  android.os.Process.killProcess(android.os.Process.myPid

2011-01-05 19:04:00 141

转载 Android系统定义Intent列表

<br />所有的INTENT列表 <br />android.intent.action.ALL_APPS <br />android.intent.action.ANSWER <br />android.intent.action.ATTACH_DATA <br />android.intent.action.BUG_REPORT <br />android.intent.action.CALL <br />android.intent.action.CALL_BUTTON <br />android.

2011-01-05 18:58:00 400

JNI_API查询手册

JNI JAVE C++ API 手册 查询 标准 文档 CHM格式 方便查询

2010-01-11

linux设备模型详细解说

详细并用图例的方式深入浅出的分析LINUX2.6内核中设备模型框架,让你深入的了解LINUX系统设计理念

2010-01-05

tiny xml 源代码

tiny xml 源代码 参考 学习

2009-10-20

基于X86的引导分析

老式微机的原理与接口技术,有参考价值 ,有X86体系,,,代码,,引导分析

2009-10-18

WINDOWS程序设计_完整详细_CHM

WINDOWS程序设计的完整手册,完全CHM格式,完整详细。方便学习查询。

2009-07-04

C语言标准手册_iso

C的标准手册,可以作为标准查询用。C的各种关键字,支持的函数等。

2009-07-04

UML参考手册_UML语言

UML的一个参考手册,可以作为参考和查询用。

2009-07-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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