Skip to content

Instantly share code, notes, and snippets.

View chzyer's full-sized avatar

ChenYe chzyer

  • China
View GitHub Profile
@chzyer
chzyer / ajax-doesnot-work-at-ie8.md
Created January 11, 2013 05:52
某页面在IE8下无法AJAX获取的问题

最近在弄一个新皮,发现一个问题。 在IE8下,jquery的版本是1.6.2,通过POST发送数据时总是无法正常调用回调函数。 数据确实是正常发送过去了,后来加了一个error方法,则执行了error这个方法。但是在Chrome,FF下却是正常的! 后来发现,换成其他页面(也是接收AJAX的)则正常。原来,我在PHP页面多加了这一句

header('Content-Type:text/html;charset=UTF8');

这个是用来说明该页面的编码为UTF8的,在IE8下竟然无法正常判断是否成功并执行回调函数 将这一句去掉则正常。再仔细一看,原来是charset的问题,改成charset=UTF-8(多了一个-),也解决问题了

@chzyer
chzyer / control-auto-offline.md
Created January 11, 2013 05:51
远程桌面被自动断开的解决方法

自上学期开始,这个问题一直困扰着我。在机房上课的时候,总要远程控制自己宿舍的电脑,干点不正经的事... 悲剧的是每次连上没几分钟就会自动断开,提示是有另外一个用户强制登陆把我给T下来了。我有设密码,所以比可能被其他人T的,而且无论在哪里,用哪台机子都出现这样的情况!

因为我经常通过远程写代码的,所以这种不爽应该能够体会得到,早上4节课下来没重连个50次是不可能的。

上网找了很多Google,都没有遇见这种情况的!

后来我受不了了,装了个64位的WIN7。用WIN7优化大师简单配置一下,到学校机房,还是一样?!老是自动断开。 突然我想到了可能是我设置自动登录的问题!对于新装的系统,我只是简单配置了一下,开机时自动登录,并且注销后也会自动登录。这么一想就想通了

@chzyer
chzyer / my-software-update.md
Created January 11, 2013 05:50
魅族,快让我的软件上架吧

还记得我说暑假仅剩的10天用来学android.手握M9,不做做看到时有点说不过去.其实我从高三那年就想帮手机做点小软件,可是苦于moto e6的系统是linux,MOTO不肯放出SDK,linux又不会,交叉编译啥啥都不会.就此作罢

再说说android,10天学完收获蛮大,已经能够用图片来美化整个界面.做成我理想的效果了.我的第一个手机软件,项目随手划,在9月7号申请在魅族软件商场上架.程序的用途主要是用于任务计划.灵感来源于我做项目的时候,会把今天要做的功能全部写出来,然后如果做完了打钩.这个软件就可以实现这样的效果.可以按项目分类,可以安排到任何一天完成.

提交给魅族软件商店,说最多7天完成评估.结果还真是第7天给我结果了.审核通过,现在进入了测试阶段

因为是为M9适配,分辨率太大问题.不好意思放出来了.

@chzyer
chzyer / discuz-update.md
Created January 11, 2013 05:49
学校论坛升级心得

我接了一个学校论坛后台管理员的活,会接是因为认识上一届跟我说只要几天备份一次数据库就可以每月赚30,这等好事岂能不做…学校用的是discuz7.1,这个学期他们突然想升级到X2,当然只有我来做。

学校从dvbbs论坛转DZ的,7.2之前插件机制还没改,所以整个文件目录超乱,所以我不选择覆盖升级了,直接新装论坛,在转换数据库。论坛数据转成sql语句要500M,用phpmyadmin导出,幸好最新版的phpmyadmin可以断点导入,就一直点点到500m文件导入到我的电脑本地的环境,出于保险起见当然要在本地试试啦…

接下来把旧程序换目录,把x2放进来,新安装一遍,和原论坛同一个数据库,不同前缀.开始转换数据库到x2,但官方只有7.2到x2的.后来想想7.1和7.2没什么区别,直接上,途中发现缺一个表和两个表缺一个字段,从7.2中提取出来(我同时又装了7.2)经历半个小时,终于转换完成.现在是将旧版的数据复制成x2的数据。可以把旧版的数据删了。再根据转换程序最后的提示做,放附件进目录,这样就完成了

@chzyer
chzyer / non-title.md
Created January 11, 2013 05:48
无题

不知不觉我的网站已经很久没更新了,主要是没什么新发现,在广州做项目,刚开始是用python写socket服务器端,再用php写网页端和本地的socket连接,后来又写c#,感觉也是没什么好写,后来回到家,用暑假余下的10天来学android.然后就很忙了,开学回来又说学校论坛要升级,又忙了一阵,又是高校杯那项目还没完成,总归就是忙了。
最近还是有目标的,给博客换个新皮,和峰子弄个双人技术博,旨在合作接网页项目,深层研究discuzx2的代码,感觉是时候看他的代码了,看还能学到些什么。
最近为m9做了一个项目管理软件,可以为某个项目添加任务,然后完成可以打勾的,也可以安排时间做,暂时够我现在用了
不知不觉貌似我pr2了...

@chzyer
chzyer / what-to-do-in-project.md
Created January 11, 2013 05:48
做项目应该注意的事

往往项目最开始是写一些公用函数或类.最开始会感觉一整天忙下来没有什么进展,但要忍下来,公用函数写好了,接下来的进度就快了.
要先计划当天要做什么功能.否则就会产生这个功能做一半又跑去做另外一个功能.(如果是顺着整个流程走,很容易这样),然后做着做着就不知道自己要做什么了.
边写边整理代码,如果一开始对实现某个功能还没有底,就让你按工工整整的格式写肯定是不干的.但是让代码看起来工整对以后调试查错扩展都是有帮助的,所以这也是必须的,所以,当开始写某个功能时,可以无视代码工整,先把功能写出来,写完了,再修改,改进算法也好,修修补补也罢,顺便写下文档.
项目分工时,要先完成分工间通信的API文档.把通信的格式先列出来.
以后如果还有感会再补上

@chzyer
chzyer / challenge-comic-website.md
Created January 11, 2013 05:47
征服漫画网站(盗链+采集+优化阅读方式)

最近突然喜欢看漫画,baidu一下,找到了www.imanhua.com这个网站,发现里面漫画挺多.还不错.但是蛋疼的事情就是太麻烦了.有兴趣的可以去体验下.
每一张漫画都要手动按一下下一页才可以继续看,然后看到最后还没有下一篇的连接,要记住这个第几话了,然后会目录再找第几+1话...而且广告的密度也不多说.
虽说会自动加载下一页漫画图片缓存下来,待到打开下一个页面时就不用等待图片下载了,但是还是看得不爽.
然后心头突然涌现一个想法..采集他的图片下来,做成自己想要的方式..哈哈.有技术的人就是有优势.
接下来会介绍我逐步研究的步骤..最后还会附上我的作品..所谓的采集也不是名副其实的采集.进入正题..
随便找部漫画,比如火影,找到第一集,用火狐打开,然后按ctr+shift+k打开XX工具.然后打开网页,从一大堆数据中隐约能找到

[20:59:56.052] GET http://61.147.109.2:89/Files/Images/54/45998/imanhua_001_185520120.jpg [HTTP/1.1 302 Redirect 29ms]

这个就是具体的图片了.归根到底我们就只需要这个图片而已.新窗口打开这个图片,发现万恶的防盗链.根据我的理解,防盗链的原理应该是根据发送请求信息的域名来判断是不是外界,这样,我们就确确实实要在imanhua.com域名下打开我自己的网页咯.按理说我们打开imanhua.com会解析到他们自己的ip地址,但是我们可以修改c:/windows/system32/drivers/etc/hosts这个文件,将imanhua.com解析到我们指定的IP地址就行了.博主们的空间应该可以绑定多个子网站,上传到上面,建立imanhua.com这个子站点,然后修改hosts这个文件将imanhua.com解析到自己空间的ip,然后浏览器访问imanhua.com就会访问到你自己的空间上面去.而且,如果在上面引用上面得到的图片地址,是不会被防盗链的呦!!!这就是要大费周章的原因.而且.不知注意到没有,用imanhua.comwww.imanhua.com都可以访问这个网站.这正好帮了一个忙.将imanhua.com解析成我们的IP,而www.imanhua.com可以不理(必须),因为还需要

@chzyer
chzyer / c-sharp-applications-visit.md
Created January 11, 2013 05:43
C#不同线程的相互访问

本来是不想碰C#这蛋疼的家伙的.但没办法,项目中突然要我负责餐厅服务器,把我从东墙扔到了西墙.只好硬着头皮干了.
当前和中央服务器的连接还是采用socket的方式,要有像QQ一眼的在线状态判断功能.这也就意味这要定时向中央服务器发送心跳包~告诉他我还活着...
然后还要负责监听来自中央服务器的消息.监听就意味着单线程要处于堵塞状态(死循环,无法进行其他操作了),而且,发送心跳包的频率是每秒1次,监听则是1ms一次,所以就要采用多线程来解决.然后多线程中状态的互交是必须的.然而C#为了安全不同线程是不允许相互访问其内容的.然后便有了此文.
####目标: 用另外一个线程控制主窗口的lb_name(textbox控件)的内容显示
PS:其实我说了,我对C#不熟,代码是baidu(为什么不是google呢,因为他刚好间接性挂了.)来的(修改了一点).怕忘记加了一点理解
首先申明一个委托方法

public delegate void SetText(string text);
//加入方法
@chzyer
chzyer / seng-weather-aut.md
Last active December 10, 2015 23:18
带来自动发天气预报给手机

hi,guys,我貌似很久没来了,今天终于是放假了.当然这不意味着我没来的这段时间很忙,相反,我一直处于游魂状态...整天无所事事.两个星期的实训让我一天就给搞定了.然后闲闲的坐了两个星期.呵呵
貌似我每隔一段时间都会有这种状况,很不想再做下去了.无所事事,也不知道要干什么,也什么都不想干.
OK,废话不说,前几天老师跟我说PHP也可以用飞信发短信.这个功能其实很早一段时间就在研究,但无果.居然在code.google.com上找到了一个.测试后完美运行.是通过WAP方式提交,为的是避过验证码.
当然本篇不想讲那些原理啊什么的.看标题,这次直接给实用的.一步一步带你实现自动给手机发天气预报.
前提,你的空间的管理面板是cpanel,这样才能触发定时短信.

  1. 先确定天气预报的城市,比如我是佛山,我的PHP是引用weather.com.cn的天气数据的,所以需要城市代码,查询城市代码的方式很简单,上weather.com.cn在搜索中填入城市名,比如佛山,搜索,会跳转到页面http://www.weather.com.cn/weather/101280800.shtml? 那么我就知道了佛山的城市代码是101280800
  2. 你要有一个飞信账号,而且要绑定手机的.理所当然你要发的目标手机要和你是好友关系,不解释.
  3. 下载发送手机的代码,我把获取数据和飞信代码封装在一起.
@chzyer
chzyer / read-message-auto.md
Created January 11, 2013 05:38
关于自动获取新消息

这篇文章关系到前端和后台...本篇文章不涉及代码,只有思路..
星期五晚上接到一个任务,关于我们学校的签到系统,说是做一个页面,自动展示今天已经签到的人员,并且要求一点是自动更新新签到的人员 很明显要用到AJAX,上阵子写主题写得正熟,5个小时便搞定界面后台与JS.
类似于微博
用过微博的一般都知道,当你打开首页,等得比较久的话,会出现一个有新消息,点击后就显示出来了.为什么他不自动显示呢?技术问题?当然不是,因为这样能够有效得减少资源的占用
先说一下原理,在页面加载后,JS会每一段时间间隔向服务器发送一个搜索新消息的请求,然后服务器告诉他有or无.如果有,就显示出有新消 息,请查看!然后?然后JS就不用再去向服务器请求了.因为每次请求会给数据库带来一定的负担,而我的目标机子仅是一个1.8Ghz,256内存的虚拟机里面,4个表每个表数据都在6000+行以上,我在那个虚拟机上测试每次查询耗时是100+ms,而在我电脑上是20+,能省则省...
OK,刚才说到哪了.显示出有新消息,让用户去点击,节省的就是检测到新消息到用户点击这段时间的资源.当用户点击的时候,再向服务器提交查询信息,得到数据显示出来,然后再回到该流程的第一步.
大致的流程已经出来,再考虑细致的.

  1. 数据库查询,既然是查询今天的签到,就要给定一个时间范围,一般数据库中是以时间戳的方式储存时间,比如1308565124,意义是从1970年1月1日到现在的秒数.那时间的范围就是以今天0点0分为下限,现在的时间为上限.有一个方法可以获得今天0点0分的方法.先用date("Y-m-s",time())把现在时间的时间戳转换成我们熟悉的年月日格式,然后用strtotime()把文本格式的时间转换为时间戳.由于我们给strtotime没有包含哪个小时那分,所以默认是0点0分,刚好能达到今天的下限