链接

CM-10.2更新后Google服务无法连接及FC问题解决

CM-10.2-R1已经发布,当然那些喜欢CyanogenMod 或者喜欢尝鲜但得不到官方升级的筒子们早就在Nightly版早就体验到4.3了。

可是对于从CM-10.1或者其他升级不想删除原有数据的用户,Google 的服务会出现罢工的问题:Google play无法连接,Google play music,Google keep,Google hangouts等应用频繁出现“已停止运行”,而且无法打开,这里将告诉你解决方法,以后的升级亦可。

首先,你需要升级googleapps,因为gapps已经陈旧了,必须刷入新的gapps,最新的gapps地址在这里:http://goo.im/gapps
选择对应的CM版本和gapps版本下载,使用兼容的recovery刷入下载的zip包,不需要wipe数据。

CM 10.2.x 4.3.0 20130813
CM 10.1.x 4.2.2 20130812

 

recovery 最新版可以在这里下载:http://www.clockworkmod.com/rommanager

cyanogen

Neuxs S Download ROMs:     6.0.4.3      6.0.4.3
接下来,你需要重新安装一些应用,因为前提不想wipe数据,那么卸载fc的应用,重新安装,搞定!

如果图省事,你可以选择恢复出厂,删除Google帐号,wipe用户数据亦可解决,但操作起来还是麻烦点。

另,CM11已经在开发中了,古董机器必须Nexus s有福了….

Ubuntu12 一步步安装配置(系统,FTP,TELNET..设置)

Ubuntu12 一步步安装配置(系统,FTP,TELNET..设置)

最近重新安装了Linux 操作系统,发现一些常用的配置又忘记了,需要一个个的重新google查阅进行设置,今天把我个人的操作记录下来.

这是我的几个步骤,由于记录时简单用E文写的,就粘上来了:

  1. install ubuntu linux os using U-DISK beside Widows 7 ,Warning: choose  the place where  grub.cfg  should  locate in.
  2. wlan drivers, maybe you need to connect to an available wried network, download and install the driver,and then active it.

  3. Disable the guest session.

  4. Setting the ftp and telnet server.

  5. Set up Root account.

linux logo

具体描述一下:

1.使用U盘安装,首先制作好USB启动盘,由于PC比较老(2008年的机器),设置还小麻烦;如果安装windows 7 和linux双系统,首先需要装Windows ,否则需要修复BCD,挺麻烦。不要把Boot选择到你的U盘分区,否则..,每次要进Ubuntu还需要那个U盘。

2.安装好了,没有无线网卡驱动,还需要联网获取,如果有线网也不能用,那就要手工找了,电脑也该换了,因为太老了..

3.登录系统,禁用客人会话( guest session),具体方法很简单,在etc/lightdm/lightdm.conf 添加

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
allow-guest=false

Ubuntu14.04禁用客人会话 更改配置  /usr/share/lightdm/lightdm.conf.d /50-unity-greeter.conf

[SeatDefaults]
greeter-session=unity-greeter

以前我写过这个方法:https://www.gigiwangs.com/archives/564。有些网站明明从这里复制的,还..算了,毕竟自己太菜…

4.安装Telnet和Ftp服务端程序

sudo apt-get install telnetd
sudo apt-get install vsftpd

这个在Ubuntu下安装太简单,几乎不需要任何设置就可用,Fedora就不一样,Selinux,防火墙都要设置,这里也没有了..

5.启用Root用户,Ubuntu 12是默认禁止root登录的,把它启用吧..这个也很简单:

sudo passwd root

6.安装一些常用软件和库…..

AIX db2嵌入式SQL(sqc)编译

AIX db2嵌入式SQL(sqc)编译

编译SQC

使用C语言编写嵌入式SQL以访问DB2的程序,DB2预编译器可以将SQL语法直接转换为DB2行时服务应用程序编程接口(API)调用。

bind的主要作用是根据SQC中的SQL语句使用的表和操作指定访问时DB要使用的策略,是一种优化作用,以加快数据访问的速度。

aix_sqc 编译

 

预编译命令:

db2 prep *.sqc bindfile

bindfile参数作用是生成和sqc文件同名的.bnd文件。

接下来就和一般的C程序一样进行编译了,来看看这个简单的Makefile,AIX 编译64位的应用。

CHMOD =chmod 755
RM =rm -f
#export OBJECT_MODE=64
DB2_HOME=/opt/IBM/db2/V9.1
CFLAGS=  -q64 -qchars=signed -I.  -g -I$(DB2_HOME)/include
LDFLAGS = -b64 -g -L $(DB2_HOME)/lib64 -ldb2
DB2 =db2
BINHOME=$(HOME)/batch/bin

CC= xlc_r

#DB CONFIGURE
DBNAME = db2name
USEID = db2user
PASWD = db2pswd

ALL =$(BINHOME)/ApsBatchWS
all:$(ALL)
.SUFFIXES:
.SUFFIXES:.sqc .cpp .c .o
OBJS = dbcons.o serv.o util.o log.o flow.o

.sqc.o:
        $(DB2)  connect to $(DBNAME) user $(USEID) using $(PASWD)
        @$(RM)   *.bnd $*.c
        @$(DB2)  prep $< bindfile
        @$(DB2)  bind $*.bnd
        @$(DB2)  connect reset
        @$(DB2)  terminate
        @$(CC)  $(CFLAGS) -s -c  $*.c
.c.o:
        $(CC) -c $(CFLAGS)  $<
.cpp.o:
        $(CC) -c  $(CFLAGS)  $<

$(ALL) : $(OBJS)
        $(CC) $(CFLAGS)  $(OBJS) $(LDFLAGS) -o  $@
        $(CHMOD)  $@

clean:
        $(RM) *.o dbcon.c dbcons.bnd $(ALL)

看这里还有好多的例子:点击这里查看

sqc的编写方法这里就不再赘述,相关的文章已经太多了。

 

植物大战僵尸2可能引发Android mediaserver服务耗电问题

植物大战僵尸2可能引发Android mediaserver服务耗电问题

–更新注:文章所提“植物大战僵尸2”为中国宝开官方特制版,非Goolge Play的官方版本。目前(20131025 Google play 现已发布)还未测试该版本。

这是一个讨论贴,而非技术流,究竟什么是mediaserver,为何会被触发,又是如何这么耗电,这里不做详细讨论。简单了解一下什么时候这个服务会开启?

大家可以多使用google搜索,找找答案,多思考分析,一起交流分享。

简单的说,当你使用任何媒体服务都有可能需要这个mediaserver服务,如果使用某些App,听音乐,看视频,使用OTG外接设备,都有可能唤醒这个服务,更有可能某些app无故开启此服务,并使其保持运行状态,这种流氓行为才真令人深恶痛绝…

mediaserver take away battery.
mediaserver take away battery.

《植物大战僵尸2》已经发布,准确地说是中国版的植物大战僵尸,其不是通过Google play发布,而是各种奇怪的途径。笔者在Nexus 7(2g)该游戏之后,发现平板的续航大大下降,而后发现Mediaserver在后台一直运行,耗电量达到30%以上。由此推断《植物大战僵尸2》中国版是引发mediaserver后台耗电的元凶。

如果也遇到Nexus7耗电突然增多,考虑一下最近是否安装了《植物大战僵尸2》这款游戏;本文系作者个人观点,如果您认为原因不在此,欢迎指正。

Google Play 版本:Plants vs. Zombies™ 2

关于Google Nexus 7(二代) 外设的那些事

关于Google Nexus 7(二代) 外设的那些事

首先,无需Root,Nexus 7是直接可以连接鼠标和键盘的。虽然很蛋疼,但确是支持的,仅需一条OTG数据线,这点是靠谱的。
那么,U盘或者移动硬盘呢?你可以选择Root,也可以不Root。尽管Nexus 7已经有16G或者32G更大的存储空间,但是偶尔需要直接读取
移动存储中的照片,电影等文件,那么可以在未Root的Nexus 7使用 Nexus Media Importer(收费软件,也有对应免费版本),如果Root,可以选择StickMount。在Google play上搜索或者搜索OTG,这样的软件一大堆。安装之后,按照提示,使用任意文件管理器便可轻松搞定移动外设的文件管理。

nexus7

无线网卡呢,当然也可以!使用 PPP Widget ,这是一款无广告无添加的免费软件,使用条件是Root,系统低于4.3.
Andr​​oid 4.3用户:似乎有谷歌内核模块加载禁用! PPP Widget可能会停止工作!要怪就怪谷歌。

点击这里查看:Nexus Media Importer

点击这里查看:StickMount

点击这里查看:PPP Widget

稍后会在分享一下Nexus 7的好软件,有些没有经过专门优化,可能在Goolge Play无法搜索到,因此也不列出。

AirDroid | Your Android, on the Web.

Google 日曆 | Gmail|Google Maps

Evernote

Flipboard: Your News Magazine

Any.DO待办事项列表 | 任务列表

Dropbox

Nexus Media Importer

Pocket 

………

几款优秀RSS阅读器-个人推荐

几款优秀RSS阅读器-个人推荐

Google Reader究竟还是死了,但是阅读还要继续的。但好的消息是,Google Reader关闭后同类Rss阅读器市场一片繁荣。现在推荐几款个人喜欢的Rss/杂志阅读器,希望对大家有所帮助,–会更新…

rss

1.Feedly

feedly

   Feedly用户体验还不错,无论Web还是App,支持各种网页浏览器和运行iOS或Android的移动设备,也是一个基于云端的服务。其从各种在线资源聚合用户自定的新闻订阅源,并可与他人分享。使用Google帐号登录,无需注册。(存在被墙的问题)

  • 开发者: DevHD
  • 初始版本:2008年
  • 平台: Web,iOS,Android
  • 类型 :新闻聚合器
  • 网站:http://cloud.feedly.com

2.AOL Reader

AOLReader

 AOL Reader 目前还没有Android或者ios平台的APP,web页面也是beta测试版,但体验不错,方便快捷。

 

 3.Digg Reader

digg

Digg Reader也是不负期望的一个产品,可以使用Facebook,twitter以及Google帐号登录。

  • 开发者: Digg
  • 初始版本:2013年
  • 平台: Web,iOS,Android
  • 类型 :新闻聚合器
  • 网站:http://digg.com

 

4.Filpboard 

Flipboard

   Filpboard 几乎没什么可说的,移动杂志界的绝对佼佼者,针对中国大陆推出有中国本地化的APP,最近国际版的更新似乎已经无法在中国大陆区捕捉Facebook,Twitter,Google+的信息流.

  • 开发者: Filpboard
  • 初始版本:2011年
  • 平台: iOS,Android,Chrome 插件
  • 类型 :新闻杂志
  • 网站:https://flipboard.com/

5.Google Currents/Google Play Newsstand

Google Play Newsstand

 

Google Currents 和Google Play Magazines合并成为 Google Play Newsstand,已于2013年11年21日在Google play发布,看了下原来的Google Reader还保留在Currents中,现在可以直接同步订阅到Google Play Newsstand,何必呢,Google?Reader被谋杀之后,还有人会钟情于Google Play Newsstand吗?看看最近表现吧..

  • 开发者: Google
  • 初始版本:2013年(Play Newsstand)
  • 平台: Android
  • 类型 :新闻杂志
  • 网站: https://play.google.com
exFAT文件系统不可写问题修复

exFAT文件系统不可写问题修复

背景: exFAT 是为解决FAT32等不支持4G及其更大的文件而推出的一种兼备fat和NTFS文件系统特点的文件系统。
我的移动硬盘格式化为exfat原因有:

1. 支持单个大于4G文件的读写。
2.需要在Mac和Windows两种不同操作系统写使用读写,Mac是支持写入Fat32和exFat的,但不能写NTFS.

但是一段时间就出现了移动硬盘只能读,不能写(删除,修改)的问题,起初以为移动硬盘问题,搜索后解决:

在Windows 命令提示符(CMD)敲入下列命令:
chkdsk G: /f
G:为移动硬盘分区盘盘符 /f 参数为修复错误

来学习一下这个命令:

修复磁盘上的错误
CMD:Chkdsk

D:\>chkdsk /?
检查磁盘并显示状态报告。

CHKDSK [volume[[path]filename]]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:size]] [/B]

volume 指定驱动器号(后面跟一个冒号)、装入点或卷名。
filename 仅用于 FAT/FAT32: 指定要检查是否有碎片的文件。
/F 修复磁盘上的错误。
/V 在 FAT/FAT32 上: 显示磁盘上每个文件的完整路径和名称。
在 NTFS 上: 如果有清除消息,则显示。
/R 查找损坏的扇区并恢复可读信息
(隐含 /F)。
/L:size 仅用于 NTFS: 将日志文件大小更改为指定的 KB 数。如果未
指定大小,则显示当前
大小。
/X 如果必要,则先强制卸除卷。
该卷的所有打开句柄都会无效
(隐含 /F)。
/I 仅用于 NTFS: 对索引项进行强度较小的检查。
/C 仅用于 NTFS: 跳过文件夹结构的
循环检查。
/B 仅用于 NTFS: 重新评估该卷上的坏簇
(隐含 /R)
/I 或 /C 开关通过跳过对该卷的某些检查,可减少运行 Chkdsk 所需的时间。

阻止电脑休眠程序

阻止电脑休眠程序

这个软件,无论功能和界面看起来好傻..是吧?

多年前写的一个PC上软件,阻止电脑休眠,进入屏幕保护的方法有N+种,为什么需要这个蛋疼呢?

黑先生曾经说过:All that is real is rational; and all that is rational is real.那么这个存在也是存在蛋疼的理由的。那些年的回忆啊…

那是在一个庞大的公司,上上下下全是人,有木有?公司电脑可都是加入域,你没有管理员权限,就是说,你仅有运行已安装在上面的若干软件的权限,而没有更改任何配置的权限,当然也包括了更改屏幕保护。于是你一个转身,电脑进入屏幕保护,你不不得再输入密码…

理由也算充分了,在某些地方他并非一无是处。除了阻止电脑休眠,而且可以在下班后自动为你关闭电脑,假如你决定翘班……这就是当年的生活…

shots

 

今天,偶然翻看google drive,看到了这个小工具,居然还可以运行,多年前辛辛苦苦学习VC++,MFC,到现在代码居然看不懂…

时光是把杀猪刀……

BOOL CAnti_SleepDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon

	SetWindowText("阻止屏保开启/计算机休眠");
	long val=GetWindowLong(this->GetSafeHwnd(),GWL_STYLE);   
	val|= WS_SYSMENU; //需要系统菜单
	SetWindowLong(this->GetSafeHwnd(),GWL_STYLE,val);
	m_brush.CreateSolidBrush(RGB(0,0,255));
	//ModifyStyle(0,WS_SYSMENU,0);

	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);	
	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;	
		strAboutMenu.LoadString(IDS_ABOUTBOX);

		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_STRING, IDM_MINIWND, "隐藏到托盘");
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX,"关于.." );			
		}
		pSysMenu->RemoveMenu(0,MF_BYPOSITION);
		//pSysMenu->RemoveMenu(1,MF_BYPOSITION);
		pSysMenu->RemoveMenu(2,MF_BYPOSITION);
		pSysMenu->RemoveMenu(3,MF_BYPOSITION);
		pSysMenu->RemoveMenu(SC_SIZE,MF_BYCOMMAND);
		pSysMenu->RemoveMenu(SC_MAXIMIZE,MF_BYCOMMAND);
	}
	GetDlgItem(IDC_WORKSTATIC)->ShowWindow(FALSE);
	quitBBT.AutoLoad(IDCANCEL,this);
	quitBBT.LoadBitmaps(IDB_BITMAP3);
	shutBBT.AutoLoad(ID_TIMESHUTDOWN,this);
	shutBBT.LoadBitmaps(IDB_SHUTDOWNBMP);
	hideBBT.AutoLoad(ID_TOTRAY,this);
	hideBBT.LoadBitmaps(IDB_BITMAP2);
	return TRUE;  // return TRUE  unless you set the focus to a control
}

祭奠一下…放在了Github上..但愿还有用武之地……
Git:  https://github.com/iocoo/Anti_Sleep.git

 

 

使用python对excel进行读写

使用python对excel进行读写

工作周报或是日报,月报,是每一个IT民工的痛吧,一天忙碌下来还要被催着写周报…还好,我们的周报数据是
从项目管理平台(类似mantis)上导出来的。已经有前辈使用Perl写了将导出的excel数据进行筛选生成既定的
EXCEL格式的文档。

python-logo
大家都是懒人… 这个导出周报加上代码维护的工作交给了我。
我所要做的工作整个步骤是:登录网站(用户名/密码)->
->列表页面->输入条件->导出为||->使用Perl将导出文件进行处理->提交周报->…
如果将”导出为”之前的手工步骤也省略掉的话,那才真正实现一步完成..由于对Perl还不熟,所有步骤就选用python
重新写了!那就直接动手做吧:
分析:模块上包括登录WEB,下载文件,导出到EXCEL。
前两个模块都很简单,网上资料也很多:
1.登录,由于是登录后下载,所以需要模拟浏览器,使用cookies。这里就贴出测试的Demon

def get_srcfile(begindt,fridaydt):

    cj= cookielib.CookieJar()
    opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    opener.addheaders = [('User-agent','Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.1)')]
    params = urllib.urlencode({'username':'username',              
                           'password':'passwd',
                            'Cookies_Time': 1,
                             'IsLogin':True})
    #  with cookies
    login_page='http://www.xxx.com/login'
    login_data = urllib.urlencode({u"username":u'wangzhe2',u"password":u'wangzhe2'})   
    opener.open(login_page,login_data)
     ......
    opener.close()

2.下载文件:
减少文字量,参看这里吧:http://outofmemory.cn/code-snippet/83/sanzhong-Python-xiazai-url-save-file-code

3.读下载的文件,并导入生成的excel
这里不得不提到xlwt,xlrd,xlutils这几个包。
xlrd:读excel文件,从名字可以看出来,xls read 。地址:https://pypi.python.org/pypi/xlrd
xlwt:写excel文件,xls write,可以控制Excel中单元格的格式。地址:https://pypi.python.org/pypi/xlwt
xlutils:xlwt对于读取和生成Excel文件都非常容易处理,但是对于已经存在的Excel文件进行修改就存在问题了,
xlutils(依赖于xlrd和xlwt)提供复制excel文件内容和修改文件的功能。
下载地址:https://pypi.python.org/pypi/xlutils
具体参见文档: http://www.python-excel.org/   http://pythonhosted.org/xlutils/

不得不说在使用的时候遇到了问题,我需要的是操作office 2007+ 的xlsx文件,而且要用到excel的数据验证和下拉选框
(Data validation and drop down lists),这样问题显而易见了,这个包肯定不能用了。
于是,必须要重新选择其他方法了,这时Google给出了这个最佳答案: XlsxWriter!
  https://pypi.python.org/pypi/XlsxWriter
通过介绍可以看得出来,XlsxWriter可以操作xlsx文件,单元格写入文本,数字,公式,日期等不同格式;格式化表格,
图表,合并单元格等等。,最主要满足Data validation and drop down lists操作的需求。

excel 数据验证 xlsxWriter
excel 数据验证 xlsxWriter

XlsxWriter is a Python module for creating Excel XLSX files.
XlsxWriter supports the following features:

100% compatible Excel XLSX files.
Write text, numbers, formulas, dates to cells.
Write hyperlinks to cells.
Full cell formatting.
Multiple worksheets.
Charts.
Page setup methods for printing.
Merged cells.
Defined names.
Autofilters.
Data validation and drop down lists.
Conditional formatting.
Worksheet PNG/JPEG images.
Rich multi-format strings.
Cell comments.
Document properties.
Worksheet cell protection.
Freeze and split worksheet panes.
Worksheet Tables.
Sparklines.
Outlines and Grouping.
Memory optimisation mode for writing large files.
Standard libraries only.
Python 2.6, 2.7, 3.1, 3.2 and 3.3 support.