Allove Team 致力于移动应用的开发和服务(Android,J2ME,iphone,ophone)
2010年02月4日分享人生

0 Comments

领悟人生—<梓人传>

裴封叔之第,在光德里。有梓人款其门,愿佣隙宇而处焉。所职,寻、引、规、矩、绳、墨,家不居砻斫之器。问其能,曰:“吾善度材,视栋宇之制,高深圆方短长之宜,吾指使而群工役焉。舍我,众莫能就一宇。故食于官府,吾受禄三倍;作于私家,吾收其宜大半焉。
  他日入其宜,其床阙足而不能理,曰:“将求他工。”余甚笑之,谓其无能而贪禄嗜货者。
  其后京兆尹将饰官署,余往过焉。委群材,会群工,或执斧斤,或执刀锯,皆环立向之梓人左持引,右执杖,而中处焉。量栋宇之任,视木之能举,挥其杖,曰“斧!”彼执斧者奔而右;顾而指曰:“锯!”彼执锯者趋而左。俄而,斤者斫,刀者削,皆视其色,俟其言,莫敢自断者。其不胜任者,怒而退之,亦莫敢愠焉。画宫于堵,盈尺而曲尽其制,计其毫厘而构大厦,无进退焉。既成,书于上栋曰:“某年、某月、某日、某建”。则其姓字也。凡执用之工不在列。余圜视大骇,然后知其术之工大矣。
  继而叹曰:彼将舍其手艺,专其心智,而能知体要者欤!吾闻劳心者役人,劳力者役于人。彼其劳心者欤!能者用而智者谋,彼其智者欤!是足为佐天子,相天下法矣。物莫近乎此也。彼为天下者本于人。其执役者为徒隶,为乡师、里胥;其上为下士;又其上为中士,为上士;又其上为大夫,为卿,为公。离而为六职,判而为百役。外薄四海,有方伯、连率。郡有守,邑有宰,皆有佐政;其下有胥吏,又其下皆有啬夫、版尹以就役焉,犹众工之各有执伎以食力也。
  彼佐天子相天下者,举而加焉,指而使焉,条其纲纪而盈缩焉,齐其法制而整顿焉;犹梓人之有规、矩、绳、墨以定制也。择天下之士,使称其职;居天下之人,使安其业。视都知野,视野知国,视国知天下,其远迩细大,可手据其图而究焉,犹梓人画宫于堵,而绩于成也。能者进而由之,使无所德;不能者退而休之,亦莫敢愠。不炫能,不矜名,不亲小劳,不侵众官,日与天下之英才,讨论其大经,犹梓人之善运众工而不伐艺也。夫然后相道得而万国理矣。
  相道既得,万国既理,天下举首而望曰:「吾相之功也!」后之人循迹而慕曰:「彼相之才也!」士或谈殷、周之理者,曰:「伊、傅、周、召。」其百执事之勤劳,而不得纪焉;犹梓人自名其功,而执用者不列也。大哉相乎!通是道者,所谓相而已矣。其不知体要者反此;以恪勤为公,以簿书为尊,炫能矜名,亲小劳,侵众官,窃取六职、百役之事,听听于府庭,而遗其大者远者焉,所谓不通是道者也。犹梓人而不知绳墨之曲直,规矩之方圆,寻引之短长,姑夺众工之斧斤刀锯以佐其艺,又不能备其工,以至败绩,用而无所成也,不亦谬欤!
  或曰:「彼主为室者,傥或发其私智,牵制梓人之虑,夺其世守,而道谋是用。虽不能成功,岂其罪耶?亦在任之而已!」
  余曰:「不然!夫绳墨诚陈,规矩诚设,高者不可抑而下也,狭者不可张而广也。由我则固,不由我则圮。彼将乐去固而就圮也,则卷其术,默其智,悠尔而去。不屈吾道,是诚良梓人耳!其或嗜其货利,忍而不能舍也,丧其制量,屈而不能守也,栋桡屋坏,则曰:「『非我罪也』!可乎哉?可乎哉?」
  余谓梓人之道类于相,故书而藏之。梓人,盖古之审曲面势者,今谓之「都料匠」云。余所遇者,杨氏,潜其名。

2010年02月1日分享人生

3 条评论

我的一家

今天从海外看到一个应用,就是将自己的好友标注在自己手机地图上面,这个是一个很简单的位置应用,明年我要自己开发一个软件和女友一人一个,两个人互相知道对方在哪。

知道自己的孩子 知道自己父母的位置,Make people CONNECT .LIFE SO EASY!

2010年01月31日分享人生

1 Comments

张飞渡-

2

张飞渡口,

攀登—

1

这是在三峡旅游的时候在宜昌对面的河滩上面照的一张照片

强烈建议大家去宜昌玩的时候去爬爬那绝壁 天然的绝壁。

提醒自己时常记住疼老婆

1经常亲吻她,趁她不注意。
2 过马路时牵她的手。即使吵架。 3 一定要有属于你们自己的房子,即使不大。 4 一起听她喜欢的歌和她爱看的电影,陪她感动。 5 让她躺在你的腿上,可以抚摸她的头发。 6 她洗澡的时候唱歌给她听,让她不觉得闷。 7 哄她吃她不爱吃但有营养的食物。 8 用情侣牙刷,然后把你的牙刷和她的偷偷换一下。 9 当她很累时给她捏捏肩,捏捏脚,然后挠她脚心逗她开心。 10 偷偷录下她走来走去和睡觉的样子。不管她耍赖还是威胁就是不删。 11 没有理由的抱抱她。 12 她写的东西我一定用心的看,读懂内心的那个她。 13 周末为她做她喜欢吃的东西,然后散步。 14 在大天广众之下背她或停下来拥抱她。 15 在街上走的时候不会离她超过1米远的距离。 16 进餐厅的门或出图书馆的时候一定为她拉门让她先走。 17 陪她买菜杀价,她做饭你做汤。 18 趁她半睡半醒间为她盖被子,醒来先看看熟睡的她,然后亲一下她的额头。 19 在她特殊时期为她端上热的红糖水,然后若无其事的看电视。 20 偶尔早上打电话给她,听她佣懒的声音然后问她想吃什么给她带回去。 21 给她取可爱的外号,只有你能叫。 22 手机和电脑的背景一定是她的照片或你们的合影。 23 手机上的昵称一定是和别人不一样的,当你打给她时,她的姐妹看到会很羡慕。 24 在家帮她梳个幼稚的发型,然后叫她女儿。 25 如果出差一定带东西给她,虽然不贵,但证明你时刻都在想着她。 26 她坐上车,一定先为她拉上安全带,再为自己拉。 27 当她想要松开的时候一定再坚持抱她一会。 28 永远不会丢下她一个人,就算你无理取闹也一定要让她安全。 29 你心情不好的时候能同她说说,如果你不想说,就让你抱一下。 30 刚上的饭菜一定装作抢着吃的样子,多为她夹些。 31 当她无助时你能陪她爬爬山,看看夕阳。 32 吵架后绝对不冷战,哄她之后告诉她你是为她好。 33 睡觉的时候喜欢她抱着你,但当她背过身去一定也转身然后再抱她。 34 在她做家务的时候为她拍照,告诉她穿围裙的样子也一样很美。 35 如果她生病了一定细心照顾她,因为这时候她最脆弱,为她熬大大大补汤。 36 钱包里一定有她的照片。 37 下班回来一定会大声的说:老婆,我回来了。 38 半夜故意把被子往自己这边拉,让她离自己近些。 39 听她嘱咐我按时吃饭,多喝水多吃水果,说她罗嗦然后吻她。 40 打雷的时候把她揽到怀里睡,然后说:我怕怕。 41 帮她擦她吃东西留在嘴边的奶油的和果酱。 42 留一点点的胡渣在亲她的时候扎扎她。 43 在她的朋友面前细心的照顾她,让他们知道她的选择是对的。 44 在你的朋友面前细心的照顾她,不让她觉得你冷落了她。 45 有生之年陪她去趟她喜欢的城市或国家。 46 当她发呆,做饭,拖地或趴在阳台的时候,你会在身后揽住她。 47 不许她说对不起。告诉她这是圣旨。但可以用老公真好这四个字来代替。 48 即使是冬天,她说口渴你也会一溜烟下床帮她倒水,但回来她必须帮你暖身子。 49 当她钱包里钱不多的时候,你会拿给她说:帮我买双袜子,不用找了。 50 让她爱上你爱的游戏,让她爱上你爱的球队。 51 一起养只宠物。 52 在她能看到的地方写篇文章。 53 带她去游乐园,电影院,图书馆,博物馆,漫画展和小酒吧。 54 有一首关于我们故事的歌。每次去KTV都要唱。 55 当她要和你商量事情或说不开心的事的时候,一定放下手中的东西认真听。 56 如果有天她要离开你,你会挽留,也会放她走。告诉她受委屈的时候来找你。 57 抱着一颗感激的心和她相处,当你想发脾气的时候,你要学会忍耐。 58 下雨的时候打一把伞,迈一样的步伐踩水花不让天气影响她的心情。 59 去餐厅点她喜欢的菜,如果实在点不出就点没吃过的,一起喊好吃或难吃。 60 在你朋友和父母面前会夸赞她。不管她是否在场。 61 当她不理你时,就模仿她的动作、她的声音、她的表情、她撒娇时说的话。 62 送她回家一定把她送到门口,告诉她明天会来接她。 63 绝不在她面前盯着别的女人看,看A片绝不被她逮到。 64 总能随时变出一块她喜欢吃的糖。 65 如果你有一天出了意外,希望她能找个人替你爱她照顾她

Linkify对象的使用——对输入String做出判断

范例介绍如何让系统自动判断输入的字符串该做的提示,如输入的电话号码,就提供电话连接;若输入的是网址,就提供Hyper Link连接。该范例的功能非常的简单,就是在TextView Widget显示连接,让手机用户点击之后,打开对应的事件程序。

在Android里面,只要使用很简单的Linkfy对象,就能够完整这个程序,Linkify对象可以让系统动态的获取,并迅速做出判断。也就是说,如果你输入的是电话号码,点下连接,马上会到拨打电话的程序,如果你输入的是Email,就回到Email的页面;如果是输入网址,那么就会自动的打开浏览器。

具体程序如下:

package com.allove;

import android.app.Activity;
import android.os.Bundle;
import android.text.util.Linkify;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class Test extends Activity {
private EditText mEditText;
private TextView mTextView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

this.Init();
mEditText.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mEditText.setText(”");
}
});
mEditText.setOnKeyListener(new EditText.OnKeyListener(){
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
mTextView.setText(mEditText.getText().toString());
Linkify.addLinks(mTextView, Linkify.PHONE_NUMBERS|
Linkify.WEB_URLS|
Linkify.EMAIL_ADDRESSES);
return false;
}
});
}

public void Init(){
mEditText=(EditText)this.findViewById(R.id.EditText01);
mTextView=(TextView)this.findViewById(R.id.TextView01);
}
}

Android取得SIM卡内的信息——TelephonyManager的应用

这里主要用到Android API的TelephonyManager对象(Android.telephony.TelephonyManager)。以下源码就该对象的几个方法展示其用途。具体源码如下:

package com.mobile.allove.wfp;

import java.util.ArrayList;

import android.app.ListActivity;
import android.app.Service;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;

public class TelephonyManagerTest extends ListActivity implements OnClickListener{
private Button showInfoButton;
private TelephonyManager mTelephonyManager;
ArrayList SIMInfo_name=null;//显示要显示的SIM信息的名称
ArrayList
SIMInfo_value=null;//显示要显示的SIM信息的名称的值
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

this.Init();
showInfoButton.setOnClickListener(this);
}
public void Init()
{
showInfoButton=(Button)this.findViewById(R.id.Button01);
mTelephonyManager=(TelephonyManager) this.getSystemService(Service.TELEPHONY_SERVICE);

SIMInfo_name=new ArrayList();
SIMInfo_value=new ArrayList
();

//首先显示SIM卡状态
SIMInfo_name.add(this.getResources().getString(R.string.SIM_state));
if(mTelephonyManager.getSimState()==TelephonyManager.SIM_STATE_READY)
{
SIMInfo_value.add(”SIM卡状态良好!”);
}
else if(mTelephonyManager.getSimState()==TelephonyManager.SIM_STATE_ABSENT)
{
SIMInfo_value.add(”SIM卡未插入!”);
}
else
{
SIMInfo_value.add(”SIM卡被锁定或未知的状态!”);
}

//SIM卡供货商代码
SIMInfo_name.add(this.getResources().getString(R.string.SIM_code));
if(mTelephonyManager.getSimSerialNumber().equals(”"))
{
SIMInfo_value.add(”SIM卡供货商代码无法取得”);
}
else
{
SIMInfo_value.add(mTelephonyManager.getSimSerialNumber());
}

//SIM卡供货商名称
SIMInfo_name.add(this.getResources().getString(R.string.SIM_factoryname));
if(mTelephonyManager.getSimOperatorName().equals(”"))
{
SIMInfo_value.add(”SIM卡供货商名称无法取得”);
}
else
{
SIMInfo_value.add(mTelephonyManager.getSimOperatorName());
}

//SIM卡国别
SIMInfo_name.add(this.getResources().getString(R.string.SIM_country));
if(mTelephonyManager.getSimCountryIso().equals(”"))
{
SIMInfo_value.add(”SIM卡国别无法取得”);
}
else
{
SIMInfo_value.add(mTelephonyManager.getSimCountryIso());
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.Button01:
this.setListAdapter(new MyAdapter());
break;
}
}
class Holder
{
TextView name_TextView;
TextView value_TextView;
}
class MyAdapter extends BaseAdapter
{
LayoutInflater inflater;
Holder mHolder;
@Override
public int getCount() {
// TODO Auto-generated method stub
return SIMInfo_name.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
inflater=LayoutInflater.from(TelephonyManagerTest.this);
if(convertView==null)
{
convertView=inflater.inflate(R.layout.item_layout,null);
mHolder=new Holder();
mHolder.name_TextView=(TextView)convertView.findViewById(R.id.item_TextView01);
mHolder.value_TextView=(TextView)convertView.findViewById(R.id.item_TextView02);
convertView.setTag(mHolder);
}
else
{
mHolder=(Holder) convertView.getTag();
}
mHolder.name_TextView.setText(SIMInfo_name.get(position));
mHolder.value_TextView.setText(SIMInfo_value.get(position));
return convertView;
}

}
}

注意加读取SIM的权限——android.permission.READ_PHONE_STATE

不远处的智能移动设备

互联网上的业务必然逐步向移动设备迁移,这也不是什么新的想法了,所以本来打算的移动联网的相关文字可以去掉了。

移动设备,更准确的说是智能移动设备,的硬件性能越来越高,价格越来越符合人们的购买力。这可以让我们很轻易的想到一个问题,那就是未来几年内移动设备和现在的PC的性能应该不相上下,无论是是CPU,RAM,还是网络I/O能力方面都将可以很轻易的目前的互联网需求,而在中国,3G网络在未来几年内也会逐渐成熟,中国的多媒体应用也会得到很好的发展,这几乎是必然的。

回到移动设备,我认为在未来几年内当其硬件水平达到一定程度的时候我们也许已经无须管买来的手机是android,还是sybiam的,还是iphone了,因为硬件必然会标准化统一化。也就是说,也许智能移动设备(如:智能手机,平板电脑)的硬件和操作系统可以分别买到,只不过有的移动设备预装了android活在windows mobile而已,当你买回家之后只需要自己随便重装就好了。

到这里,我们似乎看到Google的又一点恐怖,Android也许在未来就会统治大部分智能手机,就像现在的windows XP一样的疯狂。也许到时候你在看到雨林沐枫、番茄花园的时候就不再是windows了,而是雨林沐枫版本Android,番茄花园版本iphone,深度Sybiam。。。等等,机油们随处寻觅便是。

为什么说恐怖的是Google呢? 因为只有她的Android才有可能成为统治者,因为他开放,开放的力量是巨大的,而且他表现卓越,还有他已经十分庞大的阵营。开放的系统可以作深度的定制,就像中国移动的OMS一样,都好意思说自己的知识产权了,所以再有个番茄花园Android肯定不会被告进那里面去的。

踏破铁鞋无觅处,那人就在灯火阑珊处~~~~~

2010年我们将经历变革

信息在开始及时化,信息在开始位置化。。

我们将是历史变革的见证者,让我们一起来见证这激动人心的时刻的到来吧!

返回顶部