分类目录归档: 学习日志

手机深圳通的一点猜想

  同事开了手机深圳通,就是能拿手机嘀的一声,就可以刷地铁、公交、的士、某些便利店等。

某一天,就在想它是怎么做到的,可以肯定的是不是用NFC技术,因为目前支持NFC的手机没有几款。

那么他是怎么做到一刷它就可以支付了的呢?

第一种猜想-》交互式。刷卡机跟手机GSM网络有同一频率段,GSM不是实时在线的,是间歇性的。当地铁里的手机信号基站发现有支付功能的手机在它的附近时,就通知手机缩短通信时间间隔,然后刷卡时就嘀的一声。那么公交上的刷卡机又是怎么实现的?这种方法会不会很费电?

第二种猜想-》被动式。RFID,就是在手机SIM卡内置RFID芯片,就像门禁卡那种。但是这又有一个问题,很多SIM卡都隔着电池,有的手机外壳还是铁的,而且RFID芯片是没有内置电池的,这样信号会好吗?

至于手机深圳通的查询,估计是内部通过短信或gprs或其他频道查询的。

公交上的刷卡机是怎么做到支付的,个人猜想是,其实刷卡机像一台手机,用短信或GPRS来通信。但可能不是实时的,可能有延时。。。

 

装个mac os学objective-c

有句话叫“人在河边走,哪能不湿边”,接触多了就受影响了。学多一样以后有后路,再说objective-c那么火。

参考:http://bbs.weiphone.com/read-htm-tid-1702048.html

  1. 用VirtualBox创建一个虚拟机 Mac OS X Server。
  2. 设置光盘先启动,载入empireEFIv1085.iso应到文件。
  3. 用dmg2img.exe工具把DMG文件转成iso文件。
  4. 开机-》到装载光盘画面-》把转换好的iso文件装入-》按F5。
  5. 第一次安装的话,会没磁盘,在屏幕上方工具栏选择 工具-》磁盘工具选择一个擦除原先内容。命名一个新的,退出。
  6. 选择刚才新的硬盘-》选择安装,后就是一直等待了。。。我的用了20多分钟就ok了。以后每启动个都用empireEFIv1085.iso引导。。。
  7. 下载iphone SDK http://ipsw.info/iphone_sdk_3.1.2_with_xcode_3.2.1__snow_leopard__10m2003.dmg 这个SDK与这个系统是对应的。。。参考:http://apps.hi.baidu.com/share/detail/33064493

实验证明用同样的方法,同样的顺序用VMware一样可以装。。。 :eek:
不过操作系统类型选其他-》FreeBSD64后修改FreeBSD 64-bit.vmx文件-》找到guestOS = "freebsd-64"一行 修改为guestOS = "darwin10"。而且可以直接加载dmg文件。。。

换成VMware感觉比VirtualBox速度快多了。。。

关于声音 和 分辨率的调节 参考:http://bbs.pcbeta.com/viewthread-608355-1-1.html

装上EnsoniqAudioPCI 2.mpkg就可以有声音了,播放音乐非常流畅,不会像之前那些虚拟苹果系统那样,声音断断续续还慢吞吞的。再装上VMsvga2.pkg,就可以调分辨率了;

安装EnsoniqAudioPCI 2.mpkg会有问题,后来直接安装AC97的包 就完美解决了。。。本人亲测。。。VMware不卡。。。Mac OS 没想象中的难用。。。

plist保存的两种文件类型

plist文件保存有两种方式,一种是正常的像xml一样保存的,一种是二进制保存的。二进制的文件头有bplist00这个关键字。这两种文件libplist都能解析出来。

// ReadPlist.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <Windows.h>
#include <stdio.h>
#include <plist/plist.h>

#pragma comment(lib, "libplist.lib")
int main(int argc, char* argv[])
{
 char file_name[MAX_PATH] = {0};

 char *data = NULL;

 plist_t pl = NULL;

 FILE *fp = NULL;

 int file_len = 0;

 char *p_data = NULL;
 unsigned __int32 p_len = 0;

 printf("请输入文件名:");

 scanf("%s", file_name);

 fp = fopen(file_name, "rb");
 if(!fp)
  goto _out;

 fseek(fp, 0, SEEK_END);
 file_len = ftell(fp);
 fseek(fp,0,SEEK_SET);

 data = (char*)malloc(file_len);
 if(!data)
  goto _out;

 fread(data, 1, file_len, fp);

 if(memcmp(data, "bplist00", 8))
 {
  printf("%s n", data);
 }
 else
 {
  plist_from_bin(data, file_len, &pl);
  plist_to_xml(pl, &p_data, &p_len);
  printf("%s n", p_data);
 }

 system("pause");

_out:
 if(fp)
  fclose(fp);
 if(pl)
  plist_free(pl);
 if (p_data)
  free(p_data);
 if(data)
  delete []data;

 return 0;
} 

需要注意的是libplist解析出来是utf-8编码的

VC6.0编译好的CURL-7.23.1静态库

费了九牛二虎之力。在网上找了很多资料。

libcurl能做什么???支持https、http、ftp、pop3、smtp、scp、sftp、tftp、等等。。。支持cookie等等。。。拿来采集什么的最方便了。。。

看官方介绍就知道有多强大了。。。http://curl.haxx.se/libcurl/

libcurl is a free and easy-to-use client-side URL transfer library, supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling and more!

libcurl is highly portable, it builds and works identically on numerous platforms, including Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, BeOs, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS and more...

libcurl is free, thread-safe, IPv6 compatible, feature rich, well supported, fast, thoroughly documented and is already used by many known, big and successful companies and numerous applications.

使用时要定义 #define CURL_STATICLIB  这个宏

curl依赖于openssl和zlib,编译时用的zlib-1.2.5,openssl-0.9.8r。

在vc6.0能用亲测的。。。

点我下载

参考:

http://blog.csdn.net/long80226/article/details/5988358

http://blog.sina.com.cn/s/blog_451aab2f010095or.html