- 博客(219)
- 资源 (1)
- 收藏
- 关注
原创 写一个brainfuck语言的解释器
Brainfuck 语法介绍有一种很神奇的编程语言叫做brainfuck. 很多人都学过C++, Java, Python等主流的语言,总是会有一种“天哪,语法好复杂”的感觉,brainfuck的语法则超级简单: 字符命令 含义 > 指针右移一个单位 < 指针左移一个单位 + 当前数据加一 - 当前数据减一 . 输出当前数据 , 读入一个字节并赋
2016-06-26 12:38:14 5080
原创 google的RPC框架:grpc 介绍
简要介绍google 去年开源了一个RPC(remote procedure call)框架grpc:https://github.com/grpc/grpcRPC的中文翻译是远程过程调用,是在服务器端程序设计常用的一种技术。对于本地过程调用,要做某件事,就在本机上执行某个代码段;对于RPC来说,服务的使用者和提供者可以位于不同的计算机上,客户端(client)只需要告诉服务器端(serv...
2016-05-24 05:26:01 15940
转载 命令行的艺术
转载自 https://github.com/jlevy/the-art-of-command-line必读基础日常使用文件及数据处理系统调试单行脚本冷门但有用仅限 OS X 系统更多资源免责声明授权条款必读涵盖范围:这篇文章对刚接触命令行的新手以及具有命令行使用经验的人都有用处。本文致力于做到覆盖面广(尽量包括一切重要的内容),具体(给出最常见的具体的例子)以及简洁(避免
2016-01-15 15:42:32 1471
转载 JIT(即时编译)
本文转自eoeandroid 最早的Java建置方案是由一套转译程式(interpreter),将每个Java指令都转译成对等的微处理器指令,并根据转译后的指令先后次序依序执行,由于一个Java指令可能被转译成十几或数十几个对等的微处理器指令,这种模式执行的速度相当缓慢。针对这个问题,业界首先开发出JIT(just in time)编译器 。当Java执行runtime环境时,每遇到 一个
2016-01-08 11:16:19 817
原创 Duck Typing介绍
介绍在动态语言的世界里一直流传着一种叫做鸭子类型(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.翻译过来:“如果行鸭子一样走路,像鸭子一样呱呱叫,那它就是一只鸭子”。从鸭子类型,我们可以联想到它
2016-01-08 10:17:53 1758
原创 判断计算机是大端还是小端
介绍计算机有little endian(小端)和big endian(大端)之分,两张从 维基百科盗来的图就可以说明它们的区别:对于32位的整数,大端机器会在内存的低地址存储高位,在高地址存储低位。小端机器恰好相反,内存的低地址存储低位,在高地址存储低位。大端表示法和人的直观比较相符,从低地址向高地址看过去,就是原先的数;小端表示法更便于计算机的操作,地址增加和个十百千万的增加是一致的。如何判断自己
2016-01-07 14:22:26 9180 1
原创 函数式编程(functional programming)学习总结
梳理一下函数式编程中的各个概念,会不定期更新。大部分是转载别人的文章,加一些感想,所以也不能算作原创。之所以会写这个是看到了分享的一个ppt: https://docs.google.com/presentation/d/1SwrUqNVVsHxmwmnT7QYsnf3b7gDi9lTZRD-4-wPLA28/edit#slide=id.p,我以前也接触过FP,但很少实际写,用FP比如scala写
2015-12-27 18:42:02 2558
转载 Linux文件系统实现
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! Linux文件管理从用户的层面介绍了Linux管理文件的方式。Linux有一个树状结构来组织文件。树的顶端为根目录(/),节点为目录,而末端的叶子为包含数据的文件。当我们给出一个文件的完整路径时,我们从根目录出发,经过沿途各个目录,最终到达文件。我们可以对文件进行许多操
2015-12-13 12:30:50 793
原创 用C语言在终端打印彩色字符串
看别人的开源项目的时候发现,原来在终端可以打印带颜色的字符串的。。还蛮有意思的,只需要在待打印的字符串前面和后面分别加一串修饰字符就行了。下面是C语言的一个例子:#include <stdio.h>#define ANSI_COLOR_RED "\x1b[31m"#define ANSI_COLOR_GREEN "\x1b[32m"#define ANSI_COLOR_YELLOW
2015-12-10 12:37:50 6907 5
原创 将所有文件的tab换成4个空格
写代码有强迫症,一定要把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
2015-12-07 19:17:22 7206 2
转载 Ruby命令行参数介绍
命令行参数“从命令行开始”。不管Ruby用在哪个系统上,无论是超级的科学工作站或者是嵌入式PDA设备,你无论如何都要从Ruby的解释器开始,这会给我们传递命令行参数的机会。Ruby的命令行由三个部分组成:Ruby解释器选项,可选的要运行程序的名字,和可选的用于那个程序的一组参数。ruby [ options ] [ -- ] [ programfile ] [ argu
2015-11-30 21:59:58 1313
原创 C中可变参数的宏
在C中,宏的定义支持可变个数的参数,用三个点号来表示,和可变参数的函数定义是比较类似的。下面是一个例子: #define debug(format, ...) fprintf (stderr, format, __VA_ARGS__)其中”…”就表示可变参数,可以是0个到多个,在编译的时候__VA_ARGS__ 会被替换成相应的参数列表。debug("%d apples\n", 10);替换的结
2015-11-30 15:16:35 590
原创 Google APAC 2016 University Graduates Test Round D解题报告
我过了AB两题,C的大数据挂了,D的大数据没有提交,61分滚粗。。。A. Dynamic Grid这个非常简单啦。。每一次查询就对网格做一些广搜,判断有多少连通分量;每一次查询就直接在二维数组上修改。判断连通分量个数用并查集也行,都不难。#include <bits/stdc++.h>#define FOR(i, n) for (int i = 0; i < (int)n; ++i)using
2015-11-09 18:23:31 1162 1
原创 Git 永久删除文件
简略版假设要删除的文件是password.txt,运行如下命令:git filter-branch --force --index-filter 'git \rm --cached --ignore-unmatch password.txt' \--prune-empty --tag-name-filter cat -- --all如果commit已经同步到了github,那么再运行如下命令永久
2015-10-27 20:17:51 8709 2
原创 Google APAC 2016 University Graduates Test Round C解题报告
照例先传个成绩截图: 比赛地址: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
2015-10-19 14:55:20 1708 4
翻译 回文树介绍(Palindromic Tree)
简介回文树是由Mikhail Rubinchik大神发明的,在Petrozavodsk Summer Camp 2014上首次提出来,是一个很新的数据结构,目前相关资料比较少。顾名思义,回文树是一个用来解决回文串相关问题。回文树的结构就像线段树、平衡树等其它树结构一样,回文树由若干个节点组成,每个节点代表一个回文串(palindrome)。节点 例子:四个节点的回文串边节点之间通过有向边连接起来,
2015-09-26 00:12:39 12728 7
原创 Google APAC 2016 University Graduates Test Round B解题报告
先传个笔试成绩的截图: 这次算是成绩最好的一次了,笔试结束后仍然可以练习,地址戳https://code.google.com/codejam/contest/10214486/dashboard。A. Travel一看就是图论当中最短路的变形,但是边的权重会随着时间发生变化。对于dijkstra或者Bellman Ford之类的最短路算法,它们本质上都是动态规划,需要满足最优子结构性质,如果边权
2015-09-21 13:54:34 2225 4
原创 Google APAC 2016 University Graduates Test Round A解题报告
这是google 2016年校招的在线笔试第一轮,题目的链接可点击https://code.google.com/codejam/contest/4284486/dashboard,由于大多是考察基础知识,所以比竞赛题目要简单很多。A.Googol String注意到K最大是10^18,每一个字符串的前缀都是前一个字符串,因此只要找到第一个长度不小于K的Sn,然后递归求解就行了。由于字符串长度是指数
2015-08-25 18:35:02 2574 8
转载 树链剖分
“在一棵树上进行路径的修改、求极值、求和”乍一看只要线段树就能轻松解决,实际上,仅凭线段树是不能搞定它的。我们需要用到一种貌似高级的复杂算法——树链剖分。 树链,就是树上的路径。剖分,就是把路径分类为重链和轻链。 记siz[v]表示以v为根的子树的节点数,dep[v]表示v的深度(根深度为1),top[v]表示v所在的重链的顶端节点,fa[v]表示v的父亲,son[v]表示
2015-08-01 16:20:09 557
转载 BeautifulSoup解析网页信息
在前面的例子用,我用了BeautifulSoup来从58同城抓取了手机维修的店铺信息,这个库使用起来的确是很方便的。本文是BeautifulSoup 的一个详细的介绍,算是入门把。文档地址:http://www.crummy.com/software/BeautifulSoup/bs4/doc/什么是BeautifulSoup?Beautiful Soup 是用Python写的一个
2015-07-18 23:50:09 746
转载 关于syslog
syslog 系统日志应用 1) 概述 syslog是Linux系统默认的日志守护进程。默认的syslog配置文件是/etc/syslog.conf文件。程序,守护进程和内核提供了访问系统的日志信息。因此,任何希望生成日志信息的程序都可以向 syslog 接口呼叫生成该信息。 几乎所有的网络设备都可以通过syslog协议,将日志信息以用户数据报协议(UDP)方式传送
2015-06-04 14:40:55 716
转载 同步调用、回调和异步调用区别
同步调用是以一种阻塞式调用比如说:古代的长城的烽火传递信息,现在我们假设每个烽火只能看到相邻的烽火状态,每个烽火的状态只有亮和暗。现在有A、B、C、D四个烽火,A首先点亮,B看到A的烽火亮了,立马去点火,花了2秒点亮。但是这时候负责C烽火的人在睡觉,可是这时候所有人都在等待C点亮,终于C睡了2个小时候看到了B点亮,然后去点亮。D由于长期没有点亮,导致烽火出现问题,因此整个过程都在等待D的完
2015-04-20 23:27:55 983
原创 Google Code Jam 2015资格赛
题目在这里:https://code.google.com/codejam/contest/6224486/dashboard有种资格赛一年比一年难的感觉,难道是我越来越弱了。。。。A. Standing Ovation注意到如果x是一个可行解的话,所有比x大的数都会是可行解,因此很自然的满足二分的要求。不过数据范围比较小,也可以从小到大进行暴力枚举,然后验证是否符合要
2015-04-14 12:37:02 1982
原创 【递归 & 动态规划】POJ 1191 棋盘分割
大一的时候接触这道题目,当时死活不会做。。。最近突然又想起了这个伤疤,就把这道题给秒杀掉了,想想当年的我真是笨到家了T_T首先对表达式进行变形,不考虑常量,最终其实就是求分成n块,使得每块的分值平方和最小。基本思想很简单了,用dp[r1][c1][r2][c2][n]表示r1行到r2行、c1列到c2列的矩形区域切n刀得到的最小平方和,n=0时是一个边界条件,对于n>0的情形
2015-03-25 14:45:26 984
原创 web服务器基本原理以及micro_httpd
最近对各种web server的实现原理比较有好奇心,就从最基础的部分开始看了一些代码和资料。web server的基本功能就是接受请求(request),然后根据请求的类型以及内容,返回响应(response)。先从最基本的功能开始,不考虑并发性、效率、安全性等优化策略。现在最流行的web server包括Apache、Microsoft IIS以及Nginx,代码量比较大,不适合初
2015-03-25 14:38:05 3616
原创 Facebook Hacker Cup Round1 2015 题解
比赛是两三个月之前的了,由于北京时间是凌晨,也没有参加。于是就在codeforces上做了一下:http://codeforces.com/gym/100579A. Homework数论题目,预先计算出每个数有多少个质因子,然后每次查询来临时,线性扫描统计即可。#include #define FOR(i, n) for (int i = 0; i < n; ++i)usi
2015-03-06 18:06:44 1041
翻译 OpenCL向量加法
简介下面一个例子介绍了向量加法的OpenCL版,相当于学习C语言中的“Hello World”,本篇教程中的代码以及其余相关教程都可以通过OLCF github下载vecAdd.c#include #include #include #include // OpenCL kernel. Each work item takes care of one ele
2015-03-04 12:02:13 5083
原创 Facebook Hacker Cup 2015 qualification round解题报告
题目可以戳:https://www.facebook.com/hackercup/problems.php?pid=582062045257424&round=742632349177460墙高,准备好梯子。众所周知,资格赛肯定是恨水的啦。。。于是又水了一发满分,希望接下来不要爆零。。。A. Cooking the Books把所有的字符串都构造出来,然后排
2015-01-13 21:21:06 1586
翻译 linux/unix 中cut命令应用举例
Linux/Unix中的cut命令用来从每一行文本中选择一部分,通过指定分隔符,可以选出指定的某些行或者列,也可以选出某个范围的字符。下面的所有例子都是基于file.txt文件,文件内容可通过cat命令查看:> cat file.txtunix or linux osis unix good osis linux good os1. 输出指定位置的字符内容通过-c选
2014-12-27 19:18:55 2375
转载 SecureCRT自动断开连接的问题
直接在虚拟机上ssh道实验室的服务器时并没有发现过上一段时间不操作就会断开,可能是我没有注意,也能是操作时间间隔比较短。但是在secureCRT上登录时,发现经常的断开,很是郁闷,所以baidu了一下,呵呵,好多人都遇到过这种问题。我也贴一下,方便记忆。有时候服务器端的 /etc/profile 或者 ~/.bash_profile 中设置了 TMOUT 选项,或者是 /etc/s
2014-11-24 21:35:51 3743
转载 十道海量数据处理面试题与十个方法大总结
第一部分、十道海量数据处理面试题 1、海量日志数据,提取出某日访问百度次数最多的那个IP。 此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。 再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多
2014-11-24 10:50:47 699
转载 curl命令详解
对于windows用户如果用Cygwin模拟unix环境的话,里面没有带curl命令,要自己装,所以建议用Gow来模拟,它已经自带了curl工具,安装后直接在cmd环境中用curl命令就可,因为路径已经自动给你配置好了。 linux curl是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具。 一,
2014-11-22 20:39:05 651
原创 【单调队列】leetcode MinStack
题目在这里:https://oj.leetcode.com/problems/min-stack/和普通的栈zhiyouyidianqubie
2014-11-16 17:03:14 1062
转载 常用资源
Deep Learning(深度学习):ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):二Bengio团队的deep learning教程,用的theano库,主要是rbm系列,搞python的可以参考,很不错。deeplearning.net主页,里面包含的信息量非常多,
2014-11-16 11:53:27 2030
转载 使用 jsoup 对 HTML 文档进行解析和操作
soup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。本文主要介绍如何使用 jsoup 来进行常用的 HTML 解析。jsoup 简介Java 程序在解析 HTML 文档时,相信大家都接触过 ht
2014-11-11 20:03:50 1045
原创 Google 2015 校招第四轮在线技术笔试 解题报告
题目在这里:https://code.google.com/codejam/contest/6214486/dashboardzhe
2014-11-09 17:28:34 1827
转载 deep learning综述 & Theano举例
深度学习是ML研究中的一个新的领域,它被引入到ML中使ML更接近于其原始的目标:AI。查看a brief introduction to Machine Learning for AI 和 an introduction to Deep Learning algorithms. 深度学习是关于学习多个表示和抽象层次,这些层次帮助解释数据,例如图像,声音和文本。对于更多的关于深度
2014-11-07 12:37:23 783
原创 【线段树 + 离散化 + 扫描线】poj 1151 Atlantis 矩形面积并
将所有的线段按照x左边从小到大排序,并对所有的横纵坐标jinxing
2014-11-06 11:14:42 577
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人