关于openlayers的一些说明
以前做的openlayers的项目基本都是很水的,但是毕竟都结了,算是有一丁点的积累。不过做项目的时候也是边学便用,代码写得很糟糕,一直没想着留着。于是毕业了,换城市了,换了几次电脑,这些代码终于都没了(有些网友那里应该还有,我发送过几次给别人)。 鉴于有不少openlayers的爱好者跟我讨论openlayers的一些开发问题,我想我还是把以前的思路整理一下,对openlayers做些精简和开发,弄一个直接可以使用的简单库出来。
以前做的openlayers的项目基本都是很水的,但是毕竟都结了,算是有一丁点的积累。不过做项目的时候也是边学便用,代码写得很糟糕,一直没想着留着。于是毕业了,换城市了,换了几次电脑,这些代码终于都没了(有些网友那里应该还有,我发送过几次给别人)。 鉴于有不少openlayers的爱好者跟我讨论openlayers的一些开发问题,我想我还是把以前的思路整理一下,对openlayers做些精简和开发,弄一个直接可以使用的简单库出来。
最近做一些Kernel方面的工作,从一头雾水开始,多做些记录吧。 addr2line也可以根据指令地址定位C代码对应的行,但是对于Kernel module却不是很方便,使用gdb就要容易得多。 NOTE:在使用gdb定位C代码之前需要开启-g选项编译内核或者module 例如有这样的Call Trace Call Trace: [<8033265c>] dump_stack+0x8/0x30 [<8003abbc>] warn_slowpath_common+0x70/0x98 [<80041f10>] local_bh_enable_ip+0x98/0xec [] ieee80211_alloc_node+0x29c/0x47c [umac] [] ieee80211_reset_bss+0x58/0x154 [umac] [] ieee80211_vap_attach+0x20/0x68 [umac] [] ath_vap_create+0x430/0x6b0 [umac] [] wlan_vap_create+0x58/0x210 [umac] [] osif_ioctl_create_vap+0x268/0x790 [umac] [] ath_ioctl+0x134/0x94c [umac] [<8022db50>] dev_ioctl+0x28c/0x88 现在想定位指令: [<80041f10>] local_bh_enable_ip+0x98/0xec 可以这样做: $ mips-linux-gdb vmlinux GNU gdb 6.8 Copyright (coffee) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it....
几个简单适合小程序的Makefile,可直接拷贝使用,自己mark一下,这样长时间不用Makefile也不用去看手册了 0.只有一个文件 变量的定义,方便使用 CC = gcc CCFLAGS = -O2 -s BIN = test OBJ = root_password_tool_win32.o $(BIN) : $(OBJ) $(CC) $(CCFLAGS) -o test $(OBJ) $(OBJ) : root_password_tool_win32.c $(CC) $(CCFLAGS) -c root_password_tool_win32.c .PHONY : clean clean : -rm $(BIN) $(OBJ) 1.简单编译命令行程序,$(CC)前面是tab,不是space 一共五个文件: test.c md5.c md5.h password.c password.h main函数在test.c中,test.c文件include了md5.h和password.h CC = gcc CCFLAGS = -O2 -s BIN = password OBJ = md5.o password.o test.o $(BIN) : $(OBJ) $(CC) $(CCFLAGS) -o password $(OBJ)...
好久没有在这里写点东西了,要养成书写记录的习惯。 这里简单的讨论一下java设计网络程序中如何控制上传和下载速度,我们常见的FTP,HTTP,BT等协议都是TCP的,但是现在流行的utorrent却基于UDP实现了自己UTP协议(UDP+拥塞控制),不管使用什么协议,站在I/O的角度来说,限速的控制思路都是一样的。 思路很简单,如下: 1.假设下载或者上传速度上限是m (KB/s),那么发送一个固定的字节数据(假设是n字节)的时间花费是:n/m; 2.假设现在要发送n字节的数据,那么理论所需的时间应该是n/m,而在实际情况下,发送n字节的数据只花费了t秒,那么发送该发送线程就应该睡眠n/m-t秒,这样就基本实现了速度的控制。 代码以TCP为例 速度控制 1 package com.actiontec.net.bandwidth; 2 3 /** 4 * 5 * @author Le 6 * 7 / 8 public class BandwidthLimiter { 9 10 / KB / 11 private static Long KB = 1024l; 12 13 / The smallest count chunk length in bytes / 14 private static Long CHUNK_LENGTH = 1024l; 15 16 / How many bytes will be sent or receive /...
资源: __ __ PC A: Ubuntu 12.04 LTS,两块网卡,分别为eth0和eth1,使用eth0连接 互联网 __ __ PC B: Windows 7, 一块网卡,为eth0 __ __ 目标: __ __ 使得B通过A连接互联网(IPv4),即实现A为路由器的功能 __ __ 步骤: __ __ PC A: __ __ (0)假设eth0已经配置好,PC可以通过eth0连接互联网 ,配置eth1为,如/etc/network/interface所示 __ __ auto lo __ __ iface lo inet loopback __ __ auto eth0 __ __ iface eth0 inet static __ __ address 172.16.10.65 __ __ gateway 172.16.10.254 __ __ netmask 255.255.0.0 __ __ auto eth1 __ __...
本文为一个openlayers项目的总结,其中可能有一些遗漏或描述得不准确的地方,望批评指正。 本文目标: 构建一个完全自定义的轻量级地图信息系统,以openlayers为基础,需要自定义地图的元素样式,包括图层切换的样式、地图导航的样式、地图标记的实现、自定义弹出框等等。该专用地图信息系统地图来源于google地图,包括普通地图图层、卫星影像图层、路面信息图层,另外自行画了一些局部区域的三维地图,本项目为企业内部项目,与互联网隔离,故不可使用google的地图api,则需要抓取google的相关地图资源(暂时使用google地图资源),利用openlayers构建轻量级专用地图信息系统,这里的轻量级是指使用tilecache接口实现地图图层(相关资料见前篇博文) 实现的效果图如下: 图1 后台管理页面 图2 前台展示页面(全屏显示) 地图相关说明: 地图页面事件说明 地图基本功能 (1) 左上角的地图浏览控件:包括地图的上下左右移动,地图的缩放 (2) 右上角三个选项,包括地图、航拍、三维,点击每个选项,出现相应的地图视图,其中地图、航拍使用google地图数据(下载google地图) (3) 能够标注地图的行政区域 (4) 鼠标在地图上双击鼠标左键,放大地图一个级别,鼠标滚轮向前向后转动分别是放大缩小地图一个级别,鼠标右键点击,无响应事件 展示平台功能 (1)主界面视图 a) 有若干个个图层,地图下面有各个图层的选项卡,点击每个选项,显示相应的内容 (2)局部区域视图 a) 选中标记(点),跳转到局部区域视图 b) 点击标记(点),根据项目的相应设置,显示地图下方的选项卡,点击选项卡,显示响应的内容 c) 鼠标放在标记(点)上时。出现提示框,鼠标移到提示框上面,可以点击相应的链接,点击链接之后,弹出一个对话框,并且锁住地图界面 地图数据说明 地图基本数据 (1)地图图片,要有连续的缩放级别的图,每个级别之间相差2倍 (2)航拍图片,要有连续的缩放级别的图,每个级别之间相差2倍 (3)三维图片,需要和地图图片、航拍图片保持一致的大小,和缩放级别和地理位置 (4)地图效果图上面的使用的图标和弹出窗口图,需要原件,编写css需要使用
为2011年mark一篇日志 好久都没有做总结了,好久都没有做什么项目了,整天忙着上课,读论文,最近一段时间还开始忙着谈恋爱了。 2011年开始这几个月读了数篇readings in database systems中超牛们的论文,对关系数据库知识也有了一定了解,而不是停留在以前仅仅会用关系数据库那个层次上了。还读了simpledb的源代码,minibase的源代码没有读完,也不想读了,很没意思,Jim Gray大神说关系数据库没啥搞头了,我觉得也是。Stonebraker大神也搞出了scidb,不搞传统的关系数据库了。 好吧,我也不搞关系数据库了,开始跟进scidb吧。no-sql,not only-sql。我来了。
最近一段时间里,又做了一个跟openlayers相关的项目,但是到目前为止,我对openlayers还是不怎么了解,做东西也只是参考了openlayers的例子,以及自己的一些对openlayers用法的一些猜测。openlayers是一个用js实现的GIS前端框架,我的js目前还是打酱油的水平,要是没有jquery,那就基本写不了几行js代码了。js那是相当的强大,再加上VML\SVG、HTML5以及很多js rich框架等等,感觉js在浏览器端真是无所不能啊 目前这个项目主要功能就是在某城市的地图上标示电缆、光缆、井盖、光缆接头、线杆、建筑物形状和位置、各分级单位的位置以及快速定位等等,要求的功能很简单,而且有前段时间做学校电子地图的一些积累,所以大概在两周左右就做完了这个项目。 感觉openlayers的资料很少,自己也没有太多的时间和精力去读它的源码,目前我都是通过看openlayers自带的那些example和api文档来摸索的,下面简单总结一下openlayers的相关用法,欢迎大家拍砖。 (以下均以OpenLayers-2.9.1为例说明,完整的项目代码在这里下载,地图图片http://121.193.130.68/list/) 1、我只用到了openlayers里面的tilecache接口,其它的例如WMS,google map等等都没有用到。原因是这样的。tilecache接口是用来从tilecache服务器上请求图片的。通过观察google map或者一些其它的地图服务,发现他们都是使用256x256像素大小的图片(也就是tile)来拼接地图的,通常的做法是在gis服务器之间架设一个tilecache服务器,这样,gis生成的图片就可以缓存在tilecahe服务器上,而tilecache服务器仅仅提供简单http服务即可,如果请求的图片(tile)不在tilecache服务器上,那么tilecache服务器会想gis服务器请求,把把gis生成的图片缓存在tilecache服务器上。 通过观察tilecache服务器的目录结构,发现缓存图片按照这样的模具结构存放:{缩放级别}/{横坐标}/{纵坐标}.{图片格式后缀名},注意这个坐标系的原点在屏幕的左下角。观察到这个规律以后,就可以直接把一张大的地图按照256x256的大小切割,并按照上述的目录结构存放,值得注意的是,每个缩放级别要一定满足2^n的规律,即第一级整个地图大小若为1,那么第二级整个地图大小应为2,第三级应为4,依次类推。这里需要简单修改一下openlayers的tilecache接口代码,文件位于OpenLayers-2.9.1\lib\OpenLayers\Layer\TileCache.js,修改如下: 1 var components = [ 2 this.layername, 3 zeroPad(tileZ, 2), 4 //zeroPad(parseInt(tileX / 1000000), 3), 5 //zeroPad((parseInt(tileX / 1000) % 1000), 3), 6 zeroPad((parseInt(tileX) % 1000), 3), 7 //zeroPad(parseInt(tileY / 1000000), 3), 8 //zeroPad((parseInt(tileY / 1000) % 1000), 3), 9 zeroPad((parseInt(tileY) % 1000), 3) + ‘.’ + this.extension 10 ]; 同样,由于只使用tilecache,所以openlayers里面其它的代码也可删除,以减小openlayers的代码量,最后通过自带的python写的工具,压缩openlayers代码即可。 2.地图初次加载的时候,向服务器请求所有数据信息,并在地图上绘出相应的点线面。如何画出建筑的轮廓?用透明的就行了。 a.显示点信息,包括画点、用图标显示点,代码如下。 1 /* 2 * 在地图上画出所有的点并保存点的相关信息到字典中 3 */ 4 function initFeaturePoint(vectorLayer,categoryId){...
好久没有在blogjava上面写东西了,前段时间一直在忙两个项目,忙到没有时间做一些总结,还好项目进展都还不错。这段时间自己虽然搞得很忙,但是自己却感到非常的开心,我突然觉得这个世界好像都是属于我的:遇到了很多给我帮助的人,做了很多自己喜欢做的事,开始了自己特别向往的生活。 突然觉得自己的梦想正在慢慢靠近,简直是触手可及,但是我还是冷静了一下,没有急忙着伸出手,还是把梦想放在高高的地方,让自己一直都能看到,然后去追逐吧。 觉得自己越来越感性,喜欢研究血型,喜欢研究星座,喜欢思考,喜欢去捕捉自己的点点思绪,然后写成文字,留在纸上,也觉得自己越来越走向偏执,而不是小时候那种的任性。 言归正传,说说自己参加的这次盛大校园牛人创新技术大赛。比赛相关细节请访问http://ic.sdo.com/。这是自己再次成为学生以后参加的第一个面向全国在校学生的技术大赛,在这个比赛中,我一个人一组,并最终进入决赛获得了三等奖,拿到了1w块的奖金。自己真是太幸运了,从决定参加比赛到完成代码大概用了两个星期的时间,而且主要的编码工作还只是用了两个周末的时间来完成的。 下面说说我做了什么。 我很喜欢旅游,喜欢背着包安静的行走,拍下自己路过的一切景色,也很喜欢在自己的日记本里记下自己每一天的心情。这个小应用旨在让每一个喜欢旅游的中国人都能在自己祖国的版图上留下自己的足迹,形成自己的足迹快照,并且能够在自己留下的足迹的地方添加日志和上传照片,这样去过相同地方的人就可以交流着相互的旅行记忆,想去同一个地方的人也可以组团或者提供那种类似“沙发客”的那种服务,帮助别人实现自己的旅行梦想。同时,可以对用户的数据进行发掘,也许20年后,在相同一天去过某个地方的人会收到一封相同的信,内容是我们为他保留的日志和照片;足迹中国还应该积极发掘想要去相同地方的或者路线相同相似的人,推荐他们组成一个旅行梦之队,为这些人提供订票、预定住所、购买保险等等一站式的旅游服务。 我给这个小应用取名为足迹中国。 因为我想: 在自己去过的每一个地方留下足迹,分享自己的旅行记忆 在自己想去的每一个地方做个标记,分享自己的旅行梦想。 东西弄得很简单,技术细节就不说了。下面说说比赛入围以后的,我去到盛大的一些所见所闻。 说到比赛,我想除了收获了最直接的奖金之外,还有如朋友、实实在在的企业体验、以及对盛大的了解等等。我想,说到盛大,几乎在每一个中国网民的心里网络游戏简直就是他的代名词,在参观了盛大创新院、盛大在线、盛大客服之后以及HR老师们培训的过程中,HR老师不断问我们盛大是一个什么类型的企业,最后终于被成功洗脑,我现在可以清楚的说出盛大是一个互动娱乐媒体企业了。 在上海待的这几天,盛大在线和盛大创新院的老师们都给我们做了比较周到的安排。第一天上午创新院的范老师和庄老师带领我们参观了创新院(其实之前我已经来过创新院了,并且待了一个多月),并给我们下午的演讲做了一次演练。下午的时候盛大在线的朱总、创新院的郭院长以及其他几位盛大各部门的大牛们准时坐到了评委席,我第一个上,有点紧张啊(此处省去200字)。晚上的时候和专家们共进晚餐,可以和专家直接交谈,咨询技术问题,交流自己的想法确实是一件非常爽的事情。当晚还和HR的老师们交流和很长时间,了解到了盛大的一些福利待遇,最重要的是HR姐姐们传授了我们很多找工作方面的有用经验。当然HR姐姐们还说那张获奖证书就是盛大的绿卡。。。第一天就这样过去了。 第二天参观了盛大在线和客服中心,并且最终揭晓了奖项情况。最后很意外的让我代表了所有获奖同学上台做个简单的发言。真是有点激动啊,被代表了20多年了,今天终于可以代表一下别人了。立马沉住气,开始打腹稿。等到走上讲台之后,才发现刚才打完的腹稿早就被胃消化,没被吸收就直接进入大肠了。算了,于是胡言乱语了一通,现在只记得说自己想去创新院实习。因为自己确实希望能去创新院实习。我在创新院呆过一段时间,对那里的技术氛围有些了解,感觉那里的每个人都超牛,每个人都能不断的闪出非常吸引人的点子。那里环境优雅,一切都非常好,给人一种自由的感觉。 ft。。。一下子写了这么多了。。。就此搁笔,期待奖金早日入账!我就可以换个android的手机了
2010年的第一篇日志献给了firefox 原因很简单,我要删掉删除Firefox地址栏下拉列表中指定的几条记录,试了del、alt+del、shift+del、ctrl+del都不管用 才发现这些记录都已经是书签了,于是选择:书签–>管理书签–>在搜索书签栏里面输入要删除的网址,找到删除即可
什么是libfetion?请访问http://www.libfetion.cn/查看 以下都是在ubuntu下进行的 参考 http://www.libfetion.cn/Docs-dve/Build-LibFx-on-ubuntu.txt 请使用svn客户端下载libfetion-gui的源码 http://libfetion-gui.googlecode.com/svn/ 安装开发过程中需要的软件 1 sudo apt-get install libc-dev 2 sudo apt-get install g++ 3 sudo apt-get install libcurl4-openssl-dev 在trunk/qt4_src/libfetion/lib目录下找到静态库libfetion_32.a,由于代码打算是用python来写,所以制作了一个动态库libfetion.so 具体步骤如下: #解压静态库为*.o ar -x libfetion_32.a #重新封装为so g++ -shared -Wall -fPIC -lcurl -pthread *.o -o libfetion.so #查看so[可选步骤] nm libfetion.so 发送天气预报的python代码如下,libfetion.so中具体的方法请查看trunk/qt4_src/libfetion/include/libfetion/libfetion.h 1 #!/usr/bin/env python 2 #coding=utf-8 3 #only can run at linux 4 import os 5 import ctypes 6 import urllib2 7 8 #城市代码列表 9 city_codes = { 10 ‘合肥’ : ‘CHXX0448’,...
最近为学校搭建了一个校园电子地图,做得不怎么好,只能凑合着用了。 快回家了,做点记录,欢迎拍砖指正。 新生应该可以在录取通知书里看到这个地图的链接了^_^ 刚开始做这个地图的时候,打算使用geoserver等专业的东西,时间太紧了,对GIS一点了解都没有,所以就放弃了。看到了6D校园和e都市的实现方案,找了一找,发现了mapeasy这个js库,于是把6D校园的地图图片下载下来了,自己试着用mapeasy实现了一下,效果很好,但是总感觉不对劲,像6D校园和e都市都是使用html map area来标注地图信息的,这样就与真正的地理信息系统差远了,不好快速的添加信息或者做路径搜索了,于是又不是很满意。在使用geoserver的时候,注意到它显示地图信息使用了openlayers,于是简单看了一下openlayers的例子,感觉很强大,也比较符合我的想法。 openlayers可以直接使用图片做地图的来源,然后直接编辑地图,添加地图的地理信息,包括点,线,多边形区域,这样就很容易做路径搜索,也很快速容易添加地图的地理信息了。 看到openlayers可以使用tilecache做地图的图片来源,我就搭建了tilecache服务器,这个tilecache是用python写的,很容易配置。我仔细看了一下tilecache的配置,发现这个完全可以直接使用图片就可以,只是把切好的图片按照titlecache的目录结构放置好,就行了。于是简单的修改了一下openlayers的tilecache接口,就基本实现了电子地图。地图原图是一个面积很大图片,我用PIL库,使用python写了一个简单的切图程序,把地图按照横纵坐标切成了256X256大小的图片,并且按照自己定制tilecache的目录结构存好图片,最后把这些图片放在apache http服务器下,使用openlayers直接读取即可。 最后实现的功能有:地图浏览,地图缩略展示,地面建筑标记,地面建筑提示,路线标记,快速定位,后台添加信息等(路径搜索暂未实现) 其中后台可以直接画出建筑的多边形、路线、点标记,然后添加信息 后台管理页面如下:
初学jquery,觉得很好玩。欢迎拍砖指正 我实现的效果截图 msn的效果截图 全部是js实现的,效果还不错,可以IE7,ff3,Chrome上正常运行,这里是demo[查看] 其中使用了jquery1.3.2[下载],jquery.cycle.all.js[下载] 所有文件在这里[下载] 1 body { 2 font-family: Arial, Helvetica, sans-serif; 3 font-size: 12px; 4 font-style: normal; 5 line-height: normal; 6 font-weight: normal; 7 } 8 .clear{ 9 clear:both; 10 height:0px; 11 } 12 .hot { 13 background-color: #F7F7F7; 14 height: 227px; 15 width: 302px; 16 border: 1px solid #DEDEDE; 17 padding-right:5px; 18 } 19 20 .hot_pic { 21 height: 190px; 22 width: 250px; 23 padding: 0;...
刚刚登录appengine的时候才发现开始支持java了。 上午的时候还没有。 对java的比较熟悉,但是还是喜欢比较简洁的python http://code.google.com/intl/zh-CN/appengine/docs/java/overview.html <http://googleappengine.blogspot.com/2009/04/seriously-this-time-new-language- on-app.html> 这是注册试用后google appengine给发的邮件: Hello, Thanks for signing up to try Google App Engine for Java! Your account has now been activated, so you can begin building applications with our new Java runtime. Please note that this is still an early look at our support for the Java language and you may encounter issues during development. We look forward to hearing your feedback! To learn more, please visit:...
以教程中的一段小诗开始: Programming is fun When the work is done if you wanna make your work also fun: use Python! 1 #!/usr/bin/env python 2 #coding=utf-8 3 poem = ‘’’\ 4 Programming is fun 5 When the work is done 6 if you wanna make your work also fun: 7 use Python! 8 ’’’ 9 10 f = file(‘c:\\poem.txt’,‘w’) 11 f.write(poem) 12 f.close() 哇,下面这段真是解释性的脚本语言的魅力啊,动态生成语句,然后直接解释执行,太灵活了 1 #!/usr/bin/env python 2 #coding=utf-8 3 stm = ‘a = 10’...
经纬度数据收集自 维北有斗-天文爱好者的乐园 编写这篇博文有几个目的: 首先认识了两个单词 latitude [lat·i·tude || ’lætɪtuːd /-tjuːd] n. 纬度; 回旋余地, 自由; 纬度地区 longitude [lon·gi·tude || ’lɑndʒɪtuːd /’lɒndʒɪtjuːd] n. 经度; 经线 1.学习dom4j的简单用法 2.做一个方便使用的全国城市经纬度数据库 3.利用google天气api做一个全面的天气预报服务 4.学习用python编写webservice 内容: 1.学习dom4j的简单用法 收集了的经纬度都是按照城市分开的单独的htm文件,我已经处理过为符合html4.0标准的html文件了,即所有的标识都是成对的,这里可以下载这些文件(点击下载经纬度html包) (1)如何使用dom4j读入xml文档 使用dom4j读入xml文档代码片段 1 File file = new File(“G:\\workspace\\test.xml”); 2 SAXReader reader = new SAXReader(); 3 //根据实际情况设置编码 4 reader.setEncoding(“GBK”); 5 Document doc = reader.read(files); 6 7 //获得xml文档的根节点 8 Element root = doc.getRootElement(); (2)如何遍历xml文档的所有结点 这样就读入了这个xml文档,并获得了这个xml文档对象的根结点,由于xml文档是一个树形结构,这样就很容易遍历它所有的结点了。 这里根据自己的需要,测试使用了两种遍历方法,一种是根据树的结构编写递归程序,一种就是直接使用循环,还有都dom4j自带的visitor模式访问也很好用,这里有篇参考文档,可以看看(查看) 使用递归遍历 public void visitAll(Element root, Element child){ // 枚举所有子节点 for ( Iterator i = root....
办公室通过路由器上网,所以不能直接远程桌面登录到自己计算机上,办公室的人都想在宿舍登录到自己的计算机上工作学习,所以可以简单的将路由器的3389端口(windows远程桌面默认使用3389端口)映射到自己的IP上,同时修改其他人计算机的远程桌面端口,然后再相应的将路由器端口映射到自己的IP上即可。 修改远程桌面端口需要修改注册表中的两个值: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp] “PortNumber”=dword:00000d3d [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp] “PortNumber”=dword:00000d3d 修改两个值,十进制是0-65535,双字十六进制是0x00000000-0x0000FFFF,推荐修改为1024以上。 如何使用windows api编写一个小程序来修改端口呢?接下来就详细的讲讲这个程序应该如何实现,另外在讨论一下如何使用windows api编写简单的windows程序。 下载开源的windows api集成开发环境Code::Blocks (访问Code::Blocks主页) 建议下载集成mingw的CodeBlocks,这样就不用单独下载安装mingw了,如果不知道什么是mingw,赶紧google一下看看吧。配置好开发环境后,就可以开始下一步啦。 启动Code::Blocks,然后新建一个Win32 GUI Project,这样IDE会自动构建一个对话框,而且程序的基本结构也就构造好了。程序的入口就是WinMain函数,然后就可以在这个基础之上编写我们的程序了。 先确定这个程序有几个窗口,然后修改resource.rc文件,资料都可以去MSDN查找 resource.rc 1 #include “resource.h” 2 3 DLG_MAIN DIALOGEX 6,6,269,131 4 STYLE 0x90CC0800 5 CAPTION “远程桌面连接端口修改器” 6 FONT 8,“MS Sans Serif”,0,0 7 BEGIN 8 CONTROL “",IDC_EDT,“Edit”,0x50010000,72,51,170,13,0x00000200 9 CONTROL “十进制(&D)",IDC_RBN_D,“Button”,0x50010009,20,81,54,9 10 CONTROL “十六进制(&H)",IDC_RBN_H,“Button”,0x50010009,90,81,60,9 11 CONTROL “二进制(&B)",IDC_RBN_B,“Button”,0x50010009,164,81,54,9 12 CONTROL “修改(&E)",IDC_BTN_E,“Button”,0x50010000,14,107,54,13 13 CONTROL “还原(&B)",IDC_BTN_B,“Button”,0x50010000,70,107,54,13 14 CONTROL “关于(&A)",IDC_BTN_A,“Button”,0x50010000,126,107,54,13 15 CONTROL “退出(&Q)",IDC_BTN_Q,“Button”,0x50010000,198,107,54,13 16 CONTROL “远程桌面端口”,IDC_STC,“Static”,0x50000000,16,53,52,9 17 CONTROL “基数”,IDC_GRP,“Button”,0x50000007,14,70,228,24...
在windows下安装过很多次apache+php+mysql了,每次都没有做一个详细的记录。今天心情不好,所以写个日志。 这里的安装方法都是参考于php的官方安装文档,所以直接查看它的官方文档就可以安装了 主要参考这两个手册:php-5中文手册和php-5.2.5-Win32.zip 软件包中的install.txt 首先请准备以下软件(ps:我的这些软件都是很久前下载的,现在已经有新版本了,不过安装方法都是一样的) 点击下载apache 点击下载php-5 点击下载mysql 下面开始安装(安装顺序无所谓)和配置,不要一味的照搬,自己结合自己的情况看看 ===> 软件的安装 1)安装apache_2.2.8-win32-x86-openssl-0.9.8g.msi =>安装方法:直接运行安装程序安装 2)安装php-5 => 解压下载的安装包,将解压后的文件目录名改为php,以方便后面的配置 =>进入刚刚改名为php的目录,找到php.ini-recommended文件,将该文件改名为php.ini =>将名为php的目录整个拷贝了任意一个盘(c,d……)的根目录下,以方便后面的配置,我将php整个目录拷贝到了D盘根目录下,即d:\php 3)安装mysql =>安装方法:直接运行安装程序安装 =>配置mysql:安装完mysql后,程序会自动弹出配置窗口,直接点击"next"…….,然后设置好相应的字符编码和root用户的密码等 这样程序就安装完成了,下面分析这些软件应该如何配置才能工作。 ===> 服务器的配置(这里只是简单讲讲如何让服务器正常工作,想要知道更多的配置,请自行查看软件配置文档) 1)配置php(先前我将解压后的php包整个拷贝到了d目录下d:\php) =>进入php所在目录,目录结构基本是这个样子 点击展开 d:\php | +–dev | | | |-php5ts.lib | +–ext – extension DLLs for PHP | | | |-php_bz2.dll | | | |-php_cpdf.dll | | | |-.. | +–extras | | | +–mibs – support files for SNMP | | | +–openssl – support files for Openssl...
在JavaScript中使用正则表达式来限制输入框——输入框中只能输入数字 点击查看 1 这样使用: 点击查看 1 请在这里测试
编写此文的目的:当你看到我这篇博文的时候,估计你就不能体会我为什么要编写此文了。在此文发表之前,我需要一篇博文来改变我的首页的丑陋的状态,于是我就写了这篇博文。 使用到的工具:大脑一个,手两只, IE Developer(点击下载),其他东西若干 打造过程: 前天申请的BlogJava,感觉很不错,看看后台,发现可以通过修改CSS改变自己博客的面貌。 cnblog上有人说有比较好的costom的模板,可在BlogJava里我却没有找到这个模板。系统里已经自带了很多模板了,都很漂亮,但是自己还是喜欢那种oracle数据库帮助文档那种样式的页面,在后台选了个最接近自己想法的模板cogitation,然后就开始这次改造工程。 大侠们见谅,以下部分没有什么内涵,都是一些干完体力活后发的牢骚 如果你还想继续往下看,请确保你已经成功安装了IE Developer浏览器插件。 打开自己的BlogJava首页,可以看到自己选的模板已经生效了,先用IE Developer查看一下自己首页的结构吧,很简单,一目了然。想起了后台可以自己用HTML定义页面的头部和尾部,这个太好了,直接把原先的页面头和尾设为不显示,css代码如下: #footer{ }{ display:none; } #top { }{ display:none; } 然后自己写个页面头和尾,把自己的写的头和尾的html代码拷到后台对应的地方,代码不要是完整的html页,一两个table即可。自己写的头和尾页可以有css,把这些css放到『通过css定制页面』中去吧。例如我的页首页脚html代码就是这样: Canvas 积极且具有忧患意识的人,在每一次忧患中都会看到机会,并且在每个机会中也都会看到某种忧患! ![](/Images/OutliningIndicators/None.gif) ![](/Images/OutliningIndicators/None.gif) ![](/Images/OutliningIndicators/None.gif) ![](/Images/OutliningIndicators/None.gif) ![](/Images/OutliningIndicators/None.gif) ![](/Images/OutliningIndicators/None.gif) ![](/Images/OutliningIndicators/None.gif) ![](/Images/OutliningIndicators/None.gif) ![](/Images/OutliningIndicators/None.gif) ![](/Images/OutliningIndicators/None.gif) 首页 ![](/Images/OutliningIndicators/None.gif) 新随笔 ![](/Images/OutliningIndicators/None.gif) 聚合 ![](/Images/OutliningIndicators/None.gif) 联系 ![](/Images/OutliningIndicators/None.gif) 管理 ![](/Images/OutliningIndicators/None.gif) ![](/Images/OutliningIndicators/None.gif) ![](/Images/OutliningIndicators/None.gif) ![](/Images/OutliningIndicators/None.gif) ![](/Images/OutliningIndicators/None.gif) ![](/Images/OutliningIndicators/None.gif) ![](/Images/OutliningIndicators/None.gif) ![](/Images/OutliningIndicators/None.gif) Copyright © Canvas Wong Contact me 接下来就是用IE develop导出页面css,然后自己修改成自己想要的样子,再放回『通过css定制页面』中去即可。 看到留言框内有个google广告,通过后台可以去掉这个广告,但是会留下一个iframe框,不知道你那是不是也这样。仔细看了一下留言页面代码,使用这段css代码把iframe设置为不显示: iframe{ }{ display:none; } 总结:右键->查看源代码,原模板的东西都在,只是没有显示出来,糊弄一下看客的眼睛而已。 找一个自己喜欢的模板,将它打造得面目全非吧。