2008年10月10日星期五

gitx,不得不推介了

在mac上用git的人们也许有过和我一样的不爽,本来git自带的gitk是个不错的工具,可以方便的查看所有提交的痕迹。但可惜gitk是用gtk写的,在mac下界面很不友好,功能大打折扣。
但我们这个世界上总有一些人有着崇高的情怀来面对生活,并随手就写下一个gitx造福人类。引用作者的介绍
# What is GitX?

GitX is a gitk like clone written specifically for OS X Leopard and higher.
This means that it has a native interface and tries to integrate with the
operating system as good as possible. Examples of this are drag and drop
support and QuickLook support.

项目的wiki上写着很清楚的安装及使用方法,但要注意这一点
After you have started it once, you can install the command-line tool
through the menu (GitX->Enable Terminal Usage…). This will install a
“gitx” binary in /usr/bin.
安装后,在git项目的根目录下输入gitx:







2008年10月8日星期三

十月的雨

国庆回了家,虽然是请假回去的。国庆于我意义不大,我似乎天天都在假期中,但回家就不一样了。我上大学后还没有在秋天回过家。以前到这个时候,我在校园里就会想家乡那边人们在忙什么,割麦子,起山药,拔菜籽,打苍蝇。这个时候已经有点冷了,人们穿着线衣,线裤,满脸堆笑的老农们,满脸堆笑的老农们站在晴朗的天空下拿着爬犁或者拿着铁锹或者其他什么工具,他们的手里总会拿着工具的。在早上阵阵的寒意里,在下午徐徐的暖风中。
但事实证明四年的时间让我的记忆出现了偏差,回家的前俩天天气好的很,接着俩天下起了雨。我没看到麦子,没看到老农,只看到了苍蝇,于是痛痛快快感受了一把当年一下打死七个的雄风。现在我们的小镇大不如从前景象,人走的越来越多,街道越来越破,今年很多人种了胡萝卜,但似乎收成也一般,只剩下苍蝇们还依旧生机盎然,成群结队。不对,还有漫街边巷的小狗,现在大家治安不靠狗了,那些个大饭量也大的big guy都换成了小毛犬,每天争斗于剩饭剩菜旁,make love于光天化日下,不避老幼男女。
行文至此,BTV6正在直播的“利物浦vs曼城”是高潮一波又一波,曼城上半场进了俩个,下半场由被扳回三个。这是红军的专长,所以利物浦球迷是幸福的。相比之下我们国米球迷气短了很多,荡气回肠的球很长时间与国米无关了。
这篇文章的题目是我很喜欢的俩首歌的结合,October, November Rain.



2008年9月22日星期一

JQuery: Drag Drop Sort

updated: add the html,

this is the html,


    <% @pages.each do |p| %>
  • ">
    <%= p.title %>
    <% if p.has_children? %>
      ">
      <% p.children.each do |c| %>
    • " class="sortable_submenu"><%= c.title %>

    • <% end -%>

    <% end -%>

  • <% end -%>


if you know the rails, it is easy :) .

--------------------------------------------------------------------------------------------------------------------------------

I need a "Drag Drop Sort " tree in my project. I found some jquery plugins, but all of them seems can't solve my problem, so I decided to solve it use JQuery UI.
All I need are 'jquery-ui-core', 'jquery-draggable', 'jquery-droppable','jquery-sortable',
these you can download from JQuery site.
Then some code like this:


$(".assets li").draggable({
helper: 'clone'
});
$(".drop").droppable({
accept: ".drag",
activeClass: 'droppable-active',
hoverClass: 'droppable-hover',
drop: function(ev, ui){
var drag = ui.draggable;
drag.appendTo($(this).siblings('ul.assets'))
$.ajax({
dataType: "script",
type: "PUT",
url: url,
data: "asset[category_id]=" + $(this).attr('id')
});
}
});
$("#sort").sortable({
items: '.sortable',
stop: function(e, ui){
var data = $(this).sortable("serialize")
$.ajax({
url: "/back/pages/sort",
type: "POST",
data: data,
dataType: "script"
});
}
});



The code is simple, there are some useful callbacks you can use, like start, stop, drop..., you can find them in the doc.

In the sort, this function "$(this).sortable("serialize") " will return the sort result.It works by default by looking at the id of each item in the format 'setname_number', and it spits out a hash like "setname[]=number&setname[]=number".

So do you think JQuery is amazing? Let's Rock!

2008年8月29日星期五

Add Paypal checkout for Spree

The RailsEnvy guys begin their own casts business---Envycast .They used the Spree to build the site, and allow customer checkout by Paypal.
Some days ago, I use Spree in a site.I think it's better than substruct,because it's more simple and extendable. I also needed to integrate Paypal to it, but some thing make me confused.
1) There are many ways to integrate Paypal, and many articles introduced these ways.First you need to know which way would you like to use? I used Website Payments Standard , if you don't use this way, this article maybe not help you.

2) For test it, you need signup a develop account,then use this account to create a buyer account, and a seller account.

3) When you test your application, you must login the develop account.

4) install the Spree Paypal extension , this extension isn't mature, but can be used.

5) change the extension's default account and some urls to your own

5)there are some html field the paypal server can accept, you need to find what you would like to use.

2008年8月22日星期五

rails crop image use paperclip and jquery

More and more sites begin to allow user to crop their avatar.
After some time google, I haven't found a easy way to implement this in rails use jquery and paperclip.
So I think maybe this article is helpful.

First I install a jquery plugin imaareaselect , it works well.

I add it in the view,
 
<% content_for :head do %>
<%= javascript_include_tag 'jquery-areaselect' %>
<% javascript_tag do -%>
$(window).load(function () { $('#duck').imgAreaSelect({ x1: 120, y1: 90, x2: 280, y2: 210, onSelectEnd: set_crop });
});
function set_crop(img, selection){
$('#crop_left').val(selection.x1)
$('#crop_top').val(selection.y1)
$('#crop_width').val(selection.width)
$('#crop_height').val(selection.height)
}
<% end -%>
<% end %>


and these lines in a form

 

<%= hidden_field_tag "crop_left", "0" %>


<%= hidden_field_tag "crop_top", "0" %>


<%= hidden_field_tag "crop_width", "1" %>


<%= hidden_field_tag "crop_height", "1" %>



<%= image_tag current_user.photo.url(:large), :id => "duck" %>


then I write some codes in a moudle, this is the file:


I will extract this as a paperclip extention later. In fact, you can this with prototype too.

2008年8月9日星期六

Todo on MAC

Im not a 'getting things done' fan,but sometimes TODO list is necessary.You know, the fun of TODO list is writing it, not implement it.
I found two useful tools on Mac, Tasks bundle of Textmate and evernote .

Tasks bundle is pretty simple, but useful. when you install the bundle, then it is there.
The Tasks grammar and commands by default apply to files with the .todo, .todolist and .tasks extensions.

There is a littel problem, the default hotkey use ⌅, which sometimes make you confused.
so I just changed it in the bundle editor, this is the easist way to fix this.For more info,you need to read the original article.

Evernote is another amazing software,it allows you to easily capture information in any environment using whatever device or platform you find most convenient, and makes this information accessible and searchable at any time, from anywhere.

when you find some useful pictures or web pages, Evernote is a great tool to store them and write some note for them.


2008年8月7日星期四

四年前

四年前的现在,我正在享受上学以来最悠长美妙的一个假期。我试图沿着残留的记忆追溯回去,但来时的路已然模糊。我只记得我们玩得很开心,在故乡的我们,很少会有压抑的时候。
四年过去了,我没有长高,也没有变胖,没有什么可以赢得掌声的事在我身上发生。幸好我不是那种不赢得聚光灯就无法快乐的人,我希望我可以享受自己的生活。享受不算健壮但还很是健康的身体,享受编程,每一次刷新浏览器看到新页面时的成就感,享受对音乐,对阅读,对体育活动的热爱,享受有限的全家人呆在一起的假期,享受总给我带来烦恼但总让我独自傻笑的木头,享受我的小黄猫(我知道我很对不起你),享受我家的小白狗和她的我未曾谋面的小黑狗孩子。享受我选择做自己的网站的勇气,我知道,也许我不会成功,但我想,带给你们一点我创造的东西。
我不知道我能不能让你们快乐,但我真的想那么做。

2008年8月2日星期六

下一个腾讯?

我接触电脑是从初中时开始。和大多同学一样,电脑游戏成了我的新大陆。到现在仍然念念不忘当年玩游戏的激情澎湃,感叹现在有了自己的电脑,但再无当初的热情了。
我接触网络是从初三开始。和大多同学一样,qq让我惊诧于网络的魅力。那时候我们以为聊qq就是上网的全部。
时至今日,我从事了互联网行业, 也可以拍着胸脯讲自己是半个互联网人了。我几乎天天都要上网,有比牛毛多的web2.的网站我也注册了比牛毛多的帐号。国外的网站界面大都很美观舒服,功能也有特别之处,我试着把他们介绍给我的同学,但大家似乎都不怎么感冒。我想原因很简单,因为上面没几个和我们有关的人。
如果你有机会去网吧看看,你会明白为什么你觉得很酷的网站用户很少的原因了。上网对大多数中国网民来说就是聊qq,六七年前是这样,六七年后似乎还是这样。当然大家多了一个选择叫网络游戏。这个情况让我失望了很长时间,我希望我们都能多一点geek精神,但这仅仅是个希望。
最近的一俩个月情况有点改变(多少有那么一点)。我突然发现我的同学们似乎都在使用一个网站,地球人都知道,我就不给出链接了。这个网站我是去年十月份注册的,那时候我的大学同学有一部分已经开始使用这个网站了,我不知道那个时候它的用户量是多大,但到了现在,我觉得可能它的用户量增长了能有一倍。因为我的高中,初中,甚至小学同学都开始现身了。衡量一个站点的影响力,可以去网吧观察,看人们在打开ie后第一个登录的网站是什么。我确实这样做了,我以我并不是完全善意的眼光去观察,发现有不少人开机后做了俩件事,一曰上qq,一曰上校内。
我不是说校内会成为下一个qq,但校内确实成为了qq之后又一个让你不能忽视的东西。不能忽视的意思就是你周围的大多数人都向你说起过这个东西,你感觉这的却是个时髦又有些用处的东西。我也不是说校内会不成为下一个qq,现在我们确实不像原来那样重视qq了。互联网越来越普及,人们的选择越来越多。几年前有几个人想到开网店,网上购物,到现在我的很多一直呆在县城里的同学都开始托我网上买点东西。腾讯也发布了自己的sns,但我们可以肯定它不会威胁到校内的。
我还想说的是中国的sns市场竞争是不已经结束了,真得没有机会去和校内扳手腕了?事实上这不是一个问题。互联网是一片充满奇迹的土地,任何成功在它实现以前都是一件不可能的事。如果你做一个网站总是要考虑已经有了那些‘大家伙’,你的网站该如何立足的话,那么你还不具有互联网的创业精神。
话说回来,什么样的sns可以和校内叫板?我自己认为,太酷的不行,功能太花哨的不行,没新意的不行。在中国互联网混,一定要有草根精神,明白用户真正需要的是什么,不能看了国外的酷站眼光就高了。也不能想当然,觉得这么好的功能一推出肯定火,事实上喜欢尝试新东西的人不多,而且你的新功能也许并没有你想象中的那么好。至于新意嘛,在一个已经有人做大了的市场里推出新产品,总是要有点不一样的东西,有个词叫做差异化竞争。你不能指望那些去网吧上网的人也和你一样有空申请那么多帐号只是为了进去看看是个什么网站。

最后表达一下我对豆瓣和土豆的敬意。他们坚持自己的东西,用优秀的产品,优秀的服务来吸引人,而不是用那些无聊,污染视觉的东西壮大声势。事实上,只要你的产品足够好,就不怕没人用。

2008年7月25日星期五

Use Yml2tex with LaTeX Beamer on Mac to make Presentation

Im not good at make presentation. But i know sometimes a good presentation will help your business a lot.
I don't mean use PPT can't make good presentation, but for me PPT is hard to use,sometimes I would rather use Word or Html to make my presentation.
Today I found a good tool called LaTeX Beamer, thanks to ZedShaw , he give this link that saved my life.
I haven't used LaTex or Tex on mac, so if you are a beginner like me,
these links maybe useful for you:
  1.    first you need to install MacTex from here.
  2.    Then follow this link to install  LaTex Beamer.
  3.    If you are a coder you may need to insert code to your presentation, you may like to try this small python project to make your things cool ;).

   Enjoying it!
 
   


2008年7月19日星期六

关于 ‘呵呵’

我越来越发现朋友有俩种,一种是前三句聊天中必有一句‘呵呵’的,另一种是‘呵呵’在三句之外的。
(特指IM,WEB或者短信)
‘呵呵’这个东西大概是伴着IM或者短信发展壮大的,现在在各种手指交流的媒介中占有举足轻重的地位。我一直在想这个词或者这个短语代表的是什么意思,是‘哈哈’吗?是‘嘿嘿’吗?抑或是人们羡慕狗类特有的‘汪汪’或猫类特有的‘喵喵’而自己创造了属于自己的叫声?
我觉得如果用‘呵呵’来表达笑声,似乎浅了点。你想郭德纲在台上抖了一个自以为高明的包袱,结果下面一片‘呵呵’声,他是不感觉有点不爽?像郁达夫写的“正象是黄酒之与白干,稀饭之与馍馍,鲈鱼之与大蟹,黄犬之与骆驼”,有点不够劲?
如果用‘呵呵’表达自谦,又似乎虚了点。譬如有人说我踢球好,我诚惶诚恐,我知道我球技很烂,我得说“没这回事,差的远呢,我哪行”;要有人说我长的帅,我就说“呵呵,那里那里”,因为我自认为这张老脸确实是有水准的:》。所以我说‘呵呵’的时候就向老罗说得“批评批不到点子上,表扬又表扬的不够”的感觉。说是自谦,不说说是迎合奉承。
所以说‘呵呵’这个东西不是什么好东西,今天这个时代,写书信的朋友是一种,打电话的朋友是一种,其他的我们可以统称‘说呵呵’的朋友,和外国人的‘say hi’型朋友有相似之处。写书信的朋友
通常是有事没事都会写,短则半月二十天一封,长则数月半年一封,有的十多页长,有的不过半页。打电话的朋友没事也打的居少,打的时间长的更少,我个人的体验是有时候刚开始打心疼话费,有时候打了一小回儿觉得很多原准备要说的话不说也无所谓了,然后开始心疼话费。一个哥们曾说打电话时就感觉拿着一个一个大馒头往外扔。打电话打的很过瘾的时候也有,很少。
至于说‘呵呵’的朋友,很久没聊,刚聊俩句就开始呵呵。有时候一看聊天记录,你来我往都是‘呵呵’。发短信也如此,有一类型短信统称‘呵呵’短信,不回复吧有碍情面,回复吧确实没意思。现在SNS也多了,可仔细一看,只看出俩个字,‘呵呵’。想一想这大概就是时代特点吧,有这先进工具了,多和朋友联系总是有好处的。多几声‘呵呵’,也算跟的上时代。但我自己做网站,我不想做成一个‘呵呵’型网站,我不是说‘顶一下’,‘踩踩’,‘吼吼’这些词不好,但我们做互联网总是希望他能为人们带来更多的一点东西。电话打过了就没了,短信满了就删了,我希望我的网站能像书信一样,虽然不多,但多年后仍可以找到那种触动,起码记得有过这么回事。
所以我就说嘛,是有些道理的。呵呵。

ajax upload use jquery + respond-to-parent

Ajax upload is cool.If you want to imeplement this in rails and your js libraray happen to is jquery, I think jquery and respond-to-parent plugin will make it easy.Maybe this plugin of jquey is also a way, but it can't be easy to use for me.

First you need to install the plugin,
in rails2.1, you can
./script/plugin install
git://github.com/markcatley/responds_to_parent.git
or

cd vender/plugins
git clone git://github.com/markcatley/responds_to_parent.git
cd ../..

then in your views, you need a form

form method="post" action="/couples/1/albums/1/pictures.js" target="background-uploader" enctype="multipart/form-data" id="background-upload-form"
<%= file_field_tag "picture_data[]", :id => 'ajax_upload_file' %>

and an iframe

iframe width="1" height="1" name="background-uploader" src="about:blank" style="display:none;"

maybe you also need a "loading" to make your site better:

div id="loading" style="display: none;"
<%= image_tag 'loading.gif' %> 上传中...

look, the iframe's name is same as form's tagret,so you can target your file upload forms to a child IFRAME.

then in js file,we can just use few lines to handle this :
$('#ajax_upload_file').change(function(){
$("#background-upload-form").hide()
$('#loading').show() $("#background-upload-form").submit()
});
and in controller we can use respond-to-parent link this:
respond_to do |wants|
wants.js do
responds_to_parent do
render :text => "jsFunction"
end
end
end
That's all, so your browser will excute the js function that render in the controller.

is this awesome?

2008年7月17日星期四

在细雨中呼喊

昨天一个下午看完了余华的在细雨中呼喊 ,似乎好久没有这么迅速的阅读体验了。作者的故事和故事中的人物以及人物的情感,命运,像京津动车组一样扑向我的身体然后穿了过去。余华的书我看过一些,长篇有许三观卖血记,中篇有挺多的。至于活着,太多的介绍,太多的分析,让我失去了阅读最基本的快感---接下去发生什么?所以一直没去看。
事实上我喜欢余华是从高中开始的,读了一篇后来听说是他的处女作的小说十八岁出门远行。这篇小说我读了很多遍,现在让我印象依旧深刻的是它的俩个特点, 一是文采好,比喻新颖。恰当,又有一种幽默在里边。比如说这一小段:
天色完全黑了,四周什么都没有,只有遍体鳞伤的汽车和遍体鳞伤的我。我无限悲伤地看着汽车,汽车也无限悲伤地看着我。我伸出手去抚摸了它。它浑身冰凉。那时候开始起风了,风很大,山上树叶摇动时的声音像是海涛的声音,这声音使我恐惧,使我也像汽车一样浑身冰凉。

二是用很正常的逻辑与语言来描写荒诞的故事,像这一小段:
司机这时在公路中央做起了广播操,他从第一节做到最后一节,做得很认真。做完又绕着汽车小跑起来。司机也许是在驾驶室里呆得太久,现在他需要锻炼身体了。看着他在外面活动,我在里面也坐不住,于是,打开车门也跳了下去。但我没做放手操也没小跑。我在想着旅店和旅店。
余华最让人惊讶的地方不是他运用文字的能力,而是他直面死亡,剖析死亡的冷静态度。而我对这种对于血腥,死亡过于详细到了近似与科普说明文的描写有着过敏般的反应。所以在看许三观卖血记时我由于身体的反应不得不中断了一段时间的阅读。至于现实一种 我根本就没仔细去看。
而看这本在细雨中呼喊是好多了。这是余华的第一本长篇小说,似乎那时候的他并没有完全发现自己对于血腥和死亡如此坦然的潜力。每当这种苗头有所骚动时他恰当的中止了它。所以我可以放心的阅读了。看完后觉得是本好书,但似乎确实比 许三观卖血记差了点。许中那种大环境的残忍与小人物的幽默交相辉映,让人印象深刻。像这句
“你知道吗?为什么工厂停工了、商店关门了、学校不上课、你也用不着去炸抽条了?为什么有人被吊在了树上、有人被关进了牛棚、有人被活活打死?你知道吗? 为什么毛主席一说话,就有人把他的话编成了歌,就有人把他的话刷到了墙上、刷到了地上、刷到了汽车上和轮船上、床单上和枕巾上、杯子上和锅上,连厕所的墙 上和痰盂上都有。毛主席的名字为什么会这么长予你听着:伟大的领袖伟大的导师伟大的统帅伟大的舵手毛主席万岁万岁万万岁。一共有三十个字,这些都要一口气 念下来,中间不能换气。你知道这是为什么?因为文化大革命来了。”
我喜欢看书,但讨厌文学欣赏之类的东西。我觉得写小说重要的俩点是技巧和文采,写得是什么故事,是在其次的。也许余华不这么想,不过他起码是符合了我的标准。至于他的近作兄弟,大家有褒有贬。我自己并没有完整的阅读,其中大部分原因是上部有点血腥,让我脆弱的神经有点不舒服,下部有点残忍,再加上肉体的冲击,让我原本就脆弱的神经更消受不了。罢了。

2008年7月14日星期一

Yet Another Hello World

天上白玉京,五楼十二城.
仙人抚我顶,结发授长生.