毛蛋(maoegg)网

——只为技术而存在

最近项目中遇到了一个问题,第三方授权和发微博。在网上找了个例子,挺全面的,有新浪,豆瓣,腾讯和twitter的。
这个是项目的具体下载地址 http://115.com/file/c2d5wxb8

于是就把它加入自己的项目中了,但是项目在进行授权完成之后死活回不到自己的程序。
最后发现其实很简单 这个项目中有个plist文件 只要修改下这个地方就行

项目中有一个文件专门用来定义一些url 的 其中有这个回调url

#define CallBackURL @”oauth://minroad.com”  //回调url

只要修改你自己的plist文件和这个对应就行了

该项目还在进行中 会不断更新的 ———-

<?PHP
class mysql {
	private $db_host; //数据库主机
	private $db_user; //数据库用户名
	private $db_pwd; //数据库用户名密码
	private $db_database; //数据库名
	private $conn; //数据库连接标识;
	private $result; //执行query命令的结果资源标识
	private $sql; //sql执行语句
	private $row; //返回的条目数
	private $coding; //数据库编码,GBK,UTF8,gb2312
	private $bulletin = true; //是否开启错误记录
	private $show_error = false; //测试阶段,显示所有错误,具有安全隐患,默认关闭
	private $is_error = false; //发现错误是否立即终止,默认true,建议不启用,因为当有问题时用户什么也看不到是很苦恼的
 继续阅读

Zend Studio是Zend Technologies开发的PHP语言集成开发环境(Integrated Development Environment IDE)。也支持HTML和js标签,但只对PHP语言提供调试支持。因为是同一个公司的产品,所以提供的Zend Framework方面的支持比其他软件好。

Zend Studio 9 正式发布,主要包含以下更新:
Git和Github支持
云开发部署
深度Zend Framework和Zend Server集成
更快、更精简的IDE

下载:Zend Studio 9.0.0 Final
查看:What’s New in Zend Studio 9

很不错的一个jquery上传文件插件,功能比较强大。

这里我用的是uploadify-v2.1.4版,不少是从官网的文档(www.uploadify.com/documentation/)翻译过来的,然后加上一些自己的理解,配置的。

大部分都是写在注释里了,方便大家理解和使用,以下是代码,源代码请去官网下载吧。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="./uploadify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="./jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="./swfobject.js"></script>
<script type="text/javascript" src="./jquery.uploadify.v2.1.4.min.js"></script>
<script type="text/javascript"> 继续阅读

在进行项目开发的时候图片的处理也是相当常见的一个功能 openflow就是主要用来处理图片显示的

该程序实现效果是这样的

首先附上一个下载该库的地址http://115.com/file/clyu8xf6

接着就是创建一个简单的工程 我在这里直接创建了一个基于view的工程

视图控制器类要遵循两个协议

<AFOpenFlowViewDataSource, AFOpenFlowViewDelegate>

在该类中加入如下代码

- (void)viewDidLoad {

[(AFOpenFlowView *)self.view setNumberOfImages:40]; //其实此处在xib中把self.view的类变成了AFOpenFlowView 这个应该都会的吧

for (int i=0; i<=40; i++) {

UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"t%d.jpg",i%6]];

[(AFOpenFlowView *)self.view setImage:image forIndex:i];

}

[super viewDidLoad];

}

//这样就可以实现比较炫的图片展示效果了

最近在做xml解析的程序 可是出现
提示找不到该文件 找了半天才解决
具体的做法是
在target 中添加的header file search path 如下图
然后添加libxml.dylib 再编译运行就不会报错了

今天用到了关于 UITabBarController,看到设计图中的那些效果和系统默认的不一样 所以赶紧上网找些资料去

发现关于它的自定义不少 可是好用的不是很多 大部分都是一样的 并且我用了之后效果不是很明显

但是经过看别人的 总算是组合出来了点结果

首先是修改背景

{

self.tabBarController = [[UITabBarController alloc] init];

//定义一个view 里面是一个背景图片

UIView *v = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 49)];

v.backgroundColor  = [UIColor clearColor]; 继续阅读

navigationItem的背景修改方法

网上介绍最多的方法是使用分类 但是我用着的时候 不是每次都管用 但是还是先把这个方法写一下吧 毕竟也成功过。

@implementation UINavigationBar (UINavigationBarCategory)

- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"new-nav-bg.png"];
[image drawInRect:rect];
}
@end
如果该方法好用的话 后面添加左右按钮和设置标题就很简单了
// 设置标题
self.navigationItem.title = @”测试;

// 设置左边的按钮

UIBarButtonItem *returnButton = [[UIBarButtonItem alloc]initWithTitle:@”返回 style:UIBarButtonItemStyleBordered target:self action:@selector(returnMain)];

self.navigationItem.leftBarButtonItem = returnButton;

[returnButton release];

//定义右边按钮

UIBarButtonItem *diquButtons = [[UIBarButtonItem alloc]initWithTitle:@”编辑 style:UIBarButtonItemStyleBordered target:self action:@selector(selectArea)];

self.navigationItem.rightBarButtonItem = diquButtons;

self.diquButton = diquButtons;

[diquButtons release];

[temp release];

但是如果该方法不是很好用的话 只有用这个方法了

- (void)initNavBarItems:(NSString *)titlename{

// 设置navbar的titleview

UIView *dd = [[UIView alloc]initWithFrame:CGRectMake(-5, 0, 325, 44)];

UIImageView *imgs = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"new-nav-bg.png"]];

imgs.frame = CGRectMake(-5, 0, 325, 44);

[dd addSubview:imgs];

// 设置标题

UILabel *title = [[UILabel alloc]initWithFrame:CGRectMake(-5, 3, 320, 40)];

title.text = titlename;

title.textAlignment = UITextAlignmentCenter;

title.backgroundColor = [UIColor clearColor];

title.textColor = [UIColor whiteColor];

title.font = [UIFont boldSystemFontOfSize:22];

[dd addSubview:title];

// 设置左边的按钮

UIButton *left = [UIButton buttonWithType:UIButtonTypeRoundedRect];

left.frame = CGRectMake(15, 5, 60, 30);

[dd addSubview:left];

}
这样做的话 可以设置下标题 也能修改背景图 稍微有点复杂
如果对于一个比较大的项目的话 最好写一个公共类 然后设置它的navbar 然后让所有的导航视图控制器类都继承这个类 这样的话比较方便
做程序时遇到的,又拿出来一次…
$(document).ready(function() {
//Checkbox选中事件
$(“#single_goods”).bind(“click”,function(){
if($(“#single_goods”).attr(‘checked’) == true){
$(“#goods_position”).css(“display”,”block”);
}else{
$(“#goods_position”).css(“display”,”none”);
}
});
//位置选择的例子
$(“.img_type > span”).click(function () {
$(“input[name='img_type']“).val($(this).html());
$(“.img_type > span”).removeClass();
$(“.img_type > span”).addClass(‘dida_upload_img_no_choosed’);
$(this).addClass(‘dida_upload_img_choosed’);
});
}):

直接上代码:

<html>
<head>
<title>Checkbox</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
<script language=”JavaScript” src=”http://localhost/testjq/jquery.js” type=”text/javascript”></script>
<script type=”text/javascript”>
<!–
$(“document”).ready(function() {
$(“#btn1″).click(function() {
$(“[name='checkbox']“).attr(“checked”,”checked”);
});
$(“#btn2″).click(function() {
$(“[name='checkbox']“).removeAttr(“checked”);
});
$(“#btn3″).click(function() {
$(“[name='checkbox']“).removeAttr(“checked”);
$(“[name='checkbox']:even”).attr(“checked”, true);
});
$(“#btn4″).click(function() {
$(“[name='checkbox']“).each(function() {
if ($(this).attr(“checked”)) {
$(this).removeAttr(“checked”);
} else {
$(this).attr(“checked”, true);
}
})
});

继续阅读

editButton = [[UIBarButtonItem alloc] initWithTitle:@”编辑” style:UIBarButtonItemStyleBordered target:self action:@selector(editAction)];

self.navigationItem.rightBarButtonItem = editButton;

}

-(void)ToReturn

{

[self.navigationController popViewControllerAnimated:YES];

}

- (void)editAction{

if (editButton.title == @”编辑”) {

[editButton setTitle:@"确定"];

[editButton setStyle:UIBarButtonItemStyleDone];

[self.roadTable setEditing:YES animated:YES];

} 继续阅读

关于iphone的应用太多了 我就把自己以前项目中用到的列出来了

1. 判断设备的类型 pad 或者 iphone 并在main中定义一个宏来记录即可

#define IS_IPAD ([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] && [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)

2    调用 自带mail

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://admin@maoegg.com"]];

调用 电话phone

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://8008808888"]];   telprompt://11111   这样可以回到原来的程序中了

调用 SMS 继续阅读

最近要开始一个项目

其中用到了json的解析 首先上传上一个json的开源库

下载地址 http://115.com/file/aqxgzhct

更新办法请参照这篇文章:Ubuntu 10.10更新源列表地址

网易开源镜像站,供给FreeBSD,OpenBSD,archlinux,centos,cygwin,debian,fedora,gentoo,kernel,openSUSE,slackware,ubuntu
代码:

deb http://mirrors.163.com/ubuntu/ oneiric main universe restricted multiverse
deb-src http://mirrors.163.com/ubuntu/ oneiric main universe restricted multiverse
deb http://mirrors.163.com/ubuntu/ oneiric-security universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ oneiric-security universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ oneiric-s universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ oneiric-proposed universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ oneiric-proposed universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ oneiric-backports universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ oneiric-backports universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ oneiric-s universe main multiverse restricted

台湾源
代码:

deb http://tw.archive.ubuntu.com/ubuntu/ oneiric main universe restricted multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu/ oneiric main universe restricted multiverse
deb http://tw.archive.ubuntu.com/ubuntu/ oneiric-security universe main multiverse restricted
deb-src http://tw.archive.ubuntu.com/ubuntu/ oneiric-security universe main multiverse restricted
deb http://tw.archive.ubuntu.com/ubuntu/ oneiric-s universe main multiverse restricted
deb-src http://tw.archive.ubuntu.com/ubuntu/ oneiric-s universe main multiverse restricted

SRT Sources 继续阅读

向该SD卡中上传文件有两种途径:

(1)在cmd中,进入Android SDK的安装路径下的tools目录中,运行命令:

adb push E:\xhot.3gp sdcard/xhot.3gp
在push时可能会出现“Read-only file system”,如果出现这个问题,请进行如下操作:

#emulator -partition-size 256 -avd avd文件名
#adb remount
#adb push *.* /*

其中,E:\xhot.3gp 是本地要上传的文件,sdcard/xhot.3gp 为上传到SD卡中的路径。

注意:adb push 电脑路径 模拟器路径 继续阅读

目前机友们使用高速闪存TF卡的越来越多了,4GB、8GB、已经很平常了,甚至16GB和32GB也有测试上机的,牛人多啊。但大部分机友还是对什么是SD卡,TF卡,SDHC标准,和Class传输速度等级不是很明白,而且很多人对买卡还是比较盲目,本人特搜集了关于这方面的知识、加上个人的了解和经验作个简单综合性的分析,有错误之处望指正

1:SD卡和TF卡
大家知道我们的手机使用的是指甲盖大小的存储卡,这个卡其实就是TF卡。而经常提到的SD卡又是什么卡呢?简单的说吧,SD卡体积比较大,大家买卡的时候应该记得那个白色的小塑胶盒子里面有两个卡,小的就是TF卡,大的是适配器(大家也称为卡托),这个TF卡可以插进卡托里面,这样就形成了一个SD卡,可以简单的理解为TF卡+卡托=SD卡,这样的SD卡可以插到读卡器里用于数据传输,也可以适用于某些例如数码相机一类的兼容性数码产品,而我们的手机就只要这个小小的TF卡就可以了。(用于非手机等较大的数码产品的存储卡是一个完整的SD卡,不像我们买到的手机卡这样可以组合和拆分的)看图:

2:SDHC标准和CLASS传输速度等级 继续阅读

php时间轴

抢沙发

PHP时间轴,即显示为“刚刚”、“5分钟前”、“昨天10:23”等

//时间转换函数
function tranTime($time) {
$rtime = date(“m-d H:i”,$time);
$htime = date(“H:i”,$time);
$time = time() – $time;

if ($time < 60) {
$str = ‘刚刚’;
}
elseif ($time < 60 * 60) {
$min = floor($time/60);
$str = $min.’分钟前’;
}
elseif ($time < 60 * 60 * 24) {
$h = floor($time/(60*60));
$str = $h.’小时前 ‘.$htime;
} 继续阅读

怀念乔布斯

抢沙发

乔布斯至少五次改变了这个世界:一是通过苹果电脑Apple-I,开启了个人电脑时代;二是通过皮克斯电脑公司,改变了整个动漫产业;三是通过iPod,改变了整个音乐产业;四是通过iPhone,改变整个通讯产业;五是通过iPad,重新定义了PC,改变了PC产业。

<a id=”taobao_pinglun” href=”javascript:;”>入手评论</a>
然后给这个ID一个onclick事件,然后ajax读取网页上的内容,本来以为万事大吉了,谁知道IE7+跟FF、chrome都没问题,唯独IE6。
click事件倒是能触发,就是获取不到内容,不返回success也不返回error。
本来以为是跨域问题,可是跨域已经解决了啊。
谁知还是这个恶心的不兼容,只能改成这样了:
<b id=”taobao_pinglun” style=”cursor:hand”>入手评论</b>

用mysql写触发器,老是没办法定义,报错

后来不断的弱化触发器的功能,直到只给其中一个字段加一些值了,还是不行

杯具啊

后来,触发器能定义好了,执行的时候又遇到问题了,也就是说触发器被触发,但是里面的操作没有执行。

去啊,尼玛坑爹吶

报错是这个:
Can’t update table ‘visited_cate’ in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

查完中文查英文,你妈呀,不支持操作啊

看csdn上的一个例子吧

如果你在触发器里面对刚刚插入的数据进行了 insert/update, 则出现这个问题。因为会造成循环的调用. 继续阅读