摘要: 0. placeholder头文件:namespace: placeholder placeholder 就是一堆帮助bind占参数位置的东西,名字分别为 _1, _2, _3, ..., _N。 它的作用是告诉编译器,这个参数我目前用它来占个坑,以后填。1. std::function 为了讲丑... 阅读全文
posted @ 2015-12-25 22:27 Ethan.Tang 阅读(671) 评论(0) 推荐(0) 编辑
摘要: Part 1: 安装GoogleMobileAds framework (即admob) 1. 安装Cocoapods,否则解决依赖关系和配置真的会把人不累死也得烦死 sudo gem install cocoapods 国内用户安装过程中可能遇到SSL连接出错的问题,请参考 Cocoapod安装过 阅读全文
posted @ 2015-12-06 09:38 Ethan.Tang 阅读(2169) 评论(1) 推荐(0) 编辑
摘要: How to Set up Cplex Dev Environment under Linux 1. Download the cplex binary to local2. Execute (root privilege recommended) Next, refer to INSTALL_DI 阅读全文
posted @ 2012-11-26 13:52 Ethan.Tang 阅读(672) 评论(0) 推荐(0) 编辑
摘要: 某些C/C++书籍教会了我们几十年前流行的写法,浑然不知的我们理所当然的写出这些代码,然后把当年造就了无数漏洞的恶魔重新放入新的体系里。 在理想情况下,对类型的错误应用会导致一些错误,并让我们第一时间发觉;在最糟的情况下,其错误在很久之后才被发现,而且那时我们的系统已经遭受了足够多的攻击。 几个基本 阅读全文
posted @ 2012-04-12 10:00 Ethan.Tang 阅读(1554) 评论(0) 推荐(0) 编辑
摘要: 类图:内容用的不少,最终没有继续使用指针赋值的方法,而是牺牲了一点效率规规矩矩地设计了一系列类,利用了多态。在性能与设计的取舍上,我偏向于设计多一点,这个具体情况具体分析好了……在最终的调用上就有了很大的简化:void Packet::analyzePacket(const Byte *packet){ EtherHeader *ethHeader =NULL; IPHeader *ipHeader =NULL; Header *header =EtherHeader::getInstance(packet); protoName =header->getNextPro... 阅读全文
posted @ 2012-04-05 12:08 Ethan.Tang 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 做嗅探器需要对抓来的数据包进行协议分析,一般而言可以做个协议栈什么的,这里展示一下今天下午遇到的问题。我的协议分析思路是这样子的(拿单个报头):class EtherHeader { Byte dstAddr[6]; Byte srcAddr[6]; Byte protocol[2];};假设收到的数据包以数组形式存在 content中,则如此可获得其内容:EtherHeader *ethHeader =(EtherHeader*) content;我本来的打算是考虑到每个协议头都有相似的行为,如分析下一个协议名、获得下一个协议的偏移等等,因此写了一个HeaderInter... 阅读全文
posted @ 2012-04-04 17:52 Ethan.Tang 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 天性凉薄,把很多人和事都看得太透,这种人注定要孤独一生的。然而命运的事情,谁能说的清楚?世界就是一个舞台,每个人都不过在拿着自己的剧本来演戏,我如何就不能去换一个剧本,譬如“好心的路人甲”?尝试着去改变自己,做一个热爱生活的人,做一个敢于面对自我的人,尝试着去改变深藏在自己本性之中的命运,去改变那种深藏于心的冷漠和惰性,不论我做了什么,或者最后我仍旧如无根浮萍,心中依旧没有任何真正在意之人,真正在意之事,然而作为一种尝试,做到了,足矣,做不到,对我而言,也早就没有哪种失败能够触动我心。七月要去给老大做小弟,苏州的产品应该是之前被老大收购的Agile ERP周边产品,这几个月来惶惑不知所终,沉沦 阅读全文
posted @ 2012-04-03 03:38 Ethan.Tang 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 用Umbrello自动生成框架之后,里面有很多临时用不着的空行,而且生成的头文件都是单词开头大写字母,但是到了内部的#include就成了小写,于是写了个脚本解决这个问题对于#ifndef..#define .. #endif在 #define行之后及 #endif行之前会各加一个空行perl对我而言是救急语言,写的草率,将就着用吧……使用:ls *.cpp *.h|./changeFile.pl#!/usr/bin/perl -w#TO DO:#replace all header includes which are in lowercase#remove all blank lines# 阅读全文
posted @ 2012-01-05 10:12 Ethan.Tang 阅读(919) 评论(1) 推荐(0) 编辑
摘要: 一段时间的迷失之后,终于可以找回自我了。 10月份开始奔走找工作,说来投的公司其实不多,只是因为对阿里云一家公司的对策失误,结果因小失大,一次没戏的上海之行把南京的几个重要机会都丢掉了,结果待到回徐州,大势已去,那时也是多多少少丢了斗志,一时间怀疑自己怀疑人生,恍惚间竟然找不到自己存在的价值。 总结一下那时的事,其实一切早就已经在预料之中,我曾经跟家人讲上海之行就是一次赌博,赌赢了诚然可惜,赌输了也是意料之中。10月份转眼过去,曾经的同伴去了各种名企,有一个还已经开始时不时发日志描述他的幸福生活。说来我的能力与他们不同,而我的能力也一直存在着。确实,我的简历上只是一些个人项目,没有一个代码行数 阅读全文
posted @ 2011-12-25 12:07 Ethan.Tang 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 目前矿大用的电信上网方式为拨号上网,主要就是在认证传输密码的过程中对密码做了一个变动,每次都不一样。先前有人做了破解写了个程序算密码,也有人写了利用pppoe的脚本,不过我后来发现,不是所有linux发行版都有这东西的,NetworkManager倒是基本都有安装,所以这里给出一个配置NetworkManager的上网方法。基本原理:利用脚本配置NetworkManager,每次联网启动脚本后,在联网菜单中选择DSLconnection即可,断网同样在菜单中选择选择disconnect即可。发生任何状况,鄙人概不负责by Cliff Donald************************ 阅读全文
posted @ 2011-12-07 12:03 Ethan.Tang 阅读(877) 评论(0) 推荐(0) 编辑