手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

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 来取数据

 早期抓取数据都是偷懒用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写个简单的例子。。

XML/HTML代码
  1. var doc * goquery.Document  
  2. var e error  
  3. if doc, e = goquery.NewDocument(PROXY_FOREIGN_PAGE_URL); e != nil {  
  4.     ConsoleLog(e)  
  5.     return ;  
  6. }  
  7. doc.Find("tr ").Each(func(i int, ss * goquery.Selection) {  
  8.     s := *ss.Find("td");  
  9.     if s.Length() == 6 {  
  10.         port , _ :strconv.Atoi(s.Eq(1).Text());  
  11.         if port > 1 {  
  12.             var pInfo ProxyInfo  
  13.             pInfo.Ip = IpString(s.Eq(0).Text());  
  14.             pInfo.Port = PortString(s.Eq(1).Text());  
  15.             ProxyInfoLists = append(ProxyInfoLists , pInfo);  
  16.         }  
  17.   
  18.     }  
  19. })  
goquery的项目地址是:github.com/PuerkitoBio/goquery

Tags: goquery, phpquery

用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里面进行设置)
 
这两个一般就是现在需要设置的东西

Tags: phonegap

如何禁用消息中心

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

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

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

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

2、命令:

XML/HTML代码
  1. 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

Tags: 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。
XML/HTML代码
  1. 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!):  
  2.   
  3. The Finder crashed:  
  4. killall -KILL Finder  
  5. (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.)  
  6.   
  7. The Dock crashed:  
  8. killall -KILL Dock  
  9.   
  10. Spaces crashed:  
  11. killall -KILL Dock  
  12.   
  13. The Menubar crashed/refuses to be clickable:  
  14. killall -KILL SystemUIServer  
  15.   
  16. 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).  
  17.   
  18. Good luck!  
 
HOHO
 
 

Tags: dock, kill