谈一谈网站图片压缩

公司前段时间更换登录页面的背景图。然后研究了一下相关的问题,包括PS切图、图片格式以及响应式布局三方面。

PS切图:

除了风光背景图,像logo、登陆框组的背景这样的都应该单独切出来,保存为PNG格式。logo应该放在一张sprite图中。

图片格式

风光背景图,之前的project里面用的是PNG格式,我没有多想,也采用了PNG格式,不过使用了PNG-8,体积是原体积一半(1MB多一点)。对这么大的背景图,我感觉有点不对劲,但是由于之前也没有经验,一下子也没搞清楚哪里不对劲。

Read More

Share

踝关节韧带撕裂后的处理与相关机理的学习

嗯,记录一下自己受伤与康复的经历,以警后人。

Read More

Share

用Node.js生成Plot3D网格文件

上一篇博客是读Plot3D网格,这一篇差不多。根据NACA翼型生成程序给出的点坐标,拉伸为三维机翼。

只要了解正则表达式的语法就OK。

Read More

Share

用Node.js处理Plot3D格式的网格数据

上周六中午踢球崴脚,成为失足青年,导致无缘本周四的决赛,并且去一家创业公司实习的机会也泡汤了。于是,只好将全部精力放在写毕业论文,继续学习Node.js……以及每周看《冰与火之歌》S04、《生活大爆炸》、《神盾局特工》,以及跟女友聊天等等上面。

之前用Node.js写过一个Plot3D格式的曲面网格,感觉用JS写科学计算代码还是很有成就感的。这回是读文件,处理数据,然后写文件。

这篇博文的主题是,用Node.js读取Plot3D格式的网格文件,将每个点坐标放大一定倍数,然后写入到新的网格文件中。只要保证在运行的时候,aerostat.xyz存在且符合Plot3D格式就行。

Read More

Share

谁愿摧眉折腰

Catalogue

人生中会遇到很多重大事件。今天算一个。不是绝对的好事。也不是绝对的坏事。

清华的学术也不过如此了。而如同挖煤老板一样的暴发户教授,更是毫无节操可言。

不过,朱自清的父亲说了,“天无绝人之路”。

安能摧眉折腰事权贵,使我不得开心颜。仰天大笑出门去,我辈岂是蓬蒿人。

Share

《JavaScript高级程序设计》笔记

《JavaScript高级程序设计(第3版)》

乱写一通。

这本书是2013-2014的寒假坐火车回家前在候车室里开始看的。火车上也看了一路。整个假期基本就只看这一本书。偶尔敲一敲里面的代码。此书与犀牛书确实有很多不同之处,真正想学习JavaScript的同学,两本都买并无不可。

2014年9月~10月,重读此书,亦对此博文进行扩充。

Read More

Share

《秩序之美》笔记

无论如何,最成功的设计可以简化为一种最为本质的目的:在混沌中创造秩序。

——《秩序之美》

这本书对网格布局系统的推崇,与《写给大家看的设计书(第3版)》中“对齐”规则是相呼应的。没有对齐,就会产生混乱。

Read More

Share

通过递减循环变量提高JavaScript循环性能

《高性能网站建设进阶指南》第95页提到:

另外一种提高性能的简单有效的方式是将循环变量递减到0,而不是递增到总长度。根据每个循环的复杂性不同,这个简单的改变可以比原来节约多达50%的执行时间。

我在这几种环境下进行了简单的测试:Node.js,Chrome,Firefox,IE。在浏览器环境下,循环变量从0增长与递减到0相比会有性能损耗;但在Node中则截然相反。

Read More

Share

Node.js学习书籍推荐

最近在学Node.js,感觉其非常强大,也很有趣。国内目前关于Node.js的书籍还不是很多,避免了选择焦虑环节,于是干脆买了几本。目前读了两本,列出来这些书,并附上自己的评价,或许对别人有帮助。

Read More

Share

node.js搭建简单的HTTP服务器

Catalogue

###参考资料
《Node.js入门经典》第5章

###1. 最简单的HTTP服务器

1
2
3
4
5
6
var http = require('http');
http.createServer(function(req, res){
res.writeHead(200, {'Content-Type':'text/plain'});
res.end('Hello, I\'m an HTTP server.');
}).listen(3000);
console.log('Server running at http://127.0.0.1:3000');

###2. 路由控制的HTTP服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var http = require('http'),
url = require('url');

http.createServer(function(req, res){
var pathname = url.parse(req.url).pathname;
if (pathname ==='/'){
res.writeHead(200, {'Content-Type':'text/plain'});
res.end('Hello, I\'m an HTTP server.');
} else if (pathname === '/about'){
res.writeHead(200, {
'Content-Type': 'text/plain'
});
res.end('About us\n');
} else if (pathname === '/redirect') {
// 重定向
res.writeHead(302, {'Location':'/'});
res.end();
} else{
res.writeHead(404, {'Content-Type':'text/plain'});
res.end('Page not found\n');
}
}).listen(3000,"127.0.0.1");
console.log('Server running at http://127.0.0.1:3000');
Share