HTML5 has been around for a while now, it introduces lots of new and exciting new JavaScript and HTML APIs for both mobile and desktop, so in this post you will discover some HTML5 features that will enhance your web apps and will save you a lot of time.
DNS Prefetching
DNS hostname resolution is one of the issues that can make any website slow. Modern browsers start to be very smart when it comes to DNS resolution, they try to resolve domain names then cache them before the user tries to follow any link on the webpage.
With the dns-prefetch feature you are allowed to manually control this operation by telling the browser which domain names to resolve :
<link rel="dns-prefetch" href="//fonts.googleapis.com"> <link rel="dns-prefetch" href="//google-analytics.com"> <link rel="dns-prefetch" href="//www.google-analytics.com"> <link rel="dns-prefetch" href="//platform.twitter.com">
|
|
|
Use this approach if you don't want hacks in your CSS. Add a browser-unique class to the <html>element so you can select based on browser later.
Example
<!doctype html>
<!--[if IE]><![endif]-->
<!--[if lt IE 7 ]> <html lang="en" class="ie6"> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="ie8"> <![endif]-->
<!--[if IE 9 ]> <html lang="en" class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--><html lang="en"><!--<![endif]-->
<head></head>
<body></body>
</html>
Then in your CSS you can very strictly access your target browser.
Example
.ie6 body {
border:1px solid red;
}
.ie7 body {
border:1px solid blue;
}
For more information check out http://html5boilerplate.com/
Target IE versions with CSS "Hacks"
More to your point, here are the hacks that let you target IE versions.
Use "\9" to target IE8 and below.
Use "*" to target IE7 and below.
Use "_" to target IE6.
Example:
body {
border:1px solid red; /* standard */
border:1px solid blue\9; /* IE8 and below */
*border:1px solid orange; /* IE7 and below */
_border:1px solid blue; /* IE6 */
}
Update: Target IE10
IE10 does not recognize the conditional statements so you can use this to apply an "ie10" class to the<html> element
<!doctype html>
<html lang="en">
<!--[if !IE]><!--><script>if (/*@cc_on!@*/false) {document.documentElement.className+=' ie10';}</script><!--<![endif]-->
<head></head>
<body></body>
</html>
http://stackoverflow.com/questions/814219/how-does-one-target-ie7-and-ie8-with-valid-css
今年韩国出了一部不错的电视剧——《幽灵》,相信看过的朋友对此剧应该印象深刻,在这个信息泛滥的年代,PC、平板、智能手机不断进入到我们的生活。在享受高科技给我们带来便捷服务的同时,你有没有想过有一天这些产品会给我们带来杀身之祸?有没有想过自己的一举一动,一言一行都在被别有用心的人掌控?
附《幽灵》电视剧里黑客哈达斯电脑的1280*720高清壁纸一张:
... ...
具体参见《 用于 Windows XP 的 Explorer.exe 命令行选项》。
可以与 Explorer.exe 一起使用的命令行选项有:/n、/e、/root(加上一个对象)和 /select(加上一个对象)。
选项 功能 ---------------------------------------------------------------------- /n 为默认选择打开一个新的单窗格窗口 。这通常是安装 Windows 的驱动器的根目录。如果窗口已经打开,则会打开一个相同的窗口。 /e 在默认视图中打开“Windows 资源管理器”。 /root,<object> 打开指定对象的窗口视图。 /select,<object> 打开所选文件夹、文件或程序的窗口视图 。 示例 ----------------------------------------------------------------------- 示例 1:Explorer /select,C:\TestDir\TestProg.exe 打开窗口视图并选定 TestProg。 示例 2:Explorer /e,/root,C:\TestDir\TestProg.exe 打开“资源管理器”,展开驱动器 C 并选定 TestProg。 示例 3:Explorer /root,\\TestSvr\TestShare 打开指定共享的窗口视图。 示例 4:Explorer /root,\\TestSvr\TestShare,select,TestProg.exe 打开指定共享的窗口视图并选定 TestProg。
表演篇(上) – 不管问题一律重装系统!
在修之前,向 MM 反复声明,这电脑故障是有硬件和软件之分的,如果是硬件故障,例如显卡风扇不转了,显示器连线老化,显示器分辨率超出显示器指标,等等都会导致黑屏啊,这个我不回家用专门的工具是修不好的!
这样一旦真的没修好,就立刻耸肩膀作无奈装:真的是硬件问题,还是送去保修吧。而 MM 当作硬件问题去保修,JS 大人即使发现是软件问题,也会毫不犹豫作为硬件问题处理,所以决计不会有败露的麻烦。
表演篇(中) – 不管问题一律重装系统!
不管发生什么,只要 MM 同意,一律重装系统!这是最简单的方法,虽然很菜。但是如果要感动 MM,这也是最好的方法,因为 MM 会在漫长的等待中觉得你真是很有耐心和爱心的好男人!哈哈哈哈,太阴险了,所以给恐龙修电脑,一般还是对症下药,速战速决,确实当恐龙看上你的时候,你就 知道这不是 RPWT,而是生命问题!
表演篇(下) – 关心 MM 要体现在细节!
... ...
cd Data/Packages/ git clone https://github.com/wbond/sublime_package_control.git "Package Control" cd "Package Control" git checkout python3
“打包“这个词听起来比较土,比较正式的说法应该是”构建项目软件包“,具体说就是将项目中的各种文件,比如源代码、编译生成的字节码、配置文件、文档,按照规范的格式生成归档,最常见的当然就是JAR包和WAR包了,复杂点的例子是Maven官方下载页面的分发包,它有自定义的格式,方便用户直接解压后就在命令行使用。作为一款”打包工具“,Maven自然有义务帮助用户创建各种各样的包,规范的JAR包和WAR包自然不再话下,略微复杂的自定义打包格式也必须支持,本文就介绍一些常用的打包案例以及相关的实现方式,除了前面提到的一些包以外,你还能看到如何生成源码包、Javadoc包、以及从命令行可直接运行的CLI包。
... ...
不知道有多少人遇到过,Chrome突然什么声音都放不出来了,如果你使用的是windows7,在混音器里能看到chrome被强制静音,而且不论你怎么点,chrome一直被静音,就好像有个进程一直在监控着一样。而其他浏览器或者系统播放器却一切正常。
造成这个问题是chrome toolbox扩展,它有个快捷键功能,最坑爹的是它的强制静音快捷键是一个非常简单的组合Alt+W,只要一不小心按下Alt+W,那么恭喜你,在下次按Alt+W之前,你的chrome被彻底静音了。
网上那些重装声卡,重装chrome,重装flashplayer,有点太大费周章了~
从打开电源到开始操作,计算机的启动是一个非常复杂的过程。
我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示...... 这几天,我查了一些资料,试图搞懂它。下面就是我整理的笔记。
零、boot的含义
先问一个问题,"启动"用英语怎么说?
回答是boot。可是,boot原来的意思是靴子,"启动"与靴子有什么关系呢? 原来,这里的boot是bootstrap(鞋带)的缩写,它来自一句谚语:
"pull oneself up by one's bootstraps"
字面意思是"拽着鞋带把自己拉起来",这当然是不可能的事情。最早的时候,工程师们用它来比喻,计算机启动是一个很矛盾的过程:必须先运行程序,然后计算机才能启动,但是计算机不启动就无法运行程序!
早期真的是这样,必须想尽各种办法,把一小段程序装进内存,然后计算机才能正常运行。所以,工程师们把这个过程叫做"拉鞋带",久而久之就简称为boot了。
计算机的整个启动过程分成四个阶段。
爱情,这种高级玩意儿,果然不是我这种贫下码农玩得起的。
二十四岁本命年生日那天,母亲从家里打电话过来,我本以为是说我生日的事。然而,却被告知家里的父老乡亲给我介绍了个女生,然后将她的联系方式给了我,并发个一张照片过来。
之后的四天,发生了一些不可思议的事情,让我至今想来仍觉得不寒而栗,虽然这样的经历才在刚刚过去的1个小时前结束。
人生经历两个轮回,却依然在恋爱史上写着”待嫁闺中“。但是,家人前些天就告诫我——男生要主动。
“C+伽”我虽然嘴上倔强地说不,但心里却像春暖花开一般,有一颗蠢蠢欲动的种子在发芽,在生根,在准备破土而出,迎接新新的世界。
码农的原则是,将主动权掌握在自己手中。于是,勇敢地打出人生第一个与女生的电话。寒喧过后,将女生的扣扣号要到手,在此过程中,码农发誓:绝对没有耍任何流氓手段和肮脏手法,这是码农做人的原则。
第一次亲密接触就这样在一阵寒喧中结束了,因为坚持了将近十分钟,码农发现实在找不到可以跟女生说些什么了。
结对编程(Pair Programming)可能是最受争议一项的敏捷实践,持续集成和重构基本已经普遍被大家认同了,TDD还能引发很大的口水仗,倡导结对编程则有被狂砸砖头的风险,本文我不想说结对编程绝对有多好,我想分享的是一些有关结对编程我体验和观察到的价值,以及几个我认为特别需要注意的地方,尤其是后者,如果以错误地方式用结对编程,弊很可能大于利。
结对编程是指两个开发人员(也可以是测试人员)坐在(也可以站着、蹲着,舒服即可)同一台计算机前,一起解决同一个任务(比如修Bug,加测试,加特性等等),其中一个人的角色是驾驶员(Driver),负责操作计算机、写代码、写测试,另一个人的角色是导航员(Navigator),负责观察驾驶员的工作,发现驾驶员引入的错误并及时提醒,两个人的角色可以经常变换。
结对编程这种工作方式首先是非常反直觉的,从开始学习编程,到每天的日常工作,大部分程序员从来都是独自坐在计算机前面解决问题,偶尔被打断还非常影响心情和工作效率,如果和另外一个人坐在一起编程,那会是什么情况?其实,到底会是什么情况谁也说不准,可能会非常令人生气,也可能会大大超出预期,对于没尝试过的人来说,找人试个一两次也无妨。
如果家中只有一根网线,却有两台或更多台笔记本需要连接到网络,借助软件,就可以将笔记本变身为无线路由器,即“WiFi热点”。以windows7为例,其实它本身就自带了WiFi和SoftAp(即虚拟无线AP)功能,仅需激活他们,你就可以让自己的笔记本变身为一个“WiFi热点”,让其他笔记本都连入你的笔记本上网。
再打开你的笔记本的无线网卡“开关”后,以管理员身份进行快捷键win+R→输入"cmd”→回车的操作。然后在已打开的命令提示符中输入"netsh wlan set hostednetwork mode=allow ssid=binglanPC key=binglanWiFi"的命令并按回车,这样就初步启用和设定了虚拟WiFi网卡。
PS:此命令有三个参数。mode:是否启用虚拟WiFi网卡,改为disallow则为禁用;ssid:无线网络名称,最好用英文(以binglanPC为例);key:无线网络密码,8个以上字符(本文以binglanWiFi为例)。
Go的http包封装的实在很BT,几十行代码就能写个http代理服务器。支持get,post,支持cookie,支持gzip。对了需要使用最新的源码编译,不然会有BUG。自己hg 下载源码编译一下才行,最新的一个BUG刚刚被修正。不多说直接上代码。
package main
import (
"http"
"log"
"os"
"io/ioutil"
)
func handler(w http.ResponseWriter, r *http.Request) {
resp, err := http.DefaultClient.Do(r)
defer resp.Body.Close()
if err != nil { panic(err) }
for k, v := range resp.Header {
for _, vv := range v {
w.Header().Add(k, vv)
}
}
for _, c := range resp.SetCookie {
w.Header().Add("Set-Cookie", c.Raw)
}
w.WriteHeader(resp.StatusCode)
result, err := ioutil.ReadAll(resp.Body)
if err != nil && err != os.EOF { panic(err) }
w.Write(result)
}
func main() {
http.HandleFunc("/", handler)
log.Println("Start serving on port 8888")
http.ListenAndServe(":8888", nil)
os.Exit(0)
}
http://kejibo.com/golang-http-proxy-server/
有时候你可能需要执行一些和HTTP请求无关的应用逻辑。这在处理一些初始化任务、维护任务、不阻塞HTTP请求连接池的耗时任务时非常有用。
Jobs是完全受Framework管理的。也就是说play框架会为你管理所有数据库连接事宜、JPA entity manager同步、事物管理。
1、程序猿最烦两件事,第一件事是别人要他给自己的代码写文档,第二件呢?是别人的程序没有留下文档。
2、程序猿的读书历程:x 语言入门 —> x 语言应用实践 —> x 语言高阶编程 —> x 语言的科学与艺术 —> 编程之美 —> 编程之道 —> 编程之禅—> 颈椎病康复指南。
3、还没上大学的时候,高三暑假,跑到家那边的图书城想买传说中的C++的书,然后看到一本C#,我一看,嘿,这个++还写得挺艺术的,重叠起来了,于是把C#买了回来……
- 仅整理碎片文件。这是最快的方式,只是把同一文件的的碎片附加连续起来到同一磁道中。
- 巩固磁盘整理。同windows的方式一样,对磁盘进行全面整理,该方式时间最长。但比它好,因为UltimateDefrag的CPU和内存占用很小。
- 文件/目录名整理。顾名思义,就是同一目录下文件放在一连续磁盘中,
- 使用频率整理。就是把经常用的文件整理放在磁盘外轨道上,不常用的放在内轨道上。这是提高磁盘性能的最好方法,特别是对于经常打开同一些文件的人来说,这可是福音。
- 系统波动。个人理解,该方式主要是对系统分区的优化整理,提高系统性能用。
- 自动整理。个人认为这个就是不用管了,让电脑智能选择前面5种方式中的一种吧。
使用前请注意:本插件是在一群朋友建议下开发而来,请不要在影响到他人的情况下使用,建议您邀请朋友在自己的房间里使用.
自动点赞chrome插件
下载:
https://chrome.google.com/webstore/search-extensions/autoloop?hl=zh-CN
https://chrome.google.com/webstore/detail/mghcdhmkpcpokjlfeimlmbcmklimjjhf?hl=zh-CN
以前看正则表达式,但没有注意到正则表达式的贪婪与非贪婪模式,今天在经典上看到了这么段代码:
try{
str="<p>abcdefg</p><p>abcdefghijkl</p>";
re1=str.match(/<p>[\W\w]+?<\/p>/ig);
alert("非贪婪模式:\r\n\r\n1:"+re1[0]+"\r\n2:"+re1[1]);
re1=str.match(/<p>[\W\w]+<\/p>/ig);
alert("贪婪模式:\r\n\r\n"+re1);
re1=str.match(/<p>(.+?)<\/p>/i);
alert("非贪婪模式,且不要标记:\r\n\r\n1:"+re1[1]);
re1=str.match(/<p>(.+)<\/p>/i);
alert("贪婪模式,且不要标记:\r\n\r\n"+re1[1]);
}catch(e){alert(e.description)}
</script>
Sublime Text 2是那种让人会一眼就爱上的编辑器,不仅GUI让人眼前一亮,功能更是没的说,拓展性目前来说也完全够用了,网上介绍软件的文章和推荐插件的文章也不少,而且很不错,大家可以去找找自己需要的。
之前想设置什么都是直接在网上搜,但最近想调行距,这个把我给难住了,软件上的设置没找到,网上搜也没有,最后的最后在Sublime的官方论坛找到了,个人觉得行距还是很影响视觉体验的,看看下面的对比图就知道了:
(有朋友说想要文章图片里的配色主题,这个不是自带的,我放出来了,喜欢的朋友可以下载)
看来想驾驭好这软件不弄清楚配置文件是不行了,周末找了时间把配置文件的每条配置信息都加上了中文注释,现在贴出来和大家共享,里面有解释不清楚的也欢迎大家伙来互相讨论:)
另外,这也是我的第一篇博客,以后我会多写些前端方面的文章和大家共享,欢迎一起讨论:)
