分类为 blog设计 的存档

discuz7.2 在iis下配置php sendmail功能

这样测试是完全可以成功的,但是如果发件人或者收件人是username user@domain.com这样的格式就不能发送了,也许是iis的服务器不能个支持这样的格式(本人不才,如果高人看到请指教具体原因) 对于论坛上面说到的情况就是这样,后台测试成功,但是在注册或者找回密码或者邀请码发送时候就发送不出去了。 (..更多内容)

昨天晚上在强大的GFW的作用下,已知的所有ghs IP全部挂掉,在搜索半天后没有发现新的可用IP,转向到Appspot了

现在也暂时不管搜索引擎了,先能访问再说!

 

 

感谢http://www.jmj.hk/的帮助,现在终于可以像以前一样访问了~~

micolog 模板的制作-illacrimo-plus-2(完结)

这篇文章写了一部分很久都没有更新,现在终于把这部分完善了。各位看官请接着看~~ (..更多内容)
概览 jiql是在JAVA GAE上访问Google Datastore的JDBC wrapper(这个不知道怎么说了,请大家见谅) jiql支持标准的sql语言进行访问 jiql supports the use of standard SQL as a method for accessing jiql支持使用标准的SQL访问jiql数据储存 (..更多内容)
一年前google推出了Google App Engine。提供了足够我们普通用户使用的空间和流量,而且还可以通过付费获得更多的空间和流量。其余的不多说了,现在许多关于GAE的介绍。 (..更多内容)
自从GAE支持java以来,一些其他语言就可以通过java来间接实现了。其中PHP语言就是其中的重中之重,通过quercus,我们可以在GAE上运行100%的php程序。 (..更多内容)
网页打开速度是用户体验的重要部分, 在没法优化后台服务器的时候,如何合理的放置网页的元件让她们在浏览器里显示得更加快 (..更多内容)
貌似一位朋友翻译过这篇文章,想不到都开始大范围转载了哈,我又把它翻出来贴出来了,学习学习吧   接下来我会给大家列一些要点,并附上相应的例子,与大家分享我在别人的网页设计中寻找“高品质”的过程。 (..更多内容)
如果您经常性地需要建立和开发新的网站,那么您就应该考虑使用模板创建,收集有用的代码片段等等。为了加快开发的进程,您就应该这样做,在需要的适 合您可以使用、修改并优化这些模板文件;如果是作为商业用途的您应该检查下许可条款。 (..更多内容)

栅格化研究总结前析

上面列举的都是Alexa全球排名前100的站点,它们的首页宽度为950px/960px. 除了微软的Live Search, 这些站点有个共同特点:页面结构较复杂,都可以认为是门户型网站。 (..更多内容)

DIV+CSS的命名规则

搜索引擎优化(seo)有很多工作要做,其中对代码的优化是一个很关键的步骤。为了更加符合SEO的规范,下面是目前流行的CSS+DIV的命名规则: (..更多内容)

micolog 模板的制作-illacrimo-plus-1

由于很多的原因,现在空间没有了,所以呢也只能从WordPress搬家了,看中了google的产品(google的东西真是太多了,呵呵). 其他不多说了,开始替换吧,由于我以前用的模板是cmb修改的illacrimo-plus模板,所以呢也还是用这个模板来改.其他模板大家也可以看着办啦. xuming的这个blog对wordpress还是非常友好的,基本上标签都能找到对应的替换.为了方便起见,由xuming这个模板向illacrimo-plus转换. (..更多内容)
看着个题目可能很玄乎,本来也想写的玄乎玄乎的,但Google了一下,觉得没有必要写的这么玄乎,其实,今天我就是要给大家介绍一款非常优秀的基于python(能够支持GAE)的blog程序而已,所以本文就言简意赅,不过,我会从头到尾,详细的道来整个过程。 (..更多内容)

ghs.google.com解封了

ghs.google.com解封了,很久没有连得上我的http://go.fly7.cn了,现在终于解封了,呵呵

但是不知道可以持续多久,祈祷吧~~

超炫的ajax特效,值得一看

来源:http://www.noupe.com/css/30-exceptional-ajaxjavascript-techniques-recently-created.html 1) noobSlide- 八种ajax实现的slide图片文字轮换缓冲滚动效果 演示http://efectorelativo.net/laboratory/noobSlide/sample.html 2) Growl 2.0 with Mootools- 图层渐隐渐显效果, 演示: 打开演示页,点击左侧Show Growl Smoke. Show Growl 即可看到效果下载:
2) Easiest Tooltip and Image Preview Using jQuery-鼠标移到连接对象上,滑出提示层效果
4) Sliding top panel using mootools-仿flash的菜单移动效果
5) Create a Slick Tabbed Content Area using CSS & jQuery-tab标签切换内容根据高度自动缓冲移动变化
6) Custom JavaScript Dialog Boxes-ajax对话框效果,周围页面变灰白色
7) Facebook Sliders With Mootools and CSS - 按钮拖动 控制图片透明度高宽度
8 ) Making a Javascript Video Player-
9) Ajax mosaic builder- 无数张图片组合排列拼贴成一张图的效果
10) jQuery flipv()- 文字纵向排效果
11) Drag. Drop. Lock.- 可拖动的层
12) WebAppers Simple Javascript Progress Bar with CSS-进度条 点中间+ -按钮可以直接预览效果,
13) moowheel-数据图标的动画显示效果 object.

14) Sliding top panel using mootools-
  • Download tutorial from Here

15) Mocha UI-ajax js仿windows桌面操作的效果,
16) ddMenu- ajax实现右键菜单效果
17) googleDrive-google地图小工具,实现小汽车在地图上行驶,用方向键 控制车头必须朝向马路前方,往边上开就会开不下去。
18) GlassBox-ajax实现类似vista系统 窗口半透明的玻璃效果
19) ProtoFlow-ajax相片展示效果,左右滚动并有倒影效果
20) ASP.NET AJAX AutoComplete Control (Facebook look)-类似google搜索输入框,下拉显示相关关键字的效果,
21) ADamnIT - JS error notification- A free reporting service that emails you when a JS error occurs in your webpages.页面js错误提示,点击按钮 下方显示对话窗口
22) Flexigrid-数据表格table 纵向的“列" 可以仿excel一样 拖动
23) prettyPhoto a jQuery lightbox clone-与现在流行的ligtbox 效果类似,点小图,大图弹出,周围页面变灰色半透明。
24) JavaScript Color Fading Script-js实现颜色渐变动画效果,鼠标移到表格/文字上,颜色缓慢渐变,而不是一般css实现的颜色直接切换。
25) Rotator-
26) Kotatsu - a simple html table generator-
27) jQuery virtual tour-js虚拟全景,360度环绕图片浏览,鼠标移到图片下方,显示左右及x停止按钮,
28) Usable directory listings with a little Dojo-
  • Checkout the Demo here.
  • Download a zip of the header and .htaccess files here.

29) Cuzillion’-简单的网页版dreamweaver,点击左侧列出的html元素,实时在中间的html代码部分显示,可以拖动改变元素所在位置跟属性,右侧点creat预览页面效果
30) The Sliding date-picker-时间表,可以拖动选择特定时间段

服务器关闭了 很久没更新了~~~~~~~~

哎,看来免费的东西就是不好啊!

好久都没来更新东西了,不是我懒,而是登陆不上啊,那边说的是服务器被举报了,现在正在查~~~~也不知道什么时候能够开···看来还是给点钱买个稳定点的好啊~!

用distinct去掉mysql中重复值

在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,我只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。所以我花了很多时间来研究这个问题,网上也查不到解决方案,期间把容容拉来帮忙,结果是我们两人都郁闷了。。。。。。。。。

下面先来看看例子:

    table
  id name
  1 a
  2 b
  3 c
  4 c
  5 b

库结构大概这样,这只是一个简单的例子,实际情况会复杂得多。

比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录。

select distinct name from table
得到的结果是:

  name
  a
  b
  c

好像达到效果了,可是,我想要得到的是id值呢?改一下查询语句吧:

select distinct name, id from table

结果会是:

  id name
  1 a
  2 b
  3 c
  4 c
  5 b

distinct怎么没起作用?作用是起了的,不过他同时作用了两个字段,也就是必须得id与name都相同的才会被排除。。。。。。。

我们再改改查询语句:

select id, distinct name from table

很遗憾,除了错误信息你什么也得不到,distinct必须放在开头。难到不能把distinct放到where条件里?能,照样报错。。。。。。。

很麻烦吧?确实,费尽心思都没能解决这个问题。没办法,继续找人问。

拉住公司里一JAVA程序员,他给我演示了oracle里使用distinct之后,也没找到mysql里的解决方案,最后下班之前他建议我试试group by。

试了半天,也不行,最后在mysql手册里找到一个用法,用group_concat(distinct name)配合group by name实现了我所需要的功能,兴奋,天佑我也,赶快试试。

报错。。。。。。。。。。。。郁闷。。。。。。。连mysql手册也跟我过不去,先给了我希望,然后又把我推向失望,好狠哪。。。。

再仔细一查,group_concat函数是4.1支持,晕,我4.0的。没办法,升级,升完级一试,成功。。。。。。

终于搞定了,不过这样一来,又必须要求客户也升级了。

突然灵机一闪,既然可以使用group_concat函数,那其它函数能行吗?

赶紧用count函数一试,成功,我。。。。。。。想哭啊,费了这么多工夫。。。。。。。。原来就这么简单。。。。。。

现在将完整语句放出:

select *, count(distinct name) from table group by name

结果:

  id name count(distinct name)
  1 a 1
  2 b 1
  3 c 1

最后一项是多余的,不用管就行了,目的达到。。。。。

唉,原来mysql这么笨,轻轻一下就把他骗过去了,郁闷也就我吧(对了,还有容容那家伙),现在拿出来希望大家不要被这问题折腾。

哦,对,再顺便说一句,group by 必须放在 order by 和 limit之前,不然会报错,差不多了,发给容容放网站上去,我继续忙碌。。。。。。

-----------------------------------------------------------------------------------------

更郁闷的事情发生了,在准备提交时容容发现,有更简单的解决方法。。。。。。

select id, name from table group by name

看来对mysql的了解还是太肤浅了,不怕被笑话,发出来让大家别犯同样的错误。。。。。。

解决flash挡住flash的问题,最新

正在做学校的网站,遇到一个问题,弹出的div层会被flash挡住,百度google了半天,了解到大概要让flash透明才行!可是ie、firefox显示效果不同!大家看看代码吧,红色的是关键!



'wmode','transparent'
param name="wmode" value="transparent"
wmode ="transparent"

新博客,新域名,新生活

以前的域名快到期,新注册了一个:fly7.cn,可惜了我一年来的辛苦经营,现在Google,百度都没收录这个域名。

但是我还是会更加加油的分享我的idea,呵呵。

一年来我都是自娱自乐的做着这件事,也没有推广告,我要加油了,我的朋友们大家都来捧捧场吧!

一个前辈写的网络协议学习方法

网络这东西就是一个靠实践的东西,只靠看书是不行的。当年在学校还上过史美林教授/张公忠教授所讲的计算机网络体系结构课,用的是Tanabaum写的那本,考试还得了九十多分,可实际还是连TCP和UDP有什么区别都分不清,就是死记背,到毕业的时候基本上是忘光了,工作后等于重新来过。

      上班了要在Linux做一些底层的网络处理,不得不从头来学Linux和网络,编程部分主要看Richard Stevens的那几本书:APUE、UNP、TCP/IP Illustraion等,学Linux则看得很杂,市面上各种Linux入门书大都翻了一遍,俺是习惯在书店里看书,爱看书而不爱买书,汗,,然后就是去各大BBS、论坛把他们的精华区都下载下来狂看,边看边实践,基本上在一个月内熟悉了Linux的操作。

           学网络协议刚开始也是看书,但看了之后没多少印象,那些东西靠死记真是没法记的,后来找到一个好办法,就是自己写个sniffer,自己写个协议分析器,先学怎么抓包,就看tcpdump的源码,然后看libpcap的源码,知道了什么是网卡的混杂模式,很快就能抓到网卡上包的。接下来就是对包进行分析,就看作TCP/IP Illustraion,从以太头、ARP/IP、ICMP/IGMP/TCP/UDP、HTTP/FTP/TELNET/SMTP等这么一点一点、一个字段一个字段分析下来,很快就明白了所谓TCP/IP到底是怎么回事。另外为了学TCP状态转换表,根据所抓的包的TCP标志分析通信双方当前是什么状态,刚开始还只能从头一方发SYN包开始分析,到后来是可从连接中间包如手就能逐渐判断双方的TCP状态,基本上是彻底搞清楚了TCP的状态转移是怎么回事,后来再理解防火墙的状态检测原理就很容易了。另外在分析过程中,为彻底掌握IP碎片,还特地ping大包来抓,把抓上来的包自己重组,搞明白了IP头的碎片offset字段是怎么用的。

          能抓包后进而又开始学如何自己构造包来“干扰”正常通信了,开始是学怎么发TCP的RST包来切断一个正常的TCP连接,就的学会如何计算IP头校验和,TCP校验和,知道了算TCP校验和时必须加IP伪头数据,然后是正确计算序列号和确认号,知道了原来SYN和FIN标志也是算一位的,最重要的是理解了什么是网络序什么是主机序,现在基本把ntohs(l),htons(l)处理都成了一种编程的本能意识了。学会用RST切断TCP后,进一步实现了直接发一个页面信息告诉客户端访问了非法信息,也就是以后实现URL过滤时客户端显示的拒绝画面。后来也学发ARP信息胡乱通告MAC地址,也就是以前写的那篇ARP攻击的由来。

           后来俺写的这个协议分析器逐步完善,能解析的就解析,不能解析的就打印出16进制数,可打印字符也打印出来,对HTTP、FTP、POP3、SMTP这些文本协议几乎就一下看明白了,对于非文本协议,如DNS,也根据协议解析了出来,而且解析DNS时不得不用了我一向不爱用的递归方法来编程。随着网络应用的增加,在用到前都先作协议解析,除了各种TCP、UDP的协议,还增加了BPDU、PPPOE、OSPF、ESP、AH、IKE等的解析处理,现在俺的协议分析器也可以分析上百种协议,平时抓包就只用俺这个,TCPDUMP基本不再用了,毕竟自己写的自己更清楚,如果有不能解析的再现加进去。现在学新协议时,往往先抓包看看协议的基本数据格式,再看RFC了解细节。

              学协议刚开始是看书,到后来要更深入了解或追询最新发展情况就只能看RFC了,毕竟网络的东西变化太快,书的东西只能算入门,说不定很快就出新的了,到现在也看了数百篇的RFC了。

             通过编程分析来学协议,慢是慢了点,花了一个多月的时间,但感觉学得扎实,正所谓磨刀不误砍柴功,而且一通百通。到现在虽然已经好几年了,IP头,TCP头有哪些字段还是一下就可以说得出来,对理解各种网络攻击原理从而进行防范更是有帮助,我觉得对我来说这种方法是很有效,如果哪位觉得有更有效的学习方法,可以共同交流一下。