目前日期文章:201503 (520)

瀏覽方式: 標題列表 簡短摘要

原文出处: 严澜的博客   欢迎分享原创到伯乐头条

目前国内开源项目正在逐渐升温,中国也开始有不少优秀的开源项目突显出来。在大家摩拳擦掌准备加入开源大军时,也要知道这个圈子里的规则。技术人员不能只是研究技术,任何圈子都有规则,要知道了才能玩得好。前段时间有件关于开源软件的事情挺热闹的,关于国内一个开发者把自己作品开源出来被别的公司的人拿去包装成自己的产品高价卖出去。大部分做开源软件的开发者都不太怎么关注版权这些,具体微博如下:

hoowa_sun:
做开源后,发现大部分都被别人拿去学习,然后copy,然后自己闭源卖出去。这里不缺乏大公司,有一家公司拿我的开源系统修改后卖给了一个国内的运营商,卖的还非常贵至少几十万一套。所以我郑重的建议大家,做软件还是要英文版开源,中文版封闭不要开源。

在国内大家习惯了使用盗版、破解,看到这种免费的软件也觉得是理所当然的拿来主义,甚至直接封装到自己的商业组件卖出去。如果你正在这样做,马上停下来研究一下使用的这些开源组件的许可协议,不然某一天你会意外收到一封法院的传票。如果你在开发或者准备开发开源软件,但尚对开源许可协议不了解,也看下这篇文章,选择一种开源许可协议保护你的开源软件。

常见的开源许可协议有:GPL、LGPL、BSD、Apache Licence vesion 2.0、MIT。这些协议有什么区别呢?

GPL,全称 GNU General Public License。它的主要内容为:只要在一个软件中使用(“使用”指类库引用或者修改后的代码) GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这个协议就不太适合商用软件,或者准备使用GPL开源组件的商用项目。基于这个协议的项目,极大的提高了开源软件的数量。上面那个微博的案例,如果作者使用了GPL协议,而使用方没有公开源代码就是违反了协议。目前用的多的是GPLV1,GPLV2。这两个什么区别看后面那张树形图。采用这个协议的开源软件有:Linux、 MySQL.

LGPL,最初是Library GPL的缩写,后来改称作Lesser GPL。由于GPL太严格,限制了很多商用软件使用GPL组件才推出了这个LGPL。LGPL允许商业软件通过引用类库的方式使用LGPL组件(不直接使用源代码),这样可以不需要开源商业软件的代码。但是如果要修改原始组件的代码,则涉及修改部分的代码和基于原来代码衍生的代码都必须采用LGPL协议。LGPL不适合以LGPL协议为基础的代码进行二次开发的商业软件,但是商用软件可以采用编译后的类库引用就不需要公开源代码了。采用这个协议的开源软件有: JBoss、 FCKeditor 、 Hibernate。之前extjs就因为从LGPL转换到GPL带来了不少的震动。详情点击

BSD,全称 Berkeley Software Distribution。这个协议相对上面两个协议宽松很多,允许使用者修改和重新发布代码,也允许使用或在BSD代码基础上开发商业软件发布和销售,因此是适用于商业软件的。使用者别太高兴,使用时还必须做到满足三个条件:

  • 1)如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
  • 2)如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
  • 3)不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。适用BSD协议的开源软件有: nginx、CruiseControl、Redis。

 

戮克 發表在 痞客邦 留言(0) 人氣()

原文出处: 严澜的博客   欢迎分享原创到伯乐头条

通过《如何选择开源许可协议(一):了解协议》大概知道了有哪些开源协议和各个协议的作用和区别。我们准备把代码开放出去时,需要了解各个代码托管平台如何设置开源协议。目前常用的平台有:googlecode、github、sourceforge、codeplex。下面分别列一下这些平台如何设置开源协议:

1、googlecode,google推出的代码托管平台,整体可用还是比较强的,如果不是经常被墙用这个也可以。支持svn、git协议。要在这个上面共享代码,

点击创建工程后,可以选择自己工程的开源协议。预定义协议支持不是太多,主要有常见的BSD、GPL、MIT、APACHE、ECLIPSE、MPL。没有包含的可以选择other open source 填写。

2、github, 这个后期之秀,由于git协议本身的优势这几年也赚足了眼球。更有2011年的报道: Github 的提交次数超过了Sourceforge、Google Code和微软的CodePlex。 这么火的代码托管工具我们当然也要在这个上面共享代码,

  • 需要注册一个github账号,登录。
  • 在首页中间有个 create repositories,创建代码工程。和google code 不同的是,github没有直接选择开源协议这一项。这篇文章可以看得出GitHub一族,正在推动开源软件走向无授权时代。如果要在github设置开源协议如何设置呢?其实很简单,在刚创建的工程主页,点击添加文件按钮。

    新建一个文件LICENSE(这个命名随意,只要能说明清楚就行),把你需要设置的协议内容复制到对应的文件中去就可以了。当然你想特别说明一下,也可以在项目主页的readme.txt中说明。比如 https://github.com/apache/activemq 的license 设置。
    这个license可以根据自己需要设置,不过最好还是标准模板大家更规范一些。

戮克 發表在 痞客邦 留言(0) 人氣()

奇怪 怎麼打開Microsoft Office 2010 他竟然在倒數了!!明明就解過了!!

我想應該很多人也跟我遇到同樣一個問題

原因是因為Microsoft Office 2010似乎內建裡面每半年會自動檢查一次

也有可能是因為你更新了WINDOWS

但不要緊張

你只要在破解一次就可以了

戮克 發表在 痞客邦 留言(0) 人氣()

AVAST是一防毒軟體,有免費版的,只要每年註冊一次MAIL即可終身免費使用。

點此網址即可自動下載  http://www.avast.com/zh-tw/download-thank-you.php?product=FA-ONLINE&locale=zh-tw  ,下載後記得要安裝並用MAIL註冊取得一年的免費使用期限喔。

AVAST最新版(2014.9.0.2008)有一功能,安全線,avast! SecureLine VPN,就是當你啟動安全線後,恭喜你,你飛到美國去了。

意思就是,你的IP原本在台灣,馬上變到美國去,或是你也可以指定你要飛到哪個國家,你可以用 http://www.whatismyip.com/  查看你當下的IP是多少喔,不過只能查5次,如過要查看你當下的ip無限次,請到此網址

 

http://ngmh.pixnet.net/blog/post/101925760#.Up6yjOI2OqQ

 

 

這是官方的說明,不懂再留言發問喔 http://www.avast.com/zh-tw/secureline-vpn

操作方式就是  工具 >> 安全線 >> 連線/斷線

戮克 發表在 痞客邦 留言(0) 人氣()

我想台灣幾乎在上網的人口當中

有八成至九成都有自己的部落格

但卻很少人知道如何用部落格賺錢

頂多只知道在自己的部落格上面放置一些Google Adsense、BloggerAds、BlogAD等廣告

每個月只能靠廣告點擊賺到幾十元或幾百元台幣。

 

在台灣的目前的網路環境中每個月能利用部落格賺到數千元或數萬元以上的人真的少之又少

即使有的話也是一些稍有名氣的部落格達人才有可能

國外卻有很多部落客靠著部落格月收入數十萬台幣甚至百萬台幣以上

大家看清楚,我是說月收入數十萬甚至百萬台幣

戮克 發表在 痞客邦 留言(0) 人氣()

戒邪淫善书电子版汇总(欢迎转载) 
一.《欲海回狂》白话本电子书(戒邪欲宝典):http://www.fj960.com/viewthread.php?tid=1796&extra=page%3D1 
二.《让生命恢复纯净》(戒邪欲宝典):http://www.fj960.com/viewthread.php?tid=1930&extra=page%3D1 
三.《寿康宝鉴》电子书:http://www.fj960.com/viewthread.php?tid=1643&extra=page%3D1 
四.《亲爱的孩子请原谅我们》节录电子书:http://www.fj960.com/viewthread.php?tid=4338&extra=page%3D1 
五.《断邪欲圣典汇编》(电子书):http://www.fj960.com/viewthread.php?tid=4127&extra=page%3D2 
六.《漫谈两性关系》电子书(戒邪欲宝典):http://www.fj960.com/viewthread.php?tid=4083&extra=page%3D2 
助印戒邪淫善书请点此:http://www.fj960.com/forumdisplay.php?fid=106
结缘戒邪淫善书请点此:http://www.fj960.com/forumdisplay.php?fid=120

本文转自:http://bbs.fogjs.com/forum.php?mod=viewthread&tid=25396
本文转自:http://bbs.fogjs.com/forum.php?mod=viewthread&tid=25396
本文转自:http://bbs.fogjs.com/forum.php?mod=viewthread&tid=25396

 

 

來源:http://www.namofo.org/read.php?tid=2752


戮克 發表在 痞客邦 留言(0) 人氣()

干燥的天气如何防止被静电电击(欢迎转载)(2008-02-15 00:33:14)
     相信大多数人都有过被人体静电轻微电击的经历,这种电击在干燥的天气(特别是穿了一身冬装的冬季)里几乎防不胜防。这种静电的产生机理非常简单,那就是我们人体的皮肤在干燥环境中如果与毗邻的衣物(特别是化纤类材质)发生摩擦,会产生静电,就像是中小学老师给学生演示过的皮毛与橡胶棒摩擦、丝巾与玻璃摩擦造成的带电现象一样。只要我们运动,摩擦就不可避免(除非你从里到外都穿着非常合体的紧身衣裳),带电也就自然而然了。此时如果我们用手去接近或接触其他可导电的物体,无论是一个金属门把手,还是楼梯扶手,甚至旁边的一个人,都会在接触点或接近点出现一个小的火花,同时我们的手会觉得轻微发麻,手臂会发生迅速收缩,有些是无意识的,有些则是看到火花后的有意识的反应,这就是被人体自生的静电电击的现象。电击现象的实质是人体带有的较大数量的电荷在极短时间内的一次迅速释放,在很短时间内发生火花放电,持续时间虽然不长,但瞬间的放电电流较大,这种电流脉冲对人体的神经系统会有个小的刺激。
    这种电击虽然不会致命,也没有什么人体伤害,更不会造成大的灾害(除非你碰巧处于高危环境中,例如周围空气中燃料气体的浓度处于爆炸极限中),但却常常造成我们的恐惧,在人际交流中有时也容易造成尴尬,所以我们需要注意如何避免这种电击。下面我谈谈我防范电击的做法。
    上边已经分析了这种电击现象的产生原因,显然要避免电击最好不产生静电,其次是让电荷迅速以柔和的方式释放掉或中和掉。在干燥的环境中,人的动作尽量放慢,避免突然的有爆发性的动作(如突然起立、快速走动或挥臂等),这样可以减少静电电荷的产生,降低电位差。此外,维持环境的湿润可以减少静电的产生,因为不同物体带电体带的异号电荷容易通过湿润的空气或绝缘物体的润湿表面泄放中和掉。如果这两条做不到,那还有第三招,可以在最后关头防止电击,具体的做法也非常简单,那就是在你接触或接近良好导体之前,先接触一下附近的某个非绝缘物体,例如砖灰质墙壁、木门等,通过这个接触,以较小的电流把电荷泄放掉。这么做相当于一个带电(电量为Q)电容(人体)C通过一个电阻R放电,放电的最大电流Imax=Q/(RC),在C基本固定的情况下,Imax主要受电阻R限制,R越大则Imax越小,当R大到一定程度时,就不会发生可见的放电了。当然,放电时间也是由RC乘积决定,如果R太大(绝缘体情况),需要太长的时间放电,而在接触时间不够时,就无法完成放电,遇到金属还会被电击,所以尽量摸砖墙这类物体。
    以上是我对人体静电电击现象的分析和防范办法,有兴趣的网友可以试试。

戮克 發表在 痞客邦 留言(0) 人氣()

從Android 2.3開始提供了一個新的類名為StrictMode可以説明開發者改進你的Android應用,StrictMode通常可以捕捉到發生在磁片或網路訪 問的應用主執行緒中,可以讓主執行緒UI和動畫在磁片讀寫和網路操作時變得更平滑,避免ANR視窗的發生。

一段示例代碼可以很好的說明Android 2.3新特性StrictMode限制模式的工作方式,我們在Activity的onCreate中加入

public void onCreate() {
if (DEVELOPER_MODE) { //Android開發網提醒大家,這個標記自己設置一個全域的宏,當然Java中我們用一個Boolean類型設置debug模式好了
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads() 
.detectDiskWrites()
.detectNetwork() // 這裡可以替換為detectAll() 就包括了磁片讀寫和網路I/O
.penaltyLog() //列印logcat
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() 

戮克 發表在 痞客邦 留言(0) 人氣()

類似于Ruby,在上面調試成功後,將功能遷移到了Android應用上面。

 
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
   

戮克 發表在 痞客邦 留言(0) 人氣()

Android NDK的例子中,每個需要編譯的c/c++檔都是清晰的列在Android.mk檔中LOCAL_SRC_FILES變數後面的,如果檔很多,這樣就不好辦了。
我們可以使用萬用字元來解決大量的原始檔案添加到Android.mk的問題:

第1行是使用GNU Make函數wildcard來查找所有目錄下麵的檔,這裡查找的是"當前專案路徑/foo"目錄下麵的所有的“.c”檔,
第2行會把所有找到的檔案名中的$(LOCLA_PATH)路徑給去掉,只剩下foo/*.c類似的名字。

MY_FILES := $(wildcard $(LOCAL_PATH)/foo/*.c)
MY_FILES := $(MY_FILES:$(LOCAL_PATH)/%=%)

LOCAL_SRC_FILES += $(MY_FILES)


戮克 發表在 痞客邦 留言(0) 人氣()

Android從2.0開始包含了完整的藍牙元件,有關Android平臺上的bluetooth控制常見的運行在API Level至少為5的代碼如下:

private BluetoothAdapter mAdapter = null;

開啟藍牙

if (!mAdapter.isEnabled()) {
Intent cwj = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivity(cwj);
   }

設置可發現狀態

Intent android123 = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
android123.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 500); //Android開發網提示這裡為設置搜索超時500ms

戮克 發表在 痞客邦 留言(0) 人氣()

Apk檔的格式

 

Android application package檔。每個要安裝到android平臺的應用都要被編譯打包為一個單獨的檔,尾碼名為.apk,其中包含了應用的二進位碼、資源、設定檔等。

 

apk檔實際是一個zip壓縮包,可以通過解壓縮工具解開。可以用zip解開*.apk檔,下麵是一個helloword的apk示例檔

 

|– AndroidManifest.xml

|– META-INF

| |– CERT.RSA

| |– CERT.SF

`– MANIFEST.MF

戮克 發表在 痞客邦 留言(0) 人氣()

091210_0313_AndroidFac1  

根據文檔描述,輸入圖片必須為Bitmap RGB565格式。

 
人臉的檢測方法是用雙眼來檢測人臉的位置,也就是說無法檢測到嘴、側臉等,雙眼必須同時可見,並且眼鏡會影響檢測的效果。
 
實際上,FaceDetector檢測到的並不是人的全臉,而只是雙眼。
 
實際測試中,發現圖片太小的話檢測不到人臉,試驗中使用小於100x100的圖片檢測不到人臉,但是由於Android記憶體有限,圖片太大的話,會出現無法載入圖片的異常。
 
檢測到的人臉存放到FaceDetector.Face類中,該類無法再擴展。從該類可以獲取到人眼的中心位置和雙眼之間的具體。

戮克 發表在 痞客邦 留言(0) 人氣()

最近由於內置的合作商比較多,本人使用的Ubuntu系統好多廠商的Android手機都無法正確的識別,經過一番折騰,和查閱SDK,現把Linux下ADB驅動配置的方法和當中會遇到的相關問題的解決方法整理出來貢獻給大家。

Linux下使用手機USB調試模式連接ADB進行Android程式的調試,配置驅動沒有Windows來的直觀。

具體步驟

首先確認手機連接上電腦,lsusb查看下設備記錄。

matthew@matthew-1230-laptop:~$ lsusb
Bus 007 Device 009: ID 18d1:4e12
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 004: ID 093a:2510 Pixart Imaging, Inc.
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

我這裡是:

Bus 007 Device 009: ID 18d1:4e12

然後在/etc/udev/rules.d/下創建一個設定檔: 51-android.rules

sudo vim /etc/udev/rules.d/50-android.rules

戮克 發表在 痞客邦 留言(0) 人氣()

Android模擬器預設的system分區是70M左右
在使用adb安裝軟體或者push部分動態so庫的時候會出現提示說空間不足
Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE]

解決辦法是在啟動模擬器的參數上加入-partition-size 512
就可以把system分區擴大為512M了


戮克 發表在 痞客邦 留言(0) 人氣()

原文:Detecting Android devices that are blocking ads
一般root手機安裝檔廣告軟體都利用"/etc/hosts"來將連向廣告的ip重新導向localhost,因此就無法下載廣告內容,也因此導致開發者的廣告收益受到影響

/etc/hosts內容大致如下:

code
1
2
3
4
127.0.0.1 analytics.admob.com
127.0.0.1 r.admob.com
#[Mobile.Advertising]

戮克 發表在 痞客邦 留言(0) 人氣()

0015461k9mn11nr1tjhyo1  

前陣子有個需求,一個顯示視頻的listview,每個item中包含點播次數,點擊一次立即加1,並動態顯示在介面上。看了好多資料,拜讀了很多帖子,也試了很多方法,用notifyDataSetChanged()都不行。看到優酷用戶端(塞班系統的)也不能更新次數,本來都洩氣了,結果被論壇裡一個牛人說:“你很強,研究出來分享下”,硬著頭皮上唄。但我覺得理論上肯定是可以實現的,經過艱苦卓絕的嘗試,終於皇天不負有心人。現在和大家分享一下經驗,相信一定對很多人的應用有用,也歡迎大家拍磚。
截圖如下:

1.在點擊item的監聽程式onItemClick()中調用播放方法並加1,發送消息給handler更新次數

code
1
2
3
4
5

戮克 發表在 痞客邦 留言(0) 人氣()

 

import java.io.File;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.ContentBody;
import org.apache.http.entity.mime.content.FileBody;

戮克 發表在 痞客邦 留言(0) 人氣()

取當前語言

context.getResources().getConfiguration().locale.getLanguage()

取當前國家

context.getResources().getConfiguration().locale.getCountry()


戮克 發表在 痞客邦 留言(0) 人氣()

code
1
2
3
4
5
6
7
notification.ledARGB = Color.RED;
 
notification.ledOffMS = 0;

戮克 發表在 痞客邦 留言(0) 人氣()