[维护中]基于文本图形(ncurses)的文本搜索工具 ncgrep

源码下载http://github.com/ncgrep/ncgre背景作为一个VIM党,日常工作开发中,会经常利用grep进行关键词搜索,以快速定位到文件。如图但是,这一过程会有两个效率问题展示的结果无法进行直接交互,需要手动粘贴文件路径在打开展示的结果没有进行分组,直接将结果罗列出来可想而知,当搜索的内容结果集比较大时,可谓痛苦。那可以用Vim中的Ag插件进行搜索啊?是的,但他只解决了交互的问题。仍然没有解决结果集分组分类的痛点。思路在使用Eclipse等IDE进行文本全局搜索时,在加载效果(懒加载)可视化方面有很大优势。那么,期望基于linux系统,提供一个类似的搜索工具。优点(功能)如下结果集可以直接交互结果集可以进行分组展示结果集通过“懒加载”方式装载基于文本图形界面的类库是什么呢?网上大致了解了下VIM、htop类似的软件,其都是基于一个叫ncurses的类库实现的。项目... Read More

[开发中]基于树莓派的智能家居项目的设想与实现 Hestia

注:本文内容的准确性仅限于笔者写该篇文章时的情况,不保证后续与实际项目代码一致。实时内容还请关注Github项目托管页面:https://github.com/GenialX/hestia-serve树莓派,一个五脏俱全,集几乎所有功能于一身的微型计算器。大约一两月之前,屈屈300百大洋收入囊中。入手之后,出于对自动化的兴趣,慢慢地研究如何实现室内家电的智能自动化控制。在断断续续地,不断地摸索之后,有了若干想实现的点子,迄今为止也有所实践。点子利用红外线传感器智能控制空调、电视等基于红外遥控的家电设备;智能控制家中的灯泡设备(部分基于网络协议);方案硬件首先,除了树莓派之外,还需要如下硬件移动端设备 Android手机一台(iPhone手机当然也没问题,但是本案例中只基于Android手机做了实现外网可直接访问的服务器一台(本案例使用阿里云服务器基于树莓派(点我购买)的传感器若干基于光敏电阻的光线传感器一个... Read More

利用内网穿透 frp 工具实现外网链接(ssh)内网树莓派设备

内网穿透原理内网穿透(Net穿透)也即端口映射,笔者粗暴理解是一种能够将外网机器与内网机器(外网无法直接访问的设备)建立通信的一种技术解决方案。百度百科尽管有许多穿越NAT的技术,但没有一项是完美的,这是因为NAT的行为是非标准化的。这些技术中的大多数都要求有一个公共服务器,而且这个服务器使用的是一个众所周知的、从全球任何地方都能访问得到的IP地址。一些方法仅在建立连接时需要使用这个服务器,而其它的方法则通过这个服务器中继所有的数据——这就引入了带宽开销的问题。具体原理详见百度百科=> https://baike.baidu.com/item/NAT%E7%A9%BF%E8%B6%8需要资源一台公网服务器(可以通过IP直接访问树莓派(也可以是电脑,以树莓派为例安装本文以frp v 0.13.0为例(具体版本可以自己定,但不保证其他版本能够成功)。笔者在go 1.7.4版本下编译frp... Read More

从小白到机器学习算法工程师,我做了哪些准备?

一、方向选择都说选择比努力重要,这个鸡汤我觉得可以干了。起初接触人工智能领域是在硕士选择导师的时候,当时民叔推荐来到人工智能与机器人研究所,跟随现在的硕导做图像处理方面的研究,用到一些机器学习的算法做分类工作。在学校学习平台比较重要,它决定了你会见识什么人、什么样的黑科技、什么样的应用等,没有这些东西勾起你的好奇心,也就没有对未来的规划或者说期待。硕士期间,养成了看论文的习惯,专注领域顶级期刊论文,当然了首先是先把自己研究的课题相关知识看的透彻,这个在第二小节中会介绍:为什么硕士课题很重要。一些我认识是牛人的人说,看论文是在跟领域大牛在交流,这个确实刚开始体会不到,起初很排斥看论文,更加上我的英语那是一个...后来看多了,发现知识之间都是相通的,可能解决一个问题用的是同一个方法,这样看一篇论文的时间会大大缩短,有效率了,心里便更愿意去看论文。康奈尔大学图书馆网站每天更新世界上各个大牛写的论... Read More

禁止 tmux 窗口自动命名

关于tmux的多窗口,用起来可谓非常方便。但,也许在默认的tmux配置下,一样和我被一个小问题困扰。那就是,tmux的窗口名称总是会随着执行的命令不同而变动。关于这一点,可用如下的方式来解决更改tmux配置文件打开~/tmux.conf文件,增加(或修改)如下内容[code lang="shell"set allow-rename of[/code更改oh-my-zsh配置文件当然,如果你在用oh-my-zsh的话。那么,还需要进行如下修改打开~/.zshrc文件,增加(或修改)如下内容[code lang="shell"DISABLE_AUTO_TITLE="[/code参考文章:https://stackoverflow.com/questions/38543763/tmux-will-not-stop-auto-renaming-window Read More

ZigZag Conversion(math)

QuestioThe string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibilityP A H A P L S I I Y I And then read line by line: "PAHNAPLSIIGYIR"Write the code that will take a string and make this conversion given a number of rowsstring convert(string text, int nRows);convert("PAYPAL... Read More

翻转整型数(水题)

正题Reverse digits of an integer.Example1: x = 123, return 32Example2: x = -123, return -32思考改题为简单难度(水题),根据题意可以依次取到给定的整型数x的最高位到最低的数,然后依次将其乘10的x次幂后进行累加即可得到结果。这里,要知道32位的整型一共有九个0,故声明i=1000000000;代码[code lang="cpp"class Solution publicint reverse(int x) long int i = 1000000000, rev_i = 1, r = 0, start = 0;while (x != 0) int c = x / i;if (start == 0 && c != 0) start = 1;if (start == 0 && i /= 10;... Read More

最长回文字符串题解(动态规划)

LeetCode正题Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.ExampleInput: "babad"Output: "bab"Note: "aba" is also a valid answer.ExampleInput: "cbbd"Output: "bb"思考回文字符串即正向顺序和反向顺序的字幕排序是一致的字段串。题的大意为寻找一个指定字符串中的最长的回文字符串。首选,暴力解法需要遍历所有子串并判断子串是否为回文字符串。假设给定字符串长度n,那么子串的总数为​n(n+1)/2(即1 2 3 ... n的和),即需要O(n^2),然后判断每个子串是否为回文字符串的时间复杂度为O(n),即总共需要... Read More

最长不重复子字符串问题(动态规划)

问题Given a string, find the length of the longest substring without repeating characters.ExamplesGiven "abcabcbb", the answer is "abc", which the length is 3.Given "bbbbb", the answer is "b", with the length of 1.Given "pwwkew", the answer is "wke", with the length of 3. Note that the answer must be a substring, "pwke" is a subsequenceand not a substring.分析首先,这种题肯定不能暴力来解决,否则肯定会超时。所以,考虑用一个哈希表(Map&l... Read More

修正 Vim(Mac) 有时无法正确提交 Git Commit Message 的问题

和 Subversion 一样,Git 也可以为 Commit Message 设置一个默认的编辑器,命令如下git config --global core.editor vi不过我在 Mac OS X 系统使用 Git 的过程中,偶尔会遇到如下的情况*** Commands **1: status 2: update 3: revert 4: add untracke5: patch 6: diff 7: quit 8: helWhat now>Bye.error: There was a problem with the editor 'vim'.Please supply the message using either -m or -F option.这种情况基本上都是出现在我打错字的时候,开始以为是输入法引起的 Vim 状态异常,不过出现... Read More

Topic:simple is the best V.S. no free lunch——SVM V.S. other models

今天听一个讲述SVM(Support Vector Machine)模型与其他模型区别的讲座,这里整理如下:(主要参考书籍是bengio先生的《deep learning》还有周志华老师的西瓜书《机器学习》svm的思维还是很bug(这里是闪光点的意思,惊艳)的,解决问题的角度啊,很吸引人,很神奇的思维,有很直观的视角和很严格的数学基础。svm的反其道行之的思想太好了,其他模型,想分的好,,,都是试图让模型的capacity变大(这里capacity指:样本数据),SVM恰恰相反,SVM的精髓是simple is the best,而其他的是 no free lunch。一、初始阶段咱今天主题是讨论两大高手的对决,第一大高手,叫做no free lunch,分类在他的眼中,很简单。有一堆样本x1~xN,,有一堆类别标号1~K,这个高手眼中的分类,是寻找一个函数f,使得f(x)约等于他的类别... Read More

Regression splines

1.作用:做数据平滑(smoothing),换句话说,进行数据拟合,预测数据发展趋势。2. 与regression analysis(回归分析)的区别:回归分析方法的模型建立,比如:linear model(线性模型),其表达式唯一(没有分段之说);而对于regression splines来说,对一组数据来说,其构建的模型表达式,直白的说是分段函数,或者在模型表达式中加入hinge function产生kink/knot(节点,转折点,或者分段点)更好的表示数据延伸趋势。Regression splines的模型最小二乘误差比linear model的要小,也即是说明了:该模型的鲁棒性。3. Regression splines 模型这个函数是基础函数B(x)加权之后的和。Ci是系数,也可以称为是单个基础函数Bi(x)的权重,其实就是我们初中学的:直线的斜率。组合之后,构成非线性方程,在... Read More

PRML 学习系列 —— 第一章 多项式拟合

pattern recognition and machine learning 简称PRML是模式识别人工智能的基础书籍,好好学习学习,打下坚实基础,这里记录学习的点滴,可能会有误解之处,在后续的学习中会及时更正,也希望广大学友们,发现问题,能给我留言,我会及时更正,避免误导他人,共同学习进步。看了多项式拟合(polynomial curve fitting),为什么要做多项式拟合?是因为我们根据现有的数据(输入,输出对),想要预测:给定一个新的数据,其输出是什么。中间的决策箱就是所谓的“训练模型”,决策结果称为:预测。拟合函数如下(1其中x是训练数据向量,W是训练的参数,整体称为模型,M是多项式的阶次。式(1)对x来说y是非线性的  但是对于w系数来说,y是线性的模型。这里x的次幂为M,这个参数表示模型的复杂程度,x的次幂越高,模型越复杂,同样也需要大于这个M的样本,也即是:模型越... Read More

PHP Internals Book 中文版 – Zvals – 基础结构

基础结构一个zval(“Zend value”的缩写)代表一个任意类型的PHP变量。所以,它很可能是PHP中最重要的数据结构,同时你将会频繁地使用它。本章节讲述zvals的基础概念及其使用方法。类型和值每一个zval都会存储某个值和其对应的类型。这点非常重要,因为PHP是一门动态类型语言,所以变量的类型只有当运行时才会确定,并不是在编译时就能够确定。此外,zval的类型在其生命周期是可以改变的,所以如果这个zval在最初存储了一个整形,那么在之后的某个时间点他也可能会存储了一个字符串。 类型是存储在一个整形的标签中(一个 unsigned char 类型的变量)。它有8中类型的值,分别对应着PHP中的8中变量类型。这些值可以用诸如IS_TYPE形式的常量来使用。比如:IS_NULL对应null类型,IS_STRING对应字符串类型。真实的值是存储在一个联合体中,如下所示typedef union _zvalue_value ... Read More

PHP Internals Book 中文版 – Zvals

Zval本章节的主题为用来表达PHP变量的zval数据结构。我们将会围绕zvals的概念和如何在扩展开发中使用两方面来进行阐述。目录基础结构类型和值访问宏赋值内存管理值语义和引用语义引用计数和写时复制分配并初始化zval管理引用计数和zval销毁复制zval分离zval类型转换和操作符基础操作符比较类型转换 Read More