Booting to the Web
Home >> Booting to the Web
Mozilia相信,Web可以取代专有的、单一供应商链的程序开发。为了使开放式网络技术成为未来移动端和桌面端之类的平台上一个更好的基准,我们需要突破Web的限制去包含(在某些方面甚至超越)一些特性上仍有争议的功能。
为了划定和聚焦努力的大体方向,我们还有一个困难尚未攻克。最近我们看到了pdf.js项目有一个小的鸿沟要去跨越:他们希望划分“HTML5”为PDF的超集——现在,我们也发现了鸿沟:传统的本地应用开发阻止开发者的应用成为跨平台的应用程序,那些程序就像专门为Android、iPhone、WP7开发的一样。
从那之后,我们开始了一个叫做“Firefox OS”的计划(曾被称作是“B2G”,Boot To Gecko)来继续追寻曾经的目标:构建一个完全的、独立的开放式互联网操作系统。它需要以下几方面的工作:
新的Web API: 构建能够表现移动设备/操作系统特性的API原型(电话,短信,相机,USB,蓝牙,NFC等等)
权限等级模型: 需要确认新的特性开放给Web页和应用之后,是否安全
引导: 为移动设备设计一个底层系统原型
应用支持: 移植或创建一些应用来体现此操作系统的优越性
我们将公开地完成这些工作,我们会及时发布源码,我们会把一切成功的部分加入到一个合适的标准集合中,当然我们也应该跟踪这个过程中的所有进度。最终的目的不只是希望这些本地级的应用通过Firefox运行,更要尝试着让他们在Web上也能很好的运转。
===============================================
本文翻译自:https://wiki.mozilla.org/Booting_to_the_Web
本文来自:http://blog.csdn.net/zh405123507
Windows下轻松加载BMP, GIF, JPEG, PNG, and TIFF图片,并用OpenGL生成纹理
/* window下OpenGL加载纹理,图片格式BMP, GIF, JPEG, PNG, and TIFF -----------jiese1990 我要加载一个jpg图片有人叫我用OpenCV来读图片再用OpenGL来生成纹理; 我了个去,OpenCV这么大一个库,我又不搞其跨平台的!不过,当时我还真用了,OpenCV。 贱贱的发现了简单加载方法,不知道怎么加载的同学可以参考下 */ //参考博客 //1 //http://www.cnblogs.com/glaivelee/archive/2011/10/10/2205151.html bmp/gif/jpg图象格式介绍 //2 //http://blog.csdn.net/akof1314/article/details/5167279 用CImage类来显示PNG、JPG等图片 //BMP文件格式是Windows环境中交换与图有关的数据的一种标准,在Windows环境下运行的所有图象处理软件都支持BMP图象文件格式。 //Windows系统内部各图像绘制操作都是以BMP为基础的。 //如果是vc6.0编译器的话编译通不过因为没有atlimage /**************************ATLLoadTexture()函数介绍****************** 功能:windows下加载纹理,支持的图片类型:BMP, GIF, JPEG, PNG, and TIFF 参数介绍 fileName,文件路径+文件名 返回值: 加载成功返回成功后的纹理id 加载失败返回0 */ GLuint ATLLoadTexture(const char *fileName) { BITMAP bm; GLuint idTexture = 0; CImage img; //需要头文件atlimage.h HRESULT hr = img.Load(fileName); if ( !SUCCEEDED(hr) ) //文件加载失败 { MessageBox(NULL, "文件加载失败", "ERROR", 0); return NULL; } HBITMAP hbmp = img; if(!GetObject(hbmp, sizeof(bm), &bm)) return 0; glGenTextures(1, &idTexture); if (idTexture) { glBindTexture(GL_TEXTURE_2D, idTexture); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); glPixelStoref(GL_PACK_ALIGNMENT, 1); glTexImage2D(GL_TEXTURE_2D, 0, 3, bm.bmWidth, bm.bmHeight, 0, GL_BGR, GL_UNSIGNED_BYTE, bm.bmBits); //这里不是GL_RGB } return idTexture; }
2013年的第一篇博文,写一写自己前段时间了解的session和cookie的概念。
然后近期还打算对linux的一些常用系统监控命令进行一个梳理,尽可能详细的把这些知识点总结起来。
so,技术总是要慢慢积累的,fighting,2013!
=====================丑陋的分割线=========================
1. session和cookie
因为http协议被设计成为无状态的,对服务端来说每一次访问它都认为是一个新的客户,而不能识别这次请求是否是由一个客户端发出的。(无辨别用户,也就无法追踪客户端的行为、管理用户是否登录等状态)为了弥补这个缺陷,所以诞生了cookie与session。这两者都可以用来保存客户端的状态,cookie用于在客户端,而响应的用在服务端。
cookie 服务器端通过set-cookie响应头来通知客户端浏览器生成对应的cookie,cookie也分持久和非持久,前者存储在内存(浏览器维护)里,后者存储于硬盘中。
cookie的格式如下:
cq (cookie名)
ccp%3D1 (cookie值)
www.newgxu.cn/ (cookie域和路径)
1600 (可选标志)
3062532992 (The Most Significant Integer for Expired Time, in FILETIME Format)
30341473 (The Least Significant Integer for Expired Time, in FILETIME Format)
1037746368 (The Most Significant Integer for Creation Time, in FILETIME Format)
30268048 (The Least Significant Integer for Creation Time, in FILETIME Format)
* (记录分隔符)
如果不设置过期时间,那么这个cookie则为非持久cookie,关闭浏览器后这个cookie就会被销毁。设置了过期时间的cookie则会被存储在硬盘上。浏览器每次访问一个链接,会检查这个域名和路径下有没有响应的cookie,如果cookie的作用范围(域和路径组成)包含了访问的路径,则会把cookie添加在请求头的Cookie字段里一起发送出去。
sessionsession是服务端用来标识用户的解决办法。从最简单的架构来理解,当一个请求到达服务端的时候,会判断这个服务端是否带有sessionID标识,如果没有,服务端会为该请求创建一个sessionID,保存在自己管理的session池里(我简单这么理解,没有深入java的httpsession实现)。如果该请求带有sessionID,则服务端会根据这个sessionID把改session取出来使用,比如使用session.getId()方法。
那么怎样能让客户端在访问的时候把sessionID一起传给服务端呢?一是使用拼凑在URL里的方式,这需要在表达或者隐藏域里写入这个sessionID;二是把sessionID写在该域名下的cookie里,这样每次访问,浏览器就会自动把sessionID给发送过来。
session的常见实现形式是会话cookie(session cookie),即未设置过期时间的cookie,这个cookie的默认生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。实现机制是当用户发起一个请求的时候,服务器会检查该请求中是否包含sessionid,如果未包含,则系统会创造一个名为JSESSIONID的输出 cookie返回给浏览器(只放入内存,并不存在硬盘中),并将其以HashTable的形式写到服务器的内存里面;当已经包含sessionid是,服务端会检查找到与该session相匹配的信息,如果存在则直接使用该sessionid,若不存在则重新生成新的 session。这里需要注意的是session始终是有服务端创建的,并非浏览器自己生成的。
但是浏览器的cookie被禁止后session就需要用get方法的URL重写的机制或使用POST方法提交隐藏表单的形式来实现。
所有的理解还未得到代码层面的支持,有机会会去读一读httpsession的实现。 :) 一个长远的计划
最后发现这篇文章写的不错,推荐一下:session和cookie的区别
已有 0 人发表留言,猛击->>这里<<-参与讨论
ITeye推荐
- —软件人才免语言低担保 赴美带薪读研!—