一般来说
从我日志的数量大概可以看出我这段时间的状态
这段时间更新的很少
主要是上班太累 没有心思折腾
上个星期宽带也出了问题 周末才修好
这短短的一周 可爱的picasa又被封了
真是天杀的
-
忙
七月 26, 2009 by bborn
Category diary | Tags: | 1 Comment
-
改进版的Google 翻译前端
七月 6, 2009 by bborn
其实一直对android很感兴趣
虽然没有用过它的真机…上个星期看到了这篇文章
Android:Google 翻译前端
作者的代码写的简单明了
并且发布了源代码给大家学习
真是很不错看了之后 决定动手增加点东西 学习一下android的开发
增加的内容主要是在查询过程中弹出一个等待的对话框
涉及到的内容包括 ProgressDialog, AsyncTask
效果如下
当用户点击Translate的时候,会出现一个”正在查询”的对话框
查询完毕后对话框消失对话框很好做 showDialog(1) 后
系统会调用@Override
protected Dialog onCreateDialog(int id) {
if(1 == id)
{
ProgressDialog dialog = new ProgressDialog(GTranslator.this);
dialog.setTitle(“正在查询”);
dialog.setMessage(“请稍候……”);
return dialog;
}
return null;
}但是 查询是个阻塞的过程
我们必须得在另外一个线程里去做这个事情
比较简单的方法就是继承AsyncTask
网上有一篇转载比较多的关于AsyncTask的文章(Android线程模型(Painless Threading))
官方的说明在这里 http://developer.android.com/reference/android/os/AsyncTask.html
大概说一下 android 的ui线程不是线程安全的
我们不能在其他的线程里直接做关于ui的操作
这里有个简单的办法就是继承AsyncTask
然后实现它的doInBackground方法
在类的onPreExecute(),publishProgress(Progress…),onPostExecute(Result)方法里
做ui的操作
如果在doInBackground里操作ui
可能会弹出异常提示
“Only the original thread that created a view hierarchy can touch its views”
不是每次都弹…为什么了?下面贴一下线程的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
private class ProcessDialogThread extends AsyncTask<String, Void, String> { // @Override protected String doInBackground(String... str) { String toTranslateTextString = toTranslateEditText.getText() .toString(); String tempString = toTranslateTextString.replace(" ", "%20"); fromString = mCountries[fromSpinner.getSelectedItemPosition()]; toString = mCountries[toSpinner.getSelectedItemPosition()]; String queryString = tempString + "&langpair=" + fromString + "%7C" + toString; return getRawData(queryString); } protected void onPreExecute() { showDialog(1); translatedTextView.setText("Connecting..."); } protected void onPostExecute(String rawData) { dismissDialog(1); if (null != rawData) { String parsedDataString = getData(rawData); if (null == parsedDataString || "" == parsedDataString) { try { translatedTextView.setText("Not found"); } catch (Exception e) { e.printStackTrace(); } } else { translatedTextView.setText(parsedDataString); dbAdapter.insertItem(toTranslateEditText.getText() .toString(), parsedDataString); /* * FileAccess.writeFile(this, * toTranslateEditText.getText().toString() + ":" + * parsedDataString); */ } } else { translatedTextView.setText("Translate failed!"); } } public String getRawData(String string) { String dataString = null; // String queryString = "hello%20world&langpair=en%7Czh-CN"; String queryString = string; try { URL url; if (bAtOffice) { url = new URL("http://10.85.40.153:8000/a.xml"); } else { url = new URL( "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" + queryString); } URLConnection conn = url.openConnection(); conn.connect(); BufferedReader reader = new BufferedReader( new InputStreamReader(conn.getInputStream())); byte buffer[] = new byte[1024]; // bis.r String readerString; while ((readerString = reader.readLine()) != null) { dataString += readerString; } reader.close(); // is.close(); } catch (IOException e) { System.out.print("Net work error"); } return dataString; } }
Category code | Tags: , android, 代码 | 4 Comments
-
糖糖
七月 4, 2009 by bborn
Category diary | Tags: , 四公司 | No Comments
-
King of Pop
六月 26, 2009 by bborn
这个星球上当今最有音乐天赋的天才走了
毫无疑问 他是最好的 没有之一
没有人能像他那样创作,设计,演唱和舞蹈
一直被模仿 从未被超越对于我们来说很幸运 他很小就成名了
这让他保持了一颗可贵的童心在上初中的时候 接触到了他的音乐
在那个信息闭塞年代
他就是欧美音乐的代名词
我和同学居然淘到了不少他的mtv
他和MTV台互相成就了对方影响最深的歌是man in the mirror
喜欢88年在格莱美上他的表演
真担心那脆弱的膝盖想的很多 说的很乱
在我看来
他可以和the beatles齐名
是当之无愧的流行乐之王
祝福他一路走好Category music | Tags: , mj, 摇滚, 流行 | No Comments
-
Linux下的GAP的GUI脚本
六月 22, 2009 by bborn
GAP: GAppProxy是一个运行于Google App Engine上的
遵循GUN的代理解决方案
关于它的详细介绍请访问项目主页
code.google.com/p/gappproxy它的一个劣势就是需要运行一个客户端
是个简单的python脚本
在windows下 作者已经写好并打包了一个GUI程序
但是在linux下没有上周末抽空做了一个Ubuntu下的GUI界面
点击start 后会缩放到托盘
GNOME的托盘是在上面哦如果需要使用自己的server
首先修改并save
然后在start就好了程序的部分代码是直接复制GAP下的gui.py里的
把代码解压后放到localproxy文件夹里
和proxy.py等 放一起就好在终端里输入python linux_gui.py 运行
但 既然要在终端里输入命令
那为什么还要GUI了 ……
哈哈 看起来很笨拙
实际上我是想打包做成安装包的
尝试了freeze.py 但是在编译的时候出错
等有时间再想想办法吧在Linux上 我基本还是小白
这段脚本测试的环境是
Ubuntu9.04
python2.6
Qt4 和 pyqt
Category code | Tags: , google, python | 1 Comment
-
国际米兰的北京专卖店
六月 21, 2009 by bborn
音频片段:需要 Adobe Flash Player(9 或以上版本)播放音频片段。 点击这里下载最新版本。您需要开启浏览器的 JavaScript 支持。
之前和朋友约好去798玩的
晚上查查国米专卖店的位置蓝色港湾
发现和798离着不算远
于是决定先去逛逛国米的专卖店专卖店的位置不算好找
在蓝色港湾的东边上头
空间不大 只有一层开放里面买的东西有些小贵
最普通的一款T恤要160
看起来不错 就怕洗过后没型我是打算去买个帽子的
价格可以承受 夏天还挺实用
普通款的现在打折 一百出头
不过帽子比较浅 我戴不下还有一款国米的百年纪念款的 看起来不错
就买了 白底红十字据说现在加入会员比较便宜
人民币100
没有优惠的价格是16欧元找不到人一起去看国米在鸟巢的比赛
就买个帽子来补偿一下吧Category diary, Soccer | Tags: , inter milan, 国米, 国际米兰 | 3 Comments



