突发奇想

作者:Jerry 发布于:2011-11-20 17:41 Sunday 分类:日记

有很多话没说
有很多事没做
有很多时候你走后 我不知所措

有很多时间沉默
有很多日子要过
有很多时候你走后 我寂寞太多

突然有点突发奇想
你是不是也和我一样
对着同一片夜空和假想你在身旁

突然有点胡思乱想
你我的故事结局会怎样
是不是有一天我停住了
你就会 飞向远方

是不是有一天我停住了
你就会 留在身旁

 

评论(1) 引用(0) 浏览(118)

Mac OS 安装 Homebrew 和 MongoDB

作者:Jerry 发布于:2011-11-17 14:12 Thursday 分类:开发

Homebrew

Homebrew 是一个简单方便的能够在 Apple Mac OS X 下安装 Unix 工具的程序。

安装方式比较简单,只需要在终端下直接输入:

jerry-mac:~ jerry$ /usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

但是,由于权限的问题,可能会提示问题:

-e:66: warning: Insecure world writable dir /usr/local/bin in PATH, mode 040766

-e:77: warning: Insecure world writable dir /usr/local/bin in PATH, mode 040766

调整目录的读写权限:

$ sudo chmod o-w /usr/local/bin

$ sudo chmod o-w /usr/local

重新尝试,

jerry-mac:~ jerry$ /usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

==> This script will install:

/usr/local/bin/brew

/usr/local/Library/Formula/...

/usr/local/Library/Homebrew/...

==> The following directories will be made group writable:

/usr/local/.

/usr/local/bin

==> The following directories will have their group set to admin:

/usr/local/.

/usr/local/bin

Press enter to continue

==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/. /usr/local/bin

==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/. /usr/local/bin

==> Downloading and Installing Homebrew...

==> Installation successful!

Now type: brew help

安装成功。

更新软件库清单:

jerry-mac:~ jerry$ brew update

Initialized empty Git repository in /usr/local/.git/

remote: Counting objects: 48129, done.

remote: Compressing objects: 100% (21482/21482), done.

remote: Total 48129 (delta 30258), reused 41855 (delta 25975)

Receiving objects: 100% (48129/48129), 6.72 MiB | 170 KiB/s, done.

Resolving deltas: 100% (30258/30258), done.

From https://github.com/mxcl/homebrew

 * [new branch]      gh-pages   -> origin/gh-pages

 * [new branch]      master     -> origin/master

HEAD is now at cbcaa4d gpac: make lowercasing binaries an option

Already up-to-date.

MongoDB

创建数据目录,更改权限:

jerry-mac:~ jerry$ sudo mkdir -p /data/db/

jerry-mac:~ jerry$ sudo chmod -R 777 /data/db/

方式1:通过 Homebrew 安装

$ brew install mongodb

方式2:解压缩安装包

下载地址:http://www.mongodb.org/downloads

解压缩安装包,启动 MongoDB Server

$ ./mongodb-xxxxxxx/bin/mongod

测试下连接:

jerry-mac:bin jerry$ ./mongo

MongoDB shell version: 2.0.1

connecting to: test

> db.foo.save({a:1})

> db.foo.find()

{ "_id" : ObjectId("4ec48e59b4ce9fde1a0edea3"), "a" : 1 }

标签: Mac MongoDB

评论(0) 引用(0) 浏览(233)

MySQL 各种问题

作者:Jerry 发布于:2011-11-14 17:21 Monday 分类:MySQL

今天在 Mac OS 下碰到了 MySQL 的各种问题,因为在 Mac 下用 MySQL 的时间不多,所以不太好确定是哪一层面的原因,费了不少周折,最后算是都解决了。

MySQL Workbench 无法使用

之前是用的 XAMPP 的 MySQL 组件,以前的使用相对比较简单,只是把数据库导入进去之后就在 Web 上直接用了,没有发现这个组件存在的问题,今天用 MySQL Workbench 访问这个库,发现报各种错误,主要的意思是/var/folders/下的某个诡异的目录没有读写权限,更改了目录读写权限后也是错误依旧。本来猜测是 Workbench 自己的原因,后来下载的新的版本也还是不能行。查看 MySQL 数据文件夹下的 err 文件,发现这个 MySQL 服务组件居然报了n多乌七八糟的错误,看来这个服务端已经不能要了。重新下载了个官方的 MySQL for Mac 版本,mysql-5.5.17-osx10.6-x86.dmg,装上去把库也挂上去,Workbench 居然好了。

由此看来,当 Workbench 出问题的时候,先不要着急骂 Workbench,看看自己的库是不是已经危了。

MySQL 访问权限

MySQL 比较白痴,127.0.0.1 和 localhost 不知道是一码事,在权限表里面是分开的。在修改密码的时候,一开始只改了1行,把localhost 改成了 %,登陆进去也好好的,但就是看不到库,比较让人崩溃。后来把两行都重新设置了才正常。另外,如果加外面的访问 % 的时候,最好单加一行,别把原来的删掉,不然也会容易错乱。

如果新创建用户,并且开通访问权限,其实写 localhost 和 % 这两个就成了。

GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

FLUSH PRIVILEGES;

MySQL JDBC 连接

JDBC 访问 MySQL 的连接方式有点奇怪,用 127.0.0.1 可以正常访问,但是 localhost 会被拒绝。粗略看了下原因,如果是 localhost,在连接的时候会用本地的 IP 地址直接访问,如果这个IP 地址不在 MySQL 的访问权限表里,就会被拒绝掉。这个问题在 PHP 下面就没有发生,深层次的原因有空的时候好好分析分析。

MySQL 编码

MySQL 的编码总是非常恶心,用默认的配置启动,在程序里插入中文,提示:error 1336 (HYOOO):Incorrect string values:...

首先,考虑是服务器编码的问题,在my.cnf 的[mysqld]里面添加了:

character_set_server = utf8

在 MySQL 里确认字符集已均改为 utf8:

mysql> SHOW VARIABLES LIKE 'character%';

+--------------------------+-----------------------------------------------------+

| Variable_name            | Value                                               |

+--------------------------+-----------------------------------------------------+

| character_set_client     | utf8                                                |

| character_set_connection | utf8                                                |

| character_set_database   | utf8                                                |

| character_set_filesystem | binary                                              |

| character_set_results    | utf8                                                |

| character_set_server     | utf8                                                |

| character_set_system     | utf8                                                |

| character_sets_dir       | /usr/local/mysql-5.5.17-osx10.6-x86/share/charsets/ |

+--------------------------+-----------------------------------------------------+

但是,中文数据依然无法插入,错误依旧,考虑库和表的字符集的问题,更改库字符集:

ALTER DATABASE db_name DEFAULT CHARACTER SET utf8;

依旧不行,更改原表的字符集:

ALTER TABLE temp_table DEFAULT CHARACTER SET utf8;

依旧还是不行,再继续把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:

ALTER TABLE temp_table CONVERT TO CHARACTER SET utf8;

确认查看各个列的字符集:

mysql> show full columns from temp_table;

+--------+--------------+-----------------+------+-----+---------+-------+---------------------------------+---------+

| Field  | Type         | Collation       | Null | Key | Default | Extra | Privileges                      | Comment |

+--------+--------------+-----------------+------+-----+---------+-------+---------------------------------+---------+

| No     | varchar(100) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         |

| Name   | varchar(100) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         |

| Price  | varchar(100) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         |

| Count  | varchar(100) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         |

| Date   | varchar(100) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         |

| Source | varchar(100) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         |

| Export | varchar(100) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         |

+--------+--------------+-----------------+------+-----+---------+-------+---------------------------------+---------+

7 rows in set (0.01 sec)

终于正常!

另外加一句,如果MySQL 服务端设置好之后,JDBC 或者 PHP 连接 MySQL 中文还是有问题,那多半是 Conn 的字符集问题,最好在查询开始前加一句:SET NAMES 'utf8'; 这句相当于: 

SET character_set_client = utf8; 

SET character_set_results = utf8; 

SET character_set_connection = utf8; 

标签: MySQL

评论(0) 引用(0) 浏览(146)

如果有如果

作者:Jerry 发布于:2011-10-24 22:00 Monday 分类:日记

这世界 如果有如果
如果一切重头 
如果你再说你爱我
习惯了 熟悉的温柔
turn around turn around turn around
怎么还是 一个我

雨滴滴答答的坠落 
还有什么说不出口
泪不停不停的滑落 
习惯没有你的角落

I want to sing a song for you
sing for myself
没有你的天空 没有云朵
you are my everything 
and I really love you
在泪干了以后 想听你说 爱我

想太多 如果有如果
如果永远爱我 
如果最后能到最后
一个人 该习惯什麽
turn around turn around turn around
习惯晚安自己说

雨滴滴答答的坠落 
还有什么说不出口
泪不停不停的滑落 
习惯没有你的角落

I want to sing a song for you
sing for myself
没有你的天空 没有云朵
you are my everything 
and I really love you
在泪干了以后 却还记得

还记得青苹的酸甜  
酸到心里没有感觉
梦太美 回忆太心碎 
再多给我 一点点的勇气

I want to sing a song for you
sing for myself
没有你的天空 没有云朵
you are my everything 
and I really love you
在泪干了以后 想听你说 love you

这世界 如果有如果
如果一切重头
如果你还在
请 说你爱我

http://www.xiami.com/song/1770197159

 

评论(2) 引用(0) 浏览(57)

解决 cannot modify header information - headers already sent by (......)

作者:Jerry 发布于:2011-10-10 17:31 Monday 分类:开发

PHP 页面提示 cannot modify header information - headers already sent by (......)

在页面顶部的php标签中加入ob_start();

在返回的信息下面加入ob_end_flush();

错误信息成功屏蔽。

 

另外也可以尝试 php.ini 设置把 output_buffering 设为 on,另外注意去掉 UTF-8 中的 BOM。

标签: php

评论(0) 引用(0) 浏览(244)

关于 Mac 右键菜单

作者:Jerry 发布于:2011-10-3 0:23 Monday 分类:Mac

Mac OS X Lion 的 Launch Service 用于关联应用程序和文件并维护最近打开的项目列表。

在文件关联和右键菜单方面,每当系统安装一个新的应用程序,都会调用 Launch Service 的 API 注册关联的文件类型。有两种情况,一种是通过 pkg 安装包安装的,通常这些应用程序会通过脚本主动向 Launch Service 注册;而第二种常见的拖拽式 .app 应用程序,则是由 Finder 和系统通过对应用程序的的一些判断后代理注册的。应用程序通过 Launch Service 注册以后,就和特定的支持文档产生了关联。

Launch Service 隶属于 Application Service Framework (包含一堆的应用程序接口,开发者可以通过这些接口,调用系统服务),用于使一个运行中的程序,能够打开另一个程序,文档,URL的接口。它可以打开另一个程序;在另一个程序中打开文档或URL;找到对于一个文档或URL最适用的程序;为一个应用程序注册它可以关联的文档类型和URL;获得一个文件,URL等正确的显示方式,比如如何显示此类文件的图标以及信息等;维护和更新最近试用过的最近试用程序和文档的列表。

从原理上看,Launch Service 维护着一个文件到应用程序之间的多对多对应关系,这个关系是存在一个数据库中。这个数据库被称作L aunch Service Database。对于 Mac OS X 下的每一个文件都有描述信息(包括我们从 GetInfo 中看到的一些)。Launch Service 感兴趣的,就是这个文件的文件类型码,创建者签名,文件扩展名,显示名称(用在 Finder 或 Dock 中显示),文件通用类型描述(比如,是应用程序,还是文件夹,或是替身,或是文件或视频)。除了这些,还有一些额外的 (Meta Data 用于快速描述文件信息) 标志位。比如,是否是可执行程序,是否是容器(文件夹,包,卷,dmg),是否是隐藏文件等等。而应用程序方面,Launch Service 会从应用程序的 info.plist 中获取诸如应用程序名称,图标,应用程序可打开的文件或URL类型,运行环境,是否有UI,对应权限等信息。Launch Service 就会根据这些信息,建立数据库,这就是右键点击文件时,看到的可打开此文件的应用程序列表。当然,如果一个文件根本没有任何匹配,右键菜单为空。Launch Service 会跳出窗口,让用户自行选择应用程序。用户选择后,Launch Service 就会将这个对应关系保存在数据库中。

Launch Service 对于一个文件关联多种应用程序的时候,也是有优先级排序规则的,从右键菜单就可以看出,Launch Service 会有一个默认选择的应用程序。它的排序规则是:
1. 用户手动指定的应用程序拥有最高优先级。
2. 如果没有指定,那么 Launch Service 会查看此文件扩展名,然后找到数据库中所有跟此扩展名相关的应用程序。
3. 如果没有扩展名,或者第二步中找到多于一个的应用程序,LS 会查找该文件是否含有文件类型码,再按照此类型码在数据库中查找所有相关应用程序。
4. 如果通过2,3步还是找到了多于一个的应用程序,那么,首先查找哪些应用程序注册的创建者签名和文件的创建者签名匹配,然后再查找哪些应用程序是否是 Mac OS X 本地应用程序(Native Program,指的是不用 Classic 模拟环境,X11 模拟环境,Java,Python 等等),再查找应用程序是否是存在于系统启动卷上,再查找哪些应用程序在本地卷上,如果到这里还是剩下多于一个的应用程序,就只能比版本号了。如果还是比不出来,那么 LS 就会随便排序了。

通常,我们在 Mac 下会遇到重复菜单项的问题,或者某些已经卸载的程序的菜单项遗留。从原因上来看,有三种可能:
1. 除了 LS 感兴趣的项目外,还有好多其他的项目也要被存储在数据库中。每当 LS 要注册一个新应用程序时,它会先看这个应用程序中有没有一个 “inUpdate” 的描述,如果此描述值为 1 (就是Yes),那么LS会查找数据库进行匹配。匹配到后会用这个新应用程序的信息来更新这个旧的信息。如果“inUpdate”为0,那么 LS 会直接注册这个应用程序并关联文件。这可能是潜在的重复项出现原因。
2. 有些装在 VM 或者 PD 的应用程序,在 VM 或 PD 卸载后也会残留到 LS 数据库中。
3. 应用程序描述的一些更新变化,使得 LS 认为这是一个全新的应用程序而直接注册。这三个方面都有可能造成重复菜单项的出现,而且很难完全避免。

如果需要清理菜单重复项和无效的关联,可以在终端运行下面命令,在本地、系统和用户空间上,重建LS数据库:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

lsregister 命令参数如下:
-kill:重置全局LS数据库(最先执行)
-lint:打印详细应用程序文件关联注册中的错误信息
-convert:将老数据库中的信息注册到新的LS数据库
-load:加载LS插件
-lazy n:指定一个注册等待时间
-r:递归的查找文件夹内容以做关联之用(不包括pkg类型文件和隐藏文件夹下的内容)
-R:递归的查找文件夹内容以做关联之用(包括pkg类型文件和隐藏文件夹下的内容)
-f:强制更新所有对应注册信息
-v:输出lsregister运行详细信息
-dump:在注册完成后显示数据库内容
-h:显示此帮助

标签: Mac

评论(0) 引用(0) 浏览(762)

Magic Mouse 改变滚动方向

作者:Jerry 发布于:2011-9-30 17:12 Friday 分类:Mac

默认的滚动方向很蛋疼,恢复成初始的方向只需要把自然滚动的勾去掉就可以了。

 

点击查看原图

标签: Mac Magic Mouse

评论(0) 引用(0) 浏览(211)

使用 ScribeFire 发布博客

作者:Jerry 发布于:2011-9-29 10:25 Thursday 分类:日记

这是一篇用 ScribeFire 发布的文章,这款插件支持 Firefox 和 Safari,支持在浏览器的状态下直接发布博客文章。

不过似乎不支持我博客程序的分类和图片上传。

放弃。

评论(0) 引用(0) 浏览(176)

Mac OS 查看隐藏文件

作者:Jerry 发布于:2011-9-2 3:11 Friday 分类:Mac

终端,运行命令:defaults write com.apple.Finder AppleShowAllFiles YES

按住 Option 键重新点击 Finder,选择“重新开启”,搞定。

标签: Mac

评论(0) 引用(0) 浏览(208)

Windows 7 用户登录

作者:Jerry 发布于:2011-8-9 12:47 Tuesday 分类:系统

打开安全策略 secpol.msc,启用本地安全组策略中的“交互式登录:不显示上次登录的用户名”,就可以让系统在登录时可以自行输入用户名,相当于老版 Windows 的手工输入用户名。

标签: Windows

评论(3) 引用(0) 浏览(172)

Powered by emlog sitemap