代码改变世界

【java】【实践】阅读代码,一些较好的实践

2012-09-11 18:37 by Loull, 229 阅读, 0 推荐, 收藏,
摘要:1、http://jcs.mobile-utopia.com/jcs/6065_DataSourceImpl.java调试代码/************************/ /***** Internal API *****/ /************************/ ... 阅读全文

【设计】【爬虫】针对某一主题做的爬虫,使用Jsoup解析

2012-09-06 23:59 by Loull, 675 阅读, 0 推荐, 收藏,
摘要:作为总结:1、这次做了一个非常糟糕的设计:我采用了深度优先搜索,当初之所以采用这种方式,是因为我要爬的数据都在搜索树的叶节点上,这样可以在代码中少用一个队列,事实上,这是个烂到家的设计。非叶节点的页面会长时间占着内存。一般爬虫会采用广度优先搜索,把要访问的连接保存在一个队列里面,好处:A、访问过的页面占用的内存能被回收B、速度更快,每个页面只解析一次。(虽然深度优先也是只解析一次,但虚拟机要帮忙维护很多小队列,以保持每个页面解析出来的链接)C、容易实现多线程并行爬数据。只要保持对队列的同步,多个线程就可以同时爬数据。2、对异常的态度A、对待致命错误,要退出程序,不要吸收。B、对待非致命异常,吸 阅读全文

【java】【HtmlParser】HtmlParser使用

2012-09-04 16:31 by Loull, 3979 阅读, 1 推荐, 收藏,
摘要:HTMLParser的核心模块是org.htmlparser.Parser类,这个类实际完成了对于HTML页面的分析工作。这个类有下面几个构造函数:public Parser ();public Parser (Lexer lexer, ParserFeedback fb);public Parse... 阅读全文

【设计】android上RSS聚合器

2012-08-31 18:52 by Loull, 291 阅读, 0 推荐, 收藏,
摘要:在android上做了个RSS聚合器,虽然是个很简单的东西,但我还是必须说还是有点设计的。 1、最简单实现 写几个用到的Activity,在这几个界面间跳转,完成所有功能。 缺点:1、单线程,UI会被网络访问阻塞 2、实现逻辑为直线线,对错综复杂的逻辑跳转回显得很笨拙 2、C/S模式实现 主服务MainService为主线程,把各种要做的事情抽象为任务Ta... 阅读全文

【learn】learn1

2012-08-31 18:22 by Loull, 257 阅读, 0 推荐, 收藏,
摘要:突然来了一个想法,想要有快速学习的能力。虽说很功利,但我还是觉得这是很不错的能力。所谓快速的学习,当然指比普通的一步一步学要更快速的方式。忽然呈现出好多问题:1、学习的本质是什么?与认识论的关系?2、为什么学习?3、有要多东西要去学习,生活中,知识中,在不同的领域是不是有不同的学习模式?4、学习与忘记与实践该怎么平衡?先抛开这些问题,专注于计算机里面1、学习—>实践—>总结针对学习以后要用的2、实践—>学习—>总结针对项目中用到的东西3、基础与应用的关系??千万别把自己困在别人搭建的技术里面,当前人做的事情不能满足现在的需求时,自己去开创。最佳实践:1、使用好googl 阅读全文

【正则】【java】Pattern和Matcher

2012-08-31 17:14 by Loull, 352 阅读, 0 推荐, 收藏,
摘要:http://www.cnblogs.com/playing/archive/2011/03/15/1984943.html java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。 1.简介: java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。 它包括两个类:Pattern和Matcher 。 Patter... 阅读全文

【正则】正则表达式和自动机

2012-08-31 16:22 by Loull, 3429 阅读, 0 推荐, 收藏,
摘要:最近在看,先留个链接http://passover.blog.51cto.com/2431658/425536有穷自动机(Finite Automate)是用来模拟实物系统的数学模型,它包括如下五个部分:有穷状态集States输入字符集Input symbols转移函数Transitions起始状态Start state接受状态Accepting state(s)正则表达式就是建立在自动机的理论基础上的:用户写完正则表达式之后,正则引擎会按照这个表达式构建相应的自动机(可能是NFA,也可能是DFA,但它们必定是等价的),若输入一串文本之后,自动机抵达了接受状态,则这串文本可以“匹配”用户指定的 阅读全文

【android】ListView的item事件和item里面的view的事件同时存在

2012-08-29 17:01 by Loull, 3128 阅读, 0 推荐, 收藏,
摘要:碰到个问题:ListView的onItemClickListener监听事件,若item里面有button也监听事件,则不能同时监听事件,会有个没反应。解决方案:解决方案的本质就是不用onItemClickListener的事件,转移到item里面某个View的事件方案1、获取item最外层的view这时候如果你给listView设置listView.setOnItemLongClickListener();事件后,发现只有长按editText才能触发item的事件,所有获取焦点失去焦点转移焦点的方法都试过了。都没有方法解决:最简单的解决方法是:在getView方法中获取item的最外层布局: 阅读全文

【objc】Foundation Kit

2012-08-29 12:32 by Loull, 268 阅读, 0 推荐, 收藏,
摘要:Cocoa Foundation框架有很多面向数据的低级类和数据类型,这样的类型会有更高的效率。一、范围NSRangetypedef struct _NSRange { unsigned int location; unsigned int length;} NSRange;1、NSRange range; range.location = 17; range.length = 4;2、NSRange range = {17, 4};3、NSRange range = NSMakeRange (17, 4);二、几种数据类型1、typedef struct _NSPoint { ... 阅读全文

【objc】objective-c学习(1)

2012-08-28 21:19 by Loull, 303 阅读, 0 推荐, 收藏,
摘要:一、开发环境使用xcode,可以再app store里面下载,但我嫌速度慢,自己下载安装了,还安装了command line tool,不知道有没有重复。用的是4.4.1版本,很多教程是老版本的,所以有些东西不太一样。创建命令行程序,使用ObjC:新建项目->mac---application---command line tool--->选择Foundation。。那什么的,就是用ObjC的命令行程序。二、基本语法1、使用#import,可以保证头文件只被引用一次,少了#ifdef,#endif的麻烦。2、Foundation是框架,框架是一种聚集在一个单元的部件集合,包含头文件 阅读全文

【计划】rss,搜索

2012-08-24 19:22 by Loull, 160 阅读, 0 推荐, 收藏,
摘要:这几天要做的:1、把做的RSS聚合器发不到android市场上2、把RSS聚合器移植到ios上,并发布(学习objc、ios开发)3、做个搜索、了解搜索引擎方面的东西、Lucene搜索引擎框架4、plsa 阅读全文

【android】task和back stack

2012-08-17 13:50 by Loull, 365 阅读, 0 推荐, 收藏,
摘要:http://coolxing.iteye.com/blog/1279606 基本概念 task是一系列activity的集合, 这些activity通常因为同一目的而启动, 系统将这些activity按照创建的顺序组织在栈中(也就是所谓的back stack). 每一个task都拥有一个仅属于它的back stack. 例如一个联系人app, 当新建一个联系人时, 需要为这个联系人指定头像... 阅读全文

【android】Android 4.0 源代码地址

2012-08-17 13:45 by Loull, 543 阅读, 1 推荐, 收藏,
摘要:下载Gallery应用的源代码(下载全部代码请点这里),使用该命令搞定: git clone https://android.googlesource.com/platform/packages/apps/Gallery.git下载完成的代码是默认在android 4.0的,需要研究android2.3的话,再使用如下命令: git checkout gingerbread-releas... 阅读全文

【android】ListView 中添加按钮,动态删除添加ItemView的操作

2012-08-17 13:39 by Loull, 5811 阅读, 0 推荐, 收藏,
摘要:1、要实现添加按钮的操作,必须自定义Adapter,使用Button View的setTag()方法,将Button所属的位置设置到tag当中 2、要实现动态添加删除ItemView的操作,必须首先调整调整Adapter所绑定的数据源,然后调用Adapter的notifyDataSetChanged()方法 3、在adapter中,View的事件不能显示得对View本身操作,例如: ... 阅读全文

【android】打开文件的Intent及使用,打开系统服务

2012-08-14 14:21 by Loull, 606 阅读, 0 推荐, 收藏,
摘要:http://www.2cto.com/kf/201204/127834.html 在写文件管理系统时会用到各种打开不同格式的文件的需求,由于Android系统默认内置了一些可以打开的系统应用,但还是不能满足需求,比如打开视频文件、word等,需要安装相应的播放软件才可以使用,这时程序会通过Intent查找可以使用的软件 实现通过代码打开一个文件需要2部分,一部分是要获取到不同文件的后缀,以... 阅读全文