OpenWRT安装python到U盘

作者:LastOneSky 发布时间:April 6, 2012 分类:Linux/Unix/BSD No Comments

下面说一下步骤:

mkdir /mnt/sda1/packages/
echo dest usb /mnt/sda1/packages/ >> /etc/opkg.conf
opkg --dest usb install python
ln -s /mnt/sda1/packages/usr/bin/python /usr/bin/python

记住安装软件时不要漏了--dest usb,这样才会安装到U盘或硬盘上。

PS:iambus-xunlei-lixian很好用,4M跑满,负载也很低,赞一个。

堆和栈(js为什么不用new创建字符串,数字)

作者:LastOneSky 发布时间:March 20, 2012 分类:默认分类 No Comments

javascript中的内存分配

javascript变量可以存放两种类型的值,原始值和引用值

原始值存在栈中,引用值存在堆中。原始值包括undifind,null,Boolean,string。引用类型包括数组,对象,函数等。

JavaScript为变量赋值时,JavaScript引擎会判断该类型是引用类型还是原始类型,如果是原始类型就把原始类型存储在比较小的内存区域栈中;如果是引用类型的,那么把引用类型存储在堆中,该引用类型的地址存储在栈中。地址的大小是固定的。

移动平台3G手机网站前端开发布局技巧汇总

作者:LastOneSky 发布时间:March 14, 2012 分类:默认分类 No Comments

自Iphone和Android这两个牛逼的手机操作系统发布以来,在互联网界从此就多了一个新的名词-WebApp(意为基于WEB形式的应用程序,运行在高端的移动终端设备)


开发者们都知道在高端智能手机系统中有两种应用程序:一种是基于本地(操作系统)运行的APP;一种是基于高端机的浏览器运行的WebApp,本文将主要讲解后者。

WebAppNative App有何区别呢?


Native App


1、开发成本非常大。


一般使用的开发语言为JAVA、C++、Objective-C。


2、更新体验较差、同时也比较麻烦


每一次发布新的版本,都需要做版本打包,且需要用户手动更新(有些应用程序即使不需要用户手动更新,但是也需要有一个恶心的提示)。


3、非常酷


因为native app可以调用IOS中的UI控件以UI方法,它可以实现WebApp无法实现的一些非常酷的交互效果


4、Native app是被Apple认可的


Native app可以被Apple认可为一款可信任的独立软件,可以放在Apple Stroe出售,但是Web app却不行。


Web App


1、开发成本较低


使用web开发技术就可以轻松的完成web app的开发


2、升级较简单


升级不需要通知用户,在服务端更新文件即可,用户完全没有感觉


3、维护比较轻松


和一般的web一样,维护比较简单,它其实就是一个站点

Webapp说白了就是一个针对Iphone、Android优化后的web站点,它使用的技术无非就是HTML或HTML5、CSS3、JavaScript,服务端技术JAVA、PHP、ASP。

当然,因为这些高端智能手机(Iphone、Android)的内置浏览器都是基于webkit内核的,所以在开发WEBAPP时,多数都是使用HTML5和CSS3技术做UI布局。当使用HTML5和CSS3l做UI时,若还是遵循着一般web开发中使用HTML4和CSS2那样的开发方式的话,这也就失去了WEBAPP的本质意义了,且有些效果也无法实现的,所以在此又回到了我们的主题–webapp的布局方式和技术

哥在此说明一下,在此所说的移动平台前端开发是指针对高端智能手机(如Iphone、Android)做站点适配也就是WebApp,并非是针对普通手机开发Wap 2.0,所以在阅读本篇文章以前,你需要对webkit内核的浏览器有一定的了解,你需要对HTML5和CSS3有一定的了解。如果你已经对此有所了解,那现在就开始往下阅读吧……

1、首先我们来看看webkit内核中的一些私有的meta标签,这些meta标签在开发webapp时起到非常重要的作用


 

<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" />

<meta content="yes" name="apple-mobile-web-app-capable" />

<meta content="black" name="apple-mobile-web-app-status-bar-style" />

<meta content="telephone=no" name="format-detection" />
第一个meta标签表示:强制让文档的宽度与设备的宽度保持1:1,并且文档最大的宽度比例是1.0,且不允许用户点击屏幕放大浏览;
 

第二个meta标签是iphone设备中的safari私有meta标签,它表示:允许全屏模式浏览;


第三个meta标签也是iphone的私有标签,它指定的iphone中safari顶端的状态条的样式;


第四个meta标签表示:告诉设备忽略将页面中的数字识别为电话号码


2、HTML5标签的使用


在开始编写webapp时,哥建议前端工程师使用HTML5,而放弃HTML4,因为HTML5可以实现一些HTML4中无法实现的丰富的WEB应用程序的体验,可以减少开发者很多的工作量,当然了你决定使用HTML5前,一定要对此非常熟悉,要知道HTML5的新标签的作用。比如定义一块内容或文章区域可使用section标签,定义导航条或选项卡可以直接使用nav标签等等。


3、放弃CSS float属性


在项目开发过程中可以会遇到内容排列排列显示的布局(见下图),假如你遇见这样的视觉稿,哥建议你放弃float,可以直接使用display:block;


4、利用CSS3边框背景属性


这个按钮有圆角效果,有内发光效果还有高光效果,这样的按钮使用CSS3写是无法写出来的,当然圆角可以使用CSS3来写,但高光和内发光却无法使用CSS3编写,


这个时候你不妨使用-webkit-border-image来定义这个按钮的样式。


-webkit-border-image就个很复杂的样式属性。


5、块级化a标签


请保证将每条数据都放在一个a标签中,为何这样做?因为在触控手机上,为提升用户体验,尽可能的保证用户的可点击区域较大。


6、自适应布局模式


在编写CSS时,我不建议前端工程师把容器(不管是外层容器还是内层)的宽度定死。为达到适配各种手持设备,我建议前端工程师使用自适应布局模式(支付宝采用了自适应布局模式),因为这样做可以让你的页面在ipad、itouch、ipod、iphone、android、web safarik、chrome都能够正常的显示,你无需再次考虑设备的分辨率。

 

7、学会使用webkit-box


上一节,我们说过自适应布局模式,有些同学可能会问:如何在移动设备上做到完全自适应呢?很感谢webkit为display属性提供了一个webkit-box的值,它可以帮助前端工程师做到盒子模型灵活控制。


8、如何去除Android平台中对邮箱地址的识别


看过iOS webapp API的同学都知道iOS提供了一个meta标签:用于禁用iOS对页面中电话号码的自动识别。在iOS中是不自动识别邮件地址的,但在Android平台,它会自动检测邮件地址,当用户touch到这个邮件地址时,Android会弹出一个框提示用户发送邮件,如果你不想Android自动识别页面中的邮件地址,你不妨加上这样一句meta标签在head中

<meta content="email=no" name="format-detection" />


9、如何去除iOS和Android中的输入URL的控件条

你的老板或者PD或者交互设计师可能会要求你:能否让我们的webapp更加像nativeapp,我不想让用户看见那个输入url的控件条?


答案是可以做到的。我们可以利用一句简单的javascript代码来实现这个效果

MVC3中建立长连接导致其他请求被阻塞的问题

作者:LastOneSky 发布时间:February 18, 2012 分类:默认分类 No Comments

前些天做了Oracle数据库实时监视,在自己机器上没有完全测试,到了测试那边说会导致页面死掉。

试了一下,真的死掉了,于是找新的解决方案,网上说用htmlfile的方式,可以看不出正在加载,使用了,IE假死的问题解决了。但是发现一旦页面进入长连接的等待状态后,跳转任何页面都没有响应。

一开始以为是浏览器的问题,找了好多资料,也有说要建立两个连接,一个保持长连接,一个用于通知断开长连接,即跳转页面时,告诉服务器,断开长连接,释放浏览器的连接。试过,没有效果,因为通知用的连接,也被阻塞了,服务器里面Controller里面的Action不会被执行。

终于搜索到了CSDN上的一篇文章,里面提到session锁死,导致连接阻塞。

于是搜索相关资料,将MVC3里面的Session关掉(为Controller添加[SessionState(SessionStateBehavior.Disabled)]的Attribue标签)之后,问题迎刃而解。

变色龙启动U盘,安装U盘

作者:LastOneSky 发布时间:February 15, 2012 分类:Linux/Unix/BSD No Comments

制作步骤如下:

1.开启终端键入下列指令
sudo -s (输入密码)
diskutil list (确认U盘的磁盘代号,如/dev/diskX)
2.开启磁盘工具,在U盘中建立一个MBR的磁区
3.在终端机内键入下列指令:
diskutil eraseVolume “HFS+” “USB” /dev/diskXs1
接着变更目录至Chameleon/i386后键入
./fdisk -f boot0 -u -y /dev/rdiskX
dd if=boot1h of=/dev/rdiskXs1
cp boot /Volumes/USB
mkdir /Volumes/USB/Extra
将Chameleon/Extra的内如复制到/Volumes/USB/Extra中
4.重新开机
5.在BIOS内将U盘设置为第一开机选项
6.如果一切顺利的话,硬盘上的开机分区将会出现

安装U盘制作方法:
1.下载制作工具 MAQ-Make-OS-X-Lion-Installer-USB-Flash-Drive.dmg
2.下载Lion Install App
3.使用工具制作安装U盘。
4.安装变色龙到U盘
5.复制
FakeSMC.kext
NullCPUPowerManager.kext
IOATAFamily.kext
PS2键鼠
等必要驱动到System/Library/Extensions文件夹内
6.复制能识别MBR分区的OSInstall和OSInstall.mpkg到U盘对应文件夹下面