分类‘技术技巧’

两行代码绕过基于referrer的防盗链

去年年底,微信公众号对图文消息内的图片做了防盗链设置,但验证发现业务域名下引用微信公众号图文还不受影响,以为做了白名单处理,不料近期发现所有自己网站的页面都不能正常显示图片,而是显示微信的防盗链提示。

由于业务需要,公司产品通过微信公众平台提供的接口创建、维护图文,大概去年8月15号,图文创建接口对非官方图片链接做了过滤,无奈将所有素材上传至微信,与此同时,我们自己也有页面需要显示对应图文信息,面对微信的防盗链屏蔽,想过维护两个图片路径,本地图文显示时替换为本地图片URL,后面感觉这样太影响效率,为了紧急修复图片不能显示的问题,遂通过简单的代码绕过了微信防盗链。

下面是核心代码(PHP) 查看更多...

Virtualbox 安装时发生严重错误[解决]

看到有人发了eclipse che的截图,感觉挺清爽,就打算装上看看,不料安装Virtualbox的时候一直自动回滚,以为是曾经装过Virtualbox卸载不彻底,无意间在网上看到一帖子说是DeviceInstall服务没有开启,打开服务一看,状态果然是已停止,打开后重新安装,顺利成功,这里记录一下,以便有遇到同样问题的童鞋参考。

另外顺便提一句,eclipse che看似不错,不过配套要安装Virtualbox、Git和Docker,略显麻烦,目前还没有玩转,后面有机会分享下试用体验。

网站限制指定地区、来路、时段访问

做网站时,出于某种需要,我们可能需要限制某些地区或者某个时段对网站的访问,下面是一段简单的php脚本,记录、分享下。
查看更多...

基于CSS3 animation实现Marquee效果

最近实现手机端小游戏,看到有同事用到老掉牙的marquee标签,就不说html5已经废弃此标签了,单是性能就已经够呛,于是想换种实现方案,第一想法自然是js实现,当然也是最为灵活的,这里不再赘述。

期间曾看到有相关文章描述overflow实现的Marquee,用法如下:

overflow:-webkit-marquee;

尝试一下并无效果,最后发现30+的chrome版本中,Google已经把这玩意移除了。

另外就是今天的主角——CSS3 animation,依然很简单: 查看更多...

Git push error:dst refspec XXX matches more than one

最近工作中遇到这样的问题,使用的是Git做版本控制,在PUSH代码的时候,出现如下错误:

error: dst refspec XXX matches more than one.
error: failed to push some refs to 'git@xxx.xx:xxx.git'

初步一看,还想,怎么可能,出现两个相同的分支?表示很不解。
查看Git服务器上的分支也只有一个指定名称的分支,最后无意间发现在于服务器上有一个和分支名称相同的tag,安装项目组的习惯,tag一般都是以时间作为名称的,这里怎么会出现这个,好奇中删掉它重试,果然,Git把tag和分支搞在一起了,tag名称不能和分支名称完全相同,不知道这是Git个别版本的bug还是就这样机制。

仅此记录以方便大家。

巧用Fiddler代理调试微信JSSDK

最近开发微信端网页,涉及到使用微信JSSDK提供的分享、照片选择、上传、预览等功能,由于微信官方有安全域名的限制,调试一开始都是通过暴漏在公网的一个测试环境上进行,但是一次次的修改、构建再修改再构建太耽误时间,最后就考虑模拟安全域名,绕过检测。

PC端很方便,直接修改HOST指向微信公众号后台配置的安全域名即可,但是这样也只能使JSSDK通过校验,实际使用中往往会调用手机资源,如分享、上传等。

于是,又找到了我们的前端神器——Fiddler,熟悉前端的都知道,这玩意很强大,具体功能这里不再赘述。我们就说说其代理功能,其实Fiddler默认的拦截形式就是通过代理实现,即所有请求通过127.0.0.1:8888(默认值)中转,而这个地址则是Fiddler处理程序所提供的。 查看更多...

使用Chrome调试(编辑)JavaScript、CSS、HTML

说起来Chrome的调试,可能大多数人都用过,用Chrome调试JavaScript、CSS的确是方便了前端开发人员,但这大多数人中,基本都是用它来调试,而非编辑,通常情况下,应该都是打开浏览器开发者工具,对JavaScript进行debug或者对CSS进行修改,完成后返回编辑器(IDE)修改源码,刷新并重试。这看似简单的过程,实际上已经在浏览器、编辑器(IDE)之间的切换中消耗了一倍以上的时间,事实上,我们并不需要如此,Chrome为开发者提供了更为方便的调试模式,可以让你在浏览器中调试的同时,一步到位、修改源码,下面我们就来简单介绍一下。

方法很简单,只需两个步骤。 查看更多...

Window环境下Python不能卸载问题解决

近期整理电脑,想升级下Python环境(习惯性的卸载旧版安装新版,因为很多类似开发环境、SDK的安装是不会自动卸载的旧版覆盖的),发现旧版卸载不了,提示如下:

there is a problem with this windows installer package.A programe run as part of the setup
did not finish as expected.Contact your support personnel or package vendor.

网上查了下有的建议强制删除目录,清理注册表,感觉有点太暴力,故没有采纳。有些童鞋说是因为卸载文件损坏,建议使用修复功能,但实际情况发现卸载损坏的情况修复也会让你选镜像(安装包)的。最后抱着试试看的态度,下载了相同的版本,重新覆盖安装一下,再次卸载,果然OK了,看来思路没错,但要注意,需要是完全相同的版本(包括小版本),至于你原先安装的版本号是多少,可以到控制面板找到对应项来识别。
查看更多...

合理使用Intellij Idea,提高开发效率,避免内存溢出

最近使用Intellij idea(phpstorm、webstorm、pycharm、rubymine等类似)开发的时候,经常遇到内存被占满,导致异常卡顿,一开始总以为是自己程序内存泄露,后面发现即使不启动自己的项目,只是单纯的开发,依然会出现内存占满甚至溢出的情况。

最后,实在受不了,在各大技术网站上搜罗相关文章,都说修改Intellij idea默认的vm配置文件即可增大使用内存,比如,将bin目录下的idea.exe.vmoptions文件内由
-server
-Xms128m
-Xmx512m
-XX:MaxPermSize=250m
-XX:ReservedCodeCacheSize=150m
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djsse.enableSNIExtension=false
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
修改为 查看更多...

Intellij Idea下打包JavaWeb项目忽略外部依赖包(Tomcat为例)

使用Intellij Idea有一段时间了(将近一年),从一开始的不习惯,到现在的高效开发,一切都显得是那么的自然而然。

由于前段时间一直做的项目并非传统Web项目,而是纯Restful风格的WebService,故而没有使用到基本的Servlet Api(Restful采用封装好的框架——Jersey,开发时不涉及Servlet Api的调用),也没有直接引入诸如Tomcat之类中间件自带的Jar包,所以一直没有发现问题。

直到最近,一个小项目的兄弟神奇的采用了Tomcat6的工具类实现文件上传,他开发使用的是eclipse,切换到我的Intellij Idea上面,发现编译不通过,就顺手在Libraries里面添加了Tomcat的Lib目录,自以为完美解决了,不料Tomcat6、Tomcat7启动时均会报错,有一段时间甚至引入Tomcat6的Lib,运行在Tomcat7下,由于关键API改动不大,而用到的Tomcat6文件上传工具类在Tomcat7更名或移除了,所以这样奇葩的开发了近一周时间,通过查看编译后的输出文件,了解到,Intellij Idea是吧Tomcat的Jar包也同时输出了,当然,打包的时候也会包含在War包内,不过由于项目紧张,一时没来得及找方法,后面实在不爽,就留意了一下网友们的说法: 查看更多...

无觅相关文章插件,快速提升流量