2013 年 10 月

浏览模式: 标准 | 列表 | 图文
zepto的小坑

zepto的小坑

Javascript的一个组件zepto恐怕现在很多人都在用了。毕竟它几乎完全兼容jquery的语法。而且压缩后只有9K。所以大部分人在做移动端的时候就开始选择了zepto。它足够轻量。

毕竟你想一个jquery几十K,再加上一个jquery-mobile。得。。。等死吧。啥也没做200K没了。

但它毕竟和jquery不太一样。有点小坑

1、jquery的$('aaa :eq') ,这种伪类的选择符。它不支持。但可以用$('xxx').eq()这种函数式来代替

2、新版默认不支持touch事件了。这点要注意

不过大部分情况下,都够你使用了:http://zeptojs.com/

PD 9 的一些小问题

PD 9 的一些小问题

PD是我第一个mac上的正版软件。最近刚升到10.9,发现我原来的7不能用了。而我事实上用pd的时间已经没有原来多了。所以我就很纠结。所幸,网上有人提供了一些Beta版,我就下载来测试了一下

本站不提供下载,请围观此贴:http://mac.pcbeta.com/thread-144172-1-1.html
下载好后,如果你没有软件查看sha1的话,你可以直接php -r "echo sha1_file('/Users/???/Downloads/Parallels_Desktop_9.0.23136.932290_%5BHIOb%5D_Fix.dmg');"

可以看一下sha1是否正确。当然你还是有可能会出现1个CPU,0M内存的BUG,翻到第13页,有人回复:

If anyone faced with the problem of failing to start a virtual machine, because she has "more than 1 MB of memory and can not be started", then try this solution (I helped)

1) Close the Parallels Desktop

2) Remove the Parallels folder from / Library / Preferences (namely from the system Library, and not from the user!)

3) Start Parallels Desktop and select "Add existing virtual machine", then enter the path to your virtual machine

OK,就这么愉快的解决了

java惊魂

java惊魂

安装完10.9,打开我的phpstorm时。无法启动了。。。

到命令行下重新打开,结果给我这么一行文字:

/Volumes/Macintosh\ HD/Applications/PhpStorm\ EAP.app/Contents/MacOS/phpstorm

No Java runtime present, requesting install.

于是去oracle网站下载了jre。。还是不行,网址:http://www.java.com/zh_CN/download/manual.jsp ,下载的时候,我还在纠结,不能在chrome下使用就不能在chrome下使用吧。。结果。是根本 就没法使用

一想,jre不行。那jdk总OK的吧?于是又跑到:http://www.oracle.com/technetwork/cn/java/javase/downloads/index.html ,下载了jdk,不料,虽然环境里面有java了,但phpstorm和idea都无法启动

gouki:Applications gouki$ java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
gouki:Applications gouki$ /Volumes/Macintosh\ HD/Applications/PhpStorm\ EAP.app/Contents/MacOS/phpstorm
No Java runtime present, requesting install.

这。。。。太纠结了。最后,不得已。下载官方的包吧:http://support.apple.com/kb/DL1572?viewlocale=zh_CN,下载好,运行。一切OK了。

当然在这之前,我还是卸载了旧版的java。。

参考文档:

  1. http://support.apple.com/kb/HT5559?viewlocale=zh_CN&locale=zh_CN
  2. http://www.java.com/zh_CN/download/help/mac_uninstall_java.xml 【如何卸载 Mac 上的 Java 7】

---

后记,几个朋友都说在点击phpstorm的时候,直接就提示让安装java环境了。为什么我就没遇到?难道是因为我用的是phpstormEAP的版本?

邮件APP崩溃打不开

邮件APP崩溃打不开

今天终于升级到了10.9,感谢苹果的免费。我也可以升级了。本来我还担心要128,现在。。省心了

结果,升级完。邮件一打开就崩溃。在Vampire的指点下,使用命令行打开,结果发现:

/Applications/Mail.app/Contents/MacOS/Mail

2013-10-23 22:27:45.724 Mail[1644:507] *** Assertion failure in -[MailboxesOutlineViewController keyForItem:], /SourceCache/Mail/Mail-1816/Mail/Mail/Mailboxes/MailboxOutlineView/MailboxesOutlineViewController.m:1246

MailboxOutlineItemController key is nil for item <MFMailbox:0x7fdf03557b80 (relative path=, attributes=0x12, displayName=163邮件 uuid=(null))>. This probably means a nil UUID

怎么回事?a nil uuid?

既然错误这么明显,我就先禁用163邮件吧。于是去了“系统偏好设置”中,打开 "internet 帐号",将163的帐号对应的mail先暂停,然后启动mail

正常了。

这时候再启用163mail,一切正常。

经vampire解释,可能是邮件有空标题,导致了这个错误。目前没有细看,但要学会看LOG。老是偷懒不看log是不行的。

mac 下面为了端口开放而吃的药

mac 下面为了端口开放而吃的药

早上下载了sudochina的源码,在go 里面编译。结果发现了很多错误

1、用自带的build.sh编译的app,一运行就报:Segmentation fault: 11
2、自己go build一下吧,一运行就自动退出:

Starting...

Database struct sync successfully

3、用go run 吧。又读不到配置文件

为了这个折腾了很久很久,问了@正雄(sudochina的作者)。他也表示不清楚,然后给了份最新的代码我测试,问题依旧

他问我,是否端口被占用?我想了想81端口应该没有被占用吧,为以防万一,我用了8888进行了测试,结果居然OK了。这个时候我纳闷了,原来真是端口的问题啊?

试了几下,发现在1000以下的端口都不可以以普通用户绑定。好吧,我不管了,我还是用高端口进行测试吧。为了这个代码折腾了一个上午。

然后我又试了一下,sudo ./app 可以运行,证明小端口还是要有权限的。因为用之前的一个程序试的时候报这个错:2013/10/21 13:58:40 [Client Listener Error : listen tcp4 0.0.0.0:81: permission denied]

怪不得我启动nginx的命令是:sudo nginx。我以为是什么原因,原来还是端口的关系啊?

OK做个笔记 ,以后也尽量不用小端口

利用 goquery 来取数据

利用 goquery 来取数据

早期抓取数据都是偷懒用phpquery。用起来真心方便啊。刷刷刷的数据就取回来了。毕竟phpQuery还是相当模拟了jQuery的操作的。但现在在用go。怎么办?

其实go也有类似的工具,比如goquery,但使用起来确实不如phpQuery方便。举个小例子说明一下吧:

获取li数据中的第二个数据,那么jquery一般是这样写:$('li:eq(1)'),phpQuery呢。基本上也这样。pq('li:eq(1)'),但到了goquery就不能这样写了。我开始这样写的时候一直取不到数据。后来 才发现。。原来goquery必须得这样写:doc.Find("li").Eq(1)。虽然phpquery等也有类似方法,但如果放在Find里面不就好了嘛。真是的

OK写个简单的例子。。

var doc * goquery.Document
var e error
if doc, e = goquery.NewDocument(PROXY_FOREIGN_PAGE_URL); e != nil {
ConsoleLog(e)
return ;
}
doc.Find("tr ").Each(func(i int, ss * goquery.Selection) {
s := *ss.Find("td");
if s.Length() == 6 {
port , _ := strconv.Atoi(s.Eq(1).Text());
if port > 1 {
var pInfo ProxyInfo
pInfo.Ip = IpString(s.Eq(0).Text());
pInfo.Port = PortString(s.Eq(1).Text());
ProxyInfoLists = append(ProxyInfoLists , pInfo);
}

}
})
goquery的项目地址是:github.com/PuerkitoBio/goquery
用phonegap打包项目

用phonegap打包项目

说实话我一直以为phonegap打包项目很麻烦,直到今天早上我试了一下。从头至尾花了大约10分钟左右,在mac下确实也比较容易

1、brew install npm ,会自动安装nodejs环境,这我不管,我只要npm就OK了
2、npm install -g phonegap 注意参数 -g,如果没有它,安装的phonegap无法加入到path里,也就无法直接在路径里输入phonegap运行
3、phonegap create /path/项目路径 -n 名称 -i com.xxx.xxx 创建一个项目
4、进行项目,再次运行 phonegap run ios ,会自动下载ios需要的包
5、进入 platforms/ios 目录,将你的程序cp到www目录下
6、双击 xxx. xcodeproj ,用xcode 打开这个项目
7、。。。。剩下的就和正常打包APP至ipa一样了

----
1、设置横竖屏,这个在plist里面进行设置(还算比较方便)
2、状态条,网上可以搜索,在plist里面也可以设置(注意ios7和以前不一样,以前只要写代码就OK了。ios7一定要在plist里面进行设置)
这两个一般就是现在需要设置的东西
如何禁用消息中心

如何禁用消息中心

10.8.x开始就多了一个通知中心,其实我个人感觉用处并不大,而且自从上一篇博客开始,我才发现,原来Dock假死的罪魁祸首就是通知中心。不知道什么时候我的通知中心出问题了,可能就是最新的一个补丁包的问题。

只要一点击通知中心的图标。Dock就假死。于是我要解决这个问题

有两种方法,1不推荐,还是使用2吧

1、将通知中心.app改名。只是恢复的时候, 不能叫通知中心,而是叫:NotificationCenter.app,这个APP在哪里?打开finder,输入cmd+shift+g(其实就是菜单中的跳到指定路径),输入:/System/Library/CoreServices/,你就可以看到了

2、命令:

launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist

还是第二种安全。

参考:

1.http://www.macx.cn/thread-2058406-1-1.html

2.http://www.macx.cn/thread-2064801-1-1.html

DOCK假死??

DOCK假死??

最近不知道为什么,突然间dock喜欢上了假死这个状态。之前一直不知道怎么处理,因为看了下没有什么cpu占高的动作。cmd+tab也无效了。。

dock也点击不上去,于是我想,难道我杀掉dock就OK了?
于是利用spotlight打开终端(正好我finder窗口都关掉了。所以没有办法打开。而且spotlight速度更快)
输入:killall -KILL Dock
Dock自动重启。所有的不正常状态全部恢复 了。这TMD是怎么回事?因为它连cmd+tab也恢复 了,难道Dock接管了这么多的东西??
再看了一下,网上也有类似的问题和回复,比如:http://www.thxbye.de/mac/mac-restarting-the-mac-os-x-dock-finder-spaces-or-menubar.html
它里面也说了一些情况 ,好吧。我menubar没有死。不然我还没办法用spotlight。
Sometimes it just seems to happen, you're getting the spinning beachball on Mac OS X System Applications/Tools, like the Finder when connecting to a messed up network share. Luckily, most of the time it's easy (yet annoying) to fix via starting the Terminal and using following commands (beware, the names of the programs to kill are case sensitive!):

The Finder crashed:
killall -KILL Finder
(you can also restart the Finder by option (=alt) + rightclicking the Finder icon in the Dock and selecting Relaunch. It doesn't always work though.)

The Dock crashed:
killall -KILL Dock

Spaces crashed:
killall -KILL Dock

The Menubar crashed/refuses to be clickable:
killall -KILL SystemUIServer

All these services should automatically restart after they have been killed. If for some reason they won't, you're probably better off just rebooting (to be sure, the "Shut Down" option from the Finder/Menu bar will probably not help, just go to the Terminal and type: sudo shutdown -r now - provide your Admin password and your machine should be restarting).

Good luck!
HOHO
IOS7 隐藏状态栏

IOS7 隐藏状态栏

IOS7以下的版本中隐藏状态栏十分方便:

[[UIApplication sharedApplication] setStatusBarHidden:YES];
只要这么一句就解决问题了,但在IOS7中就不是这样了。有人说写代码,有人说info.plist里加一行即OK
说写代码的人是这样的:

‐ (BOOL)prefersStatusBarHidden {
return YES;
}

我试了好象无效
说改info.plist的人是这样的:

You should add this value to plist: "View controller­based status bar appearance" and set it to "NO". This would let you set the status bar to hidden mode and it's global not like other answers.

UPDATE: If you want that the status bar would be hidden on splash screen don't forget to mark "Hide during application launch" on target status bar options. Also, you can add "Status bar is initially hidden" to "YES" on the plist if you don't want to do it with code inside the app.

试了之后。立马见效。
原文来自:http://stackoverflow.com/questions/17763719/status-bar-wont-disappear