archlinux kde

最进运行 chromium 无法启动 命令行执行chromium  发现报错

 

[7657:7657:1213/204338:ERROR:browser_main_loop.cc(168)] Gtk: Default font does not have a family set
[7657:7657:1213/204338:ERROR:browser_main_loop.cc(168)] Gtk: Default font does not have a positive size
 
google了下 参考:https://bbs.archlinux.org/viewtopic.php?id=89620
 
修改/home/user/.kde4/share/config/gtkrc-2.0
gtk-font-name="文泉驿正黑 10"
 
ok了

获取当前周下周上周日期

 

/*获取yyyy-mm-dd day天的日期数组
* getDays('2012-11-01',2)
* 返回['2012-11-01','2012-11-02']
*/
function getDays(str, day){
  var   dd, mm, yy;   
  var   reg = /^(\d{4})-(\d{1,2})-(\d{1,2})$/;
  if (arr = str.match(reg)) {
    yy = Number(arr[1]);
    mm = Number(arr[2])-1;
    dd = Number(arr[3]);
  } else {
    var d = new Date();
    yy = d.getUTCFullYear();
    mm = ("00"+(d.getUTCMonth())).slice(-2);
    dd = ("00"+d.getUTCDate()).slice(-2);
  }
  var aa=[];
  if(day>=0){
  	for(var i=0;i<day;i++){
  	  aa.push(_getDate(yy, mm, dd, i));
    }
  }else{
    for(var i=(day+1);i<=0;i++){
  	  aa.push(_getDate(yy, mm, dd, i));
    }	
  }
  
  //alert(aa);
  return aa;
}
/*
 *返回n天后的日期
 * get_day("2012-11-01",3) 返回 "2012-11-04"
 * 
 */
function get_day(str, n){
	  var   dd, mm, yy;   
	  var   reg = /^(\d{4})-(\d{1,2})-(\d{1,2})$/;
	  if (arr = str.match(reg)) {
	    yy = Number(arr[1]);
	    mm = Number(arr[2])-1;
	    dd = Number(arr[3]);
	  } else {
	    var d = new Date();
	    yy = d.getUTCFullYear();
	    mm = ("00"+(d.getUTCMonth())).slice(-2);
	    dd = ("00"+d.getUTCDate()).slice(-2);
	  }
	  
	  var aa=_getDate(yy, mm, dd, n);
	  
	  return aa;
	}

/*
 * 获取day天后的日期
 * 例如_getDate(2012,11,1,2):获取2012-11-01后2天的日期
        例如_getDate(2012,11,1,-2):获取2012-11-01前2天的日期
 */

function _getDate(yy, mm, dd, day) {
    var s, d, t, t2;
    t = Date.UTC(yy, mm, dd);
    t2 = day * 1000 * 3600 * 24; //加减day天的时间
    t+= t2;
    d = new Date(t);
    s = d.getUTCFullYear() + "-";
    s += ("00"+(d.getUTCMonth()+1)).slice(-2) + "-";
    s += ("00"+d.getUTCDate()).slice(-2);

    //alert(s);
    return s;
}

/*这个方法将取得 某日期(nowDate) 所在周的星期几(weekDay)的日期
 * getNextDate("2012-11-04",1); 2012-11-04所在周的星期一的日期
 * 返回2012-10-29
 * 
 */
function getNextDate(str,weekDay){
	  var   dd, mm, yy;   
	  var   reg = /^(\d{4})-(\d{1,2})-(\d{1,2})$/;
	  if (arr = str.match(reg)) {
	    yy = Number(arr[1]);
	    mm = Number(arr[2])-1;
	    dd = Number(arr[3]);
	  }
	  var t = Date.UTC(yy, mm, dd);
	  var d = new Date(t);
		weekDay%=7;
		var day = d.getDay();
		if(day==0)day=7;//自己加的 否则如果是周日 day=0  我取所在周一的日期,返回的是下周的
		var time = d.getTime();
		var sub = weekDay-day;
		time+=sub*24*3600000;
		d.setTime(time);
		var s = d.getUTCFullYear() + "-";
    s += ("00"+(d.getUTCMonth()+1)).slice(-2) + "-";
    s += ("00"+d.getUTCDate()).slice(-2);
    return s;
}
function getNextDate1(str,weekDay){
	  var d=new Date(str);
		weekDay%=7;
		var day = d.getDay();
		if(day==0)day=7;//自己加的 否则如果是周日 day=0  我取所在周一的日期,返回的是下周的
		var time = d.getTime();
		var sub = weekDay-day;
		time+=sub*24*3600000;
		d.setTime(time);
		var s = d.getUTCFullYear() + "-";
    s += ("00"+(d.getUTCMonth()+1)).slice(-2) + "-";
    s += ("00"+d.getUTCDate()).slice(-2);
    
    return s;
}
/*
 * 参数 2012-11-08
 * 返回周几
 */
function week(dd){
	dd=dd.replace(/\-/g,"/");
	var week="日一二三四五六".charAt(new Date(dd).getDay()); 
	return week;
}
/*
 * 获取当前日期
 */
function getCurrDay(){
	var d = new Date();
    yy = d.getUTCFullYear();
    mm = ("00"+(d.getUTCMonth()+1)).slice(-2);
    dd = ("00"+d.getUTCDate()).slice(-2);
    return yy+"-"+mm+"-"+dd;
}

 

 

 

<html>
	<head>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
		<SCRIPT type=text/javascript src="week_day.js"></SCRIPT>
<script type="text/javascript">
	
function getWeek(flag){
	var start_day="";
	var curr_day=getCurrDay();
	var mon_day=getNextDate(curr_day,1);//当前日期所在周星期一的日期
	if(flag=='本周'){//查询本周
		start_day=mon_day;//当前时间
		d=getDays(start_day,7);
	}else if(flag=='下周'){//下周
		start_day=get_day(mon_day,7);//获取7天后的开始日期
		d=getDays(start_day,7);
		
	}else if(flag=='下下周'){//下下周
		start_day=get_day(mon_day,14);//获取14天后的开始日期
		d=getDays(start_day,7);
	}else if (flag=='上周'){
	  	start_day=get_day(mon_day,-7);//获取7天后的开始日期
		  d=getDays(start_day,7);
	}
	alert(d);
}

</script>
		
	</head>
<body>
<button onclick="getWeek('上周')">上周</button>
<button onclick="getWeek('本周')">本周</button>
<button onclick="getWeek('下周')">下周</button>
<button onclick="getWeek('下下周')">下下周</button>
</body>
</html>

 

 

GOAGENT又一个基于GAE的穿越利器

此文章来源 http://www.lhzhang.org/  

参考了https://code.google.com/p/goagent/

有一些小改动

 

GoAgent是 一个使用Python和Google Appengine SDK编写的代理软件。部署和使用方法非常简单,不需要安装Python或者Google Appenginge SDK ,几分钟即可搞定。

猛击下载文档

wuala的CBFS 更新文件

wuala被墙掉了,CBFS无法更新,自己翻墙下载了更新文件,给大家共享

 

CBFSSetup-current.exe

 

 

附:wuala 注册邀请链接(需翻墙) http://www.wuala.com/referral/KF4CJ64PM5PFPBF6GBB6

LMDE Update Pack 3 is out!

这个Linux Mint Debian的更新包,如果你没有用这个版本,请跳过

有2个较大个更新:

  1. 全新的3.0内核
  2. 包括安全和多媒体库更新.

 

Changing your repositories

首先要修改Multimedia and Security repositories. 编辑APT源:

gksu gedit /etc/apt/sources.list
  • Replace security.debian.org with debian.linuxmint.com/latest/security
  • Replace debian-multimedia.org with debian.linuxmint.com/latest/multimedia

Your APT sources, should now look like this:

deb http://packages.linuxmint.com/ debian main upstream import
deb http://debian.linuxmint.com/latest testing main contrib non-free
deb http://debian.linuxmint.com/latest/security testing/updates main contrib non-free
deb http://debian.linuxmint.com/latest/multimedia testing main non-free

Save and close the file.

 

Using the Update Manager

… to update itself

首先要升级Update Manager。

If you see an update for “mintupdate-debian“, accept it and wait for the Update Manager to restart itself.

如果Update Manager可以升级,在升级列表里只会显示Update Manager。

… to check your APT sources

目前最新的mintupdate-debian 版本是1.0.4,会检查你的APT源配置是否正确

  1. 点击 “Update Pack Info” 按钮
  2. 确定 “Your system configuration” 处显示的是绿色的按钮并且没有任何警告或错误信息
  3. 如果有警告或错误信息,按照它的提示重新配置,直到没有错误信息

                  检查系统配置并显示系统配置信息

请仔细阅读Update Pack Info里面的信息

… 开始升级 Update Pack 3

准备好了吧 smiley  请点击 Install Updates 按钮。

升级期间会有一些提问,有一个非常重要:the new kernel will ask you where to install Grub。Answer with the location of your current Grub menu (which on most systems is “/dev/sda“).

详情请参考:http://blog.linuxmint.com/?p=1836

linux贴纸 unixstickers.com

出售各种开源相关的贴纸(GNU/Linux, Gnome, KDE, Java, MySQL, Apache, PHP, Python, and other Linux distributions)

【pdf】Android_UI开发专题

来自 eoe社区

下载链接 http://www.kuaipan.cn/index.php?ac=file&oid=20032934354355771

貌似被墙了啊

is-programmer.com  只能翻墙访问了啊

 

Android软件汉化 APK软件汉化

来源:http://www.uugo.org/project/Android/71096.html

在Android平台下,程序文件的后缀名为“.APK”,APK是Android Package的缩写,意思是Android安装包,是类似WM系统“.CAB”和Symbian系统“.SIS”的文件格式。APK程序文件可以用WinRAR之类的解压缩软件解压,我们只需要将其中的resources.arsc文件解压出来,用汉化工具将.arsc文件内的英文资源翻译为中文,修改包含英文的图片,再替换原文件,最后将APK文件重新签名即可。

汉化APK软件需要事先下载安装好以下工具:

1.Java
2.解压缩软件:WinRAR
3.汉化工具:AndroidResEdit(需要.NET Framework 2.0支持)

下载AndroidResEdit


4.图片汉化软件:Photoshop
5.签名程序:Auto-sign(推荐使用AndroidResEdit软件自带的签名功能)

 

android service 的交互

这个例子演示了activity调用本地服务,点击按钮就会显示结果 

源码下载

 

结果:

步骤如下:

1 创建服务接口

服务接口提供了可以调用的方法

IService.java

 

package com.demo.service;

public interface IService {
	public String getName();
}

2 实现服务

myService.java

 

package com.demo.service;

import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;

public class myService extends Service {

	/*
	 * binder 起到个桥梁的作用,
	 */
	private MyServiceBinder myServiceBinder = new MyServiceBinder();  
	
	@Override
	public IBinder onBind(Intent intent) {
		// TODO Auto-generated method stub
		return myServiceBinder;
	}

	public String getName(){
		return "你好啊 返回的结果";
	}
	
	public class MyServiceBinder extends Binder implements IService{

		public String getName() {
			// TODO Auto-generated method stub
			return myService.this.getName();
		}
		
	}
}

3 调用服务的activity

mainActivity.java

 

package com.demo.service;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

/*
 * service 的交互
 */
public class mainActivity extends Activity {
    /** Called when the activity is first created. */
	
	private myConn conn=new myConn();
	private IService serviceInstance;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Intent intent = new Intent(this, myService.class);
        /*
         * 激活服务 会调用 myConn 返回桥梁 serviceImpl
         */
        bindService(intent, conn, Context.BIND_AUTO_CREATE);
        
         final TextView nameTextView = (TextView) findViewById(R.id.name);
        this.findViewById(R.id.button).setOnClickListener(new OnClickListener() {
			
			public void onClick(View arg0) {
				//点击时调用服务中的方法
				String nameString = serviceInstance.getName();
				nameTextView.setText(nameString);
			}
		});
        
    }
    
    private final class myConn implements ServiceConnection{

    	/*
    	 * (non-Javadoc)
    	 * @see android.content.ServiceConnection#onServiceConnected(android.content.ComponentName, android.os.IBinder)
    	 * 这个IBinder 是 myServece中的返回的IBinder
    	 */
		public void onServiceConnected(ComponentName name, IBinder service) {
			serviceInstance = (IService) service;
			
		}

		public void onServiceDisconnected(ComponentName name) {
			serviceInstance=null;
			
		}
    	
    }
    
    @Override
    protected void onDestroy() {
    	//退出时 解除绑定
    	unbindService(conn);
    	super.onDestroy();
    }
}