新的工作,新的方向,现在开始朝移动平台方向发展了,今年的目标的是在IPhone开发上成为熟练的“码农” :) 。还没上班呢,传说中的mac book也没领到手(咽下口水先~~),只好先在windows下弄个object-c的编译环境下,因为xcode用的也是gcc的编译器,所以理论上任何平台都是可以编译object-c的,具体步骤如下:1. 搭建GNUStep http://www.gnustep.org/experience/Windows.html 在这里下载前面三个,GNUstep MSYS System,GNUstep Core,GNUstep Devel,不多说了,全部装好就是了。2 Read More
posted @ 2011-01-14 16:46 hjtc Views(7955) Comments(3) Diggs(1) Edit
strcp strlcp memcp的实现,又写了一遍,也不知道是第几遍了。目标串的容量,字符串重叠,宽字符,四字节优化这些东西不考虑了。 Read More
posted @ 2011-01-06 21:47 hjtc Views(403) Comments(0) Diggs(0) Edit
一些老掉牙的知识点,就怕阴沟里翻船,全部翻出来看看。内存对齐,sizeof,strlen类问题: 这类问题都是考基本的内存方面的问题,基本类型的数据么,主要是字符串和指针的问题,字符串主要尾部的\0,指针注意32位机器上都是4字节的。复合类型就有对齐的问题,简单来说是由成员的对大对齐单位来指定的。具体看例子: Read More
posted @ 2011-01-06 20:10 hjtc Views(466) Comments(0) Diggs(0) Edit
TCP本身的可靠性是利用确认机制,超时重发来保证的,这些不说了,网上资料很多。不过以前一直没有仔细学习过TCP的网络拥塞控制,现在记录下一些总结吧。 什么是拥塞?     一图胜千言,看上面的图,上面是负载-吞吐量,下面是负载-延迟,问题很明显了,受限于网络节点的物理承受能力,负载显然不可能和吞吐量成线性关系,当负载在Knee点的时候,吞吐量在一个较高的水平,同时数据包的延迟也较小,网络处于一个... Read More
posted @ 2011-01-06 14:14 hjtc Views(3142) Comments(0) Diggs(0) Edit
什么是滑动窗口协议?     一图胜千言,看下面的图。简单解释下,发送和接受方都会维护一个数据帧的序列,这个序列被称作窗口。发送方的窗口大小由接受方确定,目的在于控制发送速度,以免接受方的缓存不够大,而导致溢出,同时控制流量也可以避免网络拥塞。下面图中的4,5,6号数据帧已经被发送出去,但是未收到关联的ACK,7,8,9帧则是等待发送。可以看出发送端的窗口大小为6,这是由接受端告知的(事实上必须考... Read More
posted @ 2011-01-06 13:27 hjtc Views(22179) Comments(4) Diggs(4) Edit
哎~ 情况继续恶化,电视台都来了~~~,原本一个运作正常的公司,突然就不行了。。。真是神马都是浮云。 继续来个面试题,倒是也不怎么无聊,就是不知道有啥用,不过做做题,心里还平静点。   话说题目是,用随机算法求PI,就是圆周那个PI。随机算法神马的从来都是用过,没写过,这里随便贴个线性同余法     其中b = 0,c = 0,d = m。d称为该随机序列的种子。如何选取该方法中的常数... Read More
posted @ 2011-01-04 14:49 hjtc Views(497) Comments(0) Diggs(0) Edit
公司糟了灾,年底了还要去找工作,真是流年不利啊。面试题啥的,向来是很反感的,有啥意义呢?哎~~,世道如此,只好把面经啥的又捧起来看了,烦啊。 题目很简单了,就是打印下面这种样式的字符,主要的逻辑很简单,可是面经上的解答实在不给力啊,直接就main里一个for就打印出来,这不是骗小孩么,也不知道那时候买这个干嘛,不过那会刚毕业,也差不多是个小屁孩了。往简单了想,变化点有三个,一个是打印的行数,一个是打印到什么位置,一个是打印的花纹,OO啥的不折腾了,就用C风格写下算了。 打印的风格函数用回调函数来隔离变化,比如上面的图里第一行是有星号,没点号的。需求变化的话,可以变成从第一行开始就有点号,第二行 Read More
posted @ 2011-01-04 13:22 hjtc Views(597) Comments(2) Diggs(0) Edit
为什么要用WSAAsynSelect? 服务端的IO模型,常见的是select、poll、epoll这种select模型,或是IOCP,AIO这种异步IO模型,这在服务器端无疑是合理的选择,那么客户端呢?用select或是AIO是否合理,或者是否有必要呢?考虑到客户端总是需要一个UI线程,如果需要用上面的解决方案,必然需要引入另外的线程来做这部分工作,线程之间的通信,同步资源,都是麻烦的东西。多线程的设计无疑使得程序变得复杂和难于调试,难道不能用单线程来实现整个客户端么?实际上是可以的,windows中提供的WSAAsynSelect就可以很方便的在一个线程中实现UI和异步IO的处理。WSAA Read More
posted @ 2011-01-03 14:24 hjtc Views(1772) Comments(0) Diggs(1) Edit
什么是signal/slot机制? 这是一种注册/回调机制,QT,libjingle中都很常用。它同时也是一种观察者模式的实现。为什么需要signal/slot机制? 表扬好同学之前,先批评下坏同学,就是MFC这个让很多IT童鞋头痛不已的框架。想象一个最常见的场景,拉一个对话框,上面放两个按钮,一个文本框,按钮按一下,文本框上数字增加或是减少一个。如果你来实现要怎么做呢?很简单么,SendMessage or PostMessage不就好了,那消息发给谁呢?爱谁谁么,直接发给文本框,要不统一发给对话框,让它转发不就行了么。无论是哪种方法都是糟糕的设计,难于扩展,难于维护,难于修改。为什么呢?先 Read More
posted @ 2011-01-02 21:22 hjtc Views(1720) Comments(0) Diggs(1) Edit
SSL(Secure Socket Layer): 是Netscape公司设计的主要用于WEB的安全传输协议。从名字就可以看出它在https协议栈中负责实现上面提到的加密层。因此,一个https协议栈大致是这样的: http中,针对客户端/服务器这种模式,SSL的加密过程: 1. 客户端向服务器发起https请求(比如https://www.google.com/)。 2. 服务器将自己的数字证... Read More
posted @ 2010-12-30 17:24 hjtc Views(450) Comments(0) Diggs(0) Edit