<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>天天好味道</title><link>http://blog.vckbase.com/jzhang/</link><description>没钱没权没户口，靠走靠吼靠小狗 </description><managingEditor>jzhang</managingEditor><dc:language>zh-CHS</dc:language><generator>.Text Version 0.958.2004.214</generator><item><dc:creator>jzhang</dc:creator><title>刨乐for Symbian 9.0/9.1 版发布内测</title><link>http://blog.vckbase.com/jzhang/archive/2008/01/18/32052.html</link><pubDate>Fri, 18 Jan 2008 06:38:00 GMT</pubDate><guid>http://blog.vckbase.com/jzhang/archive/2008/01/18/32052.html</guid><wfw:comment>http://blog.vckbase.com/jzhang/comments/32052.html</wfw:comment><comments>http://blog.vckbase.com/jzhang/archive/2008/01/18/32052.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blog.vckbase.com/jzhang/comments/commentRss/32052.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jzhang/services/trackbacks/32052.html</trackback:ping><description>又买了一个E50的手机，解决了最后一米的问题，终于发布了内测版。&lt;BR&gt;虽然还有不少问题，但接下来的路相对之前已经算是坦途。春节快要&lt;BR&gt;到了，希望到时候能让第三版用户用上刨乐给亲朋拜年：）&lt;BR&gt;&lt;BR&gt;顺便记录一个Symbian 9.1的bug：&lt;BR&gt;在E50等手机上，默认的堆栈大小是16K，这对很多情况下是不够用的。即使是一个简单的输入电话号码的&lt;BR&gt;对话框，也要超过这个限制。程序会崩溃，没有任何提示，TRAPD也不能捕获。解决的办法是修改mmp&lt;BR&gt;文件，将stacksize提高，一般设置为0x8000就可以了(32k)&lt;img src ="http://blog.vckbase.com/jzhang/aggbug/32052.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>jzhang</dc:creator><title>开通刨乐错误/需求跟踪系统 (mantis)</title><link>http://blog.vckbase.com/jzhang/archive/2007/10/24/30213.html</link><pubDate>Wed, 24 Oct 2007 13:42:00 GMT</pubDate><guid>http://blog.vckbase.com/jzhang/archive/2007/10/24/30213.html</guid><wfw:comment>http://blog.vckbase.com/jzhang/comments/30213.html</wfw:comment><comments>http://blog.vckbase.com/jzhang/archive/2007/10/24/30213.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.vckbase.com/jzhang/comments/commentRss/30213.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jzhang/services/trackbacks/30213.html</trackback:ping><description>&lt;A href="http://www.poporz.com/problems"&gt;http://www.poporz.com/problems&lt;/A&gt;&lt;BR&gt;&lt;img src ="http://blog.vckbase.com/jzhang/aggbug/30213.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>jzhang</dc:creator><title>刨乐1.6发布</title><link>http://blog.vckbase.com/jzhang/archive/2007/10/06/29873.html</link><pubDate>Sat, 06 Oct 2007 03:39:00 GMT</pubDate><guid>http://blog.vckbase.com/jzhang/archive/2007/10/06/29873.html</guid><wfw:comment>http://blog.vckbase.com/jzhang/comments/29873.html</wfw:comment><comments>http://blog.vckbase.com/jzhang/archive/2007/10/06/29873.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blog.vckbase.com/jzhang/comments/commentRss/29873.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jzhang/services/trackbacks/29873.html</trackback:ping><description>刨乐是一款非常实用的中文&lt;SPAN class=t_tag onclick=tagshow(event) href="http://www.3g365.com/tag.php?name=%D4%AD%B4%B4"&gt;原创&lt;/SPAN&gt;彩话&lt;SPAN class=t_tag onclick=tagshow(event) href="http://www.3g365.com/tag.php?name=%C8%ED%BC%FE"&gt;软件&lt;/SPAN&gt;。它可以在通话的同时播放&lt;SPAN class=t_tag onclick=tagshow(event) href="http://www.3g365.com/tag.php?name=%D2%F4%C0%D6"&gt;音乐&lt;/SPAN&gt;，我们称之为彩话。相比较其他同类&lt;SPAN class=t_tag onclick=tagshow(event) href="http://www.3g365.com/tag.php?name=%C8%ED%BC%FE"&gt;软件&lt;/SPAN&gt;，它有很多特点：&lt;BR&gt;1。 免费，原创，快速的技术支持和需求反馈。&lt;BR&gt;2。 支持mp3,ogg和amr格式，在同类软件中支持格式最广。&lt;BR&gt;3。 实时调节音量，独有轻柔技术。彻底解决了其他彩话软件干扰通话的问题。&lt;BR&gt;4。 支持一键播放。&lt;BR&gt;5。 全中文界面，丰富的联机帮助，使用简单。&lt;BR&gt;6。 通话时界面完全不干扰电话使用。可以随时隐藏再呼出，随时停止音乐播放。窗口位置可以移动。&lt;BR&gt;7。 经过特别优化的程序，&lt;SPAN class=t_tag onclick=tagshow(event) href="http://www.3g365.com/tag.php?name=%C4%DA%B4%E6"&gt;内存&lt;/SPAN&gt;占用小。&lt;BR&gt;8。 历时三个月的广泛试用，数十个升级版本，将刨乐锻造得功能实用，细节精致，程序稳定。&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;下载地址:&lt;BR&gt;&lt;A href="http://www.poporz.com/poporz.sis" target=_blank&gt;http://www.poporz.com/poporz.sis&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;支持平台：&lt;BR&gt;所有S60 2rd智能&lt;SPAN class=t_tag onclick=tagshow(event) href="http://www.3g365.com/tag.php?name=%CA%D6%BB%FA"&gt;手机&lt;/SPAN&gt;&lt;BR&gt;软件&lt;SPAN class=t_tag onclick=tagshow(event) href="http://www.3g365.com/tag.php?name=%C2%DB%CC%B3"&gt;论坛&lt;/SPAN&gt;：&lt;BR&gt;&lt;A href="http://bbs.poporz.com/" target=_blank&gt;http://bbs.poporz.com&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;img src ="http://blog.vckbase.com/jzhang/aggbug/29873.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>jzhang</dc:creator><title>想不到linus那么生猛....</title><link>http://blog.vckbase.com/jzhang/archive/2007/09/18/29531.html</link><pubDate>Tue, 18 Sep 2007 03:16:00 GMT</pubDate><guid>http://blog.vckbase.com/jzhang/archive/2007/09/18/29531.html</guid><wfw:comment>http://blog.vckbase.com/jzhang/comments/29531.html</wfw:comment><comments>http://blog.vckbase.com/jzhang/archive/2007/09/18/29531.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blog.vckbase.com/jzhang/comments/commentRss/29531.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jzhang/services/trackbacks/29531.html</trackback:ping><description>&lt;P&gt;开口就骂人满嘴bullshit.....&lt;A href="http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918"&gt;&lt;BR&gt;http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;看大师吵架就像看淑女打架一样，有种别样的快感。:)&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;linus 言论摘要：&lt;BR&gt;&lt;/P&gt;YOU are full of bullshit.&lt;BR&gt;C++ is a horrible language.&lt;BR&gt;It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much&amp;nbsp; easier to generate total and utter crap with it. （这句话最狠...太伤C++程序员自尊了)&lt;BR&gt;The fact is, git is better than the other SCM's.(真自信，有点狂妄吧)&lt;BR&gt;The very fact that you come in as a newbie, point to some absolutely &lt;B&gt;*trivial*&lt;/B&gt; patches, and use that as an argument for a language that the 
original author doesn't like, is a sign of you being a person who should be disabused on any idiotic notions as soon as possible.&lt;BR&gt;(火气真是大，早听说linux kernel社区对新人很不友好...)&lt;BR&gt;&lt;img src ="http://blog.vckbase.com/jzhang/aggbug/29531.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>jzhang</dc:creator><title>lampp基础上增加mod_cband控制速度和连接数</title><link>http://blog.vckbase.com/jzhang/archive/2007/08/10/28449.html</link><pubDate>Fri, 10 Aug 2007 02:54:00 GMT</pubDate><guid>http://blog.vckbase.com/jzhang/archive/2007/08/10/28449.html</guid><wfw:comment>http://blog.vckbase.com/jzhang/comments/28449.html</wfw:comment><comments>http://blog.vckbase.com/jzhang/archive/2007/08/10/28449.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blog.vckbase.com/jzhang/comments/commentRss/28449.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jzhang/services/trackbacks/28449.html</trackback:ping><description>&lt;A href="http://bbs.poporz.com"&gt;http://bbs.poporz.com&lt;/A&gt; 开张了，午夜咖啡人担任站长，找了好多朋友来帮忙。开设了电影，铃声，游戏，电子书等板块，热闹了不少。不过随之而来的是带宽开始不够用了。在升级带宽之前，决定先限制单个下载的速度。下面是一篇笔记，以供以后回忆查找。&lt;BR&gt;&lt;BR&gt;1. 使用mod_cband. 也可以用mod_bandwidth，不过这个模块只支持限速，不支持限制连接数。mod_cband都包揽了。下载地址是：&lt;BR&gt;&lt;A href="http://cband.linux.pl/download/mod-cband-0.9.7.5.tgz"&gt;http://cband.linux.pl/download/mod-cband-0.9.7.5.tgz&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;2. Apache版本2.2,这是lampp自带的。lampp也自带apxs，但是默认的安装中并没有带devel，也就是&lt;BR&gt;没有build和include两个目录，必须补齐。&lt;BR&gt;&lt;A href="http://nchc.dl.sourceforge.net/sourceforge/xampp/xampp-linux-devel-1.6.tar.gz"&gt;http://nchc.dl.sourceforge.net/sourceforge/xampp/xampp-linux-devel-1.6.tar.gz&lt;/A&gt; &lt;BR&gt;下载后把build和include目录放到lampp的安装目录里就可以了。&lt;BR&gt;&lt;BR&gt;3.解开mod-cband包，执行&lt;BR&gt;./configure&lt;BR&gt;make&lt;BR&gt;su为root&lt;BR&gt;make install&lt;BR&gt;如果上面的步骤都正确的话，make install应该顺利的在你的配置文件中添加LoadModule modules/mod_cband.so的语句。&lt;BR&gt;&lt;BR&gt;4. 配置httpd.conf&lt;BR&gt;a) 全局设置：&lt;BR&gt;&lt;BR&gt;CBandScoreFlushPeriod 1&lt;BR&gt;CBandRandomPulse On&lt;BR&gt;b)虚拟主机设置：&lt;BR&gt;&lt;VIRTUALHOST 1.2.3.4&gt;&lt;BR&gt;ServerName www.example.com&lt;BR&gt;ServerAdmin webmaster@example.com&lt;BR&gt;DocumentRoot /var/www&lt;BR&gt;CBandSpeed 1024kbps 10 30&lt;BR&gt;CBandRemoteSpeed 20kbps 3 3&lt;BR&gt;&lt;/VIRTUALHOST&gt;&lt;BR&gt;CBandSpeedn 1024kpbs 10 30就是总流量1Mb，每秒最多10个请求，同时发起连接不超过30个 &lt;BR&gt;CBandRemoteSpeed 20kbps 3 3就是单个用户最大速度20kbps，每秒最多3个请求，同时发起连接不超过3个。&lt;BR&gt;&lt;BR&gt;5.如果在configure的时候说找不到apxs，可以这样:&lt;BR&gt;cd /usr/bin&lt;BR&gt;ln -s /opt/lampp/bin/apxs apxs&lt;BR&gt;建立一个符号链接。&lt;BR&gt;&lt;BR&gt;6.重启Apache，ok.&lt;img src ="http://blog.vckbase.com/jzhang/aggbug/28449.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>jzhang</dc:creator><title>转载-理想的手机撒谎功能</title><link>http://blog.vckbase.com/jzhang/archive/2007/07/16/27441.html</link><pubDate>Mon, 16 Jul 2007 04:42:00 GMT</pubDate><guid>http://blog.vckbase.com/jzhang/archive/2007/07/16/27441.html</guid><wfw:comment>http://blog.vckbase.com/jzhang/comments/27441.html</wfw:comment><comments>http://blog.vckbase.com/jzhang/archive/2007/07/16/27441.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://blog.vckbase.com/jzhang/comments/commentRss/27441.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jzhang/services/trackbacks/27441.html</trackback:ping><description>看过之后我才明白我太单纯了。&lt;BR&gt;&lt;BR&gt;1． 对所有的通话历史、短信历史、电话本上锁的功能，以前我用过一款摩托罗拉的老式“V系列“手机可以做到，真的是“安全”极了。&lt;BR&gt;2． 还应该有特定时段（不方便接电话的时候）屏蔽特定分组所有来电功能（可以把情人号码全放到“情人”组里）&lt;BR&gt;3． 休息时段自动屏蔽公司所有来电功能（防止万恶的老板额外加班）&lt;BR&gt;4． 自动在免打扰时段放送“电话关机”“离开服务区”“无法接通”提示&lt;BR&gt;5． 情人来电自动震动提示，并且在三次震动未接之后自动转入上锁区域并删除该未接来电信息&lt;BR&gt;6． 可自动开启的“洗澡模式”，在男人洗澡或者睡觉的时候，一键锁定所有的功能，需要密码才可以打开，而在女性朋友看来，显示的是“电量不足”，无法继续操作，并且为男性朋友提供妻子“偷看路径”备忘录，提供老婆偷看自己手机的时间，看过哪些号码，看过哪几条短信等智能信息。&lt;BR&gt;7． 自动GPS定位及反定位，看似矛盾的功能，但鉴于GPS技术已经应用在手机上，可以准确监视手机持有者的行踪，估计不久的将来，会有人将GPS手机挂在会自己回家的信鸽身上满世界翱翔。&lt;BR&gt;8． 照相机镜头的伪装技术，即想偷拍新闻线索或者“裙下风光”时，不是用传统的手机镜头对着人。&lt;BR&gt;9． 自动男女声互变技术（伟大的创意，这个功能比较容易实现，只要安装有声频转换解码软件就可以了），接到女人的电话，按默认接听按钮就可以听到男声，且自动将电话本上的女性名字显示为预设好的男性名字，反之，亦然。&lt;BR&gt;10． 自动耳机信号衰减技术，大家常有一人接听电话周围的人全都听见，在人群里又听不清楚的情况出现，那么这样的手机自动判断周围环境，在安静时将声音变小，嘈杂时自动将声音变大……&lt;img src ="http://blog.vckbase.com/jzhang/aggbug/27441.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>jzhang</dc:creator><title>刨乐升级为1.2版</title><link>http://blog.vckbase.com/jzhang/archive/2007/07/16/27430.html</link><pubDate>Mon, 16 Jul 2007 00:59:00 GMT</pubDate><guid>http://blog.vckbase.com/jzhang/archive/2007/07/16/27430.html</guid><wfw:comment>http://blog.vckbase.com/jzhang/comments/27430.html</wfw:comment><comments>http://blog.vckbase.com/jzhang/archive/2007/07/16/27430.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/jzhang/comments/commentRss/27430.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jzhang/services/trackbacks/27430.html</trackback:ping><description>在1.1版的基础上，刨乐1.2增加了如下新功能：&lt;BR&gt;1. 第一次安装使用刨乐时，自动搜索磁盘音乐，建立音乐数据库。更体贴新用户。&lt;BR&gt;2. 搜索音乐时增加等待动画，告之用户搜索正在进行，并可随时中止，界面更友好。&lt;BR&gt;
&lt;DIV forimg="1"&gt;&lt;A href="http://www.poporz.com/" target=_blank&gt;&lt;IMG class=blogimg src="http://www.poporz.com/images/search.jpg" border=0 small="1"&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;BR&gt;3. 通话时可以选择&amp;#8220;单曲重放&amp;#8221;和&amp;#8220;只放一遍&amp;#8221;两种模式。 按 * 号键随时切换。 在重复&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 播放模式下，当前的音乐文件会被反复播放。&lt;BR&gt;4. 美化通话时的精灵界面，音量控制显示更为漂亮。&lt;BR&gt;
&lt;DIV forimg="1"&gt;&lt;A href="http://www.poporz.com/" target=_blank&gt;&lt;IMG class=blogimg src="http://www.poporz.com/images/repeat.jpg" border=0 small="1"&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;BR&gt;
&lt;DIV forimg="1"&gt;&lt;A href="http://www.poporz.com/" target=_blank&gt;&lt;IMG class=blogimg src="http://www.poporz.com/images/single.jpg" border=0 small="1"&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;BR&gt;5. 修正了一些小问题。&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;下载地址：&lt;BR&gt;&lt;A href="http://www.poporz.com/downloads/poporz_1.2.sis" target=_blank&gt;http://www.poporz.com/downloads/poporz_1.2.sis&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;英文版同时发布：&lt;BR&gt;&lt;A href="http://www.poporz.com/downloads/poporz_en_1.2.sis" target=_blank&gt;http://www.poporz.com/downloads/poporz_en_1.2.sis&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;同时增加了一段15秒的电话震铃音效文件.&lt;BR&gt;&lt;BR&gt;&lt;A href="http://www.poporz.com/downloads/music/" target=_blank&gt;http://www.poporz.com/downloads/music/电话响了.amr&lt;/A&gt;&lt;img src ="http://blog.vckbase.com/jzhang/aggbug/27430.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>jzhang</dc:creator><title>[S60] ARM平台独有问题 Writable Static Data in DLLs</title><link>http://blog.vckbase.com/jzhang/archive/2007/07/09/27267.html</link><pubDate>Mon, 09 Jul 2007 01:03:00 GMT</pubDate><guid>http://blog.vckbase.com/jzhang/archive/2007/07/09/27267.html</guid><wfw:comment>http://blog.vckbase.com/jzhang/comments/27267.html</wfw:comment><comments>http://blog.vckbase.com/jzhang/archive/2007/07/09/27267.html#Feedback</comments><slash:comments>16</slash:comments><wfw:commentRss>http://blog.vckbase.com/jzhang/comments/commentRss/27267.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jzhang/services/trackbacks/27267.html</trackback:ping><description>原文在:&lt;BR&gt;&lt;A href="http://hi.baidu.com/hijzhang/blog/item/b6d5bf24b44d41318744f983.html"&gt;http://hi.baidu.com/hijzhang/blog/item/b6d5bf24b44d41318744f983.html&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;在编译arm平台程序的时候，出现如下错误提示：&lt;BR&gt;ERROR: Dll 'AppName[UID].APP' has initialised data.&lt;BR&gt;或者：&lt;BR&gt;ERROR: Dll 'AppName[UID].APP' has uninitialised data.&lt;BR&gt;（扩展名APP的应用程序其实也是一个DLL。）&lt;BR&gt;&lt;BR&gt;而在为模拟器编译的时候，这个问题不会出现。这曾经导致我在完成完整的设计，编码和调试后，&lt;BR&gt;被迫放弃原有设计。&lt;BR&gt;&lt;BR&gt;从这条错误信息的字面意思是什么也看不出来的。initialised 和 uninitialised都一样有问题。&lt;BR&gt;其实真正的含义是Dll里存在可写的全局变量。&lt;BR&gt;&lt;BR&gt;大家知道在程序运行的时候，DLL只会被装载一次。在Windows平台，每个进程都有自己独立的DLL空间。也就是说，不同进程装载同一个DLL，互相之间是独立的。只有在一个进程内，才是共享的。但是S60平台的设计是所有进程都共享同一个DLL空间。这样的设计显然是出于节约内存的目的，是很有必要的。但是这样就带来一个问题，那就是DLL里不可以有可写的全局变量，否则就要造成混乱。A进程对变量的改写会直接影响到B进程，这是程序设计者所不愿意看到的。所以，S60平台的编译器就禁止了在DLL内申明可写全局变量。但是全局变量还是可以用的，只要加上const申明即可。&lt;BR&gt;&lt;BR&gt;一般来说，在做DLL设计的时候，的确不鼓励使用可写全局变量。即使是windows平台，DLL的可写全局变量也会在不同模块之间带来问题。当遇到这个编译器错误的时候，应该设法修改设计，回避使用全局变量。&lt;BR&gt;&lt;BR&gt;但是因为APP实际上也是DLL，这就导致连S60的主程序也不能使用可写的全局变量，这个在某些时候就成了问题，全局变量毕竟是一个重要的实现手段。对此，S60提供了线程局部存储(thread local storage)来解决问题。&lt;BR&gt;TLS的关键是两个函数：&lt;BR&gt;void Dll::SetTls(void*)和void* Dll::Tls()&lt;BR&gt;SetTls用于将任意类型的指针保存到线程局部存储中，而Tls()则取出该指针。&lt;BR&gt;指针指向在堆上分配的一块内存。一个线程只能有一个局部存储变量。所以，如果你有很多全局变量，就要定义一个结构，把所有的全局变量封装在其中。这是挺别扭的，不过S60 3rd据说就支持dll的可写全局变量了。&lt;BR&gt;&lt;BR&gt;tls样例代码：&lt;BR&gt;&lt;BR&gt;设置&lt;BR&gt;GlobalData* p = new GlobalData();&lt;BR&gt;if ( p )&lt;BR&gt;{&lt;BR&gt;Dll::SetTls( p );&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;使用&lt;BR&gt;GlobalData* p = (GlobalData*) Dll::Tls();&lt;img src ="http://blog.vckbase.com/jzhang/aggbug/27267.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>jzhang</dc:creator><title>S60第二版获取来电/去电号码的方法</title><link>http://blog.vckbase.com/jzhang/archive/2007/07/05/27226.html</link><pubDate>Thu, 05 Jul 2007 01:20:00 GMT</pubDate><guid>http://blog.vckbase.com/jzhang/archive/2007/07/05/27226.html</guid><wfw:comment>http://blog.vckbase.com/jzhang/comments/27226.html</wfw:comment><comments>http://blog.vckbase.com/jzhang/archive/2007/07/05/27226.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.vckbase.com/jzhang/comments/commentRss/27226.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jzhang/services/trackbacks/27226.html</trackback:ping><description>60第二版提供了etel族方法用于监视线路上的来电，去电，响铃，挂机等动作。可以在第一时间内获得手机线路的状态变化。但是却并不能获取来电和去电的号码。这本是顺理成章的事情，偏偏在S60 2rd上不行。(S60平台有很多这种应该成立却不成立的事情，导致开发门槛很高，我认为这严重影响了S60平台上软件开发的成长速度。相比较之下, WinCE和Win Mobile则有着高度的内洽性，而且Windows平台的很多经验可以类推。)&lt;BR&gt;&lt;BR&gt;Nokia Forum上关于这个问题有无数的文章讨论。这其中有两类解决方案被普遍采用：&lt;BR&gt;1. 使用CLogClient族方法，监控手机日志的变化。因为来电去电也会被记入日志，所以可以通过检测最新的通话日志，并提取其中的电话号码解决问题。刨乐最初使用的也是这种方法。不过这种方法有明显的缺陷，那就是从电话拨出/拨入到日志更新有一段明显的时间间隔，常常导致电话已经接通了，还没有获取到电话号码。虽然经过一些努力有所改善，最终还是不能满足需求。&lt;BR&gt;&lt;BR&gt;2. 使用etel的秘密版本。这是在论坛上流传的&amp;#8220;完整版&amp;#8221;的etel库。比公开发行的库多了很多类。对我们有用的是带Mobile一族的类，如RMobileCall。据说这是从 motolora传出来的。（S60联盟的做法真是令人不解，既然做智能手机平台，却藏藏掖掖，这个不提供，那个不提供。难道他们不知道软件越多，他们就会越成功吗？）。使用以下代码，可以非常可靠的获取来电/去电号码（在通话接通前）：&lt;BR&gt;&lt;BR&gt;iLine是成员变量,事先已经调用Open() 打开了线路. GetPhoneNumber这个函数应该在&lt;BR&gt;得到EStatusDialling和EStatusConnecting或者EStatusRinging的时候调用.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#3366ff&gt;enum CallDirection&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EIncoming,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EOutgoing,&lt;BR&gt;};&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#3366ff&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: rgb(0,0,0)"&gt;&lt;SPAN style="COLOR: rgb(0,0,187)"&gt;TBuf&amp;lt;64&amp;gt; CMyPhone::GetPhoneNumber(enum &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;FONT color=#3366ff&gt;CallDirection &lt;/FONT&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: rgb(0,0,0)"&gt;&lt;SPAN style="COLOR: rgb(0,0,187)"&gt;direction)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; RLine::TCallInfo callInfo;&lt;BR&gt;&amp;nbsp;&amp;nbsp; TName callName;&lt;BR&gt;&amp;nbsp;&amp;nbsp; const TInt KCallIndex = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp; RLine::TLineInfo lineInfo;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //一定要调用这一句,否则在一些机型上 &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/FONT&gt;&lt;FONT color=#3366ff&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: rgb(0,0,0)"&gt;&lt;SPAN style="COLOR: rgb(0,0,187)"&gt;GetMobileCallInfo() 会导致panic&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/FONT&gt;&lt;FONT color=#3366ff&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: rgb(0,0,0)"&gt;&lt;SPAN style="COLOR: rgb(0,0,187)"&gt;GetMobileCallInfo()可是最要紧的一句呀.网络上提供的代码大多没有提到&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //这一点,只有Nokia Wiki上的样例代码包含了.&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/FONT&gt;&lt;FONT color=#3366ff&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: rgb(0,0,0)"&gt;&lt;SPAN style="COLOR: rgb(0,0,187)"&gt;&amp;nbsp;&amp;nbsp; iLine.GetCallInfo(KCallIndex, callInfo);&lt;BR&gt;&amp;nbsp;&amp;nbsp; iLine.GetInfo(lineInfo);&lt;BR&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RMobileCall m_currentCall;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(direction == &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;EIncoming&lt;CODE&gt;&lt;SPAN style="COLOR: rgb(0,0,0)"&gt;&lt;SPAN style="COLOR: rgb(0,0,187)"&gt;)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; callName.Copy(lineInfo.iNameOfCallForAnswering);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; callName.Copy(lineInfo.iNameOfLastCallAdded);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_currentCall.OpenExistingCall(iLine, callName);&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RMobileCall::TMobileCallInfoV1 mobCallInfo;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RMobileCall::TMobileCallInfoV1Pckg mobCallInfoPckg(mobCallInfo);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; User::LeaveIfError(m_currentCall.GetMobileCallInfo(mobCallInfoPckg));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TBuf&amp;lt;64&amp;gt; telNumber;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(direction == &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;EIncoming&lt;CODE&gt;&lt;SPAN style="COLOR: rgb(0,0,0)"&gt;&lt;SPAN style="COLOR: rgb(0,0,187)"&gt;)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; telNumber.Copy(mobCallInfo.iRemoteParty.iRemoteNumber.iTelNumber);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; telNumber.Copy(mobCallInfo.iDialledParty.iTelNumber);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_currentCall.Close();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return telNumber;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;BR&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/FONT&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: rgb(0,0,0)"&gt;&lt;SPAN style="COLOR: rgb(0,119,0)"&gt;&lt;FONT color=#3366ff&gt; &lt;BR&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;可惜这还不够.如果你的电话第二次想起,这个函数被调用第二次,又会panic,这次是在&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;FONT color=#3366ff&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: rgb(0,0,0)"&gt;&lt;SPAN style="COLOR: rgb(0,0,187)"&gt;OpenExistingCall, &lt;FONT color=#000000&gt;死得更早. Nokia没有任何官方的解释,我的办法是在电话终止的&lt;BR&gt;时候把所有的Phone,Line,Call统统关掉,重新打开.不用说,这样是有些浪费的,但是没&lt;BR&gt;有办法,这是目前唯一可行的办法.&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/FONT&gt;&lt;img src ="http://blog.vckbase.com/jzhang/aggbug/27226.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>jzhang</dc:creator><title>竟然有人DOS我的小小主机</title><link>http://blog.vckbase.com/jzhang/archive/2007/07/05/27225.html</link><pubDate>Thu, 05 Jul 2007 01:18:00 GMT</pubDate><guid>http://blog.vckbase.com/jzhang/archive/2007/07/05/27225.html</guid><wfw:comment>http://blog.vckbase.com/jzhang/comments/27225.html</wfw:comment><comments>http://blog.vckbase.com/jzhang/archive/2007/07/05/27225.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.vckbase.com/jzhang/comments/commentRss/27225.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jzhang/services/trackbacks/27225.html</trackback:ping><description>晚上9点半，老婆在哄小宝宝睡觉，爸爸妈妈也去休息了。我打开电脑，习惯性的&lt;BR&gt;去查询 &lt;A href="http://www.poporz.com"&gt;http://www.poporz.com&lt;/A&gt; 今天的访问情况，同时打开水木清华去看看笑话。&lt;BR&gt;水木笑话版现在大水横流，却没几个好笑的笑话，失望的切换到firefox，赫然发现&lt;BR&gt;访问超时。我又刷新了一下，竟然还是半天没有反应。直接访问 www.poporz.com&lt;BR&gt;也是如此。难道访问量暴增？不可能啊，上线才几天，也没见什么增长啊。莫非被&lt;BR&gt;人攻击吗？赶快ssh到主机，好家伙，我那贫弱的主机竟然开了287个httpd进程，&lt;BR&gt;再netstat一看，也是两百多个SYN_RECV。居然全部来自202.188.20.180这个ip。&lt;BR&gt;这谁呀？跟我有仇吗？只有一台主机来攻击，大概是知道我的主机弱吧？敢紧的&lt;BR&gt;把这个ip屏蔽掉，暂时恢复了正常。&lt;BR&gt;&lt;BR&gt;伟大的黑客同志，如果你看到了这篇，请你以后手下留情，我的主机实在不是你&lt;BR&gt;大展雄风的地方啊。&lt;img src ="http://blog.vckbase.com/jzhang/aggbug/27225.html" width = "1" height = "1" /&gt;</description></item></channel></rss>