今天,给大家带来的是一款android系统下的一款手机做视频摄像头。
这款软件名字叫“usbwebcam”,官方地址是:http://www.placaware.com/,E文好的朋友可以去了解一下这款软件。
软件分PC客户端及手机客户端两个软件。点击下面的链接地址分别下载相应的软件:
下载PC客户端
usbwebcam_for_android_x86_win_r0040.exe
启动的时候,要确保手机端已经打开了,并连接好USB数据线
同时注意打开:”设置“ -> “应用程序” ->“开发” -> “USB调试” 打勾,我就是因为这个原因,搞了很久
下载手机端APK
在 market 中输入 “usb webcam” ,下载安装即可
PC端及手机端安装过程就不讲了,大家应该都很熟悉。
从入手google手机那天起,我就一直在苦苦的寻找这种软件,今天终于盼到了,泪牛满面呀。
最近在andriod 论坛里逛,发现几个非常好的apps
一个是wifikeybord ,可以从电脑上连接手机,并输入文字,特别在写短信的时候,可以在电脑端直接输入,手机端就可以显示出来,很方便
另外一个是 PRemoteDroid , 可以当作无线鼠标使用
再一个就是 web sharing,可以给手机当作一个webserver,通过wifi连接,很容易上传下载手机文件
我收集各式各样的至理名言。最近我一直在研究敏捷软件开发;有收获吗?下面就是能够指导敏捷软件开发团队的26条核心原则。
用例一完全能够运行后再开发用例二。厨房里有一种说法正好可以印证这个问题:“做好一盘菜后你再做下一盘”. 对于软件开发来说一个最大的问题就是人们喜欢并行开发多个任务。因为不可避免的,我们设计的功能中总会有一部分会被放弃砍掉,如果提前开发,很可能做无用 功。 一次只开发一个用例(或很少几个用例,这根据你的开发团队的大小而定); 让这个用例功能完整; 让相应的测试用例都能通过; 相应的文稳都补齐; 只有在当前的用例完全开发完成后,才做为一个整体提交到版本库,才进行下一个用例。
避免提交一个半成品。 这一点大家似乎都知道,但这条原则必须列入任何一个开发指导里。 能够听取这些忠告进行开发测试然后提交代码的程序员一定不会发生代码提交到版本库使整个项目无法编译码通过情况。 如果系统编译失败,那一定是有人抄近道到了。
不要在还没有任何使用案例的情况下设计通用模块。 只有在你知道有具体用例的情况下,你才可以实现一个具体的类,而且你在该类中只应该实现当前该用例需要的方法。 你也许会想到将来这个类会有其它的用途,你可以用注释的方式记录一下,但不要去实现它,只有在有了具体用例后你才可以实现它。
一定不要在没有使用例的情况下往类里添加成员方法。 这跟上面一条极其相似,除了这里针对的是数据成员。 开发人员很容易想到:一个‘客户记录’里应该有‘送货地址’的信息,但一定不要在没有任何用例要求这个属性的时候实现这个属性。
不要害怕做决定;不要害怕改变以前的决定。 敏捷开发的目的是应对客户需求的不确定。 开发前期你不可能获到全部的信息。 你应该尽可能的拖延做决定的时间,但一旦到了你该做决定的时候,你应该当机立断,让项目向前推进。 你不能说一直等到有了足够的信息才做决定。 相反,你要依赖现有的信息作出最正确们决定。 之后,当有新的信息出现后,不要害怕对以前的决定作出更改。 (老辈人有的称之为触发器,但我称之为随环境而变)
阅读全文…
项目开发过程中,由
需求 -> PRD -> 技术方案 -> 开发 -> 测试 -> 产品提交 ,但往往由于沟通或需求理解的差异,出现一些偏差,这幅漫画很形象的描述了这个过程。

漫画:客户正在需要的
据消息报道,今天上午,腾讯启用了 http://tuan.qq.com 的团购域名,表示正式涉足团购业务
也正是由于国内团购网站的快速兴起,让国内大的网站逐渐耐不住寂寞,相继推出自己的团购业务,如:千橡的 糯米,淘宝的 聚划算 ,就连百度旗下的hao123都开始开放团购api:http://www.hao123.com/tuangou.htm
分享一下:
适用范围:新注册, 转入均可
COM, NET, ORG, US, MOBI, BIZ, CA, CO.UK, IN
优惠码:soccer99
支付方式:信用卡
有效期:未知
上周公司组织培训,提到了运用groovy进行热部署,可以进行一些应急处理
今天正好有空(周末 ^_^),顺便动手了解一下,做个记录,供参考
1:安装groovy fro eclipse 插件
plugins 已经是2.0版本了,并且支持3.5和3.4.2的eclipse。
我的eclipse版本是 3.5,下面一起安装这个插件
Help -> install new software -> add -> 输入 name:groovy Location:http://dist.springsource.org/release/GRECLIPSE/e3.5/
然后Next -> finish 就完成了
2:安装groovy jdk 包
到官方网站上:http://groovy.codehaus.org/Download 下载相应版本的groovy
我下载的是:http://dist.codehaus.org/groovy/distributions/installers/windows/nsis/groovy-1.7.3-installer.exe
注意:Groovy默认是安装在Windows Program Files 下,安装路径中不能出现空格.所以,将默认的安装路径c:\Program Files\Groovy替换成类似于D:\java_server\java\Groovy 的路径
安装的最后,会自动创建 windows path
3:HelloWorld 检测是否正常
安装完后,到安装根目录下的bin中,运行 groovyConsole.exe

如果运行正常的话,说明groovy配置成功
4:在eclipse中创建HelloGroovy工程
安装完eclipse插件完,需要重启eclipse
然后:
在 Package Explore 中创建工程:
new -> other -> Groovy Project

然后 Next,输入Project Name: HelloGroovy -> Finish
在新创建的HelloGroovy.groovy 文件中输入:
class HelloGroovy{
static void main(args) {
println "Hello groovy"
}
}
最后,运行groovy
右键 Run as -> groovy script

上面是直接创建groovy的工程,也可以在原有java工程基础上支持groovy
在普通java工程上右键:Configure -> Convert to Groovy Project
总结:groovy其实就是java,只不过语法有一些差异,编译完的字节码完全符合java规范
大家都知道,oracle没有所谓的自增长ID这一说法,但是有一个seq,和mysql自增长比较类似
下面分析一下,mysql在高并发写入时,insert效率为什么会降低的非常厉害
如果table有自增长ID,在每条INSERT SQL 执行时,mysql都会先获取自增长ID,然后接着再执行这条SQL语句
在写并发并不是很大的时候,可能感觉不到,一旦大并发写入时候,就会出现写等待,造成mysql负载急剧上升
仔细分析一下,mysql是如何得到insert_id的:
下面我们查询test表的insert_id:
select * from information_schema.tables where table_name='test'
查询的结果可以看到:AUTO_INCREMENT字段已经在最大ID基础上加1
所以:
在insert插入的同时,会更新这个数据表中的AUTO_INCREMENT字段
这样,一旦并发太大的话,就会出现锁等待
现在原因我们都知道了,那现在我们想办法解决:
既然取id会出现等待,那么我们可以自己来指定insert_id,而不用mysql每插入一条,更新一次
我们可以一次取100个ID,然后放在内存(memory)中,这样就可以大大降低这个等待瓶颈了
以上纯属个人观点,感兴趣的可以一起拍砖