<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[BananaTree]]></title><description><![CDATA[人生是一场长跑，现在一定要沉得住气，静得下心来踏踏实实努力~~]]></description><link>https://blog.youkuaiyun.com/lwfcgz</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lwfcgz]]></copyright><item><title><![CDATA[写一个brainfuck语言的解释器]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/48662557</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/48662557</guid><author>lwfcgz</author><pubDate>Sun, 26 Jun 2016 12:38:14 +0800</pubDate><description><![CDATA[Brainfuck 语法介绍有一种很神奇的编程语言叫做brainfuck. 很多人都学过C++, Java, Python等主流的语言，总是会有一种“天哪，语法好复杂”的感觉，brainfuck的语法则超级简单：
  字符命令
  含义  >
  指针右移一个单位
  <
  指针左移一个单位
  +
  当前数据加一
  -
  当前数据减一
  .
  输出当前数据
  ,
  读入一个字节并赋]]></description><category></category></item><item><title><![CDATA[google的RPC框架：grpc 介绍]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/51475402</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/51475402</guid><author>lwfcgz</author><pubDate>Tue, 24 May 2016 05:26:01 +0800</pubDate><description><![CDATA[简要介绍

google 去年开源了一个RPC(remote procedure call)框架grpc：https://github.com/grpc/grpc

RPC的中文翻译是远程过程调用，是在服务器端程序设计常用的一种技术。对于本地过程调用，要做某件事，就在本机上执行某个代码段；对于RPC来说，服务的使用者和提供者可以位于不同的计算机上，客户端(client)只需要告诉服务器端(serv...]]></description><category></category></item><item><title><![CDATA[命令行的艺术]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/50524155</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/50524155</guid><author>lwfcgz</author><pubDate>Fri, 15 Jan 2016 15:42:32 +0800</pubDate><description><![CDATA[转载自 https://github.com/jlevy/the-art-of-command-line
必读
基础
日常使用
文件及数据处理
系统调试
单行脚本
冷门但有用
仅限 OS X 系统
更多资源
免责声明
授权条款
必读涵盖范围：
这篇文章对刚接触命令行的新手以及具有命令行使用经验的人都有用处。本文致力于做到覆盖面广（尽量包括一切重要的内容），具体（给出最常见的具体的例子）以及简洁（避免]]></description><category></category></item><item><title><![CDATA[JIT（即时编译）]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/50481527</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/50481527</guid><author>lwfcgz</author><pubDate>Fri, 08 Jan 2016 11:16:19 +0800</pubDate><description><![CDATA[本文转自eoeandroid      最早的Java建置方案是由一套转译程式（interpreter），将每个Java指令都转译成对等的微处理器指令，并根据转译后的指令先后次序依序执行，由于一个Java指令可能被转译成十几或数十几个对等的微处理器指令，这种模式执行的速度相当缓慢。针对这个问题，业界首先开发出JIT（just in time）编译器 。当Java执行runtime环境时，每遇到 一个]]></description><category></category></item><item><title><![CDATA[Duck Typing介绍]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/50480326</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/50480326</guid><author>lwfcgz</author><pubDate>Fri, 08 Jan 2016 10:17:53 +0800</pubDate><description><![CDATA[介绍在动态语言的世界里一直流传着一种叫做鸭子类型(Duck Typing)的风格:When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.翻译过来：“如果行鸭子一样走路，像鸭子一样呱呱叫，那它就是一只鸭子”。从鸭子类型，我们可以联想到它]]></description><category></category></item><item><title><![CDATA[判断计算机是大端还是小端]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/50476051</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/50476051</guid><author>lwfcgz</author><pubDate>Thu, 07 Jan 2016 14:22:26 +0800</pubDate><description><![CDATA[介绍计算机有little endian（小端）和big endian（大端）之分，两张从 维基百科盗来的图就可以说明它们的区别：对于32位的整数，大端机器会在内存的低地址存储高位，在高地址存储低位。小端机器恰好相反，内存的低地址存储低位，在高地址存储低位。大端表示法和人的直观比较相符，从低地址向高地址看过去，就是原先的数；小端表示法更便于计算机的操作，地址增加和个十百千万的增加是一致的。如何判断自己]]></description><category></category></item><item><title><![CDATA[函数式编程(functional programming)学习总结]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/50412935</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/50412935</guid><author>lwfcgz</author><pubDate>Sun, 27 Dec 2015 18:42:02 +0800</pubDate><description><![CDATA[梳理一下函数式编程中的各个概念，会不定期更新。大部分是转载别人的文章，加一些感想，所以也不能算作原创。之所以会写这个是看到了分享的一个ppt： 
https://docs.google.com/presentation/d/1SwrUqNVVsHxmwmnT7QYsnf3b7gDi9lTZRD-4-wPLA28/edit#slide=id.p，我以前也接触过FP，但很少实际写，用FP比如scala写]]></description><category></category></item><item><title><![CDATA[Linux文件系统实现]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/50282109</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/50282109</guid><author>lwfcgz</author><pubDate>Sun, 13 Dec 2015 12:30:50 +0800</pubDate><description><![CDATA[作者：Vamei 出处：http://www.cnblogs.com/vamei 欢迎转载，也请保留这段声明。谢谢！
 
Linux文件管理从用户的层面介绍了Linux管理文件的方式。Linux有一个树状结构来组织文件。树的顶端为根目录(/)，节点为目录，而末端的叶子为包含数据的文件。当我们给出一个文件的完整路径时，我们从根目录出发，经过沿途各个目录，最终到达文件。
我们可以对文件进行许多操]]></description><category></category></item><item><title><![CDATA[用C语言在终端打印彩色字符串]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/50248121</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/50248121</guid><author>lwfcgz</author><pubDate>Thu, 10 Dec 2015 12:37:50 +0800</pubDate><description><![CDATA[看别人的开源项目的时候发现，原来在终端可以打印带颜色的字符串的。。还蛮有意思的，只需要在待打印的字符串前面和后面分别加一串修饰字符就行了。下面是C语言的一个例子：#include <stdio.h>#define ANSI_COLOR_RED     "\x1b[31m"
#define ANSI_COLOR_GREEN   "\x1b[32m"
#define ANSI_COLOR_YELLOW]]></description><category></category></item><item><title><![CDATA[将所有文件的tab换成4个空格]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/50209749</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/50209749</guid><author>lwfcgz</author><pubDate>Mon, 07 Dec 2015 19:17:22 +0800</pubDate><description><![CDATA[写代码有强迫症，一定要把tab换成4个空格，如果文件很多的话，一个一个替换不方便，用一个shell命令就能完成。find . -name '*.cpp' ! -type d -exec bash -c 'expand -t 4 "$0" > /tmp/e && mv /tmp/e "$0"' {} \;上述命令将本目录下的所有.cpp结尾的文件中的tab统统换成4个空格。参考：1.http://st]]></description><category></category></item><item><title><![CDATA[Ruby命令行参数介绍]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/50119493</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/50119493</guid><author>lwfcgz</author><pubDate>Mon, 30 Nov 2015 21:59:58 +0800</pubDate><description><![CDATA[命令行参数


“从命令行开始”。不管Ruby用在哪个系统上，无论是超级的科学工作站或者是嵌入式PDA设备，你无论如何都要从Ruby的解释器开始，这会给我们传递命令行参数的机会。

Ruby的命令行由三个部分组成：Ruby解释器选项，可选的要运行程序的名字，和可选的用于那个程序的一组参数。

ruby [ options ] [ -- ] [ programfile ] [ argu]]></description><category></category></item><item><title><![CDATA[C中可变参数的宏]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/50112857</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/50112857</guid><author>lwfcgz</author><pubDate>Mon, 30 Nov 2015 15:16:35 +0800</pubDate><description><![CDATA[在C中，宏的定义支持可变个数的参数，用三个点号来表示，和可变参数的函数定义是比较类似的。下面是一个例子： #define debug(format, ...) fprintf (stderr, format, __VA_ARGS__)
其中”…”就表示可变参数，可以是0个到多个，在编译的时候__VA_ARGS__ 会被替换成相应的参数列表。debug("%d apples\n", 10);
替换的结]]></description><category></category></item><item><title><![CDATA[Google APAC 2016 University Graduates Test Round D解题报告]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/49742233</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/49742233</guid><author>lwfcgz</author><pubDate>Mon, 09 Nov 2015 18:23:31 +0800</pubDate><description><![CDATA[我过了AB两题，C的大数据挂了，D的大数据没有提交，61分滚粗。。。A. Dynamic Grid这个非常简单啦。。每一次查询就对网格做一些广搜，判断有多少连通分量；每一次查询就直接在二维数组上修改。判断连通分量个数用并查集也行，都不难。#include <bits/stdc++.h>
#define FOR(i, n) for (int i = 0; i < (int)n; ++i)
using]]></description><category></category></item><item><title><![CDATA[Git 永久删除文件]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/49453375</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/49453375</guid><author>lwfcgz</author><pubDate>Tue, 27 Oct 2015 20:17:51 +0800</pubDate><description><![CDATA[简略版假设要删除的文件是password.txt，运行如下命令：git filter-branch --force --index-filter 'git \
rm --cached --ignore-unmatch password.txt' \
--prune-empty --tag-name-filter cat -- --all如果commit已经同步到了github，那么再运行如下命令永久]]></description><category></category></item><item><title><![CDATA[Google APAC 2016 University Graduates Test Round C解题报告]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/49249271</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/49249271</guid><author>lwfcgz</author><pubDate>Mon, 19 Oct 2015 14:55:20 +0800</pubDate><description><![CDATA[照例先传个成绩截图： 
比赛地址：https://code.google.com/codejam/contest/4284487/dashboard，仍然可以练习。A.gRanks这个比较水，计算一下每个人的总分，排一下序就行了。#include <bits/stdc++.h>
#define FOR(i, n) for (int i = 0; i < (int)n; ++i)
using name]]></description><category></category></item><item><title><![CDATA[回文树介绍(Palindromic Tree)]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/48739051</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/48739051</guid><author>lwfcgz</author><pubDate>Sat, 26 Sep 2015 00:12:39 +0800</pubDate><description><![CDATA[简介回文树是由Mikhail Rubinchik大神发明的，在Petrozavodsk Summer Camp 2014上首次提出来，是一个很新的数据结构，目前相关资料比较少。顾名思义，回文树是一个用来解决回文串相关问题。回文树的结构就像线段树、平衡树等其它树结构一样，回文树由若干个节点组成，每个节点代表一个回文串(palindrome)。节点 
例子：四个节点的回文串边节点之间通过有向边连接起来，]]></description><category></category></item><item><title><![CDATA[Google APAC 2016 University Graduates Test Round B解题报告]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/48625161</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/48625161</guid><author>lwfcgz</author><pubDate>Mon, 21 Sep 2015 13:54:34 +0800</pubDate><description><![CDATA[先传个笔试成绩的截图： 
这次算是成绩最好的一次了，笔试结束后仍然可以练习，地址戳https://code.google.com/codejam/contest/10214486/dashboard。A. Travel一看就是图论当中最短路的变形，但是边的权重会随着时间发生变化。对于dijkstra或者Bellman Ford之类的最短路算法，它们本质上都是动态规划，需要满足最优子结构性质，如果边权]]></description><category></category></item><item><title><![CDATA[Google APAC 2016 University Graduates Test Round A解题报告]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/47980749</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/47980749</guid><author>lwfcgz</author><pubDate>Tue, 25 Aug 2015 18:35:02 +0800</pubDate><description><![CDATA[这是google 2016年校招的在线笔试第一轮，题目的链接可点击https://code.google.com/codejam/contest/4284486/dashboard，由于大多是考察基础知识，所以比竞赛题目要简单很多。A.Googol String注意到K最大是10^18，每一个字符串的前缀都是前一个字符串，因此只要找到第一个长度不小于K的Sn，然后递归求解就行了。由于字符串长度是指数]]></description><category></category></item><item><title><![CDATA[树链剖分]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/47187507</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/47187507</guid><author>lwfcgz</author><pubDate>Sat, 01 Aug 2015 16:20:09 +0800</pubDate><description><![CDATA[“在一棵树上进行路径的修改、求极值、求和”乍一看只要线段树就能轻松解决，实际上，仅凭线段树是不能搞定它的。我们需要用到一种貌似高级的复杂算法——树链剖分。

    树链，就是树上的路径。剖分，就是把路径分类为重链和轻链。
    记siz[v]表示以v为根的子树的节点数，dep[v]表示v的深度(根深度为1)，top[v]表示v所在的重链的顶端节点，fa[v]表示v的父亲，son[v]表示]]></description><category></category></item><item><title><![CDATA[BeautifulSoup解析网页信息]]></title><link>https://blog.youkuaiyun.com/lwfcgz/article/details/46948053</link><guid>https://blog.youkuaiyun.com/lwfcgz/article/details/46948053</guid><author>lwfcgz</author><pubDate>Sat, 18 Jul 2015 23:50:09 +0800</pubDate><description><![CDATA[在前面的例子用，我用了BeautifulSoup来从58同城抓取了手机维修的店铺信息，这个库使用起来的确是很方便的。本文是BeautifulSoup 的一个详细的介绍，算是入门把。文档地址：http://www.crummy.com/software/BeautifulSoup/bs4/doc/

什么是BeautifulSoup？

Beautiful Soup 是用Python写的一个]]></description><category></category></item></channel></rss>