存档在 2017年4月

一个更容易检测设备的JavaScript库——device.js

2017年4月28日

decice.js的github地址(https://github.com/matthewhudson/device.js/)

device.js是一个可以用来检测设备的平台、操作系统和方向的JavaScript库。device.js 通过操作系统(比如 iOS,安卓,黑莓,Windows,Firefox OX),方向(横屏或者竖屏),类型(平板或者移动设备),来为设备添加 CSS Class,并且它还提供了一些Javascript 函数用来判断设备。
比如在PC端打开引入了device.js的 html 页面时会在标签里添加”desktop landscape”的class。
device.js的使用
直接在html页面的头部引入即可使用:

<script type="text/javascript" src="device.js"></script>

根据设备的不同生成的CSS
**Device** **CSS Classes**

iPhone ios iphone mobile

iPod ios ipod mobile

Android Phone android mobile

Android Tablet android tablet

BlackBerry Phone blackberry mobile

BlackBerry Tablet blackberry tablet

Windows Phone windows mobile

Windows Tablet windows tablet

Firefox OS Phone fxos mobile

Firefox OS Tablet fxos tablet

MeeGo meego

Desktop desktop

Television television

根据方向的不同生成的CSS
**Orientation** **CSS Classes**

Landscape landscape

Portrait portrait

相关的JavaScript方法
**Device** **JavaScript Method**

Mobile device.mobile()

Tablet device.tablet()

Desktop device.desktop()

iOS device.ios()

iPad device.ipad()

iPhone device.iphone()

iPod device.ipod()

Android device.android()

Android Phone device.androidPhone()

Android Tablet device.androidTablet()

BlackBerry device.blackberry()

BlackBerry Phone device.blackberryPhone()

BlackBerry Tablet device.blackberryTablet()

Windows device.windows()

Windows Phone device.windowsPhone()

Windows Tablet device.windowsTablet()

Firefox OS device.fxos()

Firefox OS Phone device.fxosPhone()

Firefox OS Tablet device.fxosTablet()

MeeGo device.meego()

Television device.television()

**Orientation** **JavaScript Method**
Landscape device.landscape()
Portrait device.portrait()
通常情况下,我们为了使页面在不同分辨率的设备上展示出不同的效果,会使用CSS3的 @media属性来实现,但如果我们想在 PC端和 mobile端展示两个不同的页面,使用device.js 就会方便很多,首先用它来检测设备,然后再在不同的设备上打开不同的页面。
假设有个项目,我们想让它在手机上打开的页面为 m.html,在电脑上打开的页面为 desk.html,这个时候我们就可以用device.js来实现,代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>device.js的使用</title>
    <script type="text/javascript" src="device.js"></script>
</head>
<body>
    <script type="text/javascript">
        var isMobile = device.mobile(),
             isTable = device.tablet();

        if(isMobile || isTable){
            window.open("m.html","_self"); //如果终端是手机或者平板,就打开m.html
        }
        else{
            window.open("desk.html","_self"); //否则打开desk.html
        }
    </script>
</body>
</html>

phpstorm10破解 服务器验证方法

2017年4月28日

f954fda6d312fdee93f7234e2fb6a294
如果http://15.idea.lanyus.com/方法无法激活。可以将其替换为http://jetbrains.tencent.click

:SSL peer certificate or SSH remote key was not ok

2017年4月20日

:SSL peer certificate or SSH remote key was not ok

1.激活第一步,断网,双击unity3d的桌面图标这时会出现这样的页面,点击红框内的按钮。
1
2.然后会出现如下页面,点击红框内的按钮,随便找个文件夹保存就行。
2
3.连上网络,点击如步骤3给的链接https://license.unity3d.com/manual会出现如下窗口,点击红框内的按钮上传你刚才保存的文件。点击“ok”按钮。
1
4.注册账号,登录,下载证书并上传即可。

位运算总结

2017年4月8日

基础

位操作符

符号 含义 规则
& 两个位都为1时,结果为1
| 有一个位为1时,结果为1
^ 异或 0和1异或0都不变,异或1则取反
~ 取反 0和1全部取反
<< 左移 位全部左移若干位,高位丢弃,低位补0
>> 算术右移 位全部右移若干位,,高位补k个最高有效位的值
>> 逻辑右移 位全部右移若干位,高位补0

注意:

1、位运算只可运用于整数,对于float和double不行。

2、另外逻辑右移符号各种语言不太同,比如java是>>>。

3、位操作符的运算优先级比较低,尽量使用括号来确保运算顺序。比如1&i+1,会先执行i+1再执行&。

 

应用实例

很棒的应用实例,你可以mark一下,方便以后对照使用。

1、混合体

位运算实例

位运算 功能 示例
x >> 1 去掉最后一位 101101->10110
x << 1 在最后加一个0 101101->1011010
x << 1 | 1 在最后加一个1 101101->1011011
x | 1 把最后一位变成1 101100->101101
x & -2 把最后一位变成0 101101->101100
x ^ 1 最后一位取反 101101->101100
x | (1 << (k-1)) 把右数第k位变成1 101001->101101,k=3
x & ~ (1 << (k-1)) 把右数第k位变成0 101101->101001,k=3
x ^(1 <<(k-1)) 右数第k位取反 101001->101101,k=3
 x & 7 取末三位 1101101->101
x & (1 << k-1) 取末k位 1101101->1101,k=5
x >> (k-1) & 1 取右数第k位 1101101->1,k=4
x | ((1 << k)-1) 把末k位变成1 101001->101111,k=4
x ^ (1 << k-1) 末k位取反 101001->100110,k=4
x & (x+1) 把右边连续的1变成0 100101111->100100000
x | (x+1) 把右起第一个0变成1 100101111->100111111
x | (x-1) 把右边连续的0变成1 11011000->11011111
(x ^ (x+1)) >> 1 取右边连续的1 100101111->1111
x & -x 去掉右起第一个1的左边 100101000->1000
x&0x7F 取末7位 100101000->101000
x& ~0x7F 是否小于127 001111111 & ~0x7F->0
x & 1 判断奇偶 00000111&1->1