自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

远航 | FIBOS.io

区块链行业从业者(http://blog.luoyuanhang.com)

  • 博客(109)
  • 资源 (11)
  • 收藏
  • 关注

原创 技术干货分享

这篇文章中的大部分书籍、网站、博客等曾经在我的学习中给了我很大的帮助,因此把他们分享出来,希望能给更多的人以帮助,也希望大家能够继续补充,可以在后边的评论区进行补充,我会时刻进行更新。0x00 关于 C++书籍(难度递增)《C++ primer plus》《C++程序设计原理与实践 》《Effective C++ 》《C++编程规范》《C++模板元编程》《Advanced C++ Me

2016-03-27 14:19:00 6953 5

原创 【Ethereum基础】:账户、地址、私钥和公钥

在以太坊中,账户、地址、私钥(Private Key)和公钥(Public Key)是非常重要的概念。账户扮演着以太坊的中心角色,地址是我们与以太坊系统进行交互的标识,它是以太坊账户与外界进行交互的名字,而私钥与公钥是保护我们账户安全的重要屏障。什么是账户(Accounts)?账户在以太坊中扮演者十分重要的角色,它是以太坊的中心概念。在以太坊中,有两种类型的账户1:一种是外部账户(...

2018-04-17 09:46:10 16267 1

原创 GFS 阅读笔记

这篇博客是我阅读著名的 GFS 论文(The Google File System)所总结的笔记以及自己一些的思考。这篇论文是一篇非常经典的论文,尤其对于想要了解分布式或者刚刚开始研究分布式的人来说,是一篇非常好的读物,它里面提到了许多分布式方向的基本问题,许多分布式的研究都是围绕这些基本问题的。分布式系统在了解谷歌文件系统(Google File System)之前,我们必须要了解一下有关分布式系

2017-05-15 21:28:23 9890

原创 MapReduce 阅读笔记

这篇文章是我阅读 MapReduce 论文:《MapReduce: Simplified Data Processing on Large Clusters》的笔记,这篇笔记概述了 MapReduce 是什么,它的工作流程,一些细节问题,以及我的个人理解与思考。MapReduce 是什么?MapReduce 是 Google设计的一种用于大规模数据集的分布式模型,它具有支持并行计算、容错、易使用等特

2017-05-15 21:27:47 4067

原创 LeetCode 79. Word Search

这篇文章是 LeetCode 79. Word Search.md 的分析与解法。问题描述Given a 2D board and a word, find if the word exists in the grid.The word can be constructed from letters of sequentially adjacent cell, where “adjacent” c

2017-05-15 21:26:59 4593

原创 LeetCode 131. Palindrome Partitioning

这篇文章是 LeetCode 131. Palindrome Partitioning 的分析与解法。问题描述Given a string s, partition s such that every substring of the partition is a palindrome.Return all possible palindrome partitioning of s.For exa

2017-05-15 21:26:27 3666

原创 在 Raspberry3 上搭建 Go 环境

这篇博客讲的是如何在 Raspberry3(树莓派3)上搭建 Go 语言环境,所使用的 Go 语言的版本是1.7.4

2017-03-15 20:28:21 4872

原创 【从0到1学习Java线程池】一个Java线程池的简单实现

这是【从0到1学习Java线程池】系列文章的第 叁 篇,该系列文章总共三篇,介绍了 Java 线程池的使用以及原理,并且最后会实现一个基本的线程池。本篇文章实现了一个简单的 Java 线程池。

2017-03-15 20:25:50 3826 1

原创 RAFT 论文中文翻译(2)

本篇博客为著名的 RAFT 一致性算法论文的中文翻译,论文名为《In search of an Understandable Consensus Algorithm (Extended Version)》(寻找一种易于理解的一致性算法) 9 实现和评价我们已经为 RAMCloud 实现了 Raft 算法作为存储配置信息的

2017-03-13 12:23:06 5822

原创 RAFT 论文中文翻译(1)

本篇博客为著名的 RAFT 一致性算法论文的中文翻译,论文名为《In search of an Understandable Consensus Algorithm (Extended Version)》(寻找一种易于理解的一致性算法)

2017-03-13 12:14:56 5230

原创 【从0到1学习Java线程池】Java线程池原理

这是【从0到1学习Java线程池】系列文章的第 贰 篇,该系列文章总共三篇,介绍了 Java 线程池的使用以及原理,并且最后会实现一个基本的线程池。本篇文章介绍了 Java 线程池的原理。

2017-02-27 20:27:45 3995

原创 【从0到1学习Java线程池】Java线程池的简介以及使用

这是【从0到1学习Java线程池】系列文章的第 壹 篇,该系列文章总共三篇,介绍了 Java 线程池的使用以及原理,并且最后会实现一个基本的线程池。本篇文章主要介绍了 Java 线程池以及它的使用。

2017-02-27 20:25:55 3601

原创 变位词程序的实现

这篇文章是 读厚《编程珠玑》系列博客 的第 2 篇,主要的内容是《编程珠玑》第二章最后提出的变位词程序的实现。问题简述问题来源于《编程珠玑》第二章中最后提出的变位词程序的实现。其中的变位词的概念,在第二章开篇的 C 问题中得到了阐释。 C. 给定一个英语词典,找出其中所有变位词的集合。例如,『pots』,『stop』,『tops』互为变位词,因为每一个单词都可以通过改变其他单词中字母的顺序来得

2016-12-16 14:59:48 4581

原创 【读薄《编程珠玑》】贰 啊哈!算法

这篇文章是[《读薄<编程珠玑>》系列博客][1]的第 贰 篇,在这篇文章中,作者提出了三个问题,并且给出了相应的解决方案,本文阐述了这三个问题以及解决方案,并且对课后习题进行了分析。问题集合0x00: 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数(在文件中至少缺失一个这样的数)。在具有足够内存的情况下,如何解决该问题?如果有几个外部的『临时』文件可用,但

2016-12-11 00:27:45 4266

原创 读薄《Linux 内核设计与实现》(6) - 虚拟文件系统

这篇文章是《读薄「Linux 内核设计与实现」》系列文章的第 VI 篇,本文主要讲了以下问题:Linux 虚拟文件系统的概念、相关接口等内容。0x00 虚拟文件系统概念虚拟文件系统(VFS)为用户空间提供了文件系统接口VFS 协同不同文件系统的工作0x01 通用文件接口VFS 使得用户可以直接使用 open(), read(), write()这样的系统调用而无需考虑具体文件系统和实际物理

2016-11-07 21:24:03 4499

原创 读薄《Linux 内核设计与实现》(5) - 定时器、时间管理和内存管理

这篇文章是《读薄「Linux 内核设计与实现」》系列文章的第 V 篇,本文主要讲了以下问题:Linux 内核中的时间概念和时间表示,硬件时钟和定时器以及时间中断和内存管理的相关知识。

2016-10-23 14:00:40 4101

原创 读薄《Linux 内核设计与实现》(4) - 中断与同步

这篇文章是《读薄「Linux 内核设计与实现」》系列文章的第 IV 篇,本文主要讲了以下问题:中断和中断处理程序的概念与实现原理、Linux 中的下半部以及内核同步方法。0x00 中断和中断处理程序I 中断中断是一种特殊的电信号,由硬件发向处理器,处理器接收到中断时,会马上箱操作系统反映,由操作系统进行处理。中断随时可以产生,因此,内核随时可能因为新到来的中断而被打断。不同的设备对应的中断不同

2016-06-30 22:14:22 5911

原创 读薄《Linux 内核设计与实现》(3) - 系统调用

这篇文章是《读薄「Linux 内核设计与实现」》系列文章的第 III 篇,本文主要讲了以下问题:系统调用的概念、系统调用的实现原理与过程以及如何在 Linux 中增加一个系统调用。0x00 系统调用的概念系统调用是为了和用户空间上的进程进行交互,内核提供的一组界面。应用程序通过这组界面访问硬件和其他操作系统资源完成对硬件和资源的访问控制硬件设备的抽象(提供设备的独立性)0x01 系统调用简

2016-06-25 10:33:49 6094

原创 读薄「Linux 内核设计与实现」(2) - 进程管理和调度

这篇文章是《读薄「Linux 内核设计与实现」》系列文章的第 II 篇,本文主要讲了以下问题:进程管理的任务、进程管理与其他模块的依赖关系、进程描述符和任务队列、进程的创建、线程的实现、进程的终止、进程调度。

2016-06-23 02:07:01 5950 1

原创 读薄「Linux 内核设计与实现」(1) - 从内核出发

这篇文章是《读薄「Linux 内核设计与实现」》系列文章的第一篇,本文主要讲了两个问题:内核编程的特点以及 GNU C 在内核开发中的特点。0x00 内核编程特点无 libc 库,不能访问标准 C 文件使用 GNU C无内存保护机制慎用浮点数计算注意同步和并发可移植性考虑:保持字节顺序、64位对齐、不假定字长和页面长度0x01 GNU C内联函数:将函数展开至调用位置,省却函数调用

2016-06-07 02:28:16 6743

原创 【读薄《编程珠玑》】壹 开篇

这篇文章是《读薄<编程珠玑>》系列博客的第一篇,在这篇文章中,我总结了在书中出现的一些问题以及一些解决方案。问题集合0x01:一个最多包含n个正整数的文件,每个数都小于n,其中n=107,并且没有重复。最多有1MB内存可用。要求用最快方式将它们排序并按升序输出0x02:使用位逻辑运算来实现位向量0x03:尽可能快的生成位于 0~n-1 之间的 k 个随机不同顺序的整数0x04:如果在问题0

2016-05-19 19:48:27 4112 2

原创 I 位向量的实现与应用

这篇文章是《读厚<编程珠玑>》系列博客的第一篇,我们在《编程珠玑》的第一章 - 开篇中就了解了位向量是什么,《编程珠玑》的作者使用位向量来解决了一个海量数据排序问题,这篇文章我们来深入的了解一下位向量的实现与应用。0x00 位向量是什么?位向量,也叫位图,是一个我们经常可以用到的数据结构,在使用小空间来处理大量数据方面有着得天独厚的优势。位向量,顾名思义就是「位构成的向量」,我们通常使用0来表示

2016-05-15 22:30:47 7480

原创 PART 2: 使 Shell 能读取命令

这篇文章是《动手写 Shell》系列文章的第 <2> 篇。上篇文章中,我们已经完成了我们动手 Shell 的第一步:Shell 的提示符。在这篇文章中,我们开始使得我们的 Shell 能够开始读取命令,并且做简单的分词,将命令与参数分开。

2016-04-23 16:08:20 6331

原创 PART 1: Shell 提示符的实现

这篇文章是《动手写 Shell》系列文章的第 <1> 篇,在这篇文章中,我们先完成一个 Shell 中最基本的功能 - Shell 提示符的实现。在这篇文章中,我会介绍一下实现的思路,以及介绍下用到的系统 API 和一些 C 语言中的库函数。Shell 提示符用过 Linux 的人都知道当我们打开终端时,在命令行中会出现一行字,后边会有光标在一直删,那一行字就是 Shell 的提示符。提示符格式我

2016-04-10 13:20:43 5660

原创 在 Mac 上打包 PyQT 程序

有许多人使用 Python 来写图形化界面时选择了 PyQT,但是有许多人不知道如何将开发好的程序打包成为安装包,这篇文章我就来介绍一种非常简单的也是非常基础的在 MAC 下打包 PyQT 程序的方法。安装 PyQT安装 QT我们首先要安装 QT,我这里安装的是, QT 5.5,对于 MAC 上 QT 的安装直接到官方网站上去找到对应的安装包下载安装即可。http://www.qt.io/安装 S

2016-04-07 22:59:51 11495

原创 解决 Mac OS X 10.11 安装 sip 没有权限的问题

在搭建 PYQT 的过程中我遇上了一个非常恶心的问题,在安装 sip 的时候编译源码之后的安装过程中一直提示我:Operation not permitted ,我甚至重装了系统也无济于事,最终通过查资料解决了问题。

2016-04-06 00:06:10 11121 2

原创 Python 分发工具初探之 setuptools 进阶

在上篇文章中我们知道了 setuptools 是什么,以及它基本的功能和用法。在这篇文章中,我们会介绍如何讲setuptools应用于稍大的项目中,通过 setuptools 控制包中的文件。0x03 使用 find_packages()在之前的例子中,我们使用的都是 setup() 的默认参数,使用默认参数只能打包一些简单的、不复杂的工程,如果我们的工程中的文件越来越多,就不能使用它的默认参数了

2016-03-25 21:12:43 4856

原创 Python-分发工具初探之-setuptools

这篇文章主要介绍了一下 setuptools 是什么,以及它的功能和特点,并且介绍了如何使用它来创建和安装使用自己的包,这篇文章仅仅讲了最基本的功能和用法,一些对于进阶的用法会在下篇文章中进行介绍。0x00 setuptools 是什么setuptools 与 disutils我们通常所知道的 Python 分发工具是 Python disutils, setuptools 可以说是它的增强版,它

2016-03-23 00:13:13 6546 1

原创 在 QT5 中使用 SQLITE

在我最近一直在做的有关 Kindle 批注管理软件的项目中,对于数据库我是用的是 SQLITE,在这篇文章中我会介绍一下 SQLITE 数据库,以及如何在 QT5 中使用它。SQLITE 简介WHAT IS SQLITE?SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且

2016-03-14 23:59:04 18352 4

原创 Python 字符串 String 内建函数大全(2)

在上一篇文章中,我们提到了部分 Python 中字符串 string 的内建函数,这篇文章我们将继续介绍其他函数。lower() 函数功能将字符串中的字母转换为小写用法str.lower()参数无返回值字符串示例代码str = "HELLO WORLD!"print str.lower()运行结果hello world!lstrip() 函数功能把字符串左边的特定字符全部截取掉,默认字符为空格用法

2016-03-07 22:13:06 4903

原创 Python 字符串 String 内建函数大全(1)

关于 Python 的字符串处理相关的方法还是非常多的,由于我正在学习 Python,于是就把 Python 中这些混杂的用于 string 的函数总结出来,在自己忘记的时候便于查找,希望对于有类似需求的人有所帮助。captalize() 函数功能将一个字符串的第一个字母大写用法str.captalize()参数无返回值string示例代码str = "hello world!"print "st

2016-03-02 11:14:55 11647

原创 编写带命令行参数的 Python 程序

我们在安装一些 Python 程序的时候经常会输入这样的命令行语句 python setup.py install,从这条语句中我们可以看到 setup.py 是一个 Python 程序,但是其中的 install 又是什么呢?其实它就是这个 Python 程序的命令行参数。在这篇文章中我会和大家探讨 Python 程序中命令行参数的工作机制和如何去编写一个带命令行参数的 Python 程序。

2016-02-27 15:29:33 25543 1

原创 2016 MCM/ICM E 题渣渣论文

2016 MCM/ICM E 题渣渣论文一篇

2016-02-12 21:35:12 7675 1

原创 在 QT 中使用 libusb 检测 MAC 上的 USB 设备

最近在用 QT 做一个 MAC 上的 Kindle 批注管理软件,遇到的第一个问题就是检测 MAC 上连接的 USB 设备的状态。如果是在 Cocoa 进行开发,会有对应的系统 API 可供使用,但是由于我是在 QT 平台进行的开发,所以无形中加大了一点难度。就在这时,我发现了一个库:libusblibusb 介绍libusb 设计了一系列的外部API 为应用程序所调用,通过这些API应用程序可以

2016-01-27 08:44:11 8503 10

原创 程序的语法

『我不生产代码,我只是代码的搬运工。』当然了,这是一个玩笑。说到代码,我们要学习各种编程语言,学习如何让编译器能懂我们编写的代码。但是,编译器是如何做到能听懂我们的话的呢?按照我们既定的语句一行行的去执行,最终达到我们的目的。这篇文章,我会讲一个很简单的四则运算解释器,通过使用 Python 实现它来一步步了解一个解释器是如何工作的,它们又是怎么得到我们想要的结果的。

2016-01-17 17:28:40 7831 2

原创 【数学模型】商人们怎样过河?

这篇博文中,同样是一个很简单的数学问题,但是解决起来比上一个的问题要复杂一些。在这次模型求解中,我会使用两种方法,一种是纯粹的数学方法,另一种是通过计算机程序来计算,通过计算机求解我们可以求解一些规模更大的问题。由于这篇文章篇幅我预计会比较长,为了不混淆,上一篇文章《椅子能在不平的地面上放平吗?》中的延伸问题我会再写一篇文章单独解答。

2016-01-06 13:36:30 34695 11

原创 【数学模型】椅子能在不平的地面上放平吗?(1)

近期对数学爆发出了浓厚的兴趣,再加上准备参加2016年的数学建模美赛,于是开始接触数学建模,想通过这一系列的博客记录自己学习的历程,于是将本系列博客命名为【数学模型】,同我所看的数学建模书名。第一篇文章是一个非常简单的数学模型,但是我觉得挺有意思的,而且很贴近生活,题目叫做《椅子能在不平的地面上放平吗?》

2016-01-03 14:47:20 14477 5

原创 【从头开始写操作系统系列】页表以及相关的描述符详解

在之前的文章中,我们介绍过 GDT(全局描述符表)以及一致代码段和非一致代码段,这篇文章我们再回到描述符,这次我们来以 ARM 架构为例了解一下页表描述符。在这篇文章中,我们会看到以下内容:页表是什么?一级页表的地址变换过程由一级描述符来获取二级描述符或者段地址的过程

2015-12-26 00:24:03 7503 1

原创 Android 的 SQLLite数据库

Android 的 SQLLite数据库关系型数据库 SQLLite每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的、与操作系统无关的SQL数据库—SQLite。SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了。SQLite已经被多种软件和产品使用,Mozilla Fire

2015-12-15 04:52:11 4316

原创 Dalvik和ART

Dalvik和ART什么是 Dalvik?Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为 .dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalv

2015-12-15 04:51:28 2835

The-Code-Survival-Guide

The-Programmers-Idea-Ebook(http://www.coderslexicon.com/downloads/the-programmers-idea-book/)的配套书籍,详情请见:http://blog.jobbole.com/49762/

2016-01-19

The-Programmers-Idea-Ebook

些练手的小项目

2016-01-19

机器学习实战源代码

《机器学习实战》原书配套代码,机器学习实战源代码

2015-05-13

jna-platform-4.1.0.jar

JNA4.1.0,可以通过JNA在Java中调用C/C++的代码

2015-03-24

ncurses.tar.gz

ncurses是一个能提供功能键定义、屏幕绘制以及基于文本终端的图形互动功能的动态库

2014-09-24

arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2

arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 交叉编译工具链

2014-09-24

XML编辑器(课程设计)

Java版的XML编辑器以及代码,是课程设计的作业,拿出来给大家过个参考

2014-05-27

程序设计引导及在线实践

程序设计引导及在线实践,《程序设计导引及在线实践》是作者李文新所著的应用型图书,本书是北京大学“程序设计实习”课程的内容和“北京大学程序在线评测系统”的紧密结合。本书的例题和课后习题大都精选自POJ题库,并且在叙述中穿插了许多精心编写的思考题,总结了学生在程序开发中易犯的错误。本书的几位编者均有丰富的工程软件开发经验和教学经验,因此本书中的程序代码均保持良好的风格。 本书可作为高等院校理工科相关的程序设计类课程教材,可作为以ACM/ICPC为代表的各类大学生程序设计竞赛的培训教材,也可供对程序设计感兴趣的普通读者学习参考。

2014-05-13

程序员的数学 PDF

《程序员的数学》面向程序员介绍了编程中常用的数学知识,借以培养初级程序员的数学思维。读者无需精通编程,也无需精通数学,只需具备四则运算和乘方等基础知识,就可以阅读《程序员的数学》。《程序员的数学》中讲解了二进制计数法、逻辑、余数、排列组合、递归、指数爆炸、不可解问题等许多与编程密切相关的数学方法,分析了哥尼斯堡七桥问题、高斯求和方法、汉诺塔、斐波那契数列等经典问题和算法。引导读者深入理解编程中的数学方法和思路。

2014-04-26

软件工程模板(十三种开发文档模板)

软件工程模板(十三种开发文档模板),可以做一下参考.

2014-04-26

Linux内核完全注释修正版V3.0 带目录pdf

Linux内核完全注释修正版V3.0 带目录 一本不错的Linux内核入门书籍!

2014-04-22

空空如也

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

TA关注的人

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